基于STM32数据采集器的设计关键字:数据采集STM32MODBUSRS485数据采集技术在工业、航天、军事等方面具有很强的实用性,随着现代科技发展,数据采集技术在众多领域得到了广泛的应用和发展。同时对数据采集器的精度、抗干扰能力、安全和通信兼容等方面提出了更高的要求。基于上述要求提出了一种基于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.1STM32F101最小系统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通道采集到正常的电压信号。2.5RS485通信接口电路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具有良好的线性度,保证了数据采样的精度。