基于STM32F103控制器的蓄电池双向电流检测设计.doc_第1页
基于STM32F103控制器的蓄电池双向电流检测设计.doc_第2页
基于STM32F103控制器的蓄电池双向电流检测设计.doc_第3页
基于STM32F103控制器的蓄电池双向电流检测设计.doc_第4页
基于STM32F103控制器的蓄电池双向电流检测设计.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于STM32F103控制器的蓄电池双向电流检测设计 高兵权 肖学福 刘金彪 张扬奇 摘要:介绍了装备蓄电池组工作电压和电流实现检测的需求,利用运算放大器构建了正负双向电流量累积求和及跟踪反向的预处理电路,基于STM32F103控制器片内AD实现了12位电压和电流的信号采集转换。最后给出了主要程序片段和如何提高ADC精度的一些措施。关键词:STM32,控制器,双向,电流,检测中图分类号:TB51 文献标识码:AThe Design of Bidirectional Battery Current Detection With STM32F103 Controller Gao Bing-quan, Xiao Xue-fu, Liu Jin-biao Zhang Yang-qi(Institute of Military Transportation ,Tianjin,300161)Abstract:The need of equipment battery voltage and current real-time detection is introduced. Build the bidirectional current sum, trace and reverse pre-process circuit with operational amplifier. achieve the 12 bit voltage and current signal collection and conversion based on STM32F103 internal AD.At last the main program segment and the methods of How to get the best ADC accuracy are given.Keywords: STM32,Controller,Bidirectional,Current,Detection1.引言在某装备的研制过程中,为保障装备效能的正常发挥,需要实时掌握其内部集成的铅酸蓄电池组的工作状态,主要状态参数包括电池组电压和充放电电流,要求监控系统做到精度高、可靠、简单。具体参数指标是:蓄电池组标称值DC24V,充放电电流在5A以内。电压检测精度要求0.01V,电流检测精度要求0.01A,即小数点后保证两位有效数字。据此本文设计了基于STM32F103VB嵌入式控制器为核心的信号处理、采样和计算的软硬件控制系统。STM32F103系列控制器由意法半导体公司(ST)推出,使用高性能的ARM Cortex-M3 32位的RISC内核,工作频率为72MHz,内置高速存储器(高达128K字节的闪存和20K字节的SRAM),丰富的增强I/O端口和联接到两条APB总线的外设。该器件包含3个通用16位定时器和一个PWM定时器,还包含标准和先进的通信接口:多达2个I2C和SPI、3个USART、一个USB和一个CAN。STM32F103xx增强型系列工作于-40至+105的温度范围,供电电压2.0V至3.6V,一系列的省电模式保证低功耗应用的要求1。该设计选用STM32F103VB处理器主要考虑其高速可靠、资源丰富、工作温度宽和供电电压宽、功耗低、性价比高的特点,尤其是其内部集成双路AD转换器,16通道,12位精度,1s转换时间。2.蓄电池组电压和电流采样处理过程设计的蓄电池组工作状态实时检测系统如图1所示,功能上包括独立的两部分:电压检测和电流检测。其中电压检测实现较为简单。图1 信号采集和处理的工作原理图2.1电压检测电压信号量的检测采用双电阻分压模式,取两个合适阻值的电阻串联分压,分压后的电压信号送入STM32F103处理器的AD转换引脚。本设计中,控制器基准电压采用+2.5V,故电压信号输入范围须小于等于2.5V。而分压电阻R1和R2的关系有公式(1)开确定,即VbatR1+R2 R2 2.5V (1)其中Vbat为蓄电池组电压值,实际变化范围:20V28V,取Vbat最大值28V,R1=102k,R2=10,均选用精度为1的金属膜电阻。R1和R2的串联电阻达到112 k,消耗的电量对装备工作不会产生过大的影响。2.2充放电电流双向采样与处理系统充放电电流的实时检测选用瑞士LEM公司LA28-NP电流传感器,该传感器是利用霍尔原理的闭环(补偿)电流传感器,原边回路和副边回路之间绝缘,可用于测量直交流脉冲和混合型电流,供电电压15V。系统中采用1000:5的匝比,原边充放电5A电流对应副边额定电流Is有效值为25mA。在应用中,感应电流Is串联精密电阻Rm,取得电压量V1,电阻Rm的取值取决于AD转换器对于V2的要求。电流传感器输出电流为双向,即25mA的电流信号,在实际工况中,放电时输出最大+25mA电流,而充电时,输出为-25mA电流,由此而取得的电压信号V1相对于地电平也为相应的正负电压。STM32F103控制器ADC输入范围为:Vref-VinVref+,应用中Vref-接模拟地,Vref+接2.5V电压基准,故ADC输入范围:02.5V。目前存在的问题是:STM32F103控制器采用单3.3V工作,模拟量输入无法处理方向电压。在传统的方式下,如果电阻Rm基准电平端接入地,当充电工况下,感应电流V1为负电压,控制器无能为力。针对这个问题,本文设计了如图2所示的累加升压、跟随方向信号预处理电路,解决了双向电流的AD采样问题。图2 电压累加升压、跟随反向转换电路该设计的基本思想是将双向电流的电压变化范围均控制在0Vref+范围,是以牺牲AD转换的精度为代价的,详细过程如下:(1)串入电阻Rm=50,取得模拟量电压输出V1范围:-1.25V+1.25V;(2)利用两门运算放大器构建求和电路,实现V1和+1.25V电压基准累加,将V1升压至0-2.5V。在做一次反向跟随放大,实现电压反向功能,输出电压V2范围0+2.5V。图2中电压Vmid = -R5R31.25 + R5R4Vin。取R3=R4=R5=10k,Vmid = -(1.25+Vin),故Vmin电压范围取值:0-2.5V。在第二级的反相放大电路中Vout=-R7R6Vmid。取R6=R7=10k,则Vout = -Vmid,Vout取值范围:0+2.5V。运算放大器选用通用运放LM324,供电电压15V,和电流传感器LA28-NP采用同一供电电路。(3)STM32F103控制器AD转换为12位精度,理论上对应数字量范围04096。实际情况下,由于接插件、线缆、PCB和器件的综合影响,求得放充电流计算公式为:y=kx-5.046,k=0.00244,在实际的程序编制中,k定义为float数据类型,至少取3位有效数字,才能保证0.01A的电流精度。x表示控制器AD转换得到的数字量,y表示实际电流值,负数表示充电电流,正数表示放电电流。图3 充放电电流和AD数字量的曲线关系3.软件编制3.1软件设计基本思路监控系统软件的开发采用ARM公司的RealView MDK开发工具,统一采用C语言编程。为提高开发效率,ST公司推出了针对STM32控制器的固件函数库,目前可用的最新版本为STM32F10x_StdPeriph_Lib_V3.2.0。电压和电流检测AD转换软件设置及工作过程较为简单。(1)配置模拟量输入的GPIO口,STM32控制器有个很大的优点,在于其ADC转换输入引脚可以是任意GPIO,只要GPIO配置为GPIO_Mode_AIN模式,即可以实现模拟量输入,STM32F103共有16个外部通道,该设计中将PC4好PC6作为电压量和电流量的ADC输入端;(2)设置ADC,将ADC设置为连续转换模式、右对齐、非外部触发;(3)启动ADC,开始采样转换和处理。3.2主要程序片段STM32的ADC主要程序片段如下:/*配置GPIO口程序*/void GPIO_Configuration(void) GPIO_InitTypeDef GPIO_InitStructure; /配置PC4和PC6为模拟量输入GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_6 ; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;GPIO_Init(GPIOC, &GPIO_InitStructure); /*电压电流配置、工作采样主程序*/int main(void) RCC_Configuration(); GPIO_Configuration(); DMA_Configuration(); /ADC1 configuration ADC_InitStructure.ADC_Mode = ADC_Mode_Independent; ADC_InitStructure.ADC_ScanConvMode = ENABLE; ADC_InitStructure.ADC_ContinuousConvMode = ENABLE; ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None; ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; ADC_InitStructure.ADC_NbrOfChannel = 1; ADC_Init(ADC1, &ADC_InitStructure); /DC1 regular channel14 configuration ADC_RegularChannelConfig(ADC1, ADC_Channel_14, 1, ADC_SampleTime_55Cycles5); ADC_DMACmd(ADC1, ENABLE); /Enable ADC1 DMA ADC_Cmd(ADC1, ENABLE); / Enable ADC1 / Enable ADC1 reset calibaration register ADC_ResetCalibration(ADC1); / Check the end of ADC1 reset calibration register while(ADC_GetResetCalibrationStatus(ADC1); / Start ADC1 calibaration ADC_StartCalibration(ADC1); / Check the end of ADC1 calibration while(ADC_GetCalibrationStatus(ADC1); / Start ADC1 Software Conversion ADC_SoftwareStartConvCmd(ADC1, ENABLE); while(1) AD_value=ADC_GetConversionValue(ADC1); 3.3软件滤波措施该应用中考虑电压量和电流量为变化较缓的信号,故软件采取防脉冲干扰平均滤波算法。连续采样N个数据,去掉一个最大值和一个最小值,然后计算N-2个数据的算术平均值。通过实验N取值5,即可达到满意的效果。该算法能够剔除偶然出现的脉冲性干扰,消除由于脉冲干扰所引起的采样值偏差。4.提高信号检测精度的措施为提高ADC处理的精度和系统抗干扰能力,该设计从控制器ADC使用、电压基准和供电、滤波及元器件的选择等方面采取了系列的措施。4.1控制器ADC使用在STM32F103控制器的ADC使用中,考虑了两个方面,一是两个模拟量输入口临近的管脚不安排数字量IO,因为I/O脚之间的耦合电容,I/O端口的翻转可能对ADC的模拟输入产生一些噪声。可能会因为PCB走线过于靠近,或互相交叉而产生这样的串扰影响。内部数字信号和I/O脚的翻转会产生高频的噪声;二是温度会对ADC的精度产生较大的影响,主要有2项误差:偏移误差和增益误差。这些误差可以通过微控制器的固件程序补偿。一个方法是根据不同的温度范围,测量出完整的偏移和增益变化,再在存储器中建立一个对照表。这样的方式需要额外的费用和时间。另一个方式是当温度达到某个数值时,使用内部的温度传感器和ADC看门狗功能,重新校准。4.2电压基准芯片和独立电源供电在该设计中为保证信号的质量,重要的电平信号采用专用芯片来实现,如使用REF2912和REF2925电压基准芯片产生+1.25V和+2.5V两个电压基准源,+1.25V基准信号用于放大器累加电路,+2.5V基准信号提供给STM32F103控制器Vref+;其次,模拟电路、控制器模拟供电和数字电路供电采用独立电源,由专用DC/DC提供15V电源,为LA-28P电流传感器及LM324运算放大器供电,STM32控制器模拟部分VDDA和数字部分VDD使用独立的+3.3V供电。最后三种独立电源于一点共地,尽可能地减少电源间的互扰。这样做的好处是避免了很多的I/O端口翻转操作在直流电源上产生的大量噪声干扰。4.3其它抗干扰措施另外,该设计还采取了其它的一些抗干扰措施,如在STM32F103控制器的VDDA和Vref+管脚连接到2个外部的去藕电容器(10nF瓷介电容+1F的钽电容);模拟电路中的所有电阻采用1%精度的金属膜电阻;在PCB的布置中,模拟电路部分远离数字部分,避免了在模拟

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论