Core I2C的原理及采用FPGA技术实现I2C IP核的设计

时间:2025-09-17  作者:Diven  阅读:0

I2C(Inter Integrated Circuit)双向二线制串行总线,是由飞利浦公司制定的。I2C总线是一个多主机的总线,使用串行数据线(SDA)和串行时钟线(SCL)在总线上传递信息。每个器件都有一个唯一的识别地址,而且都可以作为一个发送器或接收器。当连接在I2C总线上的多个主机器件同时传输数据时,通过仲裁来避免冲突。SDA和SCL都是双向线路,通过一个电流源或上拉电阻连接到电源。器件输出级必须是漏极开路或集电极开路,当总线空闲时,两条线路处于高电平,执行线与的功能。

Core I2C的原理及采用FPGA技术实现I2C IP核的设计

Actel公司免费提供I2C IP核——Core I2C。Core I2C是基于APB总线形式的,优点是可以连接到Core 8051或者是Cortex M1处理器上,方便用户进行SoC设计,本文将主要介绍Core I2C的原理与应用。

1. Core I2C介绍

(1)I2C协议简介

I2C总线协议定义如下:只有在总线处于“非忙”状态时,才能开始数据传输。在数据传输期间,只要时钟线为高电平,数据线都必须保持稳定,否则数据线上的任何变化都被当作“启动”或“停止”信号。图1所示为总线状态的定义。

I2C总线的工作方式为:当SCL为高电平时,如果检测到SDA的下降沿,则启动数据的传输;在数据传输时,只要SCL为高电平时,SDA数据必须保持稳定,SDA数据可以在SCL的低电平时发生变化;当SCL为高电平时,如果检测到SDA的上升沿,则停止数据的传输。

(2)Core I2C内部结构

Core I2C的内部结构框图如图2所示。主要由串行时钟发生器、地址寄存器、控制寄存器、状态寄存器和APB总线接口等组成的。

● 串行时钟发生器模块:提供SCL时钟脉冲。

● 地址寄存器模块:包含了内核编程的地址信息。

● 控制寄存器模块:控制串行传输的启动、重启、终止、位速率、地址识别和应答等功能。

● 状态寄存器模块:包含了Core I2C内部寄存器工作的状态信息。

● APB总线接口:提供了I2C和APB总线通信的接口。

(3)Core I2C内部寄存器

Core I2C的寄存器的地址映射如表 1所示。

● 控制寄存器——I2C_CTRL

Bit7:串行时钟位2,和第0位、第1位一起决定分频系数。

Bit6:I2C使能位,1表示I2C被使能,否则被禁止。

Bit5:起始标志位,1表示起始标志位有效,总线在空闲时将会产生一个起始状态位。

Bit4:停止标志位,1表示停止标志位有效,总线将会产生一个停止状态位。

Bit3:串行中断标志位,在状态寄存器的值被更新以后,这位必须被清零。

Bit2:主/从机设置位,1表示工作在从机模式,0表示工作在主机模式。

Bit1:串行时钟位1,和第7位、第0位一起决定分频系数。

Bit0:串行时钟位0,和第7位、第一位一起决定分频系数。

Core I2C时钟频率的定义如表 2所示。

● 状态寄存器——I2C_STA

状态寄存器取出所有内部状态位并将压缩成一个5位的代码,该代码与每个I2C总线状态位一一对应,5位代码可用于产生向量地址,以便快速处理不同的服务程序,每个服务程序处理一个特定的总线状态。如果I2C模块的所有模式都被使用,则有26种可能的总线状态。

● 数据寄存器——I2C_DAT

数据寄存器包含要发送或刚接收的数据,当没有处理字节的移位时,APB控制器可以对其进行读写。

● 地址寄存器——I2C_ADDR

Bit7~Bit1:自身从机地址。

Bit0:通用调用位,该位设置为1,通用调用地址有效,否则无效。

(4)Core I2C的基本操作

