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

基于MCU的嵌入式在線升級系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

2012-06-25 03:31:42任海蘭王成麗
電視技術(shù) 2012年5期
關(guān)鍵詞:嵌入式系統(tǒng)設(shè)計(jì)

方 沖,任海蘭,王成麗

(武漢郵電科學(xué)研究院研究生院光纖通信技術(shù)和網(wǎng)絡(luò)國家重點(diǎn)實(shí)驗(yàn)室,湖北 武漢 430074)

在嵌入式系統(tǒng)投入實(shí)際環(huán)境運(yùn)行后,一旦用戶有新的需求或者原有系統(tǒng)出現(xiàn)問題時,就需要嵌入式系統(tǒng)在不斷電或保持系統(tǒng)正常運(yùn)行的情況下,能夠通過外圍接口(JTAG口,網(wǎng)口或串口)實(shí)現(xiàn)對自身程序的更新,完成系統(tǒng)的在線升級。

隨著在線升級越來越多的應(yīng)用到嵌入式系統(tǒng)中,一些在線升級方案逐漸被提出,當(dāng)前嵌入式在線升級的方案主要有兩種典型的軟件架構(gòu):一是在Bootloader中嵌入通信模塊,對應(yīng)用程序運(yùn)行區(qū)直接進(jìn)行更新[1-2],如圖1a所示;二是用兩個應(yīng)用程序進(jìn)行切換,即“雙系統(tǒng)”結(jié)構(gòu)[3-4],如圖1b所示。其中第一種軟件架構(gòu)的特點(diǎn)是結(jié)構(gòu)簡單、易于實(shí)現(xiàn)但可靠性不高,第二種軟件架構(gòu)的特點(diǎn)是可靠性高,但實(shí)現(xiàn)起來較為復(fù)雜,所占資源較多。結(jié)合這兩種解決方案的特點(diǎn)及其適用范圍,本文在第一種軟件架構(gòu)的基礎(chǔ)上提出了一種可靠性好、靈活度高的在線升級解決方案,并給出了其具體的實(shí)現(xiàn)。

1 在線升級系統(tǒng)的整體設(shè)計(jì)

圖1 升級系統(tǒng)典型的軟件架構(gòu)

為了適應(yīng)對可靠性、靈活性要求較高的嵌入式應(yīng)用系統(tǒng),設(shè)計(jì)了一種改進(jìn)的方案,其軟件架構(gòu)由Bootloader工程和應(yīng)用程序工程構(gòu)成,如圖2所示。其與圖1a的主要區(qū)別如下:一是增加了應(yīng)用程序的備份區(qū),每次升級時首先拷貝至備份區(qū),而不直接覆蓋運(yùn)行區(qū)程序,這樣通信過程中出現(xiàn)錯誤不會導(dǎo)致破壞原有程序,提高了升級的可靠性;二是將升級過程劃分為兩個階段,第一階段將應(yīng)用程序拷貝至備份區(qū),第二階段完成備份區(qū)到運(yùn)行區(qū)的拷貝,以便用戶靈活的控制升級傳輸與完成升級的時機(jī),提高了升級的靈活性;三是將Bootloader劃分為不同的功能模塊,這樣只需要根據(jù)不同的硬件平臺完成相關(guān)的驅(qū)動及系統(tǒng)初始化模塊即可完成此系統(tǒng)的移植,提高了的通用性。

圖2 在線升級系統(tǒng)的軟件架構(gòu)

此系統(tǒng)的主要工作流程為:1)Bootloader通過仿真器燒寫到MCU中,其作用是完成應(yīng)用程序的升級及其引導(dǎo);2)新的應(yīng)用程序在用戶啟動升級后,通過Bootloader或原應(yīng)用程序中的通信協(xié)議模塊拷貝到應(yīng)用程序的備份區(qū);3)對系統(tǒng)進(jìn)行復(fù)位(跳轉(zhuǎn)到Bootloader的起始地址),由Bootloader中的升級模塊實(shí)現(xiàn)新應(yīng)用程序?qū)υ瓚?yīng)用程序的替換,并跳轉(zhuǎn)到應(yīng)用程序執(zhí)行區(qū)的起始地址,完成了應(yīng)用程序的升級。

2 系統(tǒng)的軟硬件平臺及存儲分配

