專利名稱:一種對電能表芯片程序進(jìn)行下載更新的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及電能表和通訊技術(shù)領(lǐng)域,更具體地說,涉及一種對電能表芯片 程序進(jìn)行下載更新的方法。背景技木在電能表生產(chǎn)過程中, 一般存在儲備大量的庫存品以備急時,庫存品中有 各種型號產(chǎn)品,產(chǎn)品中芯片程序也各有不同。當(dāng)需要出貨時, 一般是從庫存品 中調(diào)出相適應(yīng)型號的產(chǎn)品,但庫存品中產(chǎn)品功能可能不能全面符合市場需求, 這時需要對庫存品中的芯片程序進(jìn)行下載更新,以至滿足市場需求。在批量化 生產(chǎn)過程中,特別是在交貨時間緊,出貨量大時更顯得尤為方便重要。如圖1所示,在現(xiàn)有技術(shù)中, 一般采用問答式的軟件下載更新方案,下載 更新的步驟如下51、 上層軟件向電能表發(fā)送指令幀。上層軟件下行廣播指令幀l...N, N 由芯片程序大小決定,每128字節(jié)為一幀。52、 電能表接收并處理所述指令幀。電能表處理上層軟件模塊發(fā)送來的指 令幀l...N,并且對于上層軟件發(fā)送來的每一指令幀都會返回應(yīng)答幀。53、 上層軟件對電能表返回的應(yīng)答幀進(jìn)行處理。也就是說,上層軟件模塊 對于電能表返回的應(yīng)答幀l...N都會一一處理。54、 上層軟件在對返回的應(yīng)答幀的處理過程中,對應(yīng)答幀進(jìn)行校驗(yàn),如果 處理沒有出錯,則表示電能表合格,程序下載更新成功;否則表示電能表不合 格,程序下載更新不成功。55、 繼續(xù)下一塊電能表芯片程序的下載更新,并循環(huán)執(zhí)行步驟S1。 由此可知,現(xiàn)有技術(shù)只能對電能表芯片一次一塊地進(jìn)行更新,速度比較慢,浪費(fèi)時間較多;而且該方案對電能表芯片的下載更新只進(jìn)行了一次的校驗(yàn),該校驗(yàn)很難保證100%下載更新數(shù)據(jù)包的完整性和安全性,這樣也會造成數(shù)據(jù)下載更新不成功。 發(fā)明內(nèi)容針對現(xiàn)有技術(shù)的上述缺陷,本發(fā)明要解決現(xiàn)有技術(shù)中對電能表芯片程序進(jìn) 行下載更新的方法中所存在的速度慢,安全性低等問題,提供了一種對電能表 芯片程序進(jìn)行下載更新的方法,以對電能表進(jìn)行高速,高效、準(zhǔn)確的下載更新。本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是提供一種對電能表芯片程序 進(jìn)行下載更新的方法,在上層軟件與電能表之間進(jìn)行數(shù)據(jù)傳輸, 在上層軟件執(zhí)行如下步驟a、 上層軟件下行廣播指令幀l...N,其中N由電能表的芯片程序大小決定;b、 上層軟件下行問答指令幀N+l,下行上層軟件輸出循環(huán)冗余校驗(yàn)的校 驗(yàn)結(jié)果,所述CRC16校驗(yàn)結(jié)果由所述廣播指令幀l...N中的校驗(yàn)和進(jìn)行循環(huán)冗 余校驗(yàn)運(yùn)算所得到;c、 上層軟件下行問答指令幀N+2,讀取電能表返回的標(biāo)志位數(shù)據(jù); 在電能表執(zhí)行如下步驟d、 電能表接收到所述廣播指令幀數(shù)據(jù)后,切換到更新程序狀態(tài)并進(jìn)行相應(yīng) 的更新處理;e、 接收到上層軟件下行的指令幀N+1后,將上層軟件的下行循環(huán)冗余校 驗(yàn)的校驗(yàn)結(jié)果與電能表內(nèi)部的循環(huán)冗余校驗(yàn)的校驗(yàn)結(jié)果進(jìn)行比較處理;f、 接收到上層軟件下行的指令幀N+2后,電能表向上層軟件發(fā)送帶標(biāo)志 位數(shù)據(jù)的應(yīng)答幀。在本發(fā)明所述的方法中,所述步驟c具體包括 若所述標(biāo)志位數(shù)據(jù)為1,則表示該電能表芯片程序更新不成功; 若所述標(biāo)志位數(shù)據(jù)為0,則表示該電能表芯片程序更新成功。 在本發(fā)明所述的方法中,所述步驟d中,所述相應(yīng)的更新處理具體包括 dl、置標(biāo)志位為0;d2、當(dāng)收到完整的廣播指令幀l...N后,進(jìn)行校驗(yàn)和運(yùn)算,并核對所述指令幀是否安全完整;d3、進(jìn)行電能表程序的更新;若校驗(yàn)或更新過程出現(xiàn)任何非法情況,則置 標(biāo)志位為l,但整個廣播過程中不上行任何指令幀。在本發(fā)明所述的方法中,所述步驟e中,所述比較處理具體包括若上層軟件的下行循環(huán)冗余校驗(yàn)的校驗(yàn)結(jié)果與電能表內(nèi)部的循環(huán)冗余校 驗(yàn)的校驗(yàn)結(jié)果相同,則表示所收到的指令幀連續(xù)的,且每一幀都是完整的;若上層軟件的下行循環(huán)冗余校驗(yàn)的校驗(yàn)結(jié)果與電能表內(nèi)部的循環(huán)冗余校 驗(yàn)的校驗(yàn)結(jié)果不同,則表示所收到的數(shù)據(jù)包為非法,將其標(biāo)志位置為l。在本發(fā)明所述的方法中,所述上層軟件與所述電能表之間的數(shù)據(jù)傳輸采用 DL/T645-1997通訊規(guī)約。在本發(fā)明所述的方法中,廣播指令幀每一幀數(shù)據(jù)為128字節(jié),在廣播指令 幀下行過程中,電能表禁止上行指令幀,并且在芯片程序更新過程中電能表禁 止主動上行指令幀。在本發(fā)明所述的方法中,所述循環(huán)冗余校驗(yàn)采用循環(huán)冗余校驗(yàn)16位的校 驗(yàn)方法對所有廣播指令幀的校驗(yàn)和結(jié)果進(jìn)行校驗(yàn)。在本發(fā)明所述的方法中,當(dāng)電能表接收到廣播指令幀數(shù)據(jù)后,進(jìn)行更新芯 片程序;若該更新過程中若出現(xiàn)錯誤,則將標(biāo)志位置為1,表示電能表更新程 序?yàn)椴缓细?。在本發(fā)明所述的方法中,所述上層軟件通過RS232或RS485串口與所述電 能表連接。在本發(fā)明所述的方法中,所述上層軟件與功率源、標(biāo)準(zhǔn)表、誤差板之間的 數(shù)據(jù)傳輸采用內(nèi)部標(biāo)準(zhǔn)通信協(xié)議。本發(fā)明解決了現(xiàn)有技術(shù)中的下載更新系統(tǒng)中的二個主要問題其一下載更 新的效率問題,其二下載更新時數(shù)據(jù)傳輸?shù)耐暾c全安問題。從而使得電能表 的生產(chǎn)過程效率大大提高,程序下載可靠性更高、安全性更強(qiáng),數(shù)據(jù)更完整, 能達(dá)到更實(shí)用的效果。
下面將結(jié)合附圖及實(shí)施例對本發(fā)明作進(jìn)一步說明,附圖中圖1是現(xiàn)有技術(shù)的電能表芯片程序的下載更新的流程圖;圖2是本發(fā)明的電能表芯片程序的下載更新的流程圖;圖3是本發(fā)明的多個電能表芯片程序的下載更新的結(jié)構(gòu)示意圖;圖4是圖3的多個電能表芯片程序的下載更新的流程圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí) 施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅 僅用以解釋本發(fā)明,并不用于限定本發(fā)明。如圖2所示, 一種對電能表芯片程序進(jìn)行下載更新的方法,其中, 對于任一個需要更新芯片程序的電能表,上層軟件按以下步驟向電能表發(fā) 送指令幀數(shù)據(jù)a、 上層軟件下行廣播指令幀1…N, N由芯片程序大小決定,每128字節(jié) 為一幀,每幀按DL/T645-1997《多功能電能表通信規(guī)約》幀格式下行。b、 上層軟件下行問答指令幀N+l,下行上層軟件輸出循環(huán)冗余校驗(yàn)(Cyclic Redundancy Check/Code,簡稱CRC)的校驗(yàn)結(jié)果,本發(fā)明優(yōu)選實(shí)施例中循環(huán)冗 余校驗(yàn)采用的是循環(huán)冗余校驗(yàn)16位的校驗(yàn)方法,即CRC16,該CRC16校驗(yàn)結(jié) 果由廣播指令幀1...>1中的校驗(yàn)和進(jìn)行01(:16校驗(yàn)運(yùn)算所得出。c、 上層軟件下行問答指令幀N+2,讀取電能表標(biāo)志位數(shù)據(jù),如果標(biāo)識位為 1,表示電能表不合格,程序下載更新不成功;否則表示電能表合格,程序下載 更新成功。對于電能表,則按以下步驟接收并處理由上層軟件發(fā)來的指令幀-d、 電能表切換到更新程序狀態(tài),并置標(biāo)志位為0;當(dāng)收到完整的廣播指令 幀l...N后,進(jìn)行校驗(yàn)和運(yùn)算,并核對所述指令幀是否安全完整;然后再進(jìn)行 電能表程序的更新。如果校驗(yàn)或更新過程出現(xiàn)任何非法情況,則置標(biāo)志位為l, 但整個廣播過程中不上行任何指令幀。e、 接收到上層軟件下行的指令幀N+1后,將上層軟件的下行CRC16校驗(yàn)結(jié)果與電能表內(nèi)部的CRC16校驗(yàn)結(jié)果進(jìn)行比較,如果兩者相同,則表示所收到 的指令幀連續(xù)的,且每一幀都是完整的。否則表示所收到的數(shù)據(jù)包為非法,將 其標(biāo)志位置為1。f、接收到上層軟件下行的指令幀N+2后,電能表作出應(yīng)答,向上層軟件 返回帶標(biāo)志位數(shù)據(jù)的應(yīng)答幀。本發(fā)明所述電能表芯片程序下載的方法采用廣播指令下載數(shù)據(jù),利用校 驗(yàn)、再校驗(yàn)以及CRC16校驗(yàn)對數(shù)據(jù)的完整安全提供了保障。圖3示出了多個電能表芯片程序的下載更新的結(jié)構(gòu)示意圖,下載更新軟件 通過PC機(jī)串口與機(jī)柜中的通訊控制器(如CL2011訊控制器)相連,通過通訊 控制器控制功率源(如CL303功率源)、標(biāo)準(zhǔn)表(如CL311V2標(biāo)準(zhǔn)表)、被校 電能通信(即圖3中的精密時基源,如CL191精密時基源),通訊控制器與功 率源、標(biāo)準(zhǔn)表共同遵循內(nèi)部標(biāo)準(zhǔn)通信協(xié)議(如CLT1.0通信協(xié)議),并與被校表 通信協(xié)議遵循多功能電能表通信規(guī)約DL/T645-1997 。本發(fā)明優(yōu)選實(shí)施例中的掛表架上設(shè)置了兩排電能表,共12塊,也就是說 12塊電能表芯片程序可以同時進(jìn)行下載更新,通信控制器分別通過誤差計(jì)算器 (如CL188E誤差計(jì)算器)與掛表架中的每個電能表進(jìn)行通信。如圖4所示,根據(jù)上述電能表芯片程序下載更新的步驟,具體如下步驟l: PC機(jī)通過串口與功率源、標(biāo)準(zhǔn)表、通訊控制器以及掛表架進(jìn)行連 接,即PC機(jī)中的下載更新軟件通過PC機(jī)串口對功率源、標(biāo)準(zhǔn)表、誤差計(jì)算器 (如CL188E誤差計(jì)算器)發(fā)出連機(jī)指令。步驟2:連機(jī)指令成功后,根據(jù)被校的電壓電流等基本信息,對功率源發(fā) 出升源指令,并輸出與被校表相適應(yīng)的功率。等功率源穩(wěn)定后,對所有被校表廣播指令進(jìn)入下載更新狀態(tài),此時所有被 校表會嗚響(可以設(shè)置為鳴響三聲),液晶顯示進(jìn)入更新初始狀態(tài),所有被校表 標(biāo)志位置為0。步驟3:下載更新程序?qū)π枰娔鼙硇酒绦蜷L度進(jìn)行分塊處理,本發(fā)明 的實(shí)施例將需要下載的程序分隔為N幀,即N=Len/128幀,每幀為128字 節(jié),最后一幀不足補(bǔ)"0",通過廣播指令每幀間隔500ms下行,廣播下行1-N幀。步驟4:所有電表接收到廣播數(shù)據(jù)后,則開始對數(shù)據(jù)進(jìn)行處理。處理結(jié)果 中若有任何錯誤,則標(biāo)志位為l;若沒有任何錯誤,則表示正常,標(biāo)志位不變。 但在程序廣播過程中不返回任何上行幀。步驟5:廣播下行N+1幀,該幀為CRC16校驗(yàn)幀結(jié)果的數(shù)據(jù)幀。步驟6:所有電表接收到廣播CRC校驗(yàn)的結(jié)果數(shù)據(jù)后,與自身校驗(yàn)結(jié)果進(jìn) 行比對,若不相等,則標(biāo)志位為1;若相等,則標(biāo)志位不變。但在程序廣播過 程中不返回任何上行幀。步驟7:廣播下行N + 2幀,并讀取每塊被校表標(biāo)的標(biāo)志位數(shù)據(jù)。 步驟8:被校表接收到指令后返回帶有標(biāo)志位數(shù)據(jù)的數(shù)據(jù)幀。 步驟9:下載更新程序根據(jù)每塊被校表的標(biāo)志位數(shù)據(jù)判斷,標(biāo)志位為0則 表示該表合格,否則表示該表為不合格。由此可知,采用本發(fā)明的方法可使電能表批量化生產(chǎn)過程中電能表芯片程 序下載更新,速度更快、可靠性更高、安全性更強(qiáng),數(shù)據(jù)更完整,本發(fā)明下載 更新一塊表時間與12塊表時間一樣,比現(xiàn)有技術(shù)方案的效率提高12倍,從而達(dá)到更實(shí)用的效果。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā) 明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明 的保護(hù)范圍之內(nèi)。
權(quán)利要求
1. 一種對電能表芯片程序進(jìn)行下載更新的方法,在上層軟件與電能表之間進(jìn)行數(shù)據(jù)傳輸,其特征在于,在上層軟件執(zhí)行如下步驟a、上層軟件下行廣播指令幀1...N,其中N由電能表的芯片程序大小決定;b、上層軟件下行問答指令幀N+1,下行上層軟件輸出循環(huán)冗余校驗(yàn)的校驗(yàn)結(jié)果,所述循環(huán)冗余校驗(yàn)的校驗(yàn)結(jié)果由所述廣播指令幀1...N中的校驗(yàn)和進(jìn)行循環(huán)冗余校驗(yàn)運(yùn)算所得到;c、上層軟件下行問答指令幀N+2,讀取電能表返回的標(biāo)志位數(shù)據(jù);在電能表執(zhí)行如下步驟d、電能表接收到所述廣播指令幀數(shù)據(jù)后,切換到更新程序狀態(tài)并進(jìn)行相應(yīng)的更新處理;e、接收到上層軟件下行的指令幀N+1后,將上層軟件的下行循環(huán)冗余校驗(yàn)的校驗(yàn)結(jié)果與電能表內(nèi)部的循環(huán)冗余校驗(yàn)的校驗(yàn)結(jié)果進(jìn)行比較處理;f、接收到上層軟件下行的指令幀N+2后,電能表向上層軟件發(fā)送帶標(biāo)志位數(shù)據(jù)的應(yīng)答幀。
2、 根據(jù)權(quán)利要求1所述的對電能表芯片程序進(jìn)行下載更新的方法,其特征 在于,所述步驟c具體包括若所述標(biāo)志位數(shù)據(jù)為1,則表示該電能表芯片程序更新不成功; 若所述標(biāo)志位數(shù)據(jù)為0,則表示該電能表芯片程序更新成功。
3、 根據(jù)權(quán)利要求1或2所述的對電能表芯片程序進(jìn)行下載更新的方法,其 特征在于,所述步驟d中,所述相應(yīng)的更新處理具體包括dl、置標(biāo)志位為0;d2、當(dāng)收到完整的廣播指令幀l...N后,進(jìn)行校驗(yàn)和運(yùn)算,并核對所述指 令幀是否安全完整;d3、進(jìn)行電能表程序的更新;若校驗(yàn)或更新過程出現(xiàn)任何非法情況,則置 標(biāo)志位為l,但整個廣播過程中不上行任何指令幀。
4、 根據(jù)權(quán)利要求1或2所述的對電能表芯片程序進(jìn)行下載更新的方法, 其特征在于,所述步驟e中,所述比較處理具體包括若上層軟件的下行循環(huán)冗余校驗(yàn)的校驗(yàn)結(jié)果與電能表內(nèi)部的循環(huán)冗余校 驗(yàn)的校驗(yàn)結(jié)果相同,則表示所收到的指令幀連續(xù)的,且每一幀都是完整的;若上層軟件的下行循環(huán)冗余校驗(yàn)的校驗(yàn)結(jié)果與電能表內(nèi)部的循環(huán)冗余校 驗(yàn)的校驗(yàn)結(jié)果不同,則表示所收到的數(shù)據(jù)包為非法,將其標(biāo)志位置為l。
5、 根據(jù)權(quán)利要求1所述的對電能表芯片程序進(jìn)行下載更新的方法,其特 征在于,所述上層軟件與所述電能表之間的數(shù)據(jù)傳輸采用DL/T645-1997通訊 規(guī)約。
6、 根據(jù)權(quán)利要求1所述的對電能表芯片程序進(jìn)行下載更新的方法,其特 征在于,廣播指令幀每一幀數(shù)據(jù)為128字節(jié),在廣播指令幀下行過程中,電能 表禁止上行指令幀,并且在芯片程序更新過程中電能表禁止主動上行指令幀。
7、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述循環(huán)冗余校驗(yàn)采用循 環(huán)冗余校驗(yàn)16位的校驗(yàn)方法對所有廣播指令幀的校驗(yàn)和結(jié)果進(jìn)行校驗(yàn)。
8、 根據(jù)權(quán)利要求1所述的對電能表芯片程序進(jìn)行下載更新的方法,其特征 在于,當(dāng)電能表接收到廣播指令幀數(shù)據(jù)后,進(jìn)行更新芯片程序;若該更新過程 中若出現(xiàn)錯誤,則將標(biāo)志位置為l,表示電能表更新程序?yàn)椴缓细瘛?br>
9、 根據(jù)權(quán)利要求1所述的對電能表芯片程序進(jìn)行下載更新的方法,其特征 在于,所述上層軟件通過RS232或RS485串口與所述電能表連接。
10、 根據(jù)權(quán)利要求1所述的對電能表芯片程序進(jìn)行下載更新的方法,其特 征在于,所述上層軟件與功率源、標(biāo)準(zhǔn)表、誤差板之間的數(shù)據(jù)傳輸采用內(nèi)部標(biāo) 準(zhǔn)通信協(xié)議。
全文摘要
本發(fā)明涉及一種對電能表芯片程序進(jìn)行下載更新的方法,在上層軟件執(zhí)行如下步驟a.上層軟件下行廣播指令幀1...N;b.上層軟件下行問答指令幀N+1,下行上層軟件輸出CRC16校驗(yàn)結(jié)果;c.上層軟件下行問答指令幀N+2,讀取電能表返回的標(biāo)志位數(shù)據(jù);在電能表執(zhí)行如下步驟d.電能表接收到廣播指令幀數(shù)據(jù)后,切換到更新程序狀態(tài)并進(jìn)行相應(yīng)的更新處理;e.接收到上層軟件下行的指令幀N+1后,將上層軟件的下行CRC16校驗(yàn)結(jié)果與電能表內(nèi)部的CRC16校驗(yàn)結(jié)果進(jìn)行比較處理;f.接收到上層軟件下行的指令幀N+2后,電能表向上層軟件返回帶標(biāo)志位數(shù)據(jù)的應(yīng)答幀。實(shí)施本發(fā)明,使得電能表批量化生產(chǎn)過程中電能表芯片程序下載更新,速度更快、可靠性更高。
文檔編號G06F9/445GK101221506SQ20071007295
公開日2008年7月16日 申請日期2007年1月12日 優(yōu)先權(quán)日2007年1月12日
發(fā)明者偉 劉 申請人:深圳市科陸電子科技股份有限公司