[發(fā)明專利]一種基于FPGA的遠(yuǎn)程固件升級(jí)方法在審
| 申請(qǐng)?zhí)枺?/td> | 202111147381.2 | 申請(qǐng)日: | 2021-09-29 |
| 公開(公告)號(hào): | CN113867771A | 公開(公告)日: | 2021-12-31 |
| 發(fā)明(設(shè)計(jì))人: | 周天;黃杰;杜偉東;陳寶偉;胡永翔 | 申請(qǐng)(專利權(quán))人: | 哈爾濱工程大學(xué);上海聲之揚(yáng)科技有限公司 |
| 主分類號(hào): | G06F8/654 | 分類號(hào): | G06F8/654 |
| 代理公司: | 成都方圓聿聯(lián)專利代理事務(wù)所(普通合伙) 51241 | 代理人: | 鄧永紅 |
| 地址: | 150001 黑龍江*** | 國(guó)省代碼: | 黑龍江;23 |
| 權(quán)利要求書: | 查看更多 | 說(shuō)明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 fpga 遠(yuǎn)程 升級(jí) 方法 | ||
1.一種基于FPGA的遠(yuǎn)程固件升級(jí)方法,其特征在于,包括以下幾個(gè)步驟:
步驟一:PC端上位機(jī)通過(guò)網(wǎng)口向設(shè)備內(nèi)部FPGA芯片的Nios系統(tǒng)發(fā)送固件文件;
步驟二:Nios系統(tǒng)將接收到的固件臨時(shí)存儲(chǔ)到RAM中;
步驟三:Nios將RAM中的固件文件分段讀出打包傳輸?shù)紽lash控制器;
步驟四:Flash控制器接收到打包的固件文件,并確認(rèn)正確性,確認(rèn)正確后再燒寫到Flash芯片中。
2.根據(jù)權(quán)利要求1所述的一種基于FPGA的遠(yuǎn)程固件升級(jí)方法,其特征在于,步驟三具體步驟包括:
SIII1:發(fā)送Flash燒寫狀態(tài)機(jī)復(fù)位命令rest_str使FPGA燒寫狀態(tài)機(jī)就位;
SIII2:發(fā)送Flash芯片整片擦除命令erase_str,并等待接收Flash擦除完成命令;
SIII3:判斷等待接收命令時(shí)間是否超時(shí);若超時(shí)則執(zhí)行步驟SIII1,若沒超時(shí)則判斷是否為Flash擦除完成命令;若為Flash擦除完成命令則執(zhí)行下一步,若不是則執(zhí)行步驟SIII1;
SIII4:根據(jù)接收到的總字節(jié)數(shù)A,及一幀要傳輸?shù)淖止?jié)數(shù)B,得到即將要傳輸?shù)目倲?shù)據(jù)幀數(shù)M=A/B;
SIII5:判斷即將打包的數(shù)據(jù)幀編號(hào)i是否大于總數(shù)據(jù)幀M,i取值從1到M;若大于M,則執(zhí)行步驟SIII8;否則,執(zhí)行下一步;
SIII6:打包并發(fā)起第i幀數(shù)據(jù)傳輸;
SIII7:等待回復(fù),收到正確回復(fù),則i=i+1;錯(cuò)誤回復(fù),則i=i;或者超過(guò)1秒鐘無(wú)回復(fù),則i=i;執(zhí)行步驟SIII5;
SIII8:發(fā)送燒寫結(jié)束命令;
SIII9:等待回復(fù),判斷回復(fù)是否正確;若正確,則結(jié)束;否則,則執(zhí)行步驟SIII8。
3.根據(jù)權(quán)利要求2所述的一種基于FPGA的遠(yuǎn)程固件升級(jí)方法,其特征在于,SIII6中打包的數(shù)據(jù)格式為:幀頭+要傳輸?shù)臄?shù)據(jù)字節(jié)數(shù)+幀編號(hào)+待傳輸數(shù)據(jù)+校驗(yàn)和;
幀頭為1個(gè)字節(jié),為固定值0xFA;
要傳輸?shù)臄?shù)據(jù)字節(jié)數(shù),為1個(gè)字節(jié),值為N;
幀編號(hào),為2個(gè)字節(jié),值為i;
待傳輸數(shù)據(jù),為N個(gè)字節(jié),第i段固件文件數(shù)據(jù);
校驗(yàn)和,為1個(gè)字節(jié),值為前面所有字節(jié)求和后取256的余數(shù)。
4.根據(jù)權(quán)利要求1所述的一種基于FPGA的遠(yuǎn)程固件升級(jí)方法,其特征在于,步驟四的具體步驟包括:
SIV1:等待接收Flash芯片整片擦除命令;
SIV2:判斷是否接收到Flash芯片整片擦除命令;若是則執(zhí)行下一步,否則執(zhí)行步驟SIV1;
SIV3:執(zhí)行整片F(xiàn)lash芯片擦除命令;
SIV4:判斷Flash芯片是否擦除完成;若完成,則執(zhí)行下一步,否則執(zhí)行SIV3;
SIV5:讀取一個(gè)字節(jié)數(shù)據(jù),并判斷是否有復(fù)位信號(hào)產(chǎn)生;若沒有復(fù)位信號(hào)產(chǎn)生,則執(zhí)行下一步;否則執(zhí)行步驟SIV1;
SIV6:判斷是否為幀頭head;若是,則執(zhí)行下一步;否則執(zhí)行步驟SIV15;
SIV7:緊接著讀取一個(gè)字節(jié)做為當(dāng)前即將傳輸數(shù)據(jù)幀總長(zhǎng)度N,并判斷是否有復(fù)位信號(hào)產(chǎn)生;若沒有復(fù)位信號(hào)產(chǎn)生,則執(zhí)行下一步;否則執(zhí)行步驟SIV1;
SIV8:緊接著讀取2個(gè)字節(jié)數(shù)據(jù)組成一個(gè)16位的無(wú)符號(hào)整數(shù)做為當(dāng)前數(shù)據(jù)幀的片段在全部數(shù)據(jù)中的偏移量i,然后計(jì)算即將寫入Flash存儲(chǔ)器指定區(qū)域的首地址addr=N*I,并判斷是否有復(fù)位信號(hào)產(chǎn)生;若沒有復(fù)位信號(hào)產(chǎn)生,則執(zhí)行下一步;否則執(zhí)行步驟SIV1;
SIV9:緊接著讀取N個(gè)字節(jié)寫入到Flash控制器中,同時(shí)向Flash控制器輸入存儲(chǔ)的首地址addr,并判斷是否有復(fù)位信號(hào)產(chǎn)生,并判斷是否有復(fù)位信號(hào)產(chǎn)生;若沒有復(fù)位信號(hào)產(chǎn)生,則執(zhí)行下一步;否則執(zhí)行步驟SIV1;
SIV10:緊接著讀取1個(gè)字節(jié)為前面讀取的所有字節(jié)的校驗(yàn)和,并和本地自己求的校驗(yàn)和比較,并判斷是否有復(fù)位信號(hào)產(chǎn)生;若沒有復(fù)位信號(hào)產(chǎn)生,則執(zhí)行下一步;否則執(zhí)行步驟SIV1;
SIV11:判斷校驗(yàn)和是否一致;若一致則執(zhí)行下一步;否則執(zhí)行步驟SIV14;
SIV12:使能Flash控制器中的燒寫使能信號(hào),執(zhí)行燒寫程序;
SIV13:等待燒寫完成,并回復(fù)right,表示正常接收到數(shù)據(jù),可以接收下一幀數(shù)據(jù);然后執(zhí)行步驟SIV5;
SIV14:回復(fù)error,表示接收數(shù)據(jù)異常,請(qǐng)重新傳輸當(dāng)前的數(shù)據(jù)幀;
SIV15:判斷是否為燒寫結(jié)束命令over;若是則執(zhí)行下一步;否則執(zhí)行步驟SIV5;
SIV16:回復(fù)收到燒寫結(jié)束命令get_over;結(jié)束燒寫過(guò)程。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于哈爾濱工程大學(xué);上海聲之揚(yáng)科技有限公司,未經(jīng)哈爾濱工程大學(xué);上海聲之揚(yáng)科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202111147381.2/1.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 用于提供遠(yuǎn)程幫助的方法和服務(wù)器
- 遠(yuǎn)程登錄會(huì)話維護(hù)方法、遠(yuǎn)程登錄代理和計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)
- 汽車遠(yuǎn)程控制裝置和方法
- 一種基于EMS系統(tǒng)的變電站遠(yuǎn)程監(jiān)控系統(tǒng)
- 遠(yuǎn)程控制終端、遠(yuǎn)程控制方法、遠(yuǎn)程受控終端和遠(yuǎn)程受控方法
- 對(duì)遠(yuǎn)程受控終端的受控方式進(jìn)行自定義的裝置及方法
- 一種基于互聯(lián)網(wǎng)的移動(dòng)遠(yuǎn)程醫(yī)療綜合服務(wù)系統(tǒng)
- 一種遠(yuǎn)程控制方法、裝置及存儲(chǔ)介質(zhì)
- 一種遠(yuǎn)程炒菜機(jī)、遠(yuǎn)程炒菜機(jī)系統(tǒng)及遠(yuǎn)程炒菜方法
- 一種計(jì)算機(jī)遠(yuǎn)程控制組件
- 一種機(jī)頂盒Loader模塊升級(jí)方法及其機(jī)頂盒
- 產(chǎn)品升級(jí)的方法和設(shè)備
- 一種機(jī)頂盒的升級(jí)方法和裝置
- 網(wǎng)絡(luò)設(shè)備升級(jí)方法、升級(jí)服務(wù)器、終端設(shè)備及存儲(chǔ)介質(zhì)
- 無(wú)人機(jī)系統(tǒng)中的模塊升級(jí)方法及待升級(jí)模塊
- 一種基于主分結(jié)構(gòu)的應(yīng)用升級(jí)及升級(jí)版本控制方法及系統(tǒng)
- 一種升級(jí)方法及裝置
- 一種終端升級(jí)方法、裝置、終端及存儲(chǔ)介質(zhì)
- 一種車輛升級(jí)方法、裝置、終端及存儲(chǔ)介質(zhì)
- 設(shè)備升級(jí)方法、裝置及服務(wù)器





