VHDL语言编写DS18B20温度传感器程序详解

DS18B20 (1) 先将数据线置高电平“1”。(2) 延时(该时间要求的不是很严格,但是尽可能的短一点)。(3) 数据线拉到低电平“0”。(4) 延时490微秒(该时间的时间范围可以从480到960微秒)。(5) 数据线拉到高电平“1”。(6) 延时等待(如果初始化成功则在15到60毫秒时间之内产生一个由DS18B20所返回的低电平“0”。据该状态可以来确定它的存在,但是应注意不能无限的进行等待,不然会使程序进入死循环,所以要进行超时控制)。 阅读详情

        网上关于DS18B20的资料很多,但是光有程序,没有讲解,导致身边很多同学即使拿到源码也无从下手,故写此篇文章,一方面接收DB18B20,一方结合原理详细讲解源码的意义。

器件原理:

原理图:

        基本上所有的重要信息都在这张图上啦。很独特的一个点就是数据输入输出是共用一个管脚DQ的。
对于唯一的数据口,需要一定的执行顺讯:

执行序列


如图,每一次操作都必须满足上述顺序,若是缺少或者混乱,器件将不会返回值。

    初始化:

       通过单总线的所有执行操作处理都从一个初始化序列开始。初始化序列包括一个从总线控制器发出的复位脉冲和其后由从机发出的存在脉冲,存在脉冲让总线控制器知道DB18B20存在且已经做好操作准备。

    ROM指令:

       这里采用单从机模式(只有一个DB18B20),只挑取几个比较重要的指令做以说明

      READ ROM[33h](读取ROM指令):

         只有在总线上存在单只DS18B20的时候才能使用这条命令。该命令允许总线控制器在不使用搜索ROM指令的情况下读取从机的64位片序列码。如果总线上有不止一只从机,当所有从机试图同时传送信号时就会发生数据冲突。

       SKIP ROM[CCh](忽略ROM指令) :     

          这条指令允许总线控制器不用提供64位ROM编码就是用功能指令。例如,总线控制器可以先发出一条忽略ROM指令,然后发出温度转换指令[44h],从而完成温度转换操作。注意:当只有一直从机在总线上时,无论如何,忽略ROM指令之后只能跟着发出一条读取暂存器指令[BEh]。

        功能指令:

        在总线控制器发给欲连接的DS18B20一条ROM指令后,跟着可以发送一条DS18B20功能指令。这些命令允许总线控制器读写DS18B20的暂存器,发起温度转换和识别电源模式。

       CONVERT T[44h](温度转换指令):

          这条命令用以启动一次温度转换。温度转换指令被执行,产生的温度转换结果数据以2个字节的形式被存储在告诉暂存器中,而后DS18B20保存等待状态。如果DS18B20以外部电源供电,总线控制器在发出该命令后跟着发出读时序,DS18B20如果处于转换中,将在总线上返回0,若温度转换完成,则返回1。

        READ SCRATCHPAD(读取暂存器指令): 

        这条命令读取暂存器的内容。读取将从字节0开始,一直进行下去,直到第9字节(字节8)读完,如果不想读完所有字节,控制器可以在任何时间发出复位命令来终止读取。


时序:

        时序对于器件来说是很重要的,如果时序不对,器件就不能正常工作。 

      复位序列:复位和存在脉冲:

        和DS18B20间 的任何通讯都需要以初始化序列开始。一个复位脉冲跟着一个存在脉冲表明DS18B20已经准备好发送和接收数据。在初始化序列期间,总线控制器拉低总线并保持480us以发出(TX)一个复位脉冲,然后释放总线,进入接受状态(RX)。单总线由5K上拉电阻拉倒高
基于FPGA与DS18B20温度传感器的通信实现 本设计使用VHDL语言实现温度传感器的驱动,并通过数码管显示。下面有完整代码及注释介绍 阅读详情

相关推荐

DS18B20温度传感器的VHDL读写程序设计与实现

