نظرية البرمجة – واجهة SPI. نظرية البرمجة - استقبال SPI لواجهة SPI

14.03.2024

SPI(الواجهة الطرفية التسلسلية، الواجهة الطرفية التسلسلية، الناقل SPI) - هذه واجهة بيانات قصيرة المسافة طورتها شركة Motorola. يتم إرسال البيانات في وضع الازدواج الكامل (في كلا الاتجاهين) باستخدام بنية السيد والعبد. SPIيُطلق عليها أيضًا أحيانًا واجهة بأربعة أسلاك.

الشكل 1: الاتصال القياسي عبر SPI

في الاطارات SPIيتم استخدام 4 إشارات رقمية:
  • موسي: (Master Out Slave In) الإخراج الرئيسي، الإدخال التابع.
  • ميسو: (Master In Slave Out) الإدخال الرئيسي، الإخراج التابع.
  • SCLK: (الساعة التسلسلية) إشارة الساعة.
  • سي إس.أو سس: (تحديد الشريحة، تحديد الرقيق) اختيار الشريحة، اختيار الرقيق.

أسماء أخرى ممكنة:

  • موسي: SIMO، SDO، DO، DOUT، SI، MTSR؛
  • ميسو: SOMI، SDI، DI، DIN، SO، MRST؛
  • SCLK: سك، كلك؛
  • سس: nCS، CS، CSB، CSN، nSS، STE، SYNC.
إطار العجلة SPIيمكن أن تعمل مع جهاز رئيسي واحد والعديد من الأجهزة التابعة. إذا تم استخدام جهاز تابع واحد، فيمكن تأريض مدخل SS الخاص به، ولكن فقط إذا لم يعمل على قطع الإشارة.

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

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


الشكل 3: التحقق من وجود مخزن مؤقت داخلي

نقل البيانات


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

الشكل 4: نقل البيانات عبر SPI
يتم استخدام ما مجموعه مسجلي إزاحة، ويتم نقل البت الأكثر أهمية من جهاز واحد إلى البت الأقل أهمية في جهاز آخر، وبعد ذلك يقوم السجل بنقل المعلومات المخزنة فيه. يعتمد عدد البتات في حزمة البيانات الواحدة على الجهاز المحدد؛ وتضيف بعض الشركات المصنعة القدرة على تغيير طول الحزمة.

إذا كانت هناك حاجة إلى نقل المزيد من البيانات، تتم كتابة معلومات جديدة إلى السجلات وتبدأ العملية مرة أخرى؛ إذا انتهى نقل البيانات، عادةً ما يقوم السيد بإيقاف تشغيل الجهاز التابع.

يتم استخدام العديد من السجلات لتكوين الواجهة. يمكنك ضبط التردد والمقاطعات وترتيب البت وغير ذلك الكثير، ويمكن العثور على مزيد من المعلومات حول هذا في الوثائق من Motorola ee.nmt.edu، وقد تم أخذ هذا المستند كمعيار لـ. SPI. لكن الشركات المصنعة قد لا تستخدم جميع الإعدادات الموصوفة هناك، وقد يتم ترتيب البتات بتسلسل مختلف عن الوصف الذي قدمته موتورولا. على أية حال، تحتاج إلى قراءة الوثائق الخاصة بالجهاز المحدد.

إذا كان من الواضح كيفية ضبط تردد الإرسال واختيار السيد/التابع، فيمكنك وصف المزيد من التفاصيل حول ضبط مرحلة وقطبية إشارة الساعة.

بشكل أساسي، يمكن فهم هذه الإعدادات من مخطط التوقيت:

  • CPOL= 0: تبدأ إشارة المزامنة منخفضة؛
  • CPOL= 1: تبدأ إشارة المزامنة عالية؛
  • CPHA= 0: تتم كتابة البيانات على الحافة الصاعدة لإشارة الساعة؛
  • CPHA= 1: يتم تسجيل البيانات على الحافة السفلية لإشارة الساعة.
تشير الحواف السفلية والمقدمة إلى التغيير الأول في إشارة الساعة أو الثاني. هذا لا يعتمد على الحالة التي يذهب إليها الخط SCKيمكن أن تكون إما جبهة هابطة أو صاعدة.

اعتمادا على حالة البتات CPHAو CPOL، هناك 4 أوضاع تشغيل لواجهة SPI (0 أو 1 أو 2 أو 3). ولكن اعتمادًا على الشركة المصنعة، غالبًا ما تتوافق هذه الحالات مع حالات البت المختلفة، على سبيل المثال، بالنسبة لوحدات التحكم ARM وPIC32MX، لا يتطابق أي من الأوضاع.

هناك طريقتان شائعتان لتمكين العديد من واجهات برمجة التطبيقات (SPIs)، أولهما عبارة عن اتصال سلسلة تعاقبية:

في هذه الحالة، يختار السيد الجهاز التابع الذي يجب أن ينقل البيانات.

قد تكون الأجهزة التابعة غير متوافقة مع بعضها البعض وتحتاج إلى إعدادات مختلفة، على سبيل المثال، أطوال حزم مختلفة، وفي هذه الحالة تستخدم اتصال "حلقي":

في هذه الحالة، يتم تشغيل جميع الأجهزة في وقت واحد ويتم نقل البيانات بالتتابع، ومن أجل نقل المعلومات إلى أي جهاز أو منه إلى السيد، من الضروري المرور عبر عدة دورات نقل.

خاتمة


SPIاكتسبت الواجهة شعبيتها بسبب بساطتها وتكلفتها المنخفضة. الآن يمكن العثور عليها في عدد كبير من الأجهزة التي تمت برمجة MKs بمساعدتها، كما يتم تنفيذ JTAG على أساس SPI.غالبًا ما يتم استخدامه للتواصل مع الدوائر الدقيقة المختلفة: ذاكرة فلاش، EEPROM، LCD، بطاقات SD، ADC، DAC، وأكثر من ذلك بكثير.

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

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

مزايا

  • نقل البيانات على الوجهين الكامل.
  • إنتاجية أعلى مقارنة بـ I²C أو SMBus.
  • إمكانية الاختيار التعسفي لطول الحزمة.
  • متطلبات استهلاك طاقة أقل مقارنةً بـ I²C وSMBus؛
  • يمكن استخدامها في الأنظمة ذات سرعات الساعة المستقرة المنخفضة؛
  • لا تحتاج الأجهزة التابعة إلى عنوان فريد، على عكس الواجهات مثل I²C أو GPIB أو SCSI.
  • يتم استخدام أربعة أطراف فقط، وهو أقل بكثير من الواجهات المتوازية.
  • تسمح الطبيعة أحادية الاتجاه للإشارات، إذا لزم الأمر، بتنظيم العزل الجلفاني بسهولة بين الأجهزة الرئيسية والتابعة.
  • الحد الأقصى لتردد الساعة يقتصر فقط على سرعة الأجهزة المشاركة في تبادل البيانات.

