技術分享:引導加載器的設計考慮因素
發布時間:2015-06-24 責任編輯:sherry
【導讀】引導加載器支持產品固件的現場更新。引導加載器可使用UART、I2C、SPI或USB等deng常chang見jian通tong信xin接jie口kou更geng新xin固gu件jian,而er引yin導dao加jia載zai器qi主zhu機ji和he目mu標biao之zhi間jian通tong常chang采cai用yong有you線xian連lian接jie方fang式shi。在zai藍lan牙ya到dao串chuan行xing適shi配pei器qi的de幫bang助zhu下xia,這zhe個ge引yin導dao加jia載zai操cao作zuo能neng通tong過guo無wu線xian方fang式shi實shi現xian。如ru果guo目mu標biao所suo處chu的de位wei置zhi難nan以yi物wu理li地di訪fang問wen,或huo者zhe目mu標biao位wei於yu密mi封feng設she備bei內nei,那na麼me這zhe種zhong無wu線xian連lian接jie功gong能neng就jiu會hui特te別bie有you用yong。
使用引導加載器的第一步就是配置產品,讓引導加載器(而不是應用)去執行。一旦引導加載器運行,主機就會通過通信通道發送“start bootload”命令。如果引導加載器發出“OK”回(hui)應(ying),那(na)麼(me)就(jiu)會(hui)開(kai)始(shi)引(yin)導(dao)加(jia)載(zai)。在(zai)引(yin)導(dao)加(jia)載(zai)期(qi)間(jian),主(zhu)機(ji)讀(du)取(qu)新(xin)應(ying)用(yong)文(wen)件(jian),將(jiang)其(qi)解(jie)析(xi)為(wei)閃(shan)存(cun)寫(xie)入(ru)命(ming)令(ling),並(bing)發(fa)送(song)命(ming)令(ling)到(dao)引(yin)導(dao)加(jia)載(zai)器(qi)。在(zai)整(zheng)個(ge)文(wen)件(jian)發(fa)送(song)後(hou),引(yin)導(dao)加(jia)載(zai)器(qi)會(hui)確(que)認(ren)文(wen)件(jian)完(wan)整(zheng)性(xing),並(bing)發(fa)送(song)控(kong)製(zhi)到(dao)新(xin)應(ying)用(yong)。
采用藍牙到串行適配器的無線引導加載過程可在任何支持UART引導加載器的目標上進行,無需使用藍牙串行端口配置文件(SPP)對dui運yun行xing在zai目mu標biao設she備bei上shang的de主zhu機ji或huo引yin導dao加jia載zai器qi固gu件jian進jin行xing任ren何he修xiu改gai。藍lan牙ya配pei置zhi文wen件jian是shi指zhi定ding藍lan牙ya設she備bei一yi般ban行xing為wei的de藍lan牙ya核he心xin規gui範fan上shang額e外wai的de協xie議yi,可ke用yong於yu支zhi持chi藍lan牙ya設she備bei與yu其qi它ta具ju有you相xiang同tong配pei置zhi文wen件jian的de設she備bei進jin行xing通tong信xin。
SPP基於仿真RS-232串行端口的射頻通信(RFCOMM)協議,它定義了如何設置兩個設備之間的虛擬串行端口,如何利用藍牙互聯。支持藍牙功能的PC能neng連lian接jie到dao目mu標biao側ce的de藍lan牙ya串chuan行xing適shi配pei器qi,並bing進jin行xing引yin導dao加jia載zai操cao作zuo。引yin導dao加jia載zai命ming令ling可ke通tong過guo發fa送song串chuan行xing命ming令ling到dao當dang前qian運yun行xing在zai目mu標biao器qi件jian上shang的de應ying用yong而er實shi現xian無wu線xian觸chu發fa。
引導加載器
引導加載過程會通過標準通信接口更新嵌入式係統的固件。主機可以是帶引導加載器主機應用工具的PC,也可以是另一個微控製器。yindaojiazaiqishijiadianqidonghuoxitongzhongshehoujiangyaozhixingdediyixingdaima。yindaojiazaiqihuiyubianchengdaoweikongzhiqizhong,yuzhujitongxin,binghuodexindeyingyongjingxiang,jiangqixieruweikongzhiqideneibushancun。zaiyindaojiazaicaozuochenggonghou,weikongzhiqihuikaishizhixingxindeyingyonggujian。ruguomeiyoucongzhujijieshoudaoxindeyingyong,nameyindaojiazaiqihuizhixingweikongzhiqizhongxianyoudeyingyong。
應用固件鏡像的格式取決於使用的微控製器。舉例來說,PSoC控製器使用.cyacd(應用代碼和數據)作為引導加載應用的格式。如果采用標準的藍牙到串行適配器,那麼我們可在支持UART引導加載器的目標器件上無線執行同樣的引導加載操作。
zailiyonglanyadaochuanxingshipeiqijinxingwuxianyindaojiazaideqingkuangxia,jibendeyindaojiazaicaozuobaochibubian。buguo,womenxuyaozaizhujihemubiaoqijianzhijianjianlixunichuanxinglianjie,tongguolanyawuxianfasongyingyongjingxiang。SPP定義了如何設置虛擬串行端口和兩個藍牙設備的互聯,隨後允許設備進行RS232(或類似的)串行線纜仿真。這種配置文件涵蓋的情境能支持傳統應用,這裏藍牙作為線纜連接的替代,使用虛擬串行端口抽象。利用SPP,互聯設備發送和接收數據就像互聯的RX和TX線路一樣。
圖1顯示了SPP中使用的協議和實體。基帶、LMP和L2CAP是OSI 中的第1層和第2層藍牙協議。RFCOMM是藍牙版GSM TS 07.10標準,GSM手機用它在一個物理串行線纜上多路複用多個流,為串行端口仿真提供通信協議。SDP是藍牙服務發現協議,支持藍牙設備發現其它藍牙設備提供的服務和相關參數。

