- I2C தொடர்பு நெறிமுறை என்றால் என்ன?
- I2C தொடர்பு எவ்வாறு செயல்படுகிறது?
- I2C தகவல்தொடர்பு எங்கே பயன்படுத்துவது?
- MSP430 இல் I2C: AD5171 டிஜிட்டல் பொட்டென்டோமீட்டரைக் கட்டுப்படுத்துதல்
MSP430 என்பது உட்பொதிக்கப்பட்ட திட்டங்களுக்கு டெக்சாஸ் இன்ஸ்ட்ரூமென்ட்ஸ் வழங்கிய ஒரு சக்திவாய்ந்த தளமாகும், அதன் பல்துறை இயல்பு பல பயன்பாடுகளுக்கான வழிகளைக் கண்டறிய அதை உருவாக்கியுள்ளது மற்றும் கட்டம் இன்னும் நடந்து கொண்டிருக்கிறது. நீங்கள் எங்கள் MSP430 டுடோரியல்களைப் பின்தொடர்ந்திருந்தால், இந்த மைக்ரோகண்ட்ரோலரில் பல அடிப்படைப் பயிற்சிகளை நாங்கள் ஏற்கனவே உள்ளடக்கியுள்ளதை நீங்கள் கவனித்திருப்பீர்கள். இப்போதிலிருந்து, தகவல்தொடர்பு போர்டல் போன்ற சுவாரஸ்யமான விஷயங்களில் நாம் பெறக்கூடிய அடிப்படைகளை நாங்கள் உள்ளடக்கியுள்ளோம்.
உட்பொதிக்கப்பட்ட பயன்பாடுகளின் பரந்த அமைப்பில், எந்த மைக்ரோகண்ட்ரோலரும் அனைத்து நடவடிக்கைகளையும் தானாகவே செய்ய முடியாது. சில கட்டங்களில் தகவல்களைப் பகிர மற்ற சாதனங்களுடன் தொடர்பு கொள்ள வேண்டும், இந்த தகவல்களைப் பகிர்ந்து கொள்ள பல்வேறு வகையான தகவல் தொடர்பு நெறிமுறைகள் உள்ளன, ஆனால் அதிகம் பயன்படுத்தப்பட்டவை USART, IIC, SPI மற்றும் CAN. ஒவ்வொரு தகவல்தொடர்பு நெறிமுறையும் அதன் சொந்த நன்மை மற்றும் தீமைகளைக் கொண்டுள்ளது. இந்த டுடோரியலில் நாம் கற்றுக்கொள்ளப் போவதால், இப்போது I2C பகுதியில் கவனம் செலுத்துவோம்.
I2C தொடர்பு நெறிமுறை என்றால் என்ன?
ஐ.ஐ.சி என்ற சொல் “ இன்டர் ஒருங்கிணைந்த சுற்றுகள் ” என்பதைக் குறிக்கிறது. இது பொதுவாக I2C அல்லது I ஸ்கொயர் சி அல்லது சில இடங்களில் 2-கம்பி இடைமுக நெறிமுறை (TWI) என குறிக்கப்படுகிறது, ஆனால் இவை அனைத்தும் ஒரே மாதிரியானவை. I2C என்பது ஒரு ஒத்திசைவான தகவல் தொடர்பு நெறிமுறை, தகவல்களைப் பகிரும் இரண்டு சாதனங்களும் பொதுவான கடிகார சமிக்ஞையைப் பகிர்ந்து கொள்ள வேண்டும். தகவல்களைப் பகிர இரண்டு கம்பிகள் மட்டுமே உள்ளன, அவற்றில் ஒன்று சேவல் சிக்னலுக்காகவும் மற்றொன்று தரவை அனுப்புவதற்கும் பெறுவதற்கும் பயன்படுத்தப்படுகிறது.
I2C தொடர்பு எவ்வாறு செயல்படுகிறது?
I2C தொடர்பு முதலில் பிலிப்ஸால் அறிமுகப்படுத்தப்பட்டது. முன்பு சொன்னது போல இரண்டு கம்பிகள் உள்ளன, இந்த இரண்டு கம்பிகளும் இரண்டு சாதனங்களில் இணைக்கப்படும். இங்கே ஒரு சாதனம் மாஸ்டர் என்றும் மற்ற சாதனம் அடிமை என்றும் அழைக்கப்படுகிறது. ஒரு மாஸ்டர் மற்றும் ஒரு அடிமை இருவருக்கும் இடையில் தொடர்பு இருக்க வேண்டும். I2C தகவல்தொடர்புகளின் நன்மை என்னவென்றால், ஒன்றுக்கு மேற்பட்ட அடிமைகளை ஒரு மாஸ்டருடன் இணைக்க முடியும்.

