一、can通訊介紹
1、基本概念:CAN 是Controller Area Network 的縮寫(以下稱為CAN),是ISO世界規范化的串行通訊協議。在汽車產業中,出于對安全性、舒適性、方便性、低公害、低成本的要求,林林總總的電子控制系統被開發了出來。
2、CAN總線物理特性:CAN bus兩根信號線分別叫CANH 和CANL,假定CANH電平 大于 CANL 為 Dominant (顯性電平) 其實標明的是信號 0 ;假定CANH電平 等于 CANL 為 Recessive (隱形電平) 其實標明的是信號 1。
芯片5V供電時輸出0時CANH 和 CANL輸出電壓大致為 3.5V和1.5V,當輸出為1時 兩根線就是浮地的高阻情況,通過外界的端接電阻將電壓拉到相等大致為2.5V。
3、協議規范:CAN協議通過ISO規范化后有兩個規范:IS011898規范和IS011519-2規范。其間IS011898是針對通訊速率為125Kbps-1Mbps的高速通訊規范,而IS011519-2是針對通訊速率為125Kbps以下的低速通訊規范。
4、參數:通訊速率最高可達1Mbps,通訊間隔最遠可達10KM,傳輸間隔與速率的一般關系如下:
5、比照:CAN通訊比較于串口通訊、SPI通訊、IIC通訊,功用和高煩擾才能要更強一些;與485總線有些相似,都是2線制的差分方法;但比較而言,CAN總線的數據通訊具有更好的可靠性、實時性和靈活性。CAN已經構成世界規范,并已被公認為幾種最有出路的現場總線之一。
二、CAN通訊編程
1、意圖:本次實驗首要結束MCU(stm32F103)與BMS的CAN通訊功用,然后根據BMS的通訊協議文檔解析當時BMS的情況。
2、編程思路:參看STM32的CAN例程基礎上,1)根據BMS通訊要求更改初始化參數;2)CAN接納后進行BMS情況解析。
3、編程結束:
(1)CAN總線波特率設置
CAN通訊的一個位可分為 4 段:同步段(SS)、傳達時間段(PTS)、相位緩沖段1(PBS1)、相位緩沖段2(PBS2);STM32把傳達時間段和相位緩沖段1(STM32稱之為時間段1)吞并了,所以STM32的CAN一個位只要3段:同步段(SYNC_SEG)、時間段1(BS1)和時間段2(BS2)。通過設定位時序,多個單元可一同采樣,也可任意設定采樣點。比方設置TS1=9、TS2=8,SYNC_SEG=1和BRP=8,在APB1頻率為36Mhz的條件下,即可得到CAN通訊的波特率=36000/[(9+8+1)*8]=250Kbps。
(2)濾波器和屏蔽
(3)接納:選用中止方法
三、作用與總結
1、實驗作用
BMS電池數據測量值如下,與預期相同
2、總結:
(1)調試方法:按照單STM32回環查驗–>雙STM32功用查驗–>STM32與BMS通訊查驗
(2)濾波器和屏蔽配置時,可以先不進行屏蔽,在接納中止中進行挑選;功用調通后,后續再根據需求進行設置。