專利名稱:一種支持固件在線升級的芯片系統及其在線升級方法
技術領域:
本發明涉及固件升級技術領域,尤其是涉及一種支持固件在線升級的芯片系統及其在線升級方法。
背景技術:
固件(Firm Ware)是具有軟件功能的硬件,在早期這種器件一般都是存有軟件的EROM或EPROM(電可擦除可編程只讀存儲器)等。固件發展到今天,已經有了重新的定義,更傾向的認為是一種軟件體,其承擔著一個系統最基礎、最底層工作(正如BOIS對于電腦的作用),并且以設備中的FLASH作為載體,與設備其他硬件部分同時存在,不過硬件是有形的,而固件對于我們來說是無形的,雖然為看不見的東西,但固件的作用卻不容小視,其擔任著一個系統最基礎、最底層工作,支持系統運行。
固件廣泛存在于數碼領域,比如,手機有,數碼相機有,MP3隨身聽也有,而且很多廠家的產品支持固件升級。固件常常需要進行更新升級,例如由于其故障,要向有關用戶提供更新的固件;固件周期性地進行更新升級以修復缺陷并增加新的功能。升級固件帶來的不僅是硬件性能的提升,還能為硬件增添許多嶄新的功能。例如,數碼相機進行固件升級后,LCD上能提供更多的信息,并可獲得更多的預設特性;而安裝了官方升級文件后的打印機能很大程度改善打印質量,并能提升進紙速度。
傳統的固件在線升級(DFU,Device Firmware Upgrade)方法,通常使用一塊專用的RAM來進行。由于需要在芯片內部額外增加這樣一個專用RAM部分,這種方法對于芯片的設計,無論是在面積還是功率方面,其付出的代價都很大,將造成芯片面積增加及功率增大,從而影響芯片的性能指標。此外,額外的專用RAM也會增加芯片的成本。
發明內容
本發明所要解決的技術問題在于提供一種支持固件在線升級的芯片系統及其在線升級方法,對支持固件升級的芯片進行特殊設計,利用RAM共享機制,無需增加專用RAM,只需利用芯片上現有的RAM或寄存器組來進行固件在線升級。
本發明提供一種支持固件在線升級的芯片系統,包括固件、存儲固件升級程序的程序存儲器、業務模塊,以及與業務模塊相連的存儲業務模塊數據的數據存儲器,其中,所述數據存儲器還與程序存儲器相連,用于存儲從程序存儲器中復制來的固件升級程序。
其中,所述數據存儲器通過接口轉換電路與所述程序存儲器相連,所述數據存儲器可以是隨機存取存儲器,也可以是寄存器組;所述程序存儲器可以是FLASH存儲器,其可以在芯片內部,也可以在芯片外部。
本發明還提供一種利用本發明所述的芯片系統進行固件在線升級的方法,包括如下步驟固件收到在線升級指令后,將存儲于程序存儲器中的固件在線升級程序復制到所述數據存儲器中;將芯片中MCU的程序空間映射到所述數據存儲器;在數據存儲器中運行固件在線升級程序,將新版的固件寫入程序存儲器中。
其中,所述在線升級指令,由用戶在計算機端通過串口觸發。
所述將新版固件寫入程序存儲器中的步驟,是通過與計算機端的通訊完成的。
所述將存儲于程序存儲器中的固件在線升級程序復制到所述數據存儲器中的步驟,由程序存儲器通過接口轉換電路將固件在線升級程序復制到數據存儲器。
所述數據存儲器可以是隨機存取存儲器,也可以是寄存器組;所述程序存儲器可以是FLASH存儲器,其可以在芯片內部,也可以在芯片外部。
利用本發明所述的芯片及其在線升級方法,無需采用專用的RAM,只需要利用芯片上已有的RAM或是寄存器組來進行固件在線升級。在相同的接口復雜度下,應用本發明,可以節省芯片面積和功率,同時降低芯片固件在線升級成本,能以比較低廉地成本來實現芯片固件的在線升級。
圖1是根據本發明實施例所述的實現固件在線升級的硬件結構圖;圖2是根據本發明實施例所述的固件在線升級過程的流程圖。
具體實施例方式
下面結合附圖和具體實施例對本發明作進一步描述。
本發明提供了一種支持固件在線升級的芯片系統,包括固件、存儲固件升級程序的程序存儲器、業務模塊,以及與業務模塊相連的存儲業務模塊數據的數據存儲器,其中,所述數據存儲器還與程序存儲器相連,用于存儲從程序存儲器中復制來的固件升級程序。
其中,所述數據存儲器通過接口轉換電路與所述程序存儲器相連,所述數據存儲器可以是隨機存取存儲器,也可以是寄存器組;所述程序存儲器可以是FLASH存儲器,其可以在芯片內部,也可以在芯片外部。
如圖1所示,為本發明實施例中實現固件在線升級的硬件結構圖,圖中示出了芯片中的共享數據存儲器及其輸入輸出的數據與信號。
在圖1中,DFU所使用的共享RAM原本是視頻處理模塊的緩沖區,在這里只需使用很簡單的接口轉換電路便實現了RAM的共享。視頻處理模塊的緩沖區RAM,原本只有用于視頻管道的控制、地址和數據輸入,以及用于視頻管道的數據輸出;在其被設置為共享RAM后,增加了用于DFU的控制、地址和數據輸入,以及用于DFU的數據輸出。這樣就使所述共享RAM既可以被用于視頻處理,也可以被用于固件在線升級,視頻處理模塊的緩沖區就成為了共享的數據存儲器。
根據本發明實施例,DFU過程由用戶在PC端通過串口觸發,芯片中的固件接到指令后,首先,將存于FLASH存儲器中的DFU的子程序復制到共享的RAM中;然后,將芯片中MCU的程序空間映射到共享的RAM,切換共享的RAM為程序空間;之后,開始運行DFU子程序,DFU子程序運行起來后,通過與PC之間的通訊將新版的固件寫入到FLASH之中,從而完成固件的升級。
如圖2所示,為本發明實施例中固件在線升級(DFU)過程的流程圖,DFU過程包括如下步驟步驟201,通過固件串口中斷服務例程(ISR)等待DFU的中斷;步驟202,用戶通過PC總機發出用于固件在線升級的中斷指令后,所述固件串口中斷服務例程對是否要進行固件在線升級進行判斷;步驟203,如果不是要升級,則繼續進行正常工作;步驟204,如果是要升級,則開始進行固件在線升級,芯片中的固件接到升級指令后,將存儲在FLASH中的DFU的子程序拷貝到共享的RAM中;步驟205,將芯片中微處理器(MCU)的程序空間映射到共享的RAM,并切換共享的RAM為MCU的程序空間;步驟206,開始運行共享RAM中的DFU子程序,通過與PC之間的通訊,將新版的固件寫入到FLASH之中,從而完成固件的升級。
在固件升級完成后,只需重新上電,芯片就會運行新升級的固件。
權利要求
1.一種支持固件在線升級的芯片系統,包括固件、存儲固件升級程序的程序存儲器、業務模塊,以及與業務模塊相連的存儲業務模塊數據的數據存儲器,其特征在于,所述數據存儲器還與程序存儲器相連,用于存儲從程序存儲器中復制來的固件升級程序。
2.如權利要求1所述的芯片系統,其特征在于,所述數據存儲器通過接口轉換電路與所述程序存儲器相連。
3.如權利要求1所述的芯片系統,其特征在于,所述數據存儲器是隨機存取存儲器。
4.如權利要求1所述的芯片系統,其特征在于,所述數據存儲器是寄存器組。
5.如權利要求1所述的芯片系統,其特征在于,所述程序存儲器是FLASH存儲器。
6.如權利要求1所述的芯片系統,其特征在于,所述程序存儲器位于芯片內部或外部。
7.一種利用如權利要求1所述的芯片系統進行固件在線升級的方法,其特征在于,包括如下步驟固件收到在線升級指令后,將存儲于程序存儲器中的固件在線升級程序復制到所述數據存儲器中;將芯片中MCU的程序空間映射到所述數據存儲器;在數據存儲器中運行固件在線升級程序,將新版的固件寫入程序存儲器中。
8.如權利要求7所述的方法,其特征在于,所述在線升級指令,由用戶在計算機端通過串口觸發。
9.如權利要求7所述的方法,其特征在于,所述將新版固件寫入程序存儲器中的步驟,是通過與計算機端的通訊完成的。
10.如權利要求7所述的方法,其特征在于,所述將存儲于程序存儲器中的固件在線升級程序復制到所述數據存儲器中的步驟,由程序存儲器通過接口轉換電路將固件在線升級程序復制到數據存儲器。
全文摘要
本發明公開了一種支持固件在線升級的芯片系統及其在線升級方法,利用RAM共享機制,在所述芯片系統中,共享數據存儲器,所述數據存儲器與程序存儲器相連,用于存儲從程序存儲器中復制來的固件升級程序。進行固件升級時,將存儲于程序存儲器中的固件在線升級程序復制到所述數據存儲器中;再將芯片中MCU的程序空間映射到所述數據存儲器;運行固件在線升級程序,將新版的固件寫入程序存儲器中。本發明無需增加專用RAM,只需利用芯片上現有的RAM或寄存器組就可以進行固件在線升級,節省了芯片面積和功率,降低了芯片固件在線升級成本。
文檔編號G06F9/445GK1752933SQ20051011766
公開日2006年3月29日 申請日期2005年11月8日 優先權日2005年11月8日
發明者吳大畏, 吳大斌 申請人:北京中星微電子有限公司