梁志勇,戴勝華
(北京交通大學(xué) 電 子信息工程學(xué)院,北京 1 00044)
本文以基于ARM的嵌入式系統(tǒng)設(shè)計(jì)技術(shù)為背景,設(shè)計(jì)了一個(gè)基于C/S結(jié)構(gòu)的煤礦監(jiān)測(cè)控制系統(tǒng)。該監(jiān)控系統(tǒng)通過(guò)對(duì)煤礦礦井的井下溫度、危險(xiǎn)氣體濃度等參數(shù)進(jìn)行檢測(cè),從而保證生產(chǎn)的安全進(jìn)行。由于這些環(huán)境監(jiān)測(cè)參數(shù)在隧道、地鐵等地施工中也會(huì)出現(xiàn),因此,該系統(tǒng)對(duì)鐵路地下工程建設(shè)也有一定的借鑒意義。
C/S(Client/Server,客戶(hù)機(jī)/服務(wù)器)模式又稱(chēng)C/S結(jié)構(gòu),是20世紀(jì)80年代末逐步成長(zhǎng)起來(lái)的一種模式,是軟件系統(tǒng)體系結(jié)構(gòu)的一種。C/S結(jié)構(gòu)的關(guān)鍵在于功能的分布,一些功能放在前端機(jī)(即客戶(hù)機(jī))上執(zhí)行,另一些功能放在后端機(jī)(即服務(wù)器)上執(zhí)行。功能的分布在于減少計(jì)算機(jī)系統(tǒng)的各種瓶頸問(wèn)題,該結(jié)構(gòu)的優(yōu)點(diǎn)是能充分發(fā)揮客戶(hù)端PC的處理能力,很多工作可以在客戶(hù)端處理后再提交給服務(wù)器[1]。
本系統(tǒng)采用C/S模型,客戶(hù)機(jī)即煤礦井下監(jiān)控分站(簡(jiǎn)稱(chēng)分站)采用LM3S8962為控制芯片,負(fù)責(zé)采集和處理井下環(huán)境信息,并通過(guò)以太網(wǎng)實(shí)時(shí)與地面主站通信。服務(wù)器即井上中心站,采用PC機(jī),主要完成環(huán)境的監(jiān)控以及遠(yuǎn)程操作等功能,可實(shí)時(shí)讀取分站狀態(tài),從而對(duì)整個(gè)系統(tǒng)進(jìn)行有效管理。系統(tǒng)結(jié)構(gòu)如圖1。
在硬件方面,嚴(yán)格按照《煤礦安全監(jiān)控系統(tǒng)通用技術(shù)要求》完成監(jiān)控系統(tǒng)的總體硬件設(shè)計(jì),系統(tǒng)中所有電路以及電源等設(shè)備均為本質(zhì)安全型,供電采用KDW12型穩(wěn)壓電源,這款電源箱主要應(yīng)用于煤礦井下含有爆炸性氣體的環(huán)境中,配有備用電源箱。
井下分站微處理器選用基于ARM公司Cortex-M3系列處理器架構(gòu)生產(chǎn)的LM3S8962,該處理器有豐富的存儲(chǔ)器和外設(shè)資源都為系統(tǒng)的功能實(shí)現(xiàn)和擴(kuò)展奠定了基礎(chǔ),它能夠很好地滿(mǎn)足煤礦監(jiān)測(cè)控制系統(tǒng)的要求。監(jiān)測(cè)分站由通訊控制板、接線(xiàn)板、顯示板組成。通訊控制電路板是分站的核心部分,需要自行設(shè)計(jì),由MCU、斷電器、電源模塊以及以太網(wǎng)通訊模塊等組成。分站可接多路模擬量傳感器,采用CAN總線(xiàn)通信,分站與PC機(jī)采用以太網(wǎng)進(jìn)行通信。
圖1 井下分站系統(tǒng)結(jié)構(gòu)圖
圖2 分站程序流程圖
由于分站數(shù)據(jù)采集和處理的實(shí)時(shí)性、多任務(wù)的要求,系統(tǒng)采用RT-Thread嵌入式操作系統(tǒng)來(lái)完成多任務(wù)的調(diào)度和維護(hù)。RT-Thread嵌入式操作系統(tǒng)具有靈活的內(nèi)存管理方式,可嵌套的中斷支持等特征,易于開(kāi)發(fā)相關(guān)的應(yīng)用程序。
2.1.1 RT-Thread下的多任務(wù)結(jié)構(gòu)
本系統(tǒng)在RT-Thread上運(yùn)行3個(gè)任務(wù):讀取采集數(shù)據(jù)、通過(guò)以太網(wǎng)發(fā)送數(shù)據(jù)、接收和執(zhí)行井上中心站的控制命令。讀取采集數(shù)據(jù)任務(wù)通過(guò)CAN通信中斷進(jìn)入中斷程序來(lái)執(zhí)行,RT-Thread系統(tǒng)提供可嵌套的中斷支持,從而使采集任務(wù)的實(shí)時(shí)性得到保證。數(shù)據(jù)發(fā)送任務(wù)負(fù)責(zé)與井上中心站的雙向通信,通過(guò)TCP/IP協(xié)議傳送傳感器數(shù)據(jù)。接收和執(zhí)行任務(wù)通過(guò)接收井上中心站的命令信號(hào),對(duì)相應(yīng)的繼電器進(jìn)行控制。分站程序流程如圖2。
2.1.2 網(wǎng)絡(luò)通信
通過(guò)移植LwIP協(xié)議棧,使RT-Thread系統(tǒng)具備網(wǎng)絡(luò)通信功能。LwIP是一套用于嵌入式系統(tǒng)的開(kāi)放源代碼TCP/IP協(xié)議棧。LwIP的主要目的是減少存儲(chǔ)器利用量和代碼尺寸,使LwIP適合應(yīng)用于小的、資源有限的嵌入式系統(tǒng)。由于TCP/IP的處理與其他運(yùn)算并行處理會(huì)降低通訊的性能,所以我們把應(yīng)用程序分解為2個(gè)部分:(1)專(zhuān)注于處理通信;(2)做其他的運(yùn)算。通訊協(xié)商的部分將包含在TCP/IP線(xiàn)程中,而大部分的數(shù)據(jù)運(yùn)算在另一個(gè)線(xiàn)程中處理。分站TCP通信程序要完成的任務(wù)包括:將采集的溫度、壓力、瓦斯等模擬量信息和井下設(shè)備的開(kāi)/停狀態(tài)傳送到井上中心站;接收中心站傳來(lái)的控制命令,通過(guò)CPU的I/O口接電平驅(qū)動(dòng)電路驅(qū)動(dòng)斷電器,實(shí)現(xiàn)吸合或斷開(kāi),從而實(shí)現(xiàn)對(duì)井下大型用電設(shè)備的開(kāi)停控制。
上位機(jī)界面采用VC++的MFC單文檔界面進(jìn)行編程[2],實(shí)現(xiàn)與井下分站通信,顯示傳感器數(shù)據(jù),控制斷電器、顯示斷電器開(kāi)關(guān)狀態(tài)等功能。其中TCP/IP通信部分采用WIN32的API函數(shù)中的Socket套接字進(jìn)行編程,以此來(lái)實(shí)現(xiàn)以太網(wǎng)通信。為了保證通信的可靠性,采用協(xié)議族中的TCP作為通信協(xié)議。因此套接字使用流式套接字Stream Socket(類(lèi)型標(biāo)識(shí)符為SOCK_STREAM)。流式套接字提供了一種可靠的面向連接的數(shù)據(jù)傳輸方法,不管是對(duì)單個(gè)的數(shù)據(jù)還是對(duì)數(shù)據(jù)包,流式套接字都是提供一種流式傳輸,能保證數(shù)據(jù)無(wú)重復(fù)地到達(dá)目的地[3]。上位機(jī)界面軟件中TCP通信部分的程序流程如圖3。
圖3 TCP通信程序流程
本文介紹結(jié)合嵌入式系統(tǒng)技術(shù)設(shè)計(jì)的基于Cortex-M3的煤礦監(jiān)測(cè)控制系統(tǒng)方案,已經(jīng)基本實(shí)現(xiàn)了數(shù)據(jù)采集、控制斷電器以及地面中心機(jī)與分站的通信功能,并以基于嵌入式的TCP/IP協(xié)議棧進(jìn)行網(wǎng)絡(luò)通信,可為系統(tǒng)提供良好的兼容性,利于消除不同監(jiān)測(cè)監(jiān)控平臺(tái)間的協(xié)議壁壘,對(duì)以后研究和開(kāi)發(fā)速度快、性?xún)r(jià)比高、安全性高的監(jiān)測(cè)系統(tǒng)有很高的參考價(jià)值。
本系統(tǒng)使用標(biāo)準(zhǔn)的TCP/IP協(xié)議,易于實(shí)現(xiàn)系統(tǒng)的移植和改造,可廣泛應(yīng)用于隧道和地下等大型工程建設(shè)中。
[1] 黃 剛,趙 校. B/S和C/S模式在MIS中的比較[J]. 鐵路計(jì)算機(jī)應(yīng)用,2004,13(4):50-51.
[2] 徐紅勤. MFC應(yīng)用程序?qū)ο蟮耐ㄐ欧椒╗J]. 數(shù)據(jù)通信,2004(4):51-52.
[3] 何 進(jìn),謝松巍. 基于Socket的TCP/IP網(wǎng)絡(luò)通訊模式研究[J]. 計(jì)算機(jī)應(yīng)用研究,2001,18(8).