《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于模擬BIOS的可穿戴設備固件在線升級實現
基于模擬BIOS的可穿戴設備固件在線升級實現
2017年電子技術應用第3期
何國鋒,李月婷,劉宇紅
貴州大學 大數據與信息工程學院,貴州 貴陽550025
摘要: 可穿戴設備需要不斷地進行系統升級以達到良好的用戶體驗度,產品升級方法和安全性是最為直觀的用戶體驗。針對以MSP430芯片為核心的可穿戴設備,通過研究芯片內部的程序啟動方式,借鑒了計算機中BIOS啟動加載系統的方法,將Flash劃分成不同空間,一塊內固化了BIOS程序,模擬計算機BIOS,另外兩塊空間模擬了C盤和光驅,實現了一種在線升級方案。
中圖分類號: TN609;TP368.1
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2017.03.015
中文引用格式: 何國鋒,李月婷,劉宇紅. 基于模擬BIOS的可穿戴設備固件在線升級實現[J].電子技術應用,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 引言

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

1 在線升級總體架構

    可穿戴設備進行固件在線升級時,首先要接收服務器推送的最新固件包。圖1為升級包從服務器到達設備中的過程圖,對于能夠連接互聯網的設備,可以直接內嵌一個到服務器的接口,直接下載升級包,如圖中虛線所示;對于許多體積小無法連接網絡的設備,如常見的智能手環,可以如圖中實線所示,通過手機從網絡中接收升級包,然后通過藍牙等無線方式下載到設備中。

qrs5-t1.gif

2 固件升級原理

2.1 系統從Flash啟動過程

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

    從MSP430F1611數據手冊上可以查找到內部資源空間地址表。其中0x4000~0xFFFF為Flash地址空間,共48 KB,這其中從0xFFE0~0xFFFF為中斷向量地址,其他空間都可以由用戶進行操作。當向芯片中燒寫程序時,程序代碼被寫入到Flash中,寫入的起始位置即程序的入口地址。系統上電后,PC指針指到中斷向量表的復位向量,從中讀取程序起始地址入口,然后跳轉到這個入口處執行程序。這個地址在代碼編譯過程中會自動生成,用戶可以修改,指定將固件燒寫到Flash中其他地址。

2.2 自動更新原理

    圖2為計算機中BIOS程序引導操作系統過程的簡化框圖。在計算機上電時,會啟用固化在主板空間內的一段BIOS引導程序進入POST階段,該階段主要工作為初始化和檢測相關的硬件資源。然后進入操作系統引導階段,首先根據BIOS設置來檢測光驅或U盤中有無引導系統,如果有則將引導系統加入到內存0000:7C00H中,執行引導系統;如果沒有,則搜索硬盤第一個扇區,將內容加載到內存0000:7C00H中,運行系統。

qrs5-t2.gif

    基于這種思想,本文模擬設計了一段BIOS引導程序,將Flash劃分區域,一塊相當于光驅,起始地址記為A,一塊相當于C盤,起始地址記為C。在系統上電時,檢測Flash上A地址后有無新版固件,如果有,則將該固件復制到Flash上地址C后的空間,完成從光驅安裝系統到C盤。復制完成后刪除A空間內容,相當于光驅彈出的動作,重啟系統;如果檢測到起始地址為A的空間內無文件存在,則通過匯編指令,將PC指針指到C地址,系統將從C盤啟動。總體架構流程圖如圖3所示,其中用虛線圍起來的部分不屬于BIOS引導程序中的內容,而是操作系統,即用戶程序。這樣,單片機中相當于有2個程序:1個BIOS程序,1個用戶程序。在開機時進入BIOS,由BIOS決定是否將程序入口指針切換到用戶程序。切換到用戶程序需使用匯編指令將PC指針移到用戶程序的復位向量地址0xFFDE中指向的地址[4],即C盤起始地址:

    asm(“mov &0xFFDE”);

qrs5-t3.gif

    因為在Flash中重新為用戶程序分配了中斷向量表,需要使用匯編指令對15個中斷向量表進行映射[6]。如對第一個中斷向量映射的代碼如下:

    #pragma vector=0

    __interrupt void intec_0(void)

    {

        asm(“br &0xFFC0”);

    }

2.3 BIOS引導程序固化

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

qrs5-t4.gif

