張林,吳伯農
(北方工業大學機電工程學院,北京 100144)
張林(碩士研究生),主要研究領域為通信電子和測控。
隨著計算機和通信技術的發展,分布式測控系統的應用范圍越來越廣,特別是在油井工況的監測中。油井一般都分布在地貌復雜的區域,地處偏遠,使得控制臺和油井之間的通信十分不方便。采取人工到現場進行檢查、人工采集數據這種落后的方式將需要大量的人力,不能較好地維護生產設備的良好運轉。采取有線通信的方式則需要鋪設相關的電纜,其維護也需要不少的人力物力。種種客觀條件都說明,采取無線通信的方式來傳輸數據是最好的選擇。采用GSM網進行無線通信既可以避免傳統的有線通信方式在構建系統時的布線問題,從而降低了成本,又可以遠距離通信,使系統的構建變得容易和快捷。另外,采用基于GSM網的分布式測控可以實現作業現場的無人工作,在控制端就可以對所有的現場作業點進行測控。
系統主要由中央主控制系統、通信系統和現場測控系統3部分組成,如圖1所示。其中最關鍵的是通信系統的選取設計,本系統采取GSM網的GPRS通用分組無線數據傳輸業務來實現無線數據的傳輸。

圖1 分布式測控系統的組成
該系統主要是針對油井現場工況的遠程測控,各個油井之間以及油井與測控中心都離得較遠,并且油井所處的環境都很艱苦。所以需要選擇一種合適的通信方式,來實現中央主控制系統對各個油井的現場工作情況進行遠程測控,以及實現二者之間的數據傳輸。
從分布式測控系統的通信手段來看,分為基于有線通信的和基于無線通信的兩種。基于有線通信的分布式測控系統主要采取的方式有專線(如電纜)、公用電話網、光纖以及Internet-Intranet。這些方式的成本都很高,因為都要涉及鋪設電纜或者光纖,既需要消耗時間并且這些有線設備還需要相關人員對其進行維護,這些無疑都增加了不小的成本。而第二種基于無線通信的分布式測控系統,無線通信技術方面有紅外技術、藍牙技術、802.11b無線局域網標準技術等,但這些技術都只適合短距離的無線通信,針對地理位置相對較為分散的測控系統,如油井工況監測系統、地下水位監測等,就不合適了。此外,當測控對象對實時性要求不高,定時、間斷上傳數據或只有當接收到控制端的指令后才進行相應的操作,且向控制端傳送數據采用查詢方式工作,采用GSM網進行通信將是最好的選擇。
全球移動通信系統(Global System for Mobile communications,GSM)是目前基于時分多址技術的移動通信體制中最成熟、最完善、應用最廣的一種系統,我國目前已建成了覆蓋全國的GSM(數字蜂窩移動通信網),是公眾陸地移動通信的主要方式。它提供多種業務,主要有話音、短消息、數據業務等。數據業務中的GPRS(General Packet Radio Service,通用分組無線業務),是在GSM 網絡的基礎上進行的軟件升級,采用了分組交換技術,可提供高速無線IP或X.25服務。為了實現數據承載,GPRS網在GSM網中增加SGSN(SGSN業務支持節點)和GGSN(GPRS網關支持節點)以及 PCU和其他輔助數據業務管理和應用的單元,如DNS和DHCP服務器、網絡時間協議(NTP)、計費網關(CG)等。GPRS的設計使得它既能支持間歇的爆發式數據傳輸又能支持偶爾的大量數據的傳輸,能在0.5~1 s內恢復數據的重新傳輸。GPRS的計費一般以數據傳輸量為依據。[1]
隨著GSM網應用的發展,市場上就出現了許多工業級的GSM模塊和GPRS模塊。GR64是Sony Ericsson公司最新推出的一款內嵌TCP/IP協議棧的GSM/GPRS模塊,可向下兼容GR47,內嵌的ARM9 CPU可以開放給用戶。GR64的存儲資源非常豐富:256 KB的腳本空間可同時容納2個腳本,在CSD方式下腳本可以遠程升級;至少50 KB的數據NVM空間和100 KB的RAM;豐富的功能庫涵蓋所有的底層驅動,用戶只需編寫自己的應用程序。GR64提供的接口也很豐富:對外有2個自適應波特率和幀格式的串口,其中UART 1用于AT命令控制或本地腳本下載,UART 3是通用串口;另外,還有USB2.0可用于模塊自身固件升級和腳本調試信息的輸出,SPI、I2C、天線、音頻接口、12根I/O線(8根復用)、AD/DA轉換器、蜂鳴器和實時時鐘等內置外設[2]。
系統的通信部分的組成如圖1所示。現場測控系統的GR64無線模塊上電后自動運行已下載的通信腳本,獲得GSM網提供商分配的動態IP地址,把此IP地址發送給已連接Internet網的PC上位機進行通信連接,連接成功后現場測控系統便可以和中央主控制系統進行無線數據通信。中央主控制系統通過GSM網發送相關的控制指令給現場測控系統。現場測控系統接收到指令后就把采集的數據進行處理后傳輸到GR64無線模塊,再由GR64無線模塊通過GSM網的GPRS業務傳送給中央主控制系統進行處理。通信腳本的實現采取GR64無線模塊的內嵌腳本方式,將編寫好的無線通信控制程序通過UART 1接口下載到模塊內部的非易失性存儲空間中,采用模塊內嵌的ARM9控制完成IP連接和數據傳輸。
系統控制部分主要有2種實現方式。第1種方式是由遠程的上位PC機和無線模塊組成,上位PC機和無線模塊之間的數據通過RS232或RS485進行通信。但是這種方式和后面的數據采集端的無線模塊不好連接。因為無線模塊是由無線網絡提供商及移動分配的動態IP和上位機連接的,當采用這種方式時上位機也是由提供商分配的動態IP,這樣兩端的動態IP不容易連接成功,需要通過動態域名解析。第2種方式只需遠程的PC上位機接入Internet網即可,連上Internet網后就有1個固定的IP地址。首先把PC機的端口對外網開放,并運行端口監聽程序。通信時,先由無線模塊向中央控制端IP地址發起連接,中央控制端監聽到有動態IP連入后就立即響應,并將無線模塊的動態IP地址記入地址數據庫,然后就建立起了雙向通信通道。這樣,中央控制端就可以接收數據,或者向現場測控系統發送控制命令,進行遠程測控。
現場測控系統部分一般的實現方法是,由微控制器控制數據的采集,把采集到的數據通過 RS232傳輸給外接的無線模塊,再由無線模塊發送給上位機。但是這種方法無法實現數據采集部分的單片化,成本高。在本系統中選擇無線模塊GR64來實現無線通信,并且不需要外接微控制器和A/D轉換器,直接用GR64模塊內嵌的ARM9 CPU和自帶的A/D轉換器。在本文中主要介紹硬件的實現,現場測控系統的組成如圖2所示。系統的硬件電路原理圖如圖3所示。

圖2 現場測控系統框圖

圖3 系統硬件電路原理圖
GR64模塊有內部腳本方式和外部控制器方式兩種開發方式。這里采取內部腳本方式,直接采用模塊開放給用戶的CPU和系統資源。GR64模塊有配套的開發環境M2mpower IDE,只需在開發環境中用GR64支持的類C語言編寫所要實現的應用系統的腳本,編寫完后在開發環境中把腳本在開發環境中調試,調試無誤就可以通過串口UART 1把腳本下載到GR64中,在開發環境中設置為上電自動運行即可。但是要把腳本下載到GR64模塊中,需要通過PC機的串口來和GR64模塊的串口UART 1進行數據傳輸。但是GR64模塊的串口UART1是2.75 V的CMOS電平和PC機的串口標準RS232電平不匹配,所以要采用標準的集成電路芯片MAX3241來進行電平匹配。系統采取全9針的接法,以便實驗系統中硬件流的控制。
系統的無線數據傳輸是基于GSM網的GPRS實現的,因此必須有1張GSM卡,并且得開通GPRS業務。因為這款GR64模塊沒有自帶SIM卡卡槽,所以就得設計卡槽電路。因為SIM卡是通過卡面上的銅制觸點來連接卡內的邏輯電路和移動終端設備,通常芯片與移動設備連接只需要6個觸點,即數據端口I/O、可編程口、接地端、時鐘CLK、復位RST和電源VCC,所以SIM卡槽的連接也有6條連線必須連接。其中SIM卡插座從GR64的引腳SIMVCC取電,可以兼容1.8 V和3.0 V兩種SIM卡。在實際應用中,不管是插入還是取出SIM卡之前,必須保證不帶靜電,所以要先關掉設備,千萬不要觸摸SIM卡插座的連接器,以免釋放電流損害設備或SIM卡。卡槽的SIMDET引腳是用來檢測有無SIM卡插入,當檢測到已經插入SIM卡后便開始注冊GSM網。GR64模塊和SIM卡之間的數據通信通過卡槽的I/O腳實現,SIMRST和SIMCLK分別為SIM卡復位信號腳和時鐘引腳。
另外在系統的硬件電路中還設計了3個指示燈,其中與圖3中的TX-ON引腳連接的發光二極管指示與GPRS網絡的交互狀態,與LED引腳連接的發光二極管指示模塊GSM網絡注冊狀態,另外一個發光二極管指示電源狀態。
對系統現場機電設備或控制開關的控制可以直接采用無線GR64模塊的數字I/O。這些數字I/O可以通過AT命令或采取模塊支持的類C語言編程來設置為輸入或輸出。GR64模塊自帶4路采樣精度為10位的A/D轉換器。在該系統中,現場傳感器采集到的模擬數據信號經過信號調理電路調理好后,模擬數據信號需要經過A/D轉換器轉換為數字信號進入無線GR64模塊,通過無線模塊發送給中央控制中心。由于本系統要求的精度不是很高,模塊自帶的10位A/D轉換器滿足系統的要求,所以在實現系統的數據A/D轉換時直接用GR64模塊自帶的A/D轉換器即可。ADIN1~3為專門的ADC,ADIN 4和GPIO 5復用,ADC轉換完后存儲在無線CPU內部的寄存器里。當無線CPU接收到適當的AT命令后,就讀取存儲在寄存器里的值。讀取 A/D轉換器的值的AT命令為AT*E2IO。該命令的格式為:
AT*E2IO=<op>,<io>,[<adc_val>]
<op>的取值分別為:0為讀,1為寫,2為配置,3為配置檢查,4為觸發,5為觸發檢查。
<io>為具體I/O或ADC的名字:當為IO 1~IO25、IO28~IO41時,表示通用可配置數字I/O,支持所有6種操作。當為IO26、IO27時,表示通用可配置數字I/O,支持0、1、2、3四種操作。當為 AD1~AD4時,表示 A/D 轉換器輸入,只支持讀操作。
<adc_val>表示ADC的輸入值,當該指令到達,十進制模擬電壓值就轉換為1個10位二進制值輸入。
以ADIN1為例,實現的AT命令為:
AT*E2IO=0,“AD1”
*E2IO:0,“AD1” ,,62
OK
但是GR64模塊自帶的ADC轉換器的采樣需要5個時鐘周期,所以實際最大的采樣率為20 ksps左右。在硬件電路的設計中把A/D轉換器用4個插針式插座引出,方便本系統適用于各種應用。
系統中GR64工作于內部腳本方式,利用集成開發環境M2mpower IDE把腳本程序通過串口UART1下載到模塊的內部腳本空間,并設置為上電自動運行。因此,在硬件的實現中串口是全9針串口,否則當有新腳本下載到模塊內并讓新腳本運行,當模塊重啟,會自動重新運行原先的舊腳本。用全9針串口可以在開發環境中把舊腳本刪除。無線數據傳輸模塊上電完成GSM網絡注冊后,腳本開始自動運行。先從數據NVM中讀出相關參數,初始化后按預定運行。參數包括GPRS接入點APN(GA:cmnet)、ADC的采樣頻率和采樣源、上位機服務器的IP和端口號、通信協議(CP:TCP/UDP/SMS)、激活模式下無數據傳輸斷網時間間隔(在這設為IT:30 min)、TCP通信方式下的工作模式(實時在線/短信激活)、連續登陸失敗停止登陸次數(在系統中設為10次)。可以通過短信遠程更改參數,通過通信串口方式及短信方式控制模塊上下線和軟件重啟動。
在腳本開發中,需要先調用atcrt()函數創建內部AT命令通道[3],然后調用atsnd()發送AT指令完成模塊與GPRS網絡的IP連接,并獲取GSM網給分配的動態IP地址,再調用atdst()關閉AT命令通道。獲取動態IP后,調用模塊內部的IP Library函數[4],與上位機服務器建立TCP連接,完成數據的傳送。具體進程為先激活PDP,調用pdpatt(1),pdpa(1,1)激活PDP Context,然后調用ipo(CM,&ScNm)函數來選擇IP連接類型,其中CM=1為TCP,CM=0為 UDP。在本系統的進程中為ipo(1,&tcpSocket),如果選擇UDP方式,此時就可以透明傳輸UDP數據。然后調用tcpc(tcpSocket,port,ipAddress,pdpContext)函數向服務器發起TCP連接。TCP連接成功后就可以向服務器傳送數據了。數據傳送結束后,程序先調用ipc(char socknum)函數關閉IP,然后調用pdpatt(int attach)函數來與GPRS網絡分開,最后調用pdpcont()函數斷開PDP連接。
考慮到GPRS業務有可能會出現長期掉線,導致現場測控系統的數據無法傳送給中央控制中心的問題,在設計中出現此種情況時,系統將通過短信的形式給相關的工作人員進行報警并向中央控制系統傳送數據。
實驗表明,本系統能較穩定和較快地傳輸數據,偶爾由于GSM網信號的原因數據傳輸速度會比較慢。GR64內嵌的 TCP/IP協議棧讓終端與In ternet的連接無比方便,大大縮短了系統的開發時間。GR64模塊自帶的A/D轉換器的精度滿足系統的要求。由于是應用GR64模塊內的ARM9來控制腳本的運行,所以模塊一旦掉線,會自動快速重新連接。由于該系統的所有功能都集成在GR64模塊內,所以硬件結構非常簡潔,降低了開發成本和設備故障率,使用范圍非常廣泛,可以應用于各種遠程數據采集、遠程監控系統中。
[1]文志成.通用分組無線業務——GPRS[M].北京:電子工業出版社,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數傳單元設計[J].新器件新技術,2007(2).
[6]Sony Ericsson.M2M power Application Guide R2A,2006.