Mục lục:

Giao diện STM32 CAN: 7 bước
Giao diện STM32 CAN: 7 bước

Video: Giao diện STM32 CAN: 7 bước

Video: Giao diện STM32 CAN: 7 bước
Video: STM32|Phần 2.1-STM32F103C8 giao tiếp với 1 LED 7 đoạn sang 0 đến 9/STM32 with 7 seg 2024, Tháng mười một
Anonim
Giao diện STM32 CAN
Giao diện STM32 CAN

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

Mạch thu phát
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

Đọc và Viết lên Xe buýt CAN
Đọ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

Kết nối các nút
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

Tạo PCB
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

Mở rộng hội đồng quản trị
Mở rộng hội đồng quản trị

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

Đặt hàng PCB của bạn từ JLCPCB
Đặ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

Nhận bảng của bạn!
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: