杜成涛,汪安民,刘德保
(1.皖西学院 机械与电子工程学院,合肥237012;2.同方工业有限公司研究所)
杜成涛(讲师),主要从事在线计算机综合测控与信息管理方面的工作。
遵循IEEE802.3标准的网络通信已经应用到较广泛的场合。其具有连接方便、即插即用的特点。网线物理结构一般使用五类或者六类屏蔽双绞线,在由金属制作的物体上传递信号,存在线缆衰减、串扰,受环境影响较大。在高速千兆长距离传输速度下,网络传输的误码率增加,传输性能下降较快,所以基于网线的传输距离一般不大于100m。为了实现长距离通信,使用光作为传输媒介的光纤通信得到应用和发展。光纤通信可以长距离进行,光信号衰减小,抗串扰能力强。在使用10μm的单模光纤时,传输距离高达5 000m,满足大部分应用场合。
DSP(数字信号处理器)具有较高的工作频率,其内部集成硬件网络MAC接口,外接一个物理层芯片就可以方便地实现千兆网络通信。可以通过硬件或者软件配置方法实现千兆网络和光纤接口的在线切换。本文介绍一种基于高速数字信号处理器TMS320C6455的嵌入式千兆网接口设计,并通过软硬件自适应配置网络或光纤接口。
C6455是TI公司功能较强的定点DSP之一,其最高工作频率达到1.25GHz,单个指令周期可以运行8条32位指令。全速运行可以提供9 600MIPS定点计算能力。C6455的内部结构如图1所示。
图1 C6455内部结构图
C6455具有32KB的一级数据Cache(L1D)、32KB的一级程序Cache(L1P)以及较大容量的2MB的2级存储空间,芯片片内有一个32KB的ROM。C6455具有DDR2控制器接口,可以外接DDR2,直接寻址范围达到512MB。C6455的片内外设有RapidIO、PCI、EMIF、千兆网口以及SPI、I2C总线、GPIO等接口。这些接口通过片内的高速互联总线和CPU处理器交互数据。千兆网口片内集成MAC层芯片,该MAC层芯片具有EMAC模块和MDIO模块。所以,C6455用于网络通信,只需要外接一个物理层芯片就可以了。其中的MDIO模块用于和物理层芯片建立连接,如果出现接口切换、掉电等情况,都可以通过MDIO接口获得相应信息。EMAC模块用于数据的收发,C6455片内集成8个8K的收发缓冲区。使用TI公司免费提供的NDK(Net Development Kit)软件,可以很方便地建立网络通信。
能够和C6455连接的物理层芯片很多,基本上大部分公司的物理层芯片都可以和C6455连接,但不同公司的芯片需要改变NDK软件中的部分寄存器设置。本文使用Marvell公司的88E1111物理层芯片进行光纤和千兆网络的连接。88E1111的片内结构如图2所示。
图2 88E1111内部结构图
网络RJ45接口发送过来的数据经过A/D转换器转换,数字信号经过译码滤波和均衡后由接收单元传输到MAC芯片,实现了数据的接收。MAC发送的数据经过整形滤波后由D/A转换器变换成模拟信号发送到RJ45接口。为了降低误码,88E1111内部具有PLL锁相环、增益控制、时序控制和相位控制、回音抵消等模块,这些模块都是为了提高数据传输的可靠性,在不同环境或者不同外接设备下,都可以高速、可靠地通信。
图2中的LED控制模块实现数据传输时的灯光显示,MDIO模块建立链接,JTAG用于芯片仿真测试,时钟模块提供工作时钟,电源复位用于启动工作。
硬件设计主要包括C6455和88E1111的接口设计、88E1111和RJ45的接口设计、88E1111和光纤的接口设计、88E1111的硬件配置设计等几个部分。
C6455和88E1111的接口电路如图3所示。C6455采用 RGMII(Reduced Gigabit Media Independent Interface)接口,兼容10/100M 工作方式。其中,RGTXC和RGRXC为发送和接收时钟,在时钟的上升和下降沿都可以传输数据,收发均采用4线,如图3中的RGTXD[3:0]和RGRXD[3:0]引脚。RGTXCTL为发送使能引脚,RGRXCTL为接收控制引脚,该引脚电平出现上升沿时,表示接收数据有效。RGMDIO和RGMDCLK为MDIO模块的数据和时钟信号,用于C6455和88E1111建立连接。C6455可以通过该接口配置88E1111,或者读取88E1111的信息。由于88E1111的MDIO模块输出为2.5V电压,而C6455采用1.5V电压,所以两者之间需要增加电压转换芯片,本设计采用SN74TVC3306实现电压转换,接口电路如图4所示。
图3 C6455和88E1111的接口
图4 MDIO接口的电压转换电路
图5 88E1111和RJ45的接口
88E1111和RJ45的接口如图5所示。图中H5062为网络隔离变压器,其工作原理是利用特性阻抗的耦合特性,降低插入损耗、回音以及串扰,提供网络滤波,减少传输介质上的干扰。88E1111和H5062采用差分连接线,一般需要使用阻抗匹配网络,如图中的R1和C1。H5062和RJ45之间也需要阻抗匹配网络,如图中的R2和C2。
88E1111和光纤的接口如图6所示。使用两片光收发器芯片SSFF135连接光纤和DSP。将光收发器的发送和接收引脚对应连接到C6455就可以了。为了阻抗匹配,使用了电阻电容隔离电路。
图6 88E1111和光纤的接口
可以通过设置88E1111的配置引脚,将外设接口配置成RJ45或者光纤。配置成RJ45的硬件设置如图7所示,图7中可以不使用电阻,为了调试和测试方便,可以增加一个0Ω的电阻。如果将接口配置成光纤接口,根据88E1111的技术手册,按照其说明配置即可。硬件配置接口后,系统将固定为一种接口方式,如果外设需要自适应配置接口方式,就需要采用软件方法。
图7 88E1111的硬件配置
在不掉电情况下切换接口就需要C6455实时检测到硬件配置的改变。接口切换的软件配置流程如图8所示。
图8 接口切换配置流程
只要接口切换,88E1111会自动检测到硬件发生变化,并且将状态存储到其寄存器中,发送EMAC中断到C6455。C6455接收到中断请求后,通过MDIO接口读取88E1111寄存器的值,并根据设置重新配置88E1111,重新配置后,网络的连接将重新建立,建立后就实现了硬件的当前配置状态,完成在线接口的切换。C6455和88E1111的数据通信流程如图9所示。
图9 数据通信流程
网络和光纤数据传输是嵌入式系统广泛使用的方式,本文介绍了基于C6455的千兆网口和光纤接口的自适应数据通信,可以在系统不掉电情况下,在两个接口之间自动切换,文中介绍了该数据通信系统的软硬件设计方法。该方法可以应用于嵌入式系统中,可以无需光纤路由器实现千兆网和光纤的数据通信。
[1]汪安民,张松灿.TMS320C6000系列DSP实用技术与开发案例 [M].北京:人民邮电出版社,2008.
[2]Texas Instruments.TMS320C6455Fixed Point Digital Signal Processor Datasheet[EB/OL].[2012-12].http://www.ti.com/.
[3]Texas Instruments.TMS320C645xDSP Ethernet Media Access Controller (EMAC)/Management Data Input/Output(MDIO)Module User's Guide[EB/OL].[2012-12].http://www.ti.com/.
[4]Marvell Semiconductor.88E1111Datasheet Integrated 10/100/1000Ultra Gigabit Ethernet Transceiver(Rev.H)[EB/OL].[2012-12].http://www.marvell.com/.