原文链接: 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. Windows Mobile使用Web Service上传和下载二进制数据流
  2. python课程费用-深圳python课程费用
  3. 如何使用MFC和类型库创建自动化项目
  4. 1352. 虫洞【难度: 中 / 枚举 判环】
  5. 【程序人生】这一年 —— 2020
  6. su的时候密码认证失败的解决方法
  7. AC日记——小木棍【数据加强版】 洛谷 P1120
  8. open3d连续读取pcd文件及实现点云视角转换
  9. tomcat7.0.55配置单向和双向HTTPS连接
  10. 通过表达式树构建URL时正确识别ActionNameAttribute
  11. 新浪微博系统 Xweibo v1.1.1beta 免费版Xweibo-Xweibo 软件系统简介(PHP+MYSQL)
  12. linux match函数,关于VLOOUP函数与index match函数
  13. Facebook账号注册需要注意什么?Facebook养号技巧?
  14. 小松的STM32教程(2)—— OLED显示
  15. pda通用扫描app_智能仓储盘点——PDA扫码盘点APP真正实现“轻松盘点”!
  16. 使用Mathematica绘制星形线(Astroid)
  17. Unity 实现人工智能语音
  18. 拉伯证券|A股延续强势格局 北向资金开年以来净买入超1500亿元
  19. python之pyecharts画图
  20. jakarta-taglibs的使用说明

热门文章

  1. 贫苦家庭与野生公有云之间的 WireGuard Mesh 组网策略
  2. 【论文分享】AURORA: Statistical Crash Analysis for Automated Root Cause Explanation
  3. 组策略9-禁用命令行CMD
  4. UE4+科大讯飞SDK的.Build.cs配置
  5. 数图:中值滤波python实现
  6. 计算机页面优盘页面分开,u盘被分成2个盘怎么合并
  7. C语言实现二进制转十进制
  8. 【大话QT之四】ctkPlugin插件系统实现项目插件式开发
  9. 上拉滑动拖出控件 scrolllayout
  10. 滑动(左滑右滑加载下一页)