閆麗媛
(北京航空航天大學,北京 100191)
隨著汽車電子技術的發展,大多數車上電子控制單元從研發原型到形成產品都需經過匹配標定的過程,以確定其運行參數和控制參數。因此,標定是產品開發成功的關鍵因素之一。電池管理系統作為混合動力電動汽車的關鍵控制單元,對其實現可標定功能具有重要意義[1]。通過標定系統,實驗人員可以根據現場情況對電池管理系統的控制參數進行在線修改,以適應不同的運行環境。同時,標定系統還可以監測管理系統采集的電池狀態數據,并對其進行存儲、處理和分析,以便隨時掌握試驗情況。
目前,一般的標定系統都是采用基于串行口點對點的通信方式,這種通信方式容易實現,但存在著通信速度較慢、可靠性較低等缺陷[2]。本文設計的電池管理標定系統采用CCP協議,使用INCA軟件,利用 CAN接口對所需標定參數進行標定,便于整車的調試和控制策略的優化。
本文設計的標定系統包括上位機標定平臺、下位機CAN通信擴展電路,CAN驅動程序和CCP驅動程序[3]。標定平臺部分采用ETAS公司的標定及監測工具INCA(Integrated Calibration and Application Software),該工具功能強大,內部集成有CCP協議,具有成熟可靠的軟硬件實現方案,是用于控制單元功能參數標定的通用產品系列,可采集控制器的測量信號,并且在線對參數進行分析優化。下位機采用SJA1000作為CAN控制器件,實現對CAN通信電路的擴展,在此基礎上開發底層CAN驅動程序,包括CAN發送模塊和CAN接收模塊。CCP驅動程序則包括了標定處理任務和數據上傳處理任務,設計的標定系統總體方案如圖1所示。
BMS的核心控制器為TI公司的TMS320LF2407A DSP芯片,其內部集成有1個CAN總線接口,該接口主要用于和整車上其他控制器交換信息。由于在標定期間占用CAN總線資源較多,如果標定功能和正常的CAN通信功能實現于同一條CAN總線上,會影響到BCU與其他控制器之間的通信,所以在硬件電路設計中采用SJA1000在BMS中擴展出1個專用于標定功能的CAN接口。其設計方案如圖2所示。

圖1 標定總體方案圖

圖2 標定用CAN接口擴展方案
以現有BCU系統的核心控制器TMS320LF2407A作為上層控制器,通過地址/數據總線對SJA1000進行控制命令的寫入和狀態、數據的讀取。同時,DSP通過I/O口輸出控制字來控制CPLD,使其輸出片選以及讀寫控制信號至SJA1000,以便配合DSP對SJA1000的操作。

圖3 SJA1000外擴電路圖
SJA1000是一種獨立的CAN控制器,用于移動目標和一般工業環境中的區域網絡控制,支持CAN2.0B協議。其內部集成了控制寄存器和狀態寄存器,外部控制設備(如單片機、DSP等)可以訪問這些寄存器來實現對其工作方式的配置和工作狀態的查詢。另外,其內部還集成了發送和接收緩沖器,核心控制設備可以通過讀寫這些緩沖器來獲得和發送信息,實現信息的交換。
本設計選擇0x8000作為SJA1000地址輸入端口,0xA000作為SJA1000數據輸入輸出端口。由于SJA1000地址線和數據線復用,且均為8位,因此只需DSP的低8位數據線與SJA1000的AD[0…7]相連即可。SJA1000外擴電路圖3所示。
標定的軟件部分分為CAN底層通訊部分和CCP驅動程序部分。CAN底層通信主要是實現CAN控制器的初始化,以及CAN報文的接收和發送。作為底層模塊,這些功能將被標定處理任務調用。為了實現標定,通信部分通過采用基于CAN通信模式的CCP協議,標定平臺部分采用ETAS公司的標定及監測工具INCA。
CCP協議屬于CAN通信的應用層協議,完全遵循CAN通信協議,主要用于實現對控制器的標定,同時可進行循環或事件驅動的數據采集和監測。用于標定和數據采集的CAN通信協議是基于主從通信模式的協議。1個CCP主機 (位于PC機的標定平臺)可與CAN總線上的1個或多個CCP從機(ECU)連接。圖4為CCP主從模式的通信配置示意圖。主機通過從機站地址的配置實時地建立主、從機之間的邏輯連接。該連接在另一站地址被選中或當前站地址通過指令被明確斷開連接之前一直有效。

