โดยปกติแล้วแต่ละข้อความบนเครือข่าย 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 ที่เหมาะสมกับงานของท่าน
บทความที่เกี่ยวข้อง