2.4 用戶程序實現

    用戶程序的實現需要通過藍牙連接手機或電腦App,當有新版本的固件包時,App會將固件包通過藍牙下發到設備中。用戶程序在接收固件包的同時,將固件包保存在0xB000~0xFFBF范圍內的Flash空間中,本設計因為用戶程序代碼量少,將程序保存在0xB000地址后,如果用戶程序過大,可以考慮通過擴展片外Flash解決。用戶程序流程圖如圖5所示。

qrs5-t5.gif

    用戶程序需要放在0x6000~0xAFFF范圍內,因此同樣需要修改工程文件中的xcl文件,修改代碼段、常量的地址范圍為0x6000~0xAFFF。另外因為原中斷向量地址被BIOS程序所占據,需要修改xcl文件中的中斷向量地址為0xFFC0~0xFFDF,重啟向量地址為0xFFDE。要將應用程序作為固件更新包推送到設備終端,因此要選擇生成txt格式的16進制Hex文件。圖6所示是一簡單的文件生成的txt文件內容,傳輸過程中可以考慮加密及錯誤驗證。

qrs5-t6.gif

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

3 藍牙通信

3.1 藍牙技術簡介

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

3.2 藍牙模塊

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

qrs5-t7.gif

3.3 AT指令配置藍牙模塊

    在使用藍牙模塊前需要通過串口通信對藍牙模塊初始化,BLK-MD-HC-05支持AT指令,藍牙模塊默認的波特率為9 600,因此串口需要調整到9 600后方能與藍牙模塊進行數據交互。表1為藍牙模塊初始化需要用到的AT指令。

qrs5-b1.gif

4 結語

    本文通過模擬BIOS來實現固件更新,經過不同大小的固件包反復推送測試,可以順利地完成在線升級。升級過程安全可靠,具有較好的可行性,在應用中,將推送的升級包進行加密和解密過程,會更加完善。同時,本文將Flash進行分割,其中一部分作為BIOS和光驅空間,雖然犧牲了Flash空間,但通常情況下Flash空間都會有剩余,不會造成對可靠性的影響。

參考文獻

[1] 耿怡,安暉,李揚,等.可穿戴設備發展現狀和前景探析[J].電子科學與技術,2014(2):238-245.

