《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于模擬BIOS的可穿戴設(shè)備固件在線升級(jí)實(shí)現(xiàn)
基于模擬BIOS的可穿戴設(shè)備固件在線升級(jí)實(shí)現(xiàn)
2017年電子技術(shù)應(yīng)用第3期
何國(guó)鋒,李月婷,劉宇紅
貴州大學(xué) 大數(shù)據(jù)與信息工程學(xué)院,貴州 貴陽(yáng)550025
摘要: 可穿戴設(shè)備需要不斷地進(jìn)行系統(tǒng)升級(jí)以達(dá)到良好的用戶(hù)體驗(yàn)度,產(chǎn)品升級(jí)方法和安全性是最為直觀的用戶(hù)體驗(yàn)。針對(duì)以MSP430芯片為核心的可穿戴設(shè)備,通過(guò)研究芯片內(nèi)部的程序啟動(dòng)方式,借鑒了計(jì)算機(jī)中BIOS啟動(dòng)加載系統(tǒng)的方法,將Flash劃分成不同空間,一塊內(nèi)固化了BIOS程序,模擬計(jì)算機(jī)BIOS,另外兩塊空間模擬了C盤(pán)和光驅(qū),實(shí)現(xiàn)了一種在線升級(jí)方案。
中圖分類(lèi)號(hào): TN609;TP368.1
文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.2017.03.015
中文引用格式: 何國(guó)鋒,李月婷,劉宇紅. 基于模擬BIOS的可穿戴設(shè)備固件在線升級(jí)實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2017,43(3):63-65,69.
英文引用格式: He Guofeng,Li Yueting,Liu Yuhong. Firmware online upgrade implementation for wearable devices based on simulating BIOS[J].Application of Electronic Technique,2017,43(3):63-65,69.
Firmware online upgrade implementation for wearable devices based on simulating BIOS
He Guofeng,Li Yueting,Liu Yuhong
College of Big Data and Information Engineering,Guizhou University,Guiyang 550025,China
Abstract: Wearable devices need to upgrade its system constantly in order to achieve a good user experience,and in this process,product update method and security make the most intuitive. Focusing on the wearable devices based on MSP430 MCU,though studying how the program start inside the chip and then referencing the step of how BIOS load system on computer,this paper diveded the Flash into different spaces,one for BIOS,and the other two were simulated to C drive and CD-ROM.At last,it released a scheme for online update.
Key words : wearable device;online upgrade;BIOS;embedded;Flash

0 引言

    據(jù)統(tǒng)計(jì),2013年全球可穿戴設(shè)備出貨量在700萬(wàn)件以上[1],2014年則達(dá)到了2 890萬(wàn)件,國(guó)內(nèi)市場(chǎng)規(guī)模更是達(dá)到了22億人民幣,年增長(zhǎng)率在144%[2], 2015年全球可穿戴設(shè)備出貨量已達(dá)到7 610萬(wàn)件,與2014年相比增長(zhǎng)了163.6%,預(yù)計(jì)2016年年底,可穿戴設(shè)備的出貨量將達(dá)到1.1億。如此龐大數(shù)量的產(chǎn)品想要長(zhǎng)期保持市場(chǎng)的占有量與使用性能,就要對(duì)產(chǎn)品進(jìn)行周期性的優(yōu)化與升級(jí),使產(chǎn)品在使用過(guò)程中修正BUG,優(yōu)化、增加新的功能。對(duì)產(chǎn)品進(jìn)行固件升級(jí)有多種方式,如JTAG、BSL等,這些方式只適用于產(chǎn)品未出廠時(shí)使用,對(duì)于已經(jīng)售出的產(chǎn)品,就需要通過(guò)互聯(lián)網(wǎng)、無(wú)線傳輸?shù)确椒?,隨時(shí)控制更新產(chǎn)品中的固件,以發(fā)揮可穿戴設(shè)備的性能。這些對(duì)于固件的更新,將對(duì)用戶(hù)的體驗(yàn)度產(chǎn)生很大的影響。本文以基于MSP430F1611為處理器的可穿戴設(shè)備為例,通過(guò)模擬BIOS程序,對(duì)Flash分塊操作來(lái)實(shí)現(xiàn)設(shè)備的固件升級(jí)。

