閆麗媛
(北京航空航天大學(xué),北京 100191)
隨著汽車電子技術(shù)的發(fā)展,大多數(shù)車上電子控制單元從研發(fā)原型到形成產(chǎn)品都需經(jīng)過匹配標(biāo)定的過程,以確定其運行參數(shù)和控制參數(shù)。因此,標(biāo)定是產(chǎn)品開發(fā)成功的關(guān)鍵因素之一。電池管理系統(tǒng)作為混合動力電動汽車的關(guān)鍵控制單元,對其實現(xiàn)可標(biāo)定功能具有重要意義[1]。通過標(biāo)定系統(tǒng),實驗人員可以根據(jù)現(xiàn)場情況對電池管理系統(tǒng)的控制參數(shù)進(jìn)行在線修改,以適應(yīng)不同的運行環(huán)境。同時,標(biāo)定系統(tǒng)還可以監(jiān)測管理系統(tǒng)采集的電池狀態(tài)數(shù)據(jù),并對其進(jìn)行存儲、處理和分析,以便隨時掌握試驗情況。
目前,一般的標(biāo)定系統(tǒng)都是采用基于串行口點對點的通信方式,這種通信方式容易實現(xiàn),但存在著通信速度較慢、可靠性較低等缺陷[2]。本文設(shè)計的電池管理標(biāo)定系統(tǒng)采用CCP協(xié)議,使用INCA軟件,利用 CAN接口對所需標(biāo)定參數(shù)進(jìn)行標(biāo)定,便于整車的調(diào)試和控制策略的優(yōu)化。
本文設(shè)計的標(biāo)定系統(tǒng)包括上位機標(biāo)定平臺、下位機CAN通信擴展電路,CAN驅(qū)動程序和CCP驅(qū)動程序[3]。標(biāo)定平臺部分采用ETAS公司的標(biāo)定及監(jiān)測工具INCA(Integrated Calibration and Application Software),該工具功能強大,內(nèi)部集成有CCP協(xié)議,具有成熟可靠的軟硬件實現(xiàn)方案,是用于控制單元功能參數(shù)標(biāo)定的通用產(chǎn)品系列,可采集控制器的測量信號,并且在線對參數(shù)進(jìn)行分析優(yōu)化。下位機采用SJA1000作為CAN控制器件,實現(xiàn)對CAN通信電路的擴展,在此基礎(chǔ)上開發(fā)底層CAN驅(qū)動程序,包括CAN發(fā)送模塊和CAN接收模塊。CCP驅(qū)動程序則包括了標(biāo)定處理任務(wù)和數(shù)據(jù)上傳處理任務(wù),設(shè)計的標(biāo)定系統(tǒng)總體方案如圖1所示。
BMS的核心控制器為TI公司的TMS320LF2407A DSP芯片,其內(nèi)部集成有1個CAN總線接口,該接口主要用于和整車上其他控制器交換信息。由于在標(biāo)定期間占用CAN總線資源較多,如果標(biāo)定功能和正常的CAN通信功能實現(xiàn)于同一條CAN總線上,會影響到BCU與其他控制器之間的通信,所以在硬件電路設(shè)計中采用SJA1000在BMS中擴展出1個專用于標(biāo)定功能的CAN接口。其設(shè)計方案如圖2所示。
圖1 標(biāo)定總體方案圖
圖2 標(biāo)定用CAN接口擴展方案
以現(xiàn)有BCU系統(tǒng)的核心控制器TMS320LF2407A作為上層控制器,通過地址/數(shù)據(jù)總線對SJA1000進(jìn)行控制命令的寫入和狀態(tài)、數(shù)據(jù)的讀取。同時,DSP通過I/O口輸出控制字來控制CPLD,使其輸出片選以及讀寫控制信號至SJA1000,以便配合DSP對SJA1000的操作。
圖3 SJA1000外擴電路圖
SJA1000是一種獨立的CAN控制器,用于移動目標(biāo)和一般工業(yè)環(huán)境中的區(qū)域網(wǎng)絡(luò)控制,支持CAN2.0B協(xié)議。其內(nèi)部集成了控制寄存器和狀態(tài)寄存器,外部控制設(shè)備(如單片機、DSP等)可以訪問這些寄存器來實現(xiàn)對其工作方式的配置和工作狀態(tài)的查詢。另外,其內(nèi)部還集成了發(fā)送和接收緩沖器,核心控制設(shè)備可以通過讀寫這些緩沖器來獲得和發(fā)送信息,實現(xiàn)信息的交換。
本設(shè)計選擇0x8000作為SJA1000地址輸入端口,0xA000作為SJA1000數(shù)據(jù)輸入輸出端口。由于SJA1000地址線和數(shù)據(jù)線復(fù)用,且均為8位,因此只需DSP的低8位數(shù)據(jù)線與SJA1000的AD[0…7]相連即可。SJA1000外擴電路圖3所示。
標(biāo)定的軟件部分分為CAN底層通訊部分和CCP驅(qū)動程序部分。CAN底層通信主要是實現(xiàn)CAN控制器的初始化,以及CAN報文的接收和發(fā)送。作為底層模塊,這些功能將被標(biāo)定處理任務(wù)調(diào)用。為了實現(xiàn)標(biāo)定,通信部分通過采用基于CAN通信模式的CCP協(xié)議,標(biāo)定平臺部分采用ETAS公司的標(biāo)定及監(jiān)測工具INCA。
CCP協(xié)議屬于CAN通信的應(yīng)用層協(xié)議,完全遵循CAN通信協(xié)議,主要用于實現(xiàn)對控制器的標(biāo)定,同時可進(jìn)行循環(huán)或事件驅(qū)動的數(shù)據(jù)采集和監(jiān)測。用于標(biāo)定和數(shù)據(jù)采集的CAN通信協(xié)議是基于主從通信模式的協(xié)議。1個CCP主機 (位于PC機的標(biāo)定平臺)可與CAN總線上的1個或多個CCP從機(ECU)連接。圖4為CCP主從模式的通信配置示意圖。主機通過從機站地址的配置實時地建立主、從機之間的邏輯連接。該連接在另一站地址被選中或當(dāng)前站地址通過指令被明確斷開連接之前一直有效。
圖4 主從通信方式框圖
CCP采用2個報文對象,每個對象對應(yīng)一個數(shù)據(jù)流向,具有唯一的ID標(biāo)識碼,主設(shè)備發(fā)送給從設(shè)備的數(shù)據(jù)對象為CRO(Command Receive Object),從設(shè)備反饋給主設(shè)備的數(shù)據(jù)對象為DTO(DataTransmission Object),CRO用于傳遞指令代碼和內(nèi)部功能碼或主、從機之間交換的存儲區(qū)數(shù)據(jù)。圖5、圖6為 2種 CCP報文對象 CRO、DTO的結(jié)構(gòu)示意圖。若主設(shè)備要求從設(shè)備周期性地自動將需要被實時監(jiān)視的數(shù)據(jù)發(fā)送給主設(shè)備,此時該DTO被稱為DAQ。本標(biāo)定系統(tǒng)數(shù)據(jù)采集采用DAQ模式,即將BMS中需要標(biāo)定和監(jiān)視的參數(shù)按照要求的周期進(jìn)行上傳,無需對每個參數(shù)分別發(fā)送。圖7為DTO-DAQ結(jié)構(gòu)示意圖。
圖5 CRO結(jié)構(gòu)示意圖
圖6 DTO結(jié)構(gòu)示意圖
圖7 DTO-DAQ結(jié)構(gòu)示意圖
結(jié)合CCP協(xié)議的應(yīng)用架構(gòu),本標(biāo)定系統(tǒng)中CCP協(xié)議的應(yīng)用結(jié)構(gòu)如圖8所示。
圖8 CCP協(xié)議實現(xiàn)的結(jié)構(gòu)圖
CCP驅(qū)動程序是一個比較復(fù)雜的程序,從CCP通信實現(xiàn)形式上劃分,主要由命令處理模塊和DAQ處理模塊兩大部分組成;從函數(shù)接口調(diào)用角度,主要由函數(shù)ccpInit()、ccpBackground()、ccpDAQ()、ccpCommand()、ccpSend()、ccpSendCallback()以及其他可選用函數(shù)組成。
CCP命令處理模塊是作為系統(tǒng)的一個任務(wù)來完成,在系統(tǒng)初始化后啟動運行。調(diào)用CAN驅(qū)動程序從總線上獲取CCP主設(shè)備發(fā)給從設(shè)備的命令,從設(shè)備根據(jù)命令做相應(yīng)的動作,并回送命令應(yīng)答,完成對話。其實現(xiàn)框圖如圖9所示。
命令處理模塊具體的操作是利用ccpCommand()函數(shù)來實現(xiàn),主要負(fù)責(zé)解析并執(zhí)行CRO命令,命令接收對象,用于傳遞指令代碼和內(nèi)部功能碼,其形參為指向CAN數(shù)據(jù)幀接收緩沖區(qū)首字節(jié)地址的指針,通過分析該CAN幀的第1個字節(jié)即命令代碼字節(jié)cmd從而判斷該CRO報文的功能。在建立好邏輯連接的前提下,采用條件語句(if語句)和選擇語句(switch語句)將任務(wù)分配到具體的模塊。
圖9 CCP通信框圖
圖10 DAQ模塊處理流程圖
DAQ處理模塊的主要任務(wù)是根據(jù)主設(shè)備要求,周期定時地通過CAN總線向主設(shè)備發(fā)送監(jiān)控數(shù)據(jù)。通過讀取BMS內(nèi)部控制參數(shù)的當(dāng)前值,并用DAQ-DTO幀發(fā)送給主設(shè)備。命令處理模塊在收到主設(shè)備要求啟動DAQ的命令時,調(diào)用OS函數(shù)OSTaskCreat(),啟動相應(yīng)的 DAQ任務(wù);該任務(wù)每完成1次DAQ發(fā)送后,調(diào)用OS函數(shù)OSTimeD-lyHMSM ()將其掛起,下一發(fā)送時間到來時 ,OS 將自動使該任務(wù)進(jìn)入就緒態(tài);在收到主設(shè)備要求停止DAQ的命令時,調(diào)用 OS函數(shù) OSTaskDel()刪除該任務(wù)。
DAQ處理模塊主要是通過 ccpDAQ()函數(shù)實現(xiàn),該函數(shù)的形參為Event Channel。通過主設(shè)備設(shè)置DAQ發(fā)送周期,即將相應(yīng)的周期值傳給形參,從而實現(xiàn)按主設(shè)備要求的周期發(fā)送監(jiān)控數(shù)據(jù)。具體流程如圖10所示。
本設(shè)計硬件采用SJA1000在BCU系統(tǒng)中擴展出一個專用于標(biāo)定功能的CAN接口,實現(xiàn)了在不妨礙電池管理系統(tǒng)的采集、通信以及估算等重要任務(wù)完成的情況下進(jìn)行標(biāo)定。軟件根據(jù)CCP協(xié)議的要求,以CAN驅(qū)動程序為基礎(chǔ),完成CCP驅(qū)動程序的開發(fā),并集成了BCU主程序,實現(xiàn)與上層標(biāo)定系統(tǒng)的通信。
通過以上功能的開發(fā),實現(xiàn)電池管理系統(tǒng)的標(biāo)定功能,對實現(xiàn)電池管理系統(tǒng)產(chǎn)業(yè)化具有重要意義。
[1]張忠義,羌嘉曦,楊林,等.混合動力汽車電池管理系統(tǒng)[J].機電工程技術(shù),2006,35(1):61-64.
[2]池建軍,呂彩琴,王孝.電控發(fā)動機標(biāo)定系統(tǒng)開發(fā)的關(guān)鍵技術(shù)[J].柴油機設(shè)計與制造,2006,14(3):337-340.
[3]王鳳國.ISG型混合動力汽車電池管理系統(tǒng)優(yōu)化與標(biāo)定[D].北京:北京航空航天大學(xué),2007
[4]馮靜,王俊席,卓斌.基于CCP協(xié)議的電控發(fā)動機標(biāo)定系統(tǒng)CAN通信模塊的研發(fā)[J].內(nèi)燃機工程,2003,24(5):33-38.
[5]GALLACHER A M.The automatic calibration optimization of powertrain for automotive.AVL ECU and Calibration Technology,2001.