资源预览内容
第1页 / 共96页
第2页 / 共96页
第3页 / 共96页
第4页 / 共96页
第5页 / 共96页
第6页 / 共96页
第7页 / 共96页
第8页 / 共96页
第9页 / 共96页
第10页 / 共96页
亲,该文档总共96页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
10 串行总线扩展技术 本章内容简介:(1)I2C总线扩展技术: I2C总线、 I2C总线 的数据传输、 I2C总线的寻址、MCS-51单片机 模拟I2C总线、 I2C总线的应用。(2)SPI总线扩展技术:SPI总线、 MCS-51 单片机模拟SPI总线及其应用。110 串行总线扩展技术采用串行总线扩展技术可以使系统的硬件设计 简化,系统的体积减小,同时,系统的更改和扩充 更为容易。串行扩展总线的应用是单片机目前发展 的一种趋势 常用的串行扩展总线有:I2C(Inter IC BUS) 总线、SPI(Serial Peripheral Interface)总线、 Microwire 总线及单总线(1-Wire BUS)。MCS-51单片机没有串行总线接口,利用其自身 的通用并行线可以模拟多种串行总线时序信号,因 此可以充分利用各种串行接口芯片资源。 210.1 I2C总线扩展技术I2C总线是Philips公司开发的一种双向两线串行总 线,以实现集成电路之间的有效控制,这种总线也称 为Inter IC 总线。目前,Philips及其它半导体厂商提供 了大量的含有I2C总线的外围接口芯片,I2C总线已成 为广泛应用的工业标准之一。标准模式下,基本的I2C总线规范的规定的数据传 输速率为100kb/s。 快速模式下,数据传输速率为400KB/s。 高速模式下,数据传输速率为3.4Mb/s。 I2C总线始终和先进技术保持同步,并保持其向下 兼容性。 310.1.1 I2C总线 (1)I2C总线采用二线制传输,一根是数据线SDA( Serial Data Line),另一根是时钟线SCL(serial clock line),所有I2C器件都连接在SDA和SCL上,每一个器 件具有一个唯一的地址。 (2)I2C总线是一个多主机总线,总线上可以有一个 或多个主机(或称主控制器件),总线运行由主机控 制。 主机是指启动数据的传送(发起始信号)、发出时 钟信号、发出终止信号的器件。通常,主机由单片机 或其它微处理器担任。被主机访问的器件叫从机(或称从器件),它可以 是其它单片机,或者其他外围芯片,如:A/D、D/A、 LED或LCD驱动、串行存储器芯片。 410.1.1 I2C总线(3)I2C总线支持多主(multi-mastering)和主从( master-slave)两种工作方式。多主方式下,I2C总线上可以有多个主机。I2C总 线需通过硬件和软件仲裁来确定主机对总线的控制权 。主从工作方式时,系统中只有一个主机,总线上 的其它器件均为从机(具有I2C总线接口),只有主机 能对从机进行读写访问,因此,不存在总线的竞争等 问题。在主从方式下,I2C总线的时序可以模拟 ,I2C 总线的使用不受主机是否具有I2C总线接口的制约。MCS-51系列单片机本身不具有I2C总线接口,可 以用其I/O口线模拟I2C总线 510.1.1 I2C总线图10.1 单主机系统I2C总线扩展示意图 610.1.1 I2C总线采用I2C总线设计系统的优点: (1)功能框图中的功能模块与实际的外围器件对应, 可以使系统设计直接由功能框图快速地过渡到系统样 机。(2)外围器件直接“挂在”I2C总线上,不需设计总线 接口;增加和删减系统中的外围器件,不会影响总线 和其他器件的工作,便于系统功能的改进和升级。 (3)集成在器件中的寻址和数据传输协议可以使系统 完全由软件来定义。 710.1.2 I2C总线的数据传输 图10.2 标准模式和快速模式下器件连接到I2C总线的形式 双向510k负载能力为400pf 810.1.2 I2C总线的数据传输(一)数据位的传送I2C总线上主机与从机之间一次传送的数据称为一 帧。由启动信号、若干个数据字节、应答位和停止信 号组成。数据传送的基本单元为一位数据。时钟线SCL的一个时钟周期只能传输一位数据。在 SCL时钟线为高电平期间内,数据线SDA上的数据必须 稳定。当SCL时钟线变为低电平时,数据线SDA的状态 才能改变。 910.1.2 I2C总线的数据传输(二)启始和停止状态 。起始(START)状态:I2C总线传输过程中,当时钟 线SCL为高电平时,数据线SDA出现高电平到低电平跳 变时,标志I2C总线传输数据开始。停止(STOP)状态:I2C总线传输过程中,当时钟线 SCL为高电平时,数据线SDA出现低电平到高电平跳变 时,标志着I2C总线传输数据结束。起始和停止状态是由主机发出 1010.1.2 I2C总线的数据传输(三)传输数据 传输到数据线SDA上的每个字节必须为8位 每次传输的字节数不受限制。每个字节后必须跟一个 应答(acknowledge)位。数据传输时,首先传送最高 位,如图10.5所示,如果从机暂时不能接收下一个字节 数据,如从机响应内部中断,那么,可以使时钟线SCL 保持为低电平,迫使主机处于等待状态;当从机准备就 绪后,再释放时钟线SCL,使数据传输继续进行。 1110.1.2 I2C总线的数据传输(四)应答I2C协议规定,在每个字节传送完毕后,必须有一 个应答位。应答位的时钟脉冲由主机产生。在应答时 钟有效期间,发送设备把数据线SDA置为高电平;接 收设备必须把数据线SDA置为低电平,并且在此期间 保持低电平状态,以便产生有效的应答信号。1210.1.2 I2C总线的数据传输(五)数据传输格式在起始状态S之后,先发送一个7位从机地址,接 着第8位是数据方向位, 0表示发送(写), 1 表示请求数据(读)。一次数据传输总是由主机产生停止 状态P而结束。但是,如果主机还希望在总线上传输数 据,那么,它可以产生另一个起始状态和寻址另一个 从机,不需要先产生一个停止状态。在这种传输方式 中,就可能有读写方式的组合。 1310.1.2 I2C总线的数据传输在I2C总线启动或应答信号后的第18个时钟脉冲,对应一 个字节的8位数据传送。高电平期间,数据串行传送;低电平 期间为数据准备,允许总线上数据电平变化。一旦I2C总线启 动,传送的字节数没有限制,只要求每传送一个字节后,对 方回应一个应答位。发送时,最先发送的是数据的最高位。 每次传送开始有起始信号,结束时有停止信号。传送完一个 字节,可以通过对时钟线的控制使传送暂停。 (五)数据传输格式1410.1.2 I2C总线的数据传输在I2C总线上,传输数据可能的数据格式: (五)数据传输格式(1)主机发送器发送到从机接收器。数据传输的方向 不变化。 1510.1.2 I2C总线的数据传输(2)在第一个字节后主机立即读从机。 在I2C总线上,传输数据可能的数据格式: (五)数据传输格式1610.1.2 I2C总线的数据传输(3)组合格式 在I2C总线上,传输数据可能的数据格式: (五)数据传输格式1710.1.3 I2C总线的寻址每个连接在I2C总线的器件,都具有一个唯一确定 的地址。在任何时刻,I2C总线上只能有一个主机对总 线实行控制权,分时地实现点对点的数据传送。 器件(从机)的地址由7位组成,它与1位方向位 构成了I2C总线数据传输时起始状态S之后第1个字节。 从机地址由固定位和可编程位组成。固定位由器件 出厂时给定,用户不能自行设置,它是器件的标识码 。1810.1.3 I2C总线的寻址当主机发送了第1个字节后,系统中的每个从机 (器件)都在起始状态S之后把高7位与本机的地址比 较,如果与本机地址一样,则该从机被主机选中,是 接收数据还是发送数据由 确定。从机地址由固定位和可编程位组成。固定位由器 件出厂时给定,用户不能自行设置,它是器件的标识 码。当系统中使用了多个相同器件时,从机地址中的 可编程位,可使这些器件具有不同的地址;这些可编 程位也规定了I2C总线上同类芯片的最大个数。 1910.1.3 I2C总线的寻址表10.1常见I2C器件的标识码类别型号A6A3 静态RAMPCF8570/711010 PCF8570C1011 E2PROMPCF85821010 AT24C021010 AT24C041010 AT24C081010 AT24C161010 I/O口PCF85740100 PCF8574A0111 LED/LCD 驱动 控制器SAA10640111 PCF85760111 PCF8578/790111 ADC/DACPCF89511001 日历时钟PCF858310102010.1.4 单片机主从系统I2C总线模拟程序MCS-51单片机没有I2C总线接口,只能采用虚拟 I2C总线方式,并且只能用于主从系统。 虚拟I2C总线接口利用MCS-51单片机的I/O口线作 为数据线SDA和时钟线SCL,通过软件延时实现I2C总 线传输数据的时序要求。(1)起始信号(S) 四种典型信号的时序 (2) 停止信号(P) 21(3)应答信号( )(4)无应答信号(A) 10.1.4 单片机主从系统I2C总线模拟程序MCS-51单片机没有I2C总线接口,只能采用虚拟I2C总 线方式,并且只能用于主从系统。 虚拟I2C总线接口利用MCS-51单片机的I/O口线作为数 据线SDA和时钟线SCL,通过软件延时实现I2C总线传输数 据的时序要求。四种典型信号的时序 2210.1.5 I2C总线应用 (一) I2C总线扩展I/O口 PCF8574是一个带有中断输出的8位准双向I/O口的 I2C总线扩展I/O口芯片。 A2A0:地址引脚; P0P7:8位准双向I/O口; SDA、SCL: I2C总线接口;:中断请求输出,低电平有效, 漏极开路输出。输入端P0P7电平 状态改变时,中断请求输出端出现 低电平。对PCF8574进行一次读/ 写操作后,撤销中断请求,复位为 高电平 。 VDD:电源,+5V;VSS:地 2310.1.5 I2C总线应用(一) I2C总线扩展I/O口 PCF8574数据输入/输出操作格式 (1)输出操作输出时,R/ =0,SLAW为0100(A2A1A0)0。W(2)输入操作输入时,R/ =1,SLAW为0100(A2A1A0)1。W2410.1.5 I2C总线应用例:采用PCF8574扩展的4个按键、4个LED应用电路,其中 P0P3作为按键输入端,P4P7作为LED控制信号的输出端 。按键K1控制L1,依此类推,当键按后,相应LED被点亮 。(一) I2C总线扩展I/O口 2510.1.5 I2C总线应用AT24CXX系列串行E2PROM是Atme1公司生产的 I2C总线接口功能的串行E2PROM器件,具有掉电保护 功能 ,AT24C02容量为256字节。AT24CXX系列的写 入时间一般需要510ms。(二)I2C总线扩展E2PROM SDA、SCL: I2C总线接口; A2A0:地址引脚; WP:写保护。当接低电平时, 可进行正常读/写操作;接高 电平时,只能读取数据。 2610.1.5 I2C总线应用数据读/写操作格式 (二)I2C总线扩展E2PROM (1)输出操作(SADR为AT24C02片内地址 ) SLAW为1010(A2A1A0)0 (2)输入操作SLAW为1010(A2A1A0)1 2710.1.5 I2C总线应用MCS-51单片机与AT24C02 的连接电路 (二)I2C总线扩展E2PROM AT24C02与80C51接口 例1:把单片机内部RAM 10H单元开始的8个字节数据写入 AT24C02的50H57H单元中。 例2 把AT24C02的50H57H中的8个数据读出,存入单片机内 部的RAM的20H27H。 2810.2 SPI总线扩展技术 SPI(Serial Peripheral Interface)总线是 Motorola公司提出的一种同步串行外设接口, 它可以 使微控制器(MCU)与各种外围设备以串行方式进行 通信以交换信息。外围设备包括FLASHRAM、网络控 制器、LCD显示驱动器、A
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号