 |
:: مهندس متواجد ::
تاريخ التسجيل: Aug 2009
الدولة: Egypt - Damietta
المشاركات: 126
|
|
نشاط [ taha emara ]
قوة السمعة:0
|
|
31-01-2013, 08:32 PM
المشاركة 1
|
|
بسم الله الرحمن الرحيم
ان شاء الله في هذا الموضوع سأتكلم كما وعدت عن كيفية ربط الكمبيوتر بالميكروكنترولر عن طريق برتوكول السيريال , وكيفية التحكم به إرسالا و استقبالا, وكذلك سنتعلم سويا كيفية عمل برنامج "interface" بالجافا او السي شارب وهذا ما نتكلم عنه في نهاية الموضوع وهذه هي أهدف الموضوع .
المقدمة • ماذا نعني بكلمة برتوكول؟
البرتوكول"protocol" : هو إتفاقية بين نقطتين أو أكثر يتم على أساسها التخاطب و التعامل – إرسالا أو إستقبالا للبيانات – بينهم .
مثال ذلك :-
USB , Serial , Parallel , SPI , I2C , HTTP, PS/2,…etc)) لكل واحد من تلك البرتوكولات استخدام معين في مكان معين , و لكن يوجد منها من يؤدي تقريبا نفس الاستخدام الذي نحن بصدده و هما USB, Serial , ومن هنا نأتي إلى سؤال .
• ما الفرق بينهما؟ و لماذا يلجأ الكثير إلى إستخدام ال ٍSerial ؟
إجابة الشق الأول من السؤال مبين في الجدول التالى بإختصار.
ملاحظة: آخر جزء من المقارنة " "Hot Swapable :يعنى عند حدوث اي تغيير لا نحتاج الى اعادة تشغيل النظام مثال ذلك كنا في الماضي اذا خلعنا سوكيت الفارة "PS/2" كنا نحتاج الي اعادة التشغيل لتفعيلها من جديد اما في USB فلا.
نأتئ إلى إجابة الشق الثاني من السؤال لماذا يلجأ الكثير إلي استخدام ال Serial بدلا من USB بالرغم من كل المزايا الموضحة في الجدول الا ان لل USB عيب في صعوبة برمجة البرنامج "Interface" المثبت جه الكمبيوتر المنوط به التعامل مع ال USB Port استقبالا و ارسال من خلاله . وكذلك لسبب آخر هو ان معظم الحساسات و كثير من " wireless communication modules" مثل Bluetooth,xbee,wifi,..etc وكذلك بعض بطاقات ال cncيجب التعامل معها بهذا البرتوكول "مع العلم ان منها من ينزل السوق بنسختين لل Serial , USB مثل xbee module" .
• إذا كيف يعمل ال serial protocol ؟
مثال :- لو فرضا اني اريد ان ارسل حرف "A" من الميكرو الى الكمبيوتر عبر المنفذ التسلسلي"serial port" فماذا يحدث :-
1- يتم ارسال 1 بت "start bit" لتنبيه المستقبل لاستقبال البيانات
2- يتم ارسال ال 8 بت " 1100101" المكافئة لكود ال acii للحرف "A"
3- يوجد 1 بت اختيارية اسمها parity bit تستخدم لتصححيح الاخطاء
4- يتم في النهاية ارسال ا بت "stop bit " عادةا تكون بعرض نبضة و نصف او نبضة او نبضتين
 ]
