中国电子科技集团公司第五十四研究所,河北 石家庄 050081
2. 中国电子科技集团公司第五十四研究所,河北 石家庄 050081
摘 要:针对千兆以太网接口传输速率高的特点,设计了一种基于“网芯一号”处理器的嵌入式系统多以太网口设备。给出该系统以太网口的特点及硬件设计方案,介绍了基于Linux操作系统的驱动程序设计对接口进行了工程验证测试,可满足高速、可靠数据的传输。
关键词:网芯一号; Linux; 以太网口
0 引言
MIPS处理器是最早、最畅销、最具代表性的嵌入式RISC处理器之一,被广泛应用在Cisco的路由器、Sony和DGI超级计算机等产品中[1]。此外,由于低功耗、高性能的特点,在高速通信设备中,MIPS也得到了较广的应用。本设计使用的“网芯一号”处理器是由中国电科54所研制的双核高性能通信MIPS处理器,内部集成了2个 内核,主频最高支持1GHz,内置1MB L2Cache,支持DDR3,具有2路高速GMAC接口,和2个x4 PCIE2.0接口。
为满足平台多网口接入的需求,嵌入式平台不仅使用“网芯一号”处理器的GMAC控制器扩展出2路千兆以太网接口,而且通过“网芯一号”处理器的PCIE控制器配合转接桥片再次扩展出2路千兆以太网接口。
硬件设计
WG82574IT芯片介绍
WG82574IT芯片是 Intel公司研制的一款PCIE接口转以太网接口芯片,支持PCIE 1.0 x1传输标准,支持全双工/半双工配置,支持10/100/1000Mbps三种模式,支持流控等[2]。芯片内部结构如图1所示。
图1 WG82574IT芯片内部结构图
芯片内部集成PHY模块,集成了MAC控制器,对外提供PCIe接口以及Link接口。该芯片提供了SMBus(System Management Bus),可以实现对芯片的管理与控制。
88E1111芯片介绍
88E1111系列芯片是Marvell公司研制千兆PHY芯片,可自适应10/100/1000Mbps三种接口速率,支持GMII、RGMII、SGMII、TBI、RTBI等多种协议接口。
图2 88E1111芯片内部结构图
芯片包含时钟接口、JTAG接口、管理接口等,对MAC侧提供多种接口形式,对MDI侧提供光口、电口可选配置。
硬件连接
具体的硬件连接见图3所示。
图3 PCIE网口硬件连接关系图
使用“网芯一号”处理器提供的2路PCIE x1接口连接到WG82574的PCIE接口,“网芯一号”处理器做主控设备,外部设备为从设备。PCIE接口使用的参考时钟由“网芯一号”处理器内部锁相环提供。WG82574芯片的Link端通过网络变压器对外提供千兆网口。另外,使用“网芯一号”处理器自身的2路GMAC控制器连接外部PHY芯片88E1111。使用时钟分路芯片为88E1111提供时钟,芯片支持25MHz或125MHz。88E1111芯片Link端同样通过网络变压器对外提供千兆网口。
千兆以太网驱动设计
操作系统简介
Linux是一套开放源代码程序的、可以自由传播的类Unix操作系统。Linux最初是基于x86架构的CPU,是一个可多用户、多任务,而且支持多线程、多处理器的操作系统。经过世界各地很多程序员的开发完善,Linux系统目前被广泛应用于服务器端、嵌入式开发以及桌面级个人计算机等领域,其中服务器领域是重中之重。
本次设计采用Linux内核版本为3.10,使用ubuntu 14.04版本Linux操作系统作为开发环境。
设备驱动设计
Linux下的WG82574 PCIE千兆以太网网络连接芯片驱动是由Intel公司自行开发设计并维护的开源驱动,该驱动可最大化的发挥WG82574的硬件性能,并为用户提供了各种驱动配置接口,方便进行优化。驱动的稳定版本随对应内核源代码持续更新,最新版本可在官网下载后,然后在“网芯一号”的交叉编译环境中编译后使用。Linux内核源码编译后,在终端Terminal中进入内核源代码路径下,执行“make menuconfig”命令,在弹出的内核配置界面选中设备驱动。选择完成后,再使用“make”命令编译内核。完成后即可编译出igb.ko文件。Igb驱动不仅实现了千兆网卡的通信功能,还提供多种丰富可配置接口,为不同平台使用驱动增加了灵活性。
测试及结果
完成驱动的设计后,在Linux操作系统下,对设备的网口进行测试,使用网络分析仪连接处理器的网络输出端,对网口的传输速率进行测试,测试包长选用64B、512B、1518B等不同包长,经过测试,不同包长测试结果都可以达到限速1Gbps,验证设备可以满足设计要求。
结束语
本文主要介绍了一种基于“网芯一号”处理器及Linux操作系统的嵌入式平台的网口设计,对其硬计方案进行了阐述。介绍了Linux操作系统的特点,描述了基于Linux系统的以太网接口的开发方法,对设备的接口进行了测试,验证了设备的通信能力。
参考文献
[1] 孙巧稚. 基于MIPS64指令子集的RISC处理器的设计与实现[D]. 南京航空航天大学:1-2.
[2] 徐碧辉.一种基于飞腾处理器的VPX主控制器设计[J].机电产品开发与创新,2017,30(5):128-129.
3