杜俏俏+趙悅+宋樂+王建



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