微控制器和1-Wire温度传感器的软件接口
扫描二维码
随时随地手机看文章
1-Wire(一线制)数字温度传感器
DALLAS公司产的1-Wire(一线制)数字温度传感器己被广泛应用于各工业控制与捡测的设备仪器之中,但如何应嵌入与连接在系统之术是设计人员所关切的技术问题。
DSl8B20、DS18C20或DSl822是业内更高精度(0。5℃)的1-Wire多点数字温度传感器,其特点是:
*具有1-Wire数字接口
*唯一的64位序列号
*宽广的温度测量范围为-55℃至+125℃
*具有非易失用户(2字节EEPROM)可编程触发点的过热告警
*测量分辨率可由用户配置为9至12位
*封装形式包括TO-92,150mil8脚SOIC和倒装片
DSl8x20或DSl822温度传感器内部结构图见图0所示。
目前有数种方法,可将1-Wire器件,如DSl8B20、DSl822或DSl8S20与微控制器接口。这些方法包括:从简单的软件方案,到串行接口芯片,如DS2480及Dallas1-WireASIC即(将经过整合的半导体超高规模集成电路硬件描述语言1-Wire主控器制造成专用集成电路)等。本文陈述了一种简单的软件解决方案,可实现微控制器和任意个数的DSl8x20或DSl822温度传感器之间的1-Wire通信。
硬件配置
图1的框图说明了在采用多个1-Wire温度传感器时,该硬件配置很简单。一线制(1-Wire)总线向所有的器件既提供通信连接,又提供工作电源。总线电源经由一个连接于3V至5.5V电源端的4.7kf2上拉电阻提供。由于每个器件具有唯一的64位ROM识别码,所以挂接在总线上的1-Wire器件数量几乎不受限制。多个1-Wire温度传感器通过1-Wire总线与采用DS5000(与MCS-8051单片机兼容)的微控制器相接口。
接口时序
与DSl8x20/DSl822的通信,通过操作时隙完成1-Wire总线上的数据传输。每个通信周期起始于微控制器发出复位脉冲,其后紧跟DSl8x20/DSl822发出的应答脉冲,如图2所示。
当主机将1-Wire总线从逻辑高(空闲状态)拉为逻辑低时,即启动一个写时隙。所有的写时隙必须在60s至120s(见图360s
读时隙起始于微处理器将总线拉低1s,接着释放总线,这样DSl8x20/DSl822就能够接管总线,输出有效数据(高或低)。所有读时隙在60s至120s完成,且在每个循环之间至少需要1s的恢复时间(图3)。
软件控制
为了精确地控制1-Wire接口的特殊时序要求,必须先建立几个关键的函数。第一个函数应该是延时函数,它是所有读和写控制的组成部分。这个函数完全依赖于微处理器的速度。为了更好地理解,值此以DS5000(与8051兼容)微控制器(工作时钟11.059MHz)为例。图4列举了一个用于创建时间延时的C(C语言)原型函数。
由于每个通信周期起始于微处理器发出的复位脉冲,因而复位函数(见图5)是下一个最为重要的函数。复位时隙为480s。首先以参数3,接着以参数25分别调用延时函数数,将产生所要求的复位脉冲,紧接着复位之后微处理器释放总线,以便DSl8x20/DSl822通过拉低总线来指示其是否在线。如果多个温度传感器在此总线上,它们将同时发出应答脉冲。
读和写函数实例如图6、7、8和9所示,提供了所有读/写数据位和字节操作的基本结构。
结束语
以上是新型多点1-wire数字温度传感器与微控制器软件接口简易的设计方案,经过多路温度巡迥监控系统在现场采集与检测使用,其特点是具有较高的性能比,即程式简单、检测准确、使用方便可靠。