站内搜索
发作品签到
专业版

高成本_32 路 MCP96L00 热电偶测量+485隔离测试板

工程标签

312
0
0
4

简介

基于STM32F407的32通道温度采集系统,采用MCP96L00传感器和TCA9548A多路复用器,通过RS485传输数据。此为废弃方案,测量有大功率设备运作环境的设备值乱跳,但漏电电烙铁没问题

简介:基于STM32F407的32通道温度采集系统,采用MCP96L00传感器和TCA9548A多路复用器,通过RS485传输数据。此为废弃方案,测量有大功率设备运作环境的设备值乱跳,但漏电电烙铁没问题
复刻成本:2100

开源协议

GPL 3.0

创建时间:2025-11-09 17:21:06更新时间:2026-01-19 10:58:51

描述

项目概述

本项目为基于STM32F407的32通道温度采集系统,采用MCP96L00温度传感器与TCA9548A I2C多路复用器搭建硬件平台,通过隔离式RS485接口实现数据传输。需特别说明的是,此方案已废弃,核心原因是在存在大功率加热装置的场地中适用性不佳,表现为测量数值紊乱跳变;但该方案可用于漏电电烙铁的温度测量,目前数值跳变的具体根源尚未定位排查。

硬件组成

核心组件

  • 微控制器:STM32F407VETx,作为系统核心,负责统筹传感器数据采集、多路复用器控制、通信协议解析及调试指令响应。
  • 温度传感器:MCP96L00(32个通道),与MCP9600完全兼容,支持热电偶温度与冷端温度同步采集,适配工业场景温度测量需求。
  • I2C多路复用器:采用4片TCA9548A,每片可扩展8路I2C通道,通过地址区分实现多传感器并行接入。
  • 通信接口:带电气隔离的RS485接口,提升工业环境下抗干扰能力,保障数据远距离稳定传输。
  • 调试接口:TTL电平UART接口,用于系统调试、参数配置及实时状态监控。

硬件连接

系统采用双I2C总线架构,具体连接方式如下:
  • 2路独立I2C总线(I2C1和I2C2)并行工作,提升数据采集效率,避免单总线拥堵。
  • 每路I2C总线分别连接2片TCA9548A,地址分别配置为0x70和0x71,通过地址区分实现精准控制。
  • 每片TCA9548A的8路通道各连接1个MCP96L00传感器,4片多路复用器共实现32个温度采集通道的扩展。
  • 实际使用说明:本方案实际仅焊接使用前12个通道,12V供电总电流约为0.16A;传感器转化速率设置最低不得低于70ms,以保证采集数据稳定性,通道数超过12个的使用场景暂未进行测试验证。
其他补充说明
1. 5V转3V输出回路的470μF电容未焊接,因前期项目测试中曾出现5V LDO烧毁问题,推测为后级电容过大导致瞬间短路所致;
 
2. U200为弯插复位按键,可在淘宝平台采购;
3. R210、R212热敏电阻目前立创平台无货,需寻找规格一致的替代型号;
 
4. 485隔离模块自带隔离电源输出,本方案实际采用MCU供电的3.3V转换供电,经测试可正常与上拉5V的485设备实现通信。

软件架构

系统架构

