新闻中心

EEPW首页 > 手机与无线通信 > 业界动态 > 一种基于C64系列DSP的千兆以太网通信接口设计

一种基于C64系列DSP的千兆以太网通信接口设计

作者:刘小刚,周建烨,铁 奎(中电科仪器仪表(安徽)有限公司;电子信息测试技术安徽省重点实验室,安徽 蚌埠 233010)时间:2021-02-25来源:电子产品世界收藏
编者按:在实时处理系统中,DSP与主控模块的通信能力已经成为系统处理的瓶颈。千兆以太网具有速率高、成本低和稳定性好的优点,可满足DSP与主控模块数据传输的需要。以TI公司的TMS320TCI6487 DSP芯片和Marvell公司的88E1111物理层芯片为例,对硬件电路、千兆以太网的网口驱动程序、基于SYS/BIOS和NDK的TCP协议进行研究,在TMS320TCI6487实现了TCP通信。实验结果显示,基于DSP的千兆以太网传输速率可达到960 Mbps。


本文引用地址:http://www.eepw.com.cn/article/202102/422966.htm

0   引言

当前,的发展如火如荼,在军事、雷达、通讯等各领域均广泛应用。但如何与主控模块高速稳定通信,是一个需要迫切解决的问题。TMS320TCI6487[1]作为TI公司一款主打通信领域的芯片,具有较高的工作频率,内部集成硬件EMAC[2]接口,外接一个物理层芯片即可进行网络通信。本文介绍一种基于TMS320TCI6487的嵌入式千兆网接口设计,并通过[3]和[4-5]实现协议[6],从而方便主控模块开发并与之高速通信。因此,研究通信接口具有重要意义。

1   硬件接口设计

TMS320TCI6487(下面简称6487)是TI公司的一款高性能DSP芯片,可支持EMDA3[7]、SRIO[8]、EMAC等高速接口,也含有2[9]、VCP2[10] 等硬件译码器,广泛应用在通信领域。88E1111[11]作为Marvell公司的一款千兆物理层芯片具有稳定、纠错性强、速率高的优点,故本文选择此两款芯片作为研究对象。

1.1   千兆物理层芯片连接原理图

图1中6487提供phy_mdio、phy_mdc、DSP_SGMII等信号与88E1111千兆物理层芯片进行连接。88E1111使用25MHZ的时钟作为千兆网口的参考时钟,并与网口接插件直接相连。

1614234694466650.jpg

1.2   硬件接口关键设计

1)电源稳定性。6487需要1.8 V和1.1 V电源供应,电源的稳定性为重中之重。为了增加电源的稳定性,增加二极管进行稳压,并使用电容进行匹配滤波。对于远端电压,需要进行补偿。

2)时钟稳定性。芯片需要稳定传输数据,因此对时钟的稳定性要求比较高。88E1111可使用25 MHz或125 MHz,但从布局布线、电磁兼容等方面考虑采用25 MHz时钟。

3)硬件稳定性。中频板与工控板通过网线互联,且仪表内部空间有限,为了增加硬件的稳定性且减少网口体积,网线从超五类线改变为扁平电缆,网口接插件从HR911130C改变为IDC10-2.0。

2   网口驱动程序

6487对网口芯片进行配置主要是针对MAC驱动进行配置,可依次按照SGMII模块、MDIO模块、EMAC模块进行配置。

2.1 SGMII模块配置

EMAC支持千兆媒体独立接口,它通过串行千兆媒体独立接口(SGMII)与SerDes连接到PHY外部设备。SGMII模块主要配置过程如图1所示。

QQ浏览器截图20210225142554.png

图1 SGMII模块主要配置过程

2.2 MDIO模块配置

MDIO模块通过2个MDIO引脚(MDCLK和MDIO)与PHY设备连接,通过EMAC控制模块和配置总线与DSP核连接。MDIO模块主要完成MDIO时钟产生、全局PHY探测和链接状态监视、激活PHY监视、PHY寄存器访问的功能。MDIO模块主要配置过程如图2所示。

QQ浏览器截图20210225142618.png

图2 MDIO模块主要配置过程

2.3 EMAC模块配置

EMAC模块通过MDIO和SGMII接口访问PHY组件和DSP核。EMAC模块提供一个独立的本地内存空间存放EMAC包缓冲区描述符,提供本地内存空间是为了避免与其他设备内存空间产生竞争。EMAC模块主要由以下逻辑组件组成:DMA引擎、FIFO、统计逻辑、状态RAM、中断控制器、控制寄存器和逻辑、时钟和复位逻辑。

EMAC模块配置主要配置过程如图3所示。

QQ浏览器截图20210225142633.png

图3 EMAC模块配置主要配置过程

3   基于协议

