全文预览

IIC协议超详细的解释

上传者:菩提 |  格式:docx  |  页数:8 |  大小:0KB

文档介绍
器与被控器总是在扮演着两种不同的角色。Р1.主设备向从设备发送数据Р  主设备发送起始位,这会通知总线上的所有设备传输开始了,接下来主机发送设备地址,与这一地址匹配的slave将继续这一传输过程,而其它slave将会忽略接下来的传输并等待下一次传输的开始。主设备寻址到从设备后,发送它所要读取或写入的从设备的内部寄存器地址; 之后,发送数据。数据发送完毕后,发送停止位:Р写入过程如下:Р  发送起始位Р发送从设备的地址和读/写选择位;释放总线,等到EEPROM拉低总线进行应答;如果EEPROM接收成功,则进行应答;若没有握手成功或者发送的数据错误时EEPROM不产生应答,此时要求重发或者终止。Р发送想要写入的内部寄存器地址;EEPROM对其发出应答;РРР发送数据Р发送停止位.РEEPROM收到停止信号后,进入到一个内部的写入周期,大概需要10ms,此间任何操作都不会被EEPROM响应;(因此以这种方式的两次写入之间要插入一个延时,否则会导致失败,博主曾在这里小坑了一下)РР   Р  详细:РР  需要说明的是:①主控器通过发送地址码与对应的被控器建立了通信关系,而挂接在总线上的其它被控器虽然同时也收到了地址码,但因为与其自身的地址不相符合,因此提前退出与主控器的通信;Р РРР2.主控器读取数据的过程:Р  读的过程比较复杂,在从slave读出数据前,你必须先要告诉它哪个内部寄存器是你想要读取的,因此必须先对其进行写入(dummy write):Р发送起始位;Р发送slave地址+write bit set;Р发送内部寄存器地址;Р重新发送起始位,即restart;Р重新发送slave地址+read bit set;Р读取数据Р主机接收器在接收到最后一个字节后,也不会发出ACK信号。于是,从机发送器释放SDA线,以允许主机发出P信号结束传输。 Р发送停止位   РР详细:

收藏

分享

举报
下载此文档