DIY: Arduino CAN Bus Sniffer

سلام عليكم

النهاردة معانا مقال جديد مهم لأي حد ( مبتدىء ) وحابب يجرب في الـ CAN Bus ومحتاج Tools تساعده في انه يعمل Sniffing للـ CAN Bus. الـ Tools دي أكيد هاتفيدك اكتر في الـ Debugging. المميز هنا ان سعر الـ Tools دي في متناول الجميع.

أول حاجة هاتكلم عنها، معنى كلمة Sniffing. كلمة Sniffing معناها انك عاوز تتنصت ( أو ترى ) البيانات التي يتم مشاركتها بين جهازين أو أكثر ( دون التأثير عليهم ).

صورة توضح معنى الـ Sniffnig

في الصورة التالية هاتلاقوني موصل Arduino Nano + MCP2515 & CAN Bus Transceiver board مع بعض. هي هياها زي الـ Arduino Shield CAN BUS (OBD) Shield بالظبط ( ممكن تستخدم أي حاجة منهم ):

Arduino Nano + MCP2515 & CAN Bus Transceiver board

Arduino Shield CAN BUS (OBD) Shield

MCP2515 & CAN Bus Transceiver board

احنا كلنا عارفين ان عائلات الـ AVR في السوق المحلي عندنا مافيهاش CAN Bus Peripheral وأغلبنا بيسيب الـ AVR ويتجه للـ ARM لو حابب يجرب الـ CAN Protocol لكن الـ MCP2515 بتوفرلك ده في Chip خارجية تقدر تكلمها بالـ SPI. عارف إن في AVR Families فيها الـ CAN Bus Peripheral لكن مش متواجدة هنا في السوق للأسف.

الجديد في الموضوع بقى ان في Arduino Library اسمها CAN Hacker. الـ Library دي فيها مجموعة Examples مجرد تعملها Flashing على بوردة الأردوينو هاتسمحلك انك تعمل Sniffer بالـ MCP2515 ( هاتخليك تقرأ الداتا وكمان لو حبيت تكتب داتا على الـ Bus وكمان بتعمل Logging و Triggering على الداتا ) وفي GUI Software جاهز بيكلم الـ Arduino Board ( هاتلاقوا صورته تحت ) !! ????

CAN Hacker Software

ممكن تعمل Prototype حتى ولو ب Atmega328 + USB To TTL ومعاه حبة كمبوننت بسيطة وتحطه في Project Box وتستخدمه ك Tool ليك. الحلو في الموضوع ان الـ MCP2515 & CAN Bus Transceiver board لقيتها بتتباع ب 75 جنيه هنا في مصر.

كمان لو انت حابب تعمل Fast Prototypes لحاجة تساعدك في التعلم هاتلاقي Libraries تانية للـ MCP2515 تخليك تقرأ أو تكتب على الـ CAN Bus وكل ده ياخد منك دقائق معدودة. أكيد كل واحد فينا عنده كام بوردة أردوينو عنده ( لكن نادراً انك تلاقي أكتر من بوردة ARM عندك ف زيدنا في دقيقنا ?? ).

تفاصيل الـ CAN Hacker Library: هنا

تفاصيل الـ MCP2515 Library وطريقة توصيل الموديول: هنا

فيديو ل واحد جرب الموضوع ده على عربية ( ياريت تاخد بالك ان العربية مش لعبة ) ? :

نفس الموضوع بردو تقدر تعمله بالـ RaspberryPi + MCP2515 & MCP2551 Module. هاتلاقوا Python Scripts مالية النت.

ياريت كل واحد هايستخدم الـ CAN Hacker مع أي عربية يكون حذر وعارف هو بيعمل إيه. انا مش مسئول عن أي أضرار. بالفعل لو انت عملت Reverse Engineering للـ CAN Protocol’s Data انت تقدر تخلي الميكروكونترولر بيتاعك يكلم الـ ECU بيتاع العربية عادي وتخليه ياخد قراية السينسورات. وممكن تاخد قطع غيار من العربية وتخلي الميكروكونترولر يكلمها بشكل منفصل.

أنا عملت شرح وافي بكل الخطوات اللي عملتها عشان أشغل الـ CAN Sniffer وطريقة توصيله بكامل التفاصيل بحيث لو في أي حد مبتدىء بيجرب مايعطلشي في أي خطوة.

ده لينك الـ Repository على Github: هنا
 
وإن شاء الله في البوست الجاي هأعمل تجربة كاملة بحيث اني ابعت CAN Frame من Device واستقبله من الـ Sniffer.
ولو في أي أسئلة أو اقتراحات ماعنديش أي مانع.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

أعلى ↑