இங்கே நாம் ஒரு ATmega8 மைக்ரோகண்ட்ரோலருக்கும் Arduino Uno க்கும் இடையில் ஒரு தகவல்தொடர்புகளை நிறுவப் போகிறோம். இங்கே நிறுவப்பட்ட தகவல் தொடர்பு UART (யுனிவர்சல் ஒத்திசைவற்ற ரிசீவர் டிரான்ஸ்மிட்டர்) வகை. இது தொடர் தொடர்பு. இந்த தொடர் தகவல்தொடர்பு தரவை இரண்டு கட்டுப்படுத்திகளுக்கு இடையில் பகிரலாம், இது பல்வேறு உட்பொதிக்கப்பட்ட கணினி பயன்பாடுகளில் தேவைப்படுகிறது.
உட்பொதிக்கப்பட்ட அமைப்புகளில் கணினி தகவல்தொடர்புகள் பற்றிய அடிப்படை அறிவு நம்மிடம் இருக்க வேண்டும், எனவே இதற்காக நாங்கள் இந்த திட்டத்தை செய்கிறோம். இந்த திட்டத்தில் நாங்கள் அடிப்படை தகவல்தொடர்பு அமைப்பு பற்றி விவாதிப்போம், மேலும் டிரான்ஸ்மிட்டரிலிருந்து சில தரவுகளை சீரியலில் ரிசீவருக்கு அனுப்புவோம்.
இந்த திட்டத்தில் ATMEGA8 ஒரு டிரான்ஸ்மிட்டராகவும், ARDUINO UNO ஒரு பெறுநராகவும் செயல்படுகிறது. தொடர் தகவல்தொடர்புகளில், ஒரு BYTE தரவு முழுமையாக மாற்றப்படும் வரை, BIT BIT மூலம் தரவை அனுப்புவோம். தரவு 10 பிட் அளவு இருக்கக்கூடும், ஆனால் இப்போது 8BITS இல் வைத்திருப்போம்.
கூறுகள் தேவை
வன்பொருள்: ATMEGA8, ARDUINO UNO, மின்சாரம் (5v), AVR-ISP PROGRAMMER, 100uF மின்தேக்கி (மின்சாரம் முழுவதும் இணைக்கப்பட்டுள்ளது), 1KΩ மின்தடை (இரண்டு துண்டுகள்), எல்.ஈ.டி, பொத்தான்.
மென்பொருள்: அட்மல் ஸ்டுடியோ 6.1, ப்ரோகிஸ்ப் அல்லது ஃபிளாஷ் மேஜிக், ARDUINO NIGHTLY.
சுற்று வரைபடம் மற்றும் விளக்கம்

டிரான்ஸ்மிட்டர் மற்றும் ரிசீவருக்கான சுற்று வரைபடம் மற்றும் நிரலாக்கத்தைப் பற்றி விவாதிப்பதற்கு முன் , தொடர் தொடர்பு பற்றி நாம் புரிந்து கொள்ள வேண்டும். இங்குள்ள ஏடிஎம்இஜிஏ முன்னர் விவாதித்தபடி சீரியலில் யுஎன்ஓவுக்கு தரவை அனுப்புகிறது.
இது மாஸ்டர் ஸ்லேவ் கம்யூனிகேஷன், JTAG கம்யூனிகேஷன் போன்ற பிற தகவல்தொடர்பு முறைகளைக் கொண்டுள்ளது, ஆனால் எளிதான தகவல்தொடர்புக்காக நாங்கள் RS232 ஐ தேர்வு செய்கிறோம். இங்கே நாம் ATMEGA8 இன் TXD (டிரான்ஸ்மிட்டர்) PIN ஐ ARDUINO UNO இன் RXD (ரிசீவர்) PIN உடன் இணைப்போம்.
நிறுவப்பட்ட தரவு தொடர்பு பின்வருமாறு திட்டமிடப்பட்டுள்ளது:
- எட்டு தரவு பிட்கள்
- இரண்டு நிறுத்த பிட்கள்
- பரிதி காசோலை பிட் இல்லை
- பாட் வீதம் 9600 பிபிஎஸ் (வினாடிக்கு பிட்கள்)
- ஒத்திசைவற்ற தொடர்பு (ATMEGA8 மற்றும் UNO க்கு இடையில் கடிகாரப் பங்கு இல்லை (இரண்டுமே வெவ்வேறு கடிகார அலகுகளைக் கொண்டுள்ளன))
Arduino Uno மற்றும் ATMEGA8 க்கு இடையில் UART ஐ நிறுவுவதற்கு நாங்கள் அமைப்பை துல்லியமாக நிரல் செய்ய வேண்டும். இதற்காக நாம் மேலே குறிப்பிட்ட அளவுருக்களை இரு முனைகளிலும் ஒரே மாதிரியாக வைத்திருக்க வேண்டும். இதில் ஒன்று TRANSMITTER ஆகவும் மற்றொன்று RECEIVER ஆகவும் செயல்படுகிறது. ஒவ்வொரு பக்க அமைப்புகளையும் கீழே விவாதிப்போம்.
இப்போது RS232 இடைமுகத்திற்கு, TRANSMITTER பக்கத்திற்கு (ATMEGA8) பின்வரும் அம்சங்கள் பூர்த்தி செய்யப்பட வேண்டும்:
1. முதல் கட்டுப்படுத்தியின் TXD முள் (தரவு பெறும் அம்சம்) TRANSMITTER க்கு இயக்கப்பட வேண்டும்.
2. தகவல்தொடர்பு சீரியல் என்பதால், தரவு பை பெறும்போதெல்லாம் நாம் தெரிந்து கொள்ள வேண்டும், இதன் மூலம் முழுமையான பைட் பெறும் வரை நிரலை நிறுத்தலாம். தரவு முழுமையான குறுக்கீட்டைப் பெறுவதன் மூலம் இது செய்யப்படுகிறது.
3. தரவு 8 பிட் பயன்முறையில் கட்டுப்படுத்திக்கு அனுப்பப்படுகிறது. எனவே ஒரு நேரத்தில் இரண்டு எழுத்துக்கள் கட்டுப்படுத்திக்கு அனுப்பப்படும்.
4. சமநிலை பிட்கள் எதுவும் இல்லை, தொகுதி அனுப்பிய தரவுகளில் ஒரு நிறுத்த பிட்.
மேலே உள்ள அம்சங்கள் கட்டுப்பாட்டு பதிவேட்டில் அமைக்கப்பட்டுள்ளன; அவற்றைச் சுருக்கமாக விவாதிக்கப் போகிறோம்:

