علوم الحاسب

ما هو المرسل المستقبل غير المتزامن الشاملUART

يعتبر المرسل المستقبل غير المتزامن الشامل UART أحد أشهر معايير الاتصال التسلسلي وأكثرها استخداماً خصوصاً في مجال التواصل المباشر بين جهازين

1. نظرة عامة حول المرسل المستقبل غير المتزامن الشامل UART

تعرفنا في مقالٍ سابق على الاتصالات التسلسلية Serial Communications وأبرز الاختلافات بينها وبين الاتصالات التفرعية، وكذلك على أبرز المعايير التي تعتمد مبدأ التبادل التسلسلي للبتات الرقمية. الآن ننتقل للحديث بتفاصيلٍ أكثر حول أحد أشهر معايير الاتصال التسلسليّ وأكثرها استخداماً، والمقصود هنا هو المرسل المستقبل غير المتزامن الشامل UART.

تُشير كلمة UART في اللغة الإنجليزية إلى Universal Asynchronous Receiver Transmitter وهي تترجم إلى المرسل المستقبل غير المتزامن الشامل، ويُعبر المصطلح عن شريحةٍ إلكترونية تؤمن عملية التبادل التسلسليّ للبيانات وفقاً لمعيارٍ محدد (سنقوم بشرحه ضمن هذا المقال) والتي تستخدم على نطاقٍ واسع في عالم المتحكمات الصغرية Microcontrollers والأنظمة المدمجة Embedded Systems.

كما يشير الاسم، تؤمن الشرائح العاملة وفق معيار UART عملية نقل تسلسلي للبتات الرقمية بشكلٍ غير متزامن، وهذا يعني عدم وجود مصدر مشترك لنبضات العمل بين طرفي الاتصال ويمكن أن يعملا عند ترددين مختلفين. على صعيدٍ آخر، يؤمن معيار UART آلية نقل تسلسلي للبيانات بطريقةٍ تتيح ضبط سرعة التبادل وكيفية تأطير البيانات. يمكن أن تتواجد شرائح UART بشكلٍ مستقل أو بشكلٍ مدمج ضمن المتحكمات الصغرية. والتي يمكن البحث عنها ضمن النشرة الفنية الخاصة بالمتحكم تحت اسم “طرفية Peripheral”. قد لا تمتلك بعض المتحكمات الصغرية أي طرفية UART وقد تمتلك طرفية واحدة وقد تمتلك عدة طرفيات. كمثالٍ على ذلك، تمتلك لوحة الآردوينو أونو المعتمدة في داخلها على متحكم ATmega328 طرفية UART واحدة، بينما تمتلك لوحة آدروينو ميجا المعتمدة في داخلها على متحكم ATmega2560 على أربع طرفيات UART.

تمتلك بعض الشرائح إمكانية ضبطها لتؤمن تبادل تسلسلي للبيانات بشكلٍ متزامن أو غير متزامن، وهي تُعرف بهذه الحالة باسم USART: Universal Synchronous Asynchronous Receiver Transmitter.

2. كيف يعمل المرسل المستقبل غير التزامني How UART works

بشكلٍ عام، تتطلب عملية الاتصال التسلسلي عبر UART وصل طرفي الاتصال عبر سلكين: سلك الإرسال Tx وسلك الاستقبال Rx. بهذه الصورة، يمكن تمثيل قناة الاتصال كما يلي:

على صعيدٍ آخر، نعلم أن الأنظمة الرقمية على مختلف أنواعها تقوم بتبادل البيانات ضمن نواقل Bus Systems والتي قد تكون بعرض 8-بت أو 16-بت أو 32-بت أو 64-بت، وهذا يعني أن مكونات النظام الرقمي تقوم بتبادل البيانات داخلياً (أي بين بعضها البعض) باستخدام نظام اتصال تفرعي. لهذا السبب، وعندما نريد تبادل بيانات بين نظامين مختلفين عبر شرائح UART، فإن ما يجب تنفيذه هو قراءة البيانات الموجودة على الناقل التفرعيّ ومن ثم إرسالها بشكلٍ تسلسليّ عبر UART، وهذا يعني أنه يمكن تمثيل عملية تبادل البيانات الرقمية بين نظامين مختلفين باستخدام معيار UART كما يلي:

