尹志勇 邵天章 邢婭浪
(軍械工程學院電氣工程系,河北 石家莊 050003)
移動電站具有工作地點不確定、工作環境惡劣等特點,在很多情況下,相關負責人一方面要關心移動電站當前的運行狀態與警報情況,另一方面卻又無法保證對所有移動電站的實時跟進。目前,大量電站均安裝了智能控制系統,可實時檢測各種運行狀態參數,產生相應的報警保護,為遠程狀態監控提供了可能。普通的無線數據傳輸設備受到裝置復雜昂貴、傳輸距離短、抗干擾能力弱等多方面因素的制約,基本不能滿足使用要求。
全球移動通信系統(global system for mobile communication,GSM)是目前移動通信體制中比較成熟、完善且應用比較廣泛的一種技術[1]。該技術可傳輸各種監測數據和控制命令,現已廣泛應用于遠程監控、定位導航、個人通信終端等領域[2]。因此,將GSM技術與電站智能控制系統相結合,可以很好地解決電站裝備遠程狀態信息無線獲取的問題。
移動電站運行狀態信息需由前端檢測設備(通常為智能控制系統)獲取。智能控制系統可與GSM模塊相結合或采取一體化設計。系統主要由數據采集模塊、CPU模塊、人機交互模塊、報警輸出模塊、控制輸出模塊、GSM通信模塊等模塊構成[3],其結構如圖1所示。

圖1 系統結構框圖Fig.1 Structure of the system
數據采集模塊將移動電站待測參數通過傳感器、電子開關、調理電路、A/D轉換等電路,將模擬信號轉換為數字信號,并上傳給CPU模塊。檢測參數一般包括電站輸出電壓、輸出電流、電壓頻率、功率、發動機轉速、溫度、機油壓力、電平電壓等[4]。
CPU模塊是系統檢測控制中樞,可根據程序設定與外設進行數據交換。本系統選用的STC12C5410單片機,是美國STC公司在8051單片機標準內核基礎上改進推出的一款具有增強型功能的單片機。該單片機芯片從引腳到指令完全與8051相兼容,可采用C51語言進行程序開發[5]。
人機交互模塊包括鍵盤與液晶兩部分。鍵盤便于用戶進行各項功能控制,如系統參數設置、電站的啟動/停機控制等,硬件設計可采用專用鍵盤芯片;液晶能實時顯示各種被測參數數值、波形、報警等信息,使人機交互更加友好。
輸出模塊包括報警輸出與控制輸出兩部分。當移動電站的某項參數值超過預設閾值時,報警輸出模塊將產生聲、光、電等多種形式的警報。控制輸出模塊是實現移動電站啟動/停機、在線編程等功能的主要執行機構,一般由多個繼電器及相應驅動電路組成[6]。
GSM通信模塊可實現移動電站遠程數據傳輸功能。下文將作重點介紹,在此不再贅述。
系統選用捷麥公司G100系列的G100A型短信息收發模塊。模塊管腳定義如圖2所示。

圖2 G100A型GSM通信模塊管腳圖Fig.2 Pins of G100A GSM communication module
由圖2可知,系統采用VCC直流正電源輸入,范圍為5~15 VDC。其中,GND為直流電源地;RXD為模塊串口接收端,與微處理器的TXD端相連;TXD為模塊串口發送端,與微處理器的RXD端相連;DSR、DTR為模式2指示串口數據端。
G100A型GSM通信模塊可在模式1和模式2兩種方式下工作。在模式1下,GSM通信模塊與上位機連線采用三線制串口連接,沒有其他任何握手和數據流控制線;連接方式簡單,除電源外不需任何外圍輔助電路。模式1下GSM通信模塊與上位機連線圖如圖3所示。

圖3 模式1下連線圖Fig.3 Connections under working mode 1
模式2為GSM短信息透明傳輸方式。由于在部分應用場合,用戶所用的上位機是成熟產品,無法改變其內在的通信程序及通信幀格式,使得模式1的應用受到了很大的限制。在模式2下,用戶可以不改變原有上位機的通信幀格式,直接將其與GSM模塊相連接,如使用Modbus等規約信令。G100A型GSM通信模塊與上位機連線通常采用五線制的連接方式,即TXD、RXD、GND三條線傳輸信息內容,DSR、DTR兩條線指示信息性質。無論信息是從上位機還是從GSM模塊發出,都是無格式的,其內容是數據還是命令通過DTR和DSR兩條線上的電平狀態進行識別。DTR與DSR兩條線的信號狀態采取正邏輯,“1”代表數據,“0”代表命令。其中DTR由上位機控制,GSM模塊讀取其狀態;DSR與之相反,由GSM模塊進行控制,上位機讀取其狀態。模式2下的連線圖如圖4所示。

圖4 模式2下連線圖Fig.4 Connections under working mode 2
系統采取模式1的工作方式,因此只討論在模式1下GSM模塊與上位機(微處理器)間的通信幀格式。數據的傳輸采用單片機串行通信方式1,即傳輸字節格式為1個起始位、8個數據位和1個停止位,無校驗位,串口速率為多速率可編程。
GSM模塊與上位機間通信的內容是由多個字節組成的數據包,數據包的基本格式為0xD7+控制字節+信息。其中,0xD7為包頭,是上位機與GSM模塊間傳輸數據包的起始字節;控制字節表明此數據包類型,當控制字節大于147 B時,其類型為命令,否則為數據。命令可由上位機通過串口發送給GSM模塊,控制其執行一定的動作;也可由GSM模塊發出向上位機報送模塊內的相關參數或狀態信息。數據指的是上位機與GSM模塊間傳輸的有效信息,主要包括電站當前狀態參數、警報信息以及用戶通過手機短息發來的查詢命令等。
當數據包的控制字節小于147 B時,其類型為數據。這里規定數據包由上位機發出、GSM模塊接收的為發送信息,反之則為接收信息。
①發送信息。發送信息的數據包格式如圖5所示。

