千兆网络接口具有数据传输速率快、连接方便、可以即插即用的优点,使得其应用较为广泛。随着电子技术和处理器的发展,很多应用场合的数据通信速率超过千兆网口的实际传输速率。例如,在a/d采样中,需要直接存储a/d转换的采样数据,如果a/d转换位数为16位,工作在100mhz,则实际数据量为1.6gbps。为了实现高速传输,必须采用更高传输速率的接口,例如pcie或者rapidio接口。但这些接口不具有即插即用功能,与很多工业既有设备不能直接连接,限制了其应用场合。
dsp(数字信号处理器)具有较高的工作频率,其内部集成硬件网络mac接口,外接一个物理层芯片就可以方便地实现千兆网络通信。多核dsp芯片可以连接多个千兆网口,使得其可以应用到高速数据传输场合。本文介绍一种基于多核数字信号处理器tms320c6678的嵌入式双千兆网络接口,实现单个芯片连接两个千兆网口,这两个网口可以各自独立传输数据,也可以联合传输数据,提高了实际的数据传输速率。
1c6678及其结构
tms320c6678是ti公司多核处理器中的一款8核浮点型dsp,每个核最高工作频率可达1.25ghz,每个核可以提供40gmac定点计算或者20gflop浮点计算能力,单个芯片可以提供320gmac或者160gflop计算能力。tms320c6678的片内结构如图1所示。
tms320c6678的每个核具有32kb的程序、32kb的数据以及512kb的2级cache存储空间,芯片片内具有一个4mb的共享sram。tms320c6678具有ddr3控制器接口,可以外接ddr3,直接寻址范围达到8gb。tms320c6678的片内外设有rapidio、pcie、emif、spi、i2c总线等接口。这些接口通过片内的高速互联总线和各个处理器交互数据。
和网络相关的片内设备如图1右下角灰色模块所示,主要包括两个对外的sgmii接口、以太交换和网络交换模块,以及用于数据管理的安全加速器和包加速器,可以快速检测数据的校验以及协议是否遵循网络标准,对于错误的数据直接丢弃,降低cpu的负担。为了加快网络和cpu的数据交换,片内的队列管理器用于管理网络包或者网络帧的缓存、分发等功能。这些数据都采用数据包dma读写,不需要cpu参与。
图1tms320c6678内部结构图
tms320c6678的其他片内设备包括pll、仿真口、信号量、电源管理和复位管理等模块。其中pll配置cpu和外设的工作时钟;仿真口用于连接仿真器,实现对软件运行的监控;信号量实现对dsp/bios操作系统中信号量的控制;电源管理实现整个芯片电流电压的控制;复位管理配置启动的方式,硬复位进行全启动,软复位进行部分启动。
288e1111及其结构
网络物理层芯片很多,一般都兼容mii、rmii以及sgmii等接口标准之一或者多个。但tms320c6678只提供了sgmii接口,所以和tms320c6678连接的物理层芯片必须具有sgmii接口。本文使用两片marvell公司的88e1111物理层芯片进行双千兆网络的连接。88e1111的片内结构如图2所示。
图288e1111内部结构图
网络rj45接口发送过来的带有调制数据的模拟信号经过a/d转换变成数字信号,然后依次经过均衡、整形滤波和译码后由接收单元传输到mac芯片,实现数据的接收。mac发送的数据经过整形滤波后由d/a转换成模拟信号发送到rj45接口。为了降低误码率,88e1111内部具有锁相环(pll)、自动增益控制(agc)、时序/相位控制、回音抵消等模块,这些模块都是为了提高数据传输的可靠性,在不同环境或者不同外接设备下,都可以高速可靠地通信。图2中的led控制模块实现数据传输时的灯光显示,mdio模块实现链接建立和状态监测,时钟模块提供工作时钟。
3硬件设计
硬件设计主要包括tms320c6678和两个88e1111的接口、88e1111和rj45的接口、88e1111的硬件配置设计等几个部分。
tms320c6678的网络模块结构如图3所示。片内集成了一个3口的以太交换机,负责将两个千兆网口的数据交换到主机,同时提供交换中断到主机,主机通过中断可以实时接收和发送数据。主机通过总线配置或者监控外部的物理层芯片,配置和监控数据通过mdio接口连接到物理层芯片。
图3tms320c6678网络模块结构
图4tms320c6678和88e1111的接口tms320c6678和两片88e1111的接口电路如图4所示。tms320c6678采用sgmii(serialgigabitmediaindependentinterface)接口,兼容10/100/1000m工作方式。sgmii为串行数据收发方式,具有较少的引脚连接。从图4中可以看出,实际上只有两对收发的差分线,分别连接到对应的88e1111引脚上。读写时钟隐含在数据上传输,由硬件自动识别,无须软件参与。
图4tms320c6678和88e1111的接口
mdio和mdclk为tms320c6678内部mdio模块的数据和时钟,用于tms320c6678和88e1111建立连接,tms320c6678可以通过该接口配置88e1111,或者读取88e1111的信息。由于88e1111的mdio模块接口电平为2.5v,而tms320c6678的mdio模块接口电平采用1.8v电压,所以两者之间需要增加电压转换芯片,本设计采用pca9306实现电压转换,接口电路如图5所示。
图5mdio接口的电压转换电路
需要注意的是,由于存在两个88e111芯片,mdio和mdclk引脚直接连接到两个芯片上,mdio可以最多控制32个物理层芯片,物理层芯片地址分别为1~32。88e1111的地址配置如图6所示。
图688e1111的硬件配置
表1为对应的配置信息,根据图6和表1,可以看出88e111的地址分别为4和8。
表1配置引脚设置
4软件设计
系统软件设计包括硬件初始化、网络配置以及数据通信流程等。tms320c6678复位后的工作流程如图7所示。首先配置第一个网口,记录其状态后配置第二个网口。只要两个网口有一个配置成功,将配置tms320c6678的emac模块,为成功配置的网口设置收发缓冲和收发任务。这些配置好后,就可以实现网络的数据收发。需要注意的是,在用户应用程序中,需要考虑到网口配置失败的情况。例如,用户应用程序通过双网口实时传输1.2gbps的数据,如果一个网口配置失败,则应用程序应有相应的机制将实时传输速率降低到0.8gbps以下(单网口实际传输速率可能低于0.8gbps)。本文硬件系统在没有其他任务开销情况下,实测可以传输1.5gbps的数据(传输过程中不考虑错误,不进行重发)。
图7数据通信流程
结语
超过1gbps传输速率的通信接口一般采用光纤、pce、pcie等接口方式。本文采用双网口方式可以降低设备要求,和既有设备方便连接。使用多核dsp提高处理器工作能力,在保证大容量数据传输过程中,处理器仍然具有对数据的计算能力。双网口设计方案可以弥补单网口的传输速率不足,又可以降低其他接口的硬件复杂度,是介于两者之间的有益补充。在嵌入式设备中具有一定的应用价值。
芯片设计难度大吗 芯片设计难在哪里
美国空军将使用VR/AR技术进行培训及设备维护
爱立信证明了毫米波用于远距离5G无线传输的商用可行性
一文读懂光纤光缆领域的微管气吹
对于纯电动汽车来说需要换机油吗
基于多核数字信号处理器的双千兆网络接口设计
详解带串口的高性能4G工业路由器
从本地到云端:豆瓣如何使用JuiceFS实现统一的数据存储
美国将对某些iPhone机型实施进口禁令
USB3.1高速接口设计指南
串联磁珠的作用
中国电信开展飞机上网服务,高通量通信卫星将发挥重要作用
力科发布新的WaveSurfer系列示波器
电源功能安全
“3D视觉+协作机器人”,能否激活全新的应用市场?
见证智能绿色未来!踏歌智行协办2023宝通绿色智能新技术发布会隆重召开
国内工业机器人市场需求日益旺盛 连续多年成为全球第一大应用市场
积极建立健全直线电机物流机器人标准
星源材质陈秀峰:以质量为导向,星源材质的战争
DVB-S半NIM调谐器参考设计采用MAX2120调谐器