0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于DS18B20温度传感器和EPIC6Q240C8N实现温度采集系统的设计

电子设计 来源:科技与创新 作者:王景中 , 冯祎 2021-03-19 16:39 次阅读

引言

温度测量在现代工业生产过程中发挥着重要的作用,无论对于大型企业还是众多的小型工厂,往往需要监测多个设备的几十个温度值。在分布式温度采集系统中.通常采用单片机作为系统的控制器。系统T作时依次采集每一个探测器的温度值并存储。如果监测到某个探测点的温度有异常。系统就会根据用户的需要做出相应的反映。然而.当监测点数量很多时,单片机轮流地采集完每一个监测点的温度值会花费相对较长的时间,如果这个过程中有某个测量点温度异常将不能实时地反映到系统中.使得温度采集系统的实时性降低。

现场可编程门阵列(FPGA)是美国Xilinx公司在20世纪80年代中期率先推出的一种高密度可编程逻辑器件.它既具有PLD可编程的灵活性,又有掩膜门阵列(GA)高集成度和通用性,单片FPGA的集成规模已达到几百万门.其工作频率已超过300MHz。本文以FPGA作为分布式温度采集系统的控制器。与以往利用单片机作为控制器的系统相比。提高了系统整体的实时性和稳定性。

1 温度传感器及其通信协议

本系统中温度传感器采用的MAXIM公司的1-wire器件DS18B20.DS18B20温度传感器由于其结构简单、安装方便、功耗低、测温范围宽而被广泛的应用于化工、粮食、环境监测等需要实现多点测温的地方:1-Wire技术采用一根信号线进行双向数据传输.一个控制器可以控制一个或多个从机设备与其他标准串行数据通信方式如SPI、I2C相比.单总线具有节省系统I/O口线资源、结构简单、成本低廉、便于总线扩展和维护等诸多优点。

由于1-Wire总线只有一根信号线.所以要完成通信就要在一根信号线上实现数据的双向传输。1-Wire通信协议对时序的要求非常严格。协议中一共规定了五种类型的通信时序,分别为初始化(复位)时序、写“1”时序、写“0”时序、读“1”时序和读“0”时序.如图1所示。所有通信都由这五种典型时序组合完成.就是说要控制好这五种时序.才能实现对1-Wire器件的控制。

基于DS18B20温度传感器和EPIC6Q240C8N实现温度采集系统的设计

图1单总线通信协议时序图

2 实时分布式温度采集系统设计

大多数基于DS18B20的温度采集系统采用单片机作为控制器.可以监测多个温度点的温度。虽然监测点的数目可以很多。但是却无法做到同时对每一个监测点进行监测。原因在于单片机在一个时间周期只能执行一条指令,无法实现并行的动作了。然而采用FPGA作为控制器将大大提升温度监测系统的实时性,FPGA的动作是由时钟来驱动的,因此可以在同一时钟可完成多个动作。FPGA可以并行地处理数据,这是单片机无法做到的。本文设计的温度监测系统就是利用了FPGA的这个优势.实现了对多个监测点实时进行监测。

2.1系统硬件设计存器

FPGA选用Altera公司主流Cyclone系列高性价比的EPIC6Q240C8N。测温系统的原理图如图2所示,由FPGA、显示部分、按键部分和采集部分组成。虽然单总线允许在总线上挂载多个1-wire器件并实现多点控制,但这样却无法同时对每一个1-wire器件实现控制。所以本系统的采集部分使每个DS18B20都单独享有一条总线,每条总线都与FPGA的一个I/O口相连。系统选用的FPGA一共有240个管脚,不算电源和配置管脚,可用的I/O管脚达到了179个,除去显示和按键部分所用的I/O管脚,理论上还可以挂载百个DS18B20。

按键部分的设计提供人机交互,可以设定最低温度警告数值和最高温度警告数值,通过按键可以浏览每一个温度点的测量值。显示部分负责显示每一个测量点的标号和对应的温度值。FPGA负责控制温度的采集,并将每一个测量点的温度与设定好的最低温度和最高温度进行实时比较,一旦监测点的温度超标将立刻发出警报提示。

