??? 摘 要:提出了一種基于ARM和GPRS網(wǎng)絡(luò)的水情信息系統(tǒng)的設(shè)計(jì)方案。介紹了終端數(shù)據(jù)采集設(shè)備" title="數(shù)據(jù)采集設(shè)備">數(shù)據(jù)采集設(shè)備的硬件選型,、通信協(xié)議" title="通信協(xié)議">通信協(xié)議設(shè)計(jì),、主控中心軟件設(shè)計(jì)。系統(tǒng)利用現(xiàn)有GPRS網(wǎng)絡(luò)發(fā)揮了網(wǎng)絡(luò)覆蓋率高,、傳輸特性好等優(yōu)勢,因而特別適用于工作環(huán)境惡劣,、地理位置偏僻、無人值守的場所,。
??? 關(guān)鍵詞:ARM? GPRS? 通信協(xié)議? 水情信息系統(tǒng)
?
???
??? 長期以來,,相對落后的水情信息采集、傳輸,、管理手段,大大降低了水情信息的時(shí)效性,,因此強(qiáng)化水情信息采集和傳輸工作,,提高水情測報(bào)質(zhì)量成為當(dāng)務(wù)之急。同時(shí)由于水情信息涉及內(nèi)容較多,,大部分監(jiān)測數(shù)據(jù)需要實(shí)時(shí)發(fā)送到管理中心的服務(wù)器進(jìn)行處理,,而數(shù)據(jù)采集點(diǎn)一般分散于環(huán)境惡劣的野外,因此對信息采集,、傳輸,、管理等方法提出了較高的要求。
??? 本文設(shè)計(jì)開發(fā)的基于三星公司S3C2410 ARM9芯片和桑榮公司Saro3130P GPRS DTU的水情信息系統(tǒng),,通過GPRS網(wǎng)絡(luò)以短消息" title="短消息">短消息形式完成遠(yuǎn)程數(shù)據(jù)傳輸,,具有不需撥號、價(jià)格相對較低,、傳輸可靠等特點(diǎn),,特別適用于工作環(huán)境惡劣、地理位置偏僻,、無人值守的場所,。
1 系統(tǒng)結(jié)構(gòu)及其工作原理
??? 系統(tǒng)總體結(jié)構(gòu)如圖1所示,主要包括主控中心,、遠(yuǎn)程終端,、連接主控中心和遠(yuǎn)程終端的GPRS網(wǎng)絡(luò)三部分。
???????????????????????
??? (1)主控中心:通過串口與一個(gè)GPRS Modem設(shè)備相連接,,可讀取Modem設(shè)備接收到的短消息,,從而獲得遠(yuǎn)端傳來的測量數(shù)據(jù),完成水情數(shù)據(jù)的處理,、保存等功能,,也可通過Modem設(shè)備發(fā)送控制指令到遠(yuǎn)程終端。報(bào)警時(shí),可將短消息轉(zhuǎn)發(fā)至遠(yuǎn)端工作人員的手機(jī),。
??? (2)遠(yuǎn)程終端:主要是基于S3C2410 ARM9芯片的數(shù)據(jù)采集設(shè)備,,并且增加了支持短消息、數(shù)據(jù)通信等業(yè)務(wù)的GPRS 通信模塊" title="通信模塊">通信模塊,。終端數(shù)據(jù)采集設(shè)備獲取水情數(shù)據(jù)后可通過GPRS Modem發(fā)送給主控中心的Modem,,同時(shí)也可接收主控中心命令進(jìn)行相應(yīng)的操作。
??? (3)GPRS網(wǎng)絡(luò)(即數(shù)據(jù)傳輸部分):終端數(shù)據(jù)采集設(shè)備與主控中心實(shí)現(xiàn)通信,,可通過各自的GPRS Modem經(jīng)過GPRS 無線網(wǎng)絡(luò)傳遞,。
??? 系統(tǒng)工作方式主要有:
??? (1)監(jiān)控方式(招測方式):由主控中心下發(fā)指令,終端響應(yīng),。
??? (2)監(jiān)視方式(自報(bào)方式):終端定時(shí),、定條件(如變幅)向主控中心上報(bào)。
??? (3)監(jiān)控/監(jiān)視方式(招測/自報(bào)方式):綜合招測和自報(bào)的方式,。
??? (4)休眠方式:終端處于不工作狀態(tài),。
2 系統(tǒng)設(shè)計(jì)
2.1 終端數(shù)據(jù)采集設(shè)備的設(shè)計(jì)
??? 終端數(shù)據(jù)采集設(shè)備的設(shè)計(jì)通常有模塊化方式和集成方式兩種。雖然傳統(tǒng)模塊化方式的擴(kuò)展性,、通用性極強(qiáng),,但板卡數(shù)目過多使功耗加大、成本增加,,同時(shí)后期維護(hù)工作量也大,。集成方式功耗、電路板成本相對模塊化方式低,,便于后期維護(hù),,且嵌入式系統(tǒng)本身功能專一,高度集成,,但此方式缺乏通用性,,需要根據(jù)不同的應(yīng)用設(shè)計(jì)不同的系統(tǒng),每一次擴(kuò)展需要全新開發(fā),。
??? 為了兼顧兩者的優(yōu)點(diǎn),,終端數(shù)據(jù)采集設(shè)備采用“模塊+集成”的方式,即:采用“核心板" title="核心板">核心板+子板”的平臺化設(shè)計(jì)思想,?!昂诵陌濉?是基于S3C2410 ARM9芯片的必備器件,以總線方式與“子板”連接,;“子板”的設(shè)計(jì)盡量以相對對立的功能進(jìn)行劃分,,以實(shí)現(xiàn)模塊化,具備較強(qiáng)的擴(kuò)展性,,包括輸入板,、輸出板,、電源模塊、通信模塊四個(gè)部分,。其硬件結(jié)構(gòu)如圖2所示,。
?????????????????????
??? 核心板使用插座安裝在接口板上,有三個(gè)電源引腳(3.3V/2.0V/1.8V)和144個(gè)CPU引腳,,看門狗采用2410內(nèi)部Watchdog,;NAND Flash(參考K9F1208UOM)存儲器容量為64MB,可存儲1年以上的歷史數(shù)據(jù);NOR Flash(參考SST39VF160)存儲器容量為2MB,可存放啟動(dòng)程序,;接口包含JTAG,、I/O、ADDRESS,、RS-232,、RS-485、USB等,。
輸入板外接各種型號的傳感器,,以獲得各個(gè)采集點(diǎn)水情數(shù)據(jù);輸出板外接各種執(zhí)行單元的繼電器開關(guān),,以進(jìn)行相應(yīng)的控制操作;電源模塊設(shè)計(jì)通過數(shù)碼管,、LED燈給出必要的信號提示和電路工作狀態(tài)提示,,同時(shí)注意了低功耗的設(shè)計(jì),使電路的損耗盡量小,,系統(tǒng)工作方式盡量設(shè)計(jì)為休眠方式,;通信模塊采用廈門桑榮公司的Saro3130P GPRS DTU,該模塊內(nèi)嵌高性能工業(yè)級Siemens MC35I通信模塊,,采用低功耗高性能的嵌入式處理器,,可高速處理協(xié)議和大量數(shù)據(jù)。帶有標(biāo)準(zhǔn)的RS-232/RS-422接口,,串行數(shù)據(jù)速率為110~57 600b/s,。在使用前需要安裝SIM卡,并開通相應(yīng)的GPRS服務(wù)業(yè)務(wù),。
2.2 通信協(xié)議設(shè)計(jì)
??? 由于主控中心與遠(yuǎn)端設(shè)備之間進(jìn)行的數(shù)據(jù)通信采取短消息方式,,因此,短消息中的每個(gè)數(shù)據(jù)信息代表的具體意義以及短消息中數(shù)據(jù)的排列規(guī)則都需要通信的雙方達(dá)成一致,。要實(shí)現(xiàn)主控中心與遠(yuǎn)程終端間的數(shù)據(jù)交互,,必須建立高效的用戶協(xié)議。
2.2.1 基本規(guī)則
??? 幀格式需要考慮通信可靠實(shí)用,、編程簡單,、易于擴(kuò)展三個(gè)基本規(guī)則,。
??? 編程簡單:與二進(jìn)制碼幀數(shù)據(jù)表示方式采用ASCII碼相比,本方法更便于數(shù)據(jù)顯示,,可減少數(shù)據(jù)轉(zhuǎn)化,,程序?qū)崿F(xiàn)簡便。
??? 通信的可靠性:協(xié)議加入了校驗(yàn),、握手,,但因大多終端應(yīng)用于工作環(huán)境惡劣、地理位置偏僻,、無市電的場所,,因此,實(shí)際應(yīng)用中要求低功耗,,所以應(yīng)減少如“握手”等環(huán)節(jié)(因?yàn)槿绻枰帐?,則表示接收方必須向發(fā)送方發(fā)送應(yīng)答指令而增加功耗)。但在特殊情況下(如:主控中心發(fā)送指令改變終端工作狀態(tài))可以使用邏輯握手,,其他無需握手情況下,,用軟件處理加以彌補(bǔ)。
??? 本系統(tǒng)的數(shù)據(jù)幀可分為發(fā)送幀和接收幀兩種,。在制定該協(xié)議過程中,,考慮到以后應(yīng)用的擴(kuò)展性,即信息交換的準(zhǔn)則可應(yīng)用于中心站與終端,、中心站與分中心站,、分中心站與終端、終端與終端之間進(jìn)行通信,,所以采用統(tǒng)一的幀結(jié)構(gòu),,且?guī)L可變。
2.2.2? 幀結(jié)構(gòu)
??? 基本幀結(jié)構(gòu)主要包括六個(gè)字段,,分別是:幀的起始符,,用‘$’標(biāo)識幀的開始;幀的結(jié)束符,,用‘#’標(biāo)識幀的結(jié)束,;模式域,用于區(qū)分不同組網(wǎng)模式下是否校驗(yàn),、是否握手,;地址域,當(dāng)組網(wǎng)為總線/節(jié)點(diǎn)模式時(shí)用以標(biāo)識主站地址,、從站地址,;功能域,用于存放通信的指令以及相關(guān)數(shù)據(jù),;校驗(yàn)域,,采用CRC校驗(yàn),,該字段可選,當(dāng)不需要邏輯握手時(shí),,該域可不使用,。幀格式如表1所示。
????????????????????
??? 因部分站點(diǎn)原來采用總線組網(wǎng)方式,,為了與原來方式兼容,,模式域同時(shí)考慮了無線通信“點(diǎn)對點(diǎn)方式”和有線通信“總線方式”及兩種方式共用,且根據(jù)不同的組網(wǎng)模式,,選擇是否校驗(yàn)和握手,。如果需要握手,則表示接收方必須向發(fā)送方發(fā)送應(yīng)答指令,。模式域編碼如表2所示,。
????????????????????
??? 功能域用于存放通信的指令以及相關(guān)數(shù)據(jù),包括指令域,、消息總數(shù),、當(dāng)前序號、當(dāng)前日期時(shí)間和數(shù)據(jù)體等字段,,其結(jié)構(gòu)如表3所示,。
??????????????????????
??? 在功能域中,指令域用來標(biāo)識具體的功能,,具體結(jié)構(gòu)如表4所示,;消息總數(shù)是對于數(shù)據(jù)體過長需要分包發(fā)送而言,此時(shí)消息總數(shù)標(biāo)識數(shù)據(jù)包的總數(shù)(最大15個(gè)包),;當(dāng)前序號標(biāo)識當(dāng)前數(shù)據(jù)包在整個(gè)功能數(shù)據(jù)包中的序號;當(dāng)前日期時(shí)間用于標(biāo)識數(shù)據(jù)包發(fā)送的日期和時(shí)間,;數(shù)據(jù)體是根據(jù)具體指令,,裝載相關(guān)的數(shù)據(jù)。
????????????????????????
2.3 主控中心軟件設(shè)計(jì)
??? 該軟件采用Microsoft Visual Studio.NET2005平臺設(shè)計(jì)開發(fā),,集數(shù)據(jù)采集,、分析、管理于一體,,包括數(shù)據(jù)采集,、資料整編、數(shù)據(jù)分析,、管理四大功能,,如圖3所示。
?????????????????????
??? (1)數(shù)據(jù)采集:主要完成主控中心采集終端數(shù)據(jù),,包括通信設(shè)置,、采數(shù),、報(bào)警處理、轉(zhuǎn)發(fā)設(shè)置,。
???? ①通信設(shè)置:進(jìn)行通信設(shè)備初始化與檢測,。
???? ②采數(shù):出現(xiàn)異常進(jìn)行相應(yīng)報(bào)警處理與轉(zhuǎn)發(fā)設(shè)置。
??? (2)資料整編:對水文資料進(jìn)行整編,自動(dòng)完成水文報(bào)表匯總、處理,、打印等功能,。
??? (3)數(shù)據(jù)分析:提供對水情數(shù)據(jù)的分析,實(shí)現(xiàn)數(shù)據(jù)手動(dòng)/自動(dòng)插值,、流量重新計(jì)算、水量累計(jì)計(jì)算、異常數(shù)據(jù)過濾等,。
??? (4)管理:包括站點(diǎn)管理、數(shù)據(jù)庫管理,、用戶管理,。站點(diǎn)管理包括站點(diǎn)狀態(tài)顯示及站點(diǎn)增加、刪除,、修改,;數(shù)據(jù)庫管理支持多種類型數(shù)據(jù)庫,如ORACLE,、SQLSERVER等,;用戶管理包括用戶資料查詢、密碼設(shè)置,、權(quán)限設(shè)置等,。
??? 本文設(shè)計(jì)了一種基于ARM平臺和GPRS無線網(wǎng)絡(luò)的水情信息系統(tǒng),此系統(tǒng)建立在GPRS網(wǎng)絡(luò)上,,具有不需撥號,、傳輸可靠等特點(diǎn),特別適用于需頻繁傳送小流量數(shù)據(jù)和不宜鋪設(shè)線路的應(yīng)用場合,,為現(xiàn)有數(shù)據(jù)采集系統(tǒng)提供了一種便捷的無線數(shù)據(jù)傳輸方式,。不過在網(wǎng)絡(luò)繁忙時(shí)短消息接收可能存在延遲,將影響系統(tǒng)正常工作,,且在不同條件下通信要求也不同,,用戶在設(shè)計(jì)時(shí),應(yīng)充分考慮具體工作情況,,從而保證建立穩(wěn)定可靠的通信,。
??? 該系統(tǒng)的創(chuàng)新有兩點(diǎn),一是終端數(shù)據(jù)采集設(shè)備采用”模塊+集成”的方式,即采用“核心板+子板”的平臺化設(shè)計(jì)思想;二是通信協(xié)議設(shè)計(jì)依從通信可靠實(shí)用,、編程簡單,、易于擴(kuò)展三個(gè)基本規(guī)則,并將發(fā)送幀與接收幀采用統(tǒng)一幀結(jié)構(gòu),兼容了總線組網(wǎng)方式,實(shí)際運(yùn)用證明該設(shè)計(jì)可靠有效,。整套系統(tǒng)目前已成功應(yīng)用在都江堰灌區(qū)各站點(diǎn)。
參考文獻(xiàn)
[1] ?周立功.ARM嵌入式系統(tǒng)軟件開發(fā)實(shí)例[M].北京:北京航空航天大學(xué)出版社,2006.
[2] ?王承君.自定義串口數(shù)據(jù)通信協(xié)議的分析與設(shè)計(jì)[J].計(jì)算機(jī)工程, 2004,30(24).
[3] ?張宏林. Visual C++ Visual Basic串并口開發(fā)技術(shù)工程應(yīng)用實(shí)例導(dǎo)航[M].北京:人民郵電出版社,2006.
[4] ?廈門桑榮科技有限公司. 無線數(shù)據(jù)傳輸終端Saro3130P GPRS DTU使用手冊[Z].2005.
?