王皓陳,王志明
WANG Hao-chen,WANG Zhi-ming
(南京理工大學 機械工程學院,南京 210094)
集散控制系統(tǒng)(Distributed control system)是以微處理器為基礎的對生產(chǎn)過程進行集中監(jiān)視、操作、管理和分散控制的集中分散控制系統(tǒng),簡稱DCS系統(tǒng)。它的主要特征是集中管理和分散控制,并且不再局限于石油、鋼鐵、化工等大型企業(yè),隨之而產(chǎn)生的是眾多的中小型集散控制系統(tǒng)[1,2]。
小型集散系統(tǒng)由一個上位機和眾多的終端組成,上位機通過通信網(wǎng)絡向終端發(fā)送命令,控制終端的工作狀態(tài)以及獲取終端采集的數(shù)據(jù)[3]。隨著無線通信技術的發(fā)展,集散系統(tǒng)中上位機與終端的通信不在局限于有線方式,取而代之的是具有更廣泛使用范圍和空間距離的無線方式,本文采用通用分組無線服務技術(General Packet Radio Service)實現(xiàn)無線通信技術與集散系統(tǒng)的結合。
集散系統(tǒng)的基本結構包括分散過程控制裝置、通信系統(tǒng)和操作管理裝置[4],該無線通信技術與集散系統(tǒng)結合的結構如圖1所示。整個系統(tǒng)由數(shù)據(jù)處理中心、GPRS無線網(wǎng)絡和遠程控制終端三大部分組成。其中數(shù)據(jù)處理中心由PC機及上位機軟件組成,遠程控制終端由ARM微處理器、GPRS模塊GTM900-C和RFID讀寫模塊組成,主要實現(xiàn)現(xiàn)場數(shù)據(jù)的采集、存儲和發(fā)送等功能。
圖1 系統(tǒng)結構圖
終端GPRS模塊處理后的分組數(shù)據(jù)發(fā)送到GSM基站,分組數(shù)據(jù)經(jīng)SGSN封裝后,SGSN通過GPRS骨干網(wǎng)與網(wǎng)關支持節(jié)點GGSN進行通信,GGSN對分組數(shù)據(jù)進行相應的處理,再發(fā)送到上位機所處的目的網(wǎng)絡,即可完成數(shù)據(jù)的無線傳輸,再由上位機對數(shù)據(jù)進行存儲和處理。同時,上位機也能夠將控制指令和數(shù)據(jù)發(fā)送到GPRS模塊,并由ARM微處理器進行處理,即為上述從終端到上位機的逆過程。本文將主要闡述遠程控制終端中與無線通信相關的實現(xiàn)方案。
嵌入式系統(tǒng)是當今最為熱門的研究領域之一,它以應用為中心,以計算機技術為基礎,軟硬件可裁剪,一般包含嵌入式微處理器、外圍硬件設備、嵌入式操作系統(tǒng)和應用程序四個部分[5]。遠程控制終端主要實現(xiàn)數(shù)據(jù)的采集、存儲和發(fā)送等功能,并且允許上位機對其工作狀態(tài)和參數(shù)進行設置,其結構如圖2所示,以ARM微處理器為核心,將RFID讀寫模塊采集到的數(shù)據(jù)通過UART端口傳送到GPRS模塊,進而可以與上位機通信。
圖2 遠程控制終端結構圖
微處理器選用三星公司ARM9內核的S3C2440處理器,根據(jù)設計要求,本系統(tǒng)擴展的外圍設備主要有存儲設備、串口通信設備和LCD顯示設備。其中NAND FLASH用于存儲程序代碼和用戶數(shù)據(jù),SDRAM存儲器用于運行Linux操作系統(tǒng)和應用程序,當執(zhí)行程序時,SDRAM調用NAND FLASH中的程序代碼并運行,LCD顯示設備用于顯示終端工作狀態(tài),即GPRS模塊和RFID讀寫模塊的運行狀態(tài)。
遠程控制終端中的GPRS模塊選用華為公司的一款兩頻段GSM/GPRS無線模塊GTM900-C,它支持標準AT命令及增強AT命令,提供豐富的語音和數(shù)據(jù)業(yè)務等功能,具有40引腳的ZIF連接器,其中包括UART接口、標準SIM卡接口和電源接口等,可以方便的應用于高速數(shù)據(jù)傳輸。GTM900-C外圍電路的重點在于電源電路和SIM卡電路,是保證其正常工作的基礎,與ARM通信的UART接口較為簡單,對應接口相連即可。
GTM900-C的電源端口為1-5的VBAT I/O口,輸入電壓在3.8V,若電源電壓過低,天線端口需要匹配,應盡量縮短外部電源到模塊連線的長度,否則易造成射頻指標的惡化以及模塊工作不穩(wěn)定。系統(tǒng)中采用LM2576系列穩(wěn)壓芯片產(chǎn)生需要的3.8V電壓,其電路原理圖如圖3所示。
圖3 電源電路
軟件設計采用Linux操作系統(tǒng)來統(tǒng)一管理系統(tǒng)資源,為用戶提供訪問硬件的接口并可調度多個應用程序,文中的GPRS應用程序屬于其中之一[6,7]。此處軟件設計的重點在于GPRS與上位機的連接,因此系統(tǒng)的軟件設計包括兩部分,一部分是遠程控制終端的軟件設計,一部分是上位機的軟件設計。上位機軟件主要是完成數(shù)據(jù)的接收和存儲,也可以實現(xiàn)指令的下傳。
Linux下GPRS模塊程序流程圖如圖4所示。ARM微處理器與GPRS模塊是通過UART串口連接的,因此程序所要實現(xiàn)的和GPRS服務有關的PPP協(xié)議注冊、TCP/IP連接以及數(shù)據(jù)發(fā)送接收等功能,都要通過串口來實現(xiàn)。開機上電之后,程序在主函數(shù)中運行,主要完成處理器和GPRS模塊的初始化工作,S3C2440的初始化主要包括串口選擇、串口工作方式設置、波特率設置以及初始化變量和標志位;GPRS模塊的初始化包括啟動模塊、網(wǎng)絡連接、設置參數(shù)以及各種協(xié)議的實現(xiàn)。
圖4 GPRS程序流程圖
在進行數(shù)據(jù)發(fā)送和接收之前,配置GPRS模塊中較為重要的一項配置工作為定義PDP上下文參數(shù),通過"at+cgdcont=1,"ip","cmnet""指令實現(xiàn),其中cid參數(shù)用于指定PDP上下文標志,IP用于指定分組數(shù)據(jù)協(xié)議的類型,cmnet為接入點名稱,用于選擇GGSN或外部分組數(shù)據(jù)網(wǎng)絡的邏輯名稱。之后進入TCPIP功能,打開一條TCP鏈接,即可進行數(shù)據(jù)的收發(fā)操作。數(shù)據(jù)發(fā)送可通過"AT%IPSEND="TCP CONNECTTION SUCCESS!""指令完成,數(shù)據(jù)接收與發(fā)送稍有不同,數(shù)據(jù)接收為非請求結果碼,且默認情況下緩存是沒有打開的,其指令為%IPDATA,ARM微處理器可以識別該非請求結果碼,讀出接收到的數(shù)據(jù)。數(shù)據(jù)傳輸結束后,需要通過AT%IPCLOSE命令關閉鏈接,釋放信號量。應用程序測試結果如圖5所示。
圖5 應用程序測試結果
通過ARM微處理器控制GPRS模塊撥號連接上位機時,需要上位機的socket端口處于監(jiān)聽狀態(tài),否則無法撥通,不能實現(xiàn)無線通信。該系統(tǒng)上位機界面通過C++builder編程實現(xiàn),其中TCP服務器端界面如圖6所示,GPRS模塊即為TCP客戶端。
圖6 TCP服務器端界面
TCP Server可以自動獲取本機IP地址,方便客戶端連接,啟動TCP Server之后,點擊Listen按鈕,上位機就可處于監(jiān)聽狀態(tài),等待GPRS模塊的連接。GPRS模塊連接到上位機之后,由ARM微處理器控制的LCD顯示設備用以告知終端狀態(tài),如圖7所示。
圖7 終端工作狀態(tài)
本文闡述了基于ARM和嵌入式Linux操作系統(tǒng),并與無線通信技術相結合的集散系統(tǒng)的設計。通過開發(fā)、調試和測試,該系統(tǒng)可以運用于實際,且運行可靠、穩(wěn)定,功耗低,數(shù)據(jù)處理量大,在集散控制系統(tǒng)以及其他相關領域有著廣泛的應用前景。
[1] 周旭,李小敏.俞承芳.基于ARM的集散系統(tǒng)上位機設計[J].儀器儀表學報,2006(27):704-706.
[2] 李忠良.淺談集散控制系統(tǒng)及其應用[J].應用與實用技術,2007(3):50-51.
[3] Manivannan M,Kumaresan N.Design of On-line Interactive Data Acquisition and Control System for Embedded Real Time Applications[J]. IEEE,2011(11),551-556.
[4] 陳利軍,郭艷玲.集散控制系統(tǒng)的最新技術特點與展望[J].工業(yè)儀表與自動化裝置,2006(5):13-16.
[5] 齊春生,韓華春,閆謹,霍春寶,許海平.基于ARM-Linux 平臺的電動汽車智能充電技術[J].計算機應用,2012(32):189-191.
[6] 韋東山.嵌入式Linux應用開發(fā)完全手冊[M].人民郵電出版社,2008.
[7] 倪德驥,耿相銘.基于嵌入式Linux 系統(tǒng)的GPRS 連接及性能評測[J].信息技術,2012(2):85-86.