stm32f4xx-I2C
文章目录
- 一、概述
- 1.背景
- 2.传输方向
- 3.速度
- 4.地址
- 二、IIC通信过程
- 1.I2C通信过程中,存在4种信号
- 2.起始信号和停止信号
- 3.同步信号
- 4.数据收传输与应答
- 总结:
- 三、应用领域
- 四、test。。。
一、概述
1.背景
I2C(IIC,Inter-Integrated Circuit)总线是由Philips公司开发的一种简单、双向二线制同步串行总线。它只需要两根线即可在连接于总线上的器件之间传送信息。一种串行、半双工总线,主要用于近距离、低速芯片之间的通信。IIC总线有两根双向信号线,一根数据线SDA用于收发数据,一根时钟线SCL(SCK)用于通信双方时钟的同步;IIC总线硬件结构简单,成本较低,应用广泛。
主器件用于启动总线传送数据,并产生时钟以开放传送的器件,此时任何被寻址的器件均被认为是从器件。
I2C总线简化了硬件电路PCB布线,降低了系统成本,提高了系统可靠性。因为I2C芯片(如mpu6050、ft5x06等)除了这两根线和少量中断线,与系统再没有连接的线,用户常用IC可以很容易形成标准化和模块化,便于重复利用。
2.传输方向
在总线上主和从、发和收的关系不是恒定的,而取决于此时数据传送方向。
如果主机要发送数据给从器件,则主机首先寻址从器件,然后主动发送数据至从器件,最后由主机终止数据传送。
如果主机要接收从器件的数据,首先由主器件寻址从器件.然后主机接收从器件发送的数据,最后由主机终止接收过程。在这种情况下,主机负责产生定时时钟和终止数据传送。
3.速度
连接到相同总线上的IC数量只受总线最大电容的限制,串行的8位双向数据传输位速率在标准模式下可达100Kbit/s,快速模式下可达400Kbit/s,高速模式下可达3.4Mbit/s。
总线具有极低的电流消耗.抗高噪声干扰,增加总线驱动器可以使总线电容扩大10倍,传输距离达到15m;兼容不同电压等级的器件,工作温度范围宽。
4.地址
I2C总线上的每一个设备都可以作为主设备或者从设备,而且每一个设备都会对应一个唯一的地址(地址通过物理接地或者拉高,可以从I2C器件的数据手册得知,如AT24C02芯片,7位地址依次1010xxx, 最低三位可配,如果全部物理接地,则该设备地址为0x50),主从设备之间就通过这个地址来确定与哪个器件进行通信,在通常的应用中,我们把STM32作为主设备,把挂接在总线上的其他设备都作为从设备。
二、IIC通信过程
1.I2C通信过程中,存在4种信号
1.起始信号(条件):表示双方做好通信准备
2.主机发送1字节数据,指明从机地址和后续字节的传送方向
3.应答信号:有应答信号和无应答信号。有应答信号SDA为低电平,无应答信号为高电平
4.停止信号(条件):告诉从机通信结束,释放总线
2.起始信号和停止信号
3.同步信号
时钟线SCL为低电平时发送器向数据线SDA上发送一位数据,此期间信号允许发送变化
时钟线SCL为高电平时接收器从数据线SDA上读取一位数据,此期间信号不允许发送变化,必须保持稳定
SCL时钟线作用:告诉发送器和接收器对数据收发的时机
4.数据收传输与应答
先传输最高位,后传输低位,发送完1字节后接收器必须发送1位应答位来回应发送器,所以一帧共有9位
总结:
IIC协议整个通信流程 = 起始信号 + 1字节(确定目标和传输方向)+ 应答信号(有0/无1) + 数据传输(发送/接收) + 停止信号
三、应用领域
摄像头控制、触摸屏、无人机、计步器(加速度/角速度/陀螺仪传感器)、心率(心率传感器)、激光测距、FM收音机(FM调频收音模块)