
CAN Bus ( controller area network ) เป็นโพรโตคอลในการติดต่อสื่อสารโดยออกแบบมาเพื่อรถหรือพาหนะเป็นหลักโดยในการติดต่อสื่อสารของ CAN จะใช้คู่สัญญาณสองเส้นคือ CANH และ CANL
สำหรับผู้ที่อยู่ในอุตสาหกรรมรถยนต์อาจจะเคยได้ยินมาบ้าง เพราะมีการนำมาใช้ในรถยนต์อย่างหลากหลาย ( ตรงส่วนนี้ผู้เขียนไม่ได้ทำงานในอุตสากรรมรถยนต์โดยตรงจึงอธิบายไม่ได้มากครับ )
รายละเอียดเพิ่มเติมของ CAN ในรถยนต์สามารถอ่านเพิ่มเติมได้ที่
http://www.technology2029.com/Controller%20Area%20Network.pdf
แต่ในปัจจุบัน CAN ไม่ได้ถูกใช้แต่ในรถยนต์เท่านั้น ในงานอุตสากรรมก็มีการใช้งานกันอย่างแพร่หลาย รวมไปถึง PLC ด้วย
บอร์ด Beaglebone Black
ในตัว processor ของ SITARA AM335x มี CAN ให้ใช้งานอยู่แล้วเพียงแต่เราจำเป็นต้องต่อวงจรเพื่อใช้งานภายนอก
ในสินค้าของเรา BBB Display มีการต่อวงจร CAN ไว้ให้เรียบร้อยแล้ว
https://www.deaware.com/product/bbb-display-7inch-touch-screen-for-beaglebone-black/
ในการเชื่อมต่อเราจะนำ BBB Display ของเราเชื่อมต่อผ่าน CAN Dongle
หลังจากนั้นมาดูวิธีการใช้ CAN บน Beaglebone Black กับจอ BBB Display ของเรานะครับ เริ่มต้นเราต้องแก้ไขไดรเวอร์ของ Linux นิดหน่อยแต่ตรงนั้นเราซัพพอร์ตไว้ให้แล้วผู้ใช้สามารถทำบน command line system ได้เลย
เริ่มจาก
$ ip link set can0 type can bitrate 50000 triple-sampling on
เพื่อการตั้งค่า interface can0 โดยใช้ความเร็วที่ 50Kbits/sec
หลังจากนั้น
$ ip link set can0 up
อัพ interface can0 ขึ้นมาเพื่อเตรียมตัวใช้งาน
เราสามารถทดลองส่งข้อมูลผ่าน can ได้แล้วโดยใช้วิธี
$ cansend can0 -i 0x800 0x11 0x22 0x33 0x44 0x55 0x66 0x77 0x88 -e
หรือทดลองรับค่าผ่าน can ได้โดยการใช้คำสั่ง
$ candump can0
เห็นไหมครับการใช้ CAN สำหรับบอร์ด Beaglebone Black ไม่ยากเลย สามารถชมวีดีโอตัวอย่างได้ที่
ติดต่อขอคำปรึกษาเพิ่มเติมได้ที่ใหนครับ