專家分析 藍牙引導(dǎo)加載程序運行全過程

2015-05-29 09:44 來源:電源網(wǎng) 作者:柚子

使用藍牙進行文件的配置引導(dǎo),是國內(nèi)工程師在無線條件下升級程序的主要方式。那么,這種方法是怎樣實現(xiàn)引導(dǎo)加載程序正常運行的呢?就讓我們跟隨專家老師的分析,來看一下無線條件下程序加載和升級的全過程。

引導(dǎo)加載是一個公國標準通信接口來升級嵌入式系統(tǒng)固件的過程。主機可以是具有引導(dǎo)加載程序主機應(yīng)用程序工具或其他微控制器的電腦。引導(dǎo)加載程序是通電或系統(tǒng)重置后要執(zhí)行的第一個代碼。

預(yù)編程到微控制器的引導(dǎo)裝載程序與主機通信,以獲得新的應(yīng)用程序圖像并將其寫入微控制器的內(nèi)部閃存。引導(dǎo)加載操作成功之后,微控制器開始執(zhí)行新的應(yīng)用固件。如果新的應(yīng)用程序未被主機接收,微控制器中的引導(dǎo)加載程序會執(zhí)行現(xiàn)有的應(yīng)用程序。

應(yīng)用程序固件圖像的格式取決于所使用的微控制器。例如,一個PSoC控制器使用cyacd(應(yīng)用程序代碼和數(shù)據(jù))作為可引導(dǎo)加載應(yīng)用程序的格式。通過使用標準的藍牙到串行適配器,在支持UART引導(dǎo)程序的目標上,可以使用無線方式執(zhí)行相同的無線加載操作。

基本的引導(dǎo)加載操作是相同的,只不過無線引導(dǎo)加載使用的是藍牙到串行適配器。然而,虛擬串行連接必須建立在主機和目標之間,通過藍牙無線發(fā)送應(yīng)用圖像。

SPP定義了如何設(shè)置虛擬串行端口,以及如何連接兩個擁有藍牙功能的設(shè)備。之后,它可以讓這些設(shè)備執(zhí)行RS-232(或類似的)串口線仿真。被該配置文件覆蓋的腳本用藍牙代替電纜,通過虛擬串口抽象化來處理舊有應(yīng)用程序。使用SPP,所連接的設(shè)備可以發(fā)送和接收數(shù)據(jù),就好像在它們之間有Rx和Tx線連接一樣。

基頻、LMP和L2CAP是OSI(開發(fā)互聯(lián)系統(tǒng))第1層和2個藍牙協(xié)議。RFCOMM是一個基于歐洲電信標準協(xié)會ETSI07.10規(guī)程的串行線性仿真協(xié)議。SDP是藍牙服務(wù)發(fā)現(xiàn)協(xié)議,它允許藍牙設(shè)備發(fā)現(xiàn)其他藍牙設(shè)備所提供的服務(wù)及其相關(guān)參數(shù)。

在使用SPP無線引導(dǎo)加載的情況下,應(yīng)用程序運行在兩方,一方是在PC上的主機自舉程序或者是在主機微控制器上的UART接口和目標系統(tǒng)上的UART引導(dǎo)加載程序。

標準藍牙到串行適配器,如Bluefruit EZ-Link模塊或JY-MCU模塊,可以與任何具有藍牙功能的電腦進行配對,并出現(xiàn)串行COM端口。在藍牙模塊與計算機配對后,在設(shè)備管理器列表中會出現(xiàn)兩個串行COM端口。這是因為藍牙串口是基于RFCOMM的,它與物理串口不同,在建立藍牙串行連接時,它既需要服務(wù)器,也需要客戶端。

在設(shè)備管理器中列出的兩個端口,一個是入站端口,也就是大家經(jīng)常說的服務(wù)器;一個是出站口,即客戶端。但是,一旦通過其中任何一個端口建立了連接,它就會變成雙向的。出站端口用于PC發(fā)起與藍牙模塊的連接時,而入站端口用于藍牙模塊啟動連接的時候。目標系統(tǒng)的無線引導(dǎo)加載必須使用出站端口,因為PC是主機,必須用來啟動與藍牙模塊的連接。

藍牙模塊必須連接到UART端口,運行UART引導(dǎo)加載程序。例如,在關(guān)掉USB串行部分,用無線方式引導(dǎo)加載PSoC4后,藍牙模塊必須連接到CY8CKIT-049的PSoC4原型工具包。

藍牙模塊的波特率應(yīng)該與目標系統(tǒng)引導(dǎo)加載程序的波特率相匹配。大多數(shù)藍牙模塊支持AT命令配置模塊的波特率,通常是使用USB-UART橋接器或是具有UART接口的微控制器。在PSoC4原型基板的USB串行設(shè)備部分,也可用AT命令配置藍牙模塊的波特率。之后,主機自舉程序工具就可以使用藍牙虛擬串口以無線方式進行引導(dǎo)加載操作。

如果引導(dǎo)加載程序是另一個微控制器,使用一個額外的藍牙到串口適配器連接到主機微控制器的UART接口,這樣仍然能夠?qū)崿F(xiàn)無線引導(dǎo)加載。對于不支持藍牙的PC,標準USB藍牙軟件保護器可以用來與藍牙模塊建立連接。

成功引導(dǎo)加載之后,目標系統(tǒng)將開始執(zhí)行新的應(yīng)用程序。如果另一個新的應(yīng)用程序需要被引導(dǎo)加載,那么目標系統(tǒng)必須重置,再一次啟動引導(dǎo)加載程序。這可以通過應(yīng)用程序調(diào)用引導(dǎo)加載程序來避免。被引導(dǎo)加載應(yīng)用程序可以響應(yīng)某些外部事件,例如按下按鈕或從主機接收到特定數(shù)據(jù)的命令,并重新開始引導(dǎo)加載操作,把新的應(yīng)用程序上載到目標系統(tǒng)。

結(jié)語

在使用藍牙無線引導(dǎo)加載程序的過程中,工程師需注意的一點事,在建立連接時要保障藍牙設(shè)備與服務(wù)器和客戶端兩個端口的同步接通,必要情況下可以使用USB藍牙保護器進行對接。

加載程序 藍牙協(xié)議 藍牙串口

相關(guān)閱讀

暫無數(shù)據(jù)

一周熱門