锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

集成电路互联总线I2C模块

时间:2022-07-28 22:30:00 集成电路pc817

I2C的基本概念

I2C:集成电路互联总线

主要用于同一电路板中集成电路模块之间的连接。

I2C采用双向2线制串行数据传输方式,支持所有IC简化制造工艺IC通信连接。

I2C时PHILIPS该公司于20世纪80年代初提出。PHILIPS与其他制造商提供各种各样的服务I2C兼容芯片

主机:在I2C在总线中,提供时钟信号控制总线时序的设备。主机负责总线上各设备信息的传输和控制,检测和协调数据的发送和接收。

从机:在I2C在系统中,除主机外的其他设备都是从机器。主机通过从机地址访问从机器,并对相应的从机器做出响应。与主机通信。从机器之间无法通信,任何数据传输都必须通过主机进行。

地址:每个I2C所有设备都有自己的地址,在从机模式下使用,在标准中使用I2C从机地址定义为7位。

发送器和接收器:将数据发送到总线的装置称为发送器,从总线接收数据的装置称为接收器。

SDA和SCL:SDA表示串行数据线,SCL表示串行时钟线。

I2C如何建立联系

当主机向从机发送数据时。如何确保哪个从机接收数据,如何知道与主机通信的是之前接收数据的从机。

I2C总线上的设备有两个地址:控制地址和广播地址

每个设备都有一个定点通信的唯一控制地址,同一个通用广播地址用于主控方向,同时访问所有设备。

I2C总线寻址协议

I2C总线采用了独特的搜索协议,规定了第一个字节位搜索字节,用于搜索被控器件,并规定了数据传输方向。搜索字节由被控器的7个地址位置组成(D7-D1)和方向位(D0位)组成。

当方向位置为0时,主控器将数据写入被控器,为1.表示主控器从被控器读取数据。

具体寻址:主控器发送起始信号后,立即发送搜索字节。此时,总线上的所有设备都将搜索字节中的7个地址与自己的设备地址进行比较。

如果两者相同,则设备认为主控器找到地址并发送响应信号,被控器根据数据方向确定是作为发送器还是接收器。

当主机从机器上写一个字节数据时。主机首先生成START然后发送7个信号.位从机地址,查询相应的从机,然后在第8位数据方向(R/W);0表示主机发送数据,然后主机等待响应信号,当主机收到响应信号时,发送位置参数,告诉从机接收数组中存储的数据,然后继续等待响应信号,当主机收到响应信号时,发送一个字节数据,继续等待响应信号,当主机收到响应信号时,产生停止信号,结束传输过程。

I2C使用驱动部件的方法

在I2C所有用于定义驱动构件头文件的I2C号的宏定义,I2C引脚组的宏定义。

为了实现I2C通信之间包装了7个基本的外部接口函数:

初始化函数:主要用于I2C设置模块工作参数(工作时钟、引脚重用配置、模块使能)、人口参数(I2C的模块号、I2C本模块的主从机选择、初始化地址、波特率)

从机读取字节数据函数:主机主要用于从机接收字节数据,因此需要了解当前主机的模块号、要读取的从机地址、要读取的数据在从机接收数组中的位置以及存储要读取数据的变量。

向从机写一个字节数据函数:与上一个类似,还需要相应的四个参数。

从从机读取n字节数据函数:与从机读取字节数据函数的区别在于,需要知道读写数据的数量、独立数据的缓冲区和写入数据的第一个地址,因此入口参数位为五个。

向从机写n字节数据函数:与上一个类似,还需要相应的五个入口参数。

开I2C中断函数和关I2C中断函数:为了接收主机发送的数据,设置中断函数,使从机I2C能够接收到主机发送的数据。

构件使用步骤

主机端:

在主函数main中,先调用I2C初始化函数对I2C初始化模块。

i2c_init(IIC_0,1,MasterAddress,100); ///第四参数波特率,单位KB/S

声明一个数组用于存储向从机发送数据并赋值。

uint_8 data[12]; ///发送从机数据

strcpy(data,"Version3.4\n"); //为data数组赋值

在主循环中,小灯每闪烁一次,向从机发送字节数据。

///依次从机写dara中数据,0x73位从机地址,0x02是数据在从机接收数组中的位置

i2c_write(IIC_0,0x73,0x02,data[Num_flag]);

对于从机端

在主函数main中,先调用I2C初始化函数对I2C初始化模块。

i2c_init(IIC_1,1,0x73,75); //i2c1模块初始化

需要接收从主机发送的数据,并将数据放置在数组中buf[ ]中。

i2c_enable_re_int(IIC_1); //为data数组赋值

然后数据可以通过串口发送到PC机

uart_send(UART_TEST,buf[visitaddr]); ///发送主机传输的数据

这样,主机就可以向从机发送字节数据。

嵌入式技术基础与实践(第4版)

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章