摘要:数字温度传感器因其低成本、易使用、无需校准等特点近年来得到广泛应用,其中以ds18b20为代表。目前常用的数字温度传感器与传统的铂温度传感器相比,测量精度还不够高。本文介绍的tsic系列的精度可达到±0.07℃,并且具有长期稳定性。
引言
tsic是ist(innovativesensortechnology)公司单总线温度传感器ic的注册商标。tsic产品系列由集成芯片和已校准的温度传感器组成,内部集成了用于模拟或数字信号输出的信号转换器。tsic系列的测量精度为±0.5~±0.07℃,是目前精度*的数字温度传感器ic,优于diny(1/3dinb)铂传感器的精度。信号分辨率为0.1~0.004℃。tsic不仅有出色的精度,而且具有长期稳定性。ist公司还提供tsic的精度范嗣偏移定制校准服务。
tsic系列有标准0~1v模拟电压输出、比例10%~90%v+电压输出和11位数字信号输出3种方式,用户可根据自己的需求选择适用的型号。tsic的低功耗(典型值为30μa)使其非常适合移动应用。tsic还有无需校准、转换速度快(100ms)和易使用等优点。
1、计算公式和通信协议
1.1tsic输出信号的计算公式
◆数字输出:t=(digital_signal/2047×(ht~lt)+lt)℃
◆模拟输出信号:t=(sig[volt]×(ht-lt)+lt)℃
◆比例输出信号:t=((sig[v]/vdd[v]-0.1)/0.8×(ht-lt)+lt)℃
不同的型号有不同的lt和ht,例如精度±0.1℃的tsic50x,其lt=-10,ht=60。
1.2用于tsic的zacwire通信协议
zacwire是一种单线双向通信协议。位编码类似于时钟信号嵌入数据信号中的曼彻斯特编码(信号的下降沿以固定周期产生)。这样协议对两个ic之间通信时波特率的差异就很不敏感。
在终端用户应用中,tsic传送温度信息,另一个ic(通常是mcu)通过zacwire读温度数据。
tsic发送长度为1字节的数据包。这些包由1个起始位、8个数据位和一个奇偶校验位组成。常用的波特率是8kbps(125μs位宽)。信号的常态是高电平。当传输开始,起始信号发生,紧接着是数据位(先高后低),包的结尾是偶校验位。zacwire数据包如图1所示。
tsic提供11位分辨率的温度数据,11位数据不能在单个包中传递。一个来自tsic的完整温度数据包由2个包组成。第1个包包含高3位温度信息,第2个包包含低8位温度信息。在第1个传输包的末端和第2个传输包的开始之间有一个宽度为二分之一信号位宽的高信号,即停止位。来自tsic的全zacwire温度数据包如图2所示。
zacwire的位格式是占空比编码。起始位:50%占空比,用于设置闸门时间。逻辑1:75%占空比。逻辑0:25%占空比。停止位:信号高电平,持续半位宽度时间。在包中的字节之间有一个半停止位时间。zacwire位编码时序如图3所示。
2、硬件设计
图4是某个应用中与tsic相关部分的电路图。
图中温度传感器u2的图标借用了晶体管的图标,该设计兼容ds18b20和tsic,如果使用tsic则不接r2。引脚2是数据线,引脚3是传感器的电源。
传感器的电源没有直接接到vcc,原因如下:mcu可以用中断方式或查询方式读tsic的数据。当连接zacwire信号到mcu的引脚时,能够在起始位的下降沿引发一个中断,使mcu转向中断服务程序isr。当使用查询方式时,mcu必须发起读温度操作,这可以用mcu的一个引脚提供电源到tsic来实现。当mcu要读温度时,该引脚首先给tsic供电,大约65~85ms后它将收到一个温度数据包。这种开关tsic的方法有额外的好处,就像掉电模式,可以将静态电流从通常的45μa减小到0。
tsic是一种混合信号ic,需要低噪声供电。通过mcu的引脚供电易受mcu电源的数字噪声的影响,因此要在mcu的供电引脚加一个rc滤波器,即图4中的r1和c,c尽可能接近tsicv+和地。
在装配时要特别注意安装工艺会影响精度。sop-8封装适用于pcb自动组装,但是回流焊工艺会影响已校准的精度。为了用这种封装实现高精度,ist公司提供组装后的校准。在小批量应用中应选用to92封装,使用冷连接工艺安装。to92封装还可以装在不锈钢探头中。
为tsic提供电源的mcu引脚要由一个强cmos推挽驱动器来驱动,图4中用p3.5为tsic供电。stc11l16xe是可以选择端口工作模式的,可以将p3.5配置为强推挽输出模式。经实验zacwire线用普通的8051端口就可以。
3、软件设计
3.1怎样读包
测量起始位下降沿和上升沿之间的时间,该时间(tstrobe)就是选通时间,其宽度为位宽度(bitwindow)的一半。再等待一个tstrobe的时间,即在下一个下降沿,开始采样zacwire信号。因为每个位都以一个下降沿开始,所以每个位的采样窗口都会复位。这意味着从起始位开始的比特流将不会发生误差。
建议当捕获起始位时,zacwire信号的采样率至少为正常波特率的16倍。因为正常波特率是8khz,当捕获tstrobe时要求zui小128khz的采样速率。
当起始位的下降沿产生时,它引发mcu进入一个计数循环,递增一个内存位置,直到看见zacwire信号的上升沿。该计数值就是tstrobe。在获得tstrobe后,mcu就可以简单地等待下面9个下降沿(8个用于数据,1个用于奇偶校验)。在每个下降沿之后,mcu等待tstrobe期满,然后采样下一个位。
下面给出一个tsic506的应用例子,使用其他型号的传感器时测量范围和计算公式需要调整。
3.28051c语言代码
代码使用查询方式读tsic数据。代码中对于选通时间并没有进行测量,而是用延时函数估计。延时函数delay_10us是用逻辑分析仪对stc11l16xe标定的,使用其他mcu需要重新标定。
4、结语
tsic温度传感器与其他单总线温度传感器相比,具有精度高、测量范围宽、同等分辨率下转换速度快、操作简单、支持模拟输出等优点。tsic与铂传感器相比,在校准范围内精度可以更高。tsic系列温度传感器ic具有*的性价比,在需要高精度测温的场合具有良好的应用前景。