当前位置:首页 > 技术学院 > 技术前线
[导读]2C(Inter-Integrated Circuit)总线是由 PHILIPS 公司开发的两线式串行总线,是一种具有多端控制能力向串行数据总线系统,用于连接微控制器及其外围设备。

准确的读法应该是I的平方C,即I^2C。以后就简写成I2C模块。

I2C模块通过I2C总线为DSP和其他符合PHILIPS半导体内部集成电路总线规格(PHILIPS半导体I2C总线规范)的设备提供了接口。I2C总线是一种两线制串行总线,与其相连的外部器件可以发送1~8位数据到DSP,或者从DSP接收1~8位数据。通过I2C模块传输或接收到的一个单位的数据可以少于8位。

I2C模块支持任何主/从I2C兼容设备,多个I2C模块连接在总线上实现多个器件间的数据双向传输。

一.I2C模块的主要特征

1.与PHILIPS半导体I2C总线规范兼容(2.1版)

支持8位格式数据传送;

7位和10位寻址模式,分别最多可以带128个和1024个设备;

支持多个主发送器和多个从接收器;

支持多个从发送器和多个主接收器;

具有主发送/接收和主接收/发送模式;

数据传输速率可从10Kbit/s到400Kbit/s

*支持通用呼叫功能;

*支持启动字节(START)模式

2.一个16位接收FIFO和一个16位发送FIFO

3.一个可以随时被CPU使用的中断

4.在FIFO模式下可被CPU使用的附加中断

5.有自有数据格式模式

6.不支持以下功能:

高速模式

CBUS-兼容模式

二.I2C模块的性能与功能

I2C是多主控总线,所以任何一个设备都能像主控器一样工作,并控制总线。总线上每一个设备都有一个独一无二的地址,根据设备它们自己的能力,它们可以作为发射器或接收器工作。I2C模块允许一个或多个支持I2C总线功能的器件连接在同一条总线上。

对于数据通信,I2C模块有一个串行数据引脚SDA和一个串行时钟引脚SCL。这两个引脚在280x器件和连接到I2C总线上的其他器件之间传送信息。SDA和SCL两个引脚均是双向的。它们必须通过上拉电阻接到正电压。当总线空闲时,两个引脚均为高电平。

(1)两种主要的传输模式

标准模式:发送n个数值,n是在I2C模块寄存器中所设置的传输数据个数。

重复模式:一直发送数据,直到软件产生一个停止条件或一个新的开始条件。

(2)I2C模块的主要组成

I2C模块结构框图如上图,主要包含:

一个SDA串行数据引脚和一个SCL串行时钟引脚;

数据寄存器和FIFO:暂时保存SDA引脚和CPU之间传递的接收数据和发送数据;

*控制和状态寄存器;

外围总线接口:用于CPU访问I2C模块寄存器和FIFO;

时钟同步器:用来使I2C输入时钟(由DSP时钟源产生)和SCL引脚的时钟同步,并且使数据发送器与不同的主机时钟速度同步;

*预定标器:将输入到I2C模块的时钟进行分频;

噪声滤波器:SDA和SCL引脚的;

*总线仲裁器:用来处理I2C模块和其它主器件的仲裁问题;

中断产生逻辑I2CINT:向CPU发送中断信号;

FIFO中断产生逻辑:以便在I2C模块中接收数据或发送数据时能够同步访问FIFO。(FIFO模式)

上图也给出了非FIFO模式下数据发送和接收的操作方式。CPU将需要发送的数据写入到I2CDXR,并从I2CDRR中读取接收到的数据。当I2C模块配置成发送器时,写入到I2CDXR的数据被复制到I2CXSR中,并逐位地移出到SDA引脚上;当I2C模块配置成接收器时,接收到的数据先移入到I2CRSR,再复制到I2CDRR中。

三.时钟产生源

如图所示:

DSP时钟产生器从外部时钟源接收信号,产生一个频率可编程的I2C输入时钟。I2C输入时钟为CPU时钟,在I2C内部经过两倍以上分频后产生I2C模块时钟和主机时钟。

模块时钟决定了I2C模块以什么频率工作。I2C模块的可编程分频器通过对输入时钟分频得到模块时钟。配置分频器寄存器的IPSC位可确定分频器的值。模块时钟频率的计算公式如下:

主时钟频率=模块时钟频率 X [(ICCL+d)+(ICCH+d)]

为了与所有I2C协议时钟频率匹配,模块时钟必须配置在7~12MHz之间,分频器必须在I2C模块被复位时(即I2CMDR的IR=0)配置。当IRS由0变成1时所分频的频率才有效,当IRS=1时改变IPSC的值不起作用。

当I2C总线的I2C模块被配置成主器件时,在SCL引脚出现主时钟。该时钟控制I2C模块同其他从器件之间通信的时序。I2CCLKL的ICCL位和I2CCLKH的ICCH位的值分别表示分频值的低字节部分和高字节部分。

四.I2C模块操作

1.数据状态

下图描述了I2C总线传送数据时数据线SDA和时钟线SCL的电平状态。

在时钟为高电平时SDA引脚上的数据必须稳定。只有在SCL上时钟信号变低时,数据线SDA引脚的数据才可以改变。

2.操作模式

I2C模块有四种基本操作模式用以支持数据传送。

具体工作如下:

