Skip to content

Aixgeekx/embedfire_FPGA_ks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FPGA健康监测系统

基于野火征途Pro开发板(Cyclone IV E EP4CE10F17C8)的健康监测系统项目。

项目简介

本项目旨在构建一个FPGA驱动的健康监测系统,集成多种传感器实现生理参数的实时采集与显示。

硬件平台

  • 开发板: 野火征途Pro开发板
  • FPGA芯片: Cyclone IV E EP4CE10F17C8
  • 系统时钟: 50MHz
  • 显示设备: 6位8段数码管(74HC595驱动)

已实现功能

✅ DS18B20温度传感器模块

实现了DS18B20数字温度传感器的完整驱动,支持实时温度采集与显示。

技术特性:

  • 单总线(1-Wire)通信协议
  • 温度精度: 0.0625°C
  • 测量范围: -55°C ~ +125°C
  • 更新频率: 1Hz
  • 显示格式: XX.X°C(数码管显示为XX-X---)

实现文件:

  • health/rtl/ds18b20_ctrl.v - DS18B20驱动控制器
  • health/rtl/top_seg_test.v - 顶层模块
  • health/rtl/seg_dynamic.v - 数码管动态扫描驱动

协议实现:

  • 初始化序列: 480us低电平脉冲 + 存在检测
  • 两阶段工作流程:
    1. 转换阶段: Skip ROM (0xCC) → Convert T (0x44) → 等待800ms
    2. 读取阶段: Skip ROM (0xCC) → Read Scratchpad (0xBE) → 读取2字节温度数据
  • 时序精度: 1MHz基准时钟(50MHz分频)
  • 数据解析: 16位有符号数,bit[10:4]为整数部分,bit[3:0]为小数部分

规划中的功能

🔄 OLED显示模块

  • 计划集成OLED屏幕用于图形化显示
  • 支持多参数同屏显示
  • 提供更友好的用户界面

🔄 MAX30102心率血氧模块

  • 集成MAX30102传感器
  • 实现心率(HR)和血氧饱和度(SpO2)测量
  • 通过I2C接口通信
  • 实时波形显示

项目结构

embedfire_FPGA_ks/
├── health/                          # 健康监测项目目录
│   ├── rtl/                        # RTL源代码
│   │   ├── ds18b20_ctrl.v         # DS18B20温度传感器驱动
│   │   ├── seg_dynamic.v          # 数码管驱动
│   │   └── top_seg_test.v         # 顶层模块
│   ├── health.qsf                  # Quartus工程配置
│   └── output_files/               # 编译输出文件
├── 征途Pro开发板规格书.pdf          # 开发板文档
└── 征途Pro开发实战指南.pdf          # FPGA开发指南

开发环境

  • IDE: Quartus Prime Lite
  • 仿真工具: ModelSim (可选)
  • 硬件调试: SignalTap II
  • 版本控制: Git

使用说明

编译与下载

  1. 使用Quartus Prime打开 health/health.qpf 工程文件
  2. 执行全编译(Ctrl+L)
  3. 通过JTAG下载 health/output_files/health.sof 到FPGA

硬件连接

DS18B20温度传感器:

  • DQ(数据线)→ FPGA引脚(见health.qsf配置)
  • VDD → 3.3V
  • GND → GND
  • 注意: DQ线需要4.7kΩ上拉电阻到VDD

数码管显示:

  • 已集成在开发板上,无需额外连接

观测结果

上电后,数码管将显示当前环境温度,格式为 XX-X---,例如:

  • 23-5--- 表示 23.5°C
  • 18-7--- 表示 18.7°C

温度每秒更新一次。

技术亮点

  1. 精确时序控制: 实现1us级的1-Wire协议时序
  2. 状态机设计: 8状态FSM实现完整DS18B20读写流程
  3. 两阶段协议: 正确实现DS18B20的转换→读取工作流程
  4. 温度数据解析: 小数部分通过查找表转换(0x0→0, 0x8→5, 0xF→9)
  5. 模块化设计: 传感器驱动与显示驱动分离,便于扩展

参考资料

  • 野火《FPGA Verilog开发实战指南》第36章 - DS18B20温度传感器
  • DS18B20数据手册
  • Cyclone IV器件手册

开发日志

  • 2025-12-22: 完成DS18B20温度传感器驱动,实现实时温度显示功能
  • 计划下一步集成OLED显示和MAX30102心率血氧传感器

作者

基于野火征途Pro开发板的学习项目

许可证

本项目仅供学习交流使用


项目状态: 🟢 持续开发中

最后更新: 2025年12月22日

About

embedfire_FPGA_ks

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors