目录

项目:项目(含quartus工程、仿真文件)

1. 单总线通信时序详解

1.1 初始化(复位脉冲 + 存在脉冲)

1.2 写时隙(写“0”和写“1”)

1.3 读时隙

2. DS18B20 暂存器与温度数据格式

2.1 暂存器结构

2.2 温度数据格式(16位补码)

2.3 常用 ROM 命令

3. 温度读取工作流程

3.1 状态机流程(ds18b20_driver.v)

3.2 数据处理流程(data_process.v)

4. 系统框架结构

4.1 顶层模块(sys_top.v)

4.2 模块功能说明

4.3 数据流图

总结


项目:项目(含quartus工程、仿真文件)

1. 单总线通信时序详解

DS18B20 采用单总线(1-Wire)协议进行通信,所有操作都通过一根数据线(DQ)完成,包括初始化、写时隙和读时隙。

1.1 初始化(复位脉冲 + 存在脉冲)

  • 主机行为:拉低总线至少 480µs,然后释放总线。

  • 从机响应:DS18B20 在接收到复位脉冲后,会在 15~60µs 内拉低总线 60~240µs,作为存在脉冲。

  • 代码实现ds18b20_driver.v):

if(cnt_xx < 480) begindq_out <= 1'b0;dq_out_en <= 1'b1;
end else begindq_out <= 1'b0;dq_out_en <= 1'b0;
end

1.2 写时隙(写“0”和写“1”)

  • 写“0”:主机拉低总线至少 60µs。

  • 写“1”:主机拉低总线 1~15µs,然后释放总线。

  • 代码实现

if(wr_data[cnt_bit] == 0) begindq_out <= 1'b0;dq_out_en <= (cnt_xx < 61) ? 1'b1 : 1'b0;
end else begindq_out <= 1'b0;dq_out_en <= (cnt_xx < 1) ? 1'b1 : 1'b0;
end

1.3 读时隙

  • 主机行为:拉低总线 1µs,然后释放并采样。

  • 从机响应:DS18B20 在时隙内保持输出数据。

  • 代码实现

dq_out <= 1'b0;
dq_out_en <= (cnt_xx < 1) ? 1'b1 : 1'b0;
if(cnt_xx == 13)rd_data_r[cnt_bit] <= dq_in;

2. DS18B20 暂存器与温度数据格式

2.1 暂存器结构

字节内容说明
0-1温度值LSB 和 MSB
2-3TH 和 TL报警阈值
4配置寄存器分辨率设置
5-7保留
8CRC校验码

