一种基于嵌入式单片机的以太网高速数据传输系统

2022-02-03 08:19李合军
中国新技术新产品 2022年20期
关键词:传输速率寄存器以太网

李合军

(湖南环境生物职业技术学院,湖南 衡阳 421005)

0 引言

随着现代数据收集技术的不断发展,更多的现场数据收集设备需要扩展功能,以实现数据传输和远程操作的功能。以太网具有成本低、集成效果良好且传输距离远的优点,因此其应用范围较广。以太网传统解决方法是利用主控芯片连接物理层接口,在内部编写以太网协议,由于该方法开发耗时长、难度高、协议程序复杂且运行时缺乏稳定性,因此导致其关注度逐年下降[1]。而利用嵌入式单片机AT89C51 配置寄存器、存储器和端口等设备以及外线连接就可以实现以太网的数据传输功能,这种方法具有高集成性、开发难度低、易操作且运行较为稳定等特点,已成为以太网数据传输的最佳方案[2]。基于该背景,该文拟设计一种能够利用FPGA 控制AT89C51,并以TCP/IP 为协议进行以太网高速数据传输的系统,TCP/IP 协议栈处理通过AT89C51 来完成,实测传输速率高于90 Mbit/s,可以有效满足现实应用的部分需求。

1 系统硬件设计

该设计选用现场可编程逻辑门阵列(Field Programmable Gate Array,FPGA)控制嵌入式单片机AT89C51 实现以太网高速数据通信的功能,在接收上位机软件命令后进行相应操作,从而在不同网络间创建连接。FPGA 内有2 种I/O 接口,虽然有普通与高速之分,但是传输速率基本可稳定到15 Gbit/s,传输稳定性良好,因此将FPGA 作为主控芯片[3]。为了实现传输速率高于90 Mbit/s 的目标,AT89C51 采用16 位宽度数据模式,配置自动握手运行。16 位宽度数据位与I/O 相连,将接收数据储存于Flash 中,一般使用双备份能够使数据更精确。为了使AT89C51 在数据传输时的高频电压抑制性能更高,可以隔开其产生的电压信号[4]。该系统硬件设计并未采用常用的H81601S,而是选用贴片变压器G82409S。该变压器与选频电路相通,可以使通带信号通过,直接抑制阻带信号,并且其阻带电压增益接近0。该系统硬件电路设计如图1 所示。

图1 INT 硬件电路设计

1.1 电源管理

电源是系统的动力源,良好的电源管理既可以为系统提供稳定的电压,还可以延长系统的使用寿命。系统中数据收集、波形解调以及处理器工作电压均为3.3 V,设计采用手机适配器5.0 V 为系统提供电源,如果开关电源输出滤波电容较大,那么在启动过程中因输出电压而无法在短时间内上升,控制器判定为输出短路故障。同时,通过G82409S 将5.0 V 转换成3.3 V,在设计中设计多个储能电容,可以有效滤除电压纹波。

1.2 高速收集

系统对外部信号收集的设计是基于FPGA 的,其采样速率为10 Mbit/s,单电源12 bits,且具有单端和差分模拟的输入方式。FPGA 提供了12 bits 的有效输出位,输出字节顺序均是按照“高位→低位”的模式,支持串行外设接口(Serial Peripheral Interface,SPI)的输出。FPGA 外部有多个引脚可以供用户二次开发使用,部分引脚为数据输出引脚,处理器通过控制接口收集外部各类信号。

1.3 传输模式

为了将各类计算机设备连接在一起,相关机构定义了一系列基于以太网的软硬件协议标准。目前,常用的以太网接口协议包括TCP/IP 协议和UDP 协议。与TCP/IP 协议不同的是,UDP 协议具有更快的传输速率,但是其数据缺少挑战握手验证协议(Challenge Handshake Authentication Protocol,CHAP),因此无法较好地保证高速数据的稳定性。而TCP/IP 协议能够保持双向传输,TCP 与IP 可以协同工作,在创建连接前可进行CHAP,从而使客户端与服务器进行3 次确认连接,在满足数据高速传输的基础上保证了数据的稳定性。

1.4 设置接口信号

使用AT89C51 内部端口物理层(Physical Layer,PHY),TEST_MODE 的引脚用于配置PHY 模式,在内部PHY 运行中,将OP_MODE 的引脚接地,选择自动握手模式。这样AT89C51 是通过2 路差分信号(RXIP/RXIN 与TXOP/TXON)与变压器相连,差分信号引脚需接50 Ω 的电阻与1 个0.1 μF 的电容,从而使抗阻匹配效果更良好[5]。为了消除导线抗阻不一致对信号产生的负面影响,差分信号的走线长度应尽可能接近。接口信号见表1。

表1 接口信号

2 系统软件设计

通过寻址控制FPGA 操控AT89C51,合理配置寄存器。AT89C51 控制时序包括复位时序和寄存器读写时序[6]。复位时序产生复位信号并控制复位逻辑,寄存器读写时序控制读写数据逻辑。复位信号和锁相环的最小周期分别为2 μs 和50 μs。该系统软件设计包括复位、初始化、端口连接、数据接收和发送等流程,具体如图2 所示。

图2 软件工作流程

2.1 复位

工作开始前,AT89C51 应先进行电复位,此时复位信号的低电平须大约保持在2 μs,随后将其转变为高电平,待内部锁相环稳定后(一般大约为15 ms)再进行初始化。在软件的设计过程中,复位信号低电平时间为7 μs,通过对30 MHz 的时钟进行计数来实现,当计数达到30×7 时,将复位信号转变为高电平;随后继续计数,当计数达到30×18×102 时,满足了等待18 ms 的要求;最后给出复位完成信号,开始启动后续工作。

