基于AM3359的千兆双冗余以太网接口模块设计

2017-08-30 00:17中国船舶重工集团公司第七一五研究所王承宇
电子世界 2017年15期
关键词:物理层底层以太网

中国船舶重工集团公司第七一五研究所 王承宇

基于AM3359的千兆双冗余以太网接口模块设计

中国船舶重工集团公司第七一五研究所 王承宇

千兆以太网具有可靠性高、扩展性强、速度快等诸多优点,在各个工业领域得到了广泛的应用。通过双冗余技术,可以使一个网络通道故障后自动切换到另一个正常通道,实现热备份。本文基于Ti公司的AM3359处理器设计并开发了一种千兆双冘余以太网接口模块,针对于设计过程中软硬件设计、LWIP协议的移植等进行了详细的论述。

千兆双冘余以太网;AM3359;LWIP协议栈

0 引言

以太网从10M开始发展,经理多年的变迁,目前已发展到千兆乃至万兆以太网,在各领域已经得到了广泛地应用。以太网具有以下优点:(1)可靠性高:网络上单一节点的故障不会对网络中其他设备的通讯产生影响;(2)扩展性强:所有设备连接到网络交换机中,网口纸质热插拔;(3)速度快:千兆以太网将提高10倍与百兆网的性能并与现有的10/100以太网标准兼容;(4)采用双冗余技术可以在一个网络通道出现故障后进行自动切换,实现热备份。AM3359是TI公司最便宜的Cortex A8处理芯片,集成2个MAC并支持Linux、Android和WinCE系统。本文基于AM3359处理器设计并开发了一种千兆双冘余以太网接口模块,针对硬性设计与软件开发中的难点进行了详细的论述。

1 硬件设计

1.1 总体功能与结构

以太网接口模块主要有DSP、DDR3内存、FLASH芯片、PHY芯片、电源芯片等多个部分组成。DSP选用Ti公司的AM3359处理器。该芯片具有一个ARMcortexA8核,最大运行速率可达1GHz,具有两个工业千兆以太网MAC,支持MII、RGMII和MDIO接口程序。DDR3选择Micron公司MT41K128M16JT,容量为2Gb。FLASH芯片选择三星公司的K9F4G08U0E,位宽为8bit,容量为4Gb。程序固化在片外FLASH芯片中,当系统上电后,将程序加载至DDR3内存中运行。物理层芯片选择TI公司的DP83867IR,该芯片具有8kV的ESD保护能力,运行功耗仅565mW。由DSP控制两个物理层芯片提供两个双冘余千兆网口实现与外部网络的通讯。以太网接口模块的组成如图1所示。

图1 总体组成框图

1.2 千兆网口设计

每一个物理层芯片均由一片晶振为其提供25MHz时钟信号以满足千兆网的传输要求。物理层芯片通过RGMII总线和MDI0总线与DSP连接,RGMII由12个信号组成:6个接收新号RX_CTL、RX_CLK和RX_ D[3:0]以及6个发送信号TX_CTL、TX_CLK和TX_D[3:0]。在千兆运行过程中,TX_CLK和RX_CLK的时钟为125MHz,因此为避免一条数据总线上不同数据线上信号传播延时造成的偏差,所有信号线的走线长度差异应尽可能小。DSP通过MDIO总线可以实现对PHY内部寄存器空间和状态信息以及配置进行访问。PHY与外部网线之间使用了一个隔离变压器以保证本地电器与外部电缆之间的直流隔离。

图2 千兆网口设计

2 软件设计

2.1 LWIP协议栈

LWIP协议栈是一套用于嵌入式系统的开源TCP/IP协议栈,可以移植到操作系统上,也可以在误操作系统的情况下独立运行。LWIP的优点在于保持TCP/IP协议的基础上减少对RAM的占用。一般它要几十kg的RAM就可以运行,这使LWIP协议栈适合在小型嵌入式系统中。LWIP协议栈的主要作用是负责处理各层各种协议,在数据收发过程中完成网络数据帧封装与解析并完成ARP功能。

LWIIP协议栈的移植十分便捷。为适应各种不同的硬件环境,协议栈中留有底层收发程序的指针、因此,移植的核心就是根据格式要求编写底层收发程序。移植完成后,当需要收发网络帧是,协议栈便会自动调用底层收发程序。

2.2 网络数据收发的实现

网络数据的处理过程主要可以分为两个部分:底层驱动程序和协议栈。底层驱动程序负责读取PHY收到的网络数据或将所要发送的信息从PHY发送出去。协议栈根据本地与通讯对象的MAC地址、IP地址和端口号完成网络数据帧的封装与解析。

图3 网络数据收发流程

在LWIP协议栈的移植过程中,用户所要完成的主要工作为协议栈的初始化以及编写底层硬件驱动程序并对应函数在协议栈中完成绑定。

在初始化主要分为网络接口初始化和协议栈初始化两个部分。网络接口初始化主要完成硬件的初始化。对于本文中的以太网接口模块,硬件初始化的主要内容为通过MDIO读取PHY内部寄存器完成与连接对象的网络自动协商功能。协议栈初始化主要完成本地IP地址以及端口号的配置。首先使用udp_new()函数建立UDP控制块,再调用udp_bind()函数绑定本地的IP地址和端口号。为了收到UDP数据后能够正常完成数据处理,还需要通过udp_recv()函数将用户自定义的网络数据处理函数进行绑定。

完成上述设置后LWIP协议栈当收到正确的网络数据便会自动调用用户定义处理函数对网络数据进行处理,调用udp_sendto()函数便能实现以太网数据的发送。

3 结论

AM3359是TI公司最便宜的Cortex A8处理芯片,集成2个MAC具有良好的应用前景。本文基于AM3359处理器设计并开发了一种千兆双冘余以太网接口模块,针对硬性设计与软件开发中的难点进行了详细的论述。

[1]Adam Dunkels,Design and Implementation of the Lwip TCP/IP Stack,2001.

[2]Texas Instrument,AM335X Sitara Processors Technical Reference Manual,2016.

猜你喜欢
物理层底层以太网
基于K-ML-MPWFRFT的物理层安全传输技术
航天企业提升采购能力的底层逻辑
基于1500以太网养猪场的智能饲喂控制系统的设计与实现
公路联网电子不停车收费系统路侧单元物理层自动测试软件研发
谈实时以太网EtherCAT技术在变电站自动化中的应用
多天线物理层安全传输系统性能分析
一种90W高功率以太网供电系统的设计
浅谈EPON与工业以太网在贵遵高速公路中的应用
1Gbps电力线载波通信物理层算法设计
回到现实底层与悲悯情怀