本申請屬于嵌入式設(shè)備升級,具體涉及一種多mcu固件升級方法。
背景技術(shù):
1、隨著嵌入式技術(shù)的發(fā)展,嵌入式系統(tǒng)的功能越來越強大,一個嵌入式系統(tǒng)里面往往包含幾塊mcu(microcontroller?unit,微控制單元)在協(xié)同工作,而每塊mcu里都設(shè)置有對應(yīng)的嵌入式固件程序,而固件程序往往是通過芯片廠商預(yù)留的swd(serial?wire?debug,串行線調(diào)試端口)和jtag(jtag?debug?port,聯(lián)合測試端口)進行程序燒寫,如果產(chǎn)品封裝好了后,就沒有辦法采用預(yù)留的swd端口和jtag端口來進行固件程序升級,只能請專業(yè)人員攜帶指定仿真器前往產(chǎn)品所在地現(xiàn)場進行更新,成本高昂。
2、現(xiàn)有技術(shù)中通常采用串口iap(in?application?programming,應(yīng)用編程)對單個mcu的固件程序進行升級,但是這種方式并不能實現(xiàn)對多個mcu的固件程序進行升級,導(dǎo)致升級效率低下且存在諸多限制和不便。
技術(shù)實現(xiàn)思路
1、本申請?zhí)峁┝艘环N多mcu固件升級方法,用于實現(xiàn)對多路mcu固件程序的升級,能夠有效提高固件程序升級效率。
2、為了解決上述技術(shù)問題,本申請?zhí)峁┝艘环N多mcu固件升級方法,應(yīng)用于主mcu單元,該方法包括以下步驟:
3、接收上位機單元發(fā)送的預(yù)備指令,根據(jù)所述預(yù)備指令通知若干個從mcu單元進入升級模式;
4、接收所述上位機單元發(fā)送的升級指令,判斷所述升級指令中的地址編號是否為所述主mcu單元的地址編號,若是,接收所述上位機單元根據(jù)ymodem協(xié)議逐幀發(fā)送的應(yīng)用程序;
5、若否,向若干個所述從mcu單元發(fā)送地址編號,通知所述地址編號對應(yīng)的所述從mcu單元進入接收模式,并將當前時刻接收的所述數(shù)據(jù)幀封裝成數(shù)據(jù)幀包逐幀發(fā)送至對應(yīng)的所述從mcu單元;
6、接收所述從mcu單元反饋的響應(yīng)信號,判斷所述響應(yīng)信號中的數(shù)據(jù)編號與所述數(shù)據(jù)幀包的數(shù)據(jù)編號是否一致,若一致,向所述上位機單元發(fā)送接收正常信號;若不一致,向所述上位機單元發(fā)送接收異常信號。
7、作為本申請的進一步改進,所述接收上位機單元發(fā)送的預(yù)備指令,根據(jù)所述預(yù)備指令通知若干個從mcu單元進入升級模式,包括:
8、啟動bootloader引導(dǎo)程序,判斷預(yù)設(shè)時間內(nèi)是否接收到上位機單元發(fā)送的所述預(yù)備指令,若否,跳轉(zhuǎn)至對應(yīng)的應(yīng)用程序進行運行;
9、若是,進入升級模式,并發(fā)送廣播通知若干個所述從mcu單元進入升級模式;其中,所述主mcu單元和若干個所述從mcu單元均設(shè)置有對應(yīng)的bootloader引導(dǎo)程序和應(yīng)用程序。
10、作為本申請的進一步改進,所述將當前時刻接收的所述數(shù)據(jù)幀封裝成數(shù)據(jù)幀包逐幀發(fā)送至對應(yīng)的所述從mcu單元,包括:
11、將當前時刻接收的所述數(shù)據(jù)幀封裝成數(shù)據(jù)幀包,將所述數(shù)據(jù)幀包逐幀發(fā)送至對應(yīng)的所述從mcu單元;其中,所述數(shù)據(jù)幀包的每一幀都設(shè)置有對應(yīng)的數(shù)據(jù)編號。
12、作為本申請的進一步改進,當所述主mcu單元和若干個所述從mcu單元均接收完畢對應(yīng)的所述應(yīng)用程序后,接收所述上位機單元發(fā)送的升級完成指令;
13、跳轉(zhuǎn)至對應(yīng)的應(yīng)用程序,并發(fā)送廣播通知若干個所述從mcu單元跳轉(zhuǎn)至對應(yīng)的所述應(yīng)用程序中以完成升級。
14、作為本申請的進一步改進,所述上位機單元通過usb轉(zhuǎn)串口線與所述主mcu單元連接,所述主mcu單元與若干個所述從mcu單元之間通過串口連接。
15、本申請?zhí)峁┝艘环N應(yīng)用于從mcu單元的多mcu固件升級方法,該方法包括以下步驟:
16、判斷是否接收到主mcu單元發(fā)送的預(yù)備指令,若是,進入升級模式;若否,跳轉(zhuǎn)至對應(yīng)的應(yīng)用程序進行運行;
17、當進入所述升級模式后,接收所述主mcu單元發(fā)送的地址編號,判斷所述地址編號是否與自身的地址編號相一致,若是,進入接收模式,若否,繼續(xù)處于所述升級模式;
18、當進入所述接收模式后,接收所述主mcu單元逐幀發(fā)送的數(shù)據(jù)幀包,接收完當前一幀后向所述主控mcu單元反饋響應(yīng)信號。
19、作為本申請的進一步改進,所述判斷是否接收到主mcu單元發(fā)送的預(yù)備指令,包括:
20、啟動bootloader引導(dǎo)程序,判斷預(yù)設(shè)時間內(nèi)是否接收到主mcu單元發(fā)送的所述預(yù)備指令,若否,跳轉(zhuǎn)至對應(yīng)的應(yīng)用程序進行運行;
21、若是,進入升級模式,等待接收所述主mcu單元發(fā)送的地址編號;其中,每個所述從mcu單元均設(shè)置有對應(yīng)的bootloader程序和應(yīng)用程序。
22、作為本申請的進一步改進,當接收完畢對應(yīng)的所述應(yīng)用程序后,接收所述主mcu轉(zhuǎn)發(fā)的升級完成指令,根據(jù)所述升級完成指令跳轉(zhuǎn)至對應(yīng)的所述應(yīng)用程序中以完成升級。
23、本申請?zhí)峁┝艘环N應(yīng)用于上位機單元的多mcu固件升級方法,該方法包括以下步驟:
24、向主mcu單元發(fā)送預(yù)備指令,以使所述主mcu單元和若干個所述從mcu單元進入升級模式;
25、向所述主mcu單元發(fā)送升級指令,并根據(jù)ymodem協(xié)議將應(yīng)用程序以數(shù)據(jù)幀的形式逐幀發(fā)送至所述主mcu單元;
26、當所述應(yīng)用程序的當前一幀發(fā)送完畢后,判斷是否接收到所述主mcu單元反饋的接收正常信號,若是,繼續(xù)向所述主mcu單元發(fā)送所述應(yīng)用程序的下一幀;若否,停止向所述主mcu單元發(fā)送所述下一幀。
27、作為本申請的進一步改進,當向所述主mcu單元發(fā)送完對應(yīng)的所述應(yīng)用程序后,向所述主mcu單元發(fā)送升級完成指令,以使所述主mcu單元和若干個所述從mcu單元均跳轉(zhuǎn)至對應(yīng)的應(yīng)用程序完成升級。
28、本申請?zhí)峁┑囊环N多mcu固件升級方法,具有以下有益效果:
29、本申請?zhí)峁┑亩鄊cu固件升級方法,應(yīng)用于上位機單元、主mcu單元和若干個從mcu單元之間,由主mcu單元接收上位機單元發(fā)送的預(yù)備指令并通知若干個從mcu單元進入升級模式,再進一步接收上位機單元發(fā)送的升級指令,根據(jù)該指令進入接收模式或通知該指令對應(yīng)的其它從mcu單元進行接收模式,接收上位機單元根據(jù)ymodem協(xié)議逐幀發(fā)送的應(yīng)用程序,并將當前時刻接收的所述數(shù)據(jù)幀封裝成數(shù)據(jù)幀包逐幀發(fā)送至對應(yīng)的從mcu單元,直至完成整個升級數(shù)據(jù)包的發(fā)送與接收,從而通過上位機單元實現(xiàn)對若干個mcu單元的固件程序升級,有效提高了升級效率;當從mcu單元接收后還會向主控mcu單元反饋響應(yīng)信號,由主mcu單元將該響應(yīng)信號中的數(shù)據(jù)編號和數(shù)據(jù)幀包中的數(shù)據(jù)編號進行比對,比對一致后再由上位機單元繼續(xù)發(fā)送下一幀,在實現(xiàn)多mcu固件程序升級的同時確保了傳輸過程中數(shù)據(jù)的準確性,便于操作且升級成本低。
1.一種多mcu固件升級方法,應(yīng)用于主mcu單元,其特征在于,包括以下步驟:
2.如權(quán)利要求1所述的多mcu固件升級方法,其特征在于,所述接收上位機單元發(fā)送的預(yù)備指令,根據(jù)所述預(yù)備指令通知若干個從mcu單元進入升級模式,包括:
3.如權(quán)利要求1所述的多mcu固件升級方法,其特征在于,所述將當前時刻接收的所述數(shù)據(jù)幀封裝成數(shù)據(jù)幀包逐幀發(fā)送至對應(yīng)的所述從mcu單元,包括:
4.如權(quán)利要求1所述的多mcu固件升級方法,其特征在于,還包括:
5.如權(quán)利要求1所述的多mcu固件升級方法,其特征在于,所述上位機單元通過usb轉(zhuǎn)串口線與所述主mcu單元連接,所述主mcu單元與若干個所述從mcu單元之間通過串口連接。
6.一種多mcu固件升級方法,應(yīng)用于從mcu單元,其特征在于,包括以下步驟:
7.如權(quán)利要求6所述的多mcu固件升級方法,其特征在于,所述判斷是否接收到主mcu單元發(fā)送的預(yù)備指令,包括:
8.如權(quán)利要求6所述的多mcu固件升級方法,其特征在于,還包括:
9.一種多mcu固件升級方法,應(yīng)用于上位機單元,其特征在于,包括以下步驟:
10.如權(quán)利要求9所述的多mcu固件升級方法,其特征在于,還包括: