فهم بروتوكول الاتصال SPI مضمن

جرب أداة القضاء على المشاكل





يلعب الاتصال دورًا أساسيًا في تصميم النظام المضمن. بدون الذهاب إلى البروتوكولات ، فإن التوسيع المحيطي معقد للغاية ويستهلك طاقة عالية. ال نظام مضمن يستخدم بشكل أساسي الاتصال التسلسلي للتواصل مع الأجهزة الطرفية.
هناك العديد من بروتوكولات الاتصال التسلسلي ، مثل اتصالات UART و CAN و USB و I2C و SPI. المسلسل بروتوكول الاتصال تشمل الخصائص السرعة العالية وفقدان البيانات المنخفض. يجعل التصميم على مستوى النظام أسهل ، ويضمن نقل البيانات بشكل موثوق.

اتصالات البيانات التسلسلية

تُعرف المعلومات المشفرة كهربائيًا بالبيانات التسلسلية ، والتي يتم نقلها شيئًا فشيئًا من جهاز إلى آخر من خلال مجموعة من البروتوكولات. في النظام المضمن ، يتم تلقي بيانات أجهزة استشعار التحكم والمشغلات أو إرسالها إلى أجهزة التحكم مثل وحدات التحكم الدقيقة بحيث يتم تحليل البيانات ومعالجتها بشكل أكبر. نظرًا لأن وحدات التحكم الدقيقة تعمل مع البيانات الرقمية ، فإن المعلومات الواردة من أجهزة الاستشعار التناظرية والمشغلات والأجهزة الطرفية الأخرى يتم تحويلها إلى بايت واحد (8 بت) كلمة ثنائية قبل إرسالها إلى وحدة التحكم الدقيقة.




اتصالات البيانات التسلسلية

اتصالات البيانات التسلسلية

يتم إرسال هذه البيانات التسلسلية فيما يتعلق بنبض ساعة معين. يشار إلى معدل نقل البيانات بمعدل البث بالباود. يُطلق على عدد بتات البيانات التي يمكن إرسالها في الثانية اسم معدل البث بالباود. لنفترض أن البيانات 12 بايت ، ثم يتم تحويل كل بايت إلى 8 بت بحيث يكون الحجم الإجمالي لنقل البيانات حوالي 96 بت / ثانية من البيانات (12 بايت * 8 بت لكل بايت). إذا كان من الممكن إرسال البيانات مرة واحدة كل ثانية ، فإن معدلات البث بالباود تكون حوالي 96 بت / ثانية أو 96 باود. تقوم شاشة العرض بتحديث قيمة البيانات مرة واحدة كل ثانية.



أساسيات الواجهة الطرفية التسلسلية

يشير اتصال SPI إلى الواجهة الطرفية التسلسلية بروتوكول الاتصالات ، الذي تم تطويره بواسطة Motorola في عام 1972. تتوفر واجهة SPI على وحدات التحكم في الاتصالات الشائعة مثل PIC و AVR و وحدة تحكم ARM ، إلخ. لديه ارتباط بيانات اتصال تسلسلي متزامن يعمل في ازدواج كامل ، مما يعني أن إشارات البيانات تحمل في كلا الاتجاهين في وقت واحد.

يتكون بروتوكول SPI من أربعة أسلاك مثل MISO و MOSI و CLK و SS المستخدمة للاتصال الرئيسي / التابع. السيد هو متحكم دقيق ، والعبيد هم أجهزة طرفية أخرى مثل أجهزة الاستشعار ، مودم GSM ومودم GPS ، إلخ. يتم ربط العبيد المتعددة بالسيد من خلال ناقل تسلسلي SPI. لا يدعم بروتوكول SPI الاتصال Multi-master ويتم استخدامه لمسافة قصيرة داخل لوحة الدائرة.

أساسيات الواجهة الطرفية التسلسلية

أساسيات الواجهة الطرفية التسلسلية

خطوط SPI

MISO (ماجستير في Slave Out) : يتم تكوين خط MISO كمدخل في جهاز رئيسي وكمخرج في جهاز تابع.


MOSI (إتقان العبد في) : MOSI عبارة عن خط تم تكوينه كمخرج في جهاز رئيسي وكمدخل في جهاز تابع حيث يتم استخدامه لمزامنة حركة البيانات.

SCK (ساعة تسلسلية) : هذه الإشارة دائمًا ما يقودها السيد لنقل البيانات المتزامن بين السيد والعبد. يتم استخدامه لمزامنة حركة البيانات داخل وخارج خطوط MOSI و MISO.

SS (Slave Select) و CS (Chip Select) : هذه الإشارة يقودها السيد لاختيار العبيد الفرديين / الأجهزة الطرفية. وهو عبارة عن خط إدخال يستخدم لتحديد الأجهزة التابعة.

إتصال الرقيق الرئيسي مع ناقل تسلسلي SPI

تنفيذ برنامج Master واحد وواحد SPI

هنا ، يتم دائمًا بدء الاتصال بواسطة السيد. يقوم الجهاز الرئيسي أولاً بتكوين تردد الساعة الذي يقل عن أو يساوي الحد الأقصى للتردد الذي يدعمه الجهاز التابع. ثم يقوم السيد باختيار التابع المطلوب للاتصال عن طريق سحب خط تحديد الشريحة (SS) لجهاز الرقيق المحدد للانتقال إلى الحالة المنخفضة والنشطة. يولد السيد المعلومات على خط MOSI الذي يحمل البيانات من السيد إلى التابع.

إتصالات الرقيق الرئيسية

إتصالات الرقيق الرئيسية

سيد واحد وتطبيقات الرقيق المتعددة

