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

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

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:333
قديم 07-04-2011, 06:43 PM المشاركة 1   
افتراضي تفاصيل مكتبة نظام الاتصال العام الغير متزامن للإرسال والاستقبال UART Library Twitter FaceBook Google+



تفاصيل مكتبة نظام الاتصال العام الغير متزامن للإرسال والاستقبال UART Library
تتوفر وحدة (موديول) أجهزة hardware نظام الاتصال التسلسلى UART فى عدد من الميكروكونترولر . وتوفر مكتبة UART بالمترجم The mikroC PROالعمل المريح فى هذا النظام الكامل الازدواج full duplex (ارسال واستقبال) الغير متزامن Asynchronous .
يمكنك بسهولة الاتصال مع الأجهزة الأخرى عن طريق البرتوكول RS-232 ( مع الكومبيوتر الشخصى على سبيل المثال ) .
سوف نحتاج إلى ميكروكونترولر به وحدة UART (مثل PIC16F887) وعندئذ وببساطة نستخدم الدوال المذكورة فيما بعد .
ملاحظات هامة:
· روتينات مكتبة UART تحتاج منك تحديد رقم الموديول الذى تريد استخدامه .لاختيار موديول UART ببساطة يتم تغيير الحرف x فى نموذج صيغة الروتين إلى رقم 1 أو 2 .
· التحويل بين وحدات UART فى المكتبة UART يتم بالدالة UART_Set_Active ( ويجب قبل ذلك تهيئة بدء وحدات UART ) .
· عدد الوحدات UART فى الميكروكونترولر تختلف من شريحة إلى أخرى . برجاء الرجوع إلى Data sheet قبل استخدام هذه المكتبة .


دوال أو روتينات المكتبة :

1- الدالة أو الروتين UARTx_Init "تهيئة موديول الاتصال UART رقم x "
  • نموذج الصيغة :



  • العائد : لايوجد .
  • الوصف : تهيئة وحدة UART المطلوبة بمعدل البودbaud rate( عدد النبضات كل ثانية) المرغوب به . يتم الرجوع إلى Data sheet لمعرفة معدلات البود المسموح بها عند تردد Fosc محدد . فإذا حددت معدل بود غير معتمد فإن المترجم سوف يعطى رسالة خطأ.
  • المطالب :
# تحتاج إلى ميكروكونترولر يحتوى على وحدة UART .
# الدالة UARTx_Init يجب استدعائها قبل استخدام باقى دوال المكتبة .
البارامترات : البارامتر baud_rate هو معدل البود المطلوب وهو قيمة ثابتة يتم اختيارها بمعرفة المبرمج.

  • مثال : تهيئة الوحدة UART1 وإنشاء اتصال بمعدل 9600 bps (نبضة كل ثانية)





2- الدالة أو الروتين UARTx_Data_Ready " اختبار تجهيز البيانات للاستقبال "

اعلانات

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:333
قديم 07-04-2011, 06:45 PM المشاركة 2   
افتراضي


الدالة أو الروتين UARTx_Data_Ready " اختبار تجهيز البيانات للاستقبال "


  • نموذج الصيغة :

  • العائد :
# بواحد 1 إذا كانت البيانات جاهزة للقراءة .

# بصفر 0 إذا لم تكن عناك بيانات فى سجل الاستقبال .
  • الوصف :
تستخدم الدالة لاختبار ما إذا كانت البيانات فى حافز الاستقبال receive buffer جاهزة للقراءة .
  • المطالب :
يجب أن يتم إعداد الوحدة UART بالدالة UARTx_Init قبل استخدامها .
  • مثال : اختبار "إذا كانت البيانات جاهزة" إقرءها : عبارة شرط if : هل البيانات جاهزة للقراءة ؟ أى هل عائد الدالة UART1_Data_Ready بالقيمة 1 = true . عندما يتحقق هذا الشرط يتم تنفيذ التعبير المرتبط بها وهو : استقبال بايت البيانات بالدالة UART1_Read ثم نسخه إلى سجل المتغير receive (الذى يجب تعريفه مسبقا)





3- الدالة أو الروتين UARTx_Tx_Idle " اختبار خلو سجل الإزاحة للأرسال " "أو اكتمال الارسال"

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

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:333
قديم 07-04-2011, 06:47 PM المشاركة 3   
افتراضي


الدالة أو الروتين UARTx_Tx_Idle " اختبار خلو سجل الإزاحة للأرسال " "أو اكتمال الارسال"
  • نموذج الصيغة :


  • العائد :
# بواحد 1 إذا تم أرسال البيانات .
# بصفر 0 غير ذلك .
  • الوصف :
تستخدم هذه الدالة لاختبار ما إذا كان سجل الإزاحة للإرسال فارغ أم لا .
  • المطالب :
يجب أن يتم إعداد الوحدة UART بالدالة UARTx_Init قبل استخدامها .

  • مثال :إذا كانت البيانات السابقة قد تمت إزاحتها للخارج , إرسل البيانات التالية






4- الدالة أو الروتين UARTx_Read " قراءة أو استقبال بايت من خلال UART رقم x "


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:333
قديم 07-04-2011, 06:50 PM المشاركة 4   
افتراضي