DS18B20由美国Maxim Integrated生产,其核心是一个可编程分辨率的温度传感器。它能将温度值转换成数字信号,通过单一的数据线(加上地线和可选的电源线)与控制器或其他设备通信,这种通信方式被称为1-Wire协议。DS18B20的高精度能够检测到0.0625℃的变化,并且具有±0.5℃的精度,适合在-55℃至+125℃的温度范围内测量。1-Wire协议,又称单总线协议,是由Maxim Integrated开发的一种串行通信协议。

weixin_42527589的博客 1388

VHDL实现DS18B20温度传感器控制项目

VHDL,即VHSIC Hardware Description Language(超高速集成电路硬件描述语言),诞生于1980年代,起初由美国国防部推动以缩短复杂系统设计周期。VHDL不仅能够描述硬件结构,还可以描述其行为和功能。DS18B20温度传感器采用数字输出形式,其核心是利用硅材料的固有属性进行温度测量。硅的带隙电压会随温度变化而变化,DS18B20利用这种变化来转换成数字信号,以提供精确的温度读数。

weixin_36001279的博客 898

基于VHDL的DS18B20温度传感器数码管显示项目设计

DS18B20 的通信流程遵循严格的 1-Wire 协议,主要包括初始化、ROM 命令、功能命令三个阶段。1-Wire的数据传输以位为单位进行,每个位的读写操作都有严格的时序限制。操作描述时间要求(μs)写0主机拉低总线60~120写1主机释放总线1~15(拉高)读位主机拉低后释放1~15后读取完整的初始化模块应具有以下接口:信号名方向说明clk输入主时钟reset输入。

weixin_36178216的博客 714

FPGA实现DS18B20温度传感器控制与显示

数据采集流程包括初始化DS18B20设备,发送温度转换命令,等待转换完成,然后读取温度数据。这一流程需要精确的时序控制,确保数据的准确采集。

weixin_33375360的博客 1346

FPGA驱动DS18B20温度传感器的Verilog实现

FPGA(Field-Programmable Gate Array)是一种可以通过编程来配置的半导体设备,它包含大量可重配置的逻辑块和互连,允许工程师实现自定义的数字电路设计。与传统的专用集成电路(ASIC)相比,FPGA提供更高的灵活性和较低的设计成本,非常适合原型设计、小批量生产,以及需要快速迭代设计的应用。FPGA的设计和编程通常依赖于硬件描述语言(HDL),其中最流行的两种语言是Verilog和VHDL。

weixin_28988985的博客 1409

FPGA与DS18B20传感器通信实现教程

现场可编程门阵列(Field Programmable Gate Array, FPGA)是一种可以通过编程来实现特定逻辑功能的集成电路。与传统的ASIC(Application Specific Integrated Circuit)相比,FPGA具备高度的可编程性,允许开发者在硬件层面实现自定义的数字逻辑,并且能够快速迭代更新设计。因其灵活性和开发周期短等优势,在通信、工业自动化、图像处理、数据存储以及军事等领域广泛使用。

weixin_36487018的博客 1300

FPGA驱动DS18B20温度传感器:单总线协议状态机实现详解

温度传感器是工业与嵌入式系统中最常见的感知器件之一,而FPGA以其并行性和确定性时序控制能力,在高速或高可靠性场景中承担着传感器接口设计的关键角色。单总线协议(1-Wire)仅需一根数据线即可完成双向通信,但其微秒级时序窗口对软件实时性要求苛刻,容易因系统调度抖动导致读写失败。通过VHDL状态机将DS18B20的复位、写时隙、读时隙等操作映射为精确的计数器比较逻辑,可实现完全不依赖CPU干预的确定性时序。本文从单总线协议原理出发,讲解FPGA状态机拆分方法、分频与三态门控制、CRC校验及仿真调试路径,并给出

weixin_28703489的博客 197

通过VHDL编程实现FPGA芯片与DS18B20温度传感器的数据传输

通过VHDL编程实现FPGA芯片与DS18B20温度传感器的数据传输

DS18B20_基于VHDL的温度传感器读写程序_

基于VHDL语言的温度传感器读写程序,可以做成模块集成到主程序中,用于芯片式温度传感器DS18B20.