هذا تكوين متعدد الرقيق مع رئيسي واحد والعديد من العبيد من خلال ناقل SPI التسلسلي. يتم توصيل العبيد المتعددة بالتوازي مع الجهاز الرئيسي مع ناقل تسلسلي SPI. هنا ، يتم توصيل جميع خطوط الساعة وخطوط البيانات معًا ، ولكن يجب توصيل دبوس تحديد الشريحة من كل جهاز تابع إلى دبوس تحديد تابع منفصل على جهاز maser.

سيد واحد وعبيد متعددون

سيد واحد وعبيد متعددون

في هذه العملية ، يتم التحكم في كل جهاز تابع بواسطة خط اختيار رقاقة (SS). ينخفض ​​دبوس تحديد الشريحة لتنشيط جهاز الرقيق ويزيد ارتفاعه لتعطيل جهاز الرقيق.

يتم تنظيم نقل البيانات باستخدام سجلات الإزاحة في كل من الأجهزة الرئيسية والأجهزة التابعة بحجم كلمة معين يبلغ حوالي 8 بت و 16 بت ، على التوالي. يتم توصيل كلا الجهازين في شكل حلقة بحيث يتم نقل قيمة سجل إزاحة maser عبر خط MOSI ، ثم يقوم العبد بتحويل البيانات في سجل التحول الخاص به. عادةً ما يتم نقل البيانات مع MSB أولاً وتحويل LSB الجديد إلى نفس السجل.

نقل البيانات بين السيد والتابع

نقل البيانات بين السيد والتابع

أهمية قطبية الساعة والمرحلة

بشكل عام ، يتم إرسال واستقبال البيانات فيما يتعلق بنبضات الساعة عند الحواف الصاعدة والحواف المتساقطة. المتحكمات الدقيقة المتقدمة لها ترددان: تردد داخلي وتردد خارجي. يمكن إضافة ملحقات SPI من خلال مشاركة خطوط MISO و MOSI و SCLK. الأجهزة الطرفية من أنواع أو سرعات مختلفة مثل ADC و DAC وما إلى ذلك. لذلك نحتاج إلى تغيير إعدادات SPCR بين عمليات النقل إلى الأجهزة الطرفية المختلفة.

سجل SPCR

سجل SPCR

يعمل ناقل SPI في أحد أوضاع النقل الأربعة المختلفة مع قطبية الساعة (CPOL) وطور الساعة (CPHA) الذي يحدد تنسيق الساعة الذي سيتم استخدامه. تعتمد قطبية الساعة ومعدلات ساعة الطور على الجهاز المحيطي الذي تحاول الاتصال به مع السيد.
CPHA = 0، CPOL = 0: البتة الأولى تبدأ كإشارة منخفضة - يتم أخذ عينات من البيانات عند الحافة الصاعدة وتتغير البيانات عند الحافة السفلية.

CPHA = 0 ، CPOL = 1: تبدأ البتة الأولى بساعة أقل - يتم أخذ عينات من البيانات عند الحافة السفلية وتتغير البيانات عند الحافة الصاعدة.

CPHA = 1، CPOL = 0: البتة الأولى تبدأ بساعة أعلى - يتم أخذ عينات من البيانات عند الحافة السفلية وتتغير البيانات عند الحافة الصاعدة.

CPHA = 1 ، CPOL = 1: تبدأ البتة الأولى بساعة أعلى - يتم أخذ عينات من البيانات عند الحافة الصاعدة ، وتتغير البيانات عند حافة السقوط.

توقيت حافلة SPI

توقيت حافلة SPI

بروتوكول الاتصال SPI

تحتوي العديد من وحدات التحكم الدقيقة على بروتوكولات SPI مضمنة تتعامل مع جميع بيانات الإرسال والاستقبال. يتم التحكم في أي من عمليات وضع البيانات (R / W) بواسطة سجلات تحكم وحالة بروتوكول SPI. هنا ، يمكنك مراقبة واجهة EEPROM الخاصة بالمتحكم الدقيق PIC16f877a من خلال بروتوكول SPI.

هنا ، 25LC104 EEROM عبارة عن ذاكرة 131072 بايت حيث ينقل المتحكم الدقيق اثنين بايت من البيانات إلى ذاكرة EEROM من خلال ناقل تسلسلي SPI. فيما يلي برنامج هذا التفاعل.

إتصال رئيسي إلى تابع من خلال ناقل تسلسلي SPI

إتصال رئيسي إلى تابع من خلال ناقل تسلسلي SPI

#يشمل
Sbit SS = RC ^ 2
Sbit SCK = RC ^ 3
Sbit SDI = RC ^ 4
Sbit SDO = RC ^ 5
تهيئة باطل EEROM ()
رئيسي باطل ()
{
SSPSPAT = 0x00
SSPCON = 0x31
SMP = 0
SCK = 0
SDO = 0
SS = 1
EE_adress = 0x00
كتابة_ SPI (0x80)
SPI_write (1234)
SS = 0
}

مزايا بروتوكول SPI

  • إنه اتصال مزدوج كامل.
  • إنه ناقل بيانات عالي السرعة 10 ميجا هرتز.
  • لا يقتصر على 8 بت أثناء النقل
  • يعتبر ربط الأجهزة بسيطًا من خلال SPI.
  • يستخدم Slave ساعة رئيسية ولا يحتاج إلى مذبذبات ثمينة.

هذا كله يتعلق باتصالات SPI و التواصل مع متحكم دقيق . نحن نقدر اهتمامك واهتمامك الشديد بهذه المقالة ، وبالتالي نتوقع وجهة نظرك حول هذه المقالة. علاوة على ذلك ، لأي مساعدة وتشفير للتفاعل ، يمكنك أن تطلب منا من خلال التعليق أدناه.

اعتمادات الصورة: