มีนาคม 10, 2025

การส่งข้อมูลบนเครือข่าย CAN ด้วย ISO transport protocol (ISOTP)

โดยปกติแล้วแต่ละข้อความบนเครือข่าย CAN จะบรรจุข้อมูลไม่เกิน 8 ไบท์ หากเป็น CANFD (CAN Flexible Data Rate) จะสามารถส่งข้อมูลได้ไม่เกิน 64 ไบท์ แต่หากเราต้องการส่งข้อมูลมากกว่านี้ เราจะสามารถทำได้อย่างไร? ทุกท่านคงสามารถบอกได้ทันทีว่าเราต้องส่งหลายข้อความ แต่เราจะสามารถทราบได้อย่างไรว่าข้อมูลในแต่ละข้อความจะเรียงต่อกันอย่างไร? เมื่อไรจึงจะสามารถส่งข้อความถัดไปได้? มาตรฐาน ISO15765-2 (ISO transport protocol/ISOTP) เป็นมาตรฐานที่ใช้กำหนดวิธีการส่งข้อมูลหลาย ๆ ไบท์บนเครือข่าย CAN

โดยการส่งข้อมูลด้วย ISOTP นั้น บิตที่ 4-7 ของไบท์แรก (ไบท์ 0) จะเป็นตัวบอกประเภทของข้อมูล

ในกรณีที่เป็นข้อความเดี่ยว บิตที่ 0-3 จะบอกขนาดของข้อมูลที่ตามมาเป็น 0-7 ไบท์

ในกรณีของข้อความแรก บิตที่ 0-3 และไบท์ที่สองจะบอกขนาดของข้อมูลที่ตามมาเป็น 8-4095 ไบท์

สำหรับข้อความต่อเนื่อง บิตที่ 0-3 จะบอกลำดับของเฟรม 0-15

สุดท้ายการควบคุมการส่งข้อความ บิตที่ 0-3 มีค่าเป็น 0 จะเป็นการสั่งให้ส่งข้อความได้ เป็น 1 จะเป็นการสั่งให้รอ สำหรับ 2 จะเป็นการบอกว่าเกิดโอเวอร์โฟลว์ขึ้นหรือสั่งให้หยุดส่งข้อความ ในกรณีที่ส่งข้อความได้ ไบท์ที่สอง (ไบท์ 1) จะบอกขนาดของบล๊อคว่ารอบนี้ให้ส่งกี่ข้อความ โดย 0 หมายถึงข้อความที่เหลือทั้งหมดสามารถส่งได้โดยไม่มีการควบคุม และไบท์ที่สาม (ไบท์ 2) จะเป็นตัวบอกระยะเวลาระหว่างข้อความ โดย 0-127 หมายถึง 0-127 ms และ 241=100 us, 242=200 us, 243=300 us, 244=400 us, 245=500 us, 246=600 us, 247=700 us, 248=800 us และ 249=900 us

ภาพด้านล่างแสดงตัวอย่างการส่งข้อความบนเครือข่าย CAN ด้วย ISOTP

หวังว่าบทความนี้จะให้ความรู้ที่จำเป็นในการส่งข้อมูลผ่านหลายข้อความบนเครือข่าย CAN ท่านสามารถติดต่อทีมงานเทคสแควร์เพื่อติดต่อสอบถามข้อมูลเพิ่มเติมเกี่ยวกับการสื่อสารข้อมูลบนเครือข่าย CAN ที่เหมาะสมกับงานของท่าน

 

บทความที่เกี่ยวข้อง

CAN Bus คือ อะไร?

การสื่อสารกับรถยนต์ด้วย OBD2

การสื่อสารกับรถยนต์ขนาดใหญ่ด้วยโปรโตคอล J1939

error: Content is protected...