欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

嵌入式終端設備固件升級方法及系統(tǒng)與流程

文檔序號:12119932閱讀:500來源:國知局
嵌入式終端設備固件升級方法及系統(tǒng)與流程

本發(fā)明涉及嵌入式終端設備固件升級方法及系統(tǒng),特別是涉及一種基于雙CPU系統(tǒng)的嵌入式終端設備固件無縫升級方法及系統(tǒng)。



背景技術:

嵌入式技術的迅速發(fā)展使得越來越多的嵌入式終端設備應用在人們的日常生活中,其中不乏應用在一些偏遠地方,甚至工作在無人看管的場合下。

目前對嵌入式終端設備進行固件升級的方式主要有兩種,一種是由維護人員親自到達設備現(xiàn)場使用仿真器或者燒寫工具進行固件升級,如果設備分布在一些偏遠地方,那么這種升級方式將浪費大量的人力資源,效率低。另外一種是在線升級方式:在程序運行過程中接收升級文件并覆蓋舊程序。此種在線升級方式的不足之處在于:

(1)一旦升級過程出現(xiàn)異常(如中斷、干擾、錯碼、突然斷電或是設備無故重啟等異常情況)會導致升級失敗,進而導致設備崩潰;

(2)新程序出現(xiàn)問題時無法切換回舊程序;

(3)升級完成后設備必須重新啟動,會中斷處理當前業(yè)務一段時間,對于工業(yè)場合應用的設備可能會導致致命的后果。



技術實現(xiàn)要素:

為了解決上述傳統(tǒng)固件升級方式中存在的不足,提出一種新的方便快捷、可靠性高的基于雙CPU系統(tǒng)嵌入式終端設備固件升級方法及系統(tǒng),目的在于:確保固件能夠被有效升級成功,防止系統(tǒng)在固件升級過程中因為異常而導致升級失敗,進而導致系統(tǒng)崩潰;實現(xiàn)雙CPU系統(tǒng)的控制權的無縫切換,避免升級過程中設備重啟間隙對系統(tǒng)造成的隱患。

為實現(xiàn)上述的目的,本發(fā)明提供一種嵌入式終端設備固件升級方法,包括以下步驟:

外部固定電平?jīng)Q定初始CPU控制權;主控CPU和輔控CPU執(zhí)行初始化;所述主控CPU和輔控CPU判斷是否為固件升級指令;

所述主控CPU與輔控CPU接收固件升級程序;

所述輔控CPU對固件升級程序進行校驗;

所述輔控CPU將新的固件升級程序?qū)懭氪鎯^(qū);

所述輔控CPU接收升級指令開始升級,升級后復位運行新程序,完成主控CPU和輔控CPU的控制權的交換;

其中,所述主控CPU與輔控CPU之間通過雙向通信完成兩者間指令的接收和傳達。

本發(fā)明還提供一種嵌入式終端設備固件升級系統(tǒng),包括:服務器,主控CPU,輔控CPU,通信模塊,存儲模塊以及外部固定電平,其中:

所述服務器用于提供新的固件升級程序,并向主控CPU傳達指令;

所述主控CPU與輔控CPU之間通過通信接口完成雙向通信連接;

所述主控CPU,用于向服務器傳達指令,接收服務器發(fā)送的指令;向輔控CPU傳達指令,接收輔控CPU發(fā)送的指令;還用于控制系統(tǒng)的運行;

所述輔控CPU,用于向主控CPU傳達指令,接收主控CPU發(fā)送的指令;還用于進行固件升級程序的校驗,并進行固件升級;

所述存儲模塊,用于存儲固件升級程序;

所述通信模塊,用于建立服務器與主控CPU以及服務器與輔控CPU間的連接;

所述外部固定電平,用于決定初始CPU控制權。

相對于現(xiàn)有技術的固件升級方法,本發(fā)明的基于雙CPU系統(tǒng)的固件升級方法及系統(tǒng)具有如下技術效果:

