常用通讯协议(UART、RS232、RS485、IIC、SPI)简单介绍

这篇具有很好参考价值的文章主要介绍了常用通讯协议(UART、RS232、RS485、IIC、SPI)简单介绍。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录
  • 常用通讯协议随笔
    • 通讯基础
    • UART
      • UART存在的问题:
    • RS232
      • 接口
      • 信号
      • 电平转换
      • RS232存在的问题
    • RS485
      • 信号
      • 接口
      • 电平转换
      • RS485的优势
    • IIC
      • IIC总线通讯过程
      • IIC总线寻址方式
      • 起始信号和停止信号
      • 字节传输于应答
      • 同步信号
      • 典型IIC时序
    • SPI
      • SPI寻址方式
      • SPI总线通讯过程
      • 极性和相位
    • IIC和SPI的异同

常用通讯协议随笔

这里主要对工作学习中常见常用的通信协议进行一个整理,在需要的时候可以进行回顾,内容主要根据创客学院,所做的学习笔记加上一些比较好理解的话语,内容如有错误还请各大佬批评指正。

通讯基础

并行通讯:数据线有8条,就代表总线传输数据时一次可传输8位数据;

串行通讯:数据线只有一条,需要一个一个位逐次传输;

UART

即通用异步收发器,是一种通用的串行,异步通讯总线;

总线有两天数据线,可以实现全双工的发送和接收;

在嵌入式系统中常用与主机与辅助设备之间的通信

波特率:用于描述UART通信时的通信速度,其单位为bps(bit per second)即每秒钟传送的bit的数量;

串口帧格式

起始位(必须有):为低电平,代表一次数据传输开始;

数据位:协议规定,数据先发低位再发高位;

校验位(可有可无):使用奇偶校验位,偶数为1,奇数为0;

停止位(必须有):为高电平,代表一次数据传输结束;

UART存在的问题:

  • 电气接口不统一
    • UART只是对信号的时序进行了定义,而未定义接口的电气特性;
    • UART通信时一般直接使用处理器使用的电平,即TTL电平,但不同的处理器使用的电平存在差异,所以不同的处理器使用UART通信时一般不能直接相连;
    • UART没有规定不同器件连接时连接器的标准,所以不同器件之间通过UART通信时连接很不方便;
  • 抗干扰能力差
    • UART一般直接使用TTL信号来表示0和1,但TTL信号的抗干扰能力较差,数据在传输过程中很容易出错;
  • 通讯距离极短
    • 因为TTL信号的抗干扰能力较差,所以其通信距离也很短,一般只能用于一个电路板上的两个不芯片之间的通信;

RS232

RS232协议是在1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家、计算机终端生产厂家共同制定的用于串行通讯的标准;

该标准规定采用一个标准的连接器,标准中对连接器的每个引脚的作用加以规定,还对信号的电平加以规定;

接口图

接口

  • 该标准规定采用一个25引脚的DB-25连接器,标准中对连接器的每个引脚的信号内容加以规定,还对各种信号的电平加以规定;

  • IBM的PC机将RS232简化成了DB-9连接器,后来成为事实标准;

  • 现在工业控制的RS-232接口一般只使用RXD、TXD、GND三条线;

信号

  • 该标准规定逻辑1的电平为-5v到-15v,逻辑0的电平元5到+15v;

  • 选用该电气标准的目的在于提高抗干扰能力,增大通信距其传送距离一般可达15米;

电平转换

虽然很多处理器中都会集成UART控制器,但处理器产生的信号一般都是TTL信号并不是符合RS232标准的信号,所以一般我们还需要在处理器外部去添加电路对信号的电平进行转换,转换成同一个信号才能进行通讯,也可通过外围元器件转换;

RS232存在的问题

  • 接口的信号电平值较高,易损坏接口电路的芯片,又因为与TTL电平不兼容,所以需要使用电平转换芯片才能与TTL电路连接;

  • 通信速度较低;

  • 易产生共模干扰,抗噪声干扰性弱;

  • 传输距离较短(15米);

注:RS232编写驱动代码时是和UART是没有什么区别的,只是在电气层面需要进行一些电平转换;

RS485

该标准由电信行业协会和电子工业联盟定义;

使用该标准的通信网络能在远距离条件下以及电子噪声大的环境下有效传输信号;

该标准允许连接多个收发器,即具有多站能力,这样可以利用单一的RS485接口方便地建立起一个设备网络(UATR和RS232只能进行点对点的通信);

