




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于ARM高速数据采集远程监控系统的应用摘要:简要介绍了TCPIP协议,给出了基于北京ARM开发板嵌入式高速数据采集装置的远程监控系统的实现方案。系统以下位机作为客户端,在Af91RM9200和嵌入式Linux搭建的软硬件平台上运行;将上位机作为服务器端,用VB60开发监控平台软件;两者通过TCPIP实现了采集数据和控制命令的传输以及服务器监控模式。O 引言随着信息化的不断发展,在工业自动化、电力设备、通信管理、智能终端、智能小区等领域,对数据采集的实时性、可靠性的要求也不断地提高。以往传统的单片机加采集卡的数据采集装置已经不能满足人们使用的要求。随着采集卡的采集频率不断地提升,其所属平台的工作频率也应跟上时代的步伐。同时,在某些情况下,装置的操控人员不可能到工作现场去执行,所以有必要对采集装置进行远程监察和控制。在各种设备的通信方式中,由于以太网具有速度快、通用性好、扩展性强等优点,已13渐成为设备之间进行通信的主要方式。本文提出了基于ARM的高速数据采集装置远程监控系统,在实现对数据的高速采集的同时,能保证数据的可靠性和实时性,并对各帧数据嵌入时间标志为后续数据处理做好准备,最后能将数据及时准确地存储到移动存储设备和服务器上。该装置包括现场监控模式和服务器监控模式。1 系统简介本装置由硬件和软件两部分组成,如图1所示。系统硬件由高速数据采集平台和采集模块构成。采集模块根据设计要求,采用DMM一32一AT采集板。采集平台采用ATMEL公司A791RM9200作为主控芯片,附带16 kB的SDRAM和128 kB的ROM。该芯片融合了ARM920T ARM Thumb处理器,当工作频率为180 MHz时性能高达200 MIPS。带有10100 MB BaseT型以太网卡接口,USB 20全速(12 Mbps)主机设备接口。内含内存管理单元MMU,含有调试通道的内部仿真器,便于开发调试。由于AT91RM9200具有功能全、功耗低和工业级等优点,可以使系统能运用到各种环境中。系统的下位机软件选择嵌入式Linux操作系统。嵌入式Linux是将日益流行的Linux操作系统进行裁剪修改,使之能在嵌入式计算机系统运行的一种操作系统,它既有无限的开放源代码资源,又有嵌人式操作系统的特性。通过对内核的重新配置、编译,即可将其移植到Aqgl RM9200中;再建立BootLoader和文件系统,形成基于ARM的嵌入式Linux操作系统,最后在此平台上开发运用程序,实现装置的各个功能。2 TCPIP协议在因特网上,TCPIP协议每时每刻保证了数据的准确传输。参考开放系统互连(OSI)模型,TCPIP通常采用一种简化的四层模型,分别为: 应用层。网络应用层要有一个定义清晰的会话过程,如通常所说的Http、Ftp、Telnet等。在本系统中,下位机系统传递来自Ethernet和数据终端的数据,应用层只对大的数据报进行打包拆包处理。 传输层。传输层让网络程序通过明确定义的通道及某些特性获取数据,如定义网络连接的端口号等,实现该层协议的传输控制协议TCP和用户数据协议UDP。TCP服务提供了数据流传输、可靠性、有效流控制、全双工操作和多路复用技术等,在本系统中使用TCP数据报协议。 网络层。网络层让信息可以发送到相邻的TCPIP网络上的任一主机上,IP协议就是该层传送数据的机制。同时建立网络间的互连,提供ARP地址解析协议,从而实现从IP地址到数据链路物理地址的映像。 链路层。由控制同一物理网络上的不同机器间数据传送的底层协议组成,实现这一层的协议并属于TCPIP协议组。在本系统中这部分功能由ARM控制网卡芯片DM9161E实现。在本系统中,利用TCPIP协议中的TCP(传输控制协议)、IP(网络报文协议)、ARP(地址解析协议)及简单的应用层协议成功地实现了ARM装置和服务端的网络互联。既提高了数据传输的速度,又保证了数据传输的正确性,同时也扩展了数据传输的有效半径。3 下位机的通信实现下位机作为客户端,它和服务器的TCPIP通信是通过对套接字编程实现的。套接字是网络通信的基本操作单元,最早是作为BSD规范提出来的,现已成为Linux操作系统下TCPIP网络编程标准。套接字提供了不同主机间进程双向通信的端点,这些进程在通信前各自建立一个Socket,并通过对Socket的 写操作实现网络通信功能。下文将讨论的Winsock也是一个用于Windows系列操作系统的Sockets版本 。在Linux提供的3种套接字中,本文选择流式套接字。流式套接字是最常用的套接字类型,其传输特点为:面向链接、无差错、发送先后顺序一致、包长度不限和非重复的网络信息包。TCPIP协议簇中的TCP协议使用此类接口。下位机与服务器通信实现如图2所示。 Socket()函数:用于创建一个套接字描述符。#include#includeSocket ID=socket(AF_INET,SOCK_STREAM,0);ff PFINET OR AFINET Intemet IP Protocal SOCKSTREAM选择流式套接字 Connect()函数:用于与远端服务器建立一个TCP连接请求。Status=connect(SocketID,(struc sockaddr)&ServerAddr,sizeof(struct sockaddr); 一定要指定服务器的IP地址和端口号,可带参数运行程序时指定,也有默认的lP和端口号if(status!= 一1) 一1:连接过程出错 Write()函数:从套接字缓冲区写数据。int Net Send SysConfig(int ConnID,char Cmdname)向服务器反馈工作状态即执行服务器下达的命令情况ConnID为已经建立的套接字描述符status=write(ConnID,sendbuff,len);向服务器发送信息 Read()函数:从套接字缓冲区读取数据int Receive_ Command(int ConnID)return len=read(ConnID,NetBuf,RECBUFF_SIZE);成功返回实际收到的字节总数,出错返回一1 Close()函数:用于关闭一个套接字描述符。close(SocketID); 关闭连接下位机的开发都是在Linux环境下用交叉编译器ARMLinuxgcc编译通过。4 上位机的通信实现服务器监控软件是用Visual Basic 60来编写的。在Visual Basic(以下简称VB)中,进行网络通信开发是非常方便的。VB除了提供丰富的控件外,还提供了各种API来进行更为高级的运用程序的开发。本装置通过Winsock控件进行网络开发。Winsock控件对用户是不可见的,它提供了访问TCP和UDP网络服务的方便途径。在编写客户或服务器运用程序时,不必了解TCP的细节或低级的Winsock API。通过设置控件的属性并调用其方法就可连接到一个远程客户服务器端,并且双向交换数据。在本系统中作为服务器的运用软件,在Winsock控件的属性设置上要注意: Protocol属性。返回或设置Winsock控件所使用的协议(TCP或UDP)。UDPFrmMainWinsock ServerProtocol:sckTCPProtocol选择TCP协议,提高数据传输的可靠性 LocalPort属性。返回或设置所用到的本地端口。对客户来说,该属性指定发送数据的本地端口;对于服务器来说,是指定侦听的本地端口。FrmMainW insock ServerLocalPort=LocalPort ID服务器端口号,最好大于1 000 State属性。返回控件的状态,设计时只读。用在判断监控网络状态,根据状态改变各个按键指示灯的状态,提高操作安全性。其设置如下:Connected State=FrmMainW insock ServerStateSelect Case Connected StateCase 0 StatusBar1Panels(3)Text= “关闭”Case 1 StalusBar1Panels(3)Text=“打开”Case 2 StatusBar1Panels(3)Text=“侦听”41 Winsock控件方法Winsock控件方法主要有以下几种: Listen方法。在运用程序初始化时创建套接字并将其设置为侦听状态,等待客户机的连接请求。Private Sub Form_ Load()FrmMainWinsock ServerListenEnd Sub Accept方法。当有新连接时就会出现ConnectionRequest事件,处理该事件时,运用程序应该用Accept方法接收连接。当远程客户机(AT91RM9200)发出请求连接时发生Private Sub WinsockServer Connecti0nRequest( ByValrequestID As Long)If W insock ServerState sckClosed Then W insockServerClose保证Winsock控件不是处于Close状态W insock ServerAccept requestlD服务器接收客户机(AI-91 RM9200)的请求End Sub SendData方法。服务器给客户机发送控制命令,如开始执行、停止、数据的转存等,实现对客户机的远程控制。本函数按TCP模式按二进制方式发送数据包给客户机,函数成功返回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控件在连接状态W insock ServerSe ndData Data_ BufEnd IfSend Data To kehu=TrueExit FunctionErr_ Pa:Send Data To kehu = FalseMsgBox“发送数据出错!错误代码=”+CStr(Er)+“ :”+Error,vbExclamation,“错误提示”Exit FunctionEnd Function42 Winsoek控件事件Winsock控件事件分为以下2种。 DataArrival事件:该事件是通信的核心部分。当给客户端发送完命令后,接收客户端返回的命令执行情况,实现对客户机运行状态的监察。如果是数据转存命令时,还要完成接收客户机上传的采集数据和对数据的服务器存储,进一步提高系统的可靠性,其流程如图3所示。接收到FTP头数据包后, P传输数据的格式定义如图4所示。 Error事件:只要后台处理中出现错误(例如连接失败、收发数据失败)事件都会出现,方便我们对程序的监控和调试。在后台处理中出现错误时发生: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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年康复医疗服务体系建设报告:社区康复与运营模式创新探索
- 购房协议更换网签合同
- 转让劳务分包合同范本
- 器械力学性能提升-洞察及研究
- 进口钾肥销售合同范本
- 装修材料验收合同范本
- 销售生产合伙合同范本
- 服装生产销售合同范本
- 音乐版权捐赠合同范本
- 车间改造劳务合同范本
- (完整)注册安全工程师考试题库(含答案)
- 高考作文素材积累与写法总结27 自知与知人作文审题指导及素材积累
- 电子政务概论-形考任务5(在线测试权重20%)-国开-参考资料
- 2024年贵州省贵阳市中考生物地理合卷试题(含答案逐题解析)
- DNDC模型使用手册
- DL∕T 2487-2022 电力燃煤机械名词术语
- 起重机械生产单位质量安全总监-特种设备考试题库
- JBT 9189-2016 水基材料防锈试验方法 铸铁屑试验
- JJF 1064-2024 坐标测量机校准规范
- 《春江花月夜》省公开课金奖全国赛课一等奖微课获奖课件
- 人音版小学六年级上册音乐教案(本)
评论
0/150
提交评论