基于STM32数据采集器的设计
扫描二维码
随时随地手机看文章
数据采集技术在工业、航天、军事等方面具有很强的实用性,随着现代科技发展,数据采集技术在众多领域得到了广泛的应用和发展。同时对数据采集器的精度、抗干扰能力、安全和通信兼容等方面提出了更高的要求。基于上述要求提出了一种基于STM32F101 的数据采集器的设计方案,该数据采集器使用MODBUS 协议作为RS485 通信标准规约,信号调理电路与STM32F101 的AD 采样通道之间均采用硬件隔离保护,可同时采样3 路DC0-5V 电压信号、3 路DC4-20mA 电流信号和6 路开关量输入信号,实验证明本数据采集器具有较高的测量精度,符合工业现场应用需求。
信号采集主要包括电压信号、电流信号、频率信号以及开关量信号,随着现代技术的发展,传感器主要输出标准的电压电流信号,而传感器是将外部的非电量信号转换成标准的电信号进行输出,本课题所设计的数据采集器可以同时采集电压、电流、开关量输入输出信号,且每个部分独立工作,硬件调理电路中均采用信号隔离技术,数据采集器与上位机采用RS485通信,使用MODBUS协议作为通信规约,便于数据采集器与其他工业设备实现数据共享。
课题设计的基于STM32的数据采集器,使用性价比较高的STM32F101 作为核心处理器,时钟倍频后处理速度可达36MHz ;内部自带12 位AD 转换通道,保证数据采样和处理的速度和精度。
1。 数据采集器工作原理
数据采集器具有标准的电压、电流以及开关量输入信号采样接口。模拟量信号采样接口电路,使用HCNR201线性光耦进行信号隔离。电压信号接口可输入DC0-5V 信号,输入的电压信号经过电压信号调理电路对信号进行滤波、隔离和限幅后送入STM32F101 的AD 采样通道;电流信号接口可输入4-20mA 信号,输入的电流信号通过精密采样电阻,将电流信号转换成电压信号,然后再将转换的电压信号送入电压信号调理电路进行处理,最后再送入AD 采样通道;开关量输入接口采用光耦进行隔离,实现光电转换和隔离保护。STM32F101 将采样的数据进行软件处理后,再通过RS485 通信接口将数据上传至上位机或者其他设备,完成数据采集处理和通信的功能。
2. 数据采集器硬件设计
数据采集器硬件结构包括STM32 最小系统、电源、开关量输入接口电路、电压信号采样接口电路、电流信号采样接口电路和RS485 通信接口电路,数据采集器结构图如图1 所示。
2.1 STM32F101 最小系统
STM32F101 最小系统包括晶振电路、复位电路和SW 程序调试接口电路,晶振电路主要为系统工作提供所需要的时钟,通过初始化配置STM32F101 内部的时钟寄存器,可将外部时钟频率倍频到36MHz ;复位电路主要用于防止数据采集器程序跑飞或者死机时手动复位,同时在程序内部加入看门狗复位,程序在正常运行时正常喂狗,而当程序跑飞时数据采集器也可自动完成复位,使程序重新执行;SW 程序调接口电路,主要用于开发人员对STM32F101 进行编程和在线仿真调试,完成数据采集器的软件设计。由于STM32F101 性价比较高,片内集成资源丰富,在设计数据采集器时可大大简化外部硬件电路设计。
2.2 电源电路
本课题所设计的数据采集器可工作于DC12V,输入的DC12V 经过LM7805CT转换为+5V 电压,并通过电感L15 实现输入DC12V 电源GND 与+5V 电源DGND的隔离,DC12V 转DC+5V 电源转换电路如图2 所示。由于STM32F101 工作电压为3.3V,因此还需通过电源模块LT1117-3.3转为DC+3.3V,供给CPU 使用。DC+5V转DC3.3V 电源转换电路如图3 所示。
另外在所设计的硬件电路中,对RS485 通信电路和模拟量的信号采样电路均用了信号隔离技术,供给RS485 芯片工作的电源和模拟量信号处理电路中的线性光耦电源均需通过隔离电源模块B0505S 转换产生,该模块可将+5V 电源输出为另一路隔离电源,而且芯片隔离电压能达到1000VDC,温度特性较好。线性光耦电源AD+5V 和RS485 电源S+5V 转换电路如图4、图5 所示。
2.3 开关量输入接口电路
开关量输入接口主要用于采集外部开关量信号,此部分电路使用TLP521 光耦进行隔离,保证信号采样电路的安全性,同时可减小电路干扰。开关量信号从IN 输入,COM 为信号输入公共端。开关量信号经光耦输出至STM32 的GPIO 口,实现对外部开关量信号的检测。
2.4 电压电流信号采样接口电路
传感器将非电量信号转换为电信号,一般输出标准电压电流信号,STM32F101自带AD 转换通道允许输入电压范围为0-3.3V,因此传感器输出信号需经信号调理电路调整到AD 通道有效采样电压范围。本课题的设计的数据采集卡可采样DC0-5V 电压信号和DC4-20mA 电流信号,使用HCNR201 线性光耦进行隔离,输出跟随输入变化,线性度较好,保证了信号采样的准确性。
电压信号采样接口电路输入电压范围为DC0-5V, 输入电压经电阻R1A 和R1B 分压后经电阻R63 输入至运放U30A反相端,电容C107 构成反馈电容,主要用来消除噪声和干扰。运放U30A 在此处构成比较器,当有外部电压信号接入时,U30A 的1 端输出低电平,线性光耦HCNR201 的LED 发光,当光照到PD1、PD2 时分别形成通路,线性光耦主要实现光电转换和隔离,经过线性光耦输出的电流信号通过运放U31B 构成的电路形成电压信号,经过U31B 输出的电压信号经过运放U31A 构成的3.3V 限幅电路,将输出电压限定在0-3.3V 范围内,以保证STM32F101 的AD 通道采集到正常的电压信号。[!--empirenews.page--]
2.5 RS485 通信接口电路
RS485 通信主要实现采集的数据传输,为保证数据传输的安全性和通信的兼容性,在硬件设计上使用SP3485 作为收发控制器,同时使用TLP521 光耦进行隔离,保证数据采集卡硬件通信的安全;在软件设计上使用工业标准的MODBUS 协议作为RS485 通信规约,保证系统良好的兼容性和数据传输的准确性。
3. 软件设计
数据采集器软件设计主要采用模块化编程,主程序流程图主要包括关中断、各功能模块初始化、开相关中断、看门狗定时、开关量输入采集、AD 采样处理、RS485 通信数据处理和定时喂狗;主程序流程图如图6 所示。
4 结语
通过Multism 对电压信号采样电路进行仿真,采样输入信号接入示波器A 通道,电压幅值范围为DC0-5V,输入信号经过电压信号处理电路后输出电压信号输入示波器B 通道,当输入电压为100mV时,经过电压信号处理电路输出电压为101.541mV ;当输入电压为3.28V 时,经过电压信号处理电路输出电压为3.28V ;当输入电压为5V 时,经过3.3V 限幅电路后电压被钳在3.3V,由仿真图观察可知,HCNR201 具有良好的线性度,保证了数据采样的精度。