李淑娟 鄭昌濤
摘 要:嵌入式軟件在線升級是指不重啟計算機而完成的軟件升級工作,文中通過儀表的SD卡更新嵌入式軟件,不需要拆裝儀表,由于軟件本身不包含可擦寫的FLASH代碼,不影響燒錄過程,具備較高的可靠性和安全性。
關(guān)鍵詞:SD卡;嵌入式;在線升級;計算機;軟件;FLASH代碼
中圖分類號:TP274文獻標識碼:A文章編號:2095-1302(2019)03-0-02
0 引 言
隨著電子通信技術(shù)、計算機技術(shù)的迅速發(fā)展,嵌入式產(chǎn)品被廣泛應用到醫(yī)療、工控、辦公、商用等各個領(lǐng)域。新技術(shù)的不斷涌現(xiàn)及對系統(tǒng)性能規(guī)模的不斷提高,要求開發(fā)者為應對各種需求及時對智能儀器儀表系統(tǒng)進行維護或升級,以延長系統(tǒng)的使用周期。嵌入式軟件是智能儀器儀表的軟件主體,隨著智能儀表的多功能化,通過升級嵌入式軟件改進或增加功能變得普遍,升級嵌入式軟件就必須對存儲嵌入式軟件的FLASH進行擦除,再重新寫入新的軟件[1-3]。
1 嵌入式軟件的特點及關(guān)鍵技術(shù)
嵌入式軟件即嵌入在硬件中的操作系統(tǒng)和開發(fā)工具軟件,嵌入式軟件廣泛應用于國防、工控、家用、醫(yī)療等領(lǐng)域,如我們常見的移動電話、數(shù)碼相機、機頂盒等都是嵌入式軟件對傳統(tǒng)產(chǎn)品進行智能化改造的結(jié)果。嵌入式軟件可分為嵌入式操作系統(tǒng)、嵌入式支撐軟件及嵌入式應用軟件,其具有獨特的實用性、靈活的適用性等特點。嵌入式軟件與嵌入式硬件資源關(guān)系密切,涉及相應的關(guān)鍵技術(shù)也較多,主要包括數(shù)字電路、微控制器及傳感器燈硬件技術(shù),還包含Canvas繪圖功能、HTML5、移動定位等軟件技術(shù)??傮w而言,嵌入式軟件可與智能終端、傳感器、數(shù)據(jù)相結(jié)合,利用嵌入式軟件處理視頻、音頻、文字等相關(guān)內(nèi)容,為各領(lǐng)域的信息化服務提供支撐,實現(xiàn)其強大的數(shù)據(jù)共享等服務功能[4]。
2 嵌入式軟件在線升級技術(shù)的系統(tǒng)構(gòu)架
嵌入式軟件在線升級是指不重啟硬件設備而完成的軟件升級。嵌入式軟件在線升級是提高系統(tǒng)可靠性的有效途徑,有利于維持嵌入式系統(tǒng)平臺的穩(wěn)定性。本文研究的重點是提供一種無需拆裝儀表,不需要特殊工具和軟件,通過儀表的SD卡更新嵌入式軟件的在線嵌入式軟件升級技術(shù)。所述的微處理器采用STM32F429BIT6芯片,RAM使用IS42S16160C-7TLI的SDRAM存儲器,F(xiàn)LASH使用STM32F429BIT6集成的具有IAP功能的FLASH存儲器,SD控制器使用STM32F429BIT6集成的SD控制器模塊,SD卡接口為標準的SD卡連接器,SD卡為標準的SD卡[5-6]。嵌入式軟件在線升級技術(shù)的系統(tǒng)框圖如圖1所示。
該系統(tǒng)包括集成CPU,F(xiàn)LASH,SD卡控制器的微處理器,SDRAM存儲器,SD卡連接器及SD卡。微處理器與SDRAM通過并行總線連接,與SD卡通過SD卡連接器連接,并使用內(nèi)部的SD控制器進行通信。
在更新嵌入式軟件時,裝置上啟動更新,更新程序從SD卡中讀取引導程序和新程序文件到SDRAM中,CPU跳轉(zhuǎn)執(zhí)行SDRAM中的引導程序,引導程序包含了擦除FLASH和寫入FLASH的代碼,通過這種方式,擦除FLASH和寫入FLASH的代碼不會出現(xiàn)在正常運行的嵌入式軟件中,可避免因程序跑飛引起誤擦除或誤寫入的情況,然后引導程序會將新程序文件寫入到FLASH中,新程序文件寫入完成后,儀表將運行更新后的嵌入式軟件,嵌入式軟件更新完成[7-8]。
3 SD卡的系統(tǒng)軟件設計
3.1 SD卡的底層驅(qū)動程序設計
SD卡(Secure Digital Memory Card,SD)是一種基于半導體快閃記憶器的新記憶設備,由于在體積、重量、傳輸速率、穩(wěn)定性、價格等方面有眾多優(yōu)勢,因此被廣泛地用于便攜式裝置上,如多媒體播放器、數(shù)碼相機及AV器材等。SD卡技術(shù)是基于FLASH的存儲卡,通過接口界面與驅(qū)動器相連,不需要外接電源來維持記憶信息;同時也是一體化的固態(tài)介質(zhì),功能穩(wěn)定,不會造成機械性損壞[9]。
SD卡驅(qū)動程序的主要步驟為SD卡的初始化,向SD卡發(fā)送命令函數(shù),獲得響應的接口函數(shù)。SD卡的初始化是指用戶應用程序以文件的形式訪問和讀取SD卡上的數(shù)據(jù);SD卡本身只是一種數(shù)據(jù)介質(zhì),不包含文件系統(tǒng),因此要想以文件系統(tǒng)的形式訪問SD卡,必須先驅(qū)動SD卡,通過調(diào)用SD卡物理層的有關(guān)函數(shù)來實現(xiàn)驅(qū)動。驅(qū)動SD卡主要實現(xiàn)扇區(qū)的讀寫、獲取SD卡的相關(guān)配置信息等。SD卡的讀寫操作都是基于命令的,通過向SD卡發(fā)送相應的命令,獲得相應的接口函數(shù)控制SD卡。通過這些基本的底層驅(qū)動接口程序,配合相應的命令,可完成SD卡的驅(qū)動操作[10]。
3.2 SD卡的FAT32文件系統(tǒng)設計
為了對數(shù)據(jù)的寫入進行有效地管理,能夠在SD卡的PC端被訪問,在SD卡完成底層驅(qū)動后,可按照FAT32文件系統(tǒng)格式對數(shù)據(jù)進行操作,進而在SD卡上實現(xiàn)讀寫文件等操作。FAT32文件系統(tǒng)是目前微軟FAT類文件系統(tǒng)中的最高版本,采用了32位的文件分配表,可提高利用率,是現(xiàn)今Windows下常用的硬盤文件系統(tǒng)。FAT32文件系統(tǒng)設計包括以下步驟:程序的初始化、初始化內(nèi)存、載入SD卡、打開文件夾、讀寫文件等操作[11]。
3.3 軟件升級功能的實現(xiàn)
在線更新嵌入式軟件的流程如圖2所示。軟件部分首先通過SPI協(xié)議對SD卡進行初始化,完成SD卡的底層驅(qū)動程序設計,再根據(jù)FAT32文件系統(tǒng)組織形式對SD卡中的數(shù)據(jù)進行讀取或更新,將讀取到的數(shù)據(jù)通過IAP方式寫入FLASH中,新程序文件寫入完成后,用程序?qū)崿F(xiàn)跳轉(zhuǎn)到指定代碼段執(zhí)行,儀表將運行更新后的嵌入式軟件。
4 結(jié) 語
嵌入式系統(tǒng)是當前最有發(fā)展前景的IT應用領(lǐng)域之一,傳統(tǒng)的嵌入式系統(tǒng)軟件升級方式耗時長、成本高。本文的研究可妥善解決這一問題,同時還能解決一些問題:不需要拆裝儀表,避免二次損壞;嵌入式軟件本身不包含擦寫FLASH的代碼,保證FLASH不會被誤擦寫,具備較高的安全性;程序預先載入到RAM,即使升級過程中發(fā)生SD卡損壞、拔除等異常事件,也不會影響燒錄過程,具備較高的可靠性。
參 考 文 獻
[1]孔凡鵬,付友濤.基于NIOS Ⅱ的SD卡讀寫控制設計[J].電子設計工程,2013(13):115-118.
[2]肖敏,劉宇紅.SD卡硬件加密在工業(yè)MP3中的實現(xiàn)[J].通信技術(shù),2012(11):38-40.
[3]李敏,侯亞玲,劉穎. 基于SD卡的FAT32文件系統(tǒng)設計與實現(xiàn)[J].物聯(lián)網(wǎng)技術(shù),2017,7(7):102-104.
[4]劉赟.嵌入式軟件在線升級系統(tǒng)的設計與實現(xiàn)[J].計算機測量與控制,2015,23(4):1425-1427.
[5]劉海,朱紅.基于LPC2148的SD卡實現(xiàn)嵌入式系統(tǒng)升級設計[J]. 電子設計工程,2008,16(10):27-29.
[6]茅勝榮,肖家文,喬東海.用SD卡定制嵌入式Linux系統(tǒng)的最小系統(tǒng)[J]. 單片機與嵌入式系統(tǒng)應用,2017(10):28-32.
[7]田超. 基于ARM嵌入式系統(tǒng)上的SD卡驅(qū)動程序及文件系統(tǒng)的研究和開發(fā)[D].北京:北京郵電大學,2013.
[8]關(guān)峰,謝曉明.嵌入式設備軟件更新系統(tǒng)設計與實現(xiàn)[J].電子測試,2013(10x):11-12.
[9]劉振東.基于ARM的嵌入式軟硬件系統(tǒng)設計與實現(xiàn)[J].信息記錄材料,2018(4):105-106.
[10]楊明東.嵌入式軟件開發(fā)模式與軟件架構(gòu)探究[J].無線互聯(lián)科技,2018(7):59-60.
[11]陳駿勰.嵌入式系統(tǒng)軟件自動生成方法研究[J].軟件導刊,2017(12):40-43.