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

基于CAN總線的Bootloader設計與實現(xiàn)

2015-10-19 07:22:32黃悅鵬邢正陽蘇駿凱倪孟雄南京郵電大學通信與信息工程學院江蘇南京0000上海奉天電子有限公司上海0800
關鍵詞:單片機程序服務

王 琦,黃悅鵬,邢正陽,蘇駿凱,倪孟雄(.南京郵電大學 通信與信息工程學院,江蘇 南京 0000;.上海奉天電子有限公司,上海 0800)

基于CAN總線的Bootloader設計與實現(xiàn)

王 琦1,黃悅鵬1,邢正陽1,蘇駿凱1,倪孟雄2
(1.南京郵電大學 通信與信息工程學院,江蘇 南京 210000;2.上海奉天電子有限公司,上海 201800)

使用BDM工具下載或升級應用程序,不僅麻煩而且穩(wěn)定性也不高。采用在線更新的方法,設計并實現(xiàn)了一種基于CAN總線的Bootloader。介紹車載網(wǎng)絡通信與診斷服務的實現(xiàn)、Bootloader的設計以及其在車載控制單元的實現(xiàn),并在此基礎上,提出最小Bootloader的概念,可以有效提高程序的靈活性。實驗結(jié)果證明,Bootloader能正確引導加載程序的運行,準確方便地實現(xiàn)應用程序的下載和更新,在軟件開發(fā)和測試過程中能夠極大地提高工作效率,而且Bootloader的穩(wěn)定性也很高。還能將網(wǎng)絡層和UDS診斷服務部分方便地移植到其他芯片上,為后序的軟件開發(fā)與測試提供了方便。

引導裝載程序;在線更新;診斷服務;CAN總線

0 引言

為了避免在更新程序的過程中拆除ECU,通過串行總線、SD卡或USB口以及相應的通信協(xié)議,將應用程序更新到單片機中[1]。在更新過程中,系統(tǒng)不免受到外界干擾和軟件故障等影響,因此可靠性成為Bootloader開發(fā)工作中首要考慮的因素。同時,Bootloader也存在軟件升級的問題,現(xiàn)行的方案并不完善。為此,本文提出最小Bootloader以保證程序的靈活性,為了應對程序更新出錯的意外狀況,提出Stay-In-Boot的概念,增強程序的穩(wěn)定性。

1 Bootloader部分

1.1 Bootloader原理

Bootloader的主要工作是初始化硬件設備、分配內(nèi)存映射等,構(gòu)建良好的軟硬件程序,并決定升級應用程序還是繼續(xù)運行原有的應用程序[2]。如果升級應用程序,則擦除原有程序數(shù)據(jù)并通過CAN網(wǎng)絡把更新的程序下載到 Flash中,再拷貝到RAM中運行;如果繼續(xù)運行原有的應用程序,則把Flash中的應用程序數(shù)據(jù)拷貝到RAM里,程序跳轉(zhuǎn)到地址 0x4000(僅針對 S12G192而言)處運行。

1.2 S12G192單片機的內(nèi)存空間

S12系列單片機支持兩種尋址方式:局部地址尋址和全局地址尋址。只有在對Flash進行操作時才會有全局地址的概念,對RAM和EEPROM進行操作時使用局部地址就可以了。

Bootloader應該放在受保護的Flash中,但不是所有Flash都可以設置保護,所以一般放置在0xc000~0xfeff區(qū)間內(nèi)。

2 ISO15765協(xié)議[3]

按協(xié)議內(nèi)容和體系結(jié)構(gòu)實現(xiàn)來進行劃分,ISO15765協(xié)議共分為4層,分別是應用層、網(wǎng)絡層、數(shù)據(jù)鏈路層和物理層。應用層診斷協(xié)議設計應遵循ISO14229-1或ISO15765-3,應用層規(guī)定了具體診斷服務的服務標識符(SID)及后面所攜帶的參數(shù)格式與內(nèi)容。應用層數(shù)據(jù)經(jīng)過網(wǎng)絡層實現(xiàn)數(shù)據(jù)的傳輸、打包、解包,數(shù)據(jù)傳輸時以單幀和多幀的方式按ISO15765-2進行傳輸。數(shù)據(jù)經(jīng)數(shù)據(jù)鏈路層時應按ISO11898-1轉(zhuǎn)化為有效的CAN數(shù)據(jù)幀,最后經(jīng)物理層實現(xiàn)與另一節(jié)點的通信。被診斷電子控制單元(Electronic Control Unit,ECU)收到請求報文后,再按協(xié)議體系結(jié)構(gòu)進行逐層解析。

