曼彻斯特编码原理

曼彻斯特编码原理在最近的项目中对曼彻斯特编码进行了检测 发现对曼彻斯特编码的原理并不清楚 因此针对它来进行调研曼彻斯特编码 ManchesterEn 也叫做相位编码 PE 是一个同步时钟编码技术 被物理层用来编码一个同步位流的时钟和数据 常用于局域网传输 在曼彻斯特编码中 每一位的中间有一跳变 位中间的跳变既作时钟信号 又作数据信号 就是说主要用在数据同步传输的一种编码方式 但在不同的书

在最近的项目中对曼彻斯特编码进行了检测,发现对曼彻斯特编码的原理并不清楚,因此针对它来进行调研

曼彻斯特编码(Manchester Encoding),也叫做相位编码(PE)是一个同步时钟编码技术,被物理层用来编码一个同步位流的时钟和数据;常用于局域网传输。在曼彻斯特编码中,每一位的中间有一跳变,位中间的跳变既作时钟信号,又作数据信号,就是说主要用在数据同步传输的一种编码方式。

————ps:这也太奇葩了,居然搞出两套标准出来

 

【关于数据表示的约定】
  事实上存在两种相反的数据表示约定。
  第一种是由G. E. Thomas, Andrew S. Tanenbaum等人在1949年提出的,它规定0是由低-高的电平跳变表示,1是高-低的电平跳变。
  第二种约定则是在IEEE 802.4(令牌总线)和低速版的IEEE 802.3 (以太网)中规定, 按照这样的说法, 低-高电平跳变表示1, 高-低的电平跳变表示0。
  由于有以上两种不同的表示方法,所以有些地方会出现歧异。当然,这可以在差分曼彻斯特编码(Differential Manchester encoding)方式中克服.



(为了应对不同的标准,采取了和稀泥的方法,搞了一个差分法出来,我也是醉了)

差分曼彻斯特编码
在信号位开始时不改变信号极性,表示逻辑”1″ 
在信号位开始时改变信号极性,表示逻辑”0″ ;
注意】:如果在最初信号的时候,即第一个信号时:
如果中间位电平从低到高,则表示0;
如果中间位电平从高到低,则表示1;
后面的(从第二个开始)就看每个信号位开始时有没有跳变来决定:
下面我们来举个例子,来比较标准曼彻斯特编码、曼彻斯特编码、差分曼彻斯特编码:






1.不归零码NRZ、双极性不归零码BNRZ

不归零码在一个码型传输过程中不会归零,用“高电平”表示1,“零电平”表示0;

双极性不归零码BNRZ同样是不归零码,用“高电平”表示1,“负电平”表示0;

上述编码信道密度高,但无法从码型中提取同步信息,需要外同步,否则会累积误差。

波形如下:

曼彻斯特编码原理

2.归零码RZ,BRZ

归零码RZ也使用“高电平”表示1,但在一个周期内,高电平需要归零,“零电平”表示0,BRZ则“高电平”表示1,“负电平”表示0,一个周期内,正负电平都需要归零。

曼彻斯特编码原理

曼彻斯特编码原理

3.曼彻斯特、差分曼彻斯特(双相码)

曼彻斯特又叫相位编码,双相码,它包含自同步信息,码型中同时包括数据和时钟信息。

曼彻斯特:有两种定义,一种是“低-高”表示1,“高-低”表示0,在802.3中定义,另一种是相反的,”高-低”表示1,“低-高”表示0;

曼彻斯特编码原理

可以看出,802.3版本的曼彻斯特码波形可以由时钟与数据异或XOR直接得到,而Thomas的版本则是异或非NXOR。

差分曼彻斯特:差分曼彻斯特也是根据跳变沿解码,跳变与前一个跳变相同,表示0,相反表示1.

曼彻斯特编码原理

4.脉冲宽度编码

应用于NFC应用的SWP接口采用了脉冲宽度编码,一个码型包括4个码元,“1110”表示1,“1000”表示0,可以通过高电平码元的宽度来进行译码。

当然,SWP还使用了特殊的电流传输技术,能使用一根线进行双向信号传输。

曼彻斯特编码原理

5.NRZI

USB使用的是NRZI,电平翻转表示逻辑0,电平不变表示逻辑1

曼彻斯特编码原理

可以看到,即使NRZI的波形完全翻转,所表示的逻辑依然不变,这非常适合USB的差分传输中。

当然,NRZI也没有同步信息,需要发送同步头。



版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/221085.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午6:57
下一篇 2026年3月17日 下午6:57


相关推荐

  • 【SpringBoot】33、SpringBoot+LayUI后台管理系统开发脚手架[通俗易懂]

    【SpringBoot】33、SpringBoot+LayUI后台管理系统开发脚手架[通俗易懂]本期给大家推荐我自己写一个开源项目:springboot-mini,本着减少大量重复开发工作的原则,使得在项目中能够实现快速开发1、前言本项目本着避免重复造轮子的原则,建立一套快速开发JavaWEB项目(springboot-mini),能满足大部分后台管理系统基础开发功能,使得开发人员直接可从业务模块开始,减少大量的重复开发工作。前端框架使用layui-mini(https://gitee.com/zhongshaofa/layuimini)2、项目地址https://gitee.com/asu

    2022年5月30日
    33
  • 阿里云mysql读写分离实现_MySQL-Proxy实现MySQL读写分离

    阿里云mysql读写分离实现_MySQL-Proxy实现MySQL读写分离要实现读写分离,需要先有搭建MySQL的主从环境介绍master192.168.133.128slave192.168.133.132proxy192.168.133.130首先在mysql-proxy上安装依赖包yum-yinstallgccgcc-c++autoconflibevent-develpkgconfiglibtoolmysql-devellibterm…

    2022年5月18日
    42
  • 怎样卸载干净eclipse_eclipse卸载又重新安装之曲折心路

    以前下过EclipseIDEforJavaDevelopers(其实当时自己下的时候也没有什么详细查应该下哪个,随便下的一个版本),课程老师要求下载红框框起来的这个EclipseIDEforEnterpriseJavaDevelopers(压缩包名字:eclipse-jee-2019-09-R-win32-x86_64)。其实问题不大,卸了重下呗。但是(敲黑板),踩了几个坑,差点摔…

    2022年4月6日
    76
  • C语言链表超详解

    C语言链表超详解详细对比顺序表与链表的区别 实现单链表 与双向带头循环链表 以及各中类型的链表

    2025年12月8日
    6
  • asp.net(c#)网页跳转七种方法小结

    asp.net(c#)网页跳转七种方法小结①response.redirect这个跳转页面的方法跳转的速度不快,因为它要走2个来回(2次postback),但他可以跳转到任何页面,没有站点页面限制(即可以由雅虎跳到新浪),同时不能跳过登录

    2022年7月4日
    26
  • 动态规划-背包问题

    动态规划-背包问题背包问题是一种组合优化的NP完全问题。有N个物品和容量为W的背包,每个物品都有自己的体积w和价值v,求拿哪些物品可以使得背包所装下的物品的总价值最大。如果限定每种物品只能选择0个或1个,则问题称为0-1背包问题;如果不限定wu’pi…

    2022年7月26日
    13

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号