图2 测温系统原理图

2.2 软件编程设计

本系统是连续实时采集温度的.所以需要有一个核心控制部分来实现对DS18B20发送复位、温度转换和温度读取指令的功能。控制部分采用有限状态机来实现,状态与状态之间的转换需要一定的转移条件,这个转移条件可以是一个定义的信号量,当信号量的数值改变时,状态机就通过信号量的数值来决定转换到哪一个状态。

根据有限状态机与温度采集控制器的对应关系.可以参照控制器的操作控制步来确定有限状态机的状态。设发送复位指令的状态值为“000”.发送跳过ROM指令的状态值为“001”.发送转换温度指令的状态值为“01l”.发送读取暂存指令的状态值为“101”.读取温度数据的状态值为“100”。状态机的状态都确定以后。便做出有限状态机状态转移图,如图3所示。

图3温度采集控制部分的MDS图

根据以上的分析,接下来用VHDL语言编写描述有限状态机功能的程序。程序使用两个进程来描述有限状态机的功能:state_transfer进程用来描述有限状态机中的次态逻辑和状态寄存器.通过CASE语句,根据次态逻辑值实现状态值的改变;output_logic进程用来描述有限状态机中的输出逻辑,通过IF语句判断状态值然后转入相应的指令程序。

3 基于FPGA与基于单片机控制DS18B20

3.1 保证时序精确

单片机作为基于DS18B20的温度监控系统的控制器,用汇编语言编写程序,很容易控制时间,因为我们知道每条语句的执行时间,每段宏的执行时间,每段子程序加调用语句所消耗的时间。但是当系统进入中断,时序的控制就无法保证精确。

3.2 查找序列号

单片机的管脚有限,所以要用单片机检测多个温度点,就需要将多个DS18B20挂在一条总线上。很显然,序列号许配工作需要额外的时间,而且在读取一个测温点温度值的过程中,其它的测温点也都完成了测温并等待读取,这无疑降低了测温的效率。

用FPGA代替单片机,以上问题就不存在了。首先FPGA具有丰富的管脚资源,可以让每个传感器都单独使用一根数据线。这样不但可以实现同时读取每一个传感器的温度值,而且可以不用进行序列号的匹配。大大提高了整个系统测温的效率,维护更加方便快捷。

3.3 成本考虑

单片机技术如今已经非常成熟。应用领域也非常广泛.价钱也非常便宜。普通的型号价格在l美元左右,最高端的型号也只有10美元。因此用单片机作为控制器.整体系统的成本相对较低。虽然FPGA如今也已经得到了广泛的普及,但是价格还是相对较高,因此用FPGA作为系统的控制器威本就相对高一些。

4 结论

使用FPGA作为DS18B20的控制器.可以保证时序上精确符合单总线通信协议.系统运行时控制部分、显示部分、人机交互部分可以并行地运行互不干扰,提高了整体系统的实时性与稳定性:与用单片机作为控制器的系统做出比较.分析了两者作为控制器的优缺点。

基于FPGA和DS18B20的分布式温度采集系统.可实现同时监测多个温度点,并无需知道每一个传感器的序列号,大大提高了温度采集系统的实时性和可靠性。虽然基于FPGA的系统成本相对较高.但为分布式温度采集实时性要求较高的应用场合提出了解决办法。

本文创新点:基于FPGA和DS18B20的分布式温度采集系统,可以实现同时监测多个检测点的温度,并无需知道每一个传感器的序列号,大大提高了温度采集系统的实时性和可靠性。为分布式温度采集实时性要求较高的应用场合提出了解决办法。项目经济效益:硬件成本约6000元,推广价格约8500元。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1629

    文章

    21729

    浏览量

    603007
  • 温度传感器
    +关注

    关注

    48

    文章

    2940

    浏览量

    156020
  • 总线
    +关注

    关注

    10

    文章

    2878

    浏览量

    88052
