กระป๋องบัสคืออะไร ป้ายรถเมล์

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

ลักษณะทั่วไป

สายตา CAN บัสดูเหมือนลำดับแบบอะซิงโครนัส ข้อมูลถูกส่งผ่านตัวนำบิดสองตัว ช่องสัญญาณวิทยุหรือใยแก้วนำแสง

อุปกรณ์หลายอย่างสามารถควบคุมบัสได้พร้อมกัน จำนวนของพวกเขาไม่ จำกัด และอัตราการแลกเปลี่ยนข้อมูลตั้งโปรแกรมไว้ที่ 1 Mbps

CAN บัสใน รถยนต์สมัยใหม่ควบคุมโดยข้อกำหนด "CAN Sorcification เวอร์ชัน 2.0"

ประกอบด้วยสองส่วน โปรโตคอล A อธิบายการถ่ายโอนข้อมูลโดยใช้ระบบถ่ายโอนข้อมูล 11 บิต ส่วน B ทำหน้าที่เหล่านี้เมื่อใช้เวอร์ชัน 29 บิต

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

พันธุ์และการติดฉลาก

หนึ่งในที่มีชื่อเสียงที่สุดในปัจจุบันคือ CAN บัสที่พัฒนาโดย Robert Bosch CAN BUS (รู้จักระบบภายใต้ชื่อนี้) เป็นลำดับ โดยที่พัลส์จะได้รับหลังจากพัลส์ เรียกว่าบัสอนุกรม หากข้อมูลถูกส่งผ่านสายหลายสาย แสดงว่านี่คือ Parallel bus

ฉัน - โหนดควบคุม;

II - การสื่อสารระบบ

ตามความหลากหลายของตัวระบุบัส CAN มีเครื่องหมายสองประเภท

ในกรณีที่โหนดสนับสนุนรูปแบบการแลกเปลี่ยนข้อมูล 11 บิต และไม่ได้ระบุข้อผิดพลาดสำหรับสัญญาณของตัวระบุ 29 บิต จะมีการทำเครื่องหมายว่า "CAN2.0A Active, CAN2.0B Passive"

เมื่อเครื่องกำเนิดไฟฟ้าดังกล่าวใช้ตัวระบุทั้งสองประเภท บัสจะมีป้ายกำกับว่า "CAN2.0B Active"

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

ระบบทำงานที่อัตราการส่งสัญญาณสองประเภท - 125, 250 kbps อันดับแรกคือสำหรับ อุปกรณ์เสริม(ตัวควบคุมกระจก, ไฟส่องสว่าง) และส่วนหลังให้การควบคุมหลัก (เกียร์อัตโนมัติ, เครื่องยนต์, ABS)

การส่งสัญญาณ

ทางกายภาพ ตัวนำบัส CAN ของรถยนต์สมัยใหม่ประกอบด้วยสององค์ประกอบ อันแรกเป็นสีดำเรียกว่า CAN-High ตัวนำที่สอง สีน้ำตาลส้ม เรียกว่า CAN-Low ด้วยโครงสร้างการสื่อสารที่นำเสนอ ทำให้มีการนำตัวนำจำนวนมากออกจากวงจรรถยนต์ ในการผลิตยานยนต์ ช่วยให้คุณลดน้ำหนักของผลิตภัณฑ์ลงเหลือ 50 กก.

โหลดเครือข่ายทั้งหมดประกอบด้วยความต้านทานบล็อกที่แตกต่างกันซึ่งเป็นส่วนหนึ่งของโปรโตคอลที่เรียกว่า CAN บัส

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

อุปกรณ์นี้อยู่ในการออกแบบของชุดควบคุม แต่สามารถทำเป็นอุปกรณ์แยกต่างหากได้

อินเทอร์เฟซที่นำเสนอยังใช้สำหรับเอาต์พุตและอินพุตของสัญญาณการวินิจฉัย สำหรับสิ่งนี้จะมีการจัดบล็อก OBD แบบครบวงจร นี่คือตัวเชื่อมต่อพิเศษสำหรับการวินิจฉัยระบบ

ฟังก์ชั่นรถบัสที่หลากหลาย

มีอยู่ ประเภทต่างๆอุปกรณ์ที่นำเสนอ

  1. CAN-bus ของชุดจ่ายไฟ นี่คือช่องทางที่รวดเร็วที่ส่งข้อความด้วยความเร็ว 500 kbps งานหลักคือการสื่อสารหน่วยควบคุม เช่น เครื่องยนต์ส่งกำลัง
  2. ระบบ Comfort เป็นช่องสัญญาณที่ช้ากว่าซึ่งส่งข้อมูลในอัตรา 100 kbps มันเชื่อมโยงอุปกรณ์ทั้งหมดของระบบความสะดวกสบาย
  3. ดาตาแกรมบัสยังส่งสัญญาณช้า (100 kbps) จุดประสงค์หลักคือเพื่อให้การสื่อสารระหว่างระบบบริการต่างๆ เช่น โทรศัพท์และระบบนำทาง

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

การรบกวนของบัส

ชุดควบคุมทั้งหมดเชื่อมต่อกับบัส CAN โดยตัวรับส่งสัญญาณ พวกเขามีเครื่องรับข้อความที่เป็นเครื่องขยายเสียงแบบเลือกได้

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

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

เพื่อให้เข้าใจว่า CAN บัสและอุปกรณ์คืออะไร คุณควรจำลักษณะที่ปรากฏ นี่คือตัวนำสองตัวที่บิดเข้าหากัน

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

ด้วยเหตุนี้ CAN บัสจึงถือเป็นระบบที่เชื่อถือได้

ประเภทข้อความ

โปรโตคอลนี้ใช้คำสั่งสี่ประเภทเมื่อแลกเปลี่ยนข้อมูลผ่านบัส CAN


I - CAN บัส;

II - ตัวต้านทานความต้านทาน

III - อินเทอร์เฟซ

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

การทำงานของระบบ

เพื่อให้เข้าใจว่า CAN บัสคืออะไร คุณต้องเข้าใจวัตถุประสงค์การใช้งาน

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

คำสั่งประกอบด้วย 3 ส่วน ได้แก่ ชื่อ ค่าเหตุการณ์ เวลาที่สังเกตตัวแปร

