واجهة طرفية تسلسلية
واجهة الأجهزة الطرفية التسلسلية ( SPI ) هي معيار فعلي (مع العديد من المتغيرات ) للاتصال التسلسلي المتزامن ، وتستخدم بشكل أساسي في الأنظمة المدمجة للاتصال السلكي قصير المدى بين الدوائر المتكاملة .
تعتمد بروتوكولات SPI على بنية رئيسية-تابعة ، [ 1 ] حيث يقوم جهاز (يُسمى أحيانًا رئيسيًا، أو قائدًا، أو متحكمًا، أو أساسيًا، إلخ) بتنسيق الاتصال مع جهاز واحد أو أكثر (يُسمى أحيانًا تابعًا، أو تابعًا، أو هدفًا، أو فرعيًا، إلخ) عن طريق التحكم في إشارات الساعة واختيار الشريحة . ونظرًا لعدم وجود معيار رسمي، يُقدم بعض المصنّعين أجهزةً قادرةً على تغيير أدوارها أثناء التشغيل.
تستخدم المواصفات الأصلية لشركة موتورولا (من أوائل ثمانينيات القرن الماضي) أربع إشارات منطقية ، تُعرف أيضًا بالخطوط أو الأسلاك، لدعم الاتصال ثنائي الاتجاه الكامل . ويُطلق عليها أحيانًا اسم ناقل تسلسلي رباعي الأسلاك للتمييز بينها وبين الأنواع ثلاثية الأسلاك التي تعمل بنظام نصف الاتجاه ، ومع ناقلات I²C و1- Wire التسلسلية ثنائية الأسلاك .
تشمل التطبيقات النموذجية ربط وحدات التحكم الدقيقة بالرقائق الطرفية لبطاقات Secure Digital وشاشات الكريستال السائل ومحولات التناظرية إلى الرقمية والرقمية إلى التناظرية وذاكرة الفلاش وذاكرة EEPROM ورقائق الاتصالات المختلفة.
على الرغم من أن SPI هي واجهة تسلسلية متزامنة، [ 2 ] إلا أنها تختلف عن واجهة التسلسلية المتزامنة (SSI). تستخدم SSI الإشارات التفاضلية وتوفر قناة اتصال أحادية الاتجاه فقط .
عملية

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


لبدء الاتصال، يقوم جهاز SPI الرئيسي أولاً بتحديد الجهاز الذي يرغب في الاتصال به عن طريق خفض مستوى إشارة SS . (يشير الشريط أعلى SS إلى أنها إشارة فعالة عند انخفاض الجهد، لذا فإن الجهد المنخفض يعني "تم التحديد"، بينما الجهد المرتفع يعني "لم يتم التحديد").
إذا تطلب الأمر فترة انتظار، كما هو الحال في التحويل من تناظري إلى رقمي، فيجب على الجهاز الرئيسي الانتظار لمدة لا تقل عن تلك الفترة الزمنية قبل إصدار دورات الساعة. [ ملاحظة 2 ]
خلال كل دورة ساعة SPI، يتم إرسال بت واحد في كلا الاتجاهين. يرسل الجهاز الرئيسي بتًا عبر خط MOSI بينما يرسل الجهاز التابع بتًا عبر خط MISO، ثم يقرأ كل منهما البت الوارد المقابل له. ويستمر هذا التسلسل حتى عند الرغبة في نقل البيانات في اتجاه واحد فقط.
تتضمن عملية الإرسال باستخدام جهاز تابع واحد مسجل إزاحة واحد في الجهاز الرئيسي ومسجل إزاحة واحد في الجهاز التابع، وكلاهما بحجم كلمة محدد (مثلاً 8 بتات). غالبًا ما تتكون عمليات الإرسال من كلمات مكونة من 8 بتات، ولكن أحجام الكلمات الأخرى شائعة أيضًا، على سبيل المثال، كلمات مكونة من 16 بتًا لوحدات التحكم في شاشات اللمس أو برامج ترميز الصوت، مثل TSC2101 من شركة Texas Instruments، أو كلمات مكونة من 12 بتًا للعديد من محولات الإشارة الرقمية إلى التناظرية أو التناظرية إلى الرقمية.
عادةً ما تُرسل البيانات بدءًا من البت الأكثر أهمية (MSB)، ولكن المواصفات الأصلية تتضمن خاصية LSBFE (تمكين إرسال البت الأقل أهمية أولاً) للتحكم في ترتيب نقل البيانات، سواءً كان ذلك بدءًا من البت الأقل أهمية (LSB) أو البت الأكثر أهمية (MSB). عند حافة نبضة الساعة، يقوم كل من الجهاز الرئيسي والجهاز التابع بإرسال بت إلى نظيره. عند حافة نبضة الساعة التالية، يقوم كل مستقبل بأخذ عينة من البت المرسل وتخزينها في سجل الإزاحة كبت جديد أقل أهمية. بعد إرسال واستقبال جميع البتات، يكون الجهاز الرئيسي والجهاز التابع قد تبادلا قيم السجلات. إذا لزم تبادل المزيد من البيانات، يُعاد تحميل سجلات الإزاحة وتتكرر العملية. قد يستمر الإرسال لأي عدد من دورات الساعة. عند اكتمال العملية، يتوقف الجهاز الرئيسي عن تبديل إشارة الساعة، وعادةً ما يقوم بإلغاء تحديد الجهاز التابع.
في حال استخدام جهاز تابع واحد، يمكن تثبيت طرف SS الخاص به على مستوى منطقي منخفض إذا سمح الجهاز التابع بذلك. أما في حال استخدام عدة أجهزة تابعة، فإن التكوين متعدد النقاط يتطلب إشارة SS مستقلة من الجهاز الرئيسي لكل جهاز تابع، بينما يتطلب التكوين المتسلسل إشارة SS واحدة فقط .
يجب على كل جهاز تابع على الناقل لم يتم اختياره تجاهل إشارات ساعة الإدخال وMOSI. ولمنع التنازع على MISO، يجب على الأجهزة التابعة غير المختارة استخدام خرج ثلاثي الحالة . ستحتاج الأجهزة التابعة التي لا تستخدم خرجًا ثلاثي الحالة إلى مخازن مؤقتة خارجية ثلاثية الحالة لضمان ذلك. [ 3 ]
قطبية الساعة وطورها
بالإضافة إلى ضبط تردد الساعة، يجب على الجهاز الرئيسي أيضًا ضبط قطبية الساعة وطورها بالنسبة للبيانات. وقد أطلقت موتورولا [4] [5] على هذين الخيارين اسمي CPOL وCPHA (لقطبية الساعة وطورها على التوالي ) ، وهو اصطلاح اعتمدته معظم الشركات المصنعة .

