loading
พรีซิชั่น แมชชีน คอนโทรล , 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 จากอุปกรณ์ มีลำดับความสำคัญสูงสุด
จากตารางจะเห็นว่า message กลุ่ม NMT จะมี Function Code = 0000 (เลขฐาน 2) และเนื่องจาก message กลุ่มนี้มีลักษณะ Broadcast จึงไม่ต้องกำหนด Node ID  ค่า COB-ID ทั้ง 11 bits จะเขียนได้เป็น 0000000000 (เลขฐาน 2) จึงมีค่าเท่ากับ 0 (เลขฐาน 10) และ message กลุ่มนี้มี ลำดับความสำคัญสูงสุดคือ 0 SDO(rx) เป็น message ใช้เพื่อกำหนดค่าให้กับอุปกรณ์ จะมีค่า  จะมี Function Code = 1100 (เลขฐาน 2) และต้องมีการกำหนด Node ID จำนวน 7 bits ด้วย เมื่อนำค่า Function Code + Node ID = COB-ID ที่จะมีค่าตั้งแต่ 1537 – 1663 (เลขฐาน 10) หรือ 601 – 67F (เลขฐาน 16)   มีลำดับความสำคัญต่ำสุดคือ 6 หรือ 7
จากภาพด้านบน Master Node ส่ง SDO Message ออกมายัง Bus โดยอุปกรณ์ทุกตัวจะได้รับ message ซึ่งกำหนดค่า CAD-ID = 600 + Node ID (เลขฐาน 16) = 603  เมื่ออุปกรณ์ Slave Node 1 และ 2 ได้รับ message ก็จะไม่ตอบสนองใด ๆ เพราะมีใช่  Node ID ของตน  เมื่อ Slave Node 3 ได้รับ message และพบว่าเป็นของตนก็จะมีการตอบสนองตามค่า Index และ Sub Index ซึ่งจะได้อธิบายต่อไป Heartbeats เป็นวิธีที่มาตรฐาน CAN open ตรวจสอบว่าอุปกรณ์ที่ต่ออยู่ใน network ยังคง alive หรือทำงานเป็นปกติหรือไม่  โดยกำหนดให้อุปกรณ์ส่ง Heartbeat Message ออกมาเป็นระยะตามช่วงเวลา เพื่อให้ CAN Open Master ทราบว่าอุปกรณ์ยังคงทำงานปกติ หากไม่มีการส่ง Heartbeat Message ออกมาตามเวลาที่กำหนด Master จะดำเนินการอย่างใดอย่างหนึ่ง เช่น ทำการรีเซ็ตอุปกรณ์ตัวนั้น หรืออาจจะมี message alarm เกิดขึ้นเพื่อแจ้งให้ผู้ดูแลระบบทราบ ปกติ Heartbeat Message จะมี CAN-ID = 600 + Node ID (เลขฐาน 16)

Write a Reply or Comment

Your email address will not be published. Required fields are marked *