عيوب

  • يلزم وجود عدد أكبر من الدبابيس مقارنة بواجهة I²C.
  • لا يمكن للجهاز التابع التحكم في تدفق البيانات.
  • لا يوجد إقرار باستلام البيانات من الجهاز التابع (يمكن للجهاز الرئيسي نقل البيانات "إلى أي مكان").
  • لا يوجد بروتوكول محدد للكشف عن الأخطاء.
  • إن عدم وجود معيار رسمي يجعل من المستحيل التصديق على الأجهزة.
  • فيما يتعلق بنطاق نقل البيانات، فإن واجهة SPI أدنى من معايير مثل UART وCAN.
  • توافر العديد من خيارات تنفيذ الواجهة.
  • عدم وجود دعم للتوصيل السريع للأجهزة.

مصادر:
وثائق من موتورولا

واجهات النقل

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

تأتي الواجهات مع نقل البيانات غير المتزامن والمتزامن. مع نقل البيانات المتزامن، يتم إرسال إشارة الساعة في وقت واحد مع البيانات، مما يسمح لجهاز الاستقبال وجهاز الإرسال بالمزامنة. مثال على هذا البروتوكول هو واجهة SPI.

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

دعونا نلقي نظرة فاحصة على العديد من الواجهات الأكثر شعبية.

واجهة USART

واجهة USART عبارة عن جهاز إرسال واستقبال متزامن وغير متزامن عالمي. يتم نقل البيانات إلى USART على فترات منتظمة. يتم تحديد هذه الفترة الزمنية بواسطة سرعة USART المحددة ويتم تحديدها بالباود (بالنسبة للأحرف التي يمكن أن تأخذ قيمًا تساوي صفر أو واحد فقط، فإن الباود يعادل البتات في الثانية). هناك نطاق مقبول عمومًا من السرعات القياسية: 300، 600، 1200، 2400، 4800، 9600، 19200، 38400، 57600، 115200، 230400، 460800، 921600 باود.

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

تتمثل الاتفاقية في أن الحالة المنفعلة (في حالة عدم وجود بيانات) لمدخلات ومخرجات USART هي "1" منطقية. تكون بتة البداية دائمًا "0" منطقية، لذلك ينتظر مستقبل USART الانتقال من "1" إلى "0" ويحسب منه فاصلًا زمنيًا قدره نصف مدة البتة (منتصف إرسال بتة البداية) . إذا كان الإدخال في هذه اللحظة لا يزال "0"، فستبدأ عملية استلام الحد الأدنى من الطرود. للقيام بذلك، يقوم جهاز الاستقبال بحساب فترات 9 بتات متتالية (لبيانات 8 بتات) ويسجل حالة الإدخال في كل لحظة. أول 8 قيم هي البيانات المستلمة، والقيمة الأخيرة هي قيمة اختبار (بت التوقف). وتكون قيمة بتة التوقف دائمًا "1" إذا كانت القيمة المستلمة الفعلية مختلفة، فإن USART يسجل خطأ.

لتشكيل فترات زمنية، تحتوي وحدات USART للإرسال والاستقبال على مصدر للوقت الدقيق (تسجيل الوقت). يجب أن تكون دقة هذا المصدر بحيث لا يتجاوز مجموع الأخطاء (المستقبل والمرسل) في تحديد الفاصل الزمني من بداية نبضة البداية إلى منتصف نبضة التوقف النصف (أو الأفضل من ذلك، على الأقل ربع) من الفاصل الزمني للبت. بالنسبة لرسالة ذات 8 بتات 0.5/9.5 = 5% (في الواقع لا تزيد عن 3%). وبما أن هذا هو مجموع أخطاء المستقبل والمرسل بالإضافة إلى التشوه المحتمل للإشارة على الخط، فإن التسامح الموصى به لدقة تسجيل الوقت USART لا يزيد عن 1,5%.

وبما أن بتات الساعة تشغل جزءًا من تدفق البتات، فإن إنتاجية UART الناتجة لا تساوي سرعة الاتصال. على سبيل المثال، بالنسبة لعمليات الإرسال بتنسيق 8-N-1 ذات 8 بت، تشغل بتات الساعة 20% من الدفق، والتي تعطي معدل بتات بيانات يبلغ 92160 بت في الثانية أو 11520 بايت/ثانية بالنسبة للسرعة الفعلية البالغة 115200 باود.

التحقق من التكافؤ

يتمتع بروتوكول USART بالقدرة على مراقبة سلامة البيانات تلقائيًا باستخدام طريقة تكافؤ البت. عندما يتم تمكين هذه الميزة، فإن البت الأخير من البيانات ("بت التكافؤ") يكون دائمًا 1 أو 0، بحيث يكون عدد الآحاد في البايت دائمًا متساويًا.

التحكم في التدفق

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

التنفيذ المادي.

USART هو بروتوكول تبادل، أي. فهو يحدد طريقة تكوين البتات ومعلمات نقل البايت وسرعة الإرسال وما إلى ذلك.

لكن التنفيذ المادي لـ USART قد يكون مختلفًا. على سبيل المثال، لنقل البيانات داخل لوحة واحدة، يتم إرسال الإشارات عند مستويات +5 فولت و0 فولت. لنقل البيانات عبر مسافات طويلة وبين الأجهزة، يتم استخدام مستويات ومعايير الجهد الفيزيائي الأخرى، مثل: حلقة التيار (4-20 مللي أمبير)، RS-232 (منفذ COM)، RS-485 وما شابه.

لتحويل مستويات "وحدة التحكم" من 0-5 فولت إلى مستويات "قياسية"، يوجد عدد كبير من الدوائر الدقيقة المتخصصة، على سبيل المثال ADM202 لـ RS-232.

الواجهة التسلسلية SPI

اسم SPI هو اختصار لـ "Serial Peripheral Bus"، مما يعكس الغرض منه - ناقل لتوصيل الأجهزة الخارجية. يتم تنظيم حافلة SPI وفقًا لمبدأ السيد والعبد. عادة ما يكون الناقل الرئيسي عبارة عن وحدة تحكم دقيقة، ولكن يمكن أيضًا أن يكون منطقًا قابلاً للبرمجة، أو وحدة تحكم DSP، أو ASIC. الأجهزة المتصلة بالسيد هي عبيد. يتم لعب دورهم بواسطة أنواع مختلفة من الدوائر الدقيقة، بما في ذلك. أجهزة التخزين (EEPROM، ذاكرة فلاش، SRAM)، ساعة الوقت الحقيقي (RTC)، ADC/DAC، مقاييس الجهد الرقمية، وحدات التحكم المتخصصة، إلخ.

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

اتصال.

هناك ثلاثة أنواع من الاتصال بحافلة SPI، يتضمن كل منها أربع إشارات. تم توضيح الغرض من إشارات SPI في الجدول 7.1.

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

لكي يتمكن جهاز IC التابع من استقبال البيانات ونقلها، بالإضافة إلى وجود إشارة على مدار الساعة، يجب أيضًا أن يكون خط SS منخفضًا. وإلا فإن IC التابع سيكون غير نشط. عند استخدام IC خارجي واحد فقط، قد يكون من المغري إزالة خط SS عن طريق دفع مدخلات تحديد IC التابعة إلى مستوى منخفض جدًا. هذا الحل غير مرغوب فيه للغاية ويمكن أن يؤدي إلى فشل أو حتى استحالة نقل البيانات، لأنه يعمل إدخال تحديد الشريحة على إعادة ضبط IC إلى حالته الأولية ويبدأ أحيانًا في إخراج الجزء الأول من البيانات.

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

