以文本方式查看主題

-  曙海教育集團論壇  (http://www.scb-ycwb.com/bbs/index.asp)
--  DSP2000技術討論  (http://www.scb-ycwb.com/bbs/list.asp?boardid=27)
----  基于KWP2000的ECU在線編程研究及應用  (http://www.scb-ycwb.com/bbs/dispbbs.asp?boardid=27&id=1562)

--  作者:wangxinxin
--  發布時間:2010-11-20 12:43:25
--  基于KWP2000的ECU在線編程研究及應用
.2.2 軟件實現

ECU程序的狀態切換流程圖如圖3:

圖片點擊可在新窗口打開查看

圖3. 程序狀態切換流程圖
說明:

1)根據上位機的KWP2000指令,程序在以下5種工作狀態中切換,如表1:

表1  程序工作狀態表

圖片點擊可在新窗口打開查看

2)通信中用到以下KWP2000命令,如表2:

圖片點擊可在新窗口打開查看

表2: 命令說明表

3)由于芯片結構的原因,程序在寫flash時必須跳到RAM中執行,以下代碼定義了用于存儲關鍵代碼的RAM空間和指向該空間的函數CriticalProcess()。
volatile unsigned char criticalProcess[100];  /* 定義RAM空間用于存儲關鍵代碼 */
#define CriticalProcess ((void(*)(void))( criticalProcess)) /*定義函數指向RAM*/
在線編程過程中程序將接收到的目標代碼放入RAM中,接收完成后調用CriticalProcess()來實現FLASH擦除和重寫。

4)由于應用代碼的起始地址是0x1860,我們用如下方法定義應用程序Application()的起始地址為0x1860,在Bootloader程序中直接調用該函數即可實現Bootloader程序向應用程序的跳轉。

#define Application ((void(*)(void))(0x1860)) /* 定義0x1860為應用程序起始地址*/

3.3 實現效果

通過以上硬件和軟件,實現了ECU的在線編程,并達到了以下的幾個效果:

1)  程序每次上電啟動都從Bootloader啟動區運行并等待一定時間,使得在線編程無論成功與否都始終可以進行編程升級。
2)  程序開始部分先檢測復位原因,如果是上電啟動則進入Bootloader程序,否則進入用戶程序,使得程序在運行過程中受到干擾復位后可立即重新進入應用程序。
3)  ECU在編程過程中進行了狀態判斷、密碼交換和數據校驗,有效地保證了整個編程過程的正確性。在線編程完成后當場校驗,將特征碼寫入特定區域,以此來判定應用程序是否合法,正確的特征碼保證了應用程序的正確性。
4)  應用程序同樣支持KWP2000命令,使得程序無論在Bootloader區或應用程序區均能隨時根據KWP2000指令進入編程狀態。
5)  由于將FLASH擦除子程序和燒寫子程序作為軟件鎖,在FLASH編程過程中才將其下載到RAM中,并在FLASH燒寫完成后將其清除,所以在整個芯片中沒有FLASH的改寫程序,避免了程序在運行過程中遇到干擾而異常破壞程序的現象。

4. 結束語

從網絡的分層結構看,KWP2000屬于應用層協議,可以應用在各種底層通信協議上,本文討論了該協議在LIN總線物理層和數據鏈路層上的應用。近年來CAN總線得到了全球各大先進汽車廠商廣泛的應用,本文中的研究內容對進一步在CAN總線上實現同樣的在線編程過程有著一定的借鑒和示范作用。


主站蜘蛛池模板: 99国产精品一区二区三区| 日本加勒比一区| 日本欧美www| 国产一级二级毛片| 91插插插插插插插插| 国产suv一区二区三区| 在线xxxxx| 日韩av加勒比| 精品人妻伦一二三区久| 色欲人妻综合网| 精品视频站长推荐| 99热在线只有精品| 欧美成人国产精品高潮| 国产免费视频一区二区三区| 91蜜桃视频在线观看| 伊人网伊人影院| 日韩三级久久久| 久久久精品免费看| 国产尤物在线观看| 岛国av免费观看| 一级黄色录像毛片| 久久精品视频久久| 国产日韩在线观看一区| www午夜视频| 少妇性l交大片7724com| 久久久久久久久久免费视频| 亚洲 国产 欧美 日韩| 女同久久另类69精品国产| 狠狠躁狠狠躁视频专区| 国产精品视频中文字幕| wwwwww在线观看| av中文字幕网址| 99精品999| 一级特黄免费视频| 亚洲熟女乱综合一区二区三区 | 国产午夜精品久久久久久久久| 成人av一区二区三区在线观看| 99在线观看精品视频| www.亚洲黄色| 国产成人亚洲精品自产在线 | 久久久久国产一区|