FPGA 温度采集系统设计:MAX6675 驱动与 Qt 上位机曲线绘制
FPGA 温度采集系统通过 MAX6675 传感器实现多通道数据采集,利用 Cyclone-IV 芯片进行 SPI 时序控制,将温度数据经串口传输至上位机。Qt 程序负责实时解析数据并绘制滚动曲线,支持数据存储与日志管理。系统采用整数运算避免浮点误差,采样频率稳定,适用于实验室验证及工业现场长期运行。

FPGA 温度采集系统通过 MAX6675 传感器实现多通道数据采集,利用 Cyclone-IV 芯片进行 SPI 时序控制,将温度数据经串口传输至上位机。Qt 程序负责实时解析数据并绘制滚动曲线,支持数据存储与日志管理。系统采用整数运算避免浮点误差,采样频率稳定,适用于实验室验证及工业现场长期运行。

'温度看得见'是整套系统的唯一目标。FPGA 端负责'采得准、传得快';PC 端负责'画得顺、存得久'。双端通过极简串口帧完成解耦,既能在实验室做验证,也可直接搬到工业现场长期运行。
系统架构图如下:
┌──────────────┐ UART(TTL) ┌──────────────┐
│ Cyclone-IV │←─────────→│ Qt Host │
│ MAX6675×3 │ 115200-8-N-1│ Real-time │
│ 50 MHz │ │ Curve & Log │
└──────────────┘ └──────────────┘
0256\r\n 表示 25.6 ℃。xag.txt,时间戳到秒,支持一键清空并弹窗确认。QSerialPortInfo,运行时切换波特率需先关闭端口。T_counter 0→500 000 循环,每 1 µs 步进。通道 1 占用 2–34 µs,通道 2 占用 42–74 µs,通道 3 占用 82–114 µs,间隔 8 µs 防止总线冲突。raw×25 得到'百倍温度',避免浮点。上位机再除 100 还原,保证两端全程整数运算。array0[0…120]。新点到达时整体左移,尾部更新,触发一次 updateImage()。画面刷新周期 500 ms,视觉无卡顿。QIODevice::Append | QIODevice::WriteOnly,每条记录 < 50 B,0.5 s 一次写,SSD 寿命可忽略。清空时 resize(0) 立即释放空间。| 方向 | 现支持 | 预留字段 | 升级建议 |
|---|---|---|---|
| 通道 | 3 路 | 帧尾可扩展 ,CHx | 4–8 路只需修改计数器区间 |
| 量程 | 0–1024 ℃ | 20 bit 数据可再左移 | 若换 14 bit ADC,上位机除 100→除 10 |
| 协议 | ASCII | 可切 Binary | 下位机同帧长度,上位机 QDataStream 解析 |
| 曲线 | 固定 60 s | 横轴可缩 | 增加 QSlider 控制 timeWindow 变量 |
readyRead()。\r\n → 解析 → 绘图线程 getTemp2() → 画布更新 → 主窗口 paintEvent() 贴图。flag=1 → 下次写入先 resize(0) 清空日志。整套方案'用最少的逻辑做最可靠的事':FPGA 端代码不到 300 行,Qt 端不到 500 行,却完成了工业场合最需要的三类功能——实时显示、趋势绘图、数据留痕。开发者只需掌握 Verilog 时序与 Qt 信号槽,就能在一天内完成移植:换芯片、换串口、换界面,全部通过参数化宏与常量集中管理,真正做到'代码少泄露,功能全交付'。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online