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