关于曼切斯特编码的一点理解
摘要:踩踩以前学计算机网络的老坑,关于曼切斯特编码的一点点总结。
声明
非通信之类的科班学生,只能凭借一些模糊的印象拼凑出来曼切斯特编码的具体原理,所以以下仅供理解。曼切斯特编码和差分曼切斯特编码大概就是这两类。
曼切斯特编码定义
在IEEE 802.4规定中:
1:低电平-->高电平 即1编码为01
0:高电平-->低电平 即0编码为10
举例
如果要传输的数据为1010001那么经过曼切斯特编码之后在网线中实际上传播的就是01 10 01 10 10 10 01
在G. E. Thomas,Andrew S. Tanenbaum等一群人提出的规定中
1:高电平-->低电平 即1编码为10
0:低电平-->高电平 即0编码为01
附上下面一张图:
单端信号和差分信号
单端信号
早期的数字总线大部分使用单端信号做信号传输,如TTL/CMOS信号都是单端信号。所谓
单端信号,是指用一根信号线的高低电平的变化来进行0、1信息的传输,这个电平的高低变化是相对于其公共的参考地平面的。单端信号由于结构简单,可以用简单的晶体管电路实
现,而且集成度高、功耗低,因此在数字电路中得到最广泛的应用。大白话:单端信号 用一根线 接地,另一根 传递 电压 高低变化,当然也是 单方向 传输啦。
差分信号
差分传输是一种信号传输的技术,区别于传统的一根信号线一根地线的做法,差分传输在这
两根线上都传输信号,这两个信号的振幅相同,相位相反。在这两根线上的传输的信号就是差分信号。信号接收端比较这两个电压的差值来判断发送端发送的逻辑状态。在电路板上,差分走线必须是等长、等宽、紧密靠近、且在同一层面的两根线。差分信号是用一个数值来表示两个物理量之间的差异。差分信号又称差模信号,是相对共模
信号而言的。
码元
百度百科给的解释:
在数字通信中常常用时间间隔相同的符号来表示一个二进制数字,这样的时间间隔内的信号称为(二进制)码元。 而这个间隔被称为码元长度。值得注意的是当码元的离散状态有大于2个时(如M大于2个) 时,此时码元为M进制码元。
下面是我的理解:
总说曼切斯特编码的码元码元,但是我感觉码元和曼切斯特编码没有一毛钱关系。
下面举个简单的例子:
- A和B两地通过一根双绞线连接,双绞线的一根线接地表示0电位。
- A和B约定当B从这个线上接受到时长1s的+1V的电压时表示B收到了A发来的1,当B从这个线上接受到时长1s的-1V的电压时表示B收到了A发来的0。这个是二进制码元。
- 当A向B发送01这个字符串。 A要传输的数据为01经过曼切斯特编码编码为10 01,然后开始发送信号了,A这边依次发送四个 时长1s的+1V的信号,时长1s的-1V的信号,时长1s的-1V的信号,时长1s的+1V的信号。
- B这边开始接受按照之前的约定把电压信号翻译成10 01,然后曼切斯特编码解码为 01。
- 过程结束。
从上面的例子里:可以发现曼切斯特编码功能仅仅是编码。总共传输四个码元。两种码元分别是时长1s的-1V的电压和时长1s的+1V的电压。
同样要是规定
- 当B从这个线上接受到时长1s的+1V的电压时表示B收到了A发来的10。
- 当B从这个线上接受到时长1s的-1V的电压时表示B收到了A发来的01。
- 当B从这个线上接受到时长1s的+2V的电压时表示B收到了A发来的11。
- 当B从这个线上接受到时长1s的-2V的电压时表示B收到了A发来的00。
这个时候A要传输相同的数据,只要发送两个码元就可以了。这其实就是四进制码元。
当然现实中是不可能像我那样随意规定的。
下面请看一道题:
10M 802.3 LAN使用曼彻斯特编码,它的波特率是______
A. 5Mbaud B. 10Mbaud C. 20Mbaud D. 30Mbaud
答案选:C。波特率可以简单的理解为就是码元的速率。10M是指曼切斯特解码后的有效数据的速率。
因为在双绞线中是以电压的高低表示码元的,当电压高表示1,当电压低表示0,所以波特率应该是20Mbaud。
编码标准
网卡不同传输速率下的调制编码不同,具体如下。
- 10BASE-T:网速10Mbit/s,使用2对双绞线,调制编码为曼彻斯特编码。
- 100BASE-TX:网速100Mbit/s,使用2对双绞线,调制编码为MLT-3编码。
- 1000BASE-T:网速1000Mbit/s,使用4对双绞线,调制编码为4D-PAM5编码。
需要说的东西太多了,需要详细了解可搜索以太网基础知识,有能力的话可以看IEEE802.3协议。
一些参考文档:
曼彻斯特编码_Sun19910114的专栏-CSDN博客.mht
曼彻斯特编码(转)_魑魅魍魉的博客-CSDN博客_曼彻斯特编码.mht
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。