1 在線升級(jí)總體架構(gòu)

    可穿戴設(shè)備進(jìn)行固件在線升級(jí)時(shí),首先要接收服務(wù)器推送的最新固件包。圖1為升級(jí)包從服務(wù)器到達(dá)設(shè)備中的過(guò)程圖,對(duì)于能夠連接互聯(lián)網(wǎng)的設(shè)備,可以直接內(nèi)嵌一個(gè)到服務(wù)器的接口,直接下載升級(jí)包,如圖中虛線所示;對(duì)于許多體積小無(wú)法連接網(wǎng)絡(luò)的設(shè)備,如常見(jiàn)的智能手環(huán),可以如圖中實(shí)線所示,通過(guò)手機(jī)從網(wǎng)絡(luò)中接收升級(jí)包,然后通過(guò)藍(lán)牙等無(wú)線方式下載到設(shè)備中。

qrs5-t1.gif

2 固件升級(jí)原理

2.1 系統(tǒng)從Flash啟動(dòng)過(guò)程

    MSP430F1611單片機(jī)[3]是德州儀器公司推出的一款具有10 KB片內(nèi)RAM和48 KB+256 B片內(nèi)Flash的16 bit超低功耗處理器,擁有豐富的外設(shè)資源,常被用在智能可穿戴設(shè)備中,以達(dá)到低功耗的目的。

    從MSP430F1611數(shù)據(jù)手冊(cè)上可以查找到內(nèi)部資源空間地址表。其中0x4000~0xFFFF為Flash地址空間,共48 KB,這其中從0xFFE0~0xFFFF為中斷向量地址,其他空間都可以由用戶(hù)進(jìn)行操作。當(dāng)向芯片中燒寫(xiě)程序時(shí),程序代碼被寫(xiě)入到Flash中,寫(xiě)入的起始位置即程序的入口地址。系統(tǒng)上電后,PC指針指到中斷向量表的復(fù)位向量,從中讀取程序起始地址入口,然后跳轉(zhuǎn)到這個(gè)入口處執(zhí)行程序。這個(gè)地址在代碼編譯過(guò)程中會(huì)自動(dòng)生成,用戶(hù)可以修改,指定將固件燒寫(xiě)到Flash中其他地址。

2.2 自動(dòng)更新原理

    圖2為計(jì)算機(jī)中BIOS程序引導(dǎo)操作系統(tǒng)過(guò)程的簡(jiǎn)化框圖。在計(jì)算機(jī)上電時(shí),會(huì)啟用固化在主板空間內(nèi)的一段BIOS引導(dǎo)程序進(jìn)入POST階段,該階段主要工作為初始化和檢測(cè)相關(guān)的硬件資源。然后進(jìn)入操作系統(tǒng)引導(dǎo)階段,首先根據(jù)BIOS設(shè)置來(lái)檢測(cè)光驅(qū)或U盤(pán)中有無(wú)引導(dǎo)系統(tǒng),如果有則將引導(dǎo)系統(tǒng)加入到內(nèi)存0000:7C00H中,執(zhí)行引導(dǎo)系統(tǒng);如果沒(méi)有,則搜索硬盤(pán)第一個(gè)扇區(qū),將內(nèi)容加載到內(nèi)存0000:7C00H中,運(yùn)行系統(tǒng)。

qrs5-t2.gif

    基于這種思想,本文模擬設(shè)計(jì)了一段BIOS引導(dǎo)程序,將Flash劃分區(qū)域,一塊相當(dāng)于光驅(qū),起始地址記為A,一塊相當(dāng)于C盤(pán),起始地址記為C。在系統(tǒng)上電時(shí),檢測(cè)Flash上A地址后有無(wú)新版固件,如果有,則將該固件復(fù)制到Flash上地址C后的空間,完成從光驅(qū)安裝系統(tǒng)到C盤(pán)。復(fù)制完成后刪除A空間內(nèi)容,相當(dāng)于光驅(qū)彈出的動(dòng)作,重啟系統(tǒng);如果檢測(cè)到起始地址為A的空間內(nèi)無(wú)文件存在,則通過(guò)匯編指令,將PC指針指到C地址,系統(tǒng)將從C盤(pán)啟動(dòng)??傮w架構(gòu)流程圖如圖3所示,其中用虛線圍起來(lái)的部分不屬于BIOS引導(dǎo)程序中的內(nèi)容,而是操作系統(tǒng),即用戶(hù)程序。這樣,單片機(jī)中相當(dāng)于有2個(gè)程序:1個(gè)BIOS程序,1個(gè)用戶(hù)程序。在開(kāi)機(jī)時(shí)進(jìn)入BIOS,由BIOS決定是否將程序入口指針切換到用戶(hù)程序。切換到用戶(hù)程序需使用匯編指令將PC指針移到用戶(hù)程序的復(fù)位向量地址0xFFDE中指向的地址[4],即C盤(pán)起始地址:

    asm(“mov &0xFFDE”);

