一、CAN相關(guān)芯片
1.CAN控制器
2.CAN收發(fā)器:CAN收發(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è)置標識符(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文章
3762瀏覽量
110068 -
控制器
+關(guān)注
關(guān)注
114文章
17542瀏覽量
189210 -
CAN
+關(guān)注
關(guān)注
58文章
2982瀏覽量
470998 -
通信
+關(guān)注
關(guān)注
18文章
6270瀏覽量
139298 -
總線
+關(guān)注
關(guān)注
10文章
3006瀏覽量
91086
原文標題:CAN總線通信
文章出處:【微信號:智能汽車電子與軟件,微信公眾號:智能汽車電子與軟件】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
詳解汽車CAN總線
CAN總線詳解 精選資料分享
CAN通信總線詳解
CAN總線通信原理分析
汽車can總線工作原理及測量方法詳解
CAN總線通信報文驗收濾波、位定時與同步詳解
為什么要用光纖CAN轉(zhuǎn)換器_基于光纖轉(zhuǎn)CAN模塊的CAN總線通信改造
詳解CAN總線通信優(yōu)先級機制

CAN總線通信詳解
評論