หน้าแรก
วิธีการสั่งซื้อสินค้า
แจ้งชำระเงิน
บทความ
เว็บบอร์ด
เกี่ยวกับเรา
ติดต่อเรา
หน้าแรก
>
บทความ
>
[Tips] Controller Area Network
ค้นหาบทความที่นี่
บทความทั้งหมด
[Tips] Controller Area Network
5 ปีที่ผ่านมา
โดย
เจ้าของร้าน
Publish : 13 March 2020
ในการใช้งาน Arduino นั้น เรามักใช้การสื่อสารรูปแบบต่าง ๆ เพื่อทำการสื่อสารรับส่งข้อมูลระหว่างอุปกรณ์ที่ใช้งาน เริ่มตั้งแต่เมื่อซื้อ Arduino UNO มาแกะถุงออก ลองอัพโหลดโปรแกรมแรกลงไป มันคือการสื่อสารผ่าน Universal Serial Bus ที่เราเรียกกันว่า USB ระหว่างคอมพิวเตอร์กับตัวบอร์ดแล้ว ซึ่งสัญญาณนี้จะถูกส่งเข้ามาที่ ATmega16 ที่อยู่ใกล้ๆกับหัวต่อของบอร์ด เจ้า ATmega16 นี้ก็จะทำการแปลงสัญญาณ USB ให้เป็น UART - Universal Asynchronous Receiver and Transmitter อีกทีเพื่อส่งข้อมูลนี้ไปยังตัวไมโครคอนโทรลเลอร์ทางขา Tx Rx นั่นเอง แค่อัพโหลดโปรแกรมนาทีเดียวเราใช้การสื่อสารไป 2 ชนิดแล้ว จากนั้นเมื่อเราต่อกับเซ็นเซอร์ต่าง ๆ บางตัวก็สื่อสารด้วยการปิดเปิดไฟฟ้าธรรมดาเป็นสัญญาณดิจิตอล 0110001010 บางตัวก็ส่งสัญญาณ Analog มาให้ไมโครคอนโทรลเลอร์แปลงสัญญาณผ่าน ADC บางตัวก็ใช้การเชื่อมต่อสื่อสารแบบ Serial Peripheral Interface หรือ SPI บางตัวก็เชื่อมต่อสื่อสารแบบ Inter-Integrated Circuit หรือที่รู้จักกันในนาม I2C (หรือ IIC จะอ่าน "ไอ-สแคว-ซี", "ไอ-ทู-ซี", "ไอ-ไอ-ซี" ก็ตามสะดวกเข้าใจกันได้) บางตัวก็ใช้การสื่อสารแบบ 1-Wire แต่ยังมีการสื่อสารที่หลายคนลืมไปแล้ว(รวมถึงผู้เขียนก็ไม่ได้ใช้มานานมากแล้ว) ที่ไมโครคอนโทรลเลอร์(แน่นอนว่า Arduino ก็ด้วย) มีให้เราใช้งาน นั่นคือ Controller Area Network Bus หรือ CAN BUS นั่นเอง
(รูปบน)การเชื่อมต่อกล่องควบคุม 3 กล่องแบบทั่วไป (รูปล่าง)การเชื่อมต่อโดยใช้ CAN BUS
CAN BUS - Controller Area Network เป็นมาตรฐานการสื่อสารกันระหว่างไมโครคอนโทรลเลอร์หรืออุปกรณ์อื่น ๆ โดยไม่ต้องอาศัย Host หรือตัวแม่ข่าย(นึกถึงตอนใช้ SPI เราต้องมี Master และ Slave หรือ I2C ก็ต้องมี Slave ที่ Address ต่าง ๆ ส่งข้อมูลไปที่ตัวแม่) โดย CAN BUS นี้ถูกออกแบบในปี ค.ศ.1983 โดยบริษัท Bosch เป็นการออกแบบให้มีการสื่อสารแบบ Multiplex สำหรับใช้งานในรถยนต์เพื่อลดการลากสายไฟในรถ(ทุกวันนี้ CAN BUS เป็นมาตรฐานสำหรับอุปกรณ์อิเล็กทรอนิกส์ในรถยนต์ เช่น ECU, ABS, Cruise Control, ระบบถุงลมนิรภัย ล้วนสื่อสารผ่าน CAN BUS : อีกทั้งยังมีการนำไปใช้ในระบบควบคุม PLC อีกด้วย)
Architecture
Physical
ในทางกายภาพ อุปกรณ์ที่เรามองเห็นกันจะเชื่อมต่อกันด้วยสายสัญญาณสองเส้น คือ CAN high (CANH) และ CAN low (CANL) บิดคู่กันและมี Impedance ที่ 120 โอห์ม และมีมาตรฐานดังนี้
ISO 11898-2 รู้จักในในนาม High-Speed CAN ซึ่งสามารถทำความเร็วสูงสุดได้ที่ 1 Mbit/s สำหรับ CAN และได้มากถึง 5 Mbit/s สำหรับ CAN-FD (Controller Area Network Flexible Data-Rate)
ISO 11898-3 หรือ Low-Speed สามารถทำความเร็วในการส่งข้อมูลได้ที่ 125 kbit/s
Nodes
ในแต่ละ Node มีส่วนจำเป็นสำหรับระบบ CAN ดังนี้ (1)CPU หรือ MCU(แน่นอนว่าต้องมีตัวประมวลผล) (2)CAN controller สำหรับควบคุมสัญญาณ (3)CAN Transceiver สำหรับรับส่งสัญญาณข้อมูล
ทำไมถึงใช้ CAN BUS
ค่าใช้จ่ายต่ำ
เนื่องจากทุก Node เชื่อมต่อกันด้วยสายเพียง 2 เส้นก็สามารถส่งข้อมูลได้มากมาย ทำให้ประหยัดค่าสายไฟไปได้มาก(สำหรับ Maker แบบเราอาจดูไม่กี่ตังค์ แต่หากคิดว่ารถยนต์ 1 คันจะลดไปได้เท่าไร และผลิตวันละเป็นร้อยคันจะเป็นเงินเท่าไร)
มีความเป็นศูนย์กลาง
แม้ว่าระบบ CAN จะทำงานโดยไม่ต้องอาศัย Host แต่ก็สามารถตรวจสอบความผิดพลาดของสัญญาณในระบบและทำการควบคุมสั่งการโดย Node หลัก(ในรถยนต์ก็คือ ECU) ได้เช่นกัน
มีความยืดหยุ่น
ในแต่ละ Node จะไม่มี ID ประจำตัว ฉะนั้น Node ทุกตัวสามารถรับข้อมูลทุกอย่างที่ส่งอยู่บน BUS และสามารถตัดสินใจได้ว่าเป็นข้อมูลของตัวเองหรือไม่ และจะทำงานตามข้อมูลนั้นหรือไม่ แต่ทั้งนี้ทุกตัวก็ยังเชื่อมต่อกับ ECU ซึ่งเป็น Node หลักในการควบคุมสั่งการอีกชั้น ทำให้มีการเปลี่ยนแปลงคำสั่งการควบคุมสั่งการได้ตลอด
มีความคงทน
เนื่องด้วย CAN BUS นั้นมีความทนทานต่อการรบกวนทางไฟฟ้าและแม่เหล็กไฟฟ้าได้สูงมาก จึงทำให้ระบบมีความผิดพลาดน้อย สามารถใช้งานได้นานโดยไม่จำเป็นต้องบำรุงรักษามากนัก
มีประสิทธิภาพ
เนื่องจากในแต่ละข้อความที่ส่งบน CAN BUS นั้นจะถูกกำหนด ID ให้กับแต่ละข้อความ โดย ID นี้ก็จะถูกกำหนดว่าอันไหนสำคัญมากน้อย จึงทำให้ Node ทุกตัวเลือกทำตามคำสั่งที่มีความสำคัญมากที่สุดก่อนได้ทันทีโดยไม่ถูกขัดจังหวะจากคำสั่งที่ไม่มีความสำคัญในการทำงานขณะนั้น
สำหรับบทความวันนี้ก็เป็นบทความเล็ก ๆ น้อย ๆ เรื่องข้อมูลเบื้องต้นของ CAN BUS ซึ่งมันก็เป็นการสื่อสารข้อมูลอีกรูปแบบหนึ่งสำหรับไมโครคอนโทรลเลอร์ ที่เรามักไม่ค่อยได้ใช้งาน หรือยังไม่มีโอกาสได้ใช้งาน ประกอบกับช่วงนี้ผู้เขียนเองก็ไม่ค่อยมีเวลานำบทความโปรเจคหรือสอนใช้งานต่าง ๆ มาลง ก็เนื่องจากภาระงานกำลังเร่งรีบ ไม่มีเวลาออกแบบบทความ ทดลองและนำมาลงเว็บ แต่ก็ไม่อยากเงียบหายไปนานจึงคุ้ยความทรงจำอันเลือนลางประกอบกับแหล่งอ้างอิงมาเรียบเรียงเป็นข้อมูลสั้น ๆ เอาไว้ สำหรับบทความครั้งหน้าก็ติดตามกันต่อนะครับ ผู้เขียนเองก็ยังไม่รู้ว่าจะเป็นเรื่องอะไร อาจเป็น Tips เล็ก ๆ แบบนี้ หรืออาจจะเป็นการต่อเรื่องราวที่ยังค้างอยู่เดิมก็ขึ้นอยู่กับเวลาและโอกาสจะอำนวยแหละครับ สำหรับวันนี้สวัสดีกันไปก่อนครับ
อ้างอิง :
CAN Bus
Introduction to CAN BUS and How to use it with Arduino
tips
,
can
,
can bus
,
bus
,
การสื่อสาร
,
การสื่อสารแบบ can
Share
Share :
COPY
Privacy Policy
|
Cookie Policy
|
Copyright © 2025
fitrox.lnwshop.com
All rights reserved.
ตะกร้า
(
0
)
▲
▼
รายการสั่งซื้อของฉัน
เข้าสู่ระบบด้วย
เข้าสู่ระบบ
สมัครสมาชิก
ยังไม่มีบัญชีเทพ
สร้างบัญชีใหม่
ไม่มีค่าใช้จ่าย
สมัครสมาชิก (ฟรี)
รายการสั่งซื้อของฉัน
ข้อมูลร้านค้านี้
Fitrox Electronics
ไฟทร็อก อิเล็กทรอนิกส์ จำหน่ายอุปกรณ์อิเล็กทรอนิกส์ บอร์ดไมโครคอนโทรลเลอร์ และอุปกรณ์สำหรับโปรเจคต่างๆ อ.เมือง จ.เชียงใหม่ (หลัง มช.)
เบอร์โทร :
0897245633
อีเมล :
fitrox.electronics@gmail.com
ส่งข้อความติดต่อร้าน
เกี่ยวกับร้านค้านี้
ค้นหาสินค้าในร้านนี้
ค้นหา
หรือค้นหาอย่างละเอียด
ค้นหาสินค้า
สินค้าที่ดูล่าสุด
{{pdata.name}}
ดูสินค้าทั้งหมดในร้าน
สินค้าที่ดูล่าสุด
บันทึกเป็นร้านโปรด
Join เป็นสมาชิกร้าน
แชร์หน้านี้
แชร์หน้านี้
↑
TOP
เลื่อนขึ้นบนสุด
คุณมีสินค้า
0
ชิ้นในตะกร้า
สั่งซื้อทันที
สินค้าในตะกร้า ({{total_num}} รายการ)
ขออภัย ขณะนี้ยังไม่มีสินค้าในตะกร้า
ราคาสินค้าทั้งหมด
฿ {{price_format(total_price)}}
- ฿ {{price_format(discount.price)}}
ราคาสินค้าทั้งหมด
{{total_quantity}} ชิ้น
฿ {{price_format(after_product_price)}}
ราคาไม่รวมค่าจัดส่ง
ดูสินค้าในตะกร้า
เริ่มการสั่งซื้อ
➜
เลือกซื้อสินค้าเพิ่ม
พูดคุย-สอบถาม
อีเมล fitrox.electronics@gmail.com
โทร 0897245633
channel/UCnHfpCdqN1RkzAfEH_lRLvw?
1924052434588436
Add @zpq2828r