சீரியல் கடிகாரம் (எஸ்சிஎல்) மற்றும் சீரியல் டேட்டா (எஸ்.டி.ஏ) ஆகிய இரண்டு கம்பிகள் வழியாக முழுமையான தொடர்பு நடைபெறுகிறது.
சீரியல் கடிகாரம் (எஸ்சிஎல்): எஜமானரால் உருவாக்கப்பட்ட கடிகார சமிக்ஞையை அடிமையுடன் பகிர்ந்து கொள்கிறது
சீரியல் டேட்டா (எஸ்.டி.ஏ): மாஸ்டர் மற்றும் அடிமைக்கு இடையில் இருந்து தரவை அனுப்புகிறது.
எந்த நேரத்திலும் மாஸ்டர் மட்டுமே தகவல்தொடர்புகளைத் தொடங்க முடியும். பஸ்ஸில் ஒன்றுக்கு மேற்பட்ட அடிமைகள் இருப்பதால், மாஸ்டர் ஒவ்வொரு அடிமையையும் வேறு முகவரியைப் பயன்படுத்தி குறிப்பிட வேண்டும். அந்த குறிப்பிட்ட முகவரியுடன் கூடிய அடிமை மட்டுமே உரையாற்றும்போது, மற்றவர்கள் வெளியேறும்போது தகவலுடன் பதிலளிப்பார்கள். இந்த வழியில் பல சாதனங்களுடன் தொடர்பு கொள்ள ஒரே பஸ்ஸைப் பயன்படுத்தலாம்.
I2C மின்னழுத்தம் நிலைகள் முன்வரையறுக்கப்பட்டவை அல்ல. I2C தொடர்பு நெகிழ்வானது, அதாவது 5v வோல்ட்டால் இயக்கப்படும் சாதனம், I2C க்கு 5v ஐப் பயன்படுத்தலாம் மற்றும் 3.3v சாதனங்கள் I2C தகவல்தொடர்புக்கு 3v ஐப் பயன்படுத்தலாம். வெவ்வேறு மின்னழுத்தங்களில் இயங்கும் இரண்டு சாதனங்கள், I2C ஐப் பயன்படுத்தி தொடர்பு கொள்ள வேண்டுமானால் என்ன செய்வது? 5 வி ஐ 2 சி பஸ்ஸை 3.3 வி சாதனத்துடன் இணைக்க முடியாது. இந்த வழக்கில் மின்னழுத்த மாற்றிகள் இரண்டு I2C பேருந்துகளுக்கு இடையிலான மின்னழுத்த அளவை பொருத்த பயன்படுகின்றன.
ஒரு பரிவர்த்தனையை வடிவமைக்கும் சில நிபந்தனைகள் உள்ளன. டிரான்ஸ்மிஷனைத் தொடங்குவது எஸ்.டி.ஏவின் வீழ்ச்சி விளிம்பில் தொடங்குகிறது, இது எஸ்.டி.ஏ-ஐ குறைவாக அமைக்கும் போது மாஸ்டர் எஸ்.சி.எல் உயரத்தை விட்டு வெளியேறும் வரைபடத்தில் கீழே 'ஸ்டார்ட்' நிலை என வரையறுக்கப்படுகிறது.

