جدول المحتويات:

واجهة يمكن لـ STM32: 7 خطوات
واجهة يمكن لـ STM32: 7 خطوات

فيديو: واجهة يمكن لـ STM32: 7 خطوات

فيديو: واجهة يمكن لـ STM32: 7 خطوات
فيديو: Controller Area Network(CAN) programming Tutorial 17 : Coding for CAN data transmission 2024, شهر نوفمبر
Anonim
يمكن واجهة STM32
يمكن واجهة STM32

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

سيوضح لك هذا البرنامج التعليمي خطوة بخطوة كيفية إعداد عقدة CAN باستخدام متحكم STM32 ، بما في ذلك الدائرة ورمز C البسيط للقراءة والكتابة إلى ناقل CAN

اللوازم

لكل عقدة CAN:

  • 1x STM32 لوح اندلاع (Nucleo ، Blue Pill ، آخرون)
  • 1x MCP2551 CAN جهاز الإرسال والاستقبال IC
  • 1x 0.1 درجة فهرنهايت مكثف
  • 1x 120Ω المقاوم
  • 1x 1kΩ المقاوم
  • 1+ إدخال قابل للقراءة (زر ، مفتاح ، مقياس جهد ، إلخ) أو خرج (LED ، MOSFET ، إلخ.)
  • 1x موصل Dsub9

الخطوة 1: دائرة جهاز الإرسال والاستقبال

دائرة جهاز الإرسال والاستقبال
دائرة جهاز الإرسال والاستقبال

للتواصل مع ناقل CAN ، سوف نستخدم MCP2551 CAN جهاز الإرسال والاستقبال IC. يعمل IC كزوج وسيط للإرسال / الاستقبال لتوصيل STM32 بحافلة CAN. تعد الدائرة الخاصة بإعداد IC هذا بسيطة للغاية ، ولكن هناك بعض الأشياء التي يجب ملاحظتها:

  • يمكن أن ينتقل CAN_RX (الدبوس 4) و CAN_TX (الدبوس 1) على شريحة MCP2551 فقط إلى دبابيس معينة على STM32.

    • على STM32F1 Nucleo ، قم بتوصيل خط RX بدبوس PB8 وخط TX بدبوس PB9.
    • على الحبة الزرقاء STM32F1 ، قم بتوصيل RX بدبوس PA11 و TX لتثبيت PA12.
    • لاحظ أن تعيينات الدبوس هذه لها بدائل. ارجع إلى أدلة وحدة التحكم الدقيقة لتحديد المسامير القادرة على CAN_RD و CAN_TD
    • إذا كنت تستخدم Arduino أو لوحة بدون اتصال CAN مدمج ، فستكون شريحة MCP2515 IC مطلوبة لتحويل بروتوكولات الرسائل الأخرى إلى CAN.
  • يجب توصيل دبوس CANL بمسامير CANL الأخرى لعقد الناقل الأخرى. الشيء نفسه ينطبق على دبابيس CANH.
  • مطلوب المقاوم 120Ω عبر دبابيس CANH و CANL فقط إذا كانت العقدة عقدة طرفية. هذا يعني أنه في نهاية توصيل الأسلاك المتوازية. بمعنى آخر ، يجب أن يحتوي ناقل CAN على مقاومين 120 درجة فقط ، ويجب أن يكونا بعيدًا عن بعضهما البعض قدر الإمكان.
  • أخيرًا ، يمكن استبدال المقاوم 1kΩ الموجود على RS (دبوس 8) بمقاوم 10kΩ للتحكم في وقت صعود / هبوط بتات رسالة CAN. ارجع إلى ورقة بيانات رقاقة MCP2551 لمزيد من التفاصيل.

الخطوة 2: القراءة والكتابة إلى CAN Bus

القراءة والكتابة إلى CAN Bus
القراءة والكتابة إلى CAN Bus

الآن بعد أن تم توصيل دائرة الإرسال والاستقبال بـ STM32 ، يمكننا البدء في كتابة الرسائل إلى ناقل CAN. لن يتعمق هذا الدليل الإرشادي في رمز STM32. ومع ذلك ، تأكد من مراجعة الكود الخاص بنا للحصول على أمثلة هنا. سيتطلب استخدام STM32 كعقدة CAN ملف رأس CAN. كتبنا منطقتنا ، والتي يمكن العثور عليها على جيثب لدينا هنا. هنا ، سنقدم لمحة موجزة عن عملية القراءة / الكتابة.

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

