fpga_feixiang 发表于 2020-11-9 15:18:51

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 所示

大鹏 发表于 2020-11-11 18:08:13

I2C数据帧格式
页: [1]
查看完整版本: I2C数据帧格式