基于CPS1616型芯片的RapidIO交换机设计

2020-12-02 06:55张亚琼任鹏飞
关键词:路由表板卡交换机

李 楠,张亚琼 ,任鹏飞

(1.河南工程学院 电气信息工程学院,河南 郑州 451191; 2.河南轻工职业学院 机电工程系,河南 郑州 450000)

图1 六节点系统两种连接方式对比Fig.1 The comparison of two kinds of topology of 6 endpoints

表1 两种拓扑结构收发线数量对比Tab.1 The comparison of two kinds of topology

1 RapidIO交换机板卡的硬件设计

RapidIO总线非主从结构,各个节点地位平等,所有模块都是RapidIO总线的节点,在系统内并无差异,每个节点都可以发起对其他任意节点的访问。RapidIO嵌入式平台由机箱和节点板卡及交换机板卡共同组成,本研究主要讨论交换机板卡的设计。

交换机板卡的主要功能是提供节点间数据交换,除交换机桥片外,还需要处理器对其进行软件配置,但处理器只在上电配置桥片使用,其余时间空闲,所以该模块在配置桥片后可以当作处理器模块,这样可充分利用处理器,也节省了一个背板槽位。综上所述,设计该模块时需要桥片、处理器和RapidIO节点(通常由FPGA完成),ZYNQ芯片包含双核ARM芯片和FPGA,配上交换机桥片即可实现交换机及处理器节点的功能。ARM通过I2C配置交换芯片,FPGA的RapidIO端口与交换机桥片的一个端口相连,作为系统内的一个节点,交换机的其他端口通向背板,可连接系统内的其他节点。交换机板卡硬件如图2所示。

图2 交换机板卡硬件Fig.2 The diagram of switch hardware

交换机板卡的核心是交换机桥片的设计,交换机桥片选用IDT公司的CPS1616,该芯片延时低,有16个交换口,符合RapidIO 2.0协议,峰值吞吐率可达80 Gb/s,每个端口支持1.25 Gb/s、2.5 Gb/s、3.125 Gb/s、5 Gb/s、6 Gb/s的通信速率,支持X1、X2、X4等模式。该芯片支持8级优先级,支持各种路由模式,支持I2C或者维护包等多种配置方法,有诊断、性能监控等功能。

交换机的配置分为硬件和软件两类,硬件配置主要包括设置交换机的通信速率和通信模式、I2C设备地址及总线速率,以及配置端口是否使能等。

交换机每个端口有多种通信速率可选,通信速率越高,通信带宽就越大,会带来卓越的通信性能,但同时也会带来成本上升和设计风险增加的后果,这对背板的布局布线带来较大的挑战,对节点的器件选择也提出了更高的要求,所以要根据需求合理选择通信速率,兼顾性能和成本。该桥片配置可通过拨码开关SPD[0]~SPD[2]来改变交换机的串行通信速率[3]。该交换机还支持端口配置成X1、X2、X4等模式,可通过配置QCFG[0]~QCFG[7]改变端口的通信模式。

交换机寄存器软件配置有多种方法,可分为本地配置和远程配置。远程配置是系统内的任一节点通过发送维护包来配置交换机,本地配置通过I2C配置,所以硬件配置需要先配置ID[0]~ID[9]来确定桥片的I2C地址,然后配置FSEL[0]~FSEL[2]来确定I2C的总线速率。交换机桥片最多可连16个节点,通信速率高,故功耗大、发热量大,所以需要关闭不用的端口以减少功耗和发热,通过配置PD[0]~PD[15]来确定16个端口是否使能。

综上所述,交换机桥片的配置主要为通信速率和通信模式的配置、I2C接口的配置和端口使能的配置。图3为桥片配置部分的原理图。

桥片除配置管脚外[4],还有16对差分输入管脚和16对差分输出管脚,用于连接16个RapidIO节点,其中一对通向本板,连接本板FPGA节点,其余的连到背板,连接系统内的其他节点。图4为桥片通信部分的原理图。