يُشرح مخطط التوقيت الخاص بواجهة SPI الموضح أدناه بمزيد من التفصيل:
- يمثل CPOL قطبية الساعة. ويمكن تحويل الأقطاب باستخدام عاكس بسيط .
- SCLK CPOL=0 هي ساعة تعمل في وضع الخمول عند الجهد المنخفض المنطقي .
- SCLK CPOL=1 هي ساعة تعمل في وضع الخمول عند الجهد العالي المنطقي.
- يمثل CPHA طور دورة إرسال كل بت من البيانات بالنسبة إلى SCLK.
- بالنسبة لـ CPHA=0:
- يتم إخراج أول بت من البيانات فور تفعيل SS .
- يتم إخراج البتات اللاحقة عندما ينتقل جهد SCLK إلى مستوى جهد الخمول.
- يحدث أخذ العينات عندما ينتقل جهد SCLK من مستوى جهد الخمول.
- بالنسبة لـ CPHA=1:
- يتم إخراج بت البيانات الأول على الحافة الأولى لساعة SCLK بعد تنشيط SS .
- يتم إخراج البتات اللاحقة عندما ينتقل جهد SCLK من مستوى جهد الخمول.
- يحدث أخذ العينات عندما ينتقل جهد SCLK إلى مستوى جهد الخمول.
- إن التحويل بين هاتين المرحلتين ليس بالأمر البسيط.
- عادة ما تكون إشارات MOSI و MISO مستقرة (عند نقاط استقبالها) لنصف الدورة حتى تبدأ دورة إرسال البت التالي، لذلك قد تقوم أجهزة SPI الرئيسية والتابعة بأخذ عينات من البيانات في نقاط مختلفة في نصف الدورة هذا، من أجل المرونة، على الرغم من المواصفات الأصلية.
- بالنسبة لـ CPHA=0:
أرقام الوضع
يتم الإشارة إلى تركيبات القطبية والأطوار بواسطة أرقام "وضع SPI" هذه، حيث يمثل CPOL البت الأعلى ترتيبًا وCPHA البت الأدنى ترتيبًا:
| وضع SPI | قطبية الساعة (CPOL) | مرحلة الساعة (CPHA) | يتم نقل البيانات إلى الخارج | يتم أخذ عينات البيانات في |
|---|---|---|---|---|
| 0 | 0 | 0 | انخفاض SCLK، وعندما يتم تنشيط SS | حركة الساعة الصاعدة |
| 1 | 0 | 1 | حركة الساعة الصاعدة | سقوط الساعة |
| 2 | 1 | 0 | ارتفاع إشارة SCLK، وعندما يتم تنشيط SS | سقوط الساعة |
| 3 | 1 | 1 | سقوط الساعة | حركة الساعة الصاعدة |
ملحوظات:
- هناك طريقة أخرى شائعة الاستخدام لتمثيل الوضع كزوج (CPOL، CPHA)؛ على سبيل المثال، تشير القيمة '(0، 1)' إلى CPOL=0 و CPHA=1.
- في وضع التشغيل ثنائي الاتجاه الكامل، يمكن للجهاز الرئيسي الإرسال والاستقبال بأنماط مختلفة. على سبيل المثال، يمكنه الإرسال في النمط 0 والاستقبال في النمط 1 في الوقت نفسه.
- قد يستخدم البائعون المختلفون أنظمة تسمية مختلفة، مثل CKE لحافة الساعة أو NCPHA لعكس CPHA.
اتصالات فعّالة
صُممت بعض الأجهزة التابعة لتجاهل أي اتصالات SPI يتجاوز فيها عدد نبضات الساعة الحدّ المُحدد. بينما لا تُبالي أجهزة أخرى، فتتجاهل المدخلات الإضافية وتستمر في إزاحة بت الإخراج نفسه. من الشائع أن تستخدم الأجهزة المختلفة اتصالات SPI بأطوال مختلفة، كما هو الحال عند استخدام SPI للوصول إلى سلسلة مسح دائرة متكاملة عن طريق إصدار كلمة أمر بحجم معين (ربما 32 بت) ثم الحصول على استجابة بحجم مختلف (ربما 153 بت، بت واحد لكل طرف في سلسلة المسح تلك).
المقاطعات
المقاطعات خارج نطاق SPI؛ استخدامها ليس ممنوعًا ولا محددًا، وبالتالي يمكن تنفيذها بشكل اختياري.
من سيد إلى عبد
قد تحتوي وحدات التحكم الدقيقة التي تم تكوينها كأجهزة تابعة على دعم للأجهزة لتوليد إشارات مقاطعة لأنفسها عند استلام كلمات البيانات أو حدوث تجاوز في مخزن FIFO للاستقبال ، [ 6 ] وقد تقوم أيضًا بإعداد روتين مقاطعة عند سحب خط إدخال اختيار الجهاز التابع الخاص بها إلى مستوى منخفض أو مرتفع.
من عبد إلى سيد
تستخدم أجهزة SPI التابعة أحيانًا إشارة خارج النطاق (سلكًا آخر) لإرسال إشارة مقاطعة إلى الجهاز الرئيسي. تشمل الأمثلة مقاطعات الضغط على القلم من مستشعرات شاشة اللمس ، وتنبيهات الحد الحراري من مستشعرات درجة الحرارة ، والإنذارات الصادرة عن رقائق الساعة في الوقت الحقيقي ، و SDIO [ ملاحظة 3 ] ، وإدخال مقبس الصوت لبرنامج ترميز الصوت . يمكن أيضًا محاكاة المقاطعات الموجهة إلى الجهاز الرئيسي باستخدام الاستقصاء (على غرار USB 1.1 و 2.0 ).
طوبولوجيات الحافلات
على الرغم من أن قسم التشغيل السابق ركز على واجهة أساسية مع جهاز تابع واحد، إلا أن SPI يمكنه بدلاً من ذلك التواصل مع أجهزة تابعة متعددة باستخدام تكوينات متعددة النقاط أو سلسلة ديزي أو الموسع.
تكوين متعدد النقاط

في تكوين ناقل متعدد النقاط ، يمتلك كل جهاز تابع إشارة SS خاصة به ، ويختار الجهاز الرئيسي إشارة واحدة فقط في كل مرة. أما إشارات MISO وSCLK وMOSI فهي مشتركة بين جميع الأجهزة. هذه هي الطريقة المعتادة لاستخدام بروتوكول SPI.
بما أن دبابيس MISO للأجهزة التابعة متصلة ببعضها، فيجب أن تكون دبابيس ثلاثية الحالة (عالية، منخفضة، أو مقاومة عالية)، حيث يجب تطبيق خرج المقاومة العالية عندما لا يتم تحديد الجهاز التابع. يمكن استخدام الأجهزة التابعة التي لا تدعم الحالة الثلاثية في تكوين متعدد النقاط بإضافة شريحة عازلة ثلاثية الحالة يتم التحكم فيها بواسطة إشارة SS الخاصة بها. [ 3 ] (بما أنه يلزم تحويل خط إشارة واحد فقط إلى الحالة الثلاثية لكل جهاز تابع، يمكن استخدام شريحة منطقية قياسية نموذجية تحتوي على أربعة عوازل ثلاثية الحالة ذات مداخل بوابة مستقلة لربط ما يصل إلى أربعة أجهزة تابعة بناقل SPI).
تنبيه: يجب أن تبدأ جميع إشارات SS بمستوى عالٍ (للدلالة على عدم تحديد أي أجهزة تابعة) قبل إرسال رسائل التهيئة إلى أي جهاز تابع، حتى تتجاهل الأجهزة التابعة الأخرى غير المُهيأة الرسائل غير الموجهة إليها. يُعد هذا الأمر مصدر قلق إذا كان الجهاز الرئيسي يستخدم منافذ إدخال/إخراج للأغراض العامة (GPIO) (والتي قد تكون حالتها الافتراضية غير مُحددة) لـ SS ، وإذا كان الجهاز الرئيسي يستخدم مكتبات برمجية منفصلة لتهيئة كل جهاز. يتمثل أحد الحلول في تهيئة جميع منافذ GPIO المستخدمة لـ SS لإخراج جهد عالٍ لجميع الأجهزة التابعة قبل تشغيل رمز التهيئة من أي من تلك المكتبات البرمجية. حل آخر هو إضافة مقاومة سحب لأعلى على كل SS ، لضمان أن تكون جميع إشارات SS عالية في البداية. [ 3 ]
تكوين سلسلة ديزي

