تدريب : الاتصال التسلسلى الغير متزامن Asynchronous serial communication
الوصف :
يمتلك الكثير من الميكروكونترولر PIC أجهزة hardware ارسال واستقبال عامة غير متزامنة USART ضمن بنائها الداخلى والتى تسمح بالاتصال على مدى واسع بالأجهزة التسلسلية كذاكرات الشرائح ووحدات العرض LCD والكومبيوتر الشخصى ..ألخ .
الوحدة (الموديول) USART لها نظامان للعمل :
النظام المتزامن synchronous: يحتاج لنبضات ساعة للتزامن بين المرسل والمستقبل .
النظام الغير متزامن asynchronous : لا يحتاج لنبضات ساعة للتزامن بين المرسل والمستقبل . وهذا النظام هو الأكثر شيوعا لذلك سوف يتم التركيز عليه ونقوم بإنشاء ربط للبيانات التسلسلية بين الميكروكونترولر PIC وبين الكومبيوتر الشخصى .
المعلومات النظرية المطلوبة :
تستخدم الاتصالات التسلسلية فى النظم المبنية على أساس الميكروكونترولر ويرجع ذلك في معظمه إلى ندرة أطراف المداخل / المخارج المتاحة . وبالاضافة الى إمكانية الاتصالات لمسافات طويلة فإن نقل البيانات تسلسليا هو الأكثر بساطة وفعالة من حيث التكلفة لأن توصيلات الأجهزة المطلوبة لربط البيانات يمكن أن تخفض إلى ثلاثة , هى وصلة الإرسال Tx ووصلة الاستقبال Rx والأرضى المشترك Gnd .
هناك نوعان مختلفان من الاتصالات التسلسلية : النوع المتزامن والنوع الغير المتزامن. ويتمثل التحدي الرئيسي في وجود صلة (ربط) للبيانات التسلسلية هو الحفاظ على التزامن بين المرسل والمستقبل .
يستخدم الأسلوب الغير متزامن بروتوكول ذو خانة بدء start bit وخانة إيقاف stop bitللتزامن بين طرفى (نهايتى) الوصلة .
يتم إرسال كل بايت لحرف character byte في إطار يتألف من خانة بدء start bit يليها خانات الحرف character bits يليها (اختياريا) خانة التماثل (التطابق) parity bit ويتم الانتهاء بخانة توقف واحدة أو أكثر stop bits.
لابد من تهيئة (إعداد) كل من المرسل والمستقبل بنفس معدل البيانات وبنفس عدد خانات البيانات وبنفس عدد خانات التوقف.
في حالة الخمول(السكون ) idle condition يكون خرج الارسال فى الحالة المنطقية المرتفعة .عندما يكون المرسل على استعداد لإرسال بايت الحرف فإنه يشير (يعطى إشارة) إلى المستقبل عن طريق سحب خط الارسال للحالة المنخفضة لفترة زمنية واحدة لنبضات الساعة . هذا هو بت (خانة) البدء start bit وهو يخبر المستقبل بأن القادم هو إطار بايت البيانات . يقوم المستقبل بقراءة عدد خانات الحرف المتوقع حسب البروتوكول المعتمد (والذى تم التهيئة له من قبل) حتى يتم سحب الخط إلى المنطق المرتفع بواسطة المرسل (يمثل بت توقف واحد أو أكثر) ويكون هذا هو نهاية الإطار. يتم تكرار العملية برمتها في كل مرة يكون المرسل جاهزا لإرسال بايت لحرف.
ويسمى هذا النوع من الارسال التسلسلى بالغير متوامن لأن المستقبل يقوم بعمل إعادة تزامن لنفسه مع المرسل في كل مرة يتم إرسال البيانات باستخدام بت البداية start bit. ومع ذلك، فإنه داخل كل إطار يكون الطرفين متزامنين .
من ناحية أخرى، فإنه فى الاتصال التسلسلى المتزامن يتم إرسال الحروف فى مجموعات أو كتل blocks مع عدم وجود خانات إطار تحيط بها . تتم مزامنة الارسال والاستقبال بخط منفصل لنبضات الساعة أو في بعض الحالات يتم تضمين إشارة نبضات الساعة مع الحروف المرسلة .
في كلا النوعين من الاتصالات التسلسلية،يعرف معدل البيانات المرسلة والمستقبلة بمعدل البود baud rate ( عدد النبضات فى الثانية ).
على سبيل المثال موديول USART الموجود داخل الميكروكونترولر PIC16F628A يعتمد كلا النوعين من الاتصالات التسلسلية وكنه أكثر ملائمة للطريقة الغير متزامن asynchronous .
فى النظام الغير متزامن يعمل الطرف RB2 كمخرج إرسال TX ويعمل الطرف RB1 كمدخل استقبال RX .
ترسل بايت البيانات كسلسلة نصية مكونة من 10 خانات : خانة البدء start biو 8 خانات بيانات
eight data bits وخانة إيقاف stop bit كمل فى الشكل التالى :
المنفذ التسلسلى بالكومبيوتر الشخصى (والمعروف باسم COM port) يستخدم النظام القياسى RS232-C للاتصال التسلسلى . والذى يحدد خواص الكهربائية والميكانيكية والإشارات والخطوات المتبعة للربط عن طريق الاتصال التسلسلى .
المنطق المرتفع فى RS232-C هو إشارة بجهد فى المدى -3 V to -15V ( عمليا -12V) والمنطق المنخفض يكون فى المدى +3 V to +15 V (عمليا +12V) . أى أنه لا يماثل المستويات المنطقية للميكروكونترولر PIC لأنه فى RS232-C الحالة المرتفعة سالبة والحالة المنطقية المنخفضة موجبة .
الجدول التالى يبين التوصيلات القياسية لنظام RS232-C للسوكيتات 25-pin و9-pin و RJ-45 .
هنا سوف نتناول فقط أقل توصيلات ممكنة بين الميكروكونترولر والكومبيوتر الشخصى باستخدام خطوط الإشارات TX, RX, GND فقط .


