您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > FC-AE-1553B协议解析
FC-AE-1553B协议硬件结构FC-AE-1553协议整体架构及模块划分SERDES高速收发模块1.SERDES高速收发模块总体结构SERDES模块主要完成数据在光纤通道上高速收发的功能。在数据发送时,将10bit并行数据并串转换为在光纤通道上lbit数据进行高速发送。在数据接收时,将光纤通道上lbit数据按照数据顺序串并转换为10bit并行数据,并将10bit数据传输进入FC硬件模块中进行后续逻辑操作。SERDES模块由如下七个部分组成,如图3.2所示:(1)8b/10b编解码电路,完成发送和接收数据的8b/10b的编解码功能:(2)频率综合电路,即PLL产生电路,产生1.0GHz~2.5GHz的时钟供发送电路使用,以及接收电路时钟恢复使用;(3)时钟恢复电路,主要功能是从输入数据中恢复时钟信号并为芯片内部提SEEDERS接口FC1层接收端FC1层发送端FC2层接收端FC4层映射层MIL-STD-1553BFC2层发送端供工作需要的时钟;(4)高速数据收发电路,采用LVDS接口,完成接收发送差分信号的功能;(5)串并转换与并串转换电路,完成发送10bit到lbit及接收lbit到10bit的数据串并转换功能;(6)信号质量侦测电路,完成判断差分信号是否符合要求,并给出检测结果:(7)自测试模块电路,完成环路功能检测以及抖动等性能测试,完成SERDES模块自测试功能;频率综合电路、时钟恢复电路、高速收发电路、串并与并串电路等涉及到模拟电路设计,而在XilinxV5FPGA中有成熟的IPRoeketlO可以直接调用,所以在本系统设计中除了8b/10b编解码电路进行详细逻辑设计之外,其余电路结构可以使用口核进行实现。16位输入数据的接收时序1.18b/10b编解码主要思想8b/10b编解码是一种高性能的编码标准,主要目的是使数据在传输的过程之中保持高的信号变换频率。编码的基本思想是将8比特字节宽度的数据转换为10比特数据,10比特数据宽度的中0和1的个数相差最大不能超过2,这样进行便面可以确保了在高频时钟下信息流的直流频谱分量最大限度的接近零,所以采用8b10b编码进行数据流传输特别适合光纤通信。此外,这种编码方式可以提供一种简单的“逗号特性,一种特殊的8比特数据串,解码模块可以利用这种简单的特性实现输出8bit数据的字同步。8b/10b编码具有直流平衡和较强的检错能力的关键原因是编码过程中引用了Disparity和RD概念,如果1的个数大于0的个数则Disparity为2,RD值为正,如果1和0的个数相同则Disparity为0,RD值不变,如果1的个数小于0的个数则Disparity为.2,RD值为负。RD值不可能为零,只可能是正负两种情况,所以在解码过程中能检测出Disparity违规的情况,而且有较强的直流平衡能力。在8b/10b编码过程中,每个8比特数据对应了两组10比特数据,分别对应于Im+和RD一两种情况,可以将10B码字分为正持续差异值RD+和负持续差异值RD一,通过RD值的计算和判断来选择相应的10B码字进行输出。1.28b/10b编码模块结构设计8b10b编码模块结构如图3-3所示:8b/10b编码模块结构框图如上图所示,在FC.FS协议中,起始数据RD恒定为负。输入的8比特数据,被拆分为高3比特数据和低5比特数据,5比特数据查找模块通过初始RD值或者前一次编码反馈RD值确定的当前5比特数据到6比特数据查表操作,在查表后把5比特查表后得到的RD结果传送到3比特数据查找模块,3比特数据查找模块将通过当前RD值的执行3比特数据到4比特数据查表操作,最后将转换完成的4比特数据和6比特数据传输进入数据合并模块,得到10比特输出数据。完成8bit数据到10bit数据的转换,并将最终的RD值反馈回输入作为下一次编码的起始RD。1.38b10b解码模块结构设计10比特数据输入时,首先进行RD计算,并将数据和计算结果传送到RD违规判断逻辑,RD违规判断逻辑通过上一次数据的RD反馈值和当前输入的RD计算值判断输入数据是否有RD违规,同时检测输入数据是否在8b10b编码表中,如果出现RD违规或者出现数据编码错误则报告错误类型。如果输入数据没有错误,则将输入数据拆分为高6比特数据和低4比特数据进行3B/4B解码及5B/6B解码,将解码得到的3比特数据和5比特数据传送到数据合并模块,得到最终解码后的8比特数据。FCl层发送模块划分与逻辑实现FCl层发送模块如图3.19所示:FCl层发送模块主要由三部分组成,32bit-16bit数据解复用模块(thirtytw02sixteen)16bit-20bit8b10b编码模块,20bit-10bit数据解复用模块。32bit-16bit数据解复用模块设计主要功能:将FC2层发送的32比特数据,在两个时钟周期内拆分为两组16比特数据并发送给16bit-20bit8blob编码模块。模块实现方法:在此模块使用100M时钟,而FC2层发送模块使用50M时钟,所以两个时钟周期内FC2层发送到此模块的输入数据不会变化,模块在每个时钟周期的上升沿到来时,输出一个16bit数据,输出顺序是先输出32bit数据的高16bit数据,然后在第二个时钟周期上升沿到来时,输出32bit数据的低16bit数据。16bit-20bit8blOb编码模块设计主要功能:将输入的16bit数据拆分为两个8bit数据,并行进行8b10b编码工作,输出20bit经过编码后的数据。模块内部结构如图3.20所示:实现方法:当FC-FS硬件逻辑工作在2Gbit/s速率下,进入8b10b模块的数据率是212.4HZ,如果使用单个8b/10b解码模块,很难达到设计要求,所以本设计采用了两个8b10b模块迭代结构,对一组16比特数据同时进行8b10b数据编码。这样处理就可以将编码数据的数据率降低一半,数据位宽增大一倍,提高了系统的可靠性和高数据率的扩展。由8blob编码规则的约束,在两个编码模块之间存在RD值反馈与时钟反相。8b10b编码模块一在模块上升沿输出编码结果和相应的RD值,此时将RD值反馈到8b10b编码模块二,由于8b10b编码模块二与8b10b编码模块一使用时钟有90°相移,所以在8b10b编码模块上升沿到来时,正好接收到16比特数据中高8比特数据编码后的RD值,型后续编码,得到正确的编码结果,并将编码后得到的RD值反馈到8blOb编码模块一。通过16比特20比特解码模块可以得到解码后数据和数据相关信息,并将数据传入20bit-10bit数据解复用模块进行后续处理。20bit-10bit数据解复用模块设计功能描述:将由8b10b输出的20bit数据,按照数据的先后顺序,将20bit数据分为两个10bit数据分别输出到FCO层。实现方法:由于16bit数据进行8b10b编码的时候,首先编码的是16bit数据中,高8bit数据,然后再编码低8bit数据,,两个8b10b编码模块时钟偏差了90。,所以本模块的时钟频率为8b10b模块的两倍,使用212M时钟进行数据处理。在输出数据的时候先输出din_f_8blbenl的10bit数据,然后再输出din_f_8b10ben2的10bit数据。FCl层接收模块划分与逻辑实现FCl层接收模块如图3-5所示:FCl层接收模块主要分为了FClRMUX(IO比特到20比特串并转换模块),deel6b20b(2个并行8b10b解码模块),Invalidwordcheck(有效字检测模块),Commacheck(逗号检测模块),sixteen2thirtytwo(16比特到32比特串并转换模块)。FCI接收模块接收到由SERDES模块发送到当前的10比特并行数据,经过各个模块的转换,最终得到32比特FC2层接收数据,原语信号,原语序列以及有效字检测结果。16位输出数据的发送时序1.210bit/20bit串并转换模块设计在8b10b解码模块之前,为了降低数据率,可以将一路10比特数据进行锁存后输出两路10比特数据,将数据率降低一半,当硬件模块工作在2.12Gbit/s的数据率下,10bit-20bit串并转换模块之前,数据率为212.4Mhz,而经过此模块之后数据率降低为106.2Mhz。1.320比特16比特解码模块设计模块功能说明:将两路并行输入的10bit数据通过两个8b10b解码模块解码后输出两路8bit数据输出,并给出每组10比特数据编码错误和游程值(Disparity)违规的相关信息。模块内部结构如图3-6所示:当FC-FS硬件逻辑工作在2G速率下,进入8b/10b模块的数据率是212.4HZ,如果使用单个8b/10b解码模块,很难达到设计要求,所以本设计采用了两个8b10b模块迭代结构,同时对20比特输入数据进行解码。这样处理就可以将编码数据的数据率降低一半,数据位宽增大一倍,提高了系统的可靠性和高数据率的扩展。通过20比特16比特解码模块可以得到解码后数据和数据相关信息,并将数据传入下一模块进行后续处理。1.4逗号检测模块设计在传输过程中数据逗号出现位型如图3.7所示:模块功能:检测FC2中32比特数据起始标志K28.5,并按照K28.5在前的顺序,将两路8比特数据输入转换为一路16比特数据输出,并将结果传送到16bit-32bit复用模块进行后续处理。实现方法:在FC-FS协议中规定,在两个FC端口进行通信时,会进行端口之间相互发送原语序列,通过端口状态机进行数据同步。原语序列由K28.5特殊编码开头,通过16b/20b解码模块得到数据的K28.5标志位来确定,然后内部逻辑进行数据锁存,最后得到正确顺序的16比特数据,将特殊字标志位输出,完成16bit/32bit复用的后续操作。如果硬件模块工作在212.4Mhz的数据率下,则经过逗号检测模块,数据率降低一倍,变为106.2Mhz。1.516bit/32bit复用模块设计模块功能:将两个时钟周期内输入16比特数据按照K28.5在前的顺序复用为FC2层时钟的一组32比特数据。并将特殊字标识符同输出数据一同传输到FC2接收模块进行后续操作。实现方法:在两个时钟周期内锁存两组由逗号检测模块输入的16比特数据。通过kin的标志,判断输出32比特数据的顺序。如果硬件工作在212.4Mhz的数据率下,经过逗号检测模块第一次降低数据率,变为106.2Mhz,最后通过16比特.32bit复用模块,数据率又降低一半,降低到FC2层的数据率53.1Mhz。经过上面所有模块的功能,FC.FS硬件系统完成了协议中规定的FCl层接收的所有功能,将212.4Mhz数据率的10比特数据转换成为53.1Mhz数据率的32比特数据,并将原语标志位kout,数据有效字标志invalidword传输到FC2层接收模块,进行后续FC2数据操作。FC2层接收端设计FC-2层接收端要实现的功能主要包括:序YU/交换管理,注册注销,将单帧数据重组为完整序列,通过FC-2接口递交给FC-4层处理。图4.5给出了FC2层接收端设计框图,其具体流程如下:查询接收缓存寄存器,当寄存器帧接收请求标志置1时,说明此时该缓存中已接收到一帧数据待处理,PPC将数据读取到内存中,开始帧处理。同时寄存器信息包含该帧数据总数,以及帧是否有传输字错误等信息。一一进行判断,若帧没有发现传输字错误、帧溢出等错误,则进入序列/交换管理阶段,包括:SOF、EOF判断:确定帧服务类型和帧在序列中得位置,并设置相应FLAG标志;帧头提取:将光纤通道帧头部分单独提取出来进行帧头解析;帧头解析:判断目的地址是否为本端口,不是即丢弃该帧,若是继续判断;判断源地址与本端口是否已完成N端口注册,若未注册,需先注册,已注册,则继续判断;判断R_CTL交换类型,属于设备数据帧还是链路服务帧等,若为链路服务注册帧,则进入注册、注销进程,完成注册或注销。若为设备数据帧则进行TYPE判断;判断TYPE为何种上层应用,这里为FC-AE-1553协议;判断OX_ID交换号:该帧属于新交换,还是已有交
本文标题:FC-AE-1553B协议解析
链接地址:https://www.777doc.com/doc-4796294 .html