版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、基于ARM高速數(shù)據(jù)采集遠程監(jiān)控系統(tǒng)的應(yīng)用摘要:簡要介紹了TCPIP協(xié)議,給出了基于北京ARM開發(fā)板嵌入式高速數(shù)據(jù)采集裝置的遠程監(jiān)控系統(tǒng)的實現(xiàn)方案。系統(tǒng)以下位機作為客戶端,在Af91RM9200和嵌入式Linux搭建的軟硬件平臺上運行;將上位機作為服務(wù)器端,用VB60開發(fā)監(jiān)控平臺軟件;兩者通過TCPIP實現(xiàn)了采集數(shù)據(jù)和控制命令的傳輸以及服務(wù)器監(jiān)控模式。O 引言隨著信息化的不斷發(fā)展,在工業(yè)自動化、電力設(shè)備、通信管理、智能終端、智能小區(qū)等領(lǐng)域,對數(shù)據(jù)采集的實時性、可靠性的要求也不斷地提高。以往傳統(tǒng)的單片機加采集卡的數(shù)據(jù)采集裝置已經(jīng)不能滿足人們使用的要求。隨著采集卡的采集頻率不斷地提升,其所屬平臺的工
2、作頻率也應(yīng)跟上時代的步伐。同時,在某些情況下,裝置的操控人員不可能到工作現(xiàn)場去執(zhí)行,所以有必要對采集裝置進行遠程監(jiān)察和控制。在各種設(shè)備的通信方式中,由于以太網(wǎng)具有速度快、通用性好、擴展性強等優(yōu)點,已13漸成為設(shè)備之間進行通信的主要方式。本文提出了基于ARM的高速數(shù)據(jù)采集裝置遠程監(jiān)控系統(tǒng),在實現(xiàn)對數(shù)據(jù)的高速采集的同時,能保證數(shù)據(jù)的可靠性和實時性,并對各幀數(shù)據(jù)嵌入時間標志為后續(xù)數(shù)據(jù)處理做好準備,最后能將數(shù)據(jù)及時準確地存儲到移動存儲設(shè)備和服務(wù)器上。該裝置包括現(xiàn)場監(jiān)控模式和服務(wù)器監(jiān)控模式。1 系統(tǒng)簡介本裝置由硬件和軟件兩部分組成,如圖1所示。系統(tǒng)硬件由高速數(shù)據(jù)采集平臺和采集模塊構(gòu)成。采集模塊根據(jù)設(shè)計要
3、求,采用DMM一32一AT采集板。采集平臺采用ATMEL公司A791RM9200作為主控芯片,附帶16 kB的SDRAM和128 kB的ROM。該芯片融合了ARM920T ARM Thumb處理器,當(dāng)工作頻率為180 MHz時性能高達200 MIPS。帶有10100 MB BaseT型以太網(wǎng)卡接口,USB 20全速(12 Mbps)主機設(shè)備接口。內(nèi)含內(nèi)存管理單元MMU,含有調(diào)試通道的內(nèi)部仿真器,便于開發(fā)調(diào)試。由于AT91RM9200具有功能全、功耗低和工業(yè)級等優(yōu)點,可以使系統(tǒng)能運用到各種環(huán)境中。系統(tǒng)的下位機軟件選擇嵌入式Linux操作系統(tǒng)。嵌入式Linux是將日益流行的Linux操作系統(tǒng)進行裁
4、剪修改,使之能在嵌入式計算機系統(tǒng)運行的一種操作系統(tǒng),它既有無限的開放源代碼資源,又有嵌人式操作系統(tǒng)的特性。通過對內(nèi)核的重新配置、編譯,即可將其移植到Aqgl RM9200中;再建立BootLoader和文件系統(tǒng),形成基于ARM的嵌入式Linux操作系統(tǒng),最后在此平臺上開發(fā)運用程序,實現(xiàn)裝置的各個功能。2 TCPIP協(xié)議在因特網(wǎng)上,TCPIP協(xié)議每時每刻保證了數(shù)據(jù)的準確傳輸。參考開放系統(tǒng)互連(OSI)模型,TCPIP通常采用一種簡化的四層模型,分別為: 應(yīng)用層。網(wǎng)絡(luò)應(yīng)用層要有一個定義清晰的會話過程,如通常所說的Http、Ftp、Telnet等。在本系統(tǒng)中,下位機系統(tǒng)傳遞來自Ethernet和數(shù)據(jù)
5、終端的數(shù)據(jù),應(yīng)用層只對大的數(shù)據(jù)報進行打包拆包處理。 傳輸層。傳輸層讓網(wǎng)絡(luò)程序通過明確定義的通道及某些特性獲取數(shù)據(jù),如定義網(wǎng)絡(luò)連接的端口號等,實現(xiàn)該層協(xié)議的傳輸控制協(xié)議TCP和用戶數(shù)據(jù)協(xié)議UDP。TCP服務(wù)提供了數(shù)據(jù)流傳輸、可靠性、有效流控制、全雙工操作和多路復(fù)用技術(shù)等,在本系統(tǒng)中使用TCP數(shù)據(jù)報協(xié)議。 網(wǎng)絡(luò)層。網(wǎng)絡(luò)層讓信息可以發(fā)送到相鄰的TCPIP網(wǎng)絡(luò)上的任一主機上,IP協(xié)議就是該層傳送數(shù)據(jù)的機制。同時建立網(wǎng)絡(luò)間的互連,提供ARP地址解析協(xié)議,從而實現(xiàn)從IP地址到數(shù)據(jù)鏈路物理地址的映像。 鏈路層。由控制同一物理網(wǎng)絡(luò)上的不同機器間數(shù)據(jù)傳送的底層協(xié)議組成,實現(xiàn)這一層的協(xié)議并屬于TCPIP協(xié)議組。在
6、本系統(tǒng)中這部分功能由ARM控制網(wǎng)卡芯片DM9161E實現(xiàn)。在本系統(tǒng)中,利用TCPIP協(xié)議中的TCP(傳輸控制協(xié)議)、IP(網(wǎng)絡(luò)報文協(xié)議)、ARP(地址解析協(xié)議)及簡單的應(yīng)用層協(xié)議成功地實現(xiàn)了ARM裝置和服務(wù)端的網(wǎng)絡(luò)互聯(lián)。既提高了數(shù)據(jù)傳輸?shù)乃俣?,又保證了數(shù)據(jù)傳輸?shù)恼_性,同時也擴展了數(shù)據(jù)傳輸?shù)挠行О霃健? 下位機的通信實現(xiàn)下位機作為客戶端,它和服務(wù)器的TCPIP通信是通過對套接字編程實現(xiàn)的。套接字是網(wǎng)絡(luò)通信的基本操作單元,最早是作為BSD規(guī)范提出來的,現(xiàn)已成為Linux操作系統(tǒng)下TCPIP網(wǎng)絡(luò)編程標準。套接字提供了不同主機間進程雙向通信的端點,這些進程在通信前各自建立一個Socket,并通過對S
7、ocket的 寫操作實現(xiàn)網(wǎng)絡(luò)通信功能。下文將討論的Winsock也是一個用于Windows系列操作系統(tǒng)的Sockets版本 。在Linux提供的3種套接字中,本文選擇流式套接字。流式套接字是最常用的套接字類型,其傳輸特點為:面向鏈接、無差錯、發(fā)送先后順序一致、包長度不限和非重復(fù)的網(wǎng)絡(luò)信息包。TCPIP協(xié)議簇中的TCP協(xié)議使用此類接口。下位機與服務(wù)器通信實現(xiàn)如圖2所示。 Socket()函數(shù):用于創(chuàng)建一個套接字描述符。#include#includeSocket ID=socket(AF_INET,SOCK_STREAM,0);ff PFINET OR AFINET Intemet IP Pro
8、tocal SOCKSTREAM選擇流式套接字 Connect()函數(shù):用于與遠端服務(wù)器建立一個TCP連接請求。Status=connect(SocketID,(struc sockaddr)&ServerAddr,sizeof(struct sockaddr); 一定要指定服務(wù)器的IP地址和端口號,可帶參數(shù)運行程序時指定,也有默認的lP和端口號if(status!= 一1) 一1:連接過程出錯 Write()函數(shù):從套接字緩沖區(qū)寫數(shù)據(jù)。int Net Send SysConfig(int ConnID,char Cmdname)向服務(wù)器反饋工作狀態(tài)即執(zhí)行服務(wù)器下達的命令情況ConnID為已經(jīng)
9、建立的套接字描述符status=write(ConnID,sendbuff,len);向服務(wù)器發(fā)送信息 Read()函數(shù):從套接字緩沖區(qū)讀取數(shù)據(jù)int Receive_ Command(int ConnID)return len=read(ConnID,NetBuf,RECBUFF_SIZE);成功返回實際收到的字節(jié)總數(shù),出錯返回一1 Close()函數(shù):用于關(guān)閉一個套接字描述符。close(SocketID); 關(guān)閉連接下位機的開發(fā)都是在Linux環(huán)境下用交叉編譯器ARMLinuxgcc編譯通過。4 上位機的通信實現(xiàn)服務(wù)器監(jiān)控軟件是用Visual Basic 60來編寫的。在Visual B
10、asic(以下簡稱VB)中,進行網(wǎng)絡(luò)通信開發(fā)是非常方便的。VB除了提供豐富的控件外,還提供了各種API來進行更為高級的運用程序的開發(fā)。本裝置通過Winsock控件進行網(wǎng)絡(luò)開發(fā)。Winsock控件對用戶是不可見的,它提供了訪問TCP和UDP網(wǎng)絡(luò)服務(wù)的方便途徑。在編寫客戶或服務(wù)器運用程序時,不必了解TCP的細節(jié)或低級的Winsock API。通過設(shè)置控件的屬性并調(diào)用其方法就可連接到一個遠程客戶服務(wù)器端,并且雙向交換數(shù)據(jù)。在本系統(tǒng)中作為服務(wù)器的運用軟件,在Winsock控件的屬性設(shè)置上要注意: Protocol屬性。返回或設(shè)置Winsock控件所使用的協(xié)議(TCP或UDP)。UDPFrmMainWi
11、nsock ServerProtocol:sckTCPProtocol選擇TCP協(xié)議,提高數(shù)據(jù)傳輸?shù)目煽啃?LocalPort屬性。返回或設(shè)置所用到的本地端口。對客戶來說,該屬性指定發(fā)送數(shù)據(jù)的本地端口;對于服務(wù)器來說,是指定偵聽的本地端口。FrmMainW insock ServerLocalPort=LocalPort ID服務(wù)器端口號,最好大于1 000 State屬性。返回控件的狀態(tài),設(shè)計時只讀。用在判斷監(jiān)控網(wǎng)絡(luò)狀態(tài),根據(jù)狀態(tài)改變各個按鍵指示燈的狀態(tài),提高操作安全性。其設(shè)置如下:Connected State=FrmMainW insock ServerStateSelect Case
12、Connected StateCase 0 StatusBar1Panels(3)Text= “關(guān)閉”Case 1 StalusBar1Panels(3)Text=“打開”Case 2 StatusBar1Panels(3)Text=“偵聽”41 Winsock控件方法Winsock控件方法主要有以下幾種: Listen方法。在運用程序初始化時創(chuàng)建套接字并將其設(shè)置為偵聽狀態(tài),等待客戶機的連接請求。Private Sub Form_ Load()FrmMainWinsock ServerListenEnd Sub Accept方法。當(dāng)有新連接時就會出現(xiàn)ConnectionRequest事件,處理
13、該事件時,運用程序應(yīng)該用Accept方法接收連接。當(dāng)遠程客戶機(AT91RM9200)發(fā)出請求連接時發(fā)生Private Sub WinsockServer Connecti0nRequest( ByValrequestID As Long)If W insock ServerState sckClosed Then W insockServerClose保證Winsock控件不是處于Close狀態(tài)W insock ServerAccept requestlD服務(wù)器接收客戶機(AI-91 RM9200)的請求End Sub SendData方法。服務(wù)器給客戶機發(fā)送控制命令,如開始執(zhí)行、停止、數(shù)據(jù)
14、的轉(zhuǎn)存等,實現(xiàn)對客戶機的遠程控制。本函數(shù)按TCP模式按二進制方式發(fā)送數(shù)據(jù)包給客戶機,函數(shù)成功返回true,出錯返回false。Public Function Send DataTo kehu(WinsockServer AsWinsock,DataBuff()As Byte)As BooleanOn Error GoTo Er_PartSend Data Tokehu : FalseIf Connect Then Connect是一個定義的全局變量,保證在Winsock控件在連接狀態(tài)W insock ServerSe ndData Data_ BufEnd IfSend Data To keh
15、u=TrueExit FunctionErr_ Pa:Send Data To kehu = FalseMsgBox“發(fā)送數(shù)據(jù)出錯!錯誤代碼=”+CStr(Er)+“ :”+Error,vbExclamation,“錯誤提示”Exit FunctionEnd Function42 Winsoek控件事件Winsock控件事件分為以下2種。 DataArrival事件:該事件是通信的核心部分。當(dāng)給客戶端發(fā)送完命令后,接收客戶端返回的命令執(zhí)行情況,實現(xiàn)對客戶機運行狀態(tài)的監(jiān)察。如果是數(shù)據(jù)轉(zhuǎn)存命令時,還要完成接收客戶機上傳的采集數(shù)據(jù)和對數(shù)據(jù)的服務(wù)器存儲,進一步提高系統(tǒng)的可靠性,其流程如圖3所示。接收到FTP頭數(shù)據(jù)包后, P傳輸數(shù)據(jù)的格式定義如圖4所示。 Error事件:只要后臺處理中出現(xiàn)錯誤(例如連接失敗、收發(fā)數(shù)據(jù)失敗)事件都會出現(xiàn),方便我們對程序的監(jiān)控和調(diào)試。在后臺處理中出現(xiàn)錯誤時發(fā)生:Private Sub W insock Server_Eror(ByVal Number As Integer,Description As String,ByVal Se ode As Long,ByValSource As String,ByVal HelpFile As Strin
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 東野圭吾作品分析
- 上證50ETF期權(quán)介紹
- 《雖有佳肴》課件
- 七大浪費知識
- 宏觀深度報告:2025年十大“不一致”預(yù)期
- 單位管理制度展示選集職員管理篇十篇
- 部編版三年級語文上冊期末試卷(無答案)
- IFRS17對保險行業(yè)影響的深度解析:專題二開啟計量“黑盒子”
- 單位管理制度展示匯編【職員管理】
- 單位管理制度品讀選集人事管理篇
- 計算機信息系統(tǒng)分級保護方案
- 二年級豎式計算題720道(打印排版)
- 頂管施工技術(shù)全面詳解
- 公路工程質(zhì)量檢驗評定標準(交安部分)
- 整式的乘法和因式分解純計算題100道
- 東北石油大學(xué)學(xué)業(yè)預(yù)警、留級與退學(xué)制度修訂情況說明
- Consent-Letter-for-Children-Travelling-Abroad
- 護士工作量統(tǒng)計表
- 中價協(xié)[2013]35號造價取費
- 玻璃鱗片施工技術(shù)規(guī)范
- 初中物理實驗記錄表
評論
0/150
提交評論