- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式系统设计与开发I2C总线接口 I2C总线接口 1.1 S3C44B0X I2C总线概述I2C是一种双向两线制的串行数据传输标准总线。S3C44B0X RISC微处理器支持多主I2C串行接口。专用串行数据线SDA和串行时钟线SCL在总线控制器和外围设备之间传送信息,它们都连在I2C总线上。SDA和SCL线都是双向的。在多主I2C模式下,多个S3C44B0X RISC微处理器可以从设备接收数据或传送数据到设备。启动数据传送给I2C总线的主设备也负责终止数据的传送。S3C44B0X中的I2C总线使用了标准的优先级仲裁过程。为了控制多主I2C操作,必须为以下寄存器赋值:多主I2C控制寄存器(IICCON)、多主I2C控制/状态寄存器(IICSTAT)、多主I2C Tx/Rx数据移位寄存器(IICDS)和多主I2C地址寄存器(IICADD)。当I2C空闲时,SDA和SCL线都处于高电平。SDA由高电平到低电平的转变能够产生启动条件;当SCL在高电平保持稳定时,SDA由低电平到高电平的转变能够产生停止条件。启动和停止条件一般由主设备产生。启动条件产生后,被放到总线上的第一个数据字节的7位地址值能够决定总线主设备所选择的从设备,第8位决定了传送的方向(读或写)。放到SDA线上的每一个数据字节都是8位。在总线传送操作中被发送或接收的字节数是无限的,数据总是从最高位MSB开始发送,并且每个数据之后应紧跟着一个应答位ACK。I2C总线框图 需要注意下面几点:I2C数据保持时间tSDAH最短为0ns。检查FC设备的保持时间(FC规格v2.1中,在标准/快速总线模式下,FC数据保持时间最短为0ns)。I2C控制器只支持I2C总线设备(标准/快速总线模式),不支持C总线设备。1.2 S3C44B0X I2C总线接口操作S3C44B0X I2C总线接口有4种操作模式:主传送模式、主接收模式、从传送模式和从接收模式。 1.启动和停止条件当I2C总线接口未被激活时,一般处于从模式,也就是说,在检测到SDA线上的启动条件之前,接口应处于从模式(当SCL时钟信号保持高电平时,SDA线由高电平到低电平的转变产生启动条件)。当接口状态变为主模式时,SDA线上的数据传送被启动,且SCL信号产生。启动条件能够在SDA线上传送一个字节的连续数据,停止条件能够结束数据的传送。停止条件是当SCL为高电平时,SDA线上由低电平到高电平的转变。启动和停止条件总是由主设备产生的。当启动条件产生时, I2C总线忙;停止条件产生后几个时钟, I2C总线又变为空闲。当主设备产生启动条件时,将发送一个从地址通知从设备。这一字节的地址包括7位地址和1位传送方向指示(读或写)。如果第8位是0,表明是写操作(发送操作),如果第8位是1,表明是读数据(接收操作)。主设备通过发送一个停止条件完成传送操作。如果主设备想继续传送数据到总线上,那么将产生另一个启动条件和另一个从地址,这样,读/写操作就能以不同的格式进行。2.数据传送格式放到SDA线上的每一个字节长度都应该是8位。每次传送的被发送的字节数没有限制。启动条件后的第一个字节应有地址域。当I2C总线在主模式下操作时,该地址域能被主设备发送。每一个字节都应紧跟着一个应答位(ACK)。连续数据和地址的MSB位总是最先被发送。3.应答ACK信号传送为了完全完成一字节的传送,接收器应发送一个ACK位给发送器。ACK脉冲应出现在SCL线的第9个时钟脉冲上,一字节数据传送需要8个时钟,传送ACK位需要主设备产生一个时钟脉冲。当接收到ACK时钟脉冲时,发送器应通过使SDA线变成高电平来释放SDA线。接收器也需在ACK时钟脉冲期间使SDA线变为低电平,因此SDA在第9个SCL脉冲的高电平期间可保持低电平。ACK位的传送功能可由软件(IICSTAT)激活或禁止。然而,完成一字节数据传送操作时,在SCI第9个时钟上的ACK脉冲是必不可少的。4.读/写操作在传送模式下,数据被传送后, I2C接口将处于等待状态,直到有一个新数据写入IICDS(IIC数据转移寄存器)。在新的数据写入之前,SCL线将保持低电平。新数据写入IICDS寄存器之后,SCL线将被释放。S3C44B0X保持这个中断来确定当前数据传送的完成。CPU接收到中断请求之后,将再写一个新的数据到IICDS。在接收模式下,接收到数据后, I2C接口将处于等待状态,直到IICDS寄存器被读出。在新数据被读出前,SCL线保持低电平。在从IICDS寄存器读出新数据后,SCL线将被释放。S3C44B0X保持这个中断来确定新数据接收的完成。CPU接收到中断请求之后,将从IICDS中读出这个数据。5.总线仲裁程序仲裁发生在SDA线上,有效阻止了两个主设备在总线上的争夺。如果SDA为高电平的一个主设备检测到另一个主
原创力文档


文档评论(0)