基于数字温度传感器实现单总线测温系统的设计

引言
单总线技术是美国dallas公司的一项专有技术,采用单根信号线传输数据,具有节省i/o口资源、结构简单、成本低、便于总线扩展和维护等诸多优点。单总线技术适用于单个主机系统控制一个或多个从机设备。dallas公司的单总线产品中均有一个8字节只读存储器(rom),用于存放产品的序列号(每个芯片唯一的64位标识代码)。如图1所示,从低位起第一个字节(8位)是器件的家族代码,表示产品的分类;接下来的6个字节(48位)是每个器件唯一的id号;最后一个字节(8位)是前56位的crc校验码。同一种类型的器件有248个id号码总量,确保了在总线上不会产生地址冲突。
传统的基于单总线的测温系统采用rom搜索的方式在线识别挂接在总线上器件的注册码和器件的类型,由此可在线确定总线上的器件数量。但是,随着挂接在总线上的单总线器件增加,搜索rom的时间也随之增加,系统开销增大。基于此,本设计采用支持菊链模式的新型数字温度传感器芯片ds28ea00组建单总线测温网络。该方案无需进行传统的rom搜索步骤,允许用户将器件在链路中的物理位置与序列号对应,节省了ram开销,简化了基于单总线的应用设计。
1、 ds28ea00特性分析
ds28ea00是具有9位(0.5℃)至12位(0.062 5℃)分辨率和用户可编程非易失性(nv)上/下触发点报警功能的数字温度计。每个ds28ea 00都有工厂编程的唯一64位序列号。ds28ea00具有滞回和干扰滤波功能,使其能够在大的单总线网络中可靠工作。与其他单总线器件(例如ds18b20)不同,ds28ea00具有两个额外的引脚用以执行顺序检测功能。该特性允许用户将器件在链路中的物理位置与序列号对应,例如用来测量储存塔不同高度处的温度。如果无需顺序检测功能,这些引脚可作为通用输入或输出。
2 、基于ds28ea00的测温系统的硬件连接
采用ds28ea00的单总线测温系统硬件连接图如图2所示,主控制器采用51系列单片机,通过一个通用i/o口与单总线器件ds28ea00连接。与dallas其他的数字温度传感器不同,ds28ea00具有两个额外的引脚pioa和piob。其中,除了连接在总线上的第一个ds28ea00的piob接地外,其他每一个器件的pioa均与下一个器件的piob相连接,最后一个ds28eaoo的pioa悬空或接地,所有的ds28ea00采用菊链的方式互连在一起。微控制器的其他部分连接输入设备、输出设备和通信接口。
3、 单总线菊链模式下的顺序检测分析
如表1所列,在菊链模式连接方式下,ds28ea00有3种工作状态:off、on和done。这3种状态的转换由chain command命令控制。当接通电源后,总线上所有的ds28ea00均处于off状态,在该状态下顺序检测rom命令“conditional read rom”不起作用。当处于on状态时,如果ds28ea00的piob引脚处于低电平状态,那么它将响应“conditional read rom”命令,发送自己的rom序列号。当发送完成后,该ds28ea00将处于down状态,不再响应“conditional read rom“命令,并将自己的pioa引脚置“0”电平,使得下一个ds28ea00继续响应“conditional read rom”命令,发送自己的rom序列号,直到连接在单总线上的最后一个ds28eaoo。当微控制器把所有ds28ea00的序列号都读到后,发送chain down命令,使得总线上挂接的所有ds28ea00均回复到off状态。如此,便完成了对总线上所有ds28ea00的rom检测,并且是按照顺序一个一个检测的,这使得检测的序列号与器件在链路中的物理位置相对应。如图3所示,主控制器采用chain command命令可以使ds28ea00在3种状态间切换,当发送chain command命令后,主控制器必须接着往总线上先写入一个字符的命令码,然后把该命令码以反码的形式再写入一遍。3个命令码3ch、5ah、96h分别对应状态off、on和down。如果菊链状态改变成功,则微控制器收到字符aah,否则收到ooh。
4 、基于ds28ea00的测温系统的软件设计
菊链状态下利用ds28ea00进行多点测温的程序流程如图4所示,测温主要分为下面几步:
①首先,单片机通过i/o口发送skip rom命令,同时向多个ds28ea00发送信号,接在skip rom命令后,发送chain on命令,使得所有的ds28ea00均处在on状态,此时所有从器件的pioa/piob引脚都是高电平状态除了总线网络中的第一个ds28ea00,它的piob是接地的。
②主控制器发送conditional read rom命令,此时菊链网络中的第一个ds28ea00将响应此命令,并发送自己的64位rom序列号,当主控制器接收到序列号后,接着发送chain done命令,把第一个ds28ea00置为down状态,并且使其pioa脚输出低电平,由于状态变为down,第一个ds28ea00将不再响应conditionalread rom命令。
③主控制器继续发送conditional read rom命令,此时由于第二个ds28ea00的piob脚被置低电平,所以将响应该条命令,并发送自己的64位rom序列号,当主控制器接收到序列号后,继续发送chain done命令,把第二个ds28ea00也置为down状态,并且使其pioa脚输出低电平,将选通第三个ds28ea00。
④主控制器将重复的执行conditional read rom命令,直到总线上所有的ds28ea00都完成发送rom序列号。
⑤主控制器通过发送skip rom命令和chain off命令结束顺序检测操作。
⑥主控制器根据读到的ds28ea00序列号,向指定的ds28ea00读取温度值。
以下为部分测温的源程序,编程环境是keil c。
5 、小结
本文介绍了一种基于ds28ea00的单总线测温系统的设计方案。采用dallas公司生产的支持菊连模式的数字温度传感器ds28ea00作为基本测温元件,重点分析了菊连模式下的顺序检测过程,给出了硬件连接图及软件流程。采用该方案无需进行传统的rom序列号搜索步骤,节省了ram开销,简化了基于单总线测温的设计。


6J8P帘栅极输入胆前级的工作原理及特征
数控机床日常维护保养
基于MSP430单片机的地下微水检测系统设计
晶闸管投切电容器的原理是什么(三)
工厂远程运维组网方案,助力实现智能局域网
基于数字温度传感器实现单总线测温系统的设计
华硕ZenFone6在西班牙发布 搭载骁龙855移动平台
5G物联网时代是5G通信光模块的曙光?
反激电源变压器的CCM和BCM模式讲解
低压电器元件的选型原则
长三角CCX·流量谷推介会圆满落幕,开启服务业数字化应用新篇章
锂离子电池核壳结构硅基负极材料的结构设计与如何选择
科学家在二维超分子的开发上达到了一个新的里程碑
5G技术以其特有优势成为了世界各国争相布局的产业高地
手机屏幕测试用大电流弹片微针模组可大大提高测试效率
iphone8什么时候上市?iphone8最新消息:iPhone 8新功能曝光!支持无线充电+防水
如何检测端子线的电阻率,方法是怎样的
40种无线通信传输技术及其频率分配
prbtek分享品致N1015B高精度差分探头产品说明书
深度解析苹果dToF激光雷达模组技术