3 基于ISO15765的Bootloader設計與實現(xiàn)

單片機中的Bootloader程序必須設計得盡量小,因為ECU中有限的Flash容量是由應用程序和Bootloader程序共同占用的。本文將Bootloader分為8大部分,如圖1所示。下面詳細介紹框圖內(nèi)各個組件的設計與實現(xiàn)。

圖1 Bootloader設計框圖

3.1 CAN Driver的設計與實現(xiàn)

CAN驅(qū)動完成CAN的底層配置,包括CAN初始化,CAN的發(fā)送和接收函數(shù)。CAN初始化又分為關看門狗、屏蔽所有中斷、初始化PLL和時鐘等[4]。

3.2 ISO15765協(xié)議的實現(xiàn)

ISO15765協(xié)議的實現(xiàn)主要包括udsDiag.c、udsDiag.h、udsNWL.c和udsNWL.h4個文件的配制。udsDiag.c和udsDiag.h用于提供診斷服務[5],udsNWL.c和udsNWL.h用于提供網(wǎng)絡傳輸服務。udsNWL.c中最重要的是從網(wǎng)絡層發(fā)送和接收數(shù)據(jù)的兩個函數(shù)。udsDiag.c對每個服務進行響應。

3.3 Flash驅(qū)動的實現(xiàn)

在Flash寫入或擦除數(shù)據(jù)之前,必須驗證操作的合法性[6],在S12G192中通過配置FPROT寄存器來保護Flash不受非法的擦寫。在下載應用程序時把Flash Driver下載到ECU的RAM中,應用程序下載完成后再把RAM中的數(shù)據(jù)清除,ECU進入正常操作模式。這樣不僅可以保護Bootloader,還能節(jié)省Flash內(nèi)存空間,因為在大多數(shù)微控制器平臺中Flash存儲的代碼不能對Flash擦除或編程[7],至少是對與代碼在同一頁的Flash不能這樣操作。

3.4 安全模式的實現(xiàn)

安全模式提供安全訪問和下載驗證,本文通過實現(xiàn)ISO15765[3]中的安全訪問服務(服務號為0x27)來提供下載驗證[8],具體流程是上位機向ECU發(fā)送requestSeed來申請一個Seed;得到ECU返回Seed后,上位機將Seed進行處理得出結(jié)果Key發(fā)送給ECU,如果Key正確,則得到訪問ECU的授權。

3.5 最小Bootloader

考慮到Bootloader后續(xù)升級和同一系列芯片移植的需求,通過BDM或P&E燒寫進芯片的Bootloader僅完成傳送和接收數(shù)據(jù)的這一基本需求,F(xiàn)lash擦寫、部分診斷服務和加鎖等程序數(shù)據(jù)通過網(wǎng)絡層傳送到單片機寫進指定的內(nèi)存空間,這一舉措不僅方便Bootloader實現(xiàn)增量更新,還能提高Bootloader的可移植性。

3.6 Bootloader主程序

3.6.1 初始化流程

單片機復位后,在調(diào)用主程序之前,進入Start12.c源文件。執(zhí)行Init(void)函數(shù),完成的操作有清空RAM空間,把初始化數(shù)據(jù)從ROM拷貝到RAM等[9]。

3.6.2 上電啟動流程

ECU上電或者復位后,程序從0xfffe處開始運行[10],先進行一些基本初始化操作,再根據(jù)有無外部編程請求來決定進入Bootloader還是應用程序。但是如果升級過程中出現(xiàn)意外導致升級失敗,則再次上電時可能無法進入Bootloader。為了避免此類情況的發(fā)生,提出Stay-In-Boot的概念,也就是在上電復位后即使存在應用程序,也強制單片機進入Bootloader。設置一個wait timer,在wait timer沒有超時的情況下,如果收到一個Stay-In-Boot CAN Message,則ECU停留在Bootloader中;如果wait timer過期了,而且應用程序有效,則進入應用程序。這樣可以有效避免更新程序時出現(xiàn)意外導致無法重新刷新的情況,保證了程序的穩(wěn)定性。

3.6.3 主循環(huán)流程

ECU進入Bootloader后,設置全局變量waitTime,每次進入收發(fā)中斷將waitTime減1,在主程序的for循環(huán)中不斷檢測waitTime的值,如果為零,則跳轉(zhuǎn)到應用程序啟動地址,否則繼續(xù)檢測CAN網(wǎng)絡上有無數(shù)據(jù)可接收。為了保證CAN網(wǎng)絡上的數(shù)據(jù)能夠完整接收,本設計將waitTime設置得很大,設置為5 000。