2.2 初始化

AT89C51 初始化是指根据写时序要求将相应参数写入寄存器,其具体流程包括接口设置、信息设置和分配存储器空间[7]:1)当设置接口时,将模式寄存器(MR)的默认值设置为0×b800(段地址),这样能够使AT89C51 处于16 位宽度的访问模式中。中断屏蔽寄存器(IMR)写入0×FFFF(16 进制的FFFF),不对其采用屏蔽中断。2)当设置信息时,对超时寄存器(RTR)和计数寄存器(RCR)进行重传,二者均采用默认值,分别为0×07D0(地址寄存器)和0×008(波特率的寄存器),重传超时时长为200 ms,次数为9 次。为了合理分配重传时间和次数,提高数据通信的可靠性,对超时寄存器(RTR)和计数寄存器(RCR)进行设置,传输超时流程具体如图3 所示。3)当分配存储器空间时,AT89C51 存储单元分别映射到发送存储器(TX)和接收存储器(RX)中,并将其存储量定义为64 KB。

图3 数据包传输超时流程

3 端口连接

AT89C51 初始化完成后,可通过TCP、UDP 或IPPAW 等形式打开套接字(SOCKET)发送或接收数据。在该系统中,AT89C51在TCP 模式中工作,为了使通信状态良好,应初始化SOCKET,并在侦听设置完成后等待创建连接[8]。分别对模式寄存器(MR)和端口寄存器(PORTR)设置侦听端口号和通信协议,并在控制寄存器(CR)中写入0×0001 命令,等待OPEN 命令执行之后,如果状态寄存器(SSR)变为INIT,那么此时初始化完成,随后再向控制寄存器(CR)中写入0×0002 命令,如果状态寄存器(SSR)变为LISTEN 函数,那么此时侦听完成,最后待SSR变为ESTABLISHED(服务端口变化),此时如果SSR 是预期值,那么就成功创建连接,可以进行有效数据通信。

4 数据接收与发送

完成AT89C51 初始化与端口连接后,便可进行数据接收或发送处理。当检测到RX(接收存储器)中尚存在部分数据时,AT89C51 开始进行数据接收工作,该阶段可通过观察排列位状态判断数据包中是否存在信息与数据。当MR(模式寄存器)的排列位为0 时,数据包存在信息与数据;当MR(模式寄存器)的排列位为1 时,仅存在数据包而缺少信息。当数据全部读取之后,即刻执行RECV 命令,由此AT89C51 的数据接收工作顺利完成。经多次试验发现,每次发送1 460 kB 数据时的传输速率最快,因此应将数据包的大小设置为730 kB,并且每次发送2 包数据。数据发送前,应对上次SEND 命令是否完成进行深度检查,如果完成,就可以继续发送,这样可以确保数据发送的准确性。AT89C51 数据的接收和发送流程如图4所示。

图4 数据接收与发送流程

5 断网重连

在传输过程中有时会因网络异常而出现传输中断的情况,从而导致数据丢失。为了避免出现这种情况,特进行以太网断网重连设计。添加E_LINK_D 信号,当初始化结束后,如果为0,就可以继续进行数据接收发送,如果异常(为1),就应该重新进入初始化状态,等待E_Link_D 为0 后才可以进行下一步操作。此外,也可对Sn_Kpalvtr 进行配置,当其大于0 时,AT89C51 每间隔5 s 就会发送数据包,此时将Sn_Kpalvtr 设置为10,即每10 s 发送1 次心跳包,这样能够快速检查网络连接是否存在异常情况。

6 系统验证

该系统使用屏蔽双绞线(Shielded Twisted Pair,STP),将其分别与测试台和计算机相连。为了测试网络的连通性,实现客户端与服务器间的数据高速传输,通过PING 命令向目标端发送ICMP 请求,判断目标端能否到达。在主机端CMD命令下输入192.168.0.1 命令(主机IP地址为192.168.0.109),此时能够看到主机端已经收到应答,证明目标端IP 层以下实现连通。

连通性测试后,可以继续进行通信测试。对丢帧率的检测来说,系统采用TCP/IP 协议,通过上位机软件向AT89C51 发送控制指令,并接受AT89C51 的回传数据,实现数据波形无失帧被解调的目标。从上位机软件与AT89C51的通信结果中可以看出,该系统数据传输稳定性良好,结果完整,未发现显著的丢帧现象。

7 结语

综上所述,该系统设计基于嵌入式单片机AT89C51 的以太网高速数据传输系统,在TCP/IP 协议的辅助下使传输可靠性得到保障,传输速率普遍高于90 Mbit/s。经验证可知,该系统结构简单,运行稳定,成本低廉,开发程度高,基本实现了以太网的数据传输功能,并且无需引入操作系统就可以使嵌入式单片机与网络进行连接,实用性较强,能够在现场数据收集设备的数据传输和远程操作等领域应用。

猜你喜欢
传输速率寄存器以太网
基于1500以太网养猪场的智能饲喂控制系统的设计与实现
Lite寄存器模型的设计与实现
分簇结构向量寄存器分配策略研究*
跨山通信中频段选择与传输速率的分析
谈实时以太网EtherCAT技术在变电站自动化中的应用
一种90W高功率以太网供电系统的设计
浅谈EPON与工业以太网在贵遵高速公路中的应用
新一代全球卫星通信网络将百倍提升传输速率
新一代全球卫星通信网络将百倍提升传输速率
高速数模转换器AD9779/AD9788的应用