引 言
隨著科技的發(fā)展,低壓電力載波抄表終端已廣泛應(yīng)用于電力的各個(gè)行業(yè),為電力部門節(jié)省了人力物力資源并提高了效率。另一方面,電力載波抄表終端系統(tǒng)卻需要大量的工程人員去現(xiàn)場維護(hù)。這是各相關(guān)企業(yè)和公司急需解決的問題,針對(duì)這一問題,提出了基于POP3的低壓電力載波抄表終端的遠(yuǎn)程升級(jí)系統(tǒng),該系統(tǒng)通過連接POP3升級(jí)服務(wù)器,下載新程序并進(jìn)行Base 64解碼,最后利用ARM7的IAP功能實(shí)現(xiàn)程序的實(shí)時(shí)更新,解決了終端系統(tǒng)程序現(xiàn)場維護(hù)的問題,真正意義上節(jié)省了人力物力資源。該系統(tǒng)已應(yīng)用于低壓電力載波抄表終端中,并取得了明顯的成效。
1 系統(tǒng)工作原理
該系統(tǒng)主要有GPRS連接、POP3接收郵件、Base 64解碼和IA P編程4部分組成。GPRS連接通過SIM300模塊將低壓電力載波抄表終端連接到遠(yuǎn)程升級(jí)服務(wù)器;然后,通過POP3協(xié)議將郵件服務(wù)器上的新程序下載到低壓電力載波抄表終端上;之后,對(duì)下載的程序進(jìn)行Base 64解碼,最后通過LPC2214的IAP功能將解碼后的程序?qū)懙絃PC2214的FLASH中,完成遠(yuǎn)程升級(jí)的功能。系統(tǒng)框圖如圖1所示。
2 POP3協(xié)議和Base 64編碼原理
2.1 POP3協(xié)議
POP3適用于C/S結(jié)構(gòu)的脫機(jī)模型,是因特網(wǎng)電子郵件的第一個(gè)離線協(xié)議標(biāo)準(zhǔn),POP3允許用戶從服務(wù)器上把郵件存儲(chǔ)到本地主機(jī)(即自己的計(jì)算機(jī))上,同時(shí)刪除保存在郵件服務(wù)器上的郵件,而POP3服務(wù)器則是遵循POP3協(xié)議的接收郵件服務(wù)器,用來接收電子郵件的。POP3協(xié)議有三種狀態(tài):認(rèn)可狀態(tài)、處理狀態(tài)和更新狀態(tài)。當(dāng)客戶機(jī)與服務(wù)器建立聯(lián)系時(shí),一旦客戶機(jī)提供了自己身份并成功確認(rèn),即由認(rèn)可狀態(tài)轉(zhuǎn)入處理狀態(tài),在完成相應(yīng)的操作后客戶機(jī)發(fā)出Quit命令,則進(jìn)入更新狀態(tài),更新之后重返認(rèn)可狀態(tài)。
2.2 Base 64編碼原理
Base 64是一種很常見的編碼規(guī)范,被設(shè)計(jì)用來將任意序列的8字節(jié)描述為一種不易被人直接識(shí)別的形式。它的作用是將二進(jìn)制序列轉(zhuǎn)換為人類可讀的ASCII字符序列,常用在需用通過文本來傳輸二進(jìn)制數(shù)據(jù)的協(xié)議中,如HTTP和SMTP等。
Base 64編碼規(guī)則為對(duì)于待編碼數(shù)據(jù),以3個(gè)字節(jié)為單位,依次取6位,前兩位補(bǔ)0形成8位編碼,由于3×8=4×6,3個(gè)字節(jié)的輸入會(huì)編碼成4個(gè)字節(jié)的輸出。如果剩下的字符不足3個(gè)字節(jié),則用0填充,輸出字符使用“=”,因此編碼后輸出的文本末尾可能會(huì)出現(xiàn)1個(gè)或2個(gè)“=”。因此,Base 64解碼過程與編碼過程正好相反。這里給出解碼的關(guān)鍵程序示例:
3 LPC2214的IAP功能及FLASH Boot裝載程序
LPC2214的FLASH存儲(chǔ)器系統(tǒng)包含256 KBFLASH器件的17個(gè)扇區(qū)。FLASH存儲(chǔ)器從地址0開始并向上增加。Boot裝載程序控制復(fù)位后的初始化操作,并提供實(shí)現(xiàn)FLASH編程的方法。Boot裝載器可啟動(dòng)對(duì)空片的編程、已編程器件的擦除和再編程以及在運(yùn)行系統(tǒng)中由應(yīng)用程序?qū)LASH存儲(chǔ)器進(jìn)行編程。
對(duì)于IAP來說,應(yīng)當(dāng)通過寄存器r0中的字指針指向存儲(chǔ)器(RAM)包含的命令代碼和參數(shù),以調(diào)用IAP程序。IAP的命令結(jié)果返回到寄存器r1所指向的返回表。用戶可通過傳遞寄存器r0和r1中的相同指針重用命令表來得到結(jié)果。參數(shù)表應(yīng)當(dāng)大到足夠保存所有的結(jié)果,以防結(jié)果的數(shù)目大于參數(shù)的數(shù)目。參數(shù)和結(jié)果的數(shù)目根據(jù)IAP命令而有所不同。參數(shù)的最大數(shù)目為5,由“將RAM內(nèi)容復(fù)制到FLASH”命令傳遞;結(jié)果的最大數(shù)目為2,由“扇區(qū)查空”命令返回。命令處理程序在接收到一個(gè)未定義的命令時(shí)發(fā)送狀態(tài)代碼IN-VALID_COMMAND。IAP程序是thumb代碼,位于地址0x7FFFFFF0。
4 遠(yuǎn)程升級(jí)軟件設(shè)計(jì)
首先,系統(tǒng)對(duì)SIM300模塊進(jìn)行初始化,然后連接遠(yuǎn)程升級(jí)服務(wù)器,接著通過POP3協(xié)議登錄郵件服務(wù)器,并下載新程序,主ARM將下載的程序進(jìn)行Base 64解碼,最后通過IAP將解碼后的程序?qū)懙紸RM的FLASH中,以完成遠(yuǎn)程升級(jí)的目的。詳細(xì)流程圖如圖2所示。由于遠(yuǎn)程升級(jí)需要低壓電力載波抄表終端抄表主程序的配合,因此這里給出了遠(yuǎn)程升級(jí)相關(guān)的部分。在IAP寫FLASH的過程中,需要注意FLASH存儲(chǔ)器在寫或擦除操作過程中不可被訪問。執(zhí)行FLASH寫/擦除操作的IAP命令使用片內(nèi)RAM頂端的32個(gè)字節(jié)空間。用戶程序不應(yīng)使用該空間。IAP擦除FLASH的部分源碼如下:
5 結(jié) 語
針對(duì)各電力相關(guān)企業(yè)和公司需要大量的工程人員現(xiàn)場維護(hù)低壓電力載波抄表終端的問題,提出基于POP3的遠(yuǎn)程升級(jí)系統(tǒng),該系統(tǒng)可以通過GPRS連接到遠(yuǎn)程的升級(jí)服務(wù)器,下載最新的程序,并對(duì)齊進(jìn)行Base64解碼,最后利用IAP將其寫于低壓電力載波抄表終端中.實(shí)現(xiàn)低壓電力載波抄表終端遠(yuǎn)程升級(jí)功能。該系統(tǒng)解決了工程人員必須現(xiàn)場維護(hù)的問題,為企業(yè)和公司節(jié)省了人力、物力資源,并提高了效率。
-
協(xié)議
+關(guān)注
關(guān)注
2文章
593瀏覽量
39135 -
服務(wù)器
+關(guān)注
關(guān)注
12文章
8958瀏覽量
85085 -
GPRS
+關(guān)注
關(guān)注
21文章
983瀏覽量
129304
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論