1. FPGA温度监测系统概述
这个基于EGO1开发板的温度监测系统,通过DS18B20数字温度传感器采集环境温度,在数码管上实时显示当前温度值,并支持用户通过按键设置报警阈值。当温度超过设定阈值时,系统会触发LED报警提示。整个系统采用Verilog HDL语言实现,完全运行在FPGA硬件上。
提示:DS18B20是一款常用的单总线数字温度传感器,具有±0.5℃的精度,测量范围-55℃~+125℃,非常适合嵌入式系统使用。
系统主要功能特点:
- 实时温度显示:4位数码管显示当前温度,精度0.5℃
- 阈值设置:可通过按键调整报警阈值,步长0.5℃
- 双模式显示:每3秒自动切换显示当前温度和设定阈值
- 超温报警:温度超过阈值时,LED指示灯闪烁报警
- 低功耗设计:完全硬件实现,无需处理器参与
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 系统架构与模块设计
2.1 顶层模块设计
系统采用模块化设计,顶层模块temperature_alarm_top负责连接各功能模块:
verilog复制module temperature_alarm_top(
input clk, // 100MHz系统时钟
input rst_n, // 低电平复位
input key_add, // 阈值加按键
input key_sub, // 阈值减按键
inout ds18b20_dq, // DS18B20数据线
output [7:0] seg_data, // 数码管段选
output [3:0] seg_en, // 数码管位选
output alarm_led, // 报警LED
output alarm_beep // 蜂鸣器(EGO1未使用)
);
顶层模块实例化了5个子模块:
- key_control:按键消抖处理
- ds18b20:温度传感器驱动
- core_control:核心控制逻辑
- seg_display:数码管显示
- alarm_module:报警输出控制
2.2 关键信号说明
| 信号名称 | 方向 | 位宽 | 描述 |
|---|---|---|---|
| temp_data | 输出 | 16 | DS18B20原始温度数据 |
| temp_valid | 输出 | 1 | 温度数据有效标志 |
| disp_temp | 输出 | 16 | 待显示实时温度 |
| disp_thresh |
