මයික්රෝකොන්ට්රෝලරය යොදාගෙන RS232 ක්රමය මගින් දත්ත සංනිවේදනය කිරීම
RS232 යනු?
RS232 යනු ඉලෙක්ට්රොණික පරිපථ අතර සිරියල් ක්රමයට දත්ත හුවමාරුව සිදුකර
ගැනීම සදහා (EIA) සහ (TIA) සංගමයන් විසින් වැඩි දියුණු කර
හදුන්වා දුන් සංනිවේදන ප්රට්රෝකෝලයකි.මෙම ක්රමය බහුලව යොදාගනු ලැබුවේ පරිඝණකය
සමග විවිධ බාහිර උපකරණ සම්බන්ධකර
සංනිවේදනය සිදුකරගැනීම සදහා වේ. මේ සදහා වෙනම connecter එකක් පරිඝණකයේ පිටුපසින් පිහිටුවා ඇත.ඒ මගින් බාහිර උපකරනයේ RS232 connecter එක සමග කේබල් එකක් ආධාරයෙන් සම්බන්ද කර සංනිවේදන
කටයුතු සිදුකර ගත හැක
මේ ආකාරයට RS232 ක්රමය යොදාගෙන සංනිවේදනය කිරීම සදහා පරිඝණකයේ ප්රධාන connecter වර්ග දෙකක් යොදාගනු ලබයි.
- 25– pin connector (DB25 Connector)
- 29 – pin connector (DE-9 Connector)
RS232 හි සම්පූර්ණ ක්රියාකාරීත්වයට
සහය දැක්වීම සඳහා DB25 connector එක RS232 නිර්මාණ
කරුවන් විසින් නියම කර ඇති අතර ඉලෙක්ට්රොනික තාක්ෂනයේ
දියුණුවත් සමග ඉලෙක්ට්රොනික උපකරණ සහ උපාංග කුඩා වීම තුලින් මෙලෙස DB25 connector වැනි විශාල connector යොදාගැනීම ප්රයෝගික
නොවීය.එමනිසා පින් 9 ක් සහිත connector යොදාගනු
ලබයි.මෙම පින් 9 බොහෝ යෙදවුම් සමග සම්බන්දකර සංනිවේදනය කිරීම සදහා ප්රමාණවත් වේ.
මයික්රෝකොන්ට්රෝලර මගින් RS232 ක්රමය යොදාගෙන දත්ත සංනිවේදනය කිරීම
මයික්රෝකොන්ට්රෝලර
සතුවද RS232 ප්රට්රෝකෝලය
යොදාගෙන සිරියල් ක්රමයට සංනිවේදනය කිරීමට ඒකකයක් අන්තර්ගත කොට ඇත. UART (Univarsal Asynchronous Receiver/Trasmitter) යනු එලෙස මයික්රෝකොන්ට්රෝලර
ආදී integrated උපාංග වල මෙම ප්රෙට්රෝකෝල
යොදාගෙන සංනිවේදනය කිරීම සදහා අන්තර් ගත කොට ඇති ඒකකයකි.අදවන විට නිපදවන සියලුම මයික්රෝකොන්ට්රෝලර මෙම ඒකකය ඇතුලත් කර ඇත.ඒ අනුව මයික්රෝකොන්ට්රෝලරයේ tx හා rx ලෙස පින් දෙකක් ඇත්තේ
මේ ආකාරයට සංනිවේදනය සිදු කර ගැනීම සදහා වේ.මෙම සංනිවේදන ක්රමය
බොහෝවිට මයික්රෝකොන්ට්රෝලර පද්ධති
විසින් යොදාගනු ලබන්නේ පරිඝණක,GSM උපකරණ ආදිය
සමග සංනිවේදනය කිරීම සදහා වේ.පහත දැක්වෙන්නේ PIC16F877A මයික්රෝකොන්ට්රෝලරය හා Arduino හී RS232 මගින් සංනිවේදනය
කිරීම සදහා වෙන්කර ඇති පින් වේ.
මයික්රෝකොන්ට්රෝලර
යොදාගෙන RS232 ක්රමයට
දත්ත සංනිවේදනය කිරීමට නම් RS232 ප්රට්රෝකෝලය
ක්රියාත්මක වන ආකාරය පිළිබදව විමසා බැලිය යුතුය.
How RS232 Works?
මෙම සංනිවේදන
ක්රමය asynchronous ,fullduplex දත්ත සම්ප්රේෂණ
පද්ධතියක් වේ. එබැවින් clock signal එකක් මෙහිදී
යොදාගනු නොලබන අතර එකවිට දත්ත යැවීම සහ ලබා ගැනීම සිදු කරනු ලබයි.මෙහිදී සිරියල් ක්රමයට දත්ත ගමන්
කරවන නිසා උපාංග දෙක අතර එක් සම්බන්දතාවක් පමණක් තිබීම ප්රමාණවත් වේ.එහෙත් මෙය fullduplex සංනිවේදනයක් වේ.එබැවින්
දත්ත යැවීම සහ ලබා ගැනීම එකවිට සිදුවන නිසා උපාංග දෙක අතර සම්බන්දතා දෙකක් පැවතිය
යුතුය.එනම් දත්ත යැවීමට සහ ලබා ගැනීමට වෙන වෙනම සම්බන්දතා පැවතිය යුතුය.ඒ අනුව RS232 ක්රමයට
දත්ත සම්ප්රේෂනය සදහා අවම වශයෙන් සම්බන්දතා තුනක් තිබීම(GND එක සමග) ප්රමාණවත්
වේ. පහත දැක්වෙන්නේ එම සම්බන්ද කිරීම සිදු
කරන ආකාරය වේ.
මෙහිදී
සංනිවේදනය හසුරවන උපාංගය DTE (Data Terminal Equipment) ලෙසද අනෙක්
උපාංගය DCE (Data Communication Equipment) ලෙසද හැදින් වේ.උදාහරනයක් ලෙස පරිඝණකයක් හා
මොඩම් එකක් සම්බන්ද කර ඇතිවිට පරිඝණකය DTE ලෙසද මොඩම්
එක DCE ලෙස හැදින්
වේ.ඒ අනුව මෙම සංනිවේදනයේ වැදගත්ම කාර්ය සිදු කරනු ලබන්නේ DTE උපාංගය විසින් වේ. DCE උපාංගය මගින්
කරනු ලබන්නේ DTE විසින් ලබා
දෙන උපදෙස් අනුව සංනිවේදනය සිදු කිරීමයි.
මෙම සංනිවේදනය
අනෙක් සංනිවේදන ක්රම හා සසදන විට ඉතා සරල වන අතර මෙහිදී අනුගමනය කල යුතු නිති
පිළිබදව මීට පෙර පැහැදිලි කිරීම සිදු කර ඇත.ඒ අනුව මෙම නිති අනුගමනය කරමින් දත්ත
සංනිවේදනය කරන ආකාරය විමසා බලමු.
උපාංග දෙකක්
අතර සංනිවේදනය සිදු කරනු ලබන්නේ දත්ත හුවමාරු
කරගැනීමට වේ.එම දත්ත තුල විවිධ තොරතුරු ,උපදෙස් ,විධාන ආදිය තිබිය හැක.එම සෑම
දත්තයක්ම සමන්විත වන්නේ බිට් පැටන් වල එකතුවෙනි. දත්තයේ ස්භාවය අනුව මෙම බිට්
විවිධ ප්රමාණයන්ගෙන් යුක්ත විය හැක.
උදාහරනයක් ලෙස
ජයාරූපයක් ලෙස ඇති jpg format එකේ දත්තයක්
ගත්විට එහි කිලෝබයිට් 70 පමණ ඇත.එනම් මෙහි බිට් 573440 ක් ඇත.
8 bit= 1byte
1024 byte=
8192 bit
1024 byte=1kilo
byte
70 kilo byte=573440
bit
මේ අනුව පැහැදිලි වන්නේ යම් දත්තයක් ගත් විට එය විශාල බිට් ගණනකින් යුක්ත වන බවයි.ඒ අනුව දත්ත සංනිවේදනය සිදුකිරීමේදී ප්රථමයෙන් සිදු කරනු ලබන්නේ මෙම බිට් ප්රමාණය කුඩා කොටස්වලට වෙන්කරනු ලැබීමයි.මෙම කුඩා කොටසක් තාක්ෂණිත ව්යවහාරයේදී data Frame එකක් ලෙස හැදින් වේ.ඒ අනුව උපාංග දෙක අතර සංනිවේදනය සිදු කිරීමේදී එක් උපාංගයක සිට අනෙක් උපාංගයට මෙම data Frame එකින් එක යවනු ලබයි.මෙම data Frame ලබා ගන්නා උපාංගයෙන් සිදු කරනු ලබන්නේ මෙම data Frame සියල්ල එක් කොට නැවත දත්තය සාදා ගැනීමයි.
පහත
දැක්වෙන්නේ RS232 ක්රමයට
දත්ත සංනිවේදනයේදී යොදාගනු ලබන data Frame එකක් වේ.
මෙහි දත්තයෙන්
වෙන්කල Data bit වලට අමතරව
තවත් බිට් කිහිපයක් අන්තර්ගත කොට ඇත.ඇත්තටම data
Frame එකක් ලෙස සලකනු ලබන්නේ මෙම එකතු කරන ලද බිට් සමග
වේ.මෙම බිට් එකතු කරනු ලබන්නේ දත්ත සංනිවේදනය නිසියාකාරව සිදුකිරීම සදහා වේ.
මෙහි start bit එක මගින් data Frame එකේ ආරම්භය
පෙන්නුම් කරනු ලබයි. RS232 ක්රමයේදී
දත්ත සම්ප්රේෂණය නොකරන විට හා යම් දත්තයක් ගමන් කර අවසන් වූ විට දත්ත මාර්ගය ඉහළ
තාර්කික මට්ටමට (1) ගෙන යනු ලබයි.එමනිසා data
Frame එකේ ආරම්භ සිදු වන්නේ සෑම විටම ශුන්ය (0)
යෙනි.
ඉන් අනතුරුව
දත්ත බිටු ගමන් කරවනු ලබයි.එය සෑම විටම බිට් 8 හො 9ක් විය හැක.එම බිට් 8 හෝ 9 ගමන්
කරවූ පසු data Frame එකේ අවසානය හැගවීමට දත්ත මාර්ගය ඉහළ තාර්කික
මට්ටමට ගෙනයනු ලබයි. ඒ අනුව සෑම විටම data Frame එකක් අවසානයේ තාර්කික 1 බිටුවක් යවනු ලබයි.එය stop bit ලෙස හැදින්වේ.ඒ අනුව
සෑම විටම stop bit එක තාර්කික 1 වේ.මේ ආකාරයට සියලුම data Frame යවනු ලබයි.
Parity bit එකේ කාර්ය
උපාංග දෙකක්
අතර දත්ත සංනිවේදනය කරන විට විශාල data Frame ප්රමාණයක්
ගමන්කරනු ලබයි.එනම් යම් එක් දත්තයක් ගත් විට එයට විශාල data
Frame ප්රමාණයක්
ඇත.මෙම data Frame ලබා ගන්නා උපාංගය
විසින් සිදු කරනු ලබන්නේ එම data
Frame වල ඇති දත්තය
සදාගැනීමට අවශ්ය බිට් එක් කොට දත්තය සදහා ගැනීමයි.එහෙත් සංනිවේදනය කරන අතර තුර
මෙම data Frame වල යම් වෙනසක්
සිදුවුවහොත් අවසානයේදී සාදනු ලබන දත්තය විකෘති දත්තයක් බවට පත් වේ.එම නිසා එලෙස විකෘතියක්
සිදුවුවහොත් එය හදුනාගැනීම සදහා සෑම data
Frame එකකටම Parity bit එකක් එක් කර ඇත.ඒ
අනුව Parity bit එකේ කාර්ය
වන්නේ දත්ත සංනිවේදනයේ දී සිදුවන දත්ත වලට සිදුවන විකෘති හදුනා
ගැනීමයි.
මෙම Parity bit බිට් එක
යොදාගෙන දත්ත වල විකෘතිය සොයන ආකාරය විසා බලමු .ඒ අනුව data Frame එකකට මෙම බිට්
එක යෙදිය හැකි වන්නෙ 1 හා 0 පමණක් වේ.එම අගය යොදන ආකාරය තේරුම් ගැනීමට පහත උදාහරනය
සලකා බලමු.යම්
දත්තයක් සංනිවේදනය කිරීම සදහා පහත ආකාරයට data Frame පහක් සාදන්නේ යැයි සිතමු.
මෙහි Parity bit බිට් එකේ අගය තීරනය කරන්නේ, data Frame එකේ දත්තයට අදාල බිටු වල 1 ඒවා ඉරට්ටේ සංඛ්යවක් ඇත්නම් Parity bit එක 0 ලෙසද 1 ඒවා ඔත්තේ ගණනක් ඇත්නම් Parity bit එක 0 ලෙසද යොදනු ලබයි.මේ අනුව දැන් සෑම data Frame එකකම 1 ඒවා ඉරට්ටේ ගණනක් ඇත.දත්ත විකෘති නොවී ගමන් කරන්නේ නම් සෑම data Frame එකකම 1 ඒවා ඉරට්ටේ ගණනක් පැවතිය යුතුය.
මේ මගින්
දත්තවල විකෘතියක් සිදු වුවහොත් හදුනාගත හැක.සිතන්න එක් data Frame එකක බිටුවක් විකෘතියක්
වුනා කියා(එක බිංදුව වීම හෝ බිංදුව එකවීම) එවිට data Frame එකේ සමස්ත බිටු ගණන වෙනස් වේ.එවිට සමස්ත 1
බිටු ප්රමාණය ඔත්තේ බවට පත්වේ. එමනිසා මේ
මගින් විකෘතිය හදුනාගත හැක.
මෙහිදී 1 ඒවා
ඉරට්ටෙ ගණනකට පත් කරන නිසා මෙම ක්රමය even
Parity ලෙස හැදින්වෙන අතර මෙය ඔත්තේ ගණනකටද සකස් කල
හැක.එනම් 1 ඒවා ඉරට්ටේ ගණනක් ඇති විට 1 ද ඔත්තේ ගණනක් ඇති විට 0 ද යොදනු ලබයි.
එවිට එය odd Parity ලෙස හැදින්
වේ.
තවද මෙම Parity
bit ක්රමය යෙදාගෙන දත්තවල විකෘති හදුනාගත හැකි
වන්නේ එක බිටුවක විකෘතියක් උවහොත් පමණි.බිටු දෙකක් විකෘතියකට ලක් උවහොත් එය හදුනා
ගත නොහැක.එම නිසා මෙම Parity bit ක්රමය දත්ත
සංනිවේදනයේ විකෘති හදුනා ගැනීමට එතරම් හොද ක්රමයක් නොවේ. එමනිසා දත්ත සංනිවේදනය
කරන නව ක්රම වලදී විකෘති හදුනා ගැනීමට එක බිටුවක් යොදා ගැනීම වෙනුවට බිටු
කිහිපයක් යොදාගනු ලබයි.ඒ මගින් විකෘති හදුනා ගැනීමට algoritham
එකක් යොදාගනු ලබයි.
පරිඝණක ආදී
බොහෝ ඩිජිටල් උපකරන අතර සංනිවේදනය සිදු
කරන විට දත්ත විකෘති වීම ඉතාම අවම මට්ටමක පවතී.එම නිසා ඩිජිටල් උපකරන අතර
සංනිවේදනය කරන විට Parity
bit යොදන්නේ
නොමැතිවද සංනිවේදනය කරන අවස්ථා ඇත.එහෙත් පරිඝණක ආදී බොහෝ ඩිජිටල් උපකරන අතර සංනිවේදනය කරන විට බොහෝ විට යොදාගනු ලබන්නේ මෙම Parity bit ක්රමයේ ඇති odd Parity bit ක්රමය හා even Parity bit ක්රමය යි.