إذا لم يكن هناك ما يكفي من أرجل المتحكم الدقيق، فيمكنك استخدام شريحة مزيل تعدد الإرسال. يقوم مزيل تعدد الإرسال بتوصيل إشارة دخل واحدة بإحدى إشارات الخرج، اعتمادًا على الكود الموجود على دبابيس التحكم. يوضح الشكل 7.4 مخطط الاتصال لجهاز إزالة تعدد الإرسال. يتم توفير إشارة SS لمدخلها، والتي تأخذ قيمة تساوي 0 إذا كان من الضروري اختيار إحدى الدوائر الدقيقة. يتم توفير رقم الدائرة الدقيقة المطلوبة في الكود الثنائي لأرجل Am-A0. يتيح لك ذلك تقليل عدد الأرجل المستخدمة في وحدة التحكم الدقيقة إلى m=log 2 n. حيث n هو عدد رقائق الرقيق. أولئك. لتوصيل 128 جهازًا، يلزم وجود 8 دبابيس لوحدة التحكم الدقيقة. واحد لضبط إشارة التمكين و7 لتحديد رقم الشريحة التي سيتم تشغيلها. تجدر الإشارة إلى أنه يجب أن يكون هناك واحد منطقي على الأرجل غير المتصلة لجهاز إزالة تعدد الإرسال. وبخلاف ذلك، يتم استخدام عاكس الإشارة، الذي يحول الصفر المنطقي إلى الصفر المنطقي.

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

بروتوكول نقل

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

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

· CPHA - مرحلة التزامن. تحدد هذه المعلمة التسلسل الذي يتم به تثبيت البيانات واسترجاعها. إذا كان CPHA = 0، فسيتم أخذ عينات من البيانات على الحافة الصاعدة لدورة الساعة، ثم سيتم تعيين البيانات على الحافة الهابطة. إذا كان CPHA = 1، فسيتم إجراء تثبيت البيانات على الحافة الصاعدة في دورة المزامنة، وسيتم إجراء أخذ العينات على الحافة الهابطة.

يتم عرض المعلومات حول أوضاع SPI في الشكلين 7.7 و7.8.

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

واجهة RS-485

تعد واجهة RS-485 (الاسم الآخر EIA/TIA-485) أحد معايير طبقة الاتصال المادية الأكثر شيوعًا. الطبقة المادية هي قناة اتصال وطريقة إرسال الإشارة (الطبقة 1 من نموذج التوصيل البيني للأنظمة المفتوحة OSI).

تتكون الشبكة المبنية على واجهة RS-485 من أجهزة إرسال واستقبال متصلة باستخدام زوج ملتوي - سلكين ملتويين. تعتمد واجهة RS-485 على مبدأ نقل البيانات التفاضلي (المتوازن). جوهرها هو نقل إشارة واحدة عبر سلكين. علاوة على ذلك، يحمل سلك واحد (بشروط A) الإشارة الأصلية، والآخر (بشروط B) يحمل نسختها العكسية. بمعنى آخر، إذا كان هناك "1" على أحد السلكين، فإن "0" على السلك الآخر، والعكس صحيح. وبالتالي، هناك دائمًا فرق جهد بين سلكي الزوج الملتوي: عند "1" يكون موجبًا، وعند "0" يكون سالبًا (الشكل 7.9).

هذا هو الفرق المحتمل الذي ينقل الإشارة. توفر طريقة الإرسال هذه مناعة عالية لتداخل الوضع الشائع. تداخل الوضع المشترك هو تداخل يؤثر على كلا سلكي الخط بالتساوي. على سبيل المثال، تقوم موجة كهرومغناطيسية تمر عبر جزء من خط اتصال بإحداث جهد في كلا السلكين. إذا تم إرسال الإشارة بالجهد في سلك واحد بالنسبة للمشترك كما في RS-232 فإن التداخل على هذا السلك يمكن أن يشوه الإشارة بالنسبة للمشترك (الأرضي) الذي يمتص التداخل بشكل جيد. بالإضافة إلى ذلك، فإن فرق الجهد الأرضي سينخفض ​​عبر مقاومة سلك مشترك طويل - وهو مصدر إضافي للتشويه. ومع النقل التفاضلي، لا يحدث التشويه. في الواقع، إذا كان هناك سلكان قريبان من بعضهما البعض، ومتشابكين، فإن الالتقاط على كلا السلكين هو نفسه. يتغير الجهد في كلا السلكين المحملين بالتساوي، بينما يظل فرق الجهد المعلوماتي دون تغيير.

تنفيذ الأجهزة لواجهة RS485.

تنفيذ الأجهزة للواجهة - شرائح جهاز الإرسال والاستقبال ذات المدخلات/المخرجات التفاضلية (إلى الخط) والمنافذ الرقمية (إلى منافذ UART الخاصة بوحدة التحكم). هناك خياران لهذه الواجهة: RS-422 وRS-485.

RS-422 عبارة عن واجهة مزدوجة كاملة. يتم الاستقبال والإرسال عبر زوجين منفصلين من الأسلاك. لا يمكن أن يكون هناك سوى جهاز إرسال واحد على كل زوج من الأسلاك.

RS-485 عبارة عن واجهة أحادية الاتجاه. ويتم الاستقبال والإرسال عبر زوج واحد من الأسلاك مع فاصل زمني. يمكن أن يكون هناك العديد من أجهزة الإرسال في الشبكة، حيث يمكن إيقاف تشغيلها في وضع الاستقبال (الشكل 7.10).

شرح الرموز في الشكل 7.10

د (سائق) - الارسال.
R (المتلقي) - المتلقي؛
DI (إدخال برنامج التشغيل) - الإدخال الرقمي لجهاز الإرسال؛
RO (مخرج جهاز الاستقبال) - الإخراج الرقمي لجهاز الاستقبال؛
DE (تمكين برنامج التشغيل) - إذن لتشغيل جهاز الإرسال؛
RE (تمكين جهاز الاستقبال) - إذن لتشغيل جهاز الاستقبال؛
أ - الإدخال/الإخراج التفاضلي المباشر؛
ب - الإدخال/الإخراج التفاضلي العكسي؛
Y - الإخراج التفاضلي المباشر (RS-422)؛
Z - الخرج التفاضلي العكسي (RS-422).

دعونا نلقي نظرة فاحصة على جهاز الإرسال والاستقبال RS-485. يتم توصيل الإخراج الرقمي لجهاز الاستقبال (RO) بمنفذ UART لجهاز الاستقبال (RX). الإدخال الرقمي لجهاز الإرسال (DI) إلى منفذ إرسال UART (TX). نظرًا لأن جهاز الاستقبال وجهاز الإرسال متصلان على الجانب التفاضلي، فيجب إيقاف تشغيل جهاز الإرسال أثناء الاستقبال، ويجب إيقاف تشغيل جهاز الاستقبال أثناء الإرسال. ولهذا الغرض، يتم استخدام مدخلات التحكم - إذن المتلقي (RE) وإذن المرسل (DE). نظرًا لأن دخل RE معكوس، فيمكن توصيله بـ DE وتبديل جهاز الاستقبال وجهاز الإرسال بإشارة واحدة من أي منفذ لوحدة التحكم. عند المستوى "0" - العمل للاستقبال، عند "1" - للإرسال (الشكل 7.11).

يقوم جهاز الاستقبال، الذي يستقبل فرق الجهد (UAB) عند المدخلات التفاضلية (AB)، بتحويلها إلى إشارة رقمية عند خرج RO. قد تكون حساسية جهاز الاستقبال مختلفة، لكن الشركات المصنعة لرقائق جهاز الإرسال والاستقبال تكتب في الوثائق نطاق العتبة المضمون للتعرف على الإشارة. عادةً ما تكون هذه العتبات ± 200 مللي فولت. أي عندما UAB > +200 mV - يكتشف جهاز الاستقبال الرقم "1" عند UAB< -200 мВ - приемник определяет "0". Если разность потенциалов в линии настолько мала, что не выходит за пороговые значения - правильное распознавание сигнала не гарантируется. Кроме того, в линии могут быть и не синфазные помехи, которые исказят столь слабый сигнал.

يتم توصيل جميع الأجهزة بكبل مزدوج مجدول بنفس الطريقة: المخرجات المباشرة (A) إلى سلك واحد، والمخرجات العكسية (B) إلى الآخر.

تكون معاوقة دخل جهاز الاستقبال على جانب الخط (RAB) عادةً 12 كيلو أوم. وبما أن طاقة جهاز الإرسال ليست غير محدودة، فإن هذا يخلق حدًا لعدد أجهزة الاستقبال المتصلة بالخط. وفقًا لمواصفات RS-485، مع الأخذ في الاعتبار المقاومات الطرفية، يمكن لجهاز الإرسال تشغيل ما يصل إلى 32 جهاز استقبال. ومع ذلك، هناك عدد من الدوائر الدقيقة ذات مقاومة الإدخال المتزايدة، والتي تتيح لك توصيل أكثر من 32 جهازًا بالخط.

يمكن أن تصل سرعة الاتصال القصوى وفقًا لمواصفات RS-485 إلى 10 ميجابايت/ثانية. أقصى مسافة هي 1200 متر. إذا كان من الضروري تنظيم الاتصال على مسافة تزيد عن 1200 متر أو توصيل أجهزة أكثر مما تسمح به سعة تحميل جهاز الإرسال، يتم استخدام أجهزة إعادة إرسال خاصة.

واجهة I2C.

تم اقتراح هذه الواجهة من قبل شركة Philips، التي استخدمتها لتنظيم الاتصال بين الشرائح في أجهزة التلفزيون الخاصة بها. I 2 C (اختصار لـ Inter-Integrated Circuit) هو ناقل تسلسلي غير متزامن ثنائي الاتجاه. ماديًا، يتكون ناقل I 2 C من خطين للإشارة، أحدهما (SCL) مخصص لنقل إشارة الساعة، والثاني (SDA) لتبادل البيانات. للتحكم في الخطوط تستخدم مراحل الإخراج بمجمع مفتوح، لذلك يجب توصيل خطوط الناقل بمصدر طاقة +5 فولت من خلال مقاومات تبلغ مقاومتها 1...10 كيلو أوم، حسب الطول المادي للخطوط و معدل نقل البيانات. يمكن أن يصل طول خطوط الاتصال في الوضع القياسي إلى 2 متر، ومعدل نقل البيانات هو 100 كيلوبت/ثانية.

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

في اللحظة الأولى من الزمن - في وضع الاستعداد - يكون كلا الخطين SCL وSDA في حالة منطقية واحدة (يتم إغلاق ترانزستور مرحلة إخراج المجمع المفتوح). في وضع الإرسال (الشكل 7.12)، يتم تسجيل بتة بيانات SDA بواسطة الحافة الصاعدة لـ SCL. يتم تغيير المعلومات الموجودة على خط SDA عندما يكون خط SCL في حالة الصفر. يمكن للجهاز التابع "الاحتفاظ" بخط SCL في الحالة الصفرية، على سبيل المثال، أثناء معالجة البايت المستلم التالي، بينما يجب على الجهاز الرئيسي الانتظار حتى يتم تحرير خط SCL قبل الاستمرار في إرسال المعلومات.

لمزامنة حزم ناقل I 2 C، يتم التمييز بين شرطين - "START" و"STOP"، مما يحد من بداية ونهاية حزمة المعلومات (الشكل 7.13). لتشفير هذه الشروط، يتم استخدام تغيير في حالة خط SDA بحالة واحدة لخط SCL، وهو أمر غير مقبول عند نقل البيانات. يتشكل شرط "البدء" عند ظهور حافة هابطة على خط SDA، عندما يكون خط SCL في حالة واحدة، والعكس، يتشكل شرط "STOP" عندما تظهر حافة صاعدة على خط SDA عندما يكون SCL الخط في حالة واحدة.

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

لبدء عملية تبادل البيانات، يصدر الجهاز الرئيسي شرط "بدء" على الناقل. شرط "البدء" يتبعه بايت بعنوان الجهاز التابع (الشكل 7.14)، ويتكون من عنوان جهاز مكون من سبعة بتات (البتات 1...7) وعلامة عملية قراءة وكتابة مكونة من بت واحد - " "R/W" (البت 0). تحدد البتة R/W اتجاه التبادل، حيث يعني 0 نقل البيانات من السيد إلى العبد (الشكل 7.14 أ)، والرقم 1 يعني القراءة من العبد (الشكل 7.14 ب). يتم إرسال جميع البتات الموجودة على الناقل I 2 C بالترتيب من الأعلى إلى الأدنى، أي أن البت السابع يتم إرساله أولاً، والبت 0 الأخير. قد يتبع العنوان بايتة واحدة أو أكثر من المعلومات (في الاتجاه المحدد بواسطة علامة R/W)، ويتم تسجيل البتات الخاصة بها بواسطة الرئيسي على ناقل SCL.

عند إجراء عملية قراءة، يجب على المضيف ACK البايت المقروء إذا كان يريد قراءة البايت التالي، وعدم إصدار ACK إذا كان على وشك الانتهاء من قراءة الحزمة (انظر الشكل 7.14ب).

يُسمح باستئناف عنوان الجهاز التابع عدة مرات في دورة إرسال واحدة، أي إرسال حالة "بدء" متكررة دون شرط "إيقاف" سابق (الشكل 7.14ج).

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

يستخدم الناقل ذو السلك الواحد موصلًا واحدًا فقط للاتصال والطاقة. وضع الاتصال غير متزامن وأحادي الاتجاه، ويتبع بدقة نمط السيد والعبد. يمكن توصيل جهاز تابع واحد أو أكثر بنفس الناقل في نفس الوقت. يمكن توصيل جهاز رئيسي واحد فقط بحافلة واحدة.

تتوافق حالة الخمول للحافلة مع المستوى العالي الذي يتم إنشاؤه بواسطة مقاوم السحب. يتم إعطاء قيمة المقاوم السحب في وثائق IC التابعة. يجب أن تكون جميع الرقائق المتصلة بالحافلة قادرة على إنتاج مستوى منخفض. إذا كان مخرج وحدة التحكم الدقيقة لا يدعم ثلاث حالات، فمن الضروري توفير برنامج تشغيل يحتوي على مجمع مفتوح أو مخرج صرف مفتوح

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

إشارات الحافلات الأساسية.

يبدأ السيد كل اتصال على مستوى البت. وهذا يعني أن إرسال كل بت، بغض النظر عن الاتجاه، يجب أن يبدأ بواسطة السيد. يتم تحقيق ذلك عن طريق ضبط الناقل على مستوى منخفض، والذي يقوم بمزامنة منطق جميع الأجهزة الأخرى. هناك 5 أوامر رئيسية للاتصال عبر الناقل ذو السلك الواحد: "اكتب السجل. 1"، "اكتب السجل. 0" و"قراءة" و"إعادة ضبط" و"حضور".

إشارة "اكتب السجل. 1"

إشارة "اكتب السجل. 1" موضح في الشكل. 7.15. يقوم السيد بتعيين المستوى المنخفض لـ 1...15 s. بعد ذلك، يقوم بتحرير الحافلة لبقية الفترة الزمنية.

أرز. 7.15 - إشارة "اكتب السجل. 1"

إشارة "اكتب السجل. 0"

إشارة "اكتب السجل. 0" موضح في الشكل 7.16. يقوم السيد بإنشاء مستوى منخفض لمدة لا تقل عن 60 ميكروثانية، ولكن لا يزيد عن 120 ميكروثانية.

الشكل 7.16 - الإشارة "اكتب السجل. 0"

قراءة الإشارة

تظهر إشارة "القراءة" في الشكل. 7.17. يقوم السيد بتعيين المستوى المنخفض لـ 1...15 s. ثم يبقي العبد الحافلة منخفضة إذا أراد إرسال سجل. 0. إذا كان من الضروري نقل السجل. 1، ثم يقوم ببساطة بتحرير الخط. يجب إجراء فحص الحافلة خلال 15 ميكروثانية من انخفاض الحافلة. عند النظر إليها من جانب السيد، فإن إشارة "القراءة" هي في جوهرها إشارة "سجل الكتابة". 1". سيتم تحديد الحالة الداخلية الفعلية للعبد من خلال إشارة "سجل السجل". 1" أو "القراءة".

الشكل 7.17 - إشارة "اقرأ".

إعادة تعيين/وجود الإشارة

تظهر إشارات "إعادة الضبط" و"التواجد" في الشكل 7.18. يرجى ملاحظة أن الفترات الزمنية للنبض مختلفة. يسحب السيد إلى مستوى منخفض لمدة 8 فترات زمنية (480 s) ثم يطلق الحافلة. تسمى هذه الفترة الطويلة من الحالة المنخفضة بإشارة "إعادة الضبط".

إذا كان العبد موجودًا على متن الحافلة، فيجب عليه، في غضون 60 ميكروثانية بعد أن يقوم السيد بتحرير الحافلة، أن يقوم بتعيين مستوى منخفض يبلغ 60 ميكروثانية على الأقل. هذا الرد يسمى "الحضور". إذا لم يتم الكشف عن مثل هذه الإشارة، يجب أن يفترض السيد أنه لا توجد أجهزة متصلة بالحافلة ولا يمكن إجراء مزيد من الاتصالات.

تم تطوير USB (الناقل التسلسلي العالمي) لتوصيل الأجهزة الخارجية بجهاز كمبيوتر شخصي بسرعة ثم البحث عن البرامج الضرورية وتثبيتها. يتم تشغيل الأجهزة منخفضة الطاقة مباشرة من خلال الواجهة.

يشير معيار USB إلى وجود جهاز رئيسي (مضيف) واحد فقط على الشبكة. علاوة على ذلك، يدعم المعيار ما يصل إلى 127 جهازًا تابعًا على الشبكة. للتمييز بين الأجهزة الرئيسية والتابعة، تم تطوير أنواع مختلفة من الموصلات (الشكل 7.19): النوع A للجهاز الرئيسي والنوع B للتابع. من المقبول أن يكون الجهد 5 فولت موجودًا فقط في الموصل من النوع A، وهو الموصل الرئيسي. ويتم تشغيل باقي الأجهزة منه مباشرة.

يستخدم معيار USB 4 أسلاك محمية، اثنان منها ينقلان الطاقة (+5 فولت وGND) (الشكل 7.19 والجدول 7.2). ويمثل الاثنان الآخران إشارات البيانات التفاضلية الزوجية الملتوية. نظام الترميز المستخدم NRZI(عدم العودة إلى الصفر العكسي) لنقل البيانات مع مجال المزامنة لمزامنة الساعات الرئيسية والتابعة.

قدم معيار USB 2.0 معيار On-The-Go (OTG)، الذي قدم بروتوكول تفاوض المضيف، والذي يسمح لجهازي USB بالاتفاق على من سيكون بمثابة السيد. ويهدف هذا ويقتصر على الاتصالات الفردية من نقطة إلى نقطة، مثل الهاتف المحمول بجهاز الكمبيوتر الشخصي.

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

يدعم الإصدار 1.1 من SB سرعتين - وضع السرعة الكاملة بسرعة 12 ميجابت/ثانية ووضع السرعة المنخفضة بسرعة 1.5 ميجابت/ثانية. يعتبر وضع 1.5 ميجابت/ثانية أبطأ وأقل حساسية للتداخل الكهرومغناطيسي (EMI)، مما يقلل من تكلفة حبات الفريت ويقلل من متطلبات جودة المكونات.

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

يقدم معيار USB 2.0 وضع السرعة العالية مع معدل نقل بيانات يبلغ 480 ميجابت/ثانية.

نقل البيانات.

يتم بدء جميع عمليات نقل البيانات عبر الواجهة بواسطة المضيف. يتم نقل البيانات في شكل حزم. تستخدم واجهة USB عدة أنواع من الحزم:

أ) حزمة التوقيع (حزمة رمزية) يصف نوع واتجاه نقل البيانات وعنوان الجهاز والرقم التسلسلي لنقطة النهاية (CT هو الجزء القابل للتوجيه من جهاز USB)؛ هناك عدة أنواع من حزم الميزات: في, خارج, قوات العمليات الخاصة, يثبت;

ب) حزمة البيانات (حزمة البيانات) يحتوي على البيانات المرسلة؛

ب) حزمة الموافقة (حزمة المصافحة) يهدف إلى الإبلاغ عن نتائج نقل البيانات؛ هناك عدة أنواع من حزم التنسيق: أك, ن.ك., المماطلة.

يتم نقل البيانات عبر USB على النحو التالي:

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

نقاط النهاية في معيار USB هي مصادر ومصارف البيانات. يجب أن تدعم كافة الأجهزة نقطة النهاية 0. هذه هي نقطة النهاية التي تقبل كافة طلبات التحكم والحالة أثناء التعداد (طلب مؤشر لتحديد نوع الجهاز المرفق) وطالما ظل الجهاز قيد التشغيل على الناقل.

تُستخدم نقاط النهاية المرقمة من 1 لنقل معلومات المستخدم. دعونا نلقي نظرة على بضعة أمثلة.

