飞思卡尔8位单片机-第10章 IIC
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(4)STOP信号 ) 信号 • 在SCL为逻辑 时SDA的一个上升沿 为逻辑1时 的一个上升沿 为逻辑 的一个上升 • 主器件做下面两件事情之一,数据传输中止: 主器件做下面两件事情之一,数据传输中止: (a)通过产生一个 通过产生一个 信号放弃总线。 通过产生一个STOP信号放弃总线。 信号放弃总线 (b)通过产生重复的 通过产生重复的START信号发起一个新的呼叫。 通过产生重复的 信号发起一个新的呼叫
7-6 MULT 5-0 ICR
用来定义波特率的乘数因子mul: 00 mul = 01;01 mul = 02;10 mul = 04;11 Reserved IIC Clock Rate — 该ICR数值用来定义总线分频得到IIC时钟的分频因子, 同时该ICR数值也用来定义数据线SDA的数据保持时间;
IIC 波特率 = 总线速度 总线速度(Hz)/(mul * SCL 分频数 分频数) SDA 保持时间 =总线周期 * SDA保持值 总线周期(s) 总线周期 保持值
上面两个式子中:mul由MULT决定 SCL分频数和SDA 保持值就由ICR决定,参加下表;
时钟分频与数 据保持时间表
时钟分频设置举例
ຫໍສະໝຸດ Baidu
QG8的IIC特点
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 标准的IIC协议兼容 协议兼容; 与 标准的 协议兼容; 支持多主操作; 支持多主操作; 有64种不同的时钟频率可供选择; 种不同的时钟频率可供选择; 种不同的时钟频率可供选择 Software selectable acknowledge bit; ; 支持中断传输; 支持中断传输; 在总线仲裁中失败方可自动由主切换到从模式; 在总线仲裁中失败方可自动由主切换到从模式; 支持地址匹配中断; 支持地址匹配中断; 信号产生与检测功能; 有S和P信号产生与检测功能; 和 信号产生与检测功能 重新启动” 有“重新启动”(Repeated START)信号产生能力; )信号产生能力; 支持Ack信号的产生与检测; 信号的产生与检测; 支持 信号的产生与检测 具有总线忙检测能力; 具有总线忙检测能力;
图9-2 I2C总线的器件连接
I2C总线信号的时序
I2C协议
一个标准的通信由四部分组成: 一个标准的通信由四部分组成:
– – – – START信号 信号 从地址传输 数据传输 STOP信号 信号
(1)START信号 ) 信号 一个START信号定义为 信号定义为SDA的一个下降沿,同时 保持 的一个下降沿, 一个 信号定义为 的一个下降沿 同时SCL保持 为高。由主机产生。 为高。由主机产生。 (2)从地址传输 )
• 主控器接收到应答信号后可进行下一字节的发送。但如果 主控器接收到应答信号后可进行下一字节的发送。 被控器由于某种原因需要进行其他处理而无法继续接收SDA 被控器由于某种原因需要进行其他处理而无法继续接收SDA 线上数据时,便可向SDA线输出一个非应答信号( ),使 线上数据时,便可向SDA线输出一个非应答信号(A),使 SDA线输出一个非应答信号 SDA线保持高电平, SDA线保持高电平,主控器据此便可产生一个停止信号来终 线保持高电平 止SDA线上的数据传输。 SDA线上的数据传输。 线上的数据传输 • 当主控器作为接收器接收被控器送来的最后一个数据时, 当主控器作为接收器接收被控器送来的最后一个数据时, 必须给被控器发送一个非应答信号( ),令被控器释放 必须给被控器发送一个非应答信号(A),令被控器释放 SDA线 以便主控器可以发送停止信号来结束数据的传输。 SDA线,以便主控器可以发送停止信号来结束数据的传输。 总线上的应答信号比较重要, I2C总线上的应答信号比较重要,在编制程序时应该着重考 虑。
10.2 、IIC管脚及相关寄存器 管脚及相关寄存器
外部信号描述
寄存器
IIC Address Register (IICA)
7-1 ADDR
作为从模式时,存放被寻找的地址,对于主模式该寄存器无用。 作为从模式时,存放被寻找的地址,对于主模式该寄存器无用。
IIC Frequency Divider Register (IICF)
IIC Control Register (IICC)
7-IICEN 6-IICIE 5-MST 4-TX
Iic模块的允许控制位,“1”时允许,此时对应的管脚不再是普通的 管脚 模块的允许控制位, 模块的允许控制位 ”时允许,此时对应的管脚不再是普通的I/O管脚 了。 IIC中断允许是否打开,“1”时打开,一般都要使用中断进行数据的传输。 中断允许是否打开, 中断允许是否打开 ”时打开,一般都要使用中断进行数据的传输。 主模式选择位,当从“0”到“1”改变时,会产生 信号,且器件改为主模式; 信号, 主模式选择位,当从“ ” ”改变时,会产生S信号 且器件改为主模式; 当从“ ”切换到“ ” 会产生P信号 且器件改为了从模式。 信号, 当从“1”切换到“0”时,会产生 信号,且器件改为了从模式。 数据传送的方向控制位, 数据传送的方向控制位,“1”表示发送,“0”表示接收;该位需要根据数 ”表示发送, ”表示接收; 据传输的模式分别设置。主模式下,寻址期间该位为“1”,对于从模式来说, 据传输的模式分别设置。主模式下,寻址期间该位为“ ” 对于从模式来说, 该位需要根据状态寄存器IICS中的 中的SRW位来决定。 位来决定。 该位需要根据状态寄存器 中的 位来决定 该位决定收到数据后是否发送ACK信号,无论是主还是从模式。 信号,无论是主还是从模式。 该位决定收到数据后是否发送 信号 “0”接收到一字节数据后发送应答信号,“1”未发送应答信号。 ”接收到一字节数据后发送应答信号, ”未发送应答信号。 Repeat START,在主模式下,对该位写“1”会产生“重新启动” 信号。 ,在主模式下,对该位写“ ”会产生“重新启动” 信号。
• 前提:总线时钟4MHz,IIC的时钟为 前提:总线时钟 的时钟为100KHz; , 的时钟为 ;
MULT = 01,对应 mul = 2; 对应 ; ICR = 0; 对应 SCL分频数 分频数=20; SDA保持值 7; 保持值= ; 分频数 保持值 = 总线频率 总线频率(Hz)/ (mul * SCL分频数 分频数) 则波特率 分频数 =4000000/(2*20) =100K; (周期 周期10uS) 周期 总线周期(s) 数据保持时间 = 总线周期 * SDA保持值 保持值 = 1/4000000 * 7 = 1.75uS 如果数据保持时间不够,可以修改ICR的数值 比如设置为7,对应的SCL 的数值, 如果数据保持时间不够,可以修改 的数值,比如设置为 ,对应的 分频数为40, 保持值为10, 修改为1,此时100KHz的波特率不 分频数为 ,SDA保持值为 ,将mul修改为 ,此时 保持值为 修改为 的波特率不 但数据保持时间为2.5uS了。 变,但数据保持时间为 了 配置: 配置: SDA hold time is the delay from the falling edge of the SCL (IIC clo ck) to the changing of SDA (IIC data).
QG8
SDA SCL
1、电气特性; 电气特性; 寻址无需片选; 2、寻址无需片选; 3、多主和主从 MT、MR、ST、 4、MT、MR、ST、SR
I2C总线的特点
1、电气特性。各节点需共地,SDA和SCL需分别接上拉电阻。 2、寻址无需片选,主从方式中,从器件的地址包括器件编号地址和引脚地 址,器件编写地址由I2C总线委员会分配,引脚地址决定于引脚外接电平 的高低 3、多主和主从两种工作方式的总线 4、为主控发送器、主控接收器、被控发送器和被控接收器 5、起始和终止信号以及时钟信号都是由主控器提供 6、其总线传输速率为100 kb/s(改进后的规范为400 kb/s),总线驱动能 力为400 pF。QG8的最快速度为clock/20。 7、 I2C总线还具有仲裁功能,当一个以上的主器件同时试图控制总线时,只 允许一个有效,从而保证数据不被破坏 8、当主机发送寻址字节时,总线上所有器件都将该寻址字节中的高7位地址 与自己器件的地址比较,若两者相同,则该器件认为被主机寻址,并根据 读/写位确定是从发送器还是从接收器 9、具有I2C总线接口的单片机可以工作在上述4种工作状态中的任一状态,而 一些带有I2C总线接口的存储器(RAM或E2PROM)模块只能充当被控发送器 或被控接收器 10、在多主方式中,通过硬件和软件的仲裁主控制器取得总线控制权
内部集成电路IIC原理及应用 第十章 内部集成电路 原理及应用
第1节 IIC概述 节 概述 第2节 IIC管脚及相关寄存器 节 管脚及相关寄存器 第3节 IIC在系统扩展中的应用 节 在系统扩展中的应用
9.1
I2C 概述
• I2C总线是PHILIPS公司推出的串行总线。I2C总 线的应用非常广泛,在很多器件上都配备有I2C 总线接口,使用这些器件时一般都需要通过I2C 总线进行控制。这里简要介绍I2C总线的工作原 理及操作时序。
(4) 重复的 重复的START信号 信号 • 图10-8所示,一个重复的 一个重复的START信号是不用首先产生 信号是不用首先产生STOP信号终止 - 所 信号是不用首先产生 信号终止 通信的START信号。 信号。 通信的 信号 (5) 仲裁程序 • 如果两个或更多的主器件试图在同一时间控制总线,一个时钟同步程 如果两个或更多的主器件试图在同一时间控制总线, 两个或更多的主器件试图在同一时间控制总线 序确定总线时钟 时钟。 序确定总线时钟。竞争的主器件之间相对优先级由一个数据仲裁进程 确定。丢失的主器件立即切换到从接收模式并停止驱动 的主器件立即切换到从接收模式并停止驱动SDA输出。 输出。 确定。丢失的主器件立即切换到从接收模式并停止驱动 输出 (6) 时钟同步
7位呼叫地址,紧接着一个读/写位,读写位告诉从器件数据传 位呼叫地址,紧接着一个读 写位 写位, 位呼叫地址 输的期望方向。 输的期望方向。 1 = 读传输,从发送数据给主。 读传输,从发送数据给主。 0 = 写传输,主发送数据给从。 写传输,主发送数据给从。 正好匹配主器件传输的呼叫地址的从器件通过送回一个应答位 响应。 响应。 从机地址由一个固定的和一个可编程的部分构成。例如, 从机地址由一个固定的和一个可编程的部分构成。例如,某些 器件有4个固定的位( 个可编程的地址位( 器件有4个固定的位(高4位)和3个可编程的地址位(低3位), 那么同一总线上共可以连接8个相同的器件。 那么同一总线上共可以连接8个相同的器件。
(3)数据传输 • 数节为8位,高位在前,低位在后。每传输一位数据都有 数节为8 高位在前,低位在后。 一个时钟脉冲相对应。 一个时钟脉冲相对应。 • SCL线为低电平时,SDA线上数据就被停止传送。接收器可 SCL线为低电平时,SDA线上数据就被停止传送。 线为低电平时 线上数据就被停止传送 SCL线输出低电平而箝住SCL(SCL=0),迫使SDA 线输出低电平而箝住SCL ),迫使SDA线处于 向SCL线输出低电平而箝住SCL(SCL=0),迫使SDA线处于 等待状态,直到接收器准备好接收新的数据/地址字节时, 等待状态,直到接收器准备好接收新的数据/地址字节时, 再释放时钟线SCL SCL)=1), SDA线上数据传输得以 SCL( ),使 再释放时钟线SCL(SCL)=1),使SDA线上数据传输得以 继续进行。 继续进行。
I2C总线的接口电路结构
1、数据线SDA和时钟线SCL都是双向传输线,平时均处于高 数据线SDA和时钟线SCL都是双向传输线, SDA和时钟线SCL都是双向传输线 电平备用状态,只有当需要关闭I 总线时,SCL线才会箝 电平备用状态,只有当需要关闭I2C总线时,SCL线才会箝 位在低电平。 位在低电平。 2、 SCL线上为高电平时,SDA线上的数据信号才会有效, SCL线上为高电平时 SDA线上的数据信号才会有效 线上为高电平时, 线上的数据信号才会有效, SCL低时 SDA数据无效 因此,只有当SCL线为低电平时, 低时, 数据无效。 SCL线为低电平时 SCL低时,SDA数据无效。因此,只有当SCL线为低电平时, SDA线上的电平状态才允许发生变化 线上的电平状态才允许发生变化。 SDA线上的电平状态才允许发生变化。
• 数据字节没有限制,但每个字节后都必须跟随一个应答位 数据字节没有限制, 应答信号在第9个时钟位上出现, 应答信号在第9个时钟位上出现,主控发送器必须在被控 接收器发送应答信号前,预先释放对SDA线的控制。 SDA线的控制 接收器发送应答信号前,预先释放对SDA线的控制。接收 器在SDA线上输出低电平为应答信号( ),输出高电平为 SDA线上输出低电平为应答信号 器在SDA线上输出低电平为应答信号(A),输出高电平为 非应答信号( 非应答信号(A)。