• 1. 第12章 常用数据传输接口 本章主要介绍I2C,SPI和1-wire三种传输总线的传输协议及过程,为了便于大家对三种传输总线的理解,笔者针对每种传输总线分别介绍了AT24C02,DS1302和DS18B20三款芯片的使用方法和应用过程。
    • 2. 12.1 I2C总线AT24C02设计 12.1.1 I2C总线概述 I2C总线全称是Inter-Integrated Circuit总线,有时也写为IIC总线,由菲利普公司推出,是广泛采用的一种新型总线标准,也是同步通信的一种通信形式。具有接口线少、占用的空间非常小、控制简单、通信速率较高等优点。所有与I2C兼容的器件都具有标准的接口,可以把多个I2C总线器件同时接入I2C总线上,通过地址来识别通信对象,使它们可以经由I2C总线相互直接通信。
    • 3. 12.1.2 I2C总线硬件结构图 图12.1.1 I2C总线系统的硬件结构图
    • 4. 12.1.3 I2C总线通信时序 I2C总线上进行一次数据通信的时序图12.1.2所示。 图12.1.2 I2C总线进行一次数据通信的时序图
    • 5. 12.1.4 数据位的有效性规定 图12.1.4 I2C总线数据位有效性规定
    • 6. 12.1.5 发送启动信号 图12.1.5 I2C总线启动信号时序图
    • 7. 12.1.6 发送寻址信号 器件地址有7位和10位两种,这里只介绍7位地址寻址方式。 在I2C总线开始信号后,再发送寻址信号。送出的第一个字节数据是SLA寻址字节,用来选择从器件地址的,其中前7位为地址码,第8位为方向位(R/ )。
    • 8. 12.1.7 应答信号规定 图12.1.6 I2C总线应答信号时序图
    • 9. 12.1.8 数据传输 数据传输的过程如下: (1)假设器件A要向器件B发送信息: 器件A(主机)寻址器件B(从机) 器件A(主机—发送器)发送数据到器件B(从机—接收器) 器件A终止传输 (2)假设器件A要读取器件B中的信息: 器件A(主机)寻址器件B(从机) 器件A(主机—接收器)从器件B(从机—发送器)接收数据 器件A终止传输
    • 10. 12.1.9 非应答信号规定 当主机为接收设备时,主机对最后一个字节不应答,以向发送设备表示数据传送结束。
    • 11. 12.1.10 发送停止信号 图12.1.7 I2C总线停止信号时序图
    • 12. 12.2 单片机模拟I2C总线通信 在单片机模拟I2C总线通信时,需要调用一些函数构建相应的时序。这些函数有:总线初始化、启动信号、应答信号、停止信号、写一个字节、读一个字节。
    • 13. 12.3 AT24C02的基础知识 具有I2C总线接口的EEPROM很多,在此就仅介绍ATMEL公司生产的AT24C系列EEPROM,其主要型号AT24C01/02/04/08/16等,其对应的存储容量分别为128x8/256x8/512x8/1024x8/2048x8。采用这类芯片可以解决掉电数据丢失的问题,可以对保存的数据保持100年,并可以擦除10万次以上。
    • 14. 12.3.1 AT24C02引脚配置与引脚功能 图12.3.1 AT24C02芯片实物图和管脚图
    • 15. 12.3.2 AT24C02的特性 与400KHz I2C总线兼容 1.8到6.0伏电压范围 低功耗CMOS技术 写保护功能:当WP位高电平时进行写保护状态 页写缓冲器 自定时擦除写周期 1,000,000编程/擦除周期 可保存数据100年 8脚DIP、SOIC或TSSOP封装 温度范围:商业级、工业级和汽车级
    • 16. 12.3.3 AT24C02管脚描述 图12.3.2 单片机与AT24C02连接的电路图
    • 17. AT24C02管脚功能描述 表12.3.1 AT24C02管脚功能描述
    • 18. 12.4 AT24C02的应用实例 12.4.1 设计要求 采用定时中断方式,设计一个0~59s变化的秒表,将每次显示在数码管上的时间(0~59)存入AT24C02。
    • 19. 图12.4.1 基于AT24C02的秒表设计原理图
    • 20. 12.5 SPI 总线DS1302实时时钟设计 12.5.1 SPI总线简介 SPI是英文Serial Peripheral Interface的缩写,中文意思是串行外围设备接口。SPI接口是Motorola 首先提出的全双工三线同步串行外围接口,采用主从模式(Master Slave)架构;支持多Slave模式应用,一般仅支持单Master。时钟由Master控制,在时钟移位脉冲下,数据按位传输,高位在前,低位在后(MSB first);SPI接口有2根单向数据线,为全双工通信,目前应用中的数据速率可达几Mbps的水平。
    • 21. 图12.5.1 SPI 主从机接口连接图
    • 22. 12.5.2 接口定义数据传输 图12.5.2 SPI信号传输示意图
    • 23. 接口定义数据传输 表12.5.1 SPI 的4根信号线功能表
    • 24. 图12.5.3 多个SPI从设备级联图
    • 25. 图12.5.4 多个SPI从设备独立连接图
    • 26. 要注意的是:SCK信号线只由主设备控制,从设备不能控制信号线。同样,在一个基于SPI的设备中,至少有一个主控设备。这样的传输方式有个优点:与普通的串行通信相比,SPI允许数据一位一位地传送,甚至允许暂停,因为SCK时钟线由主控设备控制,当没有时钟跳变时,从设备不采集或传送数据。也就是说,主设备通过对SCLK时钟信号的控制可以完成对通信的控制。SPI还有一个数据交换协议:因为SPI的数据输入和输出线相互独立,所以允许同时完成数据的输入和输出。不同的SPI设备的实现方式不尽相同,主要是数据改变和采集的时间不同,在时钟信号上升沿或下降沿的采集有不同的定义,具体的情况需要参考相关器件的技术文档。
    • 27. 12.6 DS1302的基础知识 DS1302主要特点是采用串行数据传输,可为掉电保护电源提供可编程的充电功能,并且可以关闭充电功能。采用普通32.768kHz晶振。 DS1302缺点:时钟精度不高,易受环境影响,出现时钟混乱等缺点。 DS1302优点:DS1302可以用于数据记录,特别是对某些具有特殊意义的数据点的记录,能实现数据与出现该数据的时间同时记录。
    • 28. DS1302的结构及工作原理 DS1302工作电压为2.5V~5.5V,采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。
    • 29. DS1302实物及引脚图,如图 图12.6.1 DS1302实物及引脚图
    • 30. DS1302串行时钟由电源、输入移位寄存器、命令控制逻辑、振荡器、实时时钟以及RAM组成,其结构图如图 图12.6.2 DS1302结构图
    • 31. DS1302的控制字节 图12.6.3 DS1302单字节数据读/写时序
    • 32. 12.7 DS1302显示时钟的实例 12.7.1 设计要求 用DS1302设计一个数字时钟。
    • 33. 图12.7.1 DS1302电路连接原理图
    • 34. 12.8 1-Wire总线介绍 及DS18B20测量温度设计 12.8.1 1-wire单总线概述 图12.8.1 1-wire总线示意图
    • 35. 12.8.2 DS18B20的基础知识 以Dallas公司生产的DS18B20芯片为例,DS18B20是Dallas公司继DS1820后推出的一种改进型智能数字温度传感器,与传统的热敏电阻相比,它只需一根导线就能直接读出被测温度,并可以根据实际需求编程实现9~12位数字值的读数方式。它有三种封装形式
    • 36. 图12.8.2 三种封装形式及芯片的外形图
    • 37. DS18B20内部结构 图12.8.3 DS18B20内部结构框图
    • 38. DS18B20的工作原理 图12.8.4 DS18B20的测温原理图
    • 39. 12.9 DS18B20测量温度的实例 12.9.1 设计要求 DS18B20它在一根数据线上实现数据的双向传输,这就需要一定的协议来对读/写数据提出严格的时序要求,而AT89系列单片机并不支持单线传输。因此,必须采用软件的方法来模拟单线的协议时序。
    • 40. 图12.9.1 DS18B20应用原理图
    • 41. 12.10 小结 本章详细介绍了I2C,SPI和1-wire三种总线的传输协议和传输过程,本章中所设计的三个应用实例也十分实用,在很多场合都能使用得上,比如DS1302电子表和DS18B20温度计。若是同学们能掌握它们的设计方法,自己设计一个简易的电子表或温度计都不再有问题。

    该用户的其他文档