当前位置:首页 > EDA > 电子设计自动化
[导读]8b10b编码作为数字通信领域中的一项重要线路编码方案,其核心理念在于将每8位数据映射到10位编码中。这个映射过程严格按照特定规则进行,旨在保证编码中的电平转换足够,以维持信号的直流平衡,并提供足够的时钟信息,使接收端能够准确无误地解码数据。这种编码技术在多个通信系统中发挥着关键作用,其中包括但不限于Aurora、PCIe、USB、光纤通信、SATA和HDMI等。在这些应用场景中,8b10b编码通过其独特的特性,如电平平衡、时钟恢复和错误检测,确保了高速数字数据的可靠传输。在今天的通信标准中,8b10b编码已经成为确保数据完整性和可靠性的不可或缺的一环。

8b10b编码作为数字通信领域中的一项重要线路编码方案,其核心理念在于将每8位数据映射到10位编码中。这个映射过程严格按照特定规则进行,旨在保证编码中的电平转换足够,以维持信号的直流平衡,并提供足够的时钟信息,使接收端能够准确无误地解码数据。这种编码技术在多个通信系统中发挥着关键作用,其中包括但不限于Aurora、PCIe、USB、光纤通信、SATA和HDMI等。在这些应用场景中,8b10b编码通过其独特的特性,如电平平衡、时钟恢复和错误检测,确保了高速数字数据的可靠传输。在今天的通信标准中,8b10b编码已经成为确保数据完整性和可靠性的不可或缺的一环。

1为什么要使用8b10b编码

由于串行链路中存在交流耦合电容,理想电容的阻抗公式为Zc=1/2πf*C。因此,随着信号频率的增加,阻抗逐渐降低;反之,频率降低时阻抗增加。在这种情况下,当信号频率较高时,传输基本上可以实现零损耗。然而,当码型为连续“0”或“1”时,电容的损耗显著增加,导致信号幅度不断下降。这带来的严重后果是无法准确识别是“1”还是“0”。因此,为了尽量减小低频码型的损耗,8b10b编码技术应运而生。8b10b编码的主要目标是优化低频码型,将其转换为较高频的码型,以确保在传输过程中降低损耗,这就是直流平衡。通过这种方式,我们能够在高频率条件下更可靠地传输数据,提高串行链路的性能和稳定性。8b/10b编码的提出最早应用在光纤的传输技术,8b/10b技术是将8个比特经过某种映射的机制转化为10个比特的字码,分两组分别进行映射的处理,分别是 5B/6B 与 3B/4B 的处理。

FPGA基础:8b/10b编码原理详解

2不均等性——Disparity

8b10b编码产生的输出为10位,经过8b10b编码后只存在三种情况,分别是"+2" "0" "-2",它们代表了三种不均等性(Disparity)。在这里,不均等性通过计算 "1" 的数量减去 "0" 的数量得到,即 Disparity = "1"的数量 - "0"的数量。通过利用这种不均等性与 Disparity 的关系,可以确保发送的 "0" 和 "1" 的数量保持一致,从而有效地限制了连续的 "1" 或 "0" 不超过5位。这种机制有助于维持编码的直流平衡,保障了数据的可靠传输。

· "+2"表示10b内有4b的"0",6b的"1"。

· " 0"表示10b内有5b的"0",5b的"1"。

· "-2"表示10b内有6b的"0",4b的"1"。

3编码原理

8b10b编码会将8b数据分成两组,一组3b(HGF),一组5b(EDCBA),经过8b10b编码后,3b(HGF)经过3b4b编码变成4b(fghj),5b(EDCBA)经过5b6b编码变成6b(abcdefgi),合起来就是10b(abcdefgifghj)。此外,“D.x.y”是数据码(D即是Data),“K.x.y”指控制码(K即是Key),x与y表示输入的原始数据。

FPGA基础:8b/10b编码原理详解

不均等性执行规则