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