بروتوكول الاتصال SPI المضمن SPI Communication Protocol in Embedded
الكاتب:
سامي
-
ما هي اتصالات البيانات التسلسلية؟ أساسيات الواجهة الطرفية التسلسلية: خطوط SPI: اتصال الرقيق الرئيسي مع ناقل تسلسلي SPI: أولاً: تنفيذ برنامج “Master” واحد وواحد “SPI”: ثانياً: رئيس واحد وتطبيقات الرقيق المتعددة: أهمية قطبية الساعة والمرحلة: بروتوكول الاتصال SPI: مزايا بروتوكول SPI:
يلعب الاتصال دوراً أساسياً في تصميم النظام المضمن، وبدون الذهاب إلى البروتوكولات، فإنّ التوسيع المحيطي معقد للغاية ويستهلك طاقة عالية، ويستخدم النظام المضمن بشكل أساسي الاتصال التسلسلي للتواصل مع الأجهزة الطرفية.
ما هي اتصالات البيانات التسلسلية؟
اتصالات البيانات التسلسلية: هي المعلومات المشفرة كهربائياً، والتي يتم نقلها شيئاً فشيئاً من جهاز إلى آخر من خلال مجموعة من البروتوكولات، وفي النظام المضمن يتم تلقي بيانات أجهزة استشعار التحكم والمشغلات أو إرسالها إلى أجهزة التحكم، مثل وحدات التحكم الدقيقة بحيث يتم تحليل البيانات ومعالجتها بشكل أكبر.
ونظراً لأنّ وحدات التحكم الدقيقة تعمل مع البيانات الرقمية، يتم تحويل المعلومات الواردة من المستشعرات التماثلية والمشغلات، وكذلك الأجهزة الطرفية الأخرى إلى كلمة ثنائية بايت واحدة “8 بت” قبل إرسالها إلى وحدة التحكم الدقيقة.
يتم إرسال هذه البيانات التسلسلية فيما يخص نبض ساعة معين، كما يدل معدل نقل البيانات على معدل البث بالباود، ويُطلق على عدد بتات البيانات التي يمكن إرسالها في الثانية اسم معدل البث بالباود، فمثلاً إنّ البيانات “10 بايت” يتم تحويل كل بايت إلى “8 بت” بحيث يكون الحجم الإجمالي لنقل البيانات حوالي “80 بت / ثانية” من البيانات أي “10 بايت * 8 بت لكل بايت”، وإذا كان من الممكن إرسال البيانات مرة واحدة كل ثانيه، فإنّ معدلات البث بالباود تكون حوالي “80 بت / ثانية” أو “80 باود”
كما تقوم شاشة العرض بتحديث قيمة البيانات مرة واحدة كل ثانية، ويتوفر الكثير من بروتوكولات الاتصال التسلسلي، مثل اتصالات “UART” و”CAN” و”USB” و”I2C” و”SPI”، كما تتضمن خصائص بروتوكول الاتصال التسلسلي السرعة العالية وفقدان البيانات المنخفض، حيث يجعل الإنشاء على مستوى النظام أسهل ويضمن نقل البيانات بشكل موثوق.
“UART” هي اختصار لـ “Universal Asynchronous Receiver/Transmitter”.
“USB” هي اختصار لـ “Universal Serial Bus”.
أساسيات الواجهة الطرفية التسلسلية:
يدل اتصال “SPI” على بروتوكول اتصال الواجهة الطرفية التسلسلي، كما تتيح واجهة “SPI” على وحدات التحكم في الاتصالات الشائعة مثل “PIC” و”AVR” و”ARM”، ولديه رابط بيانات اتصال تسلسلي متزامن يعمل في الازدواج الكامل، ممّا يعني أنّ إشارات البيانات تحمل كلا الاتجاهين في وقت واحد.
يتضمن بروتوكول “SPI” من “4 أسلاك“، مثل “MISO” و”MOSI” و”CLK” و”SS” المستعملة للاتصال الرئيسي أو التابع، فالرئيسي متحكم دقيق والتوابع هم أجهزة طرفية أخرى مثل أجهزة الاستشعار ومودم “GSM” ومودم “GPS“، كما يتم ربط التوابع المتعددين بالرئيسي من خلال ناقل تسلسلي “SPI”، ولا يدعم بروتوكول “SPI” الاتصال “Multi-master” ويتم استخدامه لمسافة قصيرة داخل لوحة الدائرة.
“GSM” هي اختصار لـ “Global System for Mobile communication”.
“GPS” هي اختصار لـ “Global Positioning System”.
خطوط SPI:
خط “MISO”: يتم إنشاء خط “MISO” كمدخل في جهاز رئيسي وكمخرج في جهاز تابع.
خط “MOSI”: هي عبارة عن خط تم تكوينه كمخرج في جهاز رئيسي وكمدخل في جهاز تابع، حيث يتم استخدامه لمزامنة حركة البيانات.
خط “SCK”: هي الإشارة مدفوعة دائماً بواسطة الرئيس لنقل البيانات المتزامن بين الرئيس والتابع، ويتم استخدامه لمزامنة حركة البيانات داخل وخارج خطوط “MOSI” و”MISO”.
خط “SS”و”CS”: هي الإشارة يقودها الرئيس لاختيار التابعين الفرديين أو الأجهزة الطرفية، كما إنّه خط إدخال يستخدم لتحديد الأجهزة التابعة.
ملاحظة: “MISO” هي اختصار لـ “Master in Slave out”.
ملاحظة: “MOSI” هي اختصار لـ “Master out Slave in”.
ملاحظة: “SCK” هي اختصار لـ “serial clock”.
ملاحظة: “SS” هي اختصار لـ “Slave Select”.
ملاحظة: “CS” هي اختصار لـ “Chip Select”.
اتصال الرقيق الرئيسي مع ناقل تسلسلي SPI:
أولاً: تنفيذ برنامج “Master” واحد وواحد “SPI”:
يتم دائماً بدء الاتصال بواسطة الرئيس، حيث يقوم الجهاز الرئيسي أولاً بتكوين تردد الساعة الذي يقل عن أو يساوي الحد الأقصى للتردد الذي يدعمه الجهاز التابع، ثم يقوم الرئيس باختيار التابع المطلوب للاتصال عن طريق سحب خط تحديد الشريحة “SS” لجهاز الرقيق المحدد للذهاب إلى الحالة المنخفضة والنشطة، كما يقوم الرئيس بتوليد المعلومات على خط “MOSI” الذي يحمل البيانات من الرئيس إلى التابع.
ثانياً: رئيس واحد وتطبيقات الرقيق المتعددة:
هذا تكوين متعدد الرقيق مع رئيسي واحد والعديد من العبيد من خلال ناقل “SPI” التسلسلي، حيي يتم توصيل التوابع المتعددة بالتوازي مع الجهاز الرئيسي مع ناقل تسلسلي “SPI”، ويتم ربط جميع خطوط الساعة وخطوط البيانات معاً، ولكن يجب توصيل دبوس “pin” تعيين الشريحة من كل جهاز تابع إلى دبوس تحديد تابع منفصل على جهاز “maser”.
في هذه العملية يتم التحكم في كل جهاز تابع من خلال خط تحديد رقاقة “SS”، وينخفض ??دبوس “pin” تحديد الشريحة لتفعيل جهاز الرقيق ويزيد ارتفاعه لتعطيل جهاز الرقيق.
يتم تنظيم نقل البيانات باستخدام سجلات الإزاحة في كل من الأجهزة الرئيسية والأجهزة التابعة بحجم كلمة معين يبلغ حوالي “8 بت” للرئيس و”16 بت” للتابع، كما يتم ربط كلا الجهازين في أسلوب حلقة بحيث يتم إرسال كمية سجل إزاحة “master” عبر خط “MOSI”، ثم يقوم التابع بتحويل البيانات في سجل الإزاحة الخاص به، وعادةً ما يتم نقل البيانات مع “MSB” أولاً وتحويل “LSB” الجديد إلى نفس السجل.
“MSB” هي اختصار لـ “Most-significant bit”.
“LSB” هي اختصار لـ “Least Significant Bit”.
أهمية قطبية الساعة والمرحلة:
يتم إرسال واستقبال البيانات فيما يتعلق بنبضات الساعة عند الحواف الصاعدة والحواف المتساقطة، والمتحكمات الدقيقة المتقدمة لها ترددان هما تردد داخلي وتردد خارجي، ويمكن زيادة مكملات “SPI” من خلال مشاركة خطوط “MISO” و”MOSI” و”SCLK”، والأجهزة الطرفية من أنواع أو سرعات مختلفة مثل “ADC” و”DAC“، لذلك هناك حاجة إلى تغيير إعدادات “SPCR” بين عمليات النقل إلى الأجهزة الطرفية المختلفة.
يعمل ناقل “SPI” في أحد أوضاع النقل الأربعة المختلفة مع اتجاهية الساعة “CPOL” ومرحلة الساعة “CPHA” التي تعيين أسلوب الساعة الذي سيتم استعماله، كما تعتمد قطبية الساعة ومعدلات ساعة الطور على الجهاز المحيطي الذي تحاول الاتصال به مع الرئيس.
عند “CPHA=0? و”CPOL=0” يبدأ البت الأول كإشارة منخفضة، كما يتم استعمال عينات من البيانات عند الحافة الصاعدة وتتغير البيانات عند الحافة السفلية.
عند “CPHA=0? و”CPOL=1” يبدأ البت الأول بساعة أقل، ويتم تناول عينات من البيانات عند الحافة السفلية وتبديل البيانات عند الحافة الصاعدة.
عند “CPHA=1? و”CPOL=0” يبدأ البت الأول بساعة أعلى، ويتم استخدام عينات من البيانات عند الحافة السفلية وتبديل البيانات عند الحافة الصاعدة.
عند “CPHA=1? و”CPOL=1” يبدأ البت الأول بساعة أعلى، ويتم أخذ عينات من البيانات عند الحافة الصاعدة وتتغير البيانات عند حافة السقوط.
ملاحظة: “ADC” هي اختصار لـ “Analog to Digital Converter”.
ملاحظة: “DAC” هي اختصار لـ “Digital to Analog Converter”.
بروتوكول الاتصال SPI:
تتضمن العديد من وحدات التحكم الدقيقة على بروتوكولات “SPI” مضمنة تتعامل مع جميع بيانات الإرسال والاستلام، كما يتم السيطرة على أي من عمليات وضع البيانات “R / W” من خلال سجلات تحكم وحالة بروتوكول “SPI”، كما يمكنك مراقبة واجهة “EEPROM” للميكروكونترولر “PIC16f877a” من خلال بروتوكول “SPI”، أمّا “25LC104 EEROM” عبارة عن ذاكرة “131072 بايت”، حيث يعمل المتحكم الدقيق بنقل “2 بايت” من المعلومات إلى ذاكرة “EE-ROM” عن طريق ناقل تسلسلي “SPI”، وفيما يلي برنامج هذا التفاعل.
مزايا بروتوكول SPI:
إنّه اتصال مزدوج كامل.
إنّه ناقل بيانات عالي السرعة “10 ميجاهرتز”.
لا يقتصر على “8 بت” أثناء النقل.
يُعتبر الاتصال بين الأجهزة أمراً بسيطاً من خلال “SPI”.
يعتمد “Slave” ساعة رئيسية ولا يحتاج إلى مذبذبات ثمينة.
نحن نستخدم ملفات تعريف الارتباط (كوكيز) لفهم كيفية استخدامك لموقعنا ولتحسين تجربتك. من خلال الاستمرار في استخدام موقعنا ، فإنك توافق على استخدامنا لملفات تعريف الارتباط.