สารบัญ:

อินเตอร์เฟส STM32 CAN: 7 ขั้นตอน
อินเตอร์เฟส STM32 CAN: 7 ขั้นตอน

วีดีโอ: อินเตอร์เฟส STM32 CAN: 7 ขั้นตอน

วีดีโอ: อินเตอร์เฟส STM32 CAN: 7 ขั้นตอน
วีดีโอ: Creating STM32 driver for TM1637 7-segment display in STM32CubeIDE from scratch 2024, กรกฎาคม
Anonim
อินเตอร์เฟส STM32 CAN
อินเตอร์เฟส STM32 CAN

Controller Area Network bus หรือ CAN bus เป็นโปรโตคอลการสื่อสารที่มีประสิทธิภาพมาก เนื่องจากมีความสามารถด้านความเร็วสูง ความน่าเชื่อถือในระยะไกล และการป้องกันสัญญาณรบกวน ด้วยเหตุผลเหล่านี้ การสื่อสาร CAN จึงเป็นมาตรฐานในเทคโนโลยียานยนต์และสภาพแวดล้อมที่มีเสียงรบกวนสูง อุปกรณ์บน CAN บัสเรียกว่าโหนด โหนดทั้งหมดบน CAN บัสเชื่อมต่อแบบขนาน หมายความว่าแต่ละโหนดเชื่อมต่อกับโหนดอื่นๆ ทั้งหมดในเครือข่าย บัส CAN เดียวสามารถมีโหนดได้สูงสุด 115 โหนดในคราวเดียว ขึ้นอยู่กับอัตราการส่งข้อความ แต่สำหรับแอปพลิเคชันส่วนใหญ่ ขอแนะนำให้มีอุปกรณ์สูงสุด 32 เครื่อง ขอแนะนำให้รักษาความยาวระหว่างโหนดแรกและโหนดสุดท้ายห่างกันไม่เกิน 40 เมตร

บทแนะนำทีละขั้นตอนนี้จะแสดงวิธีตั้งค่าโหนด CAN โดยใช้ไมโครคอนโทรลเลอร์ STM32 รวมถึงวงจรและโค้ด C อย่างง่ายเพื่ออ่านและเขียนไปยัง CAN บัส

เสบียง

สำหรับแต่ละโหนด CAN:

  • 1x กระดานฝ่าวงล้อม STM32 (นิวคลีโอ, ยาเม็ดสีน้ำเงิน, อื่นๆ)
  • 1x MCP2551 CAN ตัวรับส่งสัญญาณ IC
  • ตัวเก็บประจุ 1x 0.1µF
  • ตัวต้านทาน 1x120Ω
  • ตัวต้านทาน 1x1kΩ
  • อินพุตที่อ่านได้ 1+ รายการ (ปุ่ม สวิตช์ โพเทนชิออมิเตอร์ ฯลฯ) หรือเอาต์พุต (LED, MOSFET เป็นต้น)
  • 1x ขั้วต่อ Dsub9

ขั้นตอนที่ 1: วงจรเครื่องรับส่งสัญญาณ

วงจรเครื่องรับส่งสัญญาณ
วงจรเครื่องรับส่งสัญญาณ

ในการสื่อสารกับ CAN บัส เราจะใช้ IC ตัวรับส่งสัญญาณ MCP2551 CAN 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 ในตัว ชิป IC MCP2515 จะต้องแปลงโปรโตคอลข้อความอื่นเป็น 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 เราเขียนของเราเอง ซึ่งสามารถพบได้ใน github ของเราที่นี่ เราจะให้ภาพรวมคร่าวๆ ของกระบวนการอ่าน/เขียน

หากต้องการอ่านจาก CAN บัส เราต้องทราบ ID ของข้อความ CAN ก่อน ทุกข้อความควรมี ID ที่ไม่ซ้ำกัน โดย ID ที่ต่ำกว่าจะมีลำดับความสำคัญสูงกว่า ข้อมูลโค้ดที่แสดงที่นี่กำลังรอข้อความ CAN ที่มี ID 0x622 ในระบบของเรา หากบิตแรกของไบต์ที่ 6 สูง เราต้องการตั้งค่าพิน A10 ให้สูง

