เมษายน 30, 2022

CAN Bus คือ อะไร

บทความนี้ สอน พื้นฐานความรู้ เกี่ยวกับ มาตรฐานการสื่อสาร แบบ แคนบัส (CAN Bus) มีการอธิบายเกี่ยวกับ วิธีการเชื่อมต่อ การใช้ตัวต้านทาน 120 โอห์ม ที่ถูกต้อง ความเร็ว ความยาวสาย ฯลฯ

หากผู้อ่านมีข้อสงสัยเพิ่มเติม กรุณา ติดต่อ ทีมงาน เทคสแควร์

จุดเริ่มต้นของการสื่อสารแบบ CAN

มาตรฐานการสื่อสารแบบ CAN เป็นการสื่อสารแบบดิจิทัล ถูกพัฒนาขึ้นโดยกลุ่มบริษัท Robert Bosch จากประเทศเยอรมนี ในปี 1983 เป็นคำย่อมาจาก Controller Area Network เพื่อใช้ในการสื่อสารภายในยานพาหนะ เพื่อทดแทนการส่งข้อมูลแบบแอนะล็อก ทำให้มีการรับส่งข้อมูลได้มากขึ้น โดยใช้สายสัญญาณจำนวนน้อยลง ทำให้ได้รับความนิยมมากในกลุ่มอุตสาหกรรมยานยนต์ เช่น ระบบ ECUs (Electronic Control Units) ระบบปรับอากาศ กระจกไฟฟ้า พวงมาลัยอัจริยะ เซ็นเซอร์ ระบบแสงสว่าง ฯลฯ

การเชื่อมต่อการสื่อสารแบบ CAN

มาตรฐานการสื่อสารแบบ CAN ไม่ได้มีการกำหนดว่า จะต้องมีอุปกรณ์ภายในเครือข่าย ไม่เกินกี่ตัว เนื่องจากขึ้นอยู่กับปัจจัยหลาย ๆ ด้านประกอบกัน ได้แก่ รุ่นของ CAN Transceiver ที่ใช้ ความยาวของสายในเครือข่าย และ ความเร็วของเครือข่ายที่กำหนดไว้ เป็นต้น

ผู้ใช้สามารถใช้สายไฟ 2 สาย แบบธรรมดาในการเชื่อมต่ออุปกรณ์สื่อสารในเครือข่าย CAN ได้ โดยสายหนึ่งจะเป็นสาย CAN High (2.5 – 3.5 VDC) และอีกสายหนึ่งจะเป็นสาย CAN Low (1.5 – 2.5 VDC) หากใช้สายคู่บิดเกลียวจะช่วยทำให้สัญญาณรบกวนแม่เหล็กไฟฟ้าน้อยลงได้ ผู้ใช้สามารถเชื่อมต่ออุปกรณ์ของ Ixxat ได้โดยไม่ต้องต่อสายกราวด์ เนื่องจากมีการออกแบบให้มีการเชื่อมต่อกับส่วนชิลด์ของคอนเนคเตอร์อยู่แล้ว เพื่อความสะดวกในการใช้งาน ทั้งนี้หากมีการนำไปเชื่อมต่อกับอุปกรณ์อื่นที่อาจจะมีปัญหาเรื่อง common-mode voltage ก็สามารถเชื่อมต่อกับสายกราวด์ของอุปกรณ์ Ixxat ได้

รูปแบบเครือข่ายการสื่อสารแบบ CAN ที่ได้รับความนิยมมากที่สุดแบบหนึ่ง เป็นการเชื่อมต่อสายสัญญาณหลักเป็นเส้นขนาน จากนั้นจึงเชื่อมต่ออุปกรณ์ที่ต้องการจากสายสัญญาณหลัก และใช้ ตัวต้านทาน ขนาด 120 โอห์ม ปิดที่จุดเริ่มต้นและปลายของเครือข่าย เพื่อไม่ให้เกิดการสะท้อนกลับของสัญญาณทางไฟฟ้า ผู้ใช้สามารถเลือกอุปกรณ์ของ Ixxat บางรุ่น ที่มีตัวต้านทานอยู่ภายใน เพื่อความสะดวก และความเรียบร้อยในการเชื่อมต่อสายสัญญาณได้

ตามมาตรฐานการสื่อสารแบบ CAN นั้น อุปกรณ์ทุกตัว สามารถรับ-ส่งข้อมูลซึ่งกันและกันได้ มีการกำหนด ID ว่าข้อความดังกล่าวจะถูกส่งไปให้อุปกรณ์ตัวไหน หรือสามารถส่งแบบกระจาย (Broadcast) เพื่อให้อุปกรณ์ทุกตัวในเครือข่ายได้รับข้อความเดียวกันก็ได้ ซึ่งแตกต่างจากมาตรฐานการสื่อสารอุตสาหกรรมประเภท Modbus, Profinet, Profibus ฯลฯ ที่เป็นแบบ Master-Slave ในส่วนของการพัฒนาซอฟต์แวร์ จะใช้เทคนิคการกรอง (Filter) ข้อความที่ไม่เกี่ยวข้องออกไป

