精品人妻一区二区三区麻豆91国产精品亚洲精品日韩|国产成人精品久久久久日韩中文字幕视频一区二区|国产区精品福利在线熟女|xk8134星空传媒|亚洲一区二区精品3399|5566中文字幕一区二区|国产69精品久久久久9999|中文字幕亚洲欧美日韩|国产日韩久久久久精品影院|亚洲国产精品久久久久久久久,果冻传媒精选麻豆人口中文av内射,欧美成人精品一区二区三区在线观看国产91精品肉色丝袜 ,国产日韩欧美一区二区久久精品东北电影制片厂第一部电影

在線客服
首頁(yè) > 技術(shù)文章 >
技術(shù)文章
技術(shù)文章

無(wú)須重新設(shè)計(jì)硬件配置,,USB成嵌入式載體的重要部分

通??山逵勺兏谖⒖刂破魃蠄?zhí)行的軟件擴(kuò)增新功能,,或?yàn)檠b置出貨前沒發(fā)現(xiàn)到的問題除錯(cuò),,例如血糖計(jì),,僅須修改軟件就能使用新型試紙,;某些顧客桌面上無(wú)法使用的光學(xué)鼠標(biāo),,修改軟件能重新設(shè)定影像傳感器采集到的數(shù)據(jù)特征,。這類的設(shè)計(jì)變更不須重新設(shè)計(jì)硬件的配置,,已成為相當(dāng)常見的作法,,能在產(chǎn)品還未出廠時(shí),即迅速對(duì)硅組件更新編程,,在顧客方面,,直接編程是不切實(shí)際的方法,因?yàn)樾枰厥獾挠布B結(jié)微控制器上的專屬接腳,,若裝置已需USB作為通訊機(jī)制,,把一個(gè)簡(jiǎn)單的開機(jī)管理應(yīng)用程序加到原始韌體,就能使用標(biāo)準(zhǔn)計(jì)算機(jī)下載新版與后續(xù)更新的韌體,,并可由制造商或終端使用者執(zhí)行更新動(dòng)作,。 

幾乎無(wú)所不在的通用序列總線(USB)通訊媒介,原用來(lái)把鼠標(biāo)或鍵盤連結(jié)至計(jì)算機(jī),,后來(lái)已擴(kuò)展至喇叭,、攝影機(jī)、打印機(jī)及其它各種裝置,,如今像吉他到轎車都已配備USB接口,。在這類裝置中,利用現(xiàn)有的USB聯(lián)機(jī)變更在嵌入式控制器上執(zhí)行的軟件,,就能擴(kuò)增新功能或解決效能故障方面的問題,,且研發(fā)業(yè)者不但可充分發(fā)揮本身具備的好處,并可提供產(chǎn)品重新編程的彈性,。

在嵌入式微控制器中,,開機(jī)管理程序是一個(gè)位于程序內(nèi)存內(nèi)的小程序。當(dāng)重新啟動(dòng)或開機(jī)時(shí),,開機(jī)管理程序會(huì)率先執(zhí)行,,并讓處理器執(zhí)行使用者的程序或下載新版程序,在這種組態(tài)下,,直接編程僅須把開機(jī)管理程序插入至程序內(nèi)存,。開機(jī)管理程序可使用不同的通訊技術(shù)采集新程序,包括USB,、I2C,、SPI,、UART,甚至可建置專屬的通訊協(xié)議以下載新程序,,也可使用不同的方法儲(chǔ)存下載的程序,。根據(jù)內(nèi)存的需求,程序可儲(chǔ)存在微控制器內(nèi)部的閃存,,或是各種外部?jī)?chǔ)存媒體,,由于大多數(shù)開機(jī)管理程序僅需少量的程序空間即可建置,因此通常和使用者的程序裝在同一片閃存中,,在并存時(shí),,開機(jī)管理程序須負(fù)責(zé)把程序代碼下載到同一片內(nèi)存時(shí),防止覆蓋本身的程序代碼,,在內(nèi)存空間的開機(jī)管理程序,,可設(shè)定成不可覆寫,以避免意外的毀損,。 