மேலே உள்ள வரைபடத்தில் காட்டப்பட்டுள்ளபடி, SDA இன் வீழ்ச்சி விளிம்பு START நிலைக்கு வன்பொருள் தூண்டுதலாகும். இதற்குப் பிறகு ஒரே பஸ்ஸில் உள்ள எல்லா சாதனங்களும் கேட்கும் பயன்முறையில் செல்கின்றன.
அதே வழியில், எஸ்.டி.ஏவின் உயரும் விளிம்பு மேலே உள்ள வரைபடத்தில் 'ஸ்டாப்' நிலை எனக் காட்டப்படும் டிரான்ஸ்மிஷனை நிறுத்துகிறது, அங்கு மாஸ்டர் எஸ்சிஎல்லை உயர்வாக விட்டுவிட்டு, எஸ்.டி.ஏ. எனவே எஸ்.டி.ஏவின் உயரும் விளிம்பு பரிமாற்றத்தை நிறுத்துகிறது.

ஆர் / டபிள்யூ பிட் பின்வரும் பைட்டுகளின் பரிமாற்ற திசையைக் குறிக்கிறது, அது உயர்வாக இருந்தால் அடிமை கடத்துகிறது, அது குறைவாக இருந்தால் மாஸ்டர் கடத்தும்.
ஒவ்வொரு கடிகார சுழற்சியிலும் ஒவ்வொரு பிட் கடத்தப்படுகிறது, எனவே ஒரு பைட்டை கடத்த 8 கடிகார சுழற்சிகள் எடுக்கும். ஒவ்வொரு பைட்டிற்கும் அனுப்பப்பட்ட அல்லது பெறப்பட்ட பிறகு, ACK / NACK க்கு ஒன்பதாவது கடிகார சுழற்சி நடைபெறுகிறது (ஒப்புக்கொள்ளப்பட்டது / ஒப்புக்கொள்ளப்படவில்லை). இந்த ACK பிட் நிலைமையைப் பொறுத்து அடிமை அல்லது எஜமானரால் உருவாக்கப்படுகிறது. ACK பிட்டைப் பொறுத்தவரை, SDA 9 வது கடிகார சுழற்சியில் மாஸ்டர் அல்லது அடிமை மூலம் குறைவாக அமைக்கப்பட்டுள்ளது. எனவே இது குறைவாக உள்ளது, இது ACK இல்லையெனில் NACK என்று கருதப்படுகிறது.

