技術分享:引導加載器的設計考慮因素
發布時間: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”huiying,namejiuhuikaishiyindaojiazai。zaiyindaojiazaiqijian,zhujiduquxinyingyongwenjian,jiangqijiexiweishancunxierumingling,bingfasongminglingdaoyindaojiazaiqi。zaizhenggewenjianfasonghou,yindaojiazaiqihuiquerenwenjianwanzhengxing,bingfasongkongzhidaoxinyingyong。
采用藍牙到串行適配器的無線引導加載過程可在任何支持UART引導加載器的目標上進行,無需使用藍牙串行端口配置文件(SPP)duiyunxingzaimubiaoshebeishangdezhujihuoyindaojiazaiqigujianjinxingrenhexiugai。lanyapeizhiwenjianshizhidinglanyashebeiyibanxingweidelanyahexinguifanshangewaidexieyi,keyongyuzhichilanyashebeiyuqitajuyouxiangtongpeizhiwenjiandeshebeijinxingtongxin。
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,也可以是另一個微控製器。引(yin)導(dao)加(jia)載(zai)器(qi)是(shi)加(jia)電(dian)啟(qi)動(dong)或(huo)係(xi)統(tong)重(zhong)設(she)後(hou)將(jiang)要(yao)執(zhi)行(xing)的(de)第(di)一(yi)行(xing)代(dai)碼(ma)。引(yin)導(dao)加(jia)載(zai)器(qi)會(hui)預(yu)編(bian)程(cheng)到(dao)微(wei)控(kong)製(zhi)器(qi)中(zhong),與(yu)主(zhu)機(ji)通(tong)信(xin),並(bing)獲(huo)得(de)新(xin)的(de)應(ying)用(yong)鏡(jing)像(xiang),將(jiang)其(qi)寫(xie)入(ru)微(wei)控(kong)製(zhi)器(qi)的(de)內(nei)部(bu)閃(shan)存(cun)。在(zai)引(yin)導(dao)加(jia)載(zai)操(cao)作(zuo)成(cheng)功(gong)後(hou),微(wei)控(kong)製(zhi)器(qi)會(hui)開(kai)始(shi)執(zhi)行(xing)新(xin)的(de)應(ying)用(yong)固(gu)件(jian)。如(ru)果(guo)沒(mei)有(you)從(cong)主(zhu)機(ji)接(jie)收(shou)到(dao)新(xin)的(de)應(ying)用(yong),那(na)麼(me)引(yin)導(dao)加(jia)載(zai)器(qi)會(hui)執(zhi)行(xing)微(wei)控(kong)製(zhi)器(qi)中(zhong)現(xian)有(you)的(de)應(ying)用(yong)。
應用固件鏡像的格式取決於使用的微控製器。舉例來說,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,與物理串行端口不同,它在建立藍牙虛擬連接時同時需要服務器和客戶端。
設備管理器中列出的一個端口是入站端口(服務器),另一個則是出站端口(客戶端)。然而,用其中一個串行端口建立連接後,它就是雙向的。如果PC發fa起qi與yu藍lan牙ya模mo塊kuai的de連lian接jie,則ze使shi用yong出chu站zhan端duan口kou。如ru果guo藍lan牙ya模mo塊kuai發fa起qi連lian接jie,則ze使shi用yong入ru站zhan端duan口kou。對dui於yu目mu標biao係xi統tong的de無wu線xian引yin導dao加jia載zai而er言yan,必bi須xu使shi用yong出chu站zhan端duan口kou,因yin為weiPC是主機,它必須發起與藍牙模塊的連接。
藍牙模塊必須連接到運行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藍牙收發器可用來建立藍牙模塊連接。
成cheng功gong引yin導dao加jia載zai後hou,目mu標biao係xi統tong會hui開kai始shi執zhi行xing新xin的de應ying用yong。如ru果guo需xu要yao引yin導dao加jia載zai另ling一yi個ge新xin應ying用yong,那na麼me目mu標biao係xi統tong必bi須xu重zhong啟qi,以yi再zai次ci啟qi動dong引yin導dao加jia載zai器qi。如ru果guo應ying用yong調tiao用yong引yin導dao加jia載zai器qi,就jiu能neng避bi免mian這zhe一yi過guo程cheng。引yin導dao加jia載zai的de應ying用yong響xiang應ying於yu某mou種zhong外wai部bu事shi件jian,如ru按an下xia按an鍵jian或huo主zhu機ji發fa出chu的de具ju體ti數shu據ju命ming令ling,從cong而er再zai次ci啟qi動dong引yin導dao加jia載zai操cao作zuo,在zai目mu標biao係xi統tong上shang載zai入ru新xin的de應ying用yong。
此外,低功耗藍牙(BLE)模塊也可用於無線引導加載。與傳統藍牙不同的是,低功耗藍牙不使用SPP。不過,對於低功耗藍牙而言,所有配置文件和服務支持全部位於應用空間內。產品開發人員能在通用屬性配置文件(GATT)基礎上開發自己的串行端口服務,滿足BLE模塊需求,並將其用於無線引導加載。
[page]
引導加載器的設計考慮因素:
穩健可靠的引導加載器應當能夠檢測、報告並有效處理無線引導加載過程中出現的錯誤,如傳輸過程中的數據包丟失、數據損壞和閃存寫入錯誤等。通過存儲應用的校驗和或循環冗餘碼(CRC),可(ke)以(yi)執(zhi)行(xing)閃(shan)存(cun)錯(cuo)誤(wu)校(xiao)驗(yan)。在(zai)引(yin)導(dao)加(jia)載(zai)操(cao)作(zuo)開(kai)始(shi)後(hou),位(wei)會(hui)被(bei)清(qing)空(kong)。如(ru)果(guo)應(ying)用(yong)成(cheng)功(gong)下(xia)載(zai)並(bing)安(an)裝(zhuang),就(jiu)會(hui)更(geng)新(xin)。舉(ju)例(li)來(lai)說(shuo),如(ru)果(guo)在(zai)引(yin)導(dao)加(jia)載(zai)時(shi)斷(duan)電(dian),那(na)麼(me)在(zai)重(zhong)啟(qi)時(shi)引(yin)導(dao)加(jia)載(zai)器(qi)應(ying)檢(jian)測(ce)無(wu)效(xiao)的(de)校(xiao)驗(yan)位(wei),而(er)且(qie)不(bu)會(hui)讓(rang)部(bu)分(fen)加(jia)載(zai)的(de)應(ying)用(yong)獲(huo)得(de)控(kong)製(zhi)權(quan),而(er)是(shi)等(deng)待(dai)主(zhu)機(ji)啟(qi)動(dong)新(xin)的(de)引(yin)導(dao)加(jia)載(zai)操(cao)作(zuo)。
一(yi)旦(dan)新(xin)應(ying)用(yong)實(shi)現(xian)引(yin)導(dao)加(jia)載(zai),那(na)麼(me)引(yin)導(dao)加(jia)載(zai)器(qi)必(bi)須(xu)確(que)認(ren)引(yin)導(dao)加(jia)載(zai)鏡(jing)像(xiang)是(shi)否(fou)有(you)效(xiao),並(bing)讓(rang)新(xin)應(ying)用(yong)獲(huo)得(de)控(kong)製(zhi)權(quan)。引(yin)導(dao)加(jia)載(zai)器(qi)還(hai)應(ying)當(dang)能(neng)檢(jian)查(zha)閃(shan)存(cun)中(zhong)的(de)自(zi)身(shen)鏡(jing)像(xiang),判(pan)斷(duan)其(qi)是(shi)否(fou)有(you)效(xiao)。另(ling)一(yi)個(ge)重(zhong)要(yao)考(kao)慮(lv)因(yin)素(su)是(shi)避(bi)免(mian)應(ying)用(yong)覆(fu)蓋(gai)引(yin)導(dao)加(jia)載(zai)器(qi)本(ben)身(shen)。如(ru)果(guo)引(yin)導(dao)加(jia)載(zai)器(qi)損(sun)壞(huai)或(huo)被(bei)應(ying)用(yong)覆(fu)蓋(gai),那(na)麼(me)係(xi)統(tong)就(jiu)無(wu)法(fa)工(gong)作(zuo),需(xu)要(yao)對(dui)係(xi)統(tong)的(de)引(yin)導(dao)加(jia)載(zai)器(qi)進(jin)行(xing)重(zhong)新(xin)編(bian)程(cheng)。為(wei)了(le)避(bi)免(mian)這(zhe)種(zhong)情(qing)況(kuang),閃(shan)存(cun)的(de)引(yin)導(dao)加(jia)載(zai)器(qi)區(qu)域(yu)必(bi)須(xu)進(jin)行(xing)保(bao)護(hu),避(bi)免(mian)引(yin)導(dao)加(jia)載(zai)器(qi)代(dai)碼(ma)被(bei)意(yi)外(wai)覆(fu)蓋(gai)。
引(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)。
weilequebaomubiaoxitongwucuowu,womenkeyongduoyingyongyindaojiazaiqizaishancunzhongcunchuduogeyingyongjingxiang。ruguoyindaojiazaiqijiancedaomougeyingyongjingxiangbeisunhuai,nameyindaojiazaiqinengtiaodaolingyigeyingyongjingxiang。nenggoubaocundeyingyongshuliangqujueyumubiaoxitongdeshancundaxiao。
此外,引導加載器中還可包含簡單的調試功能,可用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過guoSPP無線發送具體數據來從應用中調用引導加載器。圖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
熱門搜索
接口IC
介質電容
介質諧振器
金屬膜電阻
晶體濾波器
晶體諧振器
晶體振蕩器
晶閘管
精密電阻
精密工具
景佑能源
聚合物電容
君耀電子
開發工具
開關
開關電源
開關電源電路
開關二極管
開關三極管
科通
可變電容
可調電感
可控矽
空心線圈
控製變壓器
控製模塊
藍牙
藍牙4.0
藍牙模塊
浪湧保護器



