STM32 I2C总线通信与SPI总线通信专题讲解.docx
《STM32 I2C总线通信与SPI总线通信专题讲解.docx》由会员分享,可在线阅读,更多相关《STM32 I2C总线通信与SPI总线通信专题讲解.docx(15页珍藏版)》请在第一文库网上搜索。
1、STM32I2C总线通信与SPI总线通信专题讲解总线介绍:I2C(Inter-IntegratedCirCUit)总线(也称IIC或I2C)是由巴而PS痈开发的两线式串行总线(单双工),甬1连接微控制器及其外围设备,在这两根线上可以挂很多设备,同一时刻只能有一个节点处于主机模式,其他节点处于从机模式,总线上数据的传送都由主机发起。I2C总线没有片选信号线,所以需要通过协议来找到对应操作的芯片。是微电子通信控制领域广泛采用的一种总线标准。它是同步通信的一种特殊形式,具有接旦线少,控制方式简单,期间封装形式少,通信速率高等优点。总线特征:1两条总线线路:一条串行数据2A,一条串行班线SC1(主从设
2、备使用同一时钟,属于同步通信)来完成数据的传输及外围器件的扩展2.12C总线上的每一个设备都可以作为主设备或者从设备,而且每一个设备都会对应一个唯一的地址,通常是7位,有时候是10位3.I2C总线数据传输速率在标准模式下可达100kbits,快速模式下可达400kbits,高速模式下可达3.4Mbit/s。在开发配置的时候,最好检查从设备的传输速率从而对主设备(一般是蚂P进行相应的配置。一般通过I2C总线接口可编程时钟来实现传输速率的调整,同时也跟所接的上拉里圈的阻值有关。4.I2C总线上的主设备与从设备之间以字节(8位)为单位进行单双工的数据传输。拓扑结构一一总线型I2C总线在物理连接上分别
3、由SDA(串行数据线)和SC1(串行时钟线)及上拉电阻组成,Se1由主机发出,SC1越快,通讯速率越快。通信原理是通过对SC1和SDA线高低电平时序的控制来产生I2C总线协议所需要的信号进行数据的传递。在总线空闲状态时,这两根线一般被上面所接的上拉电阻拉高,保持着高电平。I2C总线协议1I2C协议规定:总线上数据的传输必须以一个起始信号作为开始条件,以一个结束信号作为传输的停止条件。起始和结束信号总是由主设备产生。2 .空闲状态:SC1和SDA都保持着高电平。3 .起始信号:当SC1为高电平而SDA由高到低的跳变,表示产生一个起始条件,所有的从设备都能感受到这个跳变,做好准备等待被选择。4 .
4、结束信号:当SC1为高而SDA由低到高的跳变,表示产生一个停止条件5 .数据传输:数据传输以字节为单位,主设备在SC1线上产生每个时钟脉冲的过程中将在SDA线上传输一个数据位,数据在时钟的高电平被采样这时候采集到是1就是1,是O就是O,所以在传输数据时,当时钟处于高电平时一定要保持稳定,时钟处于低电平时可以变换数据。(高电平采样,低电平变换)一个字节按数据位从高位到低位的顺序进行传输。主设备在传输有效数据之前要先指定从设备的地址,一般为7位,然后再发生数据传输的方向位,O表示主设备向从设备写数据,1表示主设备向从设备读数据。主从设备以字节为单位(8位)进行数据传输,开始传输数据时把从设备地址加
5、上方向位组成一个8位的字节进行发送并接收一个应答。6 .应答信号:接收数据的器件在接收到8bit数据后,向发送数据的器件发出低电平的应答信号,表示已收到数据。这个信号可以是主控器件发出,也可以是从动器件发出。总之,由接收数据的器件发出。a.主设备向从设备写数据:b.主设备读从设备的数据:c.主设备读从设备的某个蜜在盗:读设备的寄存器首先应该对该设备发送写命令,很多设备都可以看成是一段内存,所以写命令写给从设备,指明要读取哪个地址(寄存器)的数据,接下来才是真正的读数据。不同的从设备是由区别的,在驱动I2C从设备时应当查明设备的时序图,又怎样的要求,不同的时序对应了不同的命令。 STM32F4-
6、12C控制器特性软件模拟I2C时序:由于直接控制GP1O引脚电平产生通讯时序时,需要由CPU控制每个时刻的引脚状态,所以称之为“软件模拟协议”方式。我们知道,驱动I2C设备只需要两根管脚,即使单柱机上没有I2C控制器,根据协议控制每根管脚每一时刻的电平状态,一根模拟数据线,一根模拟时钟线,就可以驱动从设备,相对而言效率低,但是可以实现控制驱动。STM32内部具备专门的I2C控制器,使用时只需对其进行相应的配置即可。硬件控制产生I2C时序:STM32的I2C片上外设专门负责实现I2C通讯协议,只要配置好该外设,它就会自动根据协议要求产生通讯信号,收发数据并缓存起来,CPU只要检测该外设的状态和访
7、问数据寄存器,就能完成数据收发。这种由硬件外设处理I2C协议的方式减轻了CPU的工作,且使软件设计更加简单。控制器功能:配置主从模式(一般都把STM32当作主机使用,作为从机时应当对其赋一个地址),通过配置其内部的寄存器产生一些中断和错误信号,配置通信速率位标准模式、快速模式、超快速模式等STM32芯片有3组I2C外设,可以同时进行3组I2C传输。它们的I2C通讯信号引出到不同的GPIO引脚上,使用时必须配置到这些指定的引脚。 EEPROM(AT24CXX)存储芯片介绍一个典型的I2C接口的从设备,专门用于存储数据的芯片。EEPROM(E1ectrica11yErasab1eProgramma
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- STM32 I2C总线通信与SPI总线通信专题讲解 I2C 总线 通信 SPI 专题 讲解