ค่าคีย์ถูกกำหนดให้กับตัวแปรตัวบ่งชี้ หากข้อความไม่มีข้อมูลเวลา ระบบจะยอมรับข้อความนี้เมื่อได้รับ

เมื่อคอมพิวเตอร์ระบบสื่อสารร้องขอการแสดงสถานะพารามิเตอร์ คอมพิวเตอร์นั้นจะถูกส่งไปในลำดับความสำคัญ

การแก้ไขข้อขัดแย้งของรถบัส

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

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

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

องค์ประกอบทางกายภาพ

อุปกรณ์บัสประกอบด้วยองค์ประกอบหลายอย่างนอกเหนือจากสายเคเบิล

ชิปตัวรับส่งสัญญาณมักพบจาก Philips เช่นเดียวกับ Siliconix, Bosch, Infineon

เพื่อให้เข้าใจว่า CAN บัสคืออะไร คุณควรศึกษาส่วนประกอบต่างๆ ความยาวสูงสุดของตัวนำที่ความเร็ว 1 Mbit / s ถึง 40 ม. CAN บัส (หรือที่เรียกว่า CAN-BUS) นั้นมีเทอร์มิเนเตอร์ในตอนท้าย

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

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

เทคโนโลยี iCAN

ตรวจเช็คยาง ยานพาหนะคุณควรให้ความสนใจกับโปรแกรมบล็อกเครื่องยนต์

ด้วยเหตุนี้ จึงได้มีการพัฒนาการแลกเปลี่ยนข้อมูลผ่านบัส CAN โมดูล iCAN เขาเชื่อมต่อกับ ดิจิตอลบัสและรับผิดชอบต่อทีมที่เกี่ยวข้อง

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

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

การป้องกันการโจรกรรม

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

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

หากรถมีเครื่องยนต์สตาร์ทอัตโนมัติ iCAN จะไม่รบกวนการทำงานของเครื่องยนต์ เนื่องจากจะทำงานเมื่อเริ่มเคลื่อนที่

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

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

การพัฒนาที่มีอยู่จะช่วยปกป้องรถจากการโจรกรรม ด้วยเหตุนี้ CAN บัสจึงเป็นที่นิยมและเป็นที่ต้องการ เช่นเดียวกับฟังก์ชันอื่นๆ ที่ซับซ้อน

ระบบอิเล็กทรอนิกส์ออนบอร์ดในรถยนต์สมัยใหม่และ รถบรรทุกมีจำนวนมาก อุปกรณ์เพิ่มเติมและ กลไกการบริหาร. เพื่อให้การแลกเปลี่ยนข้อมูลระหว่างอุปกรณ์ทั้งหมดมีประสิทธิภาพมากที่สุด เครือข่ายการสื่อสารที่เชื่อถือได้จะต้องอยู่ในรถ ในช่วงต้นทศวรรษที่ 80 ของศตวรรษที่ 20 Bosch และผู้พัฒนา Intel ได้เสนออินเทอร์เฟซเครือข่ายใหม่ - Controller Area Network ซึ่งเป็นที่นิยมเรียกว่า Can-bus

1 เกี่ยวกับหลักการทำงานของอินเทอร์เฟซเครือข่ายบัส CAN

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

นอกจากนี้, ระบบต่างๆรถทำเองได้ง่ายขึ้น ผ่านแอพพลิเคชั่น ระบบที่คล้ายกันโดยเป็นส่วนหนึ่งของเครือข่ายออนบอร์ดของรถยนต์ มีการปล่อยตัวนำจำนวนหนึ่งซึ่งสามารถให้การสื่อสารโดยใช้โปรโตคอลต่างๆ เช่น ระหว่างหน่วยควบคุมเครื่องยนต์และอุปกรณ์วินิจฉัย ระบบเตือนภัย เป็นการมีอยู่ของ Kan-bus ในรถที่ช่วยให้เจ้าของสามารถระบุความผิดปกติและข้อผิดพลาดของตัวควบคุมด้วยมือของเขาเองโดยใช้เครื่องมือพิเศษ อุปกรณ์วินิจฉัย.

สามารถโดยสารรถประจำทางนี่เป็นเครือข่ายพิเศษที่ส่งข้อมูลและแลกเปลี่ยนระหว่างโหนดควบคุมต่างๆแต่ละโหนดประกอบด้วยไมโครโปรเซสเซอร์ (CPU) และตัวควบคุม CAN ซึ่งใช้โปรโตคอลที่ปฏิบัติการได้และรับรองการโต้ตอบกับเครือข่ายรถยนต์ Kan bus มีสายอย่างน้อยสองคู่ - CAN_L และ CAN_H ซึ่งสัญญาณจะถูกส่งผ่านตัวรับส่งสัญญาณ - ตัวรับส่งสัญญาณที่สามารถขยายสัญญาณจากอุปกรณ์ควบคุมเครือข่าย นอกจากนี้ ตัวรับส่งสัญญาณยังทำหน้าที่เช่น:

  • การปรับอัตราข้อมูลโดยการเพิ่มหรือลดแหล่งจ่ายปัจจุบัน
  • การจำกัดกระแสเพื่อป้องกันความเสียหายต่อเซ็นเซอร์หรือการลัดวงจรของสายส่ง
  • การป้องกันความร้อน

จนถึงปัจจุบันมีการรับรู้ตัวรับส่งสัญญาณสองประเภท - ความเร็วสูงและทนต่อความผิดพลาด ประเภทแรกเป็นประเภทที่พบมากที่สุดและเป็นไปตามมาตรฐาน (ISO 11898-2) ช่วยให้คุณถ่ายโอนข้อมูลด้วยความเร็วสูงถึง 1MB ต่อวินาที ตัวรับส่งสัญญาณประเภทที่สองช่วยให้คุณสร้างเครือข่ายประหยัดพลังงานด้วยอัตราการถ่ายโอนสูงถึง 120 Kb / s ในขณะที่ตัวส่งสัญญาณดังกล่าวไม่ไวต่อความเสียหายใด ๆ บนตัวบัส

2 คุณสมบัติเครือข่าย

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

