การเดินสาย CAN บัสที่เชื่อถือได้เป็นระเบียบของ Physical Layer ที่ถูกกำหนดโดยข้อจำกัดที่เข้มงวดสามประการ ได้แก่ โทโพโลยี ความยาวของ Stub และตำแหน่งของการ Terminate:
ประเด็นสำคัญ
- CAN ใช้ Linear (Daisy-chain) Bus เท่านั้น — โหนดแต่ละตัวจะเชื่อมต่อกับ Trunk หลักเพียงเส้นเดียวแบบอนุกรม และไม่อนุญาตให้ใช้โครงสร้างแบบ Star, Tree หรือ Ring เนื่องจากสัญญาณสะท้อนจากส่วนที่แยกออกไปจะทำให้การสุ่มตัวอย่างบิตผิดเพี้ยน
- ที่ 1 Mbit/s ความยาวของ Stub แต่ละเส้นควรสั้นกว่า 0.3 ม. และความยาวรวมของบัสควรสั้นกว่าประมาณ 40 ม. ข้อจำกัดทั้งสองจะผ่อนคลายลงเมื่ออัตราการส่งข้อมูลลดลง
- ISO 11898-2 กำหนดให้มีตัวต้านทาน 120 Ω ที่ปลายทั้งสองด้านของบัส — รวมเป็นสองตัวเสมอ ห้ามมีหนึ่งหรือสามตัว
- การวัดค่า ~60 Ω ระหว่าง CAN_H และ CAN_L เมื่อปิดเครื่องเป็นการยืนยันการ Terminate สองตัวที่ถูกต้อง ~120 Ω บ่งชี้ว่าขาดตัว Terminate และ ~40 Ω บ่งชี้ว่ามีตัว Terminate เกินมา
- ชุดสายไฟ CAN แบบกำหนดเองสำหรับ SAE J1939 และ CANopen ควบคุมความยาวของ Stub ที่จุดแยกของคอนเนคเตอร์ ทำให้ส่วนที่แยกสั้นพอที่จะรักษาความสมบูรณ์ของสัญญาณที่ 500 kbit/s ขึ้นไป
กฎทั่วไปทางวิศวกรรม: ติดตั้งตัวต้านทาน 120 Ω สองตัวที่ปลายสุดสองด้านของ Trunk หลัก ให้ Stub แต่ละเส้นสั้นกว่า 0.3 ม. ที่ 1 Mbit/s และต่อ Trunk หลักให้ยาวถึงโหนดแทนที่จะแยกออกไป
เหตุผลที่ CAN รองรับเฉพาะโทโพโลยีแบบ Linear Daisy-Chain
CAN เป็นบัสแบบ Differential แบบ Multi-drop ที่กำหนดโดย ISO 11898-2 ให้เป็น Trunk หลักเส้นเดียว โหนดแต่ละตัวจะเชื่อมต่อกับ Trunk นั้นผ่าน Stub หรือ Drop สั้นๆ แทนที่จะผ่าน Branch ของตัวเอง บัสอาศัยการที่ Transceiver ทุกตัวมองเห็นรูปคลื่น Differential ที่ชัดเจนภายในเวลาบิตเดียว รวมถึงในช่วงการทำงานแบบ Arbitration ที่ไม่ก่อให้เกิดความเสียหาย ซึ่งสถานะ Dominant และ Recessive จะต้องเสถียรตลอดความยาวของสายเคเบิล
โทโพโลยีแบบ Star, Tree และ Ring จะทำให้สิ่งนี้ผิดพลาด จุดเชื่อมต่อแต่ละจุดคือความไม่ต่อเนื่องของอิมพีแดนซ์ที่จะส่งสัญญาณสะท้อนกลับไปยัง Trunk และสัญญาณสะท้อนเหล่านั้นจะมาถึงจุดสุ่มตัวอย่างในรูปของ Overshoot, Ringing หรือ False Edges ดังนั้น ส่วนประกอบ CAN ในการผลิตจึงถูกสร้างขึ้นเป็น Trunk ชุดสายไฟแบบกำหนดเอง เส้นเดียว พร้อมจุดแยกสั้นๆ ที่ควบคุมได้ไปยังคอนเนคเตอร์โหนดแต่ละตัว — ไม่ใช่แบบ Hub ที่มีก้านสาขาแผ่ออกไป เมื่อจำเป็นต้องใช้ Star จะต้องใช้ Active CAN Repeater หรือ Hub เพื่อทำการ Terminate แต่ละส่วนใหม่
ขีดจำกัดความยาว Stub และอัตราการส่งข้อมูล
สแต็บ (stub) คือความยาวสายเคเบิลที่ยังไม่สิ้นสุดระหว่างสายหลัก (trunk) และโหนด (node) เนื่องจากอิมพีแดนซ์ของสายเคเบิลที่กำหนดไว้ที่ 120 Ω ถูกขัดจังหวะที่ปลายสแต็บที่เปิดอยู่ สแต็บจึงทำหน้าที่เป็นความไม่ต่อเนื่องของสายส่ง: ส่วนหนึ่งของสัญญาณจะสะท้อนกลับไปยังสายหลัก และซ้อนทับกับรูปคลื่นที่กำลังส่ง เมื่อเวลาหน่วงไปกลับตามความยาวสแต็บเข้าใกล้เศษส่วนที่มีนัยสำคัญของเวลาที่สัญญาณเพิ่มขึ้น การสะท้อนนั้นจะตกอยู่ในหน้าต่างการสุ่มตัวอย่างและทำให้บิตเสียหาย
ยิ่งอัตราการส่งบิตเร็วเท่าใด เวลาของบิตก็จะยิ่งสั้นลง และสแต็บที่ยอมรับได้ก็จะยิ่งสั้นลงเท่านั้น ที่ความเร็ว 1 Mbit/s ขีดจำกัดมาตรฐานอยู่ที่ประมาณ 0.3 เมตรต่อสแต็บ โดยมีความยาวสแต็บสะสมทั่วทั้งบัสก็ถูกจำกัดเช่นกัน เหตุผลเบื้องหลังเป้าหมาย 120 Ω และความแตกต่างจากสายอีเธอร์เน็ต 100 Ω ได้อธิบายไว้ในคู่มือของเราเกี่ยวกับ อิมพีแดนซ์ลักษณะเฉพาะของสาย CAN bus ตารางด้านล่างสรุปแนวทาง ISO 11898-2 / CiA สำหรับอัตราการส่งบิตทั่วไป
| อัตราการส่งบิต | ความยาวบัสสูงสุด (ทั่วไป) | สแต็บเดี่ยวสูงสุด | สแต็บสะสมสูงสุด |
|---|---|---|---|
| 1 Mbit/s | 40 ม. | 0.3 ม. | ~0.6 ม. |
| 500 kbit/s | 100 ม. | 0.6 ม. | ~1.5 ม. |
| 250 kbit/s | 250 ม. | 1.0 ม. | ~3 ม. |
| 125 kbit/s | 500 ม. | 1.5 ม. | ~6 ม. |
| 50 kbit/s | 1,000 ม. | 3 ม. | ~12 ม. |
ตัวเลขความยาวบัสถูกจำกัดด้วยเวลาหน่วงการแพร่กระจายและเป็นที่ยอมรับกันดี ข้อกำหนดสำหรับสแต็บที่อัตราต่ำกว่าเป็นการปรับขนาดทั่วไปในอุตสาหกรรมมากกว่าค่ามาตรฐานที่ตายตัว ดังนั้นควรถือว่าเป็นขีดจำกัดสูงสุดในการออกแบบและควรอยู่ภายในนั้นอย่างมากสำหรับการสร้างที่ไวต่อ EMC
Need a CAN Bus Harness Built to Spec?
การวางตำแหน่งตัวต้านทานปลายสาย — ตัวต้านทาน 120 Ω สองตัวเท่านั้น
ISO 11898-2 กำหนดให้มีตัวต้านทานปลายสาย 120 Ω ที่ปลายแต่ละด้านของสายหลักเพื่อจับคู่อิมพีแดนซ์ของสายเคเบิลและดูดซับสัญญาณเพื่อไม่ให้เกิดการสะท้อน ตัวต้านทาน 120 Ω สองตัวต่อขนานกันจะมีค่า 60 Ω ต่อบัส ซึ่งเป็นเหตุผลว่าทำไมส่วนที่ปิดการทำงานและมีการต่อปลายสายอย่างถูกต้องจึงอ่านค่าได้ประมาณ 60 Ω ระหว่าง CAN_H และ CAN_L การอ่านค่าใกล้เคียง 120 Ω หมายความว่าขาดตัวต้านทานปลายสายไปหนึ่งตัว การอ่านค่าใกล้เคียง 40 Ω หมายความว่ามีการเพิ่มตัวต้านทานตัวที่สามที่ใดที่หนึ่งบนบัส
มีสองรูปแบบที่นิยมใช้กันทั่วไป การสิ้นสุดแบบมาตรฐานจะวางตัวต้านทาน 120 Ω หนึ่งตัวที่ปลายแต่ละด้าน การสิ้นสุดแบบแยกส่วนจะแบ่งตัวต้านทานแต่ละตัวออกเป็นตัวต้านทาน 60 Ω สองตัวต่ออนุกรมกัน โดยมีตัวเก็บประจุ — โดยทั่วไปคือ 4.7 nF — ต่อลงกราวด์ที่จุดกึ่งกลาง ซึ่งจะช่วยลดสัญญาณรบกวนแบบโหมดร่วมและลดการปล่อยคลื่นแม่เหล็กไฟฟ้าในการทำงานระยะยาวในโรงงานอุตสาหกรรม
| รูปแบบการสิ้นสุด | การกำหนดค่า | เมื่อใดควรใช้ | พฤติกรรมโหมดร่วม |
|---|---|---|---|
| มาตรฐาน | ตัวต้านทาน 120 Ω หนึ่งตัวที่ปลายแต่ละด้านของบัส | การใช้งานในยานยนต์และงานอุตสาหกรรมระยะสั้น | ไม่มีการกรองโหมดร่วม |
| แยกส่วน | ตัวต้านทาน 60 Ω สองตัวต่ออนุกรมกันที่ปลายแต่ละด้าน, 4.7 nF ต่อลงกราวด์ที่จุดกึ่งกลาง | การทำงานระยะยาวและโหนดที่ไวต่อ EMC | กรองสัญญาณรบกวนโหมดร่วม, ลดการปล่อยคลื่นแม่เหล็กไฟฟ้า |
การเดินสาย CAN ในทางปฏิบัติ: ยานยนต์, อุปกรณ์หนัก และอุตสาหกรรม
ในยานยนต์ทั่วไป ระบบส่งกำลังและเครือข่ายการวินิจฉัย OBD-II ทำงานด้วย CAN ที่ความเร็ว 500 kbit/s ผ่านสายคู่บิดเกลียว และเครือข่าย ECU ทั้งหมดถูกสร้างขึ้นเป็นชุดสายไฟยานยนต์แบบต่ออนุกรม automotive wire harness โดยมีตัวต้านทานปลายทางรวมอยู่ในโมดูลปลายสองตัว SAE J1939 ควบคุมเครือข่ายยานยนต์หนักและเชิงพาณิชย์ โดยทั่วไปจะทำงานที่ 250 kbit/s และที่ 500 kbit/s ภายใต้ J1939-14
อุปกรณ์นอกถนนและอุปกรณ์การเกษตรจะเพิ่มข้อกำหนดในการซีล ดังนั้นโครงข่ายหลัก J1939 จึงมักจะสิ้นสุดที่ขั้วต่อ Deutsch DT และ DTM ที่ได้รับการจัดอันดับสำหรับการสั่นสะเทือนและการป้องกันการรั่วซึม ชุดสายไฟ Deutsch Deutsch wire harness ที่มีการซีลจะรักษาความต่อเนื่องของสายหลักในขณะที่แยกสายย่อยสั้นๆ ไปยังแต่ละคอนโทรลเลอร์
ในโรงงาน CANopen (ตาม CiA 301) และ DeviceNet ใช้ชั้นกายภาพเดียวกันผ่านขั้วต่อ M12 แบบ 5 พิน หรือ DB9 ตามการกำหนดพิน CiA 303 ซึ่งมักจะใช้สายเคเบิลแบบลากต่อเนื่อง ชุดสายไฟอุตสาหกรรม industrial wire harness ที่ออกแบบมาสำหรับโซ่ลากจะต้องรักษาความเรียบร้อยของสายย่อยในส่วนที่โค้งงอ ซึ่งการหย่อนหรือการเคลื่อนที่ของสายที่ยาวจะทำให้ความสมบูรณ์ของสัญญาณเสื่อมลงเร็วกว่าการติดตั้งแบบคงที่
คำถามที่พบบ่อยเกี่ยวกับการเดินสาย CAN Bus
ความยาวสายย่อยสูงสุดสำหรับ CAN ที่ 500 kbit/s คือเท่าใด
ที่ 500 kbit/s ให้แต่ละส่วนปลายที่ไม่ได้สิ้นสุด (unterminated stub) มีความยาวไม่เกินประมาณ 0.6 เมตร และความยาวรวมของส่วนปลายทั้งหมดไม่เกินประมาณ 1.5 เมตร นี่คือขีดจำกัดการออกแบบที่ได้มาจากเวลาบิตและเวลาสัญญาณขึ้น (signal rise time) ไม่ใช่ขีดจำกัดมาตรฐานที่ตายตัว ดังนั้น การทำให้สั้นลงจะปลอดภัยกว่าเสมอเมื่อรถบัสมีสัญญาณรบกวนหรือมีความยาวมาก
ตัวต้านทานการสิ้นสุด (termination resistor) ของ CAN สามารถวางไว้ตรงกลางของรถบัสได้หรือไม่?
ไม่ได้ — ตัวต้านทาน 120 Ω สองตัวต้องอยู่ที่ปลายทางกายภาพทั้งสองของสายหลัก (trunk) ไม่ใช่ตรงกลาง ตัวต้านทานที่อยู่ตรงกลางจะแบ่งสายเคเบิลออกเป็นสองส่วนที่ไม่ได้สิ้นสุด (unterminated segments) ซึ่งปลายเปิดจะสะท้อนสัญญาณ และจะเพิ่มความต้านทานที่สามแบบขนานซึ่งทำให้ความต้านทานของรถบัสต่ำกว่าค่าที่จับคู่ไว้
จะเกิดอะไรขึ้นหาก CAN bus มีตัวต้านทานสามตัว?
ตัวต้านทาน 120 Ω สามตัวแบบขนานจะลดความต้านทานของรถบัสที่มีประสิทธิภาพลงเหลือประมาณ 40 Ω ซึ่งจะทำให้ทรานซีฟเวอร์ (transceivers) ทำงานหนักเกินไปและลดความแรงของแรงดันไฟฟ้าส่วนต่าง (differential voltage swing) รถบัสอาจยังคงทำงานได้ที่อัตราบิตต่ำ แต่จะแสดงจำนวนข้อผิดพลาดที่เพิ่มขึ้นเมื่อความเร็วหรืออุณหภูมิสูงขึ้น
CAN รองรับโทโพโลยีแบบสตาร์ (star) หรือแบบกิ่ง (branch) หรือไม่?
CAN ถูกระบุไว้สำหรับโทโพโลยีแบบเดซี่เชน (daisy-chain) เชิงเส้นเท่านั้น ไม่อนุญาตโทโพโลยีแบบสตาร์และวงแหวน (ring) โดยธรรมชาติ โทโพโลยีแบบสตาร์จะใช้งานได้ก็ต่อเมื่อผ่าน CAN hub หรือรีพีทเตอร์ (repeater) แบบแอคทีฟที่ทำการสิ้นสุดใหม่และขับสัญญาณใหม่ในแต่ละขาเป็นส่วนที่สิ้นสุดอย่างอิสระ
จะจัดหาชุดสายไฟ CAN แบบกำหนดเองพร้อมการควบคุมความยาวของส่วนปลาย (stub lengths) ได้อย่างไร?
ชุดสายไฟ CAN แบบกำหนดเองจะควบคุมความยาวของส่วนปลายที่จุดแยกขั้วต่อ (connector breakout) และรวมตัวต้านทาน 120 Ω สองตัวเข้ากับโหนดปลายทาง (end nodes) หรือขั้วต่อปลายทาง (end connectors) ระบุอัตราบิต ความยาวรวมของรถบัส จำนวนโหนดและการเว้นระยะห่าง ประเภทขั้วต่อ (Deutsch, M12, หรือ DB9) และระบุว่าต้องการการสิ้นสุดแบบแยกส่วน (split termination) หรือไม่ จากนั้นจึงสามารถตรวจสอบความถูกต้องของชุดสายไฟตามงบประมาณส่วนปลายและความยาวก่อนการผลิตได้
ความน่าเชื่อถือของ CAN ถูกกำหนดที่ชุดสายไฟ ไม่ใช่ในเฟิร์มแวร์: สายหลักเชิงเส้นเส้นเดียว ส่วนปลายที่อยู่ต่ำกว่าขีดจำกัดอัตราบิต และตัวต้านทาน 120 Ω สองตัวที่ปลายทางกายภาพเท่านั้น หากระบุข้อจำกัดทั้งสามนี้อย่างถูกต้อง รถบัสจะทนต่อสัญญาณรบกวน การสั่นสะเทือน และระยะทางได้ หากผิดพลาดแม้แต่ข้อเดียว ความล้มเหลวจะปรากฏเป็นข้อผิดพลาดบิตที่ไม่แน่นอนและติดตามได้ยากภายใต้ภาระงาน