新聞中心

EEPW首頁 > 汽車電子 > 設(shè)計(jì)應(yīng)用 > 汽車ECU 標(biāo)定系統(tǒng)CCP 軟件的實(shí)現(xiàn)

汽車ECU 標(biāo)定系統(tǒng)CCP 軟件的實(shí)現(xiàn)

作者: 時間:2010-07-17 來源:網(wǎng)絡(luò) 收藏

摘要: 是一種 標(biāo)定匹配。本文簡單介紹該的基本原理,以及一種基于該協(xié)議的汽車ECU 的實(shí)現(xiàn)方法。最后,結(jié)合MC9S12DP256 芯片以及μC/OS-II操作系統(tǒng),詳細(xì)討論了此 軟件實(shí)現(xiàn)方法。

1 前言

  標(biāo)定是指根據(jù)整車的各種性能要求(如動力性、經(jīng)濟(jì)性、排放及輔助功能等),來調(diào)整、優(yōu)化和確定整車上各ECU(包括發(fā)動機(jī)和各子系統(tǒng) ECU)的運(yùn)行及控制參數(shù)的控制算法。通過,能夠很方便的讀取 ECU 中的標(biāo)定變量數(shù)據(jù)到標(biāo)定平臺,并可以對這些數(shù)據(jù)進(jìn)行編輯修改,編輯后的數(shù)據(jù)又可以寫入 ECU,從而達(dá)到修改 ECU 中標(biāo)定參數(shù)的目的。功能完善且靈活方便的標(biāo)定軟件對整個汽車ECU 控制系統(tǒng)的開發(fā)起到事半功倍的效果。目前,一般的標(biāo)定系統(tǒng)都是采用基于串行口的點(diǎn)對點(diǎn)的通信方式,這種通信方式具有很大的局限性,而且通信協(xié)議都不一樣。在這個ECU 系統(tǒng)中,將采用 的通信方式和( Calibration Protocol)協(xié)議。

2 CCP 協(xié)議簡介

  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),無論對8 位低速帶CAN 的控制器,還是32 位高速帶CAN 的控制器,均可滿足工作要求?;贑CP 協(xié)議的ECU 標(biāo)定采用主-從通信方式,主設(shè)備通過CAN 與多個從設(shè)備相連,其中主設(shè)備是測量標(biāo)定系統(tǒng)MCS(Measurement CalibrationSystem),從設(shè)備是需要標(biāo)定的ECU。根據(jù)CCP 協(xié)議,主設(shè)備首先與其中一個從設(shè)備建立邏輯鏈接, 建立邏輯連接后,主、從機(jī)之間所有的數(shù)據(jù)傳遞均由主機(jī)控制,從機(jī)執(zhí)行主機(jī)命令后返回包含命令響應(yīng)值或錯誤代碼等信息的報(bào)文。

3 標(biāo)定系統(tǒng)的實(shí)現(xiàn)

  3.1 上位機(jī)部分

  友好的人機(jī)頁面對于標(biāo)定工作的順利進(jìn)行是起決定性作用的,此標(biāo)定系統(tǒng)的設(shè)計(jì)克服了以往大多數(shù)標(biāo)定系統(tǒng)只能通過鍵盤對標(biāo)定數(shù)據(jù)進(jìn)行修改的局限性[2],在標(biāo)定系統(tǒng)中除了表格編輯方式外,還將引入圖形編輯方式。將標(biāo)定變量數(shù)據(jù)轉(zhuǎn)換成圖形,將使標(biāo)定員對于標(biāo)定變量數(shù)據(jù)比如說修正曲線和 MAP 圖有一個更直觀了解,并且可以通過鼠標(biāo)拖動對圖形進(jìn)行編輯修改,從而達(dá)到編輯修改標(biāo)定變量數(shù)據(jù)的目的,這樣大大方便了對于修正曲線和 MAP圖類型標(biāo)定變量的編輯。

  在這里我們是采用 Visual C++完成標(biāo)定頁面的設(shè)計(jì)以及與下位機(jī)的通信。該標(biāo)定系統(tǒng)除了具有對 ECU 的標(biāo)定功能外,還引入了實(shí)時監(jiān)測功能,從而可以很快得到標(biāo)定操作的返回信息。如圖所示,監(jiān)測界面主要完成各種監(jiān)測量數(shù)據(jù)的實(shí)時接收和顯示功能。測量得到的數(shù)據(jù)以數(shù)字和圖形兩種方式顯示出來,數(shù)據(jù)可以存儲。歷史數(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 存儲器技術(shù)的中檔芯片。它具有25MHz的主頻、256K 字節(jié)的FLASH 存儲器、16 通道的8 位A/D 轉(zhuǎn)換器以及多達(dá)5 個的高速CAN 控制器。其較高的性能價格比使其非常適合用于一些中高檔汽車電子系列相關(guān)產(chǎn)品。同時其較簡單的背景開發(fā)模式(BDM)使得開發(fā)成本進(jìn)一步降低,也使得現(xiàn)場開發(fā)與系統(tǒng)升級變得更加方便。

  需要標(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)定的速度相對較慢。這里考慮選擇芯片的實(shí)際情況,選擇了FLASH 標(biāo)定的方法。當(dāng)標(biāo)定參數(shù)需要存放在FLASH 中時, 在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ì)主要分為二個部分:CAN Driver 和CCP Driver,而這二個部分都是基于μC/OS-II 這種實(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)行對ECU的在線標(biāo)定。

  4.1 CAN Driver

  在這里我們采用的是μC/OS-II 這種實(shí)時操作系統(tǒng),但在標(biāo)定過程中,我們處理的數(shù)據(jù)量很大,通信速度也很快,CAN 接收到一條消息就產(chǎn)生一次中斷,中斷服務(wù)子程序,每次中斷都要引起一次任務(wù)調(diào)度。CPU 大量的時間花在任務(wù)切換上,若CPU 還需處理其他事件,則可能出現(xiàn)接收緩沖寄存器接收溢出的錯誤,造成數(shù)據(jù)丟失。因此,在這里采用一種基于環(huán)形緩沖區(qū)的方式來實(shí)現(xiàn)CAN Driver。整個CAN Driver 由中斷處理程序和底層驅(qū)動模塊組成。中斷處理程序在每次CAN 控制器完成收發(fā)時,喚醒驅(qū)動程序,進(jìn)行下一步工作,設(shè)備相關(guān)程序通過對CAN 控制器寄存器的讀寫,完成對CAN 端口的配置和狀態(tài)檢測等工作,同時為設(shè)備無關(guān)軟件和用戶程序提供接口。而底層驅(qū)動模塊則主要任務(wù)是結(jié)合收發(fā)消息緩沖區(qū),為應(yīng)用程序提供了接收和發(fā)送消息的接口函數(shù)。

  


上一頁 1 2 3 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