聶林同,李軍偉,姜世騰,闞輝玉
(255049 山東省 淄博市 山東理工大學(xué) 交通與車輛工程學(xué)院)
近年來,隨著農(nóng)業(yè)現(xiàn)代化的不斷推進,農(nóng)用拖拉機正朝著重型化、智能化的方向不斷發(fā)展。VCU 作為重型拖拉機控制系統(tǒng)的重要組成部分,是提高重型拖拉機智能化程度的關(guān)鍵部件。為保證控制效果,需要利用標定系統(tǒng)對VCU 控制策略中的控制參數(shù)進行標定[1]。針對某智能重型拖拉機VCU 的開發(fā)需求,本文以CCP 協(xié)議為基礎(chǔ),開發(fā)出一套用于參數(shù)監(jiān)測與標定的標定系統(tǒng)。
CCP 是由歐洲自動化測試系統(tǒng)標準協(xié)會ASAM 制定的一種基于 CAN 總線的標定協(xié)議,主要應(yīng)用于控制器的研發(fā)以及車輛的在線測試與測量,目前已經(jīng)在很多汽車廠商中得到應(yīng)用,采用CCP 協(xié)議的標定系統(tǒng)可以對電控單元進行快速而有效的標定。針對標定系統(tǒng)在拖拉機上的應(yīng)用場景,分析其軟硬件組成,并做相應(yīng)的器材選擇與軟件開發(fā)。
標定系統(tǒng)軟件部分包括上位機標定軟件與存在于下位機中的CCP 驅(qū)動程序。標定軟件安裝于PC 機中,為標定過程中的人為操作提供可視化界面及操作平臺。CCP 驅(qū)動程序集成于待標定VCU 中,用于識別上位機以CAN 報文形式發(fā)送的標定命令,并按照命令內(nèi)容執(zhí)行對應(yīng)操作,工作原理如圖1 所示。
圖1 CCP 標定系統(tǒng)工作原理Fig.1 CCP calibration system works
主設(shè)備向從設(shè)備發(fā)送的命令報文統(tǒng)稱命令接收對象(Command Receive Object,CRO),從設(shè)備發(fā)送給主設(shè)備的報文統(tǒng)稱為數(shù)據(jù)傳輸對象(Data Transmit Object,DTO),包括命令返回消息CRMDTO(Command Return Message)與用于DAQ(Data Acquistion)模式下的DAQ-DTO 消息[2]。
由于標定軟件與CCP 驅(qū)動程序之間通過CAN 報文傳遞信息,因此上位機與下位機之間需要可以傳遞CAN 報文的通信工具。主設(shè)備為裝有標定軟件的PC 機,通過USB 口與外界通信,連接主從設(shè)備的通信工具選用廣成USB 轉(zhuǎn)CAN模塊,用于將上位機USB 口輸出的USB 信號轉(zhuǎn)換為CAN 信號發(fā)送給下位機VCU。CAN 接口卡符合CAN2.0A/B 規(guī)范,支持5 kbps~1Mbps 之間的任意波特率,滿足標定系統(tǒng)的使用需求,提高了主從設(shè)備之間的CAN 通信的可靠性。
本文中的上位機標定軟件在VS2012(Visual Studio 2012)軟件中使用C++語言編寫[3]。上位機標定軟件界面由設(shè)置區(qū)、數(shù)據(jù)區(qū)、繪圖區(qū)及工作區(qū)4 部分組成,如圖2 所示。其中,設(shè)置區(qū)用于配置 CAN 總線的波特率、上位機的 ID 及USBCAN 設(shè)備的連接與斷開等;數(shù)據(jù)區(qū)用于顯示每幀報文的發(fā)送與接收情況,包括報文發(fā)送與接收的時間、傳輸方向、ID、幀格式、幀類型、數(shù)據(jù)場長度、原始數(shù)據(jù)等信息,傳輸過程中所有的報文均可進行保存,以便分析問題;繪圖區(qū)用于變量以波形圖的形式顯示,可以更直觀地觀測變量的變化情況;工作區(qū)提供CCP 協(xié)議里規(guī)定的操作命令。命令內(nèi)容可手動修改,點擊標有命令名稱的按鍵即可發(fā)送相應(yīng)命令,所有命令參數(shù)及數(shù)據(jù)都被打包在8 個字節(jié)的CAN 報文數(shù)據(jù)場內(nèi),通過CAN 報文發(fā)送給VCU。
圖2 上位機標定軟件界面Fig.2 Host computer calibration software interface
本文中的拖拉機VCU 使用S12XEP100 單片機作為控制核心,使用CodeWarrior 開發(fā)環(huán)境。為了讓上位機標定系統(tǒng)獲得VCU 里變量的內(nèi)存地址、數(shù)據(jù)類型以及長度等信息,需要將CodeWarrior 開發(fā)環(huán)境下的MAP 文件轉(zhuǎn)換為A2L文件。A2L 文件是ASAM 協(xié)會制定的用來描述電子控制單元內(nèi)部數(shù)據(jù)的一種數(shù)據(jù)庫文件,該文件包含電子控制單元內(nèi)部的變量及參數(shù)信息。通過Vector 公司開發(fā)的ASAP2 編輯器將MAP 文件轉(zhuǎn)換為A2L 文件。本文中開發(fā)的上位機標定軟件中設(shè)有加載A2L 文件的接口。如圖3 所示,在上位機標定軟件中加載A2L 文件后可以直觀地看到各個參數(shù)的大小及地址信息,并對需要標定或監(jiān)測的參數(shù)進行手動選取。
圖3 A2L 文件加載窗口Fig.3 A2L file loading window
實現(xiàn)CCP 系統(tǒng)的功能需要解決對指定數(shù)據(jù)數(shù)值的獲取、修改及存儲等問題,因此CCP 底層驅(qū)動程序需要支持CCP 協(xié)議中規(guī)定的兩種數(shù)據(jù)采集模式:Polling(輪詢)模式和DAQ 模式,并且提供數(shù)據(jù)下載與Flash 數(shù)據(jù)存儲功能。為實現(xiàn)以上功能,本文選取并實現(xiàn)了如表1 所示的12條CCP 命令。
表1 CCP 命令及意義Tab.1 CCP order and meaning
CCP 驅(qū)動代碼只負責(zé)解釋并執(zhí)行基于CCP規(guī)范的CRO 命令,并組織返回的DTO 消息。它需要CAN 驅(qū)動代碼的支持[4]。
Polling 模式是一種“一問一答”的交互方式,該模式實現(xiàn)簡單,占用VCU 資源比較少,由標定軟件向VCU 連續(xù)發(fā)送命令SET_MTA 與UPLOAD 來實現(xiàn)。如圖4 所示。
圖4 輪詢模式實現(xiàn)原理Fig.4 Implementation principle of polling mode
VCU 的CCP 驅(qū)動程序讀取CAN 驅(qū)動程序接收到的CCP 命令報文,通過命令的CMD 代碼識別命令,當讀取的CMD 碼為0x02 時,識別當前命令為SET_MTA 命令,將該命令中的4~7 Byte 內(nèi)容保存下來作為后續(xù)內(nèi)存讀取的一個起始地址。接著讀取下一條上位機標定軟件所發(fā)送報文中的CMD 碼為0x04 時,識別當前命令為UPLOAD,該命令的第2 字節(jié)為要上傳的數(shù)據(jù)字節(jié)大小。此時根據(jù)上一條SET_MTA 命令設(shè)置的起始地址,上傳特定字節(jié)大小的數(shù)據(jù),標定軟件解析接收到的報文,在相應(yīng)窗口顯示上傳的數(shù)據(jù)。至此,本文中設(shè)計的標定系統(tǒng)的Polling 模式已實現(xiàn)。
DAQ 是一種高效的數(shù)據(jù)上傳模式,該模式下VCU 可以自主地按照一定的周期向標定軟件上傳數(shù)據(jù)[5]。本文在底層驅(qū)動程序中實現(xiàn)DAQ 列表、ODT 列表及DAQ-DTO 的創(chuàng)建。DAQ 列表是同一上傳周期的數(shù)據(jù)的集合,一個DAQ 列表下可包含數(shù)個ODT 列表。在ODT 列表中存放需要上傳的數(shù)據(jù)在VCU 內(nèi)存中的存放地址、長度等信息,在DAQ 模式初始化完畢后開始上傳數(shù)據(jù)時,通過ODT 列表中的數(shù)據(jù)信息構(gòu)建對應(yīng)的DAQODT 報文進行上傳。在標定軟件中啟動DAQ 模式時,標定軟件會根據(jù)選定的需要上傳的數(shù)據(jù)及數(shù)據(jù)上傳周期向VCU依次發(fā)送數(shù)條初始化命令,在底層驅(qū)動中自動創(chuàng)建對應(yīng)的DAQ 及ODT 列表。DAQ 列表初始化完成后,由DAQ 數(shù)據(jù)發(fā)送函數(shù)讀取需要上傳的參數(shù)的值并組織DAQ-DTO 向標定軟件上傳,該函數(shù)由定時器驅(qū)動。至此,標定系統(tǒng)的DAQ 模式已實現(xiàn)。
當利用標定軟件對VCU 中某個標量進行標定時,需要利用數(shù)據(jù)下載功能,該過程與Polling模式的實現(xiàn)形式類似,由標定軟件向VCU 連續(xù)發(fā)送命令SET_MTA 與DNLOAD 來實現(xiàn)。SET_MTA 命令設(shè)定數(shù)據(jù)下載地址,DNLOAD 命令將自身所攜帶的值寫入該地址。CCP 驅(qū)動程序通過識別該兩條命令的CMD 代碼來執(zhí)行對應(yīng)操作。
若想實現(xiàn)標定數(shù)據(jù)的非易失性存儲,需要將數(shù)據(jù)寫入到FLASH 存儲器中。在向其寫入數(shù)據(jù)時,必須先擦除,然后才能寫入數(shù)據(jù)。由于FLASH 存儲器的充放電特性,使得它的讀寫次數(shù)有物理上的限制。當閃存芯片的某個物理存儲區(qū)塊達到讀寫指定的最高次數(shù)時,該塊區(qū)將被設(shè)定為不再使用的區(qū)域,所以在極度頻繁地使用下,F(xiàn)LASH 存儲器容量有可能越來越小[6]。
CCP 協(xié)議以編程命令逐條將數(shù)據(jù)燒寫至VCU的FLASH 中,這種方式較為靈活,但是會造成對FLASH 頻繁擦寫的問題。針對本文VCU 的標定特點,本文采用一種獨立于CCP 協(xié)議之外的數(shù)據(jù)存儲方式:對數(shù)據(jù)標定以后,通過數(shù)據(jù)下載命令將修改以后的數(shù)值下載到RAM 中數(shù)據(jù)的原地址,當CCP 命令執(zhí)行函數(shù)識別到數(shù)據(jù)下載命令時,即記錄當前的下載數(shù)據(jù)的地址到預(yù)先定義的指針數(shù)組中,數(shù)組中已有該地址不重復(fù)記錄。指針數(shù)組大小根據(jù)程序中需要標定的數(shù)據(jù)量定義。當CCP 命令執(zhí)行函數(shù)命令識別到上位機發(fā)送的斷開連接命令時表示本次標定結(jié)束,隨后將指針數(shù)組中所有指針所指向的數(shù)據(jù)一次性寫入FLASH 中。這樣可以一次性寫入多個FLASH 頁,從而減少了對FLASH 的擦寫次數(shù)。在控制器重新上電時會將FLASH 中存儲的值寫到數(shù)據(jù)在RAM 的原地址中。
在對整機控制器調(diào)試過程中,需要對系統(tǒng)關(guān)鍵變量及參數(shù)進行采集和標定,以便調(diào)整控制策略中的相應(yīng)參數(shù),提高控制效果。電子油門在拖拉機駕駛過程中作用重大,為了提高拖拉機駕駛的安全性和穩(wěn)定性,拖拉機上的電子油門均采用兩路 5 V 獨立電源供電。同樣地,為了防止電子油門損壞引起重大事故,電子油門的輸出信號也是由兩路信號組成,他們之間具有一定的比例關(guān)系,在工作中可以形成“互相監(jiān)督”的作用。
目前工廠中電子油門總成輸出信號曲線一般通過對應(yīng)車型的特點、經(jīng)驗數(shù)據(jù)、供應(yīng)商數(shù)據(jù)來設(shè)計,并通過實車測試、標定來完善。本文中為完善重型拖拉機VCU 中的電子油門處理策略,需要標定出理想的電子油門總成輸出信號曲線,使得本文所研究的拖拉機整車控制器安裝于實車時,駕駛員踩下油門踏板可以獲得理想的響應(yīng)。如圖5 所示,在上位機標定軟件中選定兩路踏板信號與車速信號,并設(shè)置為DAQ 上傳模式,在控制策略使用不同參數(shù)的電子油門總成輸出信號曲線時觀察車速的響應(yīng)情況。在參數(shù)1、2、3 對話框處填寫地址及參數(shù)值可修改相應(yīng)地址上的參數(shù)值。不斷修改參數(shù)不斷觀察實車響應(yīng)來確定最佳的電子油門總成輸出信號曲線。
圖5 參數(shù)的監(jiān)測與標定Fig.5 Monitoring and calibration of parameters
通過標定、測試最終確定的兩條電子油門總成輸出信號曲線分別為Signal1=0.01545x+0.375,Signal2=0.0309x+0.75,如圖6 所示。
圖6 電子油門總成輸出信號曲線Fig.6 Electronic throttle assembly output signal curve
本文開發(fā)的基于CCP 協(xié)議的重型拖拉機VCU 標定系統(tǒng)實現(xiàn)了設(shè)計目標,在實車試驗中,系統(tǒng)可以實時監(jiān)測VCU 中重要參數(shù)的狀態(tài),還可以快速標定影響性能的各個參數(shù)。本文所開發(fā)的標定系統(tǒng)具有如下優(yōu)點:
(1)在實現(xiàn)標定功能的前提下所設(shè)計的底層驅(qū)動程序代碼大小共55 kB,比Vector 公司的Free CCP driver 少16 kB,節(jié)省占用內(nèi)存空間。在向FLASH 中寫入數(shù)據(jù)時,本文中批量寫入的方式比采用命令逐條寫入對FLASH的擦寫次數(shù)少,提高FLASH 壽命。
(2)上位機友好的人機交互界面和有效的數(shù)據(jù)管理功能提高了監(jiān)測與標定效率。
(3)以CCP 協(xié)議和CAN 通信協(xié)議為基礎(chǔ)的標定系統(tǒng)在數(shù)據(jù)傳輸?shù)倪^程中具有較高的穩(wěn)定性。