මයික්රෝකොන්ට්රෝලරයේ පරිපථ අතර දත්ත හුවමාරුව සදහා ඇති ඒකක
මයික්රෝකොන්ට්රෝලර යොදාගෙන විවිධ නිර්මාණ සිදුකරන
විට වෙනත් උපාංග(GSM මොඩියුලය,Bluetooth මොඩියුලය,LCD, computer ආදී දේ ) හෝ වෙනත් මයික්රෝකොන්ට්රෝලර පද්ධති සමඟ දත්ත හුවමාරු
කරගැනීමට සිදුවේ. මේ සදහා ප්රධාන වශයෙන් දත්ත හුවමාරු කරගැනීමේ සම්මත ක්රම දෙකක්
ඇත.
- serial communication
- parallel communication
මෙම ආකාර දෙකෙන්ම දත්ත හුවමාරු කරගැනීම සදහා PIC16F877A මයික්රෝකොන්ට්රෝලරයේ
පහසුකම් සපයා ඇත.
Parallel communication
සමාන්තරගත දත්ත හුවමාරු කරගැනීමේදී යැවීමට ඇති සියලුම බිටු වෙන වෙනම එකවර යවනු ලැබේ.මේ සදහා යවන්නා සහ ලබාගන්නා අතර බිටු ගණනට වෙන වෙනම සම්බන්දතා තිබිය යුතුය. පහත දැක්වෙන්නේ බිටු 8 ක් යොදාගෙන සමාන්තරගතව දත්ත යැවෙන ආකාරයයි.
PIC16F877A මයික්රෝකොන්ට්රෝලරයේ PORTD හි පින් 8 මේ සදහා පහසුකම්
සපයනු ලබයි.
පහත දක්වා ඇති ප්රයෝගිකව ඇති අවාසි ගණනාවක්
නිසා, මයික්රෝකොන්ට්රෝලර
යොදාගැනෙන පරිපථවල සමාන්තර දත්ත සම්ප්රේෂණය
බොහෝ විට යොදානොගැනේ. එහෙත් සමාන්තර දත්ත සම්ප්රේෂණය
වේගවත් වන අතර මීටර කිහිපයක කෙටි දුරක් සඳහා කදිම විසඳුම සමාන්තර දත්ත සම්ප්රේෂණය
වේ.
·
සමාන්තර දත්ත
සම්ප්රේෂණයේදී දත්ත බිටු ගණනටම වයර් අවශ්යය බැවින් මිල අධික විය හැකිය
·
දත්ත බිටු
ගණනටම මයික්රෝකොන්ට්රෝලරයේ පින් අවශ්ය
වීම
·
දත්ත සම්ප්රේෂණය
කෙටි දුරකට පමණක් සීමාවේ.
·
වයර් වල
සමීපත්වය නිසා ක්රොස්ටොක් ඇතිවීම නිසා දත්ත විකෘති වීම සිදු වේ.
Serial communication
සිරියල් දත්ත සම්ප්රේෂණය ඉහත සමාන්තර දත්ත
සම්ප්රේෂණයේදී ඇති වු සියලු ගැටලුවලට
පිළිතුරු සපයයි.
සිරියල් දත්ත
සම්ප්රේෂණයේදී වරකට එක් බිටුව බැගින් බිටු එකක් පසු පස එකක් ලෙස
බිට් ගමන් කරමින් දත්ත සම්ප්රේෂණය සිදුකරයි.එමනිසා දත්ත බිටු ගමන් කරවීමට
වෙන වනම මාර්ග අවශ්යය නොවන අතර සියලුම බිටු එකම මාර්ගයේ ගමන් කරවිය හැක.එමනිසා
උපාංග දෙක අතර දත්ත සම්ප්රේෂණය සදහා අවශ්යය වන සම්බන්දක ගණන අවම වේ.එමනිසා මෙම
ක්රමය ඉතා ලාබදායි වන අතර දත්ත ගමන්කරවිය හැකි දුර ප්රමාණයද ඉහල වේ.
එහෙත් මෙම සිරියල් දත්ත
සම්ප්රේෂණය ඉතා සංකීර්ණ කාර්යක් වේ.නමුත් මෙම සංකීර්ණතාව මගහරිමින් විවිධ අවශ්යය
තාවයන්ට ගැලපෙන ආකාරයට සිරියල් ක්රමයට දත්ත සම්ප්රේෂණය සඳහා SPI,I2C,UART ආදී ලෙස විවිධ දත්ත සම්ප්රේෂණ
පද්ධති හෙවත් ප්රොටෝකෝල(උපාංග දෙක අතර දත්ත සම්ප්රේෂණය සදහා පිළිගත් නිති
මාලාවක්) කිහිපයක් හදුන්වා දී ඇත.
මයික්රෝකොන්ට්රෝලර තුලද මෙම දත්ත සම්ප්රේෂණ පද්ධතිවලට අවශ්යය වන
එකක් අන්තර්ගත කොට ඇත. මෙම කුමන පද්ධතිය භාවිතා කර
දත්ත සම්ප්රේෂණය කරනවාද
යන්න පහත කරුනු අනුව තීරණය කර සුදුසු දත්ත සම්ප්රේෂණ ක්රමය තෝරා ගත හැක.
·
මයික්රෝකොන්ට්රෝලරය
සමග දත්ත හුවමාරු කර ගැනීමට ඇති උපාංග හෝ පද්ධති කීයක් තිබේද?
·
දත්ත හුවමාරු
කර ගැනීමට ඇති උපාංගවල ස්වභාවය
·
දත්ත හුවමාරුව
කෙතරම් වේගවත් විය යුතුද?
·
උපාංග අතර ඇති
දුර කුමක්ද?
·
එකවර දත්ත
යැවීම සහ ලැබීම අවශ්යද?
මෙම සිරියල් දත්ත සම්ප්රේෂණ පද්ධති Asynchronous
හා synchronous ලෙස ප්රධාන වර්ග දෙකකට බෙදා දැක්විය හැක.
Asynchronous ලෙස දත්ත සම්ප්රේෂණ ක්රියාවලියේදී
clock
signal එකක් බාවිතා
නොකෙරේ.UART (RS-232 හෝ SCI ලෙසද හැඳින්වේ) ක්රමයට දත්ත හුවමාරුව Asynchronous වේ. දත්ත සම්ප්රේෂණය synchronous වු විට clock
signal එකක් බාවිතා
කරන අතර SPI ,I2C දත්ත සම්ප්රේෂණ ක්රම synchronous වේ.
I2C (INTER INTEGRATED CIRCUIT) අන්තර්-ඒකාබද්ධ පරිපථය
I2C, හෝ අන්තර්-ඒකාබද්ධ පරිපථය යනු මයික්රෝකොන්ට්රෝලර
පාලක පද්ධතිවල බහුලව භාවිතා වන සිරියල් ක්රමයට දත්ත සන්නිවේදන ප්රොටෝකෝලයකි.මෙම
ක්රමය යොදාගනු ලබන්නේ මයික්රෝකොන්ට්රෝලරය සහ සංගෘහිත පරිපථ අතර සිරියල් ක්රමයට
දත්ත හුවමාරු කරගැනීම සදහා වේ. මෙහිදී දත්ත යවන්නා සහ ලබාගන්නා අතර දුර කෙටිවිය
යුතුය.බොහෝ විට දත්ත යවන්නා සහ ලබාගන්නා එකම මුද්රිත පුවරුවේ ඇත.
මෙම ක්රියාවලියේදී දත්ත යවන්නා සහ ලබාගන්නා
අතර සම්බන්දතා දෙකක් පමණක් යොදාගනු ලබයි. එකක් දත්ත
හුවමාරුව සඳහා භාවිතා කරන අතර අනෙක clock signal සඳහා භාවිතා කරයි.ඒවා පිළිවෙලින් SDA සහ SCL ලෙස හැදින්වේ.මෙහිදීද
උපාංග කිහිපයක් එකට සම්බන්දකර සන්නිවේදනය සිදුකරගත හැක.
ඉහත රූපයේ දැක්වෙන්නේ I2C ක්රමයට දත්ත
සන්නිවේදනය සදහා යෙදාගන්නා පරිපථයක දළ සටහනකි.මෙහිදී මයික්රෝකොන්ට්රෝලරය සැමවිටම ප්රධාන වේ එය MASTER ලෙසද අනෙක් උපාංග
සියල්ල SLAVE ලෙසද හැදින්වේ. MASTER විසින් සන්නිවේදනය
කරන්නේ කුමන SLAVE උපාංගය
සමගදැයි තීරණය කරයි.
සාමාන්යයෙන් සෑම I2C උපාංගයකම එය හදුනා ගැනීමට address එකක් ඇත. සන්නිවේදනය ආරම්භ කිරීමට පෙර MASTER විසින් එම address එක යොදාගෙන එක් එක් SLAVE උපාංගය ඇමතීම සිදු කරයි. එම address එකට අදාල SLAVE උපාංගය විසින් Acknowledgment
signal එකක් MASTER වෙත එවනු ලබයි. ඉන්
අනතුරුව එම උපාංග අතර දත්ත සන්නිවේදනය සිදුකරගනු
ලබයි.
SPI (SERIAL PERIPHERAL INTERFACE)
SPI සන්නිවේදන ක්රමයද මයික්රෝකොන්ට්රෝලර
පාලක පද්ධතිවල
සිරියල් ආකාරයට දත්ත සම්ප්රේෂණය සදහා බහුලව භාවිතා වන සන්නිවේදන ප්රොටෝකෝලයකි. SPI ක්රමය
බොහෝවිට භාවිතා කරන්නේ Sensors, liquid crystal displays, memory
cards ආදී උපාංග හෝ
තවත් මයික්රෝකොන්ට්රෝලර පද්ධතියක් හෝ පද්ධති අතර සන්නිවේදනය සිදුකර ගැනීම සදහා
වේ.UART ක්රමයේදී
මෙන් නොව මෙහිදී උපාංග කිහිපයක් එකට සම්බන්දකර සන්නිවේදනය සිදුකරගත හැක.
ඉහත රූපයේ දැක්වෙන්නේ SPI ක්රමයට දත්ත
සන්නිවේදනය සදහා යෙදාගන්නා පරිපථයක දළ සටහනකි.මෙම සන්නිවේදන ක්රමයෙදී, උපාංග දෙකක් අතර සන්නිවේදනය
සිදුකර ගැනීම සදහා
සම්බන්දතා හතරක් යොදාගනු ලබයි. ඒවා පහත දැක්වෙන ආකාරයට නම්
කර දැක්වනු ලබයි.
SCLK-Serial Clock
SDI- Serial Data In
SDO- Serial Data Out
CS-Chip Select (Active low)
·
SPI සන්නිවේදන ක්රමය
synchronous දත්ත සම්ප්රේෂණ පද්ධතියක්
වේ.එබැවින් ඉන් එක් සම්බන්දතාවයක් clock signal එක සඳහා භාවිතා කලයුතුය.එය SCLK ලෙස නම් කරනු ලබයි.
·
UART ක්රමයේ දී
මෙන් මෙහිදී ද දත්ත යැවීමට (Data transmit or send) එක් සම්බන්දතාවක් ද සහ දත්ත ලබාගැනීමට (Data
receive) තවත් සම්බන්දතාවක්
ද ලෙස වෙන වෙනම සම්බන්දක දෙකක් බාවිතාකරයි.එබැවින් දත්ත යැවීම සහ ලබා ගැනීම එකවර
සිදුකර ගතහැකිවේ.එමනිසා මෙම සන්නිවේදන ක්රමයද full duplex සන්නිවේදන
ක්රමයක් වේ.
මෙම සම්බන්දතා
දෙක පිළිවෙලින් SDI හා SDO ලෙස නම් කරනු
ලබයි.
·
ඉතිරි
සම්බන්දතාවය, උපාංග අතර
සන්නිවේදනය සිදුකරන විට උපාංග වෙන වෙනම හදුනා ගැනීම සදහා බාවිතා කරයි. මෙම සම්බන්දතාව CS ලෙස නම් කරනු ලබයි.
UART (UNIVERSAL ASYNCHRONOUS RECEIVER/TRANSMITTER)
මෙම ක්රමය බොහෝ විට යොදාගනු ලබන්නේ උපාංග දෙකක් අතර
සන්නිවේදනය සිදුකර ගැනීම සදහා වේ. මෙම සන්නිවේදන පද්ධතිය Asynchronous දත්ත සම්ප්රේෂණ
පද්ධතියක් වේ.එබැවින් clock signal එකක් මෙහිදී යොදාගනු නොලබයි.මෙම ක්රමය බොහෝ විට යොදාගනු
ලබන්නේ මයික්රෝකොන්ට්රෝලරය හා පරිඝනකය,GSM උපාංග අදිය සමග සන්නිවේදනය
සිදුකර ගැනීම සදහා වේ.
UART ක්රමයට දත්ත සම්ප්රේෂණය සදහා මයික්රෝකොන්ට්රෝලරයේ
පින් දෙකක් පමණක් ප්රමාණවත් වේ. 16F877A මයික්රෝකොන්ට්රෝලරයේ
පින් 25 හා 26 මේ සදහා යොදාගනු ලබයි.ඒවා පිළිවෙලින් Tx හා Rx ලෙස හදුන්වනු ලබයි.මෙහි
Tx පින් එක මයික්රෝකොන්ට්රෝලරයේ
සිට අනෙක් උපාංගය දක්වා සිරියල් ක්රමයට
දත්ත බිටු ගමන් කරවීම(Data Transmit) සදහා යොදාගනු ලබන අතර Rx පින් එක අනෙක් උපාංගයේ සිට මයික්රෝකොන්ට්රෝලරයට
දත්ත බිටු රැගෙන ඒම(Data receive) සදහා යොදාගන් ලබයි.මෙහිදී Data
Transmit කිරීමට සහ Data
receive සදහා වෙන
වෙනම සම්බන්දතා දෙකක් යොදා ගන්නා බැවින් දෙදිශාවටම එකවර උවද දත්ත සම්ප්රේෂණය
සිදුකර ගත හැක.මෙවැනි දෙපසටම ඒකවර දත්ත සම්ප්රේෂණය
කලහැකි පද්ධතියක් තාක්ෂණ ව්යවහාරයේදී Full Duplex සන්නිවේදනයක් ලෙස හදුන්වනු ලබයි.
ඕනෑම
දත්ත සම්ප්රේෂණ පද්ධතියක් උපාංග දෙක අතර සන්නිවේදනය කිරීමේදි යම් ක්රමවේදයකට
හෙවත් නිති මාලාවකට අනුව සන්නිවේදනය
සිදුකරනු ලබයි. UART
ක්රමයට දත්ත සම්ප්රේෂණය
කිරීමේදි යොදාගන්නා ප්රොටෝකෝලය හෙවත් නිති මාලාව RS232 ක්රමය වේ.මෙම ක්රමය ඉතා සරල දත්ත සන්නිවේදන ක්රමයක්
වේ.මෙම ක්රමයේදි යොදා ගන්නා නිති මාලාව පහත දැක්වේ
·
දත්ත සම්ප්රේෂණයේ
දී, දත්තයේ ආරම්භය හා අවසානය හදුනා ගැනීම සදහා බිටු
දෙකක් යොදාගනු ලබයි.ඒවා ආරම්භක සහ නැවතුම් බිටු ලෙස හැදින්වේ.
·
දත්ත යවන්නාගේ
හා දත්ත ලබාගන්නාගේ දත්ත සම්ප්රේෂණ වේගය (baud rate) සමාන විය යුතුය.
·
දත්ත මාර්ගය
අක්රිය
තත්වයේ දී හෙවත් දත්ත සම්ප්රේෂණය නොකරන විට,දත්ත මාර්ගය ඉහළ
තාර්කික මට්ටමක් ඇත (1)
·
සෑම දත්ත
සම්ප්රේෂණයක්ම ආරම්භ වන්නේ සෑම විටම ශුන්ය (0) යෙනි.මෙය START බිට් ලෙස හදුන්වනු
ලබයි.
·
මෙහිදී සම්ප්රේෂණය
කරන සෑම දත්තයක්ම 8 හෝ 9-පළල බිටුවක් වේ (LSB බිට් පළමුව යවනු ලැබේ)
·
එක් දත්තයක්
සම්ප්රේෂණය අවසන් වන්නේ සෑම විටම එකක් (1) වන බිට් එකකින් එය STOP බිට් ලෙස හදුන්වනු
ලබයි.