使用第二章的网口驱动程序可以直接发送以太网帧,但是作为接口与主控联调不方便,且速率过高时存在突发丢包现象。为了解决以上两个问题,本文采用TI公司的(网络开发者套件)实现了TCP协议。本文首先利用主控程序开启DHCP服务,DSP根据DHCP获得IP地址,然后利用此IP地址与主控程序进行TCP传输,具体过程如图4所示。

QQ浏览器截图20210225142644.png

图4 实现TCP协议的过程

3.1 配置DHCP

当IP地址处于不确定时,我们可以开启DHCP服务。DHCP封包在传输层是采用UDP协议,而当 Client传送封包给 Server时,采用的是UDP 67端口,从 Server传送给 Client则是使用UDP 68端口。

本例将DSP配置为DHCP客户端,主控配置为DHCP服务器端,主控可以分配部分IP地址组供给DSP使用,DSP从而得到分配的IP地址。DSP初始未知本身的IP地址,故将源IP地址设置为0.0.0.0,目的IP地址设置为255.255.255.255(受限的广播地址)。

为了提高网口传输的速率,利用RTSC修改SYS/BIOS的内存分配空间,将NDK_OBJMEMNDK_PACKETMEM等包缓冲区内存块分配在L2 RAM内。因cache的速率更快,但资源更有限,故L2 RAM不可全部占用,分配一部分留给cache使用。

3.2 配置TCP

为了开启TCP服务,我们需要创建3个回调函数NetworkOpen、NetworkClose、NetworkIPAddr。①NetworkOpen会创建一个守护进程,此守护进程定义了TCP连接的端口号、协议类型、中断服务程序等,NetworkOpen内部调用了NETTOOL、OS、STACK、HAL、NETCTRL等库,共同协作完成TCP协议的组包与拆包过程。②NetworkClose完成了socket套接字的关闭和释放,并删除创建的应用程序线程。③NetworkIPAddr完成了IP地址的转换。

为了进一步提升TCP传输的速率,使用recvnc函数,可以直接接收网口数据而不拷贝到内核。

4 结语

使用DSP与PC机通信的方式对速率进行测试。测试方法为6487通过TCP协议向主控PC发送1G字节数据,使用wireshark检测以太网效率约96%(961.142Mbps) ,如图5所示。

1614234759446335.jpg

图5 使用DSP与PC机通信的方式对千兆以太网速率进行测试

参考文献:

[1] TI Inc. TMS320TCI6487/8 Communications Infrastructure Digital Signal Processor (SPRS358L)[EB/OL].(2007-04).[2011-04].http://www.ti.com.

[2] TI  Inc. TMS320TCI6487/88 DSP Ethernet Media Access Controller (EMAC)/Management Data Input/Output (MDIO) User's Guide(SPRUEF0B)[EB/OL].(2006-04).[2010-02].http://www.ti.com.

[3] TI Inc. TI-RTOS Kernel (SYS/BIOS) User's Guide (SPRUEX3U)[EB/OL]. [2018-02].http://www.ti.com.

[4] TI Inc. TMS320C6000 Network Developer's Kit (NDK) Software User's Guid e (SPRU523G)[EB/OL].(2001-05).[2009-01].http://www.ti.com.

[5] TI Inc. TMS320C6000 Network Developer's Kit (NDK) v2.00 Software Programmer’s(SPRU524G)[EB/OL].(2001-05).[2009-01].http://www.ti.com.

[6] 范建华.TCP/IP 详解,卷1:协议.北京:机械工业出版社,2000.

[7] TI Inc. TMS320C6472/TMS320TCI648x DSP Enhanced DMA (EDMA3) Controller (SPRU727E)[EB/OL].(2005-12).[2011-01].http://www.ti.com.

[8 ]TI Inc. TMS320C6472/TMS320TCI648x DSP:Serial RapidIO (SRIO)  User's Guide  (SPRUE13J)[EB/OL].(2006-10).[2011-02].http://www.ti.com.

[9] TI Inc. TMS320TCI648x DSP Turbo-Decoder:processor 2 (TCP2 ) (SPRUE10A)[EB/OL].(2006-05).[2008-06].http://www.ti.com.

[10] TMS320TCI648x/9x DSP:iterbi-Decoder Coprocessor 2 (VCP2)  (SPRUE09E)[EB/OL].(2006-05).[2009-12].http://www.ti.com.

[11] Marvell Inc.88E1111 Datasheet Integrated 10/100/1000 Ultra Gigabit Ethernet Transceiver(MV-S100649-00)[EB/OL].[ 2003-10-21].http://cn.marvell.com.

作者简介:刘小刚(1987—),男,工程师,研究方向:网络测试技术;周建烨,男,高级工程师,研究方向:网络测试技术;铁奎,男,研究员级高工,研究方向,网络测试技术。

(本文来源于《电子产品世界》杂志社2020年12月期)



评论


相关推荐

技术专区

关闭