الثلاثاء، 26 مارس، 2013

مقدمة إلى البروتوكول التسلسلي I2C

البروتول التسلسلي I2C




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



ما العمل في حالة كانت لدينا العديد من التطبيقات , و كنا محصورين باسستخدام متحكم واحد بعينه" كاPIC18F2550 أو AVR Atmel 328 كالذي نستخدمه في الأردوينو UNO

لذلك يوجد بروتوكولات اتصال مختلفة تمكننا من التواصل مع التطبيقات , من أهم هذه البروتوكولات هو I2C 


يمكن تعريف الI2C بأنه بروتوكول يسمح للمتحكم بالأتصال بالأجهزة التي تدعم هذا البروتوكول , و تسمح بالتواصل مع هذه الأجهزة الطرفية بكل سهولة 


للتحكم بال I2Cهناك خطان فقط من المتحكم ! , هذين الخطين هما :
1)SDA "Serial data line : و هو الخط الذي ينقل البيانات إلى الأجهزة المختلفة .
2) SCL"Serial clock line : هو خط ساعة , و تتغير البيانات عند كل عملية تغير في خط الساعة .


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

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

في الأول يلزمنا معرفة المداخل التي يمكننا من خلالها استعمال الI2C

لأستخدام الI2C , سأركز بشكل أكبر على الأردوينو UNO لكثرة توافرها لدى الأغلبية .


هذه الصورة تبين مداخل الi2c في بطاقة اردوينو uno 


في النسخة R2 مداخل اردوينو الخاصة بهذا البروتوكول هما

1)المدخل A4 كمدخل SDA

2)المدخل A5 كمدخل SCL 

في النسخة الحديثة منها R3 هناك مدخلين تم وضعهما في الجانب العلوي الأيسر من اللوحة هما أيضاً I2C "طبعاً لا فرق بين النسختين اطلاقاً "

مهما كانت نسختك من الأردوينو UNO فيمكنك اكمال قراءة التدوينة للنهاية .

لكتابة أوامر الI2C في برنامج الأردوينو نقوم بتحميل المكتبة الخاصة بالI2C و اسمها wire.h .


و أوامر الi2c  المهمة هي :


Wire.begin(address)
 يتم التواصل بين الأجهزة الطرفية و المتحكم "اردوينو UNO في حالتنا هذه " هناك عنوان محدد يمكن من خلاله تمييز الأجهزة المختلفة و أرسال الأوامر للجهاز المطلوب دون غيره .
الأوامر الأخرى يمكن تلخيصها فيما يلي :

Wire.beginTransmission(address)

 
هذه الأوامر الرئيسية في هذه المكتبة .


و الأمثلة عليها عديدة , مثل التواصل بين بطاقتي أردوينو معاً , المؤقت RTC DS1307 , ايضاً الدارة المتكاملة PCF8574 و حساس الضغط BMP85 , سنتحدث عن كل منها على حدا.

0 التعليقات :

إرسال تعليق

 
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.