1、本發(fā)明將原來由單一CPU控制的系統(tǒng)改為雙CPU控制,雙CPU間通過雙向通信連接,實現(xiàn)了固件升級后,CPU控制權的無縫切換,避免了升級過程中的設備重啟間隙對系統(tǒng)造成的隱患。

2、本發(fā)明可以很方便的實現(xiàn)新舊程序之間的切換,只需通過服務器發(fā)送切換CPU控制權指令就可實現(xiàn)。

3、本發(fā)明避免出現(xiàn)升級過程由于異常情況導致系統(tǒng)崩潰問題。

4、本發(fā)明固件升級方法節(jié)省人力,方便快捷,可靠性高。

5、本發(fā)明固件升級完成后無需重新啟動設備,可以繼續(xù)當前業(yè)務的進程。

6、本發(fā)明存儲模塊的設置,使得雙CPU的固件升級程序可以分別獨立存儲。

附圖說明

圖1是本發(fā)明升級系統(tǒng)結(jié)構框架圖;

圖2是本發(fā)明主控CPU固件升級流程圖;

圖3是本發(fā)明輔控CPU固件升級流程圖。

具體實施方式

下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述:

如圖1所示,本發(fā)明提供一種嵌入式終端設備固件升級系統(tǒng),包括:

服務器,主控CPU,輔控CPU,通信模塊,存儲模塊以及外部固定電平,其中:

所述服務器用于提供新的固件升級程序,并向主控CPU傳達指令;

所述主控CPU與輔控CPU之間通過通信接口完成雙向通信連接;

所述主控CPU,用于向服務器傳達指令,接收服務器發(fā)送的指令;向輔控CPU傳達指令,接收輔控CPU發(fā)送的指令;還用于控制系統(tǒng)的運行;

所述輔控CPU,用于向主控CPU傳達指令,接收主控CPU發(fā)送的指令;還用于進行固件升級程序的校驗,并進行固件升級;

所述存儲模塊,用于存儲固件升級程序;

所述通信模塊,用于建立服務器與主控CPU以及服務器與輔控CPU間的連接;

所述外部固定電平,用于決定初始CPU控制權。

進一步地,所述存儲模塊包括:主控CPU的FLASH存儲區(qū)和輔控CPU的FLASH存儲區(qū),其中,所述主控CPU的FLASH存儲區(qū)與主控CPU連接,用于存儲主控CPU的固件升級程序;所述輔控CPU的FLASH存儲區(qū)與輔控CPU連接,用于存儲輔控CPU的固件升級程序。

本實施例中,所述服務器通過通信模塊連接在雙CPU的相應輸入管腳上,并向雙CPU傳輸信號;雙CPU的信號通過二輸入或門對外驅(qū)動外部接口。

進一步地,所述主控CPU10與輔控CPU20之間至少有一種通信接口完成雙向通信,本實施例所述雙CPU間的雙向通信是串口通信連接,從而實現(xiàn)主控CPU10與輔控CPU20間指令的相互傳送,完成CPU控制權的無縫切換。所述雙CPU間的雙向通信還可以是SPI連接。

進一步地,所述服務器可以通過有線或無線方式與雙CPU連接。本實施例優(yōu)選無線方式連接。

如圖2所示,本發(fā)明提供的一種嵌入式終端設備固件程序升級方法,在固件升級過程中,主控CPU進行固件升級的流程如下:

首先,上電檢測是否為主控CPU,外部固定電平?jīng)Q定初始主控CPU;主控CPU按照正常業(yè)務流程執(zhí)行初始化。

步驟S102,某一時間主控CPU與服務器通信處理程序發(fā)生中斷,主控CPU需判斷是否為固件升級指令;若非固件升級指令,則繼續(xù)判斷是否為其他自定義指令。

步驟S103,若為固件升級指令,主控CPU通知輔控CPU準備接收固件升級程序;待收到輔控CPU準備好接收的指令后,主控CPU向服務器回復固件升級指令。

步驟S105,服務器按照既定協(xié)議向主控CPU發(fā)送固件升級程序,主控CPU接收的同時將固件升級程序轉(zhuǎn)發(fā)給輔控CPU。

