天才教育網(wǎng)合作機(jī)構(gòu) > 英語(yǔ)培訓(xùn)機(jī)構(gòu) > AP培訓(xùn)機(jī)構(gòu) >

東莞電工培訓(xùn)網(wǎng)

歡迎您!
朋友圈

400-850-8622

全國(guó)統(tǒng)一學(xué)習(xí)專(zhuān)線(xiàn) 9:00-21:00

位置:英語(yǔ)培訓(xùn)資訊 > AP培訓(xùn)資訊 > 低壓電力載波抄表終端遠(yuǎn)程升級(jí)系統(tǒng)開(kāi)發(fā)

低壓電力載波抄表終端遠(yuǎn)程升級(jí)系統(tǒng)開(kāi)發(fā)

日期:2009-11-12 11:32:22     瀏覽:174    來(lái)源:東莞電工培訓(xùn)網(wǎng)
隨著科技的發(fā)展,低壓電力載波抄表終端已廣泛應(yīng)用于電力的各個(gè)行業(yè),為電力*節(jié)省了人力物力資源并提高了效率。另一方面,電力載波抄表終端系統(tǒng)卻需要大量的工程人員去現(xiàn)場(chǎng)維護(hù)。這是各相關(guān)企業(yè)和公司急需解決的問(wèn)題,針對(duì)這一問(wèn)題,提出了基于POP3的低壓電力載波抄表終端的遠(yuǎn)程升級(jí)系統(tǒng),該系統(tǒng)通過(guò)連接POP3升級(jí)服務(wù)器,下載新程序并進(jìn)行Base 64解碼,*利用ARM7的IAP功能實(shí)現(xiàn)程序的實(shí)時(shí)更新,解決了終端系統(tǒng)程序現(xiàn)場(chǎng)維護(hù)的問(wèn)題,真正意義上節(jié)省了人力物力資源。該系統(tǒng)已應(yīng)用于低壓電力載波抄表終端中,并取得了明顯的成效。

1 系統(tǒng)工作原理
   
該系統(tǒng)主要有GPRS連接、POP3接收郵件、Base 64解碼和IA P編程4部分組成。GPRS連接通過(guò)SIM300模塊將低壓電力載波抄表終端連接到遠(yuǎn)程升級(jí)服務(wù)器;然后,通過(guò)POP3協(xié)議將郵件服務(wù)器上的新程序下載到低壓電力載波抄表終端上;之后,對(duì)下載的程序進(jìn)行Base 64解碼,*通過(guò)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àn)協(xié)議標(biāo)準(zhǔn),POP3允許用戶(hù)從服務(wù)器上把郵件存儲(chǔ)到本地主機(jī)(即自己的計(jì)算機(jī))上,同時(shí)刪除保存在郵件服務(wù)器上的郵件,而POP3服務(wù)器則是遵循POP3協(xié)議的接收郵件服務(wù)器,用來(lái)接收電子郵件的。POP3協(xié)議有三種狀態(tài):認(rèn)可狀態(tài)、處理狀態(tài)和更新?tīng)顟B(tài)。當(dāng)客戶(hù)機(jī)與服務(wù)器建立聯(lián)系時(shí),一旦客戶(hù)機(jī)提供了自己身份并成功確認(rèn),即由認(rèn)可狀態(tài)轉(zhuǎn)入處理狀態(tài),在完成相應(yīng)的操作后客戶(hù)機(jī)發(fā)出Quit命令,則進(jìn)入更新?tīng)顟B(tài),更新之后重返認(rèn)可狀態(tài)。
2.2 Base 64編碼原理
    Base 64是一種很常見(jiàn)的編碼規(guī)范,被設(shè)計(jì)用來(lái)將任意序列的8字節(jié)描述為一種不易被人直接識(shí)別的形式。它的作用是將二進(jìn)制序列轉(zhuǎn)換為人類(lèi)可讀的ASCII字符序列,常用在需用通過(guò)文本來(lái)傳輸二進(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ò)程與編碼過(guò)程正好相反。這里給出解碼的關(guān)鍵程序示例:

3 LPC2214的IAP功能及FLASH Boot裝載程序
    LPC2214的FLASH存儲(chǔ)器系統(tǒng)包含256 KBFLASH器件的17個(gè)扇區(qū)。FLASH存儲(chǔ)器從地址0開(kāi)始并向上增加。Boot裝載程序控制復(fù)位后的初始化操作,并提供實(shí)現(xiàn)FLASH編程的方法。Boot裝載器可啟動(dòng)對(duì)空片的編程、已編程器件的擦除和再編程以及在運(yùn)行系統(tǒng)中由應(yīng)用程序?qū)LASH存儲(chǔ)器進(jìn)行編程。
    對(duì)于IAP來(lái)說(shuō),應(yīng)當(dāng)通過(guò)寄存器r0中的字指針指向存儲(chǔ)器(RAM)包含的命令代碼和參數(shù),以調(diào)用IAP程序。IAP的命令結(jié)果返回到寄存器r1所指向的返回表。用戶(hù)可通過(guò)傳遞寄存器r0和r1中的相同指針重用命令表來(lái)得到結(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ù)器,接著通過(guò)POP3協(xié)議登錄郵件服務(wù)器,并下載新程序,主ARM將下載的程序進(jìn)行Base 64解碼,*通過(guò)IAP將解碼后的程序?qū)懙紸RM的FLASH中,以完成遠(yuǎn)程升級(jí)的目的。詳細(xì)流程圖如圖2所示。由于遠(yuǎn)程升級(jí)需要低壓電力載波抄表終端抄表主程序的配合,因此這里給出了遠(yuǎn)程升級(jí)相關(guān)的部分。在IAP寫(xiě)FLASH的過(guò)程中,需要注意FLASH存儲(chǔ)器在寫(xiě)或擦除操作過(guò)程中不可被訪問(wèn)。執(zhí)行FLASH寫(xiě)/擦除操作的IAP命令使用片內(nèi)RAM頂端的32個(gè)字節(jié)空間。用戶(hù)程序不應(yīng)使用該空間。IAP擦除FLASH的部分源碼如下:

   

   

如果本頁(yè)不是您要找的課程,您也可以百度查找一下: