การเลือกเลเยอร์เครือข่ายผ่าน CAN บัส


10

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

คำตอบ:


7

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

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

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


หนังสือเล่มนี้พูดถึงการใช้งาน CANopen ที่เรียกว่า MicroCANopen คุณใช้ CANopen ในการใช้งานอะไร
mjh2007

1
@ mjh2007 - เรารีดของเราเองเนื่องจากจำเป็นต้องใช้ร่วมกับโปรโตคอลอื่น
J. Polfer

"CANOpen" -> "CANopen"
Peter Mortensen

7

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


7
มี OpenCAN เช่นเดียวกับ CANOpen? aiggh! การตั้งชื่อที่น่ากลัว
Jason S

1
@ Jason ฉันตำหนิ microsoft
Kortuk

5

มีคำตอบที่ดีมาก ฉันไม่ทราบว่าคุณใช้ micro ตัวใด แต่นี่คือลิงค์ไปยังข้อมูลบางส่วนจาก microchip

ห้องสมุด J1939

เฟิร์มแวร์ DeviceNet ™ Group 2 Slave สำหรับ PIC18 พร้อม CAN

CANopen

พวกเขาแต่ละคนมีรหัสและแผ่นข้อมูลพื้นฐานที่แจ้งให้คุณทราบว่าคุณต้องใช้อะไรบ้าง


1
จริงๆแล้วฉันใช้ Microchip ดังนั้นมันจึงมีประโยชน์มาก ขอบคุณ!
mjh2007

1
ทั้งหมดสำหรับ pic18 ดูเหมือนว่าด้วย CANopen คุณจะมีต้นแบบที่ปรับเปลี่ยนการตั้งค่าของผู้อื่นสำหรับการใช้งาน Canbus ของฉันซึ่งส่วนใหญ่แล้วสิ่งนี้เข้ากันได้อย่างสมบูรณ์แบบ
Kortuk

คุณใช้ห้องสมุด Microchip เพื่อติดตั้ง CANopen หรือไม่?
mjh2007

1
ในกระบวนการของการนำมันมาใช้มันเป็นกระบวนการที่ช้าเพราะมันต้องการคนมากมายที่จะยอมให้ฉันเปลี่ยนแปลงระบบ ฉันจะอัปเดตคุณเมื่อมีการใช้งานหากจะช่วย
Kortuk

1
@ mjh2007 ฉันหยุดทำงานกับหน่วยประมวลผลและนักเรียนที่ตัดสินใจมากกว่าที่เคยมีมาก่อนที่จะไม่ใช้ฮาร์ดแวร์ก่อนหน้านี้และซื้อสิ่งที่พวกเขาสบายใจขึ้น ยังไม่มีความคืบหน้าในโครงการของอาจารย์อีกต่อไป แต่เกิดขึ้นเมื่ออาจารย์ไม่ทราบว่าเกิดอะไรขึ้นและปล่อยให้ผู้คนเปลี่ยนทุกอย่างปีละครั้ง
Kortuk
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.