ผู้ดูแลระบบ
18702
เพื่อให้เข้าใจหลักการของ CAN บัส เราตัดสินใจเขียน / แปลบทความจำนวนหนึ่งในหัวข้อนี้ตามปกติ โดยอ้างอิงจากแหล่งข้อมูลจากต่างประเทศ
หนึ่งในแหล่งข้อมูลเหล่านี้ ซึ่งสำหรับเราแล้วดูเหมือนว่าจะแสดงให้เห็นถึงหลักการของ CAN บัสได้อย่างเหมาะสม นั่นคือการนำเสนอวิดีโอของผลิตภัณฑ์การฝึกอบรม CANBASIC โดย Igendi Engineering (http://canbasic.com)
ยินดีต้อนรับสู่การนำเสนอผลิตภัณฑ์ CANBASIC ใหม่ ซึ่งเป็นระบบการฝึกอบรม (บอร์ด) สำหรับการทำงานของ CAN บัส (CAN) โดยเฉพาะ
เราจะเริ่มต้นด้วยพื้นฐานของการสร้างเครือข่าย CAN บัส แผนผังแสดงรถยนต์พร้อมระบบไฟส่องสว่าง
มีการแสดงการเดินสายไฟแบบทั่วไป โดยแต่ละดวงเชื่อมต่อโดยตรงกับสวิตช์หรือหน้าสัมผัสแป้นเบรกบางประเภท
ขณะนี้มีการแสดงฟังก์ชันที่คล้ายกันโดยใช้เทคโนโลยี CAN บัส ไฟหน้าและไฟท้ายเชื่อมต่อกับโมดูลควบคุม โมดูลควบคุมเชื่อมต่อแบบขนานด้วยสายบัสเดียวกัน
ตัวอย่างเล็กๆ นี้แสดงให้เห็นว่าปริมาณการเดินสายไฟฟ้าลดลง ยิ่งไปกว่านั้น โมดูลควบคุมยังสามารถตรวจจับหลอดไฟที่ไหม้และแจ้งให้คนขับทราบได้
รถในมุมมองที่ระบุมีโมดูลควบคุมสี่โมดูลและสะท้อนให้เห็นอย่างชัดเจนถึงการสร้างระบบการฝึกอบรม (บอร์ด) CANBASIC
จากด้านบน มีสี่โหนดบัส (โหนด CAN)
โมดูลด้านหน้าควบคุมไฟหน้า
หน่วยเตือนภัยให้การควบคุมภายในรถ
โมดูลควบคุมหลักเชื่อมต่อระบบยานพาหนะทั้งหมดเพื่อวัตถุประสงค์ในการวินิจฉัย
โหนดด้านหลังควบคุมไฟท้าย
บนกระดานฝึกอบรม CANBASIC คุณสามารถดูการกำหนดเส้นทาง (ตำแหน่ง) ของสัญญาณสามสัญญาณ: "กำลัง", "CAN-Hi" และ "กราวด์" ที่เชื่อมต่ออยู่ในโมดูลควบคุม
ในรถยนต์ส่วนใหญ่ คุณต้องมีตัวแปลง OBD-USB เพื่อเชื่อมต่อโมดูลควบคุมหลักกับพีซีโดยใช้ซอฟต์แวร์วินิจฉัย
บอร์ด CANBASIC มีตัวแปลง OBD-USB อยู่แล้วและสามารถเชื่อมต่อโดยตรงกับพีซีได้
บอร์ดใช้พลังงานจากอินเทอร์เฟซ USB ดังนั้นจึงไม่จำเป็นต้องใช้สายเคเบิลเพิ่มเติม
สายบัสใช้ในการถ่ายโอนข้อมูลจำนวนมาก มันทำงานอย่างไร?
วิธีการทำงานของ CAN บัส
ข้อมูลนี้จะถูกส่งตามลำดับ นี่คือตัวอย่าง
ผู้ที่มีหลอดไฟ เครื่องส่ง ต้องการส่งข้อมูลบางอย่างไปยังบุคคลที่มีกล้องโทรทรรศน์ ผู้รับ (ผู้รับ) เขาต้องการส่งข้อมูล
ในการทำเช่นนี้ พวกเขาตกลงให้ผู้รับตรวจสอบสถานะของหลอดไฟทุกๆ 10 วินาที
ดูเหมือนว่า:
หลังจาก 80 วินาที:
ขณะนี้มีการส่งข้อมูล 8 บิตในอัตรา 0.1 บิตต่อวินาที (เช่น 1 บิตต่อ 10 วินาที) สิ่งนี้เรียกว่าการสื่อสารแบบอนุกรม
หากต้องการใช้วิธีนี้ในแอปพลิเคชันยานยนต์ ช่วงเวลาจะลดลงจาก 10 วินาทีเป็น 0.000006 วินาที เพื่อถ่ายโอนข้อมูลโดยการเปลี่ยนระดับแรงดันไฟฟ้าบนบัสข้อมูล
ออสซิลโลสโคปใช้ในการวัดสัญญาณไฟฟ้าของ CAN บัส แผ่นทดสอบสองแผ่นบนบอร์ด CANBASIC ช่วยให้สามารถวัดสัญญาณนี้ได้
หากต้องการแสดงข้อความ CAN แบบเต็ม ความละเอียดของออสซิลโลสโคปจะลดลง
เป็นผลให้ไม่สามารถรับรู้บิต CAN เดี่ยวได้อีกต่อไป เพื่อแก้ปัญหานี้ โมดูล CANBASIC ได้ติดตั้งออสซิลโลสโคปเก็บข้อมูลดิจิทัล
เราใส่โมดูล CANBASIC ลงในซ็อกเก็ต USB ฟรี หลังจากนั้นระบบจะตรวจพบโดยอัตโนมัติ ซอฟต์แวร์ CANBASIC สามารถเปิดใช้งานได้ในขณะนี้
คุณสามารถดูมุมมองของซอฟต์แวร์ออสซิลโลสโคปพร้อมแนบค่าบิตได้ สีแดงแสดงข้อมูลที่ส่งผ่านในตัวอย่างก่อนหน้า
เพื่ออธิบายส่วนอื่นๆ ของข้อความ CAN เราจะเปลี่ยนสีเฟรม CAN และแนบคำอธิบายประกอบลงไป
แต่ละส่วนที่เป็นสีของข้อความ CAN จะสอดคล้องกับช่องป้อนข้อมูลที่มีสีเดียวกัน พื้นที่ที่มีเครื่องหมายสีแดงประกอบด้วยข้อมูลผู้ใช้ ซึ่งสามารถระบุในรูปแบบบิต นิบเบิล หรือเลขฐานสิบหก
พื้นที่สีเหลืองกำหนดจำนวนข้อมูลผู้ใช้ ตัวระบุเฉพาะสามารถตั้งค่าได้ในพื้นที่สีเขียว
พื้นที่สีน้ำเงินช่วยให้คุณตั้งค่าข้อความ CAN สำหรับคำขอระยะไกลได้ ซึ่งหมายความว่าคาดว่าจะได้รับการตอบสนองจากโหนด CAN อื่น (ผู้พัฒนาระบบเองไม่แนะนำให้ใช้คำขอระยะไกลด้วยเหตุผลหลายประการที่นำไปสู่ความบกพร่องของระบบ แต่นี่จะเป็นบทความอื่น)
ระบบ CAN บัสหลายระบบได้รับการปกป้องจากการรบกวนโดยช่องสัญญาณข้อมูล CAN-LO ที่สองซึ่งกลับด้านตามสัญญาณ CAN-HI (เช่น สัญญาณเดียวกันจะถูกส่งโดยมีเครื่องหมายตรงกันข้ามเท่านั้น)
หกบิตต่อเนื่องที่มีระดับเดียวกันกำหนดจุดสิ้นสุดของเฟรม CAN
บังเอิญ ส่วนอื่น ๆ ของเฟรม CAN อาจมีบิตต่อเนื่องในระดับเดียวกันมากกว่าห้าบิต
เพื่อหลีกเลี่ยงเครื่องหมายบิตนี้ หากบิตต่อเนื่องกัน 5 บิตที่มีระดับเดียวกันปรากฏขึ้น บิตตรงข้ามจะถูกแทรกที่ส่วนท้ายของเฟรม CAN บิตเหล่านี้เรียกว่าบิตพนักงาน (บิตขยะ) เครื่องรับ CAN (เครื่องรับสัญญาณ) จะไม่สนใจบิตเหล่านี้
ด้วยฟิลด์อินพุต ข้อมูลทั้งหมดของเฟรม CAN สามารถระบุได้ ดังนั้นจึงสามารถส่งข้อความ CAN ทุกข้อความได้
ข้อมูลที่แทรกจะได้รับการอัปเดตทันทีในเฟรม CAN ในตัวอย่างนี้ ความยาวของข้อมูลจะเปลี่ยนจากหนึ่งไบต์เป็น 8 ไบต์และเลื่อนกลับหนึ่งไบต์
ข้อความคำอธิบายระบุว่าไฟเลี้ยวจะถูกควบคุมด้วยตัวระบุ "2C1" และบิตข้อมูล 0 และ 1 บิตข้อมูลทั้งหมดจะถูกรีเซ็ตเป็น 0
ตัวระบุถูกกำหนดเป็น ""2C1" ในการเปิดใช้งานสัญญาณไฟเลี้ยว ต้องตั้งค่าบิตข้อมูลจาก 0 ถึง 1
ในโหมดซาลอน คุณสามารถควบคุมโมดูลทั้งหมดได้ด้วยการคลิกเมาส์ง่ายๆ ข้อมูล CAN จะถูกตั้งค่าโดยอัตโนมัติตามการดำเนินการที่ต้องการ
ไฟเลี้ยวสามารถตั้งเป็นไฟต่ำเพื่อทำงานเป็น DRL ได้ ความสว่างจะถูกควบคุมโดยการปรับความกว้างพัลส์ (PWM) ตามความสามารถของเทคโนโลยีไดโอดสมัยใหม่
ตอนนี้เราสามารถเปิดใช้งานไฟหน้าไฟต่ำ ไฟตัดหมอก ไฟเบรก และไฟหน้าไฟสูง
เมื่อปิดไฟต่ำ ไฟตัดหมอกก็ดับด้วย ตรรกะการควบคุมของระบบไฟ CANBASIC สอดคล้องกับรถยนต์ Volkswagen รวมคุณสมบัติการจุดระเบิดและ "กลับบ้าน"
ด้วยโหนดสัญญาณ คุณสามารถอ่านสัญญาณเซ็นเซอร์หลังจากเริ่มต้นคำขอระยะไกล
ในโหมดคำขอระยะไกล เฟรม CAN ที่สองจะได้รับและแสดงด้านล่างเฟรม CAN ที่ส่ง
ไบต์ข้อมูล CAN มีผลการวัดเซ็นเซอร์แล้ว คุณสามารถเปลี่ยนค่าที่วัดได้โดยการเข้าใกล้เซ็นเซอร์นิ้ว
ปุ่มหยุดชั่วคราวหยุดเฟรม CAN ปัจจุบันและช่วยให้การวิเคราะห์แม่นยำ
ดังที่แสดงไว้แล้ว ส่วนต่างๆ ของเฟรม CAN สามารถซ่อนได้
นอกจากนี้ยังรองรับการซ่อนแต่ละบิตในเฟรม CAN
สิ่งนี้มีประโยชน์มากหากคุณต้องการใช้การแสดงเฟรม CAN ในเอกสารของคุณเอง เช่น แบบฝึกหัด
การวินิจฉัยและการซ่อมแซม: CAN บัส
21.02.2006
นี่คือลักษณะของ "ยาง" ที่เหมือนกัน (ส่วนใหญ่)สามารถ ' ซึ่งในช่วงไม่กี่ปีที่ผ่านมาเราจะต้องจัดการบ่อยขึ้นเรื่อย ๆ :
ภาพที่ 1
นี่คือสายเคเบิลสองเส้นธรรมดาที่เรียกว่า Twisted Pair .
ภาพด้านบน 1 แสดงสายไฟ CAN High และ CAN Low ของชุดจ่ายไฟ
สายเหล่านี้ใช้เพื่อแลกเปลี่ยนข้อมูลระหว่างชุดควบคุม โดยสามารถส่งข้อมูลความเร็วของรถ ความเร็วในการหมุนของเพลาข้อเหวี่ยง จังหวะการจุดระเบิด และอื่นๆ
โปรดทราบว่าสายไฟเส้นหนึ่งมีแถบสีดำกำกับเพิ่มเติม นี่คือวิธีการทำเครื่องหมายลวดและกำหนดด้วยสายตาสามารถสูง (สีส้ม-ดำ).
สีลวดสามารถต่ำ - สีน้ำตาลอมส้ม
สำหรับสีหลักของยางสามารถ ใช้สีส้ม
ในภาพวาดและภาพวาดเป็นเรื่องปกติที่จะอธิบายสีของสายบัสสามารถ สีอื่น ๆ ได้แก่ :
ภาพที่ 2
สามารถสูง - สีเหลือง
สามารถต่ำ - สีเขียว
ยางมีหลายประเภทสามารถ กำหนดโดยหน้าที่ที่พวกเขาทำ:
ระบบส่งกำลัง CAN บัส(ช่องทางด่วน) .
มันช่วยให้ส่งข้อมูลด้วยความเร็ว 500 kbps และใช้สำหรับการสื่อสารระหว่างหน่วยควบคุม (เครื่องยนต์-เกียร์)
ความสะดวกสบาย CAN บัส(ช่องช้า) .
มันช่วยให้ส่งข้อมูลด้วยความเร็ว 100 kbps และใช้สำหรับการสื่อสารระหว่างชุดควบคุมที่เป็นส่วนหนึ่งของระบบ Comfort
อินโฟเทนเมนท์ CAN ดาต้าบัส(ช่องสัญญาณช้า) ซึ่งช่วยให้คุณถ่ายโอนข้อมูลด้วยความเร็ว 100 kBit / s ให้การสื่อสารระหว่างระบบบริการต่างๆ (เช่น ระบบโทรศัพท์และระบบนำทาง)
รถยนต์รุ่นใหม่มีความคล้ายคลึงกับเครื่องบินมากขึ้นเรื่อยๆ ในแง่ของจำนวนคุณสมบัติที่ประกาศเพื่อความปลอดภัย ความสะดวกสบาย และเป็นมิตรต่อสิ่งแวดล้อม มีชุดควบคุมจำนวนมากขึ้นเรื่อย ๆ และการ "ดึง" จากสายไฟแต่ละเส้นนั้นไม่สมจริง
ดังนั้นนอกจากยางแล้วสามารถ มียางอื่นที่ได้รับชื่อแล้ว:
– บัส LIN (บัสสายเดียว)
– บัสส่วนใหญ่ (บัสใยแก้วนำแสง)
- บัสไร้สาย Bluetooth
แต่อย่า "เบลอความคิดไปตามต้นไม้" เรามามุ่งความสนใจไปที่ยางเส้นใดเส้นหนึ่ง:สามารถ (ตามบรรษัทบ๊อช).
โดยใช้ CAN บัสเป็นตัวอย่าง หน่วยพลังงาน คุณสามารถดูรูปคลื่น:
ภาพที่ 3
เมื่ออยู่บนบัส CAN สูง สถานะที่โดดเด่นจากนั้นแรงดันไฟฟ้าของสายไฟจะเพิ่มขึ้นเป็น 3.5 โวลต์
ในสถานะถอย แรงดันไฟฟ้าของสายไฟทั้งสองคือ 2.5 โวลต์
เมื่ออยู่บนสายไฟต่ำ สถานะเด่น แรงดันไฟฟ้าลดลงถึง 1.5 โวลต์
("เด่น" - ปรากฏการณ์ที่ครอบงำ ครอบงำ หรือครอบงำในด้านใด ๆ - จากพจนานุกรม).
เพื่อปรับปรุงความน่าเชื่อถือของการส่งข้อมูลบัสสามารถ ใช้วิธีดิฟเฟอเรนเชียลเพื่อส่งสัญญาณผ่านสายสองสาย, เรียกว่าคู่บิด . และสายที่ประกอบเป็นคู่นี้เรียกว่าสามารถสูงและต่ำได้ .
ในสถานะเริ่มต้นของบัส แรงดันไฟฟ้าคงที่บนสายทั้งสองจะถูกรักษาไว้ที่ระดับ (ฐาน) ที่แน่นอน สำหรับรถบัสสามารถ หน่วยพลังงานมีค่าเท่ากับ 2.5 โวลต์โดยประมาณ
สถานะเริ่มต้นนี้เรียกว่า "สถานะพัก" หรือ "ถอย"
วิธีการส่งและแปลงสัญญาณสามารถโดยสารรถประจำทาง?
หน่วยควบคุมแต่ละหน่วยเชื่อมต่อกับสามารถ บัสผ่านอุปกรณ์แยกต่างหากที่เรียกว่าตัวรับส่งสัญญาณซึ่งมีตัวรับสัญญาณซึ่งเป็นแอมพลิฟายเออร์ดิฟเฟอเรนเชียลติดตั้งที่อินพุตสัญญาณ:
ภาพที่ 4
มาทางสายสูงและต่ำ สัญญาณถูกป้อนเข้าสู่แอมพลิฟายเออร์ดิฟเฟอเรนเชียล ประมวลผลและป้อนเข้ากับอินพุตของชุดควบคุม
สัญญาณเหล่านี้แสดงถึงแรงดันไฟฟ้าที่เอาต์พุตของแอมพลิฟายเออร์ดิฟเฟอเรนเชียล
แอมพลิฟายเออร์ดิฟเฟอเรนเชียลสร้างแรงดันเอาต์พุตนี้เป็นค่าความแตกต่างระหว่างแรงดันบนสายสูงและสายต่ำของ CAN บัส
สิ่งนี้จะกำจัดอิทธิพลของค่าแรงดันพื้นฐาน (สำหรับ CAN บัสของหน่วยจ่ายไฟคือ 2.5 V) หรือแรงดันไฟฟ้าใดๆ ที่เกิดจากสัญญาณรบกวนจากภายนอก ตัวอย่างเช่น
โดยวิธีการเกี่ยวกับการรบกวน อย่างที่พวกเขาพูดว่า "ยางสามารถ ค่อนข้างทนต่อการรบกวนซึ่งเป็นเหตุผลว่าทำไมจึงพบการใช้งานที่กว้างขวางเช่นนี้
ลองคิดดูสิ
สาย CAN บัส ชุดจ่ายไฟอยู่ในห้องเครื่องและอาจได้รับผลกระทบจากการรบกวนหลายชนิด เช่น การรบกวนจากระบบจุดระเบิด
ตั้งแต่ CAN บัส ประกอบด้วยสายไฟสองเส้นที่บิดเข้าด้วยกัน จากนั้นสัญญาณรบกวนจะส่งผลต่อสายไฟสองเส้นพร้อมกัน:
จากรูปด้านบน คุณจะเห็นว่าจะเกิดอะไรขึ้นต่อไป: ในแอมพลิฟายเออร์ดิฟเฟอเรนเชียล แรงดันไฟฟ้าที่สายไฟต่ำ (1.5 V - "หน้า ") ลบออกจากแรงดันไฟฟ้า
บนสายไฟสูง (3.5 V - "หน้า ") และไม่มีการรบกวนสัญญาณที่ประมวลผล (" Pp" - สัญญาณรบกวน).
หมายเหตุ: เนื่องจากมีเวลาเพียงพอ บทความจึงอาจมีต่อ - ยังคงมี "เบื้องหลัง" อยู่มาก
Kucher V.P.
© Legion-Avtodata
คุณอาจสนใจ:
CAN บัสคืออะไร
ประวัติความเป็นมาของ CAN เริ่มขึ้นในช่วงกลางทศวรรษที่ 80 ของศตวรรษที่ผ่านมา บ๊อชได้ร่วมมือกับ Intel เพื่อพัฒนาอินเทอร์เฟซข้อมูลดิจิทัลใหม่ นั่นคือ Controller Area Network (CAN)
การเชื่อมต่อสัญญาณเตือนภัยแบบอะนาล็อก (ไม่มี CAN บัส)
ทำไมคุณต้องมี CAN บัสในรถยนต์
CAN บัสช่วยให้คุณเชื่อมต่อระหว่างเซ็นเซอร์ ตัวควบคุม แอคทูเอเตอร์ และหน่วยอื่นๆ ที่อยู่ในรถจำนวนเท่าใดก็ได้ (เช่น: ABS, SRS AIRBAG, ระบบ ESP, เครื่องทำให้เคลื่อนที่ไม่ได้, หน่วยควบคุมเครื่องยนต์, สภาพอากาศ, กระปุกเกียร์, เซ็นทรัลล็อค, ไฟ, ระบบกันสะเทือน , แผงหน้าปัด ฯลฯ...) ในโหมดดูเพล็กซ์ (รับและส่งข้อมูล) ที่ความเร็วสูงสุด 1 Mbps ในเวลาเดียวกัน บัสสามารถประกอบด้วยสายไฟเพียงสองเส้น (คู่บิด) ก่อนหน้านี้ต้องใช้ลวดร้อยเพื่อเชื่อมต่อบล็อก การถ่ายโอนหน่วยข้อมูลจากบล็อกหนึ่งไปยังอีกบล็อกหนึ่งดำเนินการผ่านสายแยก
ตั้งปลุกผ่าน CAN บัส
สัญญาณเตือนรถด้วยโมดูล CAN
สามารถโมดูล
สัญญาณเตือนรถสมัยใหม่ผลิตด้วยโมดูล CAN ในตัว ซึ่งช่วยให้คุณเชื่อมต่อสัญญาณกันขโมยรถเข้ากับ CAN บัสแบบดิจิทัลของรถได้โดยตรง สัญญาณเตือนรถจะรับข้อมูลดิจิตอลเกี่ยวกับสถานะของลิมิตสวิตช์ ล็อค การจุดระเบิด เบรกมือ มาตรวัดความเร็วรอบ ฯลฯ และยังสามารถควบคุมการล็อกประตู, กระจกไฟฟ้า, หลังคาซันรูฟ, สัญญาณเตือนภัยมาตรฐาน และระบบอื่นๆ ของรถยนต์บางระบบ ช่วยให้คุณลดการรบกวนการเดินสายมาตรฐานได้อย่างมาก (การเชื่อมต่อทำได้โดยใช้สายไฟเพียง 6-8 เส้น แทนที่จะเป็น 15-20 ในรุ่นที่ไม่ใช้บัสบัส) และหลีกเลี่ยงปัญหาเกี่ยวกับการรับประกันอุปกรณ์ไฟฟ้าของรถ
รถยนต์สมัยใหม่ไม่ได้เป็นเพียงวิธีการเดินทางเท่านั้น แต่ยังเป็นอุปกรณ์ขั้นสูงที่มีฟังก์ชันมัลติมีเดียและระบบควบคุมอิเล็กทรอนิกส์สำหรับหน่วยต่างๆ และเซ็นเซอร์อีกมากมาย ผู้ผลิตรถยนต์หลายรายนำเสนอฟังก์ชันของผู้ช่วยจราจร ผู้ช่วยจอดรถ ตรวจสอบและควบคุมรถยนต์จากโทรศัพท์ของคุณ สิ่งนี้เกิดขึ้นได้เนื่องจากการใช้ CAN บัสในรถยนต์ซึ่งระบบทั้งหมดเชื่อมต่ออยู่: เครื่องยนต์ ระบบเบรก พวงมาลัย มัลติมีเดีย สภาพอากาศ ฯลฯ
รถของฉันคือ Skoda Octavia 2011 ไม่มีตัวเลือกการควบคุมจากโทรศัพท์ ดังนั้นฉันจึงตัดสินใจแก้ไขข้อบกพร่องนี้ และในขณะเดียวกันก็เพิ่มฟังก์ชันการควบคุมด้วยเสียง ในฐานะที่เป็นเกตเวย์ระหว่าง CAN บัสและโทรศัพท์ ฉันใช้ Raspberry Pi พร้อมแผงป้องกัน CAN BUS และเราเตอร์ TP-Link WiFi โปรโตคอลการสื่อสารสำหรับหน่วยยานยนต์ถูกปิด และ Volkswagen ปฏิเสธที่จะให้เอกสารของโปรโตคอลกับจดหมายทั้งหมดของฉัน ดังนั้นวิธีเดียวที่จะค้นหาว่าอุปกรณ์สื่อสารกันอย่างไรในรถยนต์และเรียนรู้วิธีควบคุมอุปกรณ์เหล่านั้นก็คือการทำวิศวกรรมย้อนกลับโปรโตคอล VW CAN บัส
ฉันทำทีละขั้นตอน:
- กำลังเชื่อมต่อกับ CAN บัสของรถยนต์
- ควบคุมด้วยเสียงด้วย Homekit และ Siri
สามารถป้องกันการพัฒนาสำหรับ Raspberry Pi
ฉันใช้โครงร่างโล่ที่นี่ lnxpps.de/rpie นอกจากนี้ยังมีคำอธิบายของพิน 2 ไมโครวงจร MCP2515 และ MCP2551 ใช้เพื่อสื่อสารกับ CAN 2 สาย CAN-High และ CAN-Low เชื่อมต่อกับโล่ ใน SprintLayout 6 ฉันกระจายกระดาน บางที CANBoardRPi.lay อาจมีประโยชน์สำหรับใครบางคน (ในภาพชื่อเรื่อง ต้นแบบของโล่บนเขียงหั่นขนม)การติดตั้งซอฟต์แวร์ CAN บัส
สำหรับ Raspbian 2-x year ฉันจำเป็นต้องแก้ไข bcm2708.c เพื่อเพิ่มการรองรับ CAN (อาจไม่จำเป็นในตอนนี้) ในการทำงานกับ CAN บัส คุณต้องติดตั้งแพ็คเกจยูทิลิตี้ can-utils จาก github.com/linux-can/can-utils จากนั้นโหลดโมดูลและเพิ่มอินเทอร์เฟซ can:# เริ่มต้น insmod spi-bcm2708 insmod can insmod can-dev insmod can-raw insmod can-bcm insmod mcp251x # Maerklin Gleisbox (60112 และ 60113) ใช้ 250000 # โหมดวนกลับสำหรับการทดสอบชุดลิงค์ ip can0 ประเภทสามารถบิตเรต 125000 วนกลับบน ifconfig can0 ขึ้น
เราตรวจสอบว่าอินเทอร์เฟซ CAN เพิ่มขึ้นด้วยคำสั่ง ifconfig:
คุณสามารถตรวจสอบว่าทุกอย่างทำงานได้โดยการส่งคำสั่งและรับคำสั่ง
ในเทอร์มินัลเดียว เราฟัง:
[ป้องกันอีเมล]~ # candump ใด ๆ ,0:0,#FFFFFFFF
ในเทอร์มินัลอื่น เราส่ง:
[ป้องกันอีเมล]~ # cansend can0 123#deadbeef
อธิบายกระบวนการติดตั้งโดยละเอียดเพิ่มเติมที่นี่ lnxpps.de/rpie
กำลังเชื่อมต่อกับ CAN บัสของรถยนต์
หลังจากศึกษาเอกสารเปิดเล็กน้อยเกี่ยวกับรถบัส VW CAN ฉันพบว่าฉันใช้รถบัส 2 คันระบบส่งกำลัง CAN บัสซึ่งส่งข้อมูลด้วยความเร็ว 500 kbit / s เชื่อมโยงหน่วยควบคุมทั้งหมดที่ให้บริการหน่วยนี้
ตัวอย่างเช่น อุปกรณ์ต่อไปนี้สามารถเชื่อมต่อกับระบบส่งกำลัง CAN บัส:
- ชุดควบคุมเครื่องยนต์,
- ชุดควบคุม ABS
- ชุดควบคุมระบบรักษาเสถียรภาพอัตราแลกเปลี่ยน
- ชุดควบคุมกระปุกเกียร์,
- ชุดควบคุมถุงลมนิรภัย,
- แผงหน้าปัด
ตัวอย่างเช่น ไปยัง CAN บัสของระบบความสะดวกสบายและข้อมูล<командной системы могут быть
เชื่อมต่ออุปกรณ์ต่อไปนี้:
- ชุดควบคุมสำหรับระบบ Climatronic หรือระบบปรับอากาศ
- ชุดควบคุมที่ประตูรถ
- ชุดควบคุมระบบความสะดวกสบาย,
- ชุดควบคุมพร้อมจอแสดงผลสำหรับวิทยุและระบบนำทาง
รถบัสทั้งสองเชื่อมต่อผ่านเกตเวย์ซึ่งตั้งอยู่ในบริเวณใต้พวงมาลัย ตัวเชื่อมต่อการวินิจฉัย OBD2 ยังเชื่อมต่อกับเกตเวย์ น่าเสียดายที่คุณไม่สามารถฟังการจราจรจากยางทั้งสองผ่านตัวเชื่อมต่อ OBD2 ได้ คุณสามารถส่งได้เท่านั้น คำสั่งและขอสถานะ ฉันตัดสินใจว่าจะใช้คอมฟอร์ทบัสเท่านั้น และจุดที่สะดวกที่สุดในการเชื่อมต่อกับรถบัสคือขั้วต่อที่ประตูคนขับ
ตอนนี้ฉันสามารถฟังทุกสิ่งที่เกิดขึ้นใน Comfort CAN บัสและส่งคำสั่งได้
การพัฒนาตัวดมกลิ่นและการศึกษาโปรโตคอล CAN บัส
หลังจากที่ฉันเข้าถึงการฟัง CAN บัสได้แล้ว ฉันต้องถอดรหัสว่าใครกำลังส่งสัญญาณถึงใครและอะไร รูปแบบแพ็กเก็ต CAN แสดงอยู่ในรูป
โปรแกรมอรรถประโยชน์ทั้งหมดจากชุด can-utils สามารถแยกวิเคราะห์แพ็กเก็ต CAN ได้เองและส่งคืนข้อมูลที่เป็นประโยชน์เท่านั้น กล่าวคือ:
- ตัวระบุ
- ความยาวข้อมูล
- ข้อมูล
สำหรับ macOS ฉันเขียนแอปพลิเคชันง่ายๆ ที่เพิ่มเซลล์ลงในตารางสำหรับที่อยู่อุปกรณ์แต่ละรายการ และในเซลล์นี้ ฉันเห็นแล้วว่าข้อมูลใดกำลังเปลี่ยนแปลง
ฉันกดปุ่มกระจกไฟฟ้า ฉันพบเซลล์ที่มีการเปลี่ยนแปลงข้อมูล จากนั้นฉันก็พิจารณาว่าคำสั่งใดสอดคล้องกับการกดลง กดขึ้น กดขึ้น กดค้างไว้
คุณสามารถตรวจสอบว่าคำสั่งทำงานโดยส่งจากเทอร์มินัล เช่น คำสั่งให้ยกหน้าต่างด้านซ้ายขึ้น:
ส่ง can0 181#0200
คำสั่งที่ส่งโดยอุปกรณ์ผ่าน CAN บัสในรถยนต์ VAG (Skoda Octavia 2011) ได้รับจากวิศวกรรมย้อนกลับ:
// กระจกหน้าซ้ายขึ้น 181#0200 // กระจกหน้าซ้ายลง 181#0800 // กระจกหน้าขวาขึ้น 181#2000 // กระจกหน้าขวาล่าง 181#8000 // กระจกหลังซ้ายขึ้น 181#0002 // กระจกหลังซ้ายขึ้น ลง 181#0008 // กระจกขวาขึ้น 181#0020 // กระจกขวาลง 181#0080 // เซ็นทรัลล็อคเปิด 291#09AA020000 // เซ็นทรัลล็อคปิด 291#0955040000 // อัพเดตสถานะไฟของเซ็นทรัลล็อค (เมื่อคุณส่ง คำสั่งเปิด/ปิดล็อค จากนั้น LED บนปุ่มควบคุมการล็อคจะไม่เปลี่ยนสถานะ เพื่อให้แสดงสถานะที่แท้จริงของเซ็นทรัลล็อค คุณต้องส่งคำสั่งอัปเดต) 291#0900000000
ฉันขี้เกียจเกินกว่าจะสำรวจอุปกรณ์อื่นๆ ทั้งหมด ดังนั้นในรายการนี้จึงเลือกเฉพาะสิ่งที่ฉันสนใจ
การพัฒนาแอปพลิเคชั่นโทรศัพท์
ฉันใช้คำสั่งที่ได้รับเขียนแอปพลิเคชันสำหรับ iPhone ซึ่งเปิด / ปิดหน้าต่างและควบคุมเซ็นทรัลล็อคบน Raspberry Pi ฉันเริ่มเซิร์ฟเวอร์ขนาดเล็ก 2 เครื่อง เซิร์ฟเวอร์แรกส่งข้อมูลจาก candump ไปยัง TCP / IP เซิร์ฟเวอร์ที่สองรับคำสั่งจาก iPhone และส่งไปยัง cansend
ควบคุมแหล่งที่มาของแอปอัตโนมัติสำหรับ iOS
// // FirstViewController.m // Car Control // // สร้างโดย Vitaliy Yurkin เมื่อ 17/05/15 // ลิขสิทธิ์ (c) 2015 Vitaliy Yurkin สงวนลิขสิทธิ์. // #import "FirstViewController.h" #import "DataConnection.h" #import "CommandConnection.h" @interface FirstViewController ()
มีวิธีที่จะไม่เขียนแอปพลิเคชันของคุณเองสำหรับโทรศัพท์ แต่หากต้องการใช้แอปพลิเคชันสำเร็จรูปจากโลกของบ้านอัจฉริยะ คุณเพียงแค่ต้องติดตั้งระบบอัตโนมัติบน Raspberry Pi
รถยนต์สมัยใหม่ติดตั้งชุดควบคุมอิเล็กทรอนิกส์สำหรับระบบต่างๆ: เครื่องยนต์ ระบบเบรกป้องกันล้อล็อก ตัวถัง และอื่นๆ โดยพื้นฐานแล้วบล็อกเหล่านี้คือไมโครคอมพิวเตอร์
เพื่อทำความเข้าใจว่า CAN บัสคืออะไรในรถยนต์ ลองนึกภาพว่าเครือข่ายท้องถิ่นถูกจัดไว้ในรถซึ่งไมโครคอมพิวเตอร์เหล่านี้เชื่อมต่ออยู่เพื่อให้ทำงานในคอมเพล็กซ์
ซึ่งคล้ายกับการเชื่อมต่อคอมพิวเตอร์ในสำนักงานเข้ากับเครือข่ายเพื่อให้พนักงานสามารถรับข้อมูลจากกันและกันได้โดยง่าย และเจ้านายมีโอกาสที่จะควบคุมการทำงานของพนักงานในสำนักงานได้อย่างรวดเร็ว
คอมพิวเตอร์ออนบอร์ดและระบบการวินิจฉัยทำหน้าที่เป็นหัวหน้าในรถ
ประวัติการพัฒนาและการรวมเครือข่ายพื้นที่ควบคุม
BOSCH ซึ่งดำเนินการวิจัยในด้านระบบอัตโนมัติในทศวรรษที่ 80 ของศตวรรษที่ผ่านมา ได้เสนอมาตรฐานการสื่อสารของไมโครคอนโทรลเลอร์ที่สามารถนำไปใช้ในอุตสาหกรรมยานยนต์ได้เช่นกัน
มาตรฐาน CAN ไม่ได้ใช้เฉพาะในรถยนต์เท่านั้น ปัจจุบันใช้ในแนวคิดของ "บ้านอัจฉริยะ" ระบบอัตโนมัติทางอุตสาหกรรม ฯลฯ
สำหรับเทคโนโลยียานยนต์ มาตรฐาน CAN (Controller Area Network) ได้รับการปรับให้เข้ากับบัสที่มีชั้นทางกายภาพ มันถูกจัดระเบียบโดยใช้ตัวนำคู่บิดซึ่งแพ็คเก็ตของสัญญาณที่มีขั้วต่างกันไป
มาตรฐานดังกล่าวได้รับการจำแนกระหว่างประเทศ ISO 11898 เฟรม (แพ็คเก็ต) รวมถึงสัญญาณข้อมูล 11 บิต (หรือ 29 บิตในโหมดขยาย)
โดยทั่วไปแล้ว CAN บัสอาจไม่จำเป็นต้องใช้งานโดยใช้ตัวนำคู่บิดเกลียว เป็นได้ทั้งไฟเบอร์ออปติกและช่องสัญญาณวิทยุ
สามารถสันนิษฐานได้ว่าเมื่อมีการเปิดตัวรถยนต์ไร้คนขับ CAN บัสจะถูกเปลี่ยนเป็นอินเทอร์เฟซมือถือสำหรับการส่งข้อมูลของยานพาหนะหนึ่งคันและอาจเป็นยานพาหนะที่ซับซ้อน
รถยนต์ CAN บัส: มันคืออะไรและทำงานอย่างไร
บัสเป็นเครือข่ายท้องถิ่นที่มีการแลกเปลี่ยนข้อมูลระหว่างหน่วยควบคุมของระบบยานพาหนะต่างๆ ดังนั้น หน่วยควบคุม เช่น เครื่องยนต์ของรถยนต์ นอกเหนือไปจากไมโครคอนโทรลเลอร์หลักที่ให้บริการเครื่องยนต์ ถือว่ามีตัวควบคุม CAN ที่สร้างพัลส์บนบัสสองตัว: CAN-high และ CAN-low (H และ L) .
สัญญาณเหล่านี้จะถูกส่งผ่านตัวนำ (คู่บิด) โดยตัวรับส่งสัญญาณ ตัวรับส่งสัญญาณหรือตัวรับส่งสัญญาณถูกออกแบบมาเพื่อ:
- การขยายสัญญาณ,
- สร้างความมั่นใจในการป้องกันเสียงรบกวนของพัลส์ที่ส่ง
- การปรับอัตราบิตของสตรีมดิจิทัล
- การป้องกันสายในกรณีที่เกิดความเสียหายกับ CAN บัส
ปัจจุบันมีการใช้ตัวรับส่งสัญญาณประเภทต่อไปนี้ในเทคโนโลยียานยนต์ - ความเร็วสูงและข้อผิดพลาด Toleran เครื่องส่งสัญญาณความเร็วสูงให้ความเร็วในการถ่ายโอนข้อมูลที่ค่อนข้างสูง - สูงถึง 1 เมกะบิตต่อวินาที เครื่องส่งสัญญาณประเภทที่สองมีอัตราการถ่ายโอนข้อมูลที่ต่ำกว่า - สูงสุด 120 กิโลบิตต่อวินาที ในทางกลับกัน มีความไวน้อยกว่า (ทนทานต่อข้อผิดพลาด) ต่อคุณภาพของ CAN บัส และอนุญาตให้มีการเบี่ยงเบนในพารามิเตอร์
รูปแบบองค์กรการแลกเปลี่ยนข้อมูล
แผนภาพบล็อกของการเชื่อมต่อบล็อกยานพาหนะต่างๆ กับ CAN บัสสามารถแสดงได้ดังนี้:
เพื่อให้ตรงกับอุปกรณ์ทั้งหมด นั่นคือเพื่อจัดสภาวะที่เหมาะสมและความเร็วในการรับและส่งสัญญาณ อิมพีแดนซ์เอาต์พุตของเครื่องส่งสัญญาณจะต้องใกล้เคียงกัน
ในกรณีที่เกิดการหยุดทำงานหรือเกิดความเสียหายกับหน่วยควบคุมใด ๆ ของระบบยานพาหนะ การเปลี่ยนแปลงความต้านทานของบัส การจับคู่ความต้านทานจะถูกละเมิด ซึ่งทำให้ความเร็วในการถ่ายโอนข้อมูลบนบัสลดลงอย่างมาก การละเมิดดังกล่าวอาจนำไปสู่การสูญเสียการสื่อสารบน CAN บัสโดยสิ้นเชิง
ในรถยนต์บางคัน โมดูลเกตเวย์แยกต่างหากใช้เพื่อแก้ไขปัญหาการซิงโครไนซ์ข้อมูล CAN
แต่ละข้อความที่ส่งผ่าน CAN บัสจะมีตัวระบุของตัวเอง เช่น "อุณหภูมิน้ำหล่อเย็น" และรหัสที่สอดคล้องกับค่า เช่น "98.7 องศาเซลเซียส" ค่าเหล่านี้ไม่จำเป็นต้องเป็นค่าสัมบูรณ์ ในกรณีส่วนใหญ่ ค่าเหล่านี้คือหน่วยเลขฐานสองสัมพัทธ์ ซึ่งจะถูกแปลงเป็นสัญญาณการควบคุมและการตรวจสอบเพิ่มเติม
เครื่องมือวินิจฉัยจะใช้ข้อมูลเดียวกันนี้เพื่อตรวจสอบและประมวลผลข้อมูลเกี่ยวกับระบบหลักของรถ
โหมดการทำงานหลักของ CAN บัส:
- ใช้งานอยู่ (เปิดสวิตช์กุญแจ);
- นอนหลับ (เมื่อปิดสวิตช์กุญแจ);
- ตื่นขึ้นและหลับไป (เมื่อเปิดและปิดสวิตช์กุญแจ)
ในระหว่างโหมดสลีป การใช้กระแสไฟของบัสจะน้อยที่สุด อย่างไรก็ตาม ในเวลาเดียวกัน สัญญาณจะถูกส่งผ่านรถบัส (ที่ความถี่ต่ำกว่า) เกี่ยวกับสถานะการเปิดประตูและหน้าต่าง และระบบอื่นๆ ที่เกี่ยวข้องกับฟังก์ชันความปลอดภัยของรถ
อุปกรณ์การวินิจฉัยที่ทันสมัยส่วนใหญ่มีโหมดสำหรับการวินิจฉัยข้อผิดพลาดผ่าน CAN บัส ในทางเทคนิคแล้ว สิ่งนี้ถูกจัดระเบียบโดยการเชื่อมต่อตัวนำเข้ากับตัวเชื่อมต่อการวินิจฉัยโดยตรง
ข้อดีและข้อเสียของการใช้ CAN บัสในรถยนต์
เราควรเริ่มต้นด้วยความจริงที่ว่าหากมาตรฐาน CAN ไม่ได้รับการเสนอในทศวรรษที่ 80 ของศตวรรษที่ผ่านมา การโต้ตอบแบบอื่นระหว่างระบบยานพาหนะจะเกิดขึ้นอย่างแน่นอน
แน่นอน เป็นไปได้ที่จะวางหน่วยควบคุมทั้งหมดของระบบรถยนต์ไว้ในซูเปอร์บล็อคเดียว ซึ่งซอฟต์แวร์นี้รับประกันการทำงานร่วมกันของระบบต่างๆ ความพยายามดังกล่าวเกิดขึ้นโดยผู้ผลิตชาวฝรั่งเศส อย่างไรก็ตาม ด้วยฟังก์ชันการทำงานและประสิทธิภาพที่เพิ่มขึ้น ความน่าจะเป็นของความล้มเหลวก็เพิ่มขึ้นอย่างมาก ความล้มเหลว เช่น ที่ปัดน้ำฝน อาจทำให้สตาร์ทเครื่องยนต์ไม่ได้
ข้อดีหลักของการใช้ CAN บัส:
- ความเป็นไปได้ในการดำเนินการควบคุมการปฏิบัติงานและ;
- รวมการไหลของข้อมูลในช่องสัญญาณป้องกันเสียงรบกวนเดียว
- ความเป็นสากลที่เอื้อต่อการรวมกระบวนการวินิจฉัย
- ความสามารถในการเชื่อมต่อระบบรักษาความปลอดภัยผ่าน CAN-bus (ไม่ต้องดึงสายไฟไปยังส่วนควบคุมแต่ละส่วน)
ข้อเสียของ CAN บัส:
- ความน่าเชื่อถือต่ำ
- ความเสียหายต่อชุดควบคุมตัวใดตัวหนึ่งอาจทำให้การเชื่อมต่อ CAN ไม่สามารถใช้งานได้อย่างสมบูรณ์
การแก้ไขปัญหา
ไม่มีไฟแสดงข้อผิดพลาด CAN บนแดชบอร์ดของรถ เป็นไปได้ที่จะตัดสินว่าประสิทธิภาพของ CAN บัสบกพร่องโดยตัวบ่งชี้ทางอ้อม:
- ไฟแสดงสถานะการทำงานผิดปกติหลายดวงบนแผงหน้าปัดพร้อมกัน
- ตัวบ่งชี้อุณหภูมิน้ำหล่อเย็นระดับน้ำมันเชื้อเพลิงหายไป
ก่อนอื่นคุณควรทำการวินิจฉัย หากบ่งชี้ว่า CAN บัสทำงานล้มเหลว คุณควรเริ่มแก้ไขปัญหา
ลำดับของงาน:
- ค้นหาตัวนำบัสคู่บิดเกลียว มักเป็นสีดำ (สูง) และน้ำตาลอมส้ม (ต่ำ)
- ตรวจสอบแรงดันไฟฟ้าของตัวนำด้วยการจุดระเบิดโดยใช้มัลติมิเตอร์ ระดับไม่ควรเป็น 0 หรือมากกว่า 11 โวลต์ (ปกติประมาณ 4.5 โวลต์)
- ปิดสวิตช์กุญแจ ถอดขั้วแบตเตอรี่ออก วัดความต้านทานระหว่างตัวนำ หากมีแนวโน้มเป็นศูนย์แสดงว่ามีการลัดวงจรในบัสหากไปที่อินฟินิตี้แสดงว่ามีการเปิด
- เริ่มมองหาจุดเปิดหรือไฟฟ้าลัดวงจร
- หากมีข้อสงสัยว่าบัสสั้นเนื่องจากความล้มเหลวของชุดควบคุม คุณสามารถปิดชุดควบคุมตามลำดับและตรวจสอบความต้านทานและประสิทธิภาพของบัส
การทำงานผิดปกติของ CAN-bus หมายถึงการทำงานผิดปกติที่ซับซ้อนของอุปกรณ์ไฟฟ้าในรถยนต์ หากเจ้าของรถไม่มีทักษะการซ่อมไฟฟ้าที่จำเป็น ควรใช้บริการของผู้เชี่ยวชาญ