سوف نستخدم النظام الغير متزامن لعمل اتصال مع المنفذ التسلسلى بالكومبيوتر الشخصى عن طريق RS232-C .
نظرا لأن الميكروكونترولر PIC16F628A يمتلك بالفعل ضمكن بنائه الداخلى الموديول USART والذى يعتمد النظام الغير متزامن للاتصال التسلسلى لذلك كل ما هو مطلوب وحدة خارجية لإزاحة المستوى لترجمة الإشارات ذات المستوى TTL إلى مستويات النظام RS232-C والعكس بالعكس .
يمكن تحقيق ذلك باستخدام الشريحة MAX232 المصنعة بمعرفة شركة Maxim .تحتاج الشريحة إلى قليل من المكثفات الخارجية لاستخدامها فى عملية مضخات الشحن الداخلية لكى تولد الجهود +12V و -12V المطلوبة للاتصال عن طريق RS232-C .
الطريقة البسيطة لارسال واستقبال بايتات من خلال المنفذ التسلسلى للكومبيوتر الشخصى باستخدام برنامج HyperTerminal الموجود ضمن نظام الوندوز عن طريق :
Start → Menu → Programs → Accessories → Communications→Hyperterminal
حيث يمكنك إنشاء اتصال مع المنفذ التسلسلى (COM1 على سبيل المثال) واختيار معدل البود baud rate وعدد الخانات number of bits وتحديد نوع التطابق parity ..ألخ .
عند إتمام الاتصال فأن أى حرف سوف تكتبه سوف يرسل (ككود أسكى) من خلال المنفذ التسلسلى . الحروف المستقبلة سوف يتم عرضها على الشاشة أيضا .
الدائرة الكهربية :