Core I2C可以配置成主机或从机,总线时钟速率可调整,最高可支持400kb/s的总线传输速率。使用I2C总线时,在总线上要连接两个上拉电阻,阻值为1~10k欧姆。

● 主机发送模式

主机发送模式的数据发送格式如图 3所示。先发送起始条件,然后发送从机地址和写方向位,这时从机会产生一个应答,主机在接收到应答位后,依次发送n个数据,每个数据发送后,从机都会产生一个应答位,发送完n个数据后,主机发送停止位。

● 主机接收模式

主机接收模式的数据接收格式如图4所示。主机先发送起始条件,然后发送从机地址和读方向位,这时从机会产生一个应答,主机在接收到应答位后,依次读出n个数据,主机在接收到每个数据后,都会产生一个应答位,接收完数据后,主机发送停止位。

(5)应用场合

I2C协议主要应用于对串行设备的控制,如各种串行的存储器等。图5所示为使用I2C接口控制EEPROM。

2.小结

本文主要介绍了Actel FPGA的Core I2C IP核,除了Core I2C,Actel公司还提供了UART、SPI、PWM、Timer等IP核,请关注周立功公司的网站获得更多的信息。我们有着一个接近30人的FPGA团队提供强有力的售后服务,解决用户在产品使用和研发过程中遇到的困难。若有更多的需求可以与我们联系,我们将会竭诚为您服务,并能关注下期的FPGA专题技术讲座。

猜您喜欢

1210贴片电阻的功率并非固定值,而是根据具体型号和制造商的不同而有所差异。一般来说,常见的1210贴片电阻功率范围在0.25W到1W之间,最常见的是0.5W和...
2025-04-14 15:03:55

贴片电阻在电子电路中扮演着至关重要的角色,选择合适的功率等级对于电路的稳定性和可靠性至关重要。功率计算看似复杂,但掌握几个关键点就能轻松应对。首先,我们需要了解...
2024-11-26 11:29:52

工程师和电子爱好者们,还在为查找精密贴片电阻阻值而烦恼吗?现在,您可以免费下载我们精心整理的精密贴片电阻阻值对照表!该表涵盖了常用精密贴片电阻的阻值范围,从毫欧...
2024-11-26 11:29:49

在选择读卡器时,了解其参数非常重要。接口类型是一个关键因素,常见的有USB、Type-C和无线蓝牙等,选择适合自己设备的接口可以确保兼容性。读写速度也是重要参数...
2011-09-12 00:00:00

压线钳是常见的手工具,应用于电气工程、通信、汽车维修等多个领域。在电气工程中,压线钳用于连接电缆和接头,确保电气线路的安全和稳定。通过高压压接,能够有效避免因接...
2010-08-07 00:00:00

OV0TA1B传感器是首款也是唯一一款可安装在3毫米模块Y尺寸以及小型笔记本电脑、网络摄像头和物联网设备中的单色/红外传感器豪威集团,全球排名前列的先进数字...
2024-11-13 01:05:00

福田区是个重要的电子元件生产地。云母电容器在这里被使用。性能和质量都非常好。本文将介绍福田区云母电容器的特点和优势。云母电容器的定义云母电容器是利用云母作为绝缘...
2025-04-12 00:01:44

以太网交换机是现代网络中不可少的设备,其分类方式多样,主要可分为以下几类。根据工作层次的不同,以太网交换机可分为二层交换机和三层交换机。二层交换机主要负责数据链...
2017-12-16 00:00:00

贴片电阻,作为电子电路中不可或缺的元件,其精度直接影响电路性能。理解其精度标识,对于正确选择和使用至关重要。一般来说,贴片电阻的精度用字母或数字来表示。最常见的...
2024-11-26 11:29:13

贴片电阻因其体积小巧,在电路板上标识完整的阻值信息较为困难。因此,发展出了多种标识方法,这些方法不仅简洁,更在实际应用中发挥着关键作用。首先,明确的标识有助于快...
2024-11-26 11:30:03