CAN Bus บน PCB ร่องรอยแทนสายคู่บิด - จุดที่ต้องพิจารณา
เพื่อประหยัดค่าใช้จ่ายในระบบในโครงการปัจจุบันของฉัน (ไม่มีสายเคเบิล) ฉันต้องการกำจัดสายเคเบิล CAN และเพิ่มร่องรอยให้กับ PCB (หนึ่งคู่จากซ้ายไปขวาเพื่อเชื่อมต่อตัวเชื่อมต่อ + 1 คู่ต้นขั้วกับ CAN ตัวรับส่งสัญญาณในแต่ละบอร์ด) เนื่องจากฉันมีห่วงโซ่ PCB ที่เชื่อมต่อด้วยตัวเชื่อมต่อพร้อมพินฟรีสิ่งนี้ดูเหมือนจะสมเหตุสมผล ฉันกำลังวางแผนที่จะใช้ CAN ด้วยความเร็วที่ค่อนข้างต่ำ (125kbits / วินาที)
PCB แต่ละตัวมีลักษณะประมาณนี้:

ระบบตั้งค่าแบบนี้และยาวประมาณ 50 เมตร!

ฉันได้อ่านคู่ของคำถามอื่น ๆ (เช่นที่นี่ , ที่นี่และที่นี่ ) และบทความและบันทึกการใช้งาน (เช่นนี้ , นี้และนี้ ) แต่ไม่มีที่ไหนเลยที่จะเข้าใจอย่างถ่องแท้
ฉันมีคำถามสองสามข้อสำหรับสิ่งนี้:
ประการแรกเกี่ยวกับอิมพีแดนซ์ของสายส่ง
- มาตรฐาน 120Ohm เป็นอิมพีแดนซ์ดิฟเฟอเรนเชียลของ CAN_H และ CAN_L แต่ละอัน
- จะเข้าถึงอิมพีแดนซ์ 120Ohm บนบอร์ด 4 ชั้นได้อย่างไร? (ฉันใช้สแต็กอัพ 4 ชั้นมาตรฐานJLCPCBและด้วยเครื่องคิดเลขของพวกเขาฉันไม่ถึง 120Ohm สำหรับการสิ้นสุดครั้งเดียวและสำหรับส่วนที่แตกต่างฉันจะเข้าใกล้ด้วยระยะห่าง 3.5mil trace + 4mil ซึ่งใกล้เคียงกับค่าต่ำสุดที่แน่นอน)
- ฉัน / ฉันควรเพิ่มส่วนประกอบพิเศษในการติดตามบัสเพื่อให้ถึง 120Ohm ได้หรือไม่
เกี่ยวกับการป้องกัน:
- แม้จะมีหัวข้ออิมพีแดนซ์ แต่ในข้อกำหนด CAN ขอแนะนำให้ใช้สายเคเบิลคู่บิดแบบหุ้มฉนวน ในกรณีนั้นฉันจะกำหนดเส้นทางสาย CAN บนชั้นในชั้นใดชั้นหนึ่งได้ดีกว่าและป้องกันโดยระนาบ GND ด้านบนด้านข้างและด้านล่างหรือไม่?
เกี่ยวกับคู่บิด:
- มันสมเหตุสมผลหรือไม่ที่จะสร้างแบบจำลองร่องรอยบน PCB ที่คล้ายกับคู่บิด (เช่นอะไรทำนองนี้
โดยรวมคำถามสามารถสรุปได้ดังนี้:
ความกว้างของการติดตามระยะห่างบนเลเยอร์ใดที่ให้ผลลัพธ์ที่ดีที่สุดสำหรับการติดตาม CAN แบบยาวบน PCB 4 ชั้นและฉันจะป้องกันได้อย่างไร
คำตอบ
ฉันไม่ได้ออกแบบด้วย CAN bus โดยเฉพาะ แต่ฉันได้ใช้คู่เฟืองท้าย USB และสายส่งสัญญาณ WiFi (2.4 Ghz)
ปัญหาของคุณดูเหมือนสายส่งเฟืองท้ายแบบคลาสสิก 125kbits / วินาทีควรให้อภัยอย่างเป็นธรรม 1Mb / วินาทีนั้นรุนแรงกว่า
หากคุณมีความหรูหราของบอร์ด 4 ชั้นให้กำหนดเส้นทางสัญญาณ CAN บนชั้นใน สิ่งนี้จะให้เทียบเท่ากับสายเคเบิลที่มีฉนวนหุ้ม ชั้นนอกควรเป็นพื้นดินหรือระนาบกำลัง เครื่องบินภาคพื้นดินและเครื่องบินกำลังควรอยู่คู่กันแบบ capacitive ทำให้เทียบเท่ากันโดยประมาณสำหรับวัตถุประสงค์ในการป้องกัน
ความคิดของคุณเกี่ยวกับร่องรอยการตัดต่อเพื่อสร้างคู่ที่ "บิด" นั้นน่าสนใจ แต่ฉันสงสัยว่ามันจะทำให้คุณปวดหัวมากขึ้น: 1) การสะท้อนสัญญาณในแต่ละครั้ง 2) การฝังทุกครั้งเป็นจุดบกพร่องที่อาจเกิดขึ้นสำหรับการผลิตบอร์ด # 2 ขึ้นอยู่กับคุณภาพของบอร์ดเฮาส์ของคุณ ฉันจะใช้คู่เฟืองท้ายแบบดั้งเดิม (Zo = 120ohms)
สำหรับการคำนวณระยะห่างของสายส่งฉันพบว่าชุดเครื่องมือของ Saturn PCB มีประโยชน์มาก: http://saturnpcb.com/pcb_toolkit/ ฉันจะสังเกตว่าในการเข้าถึงอิมพีแดนซ์ลักษณะ 120 ของคุณคุณอาจต้องมีร่องรอยที่กว้างขึ้น
ตามเอกสาร TI นี้ความยาวสายเคเบิลที่ไม่ตรงกันอาจทำให้เกิดปัญหาการสะท้อนกับ CAN บัส https://www.ti.com/lit/an/slla279a/slla279a.pdf.
อย่าลืมจัดเตรียมตัวต้านทานการเลิกจ้าง 120ohm (ข้ามสาย can bus) ที่ปลายสายส่งและตัวรับสุดท้ายบนบัส
ขั้วต่อ: ควรจะใช้ได้ตราบเท่าที่หน้าสัมผัสสะอาด แยกพินบัสกระป๋องออกจากพินความเร็วสูงอื่น ๆ โดยมีพินกราวด์อยู่ระหว่าง โดยส่วนตัวฉันจะรวมแผ่นบัดกรีหรือขั้วต่อ CAN ด้วยในกรณีที่คุณต้องถอยกลับไปที่สายระหว่างแผงวงจร ถ้าเป็นเช่นนั้นฉันจะใส่ตัวต้านทาน 0 โอห์มในอนุกรมพร้อมกับสาย CAN บนขั้วต่อหลัก สิ่งนี้จะช่วยให้คุณมีความยืดหยุ่นในการปิดใช้งานสาย CAN บนขั้วต่อและเปลี่ยนกลับไปใช้สาย การออกแบบแผน B มีราคาถูกในขณะที่วางแผงวงจร
ความกว้างและระยะห่างของการติดตามขึ้นอยู่กับสแต็กอัพ PCB ของคุณ ใช้ชุดเครื่องมือของ Saturn PCB กับแท็บ "Differential Pairs"
ฉันจะใช้ stackup เช่น
L1 = กราวด์, L2 = สัญญาณ / สายส่ง, L3 = กำลัง, L4 = สัญญาณหรือ
L1 = กราวด์, L2 = สัญญาณ / สายส่ง, L3 = สัญญาณ, L4 = กำลัง
หากคุณมีทองแดงเติมในชั้นอื่น ๆ คุณสามารถผูกไว้กับพื้นโดยใช้จุดเย็บ อย่ากำหนดเส้นทางสัญญาณความเร็วสูงคู่ขนานกับคู่ที่แตกต่างกันเว้นแต่จะถูกคั่นด้วยการเติมพื้น (การป้องกัน) หากสัญญาณความเร็วสูงต้องข้ามไปบนชั้นที่อยู่ติดกันให้ตั้งฉาก

