高速数据采集远程监控系统技术设计和应用

出处:互联网 发布于:2011-09-04 16:47:33

  随着信息化的不断发展,在工业自动化、电力设备、通信管理、智能终端、智能小区等领域,对数据采集的实时性、可靠性的要求也不断地提高。随着采集卡的采集频率不断地提升,其所属平台的工作频率也应跟上时代的步伐。在各种设备的通信方式中,由于以太网具有速度快、通用性好、扩展性强等优点,已13渐成为设备之间进行通信的主要方式。本文提出了基于ARM的高速数据采集装置远程监控系统,在实现对数据的高速采集的同时,能保证数据的可靠性和实时性,并对各帧数据嵌入时间标志为后续数据处理做好准备,能将数据及时准确地存储到移动存储设备和服务器上。

  远程视频监控系统是以维护社会公共安全和预防灾害事故为目的的一项系统工程,在银行、智能小区、金融系统、大型商场中都有广泛地应用。把监控系统中存储的图片传输到远程的PC机,以前是通过Modem串口传输。串口传输有一个缺点是速率太慢,而且传输的数据容易出错。相对于串口传输来说,TCP/IP网络传输速度快,传输的数据出错几率低,因为它具有纠错机制。

  ARM(Advanced RISC Machines)是,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。技术具有性能高、成本低和能耗省的特点。适用于多种领域,比如嵌入控制、消费/教育类多媒体、DSP和移动式应用等。ARM公司以及ARM芯片的现状和发展,从应用的角度介绍了ARM芯片的选择方法,并介绍了具有多芯核结构的ARM芯片。列举了目前的主要ARM芯片供应商,其产品以及应用领域。举例说明了几种嵌入式产品的ARM芯片选择方案。

  系统简介

  本装置由硬件和软件两部分组成,如图1所示。系统硬件由高速数据采集平台和采集模块构成。采集模块根据设计要求,采用DMM一32一AT采集板。带有10/100 MB Base—T型以太网卡接口,USB 2.0全速(12 Mbps)主机/设备接口。内含内存管理单元MMU,含有调试通道的内部仿真器,便于开发调试。由于AT91RM9200具有功能全、功耗低和工业级等优点,可以使系统能运用到各种环境中。

  系统的下位机软件选择嵌入式Linux操作系统。嵌入式Linux是将日益流行的Linux操作系统进行裁剪修改,使之能在嵌入式计算机系统运行的一种操作系统,它既有无限的开放源代码资源,又有嵌人式操作系统的特性。通过对内核的重新配置、编译,即可将其移植到Aqgl RM9200中;再建立BootLoader和文件系统,形成基于ARM的嵌入式Linux操作系统,在此平台上开发运用程序,实现装置的各个功能。

  系统联调

  联调工具:万用表,信号发生器,数字示波器,仿真软件,ARM小系统,计算机

  硬件测试:检查电路板是否有虚焊,短路,短路,无误后通电,万用表检测电源是否正常,示波器检测FPGA和ARM的时钟信号。

  MAXPLUS 2 ,Quartus 2

  TCP/IP协议

  在因特网上,TCP/IP协议每时每刻保证了数据的准确传输。参考开放系统互连(OSI)模型,TCP/IP通常采用一种简化的四层模型,分别为:

  应用层。网络应用层要有一个定义清晰的会话过程,如通常所说的Http、Ftp、Telnet等。在本系统中,下位机系统传递来自Ethernet和数据终端的数据,应用层只对大的数据报进行打包拆包处理。

  传输层。传输层让网络程序通过明确定义的通道及某些特性获取数据,如定义网络连接的端口号等,实现该层协议的传输控制协议TCP和用户数据协议UDP。TCP服务提供了数据流传输、可靠性、有效流控制、全双工操作和多路复用技术等,在本系统中使用TCP数据报协议。

  网络层。网络层让信息可以发送到相邻的TCP/IP网络上的任一主机上,IP协议就是该层传送数据的机制。同时建立网络间的互连,提供ARP地址解析协议,从而实现从IP地址到数据链路物理地址的映像。

  链路层。由控制同一物理网络上的不同机器间数据传送的底层协议组成,实现这一层的协议并属于TCP/IP协议组。在本系统中这部分功能由ARM控制网卡芯片DM9161E实现。

  下位机的通信实现

  下位机作为客户端,它和服务器的TCP/IP通信是通过对套接字编程实现的。套接字是网络通信的基本操作单元,早是作为BSD规范提出来的,现已成为Linux操作系统下TCP/IP网络编程标准。套接字提供了不同主机间进程双向通信的端点,这些进程在通信前各自建立一个Socket,并通过对Socket的 写操作实现网络通信功能。下文将讨论的Winsock也是一个用于Windows系列操作系统的Sockets版本 。TCP/IP协议簇中的TCP协议使用此类接口。

  在Linux提供的3种套接字中,本文选择流式套接字。流式套接字是常用的套接字类型,其传输特点为:面向链接、无差错、发送先后顺序一致、包长度不限和非重复的网络信息包。TCP/IP协议簇中的TCP协议使用此类接口。下位机与服务器通信实现如图2所示。

  Socket()函数:用于创建一个套接字描述符。

  #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()函数:从套接字缓冲区写数据。

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

  ∥向服务器反馈工作状态即执行服务器下达的命令情况

  ∥Conn—ID为已经建立的套接字描述符

  {

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

  }

  Read()函数:从套接字缓冲区读取数据

  int Receive_ Command(int Conn—ID)

  {?

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

  ∥成功返回实际收到的字节总数,出错返回一1

  }

  Close()函数:用于关闭一个套接字描述符。

  close(Socket—ID); //关闭连接下位机的开发都是在Linux环境下用交叉编译器ARM.Linux—gcc编译通过。

  上位机的通信实现

  服务器监控软件是用Visual Basic 6.0来编写的。在Visual Basic(以下简称VB)中,进行网络通信开发是非常方便的。VB除了提供丰富的控件外,还提供了各种API来进行更为的运用程序的开发。在编写客户或服务器运用程序时,不必了解TCP的细节或低级的Win—sock API。通过设置控件的属性并调用其方法就可连接到一个远程客户/服务器端,并且双向交换数据。

  Protocol属性。返回或设置Winsock控件所使用的协议(TCP或UDP)。

  UDPFrmMain.Winsock— Server.Protocol:sckTCPProtocol

  ∥选择TCP协议,提高数据传输的可靠性

  LocalPort属性。返回或设置所用到的本地端口。对客户来说,该属性指定发送数据的本地端口;对于服务器来说,是指定侦听的本地端口。

  FrmMain.W insock— Server.LocalPort=LocalPort— ID∥服务器端口号,大于1 000

  State属性。返回控件的状态,设计时只读。用在判断监控网络状态,根据状态改变各个按键指示

  灯的状态,提高操作安全性。其设置如下:

  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=“侦听”

  Winsoek控件事件

  Winsock控件事件分为以下2种。

    DataArrival事件:该事件是通信的部分。当给客户端发送完命令后,接收客户端返回的命令执行情况,实现对客户机运行状态的监察。如果是数据转存命令时,还要完成接收客户机上传的采集数据和对数据的服务器存储,进一步提高系统的可靠性。其流程如图3所示。接收到FTP头数据包后, P传输数据的格式定义如图4所示。

    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

  结束语

  基于ARM的高速数据采集装置的远程监控的设计,从硬件和软件两方面看是可行的,实际制板调试结果很好地完成了远程通信任务。对工业现场的远程监控提供了新的解决方案。随着以太网的日益普及,该方案有着很强的实践意义。


  

版权与免责声明

凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,https://www.dzsc.com,违反者本网将追究相关法律责任。

本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。

如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

OEM清单文件: OEM清单文件
*公司名:
*联系人:
*手机号码:
QQ:
有效期:

扫码下载APP,
一键连接广大的电子世界。

在线人工客服

买家服务:
卖家服务:
技术客服:

0571-85317607

网站技术支持

13606545031

客服在线时间周一至周五
9:00-17:30

关注官方微信号,
第一时间获取资讯。

建议反馈

联系人:

联系方式:

按住滑块,拖拽到最右边
>>
感谢您向阿库提出的宝贵意见,您的参与是维库提升服务的动力!意见一经采纳,将有感恩红包奉上哦!