張林,吳伯農(nóng)
(北方工業(yè)大學(xué)機(jī)電工程學(xué)院,北京 100144)
張林(碩士研究生),主要研究領(lǐng)域?yàn)橥ㄐ烹娮雍蜏y控。
隨著計(jì)算機(jī)和通信技術(shù)的發(fā)展,分布式測控系統(tǒng)的應(yīng)用范圍越來越廣,特別是在油井工況的監(jiān)測中。油井一般都分布在地貌復(fù)雜的區(qū)域,地處偏遠(yuǎn),使得控制臺和油井之間的通信十分不方便。采取人工到現(xiàn)場進(jìn)行檢查、人工采集數(shù)據(jù)這種落后的方式將需要大量的人力,不能較好地維護(hù)生產(chǎn)設(shè)備的良好運(yùn)轉(zhuǎn)。采取有線通信的方式則需要鋪設(shè)相關(guān)的電纜,其維護(hù)也需要不少的人力物力。種種客觀條件都說明,采取無線通信的方式來傳輸數(shù)據(jù)是最好的選擇。采用GSM網(wǎng)進(jìn)行無線通信既可以避免傳統(tǒng)的有線通信方式在構(gòu)建系統(tǒng)時的布線問題,從而降低了成本,又可以遠(yuǎn)距離通信,使系統(tǒng)的構(gòu)建變得容易和快捷。另外,采用基于GSM網(wǎng)的分布式測控可以實(shí)現(xiàn)作業(yè)現(xiàn)場的無人工作,在控制端就可以對所有的現(xiàn)場作業(yè)點(diǎn)進(jìn)行測控。
系統(tǒng)主要由中央主控制系統(tǒng)、通信系統(tǒng)和現(xiàn)場測控系統(tǒng)3部分組成,如圖1所示。其中最關(guān)鍵的是通信系統(tǒng)的選取設(shè)計(jì),本系統(tǒng)采取GSM網(wǎng)的GPRS通用分組無線數(shù)據(jù)傳輸業(yè)務(wù)來實(shí)現(xiàn)無線數(shù)據(jù)的傳輸。
圖1 分布式測控系統(tǒng)的組成
該系統(tǒng)主要是針對油井現(xiàn)場工況的遠(yuǎn)程測控,各個油井之間以及油井與測控中心都離得較遠(yuǎn),并且油井所處的環(huán)境都很艱苦。所以需要選擇一種合適的通信方式,來實(shí)現(xiàn)中央主控制系統(tǒng)對各個油井的現(xiàn)場工作情況進(jìn)行遠(yuǎn)程測控,以及實(shí)現(xiàn)二者之間的數(shù)據(jù)傳輸。
從分布式測控系統(tǒng)的通信手段來看,分為基于有線通信的和基于無線通信的兩種?;谟芯€通信的分布式測控系統(tǒng)主要采取的方式有專線(如電纜)、公用電話網(wǎng)、光纖以及Internet-Intranet。這些方式的成本都很高,因?yàn)槎家婕颁佋O(shè)電纜或者光纖,既需要消耗時間并且這些有線設(shè)備還需要相關(guān)人員對其進(jìn)行維護(hù),這些無疑都增加了不小的成本。而第二種基于無線通信的分布式測控系統(tǒng),無線通信技術(shù)方面有紅外技術(shù)、藍(lán)牙技術(shù)、802.11b無線局域網(wǎng)標(biāo)準(zhǔn)技術(shù)等,但這些技術(shù)都只適合短距離的無線通信,針對地理位置相對較為分散的測控系統(tǒng),如油井工況監(jiān)測系統(tǒng)、地下水位監(jiān)測等,就不合適了。此外,當(dāng)測控對象對實(shí)時性要求不高,定時、間斷上傳數(shù)據(jù)或只有當(dāng)接收到控制端的指令后才進(jìn)行相應(yīng)的操作,且向控制端傳送數(shù)據(jù)采用查詢方式工作,采用GSM網(wǎng)進(jìn)行通信將是最好的選擇。
全球移動通信系統(tǒng)(Global System for Mobile communications,GSM)是目前基于時分多址技術(shù)的移動通信體制中最成熟、最完善、應(yīng)用最廣的一種系統(tǒng),我國目前已建成了覆蓋全國的GSM(數(shù)字蜂窩移動通信網(wǎng)),是公眾陸地移動通信的主要方式。它提供多種業(yè)務(wù),主要有話音、短消息、數(shù)據(jù)業(yè)務(wù)等。數(shù)據(jù)業(yè)務(wù)中的GPRS(General Packet Radio Service,通用分組無線業(yè)務(wù)),是在GSM 網(wǎng)絡(luò)的基礎(chǔ)上進(jìn)行的軟件升級,采用了分組交換技術(shù),可提供高速無線IP或X.25服務(wù)。為了實(shí)現(xiàn)數(shù)據(jù)承載,GPRS網(wǎng)在GSM網(wǎng)中增加SGSN(SGSN業(yè)務(wù)支持節(jié)點(diǎn))和GGSN(GPRS網(wǎng)關(guān)支持節(jié)點(diǎn))以及 PCU和其他輔助數(shù)據(jù)業(yè)務(wù)管理和應(yīng)用的單元,如DNS和DHCP服務(wù)器、網(wǎng)絡(luò)時間協(xié)議(NTP)、計(jì)費(fèi)網(wǎng)關(guān)(CG)等。GPRS的設(shè)計(jì)使得它既能支持間歇的爆發(fā)式數(shù)據(jù)傳輸又能支持偶爾的大量數(shù)據(jù)的傳輸,能在0.5~1 s內(nèi)恢復(fù)數(shù)據(jù)的重新傳輸。GPRS的計(jì)費(fèi)一般以數(shù)據(jù)傳輸量為依據(jù)。[1]
隨著GSM網(wǎng)應(yīng)用的發(fā)展,市場上就出現(xiàn)了許多工業(yè)級的GSM模塊和GPRS模塊。GR64是Sony Ericsson公司最新推出的一款內(nèi)嵌TCP/IP協(xié)議棧的GSM/GPRS模塊,可向下兼容GR47,內(nèi)嵌的ARM9 CPU可以開放給用戶。GR64的存儲資源非常豐富:256 KB的腳本空間可同時容納2個腳本,在CSD方式下腳本可以遠(yuǎn)程升級;至少50 KB的數(shù)據(jù)NVM空間和100 KB的RAM;豐富的功能庫涵蓋所有的底層驅(qū)動,用戶只需編寫自己的應(yīng)用程序。GR64提供的接口也很豐富:對外有2個自適應(yīng)波特率和幀格式的串口,其中UART 1用于AT命令控制或本地腳本下載,UART 3是通用串口;另外,還有USB2.0可用于模塊自身固件升級和腳本調(diào)試信息的輸出,SPI、I2C、天線、音頻接口、12根I/O線(8根復(fù)用)、AD/DA轉(zhuǎn)換器、蜂鳴器和實(shí)時時鐘等內(nèi)置外設(shè)[2]。
系統(tǒng)的通信部分的組成如圖1所示?,F(xiàn)場測控系統(tǒng)的GR64無線模塊上電后自動運(yùn)行已下載的通信腳本,獲得GSM網(wǎng)提供商分配的動態(tài)IP地址,把此IP地址發(fā)送給已連接Internet網(wǎng)的PC上位機(jī)進(jìn)行通信連接,連接成功后現(xiàn)場測控系統(tǒng)便可以和中央主控制系統(tǒng)進(jìn)行無線數(shù)據(jù)通信。中央主控制系統(tǒng)通過GSM網(wǎng)發(fā)送相關(guān)的控制指令給現(xiàn)場測控系統(tǒng)?,F(xiàn)場測控系統(tǒng)接收到指令后就把采集的數(shù)據(jù)進(jìn)行處理后傳輸?shù)紾R64無線模塊,再由GR64無線模塊通過GSM網(wǎng)的GPRS業(yè)務(wù)傳送給中央主控制系統(tǒng)進(jìn)行處理。通信腳本的實(shí)現(xiàn)采取GR64無線模塊的內(nèi)嵌腳本方式,將編寫好的無線通信控制程序通過UART 1接口下載到模塊內(nèi)部的非易失性存儲空間中,采用模塊內(nèi)嵌的ARM9控制完成IP連接和數(shù)據(jù)傳輸。
系統(tǒng)控制部分主要有2種實(shí)現(xiàn)方式。第1種方式是由遠(yuǎn)程的上位PC機(jī)和無線模塊組成,上位PC機(jī)和無線模塊之間的數(shù)據(jù)通過RS232或RS485進(jìn)行通信。但是這種方式和后面的數(shù)據(jù)采集端的無線模塊不好連接。因?yàn)闊o線模塊是由無線網(wǎng)絡(luò)提供商及移動分配的動態(tài)IP和上位機(jī)連接的,當(dāng)采用這種方式時上位機(jī)也是由提供商分配的動態(tài)IP,這樣兩端的動態(tài)IP不容易連接成功,需要通過動態(tài)域名解析。第2種方式只需遠(yuǎn)程的PC上位機(jī)接入Internet網(wǎng)即可,連上Internet網(wǎng)后就有1個固定的IP地址。首先把PC機(jī)的端口對外網(wǎng)開放,并運(yùn)行端口監(jiān)聽程序。通信時,先由無線模塊向中央控制端IP地址發(fā)起連接,中央控制端監(jiān)聽到有動態(tài)IP連入后就立即響應(yīng),并將無線模塊的動態(tài)IP地址記入地址數(shù)據(jù)庫,然后就建立起了雙向通信通道。這樣,中央控制端就可以接收數(shù)據(jù),或者向現(xiàn)場測控系統(tǒng)發(fā)送控制命令,進(jìn)行遠(yuǎn)程測控。
現(xiàn)場測控系統(tǒng)部分一般的實(shí)現(xiàn)方法是,由微控制器控制數(shù)據(jù)的采集,把采集到的數(shù)據(jù)通過 RS232傳輸給外接的無線模塊,再由無線模塊發(fā)送給上位機(jī)。但是這種方法無法實(shí)現(xiàn)數(shù)據(jù)采集部分的單片化,成本高。在本系統(tǒng)中選擇無線模塊GR64來實(shí)現(xiàn)無線通信,并且不需要外接微控制器和A/D轉(zhuǎn)換器,直接用GR64模塊內(nèi)嵌的ARM9 CPU和自帶的A/D轉(zhuǎn)換器。在本文中主要介紹硬件的實(shí)現(xiàn),現(xiàn)場測控系統(tǒng)的組成如圖2所示。系統(tǒng)的硬件電路原理圖如圖3所示。
圖2 現(xiàn)場測控系統(tǒng)框圖
圖3 系統(tǒng)硬件電路原理圖
GR64模塊有內(nèi)部腳本方式和外部控制器方式兩種開發(fā)方式。這里采取內(nèi)部腳本方式,直接采用模塊開放給用戶的CPU和系統(tǒng)資源。GR64模塊有配套的開發(fā)環(huán)境M2mpower IDE,只需在開發(fā)環(huán)境中用GR64支持的類C語言編寫所要實(shí)現(xiàn)的應(yīng)用系統(tǒng)的腳本,編寫完后在開發(fā)環(huán)境中把腳本在開發(fā)環(huán)境中調(diào)試,調(diào)試無誤就可以通過串口UART 1把腳本下載到GR64中,在開發(fā)環(huán)境中設(shè)置為上電自動運(yùn)行即可。但是要把腳本下載到GR64模塊中,需要通過PC機(jī)的串口來和GR64模塊的串口UART 1進(jìn)行數(shù)據(jù)傳輸。但是GR64模塊的串口UART1是2.75 V的CMOS電平和PC機(jī)的串口標(biāo)準(zhǔn)RS232電平不匹配,所以要采用標(biāo)準(zhǔn)的集成電路芯片MAX3241來進(jìn)行電平匹配。系統(tǒng)采取全9針的接法,以便實(shí)驗(yàn)系統(tǒng)中硬件流的控制。
系統(tǒng)的無線數(shù)據(jù)傳輸是基于GSM網(wǎng)的GPRS實(shí)現(xiàn)的,因此必須有1張GSM卡,并且得開通GPRS業(yè)務(wù)。因?yàn)檫@款GR64模塊沒有自帶SIM卡卡槽,所以就得設(shè)計(jì)卡槽電路。因?yàn)镾IM卡是通過卡面上的銅制觸點(diǎn)來連接卡內(nèi)的邏輯電路和移動終端設(shè)備,通常芯片與移動設(shè)備連接只需要6個觸點(diǎn),即數(shù)據(jù)端口I/O、可編程口、接地端、時鐘CLK、復(fù)位RST和電源VCC,所以SIM卡槽的連接也有6條連線必須連接。其中SIM卡插座從GR64的引腳SIMVCC取電,可以兼容1.8 V和3.0 V兩種SIM卡。在實(shí)際應(yīng)用中,不管是插入還是取出SIM卡之前,必須保證不帶靜電,所以要先關(guān)掉設(shè)備,千萬不要觸摸SIM卡插座的連接器,以免釋放電流損害設(shè)備或SIM卡??ú鄣腟IMDET引腳是用來檢測有無SIM卡插入,當(dāng)檢測到已經(jīng)插入SIM卡后便開始注冊GSM網(wǎng)。GR64模塊和SIM卡之間的數(shù)據(jù)通信通過卡槽的I/O腳實(shí)現(xiàn),SIMRST和SIMCLK分別為SIM卡復(fù)位信號腳和時鐘引腳。
另外在系統(tǒng)的硬件電路中還設(shè)計(jì)了3個指示燈,其中與圖3中的TX-ON引腳連接的發(fā)光二極管指示與GPRS網(wǎng)絡(luò)的交互狀態(tài),與LED引腳連接的發(fā)光二極管指示模塊GSM網(wǎng)絡(luò)注冊狀態(tài),另外一個發(fā)光二極管指示電源狀態(tài)。
對系統(tǒng)現(xiàn)場機(jī)電設(shè)備或控制開關(guān)的控制可以直接采用無線GR64模塊的數(shù)字I/O。這些數(shù)字I/O可以通過AT命令或采取模塊支持的類C語言編程來設(shè)置為輸入或輸出。GR64模塊自帶4路采樣精度為10位的A/D轉(zhuǎn)換器。在該系統(tǒng)中,現(xiàn)場傳感器采集到的模擬數(shù)據(jù)信號經(jīng)過信號調(diào)理電路調(diào)理好后,模擬數(shù)據(jù)信號需要經(jīng)過A/D轉(zhuǎn)換器轉(zhuǎn)換為數(shù)字信號進(jìn)入無線GR64模塊,通過無線模塊發(fā)送給中央控制中心。由于本系統(tǒng)要求的精度不是很高,模塊自帶的10位A/D轉(zhuǎn)換器滿足系統(tǒng)的要求,所以在實(shí)現(xiàn)系統(tǒng)的數(shù)據(jù)A/D轉(zhuǎn)換時直接用GR64模塊自帶的A/D轉(zhuǎn)換器即可。ADIN1~3為專門的ADC,ADIN 4和GPIO 5復(fù)用,ADC轉(zhuǎn)換完后存儲在無線CPU內(nèi)部的寄存器里。當(dāng)無線CPU接收到適當(dāng)?shù)腁T命令后,就讀取存儲在寄存器里的值。讀取 A/D轉(zhuǎn)換器的值的AT命令為AT*E2IO。該命令的格式為:
AT*E2IO=<o(jì)p>,<io>,[<adc_val>]
<o(jì)p>的取值分別為:0為讀,1為寫,2為配置,3為配置檢查,4為觸發(fā),5為觸發(fā)檢查。
<io>為具體I/O或ADC的名字:當(dāng)為IO 1~I(xiàn)O25、IO28~I(xiàn)O41時,表示通用可配置數(shù)字I/O,支持所有6種操作。當(dāng)為IO26、IO27時,表示通用可配置數(shù)字I/O,支持0、1、2、3四種操作。當(dāng)為 AD1~AD4時,表示 A/D 轉(zhuǎn)換器輸入,只支持讀操作。
<adc_val>表示ADC的輸入值,當(dāng)該指令到達(dá),十進(jìn)制模擬電壓值就轉(zhuǎn)換為1個10位二進(jìn)制值輸入。
以ADIN1為例,實(shí)現(xiàn)的AT命令為:
AT*E2IO=0,“AD1”
*E2IO:0,“AD1” ,,62
OK
但是GR64模塊自帶的ADC轉(zhuǎn)換器的采樣需要5個時鐘周期,所以實(shí)際最大的采樣率為20 ksps左右。在硬件電路的設(shè)計(jì)中把A/D轉(zhuǎn)換器用4個插針式插座引出,方便本系統(tǒng)適用于各種應(yīng)用。
系統(tǒng)中GR64工作于內(nèi)部腳本方式,利用集成開發(fā)環(huán)境M2mpower IDE把腳本程序通過串口UART1下載到模塊的內(nèi)部腳本空間,并設(shè)置為上電自動運(yùn)行。因此,在硬件的實(shí)現(xiàn)中串口是全9針串口,否則當(dāng)有新腳本下載到模塊內(nèi)并讓新腳本運(yùn)行,當(dāng)模塊重啟,會自動重新運(yùn)行原先的舊腳本。用全9針串口可以在開發(fā)環(huán)境中把舊腳本刪除。無線數(shù)據(jù)傳輸模塊上電完成GSM網(wǎng)絡(luò)注冊后,腳本開始自動運(yùn)行。先從數(shù)據(jù)NVM中讀出相關(guān)參數(shù),初始化后按預(yù)定運(yùn)行。參數(shù)包括GPRS接入點(diǎn)APN(GA:cmnet)、ADC的采樣頻率和采樣源、上位機(jī)服務(wù)器的IP和端口號、通信協(xié)議(CP:TCP/UDP/SMS)、激活模式下無數(shù)據(jù)傳輸斷網(wǎng)時間間隔(在這設(shè)為IT:30 min)、TCP通信方式下的工作模式(實(shí)時在線/短信激活)、連續(xù)登陸失敗停止登陸次數(shù)(在系統(tǒng)中設(shè)為10次)??梢酝ㄟ^短信遠(yuǎn)程更改參數(shù),通過通信串口方式及短信方式控制模塊上下線和軟件重啟動。
在腳本開發(fā)中,需要先調(diào)用atcrt()函數(shù)創(chuàng)建內(nèi)部AT命令通道[3],然后調(diào)用atsnd()發(fā)送AT指令完成模塊與GPRS網(wǎng)絡(luò)的IP連接,并獲取GSM網(wǎng)給分配的動態(tài)IP地址,再調(diào)用atdst()關(guān)閉AT命令通道。獲取動態(tài)IP后,調(diào)用模塊內(nèi)部的IP Library函數(shù)[4],與上位機(jī)服務(wù)器建立TCP連接,完成數(shù)據(jù)的傳送。具體進(jìn)程為先激活PDP,調(diào)用pdpatt(1),pdpa(1,1)激活PDP Context,然后調(diào)用ipo(CM,&ScNm)函數(shù)來選擇IP連接類型,其中CM=1為TCP,CM=0為 UDP。在本系統(tǒng)的進(jìn)程中為ipo(1,&tcpSocket),如果選擇UDP方式,此時就可以透明傳輸U(kuò)DP數(shù)據(jù)。然后調(diào)用tcpc(tcpSocket,port,ipAddress,pdpContext)函數(shù)向服務(wù)器發(fā)起TCP連接。TCP連接成功后就可以向服務(wù)器傳送數(shù)據(jù)了。數(shù)據(jù)傳送結(jié)束后,程序先調(diào)用ipc(char socknum)函數(shù)關(guān)閉IP,然后調(diào)用pdpatt(int attach)函數(shù)來與GPRS網(wǎng)絡(luò)分開,最后調(diào)用pdpcont()函數(shù)斷開PDP連接。
考慮到GPRS業(yè)務(wù)有可能會出現(xiàn)長期掉線,導(dǎo)致現(xiàn)場測控系統(tǒng)的數(shù)據(jù)無法傳送給中央控制中心的問題,在設(shè)計(jì)中出現(xiàn)此種情況時,系統(tǒng)將通過短信的形式給相關(guān)的工作人員進(jìn)行報(bào)警并向中央控制系統(tǒng)傳送數(shù)據(jù)。
實(shí)驗(yàn)表明,本系統(tǒng)能較穩(wěn)定和較快地傳輸數(shù)據(jù),偶爾由于GSM網(wǎng)信號的原因數(shù)據(jù)傳輸速度會比較慢。GR64內(nèi)嵌的 TCP/IP協(xié)議棧讓終端與In ternet的連接無比方便,大大縮短了系統(tǒng)的開發(fā)時間。GR64模塊自帶的A/D轉(zhuǎn)換器的精度滿足系統(tǒng)的要求。由于是應(yīng)用GR64模塊內(nèi)的ARM9來控制腳本的運(yùn)行,所以模塊一旦掉線,會自動快速重新連接。由于該系統(tǒng)的所有功能都集成在GR64模塊內(nèi),所以硬件結(jié)構(gòu)非常簡潔,降低了開發(fā)成本和設(shè)備故障率,使用范圍非常廣泛,可以應(yīng)用于各種遠(yuǎn)程數(shù)據(jù)采集、遠(yuǎn)程監(jiān)控系統(tǒng)中。
[1]文志成.通用分組無線業(yè)務(wù)——GPRS[M].北京:電子工業(yè)出版社,2004:4-5.
[2]Sony Ericsson.Integrators Manual GR64 GSM/GPRS Wireless CPU,2006.
[3]Sony Ericsson.User Manual AT Command Manual for GR64&GS64 Wireless CPU,2007.
[4]Sony Ericsson.Languages and Libraries for the M2m power Editor,2006.
[5]梁娟,王典洪,熊月華.基于GR64模塊的通用GPRS數(shù)傳單元設(shè)計(jì)[J].新器件新技術(shù),2007(2).
[6]Sony Ericsson.M2M power Application Guide R2A,2006.