ImageVerifierCode 换一换
格式:DOCX , 页数:36 ,大小:1.56MB ,
资源ID:10756720      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-10756720.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(SPI42接口协议分析.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

SPI42接口协议分析.docx

1、SPI42接口协议分析SPI-4.2协议分析一SPI-4.2协议简介:SPI-4.2协议的全称为System Packet Interface,可译为“系统包接口”。该协议由OIF(Optical Internetwoking Forum)创建,用于规定10Gbps聚合带宽应用下的物理层(PHY)和链路层(Link)之间的数据抱传输协议,支持多通道的包或信元传输。适用于OC-192,ATM,POS以及10G以太网。1系统模型:SPI-4.2系统参考模型如图1所示,我们把从链路层到物理层的数据方向,称为“发送”方向;而从物理层到链路层的数据方向,称为“接收”方向。在两个方向上,都存在数据流控制(

2、流控)机制,流控数据传输方向和数据传输方向相反,把接收端的状态信息实时地反映到发射端,用来调节控制发射端的数据传输。图1. SPI-4.2系统参考模型图在发送与接收方向,FIFO信息(流控数据)都是和相应得数据通路之间分开独立发送的,我们称之为带外传输。状态信息的带外传输使得发送和接收接口相互独立,这就使得SPI4.2接口不仅适合于双向传输的链路层器件,也适合于单向传输的应用。另外,数据包的地址、描述信息(包括包结束、包开始信息等)、差错控制编码都是和数据一起,进行带内传输。SPI-4.2支持多通道(Port)传输。一个通道,是指接收或发送方向上,相互传输数据的一对关联的实体。如果有很多对关联

3、的实体(即很多个通道),都在同时传输数据,它们可复用SPI总线。最多可支持256个通道(由流控数据内的地址位11:4确定)。例如OC-192的192个STS-1通道,快速以太网中的100个通道等,各个通道的数据都可以相互独立地复用在SPI总线上传输。2协议特点:A点对点互连(PHY与LINK之间);B支持最大256个通道;C数据链路宽度为16位,LVDS差分I/O接口;线上最小数据速率为622Mbps;D数据链路内部携带地址、起始标志和验证码等;E使用源同步时钟,双沿采样,最小时钟频率为311MHz;F流控端口宽度为2位,LVDS或LVTTL端口,同样是使用源同步时钟;G接收模块和发射模块都有

4、FIFO队列,用于缓存数据,队列长度由设计确定;H接收模块和发射模块FIFO状态信息相互独立,并附带DIP-2校验码,提高传输可靠性。另外,SPI4.2接口的突发数据(Burst)可以按规定的最大长度、最小长度或固定长度进行传输,除非在数据末尾有EOP(End Of Packet)标志以外,突发数据的长度都必须是16Byte的倍数。每一次传输的附带信息(端口地址,起止标志,差错控制)以16bit的控制字(PC=Payload Control)发送。图2显示了数据包(Packet)和ATM信元两个数据通道复用到SPI总线上的数据流的示例图,从中我们可以看到不同通道的数据负载和控制字交替传输的情况

5、。图2. 数据包映射图3接口信号:SPI-4.2的接口信号如图3所示,包含发送数据总线接口(TDCLK,TDAT15:0,TCTL)和接收数据总线接口(RDCLK,RDAT15:0,RCTL)。发送FIFO状态总线接口(TSCLK,TSTAT1:0),接收FIFO状态总线接口(RSCLK,RSTAT1:0)。接收和发送两个方向完全类似。每个方向的信号线都包括数据总线和状态总线。 以接收方向为例,数据总线包括RDAT,RDCLK和RCTL,其中RDAT为16比特的数据线,RDCLK为与RDAT、RCTL的同步的源同步时钟,RCTL为控制信号线。RDCLK为双沿采样的时钟,在上升沿和下降沿RDAT

6、 和RCTL分别表示不同的数据。当RCTL为1时,表示RDAT上的当前传输的是控制字;当RCTL为0时,表示当前传输的是实际所需数据。 状态总线为RSTAT和RSCLK,其中RSCLK为源同步时钟,对RSTAT进行采样;RSTAT为2比特的状态线,用于传输接收方向的目标FIFO的状态,主要用于流控(flow control)。 图3. 接口信号图数据总线(包括R/TDCLK、R/TDAT、R/TCTL)只能使用LVDS电平标准;状态总线(包括R/TSCLK、R/TSTAT)可以使用LVTTL电平标准,也可使用LVDS电平标准。当使用LVTTL电平标准时,时钟频率不超过数据总线的1/4(通常取1

7、/4或1/8);当使用LVDS电平标准时,最大时钟频率可以和数据总线频率一致。接口的信号列表见表1。表 1 接口信号列表信号方向描述TDCLKLink PHY发送数据采样同步时钟双沿采样、驱动TDAT和TCTLTDAT15:0Link PHY发送数据传输从Link到PHY的载荷数据和带内控制字。TCTLLink PHY1:TDAT15:0上为控制字0:TDAT15:0上为数据TSCLKPHY LinkTSTAT采样同步时钟TSTAT1:0PHY Link传输轮循的FIFO状态信息以及相关的错误侦测和成帧RDCLKPHY Link接收数据采样同步时钟用其上升和下降沿来采样和驱动RDAT和RCTL

8、RDAT15:0PHY Link接收数据传输从PHY到Link的载荷数据和带内控制字RCTLPHY Link1:RDAT15:0上为控制字0:RDAT15:0上为数据RSCLKLink PHYRSTAT采样同步时钟RSTAT1:0Link PHY传输轮循的FIFO状态信息以及相关的错误侦测和成帧二接口详述:SPI-4.2接口包含数据总线(Data Path)和状态总线(FIFO Status Channel)两大部分,下面就针对两部分分别进行介绍。1 数据总线(Data Path):数据总线中TDAT/RDAT、TDCLK/RDCLK和TCTL/RCTL相互之间的关系见图4。从图中可以看出:时

9、钟和DAT/CTL同步。总线上传输的数据分为两类:一类为需传输的数据负载(payload),一类用于控制负载传输的字节,称为控制字(Control words)。我们可以通过R/TCTL的电平情况来区分数据总线上传输的是是数据负载,还是控制字。当R/TCTL为高电平时,数据线上传输的是控制字;当R/TCTL为低电平时,数据线上传输的是正常数据。在传输控制字时,如果下一个周期仍然是控制字,则当前控制字为IDLE控制字。图4. 数据总线时序图A数据负载:数据负载为16位,其在总线上传输时,高8位为低字节,低8位传送高字节。如图5所示,其中图(a)包含奇数个字节的数据包负载传输的字节顺序,无效的字节

10、“XX”一般设置为零,图(b)为包含偶数个字节的数据包负载传输的字节顺序。 (a) (b)图4. 负载传输顺序数据负载包的最大、最小长度由具体的应用决定。但是,每次数据突发,通常必须为16字节(8个周期)的整数倍。只有一种情况例外,即当前数据包已传输到数据的最末尾。也就是说,仅仅带包终止标志(EOP)控制字的前一个数据突发可以不是16字节的整数倍。从数据包传输的角度来看,数据突发只能暂时停止在包的16字节整数倍的边界处,或停止在数据包结束处。 图5. SOP间距示意图注:S:SOP有效的控制字E:EOP有效的控制字ES:SOP、EOP有效的控制字I:idle控制字C:连续传输控制字(bit15

11、:12=8)EC:EOP有效,设置连续传输的控制字P0,P1:载荷数据字节对于每一通道,其数据在总线上传输时,包起始标志(SOP)控制字的间隔不能少于8个周期(每个周期为两个字节(16比特),可以传输一个控制字或者数据字),短包之间的间隙(gap)用idle控制字来填充。也就是说,连续传输两个数据包时,这两个数据包的起始位置至少要相隔8个周期。图5上部列出了单通道情况,针对不同包长时,数据在总线上的排列情况。上面所说的8个周期限制仅仅是针对单个通道传输数据而言,当多个通道复用总线时,多个通道之间的控制字和数据字相互独立,没有相互关系,也没有限制。在图5左下角,在不同通道的数据负载之间只有连续传

12、输控制字,这样可以让更多的数据能够立即被传输,提高了传输效率。上面提到的多通道传输。是指在某个时间段内,总线上在传输这个通道的数据;在下一个时间段,总线上在传输另外一个通道的数据。每一段数据,称为一次数据突发(Burst);两次数据突发之间,以控制字(EC)分隔,并表征前后两次突发数据的状态。同时,有关通道的信息也内嵌在控制字中。 B控制字:控制字用于控制负载数据的传输,表征负载数据的状态,在接收和发送方向使用相同的控制字。在整个传输的数据流中,控制字既表示了该控制字前一段连续负载的状态,同时也表示了后一段连续负载的状态。 每个控制字由两个字节组成,为总线上一个周期传输的数据。包括以下几个控制

13、域: a) 类型(Type): 表示后一周期的数据,为负载数据,还是一个IDLE周期。 b) 包结束标志(EOPS):表示前一个周期的数据为数据包的最后一个周期。 c) 包超始标志(SOP): 表示下一个周期的数据为数据包的第一个周期。 d) 通道地址(ADR): 表示后一段连续负载数据所属的通道。 e) 校验和(DIP-4): 校验和,保证控制字和数据传输的正确性。 这几个控制域在16比特中的分布如图6所示: 图6. 控制字的控制域分布图其中EOPS为两比特,除表示数据结束的含义之外,还可以用来表示数据包结束时的两个字节,是仅有一个字节有效(11),还是两个字节都有效(10)。通道地址为8比

