โปรเจ็กต์ can2040 : การใช้งานซอฟต์แวร์ ของ CAN bus สำหรับ Raspberry Pi RP2040

โปรเจ็กต์ can2040 เป็นการใช้งานซอฟต์แวร์ ของ CAN bus ซึ่งสามารถใช้กับไมโครคอนโทรลเลอร์ Raspberry Pi RP2040 โดยใช้ Programmable I/O (PIO) เพื่อให้สามารถอ่านและเขียน ตามมาตรฐาน CAN 2.0B  data frames ที่อัตราสูงสุด 1 เมกะบิตต่อวินาที

Kevin O’Connor ผู้พัฒนาโปรเจ็กต์ can2040 อธิบายเพิ่มเติมว่า เครื่องมือนี้สามารถใช้บล็อกฮาร์ดแวร์หนึ่งในสองบล็อกของ RP2040 PIO ได้ ดังนั้นจึงทำให้สามารถใช้อินเทอร์เฟซ CAN bus อิสระสองตัวบนชิป Raspberry Pi RP2040 ตัวเดียวได้

Raspberry-Pi-RP2040-can2040-software-CAN-Bus

ในระหว่างกระบวนการนี้ การประมวลผลบางอย่างจะดำเนินการบนแกน Arm Cortex-M0+ ของไมโครคอนโทรลเลอร์ Raspberry Pi RP2040 ด้วย เวลาในการประมวลผลขึ้นอยู่กับปริมาณการรับส่งข้อมูลของบัส และเมื่อ CAN bus ที่อิ่มตัวเต็มที่ทำงานด้วยอัตราที่เร็วที่สุดที่รองรับที่ 1เมกะบิตต่อวินาที อาจใช้ได้ถึงประมาณ 30% ของคอร์นั้นเมื่อโอเวอร์คล็อกที่ 125MHz ดังนั้นจึงควรมีงานอื่นๆ ที่อาจกำลังทำงานอยู่บนระบบเหลืออีกมาก ขณะนี้ฉันไม่พบข้อมูลใดๆ เกี่ยวกับ RAM และการใช้พื้นที่เก็บข้อมูล

ก่อนหน้านี้เราเคยเห็นฟังก์ชันการทำงานฮาร์ดแวร์ของ CAN สำหร้บไมโครคอนโทรลเลอร์ Raspberry Pi RP2040 เช่น CANPico และ CanBed RP2040 ซึ่งใช้ตัว CAN controller MCP2515 หรือ MCP2518FD และใช้ CAN transceiver MCP2551 หรือ MCP2562FD และจากสิ่งที่ฉันเข้าใจ โค้ด can2040 ไม่จำเป็นต้องใช้ CAN controller เพียงแค่เชื่อมต่อ CAN receiver กับ Raspberry Pi Pico หรือบอร์ด RP2040 อื่นๆ ด้วยวิธีนี้ การใช้งานซอฟต์แวร์ CAN bus ของ RP2040 ควรจะสามารถทำงานร่วมกับ CAN bus อื่นๆ ที่ใช้ฮาร์ดแวร์ได้ และบัสของซอฟต์แวร์นั้น ประกอบด้วยโหนด can2040 และ non-can2040 โปรดทราบว่ามีข้อจำกัดที่อาจส่งผลกระทบต่อ CAN bus:

ข้อมูลจำเพาะ CAN bus กำหนดสถานะการจัดการข้อผิดพลาดสามสถานะ: “error active” (เช่น สถานะปกติ) “error passive” และ “bus off” การเปลี่ยนอัตโนมัติระหว่างสถานะเหล่านี้ไม่สามารถทำได้ในขณะนี้ด้วย can 2040 รหัส can2040 ไม่ส่ง “error frames” รหัส can2040 จะไม่เข้าสู่สถานะ “bus off” โดยอัตโนมัติ ในเรื่องนี้ผู้ใช้สามารถคิดว่ารหัส can2040 อยู่ในสถานะ “error passive” เสมอ

คุณสามารถดูรายละเอียดเพิ่มเติมเกี่ยวกับโปรเจ็กต์ บน Github ด้วยซอร์สโค้ด C, สคริปต์ทดสอบ Python และเอกสารประกอบของ Application Programming Interface (API) ที่เผยแพร่ภายใต้ลิขสิทธิ์ GPLv3

ที่มา : Hackster.io

แปลจากบทความภาษาอังกฤษ : can2040 project adds software CAN bus to Raspberry Pi RP2040 microcontroller

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
โฆษณา