عنوان الموضوع

نبذة عن محتوى الموضوع

بروتوكول CAN

من اشهر بروتوكولات الشبكات المستخدمة في صناعة السيارات والتطبيقات الصناعية الاخرى

Embedded Systems and The Internet of Things

انترنيت الاشياء من التقنيات الحديثة التي بدت تدخل عالم الانظمة المدمجة

التعريف باردينو اونو

مقالة تعريفية عن تفاصيل الاردينو واللغات التي يمكن برمجة الاردينو بها

انواع الاتصالات

انواع الاتصالات في الانظمة الحاسوبية وبروتوكولات نقلها

الثلاثاء، 25 أغسطس 2015

الانترنت وانترنت الاشياء

Internet And Internet Of Thing

point to point communication
هو الربط بين عدد محدود من الحواسيب والربط يكون مباشر من حاسوب الى اخر باستخدام بروتوكول معين ويكون هذا الربط غير عملي ومكلف جد للانظمة المعقدة لاننا سوف نستهلك عدد كبير من الاسلاك وكذلك يحتاج كل حاسوب ان يتصل مع بقية الحواسيب فنحتاج توفير منافذ بعدد الحواسيب للبروتوكول المستخدم


Ring Topology
يتم ربط الحواسيب على شكل حلقة بصورة متوالية ويحتاج كل جهاز عنوان فريد خاص به ويسمح للتواصل بين حاسوبين في نفس الوقت خلال الشبكة ممايؤدي الى ضياع في الوقت 

Bus Topology
توفر هذه الطريقة تقليل من استخدام الاسلاك حيث تربط جميع الاجهزة بسلك واحد وتعتبر من اكثر الطرق استخداما حيث عندما يريد جهاز التواصل يقوم بالتاكد من خلو سللك النقل وان لاتوجد عملية نقل حالية ثم يبدء ببث البيانات التي يريد ارسالها على سللك النقل ويقوم الحاسوب المعني الهدف باستلامها 

الان هنا لدينا شبكات صغيرة وبانواع مختلفة من الربط لكن ماتتميز به هو انها ترتبط بصورة سلكية مع بعضها ونحتاج نحن للتخلص من الاسلاك واستبدالها بتقنية لاسلكية ضمن مدى ترددات المايكروويف ومن امثلة هذه التقنيات هي الieee802.11 ومانسميه نحنا الwifi والتقنية الاخرى هي ieee802.15 ومانسميه بال bluetooth وهنالك تقنيات اخر لكن هذه اشهرها يتصل كل جهاز باستخدام هذه التقنيات لاسلكيا مع نقطة وصول access point تقوم نقطة الوصول بتنظيم الاتصال بين كل الاطراف


بعد ان اخذنا مقدمة بسيطة عن الشبكات المحلية بصورة (LAN local area network) بسيطة وانواعها الان نتوسع في مفهوم الانترنت ماهو الانترنت هو ان نقوم بوصل جميع الشبكات المحلية LAN مع بعضها لبعض فمثلا لدينا في العراق في مدينة الموصل حوالي 500 شبكة محلية كل شبكة منها قد استخدمت من قبل شركة او موسسة او غير ذلك عندما نقوم بربطها شبكات بقية المحافظات ولو فرضنا ان الربط يتم في بغداد سوف نحصل على شبكة كبيرة جدا تتضمن كل العراق وعندما تربط هذه الشبكة الكبيرة جدا مع الكابل الضوئي للشبكة العالمية الذي قد اتى من اوربا مثلا اصبحت الشكبة العراقية الكبيرة مربوطة على الانترنت وجزء منه 

في الشبكات المحلية يمكن ان نضع لكل حاسوب مربوط على الشبكة عنوان IP معين نحنا نختاره بحيث ان لايكون لجهازين نفس الIP لكن في الانترنت الشبكة العالمية هنالك ملايين الحواسيب سيكون من المستحيل وضع IP لحاسوبك ويكون صحيح وفعال لذا لابد من وجود الية توفر لنا حل لهذه المشكلة وهي توفير unique ID عنوان وحيد لكل حاسوب في الشبكة ونسمى نحن هذا العنوان ب IP Address ويتكون من 4 خانات رقمية كل خانة مكونة من 8 بت اي تاخذ ارقام من 0 حتى 255 مثال 146.168.92.1
يعني هذا ان اي حاسوب مرتبط بالانترنت له عنوان محدد هذا العنوان يشبه رقم الهاتف لكن هذا الرقم يصعب حفظه واستخدامه لذا نقوم يتسميته باسم يشير اليه عندما نذكر هذا الاسم يظهر لنا العنوان في الانترنت نقوم بكتابة اسم موقع مثل فيس بوك فيحمل لنا هذا الاسم عنوان الموقع الIP Address ويقوم ال(DNS Domain Name System) بصنع خرائط تربط العناوين باسمائها باستخدام خوارزميات معينة


الان قد انتهينا من مشكلة العناوين الشملكة الاخرء التي يجب حلها هي مشكلة التوجيه routing مثلا هنالك حاسوبان في اماكن مختلفة في الارض يريدان التواصل معا حيث يريد الحاسوب الاول ارسال بيانات الحاسوب الثاني يمتلك الحاسوب الاول الIP Address للحاسوب الثاني الهدف لكن هنا المشكلة ماهو المسار التي ستسلكه البيانات خلال التواصل بين الحاسوبين فهنالك مئات الطريق للوصول الى الهدف تم حل هذه المشكلة بواسطة بروتوكول يسمى
 (IGMP Internet Group Management Protocol )
يعمل هذا البروتوكل باستخدام خوارزميات مثالية لاداء هذه الوظيفة 


الان لننتقل لحل مشكلة اخرى هي لديك حاسوب تعمل فيه عدة تطبيقات لهذا الحاسوب عنوان خاص هو IP1 يريد التطبيق الاول على هذا الحاسوب التواصل مع حاسوب له عنوان IP2 ويريد التطبيق الثاني على هذا الحاسوب التواصل مع حاسوب له عنوان IP2 اي هنالك نقطة بداية ونقطتين نهاية للبيانات المرسلة عبر الانترنت الان هذه نقاط النهاية تسمى بورتات Ports وهي عبارة عن ارقام 16 بت يتم التعامل معها وتحليلها بطبقة من بروتوكول TCP\IP تسمى بطبقة الTransport Layer حيث عندد دراسة الشبكات يتم فرض وجود عدة طبقات لتسهيل دراسة وفهم الاتصال وتفاصيل الشبكة فمثلا توجد طبقة الNetwork Layer تقوم هذه الطبقة بتوفير كل من الIP Address و الRouting اللذان تكلما عنهما سابقا .
للاطلاع على ارقام البورتات العالمية في شبكة الانترنت هنا 

