ระบบสื่อสารยานยนต์

เฟรมฐานและเฟรมขยายมีผลต่อการอ่านบันทึกอย่างไร

เข้าใจรหัส 11 และ 29 บิต แยกชนิดรหัสจาก CAN FD และตรวจการเก็บชนิดเฟรมในไฟล์เพื่อไม่ให้ตัวกรองรวมข้อความผิดชุด

เครื่องมือ CAN มักมีช่องรหัสข้อความและธงบอกชนิดเฟรมอยู่ใกล้กัน หากส่งออกเฉพาะตัวเลขรหัสแล้วทิ้งธง ข้อมูลที่สำคัญต่อการจำแนกอาจหายไป เฟรมฐานใช้รหัส 11 บิต ส่วนเฟรมขยายใช้ 29 บิต แต่ความต่างนี้ไม่ใช่ชื่อเรียกแทน Classical CAN กับ CAN FD บทความนี้อธิบายวิธีเก็บและอ่านสองคุณสมบัติแยกกัน พร้อมตัวอย่างการรวมข้อมูลผิดจากการละชนิดเฟรม

ความยาวรหัสกับรูปแบบ FD เป็นคนละคุณสมบัติ

ฐานหรือขยายระบุรูปแบบของ identifier และส่วนที่เกี่ยวข้องในเฟรม ส่วน Classical หรือ FD ระบุรูปแบบเฟรมที่มีความสามารถด้านข้อมูลและเวลาแตกต่างกัน จึงไม่ควรกล่าวว่าเห็นรหัสยาวแล้วเป็น CAN FD แน่นอน หรือเห็นรหัสสั้นแล้วเป็น Classical เท่านั้น การอ่านไฟล์ควรมีทั้งธงชนิดรหัสและธง FD รวมถึง BRS หากกำลังพิจารณาการสลับอัตราบิต

จำนวนบิตที่เพิ่มในรหัสไม่ได้เพิ่มจำนวนไบต์ payload ของ Classical CAN ให้เกินขอบเขตเดิมโดยอัตโนมัติ และไม่ได้ทำให้ข้อความมีลำดับความสำคัญสูงกว่าทุกเฟรมฐาน การตัดสินสิทธิ์ยังต้องดูส่วน arbitration ที่ส่งจริง การสรุปคุณสมบัติจากคำว่าขยายโดยไม่แยกว่าขยายอะไรจึงทำให้เข้าใจทั้งความจุข้อมูลและเวลาใช้บัสผิด

ภาพอธิบาย 1เก็บคุณสมบัติเฟรมแยกกัน
  1. ชนิดรหัส

    เฟรมฐานมี identifier 11 บิต เฟรมขยายมี 29 บิต ต้องเก็บธงกำกับ

  2. ชนิดเฟรม

    ตรวจ Classical หรือ FD แยกจากความยาวรหัส ไม่ตัดสินจากจำนวนหลักบนจอ

  3. ข้อมูลประกอบ

    เก็บ BRS เมื่อเกี่ยวข้องและคำอธิบาย payload แยกจากชนิดรหัส

ฐานหรือขยายเป็นชนิดรหัส ส่วน Classical หรือ FD เป็นอีกคุณสมบัติหนึ่ง

ตัวอย่างสมมติที่ค่าตัวเลขเดียวกันกลายเป็นคนละรายการ

สมมติไฟล์ฝึกมีเฟรมฐานที่มีค่ารหัสหนึ่ง และเฟรมขยายที่มีค่าตัวเลขรหัสเท่ากัน โดยข้อมูลของทั้งสองเป็นคนละชนิด หากโปรแกรมใช้ตัวเลขรหัสอย่างเดียวเป็นคีย์ รายการหลังจะทับหรือปนกับรายการแรก แม้ค่าตัวเลขเท่ากัน การมีธงรูปแบบต่างกันทำให้ไม่ควรถือเป็นเฟรมชนิดเดียวกัน ตัวอย่างนี้ไม่ใช้รหัสรถจริงและไม่กล่าวว่าเกิดในระบบของผู้ผลิตใด

สมมตินับเฟรมฐานได้ 12 รายการและเฟรมขยายได้ 8 รายการในหน้าต่างเดียว โปรแกรมที่รวมด้วยตัวเลขอย่างเดียวจะรายงาน 20 รายการในกลุ่มเดียว ทำให้คาบและข้อมูลดูแกว่ง หากแยกด้วยคู่ชนิดเฟรมและรหัสจะได้สองกลุ่ม 12 กับ 8 ตามเดิม การนับรวมไม่ได้ทำให้เฟรมสูญหายเสมอไป แต่ทำให้ความหมายของสถิติเปลี่ยน และอาจทำให้เลือกคำอธิบายข้อมูลผิดชุด