อุปกรณ์ควบคุมแต่ละตัวที่เชื่อมต่อกับบัสมีอิมพีแดนซ์อินพุตของตัวเองและ โหลดทั้งหมดคำนวณจากผลรวมของบล็อกปฏิบัติการทั้งหมดที่เชื่อมต่อกับบัส โดยเฉลี่ย อิมพีแดนซ์อินพุตของระบบควบคุมเครื่องยนต์ที่เชื่อมต่อกับ CAN บัสคือ 68-70 โอห์ม และความต้านทานของระบบคำสั่งข้อมูลอาจสูงถึง 3-4 โอห์ม

อินเทอร์เฟซ 3 ช่องและการวินิจฉัยระบบ

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

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

สิ่งสำคัญคือต้องทราบว่าขณะนี้ยังไม่มีมาตรฐานเฉพาะสำหรับตัวเชื่อมต่อเครือข่าย Can ดังนั้น แต่ละโปรโตคอลจึงกำหนดประเภทของตัวเชื่อมต่อบนบัส CAN โดยขึ้นอยู่กับโหลดและพารามิเตอร์อื่นๆ

ดังนั้นเมื่อทำการวินิจฉัยด้วยมือของคุณเองจะใช้ตัวเชื่อมต่อประเภท OBD1 หรือ OBD2 แบบรวมซึ่งสามารถพบได้ในส่วนใหญ่ รถยนต์ต่างประเทศสมัยใหม่และ รถยนต์ในประเทศ. อย่างไรก็ตาม รถบางรุ่น เช่น โฟล์คสวาเกนกอล์ฟ 5V ออดี้ S4ไม่มีเกตเวย์ นอกจากนี้ โครงร่างของชุดควบคุมและ CAN บัส เป็นแบบเฉพาะสำหรับแต่ละยี่ห้อและรุ่นของรถยนต์ ในการวินิจฉัยระบบ CAN ด้วยมือของคุณเอง มีการใช้อุปกรณ์พิเศษซึ่งประกอบด้วยออสซิลโลสโคป เครื่องวิเคราะห์ CAN และมัลติมิเตอร์แบบดิจิตอล

งานแก้ไขปัญหาเริ่มต้นด้วยการถอดแรงดันไฟหลัก (การถอดขั้วลบของแบตเตอรี่) ถัดไปจะกำหนดการเปลี่ยนแปลงความต้านทานระหว่างสายบัส ประเภทที่พบบ่อยที่สุดของความผิดปกติของ Kan-bus ในรถยนต์คือสายสั้นหรือสายเปิด ความล้มเหลวของตัวต้านทานโหลด และระดับการส่งข้อความระหว่างองค์ประกอบเครือข่ายลดลง ในบางกรณี หากไม่ใช้เครื่องวิเคราะห์ Can จะไม่สามารถตรวจพบความผิดปกติได้

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

รถของฉัน Skoda Octavia 2554 เป็นต้นไป ไม่มีตัวเลือกการควบคุมจากโทรศัพท์ ดังนั้นฉันจึงตัดสินใจแก้ไขข้อบกพร่องนี้ และในขณะเดียวกันก็เพิ่มฟังก์ชันการควบคุมด้วยเสียง ในฐานะเกตเวย์ระหว่าง CAN บัสกับโทรศัพท์ ฉันใช้ Raspberry Pi ที่มี CAN BUS shield และเราเตอร์ TP-Link WiFi โปรโตคอลการสื่อสารสำหรับรถยนต์ถูกปิด และ Volkswagen ปฏิเสธที่จะให้เอกสารเกี่ยวกับโปรโตคอลนี้กับจดหมายทั้งหมดของฉัน ดังนั้น วิธีเดียวที่จะค้นหาว่าอุปกรณ์สื่อสารกันอย่างไรในรถยนต์และเรียนรู้วิธีควบคุมอุปกรณ์เหล่านี้คือวิศวกรรมย้อนกลับโปรโตคอลบัส CAN ของ VW

ฉันทำทีละขั้นตอน:

  1. การเชื่อมต่อกับ CAN บัสของรถยนต์
  2. ควบคุมด้วยเสียงด้วย Homekit และ Siri
ที่ส่วนท้ายของหน้าต่างควบคุมเสียงของวิดีโอ

CAN ป้องกันการพัฒนาสำหรับ Raspberry Pi

ฉันใช้โครงร่างโล่ที่นี่ lnxpps.de/rpie นอกจากนี้ยังมีคำอธิบายของพิน 2 microcircuits MCP2515 และ MCP2551 เพื่อสื่อสารกับ CAN 2 สาย CAN-High และ CAN-Low เชื่อมต่อกับตัวป้องกัน ใน SprintLayout 6 ฉันกระจายกระดาน บางที CANBoardRPi.lay อาจมีประโยชน์สำหรับใครบางคน (ในภาพชื่อ ต้นแบบของโล่บนเขียงหั่นขนม)

การติดตั้งซอฟต์แวร์บัส CAN

สำหรับ Raspbian 2x ปี ฉันต้องแก้ไข bcm2708.c เพื่อเพิ่มการรองรับ CAN (อาจไม่จำเป็นในตอนนี้) ในการทำงานกับ CAN บัส คุณต้องติดตั้งแพ็คเกจยูทิลิตี้ can-utils จาก github.com/linux-can/can-utils จากนั้นโหลดโมดูลและเพิ่มส่วนต่อประสาน can:

# เริ่มต้น insmod spi-bcm2708 insmod สามารถ 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
ในเทอร์มินัลอื่นเราส่ง:

[ป้องกันอีเมล]~ #กระป๋อง0 123#deadbeef
อธิบายขั้นตอนการติดตั้งโดยละเอียดเพิ่มเติมที่นี่ lnxpps.de/rpie

การเชื่อมต่อกับ CAN บัสของรถยนต์

หลังจากศึกษาเอกสารเปิดบนรถบัส VW CAN เพียงเล็กน้อย ฉันพบว่าฉันใช้รถเมล์ 2 คัน

สามารถโดยสารรถประจำทาง หน่วยพลังงาน ซึ่งส่งข้อมูลด้วยความเร็ว 500 kbit / s เชื่อมโยงหน่วยควบคุมทั้งหมดที่ให้บริการหน่วยนี้

