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