圖5 發送信息的數據包格式Fig.5 Format of data packet of sending information
圖5中,UDL表示待發送的除包頭0xD7外總的數據長度,包括STA、UD和它本身的字節長度,且STA和UDL的字節長度一般是固定的。STA表示接收方的電話號碼,即目的地址。STA長度一般為6個8位二進制字節,每個字節中高4位和低4位分別用BCD碼表示1位十進制數,這樣每個字節可表示2位號碼,6個字節共可表示12位號碼。由于現行的電話號碼為11位,在實際傳輸時需在號碼前加0,以補足12位。UD表示上位機發送的有效數據,其總長度最大為140個字節,有效數據包括漢字、數字、字母及各種符號。發送時漢字需轉換成Unicode碼,其他字符轉換成ASCII碼。
②接收信息。接收信息的數據包格式如圖6所示。

圖6 接收信息的數據包格式Fig.6 Format of data packet of receiving information
這里的UDL和UD與發送信息含義相同,SOA為外部發送方的電話號碼,即源地址,轉換方法與前面一致。DATE為短信中心收到短信的時間,即發送方發送短信時間,其包括6個字節的BCD碼,依次是年、月、日、時、分、秒。需注意的是,UDL的數值不包括這6個字節。
當數據包的控制字節大于147 B時,其類型為命令。命令的數據包格式為0xD7+控制字節+參數。
系統軟件設計主要基于Keil軟件平臺。Keil軟件支持幾乎所有MCS51架構的芯片,并且集編輯、編譯、仿真等多項功能于一體,同時支持匯編語言和C語言程序設計[7]。在此,重點介紹與GSM模塊相關的程序設計。該部分程序主要實現對GSM模塊的上電初始化以及模塊與上位機(微處理器)間的通信。程序流程如圖7所示。
系統上電后,GSM模塊內部進行初始化,主要檢測無線信號強度,并登錄GSM網絡[8],時間大概為20 s。當收到信息獲取命令時,GSM模塊通過上位機取得當前電站參數狀態信息,經GSM網絡以短信的形式將電站當前狀態信息發送至用戶手機。模塊發送短信后無論成功或失敗都將返回一個標志碼給上位機。如發送失敗,上位機可選擇重發,直至短信發送成功。當電站產生報警信息后,微處理器將報警信息(如超速停機)發送給GSM模塊,GSM模塊接收到報警信息后,將其以短信息形式通過無線網絡發送到指定用戶的手機上。

圖7 GSM模塊程序流程圖Fig.7 Flowchart of GSM module program
發送程序的主要功能是實現上位機對GSM模塊的數據通信。如收到用戶發來的電站狀態獲取命令或電站產生報警信息時,上位機按照相應通信幀格式將數據信息發送至GSM模塊,再由GSM模塊將該信息以短信形式傳遞至指定用戶手機。部分程序如下。

接收程序的主要功能是實現GSM模塊對上位機的數據通信。當GSM模塊接收到用戶以短信形式發來的電站狀態信息獲取命令時,其在模塊內部自動將短信內容進行轉換,然后按照相應通信幀格式將命令信息發送至上位機,上位機根據接收的命令內容完成相應操作。


基于GSM模塊的遠程監控系統現已在多部移動電站上得到了實際應用,用戶可通過手機在任何時間、任何地點查詢指定編號移動電站的當前運行狀態信息,同時也能夠在第一時間掌握電站警報情況,甚至可以遠程控制移動電站啟動/停機,使用效果達到了預期目標。在實際應用中也發現了一些問題,如網絡信號較差時,短信收發延時情況較為明顯。相信通過GSM模塊無線發射功率的增強,以及無線網絡通信基站覆蓋范圍的不斷加大,這些問題均能得到很大改善。
[1]陳琦,丁天懷,李成,等.基于GPRS/GSM的低功耗無線遠程測控終端設計[J].清華大學學報:自然科學版,2009,49(2):223 -225.
[2]胡金鳳,鄭萍,吳擁,等.基于GSM的PLC車載遠程控制系統設計[J].自動化儀表,2011,32(4):36 -39.
[3]邢婭浪,趙錦成,尹志勇.基于W77E58的電站裝備運行記錄儀的設計[J].移動電源與車輛,2008(2):17-19.
[4]尹志勇,劉洪文,劉金寧.基于PM50語音芯片的電站遠程語音提示系統[J].移動電源與車輛,2009(2):7 -10.
[5]邢婭浪,趙錦成,孫世宇.基于STC系列單片機的SPWM波形實現[J].國外電子測量技術,2009(12):51-53.
[6]邵天章,谷志峰,尹志勇,等.移動電站通用控制系統設計[J].移動電源與車輛,2009(4):21-23.
[7]馬忠梅.單片機C語言應用程序設計[M].北京:北京航空航天大學出版社,2003:158-164.
[8]馬玉春,孫冰,王建明.GSM模塊的綜合應用研究[J].計算機應用與軟件,2008,25(2):68 -70.