Mbed OS CAN匯流排收發訊息

2021-08-28 16:40:52 字數 1343 閱讀 1614

can(controller area network)是博世公司發明的。是乙個多主訊息廣播系統,最高速率可達1mbps,和傳統的usb,乙太網介面不同。can 不能點對點傳送大資料塊。只能以廣播方式傳送短訊息(8個位元組)。和ethernet類似,can採取(csma/cd匯流排通訊方式。can已經成為國際標準, iso-11898: 2003。

canbus 在工業控制和****中的到了廣泛的應用。

canbus幀 

canbus 幀識別符號

canbus 幀中有乙個11位的id,可以有 2048個不同的訊息標識。而擴充套件的canbus幀有29位id。有537 million 的id。

canbus 是匯流排型網路,如下圖所示

stm32f249 上有兩個can 匯流排控制器,由於引腳復用的原因, modular-2 模組化電腦中保留了乙個can控制器。soc 需要通過乙個can 收發器晶元(例如ti公司的sn65hvd233)接入canbus 匯流排上去。

mbed os 帶有can 匯流排的介面類can。

建構函式:

can(pinname rd, pinname td)

can (pinname rd, pinname td, int hz)

主要成員函式:

frequency (int hz) 設定速率。

write (canmessage msg)

read (canmessage &msg, int handle=0)

filter (unsigned int id, unsigned int mask, canformat format=canany, int handle=0)

詳細說明可見:mbed can

具體的使用方式如下:

#include "mbed.h"

digitalout myled(d8);

can can1(pd_0, pd_1,500000);

int main() }}

可以看出,在mbed os/modular-2 中實現can 匯流排收發資料如此的簡單。可以靈活地實現乙個can匯流排測試儀,通過modbus或者udp 和pc機通訊,這要比購買乙個現成的can測試儀更加靈活和經濟。在汽車零部件生產線的產品檢驗測試中獲得了應用。

socket實現UDP收發訊息

import socket while true 建立udp套接字 udp socket socket.socket socket.af inet,socket.sock dgram 設定接收方的位址和埠 根據具體情況更改 dest addr 255.255.255.255 8080 從鍵盤輸入資料...

socket收發訊息底層原理

服務端和客戶端想要通訊,底層需要internet物理連線,網絡卡配備有ip位址和mac位址,網絡卡收發的訊息是位元組流。服務端程式和客戶端程式工作中應用層,服務端程式要想發包,必須一層一層往下走,走到網絡卡那一層,將資料轉化成二進位制才能送到客戶端 客戶端網絡卡收到包,一層一層往上送,然後客戶端程式...

python使用kafka收發訊息

kafka是最近幾年很流行的訊息佇列中介軟體。在大資料以及後端服務領域有很廣泛的應用。廢話不多說,接下來直接上 介紹python如何向kafka傳送資料以及訂閱資料。kafka的訊息是 發布 訂閱 模式的。接下來先介紹向kakfa發布訊息。先安裝python的kafka連線模組。pip instal...