بعد شرحنا للبرتوكول يجب ان نعرف ان لبرتوكول serial عدة تشكيلات "configurations" موضحة في الجدول التالي منها تشكيلات جاءت لتحسين العيوب الموجودة في الجدول السابق:-
ولكن ما يهمنا منها و المشهور ايضا هي Uart,RS232 :-
الفرق بينهما في كيفية تمثيل الحالة المنطقية كفولت و الجدول التالي يبين ان Uart تتعامل بمنطق TTL.
من المنطقي جدا بعد رؤيتنا للجدول أن التشكيلة "configuration " المستخدمة في عالم الميكروكنترولر هي ال UART لان الميكرو كونترولر يعمل بنفس منطقها TTL.
توجد تشكيلتان :-
* الاولى هيuart "universal asynchronous receiver transmitter"
تنقل البيانات "bits" بدون نبضات "clock "
* اما التشيكلة الثانية فهي usart "universal synchronous asynchronous receiver transmitter"
تنقل البيانات "bits" بنبضات "clock " او بدونها وهذا المطبق في معظم الميكروكنترولر مثل pic
فمثلا في pic 16f877a نختار الوضع من خلال ال SYNC bit الموجودة في TXSTA register
[CENTER]SYNC: USART Mode Select bit
1= Synchronous mode
0= Asynchronous mode
>>> في حالة ال Synchronous mode يكون الطرف RC7 طرف البيانات "DATA" و RC6 طرف النبضات التي تولد داخل ال PIC "ClK"
>>> في حالة ال Asynchronous mode يكون الطرف RC7 طرف الاستقبال للبيانات "RX" و RC6 طرف الارسال للبيانات "TX"
ملاخطة مهمة في حالة Synchronous mode يكون نوع الاتصال half duplex"لا يجوز له ان يرسل و ستقبل في نفس الوقت"
لانه لا يوجد الا طرف واحد للبيانات 
وفي حالة Asynchronous modeيكون نوع الاتصال full duplex "يرسل و يستقبل في نفس الوقت لان طرف الاستقبال غير طرف الارسال "
طبعا سيكون عملنا ان شاء الله علي ال Asynchronous mode .
************************************************** *****
الجانب التطبيقي
لو انك ستسخدم كمبيوتر شخصى فستجد به المنفذ التسلسلي "serial port "
ملاحظة كل ما يهمنا هو ثلاثة اطراف فقط 2و3و5 ال ground ,RX,TX
1- اي نوع من انواع ال Pic الداعمة لل uart وليكن مثلا pic 16f877a
2- الدائرة المتكاملة max232 للتحويل من ال uart لل rs232 لان الكمبيوتر يتعامله به.
3- 4 مكثف 1uf و ليدات و مقاومات "في الرسمة استخدم مكثفات 10uf لكن في الداتا شيت لل max232 استخدم 1uf"
4- Rs232 connector
5- Rs232 female socket المتصل بال max 232
نكون الدائرة كالشكل التالي
اما لو انك تمتلك لاب توب -الانواع الجديدة منه ليس بها المنفذ التسلسلي- فما الحل؟
امامك حلان يؤدون نفس الغرض ألا و هو usb to serial converter :-
الحل الاول :
ان تشتري الدائرة المتكاملة FT232BL "USB to UART (USB to Serial
35 جنية مصري و توصله كالشكل التالي.
توصل بال pic مباشرة دون استخدام max232 لانها تتعامل بال TTl
الحل الثاني :
ان تستخدم نفس الرسمة السابقة في الكمبيوتر الشخصي الفرق الوحيد اننا سنستبدل ال rs232 connector
ب USB2 to Serial RS232 Converter Cable - 40 جنية مصري- وله driver خاص به يجب تثبيته و شكله كالتالي.
الطرف الusb يوصل بالكمبيوتر و الطرف الاخر بال max232 female socket
*********** ملاحظة يوجد max232 module جاهز يوصل بالpic مباشرة ب 35 جنية مصري وتصله بال rs232 connector مباشرة و الطرف الاخر في الكمبيوتر او توصله بال USB2 to Serial RS232 Converter Cable و الطرف الاخر في منفذ ال usb في اللاب توب
************************************************** *****
رسمة مختصرة للتوضيح

التكملة ان شاء الله في التعليق القادم
التعديل الأخير تم بواسطة : taha emara بتاريخ 31-01-2013 الساعة 10:21 PM
|