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