常用通讯协议(UART、RS232、RS485、IIC、SPI)简单介绍

信号

  • RS485标准规定采用差分信号进行数据传输;

  • 两线间的电压差为+2v到+6v表示逻辑1,两线间的电压差为-2v到-6v表示逻辑0;

  • 使用差分信号(H-L=正电压表示1,H-L=负电压表示0)能有效地减少噪声信号的干扰,延长通信距离,RS485的通信距离可以达到1500米;

  • RS485接口信号的电平比RS232降低了,所以不易损坏接口电路的芯片,且该电平与TTL电平兼容,可方便地与TTL电路连接;

接口

  • RS485采用两线制,这种接线方式为总线式拓扑结构,在同一总线上可以同时存在多个节点;

  • 因为采用两线制,数据的发送和接收都要使用这对差分信号线,发送和接收不能同时进行,所以只能采用半双工的方式工作,编写驱动程序时也需要加以处理;

电平转换

虽然很多处理器中都会集成UART控制器,但处理器产生的信号一般都是TTL信号并不是符合RS485标准的信号,所以一般我们还需要在处理器外部去添加电路(IC)将TTL信号转换成差分信号;

RS485的优势

  • 接口的信号电平值较低,不易损坏接口电路的芯片,且与TTL电平兼容,可方便地与TTL电路连接;

  • 通信速度快;

  • 抗噪声干扰性强;

  • 传输距离远(1500米);

  • 可实现多节点组网;

注:因RS485和IIC都是半双工通信、主从通信,所有RS485的通讯实现完全可以参照IIC来完成;

IIC

IIC总线是一种串行、半双工通讯总线;

总线主要用于近距离、低速的芯片之间的通信;IIC总线有两根双向的信号线一根数据线SDA用于收发数据,一根时钟线SCL用于通信双方时钟的同步;

IIC总线硬件结构简单,成本较低,因此在各个领域得到了广泛的应用;

常用通讯协议(UART、RS232、RS485、IIC、SPI)简单介绍

IIC总线是一种多主机总线,连接在IIC总线上的器件分为主机和从机,主机有权发起和结束一次通信,而从机只能被主机呼叫;

当总线上有多个主机同时启用总线时,IIC也具备冲突检测和仲裁的功能来防止错误产生;

每个连接到IIC总线上的器件都有一个唯一的地址(7bit),且每个器件都可以作为主机也可以作为从机(同一时刻只能有一个主机),总线上的器件增加和删除不影响其他器件正常工作;

IIC总线在通信时总线上发送数据的器件为发送器,接收数据的器件为接收器;

IIC总线通讯过程

  1. 主机发送起始信号启用总线,开始一次数据传输开始;
  2. 主机发送一个字节数据用于指明从机地址和后续字节的传输方向(bit1-bit7:从机地址;bit8:传输方向,0为主机发送数据,1为主机接收数据);
  3. 被寻址的从机(需要和主机进行通信的从机)发送应答信号回应主机;
  4. 发送器(传输方向决定谁是发送器)发送一个字节的数据;
  5. 接收器(传输方向决定谁是接收器)发送应答信号回应发送器;
  6. 循环执行4、5步;
  7. 通讯完成后主机发送停止信号释放总线(这时可以让其他设备成为主机);

IIC总线寻址方式

  • IIC总线上传送的数据是广义的,既包括地址,又包括真正的数据;

  • 主机在发送起始信号后必须先发送一个字节的数据,该数据的高7位为从机地址,最低位表示后续字节的传送方向,0表示主机发送数据,1表示主机接收数据;

  • 总线上所有的从机接收到该字节数据后都将这7位地址与自己的地址进行比较,如果相同,则认为自己被主机寻址,然后再根据第8位将自己定为发送器或接收器;

起始信号和停止信号

  • SCL为高电平时,SDA由高变低表示起始信号;

  • SCL为高电平时,SDA由低变高表示停止信号;

  • 起始信号和停止信号都是由主机发出,起始信号产生后总线处于占用状态,停止信号产生后总线处于空闲状态;

字节传输于应答

  • IIC总线通信时每个字节为8位长度(必须为8位);

  • 数据传送时,先传送最高位,后传送低位,发送器发送完一个字节数据后接收器必须发送1位应答位来回应发送器即一帧共有9位;

