基于嵌入式以太网接口的数据采集处理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
收稿日期:2004-08-22
作者简介:代 勇(1980—
),男,湖北武汉人,硕士研究生,主要从事测控技术自动化方面的研究。
基于嵌入式以太网接口的数据采集处理系统
代 勇,李昌禧
(华中科技大学控制科学与工程系,湖北武汉430074)
摘 要:为满足生产及科研中对数据采集网络化的要求,文中介绍了一种采用SOC 高性能单片机和嵌入式以太网接口的数据采集处理系统。
从硬软件两方面阐述了数据采集系统、数据处理系统和嵌入式以太网接口的设计和实现;对系统的数据采集处理、数据传输的可靠性和速率进行了测试。
测试表明系统整体性能满足实际应用的要求。
关键词:数据采集与处理;嵌入式以太网接口;TCP/IP 协议
中图分类号:TP274+12 文献标识码:A 文章编号:1005-3751(2005)05-0125-03
Data Acquisition System B ased on Embedded Ethernet Interface
DA I Y ong ,L I Chang 2xi
(Dept.of Control Sci.&Eng.,Huazhong Univ.of Sci and Techn.,Wuhan 430074,China )
Abstract :In order to meet the requirement for data acquisition networking in production and scientific research ,this paper introduces a kind of data acquisition and processing system based on embedded Ethernet interface ,gives hardware and software design of the embedded network interface module ,data processing program separately.The functions of data acquisition ,reliability and data transmission rate of network module have been validated.The test shows that the performances of the system can meet the requirement for practical application.
K ey w ords :data acquisition and processing ;embedded Ethernet interface ;TCP/IP
0 引
言
在生产和科研等领域中数据采集和处理系统的网络化是必然的方向。
传统数据采集与数据处理系统多采用
RS232或RS422/485等串行总线来实现其网络化,这些方
式都存在传输速率有限和联网能力不足等缺陷。
IEEE802.3标准以太网是一种比较合适的数据采集与处
理系统的联网方式,其数据传输速率能够满足大多数的数据采集与处理系统的要求,传输距离远、建网简单方便、网络协议很成熟,而且比较廉价[1,2]。
文中从硬软件两方面介绍一种基于嵌入式以太网接口的数据采集与处理系统的设计思路及实现。
1 数据采集与处理系统构成
基于嵌入式以太网接口的数据采集系统利用单片机
C8051F022内部集成的ADC 和数字端口来采集各种变
量,转换后的数据经网络控制芯片W3100a 打包后通过以太网上传到数据处理系统。
数据处理系统以Socket 技术为基础,通过Delphi 集成开发环境编程获取数据并对其进行处理和显示。
数据采集与处理系统之间的数据传输采
用IEEE802.3标准,接口简单、传输快速且可靠。
数据采集系统的联网示意图参见图1。
图1 数据采集系统联网示意图
2 数据采集系统硬件设计
系统硬件以C8051F022为核心,它是Cygnal 公司最近推出的一种混合信号SOC 型8位单片机。
它与8051单片机兼容,采用流水线指令结构,平均指令速率可达5MIPS ,最高可达25MIPS ;内部集成4352字节内部数据RAM 和
64k 字节闪速存储器,可在线系统编程;拥有多路模拟和数
字输入输出通道,可节省大量外设的硬件开销[3]。
数据采集系统由数据采集模块和嵌入式以太网接口模块两部分组成。
数据采集系统利用单片机内部集成模拟和数字设备完成模拟及数字量的采集,数据处理后通过
8位总线方式对网络控制模块进行控制调度和数据交换。
第15卷 第5期2005年5月 微 机 发 展Microcomputer Development Vol.15 No.5May 2005
单片机程序的下载和功能调试分别通过J TAG 和RS232接口来完成。
以太网接口模块主要由W3100a 和Rtl8201组成,完成两个功能:一是解析来自以太网的数据包并将解析后的数据传送给单片机;二是对本地数据进行分组打包并按指定的IP 和端口号向以太网传输。
图2为数据采
集系统的原理框图。
图2 数据采集系统原理框图
3 嵌入式以太网接口模块硬件设计
网络接入模块以W3100a 核心,它是韩国Wiznet 公司生产的Internet 接入芯片,由4部分组成:微控器接口单元、网络协议引擎、双口RAM 以及网络物理层介质接口
MII (Media Independent Interface )单元。
它支持全双工4~5Mbps 的数据通信,并可同时支持4个独立的网络连
接[4]。
它与单片机的接口如图3所示,W3100a 通过数据线D[0]~D[7]、地址线A[0]~A[14]和写信号/WR 、读信号/RD 、中断信号/IN T 、片选信号/CS 与C8051F022接口,其余的是与标准MII 物理层接口芯片RTL8201的连线。
TX ±和RX ±通过耦合变压器与RJ -45标准插座相连。
图3 以太网接入模块接口设计
网络模块工作在较高(25MHz )的频率之下,为了尽可能减小电磁干扰对模块和整个系统的影响,提高系统稳定性,在制作网络接口模块的PCB
板时应特别注意以下一些问题:首先是元件的摆放,W3100a 和Rtl8201、耦合变压器和RJ -45插座应尽可能地靠近,从Rtl8201到耦合变压器的最大距离不要超过12cm ;其次是布线,在Rtl8201的背面布TX ±和RX ±(尽量保持它们的布线长度一致),正面布CLOCK 。
模拟信号线(TX ±和RX ±)和数字信号线
(MII 信号和CLOCK )尽量保持距离,最好是进行隔离,如
果必须交叉时它们的布线应保持垂直;最后是电源和地,在数字电源和数字地之间、模拟电源和模拟地之间使用011
μF 的解耦电容连接,数字地和模拟地之间用一个100MHz 时动态等效电阻为100Ω的磁珠连接,这样可以
有效地滤除高频干扰。
4 嵌入式以太网接口的软件设计
数据采集系统的软件设计中,以太网接口模块的程序设计是重点。
C8051F022从W3100a 内部的控制寄存器读出各状态并以此写入各种命令字,协调各种状态之间的转换,以达到建立各种连接(TCP 、UDP )的目的。
要建立基于TCP 的Socket 连接,首先设置W3100a 各寄存器初始值,设定各个通道的收发数据缓冲区大小,然后设定网络模块的IP 地址、子网掩码、端口号、通道号等参数,再发送创建Socket 的命令,选择使用TCP 协议并设置工作方式为Server 模式,等待主机连接。
网络模块如果侦听到主机发送的Socket 连接命令而且确认有足够的空间接收数据,就可以通过以太网和数据处理系统进行通信了。
W3100a 收发数据是通过单片机对其内部数据指针的
操作完成的。
W3100a 中每个通道的数据指针都由4字节组成,而它提供的与单片机接口的是8位总线的方式。
为了方便操作这些数据指针,在设计程序时定义一个联合体变量un -l2cval :
typedef union -un -l2cval {unsigned long lVal ;u -char cVal[4];}un -l2cval ;
利用这个联合体变量来操作这些4字节的指针来进行数据的读写。
需要注意的是,在读这些指针对应的寄存器时,如果发生中断这些寄存器里的值可能会改变。
为了避免错误出现,在读寄存器之前先关闭外部中断。
当数据传输结束,如要关闭Socket 连接,那么在执行关闭Socket 的命令前必须首先检查发送缓冲区,等到发送缓冲区为空时方可执行该命令,否则会产生诸如FIN ,ACK 包的泛滥等不可预测的问题。
Socket 连接和数据传输程序框图如图4所示。
图4 S ocket 连接和数据传输程序框图
・
621・ 微机发展 第15卷
图5 客户端样例程序
5 数据处理系统的软件设计
数据处理系统的软件设计以Socket 技术为基础。
Socket 是一个网络编程接口,可适用于不同网络协议。
在Windows 环境下使用的Socket 称为Winsock 。
它规范定
义了一个TCP/IP 网络上开发Windows 程序的已被接受的标准,Winsock 的API 函数在Windows 下是以动态链接库(DLL )的形式来提供[5]。
Delphi 集成开发环境中,提供了Client socket 和Server socket 控件,它们封装了客户端与服务器端的Socket 实现。
Client socket 控件实现了分布式应用程序的客户应用程序的Socket 的功能,Server
socket 控件实现分布式应用程序的服务器应用程序的Socket 的功能。
在本设计中数据采集系统做服务端,数据
处理系统做客户端。
客户端连接服务端后,首先发送字节指令,服务端解析了指令后按要求向客户端发送数据,客户端读取数据并进行处理和显示。
设计上位机程序时,在窗体中添加所需的控件以及对Client socket 控件做如表1所示的初始化。
通过按钮触发的Onclick 事件向服务器发送连接请求,程序从TEdit 控件中获取服务器的IP 地址和端口号,并激活客户端。
待连接建立后,客户端便可向服务端发送指令并在Onread 事件中利用ReceiveBuf ()函数读取所需的数据。
客户端样例程序如图5所示,在地址和端口栏输入服务端(数据采集系统)的IP 和端口号后,点击“connect ”,状态栏提示连接建立后就可在命令栏中输入命令发送给服务端。
图5中显示的数据就是数据采集系统根据命令通过以太网上传的通道0采样的电压值。
表1 Client socket 控件初始化表
Name Client Socket Client Type
StNonBlocking
Port 5000
On Connect ClientSocketConnect On Disconnect ClientSocketDisConnect On Error ClientSocket Error On Read
ClientSocketRead
6 测试与结论
数据系统可以分时对多路模拟和数字量进行采集,网络系统支持TCP ,Ipv4,UDP ,ICMP ,ARP 等协议以及
10/100M 自适应检测。
在网络互连方面该系统在局域网
内和公众网内都可正常运行;数据传输量大时速率可达
300kbps ,而在数据包比较小的情况下,如数据包小于1460
字节时,则传输速率可达2Mbps 。
数据采集系统的体积小功耗低,不仅满足大多数情况下数据采集的需要,而且拓展了系统应用的范围。
如果系统需要进一步提速,可以考虑对单片机使用更高频率的晶振(本设计使用12MHz 晶振),但同时会提高系统功耗。
参考文献:
[1] 王晓东,马 军,徐佩霞.数据采集系统网络接入设计与实
现[J ].数据采集与处理,2004,19(1):99-102.
[2] 冯海涛,乔 崇,邢 涛,等1200通道分布式同步数据采集
系统[J ].数据采集与处理,2004,19(2): 223-227.
[3] 潘琢金,施国军.C8051Fxxx 高速SOC
单片机原理及应用[M ].北京:北京航空航天大学出版社,2002.
[4] WIZnet 1W3100a Technical Datasheet v1.
3[EB/OL ].http :// ,2003.
[5] 谢安明,邵美珍.使用Socket 设计网络通
讯程序[J ].信息工程大学学报,2001,2
(1):68-70.
(上接第124页)
5 结束语
文中结合工程实践,以VxWorks 与X86架构的嵌入式计算机为软硬件平台,较深入地阐述了在实时系统中设计中断应用时需要考虑的一些问题。
由于篇幅所限,一些在其他资料中被广泛提及的设计要点(如中断服务程序不能调用可能会引起调用阻塞的函数)在此不作介绍。
参考文献:
[1] VxWorks Programmer ’s Guide 5.4[Z].USA :Wind River
System ,Inc ,1999.
[2] 孔祥营,柏桂枝.嵌入式实时操作系统VxWorks 及其开发
环境Tornado[M].北京:中国电力出版社,2001.
[3] 芮 力.实时操作系统VxWorks 下设备驱动程序的设计
[J ].空军雷达学院学报,2001,15(1):40-44.
[4] 尚 涛.实时操作系统VxWorks 下I/O 设备驱动程序的编
写技巧[J ].微计算机信息,2001,17(8):24-26.
[5] 陈智育,温彦军,陈 琪.VxWorks 程序开发实践[M ].北
京:人民邮电出版社,2004.
・
721・第5期 代 勇等:基于嵌入式以太网接口的数据采集处理系统。