通信协议 - SPI
SPI (Serial Peripheral Interface) هو بروتوكول اتصال ثنائي الاتجاه، متزامن، تسلسلي، رئيسي/عبد، حافلة ، وسرعة نقل البيانات فيه تبلغ 8 ميجابت في الثانية. يمكن أن يكون لديك جهاز رئيسي واحد فقط في SPI ، ويمكن توصيل جهاز أو أكثر كعبيد. عند توصيل عدة أجهزة ، يجب استخدام دبوس التحديد (chip select ، CS).
دبابيس SPI
- SCLK (ساعة متسلسلة): إشارة ساعة موجهة بواسطة الجهاز الرئيسي ، وهي مدخل للجهاز الفرعي. يتم تخزين إشارات SDO و SDI بناءً على إشارة الساعة SCLK. يتم نقل بت واحد في كل دورة ساعة ، لذلك يكون معدل النقل مساويًا لتردد الساعة الذي يولده الجهاز الرئيسي.
- SDI/SDO (بيانات متسلسلة في / بيانات متسلسلة خارج): يصف اتجاه تدفق البيانات بالنسبة للجهاز الرئيسي ، ولكن في أغلب الأحيان يظهر MOSI (الماستر يخرج العبد يدخل) و MISO (الماستر يدخل العبد يخرج) على اللوحة. على سبيل المثال ، يكون SDO هو MOSI على الجهاز الرئيسي و MISO على العبد ، بينما يكون SDI هو MISO على الجهاز الرئيسي و MOSI على العبد. في توبولوجيا سلسلة الزهور ، يتصل جهاز A MISO بجهاز B MISO.
- CS/SS (تحديد الرقاقة / تحديد العبد): يتم توجيهه بواسطة الجهاز الرئيسي ، ويستخدم لتحديد أولوية الاتصال على حافلة SPI. عندما يكون الخط CS منخفضًا ، يتم تنشيط اتصال SPI. يكون CS فعالًا عندما يكون على مستوى منخفض.
عملية تخزين البيانات في SPI
- يتم تخزين بيانات SPI عند حافة صعودية أو هبوطية لـ SCLK.
- يُشار إلى الحافة التي يتم فيها تخزين البيانات بأنها الحافة الحرجة.
- على سبيل المثال ، يُمثل الشكل الأيسر فيما يلي تخزين البت المنطقي
1
في حافة صعودية ، بينما يُمثل الشكل الأيمن تخزين البت المنطقي0
في حافة هبوطية.
مثال على قراءة SPI
- الحافة الحرجة هي حافة صعودية.
- الجهاز الرئيسي يُخرج البيانات إلى العبد (SDI على العبد).
- يتم سحب دبوس CS إلى 0 فولت لتنشيط اتصال SPI.
- يتم نقل البيانات بترتيب من البت الأعلى (MSB) إلى البت الأدنى (LSB) عند حافة صعودية لـ SCLK.
- البيانات المنقولة:
1011001
الحافة الحرجة في SPI
- \(t_{SU}\) (زمن الإعداد): يحدد بعد متى يجب أن تكون البيانات على SDI ثابتة ومستقرة قبل حدوث الحافة الحرجة.
- \(t_{HO}\) (زمن الاحتفاظ): يحدد مدة يجب أن يتم الاحتفاظ بالبيانات على SDI بعد حدوث الحافة الحرجة.
- \(t_{DO}\) (زمن التأخير): يحدد تأخير البيانات الصالحة على SDO بعد حدوث الحافة الحرجة.
أنماط نقل SPI (4 أنماط)
- CPOL (القطبية الساعة): قطبية الساعة في حالة الخمول (عند عدم نقل البيانات) ،
0
يعني مستوى منخفض ،1
يعني مستوى عالي. - CPHA (المرحلة الساعة): يحدد متى يتم تخزين البيانات في الحافة الصعودية أو الهبوطية.
0
يعني تخزينها في الحافة الأولى التي تتغير فيها الإشارة ،1
يعني تخزينها في الحافة الثانية التي تتغير فيها الإشارة.
رقم النمط | CPOL (القطبية الساعة) | CPHA (المرحلة الساعة) | الحافة الحرجة |
---|---|---|---|
0 | 0 (مستوى منخفض) | 0 (تخزين في الحافة الأولى) | صعودية |
1 | 0 (مستوى منخفض) | 1 (تخزين في الحافة الثانية) | هبوطية |
2 | 1 (مستوى عالي) | 0 (تخزين في الحافة الأولى) | هبوطية |
3 | 1 (مستوى عالي) | 1 (تخزين في الحافة الثانية) | صعودية |
سلسلة الأقحوان (Daisy Chain)
في الوضع العادي ، يحتاج كل جهاز فرعي في SPI إلى خط CS. عندما يكون هناك العديد من الأجهزة الفرعية ، فإنها تستهلك الكثير من واجهات المدخل/المخرج الرئيسية. باستخدام توصيل سلسلة الأقحوان ، يمكن استخدام خط CS واحد فقط لتشغيل جميع الأجهزة الفرعية.
مبدأ سلسلة الأقحوان هو أن البيانات تنتقل من الجهاز الرئيسي إلى الجهاز الفرعي الأول ، ثم من الجهاز الفرعي الأول إلى الجهاز الفرعي الثاني ، وهكذا ، حيث تتسلسل البيانات على طول الخط حتى الجهاز الفرعي الأخير في السلسلة ، ويتم نقل البيانات من الجهاز الفرعي الأخير إلى الجهاز الرئيسي عبر SDO.
مزايا وعيوب SPI
المزايا:
- اتصال ثنائي الاتجاه
- تشغيل بوصلة ، يمكن توفير تكامل إشارة جيد وسرعة عالية
- بروتوكول مرن ، ليس مقتصرًا على بايت واحد بحجم 8 بت
- تصميم أجهزة بسيط
- لا حاجة لمقاومات السحب ، وبالتالي استهلاك طاقة أقل
- لا يوجد آلية تحكيم أو أنماط فشل ذات الصلة
- لا يحتاج الجهاز الفرعي إلى ساعة (توفرها الجهاز الرئيسي)
- لا يحتاج الجهاز الفرعي إلى عنوان منفصل
- لا حاجة لمرسل/مستقبل
- الإشارات ذات اتجاه واحد ، سهلة العزل الكهربائي
- لا يوجد حد أقصى لسرعة الساعة
العيوب:
- يستخدم عددًا أكبر من الأرجل مقارنة بـ I2C
- الأجهزة الفرعية غير قادرة على الاستجابة بشكل مادي
- لا يوجد آلية لفحص الأخطاء مثل البت الزوجي/الفردي في UART
- يمكن أن يكون هناك مضيف واحد فقط
- المواصفات غير موحدة ، لا يمكن التحقق من التوافق
- المسافة النسبية للنقل أقصر (بالمقارنة مع CAN و RS232 و RS485 وما إلى ذلك)
المراجع والشكر
- "Analog Engineer’s Pocket Reference"
تمت ترجمة هذه المشاركة باستخدام ChatGPT، يرجى تزويدنا بتعليقاتكم إذا كانت هناك أي حذف أو إهمال.