開機(jī)管理程序扮演重要角色 

圖1 USB開機(jī)管理程序的數(shù)據(jù)流程

圖1顯示USB開機(jī)管理程序的數(shù)據(jù)流,。在開機(jī)重新啟動(dòng)時(shí),開機(jī)管理程序會(huì)計(jì)算使用者程序的檢查碼,,并和儲(chǔ)存在內(nèi)存中的檢查碼進(jìn)行比對(duì),。這個(gè)檢查碼是現(xiàn)場(chǎng)可編程開機(jī)管理程序的檢查碼模塊,若兩個(gè)數(shù)值相符,,開機(jī)管理程序就會(huì)讓處理器開始執(zhí)行使用者的程序,,但若檢查碼不一致,開機(jī)管理程序就會(huì)讓主機(jī)等候分送新的使用者程序代碼,。在準(zhǔn)備階段,,開機(jī)管理程序會(huì)關(guān)閉任何可能干擾下載流程的岔斷,在某些系統(tǒng)中,,微控制器可能須處理一些重要作業(yè),,然后再開始下載,如可能必須啟動(dòng)散熱風(fēng)扇或讓某些發(fā)光二極管(LED)燈號(hào)閃動(dòng),,由于應(yīng)用程序的空間是被刪除的目標(biāo),,因此如散熱風(fēng)扇或LED燈號(hào)的控制例程等這類關(guān)鍵作業(yè)須寫入開機(jī)管理程序。 

為了開始通訊,,開機(jī)管理程序會(huì)設(shè)定USB接口,,然后等待計(jì)算機(jī)連結(jié)裝置。計(jì)算機(jī)透過(guò)交握程序了解何種裝置插入連結(jié)端口,,此程序稱為裝置列舉,可確保裝置和正確的主控端軟件進(jìn)行通訊,,在這個(gè)例子中,,主控端是個(gè)人計(jì)算機(jī)(PC)應(yīng)用程序,,程序中含須下載的內(nèi)容,為避免意外下載,,并確保安全,,開機(jī)管理程序會(huì)在交易過(guò)程中尋找主控端的金鑰。 

檢查金鑰后,,開機(jī)管理程序會(huì)對(duì)主控端做出響應(yīng),,并要求取得Flash映像,由于閃存不支持單一地址寫入,,故須使用完整分頁(yè)寫入,。在找出整個(gè)分頁(yè)的地址前,會(huì)先把傳入的數(shù)據(jù)儲(chǔ)存在隨機(jī)存取內(nèi)存(RAM),,由于處理器在此刻正忙著下載新韌體,,因此幾乎所有RAM資源都可使用,系統(tǒng)必須在較低的溫度把內(nèi)容穩(wěn)定寫入至閃存,,為增加內(nèi)存保存數(shù)據(jù)時(shí)間及寫入周期的次數(shù),,了解現(xiàn)場(chǎng)溫度及使用合適的編程算法相當(dāng)重要。 

在快閃編程過(guò)程中,,電源的穩(wěn)定度也是一項(xiàng)重要因素,,任何電源噪聲、故障,、斷電,、電位緩升、接觸不良等狀況,,都會(huì)造成難以偵測(cè)的問題,。若真的發(fā)生電力瞬時(shí)問題,開機(jī)管理程序就會(huì)再次啟動(dòng),,并因檢查碼核對(duì)失敗而重新開始下載程序,,當(dāng)所有Flash分頁(yè)都含有檢查碼并成功寫入,開機(jī)管理程序就會(huì)檢查閃存并開始重新啟動(dòng),,此時(shí)當(dāng)系統(tǒng)重新啟動(dòng)后,,開機(jī)管理程序會(huì)搜尋正確的檢查碼,并開始執(zhí)行使用者程序代碼,。 

圖2 通用型開機(jī)管理程序架構(gòu)

當(dāng)檢查碼有效時(shí),,所有后續(xù)的開機(jī)管理程序作業(yè)都必須從執(zhí)行中的使用者程序代碼呼叫。透過(guò)正確的應(yīng)用程序接口呼叫,,PC程序能直接指揮使用者程序關(guān)閉所有岔斷,、重置USB硬件及開始扮演開機(jī)管理程序。另一方面,,裝置設(shè)定完成后,,藉由如開關(guān)等某些硬件狀態(tài)變更事件,,便進(jìn)入開機(jī)管理程序的裝置列舉程序。 

內(nèi)存管理可避免
無(wú)法使用USB下載數(shù)據(jù)問題 

開機(jī)管理程序被意外刪除會(huì)導(dǎo)致系統(tǒng)無(wú)法透過(guò)USB下載數(shù)據(jù),。系統(tǒng)化的內(nèi)存配置,,能減少或消弭這種意外的風(fēng)險(xiǎn),圖2所示為一個(gè)可行的配置,,可由各種Flash架構(gòu)運(yùn)用,,圖中由上而下第一組模塊含有重置與USB岔斷向量,第二組則含有開機(jī)管理程序設(shè)定的內(nèi)存區(qū)域,,含有用來(lái)搜尋開機(jī)管理程序檢查碼的啟動(dòng)指令,,用以下載新映像的程序代碼,以及用來(lái)儲(chǔ)存檢查碼的空間,,這組程序代碼可重設(shè)位置,,不同的區(qū)塊可置入專屬的內(nèi)存區(qū)域,然而,,當(dāng)項(xiàng)目設(shè)計(jì)準(zhǔn)備開始建置,,除檢查碼外,這區(qū)域的所有空間都不可升級(jí),。

第三組則是供使用者程序使用,,這個(gè)部分含有使用者程序代碼、所有相關(guān)的岔斷向量及呼叫開機(jī)管理程序的例程,,這個(gè)區(qū)域可重新編程與重新尋址,,但在開機(jī)管理程序下載程序代碼時(shí)無(wú)法被存取。任何指向此區(qū)域的岔斷,,在呼叫任何開機(jī)管理程序函式之前都應(yīng)關(guān)閉,,若在執(zhí)行時(shí)程序內(nèi)容會(huì)變更,則應(yīng)考慮可能發(fā)生的各種問題,。 

在個(gè)人計(jì)算機(jī)方面,,應(yīng)用程序須和裝置進(jìn)行通訊,以及傳送新的使用者程序代碼,。研發(fā)業(yè)者會(huì)透過(guò)網(wǎng)站或光盤獲得所需軟件,,軟件須能要求裝置進(jìn)入開機(jī)狀態(tài),并提供正確的驗(yàn)證金鑰,,當(dāng)裝置準(zhǔn)備好時(shí),,主控端應(yīng)傳送新的內(nèi)容,以便寫入至閃存,,并啟動(dòng)下載程序的使用者程序,,且應(yīng)記住開機(jī)管理程序的內(nèi)存配置,這方面須知道使用者程序代碼的開始與結(jié)束位置及檢查碼等數(shù)據(jù),。在正常的運(yùn)作模式下,,開機(jī)管理程序會(huì)連結(jié)至正確的地址,,找到使用者程序代碼的開端,,使用者程序代碼發(fā)出的任何開機(jī)呼叫,,都會(huì)指向開機(jī)管理程序例程的正確地址。 

計(jì)算機(jī)可使用各種不同的機(jī)制,,把內(nèi)容透過(guò)USB傳送到開機(jī)管理程序,,根據(jù)裝置內(nèi)開機(jī)管理程序的需求,可利用控制,、岔斷或批次傳輸以傳送數(shù)據(jù),,裝置內(nèi)的USB描述亦可決定程序須支持的驅(qū)動(dòng)程序類型,并可設(shè)定讓程序使用操作系統(tǒng)的人機(jī)接口裝置驅(qū)動(dòng)程序,,或使用特定廠商的驅(qū)動(dòng)程序,。 

簡(jiǎn)化啟動(dòng)程序 

開機(jī)啟動(dòng)其實(shí)是一個(gè)常見的程序,個(gè)人計(jì)算機(jī)使用相同的原理把操作系統(tǒng)從硬盤加載到計(jì)算機(jī),,許多參考設(shè)計(jì)方案與網(wǎng)絡(luò)上的項(xiàng)目設(shè)計(jì)范例,,能協(xié)助在嵌入式設(shè)計(jì)中建置開機(jī)管理程序,如廠商推出的PSoC Designer工具能用來(lái)建立一個(gè)USB或I2C開機(jī)管理程序,,并能搭配各種可編程系統(tǒng)單芯片或PSoC,。USB開機(jī)管理程序的使用者模塊會(huì)產(chǎn)生所有必要的開機(jī)管理程序代碼,能和使用者程序并存運(yùn)作,,此工具讓業(yè)者設(shè)計(jì)出全速,、符合Chapter 9標(biāo)準(zhǔn)規(guī)范、人機(jī)接口裝置或原生USB裝置,,引導(dǎo)精靈會(huì)協(xié)助產(chǎn)生精確的USB描述,,并利用岔斷或控制傳輸類型支持開機(jī)管理程序的轉(zhuǎn)換。 

使用者模塊會(huì)根據(jù)設(shè)計(jì)時(shí)預(yù)測(cè)的需求產(chǎn)生開機(jī)管理程序代碼(表1),,其會(huì)搜尋各種可供選擇的參數(shù),,如使用者程序第一個(gè)和最后一個(gè)模塊、開機(jī)管理程序第一個(gè)與最后一個(gè)區(qū)塊及檢查碼的地址,,開機(jī)管理程序的大小也可自行調(diào)整,,以便插入任何必須和下載程序一起進(jìn)行的特殊程序代碼,USB交易需要的金鑰也可自行設(shè)定,,而了解未來(lái)開機(jī)管理程序可能面臨的環(huán)境溫度,,可讓工具能產(chǎn)生適合的編程例程,最后,,使用者可產(chǎn)生像void BootLdrUSB_EnterBootloader(void)例程,,讓使用者程序代碼能從軟件程序啟動(dòng)開機(jī)程序。

表1 USB開機(jī)管理程序搜尋各種可選擇參數(shù)

用戶模塊參數(shù)

參數(shù)值

TW0_Block_Relocatable_Interrupt_Table

4C

ApplicationCode_Start_Block

4E

Last_Application_Block   FE

FE

Application_Checksum_Block

FF

Bootloader_Start_Block   2

2

Bootloader_Size

4B

BootloaderKey

0001020304050607

Flash_Program_Temperature_deg_C

-40C

ICE_Debug_FLASH_DISABLE

DISABLE_FLASH_WRITE

BootLdrUSBFS_ver

1000

模塊會(huì)產(chǎn)生一個(gè)有效的內(nèi)容檢查碼,,內(nèi)容是透過(guò)開機(jī)管理程序下載而來(lái),,另一個(gè)工具從編譯器的輸出端提供下載檔案,,這個(gè)*.dld檔案含有hex編碼格式的內(nèi)容,和新的檢查碼一起編排成Flash模塊,,且可透過(guò)由Visual Basic或C#語(yǔ)言撰寫的個(gè)人計(jì)算機(jī)程序分析讀取,。本文列舉之上述方式,可把新的使用者程序透過(guò)USB接口下載到裝置中,,讓最終使用者升級(jí)其產(chǎn)品,、除錯(cuò)或改進(jìn)功能,不但不須使用任何特殊硬件進(jìn)行升級(jí),,且毋需成本昂貴的產(chǎn)品召回或更換作業(yè),。 

北京迪陽(yáng)世紀(jì)科技有限責(zé)任公司 版權(quán)所有 ? 2008 - 2018 著作權(quán)聲明
010-62156134 62169728 13301007825 節(jié)假日:13901042484 微信號(hào):sun62169728
地址:北京市西城阜外百萬(wàn)莊扣鐘北里7號(hào)公寓
E_mail:[email protected] 傳真: 010-68328400
京ICP備17023194號(hào)-1 公備110108007750