ตัวอย่างเช่น ถึง สามารถโดยสารรถประจำทางอุปกรณ์ต่อไปนี้สามารถเชื่อมต่อกับหน่วยจ่ายไฟ:

  • หน่วยควบคุมเครื่องยนต์,
  • ชุดควบคุม ABS
  • หน่วยควบคุมสำหรับระบบรักษาเสถียรภาพอัตราแลกเปลี่ยน
  • ชุดควบคุมกระปุกเกียร์,
  • ชุดควบคุมถุงลมนิรภัย,
  • แผงหน้าปัด
ยาง ระบบ CAN"ความสบาย" และระบบอินโฟคอมมานด์ซึ่งช่วยให้สามารถถ่ายโอนข้อมูลด้วยความเร็ว 100 kbit / s ระหว่างหน่วยควบคุมที่ให้บริการระบบเหล่านี้

ตัวอย่างเช่น ไปที่ CAN บัสของระบบความสะดวกสบายและข้อมูล<командной системы могут быть
อุปกรณ์ต่อไปนี้เชื่อมต่ออยู่:

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

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

ตอนนี้ฉันสามารถฟังทุกอย่างที่เกิดขึ้นในบัส Comfort CAN และส่งคำสั่งได้

การพัฒนาเครื่องดมกลิ่นและการศึกษาโปรโตคอลบัส CAN


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

ยูทิลิตีทั้งหมดจากชุด can-utils สามารถแยกวิเคราะห์แพ็กเก็ต CAN ได้เองและส่งคืนเฉพาะข้อมูลที่เป็นประโยชน์ กล่าวคือ:

  • ตัวระบุ
  • ความยาวข้อมูล
  • ข้อมูล
ข้อมูลจะถูกส่งในรูปแบบที่ไม่ได้เข้ารหัส ซึ่งทำให้ง่ายต่อการเรียนรู้โปรโตคอล บน Raspberry Pi ฉันเขียนเซิร์ฟเวอร์ขนาดเล็กที่เปลี่ยนเส้นทางข้อมูลจาก candump ไปยัง TCP / IP เพื่อแยกวิเคราะห์สตรีมข้อมูลบนคอมพิวเตอร์และแสดงผลได้อย่างสวยงาม

สำหรับ macOS ฉันเขียนแอปพลิเคชันง่ายๆ ที่เพิ่มเซลล์ลงในตารางสำหรับที่อยู่อุปกรณ์แต่ละที่อยู่ และในเซลล์นี้ ฉันสามารถดูได้ว่าข้อมูลใดกำลังเปลี่ยนแปลง

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

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

ส่งกระป๋อง0 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 เมื่อ 05/17/15 // ลิขสิทธิ์ (c) 2015 Vitaliy Yurkin สงวนลิขสิทธิ์. // #import "FirstViewController.h" #import "DataConnection.h" #import "CommandConnection.h" @อินเทอร์เฟซ FirstViewController () @property (ไม่ใช่อะตอมที่แข็งแกร่ง) DataConnection *dataConnection; @property (ไม่ใช่อะตอมที่แข็งแกร่ง) CommandConnection * commandConnection; @property (อ่อนแอ ไม่เป็นอะตอม) IBOutlet UILabel *Door_1; @property (อ่อนแอ ไม่เป็นอะตอม) IBOutlet UILabel *Door_2; @property (อ่อนแอ ไม่เป็นอะตอม) IBOutlet UILabel *Door_3; @property (อ่อนแอ, ไม่ใช่อะตอม) IBOutlet UILabel *Door_4; @property (อ่อนแอ, ไม่ใช่อะตอม) IBOutlet UIButton * CentralLock; - (IBAction)lockUnlock:(UIButton *) ผู้ส่ง; @end @implementation FirstViewController - (เป็นโมฆะ)viewDidLoad ( self.dataConnection = ; self.dataConnection.delegate = self; ; self.commandConnection = ; ; ) - (เป็นโมฆะ)didReceiveMemoryWarning ( ; // กำจัดทรัพยากรใด ๆ ที่สามารถสร้างใหม่ได้ ) - (void)doorStatusChanged:(char)value ( /* 1 - Front Left Door 2 - Front Right Door 4 - Back Left Door 8 - Back Right Door 3 - Front Left&Right Door = 1 + 3 5 - Front& Back left Door = 1 + 4 */ // Front Left Door if (value & 1) ( self.Door_1.backgroundColor = ; self.Door_1.text = @"Open"; NSLog(@"1"); ) else ( self.Door_1.) backgroundColor = ; self.Door_1.text = @"Closed"; ) // Front Right Door if (value & 2) ( self.Door_2.backgroundColor = ; self.Door_2.text = @"Opened"; NSLog(@"2 "); ) อื่น ๆ ( self.Door_2.backgroundColor = ; self.Door_2.text = @"Closed"; ) // Back Left Door if (value & 4) ( self.Door_3.backgroundColor = ; self.Door_3.text = @"Opened"; NSLog(@"4"); ) else ( self.Door_3.backgroundCo หล่อ = ; self.Door_3.text = @"ปิด"; ) // ประตูหลังขวาถ้า (ค่า & 8) ( self.Door_4.backgroundColor = ; self.Door_4.text = @"Open"; NSLog(@"8"); ) else ( self.Door_4.backgroundColor = ; self .Door_4.text = @"Closed";) ) BOOL firstStatusChange = ใช่; BOOL สถานะล่าสุด; -(เป็นโมฆะ) centralLockStatusChanged:(BOOL)status ( // ที่สถานะแรกเปลี่ยน ตั้งค่าตัวแปร LastStatus ถ้า (firstStatusChange) ( firstStatusChange = NO; // กลับสถานะ เพื่อผ่านการทดสอบถัดไป lastStatus = !status; ) // เปลี่ยนภาพล็อค เฉพาะในกรณีที่สถานะเปลี่ยนถ้า (!(lastStatus == status)) ( // Check status if (status) ( forState:UIControlStateNormal]; ) else ( forState:UIControlStateNormal]; ) lastStatus = status; ) ) // กระจกด้านซ้ายด้านหน้า - (IBAction)frontLeftUp:(UIButton *) sender ( ; ) - (IBAction)frontLeftDown:(id)sender ( ; ) // Front Right Glass - (IBAction)frontRightUp:(UIButton *)sender ( ; ) - (IBAction)frontRightDown :(id)sender ( ; ) // Back Left Glass - (IBAction)backLeftUp:(UIButton *)sender ( ; ) - (IBAction)backLeftDown:(id)sender ( ; ) // กลับกระจกขวา - (IBAction)backRightUp :(UIButton *) sender ( ; ) - (IBAction)backtRightDown:(id)sender ( ; ) - (IBAction)lockUnlock:(UIButton *)sender ( // ถ้าเซ็นทรัลล็อคปิดถ้า (lastStatus) ( // เปิด ; int6 4_t ล่าช้าในวินาที = 1; // 1 วินาทีdispatch_time_t popTime = dispatch_time (DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC); dispatch_after(popTime, dispatch_get_main_queue(), ^(เป็นโมฆะ)( ; )); ) else ( // ปิด ; int64_t delayInSeconds = 1; // 1 วินาที dispatch_time_t popTime = dispatch_time (DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC); dispatch_after(popTime, dispatch_get_main_queue(), ^(void)( ; )); ) @end


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

สวัสดีเพื่อน ๆ ทุกคน! วิวัฒนาการของมนุษย์ค่อยๆ นำไปสู่ความจริงที่ว่ารถยนต์สมัยใหม่นั้นเต็มไปด้วยเซ็นเซอร์และอุปกรณ์ทุกประเภท บน "กระดาน" เช่นเดียวกับในโรงงาน - ทั้งทีม แน่นอนว่า "ทีม" แบบนี้ต้องมีคนจัดการ! วันนี้ฉันต้องการพูดคุยกับคุณเกี่ยวกับผู้นำคนนี้คือ CAN-bus ในรถยนต์ - มันคืออะไรใช้หลักการอะไรและปรากฏอย่างไร เกี่ยวกับทุกอย่างตามลำดับ ...

เกร็ดประวัติศาสตร์

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

ดังนั้นทุกปี สายไฟและเซ็นเซอร์ต่างๆ จึงมีมากขึ้นเรื่อยๆ มันถึงจุดที่ว่าในแง่ของอุปกรณ์ไฟฟ้า รถเริ่มที่จะเปรียบเทียบกับเครื่องบินแล้ว ตอนนั้นเองที่ในปี 1970 เป็นที่ชัดเจนว่าสำหรับการทำงานที่ราบรื่น โซ่ทั้งหมดต้องได้รับการหาเหตุผลเข้าข้างตนเอง หลังจาก 13 ปี แบรนด์ลัทธิจากเยอรมนีที่ชื่อ Bosch เข้าควบคุมสถานการณ์ ด้วยเหตุนี้ โปรโตคอล Controller Area Network (CAN) จึงถูกนำมาใช้ในดีทรอยต์ในปี 1986

อย่างไรก็ตาม แม้หลังจากการนำเสนออย่างเป็นทางการ เวลาทำงานยังคงอยู่ พูดง่ายๆ ว่า "ดิบ" ดังนั้น ให้ดำเนินการต่อไป

  • พ.ศ. 2530 - การทดสอบเชิงปฏิบัติของ can bus เสร็จสิ้นลง ซึ่งอาสาที่ดำเนินการโดยแบรนด์ที่มีชื่อเสียงไม่น้อยในด้านเทคโนโลยีคอมพิวเตอร์ของ Philips และ Intel
  • พ.ศ. 2531 - ในปีหน้า บีเอ็มดับเบิลยู บริษัทรถยนต์ยักษ์ใหญ่สัญชาติเยอรมันอีกรายหนึ่ง ได้เปิดตัวรถยนต์คันแรกที่ใช้เทคโนโลยีบัสบัส ซึ่งเป็นรุ่น 8-series ที่ทุกคนชื่นชอบ
  • 2536 - การยอมรับในระดับสากลและดังนั้นใบรับรอง ISO
  • 2001 - การเปลี่ยนแปลงที่สำคัญในมาตรฐาน ตอนนี้รถยุโรปทุกคันต้องทำงานตามหลักการ "CAN"
  • 2012 - กลไกการอัพเดทครั้งล่าสุดซึ่งเพิ่มรายการอุปกรณ์ที่เข้ากันได้และความเร็วในการถ่ายโอนข้อมูล

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

นิยามบัส CAN

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

  • ด่าน;
  • เครื่องยนต์;
  • ระบบป้องกันการปิดกั้น;
  • ถุงลมนิรภัย;
  • ที่ปัดน้ำฝน;
  • แผงควบคุม;
  • พวงมาลัยเพาเวอร์;
  • ตัวควบคุม;
  • จุดระเบิด;
  • คอมพิวเตอร์ออนบอร์ด
  • ระบบมัลติมีเดีย
  • การนำทางด้วย GPS

การส่งสัญญาณด้วย CAN-bus ตามที่คุณเข้าใจนั้นก็ให้ความร่วมมืออย่างใกล้ชิดเช่นกัน รถยนต์มากกว่า 80% ในอาณาเขตของสหพันธรัฐรัสเซียใช้เทคโนโลยี CAN และแม้แต่รุ่นของอุตสาหกรรมยานยนต์ในประเทศ!

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

หลักการทำงานของ CAN บัส

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

ตารางการทำงานของ "ผู้นำ" ของเรามีดังนี้:

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

หมายเหตุ: เทคโนโลยี CAN ไม่เพียงแต่ใช้ในด้านวิศวกรรมเครื่องกลเท่านั้น แต่ในระบบสมาร์ทโฮมนั้นมีการใช้มาเป็นเวลานานและพิจารณาจากบทวิจารณ์แล้ว ชิปก็รับมือกับงานที่ตั้งไว้อย่างปัง!

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

ข้อดีข้อเสีย