I2C தகவல்தொடர்பு எங்கே பயன்படுத்துவது?
I2C தொடர்பு குறுகிய தூர தொடர்புக்கு மட்டுமே பயன்படுத்தப்படுகிறது. இது ஸ்மார்ட் செய்ய ஒத்திசைக்கப்பட்ட கடிகார துடிப்பு இருப்பதால் இது நிச்சயமாக ஒரு அளவிற்கு நம்பகமானது. இந்த நெறிமுறை முக்கியமாக சென்சார் அல்லது பிற சாதனங்களுடன் தொடர்பு கொள்ள பயன்படுகிறது, இது ஒரு மாஸ்டருக்கு தகவலை அனுப்ப வேண்டும். ஒரு மைக்ரோகண்ட்ரோலர் குறைந்தபட்சம் பல கம்பிகளைப் பயன்படுத்தி பல அடிமை தொகுதிகளுடன் தொடர்பு கொள்ளும்போது இது மிகவும் எளிது. நீங்கள் ஒரு நீண்ட தூர தகவல்தொடர்பு தேடுகிறீர்களானால், நீங்கள் RS232 ஐ முயற்சிக்க வேண்டும், மேலும் நம்பகமான தகவல்தொடர்பு தேடுகிறீர்கள் என்றால் நீங்கள் SPI நெறிமுறையை முயற்சிக்க வேண்டும்.
MSP430 இல் I2C: AD5171 டிஜிட்டல் பொட்டென்டோமீட்டரைக் கட்டுப்படுத்துதல்
எங்கள் MSP430 ஐ நிரல் செய்வதற்கான எளிதான மென்பொருளில் எனர்ஜியா IDE ஒன்றாகும். இது Arduino IDE போன்றது. எனர்ஜியா ஐடிஇ பயன்படுத்தி எம்எஸ்பி 430 உடன் தொடங்குவது பற்றி மேலும் அறியலாம்.
எனவே, எனர்ஜியா ஐடிஇயில் I2C ஐப் பயன்படுத்த நாம் wire.h தலைப்பு கோப்பை சேர்க்க வேண்டும். முள் அறிவிப்பு (எஸ்.டி.ஏ மற்றும் எஸ்.சி.எல்) கம்பி நூலகத்திற்குள் உள்ளது, எனவே அமைவு செயல்பாட்டில் நாம் அறிவிக்க தேவையில்லை.
மாதிரி எடுத்துக்காட்டுகளை IDE இன் எடுத்துக்காட்டு மெனுவில் காணலாம். எடுத்துக்காட்டுகளில் ஒன்று கீழே விளக்கப்பட்டுள்ளது:
I2C ஒத்திசைவான சீரியல் நெறிமுறை வழியாக தொடர்பு கொள்ளும் அனலாக் சாதனங்களை AD5171 டிஜிட்டல் பொட்டென்டோமீட்டரை எவ்வாறு கட்டுப்படுத்துவது என்பதை இந்த எடுத்துக்காட்டு காட்டுகிறது. எம்எஸ்பியின் ஐ 2 சி வயர் நூலகத்தைப் பயன்படுத்தி, டிஜிட்டல் பானை 64 அளவிலான எதிர்ப்பைக் கடந்து, எல்.ஈ.டி.
முதலில், i2c தகவல்தொடர்புக்கு பொறுப்பான நூலகத்தை அதாவது கம்பி நூலகத்தை சேர்ப்போம்
#சேர்க்கிறது
இல் அமைப்பு செயல்பாடு, நாம் வயர் நூலகம் ஆரம்பிக்கின்றனர் .begin () செயல்பாடு.
void setup () { Wire.begin (); }
பொட்டென்டோமீட்டரின் மதிப்புகளைச் சேமிக்க மாறி மதிப்பைத் தொடங்கவும்
பைட் வால் = 0;
இல் லூப் செயல்பாடு, நாம் செய்யும் i2c அடிமை சாதனம் கடத்தப்படும் தொடங்க ஐசி தரவுத்தாள் கொடுக்கப்பட்டுள்ளது இது சாதனத்தின் முகவரியில் குறிப்பிடுவதன் மூலம் (இந்த வழக்கில் டிஜிட்டல் potentiometer ஐசி).
void loop () { Wire.beginTransmission (44); // சாதனம் # 44 (0x2c) க்கு அனுப்பவும்
பின்னர், வரிசை பைட்டுகள் அதாவது எழுதும் () செயல்பாட்டுடன் ஐ.சி.க்கு அனுப்ப விரும்பும் தரவு.
வயர்.ரைட் (பைட் (0x00)); // அறிவுறுத்தல் பைட் வயர்.ரைட் (வால்) அனுப்புகிறது ; // பொட்டென்டோமீட்டர் மதிப்பு பைட்டை அனுப்புகிறது
EndTransmission () ஐ அழைப்பதன் மூலம் அவற்றை அனுப்பவும் .
வயர்.இன்ட் டிரான்ஸ்மிஷன் (); // வால் ++ கடத்துவதை நிறுத்து ; // அதிகரிப்பு மதிப்பு என்றால் (val == 64) {// 64 வது இடத்தை அடைந்தால் (அதிகபட்சம்) val = 0; // குறைந்த மதிப்பிலிருந்து தொடங்கு } தாமதம் (500); }
