Là một vi điều khiển kích hoạt CAN có đủ để lái xe buýt CAN không?


45

Có một số mô-đun CAN được tích hợp trong vi điều khiển ngày nay. Các PIC18F2480 là một ví dụ về điều đó. Bộ vi điều khiển đó (có CAN tích hợp) có khả năng tự lái một chiếc xe buýt CAN hay là một bộ thu phát / bộ điều khiển CAN bên ngoài cần thiết?

Tôi tin rằng CAN có cả lớp phần mềm và phần cứng và bởi vẻ ngoài của nó, các bộ vi điều khiển hỗ trợ CAN này dường như chỉ có phần mềm, nhưng nó không nói rằng nó có thể hoặc không thể lái xe buýt CAN như hiện tại.

Tôi đang tìm cách kết nối hơn sáu bộ vi điều khiển thông qua một chiếc xe buýt CAN và muốn biết liệu tôi có cần bộ thu phát qua tất cả chúng hay không hoặc liệu các công cụ tích hợp có thể xử lý giao tiếp từ góc độ phần mềm và phần cứng hay không.

Giả sử rằng tôi sẽ có các điện trở kết thúc cần thiết và các thành phần riêng biệt nhỏ khác (mũ, điện trở, v.v.)

Câu trả lời:


55

Đây là một câu hỏi rất hay. Theo nguyên tắc chung, CAN yêu cầu bộ thu phát cho mọi nút:

nhập mô tả hình ảnh ở đây

Tuy nhiên, trong những trường hợp nhất định, bạn thực sự có thể thoát khỏi mà không cần bất kỳ máy thu phát nào! Những trường hợp đó là:

  • Chiều dài xe buýt ngắn (nhiều hơn 1 mét)
  • Tốt nhất là tất cả các bộ vi điều khiển đều nằm trên cùng một PCB hoặc chồng PCB.
  • Tốc độ bit thấp
  • Môi trường không quá ồn ào điện

Đây không phải là quy tắc cứng. Bạn có thể thoát khỏi tốc độ bit tối đa (1MB / s) nếu bạn có một chiếc xe buýt thực sự ngắn (10cm).

Để đạt được điều này, bạn cần biết một chút về những gì bộ thu phát làm. Giống như hầu hết các máy thu phát, chúng có thể xuất cao hoặc thấp cho xe buýt (đại diện cho 1 và 0), nhưng 0 có thể chiếm ưu thế 1. IE Nếu hai máy thu phát cố gắng nói cùng một lúc và một người nói 1 và người kia nói đang nói 0 thì 0 sẽ thắng. Chúng ta có thể tạo lại tình huống tương tự chỉ bằng cách sử dụng điốt:

CAN đơn giản

Xem ghi chú ứng dụng Seples AP2921: Giao tiếp trên tàu qua CAN mà không cần thu phát

Nhưng đây là một điều thậm chí còn thú vị hơn: PIC thực sự có hỗ trợ phần cứng cho khả năng thu phát!

Đăng ký CIOCON

Bạn có thể định cấu hình chân CAN TX để nó hoạt động giống hệt như bộ thu phát. Điều này có nghĩa là bạn có thể kết nối xe buýt CAN mà không cần điốt. Bạn vẫn sẽ cần điện trở mặc dù.

Đơn giản hơn


2
Hoàn toàn tuyệt vời trả lời. Tôi đánh giá rất cao thời gian bạn dành để trả lời. Tôi có thể phải đi với bộ thu phát vì có thể có rất nhiều tiếng ồn điện, và mặc dù mọi thứ sẽ được đặt trong một "hộp", chúng sẽ nằm trên nhiều pcbs. Cảm ơn một lần nữa!
efox29

@ efox29 - Bạn được chào đón. Chắc chắn tốt hơn là đi với máy thu phát nếu bạn có thể.
Rocketmagnet

Thiết lập thu phát đó là mới đối với tôi và trông rất thú vị khi thiết lập một mạng lưới các bộ điều khiển đơn giản trên khoảng cách xa hơn. Đẹp!
0x6d64

@ 0x6d64 - Nếu bạn cần nó lâu, đừng quên sử dụng tốc độ bit thấp và tốc độ xoay giới hạn các cạnh.
Rocketmagnet

1
Lưu ý rằng điều này sẽ hoạt động nếu tất cả các thiết bị trên xe buýt sử dụng cùng một cấu hình và sử dụng bus CAN một dây. Nếu bạn muốn giao tiếp với bất kỳ thứ gì khác thực sự là ISO "thực" và sử dụng xe buýt hai dây, chế độ này sẽ không hoạt động.
Jon Watte

10

