原文链接: http://forum.eepw.com.cn/thread/297676/1

---------------------------------------------------------------------------------------------------------------------------------

了解曼彻斯特编码,这是一种改善高速或无线数字通信的简单有效方法。

你可能已经注意到,串行数字通信已经变得相当流行。有许多种类:在标准板级接口中,我们有UART,SPI和I2C。“数字”通信也可以通过模拟信号完成; 一个示例是RF数据链路,其使用模拟幅度,频率或相位的变化来无线传输二进制数据。然后是高速差分接口,例如基于LVDS或USB的串行通信链路。

曼彻斯特编码是一种数据调制技术,可用于许多情况,但在基于模拟,RF,光学,高速数字或长距离数字信号的二进制数据传输中特别有用。

好,但不完美

尽管标准数字通信与模拟信令相比具有压倒性优势,但仍存在一些一般限制。一个是同步问题:接收器必须知道何时准确地对输入数据进行采样(注意,例如,模拟音频传输中不需要这种同步 - 解调后的音频信号可以传送给扬声器而无需明确解释接收方的数据)。

另一个是需要直流耦合。数字数据可以包括长的,不间断的1或0序列,因此用于传输该数据的标准数字信号将在相对长的时间段内保持相同的电压。如果我们尝试使用隔直电容交流耦合该信号,我们就会遇到麻烦,如下面的LTspice图所示。

首先,DC偏移衰减到零,只要信号正在转换,一切都很好。但是当长序列的1或0导致原始DC耦合信号停止转换时,数字信号变为由电容器阻挡的恒定电压。

请注意,第一个图具有扩展的逻辑周期,第二个图具有扩展的逻辑周期; 然而,在这两种情况下,信号衰减到0V。显然,这种衰减波形在数字系统中是不合需要的,但此外,0 V状态是模糊的 - 长逻辑高和长逻辑低端都是0V。

解决方案

曼彻斯特编码为这两个限制提供了补救措施。这是一种简单的数字调制方案,可以做两件事:1)确保信号在一段延长的时间内不会保持逻辑低或逻辑高,2)将数据信号转换为数据加同步信号。

在我们讨论曼彻斯特编码的细节之前,让我们讨论一下这个动机:为什么不加一个单独的时钟信号进行同步呢?为什么我们要交流耦合数字信号?

10BASE-T以太网使用曼彻斯特编码。

时钟

在许多情况下,使用单独的时钟信号来实现发送器和接收器之间的同步是完全可以接受的。但有时这种方法是不可取的,例如当您需要最小化系统各部分之间的互连数量时,或者当小型化需要能够以某种方式提供所需功能的最低引脚数微控制器时。

在其他情况下,单独的时钟信号根本不是一种选择。例如,在复杂的无线数据链路中包括两个单独的RF发射器和接收器(即,一个用于数据,一个用于时钟ICfans)将是非常低效的。

如果您熟悉UART接口,您就知道可以使用内部定时信号而不是发送器和接收器共享的外部时钟。但这种策略带来了重大限制:

  • 它对内部时钟频率变化不稳健,当发射器和接收器处于不同环境时,这变得更成问题。

  • 它缺乏灵活性,因为它需要为相同的数据速率明确预配置Tx和Rx设备。

  • 接收器通常要求内部时钟频率明显高于数据速率,这可能会对数据传输的最大速度产生令人不快的限制。

DC

对于复杂系统,特别是那些涉及高电压的系统,要确保传输信号的共模电压与接收器可接受的共模范围兼容并不总是容易的。(即使使用差分标准,例如RS-485,这也是一个问题。)另一个问题是故障电流 - 直流耦合不能防止短路引起的危险长期电流。

因此,AC耦合是一种简单的方法,可以减轻与共模电压和故障模式相关的不便和风险。

曼彻斯特方案

曼彻斯特编码背后的基本思想如下:我们可以使用电压转换而不是电压电平来表示1和0。请考虑以下图表:

在图的上半部分,我们有一个标准的数字接口,由数据信号和时钟信号组成。

在图的下半部分是曼彻斯特编码的相同数据信号。注意转换是如何在标准数据信号逻辑状态的中间发生的(换句话说,曼彻斯特转换与用于采样数据的时钟边沿对齐)。另请注意,逻辑高位始终对应于从高到低的转换,而逻辑低位始终对应于从低到高的转换。(对于逻辑低电平,您也可以使用从低到高的转换;对于逻辑低电平,您也可以使用从高到低的转换;重要的是接收器电路知道要期望的格式。)

很明显,AC耦合问题已经消除:每一位都需要转换,因此数据信号永远不会保持逻辑低或逻辑高电平。这在下图中很明显,该图显示了二进制111111的标准数字信号和相同二进制序列的曼彻斯特编码信号。

同步问题不那么简单,因为我们仍然需要以某种方式从信号中提取时钟; 尽管如此,我们可以直观地看到转换的规律性提供了有关何时应对数据信号进行采样的信息。

上图还说明了曼彻斯特编码的一个重要缺点:数据速率相对于数据信号的带宽减半。曼彻斯特编码的信号需要每个位的转换,这意味着两个曼彻斯特逻辑状态用于传达一个标准逻辑状态。因此,以相同的速率传输数据需要两倍的带宽。

这似乎不是一个问题 - 为什么不只是使用更高频率的信号?那么,如果信号带宽是数据从发送器移动到接收器的速度的限制因素,并且如果您已经处于最大数据速率,则不能将信号频率提高两倍; 相反,您必须将数据速率降低两倍。