ในตอนท้ายของเอกสารนี้ ในการสรุปบรรทัด เราจะพิจารณาข้อดีและข้อเสียทั้งหมดของเทคโนโลยีนี้โดยสังเขป แน่นอน เริ่มจากข้อดีกันก่อน:

  • ติดตั้งง่ายและราคาไม่แพง
  • ประสิทธิภาพ;
  • ความต้านทานการรบกวน;
  • ความปลอดภัยระดับสูงต่อการแฮ็ค
  • คุณสามารถเลือกรูปแบบที่เหมาะสมได้ที่ Zaporozhets)

สำหรับข้อเสียก็มีอยู่เช่นกัน แต่มีไม่มากนัก:

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

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

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

CAN บัสในเครือข่ายอุตสาหกรรม

fieldbus CAN (Controller Area Network) มีอัตราการถ่ายโอนข้อมูลสูงและป้องกันสัญญาณรบกวน ตลอดจนความสามารถในการตรวจจับข้อผิดพลาดใดๆ ที่เกิดขึ้น ด้วยเหตุนี้ CAN จึงถูกใช้อย่างกว้างขวางในด้านต่างๆ เช่น การขนส่งทางถนนและทางรถไฟ ระบบอัตโนมัติทางอุตสาหกรรม การบิน การเข้าถึงและระบบควบคุม ตามรายงานของสมาคม CiA (CAN in Automation, www.can-cia.de) ปัจจุบันมีโหนด CAN ประมาณ 300 ล้านเครื่องทั่วโลก ในประเทศเยอรมนี CAN บัสเป็นฟิลด์บัสที่ได้รับความนิยมมากที่สุด

ลักษณะของโปรโตคอล CAN ประโยชน์ของ CAN

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

ผ่านการทดสอบมาตรฐาน โปรโตคอล CAN ถูกใช้อย่างแข็งขันมานานกว่า 20 ปี ซึ่งมีความสำคัญมากสำหรับพื้นที่อนุรักษ์นิยม เช่น การขนส่งทางรถไฟหรือการต่อเรือ CAN ได้รับการพัฒนาในปี 1980 โดย Robert Bosch สำหรับอุตสาหกรรมยานยนต์ อินเทอร์เฟซ CAN ได้รับการควบคุมโดยมาตรฐานสากล ISO 11898 สำหรับการใช้งานความเร็วสูง และ ISO 11519-1 สำหรับการใช้งานความเร็วต่ำ ต้นทุนที่ต่ำถูกกำหนดโดยอัตราส่วนราคา/ประสิทธิภาพที่ดี ตลอดจนความพร้อมใช้งานของตัวควบคุม CAN ในตลาดที่หลากหลาย ความน่าเชื่อถือถูกกำหนดโดยโครงสร้างเชิงเส้นของบัสและความเท่าเทียมกันของโหนดที่เรียกว่า multimaster (Multi Master Bus) ซึ่งแต่ละโหนด CAN สามารถเข้าถึงบัสได้ ข้อความใด ๆ สามารถถูกส่งไปยังโหนดอย่างน้อยหนึ่งโหนด โหนดทั้งหมดอ่านข้อมูลเดียวกันจากบัสพร้อมกัน และแต่ละโหนดจะตัดสินใจว่าจะยอมรับข้อความนี้หรือเพิกเฉยต่อข้อความนั้น การรับสัญญาณพร้อมกันมีความสำคัญมากสำหรับการซิงโครไนซ์ในระบบควบคุม โหนดที่ล้มเหลวจะถูกตัดการเชื่อมต่อจากการแลกเปลี่ยนบัส



การป้องกันสัญญาณรบกวนสูงทำได้ผ่านการปฏิเสธโหมดทั่วไปของตัวรับส่งสัญญาณส่วนต่าง กลไกการตรวจจับข้อผิดพลาดในตัว (ข้อผิดพลาดที่ตรวจไม่พบหนึ่งครั้งใน 1,000 ปีที่การทำงานของเครือข่ายรายวัน 8 ชั่วโมงที่ 500 Kbps) การทำซ้ำข้อความแสดงข้อผิดพลาด การตัดการเชื่อมต่อโหนดที่ผิดพลาดจากการสื่อสารของบัส และ ความทนทานต่อการรบกวนทางแม่เหล็กไฟฟ้า

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

การทำงานแบบเรียลไทม์เป็นไปได้ด้วยกลไกเครือข่าย (multi-master, ออกอากาศ, อนุญาโตตุลาการทีละบิต) รวมกับอัตราการถ่ายโอนข้อมูลสูง (สูงสุด 1 Mbps) ตอบสนองต่อคำขอถ่ายโอนอย่างรวดเร็ว และความยาวข้อความผันแปรจาก 0 ถึง 8 ไบต์

แอปพลิเคชัน CAN

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

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

ชั้นกายภาพ

เลเยอร์ทางกายภาพของ CAN บัสเป็นการเชื่อมต่อแบบมีสายและระหว่างอุปกรณ์ทั้งหมดที่เชื่อมต่ออยู่ เส้นสัญญาณส่วนต่างเรียกว่า CAN_H และ CAN_L และคงที่ที่ 2.5 V. Log 1 (บิตถอย) ระบุสภาพบัสที่ระดับบนเส้น CAN_H สูงกว่าระดับ CAN_L ที่ล็อก 0 (บิตเด่น) ระดับบนบรรทัด CAN_H ต่ำกว่าระดับ CAN_L ข้อตกลงต่อไปนี้เกี่ยวกับสถานะของบัสได้รับการรับรอง: สถานะพาสซีฟของบัสสอดคล้องกับระดับบันทึก 1 และใช้งานอยู่ - ระดับบันทึก 0. เมื่อไม่มีการส่งข้อความบนรถบัส แสดงว่าอยู่ในสถานะพาสซีฟ การส่งข้อความเริ่มต้นด้วยบิตที่โดดเด่นเสมอ ตรรกะของการทำงานของบัสสอดคล้องกับ "แบบมีสายและ": บิตที่โดดเด่น "0" ระงับบิตแบบถอย "1" (รูปที่ 12.1)

ข้าว. 12.1. CAN บัสลอจิก

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

อัตราการถ่ายโอนข้อมูลสูงสุดคือ 1 Mbit/s โดยมีความยาวบัส 40 ม. และประมาณ 40 Kbit/s ที่ความยาวบัส 1000 ม.

