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

รหัสข้อความกับความหมายข้อมูลเป็นคนละชั้น

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

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

Identifier ใช้จัดการข้อความ แต่ไม่บอกหน่วยเอง

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

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

ภาพอธิบาย 1จากข้อความดิบสู่ค่ามีหน่วย
  1. เลือกข้อความ

    ตรวจรหัส ชนิดเฟรม ช่อง และความยาวให้ตรงเอกสารที่มีสิทธิ์ใช้

  2. ประกอบค่าดิบ

    ใช้ตำแหน่งบิต ความยาว ลำดับไบต์ และเครื่องหมายตามคำอธิบาย

  3. แปลงค่าจริง

    ใช้ตัวคูณ ค่าชดเชย และหน่วยที่ระบุ พร้อมตรวจสถานะพิเศษก่อนแปลเป็นปริมาณ

รหัสข้อความเพียงตัวเดียวไม่บอกตำแหน่งบิต ตัวคูณ หรือหน่วยของข้อมูล

ตัวอย่างสมมติของสูตรที่ตรงกันเพียงจุดเดียว

สมมติคำอธิบายสัญญาณชุดฝึกกำหนดค่าจริง = ค่าดิบคูณ 0.25 ลบ 10 เมื่อค่าดิบเป็น 120 ผลคือ 20 หน่วย ผู้วิเคราะห์อีกคนเดาสูตรค่าดิบคูณ 0.5 ลบ 40 ซึ่งที่ 120 ก็ให้ 20 หน่วยเช่นกัน การเทียบจุดเดียวจึงแยกสูตรที่ถูกกับสูตรที่เดาไม่ได้ ทั้งที่ตัวคูณต่างกันสองเท่า

เมื่อค่าดิบเปลี่ยนเป็น 160 สูตรตามเอกสารให้ 160 คูณ 0.25 ลบ 10 เท่ากับ 30 หน่วย แต่สูตรที่เดาให้ 160 คูณ 0.5 ลบ 40 เท่ากับ 40 หน่วย ความต่างเปิดเผยเมื่อข้อมูลเปลี่ยนช่วง ตัวอย่างนี้ไม่ใช่สูตรของเซ็นเซอร์รถใด แต่แสดงเหตุผลที่ต้องใช้เอกสารและตรวจหลายจุด ไม่ยืนยันความหมายจากตัวเลขครั้งเดียวที่บังเอิญตรงกัน

นำไปใช้ตรวจการถอดข้อมูลอย่างมีที่มา

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

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

ภาพอธิบาย 2สองสูตรตรงกันเพียงจุดเดียว
  1. สูตรตามเอกสาร

    ค่าจริง = ค่าดิบ × 0.25 − 10 หน่วยในระบบสมมติ

  2. สูตรที่เดา

    ลองค่าดิบ × 0.5 − 40 ซึ่งยังไม่มีเอกสารรองรับ

  3. ค่าดิบ 120

    ทั้ง 120 × 0.25 − 10 และ 120 × 0.5 − 40 ให้ 20 เท่ากัน

  4. ค่าดิบ 160

    สูตรเอกสารได้ 30 สูตรเดาได้ 40 ต่าง 10 หน่วย จึงต้องตรวจหลายจุดและยึดเอกสาร

ตัวอย่างสมมติแสดงว่าค่าหนึ่งที่บังเอิญตรงกันยังไม่ยืนยันสูตรถอดข้อมูล

ข้อผิดพลาดจากการเห็นความสัมพันธ์แล้วตั้งชื่อทันที

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

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

ตรวจสอบผลด้วยทั้งความถูกต้องและขอบเขต

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

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

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

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

  1. CAN DBC File Explained - A Simple Intro · CSS Electronics
  2. Understanding CAN DBC files · Influx Technology
  3. Addressing, Arbitration and Identification: How the Message Reaches the Controller · Kvaser

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

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

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