14、特,因此可以支持256个通道的数据传输。详细说明见表2、表3,举例说明见表4。 表 2 控制字格式描述表Bit位标签描述15Type控制字类型1:载荷控制字(控制字后将立即发送载荷)0:idle或者训练控制字14:13EOPSEOP状态,与前一个采样周期的payload传输状态有关00:非EOP01:EOP中止(特定应用的错误状态)10:EOP正常终止,2byte有效11:EOP正常终止,1byte有效在一个burst的首个控制字中EOPS也是合理的,但是他不会被设置或者设置为“00”12SOPSOP状态1:控制字后立即会有payload传输0:其他情况在idle和训练控制字中全部设为“0”1

15、1:4ADR端口地址8bit的载荷数据的端口地址,无保留地址Idle中设为全“0”训练序列中设为全“1”3:0DIP-44-bit的对角线隔行校验位4-bit的奇校验,通过计算当前控制字和紧邻的数据字(前1控制字后面的数据字内容,无数据字则不计算)表 3 控制字类型列表Bit15:12下一个字状态前一个字状态意义00000IdleContinuedIdle,非EOP,训练控制字10001ReservedReservedReserved20010IdleEOPw/abortIdle,中止前一个包30011ReservedReservedReserved40100IdleEOPw/2bytesId