ความหลากหลายของCAN

ปัจจุบันมีอุปกรณ์ต่างๆ ที่มีอินเทอร์เฟซ CAN ซึ่งนอกจากจะส่งข้อมูลจากจุดหนึ่งไปยังอีกจุดหนึ่งแล้ว ยังอนุญาตให้ใช้การซิงโครไนซ์กระบวนการและบริการที่มีลำดับความสำคัญได้อีกด้วย การใช้งานตัวควบคุม CAN ก่อนหน้านี้ใช้เฟรมที่มี ID 11 บิตและระบุที่อยู่ข้อความได้มากถึง 2048 ข้อความ และสอดคล้องกับข้อกำหนด CAN V. 2.0A ตัวควบคุมดังกล่าวเรียกว่า Basic CAN และมีลักษณะเป็นภาระหนักในหน่วยประมวลผลกลาง (CPU) เนื่องจากข้อความขาเข้าแต่ละข้อความจะถูกเก็บไว้ในหน่วยความจำและ CPU จะตัดสินใจว่าต้องการข้อความเหล่านี้หรือไม่ (รูปที่ 12.2) ตัวควบคุม CAN พื้นฐานประกอบด้วยบัฟเฟอร์การส่งหนึ่งบัฟเฟอร์และบัฟเฟอร์ข้อความรับหนึ่งหรือสองรายการ ในการส่งหรือรับข้อความ คุณต้องใช้ CPU ผ่านการขัดจังหวะ "message_sent" และ "message_received" จากการตรวจสอบแต่ละข้อความขาเข้า ภาระของ CPU สูงมาก ซึ่งจำกัดอัตราแลกเปลี่ยนจริงบนเครือข่าย ด้วยเหตุนี้ ตัวควบคุมดังกล่าวจึงถูกใช้ในเครือข่าย CAN ที่มีอัตรารับส่งข้อมูลต่ำและ/หรือข้อความจำนวนน้อย

ข้าว. 12.2. โครงสร้างของตัวควบคุม CAN พื้นฐาน

ตัวควบคุม CAN ส่วนใหญ่ที่ผลิตในปัจจุบันใช้กรอบข้อความแบบขยายที่มีตัวระบุแบบ 29 บิต ซึ่งช่วยให้สามารถระบุข้อความได้มากถึง 536 ล้านข้อความ ตัวควบคุมดังกล่าวเป็นไปตามข้อกำหนด CAN V. 2.0B (ใช้งานอยู่) และเรียกว่าตัวควบคุม Full-CAN พวกเขาจัดเตรียมบัฟเฟอร์สำหรับข้อความหลายฉบับ และแต่ละข้อความมีมาสก์ของตัวเอง และการกรองจะดำเนินการโดยการจับคู่ตัวระบุกับมาสก์

ในกรณีของ Full-CAN CPU จะถูกถ่ายออกไปให้มากที่สุด เนื่องจากจะไม่ประมวลผลข้อความที่ไม่จำเป็น (รูปที่ 12.3) เมื่อได้รับข้อความที่มีตัวระบุที่ตรงกับมาสก์ ข้อความนั้นจะถูกเก็บไว้ในพื้นที่พิเศษของ RAM แบบสองพอร์ต และ CPU จะถูกขัดจังหวะ Full-CAN ยังมีประเภทข้อความพิเศษซึ่งหมายความว่า "ใครมีข้อมูลนี้โปรดส่งตอนนี้" ตัวควบคุม Full-CAN จะฟังข้อความทั้งหมดโดยอัตโนมัติและส่งข้อมูลที่ร้องขอ

ข้าว. 12.3. โครงสร้างตัวควบคุม CAN แบบเต็ม

เมื่อไม่นานมานี้ Basic CAN พร้อมตัวระบุ 11 บิตได้ถูกนำมาใช้กันอย่างแพร่หลายในอุตสาหกรรมนี้ โปรโตคอลนี้ช่วยให้สามารถสื่อสารระหว่างไมโครคอนโทรลเลอร์และอุปกรณ์ต่อพ่วงได้อย่างง่ายดายด้วยอัตราข้อมูลสูงสุด 250 Kbps อย่างไรก็ตาม ด้วยต้นทุนที่ลดลงอย่างรวดเร็วของตัวควบคุม CAN การใช้ Full-CAN จึงเหมาะสมสำหรับการสื่อสารกับอุปกรณ์ที่ช้า หากจำเป็นต้องมีการแลกเปลี่ยนข้อมูลความเร็วสูง (สูงสุด 1 Mbps) ในแอปพลิเคชันอุตสาหกรรม ก็ควรใช้ Full-CAN อย่างแน่นอน

อนุญาโตตุลาการของโหนดบัส CAN

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

ด้วยเหตุนี้ โหนดจึงยอมรับและประมวลผลเฉพาะข้อความที่มีไว้สำหรับโหนดนั้นโดยเฉพาะ

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

หากการส่งสัญญาณของโหนด A ถูกระงับโดยโหนด B ส่งข้อความที่มีลำดับความสำคัญสูงกว่า ทันทีที่รถบัสว่าง จะมีการพยายามส่งข้อความจากโหนด A อีกครั้ง หลักการนี้เรียกว่า CSMA / CA: Carrier Sense Multiple การเข้าถึง / การหลีกเลี่ยงการชน (การเข้าถึงทั่วไปด้วยการลงคะแนนเสียง / การหลีกเลี่ยงความขัดแย้ง) โหมดนี้ไม่เหมือนกับอีเทอร์เน็ตที่ไม่อนุญาตให้โหนดที่ขัดแย้งกันบนบัสแยกแยะสิ่งต่างๆ แต่จะระบุผู้ชนะทันทีและลดเวลาในการแลกเปลี่ยน

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

รูปแบบข้อความ

หากเราไม่คำนึงถึงขั้นตอนในการลองใหม่ข้อความที่ได้รับโดยมีข้อผิดพลาด มีการสื่อสารสองประเภทระหว่างโหนด: โหนดหนึ่งส่งข้อมูลและอีกโหนดรับหรือโหนด A ขอโหนด B สำหรับข้อมูลและได้รับการตอบสนอง

