温度传感器DS75LX与PIC单片机的接口设计
1 概述
本文引用地址:http://www.amcfsurvey.com/article/172202.htmDS75LX是一款高精度的串行数字输出型温度传感器,测量的温度数据可通过两线串行总线(与I2C总线兼容)输出。DS75LX工作电压为1.7 V到3.7 V。除了基本的测温功能外,DS75LX还具有温度报警功能,允许用户通过软件设置报警温度的门限值。DS75LX测温范围为-55℃~+125℃,当测温范围为-25℃~+100℃时,测量精度为±2℃。DS75LX同时具有可编程的9至12位的温度数据输出格式。输出的温度数据为12位时,其分辨率可达0.0625℃。该传感器具有三个地址引脚,可设置为三种状态中的任意一种:接GND、VDD,或悬空,可设置27种地址组合。例如A2、A1和A0分别为接电源、接地和悬空时,DS75LX的器件地址为0101110。图1是DS75LX的引脚排列,各功能描述如表1所示。
DS75LX通过一个能隙带温度感知体系结构来实现温度测量。片上△-∑模数转换器将所测的环境温度直接转换成数字量并存储在温度寄存器中。DS75LX一上电就开始测量温度,用户可通过软件设置配置寄存器的内容以满足自身的测量要求。DS75LX除了基本的温度测量外还具有温度报警模块。与温度报警模块相关的两个寄存器分别为报警门限寄存器Tos和温度迟滞寄存器Thyst。该模块可配置为两种工作模式:比较器模式和中断模式。在比较器模式时只要被测温度在连续1、2、4或6次测量的结果均高于Tos中的值,O.S.引脚触发并按照配置寄存器中的POL位的值输出特定电平,此时与Thyst中的设定值无关;而在中断模式时只要被测的温度在连续1、2、4或6次温度测量的结果均高于Tos中的值或低于Thyst中的值时触发O.S.引脚,输出特定电平。 DS75LX的内部结构主要是由地址、I/O口控制单元、精确参考源、采样调节器和可访问寄存器等组成。对于用户来说,只需了解DS75LX的地址、I/O口控制单元和可访问寄存器即可,因为DS75LX的所有操作均是通过串行I/O口读写可访问寄存器来实现的。 3.1 DS75LX的配置寄存器 DS75LX的配置寄存器如表2所示,该寄存器可读/写,允许用户选择不同功能。这些功能包括报警输出类型、温度测量分辨率等。 3.2 DS75LX的可访问寄存器 DS75LX有4个用户可访问寄存器,分别为温度寄存器、配置寄存器、温度迟滞寄存器和报警门限寄存器。其中温度寄存器为只读寄存器,用于存取测量的环境温度数据,报警门限寄存器和温度迟滞寄存器均为可渎/写寄存器,用于提供用户可编程的报警温度值。如果环境温度漂移超出编程设定值则温度报警引脚输出报警信号。 3.3 寄存器指针 寄存器指针是向用户提供所要访问寄存器地址,寄存器指针的内容即为可访问寄存器地址。由于DS75LX内部只含有4个可访问寄存器,因此寄存器指针的内容只有低两位(P1、P0)有效,当访问某个寄存器时,必须确保寄存器指针已指向该寄存器。P1和P0的值与可访问寄存器对应关系如表3所示。 DS75LX将测量的温度转换为16位二进制补码形式并存储在两个字节的温度寄存器中。最高位是符号位,为0时表示测量的温度在0℃以上,反之,所测的温度在0℃以下。而低字节的低4位无用,其值为0。当DS75LX输出的温度数据为12位即DS75LX具有12位分辨率时,温度寄存器的位15至位4为有效的温度数据。同理,当分辨率分别为11、10、和9位时,对应的有效温度数据分别是温度寄存器的位15至位5、位15至位6和位15至位7。 3.5 两线串行总线 DX75LX的读写操作是通过两线串行总线接口实现的,该串行总线与I2C总线兼容。图2所示为读温度及温度门限寄存器的时序图。此时假定寄存器指针已指向温度寄存器,否则需要对指针进行设置。设置方法如下:主器件产生起始位、发送包含DS75LX地址的写命令、收到应答、发送寄存器指针字节。注意只有指针字节的低两位(P1、P0位)有效。 DS75LX与PIC单片机的硬件接口电路很简单,如图3所示。由于PIC16F737具有I2C总线接口,只需将两者的时钟和数据引脚对应相连,无论时钟还是数据线都必须通过上拉电阻与电源相连。本文假定DS75LX的三个地址输入引脚都接地,此时DS75LX的地址为1001000。 软件设计部分包括DS75LX与PIC单片机的初始化程序,读温度数据子程序等,限于篇幅以下给出PIC单片机读取DS75LX输出的温度数据的子程序。该子程序对应的时序见图2。采用C语言编程,编译器为PICC编程环境MPLAB IDE。该程序既可用查询方式也可用中断方式实现,本文利用查询中断标志SSPIF实现,具体程序代码如下: 6 结束语 本文主要介绍数字温度传感器DS75LX的工作原理以及与单片机的接口设计。DS75LX具有测量精度高、分辨率可调等特点。DS75LX的片选引脚具有三态输入,在同样数量的地址引脚情况下,与其他同类器件相比,DS75LX具有更多的地址组合可用,因此非常适用于多点温度测量系统。同时DS75LX的两线串行接口简化了与单片机的硬件接口设计。DS75LX体积小巧,可广泛应用在小型基站、路由器、服务器及便携式温度计。
2 DS75LX的工作原理
3 DS75LX的内部结构
该寄存器各位的含义说明:最高位为保留位,该位读出值为0;R1和R0位的取值决定了DS75LX输出的温度数据的位数。当R1和R0分别为00、01、10、或11时,DS75LX输出温度有效数据分别为9、10、11或12位;F1和F0位的值决定了触发O.S.引脚所需要进行的连续温度测量次数。当F1和F0分别为00、01、10、11时对应的连续温度测量次数为1、2、4和6次;POL位的值决定了O.S.引脚触发时为高电平还是低电平。当POL=0时O.S.引脚触发时输出低电平,POL值为1时0.S.引脚触发时输出高电平;TM=0时温度报警模块工作在比较器模式,TM=1时温度报警模块工作在中断模式;SD=1时DS75LX处于关断模式,此时DS75LX不进行温度采集,SD=0时,DS75LX处于正常工作状态。该配置寄存器的各位上电时均为0。
3.4 输出的温度数据格式
5 软件设计
评论