第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处 于高电平期间把能量储存在内部电容里,在信号线处于低电平期间消耗电 容上的电能,直到高电平到来再给寄生电源(电容)充电