electronic sinhalen

සිංහල භාෂාවෙන් විද්‍යා හා තාක්ෂණ කරුණු ලබාදෙන, SENRO-TECH යුගයේ අපූර්වතම විද්‍යා හා තාක්ෂණ ගෙව්ශණය. SENROTECH is all about connecting you to the Technologies ©Copyrighted

Monday, February 3, 2020

microcontroller sinhala - මයික්‍රෝකොන්ට්‍රෝලර්ස් (pic microcontroller programming) - 32


මයික්‍රෝකොන්ට්‍රෝලරය යොදාගෙන RS232 ක්‍රමය මගින් දත්ත සංනිවේදනය කිරීම





RS232 යනු?


RS232 යනු ඉලෙක්ට්‍රොණික පරිපථ අතර සිරියල් ක්‍රමයට දත්ත හුවමාරුව සිදුකර ගැනීම සදහා (EIA) සහ (TIA)  සංගමයන් විසින් වැඩි දියුණු කර හදුන්වා දුන් සංනිවේදන ප්‍රට්‍රෝකෝලයකි.මෙම ක්‍රමය බහුලව යොදාගනු ලැබුවේ පරිඝණකය සමග විවිධ  බාහිර උපකරණ සම්බන්ධකර සංනිවේදනය සිදුකරගැනීම සදහා වේ. මේ සදහා වෙනම connecter එකක් පරිඝණකයේ පිටුපසින් පිහිටුවා ඇත.ඒ මගින් බාහිර උපකරනයේ RS232 connecter එක සමග කේබල් එකක් ආධාරයෙන් සම්බන්ද කර සංනිවේදන කටයුතු සිදුකර ගත හැක

මේ ආකාරයට RS232 ක්‍රමය යොදාගෙන සංනිවේදනය කිරීම සදහා පරිඝණකයේ ප්‍රධාන  connecter වර්ග දෙකක් යොදාගනු ලබයි.

  1. 25– pin connector (DB25 Connector)
  2. 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 ක්‍රමය යි.