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