專利名稱:通過控制模塊主備用方式實現(xiàn)遠(yuǎn)程下載的系統(tǒng)及其方法
技術(shù)領(lǐng)域:
本發(fā)明涉及遠(yuǎn)程下載的系統(tǒng)及方法,尤其涉及通過控制模塊主備用方 式實現(xiàn)遠(yuǎn)程下載的系統(tǒng)及其方法。 —
背景技術(shù):
隨著技術(shù)的發(fā)展和人們生活水平的提高,越來越多的工業(yè)控制、醫(yī)療、
通訊、消費(fèi)等電子產(chǎn)品日趨智能化,以微處理器(MCU)為核心的嵌入式 系統(tǒng)的應(yīng)用日益廣泛,對這些智能化設(shè)備進(jìn)行管理也成為嵌入式應(yīng)用的一 個重點。用戶可以通過設(shè)備所提供的智能接口,如串口、并口、以太網(wǎng)口 等,經(jīng)由互聯(lián)網(wǎng)INTERNET、調(diào)制解調(diào)器MODEM、通用分組無線業(yè)務(wù) GPRS、低壓電力線載波等傳輸通道,在網(wǎng)管中心實現(xiàn)"三遙(遙測、遙信、 遙控)"功能;對其進(jìn)行配置、管理和監(jiān)控?;赥CP/IP的以太網(wǎng)接口是 未來的發(fā)展方向。
一般來說,廠商售出嵌入式設(shè)備后,還要承擔(dān)相應(yīng)售后服務(wù)。經(jīng)常會有 如下情況隨著設(shè)備在各地的運(yùn)行,逐步會暴露出很多設(shè)計時沒有考慮到 的缺陷或故障;這時候需要廠家更改軟件,進(jìn)行升級;另外,不同的用戶 在使用時也會提出不同的需求和變更,也需要廠家進(jìn)行軟件的定制或升級。
通過出差到用戶處,對出售的嵌入式設(shè)備進(jìn)行軟件現(xiàn)場升級和維護(hù),顯 然會增加廠商的維護(hù)成本,同時服務(wù)及時性較差。軟件在現(xiàn)場升級時,可 能需要用專業(yè)編程器、或者通過在應(yīng)用中編程(IAP, In Applicaton Programming)來實現(xiàn)。顯然,IAP實現(xiàn)要筒單、方便得多。目前,C8051F、 SST89C54、 uPSD32、 ATMEGA128等等眾多在市場上流行的8位微處理器MCU,都具備內(nèi)置FLASH功能,并且都支持在應(yīng)用中編程IAP,非常方便 軟件的現(xiàn)場升級。.
一般情況下,8位微處理器MCU程序空間很有限。如ATMEL公司的 ATMEGA128,具備128KB的程序空間;ATMEGA2561,具備256KB的程 序空間;但是,支持IAP的引導(dǎo)程序BOOT空間都只有8KB。由于引導(dǎo)程 序BOOT空間太小,無法容納TCP/IP、檔案傳輸協(xié)議ZMODEM等復(fù)雜的 協(xié)議棧,因此,只能支持簡單協(xié)議的現(xiàn)場下載,無法通過INTERNET、 MODEM等方式實現(xiàn)遠(yuǎn)程下載。
因此,現(xiàn)有技術(shù)還有待于改進(jìn)與發(fā)展。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供通過控制模塊主備用方式實現(xiàn)遠(yuǎn)程下載的系統(tǒng) 及其方法,減少系統(tǒng)維護(hù)費(fèi)用,提高軟件下載升級的及時性,快速方便地 實現(xiàn)真正的遠(yuǎn)程下載。
本發(fā)明的技術(shù)方案如下
一種通過控制模塊熱備份實現(xiàn)遠(yuǎn)程下載的系統(tǒng),其中,所述系統(tǒng)包括 控制模塊、仲裁模塊、用戶應(yīng)用電路;所述仲裁模塊分別與所述控制模塊、 所述用戶應(yīng)用電路通訊連才婁;
所述控制模塊又包括主控制模塊、從控制模塊;
所述仲裁模塊,用來通過檢測控制模塊運(yùn)行狀態(tài),產(chǎn)生選通控制信號 對控制模塊進(jìn)行選通仲裁;
所述控制模塊,用來執(zhí)行下載數(shù)據(jù)信息的傳輸操作、或執(zhí)行遠(yuǎn)程下載 升雙操作;
所述用戶應(yīng)用電路,為系統(tǒng)提供相應(yīng)的接口電路。
所述的系統(tǒng),其中,所述控制模塊為微處理器。
所述的系統(tǒng),其中,所述仲裁模塊包括雙口隨機(jī)存儲器,所述雙口隨機(jī)存儲器又分為三個信息區(qū)系統(tǒng)信息區(qū)、主控制模塊信息區(qū)、從控制模 塊信息區(qū);
所述系統(tǒng)信息區(qū),用來存儲當(dāng)前系統(tǒng)信息; 所述主控制才莫塊,用來存儲主控制模塊信息; 所述從控制才莫塊,用來存儲從控制模塊信息。
所述的系統(tǒng),其中,所述仲裁模塊還包括兩個電池及其供電電路,所 述電池與外電源并聯(lián),形成三路取電方式。
所述的系統(tǒng),其中,所述用戶應(yīng)用電路包括遠(yuǎn)程下載接口電路。 一種通過控制模塊熱備份實現(xiàn)遠(yuǎn)程下載的方法,其步驟如下
A、 檢測主控制模塊運(yùn)行狀態(tài)產(chǎn)生故障,給出故障信號,并通知從控制 模塊
B、 檢測從控制模塊運(yùn)行狀態(tài)正常,向仲裁模塊、以及主控制模塊發(fā)送 運(yùn)行正常信號,并申請系統(tǒng)控制權(quán)
C、 向從控制^t塊發(fā)送選通控制信號,從控制;f莫塊根據(jù)選通控制信號獲 得系統(tǒng)控制權(quán),運(yùn)行于應(yīng)用程序區(qū),執(zhí)行遠(yuǎn)程下載后臺與主控制模塊間下 載數(shù)據(jù)信息的解析和轉(zhuǎn)發(fā)操作;
D、 主控制模塊運(yùn)行于引導(dǎo)程序區(qū),根據(jù)所述下載數(shù)據(jù)信息,更新自身 應(yīng)用程序,實現(xiàn)下載升級。
所述的方法,其中,所述D步驟之后還包括主控制模塊申請系統(tǒng)控 制權(quán),并獲得系統(tǒng)控制權(quán),轉(zhuǎn)入應(yīng)用程序區(qū),執(zhí)行遠(yuǎn)程下載后臺與從控制 模塊間下載數(shù)據(jù)信息的解析和轉(zhuǎn)發(fā)操作。
所述的方法,其中,所述D步驟之后還包括所述從控制模塊放棄系 統(tǒng)控制權(quán),轉(zhuǎn)入引導(dǎo)程序區(qū),根據(jù)遠(yuǎn)程下載后臺與從控制模塊間的下載數(shù) 據(jù)信息,更新自身應(yīng)用程序,實現(xiàn)下載升級。
本發(fā)明提供的一種通過控制模塊主備用方式實現(xiàn)遠(yuǎn)程下載的系統(tǒng)及其 方法,其方法,由于采用了從控制模塊根據(jù)選通控制信號獲得系統(tǒng)控制權(quán),運(yùn)行于應(yīng)用程序區(qū),執(zhí)行遠(yuǎn)程下載后臺與主控制模塊間下載數(shù)據(jù)信息的傳
輸操作;主控制;f莫塊運(yùn)行于引導(dǎo)程序區(qū),根據(jù)所述下載數(shù)據(jù)信息,更新自 身應(yīng)用程序,實現(xiàn)下栽升級的方式,克服了現(xiàn)有技術(shù)由于引導(dǎo)程序BOOT空 間不足,無法實現(xiàn)復(fù)雜的遠(yuǎn)程下載的問題,同時降低軟件下載升級的費(fèi)用、 提高響應(yīng)的及時性,保障了下栽程序期間,系統(tǒng)可以正常工作,提高了系 統(tǒng)可靠性。
圖1為本發(fā)明的系統(tǒng)結(jié)構(gòu)示意圖2為本發(fā)明的雙口 RAM存貯區(qū)分配圖3為本發(fā)明的仲裁模塊方案示意圖4為本發(fā)明的主從控制模塊MCU實現(xiàn)遠(yuǎn)程下載運(yùn)行示意圖;圖5為本發(fā)明的仲裁器方案示意圖6為本發(fā)明的雙口 RAM、電池供電電路圖7為本發(fā)明的仲裁器電路圖8為本發(fā)明的控制模塊MCU軟件程序流程圖9為本發(fā)明的控制模塊下載程序流程圖。
具體實施例方式
下面結(jié)合附圖對技術(shù)方案的實施作進(jìn)一步的詳細(xì)描述。 下面結(jié)合附圖對本發(fā)明的各較佳實施例進(jìn)行更為詳細(xì)的描述。 本發(fā)明的核心思想是借用MCU的應(yīng)用程序空間遠(yuǎn)比引導(dǎo)程序BOOT 區(qū)間大,能夠勝任遠(yuǎn)程下載復(fù)雜應(yīng)用的特點,通過雙MCU主備用方式,借 用一塊MCU的應(yīng)用程序?qū)崿F(xiàn)遠(yuǎn)程下載復(fù)雜協(xié)議和近端IAP簡單協(xié)議的轉(zhuǎn) 發(fā),另一塊MCU執(zhí)行的下載操作。通過仲裁模塊上雙路電池供電的雙口 RAM,實現(xiàn)主控制模塊、從控制模塊的高速數(shù)據(jù)保存和交換;通過一個簡單可靠的仲裁器模塊,實現(xiàn)控制模塊的選通;軟件上,兩塊主從控制模塊 同時工作,交換lt據(jù),比較判斷,分析偵查故障點,保障正常無故障的控 制模塊擁有系統(tǒng)的控制權(quán)。擁有系統(tǒng)控制權(quán)的控制模塊,運(yùn)行于應(yīng)用程序 區(qū),有足夠的程序空間,通過遠(yuǎn)程下載接口電路,接收下載數(shù)據(jù),通過I2C、 同步串行外設(shè)接口 SPI、通用異步接收/發(fā)送裝置UART等內(nèi)部總線和簡 單協(xié)議,傳遞到另一個控制模塊的引導(dǎo)程序BOOT;在另一個控制模塊的 引導(dǎo)程序BOOT程序內(nèi)部,通過IAP方式,更新自身的應(yīng)用程序。反之亦 然。通過兩塊控制模塊主備用方式的方式,實現(xiàn)遠(yuǎn)程下載。
本發(fā)明的遠(yuǎn)程下載裝置,如圖l所示,其包括主控模塊、從控模塊、 仲裁模塊、用戶應(yīng)用電路,所述仲裁模塊分別與所述主控模塊、從控模塊 通訊連接,所述仲裁器模塊還與所述用戶應(yīng)用電路通訊連接;
所述仲裁模塊,用來通過檢測兩控制模塊的狀態(tài),產(chǎn)生片選信號仲裁 其中一正??刂颇K獲得控制權(quán)、選通,使其形成選通控制模塊,則另一 控制模塊為未選通控制模塊;
所述用戶應(yīng)用電i 各包括遠(yuǎn)程下載接口電路,所述遠(yuǎn)程下載接口電路 可以為以太網(wǎng)接口電路或MODEM接口電路等等,其可以根據(jù)需要直接放 置到用戶應(yīng)用電路中,也可以不在用戶應(yīng)用電路中。
所述仲裁模塊又包括有仲裁器電路、雙口 RAM、電池、供電電路; 所述用戶應(yīng)用電路還包括緩存電路、三態(tài)隔離電路;
所述緩存電路,為所有輸入到控制模塊的信號提供信號通道;
所述三態(tài)隔離電路分別與兩控制模塊相連,同時還與所述仲裁模塊相 連。由所述仲裁模塊產(chǎn)生片選信號來確定所述三態(tài)隔離電路與哪一控制模 塊通訊相通;
所有控制模塊的輸入信號通過緩存電路,同時進(jìn)入兩控制模塊;而其 他輸出、雙向傳輸信號,通過三態(tài)隔離電路,與兩塊控制模塊相連;三態(tài) 隔離電路,由仲裁器產(chǎn)生的片選信號來選通;所述控制模塊,用來檢測輸入的信息量,并且根據(jù)檢測信息和雙口
RAM的信息;輸出必要的控制量,而這些控制量是否能夠有效輸出,則由 仲裁模塊的選通信號決定;
所述仲裁模塊,用來檢測兩個控制模塊的狀態(tài),并根據(jù)他們的狀態(tài)產(chǎn) 生片選信號,決定哪一控制模塊獲得控制權(quán);獲得控制權(quán)的控制模塊,稱 為選通控制模塊,能夠?qū)⑵渌行盘柧€與用戶應(yīng)用電路連通,同時驅(qū)動輸 出鎖存器;另外一控制模塊則為未選通控制模塊,其不具備控制輸出的功 能,但仍然可以;險測輸入信號;隨時做好接收控制權(quán),成為選通控制模塊 的準(zhǔn)備;
所述雙口 RAM存貯空間分為三部分如圖2所示。第一部分為系統(tǒng)區(qū), 存貯著當(dāng)前系統(tǒng)的配置、參數(shù)、控制等信息;第二部分為主控制模塊信息 存貝i區(qū)、第三部分為從控制模塊信息存貯區(qū);分別存貯著主控制模塊、從 控制模塊的輸入釆集信息、狀態(tài)、告警、以及控制輸出信息等。兩塊控制 模塊都能夠訪問雙口 RAM的全部地址空間;實現(xiàn)信息交換。兩塊控制模塊 還能夠?qū)崿F(xiàn)配置、控制信息的同步更新;同時,各控制模塊復(fù)位后,能夠 第一時間讀取系統(tǒng)區(qū)信息,自動更新自身的配置和參數(shù)信息。第二、三部 分信息存貯區(qū),都能夠;陂兩塊控制模塊訪問;這樣,這兩個控制模塊能夠 彼此互通,獲悉自己和對方的所有信息,可以方便判斷自身和對方是否存 在故障,以及故障存在的可能位置;并以此判斷決定,應(yīng)該由哪一個控制 模塊投入運(yùn)行;輸出正確的信號給仲裁模塊;由仲裁模塊產(chǎn)生最終的片選 信號。
控制輸出信號具有鎖存功能。這樣,即使兩個控制模塊都出現(xiàn)故障,控 制輸出信號依舊可以維持以前的正確狀況,不會產(chǎn)生紊亂,不會對系統(tǒng)造成 影響;
仲裁模塊為了保存數(shù)據(jù),增加電池和供電電路,采用兩個電池、以及 外電源并聯(lián),形成三路取電方式,確保雙口 RAM和輸出控制鎖存器的供電穩(wěn)定。同時,為了確保雙口 RAM的正常訪問,即確保電源波動或者異常的 情況下,雙口 RAM中數(shù)據(jù)的穩(wěn)定;所述仲裁模塊還增加了非易失性隨機(jī) 訪問存儲器NVRAM控制器,斷電后仍能保持?jǐn)?shù)據(jù),如圖3所示。
本發(fā)明的通過控制模塊主備用方式實現(xiàn)遠(yuǎn)程下載的方法,兩個控制模 塊程序相同,除完成必要的業(yè)務(wù)操作,還包括以下步驟
51、 啟動控制模塊,并進(jìn)行初始化和自檢操作; 判斷控制模塊否存在故障;如有故障,向仲裁模塊和另一控制模塊發(fā)
出故障信號;
52、 初始化和自沖企通過后,首先從雙口 RAM系統(tǒng)信息區(qū)取出系統(tǒng)配置 和參數(shù)信息,進(jìn)行必要的校驗,判斷所述系統(tǒng)配置和參數(shù)信息是否正確; S3、當(dāng)所述系統(tǒng)配置和參數(shù)信息正確,則將其更新到控制模塊內(nèi);
當(dāng)所述系統(tǒng)配置和參數(shù)信息錯誤,則在控制才莫塊內(nèi)部存貯器中,讀取 自身保存的信息;經(jīng)過相同的校驗后,對雙口 RAM系統(tǒng)區(qū)信息進(jìn)行更新。 對于多數(shù)嵌入式應(yīng)用而言,控制模塊具有內(nèi)部存貯器,避免掉電丟失重要 信息;
54、 必要時,取出雙口 RAM中主控制模塊、從控制模塊信息存貯區(qū)信 息,確保獲取連續(xù)的正確信息,不因控制模塊的切換造成信息波動;
55、 檢測當(dāng)前控制模塊狀態(tài),若當(dāng)前控制模塊為主控制模塊,則所述 當(dāng)前控制模塊向仲裁模塊和另 一控制模塊即從控模塊送出系統(tǒng)正常信號 "MAST一OK",并且定時送出運(yùn)行信號"MAST一RUN",表明軟件運(yùn)行正常;
56、 主控制模塊,定期讀取雙口 RAM系統(tǒng)區(qū)信息,根據(jù)讀取的配置和 參數(shù)信息,對系統(tǒng)進(jìn)行監(jiān)測和控制;并把監(jiān)測和控制的信息保存到主控制 模塊信息存貯區(qū)。同時定期讀取從控制模塊信息存貯區(qū)內(nèi)容;并將主控制 模塊、從控制模塊信息存貯區(qū)信息進(jìn)行對比,若主控制模塊故障,就發(fā)出 系統(tǒng)故障信號"MAST一ERROR",通知從控制沖莫塊。
57、 從控制模塊,定期讀取雙口 RAM系統(tǒng)區(qū)信息,根據(jù)讀取到的配置和參數(shù)信息,對系統(tǒng)進(jìn)行監(jiān)測和控制;并把監(jiān)測和控制信息保存到從控制 模塊信息存貯區(qū)。定期讀取主控制模塊信息存貯區(qū)信息;并且對比主控制 模塊、從控制模塊信息存貯區(qū)信息,若從控制模塊系統(tǒng)故障,則發(fā)出系統(tǒng) 故障信號"SLAVE-ERROR,,;否則,發(fā)出系統(tǒng)正常信號"SLAVE—OK,,;
58、 當(dāng)所述從控制模塊發(fā)現(xiàn)本從控制模塊運(yùn)行正常,且檢測到主控制 模塊發(fā)出的"MAST—ERROR"信號;則向仲裁模塊和主控制模塊定時送出運(yùn) 行信號"SLAVE—RUN",表明軟件正常運(yùn)行,并且申請獲得控制權(quán),接管系 統(tǒng);
59、 仲裁模塊檢測到從控制模塊的在位運(yùn)行信號"SLAVE—EXT"、系統(tǒng) 正常信號"SLAVE —OK"和系統(tǒng)運(yùn)行信號"SLAVE _10^,,后,發(fā)出選通控制 信號,通知整個系統(tǒng),則從控制模塊獲得控制權(quán),成為選通控制模塊;
510、 只有獲得控制;f又的選通控制模塊,才可以對雙口 RAM系統(tǒng)信息 存貯區(qū)進(jìn)行寫操作。^a無論是否是選通控制才莫塊,都可以對全部雙口 RAM 空間進(jìn)行讀操作。
511、 獲得控制權(quán)的選通控制模塊,才能夠控制輸出;但無論是否選通, 控制模塊都可以接收輸入信號;
以下步驟為主從控制it塊實現(xiàn)遠(yuǎn)程下載的過程,如圖4所示。
512、 成為選通控制模塊的從控制模塊運(yùn)行在應(yīng)用程序區(qū),完成正常的 業(yè)務(wù)功能。同時通過下載接口和協(xié)議棧(如TCP/IP),接收遠(yuǎn)程下載的數(shù)據(jù);
513、 所述從控制模塊根據(jù)判斷遠(yuǎn)程后臺請求下載命令,觸發(fā)成為未選 通控制模塊的主控制模塊轉(zhuǎn)入到引導(dǎo)程序BOOT空間進(jìn)行運(yùn)行,執(zhí)行下載 升級操作;
514、 所述從控制才莫塊完成遠(yuǎn)程下載后臺和所述主控制才莫塊間的通訊轉(zhuǎn) 發(fā)功能;比如完成復(fù)雜的TCP/IP、 ZMODEM協(xié)議和內(nèi)部簡單的SPI、 I2C 協(xié)議之間的轉(zhuǎn)發(fā);
515、 所述主控制模塊運(yùn)行于引導(dǎo)程序BOOT區(qū),把下裁接收的數(shù)據(jù),通過IAP,對自身的應(yīng)用程序區(qū)進(jìn)行編程,即執(zhí)行遠(yuǎn)程下載升級;
516、 所述主控制纟莫塊完成遠(yuǎn)程下載升級后,通知所述從控制模塊和遠(yuǎn) 程下載后臺結(jié)束下載操作;同時所述主模塊跳轉(zhuǎn)到應(yīng)用程序區(qū),正常運(yùn)行業(yè) 務(wù)代碼;
517、 如果所述主控制模塊下載升級成功,還可以通知從控制模塊和遠(yuǎn) 程下載后臺,是否也對當(dāng)前從控制模塊進(jìn)行下載升級。如果需要,則主控 制模塊申請控制權(quán),被選通,形成選通控制模塊,而從控制模塊放棄控制 權(quán),形成未選通控制^t塊;
518、 所述主控制才莫塊申請控制權(quán)成功后,接管系統(tǒng);同時觸發(fā)從控制 模塊轉(zhuǎn)入到引導(dǎo)程序BOOT空間進(jìn)行運(yùn)行,執(zhí)行下載升級操作;
519、 重復(fù)步驟S12至S16,即完成另一個控制模塊的下載升級操作。 采用本發(fā)明所述方法和裝置,與現(xiàn)有技術(shù)相比,完全實現(xiàn)了 MCU的遠(yuǎn)
程下載功能;并且通過MCU主備用方式的方式;達(dá)到了下載過程中不影響 正常業(yè)務(wù)的運(yùn)行效果;即使下載錯誤或者中止,還能以原先的版本正常運(yùn) 行;具備很好的實用性和可靠性
本實施例以通信電源上的監(jiān)控單元為作為控制模塊實現(xiàn)遠(yuǎn)程下載為例 進(jìn)行更為詳細(xì)的描述。監(jiān)控單元使用以ATMEL公司8位(8根數(shù)據(jù)線,8 位指令)微處理器ATMEGA128為核心,構(gòu)建成監(jiān)測和控制通信電源系統(tǒng)的 嵌入式應(yīng)用。其中,ATMEGA128具備128KB的片上FLASH,另外有4KB 的片上RAM、 4KB的電可擦寫可編程只讀存儲器EEPROM。 128KB的片 上FLASH為程序空間,分配120KB作為應(yīng)用程序(APPLICATION)區(qū), 8KB作為引導(dǎo)程序BOOT區(qū);引導(dǎo)程序BOOT區(qū)間可以對APPLICATION 區(qū)進(jìn)行自編程,即IAP。使用兩片ATMEGA128構(gòu)成主從控制模塊??刂?模塊和用戶應(yīng)用電路間信號都通過三態(tài)緩沖器74LS245/74LS244實現(xiàn)緩沖 和隔離。用戶應(yīng)用電路中,通過RTL8019構(gòu)成以太網(wǎng)接口,實現(xiàn)TCP/IP 通訊和遠(yuǎn)程下載。仲裁模塊一個重要的部分就是仲裁器。仲裁器通過檢測主從控制模塊 的運(yùn)行狀態(tài),產(chǎn)生片選信號,以此來決定哪一個控制模塊獲得控制權(quán)。這 是一個非常重要和關(guān)鍵的部分。因此,仲裁器的設(shè)計必須極其可靠。元器
件最少、電路最簡單、無軟件參與,可以保障極高的可靠性。本實施例選
用了一個74HC123單穩(wěn)觸發(fā)器、 一個74HC02邏輯門和幾個電阻電容即完 成了仲裁,如圖5所示。本仲裁器具備主控制模塊優(yōu)先級原則。只有當(dāng)從 控制模塊在位(信號"SLAVE—EXT"有效)、從控制模塊運(yùn)行正常(信號 "SLAVE 一OK,,有效)和從控制模塊軟件周期性的運(yùn)行正常(信號"SLAVE _111^,,有效),三者同時滿足后,從控制模塊才能獲得控制權(quán)。這三個信號 都是從控制模塊發(fā)出的信號。換言之,如果主控制模塊產(chǎn)生故障且從控制 模塊正常,則從控制4莫塊獲得控制權(quán);否則主控制一莫塊獲得控制權(quán)。
同時,仲裁模塊上還有雙口 RAM供兩塊控制模塊數(shù)據(jù)的保存和交換; 有電池和NVRAM控制器保障掉電不丟失數(shù)據(jù)。如圖6所示,這里選用了 IDT7006作為雙口 RAM,它提供了兩套總線供兩個MCU進(jìn)行訪問。L—AB、 L—DB表示左邊MCU (即主控模塊)的地址、數(shù)據(jù)總線;RD—L、 WR—L、 CS7006一L分別表示左邊MCU (即主控模塊)的讀、寫和片選信號。同理, WR一R、 CS7006—R分別表示右邊MCU (即從控模塊)的寫和片選信號。 選擇了 DS14287作為NVRAM控制器,這是為了保證IDT7006掉電數(shù)據(jù)不 丟失。由于IDT7006具備主、從控制模塊譯碼訪問使用的兩個片選信號; 因此,需要兩塊DS14287。另外,DS14287具有內(nèi)部的鋰電,因此,不需 要再外加電池。同時,兩塊鋰電并聯(lián)工作,可靠性更高。為了并聯(lián)鋰電, 采用兩個理想二極管LTC4411,理想二極管具備極低的正向壓降。另外, 又從外電源通過一個肖特基二極管并聯(lián)供電。這樣,通過三路取電,保障 了雙口RAM的可靠供電,如圖7所示。
兩塊控制模塊的輸出信號,通過選通控制信號,經(jīng)由隔離驅(qū)動器后并 聯(lián),再由鎖存器輸出。這樣,可以保證兩個控制模塊同時故障時,控制輸出的信號都能維持不變。
主、從控制模塊可以同時完成一定的信號采集和控制、通訊等應(yīng)用。
所有的接口信號線,MCU的數(shù)據(jù)、地址、控制總線,進(jìn)入仲裁模塊供雙口 RAM使用;通過選通控制信號,從隔離驅(qū)動器連接到用戶應(yīng)用電路。
控制模塊接收來自仲裁模塊上的主從控制信號,從而獲知本控制模塊 是主控制模塊,還是從控制模塊??刂颇K還接收來自仲裁模塊上的仲裁 信號,從而獲知本控制模塊是否選通,是否擁有控制權(quán)。兩塊控制模塊間 還有至少三個互相通訊的信號,即在位(EXT)、系統(tǒng)正常(OK)和運(yùn)行信號 (RUN)。每個控制模塊都把自身的這三個信號送給對方,同時檢測對方的這 三個信號。當(dāng)從控制模塊發(fā)現(xiàn)自身一切正常,而對方主控制模塊產(chǎn)生故障 時,則向仲裁器申請控制權(quán)。仲裁器檢測到從控制模塊這三個信號都正常 后,則選通從控制模塊;否則主控制模塊被選通。
兩塊控制模塊,軟件程序相同,其軟件程序流程如圖8所示,具體步 -腺J(口下
5801、 首先初始化控制才莫塊MCU以及外設(shè);
5802、 對系統(tǒng)硬件進(jìn)行自檢,判斷控制模塊MCU是否故障;
5803、 若MCU發(fā)生故障,則送出故障信號;不進(jìn)行軟件程序運(yùn)行;
5804、 讀取雙口 RAM系統(tǒng)區(qū)的系統(tǒng)配置和參數(shù)信息;進(jìn)行信息校驗, 若校驗正確,則更新本控制模塊MCU上自己保存的系統(tǒng)配置和參數(shù)信息。 檢測仲裁器送來的選通控制信號,獲得控制權(quán),成為選通控制模塊,同步 更新自己保存的系統(tǒng)信息和雙口 RAM系統(tǒng)區(qū)信息,即完成對系統(tǒng)區(qū)的寫操 作,否則只能對雙口 RAM系統(tǒng)區(qū)的讀操作;
5805、 讀寫雙口隨4^存儲器RAM的信息區(qū),并且進(jìn)行校驗;
5806、 更新雙口隨機(jī)存儲器控制模塊信息區(qū),主控制模塊讀寫第二數(shù) 據(jù)區(qū);從控制模塊讀寫第三數(shù)據(jù)區(qū);
5807、 運(yùn)行業(yè)務(wù)代碼,即進(jìn)行監(jiān)測和控制操作;5808、 讀取雙口RAM中第二、三數(shù)據(jù)區(qū)信息,并進(jìn)行分析,比較判斷 主從控制模塊是否正常;
本控制模塊如果正常,送出OK信號,否則,送出ERROR信號;
5809、 檢測本控制模塊是否為主控制模塊,若是,則送出周期運(yùn)行RUN 信號;
5810、 如果本控制模塊是從控制模塊,則檢測判斷主控制模塊是否正 常;如果產(chǎn)生故障,從控制模塊送出周期運(yùn)行RUN信號,向仲裁器申請控 制權(quán);
以下步驟是控制模塊實現(xiàn)遠(yuǎn)程下載的流程,如圖9所示。
L901、選通從控制模塊運(yùn)行于應(yīng)用程序區(qū)(運(yùn)行TCP/IP協(xié)議),接收 來自遠(yuǎn)程下載后臺的數(shù)據(jù);
如經(jīng)過裁減后的uIPTC/IP協(xié)議棧大概只需要IOKB左右的程序空間。 顯然,即使經(jīng)過裁減,協(xié)議??臻g還是超過引導(dǎo)程序BOOT空間最大的 8KB。因此,必須采用這種方法,在應(yīng)用程序區(qū),實現(xiàn)遠(yuǎn)程下載;
L902、選通從控制模塊設(shè)置為客戶端(或者服務(wù)器),解析遠(yuǎn)程下載后 臺 發(fā)來的數(shù)據(jù)信息
當(dāng)作為服務(wù)器時,選通從控制模塊監(jiān)聽某一個端口 (如1025 口 );
當(dāng)作為客戶端時,選通從控制模塊正常工作后,自動連接遠(yuǎn)程的TCP 代理,選通從控制模塊解析遠(yuǎn)程下載后臺發(fā)來的數(shù)據(jù);
L903、判斷發(fā)送的遠(yuǎn)程下載請求命令;
L904、選通從控制模塊通過UART接口,通知未選通主控制模塊轉(zhuǎn)入 引導(dǎo)程序BOOT區(qū),啟動下載;
L905、未選通主控制模塊正確轉(zhuǎn)入到引導(dǎo)程序BOOT區(qū)后,選通從控 制模塊把來自以太網(wǎng)接口的數(shù)據(jù),通過UART接口,轉(zhuǎn)發(fā)給未選通主控制 模塊;同時,把未選通主控制模塊回傳的數(shù)據(jù)通過以太網(wǎng)接口,發(fā)給遠(yuǎn)程 下載后臺,即選通從控制模塊轉(zhuǎn)發(fā)遠(yuǎn)程下載后臺和未選通主控制模塊引導(dǎo)程序BOOT間的下載數(shù)據(jù);
L906、未選通主控制才莫塊運(yùn)行于引導(dǎo)程序BOOT中,更新自身的應(yīng)用 程序,即完成下載升級"^喿作;
L卯7、未選從通控制沖莫塊完成了下載后,轉(zhuǎn)入應(yīng)用程序區(qū),正常運(yùn)行;
L卯8、判斷選通從控制模塊是否需要下載;
L909、當(dāng)選通從控制模塊需要下載程序,同時檢測到升級后的未選通 主控制模塊運(yùn)行正常后;則未升級的選通從控制模塊放棄控制權(quán),成為未 選通從控制模塊,并跳轉(zhuǎn)到引導(dǎo)程序BOOT區(qū),執(zhí)行下載升級操作這時, 未選通主控制模塊獲得了控制權(quán)成為選通主控制模塊,否則退出;
重復(fù)步驟L906至L909,即完成另一控制模塊的程序下載;
返回步驟L903,無限循環(huán)運(yùn)行。
本發(fā)明的系統(tǒng)和方法,在硬件上通過筒單可靠的仲裁器,結(jié)合軟件的 正常運(yùn)行,實現(xiàn)雙控制^f莫塊MCU的運(yùn)行切換;軟件上借用控制模塊MCU 的應(yīng)用程序空間遠(yuǎn)比引導(dǎo)程序BOOT區(qū)間大,能夠勝任遠(yuǎn)程下載復(fù)雜應(yīng)用 的特點,通過雙控制模塊MCU主備用方式的方式,借用 一塊控制模塊MCU 的應(yīng)用程序完成遠(yuǎn)程下載復(fù)雜協(xié)議解析和近端IAP簡單協(xié)議的轉(zhuǎn)發(fā),來實 現(xiàn)另一塊控制模塊MCU的下載。反之亦然。通過兩塊控制模塊交叉升級的 方式,最終巧妙地實現(xiàn)了遠(yuǎn)程下載,同時,保障了下載程序期間,系統(tǒng)能 夠正常工作,提高了系統(tǒng)可靠性。
應(yīng)當(dāng)理解的是,上述具體實施例的描述較為詳細(xì),不能因此而理解為 對本發(fā)明專利保護(hù)范圍的限制,本發(fā)明專利保護(hù)范圍應(yīng)以所附權(quán)利要求為 準(zhǔn)。
權(quán)利要求
1、一種通過控制模塊熱備份實現(xiàn)遠(yuǎn)程下載的系統(tǒng),其中,所述系統(tǒng)包括控制模塊、仲裁模塊、用戶應(yīng)用電路;所述仲裁模塊分別與所述控制模塊、所述用戶應(yīng)用電路通訊連接;所述控制模塊包括主控制模塊、從控制模塊;所述仲裁模塊,用來通過檢測控制模塊運(yùn)行狀態(tài),產(chǎn)生選通控制信號對控制模塊進(jìn)行選通仲裁;所述控制模塊,用來執(zhí)行下載數(shù)據(jù)信息的傳輸操作、或執(zhí)行遠(yuǎn)程下載升級操作;所述用戶應(yīng)用電路,為系統(tǒng)提供相應(yīng)的接口電路。
2、 根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述控制模塊為微處理器。
3、 根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述仲裁模塊包括雙口 隨機(jī)存儲器,所述雙口隨機(jī)存儲器又分為三個信息區(qū)系統(tǒng)信息區(qū)、主控 制模塊信息區(qū)、從控制模塊信息區(qū);所述系統(tǒng)信息區(qū),用來存儲當(dāng)前系統(tǒng)信息; 所述主控制才莫塊,用來存儲主控制模塊信息; 所述從控制it塊,用來存儲從控制模塊信息。
4、 根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述仲裁模塊還包括兩 個電池及其供電電路,并與外電源并聯(lián),形成三路取電方式。
5、 根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述用戶應(yīng)用電路包括 遠(yuǎn)程下載接口電路。
6. 一種通過控制模塊熱備份實現(xiàn)遠(yuǎn)程下載的方法,其步驟如下A、 檢測主控制模塊運(yùn)行狀態(tài)產(chǎn)生故障,給出故障信號,并通知從控制 模塊;B、 檢測從控制模塊運(yùn)行狀態(tài)正常,向仲裁模塊、以及主控制模塊發(fā)送 運(yùn)行正常信號,并申請系統(tǒng)控制權(quán);C、 向從控制模塊發(fā)送選通控制信號,從控制模塊根據(jù)選通控制信號獲 得系統(tǒng)控制權(quán),運(yùn)行于應(yīng)用程序區(qū),執(zhí)行遠(yuǎn)程下載后臺與主控制模塊間下 載數(shù)據(jù)信息的解析和轉(zhuǎn)發(fā)操作;D、 主控制模塊運(yùn)行于引導(dǎo)程序區(qū),根據(jù)所述下載數(shù)據(jù)信息,更新自身 應(yīng)用程序,實現(xiàn)下載升級。
7. 根據(jù)權(quán)利要求6所述的方法,其特征在于,所述D步驟之后還包括 主控制模塊申請系統(tǒng)控制權(quán),并獲得系統(tǒng)控制權(quán),轉(zhuǎn)入應(yīng)用程序區(qū),執(zhí)行 遠(yuǎn)程下載后臺與從控制才莫塊間下載數(shù)據(jù)信息的解析和轉(zhuǎn)發(fā)l喿作。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述D步驟之后還包括 所述從控制模塊放棄系統(tǒng)控制權(quán),轉(zhuǎn)入引導(dǎo)程序區(qū),根據(jù)遠(yuǎn)程下載后臺與 從控制模塊間的下載數(shù)據(jù)信息,更新自身應(yīng)用程序,實現(xiàn)下載升級。
全文摘要
本發(fā)明公開了一種通過控制模塊主備用方式實現(xiàn)遠(yuǎn)程下載的系統(tǒng)及其方法,方法如下檢測主控制模塊運(yùn)行狀態(tài)產(chǎn)生故障,給出故障信號,并通知從控制模塊檢測從控制模塊運(yùn)行狀態(tài)正常,向仲裁模塊、主控制模塊發(fā)送正常信號,申請控制權(quán)發(fā)送選通控制信號,從控制模塊根據(jù)選通控制信號獲得系統(tǒng)控制權(quán),運(yùn)行于應(yīng)用程序區(qū),執(zhí)行下載信息解析和轉(zhuǎn)發(fā)操作;主控制模塊運(yùn)行于引導(dǎo)程序區(qū),根據(jù)下載信息,更新自身應(yīng)用程序,實現(xiàn)下載升級。本發(fā)明的方法,由于采用一控制模塊運(yùn)行在應(yīng)用程序區(qū),傳輸下載信息;另一控制模塊運(yùn)行于引導(dǎo)程序區(qū)完成下載升級的方式,克服了因引導(dǎo)程序空間不足,無法實現(xiàn)復(fù)雜的遠(yuǎn)程下載問題,降低了下載升級費(fèi)用、提高響應(yīng)的及時性。
文檔編號H04L1/22GK101409641SQ20081021751
公開日2009年4月15日 申請日期2008年11月4日 優(yōu)先權(quán)日2008年11月4日
發(fā)明者勇 熊 申請人:中興通訊股份有限公司