UART & IIC

参考:(B站创客学院视频)
https://www.bilibili.com/video/BV1B54y1v7k3?from=search&seid=5998296087674196595

基础知识

并行和串行

并行用的通道比较多,而且信号和信号直接按会有一点干扰,所以,嵌入式很多都是串行通信。

波特率

用于描述UART通信时的速度,单位为bsp(bit per second)
波特率规定了每一秒收发的位数,所以在异步通信中这个概念很重要。设置了波特率之后,收发双方掐表才能判断发送的位数。

uart

  • 一种通信协议。在嵌入式用的最多。
  • 通用的串行、异步通信总线
  • 有两根线,一个rx 一个tx ,全双工
  • 点对点通信

uart 通信过程/原理

在这里插入图片描述
串口在空闲的时候必须是高电平。 在串口协议中先发送低位再发送高位。比如:0x55,发送的是10101010。
uart是异步通信,收发双方没有统一的时钟,所以上面的帧格式可以看到,每过几个数据位(最多八个,也可以是4.5个),就会有一个停止位,还有一段空闲期。当发送新的数据时,起始位一开始,双方再一起同时掐表。通过这种方式来消除累计误差——如果收发时钟相差不多,比如一个一秒发1个字节,另一个0.9秒发一个字节,那么发的数据多的话累计误差是很大的。

IIC总线

  • 串行 半双工
  • 两根线 CLK SDA
  • 多主机总线
  • 用于近距离、低速芯片通信(传视频就算了吧)比较便宜
    一般在同一个电路板上,几个芯片之间交互,用IIC比较多。
    两个芯片想要用IIC通信的话,CLK SDA分别连到总线对应的CLK SDA上就行。
    主机有发起和结束一次通信的权利,从机只能被呼叫,不能发起,也不能结束!!!!一次通信。当多个主机同时启用总线时,IIC可以检测并仲裁。每个连在IIC上的器件都有唯一一个地址,每个器件都能做主机和从机!!!同一时刻只有一个主机。
IIC总线通信过程

在这里插入图片描述
上图中:
每个器件地址只有7位,step2最后一位用来表明传输方向。
如果最后一位是“0”——>主机给从机发
·····“1”——>从机给主机

起始信号和终止信号

在空闲状态下,SDA和SCL都是高电平,如果SCL为高电平,SDA由高变低-》起始
SCL为高电平,SDA由低变高-》终止
在这里插入图片描述

字节传送和应答

IIC每次发东西,必须发8位,数据传送时先发送最高位。发送器发送完一个字节,接收器要有一位来回应发送器。也就是说一帧有九位。应答信号是一位低电平如果非应答,就是高电平。
IIC总线在进行数据传送的过程中,SCL低电平的时候,SDA变换自己是高电平还是低电平。SCL变成高电平的时候,接收器读数据,这个时候发送器保持稳定。SCL这根线的作用就是在告诉发送器和接收器什么时候发数据(SCL低电平)什么时候接收数据(SCL高电平)。

典型的IIC时序

比较特殊的一种:
在这里插入图片描述
不加stop,防止总线被别的主机抢走。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值