عند النظر لدارة UART ضمن الأنظمة الحاسوبية فإننا سنجد أنها تمتلك جانبين: الأول يستقبل البيانات التفرعية مع بيانات للتحكم، والثاني يمثل الخرج ويتكون من نواقل الاتصال التسلسليّ، أي ناقل الإرسال Tx وناقل الاستقبال Rx. لو أردنا الغوص أكثر قليلاً في التفاصيل، فإن ما يحدث فعلياً ضمن وحدة UART هو التالي:

  • على طرف الإرسال، يتم قراءة البتات الرقمية من الناقل التفرعيّ باستخدام مسجل الإرسال Transmit Register، ومن ثم يتولى مسجل إزاحة Shift Register عملية دفع البتات الرقمية الموجودة ضمن مسجل الإرسال الواحدة تلو الأخرى عبر قناة الاتصال التسلسلية مع كل نبضة ساعة
  • على طرف الاستقبال، يتم قراءة البتات الرقمية من قناة الاتصال التسلسلية عبر مسجل إزاحة، والتي يتم تخزينها ضمن مسجل الاستقبال Receive Register مع كل نبضة ساعة

3. مُحددات الاتصال التسلسلي عبر معيار UART

أصبحنا نعرف الآن أن وحدة UART تقوم بقراءة البيانات الرقمية الموجودة على ناقلٍ تفرعيّ ومن ثم إرسالها على قناة الاتصال بشكلٍ تسلسلي أي الواحدة تلو الأخرى، وكذلك الأمر بالنسبة للاستقبال، أي أنه يتم استقبال البيانات التسلسلية وتخزينها ضمن مسجل الاستقبال لتكون قابلة للنقل مرة أخرى عبر نظام النواقل التفرعيّ الداخليّ الخاص بالنظام الرقميّ. ولكن كيف نستطيع ضمان صحة عملية تبادل البتات الرقمية وعدم حصول أخطاء، خصوصاً أنه لا يوجد ساعة مشتركة بين طرفي قناة الاتصال؟ ببساطة، عبر التحقق من محددات عملية الاتصال وفقاً لمعيار UART.

مثل أي معيار (أو بروتوكول) اتصال، يتضمن UART مجموعة من القواعد التي تحدد كيفية تبادل البتات الرقمية عبره، وبشكلٍ أساسيّ فإنه يتوجب علينا أخذ قاعدتين (أو خاصيتين) بعين الاعتبار:

  • مكونات أو بنية الحزمة Packet
  • معدل الإرسال Baud Rate

يتم تبادل البيانات ضمن “حزم Packets” (أو إطارات Frames)، وتمتلك كل حزمة بنية ومكونات تحدد عدد البتات التي يتم تبادلها وكيفية معرفة بداية ونهاية الحزمة وكذلك آلية بسيطة للكشف عن الخطأ أثناء الإرسال، وبالتالي فإن حزمة الاتصال UART تتكون من:

  • بتات التزامن Synchronization Bits
    • بت البداية Start-Bit
    • بت النهاية End-Bit
  • بتات البيانات، أو كتلة البيانات Data Bits or Data Frame
  • بتات الندية Parity Bits
1.3 مكونات حزمة UART – بت البداية Start Bit

يشكل بت البداية أحد مكونات ما يُعرف ببتات التزامن Synchronization Bits، أي البتات الموجودة ضمن حزمة UART والتي تتيح للطرق المستقبل تحديد بداية ونهاية الحزمة، وبالتالي فهي توّفر وسيلة للفهم الصحيح لمحتوى الرسالة وضمان صحة التبادل حتى بدون وجود ساعة مشتركة بين طرفي قناة الاتصال. بالنسبة لبت البداية، وهو يأخذ قيمة صفر منطقي (مجال منخفض)، وبالتالي فإن بدء عملية الإرسال تكون عندما ينتقل الجهد عبر قناة الاتصال من المستوى المرتفع High Level (واحد منطقي) إلى المستوى المنخفض (صفر منطقي).

2.3 مكونات حزمة UART – بتات البيانات Data Bits

تُمثل هذه البتات المعلومة المطلوب إرسالها عبر قناة الاتصال التسلسلية العاملة وفق معيار UART، ويتراوح عدد هذه البتات ما بين 5 و حتى 9 بتات، وعادةً ما تكون 8 بتات، أي بت رقمي واحد. بهذه الصورة، ومن أجل إرسال محرف واحد بصيغة ASCII عبر قناة اتصال تسلسلية تعمل بمعيار UART، فإننا سنحتاج إلى حزمة واحدة من أجل تنفيذ ذلك.