高温环境下RS485通信故障分析与MOS管解决方案

RS485通信作为工业控制领域的基础总线技术,其可靠性直接影响系统稳定性。在高温等恶劣环境下,传统三极管开关电路会因温度特性导致通信故障。通过分析三极管Ube电压随温度变化的特性,揭示了电路失效的物理原理。相比之下,MOS管作为电压控制型器件,具有温度稳定性好、功耗低等优势,更适合工业环境应用。本文通过一个发动机舱内RS485通信故障的实际案例,详细对比了三极管与MOS管在高温环境下的性能差异,并给出了具体的电路改进方案。该案例对工业通信接口设计具有普遍参考价值,特别适用于需要应对高温、振动等挑战性环境的硬

weixin_42612405的博客 406

自适应粒子群优化(Adaptive Particle Swarm Optimization,APSO

下面是一个关于自适应粒子群优化(Adaptive Particle Swarm Optimization,APSO)的博客,希望可以帮助您。提示:以下是本篇文章正文内容,下面案例可供参考在上面的代码中,表示粒子的数量,表示解空间的维度,表示迭代次数,表示优化的目标函数。在__init__方法中,我们初始化了粒子群的位置和速度,并将每个粒子的位置作为其最优解,将其适应度值初始化为正无穷。我们还初始化了学习因子和惯性权重的参数。在run方法中,我们迭代了次,计算每个粒子的适应度值和最优解。

weixin_52026057的博客 9916

从实验室到生产线:Qwen3-Omni后训练技术在实际业务中的落地挑战

本文探讨了Qwen3-Omni后训练技术在实际业务中的落地挑战,重点分析了多模态AI在工业应用中的关键问题与解决方案。通过金融风控、跨境电商等场景案例,揭示了通用模型与垂直需求的矛盾,并提供了知识蒸馏、语音合成优化等实战经验,助力企业实现技术到业务的转化。

weixin_29035147的博客 267

Linux虚拟机mysql安装教程(详细步骤)出现了一个错误:依赖检测失败

Linux虚拟机安装mysql的详细步骤(有报错预警哦)

m0_74953387的博客 5258

MySQL下载和安装教程

1.下载MySQL数据库可以访问官方网站:https://www.mysql.com/ 2.点击DOWNLOADS模块下的Community模块下的MySQL Community Server进行下载。 由于目前最新版本是:MySQL Community Server 5.7.21 建议博友下载历史版本,本博下载的是5.6.39 下载步骤: 进入,选择MySQL的版本及主机 根据自己的电脑选择相应的位数进行下载,本机是64位,点击download。 进入下.

残雪的剑的博客 4万+

【模型解读】【代码复现】Segment Anything Model(SAM)

Meta AI的一个新的人工智能模型,只需一次点击就能 "分割出 "任何图像中的任何物体! SAM是一个可提示的分割系统,对不熟悉的物体和图像具有zero-shot的概括性,并且不需要额外的训练。

lalula的博客 2万+

【问题解决】解决 Python `PermissionError` 权限不足:文件/进程/端口全场景修复

本文总结了Python程序中常见的权限问题及解决方案,包括文件、进程和端口权限错误。文件权限问题通常由文件占用、权限不足或路径错误引起;进程问题多因权限不足或系统限制;端口问题则与端口占用、防火墙或特权端口相关。解决方案提供了详细的代码实现:文件权限管理器类(FilePermissionManager)包含检查权限(check_permission)、修复权限(fix_permission)、安全写入(safe_write)和安全删除(safe_delete)等方法,通过异常处理和临时文件等技术确保操作安全

博客 359

锂电池寿命预测 | Pytorch实现基于Transformer 的锂电池寿命预测(NASA数据集)

锂电池寿命预测 | Pytorch实现基于Transformer 的锂电池寿命预测(NASA数据集)

算法如诗的博客 5588

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

上一篇: 如何解决谷歌浏览器不加载Adobe Flash Player的问题
下一篇: 【红白游戏机】关于单片机与上位机保持同波特率的理解
Stack_mz
博客等级 码龄11年 53粉丝 27原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值