電子設(shè)備信息傳輸方法
【專利摘要】本發(fā)明提供了一種電子設(shè)備信息傳輸方法,用于對程序進(jìn)行升級,包括:上位機(jī)將升級數(shù)據(jù)包發(fā)送至緩存器;緩存器發(fā)送復(fù)位命令至該設(shè)備;啟動設(shè)備主程序;當(dāng)判斷有升級任務(wù)時(shí),中斷主程序,并接收來自緩存器的傳輸命令;對存儲器中的塊執(zhí)行擦除和寫入。本發(fā)明對程序升級過程中斷電情況進(jìn)行處理,升級過程不需要人為介入,具有簡單、便捷、可靠、成本低等優(yōu)點(diǎn)。
【專利說明】電子設(shè)備信息傳輸方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及電子設(shè)備程序的升級,特別涉及一種用于程序控制裝置的程序升級方法。
【背景技術(shù)】
[0002]隨著工業(yè)設(shè)備自動化控制需求的持續(xù)增長,微控制器的使用領(lǐng)域迅速擴(kuò)大,例如可編程邏輯控制器PLC,并且在功能上也推陳出新。嵌入式微控制器作為工業(yè)自動化控制系統(tǒng)的控制單元,面對擴(kuò)大的市場需求和千變?nèi)f化的應(yīng)用現(xiàn)場,需要不斷開發(fā)新的功能和優(yōu)化完善已有的功能。通過編制相應(yīng)的程序,微控制器能實(shí)現(xiàn)復(fù)雜的邏輯控制。例如,在污水處理系統(tǒng)中,PLC和上位機(jī)之間通過以態(tài)網(wǎng)交換數(shù)據(jù)?,F(xiàn)場安裝的各種在線水質(zhì)監(jiān)測儀表,將測得的現(xiàn)場信號送到微控制器,微控制器將數(shù)據(jù)經(jīng)過轉(zhuǎn)化后再送到上位機(jī),這樣,運(yùn)行人員在控制室通過上位機(jī)可以觀測到現(xiàn)場系統(tǒng)的運(yùn)行情況,為系統(tǒng)的安全運(yùn)行提供了可靠的條件。
[0003]目前,對于已經(jīng)裝備在客戶現(xiàn)場和集成在設(shè)備廠商工業(yè)設(shè)備上的程序控制裝置,通常需要由廠商的服務(wù)人員或者用戶現(xiàn)場升級系統(tǒng)。為了提高產(chǎn)品的易用性和升級的可靠性,一些程序控制裝置本身具有程序升級功能,以方便后續(xù)的功能更新和產(chǎn)品升級,滿足客戶對產(chǎn)品功能的持續(xù)需求。在這些程序升級系統(tǒng)中有數(shù)據(jù)接收模塊和系統(tǒng)升級模塊等部分組成,把接收的數(shù)據(jù)存儲并對當(dāng)前的程序控制裝置進(jìn)行軟件版本的升級。
[0004]然而這種程序升級方法,存在著諸多缺點(diǎn):缺乏程序升級過程中突然斷電情況的有效處理;對升級數(shù)據(jù)有效性判斷不準(zhǔn)確;升級過程繁瑣,需要過多的人為介入等。
【發(fā)明內(nèi)容】
[0005]為解決上述現(xiàn)有技術(shù)所存在的問題,本發(fā)明提出了一種電子設(shè)備信息傳輸方法,用于對設(shè)備的程序進(jìn)行升級,其特征在于,包括:
[0006]步驟一,上位機(jī)將升級數(shù)據(jù)包發(fā)送至緩存器;
[0007]步驟二,緩存器發(fā)送復(fù)位命令至該設(shè)備;
[0008]步驟三,啟動設(shè)備主程序;
[0009]步驟四,當(dāng)判斷有升級任務(wù)時(shí),中斷主程序,并接收來自緩存器的傳輸命令;
[0010]步驟五,對存儲器中的塊執(zhí)行擦除和寫入。
[0011 ] 優(yōu)選地,所述設(shè)備為微控制器,包含片內(nèi)RAM和片內(nèi)R0M,該片內(nèi)ROM分為2個(gè)存儲塊,主存儲塊BlockO和次存儲塊Blockl,所述微控制器與片外Flash的連接,微控制器與片外Flash采用SPI總線進(jìn)行通信,使用相應(yīng)的命令字對片外Flash的讀寫、擦除操作。
[0012]優(yōu)選地,所述步驟一進(jìn)一步包括:
[0013]所述上位機(jī)選擇一個(gè)子卡進(jìn)行遠(yuǎn)程升級,通過FTP協(xié)議發(fā)送升級數(shù)據(jù)包給升級數(shù)據(jù)緩存器,升級數(shù)據(jù)緩存器將接收到的升級數(shù)據(jù)包進(jìn)行校驗(yàn),在校驗(yàn)后存儲至微控制器Flash 中;[0014]所述步驟二進(jìn)一步包括:
[0015]升級數(shù)據(jù)緩存器發(fā)送復(fù)位指令將子卡的控制單元復(fù)位,微控制器復(fù)位啟動后進(jìn)入引導(dǎo)程序模式,準(zhǔn)備進(jìn)行升級;
[0016]所述步驟三進(jìn)一步包括:
[0017]微控制器復(fù)位后,從Blockl中運(yùn)行主程序,當(dāng)微控制器運(yùn)行主程序時(shí),先判斷保護(hù)標(biāo)志是否有效,如果該標(biāo)志有效,表示上一次升級過程中遇到故障(斷電等異常情況),則微控制器自動將程序恢復(fù)至出廠程序,否則微控制器主程序待機(jī),等待微控制器處理串口中斷接收到的數(shù)據(jù),判斷是否有升級任務(wù),
[0018]如果有升級任務(wù),則將微控制器升級標(biāo)志置為有效,如果該標(biāo)志有效,則微控制器主程序待機(jī),等待在線升級完成,升級完成后,開啟看門狗等待微控制器復(fù)位;
[0019]所述步驟五進(jìn)一步包括:
[0020]升級數(shù)據(jù)緩存器收到文件傳輸命令后,發(fā)送一幀文件傳輸開始的指令,將待升級的應(yīng)用程序包分解成適合微控制器私有協(xié)議傳輸?shù)亩?,按照文件塊序號逐段發(fā)送給子卡,子卡收到數(shù)據(jù)包,并在CRC校驗(yàn)無誤后將微控制器升級標(biāo)志置為有效,并開始擦除片外Flash文件部分的塊,
[0021]在程序文件傳輸中,控制單元開始接收數(shù)據(jù),此時(shí)微控制器將接收到的程序文件寫入片外Flash文件部分的塊;程序傳輸結(jié)束時(shí),控制單元將升級文件的文件名、文件長度和文件CRC16的校驗(yàn)和寫入片外Flash的7FFFFH-80000H部分的扇區(qū),共4k字節(jié),微控制器對接收到的文件整體校驗(yàn),發(fā)送應(yīng)答幀通知升級數(shù)據(jù)緩存器校驗(yàn)結(jié)果,
[0022]升級數(shù)據(jù)緩存器收到執(zhí)行升級命令后,通知子卡準(zhǔn)備執(zhí)行升級,微控制器先運(yùn)行Blockl的升級程序,校驗(yàn)升級的應(yīng)用程序文件,如果校驗(yàn)通過,將保護(hù)標(biāo)志置為有效,
[0023]擦除微控制器片內(nèi)ROM整個(gè)BlockO的塊,當(dāng)SFST寄存器的標(biāo)志位被置位后,表示擦除完成,接著,微控制器將片外Flash存儲區(qū)中的升級文件讀出并寫入到微控制器片內(nèi)ROM的BlockO塊中,開啟看門狗,等待微控制器復(fù)位,整個(gè)升級程序完成,
[0024]當(dāng)開門狗溢出后,微控制器復(fù)位令升級標(biāo)志也復(fù)位,微控制器程序跳轉(zhuǎn)到BlockO起始位置運(yùn)行,微控制器程序正常運(yùn)行后將保護(hù)標(biāo)志復(fù)位;
[0025]其中,升級數(shù)據(jù)緩存器與所述子卡基于SPI采用糾錯(cuò)機(jī)制和異常處理機(jī)制私有協(xié)議,在升級數(shù)據(jù)緩存器與子卡控制單元通信中采用發(fā)送一幀數(shù)據(jù),確認(rèn)一幀數(shù)據(jù),收到錯(cuò)幀,請求重發(fā)的通信形式,所述私有協(xié)議的SPI通信幀設(shè)計(jì)最大幀長,接收程序可以通過文件塊序號在終端進(jìn)行文件整理組合,微控制器發(fā)送應(yīng)答幀給升級數(shù)據(jù)緩存器通知文件塊接收0K,否則升級數(shù)據(jù)緩存器重傳文件塊,如果重傳次數(shù)超過閾值仍傳送失敗,則標(biāo)志此次升級失敗;
[0026]該協(xié)議數(shù)據(jù)幀包括以下內(nèi)容:
[0027]幀頭:表示數(shù)據(jù)包的開始,優(yōu)選地固定為0xFE,0xFA2個(gè)字節(jié);
[0028]命令字:表示文件傳輸命令還是執(zhí)行升級命令;
[0029]指令值:命令字的子命令,如果命令字是文件傳輸命令,則指令值有傳輸開始、傳輸中、傳輸結(jié)束3個(gè)指令;如果命令字是升級命令,則指令值就是執(zhí)行在線升級指令;
[0030]文件塊序號:表示升級程序所分割的報(bào)文所處的序號;
[0031]文件塊內(nèi)容:程序內(nèi)容字節(jié);[0032]CRC16校驗(yàn)和:一幀數(shù)據(jù)的校驗(yàn)和,采用CRC16校驗(yàn)。
[0033]相比于現(xiàn)有技術(shù),本發(fā)明的技術(shù)方案的具有以下優(yōu)點(diǎn):對程序升級過程中斷電情況進(jìn)行處理,升級過程不需要人為介入,具有簡單、便捷、可靠、成本低等優(yōu)點(diǎn)。
【專利附圖】
【附圖說明】
[0034]圖1是根據(jù)本發(fā)明實(shí)施例的設(shè)備程序升級的方法流程圖。
【具體實(shí)施方式】
[0035]多種方式可以用于(包括實(shí)施為過程;裝置;系統(tǒng);物質(zhì)組成;在計(jì)算機(jī)可讀存儲介質(zhì)上包括的計(jì)算機(jī)程序產(chǎn)品;和/或處理器(諸如如下處理器,該處理器被配置成執(zhí)行在耦合到處理器的存儲器上存儲的和/或由該存儲器提供的指令))實(shí)施本發(fā)明。在本說明書中,這些實(shí)施或者本發(fā)明可以采用的任何其他形式可以稱為技術(shù)。一般而言,可以在本發(fā)明的范圍內(nèi)變更公開的過程的步驟順序。除非另有明示,描述為被配置成執(zhí)行任務(wù)的部件(諸如處理器或者存儲器)可以實(shí)施為被臨時(shí)配置成在給定時(shí)間執(zhí)行該任務(wù)的一般部件或者被制造成執(zhí)行該任務(wù)的具體部件。
[0036]下文與圖示本發(fā)明原理的附圖一起提供對本發(fā)明一個(gè)或者多個(gè)實(shí)施例的詳細(xì)描述。結(jié)合這樣的實(shí)施例描述本發(fā)明,但是本發(fā)明不限于任何實(shí)施例。本發(fā)明的范圍僅由權(quán)利要求書限定,并且本發(fā)明涵蓋諸多替代、修改和等同物。在下文描述中闡述諸多具體細(xì)節(jié)以便提供對本發(fā)明的透徹理解。出于示例的目的而提供這些細(xì)節(jié),并且無這些具體細(xì)節(jié)中的一些或者所有細(xì)節(jié)也可以根據(jù)權(quán)利要求書實(shí)現(xiàn)本發(fā)明。
[0037]本發(fā)明的目的在于提供一種電子設(shè)備信息傳輸方法,特別用于對設(shè)備的程序進(jìn)行升級,如圖1所示。
[0038]待升級的設(shè)備例如可為一種微控制器,包含片內(nèi)RAM和片內(nèi)ROM。片內(nèi)ROM分為2個(gè)存儲塊,主存儲塊BlockO和次存儲塊Blockl。整個(gè)內(nèi)部程序空間被限制為64字節(jié)。該設(shè)備允許駐留于某一個(gè)存儲塊中的程序?qū)α硪粔K存儲塊進(jìn)行重編程操作。要實(shí)現(xiàn)在線升級的功能,必須用在線升級程序替換原來的應(yīng)用程序,用來引導(dǎo)在線升級程序。
[0039]微控制器自帶高速異步串行口,支持并行操作,除微控制器之外,只需要擴(kuò)展I個(gè)Flash用來存儲升級的程序文件。微控制器與片外Flash的連接方式如下,微控制器其他外圍電路按照設(shè)備功能需求設(shè)計(jì),片外Flash的存儲空間為IM字節(jié),最小擦除塊的容量為4k字節(jié)。微控制器與片外Flash采用SPI總線進(jìn)行通信,對片外Flash的讀寫、擦除等操作只需要使用相應(yīng)的命令字即可,片外Flash首地址00000H-01000H存儲升級保護(hù)標(biāo)志。地址01000H-5F000H分配給出廠時(shí)的配置和用戶最近一次的配置。隔離區(qū)用于保證存儲文件的獨(dú)立性。地址60000H-80000H分配給應(yīng)用程序文件存儲區(qū),其中程序文件A存儲出廠程序,程序文件B存儲接收到的升級程序。
[0040]具體地,本發(fā)明的遠(yuǎn)程升級流程由以下步驟組成:
[0041]上位機(jī)選擇一個(gè)子卡進(jìn)行遠(yuǎn)程升級,通過FTP協(xié)議發(fā)送升級數(shù)據(jù)包給升級數(shù)據(jù)緩存器,升級數(shù)據(jù)緩存器將接收到的升級數(shù)據(jù)包進(jìn)行校驗(yàn),在校驗(yàn)后存儲至微控制器Flash中。升級數(shù)據(jù)緩存器發(fā)送復(fù)位指令將子卡的控制單元復(fù)位,微控制器復(fù)位啟動后進(jìn)入引導(dǎo)程序模式,準(zhǔn)備進(jìn)行升級。[0042]主程序循環(huán)處理流程
[0043]微控制器復(fù)位后,從Blockl中運(yùn)行主程序。當(dāng)微控制器運(yùn)行主程序時(shí),先判斷保護(hù)標(biāo)志是否有效,如果該標(biāo)志有效,表示上一次升級過程中遇到故障(斷電等異常情況),則微控制器自動將程序恢復(fù)至出廠程序。否則微控制器主程序待機(jī),等待微控制器處理串口中斷接收到的數(shù)據(jù),判斷是否有升級任務(wù)。
[0044]如果有升級任務(wù),則將微控制器升級標(biāo)志置為有效,如果該標(biāo)志有效,則微控制器主程序待機(jī),等待在線升級完成。升級完成后,開啟看門狗等待微控制器復(fù)位。以上是微控制器程序主循環(huán)運(yùn)行過程。
[0045]程序中斷處理流程
[0046]升級數(shù)據(jù)緩存器收到文件傳輸命令后,發(fā)送一幀文件傳輸開始的指令,將待升級的應(yīng)用程序包分解成適合微控制器私有協(xié)議傳輸?shù)亩危凑瘴募K序號逐段發(fā)送給子卡,子卡收到數(shù)據(jù)包,并在CRC校驗(yàn)無誤后將微控制器升級標(biāo)志置為有效,并開始擦除片外Flash文件B部分的塊。
[0047]在程序文件傳輸中,控制單元開始接收數(shù)據(jù),此時(shí)微控制器將接收到的程序文件寫入片外Flash從文件B部分的塊;程序傳輸結(jié)束時(shí),控制單元將升級文件的文件名、文件長度和文件CRC16的校驗(yàn)和寫入片外Flash的7FFFFH-80000H部分的扇區(qū),共4k字節(jié),微控制器對接收到的文件整體校驗(yàn),發(fā)送應(yīng)答幀通知升級數(shù)據(jù)緩存器校驗(yàn)結(jié)果。
[0048]升級數(shù)據(jù)緩存器收到執(zhí)行升級命令后,通知子卡準(zhǔn)備執(zhí)行升級。微控制器會先運(yùn)行Blockl的升級程序,校驗(yàn)升級的應(yīng)用程序文件,如果校驗(yàn)通過,將保護(hù)標(biāo)志置為有效。
[0049]接下來開始擦除微控制器片內(nèi)ROM整個(gè)BlockO的塊,當(dāng)SFST寄存器的標(biāo)志位被置位后,表示擦除完成。接著,微控制器將片外Flash存儲區(qū)B中的升級文件讀出并寫入到微控制器片內(nèi)ROM的BlockO塊中,開啟看門狗,等待微控制器復(fù)位,整個(gè)升級程序完成。
[0050]當(dāng)開門狗溢出后,微控制器復(fù)位令升級標(biāo)志也復(fù)位,微控制器程序跳轉(zhuǎn)到BlockO起始位置運(yùn)行。微控制器程序正常運(yùn)行后將保護(hù)標(biāo)志復(fù)位。
[0051]在升級數(shù)據(jù)緩存器與子卡的數(shù)據(jù)交互方面,基于SPI采用一種私有協(xié)議,該協(xié)議具有糾錯(cuò)機(jī)制和異常處理機(jī)制。在升級數(shù)據(jù)緩存器ARM與子卡控制單元通信中采用發(fā)送一幀數(shù)據(jù),確認(rèn)一幀數(shù)據(jù),收到錯(cuò)幀,請求重發(fā)的通信形式。該私有協(xié)議設(shè)計(jì)的SPI通信幀最大幀長不超過500字節(jié),接收程序可以通過文件塊序號在終端進(jìn)行文件整理組合,微控制器發(fā)送應(yīng)答幀給升級數(shù)據(jù)緩存器通知文件塊接收0K,否則升級數(shù)據(jù)緩存器重傳文件塊,如果重傳次數(shù)超過閾值仍傳送失敗,則標(biāo)志此次升級失敗。該私有協(xié)議數(shù)據(jù)幀包括以下內(nèi)容:
[0052]幀頭:表示數(shù)據(jù)包的開始,優(yōu)選地固定為0XFE,0XFA2個(gè)字節(jié)。
[0053]命令字:表示文件傳輸命令還是執(zhí)行升級命令。
[0054]指令值:命令字的子命令。如果命令字是文件傳輸命令,則指令值有傳輸開始、傳輸中、傳輸結(jié)束3個(gè)指令;如果命令字是升級命令,則指令值就是執(zhí)行在線升級指令。
[0055]文件塊序號:表示升級程序所分割的報(bào)文所處的序號。
[0056]文件塊內(nèi)容:程序內(nèi)容字節(jié)。
[0057]CRC16校驗(yàn)和:一幀數(shù)據(jù)的校驗(yàn)和,采用CRC16校驗(yàn)。
[0058]微控制器對片外Flash的操作主要用到擦除片外Flash塊函數(shù)和讀片外Flash數(shù)據(jù)函數(shù),通過微控制器與片外Flash的SPI讀指令(spi_Send字節(jié))和寫指令(spi_Read字節(jié))向微控制器發(fā)送相應(yīng)的命令字在遇到異常情況時(shí),如升級的過程中出現(xiàn)斷電故障,子卡能自動恢復(fù)到出廠程序運(yùn)行,等待再次響應(yīng)網(wǎng)管中心下達(dá)升級命令,直至升級成功。該實(shí)現(xiàn)技術(shù)在嵌入式程序的修改和升級中得到了應(yīng)用和驗(yàn)證,具有簡單、便捷、可靠、成本低等優(yōu)點(diǎn)。
[0059] 本發(fā)明優(yōu)選的實(shí)施例采用SIEMENS的S7-200可編程控制器用于完成現(xiàn)場電氣控制、水質(zhì)反饋處理以及各污染物含量分析儀器的數(shù)據(jù)采集,現(xiàn)場工控機(jī)與可編程控制器和監(jiān)控中心通信,可以進(jìn)行數(shù)據(jù)傳輸、參數(shù)設(shè)置,并可兼作現(xiàn)場工作狀態(tài)顯示和數(shù)據(jù)的存儲。監(jiān)控中心接收多個(gè)現(xiàn)場的數(shù)據(jù)、告警信息等,可以進(jìn)行數(shù)據(jù)接收、顯示、查詢等??删幊炭刂破骱同F(xiàn)場工控機(jī)通過RS485連接,工控機(jī)輪詢控制器是否有報(bào)警信息和控制操作以及分析儀的數(shù)據(jù)等,系統(tǒng)中的控制器、Modem和工控機(jī)串口的通信參數(shù)(波特率、起始位、數(shù)據(jù)位、停止位和奇偶校驗(yàn)位)設(shè)置必須相同?,F(xiàn)場工控機(jī)和監(jiān)控中心通過GPRS網(wǎng)絡(luò)通信,采用短信編碼格式,可以將數(shù)據(jù)及告警信息同時(shí)發(fā)送至監(jiān)控中心和普通的手機(jī)用戶。采用GPRS網(wǎng)絡(luò),節(jié)約建設(shè)成本,縮短建設(shè)周期,網(wǎng)絡(luò)覆蓋范圍廣,傳輸范圍不受限制,整個(gè)系統(tǒng)性能價(jià)格t 匕 1?。
[0060]編程控制單元通過控制繼電器組實(shí)現(xiàn)儀器同步,完成采樣、取水、清洗及反沖洗等一系列控制工作;并通過輸入反饋監(jiān)控各設(shè)備的運(yùn)行情況,包括火災(zāi)傳感器、液位計(jì)等傳感器。通過加裝的模擬量擴(kuò)展模塊EM231,采集COD分析儀、pH分析儀、溫度分析儀和氨氮分析儀等水質(zhì)分析設(shè)備的分析數(shù)據(jù)??刂瞥绦蚴褂肧TEP7-Micix)/WIN軟件編寫。包括:
[0061]消息處理子程序:由于采用主從結(jié)構(gòu),故在控制器中只需編寫接收回復(fù)通信程序。收到工控機(jī)發(fā)來的消息后,如果是對控制器的參數(shù)配置消息,將消息內(nèi)容存入相應(yīng)內(nèi)存,回復(fù)成功。如果收到查詢消息,如查詢工作狀態(tài)、設(shè)備運(yùn)行狀態(tài)、模擬量等信息,則取出相應(yīng)內(nèi)存,回復(fù)給工控機(jī)。
[0062]取污水子程序:取污水時(shí)間到時(shí),控制污水泵、電動閥、電磁閥等設(shè)備開關(guān),分析儀分析等。
[0063]模擬量處理程序:各分析儀的數(shù)據(jù)通過模擬量擴(kuò)展模塊輸入到控制器,進(jìn)行簡單處理后發(fā)送至工控機(jī)。
[0064]設(shè)備狀態(tài)檢測程序:反饋電磁閥、電動閥、空壓機(jī)、臭氧發(fā)生器等設(shè)備的狀態(tài)信息,如果設(shè)備狀態(tài)和期望狀態(tài)不相符,則向工控機(jī)發(fā)送報(bào)警。另外通過傳感器檢測液位信息和火災(zāi)信息,反饋給工控機(jī)。
[0065]此外,工控機(jī)程序主要用于與控制器進(jìn)行通信,配置控制器的各種工作參數(shù),從控制器中獲取系統(tǒng)狀態(tài)、各分析儀的數(shù)據(jù)等信息;進(jìn)行水質(zhì)數(shù)據(jù)的各種分析、處理;將水質(zhì)數(shù)據(jù)存到本地?cái)?shù)據(jù)庫;從數(shù)據(jù)庫中獲取數(shù)據(jù)顯示在監(jiān)控軟件界面上,并且支持各種查詢。將數(shù)據(jù)、工作狀態(tài)等以短信的形式發(fā)送到監(jiān)控中心。
[0066]顯然,本領(lǐng)域的技術(shù)人員應(yīng)該理解,上述的本發(fā)明的各模塊或各步驟可以用通用的計(jì)算系統(tǒng)來實(shí)現(xiàn),它們可以集中在單個(gè)的計(jì)算系統(tǒng)上,或者分布在多個(gè)計(jì)算系統(tǒng)所組成的網(wǎng)絡(luò)上,可選地,它們可以用計(jì)算系統(tǒng)可執(zhí)行的程序代碼來實(shí)現(xiàn),從而,可以將它們存儲在存儲系統(tǒng)中由計(jì)算系統(tǒng)來執(zhí)行。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。
[0067]應(yīng)當(dāng)理解的是,本發(fā)明的上述【具體實(shí)施方式】僅僅用于示例性說明或解釋本發(fā)明的原理,而不構(gòu)成對本發(fā)明的限制。因此,在不偏離本發(fā)明的精神和范圍的情況下所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。此外,本發(fā)明所附權(quán)利要求旨在涵蓋落入所附權(quán)利要求范圍和邊界、或者這種范圍和邊界的等同形式內(nèi)的全部變化和修改例。
【權(quán)利要求】
1.一種電子設(shè)備信息傳輸方法,用于對所述設(shè)備的程序進(jìn)行升級,其特征在于,包括: 步驟一,上位機(jī)將升級數(shù)據(jù)包發(fā)送至緩存器; 步驟二,緩存器發(fā)送復(fù)位命令至該設(shè)備; 步驟三,啟動設(shè)備主程序; 步驟四,當(dāng)判斷有升級任務(wù)時(shí),中斷主程序,并接收來自緩存器的傳輸命令; 步驟五,對存儲器中的塊執(zhí)行擦除和寫入。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述設(shè)備為微控制器,包含片內(nèi)RAM和片內(nèi)ROM,該片內(nèi)ROM分為2個(gè)存儲塊,主存儲塊BlockO和次存儲塊Blockl,所述微控制器與片外Flash的連接,微控制器與片外Flash采用SPI總線進(jìn)行通信,使用相應(yīng)的命令字對片外Flash的讀寫、擦除操作。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于, 所述步驟一進(jìn)一步包括: 所述上位機(jī)選擇一個(gè)子卡進(jìn)行遠(yuǎn)程升級,通過FTP協(xié)議發(fā)送升級數(shù)據(jù)包給升級數(shù)據(jù)緩存器,升級數(shù)據(jù)緩存器將接收到的升級數(shù)據(jù)包進(jìn)行校驗(yàn),在校驗(yàn)后存儲至微控制器Flash中; 所述步驟二進(jìn)一步包括: 升級數(shù)據(jù)緩存器發(fā)送復(fù)位指令將子卡的控制單元復(fù)位,微控制器復(fù)位啟動后進(jìn)入引導(dǎo)程序模式,準(zhǔn)備進(jìn)行升級; 所述步驟三進(jìn)一步包括: 微控制器復(fù)位后,從Blockl中運(yùn)行主程序,當(dāng)微控制器運(yùn)行主程序時(shí),先判斷保護(hù)標(biāo)志是否有效,如果該標(biāo)志有效,表示上一次升級過程中遇到異常情況,則微控制器自動將程序恢復(fù)至出廠程序,否則微控制器主程序待機(jī),等待微控制器處理串口中斷接收到的數(shù)據(jù),判斷是否有升級任務(wù), 如果有升級任務(wù),則將微控制器升級標(biāo)志置為有效,如果該標(biāo)志有效,則微控制器主程序待機(jī),等待在線升級完成,升級完成后,開啟看門狗等待微控制器復(fù)位; 所述步驟五進(jìn)一步包括: 升級數(shù)據(jù)緩存器收到文件傳輸命令后,發(fā)送一幀文件傳輸開始的指令,將待升級的應(yīng)用程序包分解成適合微控制器私有協(xié)議傳輸?shù)亩?,按照文件塊序號逐段發(fā)送給子卡,子卡收到數(shù)據(jù)包,并在CRC校驗(yàn)無誤后將微控制器升級標(biāo)志置為有效,并開始擦除片外Flash文件部分的塊, 在程序文件傳輸中,控制單元開始接收數(shù)據(jù),此時(shí)微控制器將接收到的程序文件寫入片外Flash文件部分的塊;程序傳輸結(jié)束時(shí),控制單元將升級文件的文件名、文件長度和文件CRC16的校驗(yàn)和寫入片外Flash的7FFFFH-80000H部分的扇區(qū),共4k字節(jié),微控制器對接收到的文件整體校驗(yàn),發(fā)送應(yīng)答幀通知升級數(shù)據(jù)緩存器校驗(yàn)結(jié)果, 升級數(shù)據(jù)緩存器收到執(zhí)行升級命令后,通知子卡準(zhǔn)備執(zhí)行升級,微控制器先運(yùn)行Blockl的升級程序,校驗(yàn)升級的應(yīng)用程序文件,如果校驗(yàn)通過,將保護(hù)標(biāo)志置為有效, 擦除微控制器片內(nèi)ROM整個(gè)BlockO的塊,當(dāng)SFST寄存器的標(biāo)志位被置位后,表示擦除完成,接著,微控制器將片外Flash存儲區(qū)中的升級文件讀出并寫入到微控制器片內(nèi)ROM的BlockO塊中,開啟看門狗, 等待微控制器復(fù)位,整個(gè)升級程序完成,當(dāng)開門狗溢出后,微控制器復(fù)位令升級標(biāo)志也復(fù)位,微控制器程序跳轉(zhuǎn)到BlockO起始位置運(yùn)行,微控制器程序正常運(yùn)行后將保護(hù)標(biāo)志復(fù)位; 其中,升級數(shù)據(jù)緩存器與所述子卡基于SPI采用糾錯(cuò)機(jī)制和異常處理機(jī)制私有協(xié)議,在升級數(shù)據(jù)緩存器與子卡控制單元通信中采用發(fā)送一幀數(shù)據(jù),確認(rèn)一幀數(shù)據(jù),收到錯(cuò)幀,請求重發(fā)的通信形式,所述私有協(xié)議的SPI通信幀設(shè)計(jì)最大幀長,接收程序可以通過文件塊序號在終端進(jìn)行文件整理組合,微控制器發(fā)送應(yīng)答幀給升級數(shù)據(jù)緩存器通知文件塊接收OK,否則升級數(shù)據(jù)緩存器重傳文件塊,如果重傳次數(shù)超過閾值仍傳送失敗,則標(biāo)志此次升級失?。? 該協(xié)議數(shù)據(jù)幀包括以下內(nèi)容: 幀頭:表示數(shù)據(jù)包的開始,優(yōu)選地固定為0XFE,0XFA2個(gè)字節(jié); 命令字:表示文件傳輸命令還是執(zhí)行升級命令; 指令值:命令字的子命令,如果命令字是文件傳輸命令,則指令值有傳輸開始、傳輸中、傳輸結(jié)束3個(gè)指令;如果命令字是升級命令,則指令值就是執(zhí)行在線升級指令; 文件塊序號:表示升級程序所分割的報(bào)文所處的序號; 文件塊內(nèi)容:程序內(nèi)容字節(jié); CRC16校驗(yàn)和:一幀數(shù) 據(jù)的校驗(yàn)和,采用CRC16校驗(yàn)。
【文檔編號】G06F9/445GK103942080SQ201410206064
【公開日】2014年7月23日 申請日期:2014年5月16日 優(yōu)先權(quán)日:2014年5月16日
【發(fā)明者】毛力 申請人:四川九成信息技術(shù)有限公司