CAN Bus บน PCB ร่องรอยแทนสายคู่บิด - จุดที่ต้องพิจารณา

Aug 16 2020

เพื่อประหยัดค่าใช้จ่ายในระบบในโครงการปัจจุบันของฉัน (ไม่มีสายเคเบิล) ฉันต้องการกำจัดสายเคเบิล 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 ชั้นและฉันจะป้องกันได้อย่างไร

คำตอบ

1 Mr_Engineer Aug 22 2020 at 02:05

ฉันไม่ได้ออกแบบด้วย 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 = กำลัง

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

1 schnedan Aug 22 2020 at 03:30

ในการจัดวางเส้นที่แตกต่างคุณไม่ควรออกแบบให้เหมือนสายคู่บิด ... 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 เมตรความยาวสาย แต่คุณต้อง ปรับแต่งค่า อยู่กับมาตรฐาน!