ในขอบเขตของแอพพลิเคชั่นยานยนต์และอุตสาหกรรมการสื่อสารที่เชื่อถือได้ระหว่างไมโครคอนโทรลเลอร์หลายตัวเป็นสิ่งสำคัญยิ่ง โปรโตคอล Bus Network (CAN) ของคอนโทรลเลอร์ (CAN) ได้กลายเป็นโซลูชันที่แข็งแกร่งสำหรับความต้องการดังกล่าว โพสต์บล็อกนี้นำเสนอพื้นฐานของโปรโตคอล CAN BUS และสาธิตวิธีการรวม MCP2515 สามารถควบคุมได้ด้วย Arduino ทำให้การสื่อสารที่ไร้รอยต่อในโครงการของคุณ
โปรโตคอลรถบัสคืออะไร?
บัสเครือข่ายพื้นที่คอนโทรลเลอร์ (CAN) เป็นมาตรฐานรถบัสยานพาหนะที่มีประสิทธิภาพที่ออกแบบมาเพื่อให้ไมโครคอนโทรลเลอร์และอุปกรณ์สามารถสื่อสารกันได้โดยไม่ต้องใช้คอมพิวเตอร์โฮสต์ พัฒนาโดย Bosch ในปี 1980 Can Bus ได้กลายเป็นมาตรฐานในระบบยานยนต์ แต่ยังใช้กันอย่างแพร่หลายในระบบอัตโนมัติอุตสาหกรรมและระบบฝังตัวอื่น ๆ
คุณสมบัติที่สำคัญของโปรโตคอล CAN Bus ได้แก่ :
- การกำหนดค่าแบบหลายเมตร: หลายโหนดสามารถสื่อสารบนบัสคันเดียวกันได้โดยไม่ต้องมีตัวควบคุมกลาง
- การจัดลำดับความสำคัญของข้อความ: ข้อความจะถูกจัดลำดับความสำคัญตามตัวระบุของพวกเขาเพื่อให้มั่นใจว่าข้อมูลที่สำคัญจะถูกส่งก่อน
- การตรวจจับข้อผิดพลาด: กลไกการตรวจจับข้อผิดพลาดที่แข็งแกร่งรวมถึงการตรวจสอบ CRC และบิตรับทราบเพิ่มความน่าเชื่อถือ
- การสื่อสารความเร็วสูง: รองรับอัตราข้อมูลสูงถึง 1 Mbps เหมาะสำหรับแอปพลิเคชันแบบเรียลไทม์
คุณสมบัติเหล่านี้ทำให้ Can Bus เหมาะสำหรับสถานการณ์ที่อุปกรณ์หลายตัวต้องสื่อสารอย่างมีประสิทธิภาพและน่าเชื่อถือเช่นในระบบการจัดการเครื่องยนต์ยานพาหนะระบบอัตโนมัติอุตสาหกรรมและหุ่นยนต์
การแนะนำ MCP2515 CAN CONTROLLER
MCP2515 เป็นคอนโทรลเลอร์พื้นที่คอนโทรลเลอร์แบบสแตนด์อโลน (CAN) ที่เชื่อมต่อกับไมโครคอนโทรลเลอร์ผ่านอินเตอร์เฟสต่อพ่วงแบบอนุกรม (SPI) มันจัดการโปรโตคอล CAN ที่สลับซับซ้อนช่วยให้นักพัฒนาสามารถมุ่งเน้นไปที่ตรรกะแอปพลิเคชันระดับสูง คุณสมบัติที่สำคัญของ MCP2515 รวมถึง:
- การสนับสนุนสำหรับมาตรฐานและขยายสามารถเฟรมได้
- กลไกการจัดการข้อผิดพลาดในตัวและการกรอง
- ความเข้ากันได้กับไมโครคอนโทรลเลอร์ต่าง ๆ รวมถึง Arduino
- การใช้พลังงานต่ำทำให้เหมาะสำหรับระบบฝังตัว
ด้วยการรวม MCP2515 เข้ากับ Arduino คุณสามารถเพิ่มความสามารถของบัสในโครงการของคุณทำให้สามารถสื่อสารกับอุปกรณ์หรือเครือข่ายที่เปิดใช้งานได้อื่น ๆ
การตั้งค่า MCP2515 ด้วย Arduino
ในการเริ่มต้นคุณจะต้องมีส่วนประกอบต่อไปนี้:
- Arduino Board (เช่น Arduino Uno)
- MCP2515 สามารถโมดูล (มักจะมาพร้อมกับตัวรับส่งสัญญาณ CAN TJA1050)
- สายจัมเปอร์
- กระดานข่าว (ไม่บังคับ)
นี่คือคำแนะนำทีละขั้นตอนในการตั้งค่า MCP2515 ด้วย Arduino ของคุณ:
1. การเดินสาย MCP2515 ถึง Arduino
เชื่อมต่อโมดูล MCP2515 กับ Arduino ดังนี้:
- VCC ถึง 5V บน Arduino
- gnd ถึง gnd บน Arduino
- CS ถึง พิน 10 บน Arduino
- SCK ถึง PIN 13 บน Arduino
- ศรี (mosi) ถึง พิน 11 บน Arduino
- ดังนั้น (มิโซะ) ถึง PIN 12 บน Arduino
- int ถึง พิน 2 บน Arduino
2. การติดตั้งไลบรารีที่ต้องการ
ในการสื่อสารกับ MCP2515 คุณจะต้องมี MCP_CAN ห้องสมุด. ติดตั้งผ่าน Arduino Library Manager:
- เปิด Arduino IDE
- นำทางไปยัง ร่าง> รวมไลบรารี> จัดการไลบรารี ...
- ค้นหา MCP_CAN และติดตั้งไฟล์ MCP_CAN ห้องสมุดโดย Cory J. Fowler
3. การอัปโหลดรหัสตัวอย่าง
นี่คือตัวอย่างพื้นฐานในการส่งและรับข้อความสามารถโดยใช้ MCP2515 และ Arduino:
การส่งข้อความ CAN
การรับข้อความ CAN
ในภาพร่างการส่ง Arduino ส่งข้อความ CAN ด้วย ID 0x100
ทุกวินาที ร่างที่ได้รับฟังสำหรับการเข้ามาสามารถส่งข้อความและพิมพ์ ID และข้อมูลไปยังจอภาพอนุกรม
แอปพลิเคชันของรถบัส CAN กับ Arduino
การรวมรถบัส CAN กับ Arduino เปิดแอพพลิเคชั่นมากมายนอกเหนือจากระบบยานยนต์ กรณีการใช้งานที่ได้รับความนิยมบางกรณี ได้แก่ :
- หุ่นยนต์: เปิดใช้งานการสื่อสารระหว่างตัวควบคุมมอเตอร์และเซ็นเซอร์หลายตัว
- ระบบอัตโนมัติอุตสาหกรรม: อำนวยความสะดวกในการแลกเปลี่ยนข้อมูลระหว่างเครื่องจักรและหน่วยควบคุมที่แตกต่างกัน
- ระบบอัตโนมัติในบ้าน: เชื่อมต่ออุปกรณ์อัจฉริยะต่าง ๆ ภายในเครือข่ายแบบครบวงจร
- ระบบเก็บข้อมูล: รวบรวมและประมวลผลข้อมูลจากเซ็นเซอร์หลายตัวได้อย่างมีประสิทธิภาพ
บทสรุป
โปรโตคอล CAN BUS ที่มีความน่าเชื่อถือและประสิทธิภาพทำหน้าที่เป็นกระดูกสันหลังสำหรับการสื่อสารในระบบฝังตัวจำนวนมาก ด้วยการใช้ MCP2515 สามารถควบคุมได้ด้วย Arduino นักพัฒนาสามารถรวมความสามารถของบัสเข้ากับโครงการของพวกเขาได้อย่างง่ายดาย ไม่ว่าคุณจะทำงานเกี่ยวกับระบบยานยนต์ระบบอัตโนมัติอุตสาหกรรมหรือหุ่นยนต์ที่ซับซ้อนความเข้าใจและการใช้ประโยชน์จากการใช้ประโยชน์สามารถบัสได้อย่างมีนัยสำคัญสามารถช่วยเพิ่มกรอบการสื่อสารของระบบของคุณ
ด้วยคำแนะนำและตัวอย่างที่ครอบคลุมคุณมีความพร้อมที่จะเริ่มต้นการรวมตัวกันสามารถบัสเข้าสู่โครงการ Arduino ต่อไปของคุณ การเข้ารหัสมีความสุข!