輔控CPU收到完整固件升級指令后通知主控CPU,主控CPU通知服務器已接收完新固件升級程序并準備升級,然后主控CPU將服務器開始升級的指令轉(zhuǎn)送給輔控CPU。

步驟S110,主控CPU接收輔控CPU校驗失敗的指令后,主控CPU向服務器發(fā)送重發(fā)固件升級程序請求。

步驟S111,接收到輔控CPU的傳送狀態(tài)值指令后,主控CPU將系統(tǒng)當前所有狀態(tài)變量以及所有輸出IO口狀態(tài)傳輸給輔控CPU。

主控CPU發(fā)送控制權交換指令給輔控CPU,此時主控CPU關閉除了與輔控CPU通信中斷以外的所有中斷,等待輔控CPU完成控制狀態(tài)切換。

主控CPU接收到狀態(tài)切換完成指令之后將自己所有的輸出口切換為輸出低電平,主控CPU切換到新輔控CPU流程。

如圖3所示,本發(fā)明提供的一種嵌入式終端設備固件程序升級方法,在固件升級過程中,輔控CPU進行固件升級的流程如下:

首先,上電檢測是否為輔控CPU,外部固定電平?jīng)Q定輔控CPU;輔控CPU將所有輸出口初始化為低電平,輸入口正常設置為輸入口。

步驟S202,某一時間輔控CPU與主控CPU通信處理程序發(fā)生中斷,輔控CPU需判斷是否為固件升級指令;若非固件升級指令,則繼續(xù)判斷是否為其他自定義指令。

步驟S204,若為固件升級指令,輔控CPU收到主控CPU發(fā)送的接收指令后,通知主控CPU已經(jīng)準備好接受固件升級程序。

步驟S206,輔控CPU接收主控CPU轉(zhuǎn)發(fā)的固件升級程序。

步驟S207,輔控CPU對固件升級程序進行校驗。

步驟S208,若校驗結(jié)果準確,輔控CPU將固件升級程序?qū)懭胱约旱妮o控CPU的FLASH存儲區(qū)準備升級,同時輔控CPU通知主控CPU已接收到完整固件升級程序,輔控CPU收到開始升級指令后進行固件升級,輔控CPU升級完之后觸發(fā)看門狗復位開始運行新固件程序,在初始化后通知主控CPU發(fā)送系統(tǒng)當前所有狀態(tài)值。

步驟S209,若校驗不準確,輔控CPU通知主控CPU校驗失敗,向主控CPU發(fā)送重發(fā)固件程序升級請求。

步驟S212,輔控CPU向主控CPU發(fā)送接收完狀態(tài)值指令,準備開始控制權交換。

輔控CPU接收主控CPU發(fā)送的控制權交換指令,輔控CPU完成狀態(tài)切換之后通知主控CPU已完成狀態(tài)切換,開始控制系統(tǒng)運行。輔控CPU狀態(tài)切換為新主控CPU并控制系統(tǒng)運行,完成CPU控制權的交換。

結(jié)合圖1、2和3,對本發(fā)明提供的一種嵌入式終端設備固件程序升級方法的步驟做具體描述:

首先,上電檢測是否為主控CPU,是否為輔控CPU,外部固定電平?jīng)Q定是主控CPU還是輔控CPU;主控CPU和輔控CPU執(zhí)行正常業(yè)務流程初始化:主控CPU按照正常業(yè)務流程執(zhí)行初始化,輔控CPU將所有輸出口初始化為低電平,輸入口正常設置為輸入口。

步驟S102,某一時間主控CPU與服務器通信處理程序發(fā)生中斷,主控CPU需判斷是否為固件升級指令;若非固件升級指令,則繼續(xù)判斷是否為其他自定義指令。

步驟S202,某一時間輔控CPU與主控CPU通信處理程序發(fā)生中斷,輔控CPU需判斷是否為固件升級指令;若非固件升級指令,則繼續(xù)判斷是否為其他自定義指令。