นำไปใช้ตรวจตัวกรองและไฟล์ส่งออก

  1. ตรวจว่าไฟล์มีช่องบอกฐานหรือขยายหรือไม่ และซอฟต์แวร์เก็บเป็นธงแยกหรือรวมในรูปแบบตัวเลขเฉพาะ
  2. เก็บชนิดรหัสคู่ค่ารหัสเป็นส่วนของตัวระบุรายการ รวมชื่อช่องเครือข่ายหากมีหลายบัส
  3. แยกธง FD ออกจากธงขยายเมื่อเลือกตัวถอดรหัสและคำนวณความยาวข้อมูล
  4. ทดสอบการส่งออกและนำเข้าด้วยข้อมูลสมมติที่มีทั้งสองรูปแบบ ไม่ใช้เฉพาะเฟรมชนิดเดียว
  5. ตรวจตัวกรองว่าตั้งสำหรับรูปแบบใดและฮาร์ดแวร์รองรับการกรองแยกอย่างไรตามคู่มือ

เมื่อใช้ฐานข้อมูลคำอธิบาย ต้องอ่านว่ารูปแบบนั้นเข้ารหัสธงขยายไว้ในตัวเลขอย่างไร ไม่ควรนำจำนวนเต็มที่เห็นในฐานข้อมูลไปเทียบกับค่าบนสายโดยไม่แปลงตามนิยาม ขณะเดียวกันอย่าลบส่วนที่คิดว่าเป็นธงเองโดยไม่มีเอกสาร เพราะอาจตัดบิตของรหัสจริงออก การเก็บทั้งค่าต้นฉบับและค่าที่แปลงช่วยให้ตรวจย้อนเมื่อพบกลุ่มข้อความหาย

ภาพอธิบาย 2รวมผิดเมื่อทิ้งธงชนิดรหัส
  1. ฐาน 12 รายการ

    เฟรมฐานชุดหนึ่งมีรหัสตัวเลขเดียวกับอีกชุดในตัวอย่างสมมติ

  2. ขยาย 8 รายการ

    เฟรมขยายใช้ค่าตัวเลขเท่ากัน แต่เป็นข้อมูลคนละชนิด

  3. รวมผิดเป็น 20

    ใช้ตัวเลขรหัสอย่างเดียวเป็นคีย์ ทำให้สถิติและ payload ปนกัน

  4. รักษาสองกลุ่ม

    ใช้ชนิดเฟรมคู่ค่ารหัสและช่องเครือข่าย จึงยังแยกฐาน 12 กับขยาย 8 ได้

ตัวอย่างใช้ค่าตัวเลขรหัสเท่ากันแต่ชนิดเฟรมต่างกัน จึงต้องรักษาสองกลุ่ม

ข้อผิดพลาดจากการใช้ความกว้างตัวเลขตัดสินชนิด

จำนวนหลักที่แสดงบนหน้าจอขึ้นกับการจัดรูปแบบ เฟรมขยายที่มีค่าตัวเลขน้อยอาจแสดงสั้นได้ หากเครื่องมือไม่เติมศูนย์ด้านหน้า ดังนั้นการนับหลักไม่ใช่หลักฐานแทนธงชนิด และการเติมศูนย์ให้ยาวขึ้นก็ไม่ได้ทำให้เฟรมฐานกลายเป็นขยาย ต้องดูข้อมูลชนิดที่ตัวควบคุมรายงานหรือโครงสร้างเฟรมที่ถอดได้

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

ตรวจสอบผลโดยเทียบจำนวนและเนื้อหาก่อนหลังแปลง

การตรวจตัวแปลงไฟล์ควรเทียบทั้งจำนวนเฟรม ชนิดรหัส ค่า identifier ความยาว และไบต์ข้อมูล หากจำนวนรวม 20 เท่าเดิมแต่สองชนิดถูกรวมเป็นหนึ่ง แสดงว่าตรวจจำนวนอย่างเดียวไม่พอ ในตัวอย่างต้องยืนยันว่าหลังแปลงยังแยกฐาน 12 และขยาย 8 ได้ พร้อมรักษาลำดับเวลา ไม่เพียงให้โปรแกรมเปิดไฟล์ได้โดยไม่มีข้อความผิดพลาด

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

แหล่งอ้างอิงและอ่านเพิ่มเติม

เรียบเรียงคำอธิบายและตัวอย่างขึ้นใหม่จากหลักการในแหล่งข้อมูลต่อไปนี้

  1. CAN Frame Types · Kvaser
  2. Send and Receive · Kvaser
  3. CAN FD Protocol Tutorial · Kvaser

เล่มที่ลงลึกเรื่องนี้

อ่านต่อเรื่องใกล้กัน

ถามเรื่องหนังสือ ตะกร้า