999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于MC9S12XEP100的BootLoader設計與實現(xiàn)

2018-10-21 11:28:49王志強
汽車實用技術 2018年17期

王志強

摘 要:程序的引導加載功能已是汽車電控單元中必不可少的部分,基于飛思卡爾16位處理器MC9S12XEP100,采用CAN總線技術,設計了一種BootLoader。介紹了BootLoader的實現(xiàn)方法,包括底層驅動構成、引導機制設計、診斷模塊設計、存儲模塊設計以及FLASH安全機制設計等。實驗結果表明,BootLoader能夠正確引導程序運行,方便準確的進行控制器軟件升級。

關鍵詞:CAN總線;Flash模塊;BootLoader;電控單元;安全機制

中圖分類號:U462.2 文獻標識碼:B 文章編號:1671-7988(2018)17-190-04

Abstract: Bootloader function is one of the essential function of embedded system. A BootLoader is designed based on the 16-bit Freescale MCU MC9S12XEP100 and CAN bus. And the application of Bootloader is introduced, which includes driver module design, diagnostic module design, BOOT method design, memory module design, and Flash protected design. Experimental results show that Bootloader could boot the application accurately, downloads and upgrades correctly.

Keywords: CAN bus; BootLoader; FLASH Module; ECU; Safety

CLC NO.: U462.2 Document Code: B Article ID: 1671-7988(2018)17-190-04

1 引言

汽車電子電控單元ECU的開發(fā)周期較長,并且汽車電子產(chǎn)品開發(fā)對安全性、可靠性的指標要求很高。為了方便軟件更新,同時避免對電控單元硬件產(chǎn)品造成破壞,汽車行業(yè)按照各種標準采用專門的診斷測試設備,通過標準的通信接口對電控單元控制程序或者數(shù)據(jù)進行更新。Bootloader是為了完成上述功能,固化在電控單元內部Flash 特定位置的程序,通過特定的通信協(xié)議接收上位機客戶端發(fā)送的程序數(shù)據(jù),并且把程序數(shù)據(jù)燒寫到電控單元中Flash 特定地址區(qū)域,以完成應用程序及數(shù)據(jù)的更新[1]。Bootloader刷寫方式的結構布局圖如圖1所示。

本文所設計Bootloader基于CAN總線,采用飛思卡爾16位處理器MC9S12XEP100作為控制核心。MC9S12XEP100具備5路CAN總線通道,片內非易失存儲器Flash達到1MB,支持在線編程,能夠滿足應用程序通過CAN總線下載、更新的要求,是應用廣泛的汽車級處理器[2]。

2 BootLoader軟件構成

BootLoader是獨立于電控單元主程序的功能模塊。BootLoader程序可以通過CAN總線通訊,使用上位機軟件更新主程序,而不需要使用BDM接口重新加載程序,便于現(xiàn)場產(chǎn)品升級和維護[3]。本文設計的Bootloader軟件程序中使用到的處理器功能有時鐘、中斷、FLASH和EEPROM存儲器、CAN等,從軟件功能上分為診斷模塊、底層驅動模塊、存儲模塊以及安全訪問模塊四個部分,軟件的功能模塊結構如圖2所示。

電控單元上電后進入Bootloader程序,首先確認主程序的有效性和兼容性,包括主程序以及MAP數(shù)據(jù)是否完整,軟件版本信息是否正確等,如果信息完整正確,檢測通過后,將跳轉到主程序入口地址。否則,退回Bootloader程序入口地址。Bootloader程序與主程序具有不同的入口地址以及存儲區(qū)域[4]。Bootloader引導機制流程圖如圖3所示。

為防止程序發(fā)生諸如跑飛等小概率異常,在Bootloader程序中斷使能后,預留一定等待時間(約50ms)以確保新的主程序可以正常更新下載到芯片中[5]。部分代碼如圖4所示。

3 底層驅動模塊

底層驅動模塊包括CAN、Flash 以及EEPROM、WatchDog、時鐘、中斷等。CAN總線驅動用于配置CAN總線波特率、ID等參數(shù),實現(xiàn)電控單元與上位機之間的數(shù)據(jù)接收與發(fā)送,完成主程序及MAP圖的傳輸;Flash以及 EEPROM驅動實現(xiàn)內部存儲數(shù)據(jù)讀寫、擦除以及安全保護功能;WatchDog 驅動監(jiān)測軟件運行狀態(tài);時鐘驅動用于傳輸層幀間隔控制和診斷層時間控制[6]。中斷向量對應的跳轉指令和回調函數(shù)被存儲在RAM區(qū)域中的中斷向量映射表中,一旦中斷產(chǎn)生將跳轉到指定的回調函數(shù)。Bootloader程序中只響應CAN接收中斷以及Clock monitor復位、COP看門狗復位[7]。CAN接收中斷跳轉到CAN接收函數(shù)CAN_Receive(),Clock monitor復位和COP看門狗復位異常跳轉到Bootloader程序入口地址。中斷向量表初始化程序如圖5所示。