步驟S103,若為固件升級指令,主控CPU通過通知輔控CPU準備接收固件升級程序。

步驟S204,輔控CPU通知主控CPU已經(jīng)準備好接受固件升級程序。

步驟S105,主控CPU向服務器回復固件升級指令響應;服務器按照既定協(xié)議向主控CPU發(fā)送固件升級程序,同時主控CPU將固件升級程序轉(zhuǎn)發(fā)給輔控CPU。

步驟S206,輔控CPU接收主控CPU轉(zhuǎn)發(fā)的固件升級程序。

步驟S207,輔控CPU對固件升級程序進行校驗。

步驟S208,若校驗結(jié)果準確,輔控CPU將固件升級程序?qū)懭胱约旱妮o控CPU的FLASH存儲區(qū)準備升級,同時輔控CPU通知主控CPU已接收到完整固件升級程序,并由主控CPU通知服務器已接收完新固件升級程序并準備升級。輔控CPU進行固件升級,輔控CPU升級完之后觸發(fā)看門狗復位開始運行新固件程序,在初始化后通知主控CPU準備接收系統(tǒng)當前所有狀態(tài)值。

步驟S209,若校驗不準確,輔控CPU通知主控CPU校驗失敗,向主控CPU發(fā)送重發(fā)固件程序升級請求。

步驟S110,主控CPU向服務器發(fā)送重發(fā)固件升級程序請求。

步驟S111,主控CPU將系統(tǒng)當前所有狀態(tài)變量以及所有輸出IO口狀態(tài)傳輸給輔控CPU。

步驟S212,輔控CPU向主控CPU發(fā)送接收完狀態(tài)值指令,準備開始控制權交換。

主控CPU發(fā)送控制權交換指令給輔控CPU,此時主控CPU關閉除了與輔控CPU通信中斷以外的所有中斷,等待輔控CPU完成控制狀態(tài)切換。輔控CPU完成狀態(tài)切換之后通知主控CPU已完成狀態(tài)切換,開始控制系統(tǒng)運行。

主控CPU接收到狀態(tài)切換完成指令之后將自己所有的輸出口切換為輸出低電平,轉(zhuǎn)變?yōu)樾螺o控CPU,等待新主控CPU發(fā)送指令,與此同時輔控CPU狀態(tài)切換為新主控CPU控制系統(tǒng)運行,完成CPU控制權的交換。

若再次固件升級,則只需此狀態(tài)下的新主控CPU和新輔控CPU重復以上步驟即可進行新固件的升級。

綜上所述,本發(fā)明通過雙向通信連接的雙CPU系統(tǒng),進行固件升級解決了傳統(tǒng)固件升級方法在升級過程中出現(xiàn)異常導致升級失敗進而導致設備崩潰的問題;避免升級過程中設備重啟間隙對系統(tǒng)造成的隱患;在保證系統(tǒng)不癱瘓的同時,雙CPU系統(tǒng)進行CPU控制權的無縫切換進而實現(xiàn)嵌入式終端設備固件方便快捷、可靠地升級。

以上所述,僅是本發(fā)明的較佳實施方式,不應該被視為是對本發(fā)明范圍的限制,而且本發(fā)明所主張的權利要求范圍并不僅局限于此,凡熟悉此領域技藝的人士,依據(jù)本發(fā)明所揭露的技術內(nèi)容,可輕易思及的等效變化,均應落入本發(fā)明的保護范圍。

當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
大邑县| 理塘县| 自治县| 屏南县| 依安县| 永吉县| 南宫市| 桃园县| 宜川县| 象山县| 琼结县| 建湖县| 曲水县| 油尖旺区| 建阳市| 梅州市| 甘谷县| 阿克| 西乌| 山丹县| 十堰市| 浮梁县| 嘉定区| 鸡泽县| 新泰市| 宣武区| 邹平县| 博野县| 旺苍县| 柳州市| 卢龙县| 铜山县| 吉首市| 丘北县| 开化县| 黑龙江省| 象山县| 邛崃市| 新密市| 武宣县| 和平区|