قد تُوصَّل بعض المنتجات التي تُطبِّق بروتوكول SPI على شكل سلسلة متصلة ، حيث يُوصَّل خرج الجهاز التابع الأول بمدخل الجهاز التابع الثاني، وهكذا مع الأجهزة التابعة اللاحقة، وصولًا إلى الجهاز التابع الأخير الذي يُوصَّل خرجه بمدخل الجهاز الرئيسي. يُدمج هذا فعليًا سجلات إزاحة الاتصال الفردية لكل جهاز تابع لتشكيل سجل إزاحة واحد أكبر مُدمج ينقل البيانات عبر السلسلة. لا يتطلب هذا التكوين سوى خط SS واحد من الجهاز الرئيسي، بدلًا من خط SS منفصل لكل جهاز تابع. [ 7 ]
بالإضافة إلى استخدام الأجهزة التابعة الخاصة ببروتوكول SPI، يمكن أن يتضمن بروتوكول SPI المتسلسل مسجلات إزاحة منفصلة لمزيد من منافذ الإدخال (على سبيل المثال باستخدام مدخلات متوازية ومخرجات تسلسلية 74).xx165) [ 8 ] أو المخرجات (على سبيل المثال باستخدام المدخل التسلسلي والمخرج المتوازي 74)xx595) [ 9 ] متصلة بشكل متسلسل إلى أجل غير مسمى . تشمل التطبيقات الأخرى التي يمكن أن تعمل مع SPI المتصل بشكل متسلسل SGPIO و JTAG [ 10 ] و I2C .
تكوينات الموسع
تستخدم تكوينات الموسع وحدات عنونة يتم التحكم فيها بواسطة SPI (مثل وحدات فك التشفير الثنائية ، أو وحدات فك الإرسال ، أو مسجلات الإزاحة) لإضافة اختيارات الرقاقة.
على سبيل المثال، يمكن استخدام إشارة اختيار واحدة لإرسال رقم فهرس يتحكم في إشارات الاختيار الخاصة بجهاز فك الإرسال الذي يتم التحكم فيه بواسطة بروتوكول SPI، بينما يتم توجيه إشارة اختيار أخرى عبر جهاز فك الإرسال هذا وفقًا لهذا الفهرس لاختيار الجهاز التابع المطلوب. [ 11 ]
الإيجابيات والسلبيات
المزايا
- الاتصال ثنائي الاتجاه الكامل في الإصدار الافتراضي من هذا البروتوكول
- توفر محركات الدفع والسحب (على عكس محركات التصريف المفتوح ) سلامة إشارة جيدة نسبيًا وسرعة عالية
- معدل نقل بيانات أعلى من I²C أو SMBus
- مع ذلك، لا يوجد حد أقصى لسرعة الساعة في بروتوكول SPI:
- تحدد الأجهزة الفردية ترددات الساعة المقبولة
- تحدد الأسلاك والإلكترونيات التردد
- مع ذلك، لا يوجد حد أقصى لسرعة الساعة في بروتوكول SPI:
- مرونة كاملة في البروتوكول لنقل البيانات
- لا يقتصر على الرموز ذات 8 بت
- اختيار عشوائي لحجم الرسالة ومحتواها وغرضها
- أجهزة بسيطة وواجهات توصيل
- لا يتطلب التنفيذ المادي للأجهزة التابعة سوى مسجل إزاحة قابل للتحديد
- تستخدم الأجهزة التابعة ساعة الجهاز الرئيسي، وبالتالي فهي لا تحتاج إلى مذبذبات دقيقة.
- لا تحتاج الأجهزة التابعة إلى عنوان فريد - على عكس I²C أو GPIB أو SCSI
- لا تتطلب الأجهزة الرئيسية سوى توليد إشارات الساعة و SS.
- ينتج عن ذلك تنفيذ برمجي بسيط يعتمد على البتات
- يستخدم أربعة دبابيس فقط على عبوات الدوائر المتكاملة، والأسلاك في تصميمات اللوحات أو الموصلات، وهو عدد أقل بكثير من الواجهات المتوازية.
- إشارة فريدة واحدة على الأكثر لكل جهاز ( SS )؛ أما الإشارات الأخرى فهي مشتركة
- لا يحتاج تكوين سلسلة ديزي إلى أكثر من وحدة تخزين مشتركة واحدة
- إشارة فريدة واحدة على الأكثر لكل جهاز ( SS )؛ أما الإشارات الأخرى فهي مشتركة
- عادةً ما تكون متطلبات الطاقة أقل من I²C أو SMBus بسبب قلة الدوائر (بما في ذلك مقاومات السحب لأعلى).
- يعني وجود جهاز تحكم رئيسي واحد عدم وجود تحكيم في ناقل البيانات (وما يرتبط به من حالات فشل) - على عكس ناقل CAN
- لا حاجة لأجهزة الإرسال والاستقبال - على عكس ناقل CAN
- الإشارات أحادية الاتجاه، مما يسمح بالعزل الجلفاني بسهولة
- لا يتطلب التنفيذ المادي للأجهزة التابعة سوى مسجل إزاحة قابل للتحديد
العيوب
- يتطلب عددًا أكبر من الدبابيس على عبوات الدوائر المتكاملة مقارنةً بـ I²C ، حتى في الإصدارات ثلاثية الأسلاك.
- لا يتعامل إلا مع المسافات القصيرة مقارنة بـ RS-232 أو RS-485 أو CAN-bus (على الرغم من إمكانية تمديد المسافة باستخدام أجهزة الإرسال والاستقبال مثل RS-422 ).
- تنخفض قابلية التوسع بشكل كبير عند الحاجة إلى استخدام عدة أجهزة تابعة تستخدم أوضاع SPI مختلفة
- يتباطأ الوصول عندما يحتاج الجهاز الرئيسي إلى إعادة التهيئة بشكل متكرر في أوضاع مختلفة
- لا يوجد معيار رسمي
- لذا فإن التحقق من المطابقة غير ممكن
- تُعقّد العديد من الاختلافات الموجودة عملية الدعم
- لا يوجد دعم مدمج للبروتوكول لبعض الميزات:
- لا يوجد تحكم مادي في تدفق البيانات بواسطة الجهاز التابع (لكن يمكن للجهاز الرئيسي تأخير حافة الساعة التالية لإبطاء معدل النقل).
- لا يوجد تأكيد من الجهاز التابع (قد يقوم الجهاز الرئيسي بالإرسال إلى لا مكان دون أن يعلم بذلك).
- لا يوجد بروتوكول للتحقق من الأخطاء
- ممنوع التبديل السريع (إضافة العقد ديناميكيًا)
- المقاطعات خارج نطاق بروتوكول SPI (انظر § المقاطعات )
التطبيقات
تُستخدم واجهة SPI للتواصل مع مجموعة متنوعة من الأجهزة الطرفية، مثل
- أجهزة الاستشعار: درجة الحرارة ، الضغط ، محول تناظري رقمي ، شاشات اللمس ، وحدات تحكم ألعاب الفيديو
- أجهزة التحكم: برامج ترميز الصوت ، ومقاييس الجهد الرقمية ، ومحولات الصوت الرقمية إلى التناظرية
- عدسات الكاميرا: حامل عدسات كانون EF
- الذاكرة: ذاكرة فلاش وذاكرة EEPROM
- أي بطاقة MMC أو SD (بما في ذلك نوع SDIO [ ملاحظة 3 ] )
- الساعات التي تعمل في الوقت الحقيقي
- شاشات الكريستال السائل ، وأحيانًا حتى لإدارة بيانات الصور
- مسجلات الإزاحة للإدخال/الإخراج الإضافي [ 8 ] [ 9 ]
يُعدّ توفير مساحة اللوحة الإلكترونية والأسلاك مقارنةً بالناقل المتوازي أمرًا بالغ الأهمية، مما أكسب بروتوكول SPI مكانةً راسخةً في الأنظمة المدمجة. وينطبق هذا على معظم معالجات النظام على شريحة واحدة ، سواءً كانت معالجات 32 بت عالية الأداء مثل تلك التي تستخدم ARM أو MIPS أو PowerPC، أو وحدات تحكم دقيقة منخفضة الأداء مثل AVR و PIC و MSP430 . تتضمن هذه الشرائح عادةً وحدات تحكم SPI قادرة على العمل في وضع رئيسي أو تابع. ويمكن برمجة وحدات تحكم AVR القابلة للبرمجة داخل النظام (بما في ذلك الوحدات الفارغة) باستخدام بروتوكول SPI. [ 12 ]
تستخدم بعض التصاميم القائمة على الرقائق أو مصفوفات البوابات المنطقية القابلة للبرمجة (FPGA) بروتوكول SPI للتواصل بين المكونات الداخلية؛ وقد تكون تكلفة المساحة على الرقاقة مماثلة لتكلفة المساحة على اللوحة الأم. وفي الأنظمة عالية الأداء، تستخدم مصفوفات البوابات المنطقية القابلة للبرمجة (FPGA) أحيانًا بروتوكول SPI للتفاعل كوحدة تابعة مع المضيف، أو كوحدة رئيسية مع أجهزة الاستشعار، أو كذاكرة فلاش تُستخدم للتمهيد إذا كانت تعتمد على ذاكرة الوصول العشوائي الثابتة (SRAM).
تُسهّل خاصية الإرسال والاستقبال المتزامن (Full-Duplex) استخدام بروتوكول SPI وتجعله فعالاً للغاية في تطبيقات الجهاز الرئيسي والتابع. تستخدم بعض الأجهزة وضع الإرسال والاستقبال المتزامن لتنفيذ تدفق بيانات سريع وفعال لتطبيقات مثل الصوت الرقمي ، ومعالجة الإشارات الرقمية ، وقنوات الاتصالات ، ولكن معظم الرقاقات الجاهزة تعتمد على بروتوكولات الإرسال والاستقبال غير المتزامن (Half-Duplex).
الاختلافات
تتنوع تطبيقات بروتوكول SPI بشكل كبير. بعض الأجهزة مخصصة للإرسال فقط، بينما البعض الآخر مخصص للاستقبال فقط. في بعض الأحيان، يكون اختيار الجهاز التابع فعالاً عند مستوى عالٍ بدلاً من مستوى منخفض. ترسل بعض الأجهزة البت الأقل أهمية أولاً. تعتمد مستويات الإشارة كلياً على الرقاقات المستخدمة. وعلى الرغم من أن بروتوكول SPI الأساسي لا يحتوي على رموز أوامر، إلا أنه يمكن لكل جهاز تحديد بروتوكوله الخاص برموز الأوامر. بعض هذه الاختلافات طفيفة أو غير رسمية، بينما يمتلك البعض الآخر وثيقة تعريف رسمية، ويمكن اعتبارها بروتوكولات منفصلة ولكنها ذات صلة.
التعريف الأصلي
أدرجت شركة موتورولا في عام 1983 [ 13 ] ثلاثة حواسيب صغيرة من طراز 6805 ذات 8 بت مزودة بـ "واجهة طرفية تسلسلية" مدمجة، وقد تم وصف وظائفها في دليل عام 1984. [ 14 ]
AN991
تعتبر وثيقة "Application Node AN991" الصادرة عن شركة موتورولا عام 1987 بعنوان "استخدام واجهة الأجهزة الطرفية التسلسلية للتواصل بين أجهزة الكمبيوتر الصغيرة المتعددة" [ 15 ] (والتي أصبحت الآن تحت إدارة NXP ، وتمت مراجعتها آخر مرة عام 2002 [ 5 ] ) بمثابة الوثيقة التعريفية "الرسمية" لـ SPI.
اختلافات التوقيت
تختلف بعض الأجهزة في توقيتها عن وضعَي CPOL/CPHA من موتورولا. قد يستخدم إرسال البيانات من الجهاز التابع إلى الجهاز الرئيسي حافة الساعة المعاكسة لإرسالها من الجهاز الرئيسي إلى الجهاز التابع. غالبًا ما تتطلب الأجهزة فترة خمول إضافية للساعة قبل الساعة الأولى أو بعد الأخيرة، أو بين الأمر والاستجابة له.
تحتوي بعض الأجهزة على ساعتين، إحداهما لقراءة البيانات، والأخرى لنقلها إلى الجهاز. وتعمل العديد من ساعات القراءة من خط اختيار الجهاز التابع.
حجم الإرسال
تتعدد أحجام كلمات الإرسال. تدعم العديد من رقاقات SPI الرسائل التي تتكون من مضاعفات 8 بت فقط. لا يمكن لهذه الرقاقات العمل مع بروتوكولات JTAG أو SGPIO ، أو أي بروتوكول آخر يتطلب رسائل لا تتكون من مضاعفات 8 بت.
لا يوجد اختيار للعبد
بعض الأجهزة لا تستخدم اختيار الجهاز التابع، وبدلاً من ذلك تدير دخول/خروج آلة حالة البروتوكول باستخدام طرق أخرى.
الموصلات
أي شخص يحتاج إلى موصل خارجي لـ SPI يقوم بتحديد موصله الخاص أو يستخدم اتصالًا قياسيًا آخر مثل: UEXT ، Pmod ، موصلات JTAG المختلفة ، مقبس بطاقة Secure Digital ، إلخ.
التحكم في التدفق
تتطلب بعض الأجهزة إشارة تحكم إضافية في تدفق البيانات من الجهاز التابع إلى الجهاز الرئيسي، للإشارة إلى جاهزية البيانات. يؤدي هذا إلى استخدام بروتوكول بخمسة أسلاك بدلاً من الأربعة المعتادة. غالبًا ما تكون إشارة الجاهزية أو التفعيل هذه منخفضة الفعالية، ويجب تفعيلها في نقاط رئيسية مثل بعد الأوامر أو بين الكلمات. بدون هذه الإشارة، قد يلزم إبطاء معدلات نقل البيانات بشكل ملحوظ، أو قد يلزم إدخال بايتات وهمية في البروتوكولات، لاستيعاب أسوأ حالة لوقت استجابة الجهاز التابع. تشمل الأمثلة بدء تحويل تناظري رقمي، وعنونة الصفحة الصحيحة من ذاكرة الفلاش، ومعالجة جزء كافٍ من الأمر بحيث يتمكن برنامج الجهاز الثابت من تحميل الكلمة الأولى من الاستجابة. (لا تدعم العديد من أجهزة SPI الرئيسية هذه الإشارة مباشرةً، وتعتمد بدلاً من ذلك على تأخيرات ثابتة).
SafeSPI
SafeSPI [ 16 ] هو معيار صناعي لبروتوكول SPI في تطبيقات السيارات. وينصب تركيزه الرئيسي على نقل بيانات المستشعرات بين الأجهزة المختلفة.
تعديلات عالية الموثوقية
في البيئات ذات التشويش الكهربائي، ونظرًا لقلة الإشارات في بروتوكول SPI، قد يكون من المجدي اقتصاديًا تقليل تأثيرات التشويش ذي النمط المشترك عن طريق تكييف بروتوكول SPI لاستخدام إشارات تفاضلية منخفضة الجهد . [ 17 ] ومن المزايا الأخرى إمكانية تصميم الأجهزة المتحكم بها بحيث يمكن اختبار سلامة الإشارة من خلال إعادة المحاولة. [ 18 ]
وحدات تحكم SPI ذكية
واجهة الأجهزة الطرفية التسلسلية المُرتبة ( QSPI ؛ تختلف عن واجهة Quad SPI الموصوفة في قسم Quad SPI ولكنها تحمل نفس الاختصار ) هي نوع من وحدات تحكم SPI تستخدم قائمة انتظار لنقل البيانات عبر ناقل SPI. [ 19 ] تتميز بنمط التفاف يسمح بعمليات نقل مستمرة من وإلى قائمة الانتظار مع تدخل متقطع فقط من وحدة المعالجة المركزية. ونتيجة لذلك، تظهر الأجهزة الطرفية لوحدة المعالجة المركزية كأجهزة متوازية مُرتبطة بالذاكرة . تُعد هذه الميزة مفيدة في تطبيقات مثل التحكم في مُحول تناظري/رقمي . تشمل الميزات الأخرى القابلة للبرمجة في واجهة QSPI اختيار الشريحة وطول/تأخير النقل.
تدعم وحدات تحكم SPI من مختلف الموردين مجموعات ميزات مختلفة؛ وتُعدّ قوائم انتظار الوصول المباشر إلى الذاكرة (DMA) شائعة، على الرغم من أنها قد تكون مرتبطة بمحركات DMA منفصلة بدلاً من وحدة تحكم SPI نفسها، كما هو الحال في منفذ التسلسل المخزن مؤقتًا متعدد القنوات ( MCBSP ). [ ملاحظة 4 ] تدعم معظم وحدات تحكم SPI الرئيسية ما يصل إلى أربعة اختيارات تابعة، [ ملاحظة 5 ] على الرغم من أن بعضها يتطلب إدارة اختيارات التابعين بشكل منفصل عبر خطوط GPIO.
لاحظ أن بروتوكول SPI المُرتب في قائمة الانتظار يختلف عن بروتوكول SPI الرباعي ، بل إن بعض المعالجات تسمح بشكل مربك لواجهة "QSPI" واحدة بالعمل إما في الوضع الرباعي أو الوضع المُرتب في قائمة الانتظار! [ 20 ]
ثلاثة أسلاك
تستخدم إصدارات SPI ثلاثية الأسلاك، والمقتصرة على وضع نصف مزدوج، خط بيانات ثنائي الاتجاه واحد يُسمى SISO (إخراج/إدخال تابع) أو MOMI (إخراج/إدخال رئيسي) بدلاً من خطي SPI أحاديي الاتجاه (MOSI وMISO). يُستخدم هذا النوع من التوصيلات عادةً في المكونات ذات الأداء المنخفض، مثل ذاكرة EEPROM الصغيرة المستخدمة فقط أثناء بدء تشغيل النظام، وبعض أجهزة الاستشعار، وتقنية Microwire . يدعم عدد قليل من وحدات تحكم SPI هذا الوضع، على الرغم من إمكانية برمجته بسهولة .
امتدادات عرض البت
ثنائي SPI
في الحالات التي لا يُستخدم فيها وضع الإرسال والاستقبال المتزامن الكامل لبروتوكول SPI، يستخدم الملحق كلا طرفي البيانات في وضع الإرسال والاستقبال المتزامن النصفي لإرسال بتين في كل دورة ساعة. عادةً ما يتم إرسال بايت أمر لطلب استجابة في الوضع المزدوج، وبعد ذلك يصبح خط MOSI هو SIO0 (الإدخال/الإخراج التسلسلي 0) ويحمل البتات الزوجية، بينما يصبح خط MOSI هو SIO1 ويحمل البتات الفردية. لا تزال البيانات تُرسل بالبت الأكثر أهمية أولاً، ولكن SIO1 يحمل البتات 7 و5 و3 و1 من كل بايت، بينما يحمل SIO0 البتات 6 و4 و2 و0.
يحظى هذا بشعبية خاصة بين ذاكرة القراءة فقط SPI، والتي يتعين عليها إرسال كمية كبيرة من البيانات، ويأتي في شكلين: [ 21 ] [ 22 ]
- تقوم عملية القراءة المزدوجة بإرسال الأمر والعنوان من الجهاز الرئيسي في الوضع الفردي، وتعيد البيانات في الوضع المزدوج.
- تقوم وحدة الإدخال/الإخراج المزدوجة بإرسال الأمر في الوضع الفردي، ثم ترسل العنوان وتعيد البيانات في الوضع المزدوج.
رباعي SPI
تتجاوز تقنية Quad SPI ( QSPI ؛ وهي تختلف عن Queued-SPI الموصوفة في قسم وحدات تحكم SPI الذكية ، ولكنها تحمل نفس الاختصار ) تقنية Dual SPI، حيث تضيف خطي إدخال/إخراج إضافيين (SIO2 وSIO3) وترسل 4 بتات بيانات لكل دورة ساعة. ويتم تفعيلها عبر أوامر خاصة، تُفعّل وضع Quad بعد إرسال الأمر نفسه في وضع Single. [ 21 ] [ 22 ]
- النوع الأول من SQI
- تُرسل الأوامر على سطر واحد، بينما تُرسل العناوين والبيانات على أربعة أسطر.
- النوع الثاني من SQI
- يتم إرسال الأوامر والعناوين على سطر واحد، بينما يتم إرسال/استقبال البيانات على أربعة أسطر.
مؤشر الجودة/مؤشر الجودة القياسي
بالإضافة إلى توسيع نطاق تقنية SPI الرباعية، تدعم بعض الأجهزة وضع "الكل الرباعي" حيث تتم جميع الاتصالات عبر 4 خطوط بيانات، بما في ذلك الأوامر. [ 23 ] ويُطلق على هذا الوضع اسم "QPI" [ 22 ] (لا ينبغي الخلط بينه وبين تقنية Intel QuickPath Interconnect ) أو "الإدخال/الإخراج التسلسلي الرباعي" (SQI) [ 24 ].
يتطلب هذا برمجة بتة تكوين في الجهاز ويتطلب عناية بعد إعادة الضبط لإقامة الاتصال.
معدل بيانات مضاعف
إضافةً إلى استخدام خطوط متعددة للإدخال والإخراج، تعمل بعض الأجهزة على زيادة معدل النقل باستخدام نقل البيانات بمعدل مضاعف . [ 25 ] [ 26 ]
SGPIO
SGPIO عبارة عن حزمة تطبيقات أخرى (غير متوافقة) لبروتوكول SPI مصممة لأنشطة إدارة اللوحة الخلفية المحددة. يستخدم SGPIO رسائل مكونة من 3 بتات.
واجهة الأجهزة الطرفية التسلسلية المحسّنة من إنتل
طوّرت إنتل ناقلًا جديدًا خلفًا لناقلها ذي عدد الدبابيس المنخفض (LPC)، أطلقت عليه اسم ناقل واجهة الأجهزة الطرفية التسلسلية المحسّنة ( eSPI ). تهدف إنتل من خلال هذا الناقل إلى تقليل عدد الدبابيس المطلوبة على اللوحات الأم وزيادة الإنتاجية مقارنةً بناقل LPC، وخفض جهد التشغيل إلى 1.8 فولت لتسهيل عمليات تصنيع الرقائق الأصغر حجمًا، والسماح للأجهزة الطرفية eSPI بمشاركة أجهزة ذاكرة الفلاش SPI مع المضيف (إذ لم يكن ناقل LPC يسمح باستخدام وحدات البرامج الثابتة بواسطة الأجهزة الطرفية LPC)، وتمرير الدبابيس التي كانت تُستخدم سابقًا خارج النطاق عبر eSPI، وتمكين مصممي الأنظمة من الموازنة بين التكلفة والأداء. [ 27 ] [ 28 ]
يمكن مشاركة ناقل eSPI مع أجهزة SPI لتوفير عدد المنافذ، أو فصله عن ناقل SPI لتحسين الأداء، خاصةً عندما تحتاج أجهزة eSPI إلى استخدام ذاكرة فلاش SPI. [ 27 ]
يُحدد هذا المعيار إشارة Alert# التي يستخدمها جهاز eSPI التابع لطلب الخدمة من الجهاز الرئيسي. في التصميمات عالية الأداء أو تلك التي تحتوي على جهاز eSPI تابع واحد فقط، يتم توصيل طرف Alert# الخاص بكل جهاز تابع بطرف Alert# مخصص له على الجهاز الرئيسي، مما يسمح للجهاز الرئيسي بتقديم الخدمة بزمن استجابة منخفض، لأنه سيعرف أي جهاز تابع يحتاج إلى الخدمة دون الحاجة إلى استطلاع جميع الأجهزة التابعة لتحديد ذلك. أما في التصميمات الاقتصادية التي تحتوي على أكثر من جهاز تابع، فتُوصل جميع أطراف Alert# الخاصة بالأجهزة التابعة بطرف Alert# واحد على الجهاز الرئيسي عبر وصلة OR سلكية ، مما يتطلب من الجهاز الرئيسي استطلاع جميع الأجهزة التابعة لتحديد أيها يحتاج إلى الخدمة عندما تنخفض إشارة Alert# بسبب جهاز طرفي واحد أو أكثر يحتاج إلى الخدمة. وبعد خدمة جميع الأجهزة، ترتفع إشارة Alert# لعدم حاجة أي من الأجهزة التابعة إلى الخدمة، وبالتالي تنخفض إشارة Alert#. [ 27 ]
يسمح هذا المعيار للمصممين باستخدام اتصالات أحادية البت أو ثنائية البت أو رباعية البت بسرعات تتراوح من 20 إلى 66 ميجاهرتز، مما يتيح لهم الموازنة بين الأداء والتكلفة. [ 27 ]
ينبغي تمرير الاتصالات التي كانت خارج نطاق LPC، مثل منافذ الإدخال/الإخراج للأغراض العامة (GPIO) وناقل إدارة النظام (SMBus)، عبر eSPI من خلال دورات الأسلاك الافتراضية ودورات الرسائل خارج النطاق على التوالي، وذلك لإزالة هذه المنافذ من تصميمات اللوحات الأم التي تستخدم eSPI. [ 27 ]
يدعم هذا المعيار دورات الذاكرة القياسية التي تتراوح أطوالها بين بايت واحد و4 كيلوبايت من البيانات، ودورات الذاكرة القصيرة التي تتراوح أطوالها بين بايت واحد و2 و4 بايت والتي تتميز بانخفاض الحمل الزائد مقارنةً بدورات الذاكرة القياسية، بالإضافة إلى دورات الإدخال/الإخراج التي تتراوح أطوالها بين بايت واحد و2 و4 بايت والتي تتميز أيضًا بانخفاض الحمل الزائد. يقلل هذا بشكل كبير من الحمل الزائد مقارنةً بناقل LPC، حيث تستهلك جميع الدورات، باستثناء دورة قراءة مركز البرامج الثابتة التي يبلغ حجمها 128 بايت، أكثر من نصف إنتاجية الناقل ووقته في الحمل الزائد. تسمح دورة الذاكرة القياسية بطول يتراوح بين بايت واحد و4 كيلوبايت لتوزيع الحمل الزائد الأكبر على عملية نقل بيانات كبيرة. يُسمح لأجهزة eSPI التابعة ببدء إصدارات رئيسية من جميع دورات الذاكرة. لا تتضمن eSPI دورات الإدخال/الإخراج الرئيسية للحافلة، التي تم تقديمها بواسطة مواصفات حافلة LPC، ولا الوصول المباشر إلى الذاكرة (DMA) بنمط ISA، بما في ذلك الإصدار 32 بت الذي تم تقديمه بواسطة مواصفات حافلة LPC. لذلك، تُعد دورات الذاكرة الرئيسية للحافلة هي الوصول المباشر إلى الذاكرة المسموح به فقط في هذا المعيار. [ 27 ]
يُسمح لأجهزة eSPI التابعة باستخدام جهاز eSPI الرئيسي كوكيل لتنفيذ عمليات الفلاش على ذاكرة فلاش SPI تابعة قياسية نيابةً عن جهاز eSPI التابع الطالب. [ 27 ]
تمت إضافة عنونة الذاكرة ذات 64 بت أيضًا، ولكن يُسمح بها فقط عندما لا يكون هناك عنوان مكافئ ذو 32 بت. [ 27 ]
يمكن تهيئة مجموعة شرائح Intel Z170 لتنفيذ هذا الناقل أو نسخة معدلة من ناقل LPC تفتقر إلى قدرة DMA على غرار ISA وتعمل بتردد منخفض إلى 24 ميجاهرتز بدلاً من 33 ميجاهرتز القياسية . [ 29 ]
كما تم اعتماد ناقل eSPI بواسطة شرائح AMD Ryzen .
التوافق مع المعايير الأخرى
الأسلاك الدقيقة
تُعدّ تقنية Microwire، [ 30 ] والتي تُكتب غالبًا μWire ، سلفًا لتقنية SPI وعلامة تجارية مسجلة لشركة National Semiconductor . وهي عبارة عن مجموعة فرعية دقيقة من SPI: نصف مزدوج، وتستخدم وضع SPI 0. تميل رقائق Microwire إلى الحاجة إلى معدلات ساعة أبطأ من إصدارات SPI الأحدث؛ ربما 2 ميجاهرتز مقابل 20 ميجاهرتز. كما تدعم بعض رقائق Microwire وضعًا ثلاثي الأسلاك .
مايكرو واير/ بلس
Microwire/Plus [ 31 ] هو تحسين لـ Microwire ويتميز بالاتصال ثنائي الاتجاه الكامل ودعم أوضاع SPI 0 و 1. لم يكن هناك تحسين محدد في سرعة الساعة التسلسلية.
JTAG
على الرغم من وجود بعض أوجه التشابه بين بروتوكول SPI وبروتوكول JTAG (IEEE 1149.1-2013)، إلا أنهما ليسا متطابقين. صُمم JTAG خصيصًا لتوفير وصول اختبار موثوق إلى منافذ الإدخال/الإخراج من وحدة تحكم خارجية، مع دقة أقل في تأخير الإشارة ومعاملات الانحراف، بينما يتمتع SPI بتطبيقات متنوعة. وبالرغم من أن JTAG ليس واجهة حساسة لمستوى الإشارة بشكل مباشر، إلا أنه يدعم استعادة كلٍ من أخطاء الإعداد والتثبيت بين أجهزة JTAG عن طريق خفض تردد الساعة أو تغيير دورات تشغيلها. وبالتالي، فإن واجهة JTAG غير مصممة لدعم معدلات نقل بيانات عالية للغاية. [ 32 ]
أدوات التطوير
أجهزة الكمبيوتر أحادية اللوحة
قد توفر الحواسيب أحادية اللوحة إمكانية الوصول عبر المنافذ إلى وحدات أجهزة SPI. على سبيل المثال، يوفر موصل J8 في Raspberry Pi وحدتي SPI على الأقل يمكن استخدامهما عبر برامج تشغيل Linux أو Python .
محولات USB إلى SPI
تتوفر العديد من محولات USB التي تتيح لأجهزة الكمبيوتر المكتبية أو الهواتف الذكية المزودة بمنفذ USB التواصل مع رقائق SPI (مثل CH341A/B [ 33 ] أو FT 221xs [ 34 ] ). تُستخدم هذه المحولات في الأنظمة المدمجة، والرقائق ( FPGA ، و ASIC ، و SoC )، واختبار الأجهزة الطرفية وبرمجتها وتصحيح أخطائها. كما يوفر العديد منها إمكانيات البرمجة النصية أو البرمجة (مثل Visual Basic ، و C / C++ ، و VHDL )، ويمكن استخدامها مع برامج مفتوحة المصدر مثل flashrom ، وIMSProg، وSNANDer، وavrdude لبرمجة ذاكرة الفلاش ، و EEPROM ، وبرنامج الإقلاع ، ونظام الإدخال والإخراج الأساسي (BIOS) .
تتمثل أهم معايير بروتوكول SPI في: أقصى تردد مدعوم للواجهة التسلسلية، وزمن استجابة الأوامر، وأقصى طول لأوامر SPI. تتوفر في الأسواق اليوم محولات SPI تدعم واجهات تسلسلية بتردد يصل إلى 100 ميجاهرتز، مع طول وصول غير محدود عمليًا.
نظرًا لأن بروتوكول SPI هو معيار فعلي، فإن بعض محولات مضيف SPI لديها أيضًا القدرة على دعم بروتوكولات أخرى تتجاوز بروتوكول SPI التقليدي ذي 4 أسلاك (على سبيل المثال، دعم بروتوكول quad-SPI أو بروتوكول تسلسلي مخصص آخر مشتق من SPI [ 35 ] ).
محللات البروتوكول
تُعدّ أجهزة تحليل المنطق أدواتٍ تقوم بجمع الإشارات عالية السرعة، وتحديد وقتها ، وتحليلها، وفك تشفيرها، وتخزينها، وعرضها، وذلك للمساعدة في تصحيح الأخطاء وتطوير البرمجيات. وتتمتع معظم أجهزة تحليل المنطق بالقدرة على فك تشفير إشارات ناقل SPI إلى بيانات بروتوكول عالية المستوى مع تسميات سهلة القراءة.
راسمات الذبذبات
يمكن رؤية أشكال موجات SPI على القنوات التناظرية (و/أو عبر القنوات الرقمية في راسمات الإشارة المختلطة ). [ 36 ] يقدم معظم موردي راسمات الإشارة دعمًا اختياريًا لتحليل بروتوكول SPI (سواء كان SPI ثنائي الأسلاك أو ثلاثي الأسلاك أو رباعي الأسلاك) مع التشغيل.
المصطلحات البديلة
تُستخدم اختصارات بديلة متنوعة لإشارات SPI الأربعة الشائعة. (يُستثنى من هذا القسم الخطوط العلوية التي تشير إلى حالة التشغيل المنخفضة).
- ساعة تسلسلية
- SCK, SCLK, CLK, SCL
- السيد يخرج والعبد يدخل (موسى)
- SIMO وMTSR وSPID - تتوافق مع MOSI على كل من الجهاز الرئيسي والجهاز التابع، وتتصل ببعضها البعض.
- SDI، DI، DIN، SI، SDA - على الأجهزة التابعة؛ اختصارات مختلفة للبيانات التسلسلية في ؛ يتصل بـ MOSI على الجهاز الرئيسي
- SDO، DO، DOUT، SO - على الأجهزة الرئيسية؛ اختصارات مختلفة لإخراج البيانات التسلسلي ؛ يتصل بـ MOSI على الأجهزة التابعة
- COPI، PICO للأجهزة الطرفية ووحدة التحكم ، [ 37 ] [ 38 ] أو COTI لوحدة التحكم والهدف [ 39 ]
- السيد في الداخل العبد في الخارج (MISO)
- SOMI وMRST وSPIQ - تتوافق مع MISO على كل من الأجهزة الرئيسية والتابعة، وتتصل ببعضها البعض.
- SDO، DO، DOUT، SO - على الأجهزة التابعة؛ يتصل بـ MISO على الجهاز الرئيسي
- SDI، DI، DIN، SI - على الأجهزة الرئيسية؛ يتصل بـ MISO على الأجهزة التابعة
- CIPO، POCI، [ 37 ] [ 38 ] أو CITO [ 39 ]
- اختيار العبد (SS)
- اختيار الشريحة (CS)
- CE (تمكين الشريحة)
- تاريخي: SSEL، NSS، /SS، SS#
تستخدم شركة Microchip المضيف والعميل مع الاحتفاظ بالاختصارين MOSI و MISO. [ 40 ]
انظر أيضاً
ملحوظات
- ↑ يعود أول ذكر مؤكد لـ "واجهة الأجهزة الطرفية التسلسلية" في أرشيفات كتيبات موتورولا على موقع bitsavers إلى عام 1983 (انظر § التعريف الأصلي ). بينما تزعم بعض المصادر على الإنترنت أن موتورولا قدمت واجهة SPI عند طرح معالج 68000 في عام 1979، إلا أن العديد من هذه المصادر تبدو مجرد تكهنات ، كما أن كتيب موتورولا لمعالج 68000 الصادر عام 1983 لا يتضمن أي ذكر لـ "واجهة الأجهزة الطرفية التسلسلية"، لذا فإن تاريخ 1979 المزعوم لا يبدو معلومة موثوقة. يرجى إضافة تاريخ تصميم محدد فقط في حال توفر مصدر موثوق من موتورولا في ذلك الوقت.
- ↑ تتطلب بعض الأجهزة التابعة حافة هابطة لإشارة اختيار الجهاز التابع لبدء إجراء ما. ومن الأمثلة على ذلك محول الإشارة التناظرية إلى الرقمية Maxim MAX1242، الذي يبدأ التحويل عند الانتقال من مستوى عالٍ إلى مستوى منخفض.
- 1 2 يجب عدم الخلط بين هذا الخط وخط SDIO (إدخال/إخراج البيانات التسلسلي) الخاص بتنفيذ SPI نصف المزدوج، والذي يُسمى أحيانًا "SPI ثلاثي الأسلاك". هنا، على سبيل المثال، يتم توصيل MOSI (عبر مقاوم) وMISO (بدون مقاوم) الخاصين بالجهاز الرئيسي بخط SDIO الخاص بالجهاز التابع.
- ↑ كما هو الحال مع واجهة المنفذ التسلسلي متعدد القنوات (McSPI)، المستخدمة في رقائق OMAP من شركة Texas Instruments. ( https://www.ti.com/product/OMAP3530 )
- ↑ مثل وحدة التحكم SPI الموجودة على رقائق Atmel AT91 مثل at91sam9G20، وهي أبسط بكثير من McSPI من TI.
مراجع
- ↑ ستويسيسكو، ألين (2018). "البدء باستخدام SPI" (ملف PDF) . مايكروشيب .
- ↑ "ما هي واجهة التزامن التسلسلي (SSI)؟" . تم الاطلاع عليه بتاريخ 28-01-2015 .
- 1 2 3 تصميم أفضل لحافلة SPI في 3 خطوات
- ↑ دليل كتلة SPI الإصدار 3.06؛ موتورولا/فري سكيل/إن إكس بي؛ 2003.
- 1 2 "AN991/D: استخدام واجهة الأجهزة الطرفية التسلسلية للتواصل بين عدة حواسيب صغيرة" (ملف PDF) . NXP . 2004 [1994]. مؤرشف (ملف PDF) من الأصل بتاريخ 2023-04-04 . تم الاطلاع عليه بتاريخ 2021-10-14 .
- ↑ "دليل مرجعي لواجهة الأجهزة الطرفية التسلسلية TMS320x281x" . شركة تكساس إنسترومنتس . 2002. الصفحات 16-17 .
- ↑ مذكرة تطبيق Maxim-IC رقم 3947: "توصيل أجهزة SPI على التوالي"
- 1 2 غامون، نيك (23 مارس 2013). "منتدى غامون : الإلكترونيات : المعالجات الدقيقة : استخدام مسجل إزاحة الإدخال 74HC165" . منتدى غامون . مؤرشف من الأصل بتاريخ 29 يوليو 2023. تم الاطلاع عليه بتاريخ 3 أغسطس 2023 .
- 1 2 غامون، نيك (31 يناير 2012). "منتدى غامون : الإلكترونيات : المعالجات الدقيقة : استخدام مسجل إزاحة الإخراج 74HC595 كموسع منافذ" . منتدى غامون . مؤرشف من الأصل في 14 يوليو 2023. تم الاسترجاع في 3 أغسطس 2023 .
- ↑ واجهات ، 1977، ص 80، 84
- ↑ "مُضاعِف التحكم التسلسلي يُوسِّع نطاق اختيار رقاقة SPI" (ملف PDF) . بريمير فارنيل . 1 يوليو 2001. مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 19 أغسطس 2019.
- ↑ "AVR910 - البرمجة داخل النظام" (ملف PDF) . مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 2011-03-02.
- ↑ المكونات :: موتورولا :: كتب البيانات :: 1983 معالج موتورولا الدقيق ذو 8 بت وبيانات الأجهزة الطرفية .
- ↑ موتورولا :: داتا بوكس :: بيانات حاسوب موتورولا أحادي الشريحة 1984 .
- ↑ "استخدام واجهة الأجهزة الطرفية التسلسلية للتواصل بين عدة حواسيب صغيرة" (ملف PDF) . Bitsavers .
- ↑ SafeSPI.org
- ↑ "نقل SPI عبر واجهات LVDS" (ملف PDF) . شركة تكساس إنسترومنتس . تم الاطلاع عليه بتاريخ 14 فبراير 2021 .
- ↑ "مثال على حلقة التغذية الراجعة الرئيسية لبروتوكول SPI" . شركة نورديك لأشباه الموصلات . تم الاطلاع عليه بتاريخ 14 فبراير 2021 .
- ↑ "Freescale Semiconductor, Inc. - QSM - Queued Serial Module - Reference Manual" (PDF) . NXP . 1996 [1991]. مؤرشف من النسخة الأصلية (PDF) بتاريخ 24 أغسطس 2019.
- ↑ "تقنية Quad-SPI توفر نقل بيانات متوازي سريع" . أنظمة تصميم كادنس . 11 يناير 2023. مؤرشف من الأصل في 1 يونيو 2023. تم الاطلاع عليه في 30 يونيو 2023 .
- 1 2 "ذاكرة فلاش تسلسلية W25Q16JV 3V 16 ميجابت مع واجهة SPI ثنائية/رباعية" (ملف PDF) (ورقة البيانات). المراجعة D. وينبوند . 12 أغسطس 2016. تاريخ الاسترجاع 10 فبراير 2017 .
- 1 2 3 "D25LQ64 1.8V Uniform Sector Dual and Quad SPI Flash" (ملف PDF) (ورقة البيانات). الإصدار 0.1. GigaDevice. 11 فبراير 2011. مؤرشف من الأصل (ملف PDF) في 12 فبراير 2017. تم الاطلاع عليه بتاريخ 10 فبراير 2017 .
- ↑ "ذاكرة فلاش رباعية SPI: وضع Quad SPI مقابل وضع QPI" . منتديات مجتمع NXP . ديسمبر 2014. تم الاطلاع عليه بتاريخ 10 فبراير 2016 .
- ↑ "ذاكرة فلاش SST26VF032B / SST26VF032BA بسعة 32 ميجابت، تعمل بجهد 2.5 فولت/3.0 فولت، مزودة بمدخلات/مخرجات تسلسلية رباعية (SQI)" (ملف PDF) (ورقة البيانات). الإصدار E. شركة مايكروشيب، 2017. تاريخ الاسترجاع: 10 فبراير 2017 .
- ↑ باترسون، ديفيد (مايو 2012). "تحديثات وحدة واجهة الأجهزة الطرفية التسلسلية الرباعية (QuadSPI)" (ملف PDF) (مذكرة تطبيقية). شركة فري سكيل لأشباه الموصلات . مؤرشف من الأصل (ملف PDF) في 4 أغسطس 2016. تم الاطلاع عليه في 21 سبتمبر 2016 .
- ↑ بيل، ريتش (13 أكتوبر 2011). "تحسين الأداء باستخدام ذاكرة فلاش SPI-DDR NOR" . EDN .
- 1 2 3 4 5 6 7 8 المواصفات الأساسية لواجهة الأجهزة الطرفية التسلسلية المحسّنة (eSPI) (لأنظمة العميل والخادم) (ملف PDF) (تقرير). الإصدار 1.0. إنتل. يناير 2016. رقم الوثيقة 327432-004 . تاريخ الاسترجاع 5 فبراير 2017 .
- ↑ مواصفات واجهة eSPI المحسّنة (لأجهزة العميل) (ملف PDF) (تقرير). الإصدار 0.6. إنتل. مايو 2012. رقم الوثيقة 327432-001EN . تاريخ الاسترجاع : 5 فبراير 2017 .
- ↑ "ورقة بيانات شريحة المعالج من سلسلة Intel 100، المجلد 1" (ملف PDF) . تم الاطلاع عليه بتاريخ 15 أبريل 2015 .
- ↑ واجهة تسلسلية MICROWIRE، مذكرة تطبيقية من شركة National Semiconductor رقم AN-452
- ↑ واجهة MICROWIRE/PLUS التسلسلية لعائلة COP800، مذكرة تطبيق National Semiconductor رقم AN-579
- ↑ IEEE 1149.1-2013
- ↑ "وحدة تحكم جسر USB CH341 مع UART وSPI وI2C" . WCH . تم الاطلاع عليه بتاريخ 27 فبراير 2025 .
- ↑ "محول USB إلى SPI" . FTDI . 2 أغسطس 2020. تم الاطلاع عليه بتاريخ 14 فبراير 2021 .
- ↑ SPI Storm – محول مضيف بروتوكول تسلسلي مع دعم بروتوكولات تسلسلية مخصصة، نموذج بايت.
- ↑ "N5391B I²C و SPI Protocol Triggering and Decode for Infiniium scopes" .
- 1 2 "SPI; OSHWA" . مؤرشف من الأصل بتاريخ 27-01-2021 . تم الاطلاع عليه بتاريخ 02-06-2023 .
- 1 2 "نظرة عامة على المنتج - ترجمة الفولتية لبروتوكول SPI" (ملف PDF) . مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 17-03-2022.
- 1 2 "أجهزة واجهة الأجهزة الطرفية التسلسلية (SPI)" . NXP . مؤرشف من الأصل بتاريخ 2023-06-01 . تم الاطلاع عليه بتاريخ 2023-07-22 .
- ↑ ستويسيسكو، ألين. "البدء باستخدام واجهة الأجهزة الطرفية التسلسلية (SPI)" . مجلة تكنولوجيا الرقائق الدقيقة . مؤرشف من الأصل بتاريخ 21-12-2023 . تم الاطلاع عليه بتاريخ 21-12-2023 .
روابط خارجية
- واجهات
- حافلات الكمبيوتر
- معايير أجهزة الكمبيوتر
- الحافلات التسلسلية
