ก่อนที่ Industrial Ethernet จะครองโลก มีโปรโตคอลหนึ่งที่ทำงานเงียบๆ ในเครื่องจักรและยานยนต์มานานกว่า 30 ปี นั่นคือ CAN bus (Controller Area Network) และโปรโตคอลระดับบนอย่าง CANopen ที่สร้างบนพื้นฐาน CAN เพื่อใช้ในระบบอัตโนมัติ แม้จะเก่าแก่ แต่ CAN ยังคงเป็นกระดูกสันหลังของระบบควบคุมในหลายอุตสาหกรรมเพราะความทนทาน ความประหยัด และความน่าเชื่อถือที่ผ่านการพิสูจน์มาแล้ว

CAN bus คืออะไร?

CAN bus เป็นโปรโตคอลสื่อสารแบบ Serial Communication ที่พัฒนาโดยบริษัทยนต์ยนต์ของเยอรมันในปี 1983 และเผยแพร่ครั้งแรกในปี 1986 ต่อมาได้รับการรับรองเป็นมาตรฐานสากล ISO 11898 จุดประสงค์เดิมคือลดปริมาณสายไฟในรถยนต์ จากการใช้สาย point-to-point นับร้อยเส้น เหลือเพียงสายคู่บิด (twisted pair) เส้นเดียวที่เชื่อม ECU ทุกตัวเข้าด้วยกัน

คุณสมบัติเด่นของ CAN bus

  • Multi-Master — ทุก node สามารถส่งข้อความได้โดยไม่ต้องมี Master ควบคุม
  • Message-Based — สื่อสารด้วย Message ID ไม่ใช่ Address ทำให้ node ใหม่เข้าร่วมได้โดยไม่ต้อง reconfigure
  • CSMA/CD+AMP — ตรวจจับการชนกันของข้อมูลและให้ Message ID ที่ต่ำกว่า (priority สูงกว่า) ชนะ
  • Error Detection — มี CRC, Bit Monitoring, และ Error Frame ที่ช่วยตรวจจับและแก้ไขข้อผิดพลาดได้อัตโนมัติ
  • Differential Signaling — ใช้สัญญาณต่างศูนย์ระหว่าง CAN_H และ CAN_L ทำให้ทนต่อสัญญาณรบกวน (EMI) ได้ดี

โครงสร้าง CAN Frame

CAN frame มาตรฐาน (CAN 2.0A) มี identifier ขนาด 11 bit ส่วน Extended Frame (CAN 2.0B) ขยายเป็น 29 bit ขนาดข้อมูลต่อ frame ได้สูงสุด 8 ไบต์ สำหรับ CAN คลาสสิก และสูงสุด 64 ไบต์ สำหรับ CAN FD (Flexible Data-rate) ที่เป็นเวอร์ชันใหม่กว่า

ชนิด CAN Identifier Data per Frame Bit Rate มาตรฐาน
CAN 2.0A (Standard) 11 bit 0-8 bytes สูงสุด 1 Mbps ISO 11898
CAN 2.0B (Extended) 29 bit 0-8 bytes สูงสุด 1 Mbps ISO 11898
CAN FD 11/29 bit 0-64 bytes สูงสุด 8 Mbps (data phase) ISO 11898-1:2015

Arbitration: ระบบจัดลำดับความสำคัญอัจฉริยะ

เมื่อ node สองตัวส่งข้อมูลพร้อมกัน CAN จะใช้กระบวนการ Non-Destructive Arbitration ที่เปรียบเทียบ bit ของ Message ID ทีละ bit จาก MSB ไป LSB node ที่ส่ง ID ที่มีค่าต่ำกว่าจะชนะและส่งต่อได้ ส่วน node ที่แพ้จะหยุดและรอคิวถัดไป กระบวนการนี้เรียกว่า CSMA/CD+AMP (Carrier Sense Multiple Access with Collision Detection and Arbitration on Message Priority)

ผลลัพธ์: Message ที่มี priority สูง (ID ต่ำ) จะได้รับการส่งออกก่อนเสมอ โดยไม่มีการชนกันที่ทำใจสูญหาย ทำให้ CAN เหมาะกับระบบที่ต้องการรับประกันเวลาตอบสนองของข้อความสำคัญ

CANopen: ชั้น Application Layer บน CAN

