汽車ECU 標定系統CCP 軟件的實現
摘要:CCP 協議是一種CAN 總線標定匹配協議。本文簡單介紹該協議的基本原理,以及一種基于該協議的汽車ECU 標定系統的實現方法。最后,結合MC9S12DP256 芯片以及μC/OS-II操作系統,詳細討論了此標定系統的CCP 軟件實現方法。
1 前言
標定是指根據整車的各種性能要求(如動力性、經濟性、排放及輔助功能等),來調整、優化和確定整車上各ECU(包括發動機和各子系統 ECU)的運行及控制參數的控制算法。通過標定系統,能夠很方便的讀取 ECU 中的標定變量數據到標定平臺,并可以對這些數據進行編輯修改,編輯后的數據又可以寫入 ECU,從而達到修改 ECU 中標定參數的目的。功能完善且靈活方便的標定軟件對整個汽車ECU 控制系統的開發起到事半功倍的效果。目前,一般的標定系統都是采用基于串行口的點對點的通信方式,這種通信方式具有很大的局限性,而且通信協議都不一樣。在這個ECU 系統中,將采用 CAN 總線的通信方式和CCP(CAN Calibration Protocol)協議。
2 CCP 協議簡介
1996 年6 月,歐洲ASAP 項目組發布了現行的2.0 版,它采用CAN 2.0B(11 位或29位ID)進行MCS(measurement and calibration system)與ECU 之間的通信[1]。該協議具有通用性強,適用范圍廣的特點,無論對8 位低速帶CAN 的控制器,還是32 位高速帶CAN 的控制器,均可滿足工作要求。基于CCP 協議的ECU 標定采用主-從通信方式,主設備通過CAN 總線與多個從設備相連,其中主設備是測量標定系統MCS(Measurement CalibrationSystem),從設備是需要標定的ECU。根據CCP 協議,主設備首先與其中一個從設備建立邏輯鏈接, 建立邏輯連接后,主、從機之間所有的數據傳遞均由主機控制,從機執行主機命令后返回包含命令響應值或錯誤代碼等信息的報文。
3 標定系統的實現
3.1 上位機部分
友好的人機頁面對于標定工作的順利進行是起決定性作用的,此標定系統的設計克服了以往大多數標定系統只能通過鍵盤對標定數據進行修改的局限性[2],在標定系統中除了表格編輯方式外,還將引入圖形編輯方式。將標定變量數據轉換成圖形,將使標定員對于標定變量數據比如說修正曲線和 MAP 圖有一個更直觀了解,并且可以通過鼠標拖動對圖形進行編輯修改,從而達到編輯修改標定變量數據的目的,這樣大大方便了對于修正曲線和 MAP圖類型標定變量的編輯。
在這里我們是采用 Visual C++完成標定頁面的設計以及與下位機的通信。該標定系統除了具有對 ECU 的標定功能外,還引入了實時監測功能,從而可以很快得到標定操作的返回信息。如圖所示,監測界面主要完成各種監測量數據的實時接收和顯示功能。測量得到的數據以數字和圖形兩種方式顯示出來,數據可以存儲。歷史數據可以從文件中讀出來,進行離線分析。標定界面則是完成標定變量數據的顯示、編輯修改以及上傳下載功能。根據變量的不同類型,變量數據分別以參量、二維、三維的形式表示。
圖 1 標定系統實現圖
3.2 底層ECU 部分
而底層 ECU 部分,標定系統在這里采用的是Freescale 公司的MC9S12DP256,這是一款16 位CPU 及0.25 微米、高速、高性能5.0V FLASH 存儲器技術的中檔芯片。它具有25MHz的主頻、256K 字節的FLASH 存儲器、16 通道的8 位A/D 轉換器以及多達5 個的高速CAN 控制器。其較高的性能價格比使其非常適合用于一些中高檔汽車電子系列相關產品。同時其較簡單的背景開發模式(BDM)使得開發成本進一步降低,也使得現場開發與系統升級變得更加方便。
需要標定的變量稱為標定參數,標定定義也就是修改駐扎在ECU 內存中的變量的內容。根據標定參數所在不同地址空間( RAM、FLASH 或EEPROM) , 這里也就有了不同的標定方法。RAM EEPROM 標定的速度較塊,但RAM 和EEPROM 空間有限,所需的標定參數的數目也就受到了限制,而FLASH 空間較大,但標定的速度相對較慢。這里考慮選擇芯片的實際情況,選擇了FLASH 標定的方法。當標定參數需要存放在FLASH 中時, 在ECU 上電初始化后, 程序首先將標定參數的初始值復制到RAM 中, 在標定軟件中該段用來存放標定參數的RAM 稱為Calibration RAM。標定過程中, 標定軟件修改Calibration RAM 中的參數值。標定全部結束后, 再將該段RAM 中的內容復制回FLASH 中。
4 軟件設計
標定系統的軟件設計主要分為二個部分:CAN Driver 和CCP Driver,而這二個部分都是基于μC/OS-II 這種實時操作系統上運行。由于ECU 這里采用飛思卡爾的MC9S12DP256,因此可以直接應用芯片CAN 模塊提供的接口,發送CAN 數據。CCP Driver 是標定系統的核心部分,它主要是通過調用CAN Driver 實現與上位機標定軟件的通信,從而進行對ECU的在線標定。
4.1 CAN Driver
在這里我們采用的是μC/OS-II 這種實時操作系統,但在標定過程中,我們處理的數據量很大,通信速度也很快,CAN 接收到一條消息就產生一次中斷,中斷服務子程序,每次中斷都要引起一次任務調度。CPU 大量的時間花在任務切換上,若CPU 還需處理其他事件,則可能出現接收緩沖寄存器接收溢出的錯誤,造成數據丟失。因此,在這里采用一種基于環形緩沖區的方式來實現CAN Driver。整個CAN Driver 由中斷處理程序和底層驅動模塊組成。中斷處理程序在每次CAN 控制器完成收發時,喚醒驅動程序,進行下一步工作,設備相關程序通過對CAN 控制器寄存器的讀寫,完成對CAN 端口的配置和狀態檢測等工作,同時為設備無關軟件和用戶程序提供接口。而底層驅動模塊則主要任務是結合收發消息緩沖區,為應用程序提供了接收和發送消息的接口函數。
評論