16、le,EOP,2字节有效50101ReservedReservedReserved60110IdleEOPw/1byteIdle,EOP,1字节有效70111ReservedReservedReserved81000ValidNoneValid,无SOP,无EOP91001Valid/SOPNoneValid,SOP,无EOPA1010ValidEOPw/abortValid,无SOP,中止B1011Valid/SOPEOPw/abortValid,SOP,中止C1100ValidEOPw/2byteValid,无SOP,EOP,2字节有效D1101ValidEOPw/2byteValid,S

17、OP,EOP,2字节有效E1110ValidEOPw/1byteValid,无SOP,EOP,1字节有效F1111ValidEOPw/1byteValid,SOP,EOP,1字节有效表 4 控制字举例控制字描述0110 00000000 abcdIdle控制字,位于数据传输之后,正常终止,上次传输最后一个数据字中1byte有效(abcd为校验,与此控制字和前一个数据有关)0000 00000000 1111Idle控制字,前一个也为idle控制字1101 00000101 abcd载荷控制字位于上次传输之后,正常终止,上次传输最后一个数据字中2byte有效(abcd为校验,与此控制字和前一个数

18、据有关)下一个数据传输到5端口C状态跳变:前面分别介绍了数据负载和控制字,下面介绍二者之间的关系变化。图7显示了连续周期的数据通路上的状态转换。“Data Burst”后的状态转换(转换至“Payload Control”(如果有数据等待传输),或者“Idle Control”(其他情况)条件只能为接收到了8个周期的整数倍数据(等同于16Byte整数倍的数据段)或者接收到了包结束标志EOP。“Payload Control”状态后必须跟着“Data Burst”(除非支持控制字扩展功能,这里不讨论)。其中的训练数据字和训练控制字会在后面介绍。图7(a). 数据通路状态转换图图7(b). 负载数

19、据/控制字的有效序列 图7(b)所示为负载数据及控制字的有效序列。图中最下面一行为有效的控制字编码,编码为控制字的15:12位的内容,左下标为EOP标志,右下标为SOP标志。 进行数据突发时称为ACTIVE,不传输数据或发送训练序列时称为IDLE。由IDLE至ACTIVE的控制字没有左下标,这是由于控制字之间没有数据突发,故不需要EOP标志;由ACTIVE至IDLE的控制字没有右下标,这是由于控制字之后没有数据突发,故不需要SOP标志。 由ACTIVE经过8、E、C和A四个控制字时,继续进行数据突发传输;经过9、E、D和B四个控制字时,继续进一个新数据包的突发传输;经过0、6、4和2结束数据包

20、传输,进入到IDLE。 由IDLE经过8、9继续或开始数据包的突发传输,进入到ACTIVE;经过0仍然处于IDLE,或发送训练序列。训练序列包括10个周期的TC(Training Control)和10个周期的TD(Training Data)。 图8. 单通道状态跳转图每个通道在总线上传输数据时可分为三个状态:激活状态(ACTIVE): 表示当前正在发送数据;暂停状态(PAUSED): 表示当前未发送数据,但有数据包尚未发送完成;未激活状态(INACTIVE):表示当前未发送数据,且无未完成的数据包。图8为单个通道在各种控制字作用下的状态跳转图。状态机的跳转过程如下: a) 通道n可以从IN

