关键词:测温;一线芯片;DS1822
一线总线芯片是美国Dallas Semiconductor公司推出的系列产品。这是一种用一根信号线与一根返回线来实现互连通信的集成电路芯片。采用这种芯片构成的微型局域网系统具有建网速度快、成本低的特点,非常适合现场应用。一线数字温度计(1-Wire Digital Thermometer)芯片DS1822就是Dallas公司推出的系列一线总线产品之一,它支持Dallas触摸接口,遵循一线协议,并可以与处理器进行双向数字通信,同时性价比也很高,是一种使用起来非常方便的经济型温度传感器。
1 引脚功能及内部结构
DS1822的外形封装如图1所示。
其中(a)是采用3引脚TO-92的封装形式;(b)是采用8引脚SOIC的封装形式;(c)是采用6引脚TSOC的封装形式;GND为电源地;VDD为外接供电电源输入端(采用寄生电源方式时接地);DQ为数字信号输入/输出端;NC为空脚。
DS1822内部电路的核心是一个直接数字输出的温度传感器。它可将-55~125℃ 范围内的温度值按9位、10位、11位、12位的分辨率进行量化,且以上的分辨率都包括一个符号位,因此对应的温度量化值分别是0.5℃、0.25℃、0.125℃、0.0625℃,即最高分辨率为0.0625℃,工作电压范围为3.0~5.5V。每一片DS1822都有一个唯一的且不可改写的ROM ID标识码(电子序列号),在实际应用中可以通过指令方便地进行查询。
DS1822的内部结构如图2所示。
2 DS1822的基本操作指令
DS1820的操作指令分为ROM操作指令和存储器操作指令。
2.1 ROM操作指令及其功能说明
Read ROM指令(代码为33h):如果总线上只有一片DS1822,则允许总线主机读取DS1822的序列号,若在线DS1822多于一个时,它们将同时发送ID,这样就会出现数据冲突。
Match ROM指令(代码为55h):多个DS1822在线时,主机可用此命令匹配一个给定序列号的DS1822,此后的命令就针对该DS1822。该命令适用于单节点和多节点两种场合。
Skip ROM指令(代码为CCh):该命令用在单节点总线系统中可以节省时间,这时主机不需发送64位ROM ID就能直接访问芯片的RAM存储器。
Search ROM指令(代码为F0h):用以读取在线的DS1822的序列号。
Alarm Search指令(代码为ECh):当检测到温度超出所规定的门限值时,此命令可以读出报警的DS1822。
2.2 存储器操作指令及其功能说明
Write Scratchpad指令(代码为4Eh):将温度报警上限值与下限值分别写入DS1822便笺式存储器的TH与TL字节中。
Read Scratchpad指令(代码为BEh):读取便笺式寄存器中的温度值。
Copy Scratchpad指令(代码为48h):将便笺式存储器TH/TL中的内容复制到SRAM中,保证温度值不丢失。
Convert T指令(代码为44h):启动在线DS1822做温度A/D转换。
Recall SRAM指令(代码为B8h):利用该指令可以将存储在SRAM中的温度报警触发值回读到便笺式存储器中。上电时DS1822会自动执行一次回读操作,以保证器件上电后便笺式存储器中的数据是有效的。
Read Power Supply指令(代码为B4h):如果主机在发出该命令后再输出读时隙,那么,器件就会送出它所使用的电源信息:其中“0”为寄生电源;“1”为外部电源。
3 DS1822的测温原理
用DS1822一线式数字温度芯片测量温度的原理如图3所示。它没有采用传统的A/D转换原理,如逐次逼近法、双积分式和算术A/D等,而是运用了一种将温度直接转换为频率的时钟计数法,计数时钟由温度系数很低的振荡器产生,因而非常稳定;而计数的闸门周期则由温度系数很高(即对温度非常敏感)的振荡器来决定。
计数器中的预置值以-55℃时的计数值为基准,在闸门开放计数期间,每当计数值达到0,则温度寄存器就加1,温度寄存器中的预置值也以-55℃的测量值为基准。同时计数器的预置值还与斜坡累加器电路有关,该电路用于补偿振荡器对温度的抛物线特性,因此还要用时钟脉冲针对这个非线形校正预置值作计数操作,直至计数值达到0为止,如果此时闸门还未关闭,则再重复计数过程。斜坡累加器补偿了振荡器对温度的非线形特性,从而可以获得较高的温度测量分辨率,改变相对于测温量化级的计数量大小即可获得不同的分辨率。
4 DS1822一线总线的接口电路
DS1822的总线接口电路如图4所示,其中图(a)为使用寄生电源的接法,即通过总线给DS1822供电,图(b)为采用外接电源的接法。
从两种接法来看,DS1822测量温度时无需外接元件,电路简单。DS1822的工作电流为1.5mA。应当注意:当温度高于100℃时,不能使用寄生电源,因为此时器件中较大的漏电流会使总线不能可靠检测高低电平,从而导致数据传输误码率的增大。
5 DS1822的测温过程
在测温时对DS1822进行操作的步骤如下:
⑴ 初始化(Read ROM指令,代码33h),每次对DS1820进行操作之前都要对其进行初始化,主要目的在于确定温度传感器是否已经连接到单总线上。
(2) 查找DS1822(Search ROM指令,代码F0h),该指令可使处理器通过排除法来辨别总线上的DS1822。
(3)匹配DS1822(Match ROM指令,代码55h),只有完全符合64位ROM序列的DS1822才能响应其后的指令,当然,单点测温时可以使用Skip ROM(CCh)指令来跳过这一步。
(4)发送温度转换指令(Convert T指令 代码44h),发送该指令后应查询总线上的电平,当电平为高时,温度转换完成。
(5)读取温度值(Read Scratchpad指令 代码BEh),将该指令发出后,就可从总线上读取表示温度的两字节的二进制数。
整个测温过程中的第4、5步才是DS1822进行测温并将结果进行数字化转换和输出的过程。DS1822接收到转换命令(44h)将立刻实施温度转换并将结果存储到16位便笺式存储器中,数据格式为符号位扩展的二进制补码,然后用读便笺式存储器命令(BEh)将所得数据顺序置于总线上,最低位在前,最高位定义为符号位以表示温度的正负。DS1822温度与数字输出典型值的对照表如表1所列。
表1 DS1822温度与数字输出的典型值
温度(℃) | 数字输出(二进制) | 数字输出(十六进制) |
+125 | 0000 0111 11011 0000 | 07D0 |
+85 | 0000 0101 0101 0000 | 0550 |
+25.625 | 0000 0001 1001 0001 | 0191 |
+10.125 | 0000 0000 1010 0010 | 00A2 |
+0.5 | 0000 0000 0000 1000 | 0008 |
0 | 0000 0000 0000 0000 | 0000 |
-0.5 | 1111 1111 1111 1000 | FFF8 |
-10.125 | 1111 1111 0101 1110 | FF5E |
-25.0625 | 1111 1110 0110 1111 | FE6F |
-55 | 1111 1100 1001 0000 | FC90 |
6 DS1822的报警操作
DS1822完成温度转换之后,其温度值将和TH与TL中存储的触发门限值相比较,由于这两个阈值只有8位,因此比较时测量值中相应的几个低位将被忽略,TH和TL中的最高位直接对应16位温度存储器中的符号位。如果比较的结果表明测量值高于TH中设定的上限温度值或低于TL中设定的下限温度值,则设置报警标志,该标志每次测量温度时都要进行更新。一旦报警标志设置后,器件就会响应主机发出的报警搜索命令,这种处理方式使得并接的多个DS1822可以同时实现温度测量。如果某些点上的温度超过设定的阈值,则这些报警的器件就能被及时识别出来,主机不必一个一个地读取,比较判断哪些是越界报警的器件。
7 DS1822中的存储器
DS1822的存储器结构如表2所列。它由9个字节的便笺式存储器和3个易失性SRAM组成,便笺式存储器方便了一线系统的数据传输。通常情况下,首先用写便笺式存储器命令(4Eh)写入数据,然后用读便笺式存储器命令(BEh)进行校验,最后通过复制便笺式存储器命令(48h)将该数据写入SRAM。
表2 DS1822D的存储器结构
便笺式存储器 | SRAM | |
0 | 温度高位字节 | 无 |
1 | 温度高位字节 | 无 |
2 | TH/用户字节1 | TH/用户字节1 |
3 | TL/用户字节2 | TL/用户字节2 |
4 | 配置 | 配置 |
5 | 保留 | |
6 | 保留 | |
7 | 保留 | 无 |
8 | CRC |
表3 有关转换参数设置对应表
R1R0 | 分辨率(位) | 最大转换时间(毫秒) |
00 | 9 | 93.75 |
01 | 10 | 187.5 |
10 | 11 | 375 |
11 | 12 | 750 |
便笺式存储器由9个字节组成,第0、1字节存放温度测量值;第2、3字节用于高、低门限设置;第4字节是配置存储器;第5、6、7字节保留而未使用,读取时各位均为1;第8字节可通过读便笺式存储器命令读出,用于存放前8个字节的CRC校验值。易失性SRAM主要用于复制,每次上电时它们都会被刷新。
而便笺式存储器第4字节的配置存储器主要用于设置温度的测量分辨率,该字节的数据格式如图5所示。其中bit7读时总为0,bit4~bit0读时总为1,写入时这些位的取值可以是任意的。由图5可知该配置寄存器实际上只用了bit6与bit5两位,用以定义分辨率和转换时间,其对应关系如表3所列,上电时的默认分辨率为12位,但转换速率最低。由该表还可以看出,当分辨率提高1位时,转换速率成倍下降,这在实际应用中是需要考虑的,必须根据实际需要来权衡分辨率与速率之间的关系。
8 DS1822的应用电路
由DS1822与DZT-512单总线温度巡检仪组成的测温电路如图6所示,通过DZT-512单总线温度巡检仪就可对单总线上所有的DS1822进行数据采集、并完成显示及报警设定,读写数据距离达600米,DS1822经RS232口与DZT-512相连,将温度数据送入计算机进行分析处理。从图中可看出,由DS1822组成的测温系统具有布线结构简单、可靠性高、成本低的特点。
9 结束语
单总线技术以其线路简单、硬件开销小、成本低廉、软件设计简单等优势有着无可比拟的应用前景。基于单总线技术的DS1822在未来的测温领域中必将得到广泛的应用。