ในการจัดวางเส้นที่แตกต่างคุณไม่ควรออกแบบให้เหมือนสายคู่บิด ... Vias ทำหน้าที่เหมือนตัวเหนี่ยวนำและการเปลี่ยนทิศทางใด ๆ โดยปกติจะทำให้เกิดการสะท้อนกลับ ดังนั้นสิ่งที่คุณต้องการและอะไรคือสิ่งที่ดีที่สุดคือเส้นตรงธรรมดา
โดยปกติคุณจัดวางเส้นดิฟเฟอเรนเชียลเคียงข้างกัน (ถ้าคุณไม่ได้มีการเชื่อมต่อแบบหลวม ๆ ... ซึ่งก็ใช้ได้เช่นกันในบางกรณี) การหมุนไม่ 90 °คุณต้องเก็บร่องรอยทั้งสองไว้ที่ความยาวเท่ากัน (เกือบ) และสั้น ( ในกรณีที่เราสามารถพูดถึงซม. - คิดว่าคุณสามารถหาค่าในมาตรฐานได้) ต้องคำนวณระยะห่างระหว่างเส้นและความกว้างของร่องรอยดังนั้นด้วยวัสดุ pcb และความหนาของชั้นคุณจะรักษาอิมพีแดนซ์ 120Ohm ที่ต้องการ ...
คุณอาจลอง https://sourceforge.net/projects/atlc/ หรือ http://www.hdtvprimer.com/KQ6QV/atlc2.html เพื่อคำนวณสายส่งที่แตกต่างกัน
Kicad มาพร้อมกับ Transmission Line Calculator หรือเก่าดี http://www.hp.woodshot.com/ HP AppCad ... คุณยังพบสิ่งต่างๆสำหรับเครื่องคิดเลขที่ตั้งโปรแกรมได้ตามปกติ
หากคุณปฏิบัติตามกฎสำหรับระบบที่ซับซ้อนกว่านี้เช่น LVDS CAN ไม่ควรทำให้คุณผิดหวัง - มันค่อนข้างแข็งแกร่งแม้ในสภาพแวดล้อมที่เลวร้ายมาก
https://www.ti.com/lit/an/snla302/snla302.pdf
ยังไม่ได้ตรวจสอบ แต่เท่าที่ฉันจำได้ว่าตัวเลขเหล่านี้ใช้ได้สำหรับ Busspeed บางตัวคุณมีความยาวของ Busline และความยาวของต้นขั้วหนึ่งอัน ... เดาบน PCB คุณไม่เคยประสบปัญหากับ CAN
- 1 MBit / s 40 ม. 0.3 ม
- 500 กิโลบิต / วินาที 100 ม. 0.8 ม
- 250 kBit / s 200 ม. 1.5 ม
- 100 กิโลบิต / วินาที 500 ม. 3.0 ม
- 57 กิโลบิต / วินาที 1000 ม. 5.0 ม
- 38 กิโลบิต / วินาที 2000 ม. 7.0 ม
PS: ตามที่ Mr_Engineer ระบุ: คุณจำเป็นต้องยุติ แต่ปลายทั้งสอง (เป็นบัสจริงดังนั้นโหนดใด ๆ จึงรับฟังและส่งสัญญาณ)! ทั้งสองที่มี 120 โอห์ม (60Ohm ที่ dc แต่ 120Ohms สำหรับความถี่กลาง / ที่มีอำนาจเหนือของบัส ... ) - เรามีผลิตภัณฑ์ที่มีการยกเลิกเพียงด้านเดียวและใช้งานได้นานกว่า 20 เมตรความยาวสาย แต่คุณต้อง ปรับแต่งค่า อยู่กับมาตรฐาน!