พรีซิชั่น แมชชีน คอนโทรล , 12 Aug 2019
CAN ย่อมากจากคำว่า Controller Area Network พัฒนาขึ้นโดย Bosch Germany สำหรับใช้ในการควบคุมอุปกรณ์ภายในรถยนต์ ต่อมาก็ถูกนำมาใช้ในอุตสาหกรรมอย่างแพร่หลาย CAN เป็นระบบที่สามารถมีได้หลาย Master เพราะอุปกรณ์ทุกตัวสามารถเข้าถึง Bus ได้ตลอดเวลาที่ไม่มีการส่งสัญญาณ CAN มิได้ทำงานในแบบ address แต่ทำงานในแบบการส่ง message การเข้าถึง Bus ของอุปกรณ์ทุกตัวจะใช้ความสามารถของ CSMA/CA Protocal ย่อยในชั้น Data Link layer ของ OSI โมเดล เพื่อบริหารการส่ง message ของทุกอุปกรณ์ลงมาที่ Bus แต่ละอุปกรณ์จะ listen ว่า Bus ว่างอยู่หรือไม่ ถ้าว่างอยู่อุปกรณ์ก็สามารถส่ง message ออกมายัง Bus ได้ ถ้าหากอุปกรณ์ 2 ตัวพยายามที่จะส่ง message ลงมาที่ Bus พร้อม ๆ กัน message ที่มีลำดับความสำคัญสูงกว่า(lowest indentifier) จะสามารถส่ง message ได้ก่อน ส่วนอุปกรณ์ที่ส่ง message ที่มีลำดับรองลงมาจะสามารถส่ง message ในจังหวะที่ Bus ว่างในจังหวะถัดไป message สามารถถูกรับโดยอุปกรณ์ทุกตัวที่ต่ออยู่กับ Bus โดยอุปกรณ์แต่ละตัวจะคัดเอาเฉพาะ message ที่เป็นของตนเองเท่านั้น
CAN จะทำงานที่ Physical Layer และ Datalink Layer ตาม OSI โมเดล ส่วน CAN open เป็นมาตรฐานที่ถูกกำหนดขึ้นมาทำงานที่ Application Layer ซึ่งมีอยู่หลายมาตรฐานย่อย เช่น CAN in Automation Group (Cia) 301 จะเป็นหลักเกณฑ์ในการสร้าง message เพื่อการสื่อสารพื้นฐาน CiA 302 จะเป็นหลักเกณฑ์ในการสร้าง message ของ PLC sหรือ System Monitoring นอกจากนี้ CiA 406 ยังเป็นหลักเกณฑ์ในการสร้าง message ของอุปกรณ์ Sensor เช่น Encoder
CAN open จะสร้างสายสื่อสารทำหน้าที่เป็น Bus เพียง 2 เส้น มีค่า Baud Rate อยู่ระหว่าง 10kBoud ถึง 1 MBoud ขึ้นอยู่กับความยาวสาย สายยิ่งยาวมากก็จำเป็นจะต้องลดค่า Baud Rate ลงมาเพื่อรักษาคุณภาพของข้อมูล การต่อสายสัญญาณลักษณะนี้สามารถลดผลกระทบของสัญญาณรบกวนได้ดี
Message จะถูกส่งในรูปของ message telegram ประกอบด้วย 3 ส่วนคือ
Communication Object IDentifier หรือเรียกย่อ ๆ ว่า COB-ID ขนาด 12 bits ประกอบด้วย 3 ส่วนย่อย คือ Function Code 4 bits , Node ID 7 bits และ RTR 1 bit ส่วนนี้ปกติจะถูกเรียกว่า CAN-ID นอกจากนี้แล้ว Node ID ขนาด 7 bits หมายถึงจำนวนอุปกรณ์ต่ออยู่กับ Bus มีได้สูงสุดไม่เกิน 127 อุปกรณ์
Data length ขนาด 4 bits
Data ขนาด 0 – 8 Bytes
COB-Identifier ในแต่ละ message จะมีลำดับความสำคัญไม่เท่ากัน ซึ่งค่า COB-ID จะประกอบด้วย Function Code และ Node ID ส่วนค่า RTR ไม่นิยมนำมาคิดเป็นค่า COB-ID
ค่า Node ID จะต้องกำหนดให้แก่อุปกรณ์โดยไม่ซ้ำกัน ส่วนค่า Function Code จะแปรเปลี่ยนตามชนิดของ message แบ่งออกได้ 4 ชนิด
Administrative message (LMT, NMT) สำหรับใช้ในการควบคุม สถานะของ Bus สามารถใช้ในการ start , stop หรือ reset อุปกรณ์ โดย message กลุ่มนี้จะมีลักษณะ Broadcast ไปยังอุปกรณ์ทุกตัวใน network
Service data objects (SDOs) สำหรับใช้เพื่อการกำหนดค่าให้กับอุปกรณ์ การส่งสัญญาณไม่เป็นคาบเวลา ปกติพบในช่วงที่มีการเริ่มจ่ายไฟฟ้าให้แก่ระบบ
Process data objects (PDOs) สำหรับการแลกเปลี่ยนข้อมูลที่เป็นเรียลไทม์ ซึ่งมักเป็น message ที่มีลำดับความสำคัญูสูง
Pre-defined message (Synchronization, emergency) เป็น message เพื่อใช้ในการ Sync สัญญาณ หรือ รับสัญญาณ Emergency จากอุปกรณ์ มีลำดับความสำคัญสูงสุด