www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 嵌入式 > 嵌入式軟件
[導讀]ARM設計的高速數據采集遠程監(jiān)控系統(tǒng)技術

摘要:簡要介紹了TCP/IP協(xié)議,給出了基于ARM嵌入式高速數據采集裝置的遠程監(jiān)控系統(tǒng)的實現方案。系統(tǒng)以下位機作為客戶端,在A~f91RM9200和嵌入式Linux搭建的軟硬件平臺上運行;將上位機作為服務器端,用VB6.0開發(fā)監(jiān)控平臺軟件;兩者通過TCP/IP實現了采集數據和控制命令的傳輸以及服務器監(jiān)控模式。

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

1 系統(tǒng)簡介

    本裝置由硬件和軟件兩部分組成,如圖1所示。系統(tǒng)硬件由高速數據采集平臺和采集模塊構成。采集模塊根據設計要求,采用DMM一32一AT采集板。采集平臺采用ATMEL公司A791RM9200作為主控芯片,附帶16 kB的SDRAM和128 kB的ROM。該芯片融合了ARM920T ARM Thumb處理器,當工作頻率為180 MHz時性能高達200 MIPS。帶有10/100 MB Base—T型以太網卡接口,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ā)運用程序,實現裝置的各個功能。

 2 TCP/IP協(xié)議

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

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

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

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

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

     在本系統(tǒng)中,利用TCP/IP協(xié)議中的TCP(傳輸控制協(xié)議)、IP(網絡報文協(xié)議)、ARP(地址解析協(xié)議)及簡單的應用層協(xié)議成功地實現了ARM裝置和服務端的網絡互聯(lián)。既提高了數據傳輸的速度,又保證了數據傳輸的正確性,同時也擴展了數據傳輸的有效半徑。

3 下位機的通信實現

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

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

 

① Socket()函數:用于創(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()函數:用于與遠端服務器建立一個TCP連接請求。

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

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

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

{.⋯ ..}

③ Write()函數:從套接字緩沖區(qū)寫數據。[!--empirenews.page--]

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

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

∥Conn—ID為已經建立的套接字描述符

{

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

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

}

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

int Receive_ Command(int Conn—ID)

{⋯

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

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

}

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

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

4 上位機的通信實現

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

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

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

UDPFrmMain.Winsock— Server.Protocol:sckTCPProtocol

∥選擇TCP協(xié)議,提高數據傳輸的可靠性

② LocalPort屬性。返回或設置所用到的本地端口。對客戶來說,該屬性指定發(fā)送數據的本地端口;對于服務器來說,是指定偵聽的本地端口。

FrmMain.W insock— Server.LocalPort=LocalPort— ID∥服務器端口號,最好大于1 000

③ State屬性。返回控件的狀態(tài),設計時只讀。用在判斷監(jiān)控網絡狀態(tài),根據狀態(tài)改變各個按鍵指示

燈的狀態(tài),提高操作安全性。其設置如下:

Connected— State=FrmMain.W insock— Server.State

Select Case Connected— State

Case 0 StatusBar1.Panels(3).Text= “關閉”

Case 1 StalusBar1.Panels(3).Text=“打開”

Case 2 StatusBar1.Panels(3).Text=“偵聽”

4.1 Winsock控件方法

Winsock控件方法主要有以下幾種:

① Listen方法。在運用程序初始化時創(chuàng)建套接

字并將其設置為偵聽狀態(tài),等待客戶機的連接請求。

Private Sub Form_ Load()

FrmMain.Winsock— Server.Listen

End Sub

② Accept方法。當有新連接時就會出現ConnectionRequest[!--empirenews.page--]

事件,處理該事件時,運用程序應該用Accept方法接收連接。

∥當遠程客戶機(AT91RM9200)發(fā)出請求連接時發(fā)生

Private Sub Winsock

Server

— Connecti0nRequest( ByVal

requestID As Long)

If W insock

— Server.State < > sckClosed Then W insock—

Server.Close保證Winsock控件不是處于Close狀態(tài)

W insock— —

Server.Accept requestlD

∥服務器接收客戶機(A‘I-91 RM9200)的請求

End Sub

③ SendData方法。服務器給客戶機發(fā)送控制命

令,如開始執(zhí)行、停止、數據的轉存等,實現對客戶機的

遠程控制。

本函數按TCP模式按二進制方式發(fā)送數據包給

客戶機,函數成功返回true,出錯返回false。

Public Function Send— Data—

To— kehu(Winsock—Server As

Winsock,Data—

Buff()As Byte)As Boolean

On Error GoTo Er

_

Part

Send— Data— To—

kehu : False

If Connect Then //Connect是一個定義的全局變量,

保證在Winsock控件在連接狀態(tài)

W insock— . Server.Se ndData Data_ Buf

End If

Send— Data— To— kehu=True[!--empirenews.page--]

Exit Function

Err_ Pa~:

Send— Data— To— kehu = False

MsgBox“發(fā)送數據出錯!錯誤代碼=”+CStr(Er)+

“ :”+Error,vbExclamation,“錯誤提示”

Exit Function

End Function

4.2 Winsoek控件事件

Winsock控件事件分為以下2種。

① DataArrival事件:該事件是通信的核心部分。當給客戶端發(fā)送完命令后,接收客戶端返回的命令執(zhí)行情況,實現對客戶機運行狀態(tài)的監(jiān)察。如果是數據轉存命令時,還要完成接收客戶機上傳的采集數據和對數據的服務器存儲,進一步提高系統(tǒng)的可靠性,其流程如圖3所示。接收到FTP頭數據包后, P傳輸數據的格式定義如圖4所示。

② Error事件:只要后臺處理中出現錯誤(例如連接失敗、收發(fā)數據失敗)事件都會出現,方便我們對程序的監(jiān)控和調試。

在后臺處理中出現錯誤時發(fā)生:

Private Sub W insock— Server_

Eror(ByVal Number As Inte.

ger,Description As String,ByVal Se ode As Long,ByValSource As String,ByVal HelpFile As String,ByVal Help—Context As Long,CancelDisplay As Boolean

MsgBox“網絡運行出錯!代碼=”+CStr(Err)+“:”

+Error,vbCritical,“錯誤信息”

Exit Sub

End Sub

5 結束語

    基于ARM高速數據采集裝置的遠程監(jiān)控的設計,從硬件和軟件兩方面看是可行的,實際制板調試結果很好地完成了遠程通信任務。對工業(yè)現場的遠程監(jiān)控提供了新的解決方案。隨著以太網的日益普及,該方案有著很強的實踐意義。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: 驅動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅動電源的性能直接關系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅動電源設計中至關重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅動性能的關鍵。

關鍵字: 工業(yè)電機 驅動電源

LED 驅動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關鍵字: 驅動電源 照明系統(tǒng) 散熱

根據LED驅動電源的公式,電感內電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關鍵字: LED 設計 驅動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產業(yè)的重要發(fā)展方向。電動汽車的核心技術之一是電機驅動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅動系統(tǒng)中的關鍵元件,其性能直接影響到電動汽車的動力性能和...

關鍵字: 電動汽車 新能源 驅動電源

在現代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質量和效率直接關系到城市的公共安全、居民生活質量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關鍵字: 發(fā)光二極管 驅動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數校正(PFC)、空間受限和可靠性等。

關鍵字: LED 驅動電源 功率因數校正

在LED照明技術日益普及的今天,LED驅動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關鍵字: LED照明技術 電磁干擾 驅動電源

開關電源具有效率高的特性,而且開關電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現在的LED驅動電源

關鍵字: LED 驅動電源 開關電源

LED驅動電源是把電源供應轉換為特定的電壓電流以驅動LED發(fā)光的電壓轉換器,通常情況下:LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: LED 隧道燈 驅動電源
關閉