汽車電子自編程分析論文

時間:2022-01-10 03:04:00

導語:汽車電子自編程分析論文一文來源于網友上傳,不代表本站觀點,若需要原創文章可咨詢客服老師,歡迎參考。

汽車電子自編程分析論文

1系統平臺

本系統采用NEC電子的32位車身專用芯片V850/Fx3系列,V850是NEC電子的32位微處理器核,5級流水線控制,內部32個32位寄存器,乘法/除法指令,數據空間支持最大4GB線性尋址能力,代碼空間支持64M線性尋址能力,內部1MB的codeflash,60KB的RAM空間,32KB的dataflash用作EEPROM模擬。

2常見Bootloader設計方案

目前常用的Bootloader方案有一下四種:

2.1方案一

如下圖:

SHAPE\*MERGEFORMAT

圖1方案一存儲空間圖

Fig.1Memoryaddressspaceofsolutionone

原理如下:

Boot工程:

Address:0x0000~0x3fff,interruptvector和自編程庫函數,CAN,上位機通訊協議;

Application工程:

Address:0x0000~0x3fff,interruptvector和自編程庫函數,CAN,上位機;應用程序函數;

Dummyvector:用于中轉中斷處理函數。因為如果有中斷產生,程序指針只會跳到Bootvector,應用程序中斷處理函數無法響應中斷。Dummyvector處理流程如下:

SHAPE\*MERGEFORMAT

圖2方案一中斷處理機制

Fig.2Theinterrupthandlemechanismofsolutionone

缺點:

1.Bootloader燒寫在ROM里面,每次啟動的時候需要執行,進行相應判斷不是由應用程序開始。

2.每次進入中斷程序時需要進行跳轉,所以延長進入中斷時間,且boot里面需要聲明所有中斷向量,boot里面的中斷處理函數中要調用Application中的中斷處理函數比較復雜,因為如果Application代碼更新后,應用程序函數入口地址是變化的。

3.DummyInterruptVector需要在更新Bootloader時就寫入,并且在更新應用程序的同時也更新這部分區域。

優點:

1.程序設計相對容易。

2.2方案二

如下圖:

SHAPE\*MERGEFORMAT

圖3方案二存儲空間圖

Fig.3Memoryaddressspaceofsolutiontwo

缺點:

1.更新程序之前需要進行BootSwap功能切換應用程序和Bootloader程序,更新完畢后再次需要進行切換.

2.應用程序設計時比較復雜,需要加入Bootloader代碼,且需要空出一段空白區域用于與Bootloader區域進行BootSwap交換.

優點:

1.ECU從應用程序開始跑,中斷程序處理簡單。Bootswap的目的就是為了處理中斷機制。

SHAPE\*MERGEFORMAT

圖4方案二存儲空間圖

Fig.4Memoryaddressspaceofsolutiontwo

2.3方案三

如下圖:

SHAPE\*MERGEFORMAT

圖5方案三存儲空間圖

Fig.5Memoryaddressspaceofsolutionthree

缺點:

1.芯片空間的使用效率比較低,需要有一半的ROM空間用做交換區.

優點:

1.Bootloader和應用程序整合在一個工程文件中,不需要專門的Boot區,程序設計簡單,從應用程序開始跑。

2.由于舊程序仍然存在,應用更加安全.

2.4方案四

如下圖:

SHAPE\*MERGEFORMAT

Fig.6Memoryaddressspaceofsolutionfour

首先在RAM某段區間強行定義為ROM屬性,否則無法執行代碼,因為RAM默認存放變量。然后將Bootloader工程代碼拷入到指定RAM區間,指針跳轉到RAM開始執行與上位機建立通訊。調用底層flash操作庫函數更新應用程序。

缺點:程序設計比較復雜,需要跳轉到RAM運行。在RAM中更新flash的時候需要開辟ROM空間作為啟動備份區,否則發生斷電或者意外,程序將無法恢復。

優點:節省空間。程序從應用程序啟動。

3結論

中斷矢量的拷貝是Bootloader的難點,以上的一些方法無論是方案一的中轉函數還是方案二的Boot區交換,都是對中斷矢量的拷貝,使得應用程序中斷處理函數能夠響應中斷。對四種Bootloader方案進行了比較和優缺點分析,具體應用應該根據用戶的實際情況和客戶的要求來設計。

實踐中,要綜合考慮到上位機的成本,ROM空間,啟動時間,中斷響應時間等因素。

4結束語

汽車電子已成為當前IT產業的一大亮點,呈現出巨大的市場需求。Bootloader的設計作為軟件設計的一部分,有著非常重要的功能,可以實現ECU的在線診斷,在線標定,代碼升級等功能。根據客戶的實際需求,開發出成熟的軟件是我們的目標。

[參考文獻]

[1]NECElectronics.V850ES/Fx3UserManual,2006

[2]NECElectronics.Self-PragrammingNote,2007

[3]NECElectronics.DataFlashConvertUserManual,2007

[4]Vector.FlashKernelProgrammingonaHC12microcontrollerVersion0.01,2009

[5]Vector.CANapeUserManual,2009