收藏 人收藏

    评论

    相关推荐

    基于STM32的DS18B20温度传感器设计

    DS18B20内置了64位产品序列号,方便识别身份,在一根线上可以挂接多个DS18B20传感器,通过64位身份验证,可以分别读取来至不同传感器采集
    的头像 发表于 03-07 11:44 1.3w次阅读
    基于STM32的<b class='flag-5'>DS18B20</b><b class='flag-5'>温度</b><b class='flag-5'>传感器</b>设计

    基于DS18B20数字温度传感器的设计方案

    的工作状态,DS18B20温度传感器内置温度上下限;  (4)编写C51程序,完成单片机对温度
    发表于 11-12 16:30

    DS18B20温度传感器是什么

    的EEPROM,精度降低为±2°C,适用于对性能要求不高,成本控制严格的应用,是经济型产品。 继“一线总线”的早期产品后,DS1820开辟了温度传感器技术的新概念。
    发表于 04-27 08:14

    DS18B20温度传感器实验

    单片机驱动DS18B20温度传感器实现温度的串口打印显示,本实验中STM32基于HAL库开发。本文全程记录实验过
    发表于 08-18 07:44

    新型温度传感器DS18B20高精度测温的实现

    介绍了一种数字式的温度传感器DS18B20, 提出了一种基于89C2051 的测温电路及软件框图在内的实现方法。关键词 数字式
    发表于 07-03 10:14 62次下载

    基于PC机的DS18B20温度采集系统

    本文简要介绍了温度传感器DS18B20 的特性及工作原理,给出了DS18B20 与单片机、单片机与PC 机间的接线图,并介绍了如何实现
    发表于 09-10 16:20 161次下载

    数字温度传感器DS18B20的设计及应用

    数字温度传感器DS18B20的设计及应用 1引言 DS18B20是DALLAS公司生产的一线式数字温度
    发表于 04-02 18:00 2821次阅读
    数字<b class='flag-5'>温度</b><b class='flag-5'>传感器</b><b class='flag-5'>DS18B20</b>的设计及应用

    DS18B20完成温度检测的技巧

    介绍了DS18B20 温度传感器 的结构和特点以及用DS18B20温度传感器进行
    发表于 08-23 10:44 190次下载
    <b class='flag-5'>DS18B20</b>完成<b class='flag-5'>温度</b>检测的技巧

    基于ARM和DS18B20温度监测系统

    基于ARM和DS18B20温度监测系统使用SAMSUNG公司的32位ARM微控制S3C2440作为数据
    发表于 11-03 11:21 339次下载

    温度传感器DS18B20

    温度传感器DS18B20 51例程,亲测可用
    发表于 06-14 15:36 20次下载

    智能温度传感器DS18B20的原理与应用

    DS18B20是DALLAS公司生产的单线数字温度传感器,他具有独特的单线总线接口方式。文章详细的介绍了单线数字温度传感器
    发表于 10-11 18:19 49次下载

    DS18B20温度传感器温度程序和驱动以及案例实现资料说明

    本文档的的主要内容详细介绍的是DS18B20温度传感器温度程序和驱动以及案例实现资料说明,本文件包含整个
    发表于 04-09 08:00 1次下载
    <b class='flag-5'>DS18B20</b><b class='flag-5'>温度</b><b class='flag-5'>传感器</b>的<b class='flag-5'>温度</b>程序和驱动以及案例<b class='flag-5'>实现</b>资料说明

    ds18b20的特性_ds18b20温度传感器应用

    本文首先介绍了ds18b20的特性,其次介绍了DS18B20工作原理,最后介绍了ds18b20温度传感器应用。
    发表于 04-24 09:10 1.1w次阅读
    <b class='flag-5'>ds18b20</b>的特性_<b class='flag-5'>ds18b20</b><b class='flag-5'>温度</b><b class='flag-5'>传感器</b>应用

    ds18b20温度传感器是什么类型

    DS18B20温度传感器是一种数字温度传感器,它属于单总线(One-Wire)数字温度
    的头像 发表于 09-03 16:46 975次阅读

    ds18b20温度传感器如何使用

    Devices的一部分)生产的数字温度传感器。它能够提供9位至12位的温度测量数据,具有高精度和可编程分辨率。DS18B20温度测量范围
    的头像 发表于 09-03 16:51 642次阅读