本發(fā)明實施例涉及嵌入式設備技術,尤其涉及一種嵌入式設備的固件升級方法、裝置及驗鈔器。
背景技術:
在驗鈔器等嵌入式設備的生命周期中,均會采用固件升級的方式對嵌入式設備進行更新和維護。
固件升級過程通??梢允菍⒛繕税暹B接到主機,通過JTAG(Joint Test Action Group,聯(lián)合測試工作組)接口、串口或網(wǎng)口來下載固件文件,以完成升級過程。由于驗鈔器包括多個固件,對所述多個固件進行升級操作時,需要逐個下載固件的升級文件。例如,驗鈔器升級時,通過網(wǎng)口下載5個固件對應的升級文件到驗鈔器。具體下載過程可以是:檢測網(wǎng)口是否打開;在網(wǎng)口打開后,檢測與服務器的網(wǎng)絡通信是否正常;在網(wǎng)絡通信正常時,下載升級文件。在下載完成當前的升級文件后,按照上述過程繼續(xù)下載下一個固件對應的升級文件,直至5個升級文件均下載完成。
由上述過程可知,在升級過程嵌入式設備重復執(zhí)行多次下載操作,從而增加了因意外導致下載失敗的風險。在實際操作過程中經(jīng)常出現(xiàn)固件下載不完全或固件文件被破壞的現(xiàn)象。并且,驗鈔器內(nèi)部需要同時管理多個固件程序,使得驗鈔器的固件管理邏輯復雜且容易出錯。
技術實現(xiàn)要素:
本發(fā)明提供一種嵌入式設備的固件升級方法、裝置及驗鈔器,以減小固件文件被破壞的風險,簡化固件管理的復雜度,降低了驗鈔器在固件管理方面耗費的效率。
第一方面,本發(fā)明實施例提供了一種嵌入式設備的固件升級方法,包括:
獲取包括至少兩個固件文件的固件升級包,存儲至設定固件升級包存儲區(qū);
解壓縮所述固件升級包得到所述固件文件,將所述固件文件作為原始固件文件存儲至設定原始固件存儲區(qū);
對所述原始固件文件進行映射處理得到映射固件文件,將所述映射固件文件存儲至設定映射固件存儲區(qū);
從所述設定映射固件存儲區(qū)加載調(diào)用所述映射固件文件。
優(yōu)選的,在獲取包括至少兩個固件文件的固件升級包之前,還包括:
在滿足固件升級條件時,啟動一個線程運行固件升級系統(tǒng),發(fā)送硬件標識至所述固件升級系統(tǒng),以使所述固件升級系統(tǒng)根據(jù)所述硬件標識查詢原始升級包,得到與所述硬件標識匹配的固件文件,下載所述固件文件對應的固件升級包至驗鈔器,其中,所述原始升級包包含不同硬件型號的驗鈔器的固件升級包。
優(yōu)選的,所述原始升級包存儲于便攜式存儲介質中,或存儲于遠程服務器。
優(yōu)選的,在解壓縮所述固件升級包得到所述固件文件之前,還包括:
驗證所述固件升級包已存儲至所述設定固件升級包存儲區(qū),且已下載成功。
優(yōu)選的,所述設定固件升級包存儲區(qū)、所述設定原始固件存儲區(qū)及所述設定映射固件存儲區(qū)均為非易失性存儲器。
第二方面,本發(fā)明實施例還提供了一種嵌入式設備的固件升級裝置,所述裝置包括:
升級包獲取模塊,用于獲取包括至少兩個固件文件的固件升級包,存儲至設定固件升級包存儲區(qū);
升級包解壓模塊,用于解壓縮所述固件升級包得到所述固件文件,將所述固件文件作為原始固件文件存儲至設定原始固件存儲區(qū);
固件文件映射模塊,用于對所述原始固件文件進行映射處理得到映射固件文件,將所述映射固件文件存儲至設定映射固件存儲區(qū);
固件文件調(diào)用模塊,用于從所述設定映射固件存儲區(qū)加載調(diào)用所述映射固件文件。
優(yōu)選的,該裝置還包括:
升級包確定模塊,用于在獲取包括至少兩個固件文件的固件升級包之前,在滿足固件升級條件時,啟動一個線程運行固件升級系統(tǒng),發(fā)送硬件標識至所述固件升級系統(tǒng),以使所述固件升級系統(tǒng)根據(jù)所述硬件標識查詢原始升級包,得到與所述硬件標識匹配的固件文件,下載所述固件文件對應的固件升級包至驗鈔器,其中,所述原始升級包包含不同硬件型號的驗鈔器的固件升級包。
優(yōu)選的,該裝置還包括:
升級包驗證模塊,用于在解壓縮所述固件升級包得到所述固件文件之前,驗證所述固件升級包已存儲至所述設定固件升級包存儲區(qū),且已下載成功。
優(yōu)選的,所述設定固件升級包存儲區(qū)、所述設定原始固件存儲區(qū)及所述設定映射固件存儲區(qū)均為非易失性存儲器。
第三方面,本發(fā)明實施例還提供了一種驗鈔器,包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機程序,其特征在于,所述處理器執(zhí)行所述計算機程序時實現(xiàn)以下步驟:
獲取包括至少兩個固件文件的固件升級包,存儲至設定固件升級包存儲區(qū);
解壓縮所述固件升級包得到所述固件文件,將所述固件文件作為原始固件文件存儲至設定原始固件存儲區(qū);
對所述原始固件文件進行映射處理得到映射固件文件,將所述映射固件文件存儲至設定映射固件存儲區(qū);
從所述設定映射固件存儲區(qū)加載調(diào)用所述映射固件文件。
本發(fā)明實施例通過將多個固件的升級文件打包成一個壓縮文件,簡化了固件下載功能的復雜度,合理降低了驗鈔器固件的升級文件因下載過程中的意外導致升級失敗的概率。并且,以一個升級文件以固件升級包的形式下載至驗鈔器,因此,對固件的升級文件的操作以固件升級包為對象,從而,簡化了固件管理的復雜度,降低了驗鈔器在固件管理方面耗費的效率。此外,使用固件的映射文件,提高了驗鈔器的穩(wěn)定性。本發(fā)明實施例解決現(xiàn)有固件升級過程中單個固件文件下載方式導致的問題,實現(xiàn)了簡化固件下載過程的復雜度,減小固件下載失敗的概率,降低了驗鈔器在固件管理方面耗費的效率的效果。
附圖說明
圖1是本發(fā)明實施例提供的一種嵌入式設備的固件升級方法的流程圖;
圖2是本發(fā)明實施例提供的另一種嵌入式設備的固件升級方法的流程示意圖;
圖3是本發(fā)明實施例提供的一種嵌入式設備的固件升級方法的處理流程示意圖;
圖4是本發(fā)明實施例提供的一種嵌入式設備的固件升級裝置的結構示意圖;
圖5是本發(fā)明實施例提供的一種驗鈔器的結構示意圖。
具體實施方式
下面結合附圖和實施例對本發(fā)明作進一步的詳細說明??梢岳斫獾氖?,此處所描述的具體實施例僅僅用于解釋本發(fā)明,而非對本發(fā)明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與本發(fā)明相關的部分而非全部結構。
在更加詳細地討論示例性實施例之前應當提到的是,一些示例性實施例被描述成作為流程圖描繪的處理或方法。雖然流程圖將各步驟描述成順序的處理,但是其中的許多步驟可以被并行地、并發(fā)地或者同時實施。此外,各步驟的順序可以被重新安排。當其操作完成時所述處理可以被終止,但是還可以具有未包括在附圖中的附加步驟。所述處理可以對應于方法、函數(shù)、規(guī)程、子例程、子程序等等。
圖1為本發(fā)明實施例提供的一種嵌入式設備的固件升級方法的流程圖,本實施例可適用于嵌入式設備固件升級的情況,該方法可以由嵌入式設備的固件升級裝置來執(zhí)行,該裝置可以由軟件和/或硬件的方式來實現(xiàn),并可集成于驗鈔器等嵌入式設備中。本實施的方法具體包括如下步驟:
步驟110、獲取包括至少兩個固件文件的固件升級包,存儲至設定固件升級包存儲區(qū)。
其中,固件升級包中包含的至少兩個固件文件與下載該固件升級包的嵌入式設備的硬件型號相匹配。例如,硬件型號為(001,aaB,004,005,xYs)的驗鈔器包括5個固件。在對驗鈔器升級時,首先獲取該驗鈔器的硬件型號,根據(jù)其硬件型號查詢包含所有驗鈔器模塊的固件升級文件的存儲在非易失性存儲器中的原始升級包,確定該驗鈔器匹配的固件升級文件。由于下載的對象是包括多個固件文件的固件升級包,簡化了固件下載功能的復雜度,合理降低了驗鈔器固件的升級文件因下載過程中的意外導致升級失敗的概率。并且,以一個固件升級包的形式下載至驗鈔器,因此,對固件的升級文件的操作以固件升級包為對象,從而,簡化了固件管理的復雜度,降低了驗鈔器在固件管理方面耗費的效率。
設定固件升級包存儲區(qū)為非易失性存儲器。例如,可以預先指定閃存(Flash Memory)中一段地址對應的存儲區(qū)域為設定固件升級包存儲區(qū)。
在固件升級包的頭文件中記載了嵌入式設備的版本信息。若下載了更高版本的新固件升級包,則將新固件升級包存儲至設定固件升級包存儲區(qū)。優(yōu)選的,使用新固件升級包覆蓋原低版本固件升級包,以避免保留各個版本的固件升級包導致大量占用設定固件升級包存儲區(qū)的存儲資源。
在設定備份存儲區(qū)內(nèi)存儲有出廠版本固件文件。在新固件升級包下載失敗且破壞了設定固件升級包存儲區(qū)中原固件升級包,同時,原固件升級包對應的原始固件文件和映射固件文件也遭到破壞的情況下,驗鈔器中固件因固件文件被破壞而無法工作。若發(fā)生上述問題,可以從設定備份存儲區(qū)內(nèi)讀取該出廠版本固件文件,以維持驗鈔機工作。優(yōu)選的,設定備份存儲區(qū)與設定固件升級包存儲區(qū)位于不同的非易失性存儲器中。例如,設定備份存儲區(qū)屬于E2PROM(Electrically Erasable Programmable Read-Only Memory,電可擦可編程只讀存儲器),設定固件升級包存儲區(qū)屬于Flash Memory。這種設計確保在設定固件升級包存儲區(qū)損壞時,設定備份存儲區(qū)仍處于正常狀態(tài)。
步驟120、解壓縮所述固件升級包得到所述固件文件,將所述固件文件作為原始固件文件存儲至設定原始固件存儲區(qū)。
其中,設定原始固件存儲區(qū)為非易失性存儲器。例如,可以預先指定閃存(Flash Memory)中一段地址對應的存儲區(qū)域為設定原始固件存儲區(qū)。該設定原始固件存儲區(qū)與設定固件升級包存儲區(qū)可以屬于同一非易失性存儲器,并且在該非易失性存儲器中占據(jù)的存儲區(qū)域的地址可以是連續(xù)的與可以不連續(xù)。此外,該設定原始固件存儲區(qū)與設定固件升級包存儲區(qū)還可以分別屬于不同的非易失性存儲器。
對下載至設定固件升級包存儲區(qū)的固件升級包執(zhí)行解壓縮操作,得到待升級固件的固件文件。將解壓得到的固件文件作為原始固件文件,存儲在設定原始固件存儲器。
步驟130、對所述原始固件文件進行映射處理得到映射固件文件,將所述映射固件文件存儲至設定映射固件存儲區(qū)。
其中,設定映射固件存儲區(qū)為非易失性存儲器。例如,可以預先指定閃存(Flash Memory)中一段地址對應的存儲區(qū)域為設定映射固件存儲區(qū)。該設定映射固件存儲區(qū)、設定原始固件存儲區(qū)和設定固件升級包存儲區(qū)可以屬于同一非易失性存儲器,并且在該非易失性存儲器中占據(jù)的存儲區(qū)域的地址可以是連續(xù)的與可以不連續(xù)。優(yōu)選的,該設定映射固件存儲區(qū)與設定固件升級包存儲區(qū)分別屬于不同的非易失性存儲器。這樣設計的好處在于完全隔離需要頻繁讀寫操作的設定映射固件存儲區(qū)和設定固件升級包存儲區(qū),避免固件升級頻繁讀寫影響非易失性存儲器的讀寫功能,使非易失性存儲器的壽命縮短,從而,因存儲有固件升級包的非易失性存儲器損壞,而導致嵌入式設備無法正常工作的情況發(fā)生。
在設定映射固件存儲區(qū)的內(nèi)創(chuàng)建原始固件文件的映射文件。示例性的,以設定映射固件存儲區(qū)的起始地址作為映射固件文件的首地址,依次將原始固件文件映射到設定映射存儲區(qū)內(nèi),得到該原始固件文件的映射文件。
步驟140、從所述設定映射固件存儲區(qū)加載調(diào)用所述映射固件文件。
示例性的,當驅動(driver)對設備(device)進行初始化的時候,通過request_firmware()等接口,把該映射固件文件加載到內(nèi)存中,由驅動傳輸?shù)綄脑O備上,完成固件升級。由于將固件映射文件加在到內(nèi)存,以由驅動傳輸?shù)綄脑O備,加載過程中出現(xiàn)錯誤導致固件映射文件損壞時,可以重新解壓縮固件升級包得到所述原始固件文件,重新對該固件文件執(zhí)行映射處理得到映射固件文件,避免加載過程中的錯誤導致嵌入式設備無法正常工作的情況發(fā)生,提高了嵌入式設備的穩(wěn)定性。
本實施例的技術方案,通過獲取包括至少兩個固件文件的固件升級包,存儲至設定固件升級包存儲區(qū);解壓縮所述固件升級包得到所述固件文件,將所述固件文件作為原始固件文件存儲至設定原始固件存儲區(qū);對所述原始固件文件進行映射處理得到映射固件文件,將所述映射固件文件存儲至設定映射固件存儲區(qū);從所述設定映射固件存儲區(qū)加載調(diào)用所述映射固件文件,達到了簡化固件下載過程的復雜度,減小固件下載失敗的概率,降低了驗鈔器在固件管理方面耗費的效率的效果。
圖2示出了本實施例提供的另一種嵌入式設備的固件升級方法的流程示意圖。如圖2所示,本實施例的方法具體包括:
步驟210、在滿足固件升級條件時,啟動一個線程運行固件升級系統(tǒng)。
其中,在推出新功能,或用戶反饋意見表明驗鈔機BUG(漏洞)比較嚴重等情形下,驗鈔機廠商會開發(fā)針對名下不同硬件型號的驗鈔機的固件升級文件。在將開發(fā)好的固件升級文件打包成固件升級包后,存入便攜式存儲介質中。其中,固件升級包的頭文件中記載了驗鈔機版本信息。驗鈔機在檢測到便捷式存儲介質接入時,掃描所述便攜式存儲介質,獲取其中固件升級包的頭文件。若存在版本高于本機版本的頭文件,則認為滿足固件升級條件,啟動一個線程運行固件升級系統(tǒng)。
可替代的,若包含不同硬件型號的驗鈔機的固件升級文件的原始升級包存儲在服務器上,則在該原始升級包上傳該服務器時,對版本低于原始升級包對應的驗鈔機版本的驗鈔機發(fā)送升級通知,以詢問用戶是否升級驗鈔機。若獲取針對該升級通知的肯定回復,則認為滿足固件升級條件,啟動一個線程運行固件升級系統(tǒng)。
步驟220、發(fā)送硬件標識至所述固件升級系統(tǒng),以使所述固件升級系統(tǒng)根據(jù)所述硬件標識查詢原始升級包,得到與所述硬件標識匹配的固件文件,下載所述固件文件對應的固件升級包至驗鈔器。
其中,硬件標識包括模組的硬件型號、硬件編號和廠家信息,例如春田磁性傳感器CT001等??梢酝ㄟ^硬件標識代表硬件本身。在嵌入式設備進行固件燒錄處理時,根據(jù)該嵌入式設備所包括的模組的硬件型號,為每個模組設置硬件標識。示例性地,在固件燒錄時,設置各個模組的硬件標識的方式可以是掃描嵌入式設備包括的各個模組的二維碼信息,根據(jù)所述二維碼信息確定所述嵌入式設備包括的各個模組的硬件標識。還可以是獲取用戶人工輸入的嵌入式設備包括的各個模組的硬件標識。
原始升級包為不同硬件型號的驗鈔器以及不同驗鈔器版本的驗鈔器固件升級包的集合。例如,所述原始升級包中還可以有驗鈔器版本YC-V2的驗鈔器中固件的固件文件。又如,所述原始升級包中可以包括硬件型號(001,aaB,004,005,xYs)的驗鈔器包括的5個固件的固件文件。圖3示出了本實施例提供的一種嵌入式設備的固件升級方法的處理流程示意圖。如圖3所示,固件文件1至固件文件5,以及包含固件描述信息和驗鈔器版本的頭文件在計算機端100被打包成驗鈔器固件升級包。此處的驗鈔器固件升級包為原始升級包。需要對不同網(wǎng)點的驗鈔器升級時,維護人員可以將該原始升級包拷貝到便攜式存儲介質中。然后,將存儲有原始升級包的便攜式存儲介質接入驗鈔器,執(zhí)行固件升級操作??商娲?,還可以將原始升級包上傳到服務器上,以在滿足固件升級條件時,下發(fā)與驗鈔器硬件型號匹配的固件升級包至該驗鈔器。
由于在生產(chǎn)驗鈔器時,其包括哪些模組,以及各個模組的硬件型號都是設計好的,且硬件標識與模組的對應關系以預先配置的標識-模組關系表形式體現(xiàn)。因此,在獲取待升級驗鈔器包括的模組的硬件標識后,可以根據(jù)模組信息查詢標識-模組關系表,確定與該驗鈔器對應的預先配置的硬件標識是什么。從而,將預先配置的硬件標識與所獲取的硬件標識進行比對,若兩者的匹配度高,則認為所獲取的硬件標識合法。根據(jù)硬件標識與固件文件之間的對應關系,采用合法的硬件標識查詢原始升級包確定與該硬件標識匹配的固件文件。在確定待升級驗鈔器對應的固件文件后,啟動一線程運行便攜式存儲介質中預存的打包工具,將所確定的固件文件打包得到該驗鈔器對應的固件升級包。固件升級系統(tǒng)下載所述固件文件對應的固件升級包至驗鈔器。
步驟230、獲取包括至少兩個固件文件的固件升級包,存儲至設定固件升級包存儲區(qū)。
如圖3所示,驗鈔器200通過固件升級系統(tǒng)獲取與自身模組的硬件型號匹配的固件升級包,存儲該固件升級包至設定固件升級包存儲區(qū)201。其中,該固件升級包具有與待升級的固件相匹配的固件文件1至固件文件5。
步驟240、驗證所述固件升級包已存儲至所述設定固件升級包存儲區(qū),且已下載成功。
獲取固件升級系統(tǒng)對應的線程狀態(tài),若該線程結束,則確定所述固件升級包已下載完成。判斷該固件升級包中包括的文件是否完整,在該固件升級包中包括的文件完整時,確定該固件升級包下載成功。例如,在確定驗鈔器的固件升級包下載完成后,驗證該固件升級包中是否包含固件文件1至固件文件5,頭文件以及其它打包進該固件升級包的文件,若是,則認為該固件文件下載成功。
驗證該固件升級包的存儲位置的首地址是否為設定固件升級包存儲區(qū)的首地址,若是,則確定該固件升級包已存儲至所述設定固件升級包存儲區(qū)。
步驟250、解壓縮所述固件升級包得到所述固件文件,將所述固件文件作為原始固件文件存儲至設定原始固件存儲區(qū)。
如圖3所示,解壓縮該固件升級包得到固件文件1至固件文件5。將解壓縮得到的固件文件1至固件文件5作為原始固件文件存儲至設定原始固件存儲區(qū)202。
步驟260、對所述原始固件文件進行映射處理得到映射固件文件,將所述映射固件文件存儲至設定映射固件存儲區(qū)。
如圖3所示,對原始固件文件進行映射處理得到映射固件文件(映射固件1至映射固件5),將該映射固件文件存儲至設定映射固件存儲區(qū)203。
步驟270、從所述設定映射固件存儲區(qū)加載調(diào)用所述映射固件文件。
本實施例的技術方案,通過在原始升級包中查找并下載與待升級的驗鈔器匹配的固件文件,實現(xiàn)在固件升級過程中動態(tài)生成與驗鈔器的硬件類型匹配的升級包,減輕固件提供、固件維護和固件更新等方面的工作量,達到了降低開發(fā)成本的效果。同時,將多個固件打包成一個升級包進行下載,達到了簡化固件下載過程的復雜度,減小固件下載失敗的概率,降低了驗鈔器在固件管理方面耗費的效率的效果。
圖4是本發(fā)明實施例提供的一種嵌入式設備的固件升級裝置的結構示意圖。如圖4所示,該嵌入式設備的固件升級裝置包括:升級包獲取模塊410、升級包解壓模塊420、固件文件映射模塊430和固件文件調(diào)用模塊440。其中,
升級包獲取模塊410,用于獲取包括至少兩個固件文件的固件升級包,存儲至設定固件升級包存儲區(qū);
升級包解壓模塊420,用于解壓縮所述固件升級包得到所述固件文件,將所述固件文件作為原始固件文件存儲至設定原始固件存儲區(qū);
固件文件映射模塊430,用于對所述原始固件文件進行映射處理得到映射固件文件,將所述映射固件文件存儲至設定映射固件存儲區(qū);
固件文件調(diào)用模塊440,用于從所述設定映射固件存儲區(qū)加載調(diào)用所述映射固件文件。
本實施例的技術方案提供一種嵌入式設備的固件升級裝置,達到了簡化固件下載過程的復雜度,減小固件下載失敗的概率,降低了驗鈔器在固件管理方面耗費的效率的效果。
進一步的,該裝置還包括:
升級包確定模塊,用于在獲取包括至少兩個固件文件的固件升級包之前,在滿足固件升級條件時,啟動一個線程運行固件升級系統(tǒng),發(fā)送硬件標識至所述固件升級系統(tǒng),以使所述固件升級系統(tǒng)根據(jù)所述硬件標識查詢原始升級包,得到與所述硬件標識匹配的固件文件,下載所述固件文件對應的固件升級包至驗鈔器,其中,所述原始升級包包含不同硬件型號的驗鈔器的固件升級包。
進一步的,所述原始升級包存儲于便攜式存儲介質中,或存儲于遠程服務器。
進一步的,該裝置還包括:
升級包驗證模塊,用于在解壓縮所述固件升級包得到所述固件文件之前,驗證所述固件升級包已存儲至所述設定固件升級包存儲區(qū),且已下載成功。
進一步的,所述設定固件升級包存儲區(qū)、所述設定原始固件存儲區(qū)及所述設定映射固件存儲區(qū)均為非易失性存儲器。
圖5是本發(fā)明實施例提供的一種驗鈔器的結構示意圖。如圖5所示,該驗鈔器包括存儲器510、處理器520及存儲在存儲器510上并可在處理器520上運行的計算機程序,所述處理器520執(zhí)行所述計算機程序時實現(xiàn)以下步驟:
獲取包括至少兩個固件文件的固件升級包,存儲至設定固件升級包存儲區(qū);解壓縮所述固件升級包得到所述固件文件,將所述固件文件作為原始固件文件存儲至設定原始固件存儲區(qū);對所述原始固件文件進行映射處理得到映射固件文件,將所述映射固件文件存儲至設定映射固件存儲區(qū);從所述設定映射固件存儲區(qū)加載調(diào)用所述映射固件文件。
上述嵌入式設備的固件升級裝置及驗鈔器可執(zhí)行本發(fā)明任意實施例所提供的嵌入式設備的固件升級方法,具備執(zhí)行方法相應的功能模塊和有益效果。未在上述實施例中詳盡描述的技術細節(jié),可參見本發(fā)明任意實施例所提供的觸摸屏的防誤觸方法。
注意,上述僅為本發(fā)明的較佳實施例及所運用技術原理。本領域技術人員會理解,本發(fā)明不限于這里所述的特定實施例,對本領域技術人員來說能夠進行各種明顯的變化、重新調(diào)整和替代而不會脫離本發(fā)明的保護范圍。因此,雖然通過以上實施例對本發(fā)明進行了較為詳細的說明,但是本發(fā)明不僅僅限于以上實施例,在不脫離本發(fā)明構思的情況下,還可以包括更多其他等效實施例,而本發(fā)明的范圍由所附的權利要求范圍決定。