3.7 測試及結(jié)果分析

用BDM編程工具[11]將實現(xiàn)的Bootloader燒錄到S12G192[12]單片機中,隨后移除BDM,將外部開關設為啟動加載模式,并上電。通過上位機發(fā)送編寫完成的“*.s19”文件,通過CAN網(wǎng)絡把數(shù)據(jù)流發(fā)送到單片機中,并運行。多次燒錄均沒有出現(xiàn)數(shù)據(jù)丟失的情況,能完整地解碼上位機發(fā)送的數(shù)據(jù)流,而且燒錄后也能成功下載應用程序,應用程序能正常工作,也能持續(xù)響應PC端上位機的診斷請求。

Bootloader的性能指標主要在穩(wěn)定性,另外本文也提出靈活性給開發(fā)工作帶來的好處。在板子已燒寫了最小Bootloader的前提下,通過上位機傳送Flash驅(qū)動程序和應用程序的s19到單片機(如圖2所示),通過CANoe檢測到應用程序發(fā)送的報文[13](如圖3所示),證明最小Bootloader能正確高效地運行,在需要擴展Flash時Bootloader將不需要改變,更改上位機發(fā)送的Flash配置文件即可。

圖2 上位機發(fā)送和Bootloader返回的數(shù)據(jù)

圖3 網(wǎng)絡層偵測的數(shù)據(jù)

另外,本文采用的是傳輸S-record文件,這有改進之處,通過實驗證明,直接傳輸hex文件比S-record快近一倍,因為Bootloader不再進行文件的解析,解析工作交給PC端上位機。這一改進可有效提高量產(chǎn)效率。

4 結(jié)論

本文設計并實現(xiàn)了基于ISO15765協(xié)議的Bootloader,提出使用最小Bootloader來優(yōu)化程序,增強程序的靈活性;開發(fā)過程中增加Stay-In-Boot狀態(tài),防止刷新出錯時出現(xiàn)死循環(huán),提高了程序的穩(wěn)定性。經(jīng)測試證明Bootloader能正確引導程序運行,下載數(shù)據(jù)完整、無誤,沒有出現(xiàn)數(shù)據(jù)丟失、錯誤等現(xiàn)象,在高負載下也能準確、高效地實現(xiàn)ECU端程序的在線下載和更新。

[1]王亞剛.嵌入式Bootloader機制的分析與移植[J].計算機工程,2010,36(06):267-269.

[2]Cheng Anyu,Yao Yan,Duan Zhihui,et al.ECU loader design of in-vehicle CAN network based on ISO15765[C]. International Conference on Information Science and Technology,2011:1215-1217.

[3]International Organization for Standardization.ISO 15765-2004 road vehicles-diagnostic on controller area network(CAN)[S].2004.

[4]張艷,鮑可進.整車控制器 Bootloader的設計與實現(xiàn)[J].計算機工程,2011,37(12):233-235.

[5]李銳,王晶瑩,姚燕,等.基于 ISO15765的車載 CAN網(wǎng)絡診斷設計[J].計算機工程,2012,38(4):35-36.

[6]李權,鄢萍,賀曉輝.高可靠性的嵌入式軟件現(xiàn)場更新方法[J].計算機應用,2010,30(08):2221-2231.

[7]李婉,李宏.單片機IAP升級方法在血液中分析儀中的應用[J].微型機與應用,2014,33(21):16-18.

[8]王冬良.基于CAN總線的轉(zhuǎn)向角傳感器采集電路設計[J].微型機與應用,2014,33(22):77-79.

[9]張家田,王金成,嚴正娟,等.基于CAN總線的井下視頻信號采集系統(tǒng)設計[J].電子應用技術,2013,39(12):15-21.

[10]何海波.基于XC2287M的工程機械ECU設計[J].電子應用技術,2014,40(12):27-29.

[11]羅峰,孫澤昌.汽車CAN總線系統(tǒng)原理、設計與應用[M].北京:電子工業(yè)出版社,2011.

[12]Freescale.MC9S12G family reference manualand data sheet[Z].2013.

[13]International Organization for Standardization.ISO 14229-2006 road vehicles——unified diagnostics services(UDS)specification and requirements(v2)[S].2006.

Design and implement of Bootloader based on CAN bus

Wang Qi1,Huang Yuepeng1,Xing Zhengyang1,Su Junkai1,Ni Mengxiong2
(1.School of Telecommunication and Information Engineering,Nanjing University of Posts and Telecommunications,Nanjing 210000,China;2.Shanghai Fengtian Electronic Co.,Ltd.,Shanghai 201800,China)