هنالك أمرٌ هام يتعلق بكتلة البيانات نفسها، وهو ما يطلق عليه بالإنجليزية اسم Endianess. عند التعامل مع حزمة من البتات، فإن هنالك بتين أساسيين يجب تمييزهم على الدوام: البت الأكثر أهمية MSB والبت الأقل أهمية LSB، وهكذا فإنه من المهم معرفة إن كان إرسال كتلة البيانات ضمن حزمة المعلومات سيبدأ من البت الأكثر أهمية أو من البت الأقل أهمية، لأن هذا يؤثر على عملية الاستقبال وكيفية تفسير البتات الآتية. مصطلح Endianess يشير إلى الكيفية التي يتم عبرها إرسال البتات؛ إن كانت تبدأ من البت الأقل أهمية فإنها تدعى Little-Endian وإن كانت تبدأ من البت الأكثر أهمية فإنها تدعى Bid-Endian.

3.3 مكونات حزمة UART – بت الندية Parity Bits

تتضمن عملية إرسال البيانات التسلسلية طرقاً للكشف عن الأخطاء Error-Checking، وبتات الندية هي أبسط هذه الطرق من أجل الكشف عن الأخطاء والتأكد من الإرسال الصحيح للحزمة. هنالك نوعين من بتات الندية: بتات الندية الفردية Odd Parity Bits وبتات الندية الزوجية Even Parity Bits. وظيفة بتات الندية هي إضافة بت واحد لكتلة البيانات بحيث يجعل عدد الواحدات فيها إما زوجي أو فردي. لو فرضنا أننا نريد إرسال إطار ذو كتلة بيانات تمتلك 8 بتات قيمها 11110000، فهذا يعني أن كتلة البيانات تتضمن 4 واحدات. الآن ما نريد القيام به هو استخدام الندية الزوجية Even Parity من أجل توليد بت إضافي يستخدم للتحقق. بالنظر لكتلة البيانات سنجد أن عدد الواحدات هو  4، وهو عدد زوجي، وبالتالي وعند استخدام الندية الزوجية ستكون قيمة بت الندية هي 0، ولو كان عدد الواحدات في كتلة البيانات فردياً، لكانت قيمة بت الندية بهذه الحالة هي 1. عملية توليد بت الندية الفردي هي معاكسة تماماً لعملية توليد بت الندية الزوجي. يجب معرفة أن استخدام مفهوم بتات الندية كطريقة تحقق من صحة كتلة البيانات المرسلة هو أمرٌ اختياريّ، كما أن هذه العملية ستؤدي لجعل زمن الإرسال أكبر بسبب الوقت اللازم المضاف لإرسال بت الندية الإضافي.

4.3 مكونات حزمة UART – بت النهاية Stop Bit

بشكلٍ بت النهاية المكون الآخر لبتات التزامن في حزمة UART، وهو يُحدد نهاية الحزمة بما يعني إعلام المستقبل بأن هذه الحزمة قد انتهت (انتهاء الحزمة لا يعني انتهاء عملية الإرسال برمتها). يأخذ بت النهاية قيمة واحد منطقي، ما يعني أنه وعند حصول انتقال من مستوى الجهد المنخفض (صفر منطقي) إلى مستوى الجهد المرتفع (واحد منطقي) على قناة الاتصال بعد الانتهاء من إرسال بتات البيانات وبتات الندية فإن هذا يعني انتهاء الحزمة.

5.3 مُعدل الإرسال Baud Rate

ما هو عدد البتات التي تقوم قناة الاتصال التسلسلية بإرسالها خلال ثانيةٍ واحدة؟ الجواب على هذا السؤال هو معدل الإرسال، والذي يقاس عادةً بواحدة بت/ثانية bps، وإذا قمنا بحساب معكوس معدل الإرسال، فإننا سنحصل على المدة الزمنية اللازمة لإرسال بت واحد فقط ضمن قناة الاتصال، كما أن هذه المعلومة – أي المدة اللازمة لإرسال بت واحد – تشير للفترة الزمنية التي سيقوم فيها المرسل بالاحتفاظ بقناة الاتصال بحالة واحد منطقي High أو صفر منطقي Low. يُمكن لمعدل الإرسال – نظرياً – أن يمتلك أي قيمة، والقاعدة الأساسية المتعلقة به هو أن طرفي الاتصال يجب أن يعملا عند نفس معدل الإرسال. عملياً، يتم استخدام مجموعة من القيم عند إرسال البيانات التسلسلية، ولعل أشهر معدل إرسال هو 9600 بت/ثانية، بالإضافة للمعدلات الأخرى المستخدمة بشكلٍ كبير مثل 1200، 2400، 4800، 19200 و 115200.

كلما ارتفعت قيمة معدل الإرسال كلما ارتفع عدد البتات التي يمكن إرسالها عبر القناة التسلسلية في كل ثانية. عملياً تمتلك الأنظمة الإلكترونية محدودياتٍ فيما يتعلق بمعدل الإرسال، إذ أنه وعند حدٍ معين زيادة معدل الإرسال قد تؤدي لنشوء أخطاء ومشاكل في عملية الاتصال بما يؤدي لوصول البيانات بشكلٍ غير صحيح. يجب معرفة معدل الإرسال الأقصى التي تستطيع الأجهزة المتواجدة في طرفي قناة الاتصال العمل عنده قبل تحديد قيمةٍ كبيرة لمعدل الإرسال.

4. مثال – إرسال محارف ASCII عبر قناة تسلسلية

يُمثل نمط 8N1 أحد أشهر الأنماط المستخدمة وأبسطها في مجال إرسال البيانات ضمن قناة اتصال تسلسلية، وهو يشرح بنية الإطار: هنالك 8 بتات بيانات ولا يوجد أي بت ندية مع بت واحد للنهاية. بهذه الصورة، يمثل بت البداية أو بت ضمن كتلة البيانات. يمكن فهم هذه البنية بسهولة من اسم النمط نفسه: الرقم 8 في البداية يشير إلى أن كتلة البيانات تتضمن 8 بتات، والحرف N يمثل عدم وجود بت ندية والرّقم 1 في النهاية يمثل لوجود بت نهاية وحيد. لا يوجد رقم خاص ببت البداية لأنه يمتلك قيمة افتراضية هي 0. أخيراً، يمثل العدد 9600 معدل الإرسال المراد استخدامه عند إرسال الإطار.

لنفرض الآن أننا نريد إرسال الكلمة OK باستخدام النمط 8N1. تتكون هذه الكلمة من محرفين الأول هو ‚O‘ والثاني هو ‚K‘. في مجال الأنظمة الرقمية يستخدم ترميز أسكي ASCII المعياري من أجل تبادل الأحرف والرموز والأعداد، وعند النظر لقيمة الحرف O ضمن جدول أسكي فإننا سنجد أنه يوافق العدد العشري 79، أي العدد الثنائيّ 01001111، وبغياب بت للندية وبوجود بت نهاية وحيد قيمته هي 1 وبت بداية وحيد قيمته هي 0، ومع الأخذ بعين الاعتبار أن الإرسال يبدأ من البت الأكثر اهمية MSB (البت الأول من اليمين) وينتهي بالبت الأقل أهمية LSB، فإن شكل الإطار الخاص بإرسال هذا المحرف عبر بنية 8N1 وضمن قناة UART تسلسلية سيكون كما يلي:

0111100101

نفس الأمر بالنسبة للحرف K الذي يمتلك القيمة العشرية 75 والتي تقابل العدد الثنائي 01001011، ومع إضافة بت النهاية وبغياب بت الندية، ومع تشكيل كتلة البيانات ضمن الحزمة بحيث يكون تبدأ بالبت الأكثر أهمية MSB وتنتهي بالبت الأقل أهمية LSB، فإن شكل الإطار الخاص بهذا المحرف عبر بنية 8N1 وضمن قناة تسلسلية سيكون كما يلي:

0110100101

الشكل الكامل لإطاري الإرسال الخاصين بالمحرفين O و K اعتماداً على نمط 8N1 9600 هو:

أخيراً، ومن أجل معرفة الزمن اللازم لإرسال الإطار السابق عبر قناة اتصال تسلسلية، فإنه يمكننا حساب ذلك عبر معرفة معدل الإرسال Baud Rate. على افتراض أن معدل الإرسال هو 9600 بت بالثانية، فهذا يعني أننا نحتاج إلى زمنٍ قدره 104 مايكروثانية لإرسال بت واحد، وبالتالي وكون حزمة الاتصال السابقة تتكون من 20 بت، فإن الوقت اللازم لإرسال الحزمة السابقة هو:

زمن الإرسال = عدد البتات ضمن الحزمة * الزمن اللازم لإرسال بت واحد

زمن الإرسال = 20 بت * 104 مايكروثانية = 2080 مايكروثانية = 2 ميللي ثانية = 0.002 ثانية

5. معيار UART وجهود المجالات المنطقية

أصبحنا الآن نعرف مكوّنات نظام الاتصال وكيفية ارتباط الإشارات مع بعضها البعض على طرفي قناة الاتصال، ولكن كيف يتم تمثيل الإشارات نفسها؟ ما هو 1 منطقي وما هو 0 منطقي؟ هذا الأمر يتم عبر تقسيم الجهود الكهربائية: في الأنظمة الرقمية، يتم ترميز قيمة الجهد المرتفع على أنه 1 منطقي، أي أننا وعندما نريد تشكيل بت يحمل قيمة 1 فإن كل ما علينا فعله هو توليد جهد كهربائيّ مرتفع خلال فترةٍ زمنية محددة. بشكلٍ معاكس، فإن الصفر المنطقي هو قيمة منخفضة للجهد الكهربائيّ خلال فترةٍ زمنية معينة.

أشهر الطرق المعتمدة لترميز الإشارات عبر الجهود الكهربائية هي منطق ترانزيستور-تراتزيستور TTL أو محددات معيار RS-232. بحالة منطق TTL، فإنه يستخدم على نطاقٍ واسع في مجال الاتصالات التسلسلية في تطبيقات المتحكمات الصغرية وترميز الإشارات يتبع لحدود الجهد الكهربائيّ الممكن توليده عبر المتحكم الصغري، والذي يكون عادةً بين 0 – 5 فولط أو 0 – 3.3 فولط. بهذه الصورة، تمثل قيمة جهد التغذية VCC التي قد تكون 5 أو 3.3 فولط حالة الواحد المنطقي بينما تمثل قيمة جهد التأريض GND التي تكون 0 فولط حالة الصفر المنطقي. عند ظهور نبضة واحد منطقي فإننا نستطيع معرفة أنها تمثل إما حالة خاملة للناقل Idle Line، أو أحد بتات البيانات أو بت النهاية، بينما يمثل ظهور الصفر المنطقي (غياب النبضة) إما بت البداية أو أحد بتات البيانات.

جهود المجالات المنطقية لترميز البتات الرقمية باستخدام منطق ترانزيستور-ترانزيستور لإرسال إشارات عبر قناة UART حقوق ملكية الصورة: Sparkfun. تم التعريب بواسطة فور إلكترون.

بالنسبة لاعتماد محددات معيار RS-232 في عمليات تمثيل الإشارات ضمن النواقل التسلسلية فإنها تعتمد نفس المبدأ بالنسبة لمنطق TTL، والفرق الأساسيّ هو بمجال الجهود المستخدمة في ترميز الإشارات والتي تكون بين -13 وحتى +13 فولط، أي أن الواحد المنطقي هو 13 فولط بينما الصفر المنطقي هو -13 فولط، كما أن خصائص هذا المعيار تسمح باستخدام مجالاتٍ أخرى من +/- 3 فولط وحتى +/- 25 فولط. أخيراً، تمثل حالة الجهد المرتفع عند استخدام معيار RS-232 بت البداية أو إحدى بتات البيانات التي قيمتها 0 منطقي، بينما تمثل حالة الجهد المنخفض حالة خاملة للناقل التسلسليّ أو بت النهاية أو أحد بتات البيانات التي قيمتها 1 منطقي، وهذا يعني أن تفسير الإشارات الكهربائية واستخدامها في ترميز البتات معاكسٌ للترميز المستخدم في منطق TTL.

جهود المجالات المنطقية لترميز البتات الرقمية باستخدام منطق RS-232 لإرسال إشارات عبر قناة UART حقوق ملكية الصورة: Sparkfun. تم التعريب بواسطة فور إلكترون.

يعتبر ترميز الإشارات باستخدام منطق TTL أكثر سهولة للتطبيق في مجال الأنظمة المضمنة ولو أن المجالات المنخفضة للجهود تجعلها أكثر تعرضاً لحدوث خساراتٍ في الإشارات (أي البيانات المرسلة) عبر خطوط النقل. يعتبر الترميز باستخدام معيار RS-232 وغيره من المعايير الأكثر تعقيداً (مثل RS-485) أكثر ملائمةً للاستخدام عند إجراء عمليات تبادل البيانات على مسافاتٍ طويلة. من المهم هنا بهذا السياق التأكيد على فكرة توافق المعايير: في حال ربط جهازين عبر قناة اتصال تسلسلية بهدف تبادل البيانات، يجب أن يكون كلا الجهازين عاملين على نفس المعيار، إما TTL أو RS-232. في حال اعتماد كل جهازٍ على معيار تبادل، فإن آلياتٍ أخرى لإزاحة الجهود الكهربائية ستكون ضرورية.