เมื่อเขียนข้อความ CAN เราต้องจำไว้ว่าข้อความ CAN เป็นแบบหลายไบต์ แต่ละข้อความที่เขียนต้องมี ID และความยาว ในตัวอย่างที่สองของโค้ดที่แสดง เราเขียนข้อมูลไปยังแต่ละไบต์ จากนั้นจึงส่งข้อความ (พารามิเตอร์ ID และความยาวถูกกำหนดไว้ก่อนหน้าในโค้ด)

ขั้นตอนที่ 3: เชื่อมต่อโหนด

การเชื่อมต่อโหนด
การเชื่อมต่อโหนด

เมื่อเชื่อมต่อโหนด CAN หลายโหนด ควรให้ความสนใจกับความยาวของสายเคเบิลอย่างระมัดระวัง โหนดที่ไกลที่สุดสองโหนดสามารถอยู่ห่างกันได้ถึง 40 เมตร โหนดกลางที่เชื่อมต่อกับรถบัสควรอยู่ในระยะ 50 ซม. ของสายรถประจำทางหลัก

การเชื่อมต่อ CAN เป็นไปตามมาตรฐานอุตสาหกรรมของการใช้ตัวเชื่อมต่อ Dsub9 กับสาย CANL ที่ขา 2 และสาย CANH บนพิน 7 บรรทัดตัวเลือก CANGND สามารถไปที่พิน 3

ขั้นตอนที่ 4: สร้าง PCB

ทำ PCB
ทำ PCB

เมื่อกำหนดเส้นทางสัญญาณ CAN บน PCB โปรดจำไว้ว่า CAN เป็นสัญญาณที่แตกต่างกัน ดังนั้น ควรปฏิบัติตามแนวทางการกำหนดเส้นทางสำหรับ CANH และ CANL อย่างระมัดระวัง

ขั้นตอนที่ 5: การขยายบอร์ด

การขยายคณะกรรมการ
การขยายคณะกรรมการ

รวมโหนดเพิ่มเติมเข้าด้วยกัน เพิ่มอินพุต/เอาต์พุต และเชื่อมต่อพิน CANH และ CANL ทั้งหมด โปรดทราบว่า STM32 แต่ละตัวหรือไมโครคอนโทรลเลอร์อื่นๆ ต้องใช้ชิป MCP2551 ของตัวเอง ไม่สามารถแบ่งปันได้

จากที่กล่าวมา ให้พยายามทำให้ PCB ของคุณเล็กกว่าที่แสดงที่นี่

ขั้นตอนที่ 6: สั่งซื้อ PCB ของคุณจาก JLCPCB

สั่งซื้อ PCB ของคุณจาก JLCPCB
สั่งซื้อ PCB ของคุณจาก JLCPCB

JLCPCB ให้บริการที่รวดเร็วและมีคุณภาพสูงในราคาที่สมเหตุสมผล รับ 5 กระดาน สีใดก็ได้พร้อมการปรับแต่งมากมายในราคาเพียง $2! และถ้าเป็นการสั่งซื้อครั้งแรก รับ 10 แผงในราคาเท่ากัน!

เพียงอัปโหลดเกอร์เบอร์ของคุณแล้วรับใบเสนอราคาทันที! ส่งคำสั่งซื้อของคุณและบอร์ดของคุณจะได้รับการตรวจสอบเพื่อการผลิตภายในหนึ่งชั่วโมง เมื่อคุณชำระเงินแล้ว คุณสามารถคาดหวังบอร์ดคุณภาพสูงของคุณได้ภายในสามวัน!

ตรวจสอบที่นี่

ขั้นตอนที่ 7: รับบอร์ดของคุณ

รับบอร์ดของคุณ!
รับบอร์ดของคุณ!

ขอแสดงความชื่นชมอย่างมากต่อ JLCPCB สำหรับการสนับสนุนโครงการนี้ JLCPCB (ShenzhenJLC Electronics Co., Ltd.) เป็นองค์กรต้นแบบ PCB ที่ใหญ่ที่สุดในประเทศจีนและเป็นผู้ผลิตไฮเทคที่เชี่ยวชาญด้านการสร้างต้นแบบ PCB อย่างรวดเร็วและการผลิต PCB แบบกลุ่มย่อย พวกเขาใจดีพอที่จะจัดหา PCB ใหม่ให้กับ UBC Solar สำหรับรถแข่งที่ขับเคลื่อนด้วยพลังงานแสงอาทิตย์ของเรา เราวางคำสั่งซื้อของเราในวันศุกร์และได้รับบอร์ดในวันพุธ!

แนะนำ: