ناقل I2C - التخصيص والجهاز ونقل البيانات والعنونة
عند إنشاء دائرة إلكترونية ، يواجه العديد من المطورين الحاجة إلى استخدام عدد كبير من الرقائق الوسيطة للمطابقة وأخذ العينات ومعالجة كتلها الفردية. لتقليل عدد الرقائق المساعدة ، اقترحت Philips واجهة شبكة تسلسلية I2C ثنائية الاتجاه ثنائية الاتجاه في الثمانينيات ، مصممة خصيصًا لإدارة شرائح متعددة داخل جهاز واحد.
اليوم ، تنتج Philips وحدها أكثر من مائة جهاز متوافق مع I2C للمعدات الإلكترونية مع مجموعة متنوعة من الأغراض: الذاكرة وأنظمة معالج الفيديو والمحولات التناظرية إلى الرقمية ومن الرقمية إلى التناظرية ومحركات العرض وما إلى ذلك.
ناقل I2C هو تعديل لبروتوكول تبادل البيانات التسلسلي القادر على إرسال بيانات 8 بت المسلسلة في الوضع "السريع" المعتاد بمعدلات تتراوح من 100 إلى 400 كيلو بت في الثانية. يتم تنفيذ عملية تبادل البيانات هنا على سلكين فقط (بدون احتساب السلك المشترك): خط SDA للبيانات وخط SCL للتزامن.
يصبح الناقل ثنائي الاتجاه نظرًا لحقيقة أن سلاسل مخرجات الأجهزة المتصلة بالحافلة بها مجمعات أو قنوات مفتوحة ، وبالتالي تكرار الأسلاك AND. نتيجة لذلك ، يقلل الناقل عدد التوصيلات بين الرقائق ، مما يترك عددًا أقل من المسامير والآثار المطلوبة على اللوحة. نتيجة لذلك ، تبين أن اللوحة نفسها أبسط وأكثر إحكاما وأكثر تقدما من الناحية التكنولوجية في الإنتاج.
يسمح لك هذا البروتوكول بتعطيل وحدات فك ترميز العناوين ومنطق التفاوض الخارجي الآخر. عدد الرقائق التي يمكن أن تعمل في نفس الوقت على ناقل I2C محدود بسعة - بحد أقصى 400 بيكو فاراد.
تحتوي الدوائر المتكاملة المتوافقة مع I2C على خوارزمية قمع ضوضاء الأجهزة لضمان سلامة البيانات حتى في حالة وجود تداخل قوي. تحتوي هذه الأجهزة على واجهة تسمح للدوائر الدقيقة بالتواصل مع بعضها البعض حتى عندما تكون الفولتية الإمداد بها مختلفة. في الشكل أدناه ، يمكنك التعرف على مبدأ توصيل العديد من الدوائر الصغيرة من خلال ناقل مشترك.
كل جهاز متصل بالناقل له عنوان فريد خاص به ، ويتم تحديده بواسطته ، ووفقًا للغرض من الجهاز ، يمكن أن يعمل كجهاز استقبال أو كجهاز إرسال. عند نقل البيانات ، يمكن أن تكون هذه الأجهزة رئيسية (رئيسية) أو تابعة (تابعة). الجهاز الرئيسي هو الجهاز الذي يبدأ نقل البيانات ويولد إشارات الساعة على خط SCL. العبد ، بالنسبة للسيد ، هو الجهاز الوجهة.
في أي لحظة من التشغيل على ناقل I2C ، يمكن لجهاز واحد فقط أن يعمل كسيد ؛ يولد إشارة على خط SCL.يمكن أن يكون الجهاز الرئيسي إما جهاز استقبال رئيسي أو جهاز إرسال رئيسي.
من حيث المبدأ ، تسمح الحافلة بالعديد من الأساتذة المختلفين ، ولكنها تفرض قيودًا على خصائص تكوين إشارات التحكم ومراقبة حالة الحافلة ؛ هذا يعني أنه يمكن للعديد من الأساتذة البدء في الإرسال في نفس الوقت ، ولكن يتم التخلص من النزاعات من هذا النوع بفضل التحكيم ، أي الطريقة التي يتصرف بها السيد عندما يكتشف أن الحافلة مشغولة بسيد آخر.
يتم ضمان مزامنة زوج من الأجهزة من خلال حقيقة أن جميع الأجهزة متصلة بالناقل ، وتشكل الأسلاك "AND". في البداية ، تكون إشارات SDA و SCL عالية.
ابدأ وتوقف
يبدأ التبادل مع السيد الذي يولد حالة «START»: على خط SDA ، تنتقل الإشارة من حالة عالية إلى منخفضة ، بينما يتمتع خط SCL بمستوى عالٍ مستقر. ترى جميع الأجهزة المتصلة بالحافلة أن هذا الموقف هو أمر لبدء التبادل.
يولد كل سيد إشارة ساعة فردية على خط SCL عند إرسال البيانات على الناقل.
ينتهي التبادل بتشكيل حالة STOP بواسطة السيد: على خط SDA ، تتغير الإشارة من منخفض إلى مرتفع ، بينما يتمتع خط SCL بمستوى عالٍ مستقر.
يعمل السائق دائمًا كمصدر لإشارات START و STOP. حالما يتم إصلاح إشارة «START» ، فهذا يعني أن الخط مشغول. يكون الخط مجانيًا عند اكتشاف إشارة STOP.
مباشرة بعد الإعلان عن حالة START ، يقوم السيد بتبديل خط SCL منخفضًا ويرسل الجزء الأكثر أهمية من بايت الرسالة الأول إلى سطر SDA. عدد البايت في الرسالة غير محدود.يتم تمكين التغييرات على خط SDA فقط عندما يكون مستوى الإشارة على خط SCL منخفضًا. البيانات صالحة ولا يجب تغييرها إلا عندما يكون نبض المزامنة مرتفعًا.
إقرار باستلام البايت من جهاز الإرسال الرئيسي بواسطة جهاز الاستقبال التابع عن طريق تعيين بت استلام خاص على خط SDA بعد استلام بتة البيانات الثامنة.
التأكيد
لذا ، فإن إرسال 8 بتات من البيانات من جهاز الإرسال إلى جهاز الاستقبال ينتهي بنبضة إضافية على خط SCL عندما ينخفض جهاز الاستقبال على خط SDA ، مما يشير إلى أنه تلقى البايت بأكمله.
التأكيد هو جزء لا يتجزأ من عملية نقل البيانات. يولد السيد نبضة متزامنة. يرسل جهاز الإرسال حالة منخفضة إلى SDA عندما تكون ساعة الاستلام نشطة. أثناء ارتفاع نبض المزامنة ، يجب أن يحافظ جهاز الاستقبال على SDA منخفضًا.
إذا لم يتعرف التابع للوجهة على عنوانه ، على سبيل المثال لأنه مشغول حاليًا ، فيجب إبقاء خط البيانات عالياً. قد يعطي السيد بعد ذلك إشارة STOP لإيقاف الإرسال.
إذا تم إجراء الاستقبال بواسطة جهاز الاستقبال الرئيسي ، فإنه ملزم بإبلاغ المرسل التابع بعد اكتمال الإرسال - وليس عن طريق تأكيد البايت الأخير. يقوم جهاز الإرسال التابع بتحرير خط البيانات بحيث يمكن للسيد إصدار إشارة STOP أو إشارة START متكررة.
يتم ضمان مزامنة الأجهزة من خلال حقيقة أن الاتصالات بخط SCL تتم وفقًا لمبدأ "AND".
لا يملك السيد وحده الحق في التحكم في انتقال خط SCL من الأقل إلى الأعلى.إذا احتاج العبد إلى مزيد من الوقت لمعالجة بت مستلم ، فيمكنه بشكل مستقل إبقاء SCL منخفضًا حتى يصبح جاهزًا لتلقي الجزء التالي من البيانات. سيكون خط SCL في مثل هذه الحالة منخفضًا طوال مدة أطول نبضة مزامنة منخفضة المستوى.
ستظل الأجهزة ذات أدنى مستوى منخفض مستدام في وضع الخمول حتى تنتهي الفترة الطويلة. عندما تنتهي جميع الأجهزة من فترة المزامنة المنخفضة ، سترتفع قيمة SCL.
ستبدأ جميع الأجهزة في تسجيل وقت مرتفع وسيكون أول جهاز يكمل فترته هو أول جهاز يقوم بضبط خط SCL منخفضًا. نتيجة لذلك ، سيتم تحديد مدة الحالة المنخفضة لـ SCL من خلال أطول حالة منخفضة لنبض التزامن لأحد الأجهزة ، وسيتم تحديد مدة الحالة المرتفعة من خلال أقصر فترة مزامنة لأحد الأجهزة الأجهزة.
يمكن أن تستخدم أجهزة الاستقبال إشارات التزامن كوسيلة للتحكم في نقل البيانات على مستوى البت والبايت.
إذا كان الجهاز قادرًا على استقبال وحدات البايت بمعدل مرتفع ، ولكنه يستغرق قدرًا معينًا من الوقت لتخزين البايت المستلم أو الاستعداد لتلقي البايت التالي ، فقد يستمر في الاحتفاظ بـ SCL منخفضًا بعد تلقي البايت والاعتراف به ، مما يجبر الارسال في حالة الاستعداد.
يمكن لمتحكم دقيق بدون دوائر أجهزة مدمجة ، على سبيل المثال على مستوى البت ، أن يبطئ سرعة الساعة عن طريق زيادة مدة حالتها المنخفضة. ونتيجة لذلك ، سيتم تحديد معدل الباود للجهاز الرئيسي من خلال سرعة جهاز أبطأ.
معالجة
يحتوي كل جهاز متصل بحافلة I2C على عنوان برنامج فريد يخاطبه الرئيس من خلاله عن طريق إرسال أمر محدد. تتميز الدوائر الدقيقة من نفس النوع بمحدد عنوان ، يتم تنفيذه إما في شكل مدخلات رقمية للمحدد ، أو في شكل تناظري. يتم تقسيم العناوين إلى مساحة عنوان الأجهزة المتصلة بالناقل.
يفترض الوضع العادي عنونة سبع بتات. تعمل العنونة على النحو التالي: بعد الأمر «START» ، يرسل السيد البايت الأول ، والذي يحدد الجهاز التابع المطلوب للتواصل مع السيد. هناك أيضًا عنوان مكالمة شائع يحدد جميع الأجهزة الموجودة على الناقل ، وجميع الأجهزة (نظريًا) تستجيب لها بإقرار ، ولكن هذا نادر في الممارسة العملية.
لذا فإن أول سبع بتات من البايت الأول هي عنوان العبد. يشير الجزء الثامن الأقل دلالة إلى اتجاه إرسال البيانات. إذا كان هناك "0" ، فسيتم كتابة المعلومات من السيد إلى هذا العبد. إذا كان «1» ، فإن المعلومة سيقرأها السيد من هذا العبد.
بعد أن ينتهي السيد من إرسال بايت العنوان ، يقارن كل عبد عنوانه به. أي شخص له نفس العنوان هو تابع ويتم تعريفه على أنه جهاز إرسال تابع أو جهاز استقبال تابع ، اعتمادًا على قيمة بت أقل أهمية من بايت العنوان.
يمكن أن يشتمل العنوان التابع على أجزاء ثابتة وقابلة للبرمجة. غالبًا ما يعمل عدد كبير من الأجهزة من نفس النوع في نظام واحد ، ثم يسمح الجزء القابل للبرمجة من العنوان باستخدام حد أقصى من نفس النوع من الأجهزة على الناقل. يعتمد عدد وحدات بايت العنوان القابلة للبرمجة على عدد الدبابيس المجانية الموجودة على الشريحة.
في بعض الأحيان يكون الدبوس الذي يحتوي على إعداد تناظري لنطاق العنوان القابل للبرمجة كافيًا ، على سبيل المثال SAA1064 - محرك مؤشر LED لديه مثل هذا التنفيذ بالضبط. تحدد إمكانات دبوس معين إزاحة مساحة العنوان للرقاقة بحيث لا تتعارض الرقائق من نفس النوع مع التشغيل على نفس الناقل. تحتوي جميع الرقائق التي تدعم ناقل I2C على مجموعة من العناوين التي تحددها الشركة المصنعة في الوثائق.
التركيبة «11110XX» محجوزة لعنونة 10 بت. إذا تخيلنا تبادل البيانات من أمر «START» إلى أمر «STOP» ، فسيبدو الأمر كما يلي:
يُسمح هنا بتنسيقات تبادل البيانات البسيطة والمجمعة. يعني التنسيق المدمج أنه بين «START» و «STOP» ، يمكن أن يعمل السيد والعبد كجهاز استقبال وأجهزة إرسال ، وهذا مفيد على سبيل المثال في إدارة الذاكرة التسلسلية.
دع البايت الأول من البيانات ينقل عنوان ذاكرة. بعد ذلك ، بتكرار الأمر «START» وقراءة العنوان التابع ، ستعمل بيانات الذاكرة. يتخذ مطور الجهاز قرارات زيادة أو إنقاص العنوان الذي تم الوصول إليه مسبقًا تلقائيًا بعد دراسة وثائق الشريحة مسبقًا. بطريقة أو بأخرى ، بعد تلقي أمر START ، يجب على جميع الأجهزة استعادة منطقها والاستعداد لحقيقة أنه سيتم تسمية العنوان الآن.