1.为什么要进行线路编码?
高速链路中如果高低频损耗差异过大 就会导致接收机看到的眼图是闭合的 从而无法正确的恢复数据。为了解决这种情况经常要在TX和RX端增加均衡电路衰减低频幅度或者抬高高频幅度【线路对高频的损耗大 对低频的损耗小】
【加重技术:预加重(pre-emphasis)和去加重(De-emphasis)_cy413026的博客-CSDN博客】
除了均衡 保证传输信号的均匀翻转 也就是降低直流分量同样十分重要。为了降低连续传输0,或者连续传输1的概率 线路编码就十分必要。这个过程实际是直流均衡。
直流均衡有两个作用:
- 有足够的0/1翻转给RX提供定时信息
- 避免因为直流过大,在link上被电容“隔直流”导致信号衰减过大,而RX无法识别0/1.
对于第二点需要说明的是:高速串行通信,通常使用交流耦合方式,即在发送端(TX)串接电容,根据电容“隔直流,通交流”的特性,频率越大,电容阻抗越小。
常见8b/10b , 64/66b, 128/130b, 128/132b都有各自的使用场景。
2. disparity
使用 “不一致性(Disparity)”来描述编码中"1"的位数和"0"的位数的差值,比如5/6b编码
D.00 5'b00000 编码后有两种情况:
6'b100111:此时Disparity为-2 表示1比0多两个,认为是-RD的码型
6'b011000:此时Disparity为2表示1比0少2个,认为是+RD的码型
3.Running disparity
运行不一致性(RD),它的取值只有仅会出现+1与-1两种状态,
+1代表位"0"比位"1"多:含义是前面一段传输过程中0比1多
-1代表位"1"比位"0"多:含义是前面一段传输过程中1比0多
其初始值是-1
那么当前在选择线路编码的时候,如果RD = +1, 当前就选择-RD的线路编码;反之则反之。
8B/10B ENCODE/DECODE详解https://www.cnblogs.com/YINBin/p/11011232.html
一文了解高速信号编码之8B/10B - OFweek电子工程网https://ee.ofweek.com/2021-07/ART-11000-2801-30510236.html