1寫在前面
該教程前面講述了許多關(guān)于CAN協(xié)議的一些概念,可能許多初學(xué)者看的云里霧里,那么本文將結(jié)合代碼讓大家理解之前講述的內(nèi)容。
因為關(guān)注我的人大部分都在學(xué)習(xí)STM32,我將結(jié)合STM32F103、標(biāo)準(zhǔn)外設(shè)庫例程來讓大家理解之前講述的一些概念。
本文主要講述內(nèi)容:
1.傳輸數(shù)據(jù)相關(guān)參數(shù)
2.位時序及傳輸波特率
為方便大家理解,我將在最后提供對應(yīng)例程「CANOpen系列教程06_CAN底層收發(fā)例程」。當(dāng)然,本文只講述代碼中部分內(nèi)容,某些配置參數(shù)放在后面講述。
2
傳輸數(shù)據(jù)相關(guān)參數(shù)
傳輸數(shù)據(jù)相關(guān)參數(shù)其實(shí)主要就是前面《CANOpen系列教程04》講述的“幀類型及格式說明”那一章節(jié)內(nèi)容,建議先看下那些概念內(nèi)容。
CAN總線傳輸?shù)膬?nèi)容主要就是發(fā)送和接收,下面我將結(jié)合代碼中發(fā)送和接收參數(shù)來讓大家理解我們編程控制CAN總線上那些參數(shù)。
2.1 CAN總線數(shù)據(jù)幀
本文提供例程主要是CAN總線使用最多的數(shù)據(jù)幀為例,讓大家理解數(shù)據(jù)幀傳輸由我們編程控制的參數(shù)。
先看下圖回顧一下數(shù)據(jù)幀格式,其中有些字段內(nèi)容由控制器自動完成,如:幀起始,CRC校驗。而有些就是由我們編程控制,如:ID、數(shù)據(jù)等。

2.2 CAN發(fā)送代碼
A.CAN發(fā)送數(shù)據(jù)結(jié)構(gòu)
下圖主要就是CAN發(fā)送由我們編程控制的參數(shù)。其實(shí)你會發(fā)現(xiàn),主要就是上面幀格式中部分內(nèi)容:ID、IDE、RTR、DLC、Data。

B.發(fā)送配置參數(shù)
下圖為實(shí)際發(fā)送配置的參數(shù)。

2.3 CAN接收代碼
CAN接收其實(shí)和發(fā)送類似,CAN總線上的字段就那些,在接收端接收的那些參數(shù)無非就是發(fā)送端發(fā)送出來的那些參數(shù)。
針對STM32內(nèi)部集成的CAN,接收數(shù)據(jù)結(jié)構(gòu)多了一個FMI參數(shù),大概意思就是接收消息郵箱篩選器索引。

接收操作
為方便初學(xué)者理解,這里這要就是使用中斷接收CAN總線數(shù)據(jù),在中斷函數(shù)里面打印也主要是用于測試,一般實(shí)際項目打印不會出現(xiàn)在中斷函數(shù)(打印相對耗時)。

3
位時序及傳輸波特率
同樣,在前面《CANOpen系列教程04》中有講述“位時序及傳輸波特率”的概念。其實(shí),位時序間接決定了傳輸?shù)牟ㄌ芈?。換句話說,傳輸?shù)牟ㄌ芈视晌粫r序幾個參數(shù)決定。
看下圖,回顧一下波特率計算公式:

3.1 波特率配置代碼
結(jié)合上圖計算公式和下圖代碼,可以看出位時序中幾個參數(shù)和波特率的關(guān)系。波特率為1M時,幾個位時序參數(shù)可以配置為如下圖值:

提示:
36M代表CAN時鐘,具體要看時鐘相關(guān)配置。
波特率固定,位時序參數(shù)可以不同。比如波特率固定為1M,位時序參數(shù)可以為上圖配置;也可以修改其中的值,如修改位段1為CAN_BS1_5tq,位段2為CAN_BS2_3tq。只要遵循波特率計算公式即可。
-
CAN
+關(guān)注
關(guān)注
59文章
3044瀏覽量
472093 -
CANopen
+關(guān)注
關(guān)注
8文章
477瀏覽量
47836 -
代碼
+關(guān)注
關(guān)注
30文章
4956瀏覽量
73492
發(fā)布評論請先 登錄
TCAN33x系列CAN收發(fā)器:高速通信與可靠防護(hù)的完美結(jié)合
TCAN1051系列CAN收發(fā)器:工業(yè)網(wǎng)絡(luò)通信的可靠之選
深入剖析SN65HVD25x Turbo CAN收發(fā)器:高性能與可靠性的完美結(jié)合
深入剖析TCAN1051系列CAN收發(fā)器:特性、應(yīng)用與設(shè)計要點(diǎn)
SN65HVD26x Turbo CAN收發(fā)器:CAN FD與冗余設(shè)計的理想之選
汽車類 CAN 收發(fā)器 TCAN1042-Q1 系列:設(shè)計與應(yīng)用全解析
汽車類 CAN 收發(fā)器 TCAN1051-Q1 系列:特性、應(yīng)用與設(shè)計要點(diǎn)
深入剖析TCAN1051系列CAN收發(fā)器:特性、應(yīng)用與設(shè)計要點(diǎn)
CAN如何進(jìn)行錄波,接收所有數(shù)據(jù)?
移植CANfestival,發(fā)現(xiàn)can無法接收數(shù)據(jù),為什么?
ProfiNet轉(zhuǎn)CAN/CANopen網(wǎng)關(guān)技術(shù)詳解
CAN收發(fā)器:總線信號的“翻譯官”
使用ES32實(shí)現(xiàn)CANopen從機(jī)
CANOpen系列教程06_ 結(jié)合代碼理解CAN底層收發(fā)數(shù)據(jù)
評論