杜俏俏+趙悅+宋樂+王建
摘 要:傳統(tǒng)的遠(yuǎn)程終端嵌入式系統(tǒng)軟件升級可操作性差、穩(wěn)定性低,無法保證數(shù)據(jù)傳輸過程中的完整性。 針對這些問題,使用智能手機(jī)作為操作平臺,實(shí)現(xiàn)了由MSP430系列芯片組成的儀表軟件升級解決方案。采用藍(lán)牙方式將智能手機(jī)與IC卡讀寫射頻器連接,IC卡讀寫射頻器將需要升級的代碼信息通過無線射頻技術(shù)傳給MSP430系列芯片,通過ISP技術(shù)完成MSP430系列芯片嵌入式軟件的程序升級。通過遠(yuǎn)程天然氣儀表測試及應(yīng)用,證明該軟件升級方案能進(jìn)行MSP430系列芯片嵌入式軟件的穩(wěn)定升級。
關(guān)鍵詞:智能手機(jī);藍(lán)牙通信;無線射頻;MSP430系列芯片
DOIDOI:10.11907/rjdk.171385
中圖分類號:TP319
文獻(xiàn)標(biāo)識碼:A 文章編號文章編號:1672-7800(2017)008-0171-03
0 引言
嵌入式終端設(shè)備在工業(yè)領(lǐng)域應(yīng)用廣泛,嵌入式應(yīng)用軟件也越來越復(fù)雜。當(dāng)程序出現(xiàn)缺陷,或者用戶提出新的需求,則需要對嵌入式應(yīng)用程序進(jìn)行修復(fù)、升級[1-2];生產(chǎn)廠商在開發(fā)維護(hù)終端設(shè)備過程中,需要對設(shè)備中存在的缺陷進(jìn)行修復(fù)及優(yōu)化,以提升產(chǎn)品性能。伴隨著嵌入式技術(shù)的發(fā)展,嵌入式應(yīng)用軟件的升級方法也在不斷更新,實(shí)現(xiàn)技術(shù)和手段都發(fā)生了很大變化。利用自定義升級固件進(jìn)行程序升級的方式比較靈活且用途廣泛,本文在此基礎(chǔ)上設(shè)計(jì)了一套符合MSP430系列芯片的嵌入式軟件升級方法。
1 系統(tǒng)框架
基于智能手機(jī)升級MSP430芯片軟件系統(tǒng)結(jié)構(gòu)如圖1所示。采用智能手機(jī)結(jié)合研發(fā)的APP,通過藍(lán)牙將升級信息傳給IC卡讀寫射器,IC卡讀寫射器再將其傳給終端設(shè)備,完成對終端設(shè)備應(yīng)用程序的升級。該系統(tǒng)由智能手機(jī)APP、IC卡讀寫射器及儀表終端3大模塊組成。
運(yùn)行在智能手機(jī)上的APP負(fù)責(zé)讀寫IC卡上的數(shù)據(jù)信息,如表壓、差壓、流量等,這些數(shù)據(jù)都和天然氣管理系統(tǒng)儀表相關(guān)。該APP將儀表升級的代碼信息下載并通過手機(jī)藍(lán)牙通信模式傳給IC卡讀寫射頻器,IC卡讀寫射頻器判斷為傳輸數(shù)據(jù)后通過無線射頻傳給終端儀表,成功與否反饋給智能手機(jī)APP。
IC卡讀寫射頻器是專為本研究而設(shè)計(jì)的一款產(chǎn)品。IC卡讀寫射頻器,顧名思義,它既可以在智能手機(jī)APP上顯示IC卡對應(yīng)的儀表數(shù)據(jù),也可在無線通信過程中起到連接智能手機(jī)和終端儀表的作用。
天然氣遠(yuǎn)程銷售網(wǎng)主要由集中器、路由器、控制器和基表組成,基表或稱流量計(jì)用于最終用戶用氣的計(jì)量,它和控制器采用485方式進(jìn)行通訊,其它產(chǎn)品采用無線射頻方式進(jìn)行通訊。其中集中器還帶有GPRS模塊,和天然氣銷售中心進(jìn)行遠(yuǎn)程通訊,接收銷售中心發(fā)布的購氣、調(diào)價(jià)等指令,或上傳用戶的有關(guān)消費(fèi)數(shù)據(jù)和故障信息。無論是集中器、路由器還是控制器均帶有無線射頻模塊。集中器、路由器、控制器構(gòu)成儀表終端設(shè)備。
2 關(guān)鍵技術(shù)
軟件升級系統(tǒng)由智能手機(jī)APP、藍(lán)牙通訊模塊、MSP430 CPU、無線射頻和集中器等模塊組成。藍(lán)牙模塊基于智能手機(jī)APP與MSP430 CPU連接起來,負(fù)責(zé)APP與嵌入式設(shè)備間的通信;RF模塊將MSP430 CPU與嵌入式終端設(shè)備連接起來,負(fù)責(zé)CPU與終端設(shè)備間的信息傳遞。其中藍(lán)牙、射頻通信模塊和軟件升級模塊是保證系統(tǒng)正常工作的關(guān)鍵部分,其安全可靠的通信協(xié)議以及高效的升級策略保障了軟件升級的安全。
2.1 系統(tǒng)通信協(xié)議
根據(jù)各模塊用途及與CPU的通信方式,將模塊間的通信協(xié)議分為外部通信協(xié)議和內(nèi)部通信協(xié)議,其結(jié)構(gòu)如圖2所示。外部通信協(xié)議即智能手機(jī)APP與CPU的藍(lán)牙通信協(xié)議,內(nèi)部通信協(xié)議即CPU和集中器或路由器等設(shè)備的通信協(xié)議。
外部通信協(xié)議是基于智能手機(jī)APP通過手機(jī)藍(lán)牙與MSP430系列芯片外圍藍(lán)牙設(shè)備進(jìn)行數(shù)據(jù)交換的協(xié)議格式,數(shù)據(jù)包格式如圖3所示,主要由幀頭、類型、長度、標(biāo)識、序列號、表號、數(shù)據(jù)和CRC校驗(yàn)數(shù)據(jù)組成。幀頭用來區(qū)分此數(shù)據(jù)包是外部通信協(xié)議包,類型字段表示此數(shù)據(jù)包是讀數(shù)據(jù)還是寫數(shù)據(jù),表號用來表示此數(shù)據(jù)包發(fā)送給哪個(gè)硬件設(shè)備,CRC校驗(yàn)數(shù)據(jù)則根據(jù)選擇的CRC-32算法計(jì)算此數(shù)據(jù)包的校驗(yàn)和,用來檢測和校驗(yàn)數(shù)據(jù)在傳輸過程中是否錯(cuò)誤。
內(nèi)部通信協(xié)議用于MSP430芯片與嵌入式設(shè)備其它模塊(如集中器)通過無線射頻進(jìn)行通信的協(xié)議格式,其數(shù)據(jù)包格式如圖4所示,與外部通信協(xié)議格式相似,由幀頭、表號、類型、長度、標(biāo)識、序列號、數(shù)據(jù)和校驗(yàn)和組成。
在嵌入式軟件升級過程中,智能手機(jī)APP通過藍(lán)牙設(shè)備,將升級文件按照外部通信協(xié)議發(fā)送給MSP430 CPU,然后CPU通過無線射頻設(shè)備轉(zhuǎn)發(fā)至需要升級的設(shè)備,在此過程中CPU需要對外部通信協(xié)議與內(nèi)部通信協(xié)議相互轉(zhuǎn)換。外部協(xié)議轉(zhuǎn)內(nèi)部協(xié)議方法:首先保存表號,然后將類型、長度、標(biāo)識和序列號后移7位,然后在包頭附加內(nèi)部協(xié)議幀頭和表號,最后重新計(jì)算校驗(yàn)和。內(nèi)部協(xié)議轉(zhuǎn)外部協(xié)議方法與之相反。
校驗(yàn)碼是數(shù)據(jù)包檢驗(yàn)和[3],其作用是進(jìn)行數(shù)據(jù)的完整性校驗(yàn),目前應(yīng)用最為廣泛的數(shù)據(jù)完整性校驗(yàn)算法是CRC算法,而生成多項(xiàng)式的選擇是CRC算法的重要部分,不同的多項(xiàng)式有不同的錯(cuò)誤檢測能力與總體碰撞概率,而多項(xiàng)式最重要的屬性是它的長度。根據(jù)公式g(x)=p(x)(1+x)可以得出一個(gè)CRC多項(xiàng)式與最大錯(cuò)誤檢測位數(shù):
Bitmax length=2r-1-1(1)
式(1)中,r為CRC校驗(yàn)碼的監(jiān)督碼。根據(jù)(1)可以得出每種多項(xiàng)式對應(yīng)的最大不沖突數(shù)據(jù)字節(jié)數(shù),如表1所示。
根據(jù)表1可知,當(dāng)升級代碼大于16KB時(shí),為保證錯(cuò)誤檢查能力與總體碰撞概率最優(yōu),將CRC-32算法作為效驗(yàn)新升級代碼的完整性校驗(yàn)算法。
2.2 升級文件格式
運(yùn)行在MSP430系列芯片的嵌入式軟件是使用IAR軟件編譯生成的HEX文件。在升級應(yīng)用程序之前,需要對HEX文件進(jìn)行解析,解析流程如下:①從HEX文件中讀取一行二進(jìn)制數(shù)據(jù),如果有數(shù)據(jù)則制定步驟②,否則跳到步驟④;②過濾掉一些非法的無用字符;然后判斷首字符是否是q,如果不是則執(zhí)行步驟③,否則此行后續(xù)的字符串代表此軟件版本,保存版本號并跳回步驟①繼續(xù)執(zhí)行;③判斷首字符是不是@符,如果是,則后續(xù)字符串代表本分段的地址字符串,否則后續(xù)字符串標(biāo)識此行后續(xù)字符串代表本分段對應(yīng)的代碼字符串。保存對應(yīng)的值并跳回步驟①繼續(xù)執(zhí)行;④解析完成,如圖5所示。endprint
3 軟件升級流程
本文設(shè)計(jì)的系統(tǒng)主要針對TI公司低功耗單片機(jī)MSP430系列芯片,其片上主存儲類型為Flash,在正常工作電壓下,程序可對Flash進(jìn)行擦寫操作,特別適合程序升級。物聯(lián)網(wǎng)傳感終端系統(tǒng)中將Flash分為引導(dǎo)程序區(qū)、信息存儲區(qū)、應(yīng)用程序區(qū)3個(gè)區(qū)域,如圖6所示。
嵌入式程序升級流程如圖7所示,設(shè)備遠(yuǎn)程在線升級步驟:①當(dāng)終端節(jié)點(diǎn)需要升級[4]時(shí),遠(yuǎn)端控制中心向該終端設(shè)備發(fā)送固定的協(xié)議報(bào)文,終端通過對協(xié)議中的軟件版本號與I2C上正在運(yùn)行的軟件版本號比較,判斷是否需要進(jìn)行升級;②終端節(jié)點(diǎn)從遠(yuǎn)程控制中心請求程序包,同時(shí)在傳輸過程中采用CRC校驗(yàn)技術(shù),保證數(shù)據(jù)傳輸?shù)耐暾?;③終端節(jié)點(diǎn)確定收到了完整、正確的升級程序包后,開始執(zhí)行軟件升級操作并保存相關(guān)參數(shù)。若軟件升級成功,終端節(jié)點(diǎn)會(huì)將新的軟件版本和參數(shù)返回給控制中心,如果升級失敗,則用保存在I2C中的原代碼覆蓋Flash中的代碼并通知控制中心升級失敗[5]。
4 結(jié)語
本文設(shè)計(jì)的基于智能手機(jī)升級MSP430芯片的軟件系統(tǒng)[6],實(shí)現(xiàn)了對MSP430系列芯片所組成的儀表軟件的升級,確保數(shù)據(jù)在傳輸過程的完整性及升級過程的穩(wěn)定性,提升了設(shè)備的適用性、安全性與可靠性?;谥悄苁謾C(jī)工具與藍(lán)牙通信方式,降低了設(shè)備維護(hù)成本,提高了工作效率,滿足了預(yù)期功能需求。
參考文獻(xiàn):
[1] 彭井花,蔡聲鎮(zhèn),吳允平,等.基于GPRS的嵌入式系統(tǒng)軟件的遠(yuǎn)程在線升級[J].現(xiàn)代電子技術(shù),2009,32(4):47-49.
[2] 楊樞,賈小濤,葉蔚.嵌入式系統(tǒng)軟件遠(yuǎn)程在線升級的研究與實(shí)現(xiàn)[J].微型電腦應(yīng)用,2008,24(11):37-39.
[3] 李剛,周毅波,卿柏元.智能電力設(shè)備在線遠(yuǎn)程軟件升級新方法[J].自動(dòng)化與儀表,2010,25(2):50-53.
[4] 樓亮亮,金彥亮,鮑星合,等.物聯(lián)網(wǎng)設(shè)備無線固件升級技術(shù)的研究[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2015,15(6):7-10.
[5] 李權(quán),鄢萍,賀曉輝.高可靠性的嵌入式軟件現(xiàn)場更新方法[J].計(jì)算機(jī)應(yīng)用,2010,30(8):2228-2231.
[6] 劉贇,左小川.嵌入式軟件在線升級系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)測量與控制,2015,23(4):1425-1427.endprint