عند كتابة رسالة CAN ، يجب أن نتذكر أن رسائل CAN متعددة البايت. يجب أن يكون لكل رسالة مكتوبة معرف وطول. في المقتطف الثاني من الكود المعروض ، نكتب البيانات إلى كل بايت ، ثم نرسل الرسالة (معرف ومعلمات الطول محددة مسبقًا في الكود).

الخطوة 3: توصيل العقد

ربط العقد
ربط العقد

عند توصيل عدة عُقد CAN ، يجب الانتباه جيدًا لطول الكابلات. يمكن أن يصل ابعد عقدتين إلى مسافة تصل إلى 40 مترًا بعيدًا عن بعضهما البعض. يجب أن تكون العقد الوسطى المتصلة بالحافلة على بعد 50 سم من خطوط الحافلات الرئيسية.

يمكن أن تتبع اتصالات CAN معيارًا صناعيًا لاستخدام موصل Dsub9 مع خط CANL على السن 2 وخط CANH على pin7. يمكن أن ينتقل خط CANGND إلى الدبوس 3.

الخطوة 4: اصنع ثنائي الفينيل متعدد الكلور

اصنع ثنائي الفينيل متعدد الكلور
اصنع ثنائي الفينيل متعدد الكلور

عند توجيه إشارات CAN على PCB ، تذكر أن CAN هي إشارة تفاضلية ، وبالتالي ، يجب اتباع إرشادات التوجيه الخاصة بـ CANH و CANL بعناية.

الخطوة 5: توسيع المجلس

توسيع المجلس
توسيع المجلس

ارمي بعض العقد الأخرى معًا ، وأضف بعض المدخلات / المخرجات ، وقم بتوصيل جميع دبابيس CANH و CANL الخاصة بهم. لاحظ أن كل STM32 أو متحكم آخر يتطلب شريحة MCP2551 الخاصة به ؛ لا يمكن مشاركتها.

مع ذلك ، حاول أن تجعل ثنائي الفينيل متعدد الكلور أصغر من المعروض هنا

الخطوة 6: اطلب ثنائي الفينيل متعدد الكلور من JLCPCB

اطلب ثنائي الفينيل متعدد الكلور من JLCPCB
اطلب ثنائي الفينيل متعدد الكلور من JLCPCB

تقدم JLCPCB خدمة سريعة وعالية الجودة بأسعار معقولة جدًا. احصل على 5 لوحات ، أي لون مع الكثير من التخصيص ، مقابل 2 دولار فقط! وإذا كان هذا هو طلبك الأول ، فاحصل على 10 لوحات بنفس السعر!

فقط قم بتحميل الجربرز الخاص بك واحصل على عرض أسعار فوري! أرسل طلبك وستتم مراجعة لوحاتك للإنتاج في غضون ساعة. بمجرد الدفع ، يمكنك توقع لوحاتك عالية الجودة في غضون ثلاثة أيام!

تحقق من ذلك هنا

الخطوة 7: احصل على المجالس الخاصة بك

احصل على المجالس الخاصة بك!
احصل على المجالس الخاصة بك!

صيحة ضخمة لـ JLCPCB لرعايتها هذا المشروع. JLCPCB (ShenzhenJLC Electronics Co. ، Ltd.) ، هي أكبر مؤسسة نموذجية لثنائي الفينيل متعدد الكلور في الصين وهي شركة تصنيع عالية التقنية متخصصة في النماذج الأولية السريعة لثنائي الفينيل متعدد الكلور وإنتاج ثنائي الفينيل متعدد الكلور على دفعات صغيرة. لقد كانوا لطفاء بما يكفي لتزويد UBC Solar بمركبات ثنائي الفينيل متعدد الكلور الجديدة لسيارتنا التي تعمل بالطاقة الشمسية. قدمنا طلبنا يوم الجمعة وحصلنا على اللوحات يوم الأربعاء!

موصى به: