基于嵌入式以太网接口的数据采集处理系统
- 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卷