信号协议编码介绍

本文所要说的信号编码是指将信号原来的01序列按照一定的规则重新排列的过程。

那么信号为什么要进行编码呢?

最主要的原因就是信号本身是高频交流信号,但是原始的信号序列可能出现多个连续的0或1,那么此时就表现出了一定的低频分量;

第一、如果链路中串有电容器件,前边的文章中讲过,电容对低频分量有一定的衰减

第二、信号中出现比较多的连续的01会使信号的码间干扰更恶劣,眼图更差;

因此,信号协议采取了一定的编码以保持01的平衡;

下面我们看一下,几种常见的编码;

RZ:return to zero,即归零码,电平每次跳变后,都要占用一个bit位进行归零(此bit位不是有效传输数据),此编码只有50%的效率;

NRZ:non-return to zero,非归零码,信号每次跳变后,电平不进行归零,序列中发送的bit1,电平则由0跳变到1,序列中发送的bit0,电平则由1跳变到0,此编码有100%的效率,但是不能保证链路中的DC平衡;

NRZI:non-return to zero inverted,非归零反转码,当序列中发送的是bit1,电平发生跳变,由高到低,或由低到高都可以,当序列中发送的是bit0,信号不发生跳变,此编码不能保证链路中的DC平衡;

MLT-3:multi-level transit-3,多电平传输码,有+1、0、-1三种电平,当序列中发送的是bit1,电平则发生跳变,如果序列中发送的是bit0,则不跳变,跳变时,如果前一个bit是+1或者-1,则下一个bit变为0,如果前一个bit是0,则下一个bit与最近的一个非0bit相反,这种编码由于有三种电平跳变,直流平衡要好于前两种;

Manchester编码:当序列发送的是bit0时,电平由低电平跳变到高电平,当序列发送的是bit1时,信号由高电平跳变到低电平,这种编码里电平的跳变都是强制的,因此每bit就多出了1bit位进行电平调整,所以这种编码虽然保证了每bit信号都发生跳变,但是效率只有50%;

4b/5b:这种编码是将原来4个bit的序列变为5bit,也就是原来一共有2的4次方(16)种可能的数据,现在有2的五次方(32)种,在这32位种选取16个bit0和bit1数量相当的组合,如00111/10110等,与原来的4bit序列一一对应,剩下的可以挑选用作控制,4b/5b映射表如下:

这样做的好处是在32组序列中可以将其中01数量比较均衡的组合选出16组,从而保持DC平衡;

上表就是由原序列的4bit和编码后的5bit序列进行的一一映射,除了01的平衡,没有别的规律了,直接查表就行;

8b/10b:和4b/5b编码类似,这种编码是将8bit的数据用10bit表示,要注意,先将原来的8bit数据拆分成高3bit低5bit,再将高3bit映射为4bit,将低5bit映射为6bit,映射表如下:

高3bit映射表

低5bit映射表

从表中可以看到,有些序列是分RD+和RD-的,如果,0的数量多,则该序列记为RD+,如果1的数量多,则该序列记为RD-,当前一序列为RD+时,下一序列则用RD-,反之亦然,保持直流平衡;

例如,原序列为000 00000,那么编码后,高3bit映射为1011(RD-),那么低5bit映射为011000(RD+),以此保证连续0和1的数量

这种编码种最大连1和连0的数量为5,这种编码的直流平衡得到了保障,但是效率只有80%,比较高速的信号逐渐不采用这种编码了;

另外,需要注意一种数据的表示形式:D.31.2D就是数据,31则表示该8bit数据的低5位,2表示高3位,所以D.31.2就是010 11111

下表是D码的编码表,以及由8bit转为10bit的映射:

 K码表示控制码,如K28.5,则表示控制码,101 11100

K码映射表如下:

声明:本内容为作者独立观点,不代表电子星球立场。未经允许不得转载。授权事宜与稿件投诉,请联系:editor@netbroad.com
觉得内容不错的朋友,别忘了一键三连哦!
赞 0
收藏 1
关注 22
成为作者 赚取收益
全部留言
0/200
成为第一个和作者交流的人吧