十天学会单片机和c语言lesson8

上传人:kms****20 文档编号:40990597 上传时间:2018-05-27 格式:DOC 页数:7 大小:33.50KB
返回 下载 相关 举报
十天学会单片机和c语言lesson8_第1页
第1页 / 共7页
十天学会单片机和c语言lesson8_第2页
第2页 / 共7页
十天学会单片机和c语言lesson8_第3页
第3页 / 共7页
十天学会单片机和c语言lesson8_第4页
第4页 / 共7页
十天学会单片机和c语言lesson8_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《十天学会单片机和c语言lesson8》由会员分享,可在线阅读,更多相关《十天学会单片机和c语言lesson8(7页珍藏版)》请在金锄头文库上搜索。

1、十天学会单片机和十天学会单片机和 C C 语言语言 LESSON8LESSON8本文由 rocrey 贡献pdf 文档可能在 WAP 端浏览体验不佳。建议您优先选择 TXT,或下载源文件到本机查看。I2C 串行总线的组成及工作原理 串行总线的组成及工作原理8.1 I2C 串行总线的组成及工作原理 串行总线的组成及工作原理采用串行总线技术可以使系统的硬件设计大大简化, 采用串行总线技术可以使系统的硬件设计大大简化, 系统的体积减小,可靠性提高.同时, 系统的体积减小,可靠性提高.同时,系统的更改和 扩充极为容易. 扩充极为容易. 常用的串行扩展总线有: 常用的串行扩展总线有: I2C (Inte

2、r IC BUS)总 ) 单总线( - ),SPI(Serial 线,单总线(1-WIRE BUS), ), ( Peripheral Interface)总线及 )总线及 Microwire/PLUS 等. 等 本课仅讨论 I 串行总线 串行总线. 本课仅讨论 2C 串行总线.8.1.1 I2C 串行总线概述 串行总线概述I2C 总线是 总线是 PHLIPS 公司推出的一种串行总线,是具备多 公司推出的一种串行总线, 总线是 公司推出的一种串行总线 主机系统所需的包括总线裁决和高低速器件同步功能的高 性能串行总线. 性能串行总线. I2C 总线只有两根双向信号线.一根是数据线 SDA,另 总

3、线只有两根双向信号线.一根是数据线 , 总线只有两根双向信号线 一根是时钟线 SCL. 一根是时钟线 .I2C 总线通过上拉电阻接正电源.当总线空闲时,两根线均 总线通过上拉电阻接正电源. 总线通过上拉电阻接正电源 当总线空闲时, 为高电平.连到总线上的任一器件输出的低电平, 为高电平.连到总线上的任一器件输出的低电平,都将使总 线的信号变低,即各器件的 都是线“ 线的信号变低,即各器件的 SDA 及 SCL 都是线“与“关系. 及 都是线每个接到 I 总线上的器件都有唯一的地 每个接到 2C 总线上的器件都有唯一的地 址.主机与其它器件间的数据传送可以是 由主机发送数据到其它器件, 由主机发

4、送数据到其它器件,这时主机即 为发送器. 为发送器.由总线上接收数据的器件则为 接收器. 接收器在多主机系统中,可能同时有几个主机企图启 在多主机系统中, 动总线传送数据.为了避免混乱, 动总线传送数据.为了避免混乱, I2C 总线要通 过总线仲裁,以决定由哪一台主机控制总线. 过总线仲裁,以决定由哪一台主机控制总线. 单片机应用系统的串行总线扩展中, 在 80C51 单片机应用系统的串行总线扩展中, 单片机应用系统的串行总线扩展中 我们经常遇到的是以 80C51 单片机为主机,其它 单片机为主机, 我们经常遇到的是以 单片机为主机 接口器件为从机的单主机情况. 接口器件为从机的单主机情况.8

5、.1.2 I2C 总线的数据传送 总线的数据传送一,数据位的有效性规定I2C 总线进行数据传送时,时钟信号为高电平期间,数据 总线进行数据传送时, 总线进行数据传送时 时钟信号为高电平期间, 线上的数据必须保持稳定,只有在时钟线上的信号为低电 线上的数据必须保持稳定,只有在时钟线上的信号为低电 平期间,数据线上的高电平或低电平状态才允许变化. 平期间,数据线上的高电平或低电平状态才允许变化.二,起始和终止信号SCL 线为高电平期间,SDA 线由高电平向低电 线为高电平期间, 线为高电平期间 线由高电平向低电 平的变化表示起始信号; 线为高电平期间, 平的变化表示起始信号;SCL 线为高电平期间

