通信协议归纳

串口 UART  全双工异步串行

高电平(逻辑“1”或HIGH):典型值为+2.4V至+5V(对于标准5V电源供电的TTL)代表有效信号。

低电平(逻辑“0”或LOW):典型值接近于地电压(0V至+0.4V),代表无效信号。

对于TX引脚,GPIO_Mode字段设置为GPIO_Mode_AF_PP(复用推挽输出)

对于RX引脚,GPIO_Mode字段设置为GPIO_Mode_IN_FLOATING(浮空输入)

起始位、数据位、奇偶校验位和停止位

空闲:线路上为高电平,即逻辑值为1。

起始位:逻辑值为0,表示字符帧的开始。

数据  先发低位再发高位

校验位:奇偶校验。

停止位:高电平代表一个字符帧结束。

单总线协议

1、初始化(复位脉冲 + 存在脉冲)

复位序列:复位脉冲和存在脉冲

在初始化序列期间,总线控制器拉低总线并保持 480us 以发出(TX)一个复位脉冲,然后释放总线,进入接收状态(RX)。单总线由 5K 上拉电阻拉到高电平。当DS18B20 探测到 I/O 引脚上的上升沿后,等待 15-60us,然后发出一个由 60-240us低电平信号构成的存在脉冲。

2、写时序

写时序分为写 1 时序和写 0 时序,总线控制器通过写 1 时序写逻辑 1 到

DS18B20,写 0 时序写逻辑 0 到 DS18B20。所有写时序必须最少持续 60us,包括两个写周期之间至少 1us 的恢复时间。当总线控制器把数据线从逻辑高电平拉到低电平的时候,写时序开始,如下图所示:

总线控制器要生产一个写时序,必须把数据线拉到低电平然后释放,在写时序开始后的 15us 释放总线。当总线被释放的时候,5K 的上拉电阻将拉高总线。总控制器要生成一个写 0 时序,必须把数据线拉到低电平并持续保持(至少 60us)。总线控制器初始化写时序后,DS18B20 在一个 15us 到 60us 的窗口内对 I/O 线采样。线上是高电平,就是写 1。如果线上是低电平,就是写 0。

3、读时序

总线控制器发起读时序时,DS18B20 仅被用来传输数据给控制器。因此,总线控制器在发出读暂存器指令[BEh]或读电源模式指令[B4H]后必须立刻开始读时序,DS18B20可以提供请求信息。除此之外,总线控制器在发出发送温度转换指令[44h]或召回 EEPROM 指令[B8h]之后读时序。

所有读时序必须最少 60us,包括两个读周期间至少 1us 的恢复时间。当总线控制器把数据线从高电平拉到低电平时,读时序开始,数据线必须至少保持 1us,然后总线被释放。在总线控制器发出读时序后,DS18B20 通过拉高或拉低总线上来传输 1 或 0。当传输逻辑 0 结束后,总线将被释放,通过上拉电阻回到上升沿状态。从 DS18B20 输出的数据在读时序的下降沿出现后 15us 内有效。因此,总线控制器在读时序开始后必须停止把 I/O 脚驱动为低电平 15us,以读取I/O 脚状态。

SPI   全双工同步   高位先行

MISO(Master In / Slave Out)主设备数据输入,从设备数据输出。

MOSI(Master Out / Slave In)主设备数据输出,从设备数据输入。

SCLK(Serial Clock)时钟信号,由主设备产生。

CS(Chip Select)从设备片选信号,由主设备产生

起始条件:SS 从高电平切换到低电平
终止条件:SS 从低电平切换到高电平
因此,在从机的整个选中状态中,SS 要始终保持为低电平。

CPOLClock Polarity,时钟极性)

CPHAClock Phase,时钟相位)

IIC  读写操作都是一字节大小,从高到低收发数据

时钟信号SCL为高电平期间,数据线SDA上的数据必须保持稳定,只有在时钟线SCL上的信号为低电平期间,数据线SDA上的高电平或低电平状态才允许变化,因为当SCL是高电平时,数据线SDA的变化被规定为控制命令(START或STOP,也就是起始信号和停止信号)

空闲状态(IDLE)钟信号SCL和数据信号SDL均为高电平起始信号(START) 时钟信号SCL继续保持高电平,数据信号SDL出现由高电平转换为低电平的下降沿,

停止信号(STOP)SCL保持高电平,SDA由低电平跳变到高电平

应答(ACK)与非应答(NACK)

发送端每发送一个字节(8位)数据,在第9个时钟周期释放数据线去接收对方的应答

在第9个时钟周期:
当SDA是低电平为有效应答(ACK),表示对方接收成功;
当SDA是高电平为无效应答(NACK),表示对方没有接收成功。

 

  1. 主设备发送起始(START)信号
  2. 主设备发送设备地址到从设备
  3. 等待从设备响应(ACK)
  4. 主设备发送数据到从设备,一般发送的每个字节数据后会跟着等待接收来自从设备的响应(ACK)
  5. 数据发送完毕,主设备发送停止(STOP)信号终止传输

  1. 设备发送起始(START)信号
  2. 主设备发送设备地址到从设备
  3. 等待从设备响应(ACK)
  4. 主设备接收来自从设备的数据,一般接收的每个字节数据后会跟着向从设备发送一个响应(ACK)
  5. 一般接收到最后一个数据后会发送一个无效响应(NACK),然后主设备发送停止(STOP)信号终止传输

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值