Using BDM tools to download or upgrade the application brings not only inconvenience but also low reliability.This paper designs and implements a Bootloader based on CAN bus to download or update application online.It introduces implements of network communication and diagnostic services,design of Bootloader and its implements in vehicle control unit.And on this basis,it puts forward minimum Bootloader,which can improve flexibility efficiently.Test proves that Bootloader can boot and load correctly,download and update applications accurately and conveniently,which can improve efficiency in software development and test greatly. Also,stability of this Bootloader is very high.Moreover,network layer and UDS diagnostic services of this Bootloader can be transplanted to other chips,providing convenience for following software development and test.

Bootloader;online update;diagnostic services;CAN bus

TP391

A

1674-7720(2015)18-0014-03

王琦,黃悅鵬,邢正陽,等.基于CAN總線的Bootloader設計與實現(xiàn)[J].微型機與應用,2015,34(18):14-16.

2015-03-30)

王琦(1991-),通信作者,男,碩士研究生,主要研究方向:嵌入式開發(fā)。E-mail:1244967796@qq.com。

黃悅鵬(1990-),男,碩士研究生,主要研究方向:嵌入式開發(fā)。

邢正陽(1991-),男,碩士研究生,主要研究方向:嵌入式開發(fā)。

猜你喜歡
單片機程序服務
基于單片機的SPWM控制逆變器的設計與實現(xiàn)
電子制作(2019年13期)2020-01-14 03:15:28
基于單片機的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
服務在身邊 健康每一天
基于單片機的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
服務在身邊 健康每一天
服務在身邊 健康每一天
“程序猿”的生活什么樣
招行30年:從“滿意服務”到“感動服務”
商周刊(2017年9期)2017-08-22 02:57:56
英國與歐盟正式啟動“離婚”程序程序
主站蜘蛛池模板: h视频在线播放| 婷婷亚洲视频| 综合久久久久久久综合网| 亚洲精品欧美日本中文字幕| 男女男精品视频| 91精品福利自产拍在线观看| 亚洲色无码专线精品观看| 日日拍夜夜嗷嗷叫国产| 欧美精品v欧洲精品| 最新精品国偷自产在线| 99热免费在线| 91最新精品视频发布页| 欧美三级日韩三级| 国产精品主播| 欧美三级日韩三级| 日韩经典精品无码一区二区| 精品一区二区三区中文字幕| 91精品国产自产在线老师啪l| 亚洲美女高潮久久久久久久| 国产乱人乱偷精品视频a人人澡| 四虎永久免费地址在线网站| 日本欧美一二三区色视频| 青青久在线视频免费观看| 亚洲欧洲日韩久久狠狠爱| 中文字幕色在线| 国产成人精彩在线视频50| 四虎影视国产精品| 黄色三级网站免费| 亚洲一区波多野结衣二区三区| 国产呦视频免费视频在线观看| 9cao视频精品| 91综合色区亚洲熟妇p| av在线5g无码天天| 伊人成人在线| 国产精品女在线观看| 白浆免费视频国产精品视频| 色婷婷综合激情视频免费看| 久久黄色一级片| 黄色网址免费在线| 国产乱人伦AV在线A| 久久精品嫩草研究院| 91丝袜乱伦| 成人综合在线观看| 福利视频久久| 中文字幕va| 波多野结衣一区二区三视频| 精品成人一区二区| 日韩欧美91| 国产中文一区二区苍井空| 四虎免费视频网站| 久久免费视频播放| 一区二区三区高清视频国产女人| 国产精品观看视频免费完整版| 一级成人a毛片免费播放| 最新国产你懂的在线网址| 青青草原国产av福利网站 | 久久人搡人人玩人妻精品 | 久青草网站| 午夜一级做a爰片久久毛片| 欧美乱妇高清无乱码免费| 一本二本三本不卡无码| 国产粉嫩粉嫩的18在线播放91| 97色伦色在线综合视频| 99久久国产自偷自偷免费一区| 丰满少妇αⅴ无码区| 国产一级无码不卡视频| 91无码人妻精品一区| 亚洲swag精品自拍一区| 无码国内精品人妻少妇蜜桃视频 | www精品久久| 亚洲国产无码有码| 九九热视频精品在线| 亚洲精品日产精品乱码不卡| 亚洲精品成人片在线播放| 男女男免费视频网站国产| 伊人久综合| 亚洲综合中文字幕国产精品欧美| 亚洲中文精品久久久久久不卡| 午夜视频www| 欧美爱爱网| 午夜一区二区三区| 2020最新国产精品视频|