2.1 系統(tǒng)的硬件平臺

該系統(tǒng)的設(shè)計(jì)及實(shí)現(xiàn)是基于 Freescale MC9S12XD256[7-8]芯片,該芯片以S12 CPU為內(nèi)核,帶有256 kbyte的片內(nèi)Flash,4 kbyte的片內(nèi)E2PROM,14 kbyte的RAM,其中256 kbyte的Flash劃分為16個Page,每個Page為16 kbyte,其邏輯地址為:

S12的CPU有一個Page寄存器,其尋址方式是Page寄存器(相當(dāng)于基址)+PC寄存器(相當(dāng)于偏移地址),完成邏輯地址到物理地址的映射。

2.2 系統(tǒng)的軟件平臺

該系統(tǒng)的軟件環(huán)境為CodeWarrior開發(fā)工具,采用C語言進(jìn)行開發(fā),經(jīng)過CodeWarrior編譯出來的S19程序文件,其格式為ASCII編碼的S-record格式。為了方便下位機(jī)進(jìn)行解析,可以把S19文件轉(zhuǎn)化為.bin文件,并自定義其格式,加入CRC校驗(yàn)部分以保證傳輸?shù)恼_性,關(guān)于此部分細(xì)節(jié),請讀者查閱相關(guān)的文獻(xiàn),在此不作詳細(xì)闡述。

2.3 存儲分配

經(jīng)過CodeWarrior編譯出來的代碼,其地址是不連續(xù)的,經(jīng)過分析S19文件,可將生成的代碼分為代碼段(Code)、庫函數(shù)段(Lib)、中斷向量段(2nd ISR),其中系統(tǒng)自帶的中斷向量段地址是不變的(MYMFF00-MYMFFFF),為了方便升級,在此設(shè)計(jì)了二級中斷向量,完成系統(tǒng)中斷向量到自定義二級中斷向量的映射。根據(jù)以上分析,可對Flash作如下分割(邏輯劃分):

其中中斷向量是兩個工程所共用的,分配其存儲區(qū)時只需要劃分一組。

3 Bootloader的設(shè)計(jì)與實(shí)現(xiàn)

3.1 Bootloader程序設(shè)計(jì)流程

在此系統(tǒng)中,Bootloader劃分為4個模塊,系統(tǒng)初始化模塊、升級控制模塊、Xmodem通信模塊、命令行模塊,其流程圖如圖3所示。系統(tǒng)初始化模塊主要完成時鐘的初始化、串口的初始化、中斷的初始化以及定時器的初始化,為其他模塊的運(yùn)行準(zhǔn)備條件;升級控制模塊主要完成應(yīng)用程序備份區(qū)到運(yùn)行區(qū)拷貝的操作,以及應(yīng)用程序的引導(dǎo),當(dāng)系統(tǒng)中只有Bootloader或者升級第二階段拷貝失敗時,會保持在Bootloader的主循環(huán)中運(yùn)行;Xmodem通信模塊實(shí)現(xiàn)了系統(tǒng)同上位機(jī)的通信;命令行模塊提供給用戶靈活控制升級的接口,下面詳細(xì)介紹Xmodem通信模塊及命令行模塊的實(shí)現(xiàn)。

3.2 Xmodem通信模塊的實(shí)現(xiàn)

Xmodem協(xié)議是一種串口通信中廣泛用到的異步文件傳輸協(xié)議。分為標(biāo)準(zhǔn)Xmodem和1k-Xmodem兩種,前者以128字節(jié)塊的形式傳輸數(shù)據(jù),后者字節(jié)塊為1 kbyte,并且每個塊都使用一個校驗(yàn)和過程來進(jìn)行錯誤檢測。Xmodem協(xié)議的格式如圖4所示。其中,SOH為幀頭(1字節(jié));信息包序號為當(dāng)前信息包號(1字節(jié)),范圍為0~255;信息包序號的補(bǔ)碼為當(dāng)前信息包號的補(bǔ)碼(1字節(jié));數(shù)據(jù)區(qū)段為數(shù)據(jù)區(qū)段的長度固定為128字節(jié)(如果是1k-Xmodem則為1024 字節(jié));算術(shù)校驗(yàn)和為1字節(jié)的算術(shù)校驗(yàn)和,只對數(shù)據(jù)區(qū)段計(jì)算后對256取模(如果是1k-Xmodem則為CRC校驗(yàn))。

在此系統(tǒng)中,通過一個狀態(tài)機(jī)實(shí)現(xiàn)了Xmodem協(xié)議的接收端,發(fā)送端可用PC提供的超級終端,Xmodem狀態(tài)機(jī)如圖5所示。

圖5 Xmodem狀態(tài)機(jī)

其數(shù)據(jù)結(jié)構(gòu)定義如下:

根據(jù)Xmodem的狀態(tài)機(jī),用switch結(jié)構(gòu)實(shí)現(xiàn)其主流程,并完成每個狀態(tài)下的處理函數(shù),即可完成Xmodem協(xié)議的接受端。

3.3 命令行模塊的實(shí)現(xiàn)

命令行模塊是升級系統(tǒng)與用戶之間的接口,方便用戶靈活地控制升級時機(jī),其至少需要提供兩個接口:1)啟動Xmodem進(jìn)行文件傳輸?shù)慕涌?2)提供對系統(tǒng)進(jìn)行復(fù)位的接口。其中第一個接口配合Xmodem完成升級文件到應(yīng)用程序備份區(qū)的拷貝,第二個接口是系統(tǒng)跳轉(zhuǎn)到Bootloader起始地址,完成程序的更新。

命令行可以實(shí)現(xiàn)為,通過匹配命令接口,然后調(diào)用其對應(yīng)的回調(diào)方式,其數(shù)據(jù)結(jié)構(gòu)定義如下:

通過實(shí)現(xiàn)命令處理函數(shù)CLI_ProcFWDL(VOID),CLI_ProcSWRST(VOID)即可完成命令行模塊的設(shè)計(jì)。

4 測試結(jié)果

按照前面所述的硬件結(jié)構(gòu)和軟件實(shí)現(xiàn)搭建好測試環(huán)境后,將1.0版本的 Bootloader燒寫到Flash,將1.0版本的應(yīng)用程序通過PC機(jī)提供的超級終端下載至備份區(qū)并升級到運(yùn)行區(qū),如圖6所示。

1)功能性測試。由圖6可知,應(yīng)用程序能夠成功的從1.0版本升級到1.1版本,Bootloader版本在必要時(一般不需要升級Bootloader)也能夠升級到1.1版本。

2)穩(wěn)定性測試。在通信的過程中斷電或者取消Xmodem的傳輸,升級標(biāo)志位不會被置,系統(tǒng)均能夠保持在應(yīng)用程序的當(dāng)前版本運(yùn)行;在從備份區(qū)拷貝至執(zhí)行區(qū)的過程中斷電,當(dāng)前版本的應(yīng)用程序被破壞,但系統(tǒng)能夠維持在Bootloader中的while(1)循環(huán)中運(yùn)行,由于此過程所需時間很少(100 ms級),此種情況發(fā)生的概率很小,而且一旦出現(xiàn),系統(tǒng)能夠通過再次升級,恢復(fù)至原應(yīng)用程序。

3)靈活性測試。在此系統(tǒng)中用戶可以靈活地控制下載新程序,以及升級到新程序的時機(jī),在新程序成功下載到備份區(qū)之后,只要用戶不發(fā)Boot命令或遇到異常重啟,系統(tǒng)均不會更新至新版本,而保持在當(dāng)前版本運(yùn)行。

圖6 在線升級系統(tǒng)測試結(jié)果

5 結(jié)束語

本文結(jié)合嵌入式產(chǎn)品的在線升級的需求,對比了兩種升級方案的實(shí)現(xiàn),提出了一種改進(jìn)的在線升級方案,由測試結(jié)果可以看出,該方案可靠性好、靈活度高、通用性強(qiáng),設(shè)計(jì)達(dá)到了預(yù)期效果。該系統(tǒng)已成功應(yīng)用于基于Freescale MC9S12XD系列單片機(jī)的嵌入式系統(tǒng)中,對實(shí)際的嵌入式應(yīng)用有一定的參考意義。

[1]武國平,史儀凱.ARM7處理器Bootloader的設(shè)計(jì)與實(shí)現(xiàn)[J].微處理機(jī),2010,31(5):103-106.

[2]鄧中亮,孫靜.嵌入式設(shè)備在線系統(tǒng)升級的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2009,30(13):3085-3087.

