一、CAN相關(guān)芯片
1.CAN控制器
2.CAN收發(fā)器:CAN收發(fā)器的作用是負(fù)責(zé)邏輯電平和信號電平之間的轉(zhuǎn)換。
即從CAN控制芯片輸出邏輯電平到CAN收發(fā)器,然后經(jīng)過CAN收發(fā)器內(nèi)部轉(zhuǎn)換將邏輯電平轉(zhuǎn)換為差分信號輸出到CAN總線上,CAN總線上的節(jié)點都可以決定自己是否需要總線上的數(shù)據(jù)。
二、CAN的配置
void CAN1_Config_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
CAN_InitTypeDef CAN_InitStructure;
CAN_FilterInitTypeDef CAN_FilterInitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
三、CAN波特率計算公式
CAN波特率=系統(tǒng)時鐘/分頻數(shù)/(1*tq+tBS1+tBS2)
其中
tBS1=tq*(TS1[3:0]+1)
tBS2=tq*(TS2[2:0]+1)
tq=(BRP[9:0]+1)*tPCLK
這里tq表示1個時間單元
tPCLK=APB時鐘的時間周期
BRP[9:0],TS1[3:0]和TS2[2:0]在CAN_BTR寄存器中定義
總體配置保持
tBS1>=tBS2,tBS2>=1個CAN時鐘周期,tBS2>=2tSJW
四、CAN的發(fā)送與CAN的接收
1、發(fā)送過程:CAN控制器將CPU傳來的信號轉(zhuǎn)換為邏輯電平(即邏輯0-顯性電平或者邏輯1-隱性電平)。CAN發(fā)射器接收邏輯電平之后,再將其轉(zhuǎn)換為差分電平輸出到CAN總線上。
2、接收過程:CAN接收器將CAN_H 和 CAN_L 線上傳來的差分電平轉(zhuǎn)換為邏輯電平輸出到CAN控制器,CAN控制器再把該邏輯電平轉(zhuǎn)化為相應(yīng)的信號發(fā)送到CPU上。
五、STM32 CAN控制器簡介-發(fā)送流程和接收流程
程序選擇1個空置的郵箱(TME=1)->設(shè)置標(biāo)識符(ID),數(shù)據(jù)長度和發(fā)送數(shù)據(jù)->設(shè)置CAN_TIxR的TXRQ位為1,請求發(fā)送->郵箱掛號(等待成為最高優(yōu)先級)->預(yù)定發(fā)送(等待總線空閑)->發(fā)送->郵箱空置
FIFO空->收到有效報文->掛號_1(存入FIFO的一個郵箱,這個由硬件控制,我們不需要理會)->收到有效報文->掛號_2->收到有效報文->掛號_3->收到有效報文->溢出。
CAN收到的有效報文,存儲在3級郵箱深度的FIFO中。FIFO接收到的報文數(shù),我們可以通過查詢CAN_RFxR的FMP寄存器來得到,只要FMP不為0,我們就可以從FIFO讀出收到的報文。
審核編輯:湯梓紅
-
收發(fā)器
+關(guān)注
關(guān)注
10文章
3742瀏覽量
109780 -
控制器
+關(guān)注
關(guān)注
114文章
17489瀏覽量
188412 -
CAN
+關(guān)注
關(guān)注
58文章
2975瀏覽量
470392 -
通信
+關(guān)注
關(guān)注
18文章
6261瀏覽量
139058 -
總線
+關(guān)注
關(guān)注
10文章
2999瀏覽量
90860
原文標(biāo)題:CAN總線通信
文章出處:【微信號:智能汽車電子與軟件,微信公眾號:智能汽車電子與軟件】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
詳解汽車CAN總線
CAN總線詳解 精選資料分享
CAN通信總線詳解
CAN總線通信原理分析

汽車can總線工作原理及測量方法詳解

CAN總線通信報文驗收濾波、位定時與同步詳解

為什么要用光纖CAN轉(zhuǎn)換器_基于光纖轉(zhuǎn)CAN模塊的CAN總線通信改造
詳解CAN總線通信優(yōu)先級機(jī)制

評論