டார்க் கிரே (யு.டி.ஆர்.இ): இந்த பிட் தொடக்கத்தின்போது அமைக்கப்படவில்லை, ஆனால் டிரான்ஸ்மிட்டர் கடத்த தயாராக இருக்கிறதா இல்லையா என்பதைச் சரிபார்க்க இது வேலை செய்யும் போது பயன்படுத்தப்படுகிறது. மேலும் விவரங்களுக்கு TRASMITTER SIDE இல் நிரலைப் பார்க்கவும்.
VOILET (TXEN): TRASMITTER SIDE இல் டிரான்ஸ்மிட்டர் முள் இயக்க இந்த பிட் அமைக்கப்பட்டுள்ளது.
YELLOW (UCSZ0, UCSZ1, மற்றும் UCSZ2): இந்த மூன்று பிட்கள் ஒரே நேரத்தில் நாம் பெறும் அல்லது அனுப்பும் தரவு பிட்களின் எண்ணிக்கையைத் தேர்ந்தெடுக்கப் பயன்படுகின்றன.

இரண்டு SIDES க்கு இடையிலான தொடர்பு எட்டு பிட் தகவல்தொடர்புகளாக நிறுவப்பட்டுள்ளது. எங்களிடம் உள்ள அட்டவணையுடன் தகவல்தொடர்புகளை பொருத்துவதன் மூலம், UCSZ0, UCSZ1 ஒன்றுக்கு மற்றும் UCSZ2 பூஜ்ஜியத்திற்கு.
ஆரஞ்சு (UMSEL): கணினி ஒத்திசைவில் தொடர்பு கொள்கிறதா (இரண்டும் வெவ்வேறு கடிகாரத்தைப் பயன்படுத்துகின்றன) அல்லது ஒத்திசைவாக (இரண்டும் ஒரே கடிகாரத்தைப் பயன்படுத்துகின்றன) என்பதை அடிப்படையாகக் கொண்டு இந்த பிட் அமைக்கப்பட்டுள்ளது.

SYTEMS இரண்டும் எந்த கடிகாரத்தையும் பகிர்ந்து கொள்ளாது. இருவரும் தங்கள் சொந்த உள் கடிகாரத்தை பயன்படுத்துவதால். எனவே இரண்டு கட்டுப்படுத்திகளிலும் UMSEL ஐ 0 ஆக அமைக்க வேண்டும்.
பசுமை (UPM1, UPM0): இந்த இரண்டு பிட்களும் நாங்கள் தகவல்தொடர்புகளில் பயன்படுத்தும் பிட் சமத்துவத்தின் அடிப்படையில் சரிசெய்யப்படுகின்றன.