4 存儲模塊

Flash中的P_Flash區(qū)域以及EEPROM中的D_Flash區(qū)域是非易失性存儲介質,在寫入數(shù)據(jù)之前要進行擦除。在Bootloader 進入編程模式之后,Bootloader等待接收一系列的服務命令,根據(jù)這些命令可以完成對Flash 的擦除和在線刷新。刷寫的軟件塊包括主程序以及標定數(shù)據(jù)等。出于對程序代碼安全性考慮,Bootloader以及主程序分別存儲在不同的區(qū)域[8][9]。系統(tǒng)對D_Flash和Buffer_Ram進行了分段(Sector)處理,分別存儲不同的數(shù)據(jù),包括用戶程序區(qū)、系統(tǒng)常量以及MAP數(shù)據(jù)區(qū)等。刷寫FLASH時流程如圖6示。存儲區(qū)域數(shù)據(jù)劃分如表1所示。

刷寫程序時,上位機具有不同等級的權限,在其通過權限驗證后發(fā)送請求下載命令,電控單元接收到下載請求,根據(jù)相應權限以及下載請求命令中的扇區(qū)信息,擦除相應的存儲區(qū)域,同時向上位機進行應答。上位機接收到正確應答之后,按照格式向電控單元依次發(fā)送需要刷寫的數(shù)據(jù)[10]。命令格式如圖7所示。

5 診斷模塊

診斷模塊為電控單元代碼更新時提供必要的診斷服務,模塊主要用來實現(xiàn)控制、下載程序和Map圖數(shù)據(jù)以及故障診斷等三個功能[11]。協(xié)議使用CAN2.0B擴展幀格式,波特率為500kbps,采用的服務功能如表2所示。

來自CAN總線的診斷服務數(shù)據(jù)通過CAN驅動程序反饋給診斷服務層,通過對上位機的不同請求的識別,診斷模塊對不同的請求進行回應,調用相應的服務函數(shù),進而完成命令所要求的動作,實現(xiàn)診斷服務功能。例如,下位機電控單元接收到讀取EEPROM /Flash命令,則調用功能EEPROM /Flash讀取函數(shù),按照命令中的長度、地址讀取數(shù)據(jù),并將數(shù)據(jù)返回給上位機。在一條命令處理完后診斷模塊再次進入等待狀態(tài),等待新的命令。電控單元接收到上位機發(fā)送的狀態(tài)切換命令,判斷跳轉條件允許后,置位跳轉標志,然后跳轉到主程序入口地址。讀取數(shù)據(jù)功能程序如圖9所示[12]。

6 安全保護模塊

通過Flash模塊本身的讀寫保護功能和Seed&Key算法共同實現(xiàn)軟件的安全保護[6]。FLASH模塊本身的讀寫保護功能可以避免對程序代碼的未經(jīng)授權的讀取以及擦寫操作。為防止Flash中的程序在未授權狀態(tài)下被讀出,需要將芯片設置為保密狀態(tài)。涉及的寄存器是安全寄存器FSEC。在處理器復位時,F(xiàn)SEC寄存器從0x7FFF0F地址自動載入值。將KEYEN1/ KEYEN0位的值設為1,表示允許通過后門密鑰解密。向Flash中地址為0x7FFF00-0x7FFF07區(qū)域依次寫入8字節(jié)的后門密鑰。將FCCOB寄存器值設為0x0C,并寫入解鎖密碼,若密碼與Flash中存放的相同,即可將芯片解密[13][14]。

Seed&Key算法通過驗證操作者的身份,區(qū)別訪問權限,不同等級權限對應不同范圍的修改區(qū)域。操作者在某一權限下申請操作時,上位機向電控單元發(fā)送Get_Seed命令獲取Seed之后,通過Seed&Key算法計算得到Key并發(fā)送到電控單元進行比較,如果相同則可對Flash相應區(qū)域的代碼進行讀寫操作[15]。不同登錄權限對應不同的Seed&Key算法以實現(xiàn)對不同區(qū)域操作權限的劃分。

7 結束語

BootLoader 是應用程序和硬件的樞紐,負責初始化硬件和引導加載程序運行。一個功能完備的BootLoader 能夠加快程序的開發(fā)。本文設計的BootLoader軟件經(jīng)實驗驗證,能夠正確引導應用程序跳轉運行,準確方便的實現(xiàn)代碼數(shù)據(jù)下載以及應用程序的現(xiàn)場更新升級。

參考文獻

[1] 周文華,管建華,劉巨江,何正胤,徐劍飛.柴油機電控高壓共軌噴油系統(tǒng)EOL解決方案.汽車工程,2007,(9).

[2] 王宜懷,劉曉升.嵌入式系統(tǒng):使用HCS12 微控制器的設計與應用[M],北京:北京航空航天大學出版社,2008.

