通讯协议汇总

UART

UART(Universal Asynchronous Receiver/Transmitter)是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工传输和接收。

物理拓扑

在这里插入图片描述

帧结构/数据传输形式#

在这里插入图片描述
起始位:先发一个逻辑0,表示传输字符的开始;依靠检测起始位来实现发送与接收方的时间自同步的。

数据位:4~8位,构成一个字符,如ASCII码8位数据位,从最低位开始传送,靠时钟定位;方向为LSB

奇偶校验位:数据位加上这一位后,使得“1”的位数为偶数(偶校验)或奇数(奇校验)以此来校验数据传送的正确性;

停止位:他是一个字符数据的结束标志,可以是1位、1.5位、2位的高电平。适用于停止位的位数越多,不同时钟同步的容忍程度越大,数据传输率同时也越低。

空闲位:处于逻辑“1”状态,表示当前线路上没有数据传送。

波特率

串口常见的波特率为9600,14400,57600、115200等。

以9600为例,意思为1秒传输了9600bit,那么传输1bit所用的时间为:1 /9600 ≈ 104us(UART的逻辑电平起码要保持的时间长度)

总结

优点:

1,需要的引脚线不多,只用2条数据线,1条地线
2,不需要时钟信号
3,有奇偶校验位,提供通信的差错检查

缺点:

1,数据帧支持的最大长度只有9bit
2,不支持多主机或多从机的主从结构

RS232

  • 串行,全双工
  • 规定逻辑“1”的电平为-5V~-15 V,逻辑“0”的电平为+5 V~+15 V。
  • 传送距离一般可达30 m

RS485

  • 串行,半双工,差分电路
  • 逻辑“1”在+2V~+6V之间,逻辑“0”在-2V~-6V之间
  • 传输距离远:10km
  • 协议支持1发多收(总线形式)

IIC

物理拓扑

特点:

  • 半双工,同步
  • 主从(机)结构
  • 硬件简单(时钟线+数据线)
  • 从高数据位(MSB)开始传输

缺点:

  • 速率较低:标准模式下可达100kbit/s,快速模式下可达400kbit/s,高速模式下可达3.4Mbit/s
  • 距离较短(理论15M以下)
    在这里插入图片描述

时序

start和stop

在这里插入图片描述
SDA和SCL同时为高时,为IIC总线的空闲状态

  • 起始:时钟线SCL为高时,数据线SDA由高到低
  • 停止:时钟线SCL为高时,数据线SDA由低到高

数据

除了开始和结束标志,所有的SDA 信号变化都要在SCL 时钟为低电平时进行,SCL高电平时读SDA上信号

ACK(应答)

在这里插入图片描述
下面的波形:SCL,主机产生的时钟脉冲
上面的波形:SDA,主机发送的8位数据
中间的波形:SDA,从/主机在第9个时钟信号进行拉低回应,表示收到了主/从机发来的数据,拉高则表示不应答
注:实际上,上面和中间是同样的SDA线,这里只是分开示意。

数据收发方式

主机写

在这里插入图片描述
写寄存器时,主设备除了发出开始标志和地址位,还要加一个R/W 位,0 为写,1 为读

主机读

在这里插入图片描述
主机向从机索要数据时,以NACK为结尾,告诉从机之后不需要再读数据。

SPI

特点:

  • 全双工,同步
  • 主从(机)结构
  • 速率高:一般几M,最高几十M
  • 从高数据位(MSB)开始传输

缺点:

  • 线比较多
  • 适合短距离传输

物理拓扑

在这里插入图片描述

工作模式

SPI有四种工作模式,通过串行时钟极性(CPOL)和相位(CPHA)的搭配来得到四种工作模式:
1,CPOL=0,串行时钟空闲状态为低电平。
2,CPOL=1,串行时钟空闲状态为高电平,此时可以通过配置时钟相位(CPHA)来选择具体的传输协议。
3,CPHA=0,串行时钟的第一个跳变沿(上升沿或下降沿)采集数据(读端)。
4,CPHA=1,串行时钟的第二个跳变沿(上升沿或下降沿)采集数据。
在这里插入图片描述

USB

通用串行总线,高速,半双工,由主机、hub、设备组成。设备可以与下级hub相连构成星型结构。

CAN总线

特点:

  • 串行,全双工,差分线
  • 直接通信距离最远10km(速率5Kb/s)
  • 通信速率最高可达1Mb/s(距离40m)

隐性电平和显性电平

  • 隐性电平:CANH和CANL之间的差分电压近似为0,表示逻辑1

  • 显性电平:CANH和CANL之间的差分电压近似为2~3V,表示逻辑0

波特率和比特率

  • 比特率:每秒传输多少bit(信息)
  • 波特率:表示每秒钟传送码元符号的个数
  • 比特率=波特率x单个调制状态对应的二进制位数
    (代表一个符号包含多少个bit数据)

两相调制(单个调制状态对应1个二进制位)的比特率=波特率;四相调制(单个调制状态对应2个二进制位)的比特率为波特率的2倍;八相调制(单个调制状态对应3个二进制位)的比特率为波特率的3倍。 **一般而言,传输信号是二进制的,即波特率与比特率的概念就是相同的。**tuopu

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值