- بٹ پیٹنے کیا ہے؟
- بٹ پیٹنے کا استعمال کب کریں
- بٹ بینگنگ کے ذریعہ سیریل مواصلات کے لئے الگورتھم
- بٹ بینگ ایس پی آئی پر
- بٹ پیٹنے کی مثال: ارڈینو میں ایس پی آئی مواصلات
- بٹ پیٹنے کے نقصانات
- Ardino میں بٹ پیٹنے کے ذریعے UART
مواصلات انٹرفیس ان عوامل میں سے ایک ہیں جو کسی پروجیکٹ کے لئے استعمال ہونے والے مائکروقابو کرنے والے کو منتخب کرتے وقت غور کیا جاتا ہے۔ ڈیزائنر اس بات کو یقینی بناتا ہے کہ منتخب کردہ مائکروکنٹرولر کے پاس مصنوعات کے لئے استعمال ہونے والے تمام دیگر اجزاء کے ساتھ بات چیت کرنے کے لئے تمام انٹرفیس موجود ہیں۔ مائکروکانٹرولر پر ایس پی آئی اور آئی 2 سی جیسے انٹرفیس کا وجود مستقل طور پر اس طرح کے مائکرو قابو پانے والوں کی لاگت میں اضافہ کرتا ہے ، اور BOM بجٹ پر منحصر ہے کہ یہ مطلوبہ مائکروکانٹرولر کو سستی نہیں دے سکتا ہے۔ اس طرح کے حالات میں بٹ بینگنگ جیسی تکنیک کھیل آتی ہے۔
بٹ پیٹنے کیا ہے؟
بٹ پیٹنے سیریل مواصلات کے لئے ایک تکنیک ہے جس میں پورے مواصلات کے عمل کو سرشار ہارڈ ویئر کے بجائے سافٹ ویئر کے ذریعہ سنبھالا جاتا ہے۔ ڈیٹا منتقل کرنے کے ل the ، اس تکنیک میں سافٹ ویئر کا استعمال ڈیٹا کو سگنلز اور دالوں میں انکوڈ کرنے کے لئے استعمال کیا جاتا ہے جو مائکروکنٹرولر کے I / O پن کی حالت میں ہیرا پھیری کرنے کے لئے استعمال ہوتا ہے جو ہدف کے آلے پر ڈیٹا بھیجنے کے لئے Tx پن کا کام کرتا ہے۔ ڈیٹا حاصل کرنے کے ل receive ، تکنیک میں کچھ وقفوں کے بعد Rx پن کی حالت کا نمونہ شامل ہوتا ہے جو مواصلات کی شرح کی شرح کے ذریعہ طے کیا جاتا ہے۔ سافٹ ویئر اس مواصلات کو حاصل کرنے کے لئے ضروری تمام پیرامیٹر طے کرتا ہے جس میں ہم وقت سازی ، ٹائمنگ ، سطح وغیرہ شامل ہیں ، جو عام طور پر وقف شدہ ہارڈ ویئر کے ذریعہ طے کیے جاتے ہیں جب بٹ پیٹ استعمال نہیں کیا جاتا ہے۔
بٹ پیٹنے کا استعمال کب کریں
بٹ بینگنگ عام طور پر ان حالات میں استعمال کی جاتی ہے جہاں مطلوبہ انٹرفیس والا مائکرو قابو پانے والا دستیاب نہیں ہوتا ہے یا جب ضروری انٹرفیس والے مائکروقابو کرنے والے کو سوئچ کرنا بہت مہنگا پڑسکتا ہے۔ اس طرح یہ ایک ہی آلہ کو کئی پروٹوکول کے ذریعے بات چیت کرنے کے قابل بنانے کا ایک سستا طریقہ مہیا کرتا ہے۔ ایک مائکرو قابو پانے والا جو پہلے صرف UART مواصلت کے ل enabled فعال ہوتا ہے ، اسے بٹ بینگنگ کے ذریعہ ایس پی آئی اور 12 سی کا استعمال کرتے ہوئے بات چیت کرنے کے لئے لیس کیا جاسکتا ہے۔
بٹ بینگنگ کے ذریعہ سیریل مواصلات کے لئے الگورتھم
اگرچہ بٹ بینگ کو نافذ کرنے کے لئے کوڈ مختلف مائکروکنٹرولرز میں مختلف ہوسکتا ہے اور مختلف سیریل پروٹوکول کے لئے بھی مختلف ہوسکتا ہے ، لیکن بٹ پیٹنے کو لاگو کرنے کے لئے طریقہ کار / الگورتھم تمام پلیٹ فارمز میں ایک جیسا ہے۔
مثال کے طور پر اعداد و شمار بھیجنے کے لئے نیچے چھدم کوڈ استعمال کیا گیا ہے۔
- شروع کریں
- اسٹارٹ بٹ بھیجیں
- وصول کنندہ کے بوڈ ریٹ کے مطابق ہونے کے لئے وقت کا انتظار کریں
- ڈیٹا سا بھیجیں
- موصولہ مدت کے لئے دوبارہ وصول کنندہ کے بوڈ ریٹ کے ساتھ مطابقت کرنے کا انتظار کریں
- چیک کریں کہ آیا تمام ڈیٹا بٹس بھیجے گئے ہیں۔ اگر نہیں تو ، 4 پر جائیں۔ اگر ہاں ، تو 7
- اسٹاپ بٹ بھیجیں
- رکو
اعداد و شمار کے حصول میں تھوڑا سا پیچیدہ ہوتا ہے ، عام طور پر یہ معلوم کرنے کے لئے کہ رسیور پن پر جب ڈیٹا دستیاب ہوتا ہے تو ایک رکاوٹ کا استعمال کیا جاتا ہے۔ اس سے یہ یقینی بنانے میں مدد ملتی ہے کہ مائکروکانٹرولر بہت زیادہ پروسیسنگ پاور ضائع نہیں کرے گا۔ اگرچہ کچھ نفاذات مائکروکنوترون I / O پنوں میں سے کسی کا استعمال کرتے ہیں لیکن اگر اس کو سنبھالا نہیں گیا تو شور اور غلطیوں کے امکانات زیادہ ہیں۔ رکاوٹوں کا استعمال کرتے ہوئے ڈیٹا وصول کرنے کیلئے الگورتھم کی وضاحت ذیل میں کی گئی ہے۔
- شروع کریں
- Rx پن پر مداخلت کو فعال کریں
- جب خلل پیدا ہوتا ہے تو ، اسٹارٹ بٹ حاصل کریں
- بوڈ ریٹ کے مطابق وقت کا انتظار کریں
- Rx پن پڑھیں
- 4 سے دہرائیں جب تک کہ تمام ڈیٹا موصول نہ ہو
- بوڈ ریٹ کے مطابق وقت کا انتظار کریں
- اسٹاپ بٹ کے لئے چیک کریں
- رکو
بٹ بینگ ایس پی آئی پر
جیسا کہ اوپر ذکر کیا گیا ہے ، مختلف پروٹوکول کے لئے تھوڑا سا پیٹنے سے مختلف کام ہوتے ہیں اور اس طرح ہر پروٹوکول کے بارے میں پڑھنے کے لئے ، نفاذ کی کوشش سے پہلے ڈیٹا کی تشکیل اور گھڑی کو سمجھنے کے لئے ضروری ہے۔ ایس پی آئی موڈ 1 کو بطور مثال لیتے ہوئے ، گھڑی کی بنیادی قیمت ہمیشہ 0 ہوتی ہے اور گھڑی کے بڑھتے ہوئے کنارے پر ہمیشہ ڈیٹا بھیجا یا موصول ہوتا ہے۔ ایس پی آئی موڈ 1 مواصلات پروٹوکول کے لئے وقتی آریھ ذیل میں دکھایا گیا ہے۔
اس پر عمل درآمد کرنے کے لئے ، مندرجہ ذیل الگورتھم استعمال کیا جاسکتا ہے۔
- شروع کریں
- مواصلات شروع کرنے کے لئے ایس ایس پن کو کم مقرر کریں
- بھیجنے والے ڈیٹا کے پہلے حصے پر ماسٹر آؤٹ سلیپ ان (MOSI) کے لئے پن مرتب کریں
- گھڑی پن (ایس سی کے) اونچا مقرر کریں تاکہ ڈیٹا ماسٹر کے ذریعہ منتقل ہوتا ہے اور غلام کے ذریعہ موصول ہوتا ہے
- غلام سے اعداد و شمار کا پہلا سا وصول کرنے کے لئے ماسٹر ان غلامی آؤٹ (MISO) کی حالت پڑھیں
- ایس سی کے لو کو سیٹ کریں ، تاکہ اگلے بڑھتے ہوئے کنارے پر ڈیٹا بھیجا جاسکے
- 2 پر جائیں جب تک کہ تمام ڈیٹا بٹس منتقل نہ ہو جائیں۔
- ٹرانسمیشن کو روکنے کے لئے ایس ایس پن ہائی سیٹ کریں۔
- رکو
بٹ پیٹنے کی مثال: ارڈینو میں ایس پی آئی مواصلات
ایک مثال کے طور پر ، آئی آرڈینو میں بٹ بینگنگ کے ذریعہ ایس پی آئی مواصلات کے الگورتھم کو نافذ کریں تاکہ یہ ظاہر کیا جاسکے کہ کس طرح ذیل کے کوڈ کا استعمال کرتے ہوئے ایس پی آئی پر ڈیٹا کو تھوڑا سا ٹکڑا جاسکتا ہے۔
ہم ارڈینو کے پنوں کو استعمال کرنے کے اعلان سے شروع کرتے ہیں ۔
const INSSPin = 11؛ const IN SCKPin = 10؛ const IN MISOPin = 9؛ const IN MOSIPin = 8؛ بائٹ بھیج ڈیٹا = 64؛ // بائٹ غلامڈیٹا کو بھیجنے کی قیمت = 0؛ // غلام کے ذریعہ بھیجی گئی قیمت کو ذخیرہ کرنے کے لئے
اگلا ، ہم باطل سیٹ اپ () فنکشن میں جاتے ہیں جہاں پنوں کی حالت کا اعلان کیا جاتا ہے۔ صرف ماسٹر ان غلامی آؤٹ (MISO) پن کو ایک ان پٹ قرار دیا گیا ہے کیونکہ یہ واحد پن ہے جو اعداد و شمار کو وصول کرتا ہے۔ باقی تمام پنوں کو آؤٹ پٹ قرار دیا گیا ہے۔ پن کے طریقوں کا اعلان کرنے کے بعد ، ایس ایس پن HIGH پر سیٹ کیا گیا ہے۔ اس کی وجہ یہ یقینی بنانا ہے کہ عمل غلطی سے پاک ہے اور مواصلات صرف اس وقت شروع ہوتی ہیں جب اسے کم پر رکھا جاتا ہے۔
باطل سیٹ اپ () { پن موڈ (MISOPin ، INPUT)؛ پن موڈ (ایس ایس پین ، آؤٹ پٹ)؛ پن موڈ (ایس سی پی پن ، آؤٹ پٹ)؛ پن موڈ (موسیپین ، آؤٹ پٹ)؛ ڈیجیٹل رائٹ (SSPin ، HIGH)؛ }
اگلا ، ہم ڈیٹا بھیجنے کے لئے لوپ شروع کرتے ہیں ۔ نوٹ کریں کہ یہ لوپ اعداد و شمار کو بار بار بھیجتا رہے گا۔
ہم شروع لوپ SS پن کم لکھنا، پر مواصلات کے آغاز، اور کال شروع کرنے کی طرف bitbangdata بٹس اور بھیجنے میں پیش وضاحتی ڈیٹا کو توڑ دیتا ہے جس کی تقریب. اس کے ساتھ ، ہم ڈیٹا منتقل کرنے کے اختتام کی نشاندہی کرنے کے لئے پھر ایس ایس پن HIGH لکھتے ہیں۔
باطل لوپ () { ڈیجیٹل رائٹ (SSPin ، LOW)؛ // ایس ایس کم غلام ڈاٹا = بٹ بینگ ڈیٹا (بھیج ڈیٹا)؛ // ڈیٹا ٹرانسمیشن ڈیجیٹل رائٹ (ایس ایس پیین ، ہائی)؛ // ایس ایس پھر اعلی }
bitbangdata () تقریب کے ذیل میں لکھا ہے. فنکشن بھیجنے کے ل sent ڈیٹا میں لیتا ہے اور اسے ٹکڑوں میں توڑ دیتا ہے اور ٹرانسمیشن کے لئے کوڈ کو لوپ کرکے اسے بھیجتا ہے جیسا کہ الگورتھم کے مرحلہ 7 میں اشارہ کیا گیا ہے۔
بائٹ بٹ بینگ ڈیٹا (بائٹ _سینڈ) // یہ فنکشن ڈیٹا کو بٹ بینگنگ کے ذریعے منتقل کرتا ہے { بائٹ _ ریسیپ = 0؛ (INT i = 0؛ i <8؛ i ++) // ایک بائٹ میں 8 بٹس { ڈیجیٹل رائٹ (MOSIPin ، بٹ ریڈ (_ بھیجیں ، i))؛ // موسی ڈیجیٹل رائٹ سیٹ کریں (ایس سی کے پیین ، ہائی)؛ // ایس سی کے ہائی بٹ رائٹ (_ وصول کریں ، i ، ڈیجیٹل ریڈ (MISOPin))؛ // MISO ڈیجیٹل رائٹ (SCKPin ، LOW) کیپچر کریں ؛ // ایس سی کے کم } واپسی _ وصول؛ // واپسی موصول ڈیٹا }
بٹ پیٹنے کے نقصانات
بٹ پیٹنے کو اپنانا ایک اچھ thoughtا سوچی سمجھا فیصلہ ہونا چاہئے کیونکہ بٹ پیٹنے میں بہت ساری کمی واقع ہوتی ہے جو کچھ حلوں میں عمل درآمد کے لئے قابل اعتبار نہیں بن سکتی ہیں۔ بٹ پیٹنے کے عمل میں استعمال ہونے والی اعلی پروسیسنگ پاور کی وجہ سے مائکرو قابو پانے والی بجلی کی کھپت میں اضافہ ہوتا ہے۔ سرشار ہارڈویئر کے مقابلے میں ، مواصلات کی زیادہ تر غلطیاں جیسے گلیچس اور جٹٹرس اس وقت پائے جاتے ہیں جب بٹ بینگنگ کا استعمال کیا جاتا ہے خاص طور پر جب مائیکرو کنٹرولر کے ذریعہ ڈیٹا مواصلات دوسرے کاموں کی طرح انجام دیا جاتا ہے۔ بٹ بینگنگ کے ذریعہ مواصلات اس رفتار کے ایک حص atے پر ہوتا ہے جس کے ساتھ جب یہ سرشار ہارڈویئر استعمال ہوتا ہے۔ یہ کچھ خاص درخواستوں میں اہم ثابت ہوسکتا ہے اور "اتنا اچھا نہیں" انتخاب کو تھوڑا سا پیٹا جاتا ہے۔
بٹ پیٹنے ہر طرح کی سیریل مواصلات کیلئے استعمال ہوتی ہے۔ آر ایس 232 ، اسینکرونس سیریل مواصلات ، یو آر ٹی ، ایس پی آئی ، اور آئی 2 سی۔
Ardino میں بٹ پیٹنے کے ذریعے UART
بٹ پیٹنے کی مقبول نفاذ میں سے ایک آرڈوینو سافٹ ویئر سیریل لائبریری ہے جو آرڈینو کو بغیر کسی وقف ہارڈویئر UART پن (D0 اور D1) کا استعمال کیے UART پر بات چیت کرنے کے قابل بناتا ہے۔ اس سے بہت زیادہ لچک ملتی ہے کیونکہ صارفین اتنے سیریل ڈیوائسز کو مربوط کرسکتے ہیں جتنے ارڈینو بورڈ پر پنوں کی تعداد سپورٹ کرسکتی ہے۔