Chọn một lớp mạng trên CAN bus


10

Tôi đang lên kế hoạch sử dụng bus CAN trong một ứng dụng tự động hóa công nghiệp, tuy nhiên tôi đang gặp khó khăn trong việc quyết định cách triển khai lớp mạng. Có ai ở đây có bất kỳ đề xuất nào cho giao thức lớp cao hơn để sử dụng trên CAN cung cấp hướng dẫn về cách gán ID thông báo và cách định dạng gói dữ liệu không? Tôi có nên phát triển lớp mạng độc quyền của riêng mình hoặc thực hiện một tiêu chuẩn hiện có như CANopen?

Câu trả lời:


7

Bạn chắc chắn sẽ muốn chọn một lớp mạng tiêu chuẩn. Tôi đã thấy một số trường hợp mọi người tự lăn, và thường thì giao thức không hiệu quả, và cuối cùng thì thật lãng phí thời gian. Một lớp mạng đã được chứng minh cung cấp chức năng cơ bản để giải quyết hầu hết các vấn đề mà bạn có thể gặp phải khi kết nối mạng với một thiết bị nhúng và điều đó sẽ giúp bạn tiết kiệm thời gian và tiền bạc quý giá.

Tôi có quen với CANopen, vì vậy tôi sẽ đưa ra một lời giải thích ở đây và nó có thể giúp bạn quyết định xem đó có phải là con đường bạn muốn đi không. Nếu nó không phù hợp với những gì bạn cần làm, tôi sẽ xem xét một cái gì đó khác.

CANopen là trung tâm dữ liệu rất. Tất cả các nút nô lệ CANopen (những thứ bạn điều khiển từ nút chính, như cảm biến hoặc trình điều khiển động cơ) cung cấp một từ điển chứa tất cả dữ liệu cấu hình, kiểm soát và thu thập dữ liệu bạn cần đọc / ghi để hoàn thành công việc. Sau đó, bạn có thể đọc / ghi riêng các đối tượng này thông qua cơ chế SDO (đối tượng dữ liệu dịch vụ) hoặc đọc / ghi các đối tượng này theo định kỳ trong các lần truyền tin nhắn CAN theo thời gian thông qua cơ chế PDO (đối tượng dữ liệu của nhà sản xuất). Khởi động, tắt máy và thiết lập lại và phát hiện trục trặc nhịp tim / nút được cung cấp từ các dịch vụ NMT, cũng như dịch vụ gán ID nút (nếu bạn muốn sử dụng nó). Để triển khai thiết bị bằng thư viện CANOpen nhúng, về cơ bản, bạn thiết lập từ điển đối tượng, thiết lập PDO để gửi / nhận cập nhật dữ liệu định kỳ, và viết mã người dùng hành xử dựa trên các mục nhập dữ liệu đó. Có những thứ khác CANopen cung cấp, nhưng đó là phần lớn của nó. Đọc cuốn sách này để biết thêm.


Cuốn sách nói về việc triển khai CANopen có tên MicroCANopen. Bạn sử dụng CANopen nào?
mjh2007

1
@ mjh2007 - Chúng tôi tự lăn, vì nó cần được sử dụng cùng với một giao thức khác.
J. Polfer

"CANOpen" -> "CANopen"
Peter Mortensen

7

Tôi viết mã để truy cập bus CAN trên xe GM, sử dụng lớp mạng chủ yếu là độc quyền. Bạn đã xem qua OpenCAN chưa? Tôi sẽ chọn một tiêu chuẩn mở như CANOpen hoặc thậm chí OpenCAN. Nó thực sự phụ thuộc vào mức độ kiểm soát và tính linh hoạt mà bạn muốn trong môi trường tự động hóa của bạn.


7
Có OpenCAN cũng như CANOpen không? aiggh! đặt tên khủng khiếp.
Jason S

1
@Jason, tôi đổ lỗi cho microsoft.
Kortuk

5

Đã có câu trả lời tuyệt vời. Tôi không biết bạn sử dụng micro gì, nhưng đây là các liên kết đến một số thông tin từ microchip.

Thư viện J1939

Phần mềm nô lệ DeviceNet ™ Nhóm 2 cho PIC18 có thể

CANopen

Mỗi cái đều có mã và một biểu dữ liệu cơ bản cho bạn biết những gì bạn cần để thực hiện chúng.


1
Thật ra tôi sử dụng Microchip nên rất hữu ích. Cảm ơn!
mjh2007

1
Đó là tất cả cho pic18. Dường như với CANopen, bạn có một bậc thầy sửa đổi cài đặt trên những cái khác, đối với hầu hết những gì tôi sử dụng canbus bao gồm, điều này hoàn toàn phù hợp.
Kortuk

Bạn có sử dụng thư viện Microchip để triển khai CANopen không?
mjh2007

1
Trong quá trình thực hiện nó, đó là một quá trình chậm chạp vì nó đòi hỏi nhiều người khác nhau phải cam kết với tôi để thay đổi hệ thống. Tôi sẽ cập nhật cho bạn khi nó được thực hiện nếu điều đó sẽ giúp.
Kortuk

1
@ mjh2007, tôi đã ngừng làm việc cho bộ xử lý và các sinh viên tiếp quản đã quyết định như nhiều người trước đây không sử dụng phần cứng trước đó và mua một cái gì đó mà họ thấy thoải mái hơn. Một lần nữa, không có tiến triển nào trong dự án giáo sư đó, nhưng điều đó xảy ra khi một giáo sư không biết chuyện gì đang xảy ra và chỉ cho phép mọi người thay đổi mọi thứ mỗi năm một lần.
Kortuk
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.