聶林同,李軍偉,姜世騰,闞輝玉
(255049 山東省 淄博市 山東理工大學 交通與車輛工程學院)
近年來,隨著農業現代化的不斷推進,農用拖拉機正朝著重型化、智能化的方向不斷發展。VCU 作為重型拖拉機控制系統的重要組成部分,是提高重型拖拉機智能化程度的關鍵部件。為保證控制效果,需要利用標定系統對VCU 控制策略中的控制參數進行標定[1]。針對某智能重型拖拉機VCU 的開發需求,本文以CCP 協議為基礎,開發出一套用于參數監測與標定的標定系統。
CCP 是由歐洲自動化測試系統標準協會ASAM 制定的一種基于 CAN 總線的標定協議,主要應用于控制器的研發以及車輛的在線測試與測量,目前已經在很多汽車廠商中得到應用,采用CCP 協議的標定系統可以對電控單元進行快速而有效的標定。針對標定系統在拖拉機上的應用場景,分析其軟硬件組成,并做相應的器材選擇與軟件開發。
標定系統軟件部分包括上位機標定軟件與存在于下位機中的CCP 驅動程序。標定軟件安裝于PC 機中,為標定過程中的人為操作提供可視化界面及操作平臺。CCP 驅動程序集成于待標定VCU 中,用于識別上位機以CAN 報文形式發送的標定命令,并按照命令內容執行對應操作,工作原理如圖1 所示。

圖1 CCP 標定系統工作原理Fig.1 CCP calibration system works
主設備向從設備發送的命令報文統稱命令接收對象(Command Receive Object,CRO),從設備發送給主設備的報文統稱為數據傳輸對象(Data Transmit Object,DTO),包括命令返回消息CRMDTO(Command Return Message)與用于DAQ(Data Acquistion)模式下的DAQ-DTO 消息[2]。
由于標定軟件與CCP 驅動程序之間通過CAN 報文傳遞信息,因此上位機與下位機之間需要可以傳遞CAN 報文的通信工具。主設備為裝有標定軟件的PC 機,通過USB 口與外界通信,連接主從設備的通信工具選用廣成USB 轉CAN模塊,用于將上位機USB 口輸出的USB 信號轉換為CAN 信號發送給下位機VCU。CAN 接口卡符合CAN2.0A/B 規范,支持5 kbps~1Mbps 之間的任意波特率,滿足標定系統的使用需求,提高了主從設備之間的CAN 通信的可靠性。
本文中的上位機標定軟件在VS2012(Visual Studio 2012)軟件中使用C++語言編寫[3]。上位機標定軟件界面由設置區、數據區、繪圖區及工作區4 部分組成,如圖2 所示。其中,設置區用于配置 CAN 總線的波特率、上位機的 ID 及USBCAN 設備的連接與斷開等;數據區用于顯示每幀報文的發送與接收情況,包括報文發送與接收的時間、傳輸方向、ID、幀格式、幀類型、數據場長度、原始數據等信息,傳輸過程中所有的報文均可進行保存,以便分析問題;繪圖區用于變量以波形圖的形式顯示,可以更直觀地觀測變量的變化情況;工作區提供CCP 協議里規定的操作命令。命令內容可手動修改,點擊標有命令名稱的按鍵即可發送相應命令,所有命令參數及數據都被打包在8 個字節的CAN 報文數據場內,通過CAN 報文發送給VCU。

圖2 上位機標定軟件界面Fig.2 Host computer calibration software interface
本文中的拖拉機VCU 使用S12XEP100 單片機作為控制核心,使用CodeWarrior 開發環境。為了讓上位機標定系統獲得VCU 里變量的內存地址、數據類型以及長度等信息,需要將CodeWarrior 開發環境下的MAP 文件轉換為A2L文件。A2L 文件是ASAM 協會制定的用來描述電子控制單元內部數據的一種數據庫文件,該文件包含電子控制單元內部的變量及參數信息。通過Vector 公司開發的ASAP2 編輯器將MAP 文件轉換為A2L 文件。本文中開發的上位機標定軟件中設有加載A2L 文件的接口。如圖3 所示,在上位機標定軟件中加載A2L 文件后可以直觀地看到各個參數的大小及地址信息,并對需要標定或監測的參數進行手動選取。

圖3 A2L 文件加載窗口Fig.3 A2L file loading window
實現CCP 系統的功能需要解決對指定數據數值的獲取、修改及存儲等問題,因此CCP 底層驅動程序需要支持CCP 協議中規定的兩種數據采集模式:Polling(輪詢)模式和DAQ 模式,并且提供數據下載與Flash 數據存儲功能。為實現以上功能,本文選取并實現了如表1 所示的12條CCP 命令。

表1 CCP 命令及意義Tab.1 CCP order and meaning
CCP 驅動代碼只負責解釋并執行基于CCP規范的CRO 命令,并組織返回的DTO 消息。它需要CAN 驅動代碼的支持[4]。
Polling 模式是一種“一問一答”的交互方式,該模式實現簡單,占用VCU 資源比較少,由標定軟件向VCU 連續發送命令SET_MTA 與UPLOAD 來實現。如圖4 所示。

圖4 輪詢模式實現原理Fig.4 Implementation principle of polling mode
VCU 的CCP 驅動程序讀取CAN 驅動程序接收到的CCP 命令報文,通過命令的CMD 代碼識別命令,當讀取的CMD 碼為0x02 時,識別當前命令為SET_MTA 命令,將該命令中的4~7 Byte 內容保存下來作為后續內存讀取的一個起始地址。接著讀取下一條上位機標定軟件所發送報文中的CMD 碼為0x04 時,識別當前命令為UPLOAD,該命令的第2 字節為要上傳的數據字節大小。此時根據上一條SET_MTA 命令設置的起始地址,上傳特定字節大小的數據,標定軟件解析接收到的報文,在相應窗口顯示上傳的數據。至此,本文中設計的標定系統的Polling 模式已實現。
DAQ 是一種高效的數據上傳模式,該模式下VCU 可以自主地按照一定的周期向標定軟件上傳數據[5]。本文在底層驅動程序中實現DAQ 列表、ODT 列表及DAQ-DTO 的創建。DAQ 列表是同一上傳周期的數據的集合,一個DAQ 列表下可包含數個ODT 列表。在ODT 列表中存放需要上傳的數據在VCU 內存中的存放地址、長度等信息,在DAQ 模式初始化完畢后開始上傳數據時,通過ODT 列表中的數據信息構建對應的DAQODT 報文進行上傳。在標定軟件中啟動DAQ 模式時,標定軟件會根據選定的需要上傳的數據及數據上傳周期向VCU依次發送數條初始化命令,在底層驅動中自動創建對應的DAQ 及ODT 列表。DAQ 列表初始化完成后,由DAQ 數據發送函數讀取需要上傳的參數的值并組織DAQ-DTO 向標定軟件上傳,該函數由定時器驅動。至此,標定系統的DAQ 模式已實現。
當利用標定軟件對VCU 中某個標量進行標定時,需要利用數據下載功能,該過程與Polling模式的實現形式類似,由標定軟件向VCU 連續發送命令SET_MTA 與DNLOAD 來實現。SET_MTA 命令設定數據下載地址,DNLOAD 命令將自身所攜帶的值寫入該地址。CCP 驅動程序通過識別該兩條命令的CMD 代碼來執行對應操作。
若想實現標定數據的非易失性存儲,需要將數據寫入到FLASH 存儲器中。在向其寫入數據時,必須先擦除,然后才能寫入數據。由于FLASH 存儲器的充放電特性,使得它的讀寫次數有物理上的限制。當閃存芯片的某個物理存儲區塊達到讀寫指定的最高次數時,該塊區將被設定為不再使用的區域,所以在極度頻繁地使用下,FLASH 存儲器容量有可能越來越小[6]。
CCP 協議以編程命令逐條將數據燒寫至VCU的FLASH 中,這種方式較為靈活,但是會造成對FLASH 頻繁擦寫的問題。針對本文VCU 的標定特點,本文采用一種獨立于CCP 協議之外的數據存儲方式:對數據標定以后,通過數據下載命令將修改以后的數值下載到RAM 中數據的原地址,當CCP 命令執行函數識別到數據下載命令時,即記錄當前的下載數據的地址到預先定義的指針數組中,數組中已有該地址不重復記錄。指針數組大小根據程序中需要標定的數據量定義。當CCP 命令執行函數命令識別到上位機發送的斷開連接命令時表示本次標定結束,隨后將指針數組中所有指針所指向的數據一次性寫入FLASH 中。這樣可以一次性寫入多個FLASH 頁,從而減少了對FLASH 的擦寫次數。在控制器重新上電時會將FLASH 中存儲的值寫到數據在RAM 的原地址中。
在對整機控制器調試過程中,需要對系統關鍵變量及參數進行采集和標定,以便調整控制策略中的相應參數,提高控制效果。電子油門在拖拉機駕駛過程中作用重大,為了提高拖拉機駕駛的安全性和穩定性,拖拉機上的電子油門均采用兩路 5 V 獨立電源供電。同樣地,為了防止電子油門損壞引起重大事故,電子油門的輸出信號也是由兩路信號組成,他們之間具有一定的比例關系,在工作中可以形成“互相監督”的作用。
目前工廠中電子油門總成輸出信號曲線一般通過對應車型的特點、經驗數據、供應商數據來設計,并通過實車測試、標定來完善。本文中為完善重型拖拉機VCU 中的電子油門處理策略,需要標定出理想的電子油門總成輸出信號曲線,使得本文所研究的拖拉機整車控制器安裝于實車時,駕駛員踩下油門踏板可以獲得理想的響應。如圖5 所示,在上位機標定軟件中選定兩路踏板信號與車速信號,并設置為DAQ 上傳模式,在控制策略使用不同參數的電子油門總成輸出信號曲線時觀察車速的響應情況。在參數1、2、3 對話框處填寫地址及參數值可修改相應地址上的參數值。不斷修改參數不斷觀察實車響應來確定最佳的電子油門總成輸出信號曲線。

圖5 參數的監測與標定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
本文開發的基于CCP 協議的重型拖拉機VCU 標定系統實現了設計目標,在實車試驗中,系統可以實時監測VCU 中重要參數的狀態,還可以快速標定影響性能的各個參數。本文所開發的標定系統具有如下優點:
(1)在實現標定功能的前提下所設計的底層驅動程序代碼大小共55 kB,比Vector 公司的Free CCP driver 少16 kB,節省占用內存空間。在向FLASH 中寫入數據時,本文中批量寫入的方式比采用命令逐條寫入對FLASH的擦寫次數少,提高FLASH 壽命。
(2)上位機友好的人機交互界面和有效的數據管理功能提高了監測與標定效率。
(3)以CCP 協議和CAN 通信協議為基礎的標定系統在數據傳輸的過程中具有較高的穩定性。