QSGMII协议详解

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1000Base-X1.8B10B编码原理2.RD运算规则3.有序集详解4.自协商、发送、接收状态机PCSRelationshipFunctionBlock8B/10B的引入8B/10B编码是目前高速串行通信中经常用到的一种编码方式。直观的理解就是把8bit数据编码成10bit来传输,引入这种机制的目的是保证信号的DC平衡。当高速串行流的逻辑1或逻辑0有多个位没有产生变化时,信号的转换就会因为电压位阶的关系而造成信号错误。8B/10B编码避免了5个连续的“0”或者“1”出现。并且还可以使接收端从数据中有效地提取时钟。编码原理8bit原始数据会分成两部分,其低5位会进行5B/6B编码,高3位则进行3B/4B编码,这两种映射关系有一个标准化的表格。对于8bit信号作为一个数据群码时用Dx.y表示,作为特殊群码时用Kx.y表示,其中x是EDCBA的十进制值,y是HGF的十进制值。例如,一个8bit数据码11011101表示为D29.6。5B/6B编码表5B/6BcodeinputRD=-1RD=+1inputRD=-1RD=+1EDCBAabcdeiEDCBAabcdeiD.0000000100111011000D.1610000011011100100D.0100001011101100010D.1710001100011D.0200010101101010010D.1810010010011D.0300011110001D.1910011110010D.0400100110101001010D.2010100001011D.0500101101001D.2110101101010D.0600110011001D.2210110011010D.0700111111000000111D.23+10111111010000101D.0801000111001000110D.2411000110011001100D.0901001100101D.2511001100110D.1001010010101D.2611010010110D.1101011110100D.27+11011110110001001D.1201100001101D.2811100001110D.1301101101100D.29+11101101110010001D.1401110011100D.30+11110011110100001D.1501111010111101000D.3111111101011010100K.28111000011111100003B/4B编码表3B/4BcodeinputRD=-1RD=+1inputRD=-1RD=+1HGFfghjHGFfghjD.x.000010110100K.x.000010110100D.x.10011001K.x.100101101001D.x.20100101K.x.200110100101D.x.301111000011K.x.301111000011D.x.410011010010K.x.410011010010D.x.51011010K.x.510101011010D.x.61100110K.x.611010010110D.x.P711111100001D.x.A711101111000K.x.711101111000RunningDisparity表中的RD标志,代表编码极性。它的目的就是保持8B/10B编码中的直流平衡。RD=+1表示1比0多,RD=-1表示0比1多。RD=-1是上电初始化状态。每进行一次编码后,都要计算出当前编码的RD值,用于下一个编码。RunningDisparity举例说明:假设要传输D4.0和D21.4该如何编码?根据当前区块的“0”“1”个数计算出的RD作为下一个区块的RD参照值。起始RD默认为-1。所以传输的编码可以表示为-D4.0-D21.4+-1110101+10100-1101010-11101+1RD翻转RD的翻转规则:1.零偏差(“0”和“1”的个数相等)的区块前后保持RD极性,非零偏差的区块翻转其RD极性。2.如果在RD=-1后接收到“0”比“1”多,或者在RD=+1后接收到“1”比“0”多,说明接收到错误群码。3.无论是否接收到错误群码,RD仍继续计算下去。非零偏差的区块能避免错误的蔓延。RD计算错误侦测举例传送群码传送比特流接收比特流接收群码-D21.1–D10.2–D23.5+-101010-1001-010101-0101-111010+1010+-101010-1011a+010101+0101+111010+b1010+c-D21.0+D10.2+错误群码d+a.位元发生错误:1001==》1011。b.非零偏差的区块应翻转其RD极性。c.无论接收群码是否正确,RD继续计算;非零偏差的区块避免了错误的蔓延。d.错误群码不一定代表当前群码传送错误。逗号码7比特逗号码定义为0011111(comma+)以及1100000(comma-)。在数据群码中保证了不会有连续5比特的0或1出现,因此逗号码能作为唯一被识别为数据对齐的信号。包含逗号码的特殊群码为/K28.1/,/K28.5/,/k28.7/。/K28.7/用作于误码率和时钟的测试(连续的/K28.7/组合为00000111110000011111..)/K28.5/用在有序集/C/及/I/中。/K28.1/在802.3中暂未提及使用。有序集的概念802.3中定义了8种有序集(order_set),它们由单一的特殊群码或者由一个特殊群码与数据群码的组合构成。包含/K28.5/的有序集支持数据对齐和时钟恢复。有序集可以理解为物理链路上的一些控制协议。有序集有序集/C/有序集/C/是用作自协商寄存器配置的标识码,在有序集后的16比特数即为寄存器值。有序集/C/分为/C1/和/C2/;/C1/定义为/K28.5/D21.5/,/C2/定义为/K28.5/D2.2/。/C1/的前后极性翻转,/C2/的前后极性保持。有序集/C/对于确定的一个R,无论起始的RD正负,初始发送C1,然后与C2交替发送。假设用/C?/R1/R2/来表达自协商时传输的四个字节,/R1/代表Config_Reg[7:0],R2/代表Config_Reg[15:8],那么发送方式为/C1/R1/R2/C2/R1/R2/C1/…/C2/…交替发送/C1/,/C2/可以使2个comma+和2个comma-连续交替发送。有序集/C//R1/R2/前后的极性所有可能为:如果起始极性为-,-R1-R2+=-R+;-R1-R2-=-R-;-R1+R2+=-R+;-R1+R2-=-R-;如果起始极性为+,+R1-R2+=+R+;+R1-R2-=+R-;+R1+R2+=+R+;+R1+R2-=+R-;有序集/C/则连续发送时,当:起始为+,R极性翻转:...+C1-R+C2+R-C1+R-C2-R+C1-...;起始为+,R极性保持:...+C1-R-C2-R-C1+R+C2+R+C1-...;起始为-,R极性翻转:...-C1+R-C2-R+C1-R+C2+R-C1+...;起始为-,R极性保持:...-C1+R+C2+R+C1-R-C2-R-C1+...;自协商寄存器FD:全双工指示,如果设置为1,则该设备支持全双工模式;HD:半双工指示,如果设置为1,则该设备支持半双工模式;PS1,PS2:流量控制指示,不同组合有不同的含义,如下:00:不支持流量控制;01:针对链路对端的不对称流量控制;10:对称流量控制;11:针对本地设备的不对称流量控制。RF1,RF2:远程错误位,指出远程设备的一些错误发送;00:设备正常(默认);01:本地设备离线;10:链路故障;11:自协商错误。ACK:确认指示。如果一台设备成功接收到了对端的基页,则发送自己基页的时候,将ACK设置为1;NP:下一页指示。如果把该位设置为1,则隐含说明该设备还要发送除基页外的其他页面,这些其他页面用来协商或配置其他功能。RSVRSVRSVRSVRSVFDHDPS1PS2RSVRSVRSVRF1RF2ACKNPLSBMSBD0D1D2D3D4D5D6D7D8D9D10D11D12D13D14D15自协商过程有序集/I/当GMII上没有数据传输的时候,链路也不能空闲,而是传输一些不代表任何实际意义的比特位,这样可以保持两端时钟的同步,并使链路保持在激活状态。组成这些空闲比特位的为有序集/I/,链路两端的设备在接收到/I/后,仅仅忽略,但如果一段时间内没有接收到数据,同时接收不到/I/有序集,则认为链路故障。有序集/I//I/分为/I1/和/I2/,/I1/定义为/K28.5/D5.6/,/I2/定义为/K28.5/D16.2/。/I1/的前后极性相反;/I2/的前后极性一致。在数据码或者有序集后如果RD为+,则使用/I1/用来恢复RD至-的状态,随后发送持续的/I2/用来保证RD-。保证RD-是为了/K28.5/能包含comma+。如果在接收到一个由两群码组成的有序集,第一个群码为/K28.5/,第二个群码为除/D21.5/和/D2.2/以外的数据群码,则这个有序集被认为是一个/I/。有序集/R/有序集/R/称为载波扩展,定义为/K23.7/。/R/的第一个功能:Carrierextension千兆以太网最小帧长度为64B,那么在半双工工作模式下,大于200米的链路上一个短帧的传输时间远小于冲突窗口(传输长度为512B帧所需的时间),不能进行正常的CSMA/CD。所以对于小于512B的帧信号,需要使用/R/填充至512B。如图所示,如果没有载波扩展,发送一个64B的短帧,则在A检测到碰撞的时刻,该帧早已全部发完,那么该CSMA/CD失败。相反,发送512B帧,在检测到碰撞时该帧还没有发完,那么延迟一个随机时间重发。有序集/R//R/的第二个功能:Packetseperation半双工模式下使用载波扩展造成了额外的开销,影响传输效率。为了改善传输效率,千兆以太网在MAC子层定义了帧突发模式(burst)。帧突发机制如下:发送端允许连续发送一些帧,第一个帧按CSMA/CD规则发送,即如果第一帧不够512B使用/R/填充至512B,第一帧发送成功后,该链路不会再遇到冲突,后续发送短帧也不必进行填充。但是为了连续占有信道,后续帧之间的IPG使用/R/填充,一次帧突发的最大长度限制为8192B。有序集/R//R/的第三个功能:/I/偶数对齐后文结合/T/详细说明。有序集/R//R/的产生:TX_EN低电平,TX_ER高电平PermissibleencodingsofTXD7:0,TX_EN,andTX_ER如果在发送载波扩展时,需要请求物理层进行中断,则发送载波扩展错误。由TX_EN=0,TX_ER=1,TXD=1F表达,PCS层编码为/V/。有序集/S/,/T/包起始定界符用来描述数据序列传输的起始边界,由有序集/S/构成。有序集/S/定义为/K27.7/。包截止定界符用来描述数据序列传输的终止边界,由有序集/T/R/I/构成。有序集/T/定义为/K29.7/。如果/T/出现在奇数位置上,则需填充一个/R/构成/T/R/R/I/,保证/I/能够偶数对齐。/T/与/I/的奇偶关系-1我们知道,/I/是由/K28.5/和/D/两个字节组成,标准中规定/I/的/K28.5/必须在偶数位置上,/D/在奇数位置上。如果/T/出现在偶数位置上(该帧从/S/到/T/包含的字节数为偶数),那么插入一字节的/R/便能保证/I/的/K28.5/在偶数位置上,称为/I/偶数对齐。/T/与/I/的奇偶关系-2如果/T/出现在奇数位置上(该帧从/S/到/T/包含的字节数为奇数),那么插入两字节的/R/R/便能保证/I/偶数对齐。/S/与/I/的奇偶关系-1虽然根据/T/的位置插入相应的/R/就能保证/I/偶数对齐,但是不能保证TX_EN有效时刻的位置,那么当TX_EN出现在偶数位置上时,/S/紧

1 / 57
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功