21、ACTIVE跳转到ACTIVE状态,其条件是PCn&SOP,即控制字为控制通道n(控制字中的地址域值为n)且为包的起始(控制字的SOP域为1,表示包开始)。此时,开始传输一个数据包。 b) 控制字为(IC|PCn)&EOP时,即IDLE控制字或其它通道的payload控制字,且EOP为1时,从ACTIVE状态跳到INACTIVE状态。此时,一个数据包的传输结束,总线不再被通道n占用。 c) 控制字为PCn&EOP&SOP时,即通道n的控制字且既包括EOP也包括SOP时,从ACTIVE状态跳转到ACTIVE状态。此时,当前数据包传输结束,继续传送下一个数据包。 d) 控制字为PCn&EOP&SO

22、P时,即通道n的控制字且既不包括EOP也不包括SOP时,从ACTIVE状态跳到ACTIVE状态。此时,继续传输当前数据包。 e) 控制字为(IC|PCn)&EOP时,即IDLE控制字或其它通道的payload控制字,且EOP不为1时,从ACTIVE状态跳到PAUSED状态。此时,当前数据包的传输被中断。 f) 控制字为PCn&OP时,即通道n的payload控制字且包括SOP时,从PAUSED状态跳到ACTIVE状态。此时,中断的数据包传输被恢复。 2 状态总线(FIFO Status Channel):SPI-4.2的流控功能是通过状态总线实现的。接收模块和发射模块上都有FIFO缓存队列,以

23、接收方向为例,即物理层(PHY)至链路层(Link)的方向上,数据由物理层送至链路层,在链路层的每个通道中,数据被送入到FIFO缓存。链路层将FIFO的状态通过状态总线RSTAT反馈给物理层,物理层观察到FIFO的状态之后,控制自己发送数据的速率,从而实现流控功能。在发送方向上,也是使用相同的流控机制。 如图9所示,为利用FIFO状态的反馈进行流控的结构图。 图9. FIFO状态进行流程控制图FIFO的状态在RSTAT上传输,RSTAT为2比特,FIFO有三种状态,分别用“00”,“01”和“10”表示,“11”用于特殊用途,如表示DISABLE或帧边界等状态。FIFO的状态含义如表5所示。

24、简单来说,“10”表示FIFO进入几乎满状态,只能写入少量的数据;“00”表示处于快要空的状态,需马上写入数据,否则将导致FIFO下溢,“01”表示某个中间状态。对应每一个状态,都在一个所谓的“分值”(Credits),表示接收到该状态后,FIFO还可以容纳多少个16字节。其中MaxBurst1必须大于或等于MaxBurst2,有关MaxBurst值及分值的含义请参考“流控分值”一节。 表 5 FIFO信号定义列表MSBLSB意义11Reserved保留字或者用来表示链接非使能状态10Satisfied表明相应的端口FIFO几乎是满的状态,当satisfied接收到时,只有紧邻的上次16byt

25、e的数据块可以继续发送出去,其余数据在FIFO状态变化之前禁止发送01Hungry当Hungry接收到时,在FIFO状态变化之前只有紧邻的上次准许发送的数据块(不论大小)或者最多MaxBurst2个16byte的数据可以继续发送出去,其余数据在FIFO状态变化之前禁止发送00Starving表明相应PHY端口的Buffer即将清空,当接收到Starving状态时,在下一个端口状态改变前,可以发送MaxBurst1个16byte的数据块在SPI-4.2的数据总线中有多个通道的数据在传输;同样,在状态总线中,多个通道的FIFO状态在状态总线上传输。数据总线中,通过控制字表征每次数据突发的状态及数据

