الأربعاء، 14 يناير 2015

شرح بروتوكول I2C

بروتوكول النقل التسلسلي



I2C


(INTER INTEGRATED CIRCUIT)


من اشهر بروتوكلات الاتصال التسلسلي المستعملة في تقنيات تواصل المعالجات والمتحكمات مع طرفياتها

--------------------------------------------- 

لمحة تارخية
تم تطوير هذا البروتوكول سنة 1980 من قبل شركة Philips وقد وضع اساسا لربط بعض المحيطيات في جهاز التلفاز مع المتحكم في سبيل تقليل الكلفة وقد اطلقت عليه شركة atmel اسم
( TWI (TWO WIRE INTEGRATED وقد مر البروتوكول بعمليات تطوير حديثة منها تطوير السرعة حيث بدا دعم سرعة 3.4 ميكا بايت من بعض الطرفيات وكذلك تطوير العنونة بعد ان كانت 7 بت اصبحت 10 بت في بعض الطرفيات 
---------------------------------------------
الهيكلية التوضيحية 
هو بروتوكول اتصال تسلسلي متزامن اي يعمل مع توقيتات الزمن وله طرفين في التواصل 
1- SCK هو طرف نقل نبضات الزمن من الجهاز القائد الى الخوادم 
2-SDA هو طرف نقل البيانات عند الكتابة من القائد الى الخادم وعند القراءة من الخادم الى القائد اي ثنائي الاتجاه 

يمكن ربط عدد كبير من الاجهزة على هذين السلكلين قد يصل الى 40 جهاز او اكثر لكن يجب اعتبار سعة خطوط النقل ان لاتزيد عن 400 بيكو فاراد هنا السؤال كيف للبروتوكول ان يتعرف على الجهاز الذي يريد التخاطب معه من بين كل هذه الاجهزة المربوطة معا يتم ذلك عن طريق عنوان فلكل جهاز عنوان خاص به عندما يرسل المتحكم هذا العنوان يفتح الجهاز المسؤل عن هذا العنوان ويبدء بالارسال او الاستلام حسب اخر بت من العنوان حيث يتم تحديد ذلك .
----------------------------------------------
تفاصيل تدفق البيانات وطريقة النقل في هذا البروتكول
لدينا هنا مثال متحكم مربوط مع 10 طرفيات وسناخذ تسلسل زمني للبتات المرسلة 
1- STAR BIT بت البداية يقوم باطلاقه المتحكم (عبارة عن حافة هابطة في خط البيانات عندما يكون خط الزمن 1 منطقي) لاخبار جميع الطرفيات بان تتحول من نمط IDLE الى نمط STAND BY اي التهيئة لاستقبال بواسطة البروتوكول التسلسلي
2- Addres bits عبارة عن 7 بتات لاختيار احد الاجهزة العشرة والتخاطب معه نسبة لعنوانه المُعلم في الداتا شيت الخاص بالطرفية 
3- read or write bit هو بت واحد يحدد اذما كانت العملية قراءة او كتابة فتكون كتابة عندما يكون هذا البت صفر وتكون قراءة عندما يكون واحد ويتم دمجه وارساله مع العنوان حيث تصبح عملية ارسال لبايت يحتوي في اول 7 بتات العنوان واخر بت يشير الى نوع العملية 
4- ACK هو بت التاكيد يرسل من قبل الطرفية التي توافق عنوانها مع العنوان المرسل من قبل المتحكم لتخبر المتحكم انها استلمت العنوان وهي جاهزة للعملية التالية 
5- First byte يتم ارسال اول بايت من قبل المتحكم او يتم استقبال اول بايت من قبل المتحكم حسب نوع العملية قراءة ام كتابة 
6- ACK هذا البت يعقب كل بايت للتاكد فعند الكتابة تقوم الطرفية بالرد به وعند القراءة يقوم المتحكم بارساله ليخبر الطرفية بارسال بايت اخر 
تتكرر عملية ارسال بايتات وتاكيدها الى ان ينتهي الارسال 
7- STOP BIT هو بت يصدر من المتحكم حصرا (القائد) يخبر فيه الخوادم بانتهاء عملية الارسال (عبارة عن حافة صاعدة في خط البيانات عندما يكون خط الزمن 1 منطقي) عندما تكون العملية كتابة يستلم المتحكم ACK لاخر بايت في الارسال من الطرفية ثم يرسل بت التوقف وعند القراءة يستلم المتحكم اخر بايت ثم لايرسل بت ACK الى الطرفية بل يرسل بت التوقف مباشرتا.
--------------------------------------------

هناك ملاحظة بسيطة عن هذا البروتوكول ان كل الطرفيات التي تصمم للتواصل به يكون الترانزستور بداخلها open collector اي ان ترانزستورات الخرج لاتحتوي على مقاومة رفع داخلية والسبب في ذلك انه عند ربط مثلا 10 اجهزة سنحصل على 10 مقاومات متوازية وذات قيمة عالية وسيكون التيار المستهلك جدا عالي لذا يتم ربط مقاومات رفع للبروتوكول بالكامل عن طريق ربط مقاومتين الاولى بين خط التزامن وال +5 والثانية بين خط نقل البيانات وال+5
--------------------------------------------
هذا البروتوكول هو من نوع half Duplex اي اما يكون في حالة ارسال او حالة استلام ولايمكن ان يكون في نفس الوقت يرسل ويستلم 
------------------------------------------
سرعة النقل تختلف بحسب الشرائح المستخدمة لكن هناك 3 سرع
1- STD.:100KBPS
2-FAST:400KBPS
3-HI..4MBPS
-------------------------------------------
محاسن هذا البروتوكول
1- يمكن التخاطب مع اكثر من خادم SLAVE باستخدام خطين فقط 
2-كلفة البناء منخفضة وسهل التطبيق
3-شائع الاستخدام ومتوفر ككيان صلب وبرمجيا 
4-يمكن فصل ووصل اي جهاز من الناقل دون اي تاثير على النظام او الحاجة لتغيره
----------------------------------------------
مساوئ البروتوكول 
1-مسافة الاتصال قصيرة 4متر 
2-سرعات منخفضة لاتتجاوز 400KH
3-محدودية في عناوين الاجهزة 

6 التعليقات: