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