ธันวาคม 19, 2024

การใช้งานอินเตอร์เฟส CAN บน RevPi Connect 5

บทความนี้สอนการใช้งานอินเตอร์เฟส CAN บน RevPi Connect 5 ก่อนอื่นเราต้องทราบไอพีแอดเดรสของ RevPi Connect หลังจากนั้นทำตามขั้นตอนดังต่อไปนี้บนคอมพิวเตอร์ที่อยู่ในเน็ทเวิร์คเดียวกับ RevPi Connect

1. ทำการเชื่อมต่อไปยัง RevPi Connect ผ่านโปรโตคอล SSH แบบรีโมท

2. ทำการตั้งค่าบิทเรทและเริ่มใช้งานอินเตอร์เฟส CAN โดยบิทเรทควรจะสอดคล้องกับความยาวของเครือข่าย CAN ตารางด้านล่างแสดงความยาวสูงสุดของแต่ละบิทเรท เราสามารถตั้งค่าบิทเรทด้วยคำสั่ง sudo ip link set [interface] up type can bitrate [bitrate] โดย [interface] บนคอนเนคเตอร์ x3 คือ can0 และ [interface] บนคอนเนคเตอร์ x3 คือ can1

3. ในกรณีที่ใช้งาน CAN FD ให้ตั้งค่าบิทเรทและเริ่มใช้งานอินเตอร์เฟส CAN ด้วยคำสั่ง sudo ip link set [interface] type can bitrate [bitrate] dbitrate [data bitrate] fd on โดย [data bitrate] คือ บิทเรทขณะทำการส่งข้อมูล

4. ในกรณีที่ต้องการใช้งาน termination resistor ให้ใช้คำสั่ง sudo ip link set dev [interface] type can termination 120 หรือ sudo ip link set dev [interface] type can termination 0 ในกรณีที่ไม่ต้องการใช้งาน termination resistor

5. RevPi Connect ได้ทำการติดตั้ง can-utils ไว้ เราสามารถใช้ตัวอย่างคำสั่งด้านล่างในการติดต่อผ่านเครือข่าย CAN ได้

– ส่งข้อมูลแพคเกจเดียว: cansend [interface] 123#1122334455667788

– ส่งข้อมูลแบบสุ่มวนลูปไปเรื่อย ๆ: cangen [interface] -g 0 -i -x

– อ่านข้อมูลบนเครือข่าย CAN: candump [interface]

– บันทึกการสื่อสารบนเครือข่าย CAN ไว้ดูบนโปรแกรม WireShark: sudo tcpdump -i [interface] -w out.pcap

– ตรวจความผิดพลาดที่เกิดขึ้นระหว่างส่งข้อมูล: ip -details -statistics link show [interface]

6. หลังจากใช้งานเสร็จแล้ว เราสามารถใช้คำสั่ง exit เพื่อออกจากการเชื่อมต่อไปยัง RevPi Connect

7. นอกจากนี้ RevPi Connect ยังทำการติดตั้งไลบรารี่ python-can เพื่อให้เราสามารถควบคุมอินเตอร์เฟส CAN ด้วย Python โดยสามารถดูตัวอย่างการเขียนโปรแกรมในเพจของไลบรารี่ได้เลย ทั้งนี้เนื่องจากเราใช้งานระบบปฏิบัติการลีนุกซ์ เราต้องใช้ os.system ใน Python เพื่อเรียกคำสั่งต่อไปนี้ในการเริ่มใช้งาน CAN

– sudo ip link set [interface] type can bitrate [baud rate in bit/s]
– sudo ip link set [interface] txqueuelen 1000
– sudo ip link set [interface] up
และใช้ os.system เรียกคำสั่ง sudo ip link set [interface] down เพื่อหยุดใช้งาน CAN นอกจากนี้เรายังควรติดตั้งไลบรารี่ cantools เพื่อแปลงข้อมูล CAN ไปเป็นค่าสัญญาณ (Signal)

หวังว่าบทความนี้จะให้ความรู้ที่จำเป็นในการใช้งานอินเตอร์เฟส CAN บน RevPi Connect หากผู้อ่านต้องการทราบข้อมูลเพิ่มเติมสามารถติดต่อทีมงาน Techsquare ได้ครับ

บทความที่เกี่ยวข้อง

การใช้งาน RevPi ผ่านโปรโตคอล SSH แบบรีโมท

เอกสารอ้างอิงไลบรารี่ python-can

error: Content is protected...