في طبقة الTransport يوجد بروتوكولات يعمل احدهما حسب الحاجة والتطبيق هما
1- (TCP Transmission Control Protocol) يتميز هذا البروتوكول بالوثوقية (Reliable) حيث يضمن وصول البيانات وبدون اخطاء وكذلك يتميز بانه يقيم رابطة قبل الارسال ويدعم المصافحة حيث يقوم بترتيب البيانات على شكل حزم ولايقوم بارسال حزمة حتى يقوم الجهاز الاخر بالرد بان الحزمة قد وصلت ارسل المزيد من البيانات في حال لم تصل الحزمة ولم يحصل على رد بالوصول يعيد ارسال الحزمة نفسها ويستخدم هذا النوع عندما نحتاج ارسال لايتم فيه فقد اي جزء من البيانات

2-(UDP User Datagram Protocol) عيوبه غير موثوق (Unreliable) اي لايقوم بعملية مصافحة للارسال لذا قد تضيع البيانات وكذلك لايتحكم في تدفق البيانات بل يرسها مرة واحدة يتميز بانه سريع والسبب في ذلك انه لايضيع وقت في عملية المصافحة او تصحيح الاخطاء يستعمل ويكون مناسب في الاتصالات الصوتية او المرئية التي تحتاج نقل بسرعة عالية وبدون مصافحة وتصحيح خطا فهو السبب في تقطيع الصوت في المكالمات في بعض الاحيان


في طبقة التطبيقات لكل تطبيق بورت خاص به مثلا HTTP لخدمة الويب يحجز المنفذ رقم 80 ومنفذ رقم 25 لخدمة البريد SMTP
توجد لدينا طبقة اخر هي الطبقة الفيزيائية اوماتسمى ب(Media Access Control\Physical Layer) هذه الطبقة الوحيدة التي تكون طبقة عتادية Hardware اما الطبقات الثلاث الاخرى فهي طبقات برمجية Software

الصورة توضح كل من TCP\IP Model وOSI Model والارتباط بينهم
يمكن فهم الطبقات بصورة افضل من خلال مراحل تشكل البيانات مع الطبقات 

تكلمنا عن الIP Address وقلنا انه يتكون من رقم 32 بت على شكل dot format يعني انه لدينا 32^2 احتمال لIP ويكون بحدود 4 مليارات كان هذا العدد كبير جدا في وقت مضى لكن في المستقبل القريب سوف لن يكفي هذا العدد ويسمى هذا البروتوكول بالنسخة الرابعة للIP  ويسمى ب (IPV4 Internet Protocol Version 4) لحل مشكلة العدد المحدود في الIPV4 تم استخدام مايسمى ب(NAT Network Address Translation) مترجم عناوين الشبكة حيث يقوم بحجز عنوان لكل اتصال عندما يتم فصل هذا الاتصال يتم اعطاء عنوانه لاتصال اخر وعندما يعود العميل الاول يعطيه عنوان اخر مختلف وعندما يتم تقسيم الاتصال وربطه الى شبكة محلية لن يقوم كل حاسوب بحجز عنوان خاص به من الانترنت بل يقوم الNAT باعطاء كل حاسوب عنوان وهمي محلي خاص به ويبقى عنوان الاتصال هو عنوان واحد بالرغم من قصر هذا الحل الا انه مجدي ولكن ماذا لو اتصل كل ال4 مليار جهاز في نفس الوقت سوف تحصل مشكلة لذا تم البدء بIPV6 ويسمى ب(Internet Protocol Version 6) ويختلف عن الIPV4 بانه مكون من 128 بت وليس 32 بت حيث يمكن الحصول على 128^2 عنوان IP Address منه وهذا العد يكون بحوالي 6 ترليون وتتوزع هذه ال128 بت على 8 خانات تسع ارقام خيالية لتفادي مشكلة الIPV4 حيث هنالك توافق بين الاثنين ويعملان الان معا لحين استبدال كل الحواسيب بIPV6 حيث فيه لن تحتاج الى اجهزة NAT تترجم العناوين سيوفر هذا الاصدار سهولة في الوصول الى الاجهزة المرتبطة بالانترنت مثل السيارات والطائرات والطابعات والكاميرات وكل تقنيات انترنت الاشياء وغيرها ولمعرفة نوع الIP في حاسوبك الان ادخل هنا 


انترنت الاشياء IOT


ماذا نقصد بالاشياء لدينا هنا مثال يوجد عدد من المتحكمات الدقيقة MCU احد المتحكمات يحتوي على حساسات دخل ولوحة كتابة والمتحكم الاخر يحتوي على شاشة عرض وسماعات صوتية هذه المتحكمات اشياء عندما تتصل بالانترنت تصبح انترنت الاشياء اذا الان قد حصلنا على نظام مضمن بكل تفاصيله قد اتصل بالانترنت واصبح الانترنت هو الوسيلة للتواصل بين اجزاء هذا النظام خلال هذه السنين الاخيرة شهد العالم ثورة وتطور بهذا المجال بشكل كبير جدا ومن المتوقع ان يصل عدد الاجهزة المتصلة بالانترنت في عام 2020 50 مليار جهاز تبين الصورة هنا بعض التفاصيل حول تطور ومستقبل هذه التقنية 


بدات التقنية حيث انتشرت الانظمة المدمجة وتطورت بصورة كبيرة وكذلك انتشار الانترنت بشكل واسع جدا في العالم فمن الطبيعي ان يتم ربط التقنيتين معا للحصول على خدمات وتقنيات جديدة وانترنت الاشياء مزيج من انظمة مدمجة تمتلك حساسات مختلفة وظيفتها جمع البيانات و انظمة مدمجة اخرى تستلم البيانات وتؤثر على محيطها من خلال محركات او غيرها من التاثيرات الانظمة المدمجة المتصلة بالانترنت يطلق عليها Smart Object تقوم هذه الاخير بجمع بيانات معالجة لتحديد الحدث واتخاذ قرار مناسب ثم تاثير على البيئة هنا بعض تطبيقات ال Smart Object 



الانظمة المدمجة بصورة عامة لها معايير يجب اتباعها عند التصميم واخذها بالاعتبار وتضاف اليها معايير خاصة بانترنت الشياء ايضا يجب اخذها بالاعتبار 

سعة المعالجوهي عدد التعليمات التي يمكن تنفيذها خلال ثانية واحدة (MIPS)، وبازديادها تزداد سعة(قوةالمعالجة للمعالج.
عرض الناقل الداخليوهي عرض ناقل البيانات بين وحدة المعالجة والذاكرة ويتراوح من 4bit إلى64bit، وبازدياد عرض الناقل تزداد سرعة تناقل البيانات بين المعالج والذاكرة.
حجم الذاكرةوهي المساحة المطلوبة لتخزين برنامج تنفيذ التعليمات (ROM) والبيانات (المعطياتالتي يتم معالجتها آنياً (RAM). عموماً، فإن مساحة الذاكرة المطلوبة تتعلق بالمعالج المستخدم والميزات المحيطية المترافقة معه وحجم البرنامج.
 استهلاك الطاقةهي من أهم الاعتبارات خصوصاً في الأجهزة النقالة التي تعمل على البطاريات، وتستعمل وحدة القياس mW/MIPS لتحديد كمية الطاقة المطلوبة تبعاً لسعة المعالجة، حيث أنه بازدياد سعة المعالجة تزداد كمية الطاقة المطلوبة لعمل المعالجعملياً، فإن الأنظمة التي تستهلك طاقة منخفضة تتميز بخصائص مرغوبة جداً مثلحرارة أقل، وزن أقل، حجم أصغر، تصميم ميكانيكي أبسطلذلك تستخدم المعالجات متعددة النوى (Multi-core Processors) في الأنظمة المدمجة التي تتطلب نظاماً منخفض الاستهلاك والحجم وذا سعة معالجة عالية.
كلفة التطويرهي كلفة تصميم الكيان الصلب (ES.HW) والبرمجيات المترافقة (ES.SW)، وتعرف أيضاً بالمصطلح NRE (Non-Recurring Engineering)i، وهي كلفة ثابتة تدفع لمرة واحدة فقط أثناء مرحلة تصميم النظام هذه الكلفة يتم توزيعها على عدد قطع الإنتاج.
كمية الإنتاجإن الموازنة بين كلفة الإنتاج وكلفة التطوير تتعلق مباشرة بكمية الإنتاج المطلوبة، إذ يتم توزيع الكلفة الثابتة على عدد العناصر المطلوبةأما من أجل تصميم ذي كمية محدودة من القطع؛ فإن كلفة التطوير لمثل هذا النظام ستكون كبيرة جداً.
حياة المنتجوهو العمر الافتراضي المتوقع لبقاء المنتج في الاستخدام الفعالإن هذا الاعتبار يؤثر مباشرة في جميع قرارات التصميم انطلاقاً من اختيار عناصر الكيان الصلب وصولاً إلى كلفة التطوير.
الوثوقيةوهي مقدرة النظام على الاستجابة في مختلف الظروف، وتتناسب الوثوقية طرداً مع كلفة النظام.

 التوحيد : اي وجود معايير تسمح لانواع مختلفة من الاشياء (Objects) بالتواصل مع بعضها وتكون هذه الاشياء ملتزمة ملتزمة بمعايير معينة سيزيد ذلك من قبول منتجنا من قبل الزبائن

التوافقية : يعني ان اجهزتنا يجب ان تمتلك القدرة للعمل مع اجهزة اخرى صنعت بتقنيات مختلفة ومن قبل شركات مختلفة
الاستقرارية : على الرغم من ان التكنولوجيا تتطور الا ان المستهلكين يطلبون اجهزة تعمل بشكل صحيح لفترة طويلة وبشكل مريح مثلا على مدى 50 سنة تطورت تكنولوجيا السيارات كثيرا لكن تجربة القيادة وكيف يمكننا ان نقود السيارة قد بقت ثابتة لم تتغير 
توفر النظام : يجب ان يكون النظام متوفر عند الحاجة اليه مثلا لو اردنا استخدام الهاتف المحمول ويحتاج هذا الهاتف 10 دقائق للاقلاع سيكون هذا الهاتف فاشل وغير مجدي
الحماية :من اهم الامور وخاصتا في انترنت الاشياء فهي تعني المحافظة على خصوصية مستخدمي النظام وكذلك المحافظة على البيانات اثناء انتقالها وضمان انتقالها بالوقت المناسب 
كفائة الاداء: ان مايهم الزبون هو الاداء ولايهمه كيف تم ذلك بل يبحث نحو اداء اعلى لذا يجب تحديد مواصفات التصميم فالزيادة فيها تعني استهلاك في الطاقة والكلفة والنقص فيها يؤدي الى قلة كفاءة المنتج لدى الزبون 
الصيانة : تعني ان الجهاز يجب ان يكون سهل الاستخدام واذا وجد فيه خلل يسهل اصلاحه ويسهل تحديث المنتج ايضا كاستبدال البرنامج القديم ببرنامج جديد يحقق افضل اداء 
وقت التسويق : هي فترة اقصاها بين (6-8) اشهر اذا تجاوزت فترة تصنيع هذا المنتج هذه المدة يفشل المنتج وتوجد امور تسرع من هذه المدة مثل استخدام middleware يسهل البرمجة وكذلك مثل استخدام برامج محاكاة ونمذجة كاللابفيو



الأحد، 22 فبراير 2015

بروتوكول النقل UART

UART

بروتوكل النقل التسلسي الغير متزامن


يعتبر بروتوكول النقل التسلسي الغير متزامن UART من اشهر البروتوكولات المستخدمة في التواصل بين عدة معالجات او بين المعالج والحاسوب هذا البروتوكول غير متزامن وتختلف سرعة الارسال حسب الطرفين وامكانياتهم لدعم سرع عالية من الارسال يوجد منفذين وحيدين في هذا البروتوكول هما منفذ الارسال TX ومنفذ الاستلام RX وعند ربط جهازين مع بعض يتم توصيل الTX للجهاز الاول مع الRX للجهاز الثاني وكذلك بالنسبة لTX الجهاز الثاني ويتم ارسال البيانات على شكل تتابعي من خلال مسجل ازاحة يدفع البتات واحد تلو الاخر حيث تكون عملية ارسال بايت عن طريق fram ثابت ومتفق عليه بين الطرفين وبسرعة ثابته يحتوي كل fram 
1-بت بداية الارسال 
2- بتات البيانات وتكون من 5 الى 8 بتات يحددها المستخدم عن طريق مسجل معين في كل متحكم وعادتا تكون 8 بت 
3- بت المساواة ويكون اما فردي او زوجي او غير موجود يستخدم للتاكد من ان البيانات قد استلمت بنجاح ويعتمد مبدء عمله على حساب عدد ال 1 في الرقم الثنائي 

اذا عند استخدام هذا البروتوكول يجب ضبط كل من المرسل والمستلم على نفس التهيئة حيث توجد مسجلات معينة يتم كتابة قيم فيها طبقا لما ورد في ورقة بيانات المتحكم الدقيق datasheet ويتم تحديد في هذه المسجلات كل من سرعة الارسال band rate وعدد بتات البيانات data bits وعدد بتات التوقف stop bits ونوع بت المساواة parity bit ويتم التعرف من قبل المتحكم على ان هنالك عملية استلام للبيانات اما من خلال قراءة علم flag يشير الى وجود بيانات في مسجل الاستلام الخاص بهذا البروتوكول حيث تتم قراءة هذا العلم بشكل دوري وعندما يكون هنالك بيانات يتم استقبالها وخزنها او عن طريق تفعيل المقاطعات حيث عندما تاتي بيانات عن طريق هذا البروتوكول تتم مقاطعة عمل المعالج ومعالجة البيانات الاتية ثم بعد الانتهاء يعود المعالج لاكمال مسيرته في تنفيذ البرنامج الرئيسي 

الاستخدامات 

كما قلنا ان هذا البروتوكول يستخدم للتواصل مع معالجات اخرى او حاسوب شخصي مثلا لو اردنا ربط متحكم مع موديل GPS سنتستخدم هذا البروتوكول ولو اردنا برمجة متحكم عن طريق الحاسوب الشخصي سوف نستخدم هذا البروتوكول وتتم عملية ربط المتحكم الى الحاسوب عن طريق منفذ DB9 الخاص بالاتصال التسلسلي حيث يعمل في برتوكول RS232 او عن طريق منفذ USB اذا عند ربط المتحكم مع الحاسوب سنستخدم هذا البروتوكول وسنحتاج لتحويله الى USB او الى RS232 
التحويل بين UART و RS232
اذا كنت لاتعرف تفاصيل بروتوكول RS232 اقرا المقالة هنا
اذا كان المتحكم 8 بت ويعمل بجهد 5 فولت فيمكن التحويل باستخدام MAX232 Chip وهنا التخطيط للدائرة المستخدمة 



وعند التحويل بين RS232 وUART لمتحكم يعمل بجهد 3.3 فولت سنستخدم MAX3232 Chip
وهنا التخطيط للدائرة المستخدمة




التحويل بين UART و USB

وهو المستخدم في الاردينو حيث يتم برمجة الاردينو عن طريق بروتوكول UART ومن خلال تحويله الى منفذ USB اما عن طريق CHIP خاصة مثل FT232 او عن طريق متحكم من سلسلة TINY وهنا سنوضح التخطيط لتحويل 



يمكن استخدام كل من MAX232 و FT232 للتحويل من USB الى SERIAL PORT مباشرتا حيث يكون بروتوكول UART وسيط بين عملتي التحويل 
صورة توضح ان ARDUINO UNO يحتوي على المتحكم ATMEGA 16U2 للتحويل من UART الى USB 


صورة اخرى توضح ان ARDUINO DUEMILANOVE يحتوي FT232 للتحويل بين UART و USB

السبت، 31 يناير 2015

Type Of ARM Cortex Family

Type Of ARM Cortex Family

ARM Cortex-A


هي العائلة المستخدمة لغرض معالجات التطبيقات المختلفة وتربط عادتا مع كميات ذاكرة كبيرة وتعمل بسرعة عالية هي مصممة لغرض التعامل مع كميات كبيرة من التطبيقات حيث يمكن تشغيل نظام تشغيل متكامل بواسطة معالجات هذه العائلة يمكن استخدامها كمعالجات رئيسية في اجهزة الموبايل والاجهزة اللوحية والكاميرات الرقمية والكثير من التطبيقات من القطع المشهورة المبنية على هذه العائلة من المعالجات هي 
Raspberry

ARM Cortex-M

معالجات هذه العائلة صممت لاجل الاستخدام في المتحكم الدقيق حيث كمية الذاكرة التي تتصل معها اقل من عائلة A وسرعتها ايضا اقل لكنها تتفوق بتوفير الطاقة ومن اقل المعالجات صرفا للطاقة في هذه العائلة هو المعالج ARM Cortex-M0 ثم ARM Cortex-M3 تستخدم ايضا في تطبيقات العتاد الصلب او كوصل بين معالج وعتاد صلب مثل اجهزة البلوتوث وغيرها 

ARM Cortex-R

تستخدم هذه العائلة في المعالجات التي تتطلب وقت حقيقي في المعالجة مثل الكثير من تطبيقات الانظمة المدمجة 
تحتوي كل عائلة على عدد من المعالجات التي تختلف فيما بينها في بعض المواصفات والاضافات 


هنا بعض الامثلة للوحات تطويرية مبنية على معالجات ARM Cortex

Arduino DUE
هي لوحة متحكم دقيق مبنية على المتحكم الدقيق من شركة ATMEL اسمه SAM3X8E والذي بدوره مبني على معالج ARM Cortex-M3 هذا المتحكم  32 بت ويعتبر الاول في سلسة اردينو من هذه الناحية حيث بقية لوحات اردينو 8 بت للاطلاع على تفاصيل القطعة هنا


MBED NXP LPC1768
قطعة متحكم مبنية على معالج ARM Cortex-M3
للاطلاع على تفاصيل هذ اللوحة هنا

 BEAGLEBONE BLACK
هذه القطعة عبارة عن حاسوب متكامل مبني على معالج ARM Cortex-A9 بسرعة 1GB يمكن تشغيل نظام اندرويد او لينكس او غيرها من الانظمة على هذه اللوحة وللاطلاع على تفاصيل اللوحة هنا

TMS570LS12
لوحة تطويرية لمتحكم دقيق مبنية على معالج ARM Cortex-R4F ومن شركة TEXAS INSTRUMENTS الشهيرة في مجال الانظمة المدمجة للاطلاع على تفاصيل اللوحة هنا


هذه امثلة بسيطة لبعض اللوحات التطويرية لكن هنالك الكثير الكثير من اللوحات ومن شركات مختلفة مثل TEESY 3.1
RASPBEERY
ODROID
PCDUINO
ARDUINO TRE



















السبت، 17 يناير 2015

شرح بروتوكول RS232



RS232

هو بروتوكول اتصال متسلسل يستخدم للربط بين جهازين الاول  DTE والثاني DCE
DTE  مثل جهاز الكومبيوتر الشخصي وال DCE
 مثل لوحة متحكم او مودم ويمكن ربط جهازين من نوع DTE معا بواسطته


 يتم ارسال البايت على شكل اطار بيانات يخضع ارسال كل بايت الى هذا الاطار
بت الارسال تكون قيمته 0 منطقي و8 بتات تمثل البايت المرسل وبت نهاية الارسال تكون قيمته 1 منطقي وقد يكون هناك 2 بت للاشارة الى الانتهاء من الارسال وهناك بت اختياري بت التاكد يمكن وضعه في الاطار او ازالته وله نوعان الاول زوجي فان هذا البت يكون 0 منطقي عندما تكون عدد الواحدات في البايت المرسل زوجي ويكون 1 منطقي عندما يكون عدد الواحدات في البايت المرسل فردي النوع الثاني فردي يكون هذا البت 0 منطقي عندما يكون عدد الواحدات في البايت المرسل فردي ويكون 1 منطقي عندما يكون عدد الواحدات في البايت المرسل زوجي وهذا الاطار للبيانات يكون مشابه بالضبط لبروتوكول UART باختلاف التمثيل للمنطق الرقمي بين الاثنين
ان المستويات المعيارية لهذا البروتوكول تختلف تماما عن ال
TTL حيث تمثل القيم المنطقية بمدى فولتية مختلف
المستوى المنطقي 0 يمثل بقيمة جهد تتراوح من +3 الى+25 ويسمى ب
Space
المستوى المنطقي 1 يمثل بقيمة جهد تتراوح من -3 الى-25 يسمى بMark

مستوى منطقي غير معرف يتراوح من +3 الى -3
يجب ان لاتتجاوز اعلى قيمة جهد +25 او -25 نسبة للنقطة الارضية وان اعلى تيار يجب ان لايتجاوز 500 ملي امبير

 

منفذ COM في الحاسوب 

يوجد في الحاسوب منفذ تسلسلي عند ربط الحاسوب بواسطة هذا البروتوكول سنستخدم هذا المنفذ ويتكون المنفذ من 9 اجزاء 


DCD يستخدم عند ربط مودم هاتف لكشف اشارة الرنين
RXD قطب استقبال البيانات الذي سوف نستخدم عند ربط جهازين بواسطة هذا البروتوكول
TXD قطب ارسال البيانات الذي سوف نستخدمه عند ربط جهازين بواسطة هذا البروتوكول
DTR قطب تحكم يشير الى ان الطرفية الاولى جاهزة للارسال
DSR قطب تحكم يشير الى ان الطرفية الثانية اتصلت مع الاولى
RTS قطب تحكم يخبر الطرفية الثانية ان البيانات لدى الاولى جاهزة ويفعل دائرة الاستقبال لدى الثانية
CTS قطب تحكم يخبر الطرفية الاولى بانه استلم اشارة RTS وانه جاهز لاستلام البيانات
RI يستخدم في حال وجود مودم لاخبار الجهاز الرئيسي ان هناك رنين
GND قطب الجهد الارضي 

عملية الارسال والاستلام

عند انشاء عملية ارسال بدون مصافحة فالعملية سهلة جدا نقوم بوصل طرفي الجهازين حيث يوصل TXD الاول الى RXD الثاني وبالعكس ويوصل الجهد الارضي لكل من الطرفين الى بعض 


المتحكم الدقيق لايدعم هذا البروتوكول لكن يدعم بروتوكول UART الذي يشابه هذا البروتوكول في اطار نقل البيانات لكن يجب ضبط نفس الاعدادت لكلا البروتوكولين بنفس الضبط وتتم العملية برمجيا ولكن هناك اختلاف وحيد هو ان UART يعنل بالقيم المنطقية TTL اي 1 منطقي +5 فولت و0 منطقي 0 فولت ولكن بروتوكول RS232 يعمل بقيم منطقية مختلفة تماما لذا يجب التحويل بين القيمتين لتتم المسالة بصورة صحيحة ويستعمل لذلك اما درات الكترونية مخصصة لهذا الشي اسمها MAX232 او يستخدم الترانزستور كمفتاح ليؤدي عملية التحويل بين القيم الممثلة للمنطق الرقمي 


وهنا دائرة التحويل باستخدام الترانزستور 


في حالة الاتصال بين الطرفين مع مصافحة يضاف الى ربط TXD و RXD وGND ربط الطرفين RTS ,CTS حيث يربط ال RTS في الجهاز الاول مع ال CTS في الجهاز الثاني وبالعكس تتم المصافحة بان يقوم الجهاز الاولى بتفعيل القطب CTS من اجل اعلام الطرفية الثانية بانها ستقوم بالارسال فتقوم الطرفية الثانية بالرد عليها بانها جاهزة عن طريق تفعيل القطب RTS وتبدء عملية ارسال البيانات في حالة كان الجهاز الثاني مشغول ولم يفعل القطب RTS يقوم الجهاز الاول باعادة الارسال بعد فترة زمنية او انتظار الجهاز الثاني لحين ارسال تفعيل القبول

مساؤى استخدام البروتوكول

1- مناسب للربط بين نظامين System To System اكثر من كونه قابل للربط بين شريحتين Chip To Chip  او بين شريحة وحساس Chip To Sensor  
2- معدل نقل البيانات منخفض جدا من اجل مسافة طويلة
3- يحتاج الى شريحة للتحويل المنطقي RS232 To TTL عند استخدامه 
4- غير قابل للتوسعة ويمكن ربطه فقط بين خادم وحيد وقائد وحيد Single Master /Single Slave

محاسن استخدام البروتوكول 

1- بروتوكول اتصال شائع الاستخدام في كثير من التطبيقات ومعتمد من قبل الكثير من الشركات
2- مسافة اتصال طويلة نسبيا حوالي 50 قدم عند معدل ارسال منخفض 
3- مناعة ضد الضجيج بسبب الجهد المرتفع نسبيا +25 -25   للمستويات المنطقية 
4- سهل البناء والبرمجة ومتوفر برمجيا وككيان صلب 

الجمعة، 16 يناير 2015

شرح بروتوكول SPI

SPI

هو بروتوكول من نوع Full Duplex اي يرسل ويستلم بنفس الوقت وتم تطويره من قبل شركة موتوريلا Motorola يختلف عن بروتوكول I2C في طريقة التعرف على الطرفيات المراد التخاطب معها حيث لايقوم بارسال عنوان بل يوجد ناقل خاص Select Chip يقوم بتفعيل الطرفية المراد التخاطب معها عندما يكون 0 منطقي  تفعل الطرفية وعندما يكون 1 منطقي يلغي تفعيل الطرفية هو اكثر البروتوكلات استعمالا في المتحكمات حيث تناسب سرعته ونقل بيانات كبيرة  يمكن ربط من 8 الى 12 جهاز بواسطة هذا البروتوكول على خط نقل واحد  يتشابه في مسالة الطول الاعظمي للناقل مع بروتوكول I2C  فكلاهما يمتلك طول خط نقل قصير مناسب لتطبيقات الداراة المطبوعة تصل سرعة النقل به الى حد 10mb لايملك الية للتعرف على ان البيانات وصلت كاملة او لا ولايملك الية للتعرف على ان الاجهزة الطرفية موجودة او تم ازالتها يمكن بناؤ هذا البروتوكول من الكيان الصلب وكذلك بصورة برمجية 

التركيب الداخلي لSPI

يوجد جهاز قائد Master   يتصل مع جهاز او عدة اجهزة خوادم Slave وتركيب الSPI عبارة عن مسجل ازاحة من من توالي الى توازي بطول 8 بت ويعتمد على اربعة خطوط للتخاطب مع الوحدات المحيطية 
 MOSI Master Out Slave In يكون هذا القطب خرج عندما يكون الجهاز Master  ويكون هذا القطب دخل عندما يكون الجهاز Slave
 MISO Master In Slave Out يكون هذا القطب دخل عندما يكون الجهاز Master  ويكون هذا القطب خرج عندما يكون الجهاز Slave
Serial Clock-Synchronization قطب التزامن والمسؤل عن توليده الMaster 
Slave Select قطب يخرج من الجهاز السيد Master ليحدد اي من الخوادم Slaves يتم التواصل معه اي هو قطب تفعيل يكون مفغل عندما يكون 0 منطقي ويحتاج كل جهاز خادم Slave الى خط تفعيل لذا عدد نواقل SPI تعتمد على عددالاجهزة المتصلة  
ان المسجلات الداخلية لكل من السيد Master والخادم Slave مرتبطة مع بعضها عن طريق الطرفين MISO و MOSI ويشكلان حلقة مغلقة حيث ينزاح بت من السيد وينزاح بت من الخادم في نفس النبضة الزمنية والصورة ستوضح العملية التي يندفع فيها بت ال الخرج ليحل محله بت جرت عليه عملية زحف بسبب دخول بت اخر من الدخل 

عند اكتمال عملية ارسال 8 بتات سنحصل على بايت جديد تم استلامه سواء من قبل السيد او الخادم فالعملية تجري باتجاهين وعندها يتم حفظ البايت المستلم وتبديله ببايت ليتم تزحيفه وارساله نلاحظ ان البنية لهذا البروتوكول جدا سهلة 

 انماط توصيل SPI

1-Daisy Chain SPI Configuration
في هذا النمط يتم ربط كل الاطراف MISO و MOSI  وSCLK مع بعضها لبعض لكل الخوادم Slaves ولكن تبقى اطراف التفعيل التي يبلغ عددها بعدد الخوادم Slaves تتوزع على كل الخوادم لتفعل اي واحد منهم حسب رغبة البروتوكول بالتخاطب مع الطرفيات ويلاحظ هنا انه في بنية SPI يكون هناك ناقل تفعيل واحد يمكن التعامل معه بالكيان الصلب اما عند ربط اكثر من خادم وظهور اكثر من ناقل تفعيل يجب التعامل معه برمجيا وضبط التفعيل
 

2-Independent Slave SPI Configuration
في هذا النمط يتم ربط مسجلات الخوادم مع بعضها بصورة متوالية اي يحصل ان نتخاطب ثلاث مسجلات خوادم ومسجل قائد حيث يتم ربط خرج الخادم الاول الى دخل الخادم الثاني وخرج الخادم الثاني الى دخل الخادم الثالث وخرج الخادم الثالث الى مسجل القائد وبالنتيجية نحصل على حلقة متوالية تحتوي 4 مسجلات ازاحة لذا عندما يرسل القائد 3 بايتات يتم دفعها بالتسلسل ليصبح اول بايت تم ارساله داخل الخادم الثالث وثاني بايت تم ارساله داخل مسجل الخادم الثاني واخر بايت تم ارساله داخل مسجل الخادم الاول عند هذا الربط يجب تفعيل كل الخوادم في نفس اللحظة الزمنية لذا عدد النواقل بين القائد والخوادم فقط اربعة وناقل التفعيل يوزع نفسه على الخوادم ويكون مفعلا دائما
 

الانماط الزمنية لSPI

توجد اربعة انماط زمنية لتعامل المتحكمات مع هذا البروتوكول ويجب تحديد واختيار نمط معين عن طريق مسجل خاص داخل المتحكم ويتم اختيار النمط برمجيا من قبل المتحكم وحسب توافق الطرفيات اي يجب قراءة ورقة البيانات للطرفية التي سوف يتم ربطها وبموجب ذلك يحدد نمط التوقيت من قبل المتحكم ويختلف في هذه الانماط الاربعة القطبية والطور لموجة الزمن وفي كل الانماط الاربعة يتم قراءة البيانات عند حافة زمنية صاعدة مثلا ويتم تغيرها عن الحافة الهابطة التي بعدها او بالعكس وهنا صورة توضح الانماط الاربعة 

الخط الاحمر يمثل الحافات الزمنية التي تجري فيها عملية القراءة والخط الاسود يمثل الحافات الزمنية التي تجري فيها عملية تغير البيانات المسالة سهلة جدا مجرد معرفة نمط الطرفية من ورقة البيانات وضبط المتحكم على نمط هذه الطرفية عن طريق مسجل تحكم خاص بهذا البروتوكول يتم معرفته من قراءة ورقة بيانات المتحكم 

يقصد بCPHA طور موجة الزمن والخط الاحمريمثل الوقت الذي تجري عنده قراءة البيانات والازرق خط الذي يمثل الوقت الذي تجري عنده عملية التزحيف

تطبيقات الSPI

توجد الكثير من الطرفيات التي تدعم التواصل بهذا البروتوكول وتوجد بعض الطرفيات التي تحتاج سرعة لاتستطيع التواصل ب I2C وانما يجب استخدام SPI للتواصل معها ومن اشهر الطرفيات التي تستخدم هذا البروتوكول بطاقات الذاكرة MMC
وكذلك كل من Serial EEPROM,LCD,Sensors,ADC,DAC,RTC,CAN Controller,RAM 

انواع الاتصالات

انواع الاتصالات

1- الاتصالات التفرعية (التوازي)


يكون عدد خطوط الارسال من 4 او 8 او 16 او 32 او 64 او 128 بت وتكون سرعة نقل البيانات عالية جدا لكن بمسافة محدودة حيث عند زيادة المسافة يحدث تشوية وضجيج بسبب سعات خطوط النقل مما يؤدي الى زحف الاشارة او تاخير نقلها ويستخدم هذا النوع من الاتصالات داخل المعالج الدقيق وكذلك في اللوحة الام في الحاسوب الشخصي حيث اتصال المعالج مع الذواكر وبقية الطرفيات يكون عن طريق اتصال تفرعي لانه يمتاز بالسرعة ويكون هذا النوع مكلف لو تم استخدامه الى مسافات بعيدة 


2-الاتصالات التسلسلية (التوالي)


يكون عدد خطوط الارسال اما 1 او2 او3 او4 او5 يستخدم هذا النوع على نطاق اوسع بكثير حيث يمتاز بمانعة عالية ضد الضجيج وينقل البيانات الى مسافات بعيدة وكلفته قليلة حيث عدد الاسلاك المستخدمة قليل

تصنف الاتصالات التسلسلية  الى صنفين

الاتصالات المتزامنة


يتالف بروتوكول الاتصال بهذا النوع من خطين على الاقل خط لنقل البيانات وخط لنقل نبضات التوقيت تتحدد سرعة نقل البيانات بعدد النبضات الزمنية حيث يتم استقبال البت عند كل حافة زمنية هابطة او صاعدة عند ازدياد طول الناقل  تحصل ازاحة في النبضات الزمنية 

الاتصالات الغير متزامنة 

لاتحتوي على نبضات زمنية ويتم ارسال البيانات حسب سرعة متعارف عليها بين المرسل والمستلم ازدياد طول الناقل لايوثر على عملية الارسال كما في الاتصالات المتزامنة وبنية هذا النوع  اسهل من بنية الاتصالات المتزامنة وكلفته اقل

اتجاهات الاتصال

1- (Simplex Communication)

هنا يكون اما مرسل اومستلم يقوم بوظيفته المحدد فقط مثلا صحن الاستقبال الفضائي يقوم بالاستقبال ولايقوم بشي غير ذلك

2-(Half Duplex)

هنا خط نقل وحيد يقوم مرة بالارسال ومرة اخرى بالاستلام ولايقوم بنفس الوقت بالارسال والاستلاك اي اتجاه واحد للارسال في نفس اللحظة الزمنية مثل بروتوكول I2C,USART

3-(Full Duplex)

هنا يوجد خط نقل خاص بالارسال وخط نقل اخر خاص بالاستلام ويحدث الارسال والاستلام بنفس الوقت اي اتجاهين للارسال في نفس اللحظة الزمنية مثل بروتوكول UART,SPI

وسنعرض في مقالات اخرى تفاصيل البروتوكولات يمكنك القراءة هنا
I2C,SPI,USART,UART,CAN,RS232

شرح بروتوكول CAN


  CAN Controller Area Network

لمحة تاريخية عن تطور هذا البروتوكول

هو بروتكول يستخدم للتواصل بين المتحكم الدقيق واجزاء السيارات وقد صمم خصيصا هذا البروتوكول لخدمة الانظمة المدمجة في السيارات وتم الاعلان عن هذا البروتوكول سنة 1983 من قبل شركة robert bosch  الالمانية وصدر رسميا من جمعية مهندسي السيارات سنة 1986 اصدرت الشركة المنتجة لهذا البروتوكول عدة اصدارات منه كان منها في سنة 1991 CAN2.0 ويتالف هذا الاصدار من جزئين CAN2.0A ويكون فيه عدد بتات التعريف 11 بت والاخر CAN2.0B وكان عدد بتات التعريف فيه 29 بت وهذا الثاني يكون اوسع من الاول في التعامل مع الطرفيات في عام 1993 اصدرت المنظمة الدولة للمعايير (ISO)  ثلاث معايير اساسية من هذا البروتوكول وقامت شركة  robert bosch باصدار معيار جديد لهذا البروتوكول هو CAN FD ويميزه انه متوافق مع معيار CAN2.0 اي يمكن للاجهزة الجديدة التعايش مع الاجهزة القديمة المصممة ل CAN2.0

التطبيقات لCAN 

قد تحتوي السيارة على اكثر من 70 وحدة كل واحدة منها متخصصة بعمل معين كالوسائد الهوائية ونظام المكابح وفتح النوافذ وغلق المرأة وغيرها الكثيرقد تكون هناك انظمة مستقلة بحد ذاتها كعملية شحن البطارية لكن معظم الانظمة  تحتاج الى ان تتواصل مع بعضها ولاجل سد حاجة هذه الطرفيات الكثيرة وضع بروتوكول can بسبب قلة تكلفة بعض وحدات تحكم بروتوكول CAN والمعالجات دخل هذا البوروتوكول في الكثير من التطبيقات مثل  الطيران والبحرية والطبية والاتمة الصناعية وغيرها


معمارية CAN


بروتوكول CAN يدعم عدة اجهزة قائد (Master) عندما درسنا بروتوكول SPI وجدنا انه يدعم جهاز قائد واحد هو المسؤل عن التحكم بسير عمل البروتوكول اما هنا فCAN يدعم وجود اكثر من جهاز ويكون مبدء معمارية CAN مبني على اساس العقدة (Nodes) التي يربط البروتوكول على الاقل بين اثنين منها تختلف العقد من حيث درجة التعقيد قد تحتوي مدخلات ومخرجات فقط وقد تحتوي حتى منافذ اتصال بالانترنت او USB حتى اما مبدء النقل فيتم عن طريق رسائل

مكونات العقدة

1-وحدة معالجة مركزية تقرر ماتعنيه الرسالة الواردة وما الرسائل التي تريد نقل 
2-اجهزة استشعار وتحكم ومحركات تربط الى وحدة المعالجة المركزية 
3-وحدة تحكم البروتوكول (CAN Controller)  يقوم باستلام البتات عن طريق الناقل ويحولها الى وحدة المعالجة عندما تكمل الرسالة  كذلك تقوم وحدة المعالجة المركزية بارسال رسائل الى متحكم البروتوكول ليقوم بنشرها عندما يكون الناقل خالي 
4- جهاز الارسال والاستقبال يقوم بتحويل البيانات من مستوى CAN Bus الى مستوى تفهمه وحدة تحكم البروتوكول عند الاستلام ويقوم بتحويل البيانات من مستوى وحدة تحكم البروتوكول الى مستوى CAN Bus عند الارسال 
كل عقدة قادرة على الارسال او الاستلام لكن ليس بنفس الوقت فكل رسالة تحمل معرف متكون اما من 11 بت او من 29 بت يتم  معرفة اولوية الرسالة حسب هذا المعرف 

طريقة الارسال والاستلام

كل العقد مربوطة مع بعضها البعض بواسطة ناقل بروتوكول CAN الذي يتكون من سلكين مجدولين واحدا فوق الاخر وهي اما في حالة ارسال او في حالة استلاك وهناك ماينظم هذه العملية في العقدة كما ذكرنا لكن المشكلة هي عندما يقوم جهازين بالارسال في نفس الوقت هنا يجب ان توجد تقنية لتاخير الارسال من قبل العقدة الاقل اهمية وهنا ياتي دور بتات المعرف سناخذ مثال عندما تقوم عقدة بالارسال تمتلك رقم معرف هو 16 وعقدة اخرى تمتلك رقم معرف 15 بنفس الوقت سيتم الارسال من قبل العقدة التي تمتلك الرقم 15 وليس 16 وذلك يتم لان اسبقية ال15 قبل ال16 لناخذ المسالة عمليا وفي نظام العد الثنائي
node 15=00000001111
node 16=00000010000
عندما يبدء الارسال سوف يصدر بت بداية الارسال ثم رقم المعرف سيرسل كل من العقدة 15 و16 نفس الرقم الى حد البت رقم اربعة سترسل العقدة 16 رقم واحد منطقي وترسل العقدة رقم 15 صفر منطقي وعندما تلاحظ العقدة رقم 16 انه تلاشى الواحد المنقي الذي قامت بارساله بسبب التصادم الذي حصل عندها تعلم انه هناك عملية ارسال من عقدة تتفوق عليها بالاسبقية وتوقف ارسال رسالتها الى حين انتهاء تلك العقدة لذا العقدة التي تحمل معرف رقم اقل هي التي تفوز في عملية الارسال دائما يجب ان يكون لكل عقدة معرف خاص بها ولا يجب ان يتكرر الا وسوف تحدث لدينا مشاكل في النظام

بت التوقيت

هذا البروتوكول هو بروتوكول غير متزامن اي لايحتوي اشارة زمن يعمل بموجبها لذا يجب على كل العقد في هذا البروتوكول ان تعمل بنفس السرعة في التعامل مع البت لكن بسبب الضجيج وزحف الطور وسماحية الهزاز الكرستالي حيث كل عقدة تمتلك هزاز كرستالي خاص بها وقد تكون درجة الحرارة المعرضة لها هذه العقدة متغيرة حسب مكانها مما يؤثر على سرعة الارسال قد لايكون هناك توافق قياسي في بعض الاحيان في التعامل مع البت المرسل وقراءته لذا يجب ايجاد وسيلة لمزامنة العقد كي يعمل النظام بصورة صحيحة ويستخدم لذلك بت المزامنة وهو يتكون من اربعة قطع الاولى قطعة المزامنة والثانية قطعة زمن الانتشار قطعة عازل الطور الاولى وقطعة عازل الطور الثانية كل قطعة مكونة من كمات زمنية محددة طول هذه الوحدة الزمنية الواحدة يحدد عن طريق سرعة تزامن متحكم CAN  وكذلك سرعة نقل المقسم الترددي 
 Tquanta=Fosc/BRB 
 الدخول في تفاصيل هذا الامر هو طويل نوعا ما لكن عن طريق بت التوقيت يتم حساب فارق الزمن بين العقد لالغاء الفروق الزمنية التي ذكرنا بعض اسبابها 

 CAN Frame

هذا البروتوكول حاله حال غيره من بروتوكولات الشبكات يمتلك وبروتوكول CAN يعرف في اول طبقتين الذين هما طبقة Data Link وPhysical Layer وهو بروتوكول تفاضلي اي يتعرف على القيم المنطقية من خلال فرق الاشارة بين طرفين احدهما اسمه Can_High والاخر Can_Low ويستعمل في خط النقل سلك مجدول وكلما طال السلك قلت السرعة


سرعة هذا البروتوكول نحنا من نقوم بتحديدها عن طريق سرعة العقد والبعد وفي نظام معين تستخدم عدة سرع لهذا البروتوكول واعلى سرعة يمكننا ان نحققها هي 1mbps وان نوع السلك المستخدم له تاثير على السرعة

الاطراف التي يحتاجها البروتوكول هي اربعة طرفي البروتوكول نفسه وطرفي التغذية بالجهد وتوضع مقاومة في كل طرف من اطراف السلكين لمتنع من ارتداد الموجة المنتشرة عبر ناقل البروتوكول

 القيمة المنطقية صفر في هذا البروتوكول تحدث عندما يكون جهد كل من CAN_High و CAN_Low نفس القيمة هي 2.5 فولت وتسمى هذه الحالة ب Recessive والقيمة المنطقية واحد تحدث عندما يكون الجهد في الطرف CAN_High هو 3.5 فولت والجهد في الطرف  CAN_Low هو 1.5 فولت وتسمى هذه الحالة بDominant 


 كما ذكرنا عند بداية المقال ان هنالك معيارين هما CAN2.0A و CAN2.0B وان الاختلاف بينهم في عدد بتات المعرف كذلك في يختلف شكل الرسالة المرسلة في كل واحد منهم اختلافا بسيطا وتوجد اربعة انواع من الرسائل التي ترسل في هذا البروتوكول
1-رسالة البيانات تستخدم لارسال بيانات الفعلية وتوجد منها شكلين كما اسلفنا بسبب المعيارين CAN2.0A And B



هنا عندما نقول 1 منطقي نقصد به Dominant   وعندما نقول 0 منطقي نقصد به Recessive  وقد استعملنا مصطلح 0 و1 منطقي للتوضيح والسهولة
اول بت هو يدل على بداية ارسال الرسالة
البتات ذات االلون الاخضر هي خاصة بالمعرف وتحدد بموجبها اسبقية الرسائل التي ترسل من العقد ولك عقدة معرف خاص لايمكن ان يكرر في عقدة اخرى وعددها هنا 11 بت
البت باللون الازرق الذي يحدد رسالة المناطق البعيدة وتكون قيمته Dominant  اي 

1 منطقي في رسالة البيانات

هذا البت الاول من اللون الابيض وظيفته تحديد عدد بتات المعرف هل هي 11 بت ام 29 بت وتكون قيمته Dominant اي 1 منطقي في هذه الحالة حالة 11 بت طول المعرف
البت الثاني من اللون الابيض هو محجوز ويجب ان تكون قيمته 1 منطقي
البتات الاربعة باللون الاصفر وظيفتها تحديد طول البيانات المرسلة من 0 الى 8 بايت
البتات باللون الاحمر تحمل البيانات المرسلة عبر الرسالة
بتات CRC وهي اختبار التكرار الدوري حيث تقوم بالكشف عن الاخطاء الرقمية وتستخدم عادتا في الشبكات ولها طرق حساب رياضية وعدد بتاتها هي 15 بت
بت محدد CRC ويجب ان يكون Recessive
بت التاكد ACK يقوم جهاز الارسال بارساله Recessive وياكده اي جهاز مستلم بDominant
محدد بت التاكد ACK يجب ان يكون Recessive
بتات نهاية الرسالة وعددها 7 ويجب ان تكون Recessive
2-رسالة البعد  للتاكد من وصول البيانات يجاب بها على المرسل وبنفس المعرف


3-رسالة الخطا ترسل من العقدة التي تستلم خطا معين
4-رسالة الامتلاء ترسل من العقدة لوضع تاخير زمني بين الرسائل المرسلة 

بالاضافة لوجود متحكمات تدعم بروتوكول CAN كذلك توجد بعض المحيطيات التي تمكن المتحكمات من التواصل مع هذا البروتوكول ومن ضمنها غطاء على الاردينو وهناك عدة شركات منتجة لهذه المحيطيات