6. مشاكل شائعة

  • التوصيل الخاطئ للنواقل: على الرّغم من كونه بديهيّ ضرورة توصيل النواقل بشكلٍ صحيح، أي ناقل الإرسال من الطرفية الأولى مع ناقل الاستقبال من الطرفية الثانية، إلا أن هذه المشكلة تعتبر من الأكثر شيوعاً والتي يقع بها الجميع، من المبتدئين للمحترفين.
  • عدم تطابق معدل الإرسال: يجب التأكد دوماً من امتلاك الجهازين المتوضعين على طرفي قناة الاتصال نفس معدل الإرسال والاستقبال، وفي حال إرسال البيانات من الجهاز الأول بمعدلٍ يختلف عن معدل استقبالها من الجهاز الثاني فإن هذا قد يؤدي لسوء تفسير البيانات أو حتى ضياعها. أحد أشهر الأعراض المتعلقة بهذه المشكلة هي عند ظهور بيانات لا تحمل أي معنى على طرف الاستقبال، كأن ننتظر استقبال سلسلة محارف وما حصلنا عليه هو سلسلة غريبة جداً من الرموز. قد يكون هنالك أسباب أخرى لهذا الأمر، ولكن عدم تطابق معدل الإرسال هو السبب الأكثر ترجيحاً.
  • تنافس النواقل Bus Contention: تعني هذه المشكلة محاولة عدة أجهزة العمل على نفس قناة الاتصال وبنفس الوقت، فكما وضحنا سابقاً، يعمل معيار UART على تأمين تبادل البيانات بين جهازين، وإن اتصل جهازٌ ثالث بقناة الاتصال لأي سببٍ من الأسباب فإن ذلك سيؤدي لعدة عواقب تبدأ من عدم قدرة الأجهزة على إرسال واستقبال البيانات وتصل حتى حصول ضررٍ في النواقل نفسها. يجب التنويه إلى أنه من الممكن ربط عدة أجهزة عند طرف الاستقبال مع جهازٍ واحد عند طرف الإرسال، أي أن البيانات ستتجه لأكثر من جهة ولكنها تأتي من مصدر واحد، ولو أن هذا الأمر يتطلب إجراءاتٍ إضافية. بشكلٍ عام، يمكن القول أنه ومن أجل تأمين أفضل أداء ممكن، يجب أن تمتلك كل قناة إرسال جهازين على طرفيها، الأول للإرسال والثاني للاستقبال.
تحدث مشكلة تنافس النواقل عند محاولة جهازين إرسال بيانات إلى نفس المستقبل عبر نفس القناة، وهي تحدث أيضاً في حال محاولة جهازين الاستقبال من نفس المرسل عبر نفس القناة.

7. ملخص

  • يمثل المرسل / المستقبل غير المتزامن الشامل أحد أشهر معايير وأجهزة الاتصال التسلسلي المستخدمة على نطاقٍ واسع في الأنظمة المدمجة والمتحكمات الصغرية
  • تقوم دارة UART في الأنظمة الحاسوبية بتحويل المعلومات التسلسلية إلى تفرعية عند طرف الاستقبال، وتحويلها من تفرعية إلى تسلسلية عند طرف الإرسال
  • لا يحتاج طرفي قناة الاتصال عبر UART إلى وجود ساعة عمل مشتركة بينهما، إلا أن صحة عملية الإرسال والاستقبال تتطلب عمل طرفي الاتصال على نفس معدل الإرسال Baud Rate
  • يتم إرسال البيانات عبر معيار UART باستخدام حزم ذات بنية ومحددات معينة، وتتكون كل حزمة من بت بداية، بتات البيانات، بت الندية وكشف الأخطاء، بت (أو بتات) النهاية
  • هنالك عدة طرق من أجل ترميز جهود الإشارات المنطقية عبر معيار UART، مثل منطق ترانزيستور-ترانزيستور TTL أو منطق RS-232

8. مصادر المقال

مقالات ذات صلة

تعليق واحد

  1. مقال جميل جدا ولكن هل يمكن صناعه مرسل ومستقبل بخاصيه Uart عبر موجات الراديو بحيث يكون أدائه نفس أداء المرسلات والمستقبلات التي يتم شرائها ام لا

زر الذهاب إلى الأعلى