基于STM32和MODBUS协议的多参数数据采集卡设计精.docx
- 文档编号:2480846
- 上传时间:2022-10-30
- 格式:DOCX
- 页数:9
- 大小:136.15KB
基于STM32和MODBUS协议的多参数数据采集卡设计精.docx
《基于STM32和MODBUS协议的多参数数据采集卡设计精.docx》由会员分享,可在线阅读,更多相关《基于STM32和MODBUS协议的多参数数据采集卡设计精.docx(9页珍藏版)》请在冰豆网上搜索。
基于STM32和MODBUS协议的多参数数据采集卡设计精
第32卷第12期2010-12(上
【205】
基于STM32和MODBUS协议的多参数
数据采集卡设计
Multi-parameterdataacquisitioncarddesignbasedonSTM32andMODBUSprotocol
肖前军XIAOQian-jun
(重庆工业职业技术学院,重庆400050)
摘要:
为了实现工业现场数据采集的网络化和智能化,本文使用STM32作为控制器,采用MODBUS
通信协议,设计了一款高性能多参数数据采集卡。
关键词:
STM32;MODBUS协议;网络化;多参数
中图分类号:
TP391 文献标识码:
A 文章编号:
1009-0134(201012(上-0205-04Doi:
10.3969/j.issn.1009-0134.2010.12(上.67
0引言
在工业现场需要监控现场的工作环境和设备的运行状况,就需要测量现场的温度、湿度和设备的电压、电流等参数,以前的数据采集多采用变送器,变送器采集的数据采用模拟量传输,抗干扰能力较差,并且采集数据单一,不能完成多参数采集,由于采用模拟量传输不易实现网络化。
本文提出一种多参数数据采集卡的设计和实施方案,采用STM32作为微处理器,标准MODBUS协议作为通信规约,实现数据采集的网络化和智能化;该采集卡具有如下功能:
可实现8路模拟量输入(混接),用户可将任一通道自由设置成标准电压、标准电流(加接取样电阻)、热电偶、热电阻等信号方式;8路继电器输出(控制或报警信号),报警继电器由I/O前端自行控制输出(组态),可单组或多组输出,每组输出为独立方式,报警输出触电电流≤3A;在串行通信方式(RS485)下,采用标准MODBUS协议,使采集卡与上位机或控制器进行通信;人机接口(键盘及显示),完成参数手动设置和测试结果现场显示。
1系统总体方案
系统总体框图如图1所示,包括电源处理电路,MCU控制器,串行通信模块,信号滤波电路,放大电路和A/D转换电路,信号隔离电路,输出报警和人机接口电路。
系统软件流程如图4
所示。
图1系统框图
2功能模块设计
2.1电源电路设计
本部分设计各模块电路的供电电源,该项目有4组模块电路,由于信号需要隔离,故4模块电路的供电电源独立,输入电源电压为24V;输出3组5V电源、2组3.3V电源和一组24V电源;设计功率:
8W。
(具体功率分配:
5V电源500mA,3.3V电源各100mA,24V电源200mA)。
电源电路如图2所示,输入端接24V直流电源,TV1为TVS管,是目前国际上普遍使用的一种高效能电路保护器件,它的外型与普通二极管相同,但却能吸收高达数千瓦的浪涌功率,通过TM2594M单元电路,将电压稳定到+5V。
TM2594系列芯片为简单步降开关稳压器,转换效率高达88%,解决了78XX系列LDO型稳压器件的压差大发热大的问题。
+5V电源经过DC/DC隔离模块H0505S后产生两路+5V电源,用于信号处
收稿日期:
2010-08-12
作者简介:
肖前军(1974-),男,重庆开县人,讲师,硕士研究生,研究方向嵌入式系统设计。
【206】第32卷第12期
2010-12(上
理、采集模块电路和串口通信模块电路使用,使用NCP1117L产生两路+3.3V电源用于MCU控制器
STM32和AD转换芯片ADS1256的工作电源。
图2电源电路
2.2MCU控制器STM32
控制器采用ST公司的STM32微处理器,STM32系列微处理器基于ARMCortex-M3内核,采用高效的哈佛结构三级流水线,达到1.25DMIPS/MHz,在功耗上更是达到0.06mW/MHz。
Cortex-M3使用Thumb-2指令集,自动16/32位混合排列,具有很高的代码密度。
单周期的32位乘法以及硬件除法器,保证Cortex-M3的运算能力有大幅提高。
Cortex-M3包含嵌套向量中断控制器NVIC,中断响应速度最快仅6周期,内部集成总线矩阵,支持DMA操作及位映射[1]。
STM32按性能分成两个不同的系列:
STM32F103“增强型”系列和STM32F101“基本型”系列。
根据数据采集卡的功能和误差精度的需求,我们选用增强型STM32F103作为控制器,该控制器具有如下特征:
72MHz系统时钟频率、128KB闪存程序存储器、20KBSRAM、7个定时器、多达9个通信接口、2个12位模数转换器、CAN接口、7通道DMA控制器、ADC、SPI、USART、I2C接口等。
该控制器具有较强的抗干扰能力,在工业现场得到广泛的应用。
2.3信号处理电路
采集卡主要完成4种信号的采集,即热电阻输入信号、热电偶输入信号、标准电流输入信号、标准电压输入信号。
因此不同的输入信号采取不同的处理电路,信号处理电路如图3所示。
1)热电阻信号输入时:
信号从L4的1脚输
入,由于热电阻的输入是可变的电阻值,在处理电路中需加一个恒流源(基准电压芯片+电阻构成),恒流源由U1REF192和电阻R7构成,当热电阻的阻值随温度变化时,由于流过热电阻的电流是恒定的,因此热电阻两端的电压随着电阻的变化而变化,这样就将可变的电阻变换成可变的电压信号,再对该电压滤波、整形后送入ADS1256程控放大和AD转换。
2)当输入为热电偶信号时:
信号从L4的2脚输入,经滤波、整形后送入ADS1256程控放大和
AD转换。
图3信号处理电路
3)当输入为电压信号(标准电压信号为0~5V或1~5V)时:
信号从L4的4脚输入,此时需要去掉采样电阻R1,经滤波、整形后送入ADS1256程控放大和AD转换。
4)当输入标准电流信号(0~10mA或4~20mA)时:
信号从L4的4脚输入,此时需要接采样电阻R2,将电流信号转换为电压,电阻R2的精度要求0.1%,该信号经滤波、整形后送入ADS1256程控放大和AD转换。
2.4程控放大和A/D采样电路
对信号的处理电路部分详见图3,需要特别说明的是在对输入信号的处理中,输入信号的种类不同,电路中的放大倍数不一样,所以在电路中采用了增益自动调整电路,由MCU完成数据的采集、比较、识别其输入信号的种类,对其放大倍数实现自动调整的功能;并使用了A/D芯片内部自带的多路切换开关实现输入信号的切换,自带的放大器对信号的放大处理,自带的PGA对放大增益控制,以减小外围电路的干扰和切换是电路动态平衡的时间,根据程控放大和A/D采样的要求,采集卡选用ADS1256作为程控放大和A/D转换芯
第32卷第12期2010-12(上
【207】
片。
ADS1256是TI公司推出的微功耗、高精度、8通道24位Σ-∆型模数转换器,该器件内部集成有输入模拟多路开关、输入缓冲器、可编程增益放大器和可编程数字滤波器,ADS1256提供有九路模拟输入端,因此,可使用模拟多路开关(MUX寄存器来将其配置为四路差动输入、八路单极输入或差动输入和单极输入的组合。
当模拟输入通道0被选择为正差动输入端时,其余通道可被选择为负差动输入端,通常,输入引脚的选择是没有限制的,但是为了得到最佳的模拟性能,特推荐如下的引脚连接方式[2]:
1)作差动测量时,一般将AIN0~AIN7作为输入端,不用AINCOM;
2)作单极测量时,一般将AIN0~AIN7作为单极输入端;AINCOM作为公共输入端;
3)将未用的模拟输入引脚悬空,这样有利于减小输入泄漏电流;
当测量小信号时能得到尽量高的分辨率,ADS1256使用了一个低噪声的可编程增益放大器(PGA,放大倍数可以是1、2,4、8、16、32或64[3]。
ADS1256采用四线制(时钟信号线SCLK、数据输入线DIN、数据输出线DOUT和片选线CSSPI通信方式。
采集卡的程控放大和A/D转换芯片ADS1256和MCU采用SPI通信方式,为了防止数据输入通道引入的高压和干扰信号损坏MCU,在ADS1256和MCU之间增加隔离电路,实现4000V电压的隔离,采用TI公司的7240MDW完成隔离,AD转换软件流程如图4所示。
2.5通信模块
串行通信模块实现采集卡与上位机或控制器进行通信,通信速度为4800Bps~19200Bps,可以实现上位机或控制器设置采集卡的用户参数,采集卡可以将采集的数据传送给上位机或控制器,实现数据采集的智能化。
采用美信公司的max485芯片实现TTL电平和计算机电平之间的转换,通信协议采用MODBUS协议,传输距离可达1200米;多个采集卡可以与上位机组成局域网,采用MODBUS协议进行通信,实现数据采集网络化。
1)ModBus基本规则
所有RS485通信回路都遵照主/从方式。
按照
这种通信方式,数据可以在一个主站(如:
上位机或控制器和32个子站(如:
采集卡之间传输;主站将初始化和控制信息在RS485通信回路上进行传输;任何一次通信都由主站发起,子站不能发起通信;在RS485回路上的所有通信都以“信息帧”格式传输;如果主站或子站接收到含有未知命令的信息帧,则不响应。
2)数据帧格式
通信传输为异步方式,并以字节(数据帧为单位。
在主站和子站之间传递的每一个数据帧都是11位的串行数据流。
1位起始,8位数据,1位校验和1位停止。
3)通信规约
当主站(上位机)把通信命令发送到子站(采集卡时,符合相应地址码的采集卡接收通信命令,并除去地址码,读取信息,如果没有出错,则执行相应的任务;然后把执行结果返送给主站。
收发信息以数据帧为单位,包括地址码(ADD)8bit、执行任务的功能码8bit、执行任务后的数据N×8bit,以及错误校验码(CRC2×8bit。
如果出错就不发送任何信息。
通信部分的电路采用6N137,实现电气隔离,
max485作为电平转换芯片。
通信流程图如图4所示。
系统流程图AD采样流程图通信流程图
图4软件流程图
2.6人机接口电路
系统设计一个4×4键盘,用于采集卡参数设置和用户信息的修改,显示部分采用高品质的液晶(LCD显示模块,每屏可以显示8×4个汉字(16×16或128×64个像素的图形。
【208】第32卷第12期
2010-12(上
2.7报警信号输出
8路报警信号采用继电器输出,由ULN2003A驱动,当采集卡采集的数据高于设置值一定范围就会发出报警信号通知用户或管理者。
比如采集卡设置现场的工作温度为31℃,当采集的温度为32℃时,就发出报警信号。
参考文献:
[1]ST公司.STM32F103FxDatasheet.2008,5.
[2]周超,李春茂.新型8通道24位Σ-∆型模数转换器ADS1256的原理及应用.国外电子元器件,2005,6.
[3]孙沁梅,卢益民.高精度模数转换器ADS1256的原理和应
用.计算机与数字工程,2005,33,3.
管KA431的参考电压应为2.5V,所以R1与R2的
为
31
的输出电压为2.5V,工作的最小电流为1mA,所以在选择RD和Rbias
时应保证
其中,Vout反馈回路供电端的电压,Vop为H11A817A的前向导通管压降,通常为1V。
为FPS器件的反馈电流,通常为1mA。
CCM模式下,应用小信号分析,从控制端VFB
到参考输出端VO1
的传递函数可以写为:
11
CO1为参考输出端的电容值,Rc1为该电容的串
联等效电阻,RL为输出的等效阻抗。
DCM模式下,传递函数为
(12
(13
其RB选择CF,RF值,设计反馈网络,使得开关电源
的传递函数稳定。
电容CB影响着所设计的开关电源的延时关断时间,VSD
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 STM32 MODBUS 协议 参数 数据 采集 设计