热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

常见通信协议整理归纳原创

一.串行通信与并行通信 1.串行通信:简称串口(串行接口),指数据一位一位地顺序传送,比如:UART,RS232,RS485等,串行通


一.串行通信与并行通信

 

1.串行通信:简称串口(串行接口),指数据一位一位地顺序传送,比如:UART,RS232,RS485等,串行通信根据发送时源和接收时源是否保持一致,又分为同步通信和异步通信,其优点是只需要几条线就可以在系统之间交换信息

2.并行通信:数据的每一位同时在多根数据线上发送或者接收信息,成本高,不适宜远距离通信


二.单工,半双工和全双工

图片来自于(2条消息) 单工、半双工和全双工_mayue_csdn的博客-CSDN博客_单工、半双工和全双工

a.单工:数据单向传输;

b.半双工:接口任意时刻只能接收或者发送数据,并存在最大传输距离的限制

c.全双工:接口可以同时接收和发送数据,而且消除了半双工物理距离的限制


三.UART

UART意为通用异步收发传输器,双向异步串行通信+全双工

图片来自于了解UART总线工作原理看这一篇就够了! - 知乎 (zhihu.com)

在两个UART之间传输数据只需要两根线,数据从发送UART的Tx引脚流向接收UART的Rx引脚

数据通信格式如下图:

图片来自于UART串口协议详解 - 知乎 (zhihu.com)

(1)URAT规定,总线为空闲状态时,信号线状态为1;

(2)起始位为0;

(3)数据位,先发送最低位,最后发送最高位;

(4)奇偶校验位:检查UART在传输过程中是否有数据发生变化;

(5)停止位:通知传输数据包结束;此外,每一个设备都有自己的时钟,很可能在通信过程中两台设备之间出现了不同步。因此,停止位还可以提供计算机校正时钟的机会。停止位个数越多,传输越稳定,但也越慢。


四.RS232、RS485

为了使远距离的设备正常通信,RS232,RS485应运而生。RS232的传输距离在15m左右,RS485的传输距离可以达到1.2KM,一般情况下,两单片机可以通过电平转化的芯片(比如SP3232芯片)将TTL信号转化成RS232信号,这样就可以延长通信距离。

RS232存在的问题:接口的信号电平值较高,容易损坏接口电路的芯片,又因为和TTL不兼容,需要电平转换芯片与TTL电路连接;通信速度较低;易产生共模干扰,抗干扰性弱;传输距离还是较短(15m);

RS485:与RS232相比,主要是通信距离进一步扩大,抗干扰能力增强,UART和RS232只能点对点通信,而RS485可以连接多个收发器,具有多站能力,可以建立一个设备网络。RS485采用差分信号进行数据传输,两线之间电压差+2v~+6v表示逻辑1,-2v~-6v表示逻辑0。因为采用两线制,数据的发送和接收都要使用这对差分信号线,接收和发送不能同时进行,所以只能采用半双工工作方式。


 五.I2C

串行,半双工总线,适用于近距离,低速的通信。IIC总线有两根双向的信号线,一根数据线SDA用于收发数据,一根时钟线SCL通信双方时钟的同步。

图片来自于IIC原理超详细讲解---值得一看_Z小旋的博客-CSDN博客_iic原理

IIC总线通信时每个字节为8位长度,数据传送时,先发最高位后发最低位,发送器发完一个字节后接收器必须发送一位应答来回应,即一帧有9位。时钟线SCL为低电平期间,发送器向数据线上发送一位数据,在此期间数据线上的信号允许发生变化,时钟线SCL为高电平期间接收器从数据线上读取一位数据,在此期间数据线上的信号不允许发生变化。


六.SPI

SPI:串行外设接口,是一种高速的,全双工,同步的串行通信总线。SPI采用主从方式工作,一般有一个主设备和一个或者多个从设备。SPI需要四根线,分别是MISO(主设备输入和从设备输出),MOSI(主设备输出和从设备输入),SCLK(时钟),CS(片选)。

图片来自于SPI协议详解(图文并茂+超详细)_小麦大叔的博客-CSDN博客_spi

 寻址方式:当主设备要和某个从设备进行通信的时候,主设备需要向对应的从设备的片选线上发送使能信号,表示选中该从设备。

图片来自于SPI协议详解(图文并茂+超详细)_小麦大叔的博客-CSDN博客_spi

