專(zhuān)利名稱:工業(yè)燃?xì)獗頂?shù)據(jù)集抄器遠(yuǎn)程程序升級(jí)的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種工業(yè)燃?xì)獗頂?shù)據(jù)集抄器遠(yuǎn)程程序升級(jí)的方法。
背景技術(shù):
目前,各種數(shù)據(jù)集抄器廣泛的適用于各種場(chǎng)所,其作用主要包括數(shù)據(jù)采集、處理和 傳輸?shù)?。隨著燃?xì)獾膹V泛使用,對(duì)燃?xì)獾臏y(cè)量和監(jiān)控顯得越發(fā)重要,工業(yè)燃?xì)獗頂?shù)據(jù)集抄器 的功能是實(shí)現(xiàn)這一 目的關(guān)鍵。因此對(duì)它的功能進(jìn)行完善,升級(jí)是十分有必要的。傳統(tǒng)的程序 升級(jí)方式是人工升級(jí)方式,由廠方將所有的設(shè)備(數(shù)據(jù)集抄器)統(tǒng)一回收進(jìn)行升級(jí)或者是 由工作人員到設(shè)備(數(shù)據(jù)集抄器)所在現(xiàn)場(chǎng)逐一進(jìn)行升級(jí)。但是工業(yè)燃?xì)庥脩舻臄?shù)據(jù)集抄 器一般分布較廣,相互之間的距離不定,短到幾百米,長(zhǎng)達(dá)幾百千米。因此采用傳統(tǒng)的人工 升級(jí)方式會(huì)浪費(fèi)大量的人力物力,工作效率低下,而且實(shí)時(shí)性差,結(jié)果往往很難讓人滿意。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問(wèn)題是針對(duì)上述現(xiàn)有技術(shù)提供一種工業(yè)燃?xì)獗頂?shù)據(jù)集抄 器遠(yuǎn)程程序升級(jí)的方法,該方法能夠克服人工升級(jí)的不足、能簡(jiǎn)單、高效實(shí)現(xiàn)對(duì)工業(yè)燃?xì)獗?數(shù)據(jù)集抄器進(jìn)行遠(yuǎn)程升級(jí)。 本實(shí)用新型解決上述技術(shù)問(wèn)題所采用的技術(shù)方案為該工業(yè)燃?xì)獗頂?shù)據(jù)集抄器遠(yuǎn) 程程序升級(jí)的方法,用于對(duì)所述工業(yè)燃?xì)獗頂?shù)據(jù)集抄器內(nèi)的軟件程序進(jìn)行遠(yuǎn)程升級(jí),所述 工業(yè)燃?xì)獗頂?shù)據(jù)集抄器包括一個(gè)FLASH型單片機(jī)處理器,工業(yè)燃?xì)獗頂?shù)據(jù)集抄器內(nèi)的軟件 程序存放在單片機(jī)處理器中FLASH的用戶代碼區(qū)內(nèi),其特征在于用于給所述工業(yè)燃?xì)獗?數(shù)據(jù)集抄器內(nèi)的軟件程序進(jìn)行升級(jí)的升級(jí)版軟件代碼保存在上位機(jī)內(nèi);該上位機(jī)通過(guò)有 線或無(wú)線的方式將升級(jí)版軟件代碼傳輸給所述工業(yè)燃?xì)獗頂?shù)據(jù)集抄器;所述工業(yè)燃?xì)獗?數(shù)據(jù)集抄器在接收到上位機(jī)發(fā)送來(lái)的升級(jí)版軟件代碼后,首先經(jīng)過(guò)數(shù)據(jù)校驗(yàn)以后,所述單 片機(jī)處理器才將原來(lái)的軟件程序代碼擦除,再將新的升級(jí)版軟件代碼寫(xiě)入單片機(jī)處理器中 FLASH的用戶代碼區(qū)內(nèi)。 作為改進(jìn),本發(fā)明將所述單片機(jī)處理器中FLASH的用戶代碼區(qū)按照從低位到高位 的順序依次劃分為初始化區(qū)、功能區(qū)、數(shù)據(jù)緩存區(qū)、FLASH操作區(qū)、中斷向量區(qū)這五個(gè)分區(qū), 所述初始化區(qū)位于單片機(jī)處理器中FLASH的用戶代碼區(qū)的最起始位置,用于存放必要的頭 文件、系統(tǒng)初始化文件、如何調(diào)用升級(jí)版軟件代碼文件以及升級(jí)指令的接收和發(fā)送文件;所 述功能區(qū)位于所述初始化區(qū)的后位,用于存放程序員設(shè)計(jì)的功能性程序文件;所述數(shù)據(jù)緩 存區(qū)位于所述功能區(qū)的后位,用于存放升級(jí)版軟件代碼;所述FLASH操作區(qū)位于所述數(shù)據(jù) 緩存區(qū)的后位,用于存放FLASH操作代碼;所述中斷向量區(qū)位于單片機(jī)處理器中FLASH的用 戶代碼區(qū)的最高位;同時(shí)至少固定上述五個(gè)分區(qū)中數(shù)據(jù)緩存區(qū)、FLASH操作區(qū)和中斷向量 區(qū)在所述單片機(jī)處理器中FLASH的用戶代碼區(qū)內(nèi)的相對(duì)位置;所述工業(yè)燃?xì)獗頂?shù)據(jù)集抄器 在接收到上位機(jī)發(fā)送來(lái)的升級(jí)版軟件代碼后,將升級(jí)版軟件代碼存放在所述單片機(jī)處理器 中FLASH的用戶代碼區(qū)中的數(shù)據(jù)緩存區(qū)內(nèi)。
再改進(jìn),所述上位機(jī)將用于給所述工業(yè)燃?xì)獗頂?shù)據(jù)集抄器內(nèi)的軟件程序進(jìn)行升級(jí) 的升級(jí)版軟件代碼通過(guò)GPRS模塊發(fā)送給工業(yè)燃?xì)獗頂?shù)據(jù)集抄器。 再改進(jìn),所述上位機(jī)將用于給所述工業(yè)燃?xì)獗頂?shù)據(jù)集抄器內(nèi)的軟件程序進(jìn)行升級(jí) 的升級(jí)版軟件代碼制成一定數(shù)量的具有規(guī)定格式的數(shù)據(jù)包進(jìn)行發(fā)送,其中數(shù)據(jù)包的格式 為1字節(jié)的總包數(shù)+1字節(jié)的包號(hào)+1字節(jié)的數(shù)據(jù)長(zhǎng)度+128字節(jié)的數(shù)據(jù)+2字節(jié)的CRC校 驗(yàn)碼;每個(gè)數(shù)據(jù)包都含有CRC校驗(yàn)碼。 再改進(jìn),所述工業(yè)燃?xì)獗頂?shù)據(jù)集抄器接收到上位機(jī)發(fā)送來(lái)的升級(jí)版軟件代碼后, 首先進(jìn)行CRC校驗(yàn),再將升級(jí)版軟件代碼寫(xiě)入所述單片機(jī)處理器中FLASH的用戶代碼區(qū)中 的數(shù)據(jù)緩存區(qū),進(jìn)行校驗(yàn)后,返回傳輸信號(hào)錯(cuò)誤信號(hào)或FLASH操作錯(cuò)誤信號(hào)或一個(gè)數(shù)據(jù)包 操作完成信號(hào),直至所有的升級(jí)版軟件代碼接收完成。
與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于 1、采用本發(fā)明提供的方法對(duì)工業(yè)燃?xì)獗頂?shù)據(jù)集抄器進(jìn)行遠(yuǎn)程升級(jí),非常經(jīng)濟(jì)、方 便,能節(jié)約了廠方大量的人力物力,減少了一些不必要的損失,如破壞了工業(yè)燃?xì)獗頂?shù)據(jù)集 抄器,提高了廠方的經(jīng)濟(jì)效益; 2、本發(fā)明提供的方法,由于將升級(jí)版軟件代碼存放在所述單片機(jī)處理器中FLASH 的用戶代碼區(qū),并且在對(duì)單片機(jī)處理器中FLASH的用戶代碼區(qū)劃分的五個(gè)分區(qū)時(shí),并且只 是固定用于五個(gè)分區(qū)中數(shù)據(jù)緩存區(qū)、FLASH操作區(qū)和中斷向量區(qū)在FLASH的用戶代碼區(qū)中 的相對(duì)位置,無(wú)論單片機(jī)處理器的芯片怎么改變,本發(fā)明提供的升級(jí)方法都能適用,因此具 有非常強(qiáng)的通用性; 3、本發(fā)明提供的方法,在對(duì)升級(jí)版軟件代碼進(jìn)行傳輸?shù)倪^(guò)程中,進(jìn)行了多次校驗(yàn), 大大提高了可靠性。
圖1為本發(fā)明實(shí)施例中工業(yè)燃?xì)獗頂?shù)據(jù)集抄器的單片機(jī)處理器中FLASH的的劃分 圖。
具體實(shí)施例方式
以下結(jié)合附圖實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳細(xì)描述。 本發(fā)明提供了一種工業(yè)燃?xì)獗頂?shù)據(jù)集抄器遠(yuǎn)程程序升級(jí)的方法,用于對(duì)所述工業(yè) 燃?xì)獗頂?shù)據(jù)集抄器內(nèi)的軟件程序進(jìn)行遠(yuǎn)程升級(jí),本發(fā)明中工業(yè)燃?xì)獗頂?shù)據(jù)集抄器包括一 個(gè)FLASH型的單片機(jī)處理器,工業(yè)燃?xì)獗頂?shù)據(jù)集抄器內(nèi)的軟件程序存放在單片機(jī)處理器中 FLASH的用戶代碼區(qū)內(nèi),而用于給工業(yè)燃?xì)獗頂?shù)據(jù)集抄器內(nèi)的軟件程序進(jìn)行升級(jí)的升級(jí)版 軟件代碼保存在上位機(jī)內(nèi);上位機(jī)可以為遠(yuǎn)程的PC機(jī),該上位機(jī)通過(guò)有線或無(wú)線的方式將 升級(jí)版軟件代碼傳輸給所述工業(yè)燃?xì)獗頂?shù)據(jù)集抄器,本實(shí)施例中上位機(jī)通過(guò)GPRS模塊將 升級(jí)版軟件代碼以無(wú)線的方式傳輸給工業(yè)燃?xì)獗頂?shù)據(jù)集抄器;而工業(yè)燃?xì)獗頂?shù)據(jù)集抄器在 接收到上位機(jī)發(fā)送來(lái)的升級(jí)版軟件代碼后,首先經(jīng)過(guò)數(shù)據(jù)校驗(yàn)以后,所述單片機(jī)處理器才 將原來(lái)的軟件程序代碼擦除,再將新的升級(jí)版軟件代碼寫(xiě)入單片機(jī)處理器中FLASH的用戶 代碼區(qū)內(nèi)。 本實(shí)施例提供的方法中,將所述單片機(jī)處理器中FLASH的用戶代碼區(qū)按照從低位到高位的順序依次劃分為初始化區(qū)、功能區(qū)、數(shù)據(jù)緩存區(qū)、FLASH操作區(qū)、中斷向量區(qū)這五個(gè) 分區(qū),參見(jiàn)圖1所示,A區(qū)為單片機(jī)固定使用區(qū),用戶無(wú)法更改;B、 C、 D、 E、 F、 G、 H區(qū)共同組 成了用戶代碼區(qū),其中B+C+D的大小等于E+F+G+H的大??;B為初始化區(qū),起始地址為用戶 代碼區(qū)起始地址,用于存放必要的頭文件、系統(tǒng)初始化文件、如何調(diào)用升級(jí)版軟件代碼文件 以及升級(jí)指令的接收和發(fā)送文件;C為功能區(qū),所述功能區(qū)位于所述初始化區(qū)的后位,用于 存放程序員設(shè)計(jì)的功能性程序文件,本方法中,可以固定功能區(qū)相對(duì)起始位置,也可以直接 接在B區(qū)之后;E區(qū)為數(shù)據(jù)緩存區(qū)的位置,本發(fā)明是將數(shù)據(jù)緩存區(qū)的起始位置固定在用戶代 碼區(qū)1/2大小處,因此D區(qū)是用戶代碼區(qū)前1/2大小區(qū)域在放置了初始化代碼和功能代碼 后多余的存儲(chǔ)區(qū)域,數(shù)據(jù)緩存區(qū)用于存放升級(jí)版軟件代碼;F區(qū)是FLASH操作區(qū),也是固定 了相對(duì)起始位置的一個(gè)區(qū)域,但該相對(duì)起始位置是依據(jù)中斷向量區(qū)(G+H)往上推得到的, 即中斷向量區(qū)正上一個(gè)塊大小的區(qū)域,F(xiàn)LASH操作區(qū)用于存放FLASH操作代碼;所述中斷向 量區(qū)位于單片機(jī)處理器中FLASH的用戶代碼區(qū)的最高位,中斷向量區(qū)由G區(qū)和H區(qū)組成,H 區(qū)是單片機(jī)自帶的一個(gè)中斷向量存儲(chǔ)區(qū)域,一般為32字節(jié)大小,由于單片機(jī)處理器擦除是 以一個(gè)塊為單位進(jìn)行擦除的,不能以單個(gè)字節(jié)為單位擦除,因此用戶在分配存儲(chǔ)區(qū)域時(shí),最 小要以一個(gè)塊的大小為單位,因此,一個(gè)中斷向量區(qū)要大于單片機(jī)自帶的中斷向量存儲(chǔ)區(qū) 域大小,由G+H組成,大小為一個(gè)塊大小, 一般為512字節(jié),但也有塊大小為256字節(jié)的單片 機(jī);所述工業(yè)燃?xì)獗頂?shù)據(jù)集抄器在接收到上位機(jī)發(fā)送來(lái)的升級(jí)版軟件代碼后,將升級(jí)版軟 件代碼存放在所述單片機(jī)處理器中FLASH的用戶代碼區(qū)中的數(shù)據(jù)緩存區(qū)內(nèi)。
由于本發(fā)明提供的方法只是固定上述五個(gè)分區(qū)在所述單片機(jī)處理器中FLASH的 用戶代碼區(qū)內(nèi)的相對(duì)位置,所以無(wú)論單片機(jī)處理器的芯片怎么改變,本發(fā)明提供的升級(jí)方 法都能適用,因此具有非常強(qiáng)的通用性。另外由于中斷向量區(qū)和FLASH操作區(qū)非常小,因此 數(shù)據(jù)緩存區(qū)幾乎占了 FLASH用戶代碼區(qū)的一半左右,因此完全不必?fù)?dān)心升級(jí)代碼過(guò)大而沒(méi) 地方放的問(wèn)題;將FLASH按照上述框架進(jìn)行劃分,就可以把任意的升級(jí)程序?qū)懙絾纹瑱C(jī)處 理器中,非常方便而且快捷。 上述上位機(jī)將用于給所述工業(yè)燃?xì)獗頂?shù)據(jù)集抄器內(nèi)的軟件程序進(jìn)行升級(jí)的升級(jí)
版軟件代碼進(jìn)行無(wú)線傳輸時(shí),是將升級(jí)版軟件代碼事先制成一定數(shù)量的具有規(guī)定格式的數(shù)
據(jù)包來(lái)進(jìn)行發(fā)送,其中數(shù)據(jù)包的格式為1字節(jié)的總包數(shù)+1字節(jié)的包號(hào)+1字節(jié)的數(shù)據(jù)長(zhǎng)度
+128字節(jié)的數(shù)據(jù)+2字節(jié)的CRC校驗(yàn)碼;每個(gè)數(shù)據(jù)包都含有CRC校驗(yàn)碼。 這樣,工業(yè)燃?xì)獗頂?shù)據(jù)集抄器接收到上位機(jī)發(fā)送來(lái)的升級(jí)版軟件代碼后,必須首
先進(jìn)行CRC校驗(yàn),再將升級(jí)版軟件代碼寫(xiě)入所述單片機(jī)處理器中FLASH的用戶代碼區(qū)中的
數(shù)據(jù)緩存區(qū),進(jìn)行校驗(yàn)后,返回傳輸信號(hào)錯(cuò)誤信號(hào)或FLASH操作錯(cuò)誤信號(hào)或一個(gè)數(shù)據(jù)包操
作完成信號(hào),直至所有的升級(jí)版軟件代碼接收完成;具有較高的安全性,大大提高了本方法
的可靠性。
權(quán)利要求
一種工業(yè)燃?xì)獗頂?shù)據(jù)集抄器遠(yuǎn)程程序升級(jí)的方法,用于對(duì)所述工業(yè)燃?xì)獗頂?shù)據(jù)集抄器內(nèi)的軟件程序進(jìn)行遠(yuǎn)程升級(jí),所述工業(yè)燃?xì)獗頂?shù)據(jù)集抄器包括一個(gè)FLASH型單片機(jī)處理器,工業(yè)燃?xì)獗頂?shù)據(jù)集抄器內(nèi)的軟件程序存放在單片機(jī)處理器中FLASH的用戶代碼區(qū)內(nèi),其特征在于用于給所述工業(yè)燃?xì)獗頂?shù)據(jù)集抄器內(nèi)的軟件程序進(jìn)行升級(jí)的升級(jí)版軟件代碼保存在上位機(jī)內(nèi);該上位機(jī)通過(guò)有線或無(wú)線的方式將升級(jí)版軟件代碼傳輸給所述工業(yè)燃?xì)獗頂?shù)據(jù)集抄器;所述工業(yè)燃?xì)獗頂?shù)據(jù)集抄器在接收到上位機(jī)發(fā)送來(lái)的升級(jí)版軟件代碼后,首先經(jīng)過(guò)數(shù)據(jù)校驗(yàn)以后,所述單片機(jī)處理器才將原來(lái)的軟件程序代碼擦除,再將新的升級(jí)版軟件代碼寫(xiě)入單片機(jī)處理器中FLASH的用戶代碼區(qū)內(nèi)。
2. 根據(jù)權(quán)利要求1所述的工業(yè)燃?xì)獗頂?shù)據(jù)集抄器遠(yuǎn)程程序升級(jí)的方法,其特征在于 將所述單片機(jī)處理器中FLASH的用戶代碼區(qū)按照從低位到高位的順序依次劃分為初始化 區(qū)、功能區(qū)、數(shù)據(jù)緩存區(qū)、FLASH操作區(qū)、中斷向量區(qū)這五個(gè)分區(qū),所述初始化區(qū)位于單片機(jī) 處理器中FLASH的用戶代碼區(qū)的最起始位置,用于存放必要的頭文件、系統(tǒng)初始化文件、如 何調(diào)用升級(jí)版軟件代碼文件以及升級(jí)指令的接收和發(fā)送文件;所述功能區(qū)位于所述初始化 區(qū)的后位,用于存放程序員設(shè)計(jì)的功能性程序文件;所述數(shù)據(jù)緩存區(qū)位于所述功能區(qū)的后 位,用于存放升級(jí)版軟件代碼;所述FLASH操作區(qū)位于所述數(shù)據(jù)緩存區(qū)的后位,用于存放 FLASH操作代碼;所述中斷向量區(qū)位于單片機(jī)處理器中FLASH的用戶代碼區(qū)的最高位;同時(shí) 至少固定上述五個(gè)分區(qū)中數(shù)據(jù)緩存區(qū)、FLASH操作區(qū)和中斷向量區(qū)在所述單片機(jī)處理器中 FLASH的用戶代碼區(qū)內(nèi)的相對(duì)位置;所述工業(yè)燃?xì)獗頂?shù)據(jù)集抄器在接收到上位機(jī)發(fā)送來(lái)的 升級(jí)版軟件代碼后,將升級(jí)版軟件代碼存放在所述單片機(jī)處理器中FLASH的用戶代碼區(qū)中 的數(shù)據(jù)緩存區(qū)內(nèi)。
3. 根據(jù)權(quán)利要求1所述的工業(yè)燃?xì)獗頂?shù)據(jù)集抄器遠(yuǎn)程程序升級(jí)的方法,其特征在于 所述上位機(jī)將用于給所述工業(yè)燃?xì)獗頂?shù)據(jù)集抄器內(nèi)的軟件程序進(jìn)行升級(jí)的升級(jí)版軟件代 碼通過(guò)GPRS模塊發(fā)送給工業(yè)燃?xì)獗頂?shù)據(jù)集抄器。
4. 根據(jù)權(quán)利要求3所述的工業(yè)燃?xì)獗頂?shù)據(jù)集抄器遠(yuǎn)程程序升級(jí)的方法,其特征在于 所述上位機(jī)將用于給所述工業(yè)燃?xì)獗頂?shù)據(jù)集抄器內(nèi)的軟件程序進(jìn)行升級(jí)的升級(jí)版軟件代碼制成一定數(shù)量的具有規(guī)定格式的數(shù)據(jù)包進(jìn)行發(fā)送,其中數(shù)據(jù)包的格式為1字節(jié)的總包數(shù)+1字節(jié)的包號(hào)+1字節(jié)的數(shù)據(jù)長(zhǎng)度+128字節(jié)的數(shù)據(jù)+2字節(jié)的CRC校驗(yàn)碼;每個(gè)數(shù)據(jù)包 都含有CRC校驗(yàn)碼。
5. 根據(jù)權(quán)利要求4所述的工業(yè)燃?xì)獗頂?shù)據(jù)集抄器遠(yuǎn)程程序升級(jí)的方法,其特征在于 所述工業(yè)燃?xì)獗頂?shù)據(jù)集抄器接收到上位機(jī)發(fā)送來(lái)的升級(jí)版軟件代碼后,首先進(jìn)行CRC校 驗(yàn),再將升級(jí)版軟件代碼寫(xiě)入所述單片機(jī)處理器中FLASH的用戶代碼區(qū)中的數(shù)據(jù)緩存區(qū), 進(jìn)行校驗(yàn)后,返回傳輸信號(hào)錯(cuò)誤信號(hào)或FLASH操作錯(cuò)誤信號(hào)或一個(gè)數(shù)據(jù)包操作完成信號(hào), 直至所有的升級(jí)版軟件代碼接收完成。
全文摘要
本發(fā)明涉及一種工業(yè)燃?xì)獗頂?shù)據(jù)集抄器遠(yuǎn)程程序升級(jí)的方法,用于對(duì)所述工業(yè)燃?xì)獗頂?shù)據(jù)集抄器內(nèi)的軟件程序進(jìn)行遠(yuǎn)程升級(jí),所述工業(yè)燃?xì)獗頂?shù)據(jù)集抄器包括一個(gè)FLASH型單片機(jī)處理器,工業(yè)燃?xì)獗頂?shù)據(jù)集抄器內(nèi)的軟件程序存放在單片機(jī)處理器中FLASH的用戶代碼區(qū)內(nèi),其特征在于用于給所述工業(yè)燃?xì)獗頂?shù)據(jù)集抄器內(nèi)的軟件程序進(jìn)行升級(jí)的升級(jí)版軟件代碼保存在上位機(jī)內(nèi);該上位機(jī)通過(guò)有線或無(wú)線的方式將升級(jí)版軟件代碼傳輸給所述工業(yè)燃?xì)獗頂?shù)據(jù)集抄器;所述工業(yè)燃?xì)獗頂?shù)據(jù)集抄器在接收到上位機(jī)發(fā)送來(lái)的升級(jí)版軟件代碼后,首先經(jīng)過(guò)數(shù)據(jù)校驗(yàn)以后,所述單片機(jī)處理器才將原來(lái)的軟件程序代碼擦除,再將新的升級(jí)版軟件代碼寫(xiě)入單片機(jī)處理器中FLASH的用戶代碼區(qū)內(nèi)。
文檔編號(hào)G06F9/445GK101777003SQ20101010874
公開(kāi)日2010年7月14日 申請(qǐng)日期2010年2月8日 優(yōu)先權(quán)日2010年2月8日
發(fā)明者徐金輝, 朱飛龍, 楊鳴, 林永玲, 邵華, 金定飛 申請(qǐng)人:寧波大學(xué)