- 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接口的一般应用.doc
第十章 I2C接口的一般应用
10.1 I2C简介
I2C(芯片间)总线接口连接微控制器和串行I2C总线。它提供多主机功能,控制所有I2C总线特定的时序、协议、仲裁和定时。支持标准和快速两种模式,同时与SMBus 2.0兼容。
I2C模块有多种用途,包括CRC码的生成和校验、SMBus(系统管理总线—System Management Bus)和PMBus(电源管理总线—Power Management Bus)。根据特定设备的需要,可以使用DMA以减轻CPU的负担。
I2C主要特点
1》并行总线/I2C总线协议转换器 。
2》多主机功能:该模块既可做主设备也可做从设备 。
3》I2C主设备功能 :产生时钟 ;产生起始和停止信号。
4》I2C从设备功能 :可编程的I2C地址检测;可响应2个从地址的双地址能力 ;停止位检测。
5》产生和检测7位/10位地址和广播呼叫 。
6》支持不同的通讯速度 :标准速度(高达100 kHz) ;快速(高达400 kHz) 。
7》状态标志: 发送器/接收器模式标志 ;字节发送结束标志 ;I2C总线忙标志 。
8》错误标志 :主模式时的仲裁丢失 ;地址/数据传输后的应答(ACK)错误 ;检测到错位的起始或停止条件 ;禁止拉长时钟功能时的上溢或下溢 。
9》2个中断向量 :1个中断用于地址/数据通讯成功 ;1个中断用于错误 。
10》可选的拉长时钟功能 。
11》具单字节缓冲器的DMA 。
12》可配置的PEC(信息包错误检测)的产生或校验:用于最后一个接收字节的PEC错误校验 。
13》兼容SMBus 2.0 :25 ms时钟低超时延时 ;10 ms主设备累积时钟低扩展时间;25 ms从设备累积时钟低扩展时间;带ACK控制的硬件PEC产生/校验 ;支持地址分辨协议(ARP) 。
14》兼容SMBus 。
10.2 I2C功能描述
I2C模块接收和发送数据,并将数据从串行转换成并行,或并行转换成串行。可以开启或禁止中断。接口通过数据引脚(SDA)和时钟引脚(SCL)连接到I2C总线。允许连接到标准(高达100kHz)或快速(高达400kHz)的I2C总线。
10.2.1 模式选择
I2C接口有四种模式选择 ,接口可以下述4种模式中的一种运行:
1》从发送器模式
2》从接收器模式
3》主发送器模式
4》主接收器模式
该模块默认地工作于从模式。接口在生成起始条件后自动地从从模式切换到主模式;当仲裁丢失或产生停止信号时,则从主模式切换到从模式。允许多主机功能。
10.2.2 通信流
主模式时,I2C接口启动数据传输并产生时钟信号。串行数据传输总是以起始条件开始并以停止条件结束。起始条件和停止条件都是在主模式下由软件控制产生。
从模式时,I2C接口能识别它自己的地址(7位或10位)和广播呼叫地址。软件能够控制开启或禁止广播呼叫地址的识别。
数据和地址按8位/字节进行传输,高位在前。跟在起始条件后的1或2个字节是地址(7位模式为1个字节,10位模式为2个字节)。地址只在主模式发送。
在一个字节传输的8个时钟后的第9个时钟期间,接收器必须回送一个应答位(ACK)给发送器。参考图10-1-1 I2C总线协议图。
图10-1-1 I2C总线协议
软件可以开启或禁止应答(ACK),并可以设置I2C接口的地址(7位、10位地址或广播呼叫地址)。
I2C接口的功能框图如图10-1-2所示。
图 10-1-2 I2C功能框图
注: 在SMBus模式下,SMBALERT是可选信号。如果禁止了SMBus,则不能使用该信号。
10.2.3 I2C从模式
默认情况下,I2C接口总是工作在从模式。从默认的从模式切换到主模式,需要产生一个起始条件。
为了产生正确的时序,必须在I2C_CR2寄存器中设定该模块的输入时钟。输入时钟的频率必须至少是:
1》标准模式下为:2MHz
2》快速模式下为:4MHz
一旦检测到起始条件,在SDA线上接收到的地址被送到移位寄存器。然后与芯片自己的地址OAR1和OAR2(当ENDUAL=1)或者广播呼叫地址(如果ENGC=1)相比较。
注: 在10位地址模式时,比较包括头段序列(11110xx0),其中的xx是地址的两个最高有效位。
头段或地址不匹配:I2C接口将其忽略并等待另一个起始条件。
头段匹配(仅10位模式):如果ACK位被置’1’,I2C接口产生一个应答脉冲并等待8位从地址。
地址匹配:I2C接口产生以下时序:
1》如果ACK被置’1’,则
文档评论(0)