圖1:配置文件協議棧包括SPP使用的不同協議和實體。
就使用SPP的無線引導加載而言,兩側運行的應用為PC上的引導加載器主機應用或主機微控製器上的UART接口以及目標係統上的UART引導加載器。
Bluefruit EZ-Link模塊或JY-MCU模塊等標準藍牙到串行適配器能配對具備藍牙功能的計算機,並顯示為串行COM端口。將藍牙模塊和PC配對後,設備管理器中會列出兩個串行COM端口。之所以會出現這種情況,是因為藍牙串行端口是基於RFCOMM,與物理串行端口不同,它在建立藍牙虛擬連接時同時需要服務器和客戶端。
設備管理器中列出的一個端口是入站端口(服務器),另一個則是出站端口(客戶端)。然而,用其中一個串行端口建立連接後,它就是雙向的。如果PCfaqiyulanyamokuaidelianjie,zeshiyongchuzhanduankou。ruguolanyamokuaifaqilianjie,zeshiyongruzhanduankou。duiyumubiaoxitongdewuxianyindaojiazaieryan,bixushiyongchuzhanduankou,yinweiPC是主機,它必須發起與藍牙模塊的連接。
藍牙模塊必須連接到運行UART引導加載器的目標係統上的UART接口。舉例來說,在關閉電路板的USB到串行部分以無線引導加載PSoC 4的情況下,藍牙模塊可連接到CY8CKIT-049 PSoC 4原型設計套件。PSoC 4原型設計板易於使用,成本較低,能在主板兼容報頭上提供PSoC 4微控製器的所有I/O引腳,從而支持快速原型設計,而且配套提供預編程的UART引導加載器。
藍牙模塊的波特率應匹配目標係統上引導加載器配置的波特率。大多數藍牙模塊支持AT命令來配置模塊的波特率,這需要用到USB-UART橋接器或配備UART接口的微控製器。PSoC 4原型設計板的USB-串行器件部分也可利用AT命令配置藍牙模塊的波特率。引導加載器主機應用工具則用藍牙虛擬串行端口來無線執行引導加載操作。圖2給出了主機和目標係統的係統級方框圖。

圖2:係統級方框圖顯示主機和目標係統的不同組件。
如果引導加載器主機是另一個微控製器,那麼無線引導加載程序仍會在其它藍牙到串行適配器(連接到主機微控製器UART接口)的幫助下進行。對於不支持藍牙的PC而言,標準的USB藍牙收發器可用來建立藍牙模塊連接。
chenggongyindaojiazaihou,mubiaoxitonghuikaishizhixingxindeyingyong。ruguoxuyaoyindaojiazailingyigexinyingyong,namemubiaoxitongbixuzhongqi,yizaiciqidongyindaojiazaiqi。ruguoyingyongtiaoyongyindaojiazaiqi,jiunengbimianzheyiguocheng。yindaojiazaideyingyongxiangyingyumouzhongwaibushijian,ruanxiaanjianhuozhujifachudejutishujumingling,congerzaiciqidongyindaojiazaicaozuo,zaimubiaoxitongshangzairuxindeyingyong。
此外,低功耗藍牙(BLE)模塊也可用於無線引導加載。與傳統藍牙不同的是,低功耗藍牙不使用SPP。不過,對於低功耗藍牙而言,所有配置文件和服務支持全部位於應用空間內。產品開發人員能在通用屬性配置文件(GATT)基礎上開發自己的串行端口服務,滿足BLE模塊需求,並將其用於無線引導加載。
[page]
引導加載器的設計考慮因素:
穩健可靠的引導加載器應當能夠檢測、報告並有效處理無線引導加載過程中出現的錯誤,如傳輸過程中的數據包丟失、數據損壞和閃存寫入錯誤等。通過存儲應用的校驗和或循環冗餘碼(CRC),keyizhixingshancuncuowuxiaoyan。zaiyindaojiazaicaozuokaishihou,weihuibeiqingkong。ruguoyingyongchenggongxiazaibinganzhuang,jiuhuigengxin。julilaishuo,ruguozaiyindaojiazaishiduandian,namezaizhongqishiyindaojiazaiqiyingjiancewuxiaodexiaoyanwei,erqiebuhuirangbufenjiazaideyingyonghuodekongzhiquan,ershidengdaizhujiqidongxindeyindaojiazaicaozuo。
yidanxinyingyongshixianyindaojiazai,nameyindaojiazaiqibixuquerenyindaojiazaijingxiangshifouyouxiao,bingrangxinyingyonghuodekongzhiquan。yindaojiazaiqihaiyingdangnengjianzhashancunzhongdezishenjingxiang,panduanqishifouyouxiao。lingyigezhongyaokaolvyinsushibimianyingyongfugaiyindaojiazaiqibenshen。ruguoyindaojiazaiqisunhuaihuobeiyingyongfugai,namexitongjiuwufagongzuo,xuyaoduixitongdeyindaojiazaiqijinxingzhongxinbiancheng。weilebimianzhezhongqingkuang,shancundeyindaojiazaiqiquyubixujinxingbaohu,bimianyindaojiazaiqidaimabeiyiwaifugai。
引yin導dao加jia載zai器qi設she計ji的de另ling一yi個ge重zhong要yao考kao慮lv因yin素su就jiu是shi何he時shi開kai始shi與yu主zhu機ji通tong信xin。在zai確que認ren應ying用yong有you效xiao後hou,引yin導dao加jia載zai器qi可ke等deng待dai一yi定ding時shi間jian讓rang主zhu機ji開kai始shi新xin的de引yin導dao加jia載zai操cao作zuo。如ru果guo等deng待dai時shi間jian過guo短duan,主zhu機ji可ke能neng還hai無wu法fa可ke靠kao啟qi動dong通tong信xin。如ru果guo等deng待dai時shi間jian過guo長chang,產chan品pin的de整zheng體ti啟qi動dong時shi間jian就jiu會hui太tai長chang。與yu引yin導dao加jia載zai新xin應ying用yong時shi避bi免mian設she備bei重zhong啟qi的de解jie決jue方fang案an類lei似si,這zhe個ge時shi序xu問wen題ti可ke通tong過guo讓rang應ying用yong調tiao用yong引yin導dao加jia載zai器qi進jin行xing解jie決jue。
為(wei)了(le)確(que)保(bao)目(mu)標(biao)係(xi)統(tong)無(wu)錯(cuo)誤(wu),我(wo)們(men)可(ke)用(yong)多(duo)應(ying)用(yong)引(yin)導(dao)加(jia)載(zai)器(qi)在(zai)閃(shan)存(cun)中(zhong)存(cun)儲(chu)多(duo)個(ge)應(ying)用(yong)鏡(jing)像(xiang)。如(ru)果(guo)引(yin)導(dao)加(jia)載(zai)器(qi)檢(jian)測(ce)到(dao)某(mou)個(ge)應(ying)用(yong)鏡(jing)像(xiang)被(bei)損(sun)壞(huai),那(na)麼(me)引(yin)導(dao)加(jia)載(zai)器(qi)能(neng)跳(tiao)到(dao)另(ling)一(yi)個(ge)應(ying)用(yong)鏡(jing)像(xiang)。能(neng)夠(gou)保(bao)存(cun)的(de)應(ying)用(yong)數(shu)量(liang)取(qu)決(jue)於(yu)目(mu)標(biao)係(xi)統(tong)的(de)閃(shan)存(cun)大(da)小(xiao)。
此外,引導加載器中還可包含簡單的調試功能,可用UART接口和Tera Term等終端仿真程序實現,從而在PC上顯示調試信息。調試信息還能用相同的藍牙到串行調試器無線發送。
定製引導加載器主機工具:
不同微控製器可直接使用標準的引導加載器主機工具應用,無需對SPP的(de)無(wu)線(xian)引(yin)導(dao)加(jia)載(zai)進(jin)行(xing)任(ren)何(he)修(xiu)改(gai)。然(ran)而(er),引(yin)導(dao)加(jia)載(zai)器(qi)主(zhu)機(ji)工(gong)具(ju)可(ke)以(yi)進(jin)行(xing)定(ding)製(zhi),從(cong)而(er)更(geng)好(hao)地(di)滿(man)足(zu)無(wu)線(xian)引(yin)導(dao)加(jia)載(zai)需(xu)求(qiu),並(bing)嵌(qian)入(ru)終(zhong)端(duan)仿(fang)真(zhen)器(qi)窗(chuang)口(kou),以(yi)查(zha)看(kan)調(tiao)試(shi)信(xin)息(xi),甚(shen)至(zhi)能(neng)通(tong)過(guo)SPP無線發送具體數據來從應用中調用引導加載器。圖3xianshilejuyouqianrushizhongduanfangzhenqichuangkoudedingzhiyindaojiazaiqizhujigongjuyingyongshili。weichongfenliyongzhongduanfangzhenqi,yindaojiazaidaomubiaoxitongderenhexinyingyongdoubixubaohanUART接口,並能在主機向目標係統發送具體數據時調用引導加載器。UART接口可在引導加載器和應用之間共享。

圖3:具有嵌入式終端仿真器窗口的定製引導加載器主機工具應用實例。
如果采用稍微複雜的多應用引導加載器設計,我們也能利用SPP從主機向目標係統無線發送不同消息,從而在閃存中切換存儲的多個應用,這就能節約新應用引導加載所需的時間。
特別推薦
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
技術文章更多>>
- 大聯大世平集團首度亮相北京國際汽車展 攜手全球芯片夥伴打造智能車整合應用新典範
- 2026北京車展即將啟幕,高通攜手汽車生態“朋友圈”推動智能化體驗再升級
- 邊緣重構智慧城市:FPGA SoM 如何破解視頻係統 “重而慢”
- 如何使用工業級串行數字輸入來設計具有並行接口的數字輸入模塊
- 意法半導體將舉辦投資者會議探討低地球軌道(LEO)發展機遇
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索



