基于可编程逻辑器件和IPX2805实现SPI4.2接口电路的设计

作者:孙世国,陈帅,陈倩,张恒威
1.引言
spi-4.2(system packet interface)是 oif(optical internetworking forum)定义的局部高速总线标准,用于 phy层芯片到链路层芯片的 10gbps信号传输。主要应用有 oc-192 atm、packet over sonet/sdh(pos)、10gbps以太网等。
spi4.2接口分为数据通道和状态通道。数据通道最多分成 256个逻辑通道,16bit位宽,采用 lvds信号电平,按照 cell格式传送数据,cell的长度为 16字节的整数倍,可随意配置,根据网上流量的分析,一般配置成 128字节。每个 cell都是以控制字开始的,控制字一共16bit,包含逻辑端口号、报文起始标志位、报文结束标志位、控制字交验等信息。状态通道传输对端反馈的逻辑通道接收 fifo的状态,2bit位宽,lvttl或者 lvds信号电平,一般采用 lvttl信号电平。状态通道的数据结构为 calendar[0:n],n最大为256,长度一般与逻辑通道数对应,calendar[n]表示逻辑通道 n的接收fifo状态。数据通道根据状态通道提供的信息控制数据的发送过程。状态通道有四种状态信息,如表 1所示:
在实际的系统设计中,商用芯片不一定能够满足需要,因此需要使用 fpga(field programmable gate array)。本设计采用 altera的 stratix ii系列 fpga和 rmi公司的多核处理器 xlr732,intel公司的网络处理器 2805实现 spi4.2接口。
2.2805简介 2805是 intel推出的高端 np(network prosser),能够处理 10gbps线速转发的以太网、pos、atm等数据流量,能够实现分类、nat、acl、多播、流量管理等功能。 2805内部集成一个32-bit、risc内核、高性能的 xscale处理器,用于系统的配置管理和路由表项的维护,最高工作主频750mhz;16个可编程的、有 8k代码空间的微引擎,每个微引擎含有多个硬件线程,用来处理通信系统中的数据转发,最高工作主频 1.5ghz。外部集成了 pci接口,可以工作在 64bit/66mhz模式;spi4.2接口,工作频率为 311mhz~500mhz;3个la-1接口,工作频率为250mhz;4个 rdram接口,工作频率为 800mhz~1200mhz。
3.fpga和 2805之间的 spi4.2接口电路设计
图 1描述了 fpga和 2805之间的 spi4.2接口的硬件连接框图,信号定义以 2805为参考点。其中 tx_data[15:0] 、tx_ctl、tx_clk和 rx_data[15:0] 、rx_ctl、rx_clk是 lvds信号电平,工作在 350mhz;tx_sdata[1:0] 、tx_sclk和 rx_sdata[15:0] 、 rx_sclk是 lvttl信号电平,工作在 87.5mhz,四分之一于数据通道时钟频率。
具体信号定义如下所示:
tx_data[15:0]:发送数据, 16bit位宽, burst方式传输数据, ddr工作模式(时钟上升沿和下降沿都采样);
tx_ctl:传输控制信号,高电平表示 tx_data[15:0]传输的是控制信息,低电平表示 tx_data[15:0]传输的是数据;
tx_clk:发送时钟,随路,是发送数据的参考时钟。
接受方向的信号定义与发送方向的信号定义完全相同,但是方向相反。
4.fpga的 spi4.2接口模块设计
stratix ii器件具有 152个接收器和 156个发送器通道,支持源同步信号进行高达 1 gbps的数据传送。它的内部含有 dpa电路,能够不断地将输入数据和采样时钟对齐,消除了时钟至通道和通道至通道偏移要求。它还集成了丰富的存储器资源、先进的锁相环( pll)技术和双数据率( ddr)i/o等特性,结合先进的差分 i/o能力,使其满足 spi4.2规范的物理信号定义。
图 2为 fpga的接收通道逻辑框图,上半部分是数据通道,下半部分是状态通道。由于 spi4.2接口的数据传输是 ddr模式的,rdclk经过 fpga内部的 pll模块做倍频处理,然后送给 rx_data_phy模块,该模块根据时钟采样 rdat [15:0]上的数据。rx_data_proc模块将接收的数据按照 cell头中的逻辑端口号,分别放入不同的 rx_fifo中。一个 rx_fifo对应一个逻辑通道,每个 rx_fifo都会生成一个状态信号,标示其“空”状态或者“满”状态, rx_stat_calc模块根据各个 rx_fifo的状态信号生成 calendar信息,由状态通路发送出去,用来流控 2805的发送过程。calendar也可以由软件设置,通过 rx_stat_proc_ref下发给 rx_stat_calc。
发送模块与接收模块不同,如图 3所示,发送模块的 tx_fifo只有一个,即所有的逻辑通道公用一个发送缓存区。这主要是由于 fpga内部的布线资源和 ram资源有限,同时这种发送端共享 fifo、接收端分通道 fifo模式不影响使用,能够实现分端口的反压。
发送端通过 tx_stat_phy模块接收 calender信息,经过 tx_stat_proc模块和tx_stat_proc_sync模块处理,送给 tx_sched调度模块,tx_sched解析出各个逻辑通道的反压情况,然后将各个通道的数据发送到 tx_fifo中,然后经过 tx_data_proc模块和tx_data_phy模块发送出去。
5.结果 本设计在 altera的 stratix ii系列fpga,epm2s90上得到验证,与 intel的 2805配合共同完成某通信设备的高速转发单板的设计。
6.结束语
本文介绍了 spi4.2接口在可编程逻辑器件 fpga上的实现方法,并通过实际电路验证fpga与 ipx2805之间通过 spi4.2接口互通的功能。由于商业芯片的限制,有时只有 fpga才能满足系统设计的要求。相对于开发asic,使用 fpga使整个设计电路简单、灵活、成本低、方便调试和修改, 大大缩短开发周期。


如何使用MAXQ微控制器上的定时器B生成PWM波形
华为云企业交换机ESW,助力企业成功上云
什么是柔性电池,折叠手机的现世与他有关
途胜将成为首款提供两种可选轴距的紧凑型跨界车
浪潮与寒武纪签署元脑战略合作协议
基于可编程逻辑器件和IPX2805实现SPI4.2接口电路的设计
华为昇腾业务携手合作伙伴共同利用AI技术的力量呵护人类的健康
oppor11最新消息:oppor11热力红成潮品引领盛夏狂欢,oppor11时尚时尚最时尚
如何辨别真伪OLED彩屏
ups电池寿命可以新旧混用吗
如何选择合适的三相稳压器?
发光二极管的识别,发光二极管的应用
丰田与NTT达成合作,将携手打造智慧城市平台
索尼PS5国行版发布时间曝光
IR2304的工作原理
功率元器件智能化,车载IPD性能提升需求上涨
种子吹风机是什么,它的使用步骤是怎样的
如何使用Triton进行高效的推理部署
[图文]微波防盗报警器
直流电阻测试仪有哪些特点及注意事项