国产农村一国产农村无码毛片,国产又粗又大又硬一区二区,亚洲无码av在线免费,中文字幕av一区中文字幕天堂

基于ARM高速數(shù)據(jù)采集遠程監(jiān)控系統(tǒng)的應用———基于ARM高速數(shù)據(jù)采集遠程監(jiān)控系統(tǒng)的應用

O 引言

    隨著信息化的不斷發(fā)展,在工業(yè)自動化、電力設備、通信管理、智能終端、智能小區(qū)等領域,對數(shù)據(jù)采集的實時性、可靠性的要求也不斷地提高。以往傳統(tǒng)的單片機加采集卡的數(shù)據(jù)采集裝置已經(jīng)不能滿足人們使用的要求。隨著采集卡的采集頻率不斷地提升,其所屬平臺的工作頻率也應跟上時代的步伐。同時,在某些情況下,裝置的操控人員不可能到工作現(xiàn)場去執(zhí)行,所以有必要對采集裝置進行遠程監(jiān)察和控制。在各種設備的通信方式中,由于以太網(wǎng)具有速度快、通用性好、擴展性強等優(yōu)點,已13漸成為設備之間進行通信的主要方式。本文提出了基于ARM的高速數(shù)據(jù)采集裝置遠程監(jiān)控系統(tǒng),在實現(xiàn)對數(shù)據(jù)的高速采集的同時,能保證數(shù)據(jù)的可靠性和實時性,并對各幀數(shù)據(jù)嵌入時間標志為后續(xù)數(shù)據(jù)處理做好準備,最后能將數(shù)據(jù)及時準確地存儲到移動存儲設備和服務器上。該裝置包括現(xiàn)場監(jiān)控模式和服務器監(jiān)控模式。

 

1 系統(tǒng)簡介

    本裝置由硬件和軟件兩部分組成,如圖1所示。系統(tǒng)硬件由高速數(shù)據(jù)采集平臺和采集模塊構成。采集模塊根據(jù)設計要求,采用DMM一32一AT采集板。采集平臺采用ATMEL公司A791RM9200作為主控芯片,附帶16 kB的SDRAM和128 kB的ROM。該芯片融合了ARM920T ARM Thumb處理器,當工作頻率為180 MHz時性能高達200 MIPS。帶有10/100 MB Base—T型以太網(wǎng)卡接口,USB 2.0全速(12 Mbps)主機/設備接口。內含內存管理單元MMU,含有調試通道的內部仿真器,便于開發(fā)調試。由于AT91RM9200具有功能全、功耗低和工業(yè)級等優(yōu)點,可以使系統(tǒng)能運用到各種環(huán)境中。

 

 

     系統(tǒng)的下位機軟件選擇嵌入式Linux操作系統(tǒng)。嵌入式Linux是將日益流行的Linux操作系統(tǒng)進行裁剪修改,使之能在嵌入式計算機系統(tǒng)運行的一種操作系統(tǒng),它既有無限的開放源代碼資源,又有嵌人式操作系統(tǒng)的特性。通過對內核的重新配置、編譯,即可將其移植到Aqgl RM9200中;再建立BootLoader和文件系統(tǒng),形成基于ARM的嵌入式Linux操作系統(tǒng),最后在此平臺上開發(fā)運用程序,實現(xiàn)裝置的各個功能。

 2 TCP/IP協(xié)議

    在因特網(wǎng)上,TCP/IP協(xié)議每時每刻保證了數(shù)據(jù)的準確傳輸。參考開放系統(tǒng)互連(OSI)模型,TCP/IP通常采用一種簡化的四層模型,分別為:

① 應用層。網(wǎng)絡應用層要有一個定義清晰的會話過程,如通常所說的Http、Ftp、Telnet等。在本系統(tǒng)中,下位機系統(tǒng)傳遞來自Ethernet和數(shù)據(jù)終端的數(shù)據(jù),應用層只對大的數(shù)據(jù)報進行打包拆包處理。

② 傳輸層。傳輸層讓網(wǎng)絡程序通過明確定義的通道及某些特性獲取數(shù)據(jù),如定義網(wǎng)絡連接的端口號等,實現(xiàn)該層協(xié)議的傳輸控制協(xié)議TCP和用戶數(shù)據(jù)協(xié)議UDP。TCP服務提供了數(shù)據(jù)流傳輸、可靠性、有效流控制、全雙工操作和多路復用技術等,在本系統(tǒng)中使用TCP數(shù)據(jù)報協(xié)議。

③ 網(wǎng)絡層。網(wǎng)絡層讓信息可以發(fā)送到相鄰的TCP/IP網(wǎng)絡上的任一主機上,IP協(xié)議就是該層傳送數(shù)據(jù)的機制。同時建立網(wǎng)絡間的互連,提供ARP地址解析協(xié)議,從而實現(xiàn)從IP地址到數(shù)據(jù)鏈路物理地址的映像。

④ 鏈路層。由控制同一物理網(wǎng)絡上的不同機器間數(shù)據(jù)傳送的底層協(xié)議組成,實現(xiàn)這一層的協(xié)議并屬于TCP/IP協(xié)議組。在本系統(tǒng)中這部分功能由ARM控制網(wǎng)卡芯片DM9161E實現(xiàn)。

     在本系統(tǒng)中,利用TCP/IP協(xié)議中的TCP(傳輸控制協(xié)議)、IP(網(wǎng)絡報文協(xié)議)、ARP(地址解析協(xié)議)及簡單的應用層協(xié)議成功地實現(xiàn)了ARM裝置和服務端的網(wǎng)絡互聯(lián)。既提高了數(shù)據(jù)傳輸?shù)乃俣龋直WC了數(shù)據(jù)傳輸?shù)恼_性,同時也擴展了數(shù)據(jù)傳輸?shù)挠行О霃健?/p>

3 下位機的通信實現(xiàn)

    下位機作為客戶端,它和服務器的TCP/IP通信是通過對套接字編程實現(xiàn)的。套接字是網(wǎng)絡通信的基本操作單元,最早是作為BSD規(guī)范提出來的,現(xiàn)已成為Linux操作系統(tǒng)下TCP/IP網(wǎng)絡編程標準。套接字提供了不同主機間進程雙向通信的端點,這些進程在通信前各自建立一個Socket,并通過對Socket的 寫操作實現(xiàn)網(wǎng)絡通信功能。下文將討論的Winsock也是一個用于Windows系列操作系統(tǒng)的Sockets版本 。

    在Linux提供的3種套接字中,本文選擇流式套接字。流式套接字是最常用的套接字類型,其傳輸特點為:面向鏈接、無差錯、發(fā)送先后順序一致、包長度不限和非重復的網(wǎng)絡信息包。TCP/IP協(xié)議簇中的TCP協(xié)議使用此類接口。下位機與服務器通信實現(xiàn)如圖2所示。

 

① Socket()函數(shù):用于創(chuàng)建一個套接字描述符。

#include<sys/types.h>

#include<sys/soc ket.h>

Socket

— ID=socket(AF_INET,SOCK_STREAM,0);

ff PF—INET OR AF—INET Intemet IP Protocal SOCK—STREAM選擇流式套接字

② Connect()函數(shù):用于與遠端服務器建立一個TCP連接請求。

Status=connect(Socket—ID,(struc sockaddr})&Server—Addr,sizeof(struct sockaddr));

∥ 一定要指定服務器的IP地址和端口號,可帶參數(shù)運行程序時指定,也有默認的lP和端口號

if(status!= 一1)∥ 一1:連接過程出錯

{.⋯ ..}

③ Write()函數(shù):從套接字緩沖區(qū)寫數(shù)據(jù)。

int Net— Send— SysConfig(int Conn—ID,Cmdname)

∥向服務器反饋工作狀態(tài)即執(zhí)行服務器下達的命令情況

∥Conn—ID為已經(jīng)建立的套接字描述符

{

status=write(Conn—ID,sendbuff,len);

∥向服務器發(fā)送信息

}

④ Read()函數(shù):從套接字緩沖區(qū)讀取數(shù)據(jù)

int Receive_ Command(int Conn—ID)

{⋯

return len=read(Conn—ID,NetBuf,REC—BUFF_SIZE);

∥成功返回實際收到的字節(jié)總數(shù),出錯返回一1

}

 

⑤ Close()函數(shù):用于關閉一個套接字描述符。

close(Socket—ID); //關閉連接下位機的開發(fā)都是在Linux環(huán)境下用交叉編譯器ARM.Linux—gcc編譯通過。

4 上位機的通信實現(xiàn)

    服務器監(jiān)控軟件是用Visual Basic 6.0來編寫的。在Visual Basic(以下簡稱VB)中,進行網(wǎng)絡通信開發(fā)是非常方便的。VB除了提供豐富的控件外,還提供了各種API來進行更為高級的運用程序的開發(fā)。本裝置通過Winsock控件進行網(wǎng)絡開發(fā)。Winsock控件對用戶是不可見的,它提供了訪問TCP和UDP網(wǎng)絡服務的方便途徑。在編寫客戶或服務器運用程序時,不必了解TCP的細節(jié)或低級的Win—sock API。通過設置控件的屬性并調用其方法就可連接到一個遠程客戶/服務器端,并且雙向交換數(shù)據(jù)。

在本系統(tǒng)中作為服務器的運用軟件,在Winsock控件的屬性設置上要注意:

① Protocol屬性。返回或設置Winsock控件所使用的協(xié)議(TCP或UDP)。

UDPFrmMain.Winsock— Server.Protocol:sckTCPProtocol

∥選擇TCP協(xié)議,