ข้าว. 12.4. กรอบข้อมูล

data frame ใช้สำหรับส่งข้อมูล กรอบข้อมูล(รูปที่ 12.4) ซึ่งประกอบด้วย

  • ตัวระบุที่ระบุประเภทของข้อความ ("motor_speed", "oil_temperature") และลำดับความสำคัญในการเข้าถึงบัส ฟิลด์ตัวระบุมีจำนวนบิตที่แตกต่างกันขึ้นอยู่กับประเภทของโปรโตคอล: รูปแบบ CAN V2.0A มาตรฐานมีตัวระบุ 11 บิต และ CAN V2.0B แบบขยายมีตัวระบุ 29 บิต
  • ช่องข้อมูลที่มีข้อความที่เกี่ยวข้อง (“engine_speed”=6000 rpm, “oil_temperature”=110 °C) ยาวสูงสุดแปดไบต์
  • เช็คซัมสองไบต์ - การตรวจสอบความซ้ำซ้อนแบบวนซ้ำ (CRC)เพื่อตรวจหาและแก้ไขข้อผิดพลาดในการส่ง

ในการขอข้อมูล โหนด CAN จะใช้เฟรมคำขอข้อมูล Remote Frame (รูปที่ 12.5) ซึ่งประกอบด้วย:

  • ตัวระบุที่กำหนดประเภทของข้อมูลที่ร้องขอ ("engine_speed", "oil_temperature") และลำดับความสำคัญของข้อความ
  • เช็คซัมสองไบต์ CRC.

ข้าว. 12.5. เฟรมขอข้อมูล เฟรมรีโมต

ในกรณีนี้ ตัวระบุจะไม่ตามด้วยข้อมูล และรหัสความยาวข้อมูลไม่เกี่ยวข้องโดยตรงกับจำนวนไบต์ของข้อมูล โหนดที่เสนอให้ส่งข้อมูล (เซ็นเซอร์อุณหภูมิน้ำมัน) ส่งกรอบข้อมูลที่มีข้อมูลที่จำเป็น ดังนั้น หากโหนด A ส่งกรอบคำขอที่มีตัวระบุ "oil_temperature" ไปยังโหนด B จากนั้นโหนด B จะสอบสวนเซ็นเซอร์อุณหภูมิและส่งกรอบข้อมูลไปยังโหนด A ที่มีตัวระบุ "oil_temperature" และข้อมูลที่จำเป็น

ข้อมูลเพิ่มเติมที่อยู่ในเฟรมช่วยให้คุณกำหนดรูปแบบและระยะเวลาของโปรโตคอลการถ่ายโอนข้อความและประเภทของข้อความ:

  • ข้อความใดถูกส่ง - คำขอข้อมูลหรือข้อมูลกำหนดบิตของคำขอส่งระยะไกล (RTR สำหรับตัวระบุ 11 บิตและ SRR สำหรับ 29 บิต)
  • รหัสความยาวข้อมูลที่ระบุจำนวนไบต์ของข้อมูลในข้อความ โหนดทั้งหมดได้รับกรอบข้อมูล แต่โหนดที่ไม่ต้องการข้อมูลนี้จะไม่เก็บไว้
  • เพื่อให้แน่ใจว่าการซิงโครไนซ์และการควบคุม เฟรมประกอบด้วยฟิลด์ของจุดเริ่มต้นของเฟรม เริ่มต้นของเฟรม จุดสิ้นสุดของเฟรม สิ้นสุดของเฟรม และฟิลด์ตอบรับ
  • การเข้าสู่โหมดการซิงโครไนซ์บนบัสจะดำเนินการโดยบิตแรกของฟิลด์ Start of Frame จากนั้นการซิงโครไนซ์จะอยู่ที่ด้านหน้าเมื่อระดับของบิตที่ส่งเปลี่ยนไป
  • ใช้กลไก bitstaffing - แทรกบิตเพิ่มเติมที่ศูนย์หรือศูนย์ห้าตัวถัดไป

การตรวจจับข้อผิดพลาด

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

มีข้อผิดพลาดหลายประเภทใน CAN ในจำนวนนี้ มีสามประเภทที่ระดับข้อความ:

  • ข้อผิดพลาด CRC - ข้อผิดพลาดการตรวจสอบ (เมื่อได้รับในฟิลด์ CRC และการตรวจสอบที่คำนวณไม่ตรงกัน)
  • ข้อผิดพลาดของแบบฟอร์ม - ข้อผิดพลาดของรูปแบบเฟรมเมื่อข้อความที่ได้รับไม่ตรงกับรูปแบบ CAN
  • ข้อผิดพลาดในการตอบรับ - ข้อผิดพลาดในการตอบรับข้อความหากไม่มีโหนดใดที่รับทราบการรับข้อความที่ถูกต้อง

นอกจากนี้ยังมีข้อผิดพลาดระดับบิตสองประเภท:

  • ข้อผิดพลาดบิต - การตรวจจับโดยโหนดที่ใช้งานอยู่ของความคลาดเคลื่อนระหว่างระดับที่ส่งไปยังบัสและค่าจริงอันเนื่องมาจากการใช้งานกลไกการควบคุมตนเองโดยโหนด
  • Stuff Error - การมีอยู่ในช่องข้อความหกบิตต่อเนื่องกัน 0 หรือ 1 (ข้อผิดพลาด bitstuffing)

ด้วยกลไกการตรวจจับและแก้ไขข้อผิดพลาดเหล่านี้ โอกาสในการพลาดข้อผิดพลาดจึงต่ำมาก ตัวอย่างเช่น ที่ความเร็ว 500 Kbps การใช้บัส 25% และการใช้งาน 2,000 ชั่วโมงต่อปี มีข้อผิดพลาดที่ตรวจไม่พบเพียงรายการเดียวใน 1,000 ปี นอกจากนี้ เป็นไปไม่ได้ที่บัสจะบล็อกการทำงานของเครือข่ายทั้งหมดด้วยโหนดที่ผิดพลาด โหนดดังกล่าวจะถูกตรวจพบและตัดการเชื่อมต่อจากการแลกเปลี่ยนบนบัส