6、, 线为高电平期间 SDA 线由低电平向高电平的变化表示终止信号. 线由低电平向高电平的变化表示终止信号. 线由低电平向高电平的变化表示终止信号起始和终止信号都是由主机发出的, 起始和终止信号都是由主机发出的,在起始信号产生 总线就处于被占用的状态;在终止信号产生后, 后,总线就处于被占用的状态;在终止信号产生后,总线 就处于空闲状态. 就处于空闲状态. 连接到 I 总线上的器件 若具有 I 总线的硬件接口 总线上的器件, 总线的硬件接口, 连接到 2C 总线上的器件,若具有 2C 总线的硬件接口,则 很容易检测到起始和终止信号. 很容易检测到起始和终止信号. 接收器件收到一个完整的数据字节后

7、, 接收器件收到一个完整的数据字节后,有可能需要完成 一些其它工作,如处理内部中断服务等, 一些其它工作,如处理内部中断服务等,可能无法立刻接收 下一个字节,这时接收器件可以将SCL 线拉成低电平,从而 线拉成低电平, 下一个字节,这时接收器件可以将 线拉成低电平 使主机处于等待状态. 使主机处于等待状态.直到接收器件准备好接收下一个字节 再释放 SCL 线使之为高电平,从而使数据传送可以继续 线使之为高电平, 时,再释放 线使之为高电平 进行. 进行.三,数据传送格式 (1)字节传送与应答 )每一个字节必须保证是 8 位长度.数据传送时,先传 每一个字节必须保证是 位长度.数据传送时, 位长

8、度 送最高位( ),每一个被传送的字节后面都必须跟 送最高位(MSB),每一个被传送的字节后面都必须跟 ), 随一位应答位(即一帧共有 位 随一位应答位(即一帧共有 9 位).由于某种原因从机不对主机寻址信号应答时( 由于某种原因从机不对主机寻址信号应答时(如从机 正在进行实时性的处理工作而无法接收总线上的数据), 正在进行实时性的处理工作而无法接收总线上的数据), 它必须将数据线置于高电平, 它必须将数据线置于高电平,而由主机产生一个终止信号 以结束总线的数据传送. 以结束总线的数据传送. 如果从机对主机进行了应答, 如果从机对主机进行了应答,但在数据传送一段时间后 无法继续接收更多的数据时

9、, 无法继续接收更多的数据时,从机可以通过对无法接收的 第一个数据字节的“非应答“通知主机, 第一个数据字节的“非应答“通知主机,主机则应发出终 止信号以结束数据的继续传送. 止信号以结束数据的继续传送. 当主机接收数据时,它收到最后一个数据字节后, 当主机接收数据时,它收到最后一个数据字节后,必须 向从机发出一个结束传送的信号. 向从机发出一个结束传送的信号.这个信号是由对从机的 非应答“来实现的.然后,从机释放 SDA 线,以允许主 “非应答“来实现的.然后,从机释放 线 机产生终止信号. 机产生终止信号.(2)数据帧格式 ) I2C 总线上传送的数据信号是广义的,既包括地址 总线上传送的

10、数据信号是广义的, 总线上传送的数据信号是广义的 信号,又包括真正的数据信号. 信号,又包括真正的数据信号. 在起始信号后必须传送一个从机的地址( 位 在起始信号后必须传送一个从机的地址(7 位), 位是数据的传送方向位( ),用 第 8 位是数据的传送方向位(R/T),用“0“表示主 位是数据的传送方向位 ), 表示主 机发送数据( ), ),“ 表示主机接收数据 表示主机接收数据( ).机发送数据(T),“1“表示主机接收数据(R). 每次数据传送总是由主机产生的终止信号结束. 每次数据传送总是由主机产生的终止信号结束.但 是,若主机希望继续占用总线进行新的数据传送, 若主机希望继续占用总

11、线进行新的数据传送, 则可以不产生终止信号, 则可以不产生终止信号,马上再次发出起始信号对 另一从机进行寻址. 另一从机进行寻址. 在总线的一次数据传送过程中, 在总线的一次数据传送过程中,可以有以下几种 组合方式: 组合方式:a,主机向从机发送数据,数据传送方向在整 ,主机向从机发送数据, 个传送过程中不变: 个传送过程中不变:注:有阴影部分表示数据由主机向从机传送,无阴影部分则 有阴影部分表示数据由主机向从机传送, 表示数据由从机向主机传送. 表示数据由从机向主机传送. A 表示应答, A 非表示非应答(高电平). 表示起始信号, 表示应答, 非表示非应答 高电平). 表示起始信号, 非表

