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