2.2 温度数据格式(16位补码)

  • 示例0x0550 表示 +85.0°C,0xFC90 表示 -55.0°C。

  • 数据处理data_process.v):

    src_data <= rd_data[15] ? (~rd_data[10:0] + 1'b1) : rd_data[10:0];

2.3 常用 ROM 命令

命令功能
SKIP_ROM0xCC跳过 ROM 寻址
CONVERT_T0x44启动温度转换
READ_SCRATCH0xBE读取暂存器

3. 温度读取工作流程

3.1 状态机流程(ds18b20_driver.v

  1. INIT:发送复位脉冲,检测存在脉冲。

  2. SKIP_ROM:发送 0xCC 跳过 ROM 寻址。

  3. CONVERT_T:发送 0x44 启动温度转换。

  4. WAIT:等待 750ms 转换完成。

  5. 再次 INIT 和 SKIP_ROM

  6. READ_SCRATCH:发送 0xBE 读取暂存器。

  7. RXDATA:读取 2 字节温度数据。

3.2 数据处理流程(data_process.v

  1. 将补码温度转换为原码。

  2. 将温度值乘以 625(扩大 10000 倍,便于显示小数)。

  3. 使用 binary2bcd 模块将二进制转换为 BCD 码。

  4. 输出到数码管和串口。


4. 系统框架结构

4.1 顶层模块(sys_top.v

  • 实例化各子模块:

    • ds18b20_driver:驱动温度传感器。

    • data_process:处理温度数据。

    • uart_tx:串口发送数据。

    • seg_driver:驱动数码管。

4.2 模块功能说明

模块名功能
ds18b20_driver实现单总线协议,读取温度数据
data_process数据转换与处理
binary2bcd二进制转 BCD 码
uart_tx串口发送数据
seg_driver动态数码管显示

4.3 数据流图

DS18B20 → ds18b20_driver → data_process → uart_tx → PC↓seg_driver → 数码管

总结

本项目实现了一个基于 FPGA 的 DS18B20 温度测量系统,具备以下特点:

  • ✅ 单总线协议完整实现(初始化、读、写)

  • ✅ 温度数据补码转原码、BCD 转换

  • ✅ 数码管实时显示温度

  • ✅ 串口输出温度值(含小数点)

  • ✅ 状态机控制流程清晰,代码可读性强

适用于嵌入式系统、FPGA 学习、温度监控等场景。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/95432.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/95432.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/95432.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JUC的安全并发包机制

目录 1. Lock机制&#xff1a;明锁控制 2. 栅栏机制(CyclicBarrier) 3. 闭锁机制(CountDownLatch) 4. 信号量机制(Semaphore) 5. 无锁机制 1. Lock机制&#xff1a;明锁控制 Lock接口提供了比synchronized更灵活的锁机制&#xff0c;属于明锁&#xff08;需要手动获取和释…

开源企业级快速开发平台(JeecgBoot)

JeecgBoot 是一款基于 Spring Boot Vue 技术栈的开源企业级快速开发平台&#xff0c;旨在通过「低代码代码生成」模式降低企业级应用的开发成本&#xff0c;提升开发效率。其核心定位是“开箱即用的中后台解决方案”&#xff0c;覆盖权限管理、表单报表、工作流、代码生成等核…

探索 PostgreSQL 和 MySQL 之间的主要差异和相似之处,找到满足您项目需求的最佳数据库解决方案。

探索 PostgreSQL 和 MySQL 之间的主要差异和相似之处&#xff0c;找到满足您项目需求的最佳数据库解决方案。 探索 PostgreSQL 和 MySQL 之间的主要差异和相似之处&#xff0c;找到满足您项目需求的最佳数据库解决方案。 关系数据库已经存在了很长时间。事实上&#xff0c;关系…

如何画时序图、流程图、状态流转图

如何画时序图、流程图、状态流转图流程图符号约定时序图元素交互框最佳实践状态流转图在研发或者写技术方案的时候&#xff0c;我们经常会画各种图。图比文字更加容易理解一些&#xff0c;那么如何画出优秀好看的图呢下面简单介绍一些画图时需要注意的点 流程图 流程图是流程…

CSDN 与 掘金 高效学习指南

CSDN 和掘金&#xff08;juejin.cn&#xff09;是国内最活跃的技术社区&#xff0c;但信息量巨大、质量参差不齐。高效运用的关键是&#xff1a;从“被动浏览”转向“主动获取”&#xff0c;避免陷入“收藏一堆文章却学不会”的陷阱。 以下是为你量身定制的CSDN 与 掘金 高效学…

容器tomcat镜像制作

pull-tomcat镜像 docker pull tomcat启动 –security-opt 禁用默认的安全策略&#xff0c;放宽限制 docker run -d --name mysql-tomcat -p 8080:8080 --security-opt seccompunconfined tomcat:latest进入容器直接访问404&#xff0c;网页相关的webapps下面为空&#xff0c;将…

AC安全认证方式全解析

AC的几种安全认证方法认证方式 安全性 便捷性 典型应用场景 所需配置Portal认证 ​​中 高 访客网络、商场、 Portal服务 酒…

《垒球江西百科》男子垒球世界纪录·垒球9号位

男子垒球世界纪录终极盘点⚾ | 冷知识科普&#xff01;1. 最远本垒打距离 | Longest Home Run Distance纪录保持者&#xff1a; Jeff Hall (美国)距离&#xff1a; 643英尺 (约196米)赛事&#xff1a; 2012年 USSSA 慢投垒球锦标赛✨ 科普&#xff1a; 慢投垒球中&#xff0c;球…

设计模式六大原则2-里氏替换原则

肯定有不少人跟我刚看到这项原则的时候一样&#xff0c;对这个原则的名字充满疑惑。其实原因就是这项原则最早是在1988年&#xff0c;由麻省理工学院的一位姓里的女士&#xff08;Barbara Liskov&#xff09;提出来的。定义1&#xff1a;如果对每一个类型为 T1的对象 o1&#x…

Spring Security 深度学习(五): 过滤器链与自定义过滤器

目录1. 引言&#xff1a;揭开Spring Security的内部奥秘2. Spring Security 过滤器链核心机制2.1 DelegatingFilterProxy&#xff1a;整合Spring与Servlet容器2.2 FilterChainProxy&#xff1a;管理安全过滤器链的“总管”2.3 Security Filters&#xff1a;核心安全功能的承载者…

微软GraphRAG 端到端使用及自用工具类

文章目录一. 环境准备1.安装 Python 环境2.安装依赖3.配置 LLM API Key二. 初始化项目三. 文档上传 & 索引构建四. 问答&#xff08;CLI 方式&#xff09;示例&#xff1a;五. 代码中调用 GraphRAG工具概览核心工具详解1. simple_graphrag_integration.py - 智能问答核心2.…

sqlserver2008导入excel表数据遇到的问题

1.如果表格为.xlsx格式时可能会提示“没有为此链接管理提供列”&#xff0c;无法点击下一步的话&#xff0c;建议可以使用.csv格式 .csv格式可能也会存在此提示&#xff0c;但是可以不用管 2.导入.csv数据时&#xff0c;字段为int时&#xff0c;填null导入不进去的话可以给个0作…

Unity游戏打包——打包流程

本文由 NRatel 历史笔记整理而来&#xff0c;如有错误欢迎指正。一、基本流程二、组合步骤把上述每步做成独立的输入输出逻辑 y fuc(x)然后&#xff0c;控制/组合其过程&#xff0c;可灵活产生不同的流程&#xff1a;1、单渠道出测试包2、单渠道出正式包3、单渠道包热更三、构…

卷积神经网络(二):手写数字识别项目(一)

文章目录手写数字识别项目一、准备数据集二、定义模型三、模型训练3.1 导入依赖库3.2 设备设置&#xff08;CPU/GPU 自动选择&#xff09;3.3 超参数定义3.4数据集准备1.获取数据集2.划分训练集与验证集3.创建 DataLoader&#xff08;按批次加载数据&#xff09;3.5模型初始化与…

批量给文件夹添加文件v2【件批量复制工具】

代码功能介绍 这个代码的功能就是一个&#xff0c;给某个文件夹里面添加某个文件&#xff08;含父级文件夹下的每一个子文件夹&#xff09; 举个例子&#xff0c;父级文件夹是&#xff1a;“D:\Desktop\1&#xff0c;要添加的文件路径是&#xff1a;D:\1.txt” 则最后会把文件…

Qt实现2048小游戏:看看AI如何评估棋盘策略实现“人机合一

2048 是一款经典的数字益智游戏,其简单的规则背后蕴含着丰富的策略性。该项目不仅完整实现了 2048 的核心玩法,还包含了一个基于启发式评估和蒙特卡洛方法的智能 AI 玩家。 我们将从项目整体架构入手,逐一解析游戏核心逻辑、UI 渲染、事件处理、AI 策略等关键模块,并通过展…

封装红黑树实现mysetmymap

1. 源码分析 set实例化rb_tree时第二个模板参数给的是key&#xff0c;map实例化rb_tree时第⼆个模板参数给的是 pair<const key,T>&#xff0c;这样一颗红黑树既可以实现key搜索场景的set&#xff0c;也可以实现key/value搜索场 景的map源码里面模板参数是用T代表value&…

以OWTB为核心以客户为基础的三方仓运配一体化平台分析V0.2

一、系统概述以OWTB&#xff08;Order-Warehouse-Transportation-Billing&#xff0c;订单-仓储-运输-结算&#xff09;为核心的三方仓运配一体化平台&#xff0c;是专为第三方物流企业打造的深度定制化解决方案。该平台以第三方仓运配为主线&#xff0c;以多客户/多SKU/个性化…

技术框架之脚手架实现

一、 序言在日常的企业级Java开发中&#xff0c;我们经常会发现自己在重复地做着一些项目初始化工作&#xff1a;创建相似的项目结构、引入一堆固定的依赖包、编写通用的配置文件、拷贝那些几乎每个项目都有的基础工具类和日志配置。这些工作不仅枯燥乏味&#xff0c;而且容易出…

小迪安全v2023学习笔记(七十七讲)—— 业务设计篇隐私合规检测重定向漏洞资源拒绝服务

文章目录前记WEB攻防——第七十七天业务设计篇&隐私合规检测&URL重定向&资源拒绝服务&配合项目隐私合规 - 判断规则&检测项目介绍案例演示URL重定向 - 检测判断&钓鱼配合介绍黑盒测试看业务功能看参数名goole语法搜索白盒测试跳转URL绕过思路钓鱼配合资…