qrs5-t3.gif

    因?yàn)樵贔lash中重新為用戶(hù)程序分配了中斷向量表,需要使用匯編指令對(duì)15個(gè)中斷向量表進(jìn)行映射[6]。如對(duì)第一個(gè)中斷向量映射的代碼如下:

    #pragma vector=0

    __interrupt void intec_0(void)

    {

        asm(“br &0xFFC0”);

    }

2.3 BIOS引導(dǎo)程序固化

    BIOS引導(dǎo)程序編寫(xiě)完成后,需要修改工程中的xcl文件,將BIOS引導(dǎo)程序固化到指定位置,芯片的主Flash地址范圍為0x4000~0xFFFF,其中0xFFE0~0xFFF為中斷向量表,其余的為用戶(hù)空間。將用戶(hù)空間分成4部分,如圖4所示,整個(gè)灰色部分為原來(lái)的用戶(hù)空間。其中0x4000~0x5FFF為BIOS程序空間;0x6000~0xAFFF為用戶(hù)程序空間,類(lèi)似電腦上的C盤(pán); 0xB000~0xFFBF為存儲(chǔ)空間,類(lèi)似電腦上的光驅(qū),用來(lái)存儲(chǔ)接收到的新固件;0xFFC0~0xFFDF為用戶(hù)中斷向量表。修改xcl文件[4,5],將BIOS程序代碼段、常量的地址范圍改為0x6000~0xAFFF后編譯工程,將生成的BIOS文件通過(guò)下載器燒寫(xiě)到單片機(jī)中,完成BIOS引導(dǎo)程序的固化。

qrs5-t4.gif

2.4 用戶(hù)程序?qū)崿F(xiàn)

    用戶(hù)程序的實(shí)現(xiàn)需要通過(guò)藍(lán)牙連接手機(jī)或電腦App,當(dāng)有新版本的固件包時(shí),App會(huì)將固件包通過(guò)藍(lán)牙下發(fā)到設(shè)備中。用戶(hù)程序在接收固件包的同時(shí),將固件包保存在0xB000~0xFFBF范圍內(nèi)的Flash空間中,本設(shè)計(jì)因?yàn)橛脩?hù)程序代碼量少,將程序保存在0xB000地址后,如果用戶(hù)程序過(guò)大,可以考慮通過(guò)擴(kuò)展片外Flash解決。用戶(hù)程序流程圖如圖5所示。

qrs5-t5.gif

    用戶(hù)程序需要放在0x6000~0xAFFF范圍內(nèi),因此同樣需要修改工程文件中的xcl文件,修改代碼段、常量的地址范圍為0x6000~0xAFFF。另外因?yàn)樵袛嘞蛄康刂繁籅IOS程序所占據(jù),需要修改xcl文件中的中斷向量地址為0xFFC0~0xFFDF,重啟向量地址為0xFFDE。要將應(yīng)用程序作為固件更新包推送到設(shè)備終端,因此要選擇生成txt格式的16進(jìn)制Hex文件。圖6所示是一簡(jiǎn)單的文件生成的txt文件內(nèi)容,傳輸過(guò)程中可以考慮加密及錯(cuò)誤驗(yàn)證。

qrs5-t6.gif

    圖6中@6000代表程序的起始地址為6000,這段代碼會(huì)被放在以0x6000為起始地址的Flash內(nèi);@FFDE表示程序的復(fù)位向量地址為0xFFDE,其中保存子程序入口地址,即0x6000;q表示程序結(jié)束。

3 藍(lán)牙通信

3.1 藍(lán)牙技術(shù)簡(jiǎn)介

    為了實(shí)現(xiàn)無(wú)線接收,本文在設(shè)備上使用了藍(lán)牙技術(shù)來(lái)進(jìn)行數(shù)據(jù)傳送。藍(lán)牙技術(shù)[6]最初是在1994年時(shí)由電信巨頭愛(ài)立信公司推出,用來(lái)替代RS232標(biāo)準(zhǔn)的一種短距離(10 m~100 m)無(wú)線通信技術(shù)。藍(lán)牙通信工作在2.4 GHz ISM頻段上,可以連接多個(gè)設(shè)備,方便數(shù)據(jù)共享傳輸。藍(lán)牙通信無(wú)需取得執(zhí)照許可,因此被廣泛用于工業(yè)、醫(yī)療、手機(jī)、平板等電子設(shè)備中。

3.2 藍(lán)牙模塊

    設(shè)計(jì)中采用了BLK-MD-HC-05藍(lán)牙模塊,該模塊采用了英國(guó)CSR公司的BlueCore4-Ext芯片,遵循V2.0+EDR藍(lán)牙規(guī)范[7],支持UART、USB、SPI、PCM、SPDIF等豐富的接口,支持AT指令集,簡(jiǎn)化了操作。圖7為藍(lán)牙模塊架構(gòu)與MCU之間通過(guò)UART口連接圖。

