html การแทรกบิตและการถอดรหัสที่ตัวรับใน Classical CAN - FCTELE
                                   +8618758069661 [email protected]
ค้นหาผลิตภัณฑ์ คำแนะนำ: เว้นวรรค = AND, | = OR, ! = NOT

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

มีคำถามหรือไม่? โทรหาเราวันนี้!

+8618758069661

หรือฝากข้อความถึงเรา

ข้อความออนไลน์

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

จำนวนการเข้าชม: 33 +33ต้นฉบับโดย FCTELEผู้เขียน: ทีมเทคนิค FCTELE

การแทรกบิตใน Classical CAN

ตัวรับแยกข้อมูลเพย์โหลดออกจากบิตแทรกอย่างไร

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

01

แทรกบิต

The transmitter inserts an opposite bit after five equal wire bits.0 0 0 0 0Stuff 1

ตัวส่งจะแทรกบิตที่มีค่าตรงข้ามหลังจากส่งบิตค่าเดียวกันห้าบิตติดต่อกันบนสาย

02

หาขอบเขต

The receiver stops applying dynamic stuffing after the CRC sequence.SOF → CRC bitsFixed form

ตัวรับหยุดใช้กฎการแทรกบิตแบบไดนามิกหลังลำดับ CRC

03

วัดสัญญาณที่ปลายทั้งสองด้าน

Compare the same test frame on the two copper segments.ABCAN fiber link

เปรียบเทียบเฟรมทดสอบเดียวกันบนสายทองแดงทั้งสองช่วง

01 ยืนยันรูปแบบ

ตรวจว่าเป็น Classical CAN และระบุชนิดเฟรมกับอัตราบิตที่กำหนด

02 ระบุตำแหน่งฟิลด์

ตรวจว่าลำดับบิตค่าเดียวกันอยู่ในช่วงที่ใช้กฎการแทรกบิตหรือไม่

03 เทียบผลที่สังเกตได้

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

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

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

สัญญาณที่คงระดับยังคงส่งบิตได้

บนบัส CAN ความเร็วสูงที่ใช้สายทองแดง ทรานซีฟเวอร์จะแปลงบิตจากตัวควบคุมเป็นสถานะสัญญาณดิฟเฟอเรนเชียลระหว่าง CAN_H กับ CAN_L บิตโดมิแนนต์แทนค่าตรรกะ 0 ส่วนบิตรีเซสซีฟแทนค่าตรรกะ 1 เมื่อโหนดหนึ่งขับบัสให้เป็นสถานะโดมิแนนต์ สถานะนี้สามารถทับสถานะรีเซสซีฟที่โหนดอื่นส่งได้ แม้สถานะทางไฟฟ้าจะคงที่ ตัวควบคุมฝั่งรับก็ยังตัดสินค่าบิตที่จุดสุ่มตัวอย่างในแต่ละช่วงเวลาบิต ช่วงสัญญาณที่คงระดับโดมิแนนต์อาจมีบิตศูนย์หลายบิต โดยแต่ละบิตใช้เวลาหนึ่งช่วงเวลาบิต

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

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

ตัวส่งนับบิตที่ส่งออกไปบนบัสแล้ว

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

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

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

เฟรมข้อมูล Classical CAN: แทรกบิตแบบไดนามิกตั้งแต่ SOF จนถึงและรวมลำดับ CRC จากนั้นเป็นฟิลด์ที่มีรูปแบบคงที่
รูปที่ 2 ฟิลด์ต่าง ๆ แสดงตามลำดับการส่ง การแทรกบิตแบบไดนามิกครอบคลุมลำดับ CRC ด้วย ตัวคั่น CRC รวมถึง ACK และ EOF มีรูปแบบคงที่ บิตรีเซสซีฟเจ็ดบิตที่ EOF ถือว่าถูกต้อง ความกว้างของฟิลด์ในภาพไม่เป็นไปตามมาตราส่วน

การนับบิตค่าเดียวกันสิ้นสุดที่ใด

การแทรกบิตแบบไดนามิกยังใช้กับฟิลด์ที่อยู่ในขอบเขตของกฎในเฟรมร้องขอข้อมูลของ Classical CAN ด้วย ค่า DLC ของเฟรมนี้อาจระบุความยาวข้อมูลที่ร้องขอ แต่ตัวเฟรมไม่มีฟิลด์ข้อมูล เมื่อตรวจสัญญาณที่จับได้ด้วยตนเอง ให้ระบุชนิดเฟรมก่อนหาตำแหน่งลำดับ CRC หากตีความ DLC ของเฟรมร้องขอข้อมูลว่าเป็นจำนวนไบต์ข้อมูลที่ตามมา ตำแหน่งขอบเขตทั้งหมดหลังจากนั้นจะคลาดเคลื่อน

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

หลังลำดับ CRC บิตคั่น CRC ฟิลด์ ACK และส่วนสิ้นสุดเฟรมต่างใช้กฎของตนเอง การนับตามกฎการแทรกบิตแบบไดนามิกในช่วงก่อนหน้าไม่ใช้กับช่วงนี้แล้ว ตัวอย่างเช่น ส่วนสิ้นสุดเฟรมของ Classical CAN มีบิตรีเซสซีฟเจ็ดบิตติดต่อกัน ลำดับนี้เพียงอย่างเดียวไม่บ่งชี้ว่ามีข้อผิดพลาดในการแทรกบิต ให้ระบุขอบเขตเฟรมและแฟล็กข้อผิดพลาดที่พบก่อนตัดสินว่าช่วงสัญญาณคงระดับอยู่ในส่วนใด

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

ข้อมูลที่ยาวเท่ากันอาจใช้เวลาบนบัสต่างกัน

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

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

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

ระบุช่วงที่เกิดข้อผิดพลาดในการแทรกบิต

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

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

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

ตรวจสอบสายทองแดงแต่ละช่วงและบทบาทของแต่ละอุปกรณ์เมื่อขยายระยะ CAN ผ่านใยแก้วนำแสง

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

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

แหล่งข้อมูลและขอบเขต

Bosch: การตรวจจับข้อผิดพลาดใน CAN และ CAN FD · Microchip: การแทรกบิตและรูปแบบเฟรม CAN · อุปกรณ์ใยแก้วนำแสง CAN แบบแปดช่องติดราง DIN ของ FCTEL (ภาษาจีน)

แปลจากบทความทางเทคนิคภาษาจีน: อ่านบทความต้นฉบับภาษาจีน.

คำถามที่พบบ่อย

เหตุใดจึงต้องแทรกบิตหลังบิตค่าเดียวกันห้าบิต?

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

บิตรีเซสซีฟเจ็ดบิตใน EOF ทำให้เกิดข้อผิดพลาดในการแทรกบิตหรือไม่?

EOF ของ Classical CAN มีรูปแบบตายตัว บิตรีเซสซีฟทั้งเจ็ดบิตอยู่นอกช่วงที่ใช้กฎการแทรกบิตแบบไดนามิก

จะติดตามข้อผิดพลาดในการแทรกบิตที่เกิดบนลิงก์ใยแก้วนำแสงได้อย่างไร?

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

อ่านเพิ่มเติม

การขยายระยะบัส CAN ด้วยใยแก้วนำแสง · อินเทอร์เฟซทางไฟฟ้าและการตัดสินสิทธิ์บนบัส CAN

แชร์บทความนี้