采用分层模块化架构设计,各模块低耦合、高内聚,便于开发维护与功能扩展,核心模块划分如下:
  1. 温度传感器模块(`temperature_sensor.c/h`):
    1. 采用非阻塞式温度采集状态机,避免采集过程阻塞系统其他任务,保障系统响应性。
    2. 支持传感器自动检测功能,可识别通道是否接入传感器,适配部分传感器未焊接的场景。
    3. 兼容MCP96LR00与MCP9600传感器,实现热电偶热端温度与冷端温度的同步采集与数据处理。
  2. 通信模块(`communication.c/h`):
    1. 基于非阻塞式RS485通信状态机设计,与采集任务并行执行,互不干扰。
    2. 通信周期可灵活配置,范围为50-1000ms,默认配置为80ms,适配不同实时性需求场景。
    3. 定义完整数据帧格式,包含帧头、温度数据字段,配套通信错误处理与重试机制,提升数据传输可靠性。
  3. 调试命令模块(`debug_cmd.c/h`):
    1. 通过UART接口提供串口调试命令支持,可实现系统配置参数调整、实时状态监控等功能。
    2. 命令响应及时,便于开发阶段问题排查与现场参数校准。
  4. I2C驱动(`i2c.c/h`):
    1. 负责2路I2C总线的初始化与管理,精准控制TCA9548A的通道切换,实现多传感器轮询采集。
    2. 集成可靠的I2C通信超时处理机制,避免因总线异常导致系统卡死。

核心功能特性

  • 非阻塞式设计:全模块采用状态机驱动,无阻塞延迟调用,确保系统对各类任务的快速响应。
  • 硬件自动适配:自动检测32个通道的传感器连接状态,支持部分或全部传感器未焊接的场景,提升硬件兼容性。
  • 灵活配置能力:支持RS485通信周期、热电偶类型、ADC分辨率、滤波系数等参数自定义配置。
  • 高可靠性:具备完善的I2C通信错误处理、温度采集异常检测及RS485通信重试机制。
  • 便捷调试:提供丰富的串口调试命令,可实时查询设备信息、通道温度及配置参数。

软件实现细节

温度采集流程

  1. 系统启动后,首先初始化I2C1、I2C2总线及4片TCA9548A多路复用器,配置总线通信速率与超时参数。
  2. 执行传感器自动检测流程,通过I2C总线轮询各通道,记录已接入传感器的通道编号,生成有效通道列表。
  3. 对检测到的传感器进行初始化配置,包括热电偶类型、ADC分辨率、滤波系数等参数,确保采集精度符合需求。
  4. 进入循环采集阶段,通过非阻塞状态机轮询各有效通道:
    1. 控制对应TCA9548A切换至目标通道,选中待采集传感器。
    2. 读取MCP96L00的热电偶热端温度与冷端温度数据。
    3. 将原始数据转换为工程单位(°C),并进行异常值过滤处理。
    4. 切换至下一个有效通道,重复采集流程,实现32通道循环采集。

通信流程

RS485通信流程如下:
  1. 根据有效通道列表,构建RS485数据帧,帧结构遵循预设协议,包含帧头、温度数据字段。
  2. 启用RS485发送使能引脚,切换接口至发送模式,避免接收干扰。
  3. 通过USART外设将完整数据帧发送至RS485总线,同步等待发送完成中断。
  4. 发送完成后,禁用RS485发送使能引脚,切换回接收模式,等待下一轮通信周期。

数据帧格式

RS485数据输出协议

接口参数(可通过调试命令配置):
  • 波特率:9600/19200/38400/57600/115200 bps(默认115200 bps)
  • 数据位:8位
  • 停止位:1位
  • 校验位:无校验
数据帧格式(总长度67字节):
字节位置
内容
说明
0
0x01
帧头1,用于数据帧同步
1
0x03
帧头2,与帧头1共同构成帧标识
2
0x40
数据长度字段,标识后续温度数据为64字节
3-66
温度数据
32个通道的温度数据,每个通道占2字节
温度数据格式
  • 数据类型:有符号16位整数(int16_t),采用大端字节序(高字节在前)。
  • 数值转换:温度值(°C)= 原始数据 × 0.1,测量范围为-200°C至1372°C。
通道映射关系
字节位置
对应通道
所属I2C总线
3-4
CH0
I2C1
5-6
CH1
I2C1
...
...
...
33-34
CH15
I2C1
35-36
CH16
I2C2
...
...
...
65-66
CH31
I2C2

系统优化