圖4 主從通信方式框圖
CCP采用2個報文對象,每個對象對應一個數據流向,具有唯一的ID標識碼,主設備發送給從設備的數據對象為CRO(Command Receive Object),從設備反饋給主設備的數據對象為DTO(DataTransmission Object),CRO用于傳遞指令代碼和內部功能碼或主、從機之間交換的存儲區數據。圖5、圖6為 2種 CCP報文對象 CRO、DTO的結構示意圖。若主設備要求從設備周期性地自動將需要被實時監視的數據發送給主設備,此時該DTO被稱為DAQ。本標定系統數據采集采用DAQ模式,即將BMS中需要標定和監視的參數按照要求的周期進行上傳,無需對每個參數分別發送。圖7為DTO-DAQ結構示意圖。

圖5 CRO結構示意圖

圖6 DTO結構示意圖

圖7 DTO-DAQ結構示意圖
結合CCP協議的應用架構,本標定系統中CCP協議的應用結構如圖8所示。

圖8 CCP協議實現的結構圖
CCP驅動程序是一個比較復雜的程序,從CCP通信實現形式上劃分,主要由命令處理模塊和DAQ處理模塊兩大部分組成;從函數接口調用角度,主要由函數ccpInit()、ccpBackground()、ccpDAQ()、ccpCommand()、ccpSend()、ccpSendCallback()以及其他可選用函數組成。
CCP命令處理模塊是作為系統的一個任務來完成,在系統初始化后啟動運行。調用CAN驅動程序從總線上獲取CCP主設備發給從設備的命令,從設備根據命令做相應的動作,并回送命令應答,完成對話。其實現框圖如圖9所示。
命令處理模塊具體的操作是利用ccpCommand()函數來實現,主要負責解析并執行CRO命令,命令接收對象,用于傳遞指令代碼和內部功能碼,其形參為指向CAN數據幀接收緩沖區首字節地址的指針,通過分析該CAN幀的第1個字節即命令代碼字節cmd從而判斷該CRO報文的功能。在建立好邏輯連接的前提下,采用條件語句(if語句)和選擇語句(switch語句)將任務分配到具體的模塊。

圖9 CCP通信框圖

圖10 DAQ模塊處理流程圖
DAQ處理模塊的主要任務是根據主設備要求,周期定時地通過CAN總線向主設備發送監控數據。通過讀取BMS內部控制參數的當前值,并用DAQ-DTO幀發送給主設備。命令處理模塊在收到主設備要求啟動DAQ的命令時,調用OS函數OSTaskCreat(),啟動相應的 DAQ任務;該任務每完成1次DAQ發送后,調用OS函數OSTimeD-lyHMSM ()將其掛起,下一發送時間到來時 ,OS 將自動使該任務進入就緒態;在收到主設備要求停止DAQ的命令時,調用 OS函數 OSTaskDel()刪除該任務。
DAQ處理模塊主要是通過 ccpDAQ()函數實現,該函數的形參為Event Channel。通過主設備設置DAQ發送周期,即將相應的周期值傳給形參,從而實現按主設備要求的周期發送監控數據。具體流程如圖10所示。
本設計硬件采用SJA1000在BCU系統中擴展出一個專用于標定功能的CAN接口,實現了在不妨礙電池管理系統的采集、通信以及估算等重要任務完成的情況下進行標定。軟件根據CCP協議的要求,以CAN驅動程序為基礎,完成CCP驅動程序的開發,并集成了BCU主程序,實現與上層標定系統的通信。
通過以上功能的開發,實現電池管理系統的標定功能,對實現電池管理系統產業化具有重要意義。
[1]張忠義,羌嘉曦,楊林,等.混合動力汽車電池管理系統[J].機電工程技術,2006,35(1):61-64.
[2]池建軍,呂彩琴,王孝.電控發動機標定系統開發的關鍵技術[J].柴油機設計與制造,2006,14(3):337-340.
[3]王鳳國.ISG型混合動力汽車電池管理系統優化與標定[D].北京:北京航空航天大學,2007
[4]馮靜,王俊席,卓斌.基于CCP協議的電控發動機標定系統CAN通信模塊的研發[J].內燃機工程,2003,24(5):33-38.
[5]GALLACHER A M.The automatic calibration optimization of powertrain for automotive.AVL ECU and Calibration Technology,2001.