ينقل برنامج تشغيل الجهاز إلى نقطة نهاية الجهاز الرئيسي EP1. لأن هذا الجهاز هو الجهاز الرئيسي، ثم تنتقل البيانات إلى المخزن المؤقت للخارج EP1. في هذه الحالة، يتم إرسال رمز OUT، للإشارة إلى أن البيانات جاهزة للإرسال. بعد استلام هذا الرمز، يمكن للجهاز التابع قراءة البيانات من المخزن المؤقت للخارج.

إذا كان الجهاز التابع يحتاج إلى نقل البيانات إلى الجهاز الرئيسي، فإنه يضعها في المخزن المؤقت IN. سيحتفظ هذا المخزن المؤقت بالبيانات حتى يرسل السيد رمز IN الذي يطلب البيانات من نقطة النهاية. يتم تسمية كافة المخازن المؤقتة لنقطة النهاية نسبةً إلى المخازن المؤقتة الرئيسية، أي. يسمى المخزن المؤقت للإخراج للجهاز التابع بـ IN لأنه إنه مخزن الإدخال المؤقت للجهاز الرئيسي.

يتم نقل البيانات من نقطة نهاية إلى أخرى من خلال التدفقات. التدفق – اتصال منطقي بين المضيف ونقطة (نقاط) النهاية.

تحتوي التدفقات أيضًا على مجموعة من المعلمات مثل نوع الإرسال (التحكم أو السائب أو Iso أو المقاطعة) واتجاه تدفق البيانات والحد الأقصى لأحجام الحزمة/المخزن المؤقت.

على سبيل المثال، الدفق الافتراضي هو دفق ثنائي الاتجاه يتكون من نقطة النهاية IN 0 ونقطة النهاية OUT 0 مع التحكم في نوع النقل.

يحدد USB نوعين من الأنابيب

أ) أنابيب التيارلا تحتوي على تنسيق USB محدد مسبقًا، لذا يمكنك إرسال أي نوع من البيانات عبر أنبوب الدفق واسترداد البيانات في الطرف الآخر. تدفقات البيانات متسلسلة ولها اتجاه محدد مسبقًا - داخل أو خارج. تدعم أنابيب الدفق أنواع النقل المجمعة والمتزامنة والمقاطعة. يمكن التحكم في أنابيب الدفق من المضيف أو الجهاز.

ب) أنابيب الرسائللديك تنسيق USB محدد مسبقًا. يتم التحكم فيها من قبل المضيف، ويتم تشغيلها بناءً على طلب مرسل من المضيف. يتم إرسال البيانات في الاتجاه المطلوب المحدد في الطلب. وبالتالي، تسمح أنابيب الرسائل بنقل البيانات في كلا الاتجاهين، ولكنها تدعم عمليات نقل التحكم فقط.

يصف معيار USB أربعة أنواع من نقل البيانات:

أ) التحكم في الشحن (نقل السيطرة) يُستخدم لتكوين الجهاز بالإضافة إلى أغراض أخرى خاصة بالجهاز.

ب) الجريان (النقل الجماعي) يستخدم لنقل كمية كبيرة نسبيا من المعلومات.

ب) إعادة توجيه المقاطعة (نقل متكرر) يستخدم لنقل كمية صغيرة نسبيًا من المعلومات، والتي يعد إرسالها في الوقت المناسب أمرًا مهمًا. لها مدة محدودة وأولوية أعلى مقارنة بأنواع التحويلات الأخرى.

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

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

اليوم نبدأ التعرف على الإطار SPI (الواجهة الطرفية التسلسلية).

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

هناك عامل مهم آخر في ضرورة التعرف علينا عليه وهو أن هذا الناقل منظم في الأجهزة في وحدات التحكم أفر.

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

لذلك أود التعرف على هذا الإطار بشكل أفضل.

دعونا نفتح الوثائق الفنية لوحدة التحكم Atmega8، ونفتح الصفحة التي يظهر فيها دبوس وحدة التحكم هذه ونرى أنه من الأطراف 16 إلى 19 توجد أطراف ناقل SPI

الآن المزيد عن هذه النتائج

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

MOSI (المدخل الرئيسي للإخراج الرئيسي)- هذا هو منفذ الإخراج للجهاز الرئيسي ومدخل الجهاز التابع.

MISO (المدخل الرئيسي والمخرج التابع)- على العكس من ذلك، مخرجات العبد، ومدخلات السيد.

SCK- ساق المزامنة. يتم تزويد جميع الأجهزة المشاركة في تبادل المعلومات على هذا الناقل بنبضات ساعة بتردد معين.

فيما يلي رسم تخطيطي لتنفيذ ناقل SPI في وحدة التحكم Atmega8

مثل أي حافلة، هناك عدد من السجلات التي تخزن معلومات معينة.

نحن مهتمون بـ SHIFT REGISTER، حيث يتم تبادل المعلومات من خلاله. بمجرد وجود حافة معينة على دبوس المزامنة، إما تنازليًا أو تصاعديًا، اعتمادًا على الإعدادات، ستتبادل هذه السجلات الخاصة بالأجهزة التابعة والأجهزة الرئيسية المعلومات، وليس كل المعلومات، ولكن بت واحد فقط. ستنتقل هذه السجلات إلى اليسار وستنتقل البتات الأكثر أهمية من كل سجل إلى البتات الأقل أهمية في نفس السجل الخاص بالجهاز المرتبط. أي أن التابع سينقل بتته الأكثر أهمية من خلال طرف MOSI إلى القائد، الذي سيكتبها في بتة الترتيب المنخفض التي تم إخلاؤها بسبب الإزاحة اليسرى، وسيقوم التابع بنقل البتة ذات الترتيب العالي النازح من خلال MISO قم بتثبيت الجزء ذو الترتيب المنخفض للقائد. هذه هي الطريقة التي يتم بها التبادل، أي أنه خلال 8 دورات كاملة على مدار الساعة، سيتم تبادل البايتات بالكامل

بمجرد أن يتم إرسال جميع البتات الثمانية من بايت واحد من المعلومات، سيشير لنا سجل معين إلى أن هذه العملية قد اكتملت. أو بالأحرى، جزء معين من سجل معين.

نرى أيضًا في المخطط الهيكلي مقسمًا، يستقبل مدخلاته نبضات الساعة، ثم يتم تقسيمها على قيمة معينة، ويتم إرسالها عبر سلسلة إلى طرف SCK ومن هناك يتم تغذيتها إلى الجهاز التابع على طرف نفس الاسم. وهذا يضمن التشغيل المتزامن للأجهزة. يتم اختيار تردد الساعة من التردد الأدنى الذي تدعمه جميع الأجهزة المشاركة في التبادل.

أقول الجمع لأنه يمكن أن يكون هناك أكثر من جهازين فقط في دائرة معينة. كيف يتم التأكد من ذلك بشرط ألا تحتوي الأجهزة على أي عناوين سأخبرك بها الآن.

هناك عدة طرق لتبادل المعلومات بين عدة أجهزة، أي عندما يكون هناك عدة أجهزة تابعة لكل جهاز رئيسي. سننظر في الاثنين الأكثر شيوعًا منهم.

الطريقة الأولى هي الشعاعية (إضغط على الصورة لتكبير الصورة)