தரவு ஏடிஎம்இஜிஏ எந்த சமநிலையுமின்றி தரவை அனுப்ப திட்டமிடப்பட்டுள்ளது, தரவு பரிமாற்ற நீளம் சிறியதாக இருப்பதால், தரவு இழப்பு அல்லது பிழையை நாம் தெளிவாக எதிர்பார்க்க முடியாது. எனவே நாங்கள் இங்கு எந்த சமநிலையையும் அமைக்கவில்லை. எனவே UPM1, UPM0 இரண்டையும் பூஜ்ஜியமாக அமைத்துள்ளோம் அல்லது அவை எஞ்சியுள்ளன, ஏனென்றால் எல்லா பிட்களும் முன்னிருப்பாக 0 ஆகும்.
நீலம் (யு.எஸ்.பி.எஸ்): தகவல்தொடர்பு போது நாம் பயன்படுத்தும் ஸ்டாப் பிட்களின் எண்ணிக்கையைத் தேர்ந்தெடுக்க இந்த பிட் பயன்படுத்தப்படுகிறது.

அவளை நிறுவிய தகவல் ஒத்திசைவற்ற வகையாகும், எனவே மிகவும் துல்லியமான தரவு பரிமாற்றம் மற்றும் வரவேற்பைப் பெறுவதற்கு, நாங்கள் இரண்டு நிறுத்த பிட்களைப் பயன்படுத்த வேண்டும், எனவே யு.எஸ்.பி.எஸ்ஸை டிரான்ஸ்மிட்டர் பக்கத்தில் '1' ஆக அமைத்துள்ளோம்..
பொருத்தமான UBRRH ஐத் தேர்ந்தெடுப்பதன் மூலம் பாட் வீதம் கட்டுப்படுத்தியில் அமைக்கப்படுகிறது:

UBRRH மதிப்பு குறுக்கு குறிக்கும் பாட் வீதம் மற்றும் CPU படிக அதிர்வெண் மூலம் தேர்ந்தெடுக்கப்படுகிறது:

எனவே குறுக்கு குறிப்பு மூலம் யுபிஆர்ஆர் மதிப்பு '6' ஆகக் காணப்படுகிறது, எனவே பாட் வீதம் அமைக்கப்படுகிறது.
இதன் மூலம் TRANSMITTER SIDE இல் அமைப்புகளை நிறுவியுள்ளோம்; பக்கத்தைப் பெறுவது பற்றி இப்போது பேசுவோம்.
ஒற்றை கட்டளையைப் பயன்படுத்தி UNO இல் தொடர் தொடர்பு செயல்படுத்த முடியும்.
|
நாங்கள் நிறுவுவதாகக் கருதப்படும் தொடர்பு வினாடிக்கு 9600 பிட்கள் என்ற BAUD வீதத்தால் செய்யப்படுகிறது. எனவே யு.என்.ஓ அத்தகைய பாட் வீதத்தை நிறுவுவதற்கும் தொடர் தகவல்தொடர்புகளைத் தொடங்குவதற்கும் ”சீரியல்.பெஜின் (9600);” என்ற கட்டளையைப் பயன்படுத்துகிறோம். இங்கே 9600 பாட் வீதம் மற்றும் மாற்றக்கூடியது.
தரவைப் பெறுவதற்கு இப்போது அனைத்தும் மீதமுள்ளன, ஒரு தரவு UNO ஆல் பெறப்படுகிறது, அது எடுப்பதற்கு கிடைக்கும். இந்தத் தரவு “receiveddata = Serial.read ();” கட்டளை மூலம் எடுக்கப்படுகிறது. இந்த கட்டளையின் மூலம் தொடர் தரவு முழு எண் எனப்படும் 'ரிச்ட்டேட்டா'வுக்கு எடுத்துச் செல்லப்படுகிறது.
சர்க்யூட்டில் காட்டப்பட்டுள்ளபடி, டிரான்ஸ்மிட்டர் பக்கத்தில் இணைக்கப்பட்டுள்ள ஒரு பொத்தானை அழுத்தும்போது, எட்டு பிட் தரவை அழுத்தும் போது TRANSMITTER (ATMEGA8) அனுப்பும், மேலும் இந்த தரவை RECEIVER (ARDUINO UNO) பெறுகிறது. இந்தத் தரவை வெற்றிகரமாகப் பெறும்போது, இரண்டு கட்டுப்படுத்திகளுக்கு இடையில் வெற்றிகரமான தரவு பரிமாற்றத்தைக் காண்பிப்பதற்காக, அதனுடன் இணைக்கப்பட்ட எல்.ஈ.டி.
இதன் மூலம் ATMEGA8 கட்டுப்படுத்திக்கும் ARDUINO UNO க்கும் இடையிலான UART தொடர்பு வெற்றிகரமாக நிறுவப்பட்டுள்ளது.