12、示非应答( ).S 表示起始信号 表示应答 P 表示终止信号. 表示终止信号. 表示终止信号b,主机在第一个字节后,立即从从机读数据 ,主机在第一个字节后,c,在传送过程中,当需要改变传送方向时, ,在传送过程中,当需要改变传送方向时, 起始信号和从机地址都被重复产生一次, 起始信号和从机地址都被重复产生一次,但 两次读/写方向位正好反相 写方向位正好反相. 两次读 写方向位正好反相.四,总线的寻址 I2C 总线协议有明确的规定:采用 位的寻址字 总线协议有明确的规定: 总线协议有明确的规定 采用 7 位的寻址字 寻址字节是起始信号后的第一个字节). 节(寻址字节是起始信号后的第一个字节).

13、(1)寻址字节的位定义 )D7D1 位组成从机的地址.D0 位是数据 位组成从机的地址 位组成从机的地址. 位是数据 传送方向位, 传送方向位,为“0“时表示主机向从机写数 时表示主机向从机写数 时表示主机由从机读数据. 据,为“1“时表示主机由从机读数据. 时表示主机由从机读数据主机发送地址时 总线上的每个从机都将这 主机发送地址时,总线上的每个从机都将这 7 位地址码与自己的地址进行比较,如果相同, 位地址码与自己的地址进行比较,如果相同, 则认为自己正被主机寻址,根据 R/T 位将自己 则认为自己正被主机寻址,根据 位将自己 确定为发送器或接收器. 从机的地址由固定部分和可编程部分组成

14、由固定部分和可编程部分组成. 从机的地址由固定部分和可编程部分组成. 在一个系统中可能希望接入多个相同的从机, 在一个系统中可能希望接入多个相同的从机, 从机地址中可编程部分决定了可接入总线该类 器件的最大数目.如一个从机的 7 位寻址位有 器件的最大数目.如一个从机的 位寻址位有 4 位是固定位,3 位是可编程位,这时仅能寻 位是固定位, 位是可编程位 位是可编程位, 位是固定位 址 8 个同样的器件,即可以有 8 个同样的器件 个同样的器件,即可以有 个同样的器件 个同样的器件 接入到该 I2C 总线系统中. 接入到该 总线系统中8.2 80C51 单片机 2C 串行总线器件的接口 单片机

15、 I 单片机 串行总线器件的接口 8.2.1 总线数据传送的模拟主机可以采用不带 I2C 总线接口的单片机,如 总线接口的单片机, 主机可以采用不带 总线接口的单片机 80C51,AT89C2051 等单片机,利用软件实现 等单片机, , 等单片机 利用软件实现 I2C 总线的数据传送,即软件与硬件结合的信号模拟. 总线的数据传送,即软件与硬件结合的信号模拟. 一,典型信号模拟 为了保证数据传送的可靠性,标准的 I2C 总线的数 为了保证数据传送的可靠性,标准的 总线的数 据传送有严格的时序要求. 总线的起始信号, 据传送有严格的时序要求.I2C 总线的起始信号,终 总线的起始信号 止信号,发

16、送“ 及发送 及发送“ 的模拟时序 止信号,发送“0“及发送“1“的模拟时序 :二,典型信号模拟子程序 (1)起始信号 ) Void T2CStart(void) SDA = 1; SomeNop( ); SCL = 1; SomeNop( ); SDA = 0; SomeNop( ); (2)终止信号 ) void I2cStop(void) SDA = 0; SomeNop( ); SCL = 1; SomeNop( ); SDA = 1; SomeNop( ); 8.2.2 I2C 总线器件的扩展 总线器件的扩展一,扩展电路二,串行 E2PROM 的扩展 串行 的扩展(1)串行 2PROM 典型产品 )串行 E 典型产品 ATMEL 公司的 公司的 AT24C 系列: 系列: 公司的 系列AT24C01 128 AT24C01:128 字节(1288 位); 128 8 AT24C02:256 字节(2568 位); AT24C04:512 字节(5128 位) AT24C08:1K 字节(1K8 位); AT24C16:2K 字节(2K8 位);

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号