Mục lục:
- Quân nhu
- Bước 1: Mạch thu phát
- Bước 2: Đọc và Viết lên Xe buýt CAN
- Bước 3: Kết nối các nút
- Bước 4: Tạo PCB
- Bước 5: Mở rộng bảng
- Bước 6: Đặt hàng PCB của bạn từ JLCPCB
- Bước 7: Nhận bảng của bạn
Video: Giao diện STM32 CAN: 7 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:33
Bus Mạng Vùng Bộ điều khiển, hoặc Bus CAN, là một giao thức truyền thông rất hiệu quả nhờ khả năng tốc độ cao, độ tin cậy trong phạm vi dài và khả năng chống nhiễu. Vì những lý do này, giao tiếp CAN đã trở thành tiêu chuẩn trong công nghệ ô tô và môi trường có tiếng ồn cao. Các thiết bị trên bus CAN được gọi là các nút. Tất cả các nút trên CAN bus được kết nối song song, nghĩa là mỗi nút được kết nối với tất cả các nút khác trên mạng. Một bus CAN duy nhất có thể có tới 115 nút cùng một lúc, tùy thuộc vào tốc độ truyền thông báo, nhưng đối với hầu hết các ứng dụng, khuyến nghị có tối đa 32 thiết bị. Cũng nên giữ độ dài giữa nút đầu tiên và nút cuối cùng cách nhau dưới 40 mét.
Hướng dẫn từng bước này sẽ chỉ cho bạn cách thiết lập nút CAN bằng vi điều khiển STM32, bao gồm mạch và mã C đơn giản để đọc và ghi vào bus CAN
Quân nhu
Đối với mỗi nút CAN:
- 1x bảng đột phá STM32 (Nucleo, Blue Pill, các loại khác)
- 1x MCP2551 CAN thu phát IC
- Tụ điện 1x 0,1µF
- 1x 120Ω điện trở
- 1x điện trở 1kΩ
- 1+ đầu vào có thể đọc được (nút, công tắc, chiết áp, v.v.) hoặc đầu ra (LED, MOSFET, v.v.)
- 1x đầu nối Dsub9
Bước 1: Mạch thu phát
Để giao tiếp với CAN bus, chúng ta sẽ sử dụng IC thu phát CAN MCP2551. IC hoạt động như một cặp máy phát / máy thu trung gian để kết nối STM32 với bus CAN. Mạch để thiết lập IC này khá đơn giản, nhưng có một số điều cần lưu ý:
-
CAN_RX (chân 4) và CAN_TX (chân 1) trên chip MCP2551 chỉ có thể đi đến một số chân nhất định trên STM32.
- Trên STM32F1 Nucleo, kết nối đường RX với chân PB8 và đường TX với chân PB9.
- Trên viên thuốc màu xanh lam STM32F1, kết nối RX với chân PA11 và TX với chân PA12.
- Lưu ý rằng các nhiệm vụ ghim này có các lựa chọn thay thế. Tham khảo hướng dẫn sử dụng bộ vi điều khiển để xác định chân nào có khả năng CAN_RD và CAN_TD
- Nếu sử dụng Arduino hoặc bo mạch không có bộ giao tiếp CAN được tích hợp, chip IC MCP2515 sẽ được yêu cầu để chuyển đổi các giao thức tin nhắn khác sang CAN.
- Chân CANL phải được kết nối với các chân CANL khác của các nút bus khác. Tương tự với các chân CANH.
- Điện trở 120Ω trên các chân CANH và CANL chỉ được yêu cầu nếu nút là nút đầu cuối. Điều này có nghĩa là nó ở cuối hệ thống dây kết nối song song. Nói cách khác, bus CAN chỉ nên có hai điện trở 120Ω và chúng phải càng xa nhau càng tốt.
- Cuối cùng, điện trở 1kΩ trên RS (chân 8) có thể được đổi lấy điện trở 10kΩ để điều khiển thời gian tăng / giảm của các bit thông báo CAN. Tham khảo bảng dữ liệu chip MCP2551 để biết thêm chi tiết.
Bước 2: Đọc và Viết lên Xe buýt CAN
Bây giờ mạch thu phát được kết nối với STM32, chúng ta có thể bắt đầu ghi thông báo vào CAN bus. Hướng dẫn có thể hướng dẫn này sẽ không đi sâu vào mã STM32. Tuy nhiên, hãy chắc chắn kiểm tra mã của chúng tôi để biết các ví dụ ở đây. Sử dụng STM32 làm nút CAN sẽ yêu cầu tệp tiêu đề CAN. Chúng tôi đã viết riêng của chúng tôi, có thể tìm thấy trên github của chúng tôi tại đây. Ở đây, chúng tôi sẽ giới thiệu tổng quan ngắn gọn về quá trình đọc / ghi.
Để đọc từ CAN bus, trước tiên chúng ta cần biết ID của thông báo CAN. Mỗi tin nhắn phải có một ID duy nhất, với những ID thấp hơn sẽ có mức độ ưu tiên cao hơn. Đoạn mã hiển thị ở đây đang chờ thông báo CAN với ID 0x622. Trong hệ thống của chúng tôi, nếu bit đầu tiên của byte thứ 6 cao, thì chúng tôi muốn đặt chân A10 cao.
Khi viết một thông điệp CAN, chúng ta phải nhớ rằng các thông điệp CAN là nhiều byte. Mỗi tin nhắn được viết phải có một ID và độ dài. Trong đoạn mã thứ hai được hiển thị, chúng tôi ghi dữ liệu vào từng byte, sau đó gửi tin nhắn (Các tham số ID và độ dài được xác định trước đó trong mã).
Bước 3: Kết nối các nút
Khi kết nối nhiều nút CAN, cần chú ý cẩn thận đến chiều dài của cáp. Hai nút xa nhất có thể cách xa nhau đến 40m. Các nút giữa kết nối với xe buýt phải cách các tuyến xe buýt chính trong vòng 50cm.
Kết nối CAN tuân theo tiêu chuẩn công nghiệp sử dụng đầu nối Dsub9 với đường CANL trên chân 2 và dòng CANH trên chân 7. Dòng CANGND tùy chọn có thể đi trên chân 3.
Bước 4: Tạo PCB
Khi định tuyến các tín hiệu CAN trên PCB, hãy nhớ rằng CAN là một tín hiệu vi sai, và do đó, các hướng dẫn định tuyến cho CANH và CANL cần được tuân thủ cẩn thận.
Bước 5: Mở rộng bảng
Ném thêm một số nút với nhau, thêm một số đầu vào / đầu ra và kết nối tất cả các chân CANH và CANL của chúng. Lưu ý rằng mỗi STM32 hoặc vi điều khiển khác yêu cầu chip MCP2551 của riêng nó; chúng không thể được chia sẻ.
Như đã nói, hãy cố gắng giữ cho PCB của bạn nhỏ hơn PCB được hiển thị ở đây
Bước 6: Đặt hàng PCB của bạn từ JLCPCB
JLCPCB cung cấp dịch vụ nhanh chóng, chất lượng cao với giá cả rất hợp lý. Nhận 5 bảng, bất kỳ màu nào với hàng tấn tùy chỉnh, chỉ với 2 đô la! Và nếu đó là đơn đặt hàng đầu tiên của bạn, hãy nhận 10 bảng với cùng một mức giá!
Chỉ cần tải lên nhạc nền của bạn và nhận báo giá ngay lập tức! Gửi đơn đặt hàng của bạn và bảng của bạn sẽ được xem xét để sản xuất trong vòng một giờ. Sau khi thanh toán, bạn có thể mong đợi bảng chất lượng cao của mình chỉ sau ba ngày!
Kiểm tra nó ở đây
Bước 7: Nhận bảng của bạn
Xin gửi lời kêu gọi to lớn tới JLCPCB vì đã tài trợ cho dự án này. JLCPCB (ShenzhenJLC Electronics Co., Ltd.), là doanh nghiệp nguyên mẫu PCB lớn nhất ở Trung Quốc và là nhà sản xuất công nghệ cao chuyên tạo mẫu PCB nhanh và sản xuất PCB hàng loạt nhỏ. Họ đã đủ tốt để cung cấp cho UBC Solar PCBs mới của chúng tôi cho chiếc xe đua chạy bằng năng lượng mặt trời của chúng tôi. Chúng tôi đã đặt hàng vào thứ Sáu và nhận bảng vào thứ Tư!
Đề xuất:
Bắt đầu với giao diện cảm biến I2C ?? - Giao diện MMA8451 của bạn bằng ESP32s: 8 bước
Bắt đầu với giao diện cảm biến I2C ?? - Giao diện MMA8451 của bạn bằng cách sử dụng ESP32s: Trong hướng dẫn này, bạn sẽ tìm hiểu tất cả về Cách khởi động, kết nối và nhận thiết bị I2C (Gia tốc kế) hoạt động với bộ điều khiển (Arduino, ESP32, ESP8266, ESP12 NodeMCU)
Cách giao diện cần điều khiển trục kép với Arduino Uno: 5 bước
Cách giao diện cần điều khiển trục kép với Arduino Uno: Ở đây chúng ta sẽ giao diện cần điều khiển một trục đấu với arduino una. Cần điều khiển này có hai chân tương tự cho trục x và trục y và một chân kỹ thuật số cho công tắc
Giao diện cảm biến ADXL335 trên Raspberry Pi 4B trong 4 bước: 4 bước
Giao diện cảm biến ADXL335 trên Raspberry Pi 4B trong 4 bước: Trong phần Hướng dẫn này, chúng tôi sẽ giao diện cảm biến ADXL335 (gia tốc kế) trên Raspberry Pi 4 với Shunya O / S
Màn hình Nextion - Giải thích về giao diện và giao thức với PIC và Arduino: 10 bước
Màn hình Nextion | Giải thích về giao diện và giao thức với PIC và Arduino: Nextion Display rất dễ sử dụng và giao diện dễ dàng với bộ điều khiển vi mô. sẽ hành động trên để hiển thị
Giao diện bước MIDI (versión En Español): 12 bước
Giao diện bước MIDI (versión En Español): Versión en inglés aquí.En estable te mostraremos cómo hacer una plataforma interactiva de luz y sonido, que puede ser usada para jugar el famoso “Simon Says” al igual que como un controlador MIDI. Ambos modos operados con los pies! Antecede