- الدالة أو الروتين UARTx_Read " قراءة أو استقبال بايت من خلال UART رقم x "

· نموذج الصيغة :










· العائد : تعود بالبايت المستقبل

· الوصف : تقوم الدالة باستقبال بايت من خلال UART .يتم أولا استخدام الدالة UARTx_Data_Ready لاختبار إن كانت البيانات جاهزة .

· المطالب :

يجب أن يتم إعداد الوحدة UART بالدالة UARTx_Init قبل استخدامها .
  • مثال :
إذا كانت البيانات جاهزة , يتم قراءتها





5- الدالة أو الروتين UARTx_Read_Text " "قراءة أو استقبال نص حتى نهاية محددة"


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:333
قديم 07-04-2011, 06:52 PM المشاركة 5   
افتراضي


الدالة أو الروتين UARTx_Read_Text " "قراءة أو استقبال نص حتى نهاية محددة"

· نموذج الصيغة :








· العائد : لا يوجد

· الوصف

قراءة الحروف عن طريق UART حتى إكتشاف نهاية محددة للتسلسل delimiter. يتم حفظ تسلسل القراءة فى البارامتر output ويتم حفظ نهاية التتابع المحدد فى البارامتر delimiter .

هذه الدالة عبارة عن استدعاء لمجموعة : يتم توقع التسلسل المحدد فإن لم يتواجد فإنه يتم الخروج من الاجراءات .

البارامترات :

# output : النص المستقبل .

# Delimiter : نهاية تسلسل الحروف الذى يعرف نهاية السلسة النصية المستقبلة .

# Attempts : يعرف عدد الحروف المستقبلة والتى يتوقعها البارامتر Delimiter . إذا تم تحديد البارامتر Attempts بالعدد 255 فإن هذا الروتين سوف يستمر بصفة مستمرة فى محاولة اكتشاف التتابع المحدد Delimiter .

· المطالب :

يجب تهيئة الموديول وإنشاء الاتصال قبل استخدام هذه الدالة .

· مثال :

قراءة نص حتى استتقبال تسلسل “OK” وإعادة إرسال ما تم استقباله :

فى البداية يتم تهيئة الموديول بمعدل بود 4800 وتأخير زمنى قدرة 100 ملى ثانية كفرصة لاستقرار التهيئة .

ثم يتم إنشاء حلقة خير منتهية while (1) {…} يتم فيها :

# أولا اختبار تجهيز البيانات للاستقبال .

# أن كانت جاهزة يتم قراءة (استقبال) سلسة حتى يجدد كلمة OK لعشرة محاولات نصية وحفظها فى سجل المتغير output.

# إعادة إرسال ما تم استقباله وتخزينه فى السجل output .










6- الدالة أو الروتين UARTx_Write " ارسال بايت من خلال UART رقم x "


التعديل الأخير تم بواسطة : F.Abdelaziz بتاريخ 07-04-2011 الساعة 07:12 PM

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:333
قديم 07-04-2011, 06:54 PM المشاركة 6   
افتراضي


الدالة أو الروتين UARTx_Write " ارسال بايت من خلال UART رقم x "

· نموذج الصيغة :










· العائد : لا يوجد

· الوصف :

تقوم الدالة بارسال بايت من خلال موديول UART

البارامترات :

_data : البيانات المراد ارسالها .

· المطالب :

يجب تهيئة الموديول وإنشاء الاتصال قبل استخدام هذه الدالة .

· مثال :










7- الدالة أو الروتين UARTx_Write_Text " ارسال نص "


التعديل الأخير تم بواسطة : F.Abdelaziz بتاريخ 07-04-2011 الساعة 07:16 PM

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:333
قديم 07-04-2011, 07:19 PM المشاركة 7   
افتراضي


- الدالة أو الروتين UARTx_Write_Text " ارسال نص "

· نموذج الصيغة :










· العائد : لا يوجد .

· الوصف :

ارسال نص من خلال UART . يجب أن ينتهى النص بالصفر .

البارامترات :

# UART_text النص المراد إرساله .



· المطالب :

يجب تهيئة الموديول وإنشاء الاتصال قبل استخدام هذه الدالة .

· مثال :

قراءة نص حتى استتقبال تسلسل “OK” وإعادة إرسال ما تم استقباله












8- الدالة أو الروتين UART_Set_Active "تفعيل موديول UART "


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:333
قديم 07-04-2011, 07:22 PM المشاركة 8   
افتراضي


الدالة أو الروتين UART_Set_Active "تفعيل موديول UART "

· نموذج الصيغة :


















· العائد : لا يوجد .

· الوصف :



تغعيل موديول UART والذى سوف يستخدم بواسطة روتينات مكتبة UART .

البارامترات :

# read_ptr : يتناول الدالة UART_Read .

# write_ptr : يتناول الدالة UART_Write .

# ready_ptr : يتناول الدالة UARTx_Data_Ready .

# tx_idle_ptr : يتناول الدالة UARTx_Tx_Idle .





· المطالب :

يجب تهيئة الموديول وإنشاء الاتصال قبل استخدام هذه الدالة .



· مثال :














مثال على المكتبة :

إضافة رد

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

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

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


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

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