CAN bus เป็นเพียง Physical และ Data Link Layer ในการใช้งานจริงในระบบอัตโนมัติ จึงมี CANopen เป็นโปรโตคอล Application Layer ที่กำหนดโครงสร้างข้อมูลมาตรฐาน ตามมาตรฐาน CiA 301 (CAN in Automation) องค์ประกอบหลักมีดังนี้

  • Object Dictionary (OD) — ตารางข้อมูลมาตรฐานที่บรรจุพารามิเตอร์ทั้งหมดของ node แต่ละตัว เข้าถึงด้วย Index และ Subindex ขนาด 16 bit + 8 bit
  • PDO (Process Data Object) — ส่งข้อมูลแบบเรียลไทม์ ไม่มีการยืนยัน เร็วและเบา เหมาะกับข้อมูลที่เปลี่ยนตลอดเวลา เช่น ตำแหน่งมอเตอร์
  • SDO (Service Data Object) — ส่งข้อมูลแบบ confirmed (มี response) เหมาะกับการ config หรืออ่านพารามิเตอร์ที่ไม่เร่งด่วน
  • NMT (Network Management) — ควบคุมสถานะ node (Operational, Pre-Operational, Stopped) และตรวจสอบ Heartbeat
  • Device Profiles — มาตรฐานสำหรับอุปกรณ์เฉพาะ เช่น CiA 402 (Drives and Motion Control), CiA 401 (Generic I/O), CiA 404 (Sensor Measurement)

เปรียบเทียบ CAN/CANopen กับ Fieldbus อื่น

คุณสมบัติ CAN/CANopen Modbus RTU Profibus DP
Bit Rate สูงสุด 1 Mbps (8 Mbps CAN FD) สูงสุด 115 kbps สูงสุด 12 Mbps
สถาปัตยกรรม Multi-Master Master-Slave Master-Slave
Arbitration Non-Destructive (priority) Polling (Master) Token-passing
Nodes ต่อ bus 30-110 (ปกติ) 247 126
Error Handling Built-in (CRC + Error Frame) CRC-16 HDLC CRC

กรณีศึกษา: CANopen ในเครื่องจักรเกษตร

ผู้ผลิตเครื่องจักรเกษตรใช้ CANopen เชื่อม ECU ของเครื่องยนต์, ระบบ Hydraulic, และ Joystick Controller เข้าด้วยกันด้วยสายคู่บิดเพียง 2 เส้น ระบบทำงานที่ 250 kbps รองรับ node รวม 30 ตัว เมื่อเครื่องจักรเพิ่มฟังก์ชันใหม่ เช่น GPS Auto-Steering ก็เพียงเสียบ node ใหม่เข้าไปใน bus โดยไม่ต้องเดินสายใหม่ ข้อดีที่สำคัญคือความทนทานต่อสภาพแวดล้อมที่รุนแรง — ฝน ความสั่นสะเทือน และสัญญาณรบกวนจากมอเตอร์ไฟฟ้าแรงสูง — เนื่องจาก Differential Signaling ของ CAN ช่วยตัด noise ได้อย่างมีประสิทธิภาพ

CAN ยังคงมีบทบาทในยุค IIoT

แม้ Industrial Ethernet และ IIoT Protocol ใหม่จะเติบโต แต่ CAN ยังคงเป็นตัวเลือกแรกในหลายงานเพราะเหตุผลดังนี้

  • ความประหยัด — CAN Controller ฝังอยู่ใน Microcontroller หลายรุ่นในระดับ Entry-Level
  • ทนทาน — ออกแบบมาทนสภาพแวดล้อมหนัก เหมาะกับยานยนต์และเครื่องจักรกล
  • กินพลังงานต่ำ — เหมาะกับระบบที่ใช้แบตเตอรี่
  • Bridge สู่ IIoT — CAN Gateway สามารถแปลงข้อมูล CAN เป็น MQTT หรือ OPC UA เพื่อส่งต่อขึ้น Cloud ได้

Key Takeaways

  1. CAN bus เป็นโปรโตคอล Multi-Master, Message-Based ที่พัฒนาตั้งแต่ปี 1983 และเป็นมาตรฐาน ISO 11898
  2. ใช้ CSMA/CD+AMP ในการจัดลำดับความสำคัญ — Message ID ที่ต่ำกว่ามี priority สูงกว่า
  3. CAN Frame มีขนาดข้อมูล 0-8 bytes (CAN คลาสสิก) และสูงสุด 64 bytes (CAN FD) ที่ bit rate สูงสุด 8 Mbps
  4. CANopen เป็น Application Layer ที่เพิ่ม Object Dictionary, PDO, SDO, และ Device Profiles มาตรฐาน CiA
  5. Differential Signaling (CAN_H/CAN_L) ทำให้ทนต่อ EMI ได้ดี เหมาะกับสภาพแวดล้อมหนัก
  6. กรณีศึกษาจริงแสดงว่า CANopen รองรับ node 30 ตัวด้วยสายเพียง 2 เส้น ในเครื่องจักรเกษตรที่ทำงานในสภาพรุนแรง
  7. ยังคงมีบทบาทในยุค IIoT ผ่าน CAN-to-MQTT/OPC UA Gateway ที่เชื่อม CAN bus เก่าเข้ากับ Cloud Platform