1)如果I2C模块工作在主模式下,当向从模块发送数据时,I2C模块必须保持主发送器模式;接收从模块的数据时,则其必须变为主接收器模式。

2)如果I2C模块是从机,通常是当其识别来自主机的从地址时发送一个应答信号。如果主机将要发送数据给I2C模块,那么模块必须保持从接收器模式。如果主机要求I2C模块发送数据,那么模块必须变成从发送器模式。

五.I2C模块的起始和停止条件

当I2C总线上的I2C模块被配置成主机时,可以由该模块产生起始(START)和停止(STOP)条件。如图所示,当SCL为高电平时,SDA数据线产生由高到低跳变时,表示起始条件开始。主机通过产生这样的条件来表明数据传送开始;当SCL为高电平,SDA数据线产生由低到高跳变时,表明停止条件产生。主机通过产生该条件表明数据传送停止结束。

起始条件开始后且停止条件产生之前,认为此时的I2C总线是处于忙状态的,此时I2CSTR的总线忙位BB=1;在停止条件产生后与下个起始条件产生前,这段期间认为I2C总线是处于空闲的,此时BB=0.。

为了使I2C模块使用起始条件开始数据传送,I2CMDR的主机模式位(MST)和起始条件位(STT)都必须为1.为了使I2C模块使用停止条件终止数据的传送,则停止条件位(STP)必须置1。当RM位和STT位都置1时,产生重复的起始条件。

六.串行数据格式

上图是传输8位数据。SDA数据线上每一位的维持时间相当于SCL一个脉冲。传输数据时,总是高有效位字节(MSB)开始传送。发送和接收数据的个数没有限制。

1)7位地址格式

要使用7位地址格式,需向I2CMDR的扩展地址使能位(XA)写0,并且要确保自由数据格式关闭(即I2CMDR的FDF=0)

起始位后第一个字节包括7位的从机地址和1位读写选择位。决定数据传送的方向,当=0,代表主机向所寻址的从机写数据;当=1,主机读来自从机的数据。

每个字节传输完成后,必须插入一个额外的时钟周期应答位(ACK)。如果在主机传送第一个字节后,从机产生应答位,则发送器就会发送n位数据。n是由I2CMDR的BC位来确定的1~8位数。当数据传送完成后,接收器产生一个应答位ACK。

2)10位地址格式

要使用10位地址格式,需向I2CMDR的扩展地址使能位(XA)写1,并且要确保自由数据格式关闭(即I2CMDR的FDF=0)

起始位后第一个字节包括11110和从机地址的2个最高位MSBs以及一个读写选择位,第二个字节为剩下的8位地址。主机一旦向从机发送了第二个字节,就可以写数据,或者通过重复使用开始位(START)来改变数据传送方向。

七.I2C协议总线信号时序分析

1.总线空闲状态

SDA和SCL两条信号线都处于高电平,即总线上器件都处于释放状态。

2.应答信号ACK

I2C总线的数据都是以8位进行传送,发送器每发送一个字节后,在SCL第9个时钟脉冲期间释放数据总线,由接收器发送一个ACK(把数据总线电平拉低)来表示数据成功接收。

3.无应答信号NACK

在SCL第9个时钟脉冲期间释放数据总线,接收器不拉低数据总线表示一个NACK,NACK有两种用途:

a.表示接收器未成功接收数据字节;

b.当接收器是主控器时,它收到最后一个字节后,应发送一个NACK信号,以通知被控发送器结束数据发送,并释放总线,以便主控接收器发送一个停止信号STOP。

八.写通讯过程(便于加深理解)

主控在检测到总线空闲的状况下,首先发送一个START信号掌管总线;

发送一个地址字节,包括7位地址码和一位=0;

当被控器件检测到主控发送的地址与自己的地址相同时发送一个应答信号ACK;

主控收到ACK信号后,开始发送第一个数据字节;

被控器件收到数据字节后发送一个ACK表示继续传送数据,,发送NACK表示数据传送结束;

主控发送完全部数据后,发送一个停止信号STOP,结束整个通讯并释放总线。

九.读通讯过程

主控在检测到总线空闲的状况下,首先发送一个START信号掌管总线;

发送一个地址字节,包括7位地址码和一位=1;

当被控器件检测到主控发送的地址与自己的地址相同时发送一个应答信号ACK;

主控收到ACK信号后释放数据总线,开始接收第一个数据字节;

主控器件收到数据字节后发送一个ACK表示继续传送数据,,发送NACK表示数据传送结束;

主控接收完全部数据后,发送一个停止信号STOP,结束整个通讯并释放总线。

十.I2C协议寻址约定

地址的分配方法有两种:

1.含CPU的智能器件,地址由软件初始化时定义,但不能与其它器件有冲突;

2.不含CPU的非智能硬件,由厂家在器件内固化,不可改变。

高7位为地址码,其分为两部分:

1.高4位属于固定地址不可改变,由厂家固化的统一地址;

2.第三位为引脚设定地址,可以由外部引脚来设定(并非所有器件都可以设定,也并非所有器件都是引脚设定)。

*****************************************************************************************************************这部分内容比较多,全是理论为主,以上只是讲了一些经常用到的知识点,还有一些没有在此写出来,如果有需要可以查阅开发板产品中关于【I2C模块部分手册】。

好啦,这部分暂时没有软件实验部分,这一讲结束。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