1. gzyueqian
      13352868059
      首頁 > 新聞中心 > > 正文

      基于ARM的城市供水站分布式監(jiān)控系統(tǒng)

      更新時間: 2011-09-28 09:12:40來源: 粵嵌教育瀏覽量:1519

          城市供水系統(tǒng)擔(dān)任著為整個社會提供安全的生活工業(yè)用水以及合理調(diào)度用水環(huán)節(jié)、保障用水合理性的重要職責(zé),是整個社會正常運行的命脈。而各個供水站又是整個供水系統(tǒng)中為核心的工作部分。因此,城市供水站監(jiān)控系統(tǒng)就顯得特別重要。

          當(dāng)前城市供水站監(jiān)控系統(tǒng)多以單片機為核心,將外部傳感器數(shù)據(jù)進行A/D轉(zhuǎn)換后接入單片機,其精度可達12位,數(shù)據(jù)經(jīng)過處理后用點陣顯示屏顯示。單片機為8位中央處理器,這對于要求較高的領(lǐng)域顯得稍有不足。下位機與上位機之間多采用串口進行通信。串行485接口采用差分方式傳輸,傳輸距離可達1 200 m,但此距離速率只能達到100 Kb/s,且485在任何時刻只允許一個下位機向上位機傳遞數(shù)據(jù),使得這種通信方式受到了一定限制。

          嵌入式處理器和以太網(wǎng)技術(shù)的飛速發(fā)展為這些問題提供了解決的途徑。

          嵌入式處理器處理速度快、精度高、擴展接口豐富,且具有良好的人機交互性。以太網(wǎng)通信技術(shù)則以其實時性強、通信速度快、兼容性強、網(wǎng)絡(luò)布線方便的優(yōu)點,越來越受到人們的青睞。本文以ARM嵌入式處理器為核心,搭載WinCE嵌入式系統(tǒng),結(jié)合TCP/IP通信協(xié)議,設(shè)計出基于ARM和TCP/IP的城市供水站高速數(shù)據(jù)采集系統(tǒng)。并對下位機數(shù)據(jù)采集程序、上位機程序以及系統(tǒng)通信的實現(xiàn)進行了詳細的敘述。

          1 系統(tǒng)的總體架構(gòu)及硬件設(shè)計

          1.1 系統(tǒng)的總體架構(gòu)
          數(shù)據(jù)采集與監(jiān)控系統(tǒng)的下位機以ARM9系列的三星S3C2440A嵌入式處理器為核心,處理器的主頻400 MHz,達533 MHz,處理速度快,內(nèi)置8路10位A/D轉(zhuǎn)換器,轉(zhuǎn)換頻率為2.5 MHz,數(shù)據(jù)采集速度和精度都很高。在ARM9的基礎(chǔ)之上搭載WinCE嵌入式操作系統(tǒng),該操作系統(tǒng)具有與Windows XP相似的界面和操作,操作起來更加簡便快捷;支持多系列的微型處理器,包括ARM系列,使下位機在硬件和軟件方面得到了完美的融合。下位機接收傳感器采集的數(shù)據(jù),然后通過TCP/IP協(xié)議與上位機進行通信,上位機得到下位機傳來的數(shù)據(jù)后進行數(shù)據(jù)存儲、顯示、報警操作。上位機進行遠程監(jiān)控并完成對各個下位機信息的匯總和分析處理等功能。

          1.2 系統(tǒng)的硬件設(shè)計
          城市供水站分布式監(jiān)控系統(tǒng)要測量的物理量主要有各個供水站電機的電流、電壓、溫度等參數(shù),以及供水站的流量、進出口壓力、水溫等水質(zhì)的參數(shù)。要根據(jù)各種物理量以及其所處的具體工作環(huán)境選取合適的傳感器[4]。
          下位機硬件以ARM9為核心,其內(nèi)置的A/D轉(zhuǎn)換接口用來接收外部傳感器的數(shù)據(jù),搭載的TFT顯示屏作為下位機的顯示,同時其各個擴展接口可以提供其他的資源及為以后擴展所用。

          傳感器采集的外部數(shù)據(jù)經(jīng)過放大、濾波等消除干擾的操作后接入ARM內(nèi)部A/D轉(zhuǎn)換器,在嵌入式系統(tǒng)中進行處理,并在下位機顯示屏上進行顯示和相應(yīng)地人機操作。下位機擴展在板64 MB SDRAM內(nèi)存和在板128 MB Nand Flash存儲并支持32 GB的外部SD擴展槽,滿足本機運行以及存儲要求。擴展的RJ-45接口作為與上位機進行通信的接口。IIC總線以及其他接口作為擴展和其他功能用。
          TCP/IP協(xié)議使用客戶端/服務(wù)器(C/S)模式進行通信,其通信是點對點的,在網(wǎng)絡(luò)中幾乎可以實現(xiàn)無差錯的數(shù)據(jù)傳輸,可靠性較高,速度快。由于與網(wǎng)絡(luò)相關(guān)的路由和網(wǎng)關(guān)等技術(shù)的發(fā)展,使得多路通信的實現(xiàn)變得簡單方便。

          下位機ARM擴展了網(wǎng)絡(luò)RJ-45網(wǎng)絡(luò)接口,使上下位機之間實現(xiàn)TCP/IP通信變得更加簡單。
          每個供水站的下位機在將數(shù)據(jù)處理完畢之后,通過RJ-45網(wǎng)絡(luò)接口與上位機相連,多處下位機通過路由器接入網(wǎng)絡(luò),然后再與上位機進行通信。

          2 供水站分布式監(jiān)控系統(tǒng)的軟件設(shè)計

          供水站分布式監(jiān)控系統(tǒng)的軟件設(shè)計包括下位機地址映射、下位機數(shù)據(jù)處理及顯示、數(shù)據(jù)通信以及上位機程序的實現(xiàn)。

          2.1 下位機地址映射與實現(xiàn)

          下位機搭載WinCE操作系統(tǒng),ARM數(shù)據(jù)采集是通過GPIO來操作相應(yīng)的寄存器,WinCE系統(tǒng)則將GPIO的實地址映射到虛擬地址空間,通過對虛擬地址空間的操作來完成對GPIO及其他片內(nèi)資源的控制。要在WinCE中操作ARM中的GPIO,就必須按照BSP中的基地址找到相應(yīng)的虛擬地址。這就需要對其進行地址映射。

          地址映射的方法有2種:一是流驅(qū)動方法,即在流驅(qū)動中將物理地址進行相應(yīng)地映射,將流驅(qū)動添加到底層映像中來實現(xiàn)。另一種方法是在外部WinCE程序中將物理地址與虛擬地址進行相應(yīng)地映射,只需對外部程序進行操作,對內(nèi)核沒有影響,由于下位機數(shù)據(jù)采集部分并不復(fù)雜,所以采用第二種方法進行實現(xiàn)。

          要實現(xiàn)地址映射,首先將所用到底層驅(qū)動中的寄存器作為一個類定義到WinCE嵌入式程序中去。然后把物理地址與虛擬地址用VirtualAlloc和VirtualCopy函數(shù)進行映射操作。VirtualAlloc函數(shù)用于在當(dāng)前進程的虛擬地址空間中保留或者提交空間,在保留時以64 KB為單位,提交時以4 KB為單位。VirtualCopy函數(shù)則用來綁定物理地址到靜態(tài)映射虛擬地址。VirtuaAlloc+VirtualCopy就可以將內(nèi)核到當(dāng)前進程進行映射,讓當(dāng)前程序找到對應(yīng)的虛擬地址。

          把映射后的地址作為一個新類進行定義,就可對寄存器進行操作。

          2.2 下位機數(shù)據(jù)處理及顯示

          下位機采集數(shù)據(jù)后采用數(shù)字模塊進行顯示,當(dāng)數(shù)據(jù)超出上下限的時候,下位機中的蜂鳴器就會進行報警,通知現(xiàn)場操作人員。

          數(shù)字顯示模塊采用重繪的形式,預(yù)先定義好相應(yīng)的數(shù)字顯示值,在接收到數(shù)據(jù)后對數(shù)字顯示模塊進行相應(yīng)地重繪。數(shù)字顯示模塊作為一個插件加入到WinCE程序中,在主函數(shù)中調(diào)用模塊中的顯示函數(shù)來實現(xiàn)數(shù)字的顯示。
          下位機報警功能采用ARM擴展的蜂鳴器實現(xiàn),蜂鳴器由PWM進行控制。在S3C2440A中GPB0為控制PWM的寄存器,通過地址映射的方法對相應(yīng)的寄存器進行操作。

          首先設(shè)置端口GPB0為TOUT0功能,然后設(shè)置預(yù)分頻和分割值,計數(shù)器的輸入時鐘(CCLK)頻率為:PCLK/(預(yù)分頻+1)/分割值。預(yù)分頻值和分割值分別由TCFG0、TCFG1來確定。接著設(shè)定初始值TCMPB3和TCNTB,由于計數(shù)器的輸入時鐘為PCLK/16/8;而rTCNTB0=(PCLK>>7)/freq;并且計數(shù)計到值的一半時發(fā)生翻轉(zhuǎn)。因為計數(shù)的基值是由rTCMPB0設(shè)定為計數(shù)值的50%。是定時控制器的設(shè)定rTCON,TOUT0就產(chǎn)生頻率是rTCNTB0,占空比是50%的方波,蜂鳴器就可以被驅(qū)動。當(dāng)數(shù)據(jù)超限時就調(diào)用此函數(shù)進行蜂鳴器報警。

          2.3 TCP/IP通信的實現(xiàn)

          上下位機之間采用客戶機/服務(wù)器(C/S)形式,下位機作為客戶機上位機作為服務(wù)器進行通信,TCP/IP通信通過套接字(socket)來實現(xiàn)[7-8]。
          下位機利用套接字socket的connect函數(shù)向上位機(server)發(fā)送連接請求,當(dāng)連接成功之后,用send函數(shù)向上位機發(fā)送相應(yīng)的數(shù)據(jù),通信完成后關(guān)閉套接字。

          上位機通信部分則與下位機相互對應(yīng),用套接字socket的bind函數(shù)將套接字綁定到本地地址和端口上,并將套接字設(shè)置為監(jiān)聽模式,用listen函數(shù)來準(zhǔn)備接收client的請求,當(dāng)用accept函數(shù)接收到連接請求后,調(diào)用recv函數(shù)來接收相應(yīng)的數(shù)據(jù)。

          上位機作為服務(wù)器端,對設(shè)定的端口一直進行監(jiān)控,因此運用多線程進行循環(huán)監(jiān)聽,直到相應(yīng)的操作使其停止。

          2.4 上位機顯示報警及數(shù)據(jù)存儲實現(xiàn)

          上位機是整個系統(tǒng)監(jiān)視的核心,數(shù)據(jù)顯示為了直觀,采用動態(tài)曲線顯示;并進行聲音報警,采用數(shù)據(jù)庫將數(shù)據(jù)進行存儲。

          上位機動態(tài)曲線顯示利用畫刷、曲線等函數(shù)進行繪制,當(dāng)數(shù)據(jù)接收進來后繪制相應(yīng)的曲線,并且隨著數(shù)據(jù)的增多曲線進行移動,使顯示的曲線一直為當(dāng)前一段時間的數(shù)據(jù)。報警的實現(xiàn)比較簡單,只需在數(shù)據(jù)超限的時候調(diào)用Beep    蜂鳴函數(shù)即可。

          上位機的另一個主要的功能就是對數(shù)據(jù)進行存儲,以便在以后調(diào)用。數(shù)據(jù)存儲利用ADO對數(shù)據(jù)庫進行訪問。

          ADO是一個用于存取數(shù)據(jù)源的COM組件,是微軟的對象層次上的數(shù)據(jù)操作技術(shù),它為操作OLE DB數(shù)據(jù)源提供了一套高層次自動化接口。從功能上來說,ADO又是一種OLE DB客戶程序,它不依賴于特定的OLE DB服務(wù)器反而支持所有的OLE DB服務(wù)提供者。通過這些OLE DB服務(wù)提供者,ADO支持客戶/服務(wù)器模式和基于Web的數(shù)據(jù)操作,尤其支持通過客戶/服務(wù)器模式或者基于Web模式訪問微軟的SQL Server數(shù)據(jù)庫服務(wù)器。

          用ADO的Connection、Command、Recordset等一系列關(guān)鍵對象,在數(shù)據(jù)庫中建立表格對當(dāng)前日期、時間以及傳感器數(shù)據(jù)進行實時的自動存儲。

          為保證程序的運行狀況,運用多線程實現(xiàn)對規(guī)定數(shù)據(jù)的儲存操作。

          本系統(tǒng)實現(xiàn)了對下位供水站數(shù)據(jù)的精確和高速的采集,并能將下位數(shù)據(jù)在嵌入式下位機系統(tǒng)中進行顯示,實現(xiàn)在現(xiàn)場對數(shù)據(jù)進行觀測和處理,同時又可以將現(xiàn)場的數(shù)據(jù)傳輸?shù)缴衔粰C中,將不同下位機中的數(shù)據(jù)傳輸?shù)缴衔粰C中進行匯總和相應(yīng)的操作,實現(xiàn)了遠程的監(jiān)控和管理。此系統(tǒng)對其他的數(shù)據(jù)采集和監(jiān)控系統(tǒng)來說也具有很好的參考價值。

      免費預(yù)約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 久久丝袜国产精品视频 | 亚洲成a人片在线 | 一本久久亚洲综合久久 | 中字幕AV一区二区三区 | 亚洲一区二区制服在线 | 新婚少妇真紧视频 |