当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]随着信息化的不断发展,在工业自动化、电力设备、通信管理、智能终端、智能小区等领域,对数据采集的实时性、可靠性的要求也不断地提高。以往传统的单片机 加采集卡的数据采

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

1 系统简介

本装置由硬件和软件两部分组成,如图1所示。系统硬件由高速数据采集平台和采集模块构成。采集模块根据设计要求,采用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,含有调试通道的内部仿真器,便于开发调试。由于AT91RM9200具有功能全、功耗低和工业级等优 点,可以使系统能运用到各种环境中。

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

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协议中的TCP(传输控制协议)、IP(网络报文协议)、ARP(地址解析协议)及简单的应用层协议成功地实现了ARM装置和服务端的网络互联。既提高了数据传输的速度,又保证了数据传输的正确性,同时也扩展了数据传输的有效半径。

3 下位机的通信实现

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

在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编译通过。[!--empirenews.page--]

4 上位机的通信实现

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

在本系统中作为服务器的运用软件,在Winsock控件的属性设置上要注意:

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

4.1 Winsock控件方法

Winsock控件方法主要有以下几种:

① Listen方法。在运用程序初始化时创建套接

字并将其设置为侦听状态,等待客户机的连接请求。

Private Sub Form_ Load()

FrmMain.Winsock— Server.Listen

End Sub

② Accept方法。当有新连接时就会出现ConnectionRequest

事件,处理该事件时,运用程序应该用Accept方法接收连接。

∥当远程客户机(AT91RM9200)发出请求连接时发生

Private Sub Winsock



Server

— Connecti0nRequest( ByVal

requestID As Long)

If W insock

— Server.State < > sckClosed Then W insock—

Server.Close保证Winsock控件不是处于Close状态

W insock— —

Server.Accept requestlD

∥服务器接收客户机(A’I-91 RM9200)的请求

End Sub

③ SendData方法。服务器给客户机发送控制命

令,如开始执行、停止、数据的转存等,实现对客户机的

远程控制。

本函数按TCP模式按二进制方式发送数据包给

客户机,函数成功返回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控件在连接状态

W insock— . Server.Se ndData Data_ Buf

End If

Send— Data— To— kehu=True

Exit Function

Err_ Pa~:

Send— Data— To— kehu = False

MsgBox“发送数据出错!错误代码=”+CStr(Er)+

“ :”+Error,vbExclamation,“错误提示”

Exit Function

End Function

4.2 Winsoek控件事件

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

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

② Error事件:只要后台处理中出现错误(例如连接失败、收发数据失败)事件都会出现,方便我们对程序的监控和调试。

在后台处理中出现错误时发生:

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

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