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

i2c(inter integrated circuit)双向二线制串行总线,是由飞利浦公司制定的。i2c总线是一个多主机的总线,使用串行数据线(sda)和串行时钟线(scl)在总线上传递信息。每个器件都有一个唯一的识别地址,而且都可以作为一个发送器或接收器。当连接在i2c总线上的多个主机器件同时传输数据时,通过仲裁来避免冲突。sda和scl都是双向线路,通过一个电流源或上拉电阻连接到电源。器件输出级必须是漏极开路或集电极开路,当总线空闲时,两条线路处于高电平,执行线与的功能。
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专题技术讲座。

FDA,CE将要执行EMC新版标准:IEC 60601-1-2: 2014+A1:2020 ED4.1
2023年中国消费级监控摄像头市场销量超5000万
三星将开始递送Note 7死亡升级,升级后将无法再充电
全新体验,首发适配!一加手机极速尝鲜ColorOS 13.1
芯昇科技有限公司亮相ICDIA 助力RISC-V生态发展
Core I2C的原理及采用FPGA技术实现I2C IP核的设计
一分钟让你知道什么是OTP语音芯片
晶体管工作的条件和晶体管工作状态的判断
固定式可燃气体报警器检定中的标定方法
诺基亚任命新掌门人能否进一步巩固市场地位
AI单凭文字就可作画谁最先受到冲击
三星、苹果投入AI新应用 抢救手机销量
爱普特推出15W无线单线圈单充方案 亦可改造为多线圈方案
X-RFID技术在图书馆管理方面的应用
什么是混合智能?人机混合是否最终阶段?
1TB只需599aigo国民好物S500SATA固态硬盘体验
2019年全球智能手机市场观察:产量回落,华为或超苹果
变压器差动保护的不平衡电流产生原因和防范
接触网的分类
黑莓KEY2红色国行版发布