通信过程:SPI总线在进行数据传送时,先发送高位,后传送低位(与IIC一致),一个字节传送完成之后无需应答即可开始下一字节的传送;SPI总线采用同步方式工作,时钟线在上升沿或者下降沿时发送器向数据线上发送数据,在紧接下来的下降沿或者上升沿时接收器从数据线上读取数据,完成一位数据传送,八个时钟周期即可完成一个字节数据的传送。

极性:CPOL=0,空闲时SCLK为低电平;CPOL=1,空闲时SCLK为高电平;

相位:CPHA=0,每个周期的第一个时钟采样;CPHA=1,每个周期的第二个时钟采样;

根据不同的极性和相位,SPI有四种工作状态

SPI通讯的优势:全双工,高速,简单软件配置,数据传输不限于8位,并且从机不需要唯一的地址

SPI的缺点:通常只支持一个主设备,没有从机应答信号,需要更多的引脚,传输距离短

IIC和SPI的异同

相同点:

1.均采用串行同步的方式

2.均采用TTL电平,传输距离和应用场景类似

3.均采用主从方式工作

不同点:

1.IIC为半双工,SPI为全双工

2.IIC有应答机制,SPI无应答机制

3.IIC通过总线广播从机地址来寻址,SPI通过对从机发送使能信号来寻址

4.IIC的时钟极性和相位固定,SPI可调




推荐阅读
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 大连微软技术社区举办《.net core始于足下》活动,获得微软赛百味和易迪斯的赞助
    九月十五日,大连微软技术社区举办了《.net core始于足下》活动,共有51人报名参加,实际到场人数为43人,还有一位专程从北京赶来的同学。活动得到了微软赛百味和易迪斯的赞助,场地也由易迪斯提供。活动中大家积极交流,取得了非常成功的效果。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 生成对抗式网络GAN及其衍生CGAN、DCGAN、WGAN、LSGAN、BEGAN介绍
    一、GAN原理介绍学习GAN的第一篇论文当然由是IanGoodfellow于2014年发表的GenerativeAdversarialNetworks(论文下载链接arxiv:[h ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 家装日记六:家具采购和瓷砖选择
    本文记录了作者进行家装的过程,包括家具采购和瓷砖选择。作者介绍了自己家的装修风格以及选择烤漆家具和红白系列的原因。作者还提到了装修风格以简约为主,不可以太花哨的要求。最后,作者提到了价格较贵的问题。 ... [详细]
  • 本文讨论了当某位排位靠前的涉众提供了一张精美的界面图片时,是否可以将其作为设计约束。同时还探讨了高质量素材和愿景之间的关系,以及老大自身的软件方法和建模技能。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 本文介绍了一些好用的搜索引擎的替代品,包括网盘搜索工具、百度网盘搜索引擎等。同时还介绍了一些笑话大全、GIF笑话图片、动态图等资源的搜索引擎。此外,还推荐了一些迅雷快传搜索和360云盘资源搜索的网盘搜索引擎。 ... [详细]
  • 【MicroServices】【Arduino】装修甲醛检测,ArduinoDart甲醛、PM2.5、温湿度、光照传感器等,数据记录于SD卡,Python数据显示,UI5前台,微服务后台……
    这篇文章介绍了一个基于Arduino的装修甲醛检测项目,使用了ArduinoDart甲醛、PM2.5、温湿度、光照传感器等硬件,并将数据记录于SD卡,使用Python进行数据显示,使用UI5进行前台设计,使用微服务进行后台开发。该项目还在不断更新中,有兴趣的可以关注作者的博客和GitHub。 ... [详细]
  • 本文研究了使用条件对抗网络进行图片到图片翻译的方法,并提出了一种通用的解决方案。通过学习输入图像到输出图像的映射和训练相应的损失函数,我们可以解决需要不同损失函数公式的问题。实验证明该方法在合成图片、重构目标和给图片着色等多个问题上都很有效。这项工作的重要发现是不再需要人为构建映射函数和损失函数,同时能够得出合理的结果。本文的研究对于图片处理、计算机图片合成和计算机视觉等领域具有重要意义。 ... [详细]
  • 本文介绍了在Vue项目中如何结合Element UI解决连续上传多张图片及图片编辑的问题。作者强调了在编码前要明确需求和所需要的结果,并详细描述了自己的代码实现过程。 ... [详细]
author-avatar
小茜的阳光2011_950
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有