同步信号

  • IIC总线在进行数据传送时,时钟线SCL为低电平期间发送器向数据线上发送一位数据,此期间数据线上的信号允许发生变化;

  • 时钟线SCL为高电平期间接收器从数据线上读取一位数据,在此期间数据线上的信号不允许发生变化,必须保持稳定;

同步信号

典型IIC时序

  • 主机向从机发送数据
    常用通讯协议(UART、RS232、RS485、IIC、SPI)简单介绍

  • 从机向主机发送数据
    常用通讯协议(UART、RS232、RS485、IIC、SPI)简单介绍

  • 主机先向从机发送数据,然后从机再向主机发送数据
    常用通讯协议(UART、RS232、RS485、IIC、SPI)简单介绍

  • 注:阴影部分表示数据由主机向从机传送;无阴影部分则表示数据由从机向主机传送;A表示应答,/A表示非应答,S表示起始信号,P表示终止信号;
    MPU6050,OLED0.96屏为使用IIC协议通讯的模块,可在实际开发中学习。

SPI

SPI是串行外设接口的缩写,SPI是一种高速的、全双工、同步的串行通信总线;

SPI采用主从方式工作,一般有一个主设备和一个或多个从设备;

SPI需要至少4根线,分别是MISO(主设备输入从设备输出)、MOSI(主设备输出从设备输入)、SCLK(时钟)、OS(片选);

SPI使用引脚较少且布线方便,所以越来越多的芯片集成了这种通信协议;

SPI

SPI寻址方式

当主设备要和某个从设备进行通信时,主设备需要先向对应从设备的片选线上发送使能信号(高电平或者低电平,根据从机而定,CS上一杠表示低电平有效)表示选中该从设备;

常用通讯协议(UART、RS232、RS485、IIC、SPI)简单介绍

SPI总线通讯过程

SPI总线在进行数据传送时,先传送高位,后传送低位;

一个字节传送完成后无需应答即可开始下一个字节的传送,自然也没有开始信号与结束信号;

SPI总线采用同步方式工作,时钟线在上升沿或下降沿时发送器向数据线上发送数据,在紧接着的下降沿或上升沿时接收器从数据线上读取数据,完成一位数据传送,八个时钟周期即可完成一个字节数据的传送;

MSB为最高位,LSB为最低位;

极性和相位

SPI总线有四种不同的工作模式,取决于极性(CPOL)和相位(CPHL)这两个因素;

CPOL表示SCLK空闲时的状态

  • CPOL=0,空闲时SCLK为低电平

  • CPOL=1,空闲时SCLK为高电平

CPHA表示采样时刻

  • CPHA=0,每个周期的第一个时钟沿采样

  • CPHA=1,每个周期的第二个时钟沿采样

注:

  • 对于一个特定的从设备来说,一般在出厂时就会将其设计为某种特定的工作模式,所以我们需遵守厂家的工作模式;

  • 在使用该设备时就必须保证主设备的工作模式和该从设备保持一致,否则是无法进行通信的;

  • 一般只需要对主设备的CPOL和CPHA进行配置;

IIC和SPI的异同

相同点:

  1. 均采用串行同步为方式;
  2. 均采用TTL电平,传输距离不会太长,应用场景类似;
  3. 均采用主从方式工作;

不同点:文章来源地址https://www.toymoban.com/news/detail-783971.html

  1. IIC为半双工,SPI为全双工;
  2. IIC有应答机制,SPI无应答机制;
  3. IIC通过向总线广播从机地址来寻址,SPI通过向对应从机发送使能信号来寻址;
  4. IIC的时钟极性和时钟相位固定,SPI的时钟极性和时钟相位可调;