结论

您现在知道曼彻斯特编码是什么以及为什么它是有益的,尽管可能降低数据速率以及生成和解释曼彻斯特编码数据所需的附加电路或固件。

一文读懂曼彻斯特编码相关推荐

  1. 一文读懂字符编码(ASCII、ISO 8859、GB系列、Unicode)

    一文读懂字符编码(ASCII.ISO 8859.GB系列.Unicode) 一.字符编码相关组织 1.1 ANSI 美国国家标准学会 1.2 Ecma 国际 1.3 ISO/IEC 1.4 统一码联盟 ...

  2. 一篇文章让你读懂-曼彻斯特编码

    目录 写在前面的话 1 what?什么是曼彻斯特编码 2 how?怎么使用曼彻斯特编码 2.1 曼彻斯特的编码: 2.2 曼彻斯特的译码: 3 why?为什么推荐曼彻斯特编码?这种编码方式的优缺点 写 ...

  3. 字符编码的前世今生——一文读懂字符编码

    文章目录 编码从故事说起 计算机的字符编码 ASCII 码表 GB2312 --中国人自己的编码表 GBK 编码 GB18030 其他编码 ISO-8859-1 Shift_JIS 和 Big5 UC ...

  4. 一文读懂序列建模(deeplearning.ai)之序列模型与注意力机制

    https://www.toutiao.com/a6663809864260649485/ 作者:Pulkit Sharma,2019年1月21日 翻译:陈之炎 校对:丁楠雅 本文约11000字,建议 ...

  5. 一文读懂HttpServletRequest

    点击上方"好好学java",选择"置顶公众号" 优秀学习资源.干货第一时间送达! 精彩内容 java实战练习项目教程 全网最全电子图书分享 你所需要的大数据视频 ...

  6. 你真的懂数据分析吗?一文读懂数据分析的流程、基本方法和实践

    导读:无论你的工作内容是什么,掌握一定的数据分析能力,都可以帮你更好的认识世界,更好的提升工作效率.数据分析除了包含传统意义上的统计分析之外,也包含寻找有效特征.进行机器学习建模的过程,以及探索数据价 ...

  7. 一文读懂Java中File类、字节流、字符流、转换流

    一文读懂Java中File类.字节流.字符流.转换流 第一章 递归:File类: 1.1:概述 java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建.查找和删除等操作. ...

  8. 腾讯资深架构师干货总结:一文读懂大型分布式系统设计的方方面面

    1.引言 我们常常会听说,某个互联网应用的服务器端系统多么牛逼,比如QQ.微信.淘宝.那么,一个大型互联网应用的服务器端系统,到底牛逼在什么地方?为什么海量的用户访问,会让一个服务器端系统变得更复杂? ...

  9. 【深度学习】一文读懂机器学习常用损失函数(Loss Function)

    [深度学习]一文读懂机器学习常用损失函数(Loss Function) 最近太忙已经好久没有写博客了,今天整理分享一篇关于损失函数的文章吧,以前对损失函数的理解不够深入,没有真正理解每个损失函数的特点 ...

最新文章

  1. 结合实例讲解广域网路由基本技术
  2. javascript 编码规范 用更合理的方式写 javascript
  3. 科大星云诗社动态20210817
  4. SPRING IN ACTION 第4版笔记-第三章ADVANCING WIRING-003-@Conditional根据条件生成bean及处理profile...
  5. POJ 2801 为什么相同功能的代码会wrong answer呢?求解释~~
  6. css animation动画完成后隐藏_css3动画简介以及动画库animate.css的使用
  7. 数组排序(冒泡、排序)
  8. html调用xfplugin,使用多设备执行脚本的时候,html report功能无法正常使用
  9. Hbase+Phoenix使用总结
  10. 百度网盘分享无提取码文件的方法
  11. 关于机器学习模型的评估方法
  12. 顶级期刊:关于提升人体免疫力的一切!5点有益建议
  13. 出外旅游,应该如何换汇最划算——人民币兑换外币手续费成本最低经验谈,如美元澳元日元欧元英镑新元港币...
  14. java中事务回滚吗_事务回滚 - 小虾米的java梦 - 博客园
  15. jquery banner广告图片左右切换,模仿实现支付宝广告效果
  16. FTP文件传输协议与部署,包括Linux系统、Windows系统和H3C路由交换设备部署
  17. 伴,就是一人一半,凑在一起才完整
  18. jinja2的安装和使用
  19. 验证码识别的作用 优优云验证码识别软件
  20. (失败作)用NodeJS调用打印机 - 型号:Gprinter佳博 GP-L80250I

热门文章

  1. 使用MatLab计算工程测量中圆曲线的要素以及主点 以及检校
  2. 数模必备:利用ggplot2在地图上连线(不使用for循环)
  3. 行业应对IDFA缺失各有方案 数盟方案更可靠有效
  4. Android评分栏示例
  5. 实战-从零开始实现VS Code基金插件(上班摸鱼可用)
  6. 算法岗位2019年秋招面试题预备-从2019年实习看秋招
  7. c语言 123转2进制,C语言十进制转二进制
  8. Java opengl openal_OpenCL、OpenGL、OpenAL
  9. flash 怎么擦掉fpga_SPI FLASH学习笔记(三)擦除操作
  10. 数字旅游解决方案_曼斯特科技提供智慧文旅主题展馆解决方案