ความเร็ว และความยาวของสายสัญญาณ

มาตรฐานการสื่อสารแบบ CAN มีการใช้หลักการที่เรียกว่า bit-wise arbitration ซึ่งเป็นการประเมินร่วมกันระหว่างจำนวนอุปกรณ์ (Nodes) ความยาวสาย และความเร็วในการสื่อสาร (Baud Rate หรือ Bit Rate) ทำให้ผู้ใช้สามารถอ้างอิงจากรูปกราฟด้านล่าง โดยมีการกำหนดว่า ความเร็วสูงสุดของเครือข่าย คือ 1 Mbit/s และความยาวสายสูงสุด คือ 1,000 เมตร

ยกตัวอย่างการคำนวณได้ ดังนี้

  • หากใช้ความเร็วของเครือข่ายที่ 1 Mbit/s (หรือ 1000 kBit/s ตามรูปกราฟด้านบน) ควรใช้สายสัญญาณความยาวไม่เกิน 40 เมตร
  • หากใช้สายสัญญาณความยาว 1 กิโลเมตร (หรือ 1,000 เมตร ตามรูปกราฟด้านบน) ควรใช่้ความเร็วของเครือข่ายไม่เกิน 80 kbit/s

หรือสามารถอ้างอิงได้จากตารางด้านล่าง

ความเร็วของเครือข่าย (Baud Rate) ความยาวสายสัญญาณ
1 Mbit/s 40 เมตร
500 kbit/s 110 เมตร
250 kbit/s 240 เมตร
125 kbit/s 500 เมตร
50 kbit/s 1.3 กิโลเมตร
20 kbit/s 3.3 กิโลเมตร
10 kbit/s 6.6 กิโลเมตร

*ค่าความเร็วของเครือข่ายมาตรฐานที่เป็นนิยมใช้กันในปัจจุบัน คือ 125 kbit/s

ในกรณีที่ไม่ได้ใช้ความเร็วของเครือข่ายสูงสุด และสายสัญญาณความยาวสูงสุด ผู้ใช้สามารถประมาณได้จากสมการด้านล่าง (ความเร็วในหน่วย kbit/s และความยาวในหน่วยเมตร)

  • ความเร็ว x ความยาว = 60,000

มาตรฐานที่กำหนดความเร็วของการสื่อสารแบบ CAN ที่ใช้ในปัจจุบัน คือ ISO 11898-2 สำหรับการสื่อสารแบบความเร็วสูง กำหนดในย่าน 10 kbit/s ถึง 1 Mbit/s (เรียกว่า แบบ High Speed ที่ใช้ Transceiver ของ TI รุ่น SN65HVD251D) และ ISO 11898-3 สำหรับการสื่อสารแบบความเร็วต่ำ กำหนดในย่าน 10 kbit/s ถึง 125 kbit/s (เรียกว่า แบบ Low Speed ที่ใช้ Transceiver ของ NXP รุ่น TJA1055T)

ยกตัวอย่าง เช่น อุปกรณ์แปลงสัญญาณจาก USB เป็น CAN รุ่น USB-to-CAN V2 Automotive สามารถรองรับการกำหนดค่าความเร็วของเครือข่าย ได้ตั้งแต่ 10 kBit/s ถึง 1 Mbit/s เพื่อความสะดวกในการใช้งาน ตามรูปด้านล่าง

   

ตามมาตรฐาน CAN Bus มีการกำหนดรูปแบบของเฟรมข้อมูล (Data Frame) ไว้ให้ใช้งานได้ 2 แบบ ได้แก่ CAN 2.0 A เรียกว่า CAN base frame มี identifier จำนวน 11 บิต และ CAN 2.0 B เรียกว่า CAN extended frame มี identifier เพิ่มมาอีก 18 บิต รวมเป็น 29 บิต

โดยสามารถใช้ร่วมกับซอฟต์แวร์สำเร็จรูป เช่น canAnalyser3 Mini หรือ การพัฒนาโปรแกรม เช่น LabVIEW ก็ได้ รูปตัวอย่างด้านล่างเป็นการใช้โปรแกรม LabVIEW เพื่อสื่อสารกับตัวอย่างอุปกรณ์จำลองโปรโตคอลแคนบัส ตามมาตรฐาน ISO 15765-4 โดยใช้ identifier จำนวน 11 บิต ที่ความเร็ว 250 kbps ในการอ่านค่า Mass Air Flow และค่า Oxygen Sensor

ในเครือข่ายการสื่อสารแบบ CAN ไม่สามารถเชื่อมต่ออุปกรณ์ที่ใช้ Baud Rate ต่างกัน หรือรูปแบบเฟรมต่างกันได้ จำเป็นจะต้องใช้อุปกรณ์ประเภท CAN Gateway เช่น รุ่น CANBridge NT420 หรือ อุปกรณ์เชื่อมต่อ เครือข่ายแคนบัส อเนกประสงค์ รุ่น CANnector L เพื่อทำให้อุปกรณ์ที่มี Baud Rate หรือรูปแบบเฟรมต่างกันสามารถสื่อสารกันได้ ตามรูปด้านล่าง

error: Content is protected...