Họ vi điều khiển LPC11Cxx (dựa trên ARM Cortex-M0) bao gồm bộ thu phát CAN trên chip.


3
Đúng. Đúng. OP hỏi về PIC18. Điều này không thực sự hữu ích.
Federico Russo

4
@FedericoRusso ông đưa ra một ví dụ với PIC18 và timrorr đã đưa ra một giải pháp với trình điều khiển tích hợp. Có chuyện gì với nó vậy?
clabacchio

8
@FedericoRusso - Đừng quá hậu môn. Câu trả lời này rất thú vị.
Rocketmagnet

1
@Rocketmagnet: Vậy Q: "Làm thế nào để tôi làm X?" A: "Đỗ Y." Rốt cuộc là ổn chứ? (Từ câu trả lời của riêng bạn)
Federico Russo

2
@FedericoRusso - Nếu câu hỏi đã được trả lời tốt cho sự hài lòng của OP và ai đó đề cập đến một số thông tin liên quan thú vị, chắc chắn, tại sao không?
Rocketmagnet

9

Vâng, bạn cần một tranceiver. Các chân CAN trên micro được nhận và truyền. Bản thân bus CAN sử dụng một cặp xoắn với tín hiệu vi sai trên hai dây gọi là CAO và THẤP.

Một trong những công việc của bộ thu phát là lấy mức logic bạn trình bày trên chân TX để biến nó thành tín hiệu bus CAN:

  • logic '1' được biểu thị bằng cách không lái xe buýt, do đó, các đường CAO và THẤP "nổi" lên 2,5V - được gọi là "bit recessive" theo thuật ngữ CAN.
  • một logic '0' được biểu diễn bằng cách điều khiển mức CAO cao và mức THẤP thấp - được gọi là "bit trội" vì nó sẽ ghi đè bất kỳ bit ẩn nào được truyền đi.

Cách khác là lấy những gì trên xe buýt và biến nó trở lại mức logic để gửi lại từ chân RX đến micro của bạn.


8

Bạn cần một chip thu phát CAN giữa CPU và bus CAN. Kiểm tra MCP2551.

Cập nhật ngày 17 tháng 8 năm 2017:

Tôi đang ở hội nghị Microchip Masters ngay bây giờ. Các kỹ sư của Microchip đã nói thẳng rằng một trong những bộ phận mới phát sinh từ việc mua lại Atmel vừa rẻ hơn và tốt hơn MCP2551.


1
Microchip đang khuyến nghị 2561 so với 2551 bây giờ. NXP cũng có một số chip CAN thú vị. Hầu hết các MCU đều cần bộ thu phát.
Ludwig Schreier

2

Các thiết bị tương tự có một ví dụ CÓ thể thu phát mạch bằng bộ khuếch đại vi sai.
Tôi đã không thử điều này, tôi chỉ nhận thức được nó. Cũng quan tâm nếu nó có thể được thực hiện với op-amp

mạch tương tự

Ưu điểm của việc sử dụng bộ thu phát IC chuyên dụng là chúng sẽ xử lý trọng tài cho bạn và bạn không phải lo lắng về việc can thiệp vào xe buýt. Nếu bạn chỉ quan sát xe buýt và đó không phải là môi trường lỗi nghiêm trọng, mạch có thể ổn. Trong khi mcp2551 rất phổ biến, có nhiều tùy chọn cho chip giao diện.

Một sự phát triển mới là loại chip Cơ sở Hệ thống bao gồm điều chỉnh điện áp, chế độ năng lượng và bảo vệ ESD khỏi xe buýt.

Giống như timorr đã nói ở trên, LCP11C24 của NXP là duy nhất ở chỗ bộ xử lý bao gồm bộ thu phát CAN. Một bảng demo với điều này chỉ là 19 đô la. Một giải pháp chi phí thấp khác là sử dụng bảng demo Cypress PSoC5 $ 9,38, CY8CKIT-059. PSoC5 không có bộ điều khiển CAN; nó đi xa hơn: bộ điều khiển được thực hiện trong các khối phổ quát giống như đồ họa. Các thanh ghi của bộ điều khiển được cấu hình thông qua GUI của IDE, giúp cho việc lọc và R & D khá dễ dàng.

Một phương pháp chính tôi đã tìm thấy khi lướt qua các bảng dữ liệu là mcu TTL được gắn nhãn CAN-Tx và CAN-Rx trong khi các dòng dữ liệu của bộ thu phát tới xe buýt luôn được gắn nhãn CAN-H và CAN-L. Tôi không thích các sơ đồ trong câu trả lời khác trong đó TxRx được hiển thị kết nối với xe buýt; điều này đi ngược lại quy ước và góp phần gây nhầm lẫn.

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.