26、属于哪个通道;在状态总线上,直接采用轮流的方式发送各个通道的FIFO状态。 各个FIFO的状态,通过一个控制序列进行发送,这个序列称为日历序列(Calendar Sequence),该序列的长度称为日历长度,标识为CALENDAR_LEN。日历序列的值为通道号,在状态总线上,根据日历序列的值来确定发送第几个通道的状态。 例如CALENDAR_LEN = 4,日历序列的值为:CALENDARi = 1, 2, 3, 4。那么在状态总线上首先发送通道1的FIFO状态,下一个周期再发送通道2的FIFO状态,再下一个周期为通道3的FIFO状态,然后是通道4的FIFO状态;再然后继续循环从通道1的状态开

27、始发送。 为了使状态总线的接收方能够定位这些轮流发送过来的FIFO状态的起始位置,使用“11”作为帧首定界符,使用DIP-2值为帧尾定界符。帧首和帧尾之间为FIFO的状态,由于状态帧周期性发送,只要连续定位足够多的“11”和DIP-2值,就可以确定帧的边界,从而得到各个FIFO的状态。 在帧首和帧尾之间,通常会按照日历序列重复多次发送FIFO状态,这个重复的次数标记为CALENDAR_M。那么,在帧首和帧尾之间的状态个数为:CALENDAR_LENCALENDAR_M。 (a)(b)图10. FIFO状态发送跳变图图10状态总线的FIFO状态发送跳转图,其中(a)为没有训练序列的LVTTL/L

28、VDS接口模式,(b)为有训练序列的LVDS接口模式。FIFO状态发送方最初处理DISABLE的工作状态,不停地发送“11”;当使用后,进入SYNC状态,发送一个周期的“11”,然后进入到CALENDAR状态,根据CALENDAR_LEN、CANLENDAR_M值,和日历序列,发送多个通道的FIFO状态;再回到DIP-2状态,发送前述数据的DIP-2值。从DIP-2状态再回到SYNC状态,如此循环往复。 对于流控,SPI-4.2协议有如下规定: 1) “接收”方向,即PHY到LINK方向的实现是可选的;“发送”方向,即LINK到PHY方向的实现是必须的。若都进行了实现,相互之间应该完全独立地工

29、作。 2) CALENDAR_LEN至少应该与通道数相等,通常应设置为所有通道的总速率除以最低速率的通道速率的商。例如对于OC-192应用,其中存在VC-3通道,可设置其值为192。具体计算方式见下面例子。 3) 某个通道在日历序列中出现的次数,与这个通道的速率成正比。 4) 当某个通道多次出现在日历序列中,应使这些值以大致相等的间隔排列在日历序列中,这样可以使状态接收方均匀地收到FIFO状态,更好地进行流控(见图11)。 5) 同一个传输方向上接收端和发射端的CALENDAR_LEN,CALENDAR_M值和日历序列CALENDERi,必须分别配置为完全相同的值。 6) MaxBurst1和

30、MaxBurst2的值,可以设置为所有通道使用相同的值,也可以为每个通道指定不同的值。但对于SPI-4.2的“接收”方向或“发送”方面,PHY和LINK层必须配置为相同的值。 7)在LVDS接口模式下,CALENDAR_LEN,CALENDAR_M的乘积必须不小于16,以便区分状态信息和训练序列。图11. 日历长度和重复次数都为4的数据传输示意图以下为几种日历序列配置的例子: 1) 单个OC-192或10Gbps以太通道: CALENDAR_LEN = 1,CALENDAR1 = 1; 2) 四个OC-48通道:CALENDAR_LEN = 1,CALENDARi = 1, 2, 3, 4; 3) 两个OC-48通道,八个OC-12通道(通道3至10),CALENDAR_LEN = 16, CALENDARi = 1, 2, 3, 4, 1, 2, 5, 6, 1, 2, 7, 8, 1, 2, 9, 10, 另外一种可行的方法为:CALENDARi = 1, 3, 2, 4, 1, 5, 2, 6, 1, 7, 2, 8, 1, 9, 2, 10; 4) 10个1Gbps以太端口

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2