IIC

≡放荡痞女 提交于 2020-02-12 02:05:58

IIC 是什么:
IIC(Inter-Integrated Circuit)总线是一种由 PHILIPS 公司开发的两线式串行总线,用于连接微控制器及其外围设备。它是由数据线 SDA 和时钟 SCL 构成的串行总线,可发送和接收数据。在 CPU 与被控 IC 之间、IC 与 IC 之间进行双向传送。在信息传输过程中IIC总线上并联的每一个器件既是被控器(或主控器),又是发送器,这取决于他所要完成的功能。CPU发出的控制信号分为地址码和数据码两部分:地址码用来选址,即接通需要控制的电路;数据码是通信的内容,这样各IC控制电路虽然挂在同一条总线上,但却彼此独立。
I2C 总线在传送数据过程中共有三种类型信号, 它们分别是:开始信号、结束信号和应答信号。
开始信号:SCL 为高电平时,SDA 由高电平向低电平跳变,开始传送数据。
结束信号:SCL 为高电平时,SDA 由低电平向高电平跳变,结束传送数据。
应答信号:接收数据的 IC 在接收到 8bit 数据后,向发送数据的 IC 发出特定的低电平脉冲,表示已收到数据。CPU 向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU 接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障。
注意:
使用IIC总线时必须要有起始信号,结束信号和应答信号可以不要。IIC总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在时钟信号为低电平期间,数据线上的高电平或者低电平状态才允许变化。
iic通讯过程:
1.发送启动(起始)信号:在利用IIC总线进行一次数据传输时,首先由主机发出启动信号,启动IIC总线。在SCL为高电平期间,SDA出现下降沿则为启动信号。此时具有IIC总线接口的从器件会检测到该信号。
2.发送寻址信号:主机发送启动信号后,再发出寻址信号。器件地址有7位和10位两种,这里只介绍7位地址寻址方式。寻址字节由一个字节构成,高7位为地址位,最低位为方向位,用以表明主机与丛集的数据传送方向。方向位为0,表明主机接下来对从设备进行写操作;方向位为1,表明主机接下来对从器件进行读操作。主机发送地址时,总线上的每个从机都将这7位地址码与自己的地址进行比较,如果相同,则认为自己正被主机寻址,根据R/W位将自己确定为发送器或接收器。
3.应答信号:IIC总线协议规定,没传送一个字节数据(含地址和命令字)后,都要有一个应答信号,以确定数据传送是否被对方收到。应答信号由接收设备产生,在SCL信号为高电平期间,接收设备将SDA拉为低电平,表示数据传输正确,产生应答。
4.数据传输:主机发送寻址信号并得到从器件应答后,便可进行数据传输,每次一个字节,但每次传输都应在得到应答信号后在进行下一字节传送。
5.非应答信号:当主机为接受设备时,主机对最后一个字节不应答,以向发送设备表示数据传输结束。
6.发送停止信号:在全部数据传送完毕后,主机发送停止信号,即在SCL为高电平期间,SDA上产生一个上升沿信号。
单片机读操作的大致流程:首先单片机发送起始信号,接着使用写操作进行芯片寻址0xa0,接着定位片内子地址address,读数据要把R/W位设置成读操作才可以对address处数据进行读操作,接下来需要重新发送一个起始位,接着使用读操作进行芯片寻址0xa1,接着单片机从IIC总线中读取8位数据保存到变量中,最后单片机发送一个结束信号完成整个读过程,其中中间夹杂着应答过程
单片机写数据的大致流程:首先发送起始信号,接着使用写操作芯片寻址0xa0,接着进行片内子地址寻址address,接着向address写入info,最后发送停止信号,其中中间夹杂着应答的过程。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!