性能优化

  • 移除代码中不必要的HAL_Delay调用,采用状态机轮询替代阻塞延迟,提升系统任务调度效率与响应速度。
  • 优化I2C通信超时时间与重试次数,根据传感器响应特性调整参数,在通信可靠性与效率间取得平衡。
  • 通过双I2C总线并行工作、传感器轮询采集策略,提升32通道数据采集的整体吞吐量。

可靠性优化

  • 构建完善的错误处理机制,涵盖I2C总线通信异常、传感器数据读取失败、RS485发送超时等场景,确保系统稳定运行。
  • 增加传感器初始化重试机制,针对初始化失败的通道进行多次重试,降低硬件接触不良导致的采集异常概率。
  • RS485通信模块集成数据校验与重试功能,减少工业环境干扰导致的数据丢失或错误。

维护性优化

  • 严格遵循模块化设计规范,各模块独立封装,接口清晰,便于功能扩展、问题定位与代码维护。
  • 添加详细的代码注释与文档说明,包括模块功能、函数用途、参数含义及关键逻辑注释,降低后期维护成本。
  • 统一代码风格与命名规范,提升代码可读性与一致性,便于多人协作开发。

应用场景

本方案虽因抗干扰问题废弃,但在特定场景仍具备适用性,潜在应用场景包括:
  • 漏电电烙铁温度监测:可稳定测量漏电电烙铁的温度,适配小型电子加工场景的温度管控需求。
  • 无大功率干扰的工业环境:在无大功率加热装置、电磁干扰较弱的工业场景,可用于设备多点温度监控与故障诊断。
  • 实验室设备温度测量:适用于实验室中对多点温度进行高精度采集与分析的场景,如小型实验装置的温度校准。
  • 医疗设备辅助监测:在低干扰医疗场景中,可作为辅助温度采集模块,用于医疗设备的局部温度监控。

开发环境

  • IDE:Keil MDK-ARM v5,支持STM32F4系列芯片的编译、调试与下载。
  • 固件库:STM32Cube HAL库,提供标准化的外设驱动接口,简化开发流程。
  • 硬件调试器:ST-Link V2,用于芯片程序下载、在线调试与运行状态监控。
  • 编程语言:C语言,适配嵌入式系统开发需求,兼顾执行效率与代码可读性。

使用说明

硬件连接

  1. 确认32个通道的MCP96L00传感器已正确焊接至对应接口,TCA9548A的A0-A2引脚按地址需求配置,避免地址冲突。
  2. 连接RS485通信线,区分A、B、GND三线,确保接线牢固,工业场景建议采用屏蔽线降低干扰。
  3. 为系统提供稳定电源,根据硬件设计选择5V或3.3V供电,确保传感器与I2C总线供电稳定。
  4. (可选)连接TTL串口至电脑,通过串口调试工具接入调试接口,用于参数配置与状态监控。

软件配置

  • 通过串口调试命令调整RS485通信周期,适配不同实时性需求。
  • 支持兼容模式启用/禁用,禁用时仅采集已接入传感器的通道数据,启用时保留未焊接通道的占位标识。
  • 可通过调试命令配置I2C通信超时时间、热电偶类型、ADC分辨率及滤波系数等参数。

调试命令

系统通过USART1(TTL串口)提供调试命令支持,串口默认参数为:115200 bps、8位数据位、1位停止位、无校验位。

命令列表

命令
功能
参数
`AT`
连接测试
`AT+INFO`
查询设备信息
`AT+DIAG`
温度诊断
`AT+CFG=`
配置参数
多参数(波特率、通道使能、周期等)