[2] 鄧俊杰,劉紅.可穿戴智能設備的現狀及未來發展趨勢展望[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程序自升級的實現原理及過程[EB/OL][2008-12-08].http:www.microcontrol.cn.

[5] 張園,萬眾.MSP430單片機串口的程序升級方法[J].單片機與嵌入式系統應用,2011(10):23-24.

[6] 張群,楊絮.藍牙模塊串口通信的設計與實現[J].實驗室研究與探索,2012,319(3):79-82.

[7] 練杰,聶俊飛.基于MSP430單片機的多功能藍牙溫度檢測系統[J].儀表技術,2015(8):36-38. 



作者信息:

何國鋒,李月婷,劉宇紅

(貴州大學 大數據與信息工程學院,貴州 貴陽550025)

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
日韩视频一区二区在线观看| 亚洲欧美日韩成人| 日韩一二三区视频| 亚洲国产成人porn| 黄色成人免费网站| 国产亚洲欧洲| 国产免费一区二区三区香蕉精| 欧美午夜不卡视频| 欧美日韩亚洲一区在线观看| 欧美精品自拍| 欧美精品福利在线| 欧美福利专区| 欧美国产日韩a欧美在线观看| 免费h精品视频在线播放| 久久亚洲视频| 久久中文欧美| 免费亚洲电影在线观看| 噜噜噜久久亚洲精品国产品小说| 久久亚洲精品视频| 免费亚洲网站| 欧美日韩ab| 欧美日韩专区在线| 欧美三级资源在线| 国产精品豆花视频| 国产精品一二| 国产真实久久| 亚洲电影观看| 亚洲日本黄色| 一区二区三区四区精品| 亚洲制服av| 香蕉久久夜色| 久久高清一区| 亚洲高清视频的网址| 亚洲日本乱码在线观看| 夜夜嗨av一区二区三区网页| 亚洲午夜精品| 欧美中文在线免费| 老牛影视一区二区三区| 欧美激情综合网| 国产精品成人v| 国产欧美日韩视频一区二区| 韩国女主播一区| 亚洲国产专区校园欧美| 亚洲视频香蕉人妖| 欧美一级在线视频| 亚洲日本中文字幕区| 夜夜爽99久久国产综合精品女不卡| 亚洲在线网站| 久久久久久夜精品精品免费| 欧美国产大片| 国产精品素人视频| 尹人成人综合网| 99精品免费视频| 午夜一区不卡| 亚洲美女一区| 欧美在线观看你懂的| 欧美成人一区二区在线| 国产精品福利av| 很黄很黄激情成人| 99re国产精品| 久久国产精品久久久久久久久久| 亚洲激情婷婷| 午夜精品美女久久久久av福利| 久久久久成人精品免费播放动漫| 欧美—级a级欧美特级ar全黄| 国产精品尤物| 亚洲九九九在线观看| 欧美亚洲日本一区| 一本一本久久a久久精品综合麻豆| 欧美一区1区三区3区公司| 欧美成人乱码一区二区三区| 国产精品一区视频| 亚洲日产国产精品| 欧美一区二区视频97| 亚洲色图综合久久| 葵司免费一区二区三区四区五区| 国产精品草莓在线免费观看| 亚洲国产精品精华液2区45| 亚洲欧美日韩成人| 99re66热这里只有精品4 | 亚洲美女淫视频| 久久久久久久久久看片| 国产精品高潮呻吟视频 | 日韩香蕉视频| 亚洲国产欧美不卡在线观看| 欧美综合国产精品久久丁香| 欧美日韩成人一区二区| 黄色日韩精品| 午夜国产欧美理论在线播放| 亚洲欧美在线视频观看| 午夜精品福利在线观看| 免费看成人av| 国产视频一区在线观看| 99精品99久久久久久宅男| 亚洲福利视频三区| 亚洲欧美韩国| 欧美日韩黄色一区二区| 亚洲国产精品日韩| 欧美丝袜一区二区三区| 国内久久视频| 亚洲一区二区av电影| 9色精品在线| 久久尤物视频| 国产欧美短视频| 99视频精品| 99精品国产在热久久婷婷| 欧美mv日韩mv国产网站app| 亚洲一区二区精品在线观看| 亚洲国产综合视频在线观看| 欧美一区二区三区的| 亚洲午夜视频在线| 欧美精品一区三区| 亚洲第一区中文99精品| 亚洲电影毛片| 久久青草久久| 国产一区二区丝袜高跟鞋图片| 亚洲永久在线| 午夜精品一区二区三区四区| 国产精品h在线观看| 99精品热6080yy久久 | 久久激情综合| 国产欧美日韩综合一区在线播放| 亚洲一区三区电影在线观看| 午夜伦欧美伦电影理论片| 国产精品国色综合久久| 亚洲无限av看| 欧美一区影院| 国语自产精品视频在线看抢先版结局| 欧美亚洲视频在线观看| 久久久天天操| 在线成人国产| 亚洲精选大片| 欧美视频中文一区二区三区在线观看 | 一区在线播放| 亚洲精品国产视频| 欧美日本三区| 这里只有精品视频| 欧美一区成人| 国内精品视频666| 亚洲精品美女在线| 欧美日韩亚洲一区三区| 亚洲一区亚洲| 久久精品卡一| 在线日韩欧美视频| 99精品免费| 国产精品伊人日日| 亚洲高清资源| 欧美日韩国产成人在线免费| 这里只有精品在线播放| 久久精品91| **网站欧美大片在线观看| 夜夜爽av福利精品导航| 国产精品入口麻豆原神| 久久精品国产99| 欧美日本亚洲| 欧美亚洲日本国产| 欧美激情综合五月色丁香小说| 亚洲视频在线看| 久久久精品欧美丰满| 亚洲精品1234| 午夜在线成人av| 在线精品高清中文字幕| 亚洲一区www| 国产一区自拍视频| 99re6这里只有精品视频在线观看| 国产精品视频网站| 亚洲黄色尤物视频| 国产精品久久久久av免费| 久久精品一本| 国产精品播放| 亚洲人成高清| 国产精品视频成人| 亚洲精品久久久久久久久| 国产精品国产三级国产专区53| 久久激情五月激情| 欧美日韩在线电影| 久久国产精品72免费观看| 欧美日韩在线观看一区二区| 欧美制服第一页| 欧美色精品在线视频| 久久经典综合| 国产精品福利在线| 亚洲精品网站在线播放gif| 国产精品私房写真福利视频 | 久久久xxx| 亚洲精品黄色| 久久免费偷拍视频| 一本一本a久久| 免费在线亚洲| 欧美亚洲一区三区| 欧美性片在线观看| 亚洲国产精品高清久久久| 国产精品久久久久久久久搜平片| 亚洲精品国精品久久99热一| 国产婷婷色一区二区三区| 亚洲无线观看| 最新国产精品拍自在线播放| 久久免费观看视频| 亚洲一区久久久| 欧美日韩国产在线|