實(shí)現基于GPRS的無(wú)線(xiàn)遠程IAP功能
針對地下水資源已經(jīng)嚴重透支,水資源受到嚴重破壞的問(wèn)題設計本系統,目的就是為了監控農用機井的用水情況。農用機井分布站點(diǎn)廣,站點(diǎn)之間距離幾十m到一兩百km,采用人工抄表監控會(huì )浪費大量的人力和物力,而且實(shí)時(shí)性差。以前采用GSM方式也存在實(shí)時(shí)性差、控制困難的問(wèn)題。
目前,對此類(lèi)問(wèn)題可靠的、現實(shí)的解決方案就是,將現場(chǎng)設備接入Internet上的服務(wù)器,在上層實(shí)現實(shí)時(shí)監控、管理;但是現場(chǎng)沒(méi)有專(zhuān)門(mén)Internet接入點(diǎn)和設備。采用GPRS接入Internet進(jìn)行遠程數據傳輸,是近兩年企業(yè)、研究所等科研機構的熱門(mén)課題。隨著(zhù)GPRS技術(shù)的日益成熟,GPRS已經(jīng)成功地應用在遠程抄表、夜燈照明、油田監測、自動(dòng)測量、智能儀表等不方便甚至根本不可能人工操作的遠程數據傳輸系統中。因此,本系統選用GPRS和GSM混合工作模式:在網(wǎng)絡(luò )狀況通暢的情況使用GPRS工作模式;反之可以切換到GSM工作模式。每個(gè)站點(diǎn)數據傳輸終端定時(shí)登陸到GPRS,接入Internet上的主機服務(wù)器,把采集數據和站點(diǎn)狀態(tài)下載到服務(wù)器硬盤(pán)上;上層采用B/S瀏覽器方式供地級、區級、市級等不同級別設置權限瀏覽;同時(shí)可以隨時(shí)監控站點(diǎn)的實(shí)時(shí)狀態(tài),報告實(shí)時(shí)現場(chǎng)狀況,調用系統歷史數據信息。
市場(chǎng)的機遇和應用技術(shù)的成熟常常是一對矛盾,尤其對于GPRS這類(lèi)新技術(shù),通常不得不一邊開(kāi)拓市場(chǎng)一邊完善技術(shù)。然而實(shí)踐是檢驗真理的唯一標準。系統交接使用之后,用戶(hù)反饋一些改善功能的意見(jiàn),另外,長(cháng)時(shí)間使用之后,終端程序隱藏的“bug”也可能會(huì )隨之浮出水面。這就需要對數據傳輸終端的程序進(jìn)行升級,但是設想一下,假如投入使用了200個(gè)站點(diǎn),就算用ISP現場(chǎng)在線(xiàn)編程,工作人員得到每個(gè)站點(diǎn)把程序更新一遍。不但浪費大量的人力、物力,而且直接貽誤了開(kāi)辟市場(chǎng)的時(shí)機,對企業(yè)造成的后果可能是致命的。
本設計方案就是應用在此類(lèi)GPRS遠程監控系統上,融合GPRS網(wǎng)絡(luò )通信技術(shù)解決數據傳輸終端程序升級問(wèn)題的。
1 IAP功能簡(jiǎn)介與系統應用
IAP(In-Application Programming)是應用在Flash程序存儲器的一種編程模式。簡(jiǎn)單地說(shuō)就是在應用程序控制下,對程序某段存儲空間進(jìn)行讀取、擦除、寫(xiě)入操作。與ISP(In-System-Programming)操作非常相似,都不需要從電路板上取下芯片用編程器燒寫(xiě)再安裝上去運行新程序,即具有在線(xiàn)編程功能。但是它們有其不同點(diǎn):ISP通常是整片擦除、編程,在手工操作下通過(guò)PC串口下載程序到Flash,需要簡(jiǎn)單的硬件資源――串口RX、TX和RS232驅動(dòng)芯片;而IAP卻是在某段程序的控制下對另外一段程序Flash進(jìn)行讀寫(xiě)操作,可以控制對某段、某頁(yè)甚至某個(gè)字節的讀寫(xiě)操作。
根據IAP的功能特點(diǎn),可以制作仿真軟件替代仿真器功能。在PC上做個(gè)簡(jiǎn)單的界面應用程序就可以直接實(shí)現用戶(hù)程序在線(xiàn)仿真:設置斷點(diǎn)、單步運行、改變運行結果調試等功能。同理,根據ISP的功能特點(diǎn)可以替代編程器。本系統就是把IAP模式融入到GPRS通信系統中,用GPRS遠程升級指定目標芯片的軟件。
2 IAP功能系統架構
IAP功能系統架構如圖1所示。
圖1 系統架構(只標示與lAP功能相關(guān)部分)P89LPC936是PhiIips公司推出的一款高穩定性、多功能的51內核MCU;集成了I2C總線(xiàn),讀寫(xiě)操作I2C器件FM24C256速度快、穩定性高;增強型UART,具有幀錯誤檢測、幀間隔檢測、可選雙緩沖、接收和發(fā)送中斷可選分開(kāi)等強大串口通信功能,增強了和GPRS模塊串口通信的可靠性;內置AD/DA轉換器;16 KB Flash存取器,支持ISP和IAP;采用TSSOP28或HWQFN28低成本封裝。設計系統的外圍電路可以減少到最少,不但提高了系統的性能,甚至可以IAP升級終端部分功能而不用改變外圍硬件電路。
FM24C256,256 Kb的FRAM(鐵電存儲器),兼有ROM的掉電數據保存特性和RAM的讀寫(xiě)速度和次數,讀寫(xiě)次數達到1000億次,采用I2C總線(xiàn)讀寫(xiě)操作,使用穩定可靠;用8腳SOIC封裝,與MCU的接口電路簡(jiǎn)單、通信可靠。通信速率O~400 kHz可調。P89LP(2936的12SCLH和。12SCLL兩個(gè)SFR的值就是確定串行時(shí)鐘發(fā)生器占空比。本系統選擇7.372 8 MHz晶振,12SCLH=12SCLL=75,12C速率為25 Kbps。
GPRS模塊使用WAVECOM公司生產(chǎn)的Q2406B,雙頻GPRS/GSM模塊(EGSM900/1 800 MHz或EGSM900/1 900 MHz),內置TCP/IP,與標準AT指令完全兼容;其設計開(kāi)發(fā)符合ETSI GSM Phase 2+標準。本系統模塊使用9.6 kbps波特率,而模塊出廠(chǎng)波特率為115 200 bps,用串口終端初始化模塊時(shí),特別要注意這一點(diǎn)。
3 IAP功能的軟件編程
3.1 系統工作狀態(tài)分析
①用戶(hù)程序工作狀態(tài),在遠程數據傳輸系統中,用戶(hù)程序完成數據采集、存儲、發(fā)送,系統監控、報警,接收執行上位機設置、控制命令等正常用戶(hù)功能。
②IAP工作狀態(tài),如圖2所示。上位機發(fā)送升級程序信令,數傳終端收到并回復確認信息后,開(kāi)始等待下載信令;收到正確下載信令后開(kāi)始下載代碼到FM24C2256暫存。按幀順序號發(fā)送、接收數據,校驗幀的正確性,采用握手數據流保證每幀完全正確接收、存儲。代碼發(fā)送完畢后,發(fā)送下載完畢信令,包括代碼總長(cháng)度和塊校驗碼;每階段都采取延時(shí)處理:延時(shí)時(shí)間到繼續重發(fā)過(guò)程三次,還沒(méi)收到就報告出錯信息,強行下線(xiàn),切換到待升級用戶(hù)程序運行。如果通信正常,就進(jìn)入最關(guān)鍵一步――Flash擦除和編程。
Philips在P89LPC936地址FF00H~FFFFH的空間里固化一個(gè)256字節的引導ROM,所有MCU對內部Flash的操作都可以調用這個(gè)子程序完成。使用IAP功能時(shí)就是提供這個(gè)子程序的入口參數(參考Philips的數據手冊),然后調用程序的入口地址FF00H,就可以實(shí)現讀、寫(xiě)、擦除Flash。擦除、編程Flash時(shí)需要關(guān)閉所有中斷,不能對同一塊Flash同時(shí)進(jìn)行擦除和編程,而且編程之前要先把扇區清除。對Flash的扇區進(jìn)行擦除操作的程序清單(入口參數A、R7、R4和R5,返回參數(F0(C)、R7)如下:
ERASE_FLASH:
MOV A,#04H ;A為操作類(lèi)型(A=04H,告訴IAP
;執行的是擦除操作)
MOV R7,#01H ;R7刪除操作方式(00H表示刪除
;頁(yè);01H表示刪除扇區)
MOV R4,#HIGH ;操作的Flash地址高8位
M0v R5,#L0w ;操作的Flash地址低8位
LCALL FF00H
JC ERASE_FLASH ;FO(C):O表示擦除成功,1表示
;擦除失敗
3.2 IAP功能系統SFR配置
(1)用戶(hù)保密扇區設置
MOV SEC6,#04H;禁止對Flash扇區6的擦除
MOV SEC7,#04H;禁止對Flash扇區7的擦除
扇區6和扇區7代碼是控制擦除、編程Flash。為保證不被誤操作,只允許在出廠(chǎng)時(shí)用專(zhuān)門(mén)的編程器擦寫(xiě)。
(2)IAP特許關(guān)鍵值設置
執行擦除或寫(xiě)Flash的IAP功能,需要在調用IAP功能程序前,把96H寫(xiě)入RAM單元FFH來(lái)設置特許關(guān)鍵值。程序代碼如下:
MOV RO,#OFFH
MOV @RO,#96H
IAP程序處理完功能調用后,特許關(guān)鍵值被清除。因此在每次調用IAP功能程序前必須設置特許關(guān)鍵值。
3.3 lAP功能實(shí)現流程
IAP功能實(shí)現流程如圖3、圖4所示。flagIAP為下載程序完畢,并且校驗碼確認后,準備擦寫(xiě)Flash的標志。在FM24C256開(kāi)辟單元存儲功能很重要:在程序擦寫(xiě)發(fā)生異常,如掉電復位,可以在程序啟動(dòng)后,與上位機確認擦寫(xiě)后,繼續完成升級任務(wù)。每次編程的字節數和上位機傳輸的1幀數據中,代碼字節數保持一致,幀序號數表示程序分成多少幀傳輸和多少次編程操作。
3.4 協(xié)議設計
GPRS網(wǎng)絡(luò )速度理論上有11 7 kbps,實(shí)際上遠遠沒(méi)達到;GPRS與Internet連接建立后,進(jìn)入數據透明傳輸階段。本系統在完善的TCP/IP機制基礎上設計用戶(hù)應用層協(xié)議,為實(shí)現對系統某個(gè)終端的系統軟件升級,可將要升級的程序代碼通過(guò)寫(xiě)碼軟件轉化為系統信令,接入Internet到GPRS網(wǎng)絡(luò ),透明傳輸下載到目標數傳終端。本系統的信令格式采用如下代碼幀格式:
開(kāi)始信令幀和結束信令幀代碼數據段都是FFH。同步碼設置為AAH,55H;字節長(cháng)度(1B)表示此數據幀包含代碼數據的字節數,通常小于64;下載目標地址(5B)設定為出廠(chǎng)ID號,賦予一個(gè)特定代碼含義,只有校驗ID號正確后數據傳輸終端才可能接收命令,而且是唯一標識,不可改變;從安全性出發(fā),本系統中設置為出廠(chǎng)日期和編號的組合:0501160000表示2005年1月16號出廠(chǎng)的第一個(gè)產(chǎn)品。幀序號(1B)表明此次升級程序分成的傳送幀數,在命令傳送過(guò)程中,此域為OOH??刂谱侄?1B)表示傳送的是操作命令還是數據。結束碼設置55H,AAH。數據傳輸終端上行和下行數據格式完全相同,上行響應數據除代碼數據段不同之外,其他字段都是下行控制數據的復制,實(shí)現數據流控制。
4 lAP功能可靠性探討
系統升級過(guò)程不免受到環(huán)境的干擾,如系統斷電或網(wǎng)絡(luò )通信阻塞、故障等意外事故,而導致IAP升級失敗。因此必須有一套可靠的軟、硬件機制來(lái)保障IAP的完全正常工作。以下介紹本系統所采取的一些措施:
①掉電情況處理?,F場(chǎng)環(huán)境的電網(wǎng)波動(dòng)相當大,而且經(jīng)常性停電,甚至影響到系統的正常工作??刹捎眯铍姵毓╇?,提供穩定的、可靠的工作電源;外加一充電板電路,能在有電的時(shí)候直接給電路充電。此外,軟件上還做了完善的握手機制,信令設置回執,確保通信正確不會(huì )發(fā)生誤操作;下載和擦寫(xiě)Flash部分時(shí)序上隔離,網(wǎng)絡(luò )通信性能和掉電異常對系統正常工作的影響減到最小。
②數據傳輸過(guò)程產(chǎn)生的誤碼。通用的、有效的解決辦法就是用CRC循環(huán)冗余效驗和重傳機制。數據校驗碼正確后存入FM24C256,錯誤或超時(shí)就發(fā)幀序號請求重發(fā),直到檢測到結束幀。
最后一幀數據長(cháng)度不夠就用FFH填滿(mǎn)一幀發(fā)送。
③數據傳輸過(guò)程大延遲或阻塞情況處理。數據傳輸采用超時(shí)處理,三次握手失敗,作異常處理機制。
該技術(shù)方案從根本上解決了本系統現場(chǎng)升級困難的問(wèn)題,大大提高了系統的可維護性,加速了新產(chǎn)品上市時(shí)間,可以提供更快、更完美的用戶(hù)服務(wù),增強產(chǎn)品的市場(chǎng)競爭力。以GPRS網(wǎng)絡(luò )為載體,在廣大接入Internet困難的監控現場(chǎng)或農村地區,該技術(shù)提出了一個(gè)解決方案。
tcp/ip相關(guān)文章:tcp/ip是什么
評論