[3]尹恒,嚴(yán)華.一種針對嵌入式遠(yuǎn)程升級安全的存儲解決方案[J].計(jì)算機(jī)應(yīng)用,2011,31(4):992-994.

[4]王恒,王颋,王泉,等.基于Bootloader的可靠嵌入式軟件遠(yuǎn)程更新機(jī)制[J].微計(jì)算機(jī)信息,2007,20:57-59.

[5]聶章龍,王宜懷.Freescale HC08系列MCU集成開發(fā)系統(tǒng)的若干關(guān)鍵技術(shù)[J].計(jì)算機(jī)工程與設(shè)計(jì),2010,31(3):518-520.

[6]馬學(xué)文,朱名日,程小輝.嵌入式系統(tǒng)中Bootloader的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2005,31(7):96-97.

[7]孫同景,陳桂友.Freescale 9S12十六位單片機(jī)原理及嵌入式開發(fā)技術(shù)[M].北京:機(jī)械工業(yè)出版社,2008.

[8]邵貝貝.單片機(jī)嵌入式應(yīng)用的在線開發(fā)方法[M].北京:機(jī)械工業(yè)出版社,2004.

猜你喜歡
嵌入式系統(tǒng)設(shè)計(jì)
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無人機(jī)系統(tǒng)
ZC系列無人機(jī)遙感系統(tǒng)
北京測繪(2020年12期)2020-12-29 01:33:58
瞞天過海——仿生設(shè)計(jì)萌到家
搭建基于Qt的嵌入式開發(fā)平臺
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
設(shè)計(jì)秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設(shè)計(jì)叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
Altera加入嵌入式視覺聯(lián)盟
主站蜘蛛池模板: 亚洲第一视频免费在线| 亚洲欧美不卡中文字幕| 亚洲第一视频网| 精品五夜婷香蕉国产线看观看| 国产97区一区二区三区无码| 国产亚洲视频中文字幕视频| 国产精品人成在线播放| 制服丝袜在线视频香蕉| 成人亚洲天堂| 麻豆精品视频在线原创| 在线观看免费黄色网址| 黄片一区二区三区| 男女精品视频| 情侣午夜国产在线一区无码| 中文字幕无码av专区久久| 国产产在线精品亚洲aavv| 重口调教一区二区视频| 亚洲人成在线免费观看| 美女国产在线| 久久综合色88| 亚洲性日韩精品一区二区| 国产在线麻豆波多野结衣| 毛片久久久| 伊大人香蕉久久网欧美| 91麻豆精品国产高清在线| 亚洲第一区欧美国产综合| 久久夜色撩人精品国产| 2021国产v亚洲v天堂无码| 在线视频精品一区| 亚洲午夜福利在线| 亚洲aaa视频| 精品国产香蕉在线播出| 成年女人a毛片免费视频| 国产成人免费手机在线观看视频 | 波多野结衣一区二区三区88| 久草网视频在线| 97se亚洲综合在线天天| 日韩视频福利| 久久网欧美| 综合色88| 精品在线免费播放| 91在线视频福利| 香蕉国产精品视频| 18禁色诱爆乳网站| 五月丁香在线视频| 免费黄色国产视频| 亚洲国产天堂久久综合| 四虎在线观看视频高清无码| 9啪在线视频| 特级aaaaaaaaa毛片免费视频| 噜噜噜久久| 午夜三级在线| 亚洲成aⅴ人在线观看| 一级毛片在线播放| 国产自视频| 欧洲一区二区三区无码| 精品国产网站| 欧美亚洲国产视频| 亚洲婷婷在线视频| 极品av一区二区| 91久久偷偷做嫩草影院电| 亚洲成人免费在线| 97se亚洲综合在线| 亚洲天堂高清| 免费国产黄线在线观看| 欧美亚洲激情| 亚洲经典在线中文字幕| 国产91色在线| 成年网址网站在线观看| www.av男人.com| 久久天天躁狠狠躁夜夜躁| 色综合中文| 日本一区二区不卡视频| 爽爽影院十八禁在线观看| 国产成人精品男人的天堂下载| 色婷婷色丁香| 真实国产精品vr专区| 国产成人1024精品| 中文字幕永久在线看| 国产99视频在线| 伊人无码视屏| 欧美第九页|