一種嵌入式系統(tǒng)及其升級(jí)維護(hù)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信技術(shù)領(lǐng)域,具體地說(shuō),涉及一種嵌入式系統(tǒng)及其升級(jí)維護(hù)方法。
【背景技術(shù)】
[0002]嵌入式系統(tǒng)廣泛應(yīng)用于通信、工業(yè)控制等領(lǐng)域的產(chǎn)品中。嵌入式微處理器(Microcontroller Unit,簡(jiǎn)稱MCU)是嵌入式系統(tǒng)存儲(chǔ)設(shè)備的核心部分,在實(shí)際應(yīng)用中,經(jīng)常存在諸如存儲(chǔ)設(shè)備程序升級(jí)等維護(hù)需求。傳統(tǒng)的MCU程序升級(jí)通常使用專用編程器、PC機(jī)和下載線纜等硬件存儲(chǔ)設(shè)備來(lái)實(shí)現(xiàn)。在環(huán)境復(fù)雜的現(xiàn)場(chǎng)使用情況下,上述手段依賴多種不同的硬件,甚至需要對(duì)存儲(chǔ)設(shè)備進(jìn)行拆裝方能實(shí)現(xiàn)升級(jí)維護(hù),存在諸多不便并且效率較低。
[0003]因此,隨著科技的進(jìn)步,人們開(kāi)始通過(guò)利用通用串行總線(Universal SerialBus,簡(jiǎn)稱USB)接口連接各種存儲(chǔ)設(shè)備(例如U盤)來(lái)對(duì)MCU進(jìn)行升級(jí)維護(hù),使得MCU的升級(jí)維護(hù)變得較為簡(jiǎn)單易行。
[0004]但發(fā)明人發(fā)現(xiàn),現(xiàn)有技術(shù)中,若想通過(guò)U盤等USB存儲(chǔ)設(shè)備來(lái)為MCU進(jìn)行升級(jí)維護(hù),則該MCU必須自帶USB主模式的控制功能,否則無(wú)法實(shí)現(xiàn)與USB存儲(chǔ)設(shè)備的通訊。因此,能夠采用USB存儲(chǔ)設(shè)備進(jìn)行升級(jí)維護(hù)的MCU的種類、規(guī)格受到限制,仍無(wú)法徹底解決MCU升級(jí)不便的問(wèn)題。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的在于提供一種嵌入式系統(tǒng)及其升級(jí)維護(hù)方法,以解決MCU升級(jí)不便的技術(shù)問(wèn)題。
[0006]本發(fā)明提供了一種嵌入式系統(tǒng)的升級(jí)維護(hù)方法,該嵌入式系統(tǒng)包括上位機(jī)和可與該上位機(jī)通訊的下位機(jī),所述上位機(jī)設(shè)置有通用串行總線接口,該方法包括:
[0007]當(dāng)檢測(cè)到所述通用串行總線接口有存儲(chǔ)設(shè)備接入時(shí),上位機(jī)檢測(cè)接入的存儲(chǔ)設(shè)備內(nèi)部是否存在升級(jí)程序;
[0008]若存在升級(jí)程序,上位機(jī)根據(jù)預(yù)設(shè)置的規(guī)則,確定該升級(jí)程序的對(duì)應(yīng)對(duì)象;
[0009]確定該升級(jí)程序的對(duì)應(yīng)對(duì)象后,上位機(jī)終止用來(lái)控制各下位機(jī)的主程序,判斷是否可利用該升級(jí)程序?yàn)槠鋵?duì)應(yīng)對(duì)象進(jìn)行升級(jí)維護(hù),若是,則利用該升級(jí)程序?yàn)槠鋵?duì)應(yīng)對(duì)象進(jìn)行升級(jí)維護(hù)。
[0010]其中,若存在升級(jí)程序,上位機(jī)根據(jù)預(yù)設(shè)置的規(guī)則,確定該升級(jí)程序的對(duì)應(yīng)對(duì)象包括:
[0011]若存在升級(jí)程序,上位機(jī)根據(jù)升級(jí)程序的文件名,將該文件名與上位機(jī)本身以及各下位機(jī)的名稱進(jìn)行匹配,以確定該升級(jí)程序的對(duì)應(yīng)對(duì)象。
[0012]其中,判斷是否可利用該升級(jí)程序?yàn)槠鋵?duì)應(yīng)對(duì)象進(jìn)行升級(jí)維護(hù)包括:
[0013]上位機(jī)獲取該升級(jí)程序的對(duì)應(yīng)對(duì)象的當(dāng)前程序的版本號(hào);
[0014]上位機(jī)將獲取到的版本號(hào)與升級(jí)程序的版本號(hào)對(duì)應(yīng),若升級(jí)程序的版本號(hào)較新,則判斷到可利用該升級(jí)程序?yàn)槠鋵?duì)應(yīng)對(duì)象進(jìn)行升級(jí)維護(hù)。
[0015]其中,若所確定的升級(jí)程序的對(duì)應(yīng)對(duì)象為上位機(jī)且可利用該升級(jí)程序?yàn)槠鋵?duì)應(yīng)對(duì)象進(jìn)行升級(jí)維護(hù)時(shí),利用該升級(jí)程序?yàn)槠鋵?duì)應(yīng)對(duì)象進(jìn)行升級(jí)維護(hù)包括:
[0016]上位機(jī)將該升級(jí)程序從接入的存儲(chǔ)設(shè)備中獲取至內(nèi)存,并利用該升級(jí)程序覆蓋當(dāng)前的主程序,以實(shí)現(xiàn)上位機(jī)的升級(jí)維護(hù)。
[0017]其中,若所確定的升級(jí)程序的對(duì)應(yīng)對(duì)象為其中一個(gè)下位機(jī)且可利用該升級(jí)程序?yàn)槠鋵?duì)應(yīng)對(duì)象進(jìn)行升級(jí)維護(hù)時(shí),利用該升級(jí)程序?yàn)槠鋵?duì)應(yīng)對(duì)象進(jìn)行升級(jí)維護(hù)包括:
[0018]上位機(jī)將該升級(jí)程序從接入的存儲(chǔ)設(shè)備中獲取至內(nèi)存,并將該升級(jí)程序發(fā)送給下位機(jī)。
[0019]其中,該方法還包括:
[0020]下位機(jī)檢測(cè)到有來(lái)自上位機(jī)的升級(jí)程序時(shí),與上位機(jī)進(jìn)行握手通信后,接收該升級(jí)程序放入閃存中,利用該升級(jí)程序覆蓋當(dāng)前的應(yīng)用程序,進(jìn)行升級(jí)維護(hù)。
[0021]其中,所述嵌入式系統(tǒng)還包括顯示裝置,該顯示裝置連接上位機(jī),該方法還包括:
[0022]顯示裝置顯示當(dāng)前進(jìn)行升級(jí)維護(hù)的上位機(jī)和/或下位機(jī),還顯示上位機(jī)從接入的存儲(chǔ)設(shè)備獲取升級(jí)程序的速度、上位機(jī)與下位機(jī)傳輸升級(jí)程序的速度以及是否成功獲取和/或成功傳輸。
[0023]本發(fā)明帶來(lái)了以下有益效果:本發(fā)明實(shí)施例提供了一種嵌入式系統(tǒng)的升級(jí)維護(hù)方法,通過(guò)上位機(jī)和USB接口接入的存儲(chǔ)設(shè)備的配合,為下位機(jī)提供一種升級(jí)維護(hù)的方法,解決了下位機(jī)升級(jí)操作不便的技術(shù)問(wèn)題。
[0024]本發(fā)明第二方面提供了一種嵌入式系統(tǒng),該系統(tǒng)包括上位機(jī)和可與該上位機(jī)通訊的下位機(jī),所述上位機(jī)設(shè)置有通用串行總線接口,
[0025]所述上位機(jī)檢測(cè)到所述通用串行總線接口有存儲(chǔ)設(shè)備接入時(shí),檢測(cè)接入的存儲(chǔ)設(shè)備內(nèi)部是否存在升級(jí)程序;若檢測(cè)到存在升級(jí)程序,根據(jù)預(yù)設(shè)置的規(guī)則,確定該升級(jí)程序的對(duì)應(yīng)對(duì)象,并在確定該對(duì)應(yīng)對(duì)象后,終止用來(lái)控制各下位機(jī)的主程序,判斷是否可利用該升級(jí)程序?yàn)槠鋵?duì)應(yīng)對(duì)象進(jìn)行升級(jí)維護(hù);若是,則利用該升級(jí)程序?yàn)槠鋵?duì)應(yīng)對(duì)象進(jìn)行升級(jí)維護(hù)。
[0026]其中,判斷是否可利用該升級(jí)程序?yàn)槠鋵?duì)應(yīng)對(duì)象進(jìn)行升級(jí)維護(hù)包括:
[0027]上位機(jī)獲取該升級(jí)程序的對(duì)應(yīng)對(duì)象的當(dāng)前程序的版本號(hào);
[0028]上位機(jī)將獲取到的版本號(hào)與升級(jí)程序的版本號(hào)對(duì)應(yīng),若升級(jí)程序的版本號(hào)較新,則判斷到可利用該升級(jí)程序?yàn)槠鋵?duì)應(yīng)對(duì)象進(jìn)行升級(jí)維護(hù)。
[0029]其中,該系統(tǒng)還包括連接上位機(jī)的顯示裝置;
[0030]顯示裝置,顯示當(dāng)前進(jìn)行升級(jí)維護(hù)的上位機(jī)和/或下位機(jī),還顯示上位機(jī)從接入的存儲(chǔ)設(shè)備獲取升級(jí)程序的速度、上位機(jī)與下位機(jī)傳輸升級(jí)程序的速度以及是否成功獲取和/或成功傳輸。
[0031]本發(fā)明的其它特征和優(yōu)點(diǎn)將在隨后的說(shuō)明書中闡述,并且,部分地從說(shuō)明書中變得顯而易見(jiàn),或者通過(guò)實(shí)施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點(diǎn)可通過(guò)在說(shuō)明書、權(quán)利要求書以及附圖中所特別指出的結(jié)構(gòu)來(lái)實(shí)現(xiàn)和獲得。
【附圖說(shuō)明】
[0032]為了更清楚地說(shuō)明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要的附圖做簡(jiǎn)單的介紹:
[0033]圖1是本發(fā)明實(shí)施例提供的嵌入式系統(tǒng)的結(jié)構(gòu)示意圖;
[0034]圖2是本發(fā)明實(shí)施例提供的嵌入式系統(tǒng)的升級(jí)維護(hù)方法的流程示意圖;
[0035]圖3是本發(fā)明實(shí)施例提供的上位機(jī)側(cè)的流程示意圖;
[0036]圖4是本發(fā)明實(shí)施例提供的下位機(jī)側(cè)的流程示意圖。
【具體實(shí)施方式】
[0037]以下將結(jié)合附圖及實(shí)施例來(lái)詳細(xì)說(shuō)明本發(fā)明的實(shí)施方式,借此對(duì)本發(fā)明如何應(yīng)用技術(shù)手段來(lái)解決技術(shù)問(wèn)題,并達(dá)成技術(shù)效果的實(shí)現(xiàn)過(guò)程能充分理解并據(jù)以實(shí)施。需要說(shuō)明的是,只要不構(gòu)成沖突,本發(fā)明中的各個(gè)實(shí)施例以及各實(shí)施例中的各個(gè)特征可以相互結(jié)合,所形成的技術(shù)方案均在本發(fā)明的保護(hù)范圍之內(nèi)。
[0038]如圖1所示,在本發(fā)明實(shí)施例中,嵌入式系統(tǒng)包括上位機(jī)和一個(gè)或多個(gè)可與該上位機(jī)通訊的下位機(jī)(例如下位機(jī)I至4)。一般來(lái)說(shuō),在概念上,控制者和提供服務(wù)者是上位機(jī),被控制者和被服務(wù)者是下位機(jī)。本發(fā)明實(shí)施例中,上位機(jī)采用帶串行通信接口(簡(jiǎn)稱串P )、USB接口、顯示裝置(例如液晶顯示裝置(Liquid Crystal Display,簡(jiǎn)稱LCD))接口等接口的工業(yè)控制計(jì)算機(jī),上位機(jī)的串口是用來(lái)與各下位機(jī)通訊的,為了實(shí)時(shí)監(jiān)控升級(jí)維護(hù)過(guò)程,便于工作人員的操作,該上位機(jī)還連接有顯示裝置。另外,本發(fā)明實(shí)施例的下位機(jī)采用帶有應(yīng)用編程(In Applicat1n Programming,簡(jiǎn)稱IAP)功能的MCU微控制器。
[0039]本發(fā)明實(shí)施例提供了一種上述嵌入式系統(tǒng)的升級(jí)維護(hù)方法,該升級(jí)維護(hù)方法有利于解決現(xiàn)有技術(shù)中下位機(jī)(例如MCU)升級(jí)不便的技術(shù)問(wèn)題。如圖2所示,該方法包括:
[0040]步驟S101、當(dāng)檢測(cè)到通用串行總線接口有存儲(chǔ)設(shè)備接入時(shí),上位機(jī)檢測(cè)接入的存儲(chǔ)設(shè)備內(nèi)部是否存在升級(jí)程序。
[0041]工作人員將適用于通用串行總線接口的存儲(chǔ)設(shè)備(例如U盤)插入上位機(jī)的對(duì)應(yīng)接口后,上位機(jī)會(huì)對(duì)該接入的存儲(chǔ)設(shè)備進(jìn)行掃描,以檢測(cè)該接入的存儲(chǔ)設(shè)備內(nèi)是否存在升級(jí)程序。
[0042]具體的,上位機(jī)掃描接入的存儲(chǔ)設(shè)備內(nèi)部的各文件名,當(dāng)檢測(cè)到特定的文件名時(shí),即可知道該接入的存儲(chǔ)設(shè)備內(nèi)存在升級(jí)程序。
[0043]步驟S102、若存在升級(jí)程序,上位機(jī)根據(jù)預(yù)設(shè)置的規(guī)則,確定該升級(jí)程序的對(duì)應(yīng)對(duì)象。
[0044]一般來(lái)說(shuō),工程人員為了便于分辨各升級(jí)程序,會(huì)賦予各升級(jí)程序一個(gè)獨(dú)一無(wú)二的文件名,而且文件名一般是與其對(duì)應(yīng)的上位機(jī)或下位機(jī)相配的。上位機(jī)可根據(jù)升級(jí)程序的文件名,將該文件名與上位機(jī)本身以及各下位機(jī)的名稱進(jìn)行匹配,以確定該升級(jí)程序的對(duì)應(yīng)對(duì)象。
[0045]或者,也可預(yù)先在上位機(jī)內(nèi)存儲(chǔ)一表格或一組升級(jí)目錄,表格或目錄內(nèi)記載有升級(jí)程序的文件名和上位機(jī)、下位機(jī)的對(duì)應(yīng)關(guān)系。在本發(fā)明實(shí)施例中,上位機(jī)在獲取到升級(jí)程序的文件名后,通過(guò)查詢?cè)撋?jí)目錄即可得知該升級(jí)文件的對(duì)應(yīng)對(duì)象了。
[0046]步驟S103、確定該升級(jí)程序的對(duì)應(yīng)對(duì)象后,上位機(jī)終止用來(lái)控制各下位機(jī)的主程序,判斷是否可利用該升級(jí)程序?yàn)槠鋵?duì)應(yīng)對(duì)象進(jìn)行升級(jí)維護(hù),若是,則利用該升級(jí)程序?yàn)槠鋵?duì)應(yīng)對(duì)象進(jìn)行升級(jí)維護(hù)。
[0047]當(dāng)確定了升級(jí)程序的對(duì)應(yīng)對(duì)象后,上位機(jī)需要檢測(cè)該升級(jí)程序?qū)ζ鋵?duì)應(yīng)對(duì)象而言是否為較高的版本。而此時(shí)無(wú)論升級(jí)程序的對(duì)應(yīng)對(duì)象為上位機(jī)本身還是其中一個(gè)下位機(jī),都必須保證升級(jí)程序的對(duì)應(yīng)對(duì)象處于不工作狀態(tài),否則不僅可能無(wú)法正常升級(jí),還有可能給該對(duì)應(yīng)對(duì)象本身造成不可逆轉(zhuǎn)的損壞。因此,上位機(jī)終止了控制各下位機(jī)的主程序,這使得上位機(jī)本身也進(jìn)入不工作狀態(tài)。
[0048]上位機(jī)訪問(wèn)該升級(jí)程序的對(duì)應(yīng)對(duì)象,獲取該升級(jí)程序的對(duì)應(yīng)對(duì)象的當(dāng)前程序的版本號(hào),與升級(jí)程序的版本號(hào)進(jìn)行對(duì)比。若是升級(jí)程序的版本號(hào)較新,則上位機(jī)得知可利用該升級(jí)程序來(lái)對(duì)其對(duì)應(yīng)對(duì)象進(jìn)行升級(jí)維護(hù)操作;否則,將保持該對(duì)應(yīng)對(duì)象的當(dāng)前狀態(tài)不變。
[0049]當(dāng)升級(jí)維護(hù)操作結(jié)束后,上位機(jī)重新開(kāi)啟其主程序,以實(shí)現(xiàn)對(duì)下位機(jī)的控制、驅(qū)動(dòng),恢復(fù)正常工作狀態(tài)。
[0050]其中,若所確定的升級(jí)程序的對(duì)應(yīng)對(duì)象為上位機(jī),且該升級(jí)程序的版本高于上位機(jī)的當(dāng)前主程序的版本時(shí),上位機(jī)將自接入U(xiǎn)SB接口的存儲(chǔ)設(shè)備中獲取升級(jí)程序,緩存在內(nèi)存(例如隨機(jī)存取存儲(chǔ)器(Random-Access Memory,簡(jiǎn)稱RAM))中。獲取成功后,上位機(jī)將調(diào)取該升級(jí)程序來(lái)覆蓋當(dāng)前的主程序,進(jìn)行上位機(jī)的升級(jí)維護(hù)操作。
[0051]另外,若所確定的升級(jí)程序的對(duì)應(yīng)對(duì)象為其中一個(gè)下位機(jī),且該升級(jí)程序的版本較高時(shí),上位機(jī)同樣需要自接入U(xiǎn)SB接口的存儲(chǔ)設(shè)備中獲取升級(jí)程序并緩存在內(nèi)存中。獲取成功后,上位機(jī)將該升級(jí)程序發(fā)送給對(duì)應(yīng)的下位機(jī),供下位機(jī)進(jìn)行升