到了这里,关于常用通讯协议(UART、RS232、RS485、IIC、SPI)简单介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 串口通讯UART/RS232/RS485/RS-422笔记

    串口通讯是指数据按位(bit)发送和接收字节的一种传输方式。一个字节的数据传输要分为8次进行,由低位到高位按顺序一位一位的进行传送。 由于串行通信的数据是逐位传输的,所以发送方和接收方都需要具有固定的时间间隔来发送/接收每一位,也就是要保证通讯双方具

    2024年02月15日
    浏览(71)
  • 串口通信协议--UART、RS-232、RS-485、RS-422

    近期学习了单片机及数电相关知识,故决定系统地学习一些通信协议。手边书本仅介绍了串口低速接口的相关协议。 串行通信 是指通过使用一条数据线(需要地线或控制线),将数据一位一位地一次传输,每一位数据占据一个固定的时间长度。 特点 :抗干扰,节省数据线,

    2024年02月05日
    浏览(43)
  • 【单片机】UART、I2C、SPI、TTL、RS232、RS422、RS485、CAN、USB、SD卡、1-WIRE、Ethernet等常见通信方式

    在单片机开发中,UART、I2C、RS485等普遍在用,这里做一个简单的介绍 UART口指的是一种物理接口形式(硬件)。 UART是异步(指不使用时钟同步,依靠帧长进行判断),全双工(收发可以同时进行)串口总线。它比同步串口复杂很多。有两根线,一根TXD用于发送,一根RXD用于接收

    2024年02月11日
    浏览(29)
  • 1、串口(UART/COM/TTL/RS232/RS485)

    目录 串口简介 串行通讯制式 UART 2.1 简介 2.2 电平标准 TTL RS232 RS485 2.3、电平转换(重点讲解RS232-TTL) USB转TTL USB转RS232 USB转RS485  RS232、RS485互转 RS-232、TTL互转  2.4 串口通讯协议(RS232/TTL) 参考资料 请参考百度百科:串行接口_百度百科 首先,串口、UART口、COM口、USB口是指的

    2024年02月02日
    浏览(27)
  • UART和RS232、RS485的联系和区别、以及对软件编程的影响

    (1)狭义上的串口:指的是串口协议,就是时序图、数据收发先后顺序等,是抽象出来的协议; (2)广义上的串口:指的是符合串口协议的接口,UART、RS232、RS485在实际工作中都叫做串口; (3)UART:主要指的是Soc端的串口控制器和引脚,也是串口编程主要考虑的; (4)RS232和RS485是在

    2024年04月10日
    浏览(55)
  • 【MCAL_UART】-1.2-图文详解RS232,RS485和MODBUS的关系

    目录 1 UART,RS232和RS485通信拓扑 2 什么是RS232 2.1 RS232标准的演变 2.2 RS232标准讲了哪些 2.2.1 RS232通信的电平 2.2.2 RS232通信的带宽 2.2.3 RS232通信距离 2.2.4 RS232通信的机械接口 3 什么是RS485 3.1 RS485标准的演变 3.2 RS485标准讲了哪些 3.2.1 RS485通信的电平 3.2.2 RS485通信的带宽 3.2.2 RS485通信

    2024年02月05日
    浏览(21)
  • 串口、TTL、UART、RS232、RS422、RS485、CAN、CAN FD的定义、工作原理和它们之间的区别

    串口是计算机与外部设备之间通过串行通信接口进行数据传输和控制的方式。常见的串口协议包括TTL、UART、RS232、RS422、RS485、CAN、CAN FD等。这些协议之间的定义、工作原理和区别如下: TTL(Transistor-Transistor Logic)串口协议是一种数字电平标准,工作电平为0V和5V,适用于短距

    2024年02月13日
    浏览(40)
  • ETHERNET/IP转RS485/RS232网关profinet与Ethernet通讯卡

    网络数据传输遇到的协议不同、数据互通麻烦等问题,一直困扰着大家。然而,现在有一种神器——远创智控YC-EIP-RS485/232,它将ETHERNET/IP网络和RS485/RS232总线连接在一起,让数据传输更加便捷高效。 那么,它是如何实现这一功能的呢?YC-EIP-RS485/232是一款自主研发的通讯网关,

    2024年02月15日
    浏览(72)
  • RS-485 通讯协议简介

    与 CAN 类似,RS-485 是一种工业控制环境中常用的通讯协议,它具有抗干扰能力强、传输距离远的特点。RS-485 通讯协议由 RS-232协议改进而来,协议层不变,只是改进了物理层,因而保留了串口通讯协议应用简单的特点。 1 RS-485的物理层 从《CAN—通讯实验》章节中了解到,差分

    2024年02月05日
    浏览(31)
  • FPGA:三大协议(IIC、UART、SPI)之IIC

    摘要:1、本文讲述IIC的物理层面的结构(使用iic工作的物理层面的连接);2、本文讲解协议层面的通信交流格式(IIC时序);3、提供一个主机和从机的一个verilog代码;4、本文的主从机指的是:板子一号作为主机,发送数据给作为从机的板子二号;注意:在实际应用中,一

    2024年02月06日
    浏览(32)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包