命令详细说明

  1. AT - 连接测试
    1. 功能:验证串口连接是否正常,确认系统处于可调试状态。
    2. 请求格式:`AT\r\n`
    3. 响应格式:`+OK:CONNECTED\r\n`(连接正常);无响应则表示串口连接异常。
  2. AT+INFO - 查询设备信息
    1. 功能:查询设备型号、固件版本、STM32芯片ID及当前系统配置参数。
    2. 请求格式:`AT+INFO\r\n`
    3. 响应内容:包含设备型号、固件版本、芯片ID、通信周期、热电偶类型、有效通道数等信息。
  3. AT+DIAG - 温度诊断
    1. 功能:查询32个通道的实时温度数据,包括热端温度与冷端温度,便于排查采集异常。
    2. 请求格式:`AT+DIAG\r\n`
    3. 响应格式:按通道顺序输出,格式为`CHxx:HOT=xx.x°C,COLD=xx.x°C`,未接入传感器的通道标注为`CHxx:NO SENSOR`。
  4. AT+CFG - 配置参数
    1. 功能:修改系统配置参数并保存至Flash,配置完成后设备自动重启使参数生效。
    2. 请求格式:`AT+CFG=<波特率>,<CH0>,<CH1>,<CH2>,<CH3>,<周期>[,<热电偶>,<分辨率>,<滤波>]\r\n`
    3. 参数说明:
      • 波特率:可选值为9600/19200/38400/57600/115200,对应RS485通信波特率。
      • CH0-CH3:通道组使能状态(0=禁用,1=启用),每组分8个通道,对应4片TCA9548A。
      • 周期:数据采集与发送周期,范围50-1000ms。
      • 热电偶(可选):0-7分别对应K/J/T/N/S/E/B/R型热电偶。
      • 分辨率(可选):0-3分别对应18/16/14/12bit ADC分辨率。
      • 滤波(可选):0-7分别对应OFF/1/2/4/8/16/32/64次滤波系数。
详细的命令格式、参数取值范围及响应说明,可参考项目目录`Doc/串口调试命令协议文档.md`。

项目结构

 
├── Core/ # 核心应用代码 │ ├── Inc/ # 头文件(包含各模块头文件) │ └── Src/ # 源代码(温度采集、通信、调试命令等模块) ├── Drivers/ # 驱动文件 │ ├── CMSIS/ # CMSIS核心文件(芯片内核驱动) │ └── STM32F4xx_HAL_Driver/ # STM32 HAL驱动(外设驱动) ├── MDK-ARM/ # Keil MDK项目文件(工程配置、编译输出) ├── Doc/ # 文档目录 │ └── 串口调试命令协议文档.md # 调试命令详细说明文档 └── README.md # 项目说明文档(概述、环境、使用方法)

上位机预览

版本历史

V1.0 (当前版本)

  • 初始版本发布,实现32通道温度采集核心功能。
  • 采用非阻塞式状态机设计,保障系统响应性。
  • 集成RS485通信功能,支持数据远距离传输。
  • 实现传感器自动检测与硬件兼容性支持。
  • 提供丰富的串口调试命令与参数配置功能。

注意事项

  1. 硬件设计:严格按照地址需求配置TCA9548A的A0-A2引脚,避免多片多路复用器地址冲突,导致I2C通信异常。
  2. 电源设计:为传感器与I2C总线提供稳定供电,避免电压波动导致传感器数据采集错误或通信中断。
  3. 通信距离:RS485通信距离建议不超过1200米,超过距离需添加中继器,同时选用优质屏蔽线。
  4. 抗干扰措施:若在工业环境使用,需添加电源滤波、信号屏蔽、接地处理等抗干扰措施,缓解大功率设备干扰问题。
  5. 传感器选型:MCP96LR00与MCP9600完全兼容,可根据采购成本、供货情况灵活选择,不影响系统功能。
  6. 方案局限性:本方案已废弃,避免在存在大功率加热装置的场景使用,此类场景下测量数值易紊乱跳变。

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

3D模型

序号文件名称下载次数
暂无数据

附件

序号文件名称下载次数
1
MCP96LR00V1.0.zip
22
2
上位机文件链接(含源码).txt
18
3
QT5_MCP96L00.rar
28
克隆工程
添加到专辑
0
0
分享
侵权投诉
知识产权声明&复刻说明

本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。

请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。

评论

全部评论(1
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航