เครื่องมือแจ้ง checksum ผิดอาจเกิดจากข้อมูลบนสายผิดจริง แต่ก็อาจเกิดจากเลือกแบบคำนวณไม่ตรงเฟรม LIN มี checksum แบบ classic และ enhanced ซึ่งรวมข้อมูลคนละขอบเขต จึงต้องรู้ว่ากำลังตรวจแบบใดก่อนใช้ผลตัดสินผู้ตอบ บทความนี้อธิบายการคำนวณด้วยเลขฐานสิบสมมติ เพื่อให้ตรวจขั้นตอนด้วยมือได้โดยไม่ใช้ข้อมูลของรถจริง
สองแบบต่างกันที่สิ่งที่นำมารวม
แบบ classic คำนวณจากไบต์ข้อมูล ส่วน enhanced รวม protected identifier หรือ PID เข้าไปด้วย PID ไม่ใช่เพียงค่ารหัสที่ตัดบิต parity ออก การใช้รหัสดิบแทน PID ในแบบ enhanced จึงอาจให้คำตอบผิดตั้งแต่ต้น การเลือกแบบขึ้นกับข้อตกลงของเฟรมและรุ่นระบบ ไม่ใช่เลือก enhanced เสมอเพราะชื่อดูใหม่กว่า
แม้ในระบบที่ใช้ enhanced ก็มีเฟรมวินิจฉัยที่กำหนดให้ใช้ classic จึงไม่ควรเปลี่ยนทั้งไฟล์เป็นแบบเดียวโดยไม่ตรวจชนิดเฟรม ส่วนการคำนวณผลรวมใช้การทบตัวทดแล้วกลับบิตของผลแปดบิต การตัดผลรวมเหลือแปดบิตโดยทิ้งตัวทดเฉย ๆ จึงไม่ใช่กระบวนการเดียวกัน ต้องเข้าใจจุดนี้ก่อนเทียบผลที่คำนวณเองกับเครื่องมือ
- ตรวจแบบของเฟรม
classic รวมข้อมูล enhanced เพิ่ม PID และต้องตรวจข้อยกเว้นของเฟรมวินิจฉัย
- ทบตัวทดกลับ
เมื่อผลรวมเกิน 255 ต้องทบตัวทด ไม่ทิ้งด้วยการหารเอาเศษ 256
- กลับบิตแปดบิต
เทียบ checksum ที่รับ ผลผ่านไม่ยืนยันความสดหรือความหมายทางกายภาพ
แบบ classic ใช้ข้อมูล ส่วน enhanced เพิ่มรหัสที่รวม parity
ตัวอย่างสมมติของผลรวมที่มีตัวทด
สมมติแบบ classic มีไบต์ข้อมูลสองตัวเป็น 200 และ 100 ในฐานสิบ ผลรวมคือ 300 ซึ่งเกิน 255 เมื่อนำตัวทดกลับเข้าผลแปดบิตจะได้ 300 ลบ 255 เท่ากับ 45 แล้วกลับบิตในขอบเขตแปดบิตเทียบเท่า 255 ลบ 45 ได้ checksum 210 หากทิ้งตัวทดโดยใช้เศษจากการหาร 256 จะได้ 44 และคำนวณเป็น 211 ซึ่งผิดจากกระบวนการที่ต้องใช้
เพื่อตรวจผล ให้รวมข้อมูลเดิมกับ checksum ได้ 200 บวก 100 บวก 210 เท่ากับ 510 ทบตัวทดโดยลบ 255 ได้ 255 ซึ่งเป็นค่าที่คาดสำหรับการตรวจผลรวมแบบนี้ ตัวอย่างใช้ตัวเลขสมมติและไม่ได้ระบุ PID ของรถ หากมีข้อมูลมากกว่านี้ต้องทบตัวทดต่อจนอยู่ในช่วงแปดบิต ไม่หยุดเพียงเพราะลบครั้งแรกแล้ว
นำไปใช้ตรวจเครื่องมือก่อนกล่าวหาข้อมูล
- ตรวจชนิดเฟรมและแบบ checksum ที่เอกสารกำหนด รวมข้อยกเว้นของเฟรมวินิจฉัย
- เก็บ PID และไบต์ข้อมูลที่ถอดจากเฟรมครบตามความยาวที่ตกลง ไม่รวม start หรือ stop bit เป็นข้อมูล
- คำนวณขอบเขตที่ถูก โดย classic ใช้ข้อมูลและ enhanced เพิ่ม PID
- ทบตัวทดตามวิธีผลรวมแล้วกลับบิตแปดบิต ก่อนเทียบกับไบต์ checksum ที่รับ
- ถ้าผลต่าง ให้ตรวจความยาว ลำดับไบต์ และการตั้งรูปแบบก่อนสรุปว่าภาคส่งเสีย
หากผลผ่าน classic แต่ไม่ผ่าน enhanced ข้อมูลนี้สนับสนุนให้ตรวจแบบที่ควรใช้ ไม่ใช่เลือก classic เพื่อให้ผ่านทุกกรณี ต้องกลับไปหาเอกสารของเฟรมนั้น หากเอกสารกำหนด enhanced จริง การผ่าน classic อาจเป็นความบังเอิญหรือบ่งชี้การตั้งผู้ส่งที่ไม่ตรงข้อกำหนด การตรวจให้ถูกต้องจึงไม่เท่ากับการหาอัลกอริทึมใดก็ได้ที่ให้ไฟเขียว
- รวมได้ 300
200 + 100 = 300 เกินขอบเขตแปดบิต
- ทบเหลือ 45
300 − 255 = 45 การทิ้งตัวทดจะได้ 44 ซึ่งผิดวิธี
- กลับบิตได้ 210
255 − 45 = 210 เป็น checksum ของตัวอย่าง
- ตรวจกลับได้ 255
200 + 100 + 210 = 510 แล้วทบ 510 − 255 = 255
ข้อมูลสมมติ 200 กับ 100 ให้ checksum 210 แบบ classic
ข้อจำกัดของผลรวมที่ผ่าน
checksum ช่วยตรวจรูปแบบความผิดพลาดได้ตามความสามารถของอัลกอริทึม แต่ไม่ยืนยันว่าค่ามีความหมายทางกายภาพถูกต้องหรือใหม่พอ ข้อมูลที่ต้นทางวัดผิดแต่ส่งด้วย checksum ถูกยังผ่านได้ และการเปลี่ยนข้อมูลบางรูปแบบอาจรักษาผลรวมเดิม ตัวอย่างเชิงคณิตศาสตร์คือข้อมูล 20 กับ 30 มีผลรวม 50 เท่ากับ 21 กับ 29 จึงไม่ควรอ้างว่า checksum รับประกันไม่มีข้อผิดพลาดทุกแบบ
การมี PID ใน enhanced เพิ่มขอบเขตสิ่งที่คำนวณ แต่ไม่ได้เป็นระบบพิสูจน์ตัวตนหรือการเข้ารหัสเพื่อป้องกันผู้ปลอมข้อมูล การใช้คำว่าปลอดภัยเพราะมี checksum จึงผิดประเภทความสามารถ บทความนี้จำกัดการใช้งานที่การอ่านและตรวจความถูกต้องของไฟล์ ไม่เสนอการสร้างข้อความทดแทนหรือดัดแปลงค่าที่ระบบใช้ควบคุมอุปกรณ์
ตรวจสอบผลด้วยตัวอย่างหลายแบบ
ชุดตรวจคำนวณควรมีทั้งผลรวมไม่เกิน 255 และผลรวมที่ต้องทบตัวทด เพราะตัวอย่างเล็กอย่าง 20 บวก 30 อาจทำให้สูตรที่ทิ้งตัวทดดูถูกต้องได้ หากมีหลายไบต์จนผลรวมสูง ให้ตรวจการทบซ้ำและขั้นกลับบิตแยกกัน การเขียนค่าระหว่างทางไว้ในบันทึกช่วยให้ผู้ตรวจเห็นว่าไม่ใช่เพียงคัดผลจากเครื่องมือมาเป็นคำตอบ
หลังแก้การตั้งหรืออัลกอริทึม ต้องตรวจว่าไบต์ดิบของไฟล์เดิมยังเหมือนเดิมและผลตรวจเปลี่ยนเพราะกฎที่ถูก ไม่ใช่เพราะมีการแก้ checksum ในหลักฐาน หากข้อมูลจริงยังผิดให้รักษารายการนั้นไว้พร้อมเหตุที่ตรวจพบ รายงานที่เหมาะสมระบุแบบ checksum จำนวนไบต์และวิธีทบตัวทด รวมทั้งไม่ขยายผลผ่านไปยืนยันค่าทางกายภาพหรือการทำงานของผู้รับทั้งหมด


