串口协议扫盲

串口协议

目录

基础

  1. 串行还是并行看数据怎么发,如果一根线通过时序发送则是串行,如果通过多根线发送,则是并行
  2. 全双工就是可以同时发送和接收,半双工就是同一时间只能发送或接收 ,UART和SPI都是全双工通信方式,因为他们的数据线都有两根,即可以在同一时间A发数据给B,B也可以在这个时间发数据给A。I2C是半双工通信,因为他只有一根数据线,所以他不能在同一时间双向传输数据。
  3. 同步是阻塞模式,异步是非阻塞模式。同步通信:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。异步通信:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。SPI和I2C都是同步通信协议。同步通信指的是在通信双方的时钟同步下进行数据传输,发送方和接收方使用同一个时钟信号来确定数据传输的时序和速度。在SPI和I2C协议中,时钟信号都是由主设备提供的,并在通信开始前进行同步,从而保证数据的正确传输

UART

在这里插入图片描述

  • UART属于异步通信,没有时钟信号。它会在数据包中增加开始和停止位。这些位定义了数据包的开始和结束,因此接收UART知道何时读取这些数据。
    当接收UART检测到起始位时,它将以特定的波特率的频率读取(数据传输速度的度量),以每秒比特数(bps)表示。两个UART必须以大约相同的波特率工作,发送的接收UART之间的波特率只能相差约10%。
  • UART优缺点
    • 优点: 1.仅使用两根线; 2.异步通信,无需时钟信号; 3.具有奇偶校验位以允许进行错误检查; 4.只要双方都设置好数据包的结构
    • 缺点: 1.数据帧的大小最大为9位; 2.不支持多个从属系统或多个系统; 3.每个UART的波特率必须在彼此的10%之内

SPI

  • SPI(Serial Peripheral Interface)是一种串行通信协议,同样支持多个设备之间的通信,但不支持多个主机。SPI 是一种点对点的通信协议,一个主机只能与一个从机通信,如果需要与多个从机通信,则需要添加额外的 CS(Chip Select)信号,以选择不同的从机设备进行通信。

在这里插入图片描述

  • SPI优缺点
    • 优点:无起始位和停止位,因此数据可以持续传输不会中断;数据传输速率快(比I2C快几乎两倍)。独立的MISO、MOSI可以同时发送和接收数据。
    • 缺点:使用四根线(I2C使用两根线),没有信号接收成功的确认(I2C由此功能),没有任何形式的错误检查(UART中的奇偶校验位)。

I2C

  • I2C 协议支持多主机共享总线,多个主机可以轮流发送数据,当一个主机需要与某个从机通信时,它会向总线上发送从机的地址,并发送读或写命令以及数据。其他主机会检测到总线上的通信,并暂停发送数据,等待总线空闲后再次发送数据。
  • I2C总线仲裁:I2C总线上可能在某一时刻有两个主控设备要同时向总线发送数据,这种情况叫做总线竞争。I2C总线具有多主控能力,可以对发生在SDA线上的总线竞争进行仲裁,其仲裁原则是这样的: 假设主控器1要发送的数据DATA1为“101 ……”;主控器2要发送的数据DATA2为“1001 ……”总线被启动后两个主控器在每发送一个数据位时都要对自己的输出电平进行检测,只要检测的电平与自己发出的电平一致,他们就会继续占用总线。在这种情况下总线还是得不到仲裁。当主控器1发送第3位数据“1”时(主控器2发送“0” ),由于“线与”的结果SDA上的电平为“0”,这样当主控器1检测自己的输出电平时,就会测到一个与自身不相符的“0”电平。这时主控器1只好放弃对总线的控制权;因此主控器2就成为总线的唯一主宰者。不难看出:
    • 对于整个仲裁过程主控器1和主控器2都不会丢失数据;
    • 各个主控器没有对总线实施控制的优先级别,他们遵循“低电平优先”的原则,即谁先发送低电平谁就会掌握对总线的控制权。

在这里插入图片描述

  • I2C优缺点
    • I2C优点
      1. 仅仅使用两根线
      2. 支持多个主机和从机, SPI只支持一主多从
      3. 硬件比UART更简单
    • I2C缺点1.数据传输比SPI慢2.数据帧大小限制为8位

RS232和 RS485区别

  • RS232串口通信, 全双工通讯,传输速率低20kbps , RS485串口通信, 采用两线半双工传输,也可以4线全双工, 最大速率10Mb/s, RS-485采用平衡发送和差分接收,因此具有抑制共模干扰的能力。
    • RS485使用了差分传输的方式,它通过同时发送两个信号来传输数据,一个信号为正极性信号,另一个信号为负极性信号,两个信号的差值可以被接收端解码为原始信号。由于干扰信号在传输时同样会影响正负两个信号,两个信号的差值并不会因此而改变,因此接收端可以通过差分信号来恢复出原始信号,从而降低干扰对信号的影响。
  • 由于RS232使用单端口信号传输数据,传输距离较短,通常为15米左右,而RS485使用差分信号传输数据,传输距离可达1200米,可以满足远距离通信的需要。
  • 此外,RS485还支持多点通信,可以连接多个设备,而RS232只支持点对点通信。
  • 另外,由于RS232传输速率较低,通常为115.2kbps以下,适用于低速数据传输应用,而RS485传输速率可达10Mbps,适用于高速数据传输应用

CAN

  • 参考这两个链接就足以入门, 下面的笔记很多是从中获取的

  • CAN(Controller Area Network)总线是一种多主机、分布式控制系统的通信协议,其采用非破坏性位仲裁机制实现多个节点之间的通信。

  • 采用差分信号和双绞线,类似于485一样,可以抗干扰,从而传输距离远。 采用差分信号是通过同时发送两个信号来传输数据,一个信号为正极性信号,另一个信号为负极性信号,两个信号的差值可以被接收端解码为原始信号。由于干扰信号在传输时同样会影响正负两个信号,两个信号的差值并不会因此而改变,因此接收端可以通过差分信号来恢复出原始信号,从而降低干扰对信号的影响。

  • 多主工作方式, 所谓多主工作方式,指的是:总线上的所有节点没有主从之分,大家都处于平等的地位。反应在数据传输上,即是:在总线空闲状态,任意节点都可以向总线上发送消息。在多主工作方式下:

    • 最先向总线发送消息的节点获得总线的发送权;
    • 当多个节点同时向总线发送消息时,所发送消息的优先权高的那个节点获得总线的发送权。
  • 非破坏性仲裁机制(可以参考下这种设计)
    在这里插入图片描述

  • Can没有地址的概念(UDP的广播里是不是也可以参考这个设计,我不知道对方地址,但我知道ID,然后我就广播,符合的就接收 ? ) CAN组播和广播都是这套机制实现的

    在这里插入图片描述

  • CANopen没细看不知道是什么,暂时保存

    CANopen 轻松入门.pdf

参考网址

串口通信————UART、I2C、SPI详解(总结篇)_spi i2c uart_小光学嵌入式的博客-CSDN博客 UART、I2C、SPI 串口通信工作原理、传输步骤详解,串行与并行,全双工与半双工,异步方式与同步方式 https://blog.csdn.net/qq_52608074/article/details/122297014

SPI协议代码_Crazzy_M的博客-CSDN博客_sck上升沿触发中断,收数 软件模拟SPI程序代码概述:   通过两个MCU(STM32F103)来模拟SPI的主从机,完成主机发送从机接收,便于理解SPI协议。SPI协议简介●SPI接口介绍  SCK:时钟信号,由主设备产生,所以主设备SCK信号为输出模式,从设备的SCK信号为输入模式。  CS:使能信号,由主设备控制从设备,,所以主设备CS信号为输出模式,从设备的CS信号为输入模式。  MOSI:主设备数据输出,从设备数 https://blog.csdn.net/qq_40147893/article/details/106458045

IIC协议详解_Crazzy_M的博客-CSDN博客_iic协议 软件模拟IIC程序代码详解概述:  通过stm32模拟IIC协议读取传感器86BSD压力传感器的压力值和温度值数据,利用通信波形来深入理解IIC协议。  MCU-STM32F103,从设备地址0x28,利用逻辑分析仪进行波形分析。IIC协议简介I2C总线是由Philips公司开发的一种简单、双向二线制同步串行总线。它只需要两根线即可在连接于总线上的器件之间传送信息。● IIC接口介绍  SDA:串 https://blog.csdn.net/qq_40147893/article/details/106762340

CAN总线学习笔记(1)- CAN基础知识 - 极术社区 - 连接开发者与智能计算生态 本专辑是依照瑞萨公司《CAN入门书》的组织思路来学习CAN通信的相关知识,并结合网上相关资料以及学习过程中的领悟整理成的笔记。希望对初学者有所帮助。 https://aijishu.com/a/1060000000221188

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值