قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

أدوات الموضوع

الصورة الرمزية taha emara
taha emara
:: مهندس متواجد ::
تاريخ التسجيل: Aug 2009
الدولة: Egypt - Damietta
المشاركات: 126
نشاط [ taha emara ]
قوة السمعة:0
قديم 31-01-2013, 08:32 PM المشاركة 1   
x4 كيفية ربط الكمبيوتر بالميكروكنترولر عن طريق السيريال بورت -شرح كامل ان شاء الله- Twitter FaceBook Google+



بسم الله الرحمن الرحيم

ان شاء الله في هذا الموضوع سأتكلم كما وعدت عن كيفية ربط الكمبيوتر بالميكروكنترولر عن طريق برتوكول السيريال , وكيفية التحكم به إرسالا و استقبالا, وكذلك سنتعلم سويا كيفية عمل برنامج "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
احصائية الشكر والاعجاب - 1 شكراً, 0 عدم اعجاب, 1 اعجاب
شكراً shihab4321 ( شكر العضو على هذه المشاركة )
اعجاب shihab4321 ( أعجبته المشاركة )
اعلانات

الصورة الرمزية taha emara
taha emara
:: مهندس متواجد ::
تاريخ التسجيل: Aug 2009
الدولة: Egypt - Damietta
المشاركات: 126
نشاط [ taha emara ]
قوة السمعة:0
قديم 31-01-2013, 10:01 PM المشاركة 2   
افتراضي


بسم الله الرحمن الرحيم

نبدأ بمثال:

عندما نرسل قيمه 1 نضئ ليد على portd.b1و لو ارسلنا 0 نطفئها .
كود:
unsigned short value; 
void main() {
      TRISD=0X00;
PORTD=0;
UART1_Init(9600);     // Initialize USART module )  // 8 bit, 19200 baud rate, no parity bit) 
 while (1) {
        if (UART1_Data_Ready()) {  // If data has been received
    value = UART1_Read();     // read it
     PORTD.b1=value;
}// end if
}//end while
}//end main
نوصل الدائرة كما تكلمنا من قبل .
*نتكلم الآن البرنامج المثبت علي الكمبيوتر :-
قبل كل شيء يجب ضبط اعدادات الويندوز للتعامل مع البورت و توضحه الصورة التالية

هذه الصورة توضح لمن سيعمل على usb to rs232 converter cabel وان شاء الله لن يكون الاختلاف كبيرة في الاعدادت اذا كنت تمتك كمبيوتر يحتوي على منفذ تسلسلي.

بعد الضبط يبقى لنا نرسل البيانات من الكمبيوتر الي ال pic كيف ؟
يوجد في برامج جاهزة لعمل "interface" مع السيريال بورت مثل hyper terminal
و teraterm و real term و هذا ما افضله
و نضبط اعدادات ال real term كما في الشكلين التاليين:-



لابد ان يكون ال baud rate المكتوب في كود الميكروسي = الموجود في اعدادات البورت في الويندوز = المختارة في برنامج ال real term





ان شاء الله بعد استيعابكم لما كتبت وتطبيقكم له وبعد الرد علي استفساركم سنتعلم سويا كيفية عمل برنامج يعمل مثل عمل برنامج real term ارسالا و استقبالا . أمامكم يا إخواني لغتين ممكن ان نبرمج بهم إما الجافا "java " -و هذا ما افضله لاسباب كثيرة -او السي شارب" "c#.
مواقع الانترنت ملئية بمزايا الجافا و لكن عندي وجهة نظر سأضيفها آيضا تُهِم الطلبة هو اننى و كثير من طلبة هندسة الاتصالات في عامنا الاخير -ان شاء الله- لنا مشاريع تخرج معظمها لا يتقصر على الانظمة المدمجة و التحكم و لكن تكون مشاريع تشمل العديد من النواحي البرمجية كالتعامل مع قواعد البيانات و image processing و غيرها فنكون مضطرين لاسباب ان نستخدم الجافا فلهذا افضل ان نبرمج بها .
ان شاء الله سأنتظر ردودكم و من خلالها نحدد اي اللغتين سنعمل بها.
اتمنى لكم الاستفادة ومن يجد خطأ في كلامي فليقل الصواب فلست معصوما من الخطأ و اتمنى من الله ان يعيننا لنهاية الهدف المنشود من ذلك الموضوع .

****************************

اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )
  

الصورة الرمزية abedoid
abedoid
:: مهندس ::
تاريخ التسجيل: Dec 2012
المشاركات: 38
نشاط [ abedoid ]
قوة السمعة:0
قديم 31-01-2013, 10:30 PM المشاركة 3   
افتراضي


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


جزاك الله خيرا على هذا المجهود ^_^


mishmish2002
:: مهندس جيد ::
تاريخ التسجيل: Jan 2007
المشاركات: 247
نشاط [ mishmish2002 ]
قوة السمعة:0
قديم 31-01-2013, 10:53 PM المشاركة 4   
افتراضي


مجهود اكثر من رائع بارك الله فيك اخى العزيز


الصورة الرمزية أبو معاذ 2010
أبو معاذ 2010
:: مشرف قسم الإنتاج الزراعي والحيواني والطاقة البديلة ::
تاريخ التسجيل: Feb 2010
المشاركات: 2,121
نشاط [ أبو معاذ 2010 ]
قوة السمعة:217
قديم 01-02-2013, 01:39 AM المشاركة 5   
افتراضي


موضوع موفق ، و شرح جميل و واضح ، بارك الله فيك .

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

جزاك الله خيرا و وفقك لما يحب .


الصورة الرمزية ناصراحمد2
ناصراحمد2
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: EGYPT
المشاركات: 1,334
نشاط [ ناصراحمد2 ]
قوة السمعة:98
قديم 01-02-2013, 04:02 AM المشاركة 6   
افتراضي


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


الصورة الرمزية taha emara
taha emara
:: مهندس متواجد ::
تاريخ التسجيل: Aug 2009
الدولة: Egypt - Damietta
المشاركات: 126
نشاط [ taha emara ]
قوة السمعة:0
قديم 01-02-2013, 07:35 PM المشاركة 7   
افتراضي


بارك الله فيكم .. وشكرا على مروركم
وان شاء الله سابدا من الغد في الاعداد لعمل البرنامج بالجافا و بعدها ان يسر الله لنا سنعمله بالسي شارب


الصورة الرمزية taha emara
taha emara
:: مهندس متواجد ::
تاريخ التسجيل: Aug 2009
الدولة: Egypt - Damietta
المشاركات: 126
نشاط [ taha emara ]
قوة السمعة:0
قديم 02-02-2013, 05:08 PM المشاركة 8   
افتراضي


ان شاء الله جاري رفع فيديو يبين كيفية العمل علي السيريال بورت من خلال ال proteus لعمل simulation للبرنامج المذكور سابقاو كذلك لمن لا يريد ان يشتري كل الادوات السابقة. و ان شاء الله بعدها نبدأ رحلتنا مع الجافا .

إضافة رد

العلامات المرجعية

«     الموضوع السابق       الموضوع التالي    »
أدوات الموضوع

الانتقال السريع إلى


الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 08:10 PM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)

Powered by vBulletin® Version 3.8.6, Copyright ©2000 - 2025