基于CAN總線的電動車控制系統(tǒng)設(shè)計
3 CAN通信協(xié)議的設(shè)計
根據(jù)ISO/OSI模型,CAN總線規(guī)范了只制定了數(shù)據(jù)鏈路層中的媒體訪問子層和一小部分的邏輯鏈路控制子層,CAN的ISO標準規(guī)定了總線及驅(qū)動器的電氣特性。因此需要根據(jù)自己的需求設(shè)計通信協(xié)議。
CAN協(xié)議標準2.0B的數(shù)據(jù)幀的ID長度為29位,為擴展格式數(shù)據(jù)幀結(jié)構(gòu),如圖3所示。本文引用地址:http://2s4d.com/article/162479.htm
數(shù)據(jù)幀由幀起始、仲裁段、控制段、數(shù)據(jù)段、CRC段、ACK段、幀結(jié)束組成。協(xié)議的設(shè)計是對標識符和數(shù)據(jù)位的定義。
本系統(tǒng)協(xié)議的設(shè)計參照SAEJ1939協(xié)議標準,標識符分配為優(yōu)先級(P)、保留位(R)、數(shù)據(jù)頁(DP)、代碼域(PF)、目標域(PS)、源地址(SA)和數(shù)據(jù)域(DF)7個部分。根據(jù)需求定義了5個報文,報文標識符定義如表1所示。
整車控制器的節(jié)點地址為OxA7;BMS節(jié)點地址為OxE4;CCS節(jié)點地址為OxE5;電機控制器節(jié)點地址為OxE6。
根據(jù)實際需求,設(shè)計了5個報文,分別為:BMS發(fā)給CCS和電機控制器的2個報文,CCS和電機控制器發(fā)給整車控制器的2個報文,整車控制器發(fā)給電機的報文。根據(jù)信息的重要程度,將電機控制器和整車控制器間的報文設(shè)計為最高優(yōu)先級3,其他報文優(yōu)先級設(shè)計為6。
4 CAN總線節(jié)點的軟件設(shè)計
系統(tǒng)采用基于C語言的程序設(shè)計。在IAB開發(fā)環(huán)境下進行調(diào)試和仿真。整車控制節(jié)點的軟件設(shè)計主要包括4個部分:CAN控制器的初始化、報文發(fā)送、報文接收和錯誤處理。
4.1 CAN控制器的初始化
在啟動CAN通信前必需進行CAN模塊的初始化,包括硬件使能、CAN工作模式設(shè)置、總線波特率設(shè)置、設(shè)置中斷、驗收過濾器設(shè)置等。初始化操作在CAN模塊復位的模式下進行。初始化程序流程圖如圖4所示。
評論