一篇文章让你读懂-曼彻斯特编码
目录
写在前面的话
1 what?什么是曼彻斯特编码
2 how?怎么使用曼彻斯特编码
2.1 曼彻斯特的编码:
2.2 曼彻斯特的译码:
3 why?为什么推荐曼彻斯特编码?这种编码方式的优缺点
写在前面的话
数据传输之前为什么将数据进行编码?
这是个好问题!!
一句话:令传输系统具备一定的纠错能力和抗干扰能力,可最大程度避免码流传输的误码率!
1 what?什么是曼彻斯特编码
曼彻斯特编码也称为相位编码,是一种同步时钟编码技术。通过电平的高低转换来表示“0”或“1”,每一位的中间有一个跳变的动作,这个动作既作时钟信号,又作数据信号,但因为每一个码元都被调成两个电平,所以数据传输速率只有调制速率的1/2,其编码效率为50%。常用于局域网传输!
表示方法:
第一种G. E. Thomas, Andrew S. Tanenbaum1949年提出的:
位中间电平 从低到高 跳变表示"0"。
位中间电平 从高到低 跳变表示"1";
第二种IEEE 802.4(令牌总线)和低速版的IEEE 802.3(以太网)中规定:
位中间电平 从低到高 跳变表示"1"。
位中间电平 从高到低 跳变表示"0";
对于以上的约定,具体该如何使用,需要根据实际的应用场景进行区分。那么有没有一种编码方式能够避免以上两种约定方式可能带来的歧义呢?当然有了,差分曼彻斯特编码。为了不让混淆,将单独用一篇文章进行描述!最好先认真读完本文之后,大家再去了解差分曼彻斯特!
2 how?怎么使用曼彻斯特编码
曼彻斯特码是通过电平的跳变来对二进制数据“0”和“1”进行编码的,对于何种电平跳变对应何种数据,实际上有两种不同的数据约定:也就是上面所说的两种表示方法。在实际应用中,若无特殊说明,曼彻斯特码的编码规则均采用第二种约定。
2.1 曼彻斯特的编码:
曼彻斯特码是用“01”和“10”来表示普通二进制数据中的“1””和“0”的,因此在实际电路设计中,我们可以用采一个2选1数字选择器来完成此项功能。
2.2 曼彻斯特的译码:
(这部分内容也常用用到其他编码方式的译码逻辑中,比如汽车电子钟的轮速AK传输协议,其中的数据信息部分也就是用了曼彻斯特编码的方式,对于其译码逻辑,同样适用)
曼彻斯特译码电路设计的目的,是如何准确地从曼彻斯特码的码流中提取出“10”和“01”信号,并将其转换成普通二进制编码中的“0”和“1”。
例如对于曼彻斯特码“01010101”,如果从第一位开始解码,得到的二进制编码就是“1111”,而若从第二位开始解码,得到的二进制编码就是“000”和头尾两个曼彻斯特码。
由此可见,如果曼彻斯特码数据流中只有“1”或“0”是不能得到正确的译码结果的,如果曼彻斯特编码数据流中出现“00”,则“00”前后的码元必定是“1”;如果曼彻斯特编码数据流中出现“11”,则“00”前后的码元必定是“0”,因此,我们可以将“00”与“11”作为曼彻斯特码译码的标志位。
在实际设计电路中,可以采用一个缓存器,保存上一个时钟采集到的信号和当前时钟采集到的信号,当缓存器的内容是“01”时,输出“1”;当缓存器的内容是“10”时,输出“0”;当缓存器的内容是“00”或“11”时,输出维持不变。
3 why?为什么推荐曼彻斯特编码?这种编码方式的优缺点
这个问题,属于一个开放的问题,优缺点嘛,都是需要有参考对比的。博主列举出的内容不全,大家在使用的过程中,也可以将使用的痛点和便捷点都一起聊聊!
优点:
1 跳变电平传输同步时钟信息,无需单独时钟同步信号,不含直流分量,具有很好的抗干扰能力,更适合于信道传输。
缺点:
1 编码效率较低,数据传输率只有信号速率的 1/2。
一篇文章让你读懂-曼彻斯特编码相关推荐
- java ee 值范围_一篇文章带你读懂: Java EE
原标题:一篇文章带你读懂: Java EE 点击上图,查看教学大纲 何为 Java EE Java EE是一个标准中间件体系结构 不要被名称"Java PlatformEnterprise ...
- 一篇文章让你读懂Pivotal的GemFire家族产品
一篇文章让你读懂Pivotal的GemFire家族产品 学习了:https://www.sohu.com/a/217157517_747818 转载于:https://www.cnblogs.com/ ...
- 无线充电技术究竟有何神秘之处?一篇文章带你读懂什么是无线充电技术
无线充电技术这个概念在很早之前就已经被提出了,发展至今在电子领域已经被深入研究应用,虽然还未曾大范围普及,但在消费电子领域的发展已经取得不错的成绩.手机厂商也纷纷在自家旗舰机上加入这一革新性的先进充电 ...
- 一文读懂曼彻斯特编码
原文链接: http://forum.eepw.com.cn/thread/297676/1 ----------------------------------------------------- ...
- 一篇文章带你读懂 MySQL 和 InnoDB
作者 | Draveness 原文地址 | http://draveness.me/mysql-innodb.html 作为一名开发人员,在日常的工作中会难以避免地接触到数据库,无论是基于文件的 s ...
- (详细易懂)一篇文章让你读懂到底什么是Ajax
文章目录 一.AJAX的功能 二.AJAX的核心 1.XMLHttpRequest对象 同步请求(设置参数为false) 响应返回 异步请求(默认或设置参数为true) 三.实现AJAX基本步骤的简单 ...
- 强连接运营社张强:一篇文章带你读懂私域流量的本质和玩法
"私域流量"越来越火! 身边很多商家朋友都在布局这个事情,但提起"私域流量",大家仍然茫然不知所措- "私域不就是建立一些个人微信号?把会员从线下门店 ...
- 一篇文章让你读懂 OpenStack 的起源、架构和应用
OpenStack 是一个面向 IaaS 层的开源项目,用于实现公有云和私有云的部署及管理.拥有众多大公司的行业背书和数以千计的社区成员, OpenStack 被看作是云计算的未来.目前 OS 基金会 ...
- 一篇文章带你读懂JSP的使用的理解
JSP语言是干嘛的呢?一句话:就是在html中编写java代码.能够直接在页面中运行并编译,能够访问已经存在的类接口等,在jsp中的java与你在后台写的java功能一样.相比servlet中,我们响 ...
最新文章
- matlab解符号方程组,matlab 求解符号方程组
- 软件工程课堂作业(八)——结对开发(三)
- 如何通过 C# 动态备份 Sql 数据库?
- React 解决鼠标移入子元素触发父元素的mouseout事件
- 计划任务 crontab、at
- python list 切片 复杂度_彻底理解Python list切片原理
- CCF NOI1067 最匹配的矩阵
- java实现将图片读取成base64字符串,将base64字符串存储为图片。
- chm文件的中文显示乱码问题解决
- CAD如何绘制六连环图案?CAD使用圆,椭圆,直线综合练习
- Unity坦克大战完整源码
- C#导出图片到EXCEL
- java软尾山地车评测_GT Sensor X Pro 软尾山地自行车测评
- java根据年份计算生肖
- 关闭微信这几个功能,不然真的会泄露微信隐私
- Facebook一季报解读:未来十年要打造一个怎样的世界?
- oracle查询员工表领导级别,emp表中怎么统计每个员工的领导的年薪,并按年薪由高到低排列...
- 关于广告投放需要懂的几个关键词(DAU,DNU等等)
- 机器学习 | MATLAB实现MLP多层感知机newff参数设定(上)
- 使用 T-SQL 语句完成单表数据检索
热门文章
- 遥感数字图像处理期末总结二
- Python日学壹技:性能分析
- 课程助理For Windows(预览版,正方教务系统学生查分工具)
- 短信发送--Mms短信群发实现原理
- 名画372 清代 佚名《静观万物册七开》
- c++黑马程序员用的是什么软件打开.md_程序员如何优雅记笔记(wiki+typora(markdown)+坚果云)
- [附源码]JAVA+ssm农产品追溯系统设计与实现(程序+Lw)
- 围绕“人”、“知识”、“服务”重新定义智能客服
- STM32之VCAP引脚问题
- .net core 下使用XUnit自动化生成测试用例