هنا يوجه السيد البيانات إلى جهاز معين، ويقوم بتشغيل المنطقي 0 على طرف SS، ومن الممكن، باستخدام هذه الطريقة، تحديد جهاز واحد فقط؛ وستحتاج أيضًا إلى عدة دبابيس مجانية لمنافذ وحدة التحكم.

هناك طريقة أخرى مثيرة للاهتمام - الحلقة أو الشلال (انقر على الصورة لتكبير الصورة)

نرى هنا أن أرجل الاختيار كلها متوازية وأن التبادل يدور في دائرة. وبالتالي تنخفض السرعة بسبب زيادة دائرة النقل ولكن يتم حفظ أرجل المنفذ.

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

حسنًا، يبدو الأمر كذلك مع دوائر نقل البيانات عبر الحافلة SPIلقد اكتشفنا ذلك.

الآن دعونا نتعرف على كيفية التحكم في هذه العملية على مستوى سجلات الأجهزة الخاصة بوحدة تحكم AVR.

نرى هذه السجلات في المخطط التفصيلي أعلاه على الصفحة.

يحتوي Atmega8 على السجلات التالية لخدمة ناقل SPI.

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

SPCR (سجل التحكم SPI)- سجل التحكم

يتضمن هذا السجل البتات التالية:

SPIE (تمكين مقاطعة SPI)- الشيء الذي يتيح المقاطعات.

SPE (تمكين SPI)- الشيء الذي يمكّن ناقل SPI.

DORD (طلب البيانات)- البت الذي يحدد الترتيب الذي يتم به إرسال البتات إذا تم ضبطه على 1، فسيتم إرسال البت الأقل أهمية أولاً، وإذا تم تعيينه على 0، يتم إرسال البت الأكثر أهمية.

MSTR (تحديد رئيسي/تابع)- الجزء الذي يعين الجهاز باعتباره سيدًا أو عبدًا. عندما يتم ضبط هذا البت على 1، سيكون الجهاز هو الجهاز الرئيسي.

CPOL (قطبية الساعة)- قطبية التزامن، تحدد عند أي حافة من نبضة المزامنة سيتم بدء وضع الاستعداد

إذا كان هذا البت هو 1، فسيكون لدينا وضع الاستعداد بحافة تصاعدية، وإذا كان 0، فسيكون لدينا حافة تنازلية.

CPHA (مرحلة الساعة)— البتة مسؤولة عن مرحلة الساعة، أي على الحافة التي سيتم إرسال البتة إليها.

دعونا نلقي نظرة على مخططات نقل البيانات اعتمادًا على تثبيت CPOL وCPHA

هذا اعتماد مثير للاهتمام. في بعض الأحيان نرى أحيانًا في الخصائص التقنية لجهاز ما، على سبيل المثال، أنه يمكن أن يعمل في وضع SPI 0:0 وSPI 1:1، وهذا هو بالضبط ما يتعلق بتعيين هذه البتات.

SPR1، SPR0 (تحديد معدل ساعة SPI)- هذه هي البتات المسؤولة عن قيمة مقسم تردد التزامن؛ SPI2Xالموجود في سجل الحالة. إنه أيضًا عنصر تحكم، نظرًا لأن ثمانية بتات في سجل التحكم لم تكن كافية لجميع الإعدادات، وهناك العديد من البتات المجانية في سجل الحالة.

SPSR (سجل حالة SPI)- سجل الحالة

SPI2X (بت سرعة SPI مزدوج)- بت يعمل على مضاعفة السرعة، ويعمل جنبًا إلى جنب مع بتات SPR1 وSPR0 الخاصة بسجل التحكم.

دعونا نرى مدى اعتماد التردد على هذه البتات الثلاثة

SPIF (علامة مقاطعة SPI)- علامة المقاطعة. نحن في انتظار تعيين هذا الشيء على واحد. عندما نتلقى بايت. بمجرد ظهور البايت من جهاز آخر بالكامل في المخزن المؤقت لدينا، سيتم تعيين هذه العلامة. تعمل هذه العلامة فقط إذا تم تعيين البت الذي يمكّن المقاطعات، بالإضافة إلى تمكين المقاطعات العامة.

WCOL (اكتب علم الاصطدام)— سيتم تعيين علامة التعارض أو الاصطدام إذا كان هناك تعارض بسيط أثناء نقل البيانات، إذا تمت محاولة الكتابة إلى سجل البيانات أثناء نقل البيانات.

حسنًا، يمكننا الآن أن نقول إننا أصبحنا على دراية قليلة بواجهة SPI.

شاهد الفيديو التعليمي(اضغط على الصورة)

مشاهدات المشاركة: 6,294

تعليمات

SPI- الواجهة الطرفية التسلسليةأو "الواجهة الطرفية التسلسلية"هو بروتوكول نقل متزامن لربط جهاز رئيسي بالأجهزة الطرفية (التابعة). الجهاز الرئيسي في كثير من الأحيان . يتم الاتصال بين الأجهزة عبر أربعة أسلاك، ولهذا السبب يُطلق على SPI أحيانًا اسم "واجهة ذات أربعة أسلاك". هذه هي الإطارات:
MOSI (سيد خارج الرقيق في)- خط نقل البيانات من الأجهزة الرئيسية إلى الأجهزة التابعة؛
ميسو (ماجستير في الرقيق خارج)- خط النقل من الجهاز التابع إلى الجهاز الرئيسي؛
SCLK (الساعة التسلسلية)- نبضات ساعة التزامن الناتجة عن الجهاز الرئيسي؛
SS (تحديد التابع)- خط اختيار الجهاز التابع؛ عندما يكون السطر "0"، فإن الجهاز التابع "يفهم" أنه تتم معالجته الآن.
هناك أربعة أوضاع لنقل البيانات (SPI_MODE0، SPI_MODE1، SPI_MODE2، SPI_MODE3)، يتم تحديدها من خلال الجمع بين قطبية نبضات الساعة (نعمل على المستوى العالي أو المنخفض)، قطبية الساعة، CPOL، ومرحلة نبضات الساعة (التزامن على الحافة الصاعدة أو الهابطة لنبض الساعة)، مرحلة الساعة، CPHA.
يوضح الشكل خيارين لتوصيل الأجهزة عبر بروتوكول SPI: مستقل ومتتالي. عند توصيله بشكل مستقل بناقل SPI، يصل الجهاز الرئيسي إلى كل جهاز تابع على حدة. في حالة التتالي، يتم تشغيل الأجهزة واحدًا تلو الآخر في سلسلة.

في Arduino، توجد حافلات واجهة SPI على منافذ محددة. كل لوحة لها مهمة الدبوس الخاصة بها. من أجل الراحة، يتم تكرار الأطراف ووضعها أيضًا على موصل ICSP منفصل (في برمجة الدائرة التسلسلية، جهاز مضمن في دائرة باستخدام بروتوكول تسلسلي). يرجى ملاحظة أن موصل ICSP لا يحتوي على دبوس اختيار تابع - SS، لأنه من المفترض أنه سيتم استخدام Arduino كجهاز رئيسي في الشبكة. ولكن إذا لزم الأمر، يمكنك تعيين أي منفذ Arduino كـ SS.
يوضح الشكل المراسلات القياسية للدبابيس مع حافلات SPI لـ Arduino UNO وNano.