图3 桥片配置部分原理图Fig.3 The schematic of configuration

图4 桥片通信部分原理图Fig.4 The schematic of communication

2 RapidIO交换机板卡的软件设计

交换机桥片的软件配置主要包括桥片寄存器的初始化和桥片路由表的配置。

桥片上电后,在软件配置之前,桥片根据硬件配置的通信速率和通信模式,首先完成各个端口的link。link是桥片和各个RapidIO节点建立物理链接的过程,这个过程是纯粹的物理层链接,链接能否正确建立与软件配置无关,只和交换机硬件配置及节点的硬件状态有关[5]。端口link成功后,就可以对该端口进行软件配置,否则就关闭该端口以降低功耗。

软件配置首先读出桥片各端口的link情况,根据link情况配置该桥片各个端口的寄存器。软件初始化主要包括访问桥片的ID,来确定桥片是否可以通过I2C访问。读取桥片每个端口的link状态,设置访问超时时间(超时时间指的是读背板节点的超时阈值)、复位及初始化端口等。桥片的具体初始化流程如图5所示。

RapidIO的数据包通信方式和以太网比较相似,支持单播、组播和广播,都需要配置路由表,其中广播和单播的路由配置相对固定,桥片收到任意广播包后把数据包转发到所有端口。对于单播,桥片把数据包转发到每一个目的地址固定对应的端口,这两种数据包的路由配置逻辑相对固定,可以直接设计固定的路由配置表。

组播的路由表和应用需求结合紧密,每一个节点可能属于一个组,也可能属于几个组,每个组的节点数为 2~15,故组播情况灵活多变,并且桥片只支持40个组播包ID,不可能用穷举法来设置每一种可能的组播路由。传统的配置方法是每个工程应用设计一套工程配置软件,由于工程繁多且复杂多样,故需要维护和测试大量的配置软件,给工程师带来了很大的负担。因此,本研究提出的通用组播配置方法通过增加配置文件满足各种应用,使用统一的组播配置软件即可满足各种工程需求。

交换机桥片转发数据包的原理是通过识别目标ID来判断数据包是如何转发的。根据桥片手册,当ID为0X0~0XF时[6],认定为单播ID,转发到相应的单个端口,当ID为0X40~0X67时,认定为组播ID,根据每个ID对应路由表发送到组内所有端口。组播配置文件需要组播ID信息和该组所有的端口号,配置文件的数据格式用一个32位数代表一条配置信息,包含组播ID及组内包含的所有端口,数据格式如下:① 0~15位代表组播包含的端口,这16位对应16个端口,1代表转发,0代表不转发;②16~23位为组播ID;③31~24位为保留位。

设计好配置文件,拷入交换机板卡的板载SD卡[7],ARM上电后先读取路由配置文件,再来逐条生成路由表写入桥片,完成组播路由配置。具体流程如图6 所示。

图5 桥片初始化流程Fig.5 The flowchart of initiation

图6 桥片路由表配置流程Fig.6 The flowchart of route configuration

3 结语

本研究主要讨论了基于CPS1616型芯片的RapidIO交换板的设计,针对交换机的硬件配置及设计、桥片软件的初始化、路由表的配置,特别是组播路由表的配置都提出了相应的方法,可以为其他设计者提供参考。目前RapidIO交换板已经设计完成并且投入使用,使用情况良好。

猜你喜欢
路由表板卡交换机
MACH2系统板卡程序下装平台的研制
面向未来网络的白盒交换机体系综述
局域网交换机管理IP的规划与配置方案的探讨
车载控制器CVRE板卡显红故障分析及处理
研究路由表的查找过程
更换汇聚交换机遇到的问题
基于地铁交换机电源设计思考
基于组态王软件和泓格PIO-D64 板卡的流水灯控制
一种基于光纤数据传输的多板卡软件程序烧写技术
IP 路由技术与RIP 协议探析