DAB接收機USB固件升級的實現
固件(Firmware)我們通常理解為軟件,由于集成電路的發展,目前的固件多以FLASH為載體,它與我們通常所說的程序的區別已經越來越小。固件升級實際上就是用新的固件程序重寫FLASH的過程,升級固件變得越來越簡單。
在用戶使用過程中,一旦系統提供產品固件更高的版本,就要求產品能夠通過固件升級程序對原有固件進行升級,而設備固件升級(Device Firmware Upgrade,DFU)正是能夠完成這種任務的一種機制。隨著USB技術的發展,USB設備的更新速度越來越快,通過USB接口來升級產品的固件是一種實用高效的方法。本文的主要研究內容就是在自主開發的DAB接收機的基礎上,通過USB接口實現接收機的DFU.
2.固件升級
本文提出的固件升級方法利用PC機通過USB接口與DAB接收機進行通信,并在此基礎上完成DFU的各種操作,基本結構如圖1所示。
隨著科技的不斷進步,生產廠商很難滿足用戶多元化的需求,更多的廠商把升級固件以提供更多更新的功能作為附加值來提供給用戶。
在產品上市后,生產廠商對產品程序做了進一步的優化和改進,這時候需要升級產品的固件以提升產品的性能。對于已經開發出的軟件,有可能存在一些BUG,生產廠商也可以通過固件升級來修正以前版本中存在的錯誤。
3.DFU實現流程
接收機DFU的實現參照USB固件升級的標準流程,接收機通過USB線纜與PC機相連,在PC機上執行固件更新的相關操作,完成接收機的固件升級,整個過程遵循枚舉,重配置,傳輸,顯示四個階段,具體的實現過程如圖2所示。
第一階段為枚舉階段,接收機正常運行過程包括兩套不同的描述符:DFU模式描述符和正常運行描述符。接收機正常運行時,列舉出DFU模式描述符并向主機表明其具備可實現DFU的能力。
第二階段為重配置階段,接收機和主機達成一致發起固件升級。主機給接收機發送一個USB重置請求,接收機接收到后,切換到固件升級模式,屏蔽正常工作模式,并為下一階段做好準備。
第三階段為傳輸階段,主機通過特定的軟件將固件升級的文件傳送給接收機,在功能描述符中定義的參數可以正確的保證塊的大小以及在內存中重新編譯的時間。
第四階段為顯示階段,接收機通知主機已完成重新編譯,主機發送一個USB復位請求給接收機,接收機重啟后,重新執行枚舉階段,并執行已經更新的固件程序。
評論