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

这篇具有很好参考价值的文章主要介绍了一篇文章让你读懂-曼彻斯特编码。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

写在前面的话

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。文章来源地址https://www.toymoban.com/news/detail-414061.html

到了这里,关于一篇文章让你读懂-曼彻斯特编码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 这篇文章,让你了解ERC-1155 多代币标准协议

    用于多种代币管理的合约标准接口。 单个部署的合约可以包括同质化代币、非同质化代币或其他配置(如半同质化代币)的任何组合。 ERC1155 的显着特点是它使用单个智能合约一次代表多个代币。这就是为什么它的balanceOf功能不同于 ERC20 和 ERC777 的原因:它有一个额外的id参

    2024年02月01日
    浏览(25)
  • 通过一篇文章让你了解Linux的重要性

    Linux是一种自由和开放源代码的操作系统,由林纳斯·托瓦兹于1991年首次发布。它基于Unix,具有模块化设计,支持多任务和多用户,能在多种硬件平台上运行。Linux系统在全球范围内得到广泛应用,包括服务器、移动设备、嵌入式系统等领域。其强大的功能、稳定性和安全性

    2024年04月15日
    浏览(23)
  • C++初阶之一篇文章让你掌握vector(模拟实现)

    模拟实现vector是为了深入理解和学习C++标准库中vector容器的工作原理和实现细节。 vector是C++标准库中最常用的容器之一,它提供了动态数组的功能,并且具有自动扩容和内存管理的特性,使得在使用时非常方便。 模拟实现vector有以下几个优点: 学习数据结构与算法 :实现

    2024年02月14日
    浏览(18)
  • 一篇文章让你了解ADAS-HIL测试方案

    ADA S (Advanced Driber Assistant System),高级驾驶辅助系统, 先进驾驶辅 助系统,作用于辅助汽车驾驶,通过感知、决策和执行,帮助驾驶员察觉可能发生的危险,是提高安全性的主动安全技术,保障行驶安全,已成当前汽车装载必备系统;并普遍认为是实现自动驾驶AD的过程性

    2023年04月08日
    浏览(22)
  • 一篇文章让你彻底了解vuex的使用及原理(上)

    文章讲解的 Vuex 的版本为 4.1.0 ,会根据一些 api 来深入源码讲解,帮助大家更快掌握 vuex 的使用。 使用 Vue 实例的 use 方法把 Vuex 实例注入到 Vue 实例中。 use 方法执行的是插件的中的 install 方法 src/store.js 从上面可以看到 Vue 实例通过 provide 方法把 store 实例 provide 到了根实例

    2023年04月23日
    浏览(42)
  • C++初阶之一篇文章让你掌握string类(模拟实现)

    模拟实现 std::string 是一个有挑战性的练习,它可以带来多方面的收益,尤其对于学习 C++ 和深入了解字符串操作以及动态内存管理的机制。以下是模拟实现 std::string 的一些好处和重要意义: 学习 C++ 内存管理 :std::string 是一个动态分配内存的容器,模拟实现需要手动处理内

    2024年02月15日
    浏览(22)
  • FPGA入门有多难?这篇文章让你吃透零基础入门技巧!

    FPGA是一个高度集成化的芯片,其学习过程既需要编程,又需要弄懂硬件电路和计算机架构。涉及到的知识和基础非常多, 如果不合理地安排学习内容,学习过程会非常漫长和枯燥 。这使很多想要学习FPGA小伙伴望而却步,那么,**FPGA到底有多难入门?**今天移知教育小编就带

    2024年02月04日
    浏览(26)
  • C++初阶之一篇文章让你掌握vector(理解和使用)

    在C++中,std::vector是标准模板库(STL)中的一种动态数组容器,它可以存储任意类型的元素,并且能够自动调整大小。std::vector提供了许多方便的成员函数,使得对数组的操作更加简单和高效。 vector声明 : template class T, class Alloc = allocatorT ; 这是 std::vector 的一般模板定义。它

    2024年02月14日
    浏览(21)
  • 一篇文章让你了解nginx和lua脚本(Nginx详解)

    静态资源部署 Rewrite地址重写 正则表达式 反向代理 负载均衡 轮询、加权轮询、ip_hash、url_hash、fair Web缓存 环境部署 高可用的环境 用户认证模块… nginx二进制可执行文件 nginx.conf配置文件 error.log错误的日志记录 access.log访问日志记录 首先我们来学习下,我们的配置文件,n

    2024年02月10日
    浏览(23)
  • 一篇文章让你熟悉unordered_map及其模拟实现

    哈希表在 C++ 标准库中的实现有一段历史。在 C++98/03 标准中,没有正式定义标准的哈希表容器。不过,许多 C++ 标准库实现(例如STLPort、SGI STL等)提供了 hash_map 和 hash_set 等扩展容器,这些容器提供了哈希表的功能。 随着 C++11 标准的引入,正式引入了 std::unordered_map 和 std:

    2024年02月07日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包