專利名稱:軟件的在線升級方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種軟件的升級方法及裝置,尤指一種工業(yè)控制(簡稱工控)系統(tǒng)中軟件的在線升級方法及裝置。
背景技術(shù):
通常將用于工控系統(tǒng)的計(jì)算機(jī)稱為工業(yè)控制計(jì)算機(jī)(簡稱工控機(jī)),在工控系統(tǒng)中,工控機(jī)要對大量的外來信號進(jìn)行處理,然后根據(jù)處理結(jié)果輸出控制信號。
控制機(jī)一般由計(jì)算機(jī)和過程輸入輸出(I/O)通道兩大部分組成。其中計(jì)算機(jī)由控制軟件以及主機(jī)、輸入輸出設(shè)備、外部磁盤機(jī)、磁帶機(jī)等硬件設(shè)備組成。在計(jì)算機(jī)外部又增加一部分過程輸入/輸出通道,用于實(shí)現(xiàn)將工業(yè)生產(chǎn)過程中的檢測數(shù)據(jù)送入計(jì)算機(jī)進(jìn)行處理;另一方面將計(jì)算機(jī)輸出的對生產(chǎn)過程控制的命令、信息轉(zhuǎn)換成工業(yè)控制對象的控制信號,再送往工業(yè)控制對象的控制器,由控制器完成對生產(chǎn)設(shè)備的運(yùn)行控制。
為保證工控系統(tǒng)對現(xiàn)場信號的實(shí)時響應(yīng),在一個工控系統(tǒng)的控制周期內(nèi)(如0.5s),計(jì)算機(jī)的微處理器需要對現(xiàn)場信號進(jìn)行采集、處理、傳送等操作,控制周期越短,對現(xiàn)場信號響應(yīng)速度響應(yīng)則越快,也越能保證其實(shí)時性,從而對現(xiàn)場信號的突變能做出快速響應(yīng)。但控制周期的長短與微處理器的處理能力、運(yùn)行頻率以及所接的外圍設(shè)備大有關(guān)系,因此控制周期不可能無限地小,一般是取一個整數(shù)值,如0.1s、0.5s等。
盡管微觀上看起來一個具體的控制過程是在多個控制周期內(nèi)完成的,但從整個宏觀概念來講,比如在一段較長的時間內(nèi),控制周期相對于這段時間來說是很微小的,因此控制系統(tǒng)的運(yùn)行(對數(shù)據(jù)采集和控制)可以看作是連續(xù)的,這也是控制系統(tǒng)所要求的連續(xù)性。
隨著工控系統(tǒng)的升級,需要對控制機(jī)的控制軟件進(jìn)行升級,公知技術(shù)中,軟件下載和更新通常是在需要進(jìn)行下載和更新軟件時,停止當(dāng)前軟件的運(yùn)行,并利用一片程序存儲器存儲下載的軟件,在下載和更新完成后再重新啟動并運(yùn)行新的軟件,這種方法只能適用于一些對實(shí)時性要求不高且重要性較低的場合,對于對實(shí)時性要求較高的工業(yè)應(yīng)用場合,例如工業(yè)生產(chǎn)是連續(xù)(晝夜)生產(chǎn)的場合,就要求控制機(jī)具有高可靠性,不能中途停機(jī)。上述軟件升級方法就不能很好的滿足其要求,并會給高要求的現(xiàn)場控制系統(tǒng)帶來安全隱患,增加不可靠的因素,容易在軟件停止運(yùn)行時造成失控狀態(tài)。
為實(shí)現(xiàn)軟件升級,中國專利《可遠(yuǎn)程下載運(yùn)行軟件的智能數(shù)據(jù)監(jiān)控通訊設(shè)備及方法》(專利號ZL98124981)公開了一種技術(shù)方案,該方案的主要內(nèi)容是由下載操作程序從接口接收新的軟件升級數(shù)據(jù),將所述升級數(shù)據(jù)存儲到隨機(jī)數(shù)據(jù)存儲器中,再從隨機(jī)數(shù)據(jù)存儲器中讀出寫入FLASH(閃存)中,從而完成軟件的更新。該方法主要用于智能數(shù)據(jù)監(jiān)控通訊設(shè)備,下載完畢后需重新啟動處理器,其優(yōu)點(diǎn)是可降低現(xiàn)場更新程序的復(fù)雜性和較大的工作量,但由于下載完成后還要重新啟動處理器以便進(jìn)行軟件初始化等軟件更新流程,必然造成部分時間內(nèi)系統(tǒng)失控,因此該方案存在安全性和可靠性不高的缺點(diǎn),且不能實(shí)現(xiàn)在線升級軟件。
另外,中國專利《遠(yuǎn)程程序下載系統(tǒng)和設(shè)備》(專利號ZL98106699)公開了另一種軟件的升級方案,該方案在下載時采用四段程序來順序更新軟件,主要用于數(shù)字電視接收機(jī)的控制軟件的更新。此方案與上一方案相比,優(yōu)點(diǎn)是更新的軟件被下載在EEPROM(電可擦除只讀存儲器)中,而非隨機(jī)存儲器中,與上述第一個方案相同的原因,該方案同樣存在安全性和可靠性不高的缺點(diǎn),且不能實(shí)現(xiàn)在線升級軟件。
此外,中國專利《能夠不中斷在線處理更新操作文件的方法》(申請?zhí)?8125648.1)也公開了一種軟件的升級方案,該方案利用兩組處理器和存儲器,由一組存儲器和處理器執(zhí)行當(dāng)前程序,另一組存儲器和處理器接收更新程序,更新完成后實(shí)現(xiàn)切換和替代。該方案可在線完成操作文件的更新,但更新完成后,還需進(jìn)行更新程序的初始化操作等,因此,同樣存在安全性和可靠性的問題,另外,兩組處理器和存儲器的應(yīng)用不僅使成本增加也使電路結(jié)構(gòu)變得復(fù)雜。
綜上,現(xiàn)有軟件升級的方案,大都是將軟件升級數(shù)據(jù)先下載到隨機(jī)存儲器再寫入程序存儲器中,更新完成后需要重新啟動處理器以便處理器能按照升級后的新程序運(yùn)行,這些方案都存在對當(dāng)前運(yùn)行的程序會產(chǎn)生影響的缺點(diǎn),因?yàn)橹匦聠犹幚砥鞅厝粫ν饨绲目刂疲斐墒Э貭顟B(tài),存在一個所謂的“真空”狀態(tài),因此不能實(shí)現(xiàn)工業(yè)應(yīng)用真正意義上的可靠與連續(xù)。
發(fā)明內(nèi)容
為了解決現(xiàn)有技術(shù)升級工控系統(tǒng)軟件時,需重新啟動處理器以致安全性和可靠性較低的問題,本發(fā)明提供一種安全性和可靠性都較高的軟件的在線升級方法及裝置,適合應(yīng)用在實(shí)時性和可靠性要求較高的工業(yè)應(yīng)用場合。
為解決上述問題,本發(fā)明提供的軟件的在線升級方法,包括以下步驟升級步驟微處理器控制一個備用程序存儲器存儲下載的軟件升級數(shù)據(jù)并升級該備用程序存儲器中相應(yīng)軟件;切換步驟微處理器控制將所述軟件升級后的備用程序存儲器存儲地址與主用程序存儲器存儲地址互換以便切換主備用工作程序區(qū)。
進(jìn)一步,還包括繼續(xù)升級步驟利用所述下載的軟件升級數(shù)據(jù)升級其他存儲器中的相應(yīng)軟件。
最好,所述升級步驟以及繼續(xù)升級步驟在工控系統(tǒng)控制周期的空閑期間分時、分段執(zhí)行。
最好,所述切換步驟在工控系統(tǒng)控制周期之間的空閑期間執(zhí)行。
最好,所述存儲器相同且存儲地址連續(xù)。
相應(yīng)地,本發(fā)明提供的軟件的在線升級裝置,包括至少兩個存儲器,其中一個存儲器作為主用程序存儲器,其余存儲器作為備用程序存儲器,所述備用程序存儲器中其中一個在軟件升級時被指定用于存儲下載的軟件升級數(shù)據(jù)并首先完成其上相應(yīng)軟件的升級;地址轉(zhuǎn)換電路,在被指定的備用程序存儲器中軟件升級完成后,將所述被指定的備用程序存儲器存儲地址與主用程序存儲器的存儲地址互換以便切換主備用工作程序區(qū);
微處理器,用于控制下載軟件升級數(shù)據(jù)并升級主備用程序存儲器中的相應(yīng)軟件,以及控制所述地址轉(zhuǎn)換電路完成主備用工作程序區(qū)的轉(zhuǎn)換。
最好,所述地址轉(zhuǎn)換電路為邏輯控制的譯碼電路。
最好,所述微處理器在工控系統(tǒng)控制周期的空閑期間分時、分段控制執(zhí)行軟件升級數(shù)據(jù)的下載以及存儲器中軟件的升級。
最好,所述地址轉(zhuǎn)換電路在工控系統(tǒng)控制周期之間的空閑期間執(zhí)行地址轉(zhuǎn)換。
與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn)1、采用一個微處理器和多個程序存儲器,在線升級時通過其中一個程序存儲器存儲軟件升級數(shù)據(jù)并升級其上的軟件,然后通過微處理器控制,由地址轉(zhuǎn)換電路實(shí)現(xiàn)多個程序存儲器的存儲地址轉(zhuǎn)換以實(shí)現(xiàn)切換主備用工作程序區(qū),由升級后的軟件運(yùn)行并進(jìn)行控制,并可繼續(xù)升級其他程序存儲器的軟件,由于只應(yīng)用了一個微處理和簡單的地址轉(zhuǎn)換電路,成本低,實(shí)現(xiàn)電路簡單;2、在線軟件下載和更新在工控系統(tǒng)的控制周期空閑時進(jìn)行,由于采用了分多個控制周期更新軟件、分時分段和中斷的方式,使得在線升級期間對原控制周期運(yùn)行程序的影響不大,可靠性較好;3、進(jìn)一步,通過硬件實(shí)現(xiàn)地址互換的方式來進(jìn)行新老軟件的在線切換,實(shí)現(xiàn)了新老程序的無縫運(yùn)行,保證了工業(yè)控制場合的穩(wěn)定性、安全性、可靠性和連續(xù)性。
圖1是本發(fā)明軟件的在線升級方法流程圖;圖2是本發(fā)明軟件的在線升級裝置組成示意圖;圖3是本發(fā)明軟件的在線升級裝置具體實(shí)施例組成示意圖;圖4是本發(fā)明實(shí)現(xiàn)程序存儲器存儲地址互換的示意圖;圖5是本發(fā)明地址轉(zhuǎn)換電路組成示意圖;圖6是本發(fā)明軟件的在線升級裝置基于以太網(wǎng)通信的實(shí)施例電路組成圖;
圖7是圖6所示軟件的在線升級裝置的工作流程圖。
具體實(shí)施例方式
本發(fā)明應(yīng)用的工控系統(tǒng)包括微處理器以及多個存儲器,所述多個存儲器中其中一個被指定作為主用的程序存儲器,其余則作為備用的程序存儲器,本實(shí)施例中所述存儲器相同且存儲地址連續(xù),都可作為工控系統(tǒng)實(shí)施控制的工作程序區(qū),作為本領(lǐng)域的技術(shù)人員可知該程序存儲器一般為FLASH等非易失性存儲器。
在上述工控系統(tǒng)中在線下載和更新控制程序必須停止當(dāng)前運(yùn)行的控制程序,參考圖1,為實(shí)現(xiàn)控制程序運(yùn)行的連續(xù)性和可靠性,本發(fā)明軟件的在線升級方法包括以下流程在步驟11,微處理器控制一個備用程序存儲器存儲下載的軟件升級數(shù)據(jù)并升級該備用程序存儲器中相應(yīng)軟件。
本發(fā)明中程序存儲器有多個,當(dāng)工作程序區(qū)為主用程序存儲器時,若需要在線下載并升級控制程序時,可首先更新備用程序存儲器的相應(yīng)軟件,本步驟微處理在收到在線升級軟件命令后,即可從備用程序存儲器中選擇一個首先進(jìn)行在線升級,并保存相應(yīng)下載的軟件升級數(shù)據(jù),其中下載軟件升級數(shù)據(jù)以及升級軟件等操作可在工控系統(tǒng)控制周期的空閑時段分時、分段執(zhí)行,這樣不會影響現(xiàn)有控制周期內(nèi)控制程序的運(yùn)行,可靠性較好。
在步驟12,微處理器控制將所述軟件升級后的備用程序存儲器存儲地址與主用程序存儲器存儲地址互換以便切換主備用工作程序區(qū)。
現(xiàn)有技術(shù)大多是下載完成后,重新啟動微處理器對更新后的程序存儲器中的控制程序進(jìn)行初始化等操作,因此,存在安全性和可靠性的問題,各個程序存儲器存儲控制程序數(shù)據(jù)的地址并不相同,本步驟將升級后的備用程序存儲器存儲地址與當(dāng)前主用程序存儲器的存儲地址互換,無需重新啟動即可實(shí)現(xiàn)軟件升級,所述地址互換最好在工控系統(tǒng)兩個控制周期之間的空閑時段執(zhí)行,其原因在于在新的控制周期前切換到升級后的程序存儲器工作,工作程序的前期程序初始化操作大多已經(jīng)完成,后續(xù)更新操作較少,可在新的控制周期內(nèi)完成,不需重新啟動微處理器,因此安全性和可靠性都較現(xiàn)有技術(shù)好。
在切換完成后,利用所述下載的軟件數(shù)據(jù)可繼續(xù)升級其他存儲器中的相應(yīng)軟件,這里不再贅述。
下面說明本發(fā)明的另一方面,參考圖2,本發(fā)明軟件的在線升級裝置包括以下組成部分存儲器21、地址轉(zhuǎn)換電路22以及微處理器23,其中所述存儲器21有多個,其中一個存儲器作為主用程序存儲器,其余存儲器作為備用程序存儲器,都可作為工控系統(tǒng)實(shí)施控制的工作程序區(qū),所述備用程序存儲器其中一個在軟件升級時被指定用于存儲下載軟件升級數(shù)據(jù)并首先完成其上相應(yīng)軟件的升級,為了電路更加簡單,具體實(shí)施時上述存儲器最好相同且存儲地址連續(xù);地址轉(zhuǎn)換電路22,在被指定的備用程序存儲器中軟件在線升級完成后,將所述被指定的備用程序存儲器與主用程序存儲器的存儲地址互換以便切換主備用工作程序區(qū),所述地址轉(zhuǎn)換電路22最好在工控系統(tǒng)兩個控制周期之間的空閑時段執(zhí)行地址轉(zhuǎn)換,這樣對正在運(yùn)行的工控系統(tǒng)影響較小,實(shí)施效果較好;微處理器23,用于控制下載軟件升級數(shù)據(jù)并升級主備用程序存儲器中的相應(yīng)軟件,以及控制所述地址轉(zhuǎn)換電路完成主備用工作程序區(qū)的轉(zhuǎn)換,為了不影響當(dāng)前運(yùn)行程序,所述微處理23最好在工控系統(tǒng)控制周期的空閑期間分時、分段控制執(zhí)行軟件升級數(shù)據(jù)的下載以及存儲器中軟件的升級。
參考圖3,以一具體實(shí)施例對本發(fā)明軟件的在線升級裝置進(jìn)行詳細(xì)說明。
如圖3所示,本實(shí)施例中軟件的在線升級裝置包括通訊接口30、微處理器模塊31、邏輯控制與地址譯碼電路32、兩片相同的程序存儲器33和34,假定當(dāng)前程序存儲器33為主用程序存儲器,程序存儲器34為備用程序存儲器。
其中通訊接口30與微處理器模塊31相連,完成通訊數(shù)據(jù)的收發(fā)控制;微處理器模塊31分別與邏輯控制與地址譯碼電路32、程序存儲器33和34相連;邏輯控制與地址譯碼電路32也分別與兩個程序存儲器33和34相連。
從計(jì)算機(jī)或者其它設(shè)備傳送過來的數(shù)據(jù),通過通訊接口30傳送給微處理器模塊31,微處理器模塊31對這些數(shù)據(jù)進(jìn)行相應(yīng)處理后返回處理結(jié)果。若在微處理器模塊31運(yùn)行控制程序的同時收到在線程序更新命令(即在線升級命令),則微處理器模塊31開始分段接收新的程序數(shù)據(jù),然后在控制系統(tǒng)的每個控制周期內(nèi)保證控制周期的正常運(yùn)行的同時通過中斷方式將新程序數(shù)據(jù)寫入備用存儲器(即程序存儲器34),經(jīng)過多個控制周期的寫入操作后,將新的程序完全下載到備用程序存儲器內(nèi)。
參考圖3具體說明下載的過程1.微處理器模塊31收到在線更新命令,把當(dāng)前狀態(tài)通知給下發(fā)在線更新命令的計(jì)算機(jī),當(dāng)前的狀態(tài)可能是可以下載,例如兩個程序存儲器33和34,其中一個備用,一個工作,或者是暫時不能下載,例如其中一片處于已經(jīng)刷新成新程序且處于備用狀態(tài)等待切換,而另一片是處于工作程序且程序還未被更新。
2.如果處于可下載狀態(tài),計(jì)算機(jī)將已經(jīng)分好段的程序分時(可以在幾個控制周期的空閑時間內(nèi)發(fā)送一段需更新的程序)發(fā)送給微處理器模塊31。
3.微處理器模塊31在接收到一段程序并校驗(yàn)通過后,以中斷的方式將這段程序?qū)懭氲絺溆贸绦騾^(qū)內(nèi)(即程序存儲器34),然后通知計(jì)算機(jī)發(fā)送下一段程序。
4.微處理器模塊31以此中斷方式將整個需要更新的程序都寫入到備用程序區(qū)并更新其上的相應(yīng)軟件,至此下載更新軟件完成。
整個的在線升級過程通過計(jì)算機(jī)與微處理器模塊31之間的通信來完成,將需在線升級的軟件的下載過程分散在多個控制周期內(nèi)完成,這樣做的好處是,不會太占用微處理器的資源,對控制周期的影響不大。
進(jìn)一步,該備用程序存儲器軟件在線升級完成后,在當(dāng)前控制周期運(yùn)行快結(jié)束和下一個控制周期運(yùn)行之前這段時間內(nèi),將備用工作程序區(qū)和主用工作程序區(qū)進(jìn)行地址互換,這樣,從下一個控制周期開始,控制程序就可以按照升級后的軟件運(yùn)行了。
另外,在新程序工作的空閑期間,微處理器可分多個控制周期將備用程序區(qū)更新,這里的空閑期可以認(rèn)為是多個控制周期內(nèi)的空閑時段,例如控制周期內(nèi)處于一些微處理器向下發(fā)送數(shù)據(jù)后等待回應(yīng)的空閑過程,或者由于控制周期一般是取整數(shù)值,但整個控制周期內(nèi)的程序運(yùn)行時間并不可能完全等于控制周期,必然是存在一些等待狀態(tài)(此時是空閑的),更新方式同樣是在分散的多個控制周期內(nèi)采用中斷方式將備用程序區(qū)的備用程序更新為新程序,并將備用程序存儲器切換作為主用程序存儲器,然后微處理器將當(dāng)前的備用程序區(qū)的程序也更新為新程序,留做工作程序區(qū)的備用。
請參見圖4,本發(fā)明實(shí)現(xiàn)程序存儲器存儲地址互換的示意圖。假設(shè)兩片容量相同的程序存儲器均為4K,并且地址連續(xù),程序存儲器(一)的地址從 H到
H,程序存儲器(二)的地址從 H到[1FFF]H,當(dāng)正常運(yùn)行時,微處理器訪問程序存儲區(qū)的起始地址從程序存儲器(一)的 H開始,地址到
H結(jié)束,程序存儲器(二)作為備用的程序存儲器。
當(dāng)程序需要進(jìn)行在線更新時,微處理器收到在線更新命令后,在不停止運(yùn)行當(dāng)前控制程序和控制算法的情況下將需更新的程序的數(shù)據(jù)分時分段用中斷的方式寫入備用的程序存儲器(二)中,在更新程序完全寫入后,微處理器檢測到完成下載的標(biāo)志,于是在運(yùn)行完當(dāng)前一個控制周期后,處于等待地址互換狀態(tài),地址轉(zhuǎn)換電路將兩片程序存儲器(一)和(二)的地址譯碼進(jìn)行互換。
其中地址轉(zhuǎn)換電路的原理圖如圖5所示,由一個邏輯控制與地址譯碼電路組成,其實(shí)現(xiàn)切換的最根本的一個電路是開關(guān)矩陣,如圖5所示,開關(guān)1、2、3、4是兩組單刀雙擲開關(guān),所述開關(guān)是聯(lián)合同時動作的,即1和3是一組,2和4是一組,通過控制線的邏輯控制實(shí)現(xiàn)切換。
地址切換的過程如下以圖5為例,初始狀態(tài)下,控制線控制開關(guān)擲于2和4一組,這樣程序存儲器(一)的存儲地址為0000H~0FFFH,程序存儲器(二)的存儲地址為1000H~1FFFH,當(dāng)需要切換的時候,控制線控制開關(guān)切換至1和3一組,完成后,程序存儲器(一)和(二)的存儲地址就進(jìn)行互換,程序存儲器(一)的存儲地址為1000H~1FFFH,程序存儲器(二)的地址為0000H~0FFFH。這樣就完成了兩個程序存儲器(一)和(二)的存儲地址互換過程。即程序存儲器(二)起始地址為 H,而程序存儲器(一)的起始地址為 H,這樣,程序存儲器(二)的地址范圍即從 H到
H,程序存儲器(一)的地址范圍即從 H到[1FFF]H,在下一個控制周期開始時,微處理器訪問程序存儲區(qū)的起始地址仍從 H開始,于是就自動切換到程序存儲器(二)的程序運(yùn)行,即可以運(yùn)行新程序,然后在新程序運(yùn)行的空閑期間在不影響程序運(yùn)行的情況下實(shí)現(xiàn)當(dāng)前備用程序區(qū)(即程序存儲器(一))的更新,由于邏輯控制和地址譯碼電路是用硬件電路來實(shí)現(xiàn)地址切換的,切換時間很短,可以達(dá)到納秒級快速切換,在指令執(zhí)行完后很短的時間內(nèi)就可以完成新舊程序的切換;并且由于微處理器在更新過程中并不復(fù)位或者重新啟動,因此重要的數(shù)據(jù)不會丟失,保證了現(xiàn)場信號的穩(wěn)定運(yùn)行,這樣實(shí)現(xiàn)了程序在線下載和無縫運(yùn)行。
另外由于控制周期是取一個整數(shù)的時間值,整個控制周期的運(yùn)行期間存在一些等待或者空閑狀態(tài),在相鄰兩個控制周期期間(即準(zhǔn)備結(jié)束舊控制周期而轉(zhuǎn)向新控制周期的倒數(shù)第二條指令,此指令是執(zhí)行切換的指令,在此指令前面有判斷當(dāng)前備用存儲器是否更新完成,如更新完成則執(zhí)行此指令,如沒有完成更新則跳過此指令到最后一條指令,最后一條指令是轉(zhuǎn)向新控制周期的指令),由微處理器通知邏輯控制和地址譯碼電路進(jìn)行地址切換,由于這個切換是由硬件切換,可以達(dá)到納秒級,因此切換的時間遠(yuǎn)比指令的時間短(同樣對新程序來說為了以后的在線下載和更新,在控制周期的最后兩條指令也是這樣的,而且在新舊程序中此兩條指令的地址都應(yīng)該相同,因此切換不會對當(dāng)前程序運(yùn)行造成影響,這也是保證無縫運(yùn)行的一個條件),對新舊程序之間的切換和相鄰兩個控制周期之間的連接是沒有影響的(這里沒有舊程序停止或者新程序開始運(yùn)行的概念,只是在控制周期的最后一條指令進(jìn)行一個切換過程,執(zhí)行一種平穩(wěn)過渡)。
請參見圖6,為基于以太網(wǎng)通信的工控系統(tǒng)軟件在線升級的實(shí)施例電路組成圖。
本實(shí)施例中電路由RJ45接口60、以太網(wǎng)收發(fā)控制器61、微處理器模塊62、邏輯控制與地址譯碼電路63以及兩片相同的程序存儲器(程序存儲器64和程序存儲器65)組成。
從計(jì)算機(jī)或其它設(shè)備傳送過來的數(shù)據(jù)通過以太網(wǎng)傳輸?shù)竭_(dá)RJ45接口60;以太網(wǎng)收發(fā)控制器61可采用UM9008,用于實(shí)現(xiàn)對以太網(wǎng)信號的收發(fā)控制;微處理器模塊62包括微處理器及其相關(guān)外圍邏輯電路(如RAM、鎖存器、電源等),微處理器可采用三星的ARM處理器SC4510B,實(shí)現(xiàn)數(shù)據(jù)的處理與通信、程序的運(yùn)行與控制;邏輯控制與地址譯碼電路63可采用FPGA(如ALTERA的ACEX1K10),用于接收微處理器62的控制信號,并完成對程序存儲器的地址譯碼;程序存儲器64和65為兩片相同的存儲器,其特點(diǎn)是容量相同、地址連續(xù),例如選用W27C257,則程序存儲器64的地址可設(shè)置為 H到[7FFF]H,程序存儲器65的地址可設(shè)置為 H到[FFFF]H。
以下結(jié)合圖7,說明本實(shí)施例中實(shí)現(xiàn)軟件在線下載和更新的流程在步驟s1當(dāng)無程序需要更新時,微處理器62按照原先的控制程序運(yùn)行,假設(shè)在當(dāng)前工作程序區(qū)為程序存儲器64,與此同時,微處理器62監(jiān)視以太網(wǎng)RJ45口60下發(fā)的命令;在步驟s2判斷是否收到程序更新的命令若無更新命令,繼續(xù)按照原先控制程序運(yùn)行,執(zhí)行步驟s1;若收到程序更新的命令,則進(jìn)入步驟s3;在步驟s3微處理器62接收新程序的數(shù)據(jù)段,并在每個控制周期內(nèi)通過中斷方式向備用程序區(qū)(即程序存儲器65)中分段寫入新程序段的數(shù)據(jù),整個新程序的更新通過微處理器在多個控制周期內(nèi)分段分時寫入備用程序區(qū),采用這樣的方式,不會對原先程序和算法實(shí)現(xiàn)的控制周期產(chǎn)生大的影響,從而完成備用程序區(qū)內(nèi)程序的下載和更新;在步驟s4判斷備用程序區(qū)內(nèi)是否完成整個新程序的下載及更新,若完成,進(jìn)入步驟s5,否則繼續(xù)步驟s3;在步驟s5當(dāng)整個新程序在備用程序區(qū)(即程序存儲器65)內(nèi)已實(shí)現(xiàn)完全更新后,在當(dāng)前控制周期內(nèi)的控制程序運(yùn)行快結(jié)束和下一個控制周期內(nèi)的控制程序開始運(yùn)行前,微處理器62通知邏輯控制與地址譯碼電路63將兩個程序存儲器的地址譯碼進(jìn)行互換,當(dāng)邏輯控制與地址譯碼電路63完成兩個程序存儲器的地址互換后,就實(shí)現(xiàn)了新舊程序的切換;在步驟s6從下一控制周期開始,運(yùn)行新的工作程序區(qū)(程序存儲器65)內(nèi)的新程序;在步驟s7在以后的多個控制周期內(nèi),控制程序在程序運(yùn)行的空閑期,微處理器62逐步更新新的備用程序區(qū)(即程序存儲器64)內(nèi)的程序,更新完畢后,備用程序區(qū)(程序存儲器64)可以留做工作程序區(qū)的備用,由于兩個存儲器具有完全對等的關(guān)系,在工作程序區(qū)出現(xiàn)故障或需要更新程序時,可再切換到備用程序存儲器進(jìn)行不中斷操作。
以上步驟實(shí)現(xiàn)了工控系統(tǒng)中軟件的在線下載與更新,本發(fā)明結(jié)構(gòu)簡單,設(shè)計(jì)合理,解決了在不停止程序運(yùn)行的情況下,下載和更新控制程序,由于采用了分多個控制周期更新程序、分時分段和中斷的方式,使得在下載期間對原控制周期的影響不大,而通過硬件地址互換的方式來進(jìn)行新老程序的切換,實(shí)現(xiàn)了新程序的無縫運(yùn)行,保證了控制場合的穩(wěn)定性、安全性、可靠性和連續(xù)性。
權(quán)利要求
1.一種軟件的在線升級方法,應(yīng)用于工控系統(tǒng)中,所述工控系統(tǒng)包括微處理器以及至少兩個存儲器,所述存儲器其中一個被指定作為主用的程序存儲器,其余作為備用的程序存儲器,其特征在于,該方法包括以下步驟升級步驟微處理器控制一個備用程序存儲器存儲下載的軟件升級數(shù)據(jù)并升級該備用程序存儲器中相應(yīng)軟件;切換步驟微處理器控制將所述軟件升級后的備用程序存儲器存儲地址與主用程序存儲器存儲地址互換以便切換主備用工作程序區(qū)。
2.根據(jù)權(quán)利要求1所述軟件的在線升級方法,其特征在于,還包括繼續(xù)升級步驟利用所述下載的軟件升級數(shù)據(jù)升級其他存儲器中的相應(yīng)軟件。
3.根據(jù)權(quán)利要求2所述軟件的在線升級方法,其特征在于,所述升級步驟以及繼續(xù)升級步驟在工控系統(tǒng)控制周期的空閑期間分時、分段執(zhí)行。
4.根據(jù)權(quán)利要求3所述軟件的在線升級方法,其特征在于,所述切換步驟在工控系統(tǒng)控制周期之間的空閑期間執(zhí)行。
5.根據(jù)權(quán)利要求4所述軟件的在線升級方法,其特征在于,所述存儲器相同且存儲地址連續(xù)。
6.一種軟件的在線升級裝置,應(yīng)用于工控系統(tǒng)中,其特征在于,包括至少兩個存儲器,其中一個存儲器作為主用程序存儲器,其余存儲器作為備用程序存儲器,所述備用程序存儲器中其中一個在軟件升級時被指定用于存儲下載的軟件升級數(shù)據(jù)并首先完成其上相應(yīng)軟件的升級;地址轉(zhuǎn)換電路,在被指定的備用程序存儲器中軟件升級完成后,將所述被指定的備用程序存儲器存儲地址與主用程序存儲器的存儲地址互換以便切換主備用工作程序區(qū);微處理器,用于控制下載軟件升級數(shù)據(jù)并升級主備用程序存儲器中的相應(yīng)軟件,以及控制所述地址轉(zhuǎn)換電路完成主備用工作程序區(qū)的轉(zhuǎn)換。
7.根據(jù)權(quán)利要求6所述軟件的在線升級裝置,其特征在于,所述存儲器相同且存儲地址連續(xù)。
8.根據(jù)權(quán)利要求7所述軟件的在線升級裝置,其特征在于,所述地址轉(zhuǎn)換電路為邏輯控制的譯碼電路。
9.根據(jù)權(quán)利要求8所述軟件的在線升級裝置,其特征在于,所述微處理器在工控系統(tǒng)控制周期的空閑期間分時、分段控制執(zhí)行軟件升級數(shù)據(jù)的下載以及存儲器中軟件的升級。
10.根據(jù)權(quán)利要求9所述軟件的在線升級裝置,其特征在于,所述地址轉(zhuǎn)換電路在工控系統(tǒng)控制周期之間的空閑期間執(zhí)行地址轉(zhuǎn)換。
全文摘要
一種軟件的在線升級方法及裝置,應(yīng)用于工控系統(tǒng)中,該方法包括以下步驟升級步驟微處理器控制一個備用程序存儲器存儲下載的軟件升級數(shù)據(jù)并升級該備用程序存儲器中相應(yīng)軟件;切換步驟微處理器控制將所述軟件升級后的備用程序存儲器存儲地址與主用程序存儲器存儲地址互換以便切換主備用工作程序區(qū)。所述裝置包括至少兩個存儲器、地址轉(zhuǎn)換電路以及微處理器。由于在升級軟件時通過地址轉(zhuǎn)換電路實(shí)現(xiàn)主備用工作程序區(qū)的切換,保證了工業(yè)控制場合的穩(wěn)定性、安全性、可靠性和連續(xù)性。
文檔編號G06F12/00GK1556474SQ20031011038
公開日2004年12月22日 申請日期2003年12月30日 優(yōu)先權(quán)日2003年12月30日
發(fā)明者黃文君, 鄭洪波, 王霄峽 申請人:浙江中控技術(shù)股份有限公司