第12章单片机的其他接口 重点:SPI通信协议、常见芯片的使用、现场总线 难点:SPI通信协议、总线协议 学时:2 12.1单片机与数字温度传感器DS18B20的接口 数字温度传感器是在20世纪90年代中期问世的。它是微电子技术、 计算机技术和自动测试技术的结晶。数字温度传感器内部都包含有温度传 感器、AD转换器、信号处理器、存储器(或寄存器)和接口电路。有的 产品还带多路选通器、CPU、RAM和ROM。进入21世纪后,数字温度传 感器正朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟 传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展。 较早期的数字温度传感器采用的是8位A/D转换器,其测温精度较低,分 辨率只能达到1℃。目前,国内外己相继推出多种高精度、高分辨率的数字 温度传感器,所用的是9-12位AD转换器,分辨率一般可达0.5~0.0625℃。 由美国Dallas半导体公司新研制的DS1624高分辨率数字温度传感器,能输 出13位二进制数据,其分辨率高达0.03125℃,测温精度为士0.2℃。为了提 高多通道数字温度传感器的转换速率,也有的芯片采用高速逐次逼近式AD 转换器。如AD7817型5通道数字温度传感器,对本地传感器、远程传感 器的转换时间分别仅为9μs、27us。 新型数字温度传感器的测试功能也在不断增强。例如DS1629单线数字 温度传感器增加了实时日历时钟(RTC),使其功能更加完善。DS1624还 增加了存储功能,利用芯片内部256字节的E2PROM存储器,可存储用户 的短信息。另外,数字温度传感器正从单通道向多通道的方向发展,这就
为研制和开发多路温度测控系统创造了良好条件。数字温度传感器的总线 技术也实现了标准化、规范化,所采用的总线主要有单线总线、2C总线 SMBus总线和SPI总线。下面以DS18B20为例来说明数字温度传感器的使 用方法。 1.DS18B20的主要特性 DS18B20是美国Dallas半导体公司生产的单总线数字温度传感器芯 片,测量温度范围为-55C~+125℃,可编程9-~12位AD转换精度,测量 分辨率可达到0.0625℃,在-10+85C范围内,精度为+0.5℃。现场温度 直接以单总线的数字方式传输,大大提高了系统的抗干扰能力,适合于恶 劣环境的现场温度测量。DS18B20通过单总线发送或接收信息,因此在CPU 和DS18B20之间仅需一条连线。电源可从数据线本身获得,无需外部电源。 由于每个DS18B20都有一个独特的片序列号,所以多只DS18B20可以同时 连在一根单总线上。DS18B20的特性如下: (1)采用单总线技术,无须经过其它变换电路,直接输出被测温度值。独 特的单线接口,只需1个接口引脚即可实现与CPU的双向通信: (2)支持多点组网功能,可实现多个DS18B20的并联使用: (3)供电电压范围为3.0V~5.5V,在寄生电源方式下可由数据线供电,不 需要外部元件: (4)温度测量范围从-55至+125℃,在-10一+85℃范围内,精度为0.5C: (5)编程可实现分辨率为9~12位,对应的可分辨温度为0.5C、0.25℃、 0.125C、0.0625C: (6)9位分辨率时温度转换成数值需要93.75s,在12位分辨率时温度 转换成数值需要750ms:
(7)用户可分别设定各路温度的上、下限: (8)内含64位经过激光修正的只读存储器ROM 2.DS18B20的内部结构 DS18B20采用3脚T0-92小体积封装或8脚S0IC封装,其引脚如图所 示。 NC- VDD- -GND GND DO VDD (a)T0-92封装 (b)SOIC封装 DQ:数字信号输入输出端: GND:电源地: VDD:为外接供电电源输入端(在寄生电源接线方式时接地)。 DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非 易失性温度报警触发器TH和TL、配置寄存器。其内部结构图如图所 示。 ←存储器和控制逻辑 →温皮传感各 内VDD ←上限触发m GND →下限触发 VDD← 电源检测 8位CRC产生器 光刻ROM中存放的是64位序列号,出厂前已经被光刻好,可以看作是该 BS18B20的地址序列号。不同的器件地址序列号不同,这样就可以实现一 根总线上挂接多个DS18B20的月的。 高速缓存由9个字节组成,第0个和第1个字节存放转换所得的温度值
第2和第3个字节分别为高温触发器TH和低温触发器TL,第4个字节为 配置寄存器,第5、6、7字节保留,第8字节为CRC校验寄存器 高温度触发器和低温度触发器分别存放温度报警的上限值TH和下限值 TL。在DS1820完成温度变换之后,温度值与贮存在TH和TL内的触发 值相比较。因为这些寄存器仅仅是8位,所以0.5℃在比较时被忽略。TH或 TL的最高有效位对应于16位温度寄存器的符号位。如果温度测量的结果 高于TH或低于TL,那么器件内告警标志将置位。每次温度测量将更新此 标志。只要告警标志置位。DS1820就对告警搜所命令作出响应。 配置寄存器用于确定温度值的数字转换分辨率,该字节最高位D7为测试 位,用于设置DS18B20是工作模式还是测试模式,出厂时该位被设置成0 即工作模式,用户一般不需要改动。D6和D5用来设置分辨率,如表所示。 其余各位均为1。 温度分辨率设置 D6D5分率 最人转换时间/s 0 0 93.75 10 1875 11 275.0 1 12 750.0 CRC校验寄存器存放的是前8个字节的CRC校验码。 3.DS18B20的温度转换 DS18B20的测温原理如图所示
斜奉紫加器 预置 比较 低温度系数振荡器 计数器1 预咒 0增加温度寄存器 高温度系数振荡器 计数器2 停止 0日 图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率 的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡率明显改变, 所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在-55 ℃所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行 减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器 1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信 号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累 加,此时温度寄存器中的数值即为所测温度。斜率累加器用于补偿和修正 测温过程中的非线性,其输出用于修正计数器1的预置值。 4.DS18B20与单片机的接口 DS18B20可采用外部电源供电,也可采用内部寄生电源供电。可单点 连接形成单点测温系统,也能多片连接组网形成多点测温系统。如图所示, 在寄生电源供电方式下,DS18B20从信号线上汲取能量,在信号线DQ处 于高电平期间把能量储存在内部电容里,在信号线处于低电平期间消耗电 容上的电能,直到高电平到来再给寄生电源(电容)充电
7K9 GND 寄生电源方式进行远距离测温时无需本地电源,可以在没有常规电源 的条件下读取ROM,电路更加简洁,仅用一根VO口线来实现测温。要想 使DS18B20进行精确的温度转换,I/O口线必须保证在温度转换期间提供 足够的能量,由于每个DS18B20在温度转换期间工作电流高达1mA,当几 个温度传感器挂在同一根/O线上进行多点测温时,只靠4.7KΩ上拉电阻 就无法提供足够的能量,会造成无法转换温度或温度误差极大。因此,此 电路只适应于单一温度传感器测温情况下使用,不适宜采用电池供电系统 中。并且工作电源VCC必须保证在5V,当电源电压下降时,寄生电源能 够汲取的能量也降低,会使温度误差变大。改进的寄生电源供电方式如图 所示。 图中,为了使DS18B20在动态转换周期中获得足够的电流,当进行温 度转换或拷贝到E2PROM存储器时,用MOSFET管把I/O线直接拉到VCC 就可提供足够的电流,在发出任何涉及拷贝到E2PROM存储器或启动温度 转换的指令后,必须在最多10us内把VO线转换到强上拉状态。在强上拉 方式下可以解决电流供应不足的问题,因此也适合于多点测温应用,缺点 就是要多占用一根VO口线进行强上拉切换
单片机外部电源供电方式,DS18B20工作电源由VCC引脚接入,此时DQ 线不需要强上拉,不存在电源电流不足的问题,可以保证转换精度,同时 在总线上理论可以挂接任意多个DS18B20传感器,组成多点测温系统。在 外部供电的方式下,DS18B20的GND引脚不能悬空,否则不能转换温度, 读取的温度总是85℃。外部电源供电方式是DS18B20最佳的工作方式,工 作稳定可靠,抗干扰能力强,而且电路也比较简单,可以开发出稳定可靠 的多点温度监控系统。 PL.X 12.2单片机与时钟芯片DS1302的接口 DS1302是美国Dallas半导体公司推出的涓流充电时钟芯片,内含一个 实时时钟/日历和31字节静态RAM,通过简单的串行接口与单片机进行通 信。实时时钟日历电路提供秒、分、时、日、日期、月、年的信息,每月 的天数和闰年的天数可自动调整,时钟操作可通过AMPM指示决定采用 24或12小时格式。DS1302与单片机之间能简单地采用同步串行的方式进 行通信,仅需用复位、数据线和串行时钟三个口线。时钟RAM的读/写数 据以一个字节或多达31个字节的字符组方式通信。DS1302工作时功耗很 低,保持数据和时钟信息时功率小于1mW。 DS1302具有能计算2100年之前的秒、分、时、日、日期、星期、月 和年的能力,还有闰年调整的能力。串行VO口方式使得管脚数最少,简单 3线接口,与TTL电平相兼容(VCC=5V):工作电压2.0-5.5V,在2.0V时
电流小于300nA。 1.引脚及功能 DS1302采用8脚DIP封装或8脚SOIC封装,其引脚如图12.7所示,内 部逻辑结构如图12.8所示。 GND 图12.7DS1302的引脚 32.784 比源控制 振荡器与分狮器 GND 实时时钟 !输入移位寄存器←→道信与控制爱辑 31*8RAM 图12.7DS1302的内部逻辑结构 X1、X2:32.768KHz晶振管脚: I/O:数据输入/输出引脚 SCLK:串行时钟输入线: RST:复位脚: VCC1、VCC2:主电源、备用电源引脚,当VCC2>VCC1+0.2V时,有VCC2 向DS1302供电,当VCC2<VCC1时,由VCC1向DS1302供电: GND:电源地 2.内部寄存器 DS1302日历、时钟寄存器及其控制字如表所示
DS1302有关日历、时间的寄存器共有12个,读时为81H~8DH,存放 的数据格式为BCD形式。其中小时寄存器(84H、85H)的位7用于定义 DS1302运行在12小时模式还是24小时模式。当为1时,选择12小时模 式。在12小时模式时,位5为1表示PM。在24小时模式时,位5是第二 个10小时位。秒寄存器(80H、81H)的位7定义为时钟暂停标志(CH): 当该位置1时,时钟振荡器停止,DS1302处于低功耗状态,当该位为0时, 时钟开始运行。 控制寄存器(8EH、8FH)的位7是写保护(WP),其他7位均置为0, 在对时钟和RAM写操作之前,WP位必须为O,当WP位为1时,写保护 位防止对任意寄存器的写操作。 3.DS1302的读写时序 DS1302是SPI总线驱动,它不仅要向寄存器写入控制字,还需要读取 相应寄存器的数据。控制字从最低位开始输入,其后的下一个SCLK时钟 的上升沿时,数据被写入DS1302。数据输出也从最低位开始,同样在紧跟 8位控制字指令后的下一个SCLK脉冲的下降沿,读出DS1302的数据,读 出的数据也是从最低位到最高位,数据读写时序如图所示。 cw几U几几几U几几几几几几几几几几几 1 -IIMIAIIAIAIAIRCID@-@@-⑥@@-@-@ (a)读时序 sciR几几U几几几n几L 1O A0AIA2A3LA4TRCD1ODI113D5117 ()读时序 3.DS1302与单片机的接口 DS1302与单片机的接口电路如图所示
9+ MCS-51 327682 K23 GND RST 12.3单片机与红外通信模块TSOP18XX的接口 1.性能与特点 TSOP18xx系列是Temic公司推出的一体化红外线接收模块,集红外线 接收、放大、解调于一体,不需要任何外接元件,就能完成从红外线接收 到输出与TTL电平信号兼容的所有工作:而体积只有普通三极管大小一样, 适合各种红外线遥控和红外线数据传输,其传输距离大于4米。其外形如 图12.10所示,内部结构框图如图所示。 控制环路 自动增益控制 带通滤波器 解调器 PN为光敏二极管,工作时加有反向电压,没有光照时,其反向电阻很 大,只有很微弱的反向饱和电流。当有光照时,就会产生很大的反向电流, 光照越强,电流就越大。 自动增益控制放大器是输出限幅装置的一种,是利用线性放大和压缩