تمت كتابة واحدة خاصة لـ Arduino والتي تطبق بروتوكول SPI. إنه يتصل بهذه الطريقة: في بداية البرنامج نضيف #تشمل SPI.h
لبدء استخدام بروتوكول SPI، تحتاج إلى ضبط الإعدادات ثم تهيئة البروتوكول باستخدام إجراء SPI.beginTransaction(). يمكنك القيام بذلك بتعليمات واحدة: SPI.beginTransaction(SPISettings(14000000, MSBFIRST, SPI_MODE0)).
هذا يعني أننا نقوم بتهيئة بروتوكول SPI بتردد 14 ميجاهرتز، ويتم نقل البيانات بدءًا من MSB (البت الأكثر أهمية)، في الوضع "0".
بعد التهيئة، حدد الجهاز التابع عن طريق تحريك دبوس SS المقابل إلى الحالة المنخفضة.
ثم نقوم بنقل البيانات إلى الجهاز التابع باستخدام الأمر SPI.transfer().
بعد الإرسال، أعد SS إلى الحالة العالية.
يتم إكمال العمل مع البروتوكول باستخدام الأمر SPI.endTransaction(). يُنصح بتقليل وقت النقل بين تعليمات SPI.beginTransaction() وSPI.endTransaction() لتجنب المشكلات إذا حاول جهاز آخر بدء نقل البيانات باستخدام إعدادات مختلفة.

دعونا نفكر في التطبيق العملي لواجهة SPI. سنقوم بإضاءة مصابيح LED عن طريق التحكم في سجل التحول 8 بت عبر ناقل SPI. لنقم بتوصيل السجل 74HC595 إلى Arduino. سنقوم بتوصيل مؤشر LED بكل من المخارج الثمانية (عبر المقاوم المحدد). يظهر الرسم البياني في الشكل.

دعونا نكتب رسم مثل هذا.
أولاً، لنقم بتوصيل مكتبة SPI وتهيئة واجهة SPI. دعونا نحدد الطرف 8 باعتباره دبوس اختيار الجهاز التابع. لنقم بمسح سجل الإزاحة بإرسال القيمة "0" إليه. تهيئة المنفذ التسلسلي.
لإضاءة مؤشر LED محدد باستخدام مسجل الإزاحة، تحتاج إلى تطبيق رقم 8 بت على مدخلاته. على سبيل المثال، لكي يضيء مؤشر LED الأول، نقوم بتوفير الرقم الثنائي 00000001، للثاني - 00000010، للثالث - 00000100، إلخ. هذه الأرقام الثنائية، عند تحويلها إلى نظام الأرقام العشرية، تشكل التسلسل التالي: 1، 2، 4، 8، 16، 32، 64، 128 وهي قوى من 0 إلى 7.
وفقًا لذلك، في دورة ()loop، نقوم بإعادة الحساب من 0 إلى 7 بناءً على عدد مصابيح LED الأسرى (قاعدة، درجة)يرفع 2 إلى قوة عداد الحلقة. لا تعمل وحدات التحكم الدقيقة بدقة كبيرة مع الأرقام من النوع "المزدوج"، لذلك نستخدم الدالة round() لتحويل النتيجة إلى عدد صحيح. ونقوم بنقل الرقم الناتج إلى سجل التحول. من أجل الوضوح، تعرض شاشة المنفذ التسلسلي القيم التي تم الحصول عليها خلال هذه العملية: يمر المرء عبر الأرقام - تضيء مصابيح LED في موجة.


تشتمل وحدات التحكم الدقيقة AVR على وحدات تنفذ واجهات قياسية. تُستخدم هذه الوحدات للتواصل مع الأجهزة الطرفية المختلفة مثل المستشعرات الرقمية وشرائح الذاكرة وDACs وADCs ووحدات التحكم الدقيقة الأخرى وما إلى ذلك. في هذه المقالة، باستخدام وحدة التحكم الدقيقة atmega16 كمثال، سنكتشف كيفية العمل مع وحدة الواجهة الطرفية التسلسلية أو وحدة SPI (الواجهة الطرفية التسلسلية).

مقدمة

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

الإشارات التي تستخدمها هذه الواجهة لها الأغراض التالية:

موسي- الإخراج الرئيسي / المدخلات التابعة. الإخراج الرئيسي/الإدخال التابع. يعمل على نقل البيانات من السيد إلى العبد.
ميسو
- المدخلات الرئيسية / المخرجات التابعة. المدخلات الرئيسية/المخرجات التابعة. يعمل على نقل البيانات من جهاز تابع إلى جهاز رئيسي.
إس إل كيه- الساعة التسلسلية. إشارة التزامن. يعمل على نقل إشارة الساعة إلى جميع الأجهزة التابعة.
سس- حدد الرقيق. اختيار الرقيق. يستخدم لتحديد جهاز تابع.

غالبًا ما يستخدم مصنعو الرقائق أسماء أخرى لهذه الإشارات. الخيارات البديلة يمكن أن تكون:

موسي- افعل، SDO، DOUT.
ميسو- دي، سدي، دين.
SCK– كلك، سكلك.
سس- كس، سينك.

مخططات اتصال SPI

يبدو الرسم التخطيطي النموذجي لتوصيل جهازين عبر SPI بهذا الشكل.

من الممكن أيضًا توصيل عدة أجهزة تابعة بجهاز رئيسي. ومع ذلك، في أي وقت من الأوقات، يمكن أن يحدث التبادل مع واحد منهم فقط، ويجب أن يكون الباقي في حالة غير نشطة.

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

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

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

يشبه بروتوكول تبادل SPI منطق سجل التحول ويتكون من إخراج/إدخال بيانات متسلسل بت تلو الآخر على حواف معينة من إشارة الساعة. يتم إجراء إعداد البيانات وأخذ العينات على الحواف المقابلة لإشارة الساعة.
توفر مواصفات SPI 4 أوضاع لنقل البيانات، والتي تختلف في العلاقة بين طور وقطبية إشارة الساعة والبيانات المرسلة.
يتم وصف هذه الأوضاع بواسطة معلمتين:

CPOL- قطبية الساعة. قطبية الساعة - تحدد المستوى الأولي لإشارة الساعة
CPHA- مرحلة الساعة. مرحلة الساعة - تحدد تسلسل بيانات الإعداد وأخذ العينات.

توضح الأشكال أدناه جميع أوضاع اتصال SPI الأربعة.

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

وضع SPI 1: CPOL = 0، CPHA = 1.تبدأ إشارة الساعة عند مستوى الصفر المنطقي. تحدث تغييرات البيانات على حافة صاعدة. يتم تنفيذ إغلاق البيانات على حافة السقوط.

وضع SPI 2: CPOL = 1، CPHA = 0.تبدأ إشارة الساعة عند مستوى منطقي واحد. يتم تنفيذ إغلاق البيانات على حافة السقوط. يتم إجراء تغييرات البيانات على الحافة الصاعدة لإشارة الساعة.

وضع SPI 3: CPOL = 1، CPHA = 1.تبدأ إشارة الساعة عند مستوى منطقي واحد. يتم إجراء تغييرات البيانات على الحافة المتساقطة لإشارة الساعة. يتم تنفيذ إغلاق البيانات على حافة صاعدة.

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