qrs5-t7.gif

3.3 AT指令配置藍(lán)牙模塊

    在使用藍(lán)牙模塊前需要通過(guò)串口通信對(duì)藍(lán)牙模塊初始化,BLK-MD-HC-05支持AT指令,藍(lán)牙模塊默認(rèn)的波特率為9 600,因此串口需要調(diào)整到9 600后方能與藍(lán)牙模塊進(jìn)行數(shù)據(jù)交互。表1為藍(lán)牙模塊初始化需要用到的AT指令。

qrs5-b1.gif

4 結(jié)語(yǔ)

    本文通過(guò)模擬BIOS來(lái)實(shí)現(xiàn)固件更新,經(jīng)過(guò)不同大小的固件包反復(fù)推送測(cè)試,可以順利地完成在線升級(jí)。升級(jí)過(guò)程安全可靠,具有較好的可行性,在應(yīng)用中,將推送的升級(jí)包進(jìn)行加密和解密過(guò)程,會(huì)更加完善。同時(shí),本文將Flash進(jìn)行分割,其中一部分作為BIOS和光驅(qū)空間,雖然犧牲了Flash空間,但通常情況下Flash空間都會(huì)有剩余,不會(huì)造成對(duì)可靠性的影響。

參考文獻(xiàn)

[1] 耿怡,安暉,李揚(yáng),等.可穿戴設(shè)備發(fā)展現(xiàn)狀和前景探析[J].電子科學(xué)與技術(shù),2014(2):238-245.

[2] 鄧俊杰,劉紅.可穿戴智能設(shè)備的現(xiàn)狀及未來(lái)發(fā)展趨勢(shì)展望[J].黑龍江科技信息,2015(28):135.

[3] Texas Instruments.MSP430x1xx family user's guide[EB/OL].[2006-02-28].http://www.ti.com.cn/cn/lit/ug/slau049f/slau049f.pdf.

[4] 喬海坤.微控論壇特約,DC,微控論壇版主.MSP430程序自升級(jí)的實(shí)現(xiàn)原理及過(guò)程[EB/OL][2008-12-08].http:www.microcontrol.cn.

[5] 張園,萬(wàn)眾.MSP430單片機(jī)串口的程序升級(jí)方法[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2011(10):23-24.

[6] 張群,楊絮.藍(lán)牙模塊串口通信的設(shè)計(jì)與實(shí)現(xiàn)[J].實(shí)驗(yàn)室研究與探索,2012,319(3):79-82.

[7] 練杰,聶俊飛.基于MSP430單片機(jī)的多功能藍(lán)牙溫度檢測(cè)系統(tǒng)[J].儀表技術(shù),2015(8):36-38. 



作者信息:

何國(guó)鋒,李月婷,劉宇紅

(貴州大學(xué) 大數(shù)據(jù)與信息工程學(xué)院,貴州 貴陽(yáng)550025)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
主站蜘蛛池模板: 潦草影视2021手机| 邻居的又大又硬又粗好爽| 女人是男人未来1分50秒| 久久婷婷五月综合尤物色国产| 欧美疯狂xxxx乱大交视频| 免费中文字幕不卡视频| 美女动作一级毛片| 国产亚洲精品拍拍拍拍拍| 欧美黄色一级在线| 国产精品无码久久久久| 99久久精品午夜一区二区| 岛国免费v片在线播放| 丰满老熟好大bbb| 日本视频www色| 二级毛片在线播放| 欧美人与动交片免费播放| 亚洲精品动漫在线| 男人好大好硬好爽免费视频| 午夜影视在线免费观看| 草草影院最新发布地址| 国产午夜爽爽窝窝在线观看| 国产男人午夜视频在线观看| 国产精品一区欧美激情| 1717国产精品久久| 国产精自产拍久久久久久蜜| 97精品国产97久久久久久免费| 天堂网www在线资源| sihu国产精品永久免费| 少妇性俱乐部纵欲狂欢少妇| 中文字幕一精品亚洲无线一区| 无码超乳爆乳中文字幕久久| 久久亚洲美女精品国产精品| 日韩激情无码免费毛片| 久久综合网欧美色妞网| 最近最新在线中文字幕| 亚洲gv天堂无码男同在线观看| 欧美亚洲国产片在线播放| 亚洲国产精品线观看不卡| 欧美日韩亚洲国产| 亚洲成在人线电影天堂色| 正在播放julia女教师|