I2C数据帧格式
http://file.elecfans.com/web1/M00/99/99/pIYBAF0YIGmABKiRAAAYlBEbF2w168.jpg(1)主机向从机发送数据,数据的传送方向在传输过程中不改变,如图4 所示。
http://file.elecfans.com/web1/M00/99/99/pIYBAF0YIGqAZbvTAAAb2PxJPlM788.jpg
图4 主机向从机发送数据
注:阴影部分:表示主机向从机发送数据;无阴影部分:表示主机向从机读取数据。
A:表示应答;:表示非应答。S:起始信号;P :终止信号。
(2)主机在第一个字节后,立即向从机读取数据,如图5 所示。
http://file.elecfans.com/web1/M00/99/99/pIYBAF0YIGqAZbvTAAAb2PxJPlM788.jpg
图5 主机在第一个字节后立即读从机
(3)复合格式,如图6 所示。传输改变方向的时候,起始条件和从机地址都会被重复,但R/ W-位取反。如果主机接收器发送一个停止或重复起始信号,它之前应该发送了一个不响应信号()。
http://file.elecfans.com/web1/M00/99/99/pIYBAF0YIGqAFq2RAAAkin7dSQ0454.jpg
图6 复合格式
由以上格式可见,无论哪种传输方式,起始信号、终止信号和地址均由主机发出(图中阴影部分),数据字节的传送方向则由寻址字节中的方向位规定,每个字节的传送都必须有应答位(A 或)。
下面通过24C02 实例在增强型PIC 实验板上编程,其硬件原理图如图7 所示,U7 为实验板上24C02 芯片,SDA 与单片机的RB5 口相连,SCL 与单片机RB4 相连,七段数码管D5、D7、D8 组成了显示单元,字形码的数据通过RC 口送入,各数码管的显示片选信号分别不同的RA 口进行控制。
http://file.elecfans.com/web1/M00/99/99/pIYBAF0YIGuAYJ1NAADW3uwdnyg463.jpg
图7 读/ 写AT24C 系列存储器原理图
在MPLab IDE 软件中新建工程,加入源程序代码,同时进行芯片型号的选择和配置位的设置,我们实验所用的芯片型号为PIC16F877A。
编写的程序代码如下,其中程序流程图如图8 所示 I2C数据帧格式
页:
[1]