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

จุดสุ่มอ่านบิตและระยะเผื่อเวลาของ CAN

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

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

หนึ่งบิตแบ่งเป็นหน่วยเวลาเล็กกว่าบิต

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

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

ภาพอธิบาย 1เวลาที่อยู่ก่อนและหลังจุดอ่าน
  1. รวมหน่วย tq

    คาบบิตมาจากจำนวนหน่วยเวลารวมคูณความยาวต่อหน่วย

  2. ก่อนอ่าน

    ต้องเผื่อการเดินทางและการตั้งตัวของสัญญาณตามข้อกำหนดตัวควบคุม

  3. จุดอ่าน

    ตัวควบคุมตัดสินระดับที่ตำแหน่งกำหนด ไม่ใช่ตัดสินจากแรงดันเฉลี่ยทั้งบิต

  4. หลังอ่าน

    การเลื่อนจุดอ่านไปท้ายบิตลดเวลาที่เหลือด้านหลัง จึงไม่ใช่ว่าช้าที่สุดดีที่สุดเสมอ

อัตราบิตเดียวกันอาจแบ่งระยะเผื่อก่อนและหลังจุดอ่านต่างกัน

ตัวอย่างสมมติของจุดอ่านสองตำแหน่ง

สมมติการตั้งเวลาหนึ่งบิตรวม 16 tq และแต่ละ tq ยาว 125 นาโนวินาที คาบรวมคือ 2000 นาโนวินาทีหรือ 2 ไมโครวินาที เทียบเท่า 500 กิโลบิตต่อวินาที หากกำหนดให้จุดอ่านอยู่หลังผ่าน 12 tq นับจากต้นบิต จุดอ่านคือ 12 หาร 16 เท่ากับ 75 เปอร์เซ็นต์ หรือเวลา 1.5 ไมโครวินาที เหลือช่วงหลังจุดอ่าน 4 tq หรือ 0.5 ไมโครวินาที ตัวอย่างนี้นับหน่วยเวลาจริง ไม่ใช่ค่าที่ต้องเขียนลงรีจิสเตอร์

อีกการตั้งที่ใช้คาบรวมเท่าเดิมแต่จุดอ่านอยู่หลัง 14 tq จะมีจุดอ่าน 87.5 เปอร์เซ็นต์หรือ 1.75 ไมโครวินาที และเหลือด้านหลัง 0.25 ไมโครวินาที ทั้งสองให้ค่าอัตราบิตเหมือนกัน แต่แบ่งเวลาเผื่อสองด้านต่างกัน ถ้ารูปคลื่นสมมติเพิ่งตั้งตัวใกล้เวลา 1.6 ไมโครวินาที การอ่านที่ 1.5 กับ 1.75 ย่อมเผชิญเงื่อนไขต่างกัน อย่างไรก็ตามนี่เป็นภาพลดรายละเอียด ไม่ใช่วิธีเลือกจุดอ่านจริงจากเวลาตั้งตัวเพียงค่าเดียว

นำไปใช้ตรวจเครื่องมือที่ต่อแล้วอ่านไม่ตรงกัน

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

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

ภาพอธิบาย 216 tq กับจุดอ่านสองแบบ
  1. คาบรวม

    16 × 125 นาโนวินาที = 2 ไมโครวินาที หรือ 500 กิโลบิตต่อวินาที

  2. อ่านที่ 12 tq

    เวลา 1.5 ไมโครวินาที เท่ากับ 75 เปอร์เซ็นต์ เหลือหลังอ่าน 0.5 ไมโครวินาที

  3. อ่านที่ 14 tq

    เวลา 1.75 ไมโครวินาที เท่ากับ 87.5 เปอร์เซ็นต์ เหลือหลังอ่าน 0.25 ไมโครวินาที

  4. ความเร็วเท่ากัน

    ทั้งคู่มีคาบ 2 ไมโครวินาที แต่จัดระยะเผื่อคนละแบบ ต้องตรวจข้อกำหนดระบบ

คำนวณจำนวน tq จริงในตัวอย่าง ไม่ใช่ค่าที่เขียนลงรีจิสเตอร์

ข้อจำกัดของการเลื่อนจุดอ่านให้ช้าที่สุด

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

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

ตรวจสอบผลด้วยเงื่อนไขที่ละเอียดกว่าความเร็ว

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

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

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

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

  1. CAN Bit Timing · Kvaser
  2. Best Sampling point for a system? · Kvaser
  3. Open Channel — CANlib User Guide · Kvaser

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

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

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