《常见串行总线》由会员分享,可在线阅读,更多相关《常见串行总线(28页珍藏版)》请在金锄头文库上搜索。
1、第十三章 常见串行总线河工科技河工科技第十三章第十三章 常见串行总线常见串行总线第三节第三节 单总线温度传感器单总线温度传感器DS18B20第二节第二节 SPI总线及其应用总线及其应用第一节第一节 I C总线及其应用总线及其应用2本章主要讲述了I2C、SPI和单总线三种单片机串行接口总线及其典型芯片24C02、DS1302和DS18B20的应用。一、一、I2C总线简介总线简介第一节第一节 I C总线及其应用总线及其应用I2C总线是由PHILIPS公司开发一种简单、双向二线制同步串行总线。1I2C总线的主要特点总线的主要特点(1)总线只有两根线,即串行时钟线(SCL)和串行数据线(SDA。(2)
2、每个连接到总线上的都有一个用于识别的器件地址,器件地址由芯片 内部硬件电路和外部地址引脚同时决定,避免了片选线的连接方法,并建立简单的 主从关系,每个器件既可以作为发送器,又可以作为接收器。(3)同步时钟允许器件以不同的波特率进行通信。(4)同步时钟可以作为停止或重新启动串行口发送的握手信号。(5)串行的数据传输位速率在标准模式下可达100kbps,快速模式下可达400kbps, 高速模式下可达3.4Mbps。22I C总线的基本结构总线的基本结构图图13-1 I2C总线的基本结构总线的基本结构23. I C总线信息传送总线信息传送2图13-2 I2C总线信息传送图开始信号:SCL为高电平时,
3、SDA由高电平向低电平跳变,开始传送数据。结束信号:SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。开始信号和结束信号之间传送的是信息,信息的字节数没有限制,但每个字节必须为8位,高位在前,低位在后。数据线SDA上每一位信息状态的改变只能发生在时钟线SCL为低电平的期间 器件地址码格式 D7D7D6D6D5D5D4D4D3D3D2D2D1D1D0D0器件器件类类型型码码片片选选R/WI2C总线器件AT24CXX系列器件的地址为1010 4. I2C总线读、写操作总线读、写操作(1)当前地址读(2)指定单元读(3)指定单元写二、二、AT24C02存储器的软硬件设计存储器的软硬件设计1
4、. AT24C021. AT24C02简简介介AT24C02是美国ATMEL公司的低功耗CMOS串行EEPROM,它内含2568位存储空间 图13-3 AT24C02SCL:串行时钟线。这是一个输入管脚,用于形成器件所有数据发送或接收的时钟。 SDA:串行数据/地址线。它是一个双向传输线,用于传送地址和所有数据的发送或接收。它是一个漏极开路端,因此要求接一个上拉电阻到Vcc端(速率为100KHz时电阻为10K,400KHz时为1K)。对于一般的数据传输,仅在SCL为低电平期间SDA才允许变化。SCL为高电平期间,留给开始信号(START)和停止信号(STOP)。A0、A1、A2:器件地址输入端
5、。这些输入端用于多个器件级联时设置器件地址,当这些脚悬空时默认值为0(CAT24WC01除外)。WP:写保护。如果WP管脚连接到VCC,所有的内容都被写保护(只能读)。当WP管脚连接到VSS或悬空,允许对器件进行正常的读/写操作。VCC:电源线。VSS:地线。 2. AT24C02写操作写操作(1)字节写)字节写(2)页写)页写图13-5 页写时序(3)应答查询)应答查询如果AT24C02/04/08/16 正在进行内部写操作,不会发送应答信号。如果AT24C02/04/08/16 已经完成了内部自写周期,将发送一个应答信号,主器件可以继续进行下一次读写操作。(4)写保护)写保护当WP管脚接高
6、电平时,整个寄存器区全部被保护起来而变为只可读取。3. AT24C02读操作读操作(1)立即地址读 (2)选择读 (3)连续读。 图13-7 选择读时序4. 24C02应用举例应用举例例例13.1 利用单片机将数据串“0x7e,0xbd,0xdb,0xe7,0xdb,0xbd,0x7e,0xff”写入AT24C02,然后依次将其读出并送P0口和P2进行显示。试用C语言编写程序,并用Proteus仿真。 解:解: 硬件仿真设计如图13-9所示,其所需元件如表13-1所列。图图13-9 AT24C02读写原理图和仿真效果图读写原理图和仿真效果图一、一、SPI总线简介总线简介SPI总线又称为同步串行
7、外设接口,是一种符合工业标准、全双工、三线或四线通信方式的总线系统。它允许MCU与各种外围设备以串行方式进行通信。在SPI接口中,数据的传输需要一条时钟线,一条数据线和一条控制线(有些芯片需要两条控制线)。SPI可以工作在主模式下或从模式下。在主模式下每位数据发送/接收需要一个时钟周期。第二节第二节 SPI总线及其应用总线及其应用二、二、DS1302实时时钟芯片实时时钟芯片1DS1302的主要性能指标的主要性能指标(1)DS1302实时时钟具有能计算2100年之前的秒、分、时、日、日期、星期、月、年的能力,还有闰年调整的能力。(2)内部含有31个字节静态RAM,可提供用户访问。(3)采用串行数
8、据传送方式,使得管脚数量最少,简单3 线接口。(4)工作电压范围宽:2.05.5V。(5)工作电流:2.0V时,小于300nA。(6)时钟或RAM数据的读/写有两种传送方式:单字节传送和多字节传送方式。(7)采用8脚DIP封装或SOIC封装。(8)与TTL兼容,Vcc=5V。(9)可选工业级温度范围:-40C+85C。(10)具有涓流充电能力。(11)采用主电源和备份电源双电源供应。(12)备份电源可由电池或大容量电容实现。2引脚功能引脚功能DS1302的引脚如图13-10所示。 其中:X1、X2:32.768KHz晶振接入引脚。GND:地。RST:复位引脚,低电平有效。I/O:数据输入/输出
9、引脚,具有三态功能。SCLK:串行时钟输入引脚。Vcc1:工作电源引脚。Vcc2:备用电源引脚。图13-10 DS1302引脚图3DS1302的寄存器及片内的寄存器及片内RAMDS1302有一个控制寄存器、12个日历、时钟寄存器和31个RAM。(1)控制寄存器)控制寄存器表13-2 日历、时钟寄存器的选择(2)日历、时钟寄存器)日历、时钟寄存器表13-3 日历、时钟寄存器的格式DS1302共有12个寄存器,其中有7个与日历、时钟相关,存放的数据为BCD码形式。 数据都以BCD码形式。 小时寄存器的D7位为12小时制/24小时制的选择位,当为1时选12小时制,当为0时选24小时制。当12小时制时
10、,D5位为1是上午,D5位为0是下午,D4为小时的十位。当24小时制时,D5、D4位为小时的十位。 秒寄存器中的CH位为时钟暂停位,当为1时钟暂停,为0时钟开始启动。 写保护寄存器中的WP为写保护位,当WP=1,写保护,当WP=0未写保护,当对日历、时钟寄存器或片内RAM进行写时WP应清零,当对日历、时钟寄存器或片内RAM进行读时WP一般置1。 慢充电寄存器的TCS位为控制慢充电的选择,当它为1010才能使慢充电工作。DS为二极管选择位。DS为01选择一个二极管,DS为10选择二个二极管,DS为11或00充电器被禁止,与TCS无关。RS用于选择连接在VCC2与VCC1之间的电阻,RS为00,充
11、电器被禁止,与TCS无关,电阻选择情况见表.13-4所列。表13-4 RS对电阻的选择RS位位电电阻器阻器阻阻值值00无无无无01R12K10R24K11R38K(3) 片内片内RAMDS1302 片内有31个RAM单元,对片内RAM的操作有两种方式:单字节方式和多字节方式。当控制命令字为C0HFDH时为单字节读写方式,命令字中的D5D1用于选择对应的RAM单元,其中奇数为读操作,偶数为写操作。当控制命令字为FEH、FFH时为多字节操作(表13-2中的RAM突发模式),多字节操作可一次把所有的RAM单元内容进行读写。FEH为写操作,FFH为读操作。(4)DS1302的的输输入入输输出出过过程程
12、DS1302通过 引脚驱动输入输出过程,当置高电平启动输入输出过程,在SCLK时钟的控制下,首先把控制命令字写入DS1302的控制寄存器,其次根据写入的控制命令字,依次读写内部寄存器或片内RAM单元的数据,对于日历、时钟寄存器,根据控制命令字,一次可以读写一个日历、时钟寄存器,也可以一次读写8个字节,对所有的日历、时钟寄存器(表13-2中的时钟突发模式),写的控制命令字为0BEH,读的控制命令字为0BFH;对于片内RAM单元,根据控制命令字,一次可读写一个字节,一次也可读写31个字节。当数据读写完后,变为低电平结束输入输出过程。无论是命令字还是数据,一个字节传送时都是低位在前,高位在后,每一位
13、的读写发生在时钟的上升沿。 4. DS1302应用举例应用举例例例13.2 利用DS1302设计一个数字时钟,通过8位共阳数码管将时分秒显示出来。试用C语言编写程序,并用Proteus仿真。 解:解: 硬件仿真设计如图13-11所示,其所需元件如表13-5所列。图图13-11 DS1302数字时钟原理图和仿真效果图数字时钟原理图和仿真效果图第三节第三节 单总线温度传感器单总线温度传感器DS18B20一、一、DS18B20简介简介DS18B20数字温度计是DALLAS公司生产的1Wire,即单总线器件 1DS18B20产品的特点产品的特点 (1)只要求一个端口即可实现通信。 (2)在DS18B2
14、0中的每个器件上都有独一无二的序列号。 (3)实际应用中不需要外部任何元器件即可实现测温。 (4)测量温度范围在55。C到125。C之间。 (5)数字温度计的分辨率用户可以从9位到12位选择。 (6)内部有温度上、下限告警设置。 2DS18B20的引脚介的引脚介绍绍 图图13-12 DS18B20各种封装引脚图各种封装引脚图表13-6DS18B20详细引脚功能描述引脚名引脚名称称引脚功能描述引脚功能描述GND地信号地信号DQ数据数据输输入入/输输出引脚。开漏出引脚。开漏单总单总线线接口引脚。当被用着在寄生接口引脚。当被用着在寄生电电源下,也可以向器件提供源下,也可以向器件提供电电源。源。VDD
15、可可选择选择的的VDD引脚。当工作于寄引脚。当工作于寄生生电电源源时时,此引脚必,此引脚必须须接地。接地。3 DS18B20的内部结构的内部结构图13-13 DS18B20内部结构MSB LSB表13-7 配置寄存器与分辨率关系表R0R1温度温度计计分分辨率辨率/bit最大最大转换转换时间时间/ms00993.750110187.510113751112750高速暂存器是一个9字节的存储器,分配如下:4DS18B20的使用方法的使用方法 (1)DS18B20复位时序复位时序图13-14 DS18B20的复位时序(2)DS18B20的读时序的读时序 图13-15 DS18B20的读时序(3) D
16、S18B20的写时序的写时序 图13-16 DS18B20的写时序二、二、DS18B20应用举例应用举例例例13.3 利用DS18B20设计一个温度计,通过LCD1602间接方式将当前温度显示出来。试用C语言编写程序,并用Proteus仿真。 解:解: 硬件仿真设计如图13-17所示,其所需元件如表13-9所列。图图13-17 基于基于DS18B20数字温数字温度计硬件度计硬件设计和仿设计和仿真效果图真效果图1三种串行总线的特点分别是什么?2I2C总线芯片还有哪些?3分别画出例13-1例13-3程序流程图。4例13-3中数字温度计如果采用数码管显示, 试编写其程序。5参考本章例13-2和13-3,利用DS1302和DS18B20 设计一个带有日历功能的测温计,并通过LCD1602同时显示当前时间和温度?习习 题题OVER !