專利名稱:基于混合動力汽車can總線通信的控制器flash刷寫方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種通過CAN協(xié)議對中度混合動力汽車控制器進(jìn)行FLASH刷寫的方法。
背景技術(shù):
在節(jié)能與環(huán)保大力推行的今天,混合動力汽車已經(jīng)越來越受到人們的重視,混合 動力汽車核心的控制策略技術(shù)也發(fā)展得越來越成熟,常常需要對核心控制器的控制策略程 序進(jìn)行重新升級、更新。在以往的汽車上需要通過給控制器BDM接口刷新程序的方法來更 新程序,因此不僅要給控制器接口預(yù)留FLASH刷寫的針腳,浪費硬件資源,還使控制器的布 置位置受到很大程度上的限制。一旦預(yù)留的BMD空間不夠,或者控制器位置太偏僻,則只能 從車上拆卸控制器下來更新程序,完成更新之后再將控制器重新安裝上去,這樣使刷寫程 序的難度將會大大增加。本申請人針對上述問題進(jìn)行廣泛檢索,尚未發(fā)現(xiàn)相關(guān)的解決方案。
發(fā)明內(nèi)容
本發(fā)明的目的是為了解決當(dāng)控制器由于無法直接接觸,進(jìn)行重新刷寫非常困難的 缺點而提出的一種利用CAN線、借助于ZLG USB CAN對混合動力汽車控制器FLASH進(jìn)行刷 寫的方法。本發(fā)明采用的技術(shù)方案如下本發(fā)明提供了一種基于混合動力汽車CAN總線通信的控制器FLASH刷寫方法。需 要在控制器的底層軟件中集成bootloader功能,在bootloader功能軟件中完成對根據(jù)CAN 總線上收到的Message建立相應(yīng)的連接,完成刷寫權(quán)限的校驗,檢查RAM、FLASH和E印rom 的存儲空間,接受CAN總線上收到的數(shù)據(jù)幀,最后組合成完整的控制器軟件并刷寫,反饋刷
寫結(jié)果。當(dāng)需要刷寫控制器程序時,可以直接通過控制器上的CAN總線與控制器連接,從 而達(dá)到刷寫控制器程序的目的。本方法是將計算機(jī)通過一個周立功CAN總線檢測設(shè)備與汽 車CAN總線相連,然后通過CAN總線發(fā)出連接請求連接到控制器,最后將預(yù)先準(zhǔn)備好的新程 序上傳到控制器中,這樣就完成了一次刷寫,刷新了控制器內(nèi)部的程序。在通過CAN總線刷寫控制器程序時,計算機(jī)端需要運(yùn)行bootloader刷寫程序。運(yùn) 行該程序后,首先確認(rèn)計算機(jī)端和控制器端所使用的CAOTD,以及所使用的周立功CAN總線 監(jiān)測設(shè)備的波特率參數(shù),在點擊“下一步”之后,勾選“更新控制器程序”,并單擊“瀏覽”選 擇所需要刷寫的S19文件。確認(rèn)無誤后,點擊“開始下載”。這時在信息欄中會出現(xiàn)相關(guān)反 饋信息,以顯示當(dāng)前刷寫的進(jìn)行情況。具體步驟如下1.打開 CAN 端口。2.請求命令。計算機(jī)端bootloader刷寫程序發(fā)送含有請求命令的Can消息,并等 待控制器反饋。如若該步驟失敗,則無法完成下載。
3.握手命令。計算機(jī)端bootloader刷寫程序發(fā)送含有握手命令的Can消息,并等 待控制器反饋。如若該步驟失敗,則無法完成下載。4.安全認(rèn)證。計算機(jī)端bootloader刷寫程序發(fā)送含有認(rèn)證消息的Can消息,控制 器端對比該消息是否與控制器端bootloader功能程序中的認(rèn)證消息是否對應(yīng)。如若該步 驟失敗,則無法完成下載。5.打開控制器程序文件。6.擦除舊控制器程序。7.更新控制器程序。計算機(jī)端bootloader刷寫程序發(fā)送含有完整控制器程序的 數(shù)個Can消息,控制器端接收后并刷寫。如若該步驟失敗,則無法完成下載。8.下載成功。下載完成后顯示該消息。9.控制器重啟。重新啟動控制器以運(yùn)行新程序。10 關(guān)閉 Can 端口。當(dāng)刷寫失敗后,可以排除故障后,重新點擊“開始下載”來刷寫程序,無需進(jìn)行復(fù)位 操作。本發(fā)明的優(yōu)點是1.由于現(xiàn)代車輛上CAN總線應(yīng)用十分廣泛,在硬件上無需添加新的接口即可實現(xiàn) 該功能,這樣在中度混合動力汽車的控制器硬件上可以節(jié)省掉BDM接口,節(jié)省了控制器占 用的空間,使得控制器硬件設(shè)計難度和各個部件空間布置的難度都明顯減小。2.由于CAN總線的特性,使得CAN總線上任意一個端口均可刷寫控制器,增加了刷 寫FLASH時候的靈活性。3.控制器端程序含有權(quán)限設(shè)置。當(dāng)一個控制器端程序包含的權(quán)限不足以使其刷新 整個控制器時,會使該次刷寫失敗。這樣的設(shè)計增加的刷寫程序的安全性,避免了控制器端 程序被不適當(dāng)?shù)男薷幕蛘卟脸?br>
圖1是本發(fā)明的流程2是接入bootloader后的CAN總線結(jié)構(gòu)示意圖
具體實施例方式參見圖1,本方法的實現(xiàn)步驟如下1.根據(jù)Can2. 0A/B協(xié)議對CAN模塊初始化,編寫出相關(guān)的.C和.H文件。2.根據(jù)控制器RAM和FLASH分配,編寫MAKE和LINK文件。3.通過CosmicC編譯S19文件,刷寫到控制器端。4.將計算機(jī)端通過一臺ZLG USB CAN連接到CAN總線上。5.在計算機(jī)端運(yùn)行bootloader刷寫程序(計算機(jī)端),根據(jù)提示進(jìn)行操作,具體 步驟如下1.打開 CAN 端口。2.請求命令。計算機(jī)端bootloader刷寫程序發(fā)送含有請求命令的Can消息,并等 待控制器反饋。如若該步驟失敗,則無法完成下載。
3.握手命令。計算機(jī)端bootloader刷寫程序發(fā)送含有握手命令的Can消息,并等 待控制器反饋。如若該步驟失敗,則無法完成下載。4.安全認(rèn)證。計算機(jī)端bootloader刷寫程序發(fā)送含有認(rèn)證消息的Can消息,控制 器端對比該消息是否與控制器端bootloader功能程序中的認(rèn)證消息是否對應(yīng)。如若該步 驟失敗,則無法完成下載。5.打開控制器程序文件。6.擦除舊控制器程序。7.更新控制器程序。計算機(jī)端bootloader刷寫程序發(fā)送含有完整控制器程序的 數(shù)個Can消息,控制器端接收后并刷寫。如若該步驟失敗,則無法完成下載。8.下載成功。下載完成后顯示該消息。9.控制器重啟。重新啟動控制器以運(yùn)行新程序。10.關(guān)閉 Can 端口。
權(quán)利要求
一種基于混合動力汽車CAN總線通信的控制器FLASH刷寫方法,其方法步驟如下(1)根據(jù)Can2.0A/B協(xié)議對CAN模塊初始化,編寫出通過CAN總線接收和發(fā)送命令及程序刷寫內(nèi)容的相關(guān)的c代碼文件和頭文件;(2)根據(jù)混合動力整車控制器的RAM和FLASH分配,編寫編譯配置文件和鏈接文件;(3)通過CosmicC編譯鏈接生成用于刷寫到控制器FLASH中的S19程序文件,并刷寫到控制器端;(4)將計算機(jī)端通過一臺周立功CAN總線檢測設(shè)備連接到汽車控制系統(tǒng)的CAN總線上;(5)在計算機(jī)端運(yùn)行bootloader刷寫程序,具體步驟為A、打開汽車控制系統(tǒng)的CAN端口;B、請求命令由計算機(jī)端bootloader刷寫程序發(fā)送含有請求命令的CAN消息,并等待控制器反饋;如若該步驟失敗,則無法完成程序刷寫;C、握手命令計算機(jī)端bootloader刷寫程序發(fā)送含有握手命令的CAN消息,并等待控制器反饋;如若該步驟失敗,則無法完成程序刷寫;D、安全認(rèn)證計算機(jī)端bootloader刷寫程序發(fā)送含有認(rèn)證消息的CAN消息,控制器端對比該消息是否與控制器端bootloader功能程序中的認(rèn)證消息對應(yīng);如若該步驟失敗,則無法完成程序刷寫;E、打開控制器程序文件;F、擦除舊控制器程序;G、更新控制器程序計算機(jī)端bootloader刷寫程序發(fā)送含有完整控制器程序的數(shù)個CAN消息,控制器端接收后并刷寫,如若該步驟失敗,則無法完成下載;H、下載成功,下載完成后顯示該消息;I、控制器重啟,重新啟動控制器以運(yùn)行新程序;J、關(guān)閉CAN端口。
全文摘要
本發(fā)明提出一種基于混合動力汽車CAN總線通信的控制器FLASH刷寫方法。當(dāng)需要刷寫控制器程序時,可以直接通過控制器上的CAN總線與控制器連接,從而達(dá)到刷寫控制器程序的目的。該方法是將計算機(jī)通過一個周立功CAN總線檢測設(shè)備與汽車CAN總線相連,然后通過CAN總線發(fā)出連接請求連接到控制器,最后將預(yù)先準(zhǔn)備好的新程序上傳到控制器中,這樣就完成了一次刷寫,刷新了控制器內(nèi)部的程序。
文檔編號G11C16/02GK101850799SQ20101018782
公開日2010年10月6日 申請日期2010年5月31日 優(yōu)先權(quán)日2010年5月31日
發(fā)明者嚴(yán)欽山, 李宗華, 盛一倫, 蘇嶺 申請人:重慶長安汽車股份有限公司;重慶長安新能源汽車有限公司