一种蓄电池双向电流检测的设计方案-设计应用_第1页
一种蓄电池双向电流检测的设计方案-设计应用_第2页
一种蓄电池双向电流检测的设计方案-设计应用_第3页
一种蓄电池双向电流检测的设计方案-设计应用_第4页
一种蓄电池双向电流检测的设计方案-设计应用_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

精品文档-下载后可编辑一种蓄电池双向电流检测的设计方案-设计应用摘要:介绍了装备蓄电池组工作电压和电流实现检测的需求,利用运算放大器构建了正负双向电流量累积求和及跟踪反向的预处理电路,基于STM32F103控制器片内AD实现了12位电压和电流的信号采集转换。给出了主要程序片段和如何提高ADC精度的一些措施。

0.引言

在某装备的研制过程中,为保障装备效能的正常发挥,需要实时掌握其内部集成的铅酸蓄电池组的工作状态,主要状态参数包括电池组电压和充放电电流,要求监控系统做到精度高、可靠、简单。具体参数指标是:蓄电池组标称值DC24V,充放电电流在5A以内。电压检测精度要求0.01V,电流检测精度要求0.01A,即小数点后保证两位有效数字。据此本文设计了基于STM32F103VB嵌入式控制器为的信号处理、采样和计算的软硬件控制系统。

STM32F103系列控制器由意法半导体公司(ST)推出,使用高性能的ARMCortex-M332位的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位精度,1μs转换时间。

1.蓄电池组电压和电流采样处理过程

设计的蓄电池组工作状态实时检测系统如图1所示,功能上包括独立的两部分:电压检测和电流检测。其中电压检测实现较为简单。

该设计的基本思想是将双向电流的电压变化范围均控制在0~Vref+范围内。这是以牺牲A/D转换精度为代价的。详细过程如下:

①串入电阻Rm=50Ω,获得模拟量电压输出V1范围为-1.25~+1.25V。

②利用两门运算放大器构建求和电路,实现V1和+1.25V基准电压累加,将V1扩展至0~-2.5V。再做反向跟随放大,实现电压反向功能,输出电压V2为0~+2.5V。

运算放大器选用通用运放LM324,供电电压±15V,和电流传感器LA28-NP采用同一供电电路。

取R3=R4=R5=10kΩ,Vmid=-(1.25+V1),故Vmid电压范围为0~-2.5V。

在第二级反相放大电路中可得:

取R3=R4=R5=10kΩ,Vmid=-(1.25+Vin),故Vmin电压范围取值:0~-2.5V。

在第二级的反相放大电路中

取R6=R7=10kΩ,则Vout=-Vmid,Vout取值范围:0~+2.5V。

运算放大器选用通用运放LM324,供电电压±15V,和电流传感器LA28-NP采用同一供电电路。

③STM32F103的A/D转换器精度为12位,理论上对应数字量范围0~4096。实际情况下,由于接插件、线缆、PCB和器件的综合影响,充放电流计算公式为:y=kx-5.046,k=0.00244。在实际的程序编制中,k定义为float数据类型,至少取3位有效数字,才能保证O.01A的电流精度。x表示A/D转换器得到的数字量。y表示实际电流值,负数表示充电电流,正数表示放电电流。充放电电流和A/D数字量的曲线关系如图3所示。

图3充放电电流和AD数字量的曲线关系

2软件设计

2.1基本思路

监控系统软件的开发采用ARM公司的RealViewMDK开发工具,统一采用C语言编程。为提高开发效率,ST公司推出了针对STM32控制器的固件函数库,目前的版本为STM32F10x_StdPeriph_Lib_V3.2.O。电压和电流检测A/D转换的软件设置如下:

①配置模拟量输入的GPIO口。STM32控制器有个很大的优点,其A/D转换输入引脚可以是任意GPIO,只要GPIO配置为GPIO_Mode_AIN模式,即可以实现模拟量输入。STM32F103共有16个外部通道,该设计中将PCA和PC6作为电压量和电流量的ADC输入端。

②将ADC设置为连续转换模式、右对齐、非外部触发。

③启动ADC,开始采样转换和处理。

2.2主要程序片段

STM32的ADC主要程序片段如下:

/*配置GPIO口程序*/

voidGPIO_Configuration(void)

{

GPIO_InitTypeDefGPIO_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);

……

}

/*电压电流配置、工作采样主程序*/

intmain(void)

{

……

RCC_Configuration();

GPIO_Configuration();

DMA_Configuration();

……

//ADC1configuration

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);

//DC1regularchannel14configuration

ADC_RegularChannelConfig(ADC1,ADC_Channel_14,1,ADC_SampleTime_55Cycles5);

ADC_DMACmd(ADC1,ENABLE);//EnableADC1DMA

ADC_Cmd(ADC1,ENABLE);//EnableADC1

//EnableADC1resetcalibarationregister

ADC_ResetCalibration(ADC1);

//ChecktheendofADC1resetcalibrationregister

while(ADC_GetResetCalibrationStatus(ADC1));

//StartADC1calibaration

ADC_StartCalibration(ADC1);

//ChecktheendofADC1calibration

while(ADC_GetCalibrationStatus(ADC1));

//StartADC1SoftwareConversion

ADC_SoftwareStartConvCmd(ADC1,ENABLE);

while(1)

{

AD_value=ADC_GetConversionValue(ADC1);

}

}

2.3软件滤波措施

该应用中电压量和电流量为变化较缓的信号,故软件采取防脉冲干扰平均滤波算法。连续采样N个数据,去掉一个值和一个值,然后计算N-2个数据的算术平均值。通过实验N取5时可达到满意的效果。该算法能够剔除偶然出现的脉冲性干扰,消除由于脉冲干扰所引起的采样值偏差。

3提高信号检测精度的措施

为提高ADC处理的精度和系统抗干扰能力,该设计从ADC的使用、电压基准和供电、滤波及元器件的选择等方面采取了系列的措施。

3.1ADC的使用

使用STM32F103的ADC时考虑两个方面:

①两个模拟量输入口临近的引脚不安排数字量I/O。I/O脚之间存在耦合电容,因此I/O端口的翻转可能对ADC的模拟输入产生一些噪声。这可能是因为PCB走线过于靠近,或互相交叉而产生的。

②温度会对ADC的精度产生较大的影响,主要包括偏移误差和增益误差。这些误差可以通过微控制器的固件程序补偿。一种方法是,根据不同的温度范围测量出完整的偏移和增益变化,再在存储器中建立一个对照表,需要耗费额外的费用和时间。另一种方法是,当温度达到某个数值时,使用内部的温度传感器和ADC看门狗功能,重新校准。

3.2电压基准芯片和独立电源供电

在该设计中为保证信号的质量,重要的电平信号采用专用芯片来实现。例如使用REF2912和REF2925电压基准芯片产生+1.25V和+2.5V两个电压基准源,+1.25V基准信号用于放大器累加电路,+2.5V基准信号提供给SFM32F103的Vref+。另外,模拟电路、控制器模拟供电和数字电路供电采用独立电源,由专用DC/DC提供±15V电源,为电流传感器LA-28P及运算放大器LM324供电,STM32F103的模拟部分VDDA和数字部分VDD使用独立的+3.3V供电。三种独立电源于一点共地,尽可能地减少电源间的互扰。这样做的好处是,避免了很多的I/O端口翻转操作在直流电源上产生的大量的噪声干扰。

3.3其他抗干扰措施

该设计还采取了其他的一些抗干扰措施:STM32F103控制器的VDDA和Vref+引脚连接2个外部的

温馨提示

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

评论

0/150

提交评论