[3] Deckardt S. Flash Kernel Programming on a HC12 MicroController [Z].Vector Informatik GmbH,2003.

[4] 孫立寧,穆春陽,杜志江,陳燕春,李駿.電控柴油機ECU 編程設備研究與開發(fā)[J].內燃機工程, 2008, 29(1).

[5] 王亞剛.嵌入式Bootloader 機制的分析與移植[J].計算機工程. 2010,36(6).

[6] Infineon Technologies.XC2000/XE166 Family Flash Programming via CAN BSL(Bootstrap Loader)[G].Infineon Manual V1.0,2009,10.

[7] 韓鳴,滕勤,唐永琪,王文平.插電式混合動力汽車發(fā)動機ECU標定系統(tǒng)設計,北京汽車,2011,(04).

[8] 李睿,張小明.英飛凌車用XC2000系列微控制器Bootloader設計, 汽車實用技術,2016,(7).

[9] 李會,王宜懷,王磊.基于CAN的數(shù)據(jù)無損代碼更新方法設計與應用,電子技術應用,2016,(01).

[10] 孫紅磊,蔡雨琦,施鎮(zhèn)峰.TMS320C6678 DSP的加載引導研究,微型機與應用,2015,(24).

[11] 吳成加,基于CAN Bootloader的電動汽車遠程數(shù)據(jù)更新系統(tǒng)設計,客車技術與研究,2014,(06).

[12] 張夕杰,李清政,王喬,孟奇,劉曉光.MPC5534單片機在線程序更新系統(tǒng)研制,國外電子測量技術 ,2013,(12).

[13] 于廣,孫漢青,王志平,張宏嶺.C2000系列DSP在線程序更新研究,單片機與嵌入式系統(tǒng)應用, 2013,(03).

[14] 龔文,張輝,陳超.基于CAN總線的電動汽車車載監(jiān)控終端,計算機與現(xiàn)代化,2013,(11).

[15] 陳曉聰,游林儒,黃招彬.基于CAN通訊便攜式DSP程序下載器的設計,自動化與儀表,2013,(09).

主站蜘蛛池模板: 欧洲一区二区三区无码| 精品国产美女福到在线不卡f| 国产在线视频欧美亚综合| 久久精品人妻中文视频| 国产免费怡红院视频| 国产区精品高清在线观看| 5555国产在线观看| 暴力调教一区二区三区| 精品视频91| 又黄又湿又爽的视频| 狼友视频一区二区三区| 中文字幕亚洲综久久2021| 欧美啪啪精品| 久久semm亚洲国产| 黄色网页在线播放| 真实国产乱子伦视频| 噜噜噜久久| 国产成人精品亚洲77美色| 国产AV无码专区亚洲精品网站| 人妻精品久久久无码区色视| 孕妇高潮太爽了在线观看免费| 国内精品九九久久久精品| 国产精品欧美日本韩免费一区二区三区不卡 | 成人精品亚洲| 人人看人人鲁狠狠高清| 国模沟沟一区二区三区| 亚洲综合色婷婷| 9丨情侣偷在线精品国产| 露脸真实国语乱在线观看| 伊人久久久久久久| 亚洲中文字幕久久无码精品A| 97se亚洲综合在线天天| 在线日韩日本国产亚洲| 欧美日韩精品在线播放| 国产成人AV男人的天堂| 国产精品尤物在线| 亚洲天堂久久| 国产成人精品2021欧美日韩| 国产美女91视频| 久久久久夜色精品波多野结衣| 亚洲天堂网在线视频| 久久永久精品免费视频| 亚洲一区第一页| 日韩av手机在线| 国产成人AV综合久久| 国产微拍精品| 在线国产你懂的| 欧美成人日韩| 婷婷六月综合网| 中国国语毛片免费观看视频| 免费国产一级 片内射老| 午夜国产大片免费观看| 91精品啪在线观看国产91九色| 日韩一级毛一欧美一国产| 国产亚洲欧美日韩在线观看一区二区| 国产素人在线| 日韩无码一二三区| 黄网站欧美内射| 久久久久亚洲精品成人网| 综合色亚洲| 国产第一页免费浮力影院| 亚洲精品视频免费观看| 婷婷色在线视频| 高清不卡一区二区三区香蕉| 在线观看国产网址你懂的| 91久久国产成人免费观看| 久热这里只有精品6| 黄色网页在线播放| 伊人狠狠丁香婷婷综合色 | 亚洲—日韩aV在线| 激情乱人伦| 亚洲第一国产综合| 国产靠逼视频| 国内精自线i品一区202| 亚洲三级a| 四虎成人免费毛片| 中文字幕免费播放| 天天躁日日躁狠狠躁中文字幕| 天天摸天天操免费播放小视频| 亚洲人成电影在线播放| 亚洲三级a| 亚洲天堂久久新|