STM32F103控制器的蓄电池双向电流检测

发布者:信息巫师最新更新时间:2012-08-07 来源: 21ic 关键字:高兵权  肖学福  刘金彪  张扬奇 手机看文章 扫描二维码
随时随地手机看文章

1 硬件设计
   
蓄电池组信号采集和处理的工作原理如图1所示。功能上包括独立的两部分:电压检测和电流检测。其中电压检测实现较为简单。系统充放电电流的实时检测选用瑞士LEM公司的LA28-NP电流传感器。


    ST公司推出的STM32F103系列控制器采用高性能的ARM Cortex-M3 32位的RISC内核,工作频率为72MHz。该器件内置高速存储器(高达128 KB的闪存和20KB的SRAM),丰富的增强I/O端口和连接到两条APB总线的外设;具有3个通用16位定时器和1个PWM定时器,以及2个I2C和2个SPI、3个USART、1个USB和1个CAN通信接口;工作于-40~+105℃的温度范围,供电电压为2.O~3.6 V,一系列的省电模式保证低功耗应用的要求。STM32F103系列处理器不但具有高速可靠、资源丰富、工作温度和供电电压范围宽、功耗低、性价比高的特点,而且内部集成双路A/D转换器(16通道,12位精度,1 μs转换时间)。
1.1 电压检测
   
电压信号量的检测采用双电阻分压模式,取两个合适阻值的电阻串联分压,分压后的电压信号送入STM32F103处理器的A/D转换引脚。本设计中,控制器基准电压采用+2.5 V,故电压信号输入范围须小于或等于2.5 V,即:
   
    其中,Vbat为蓄电池组电压值,实际变化范围为20~28 V,这里Vbat取最大值28 V;R1和R2为分压电阻,均选用精度为1%的金属膜电阻。R1=102 kΩ,R2=10 Ω,R1和R2的串联电阻达到112 kΩ,消耗的电量对装备工作不会产生过大的影响。
1.2 充放电电流双向采样与处理
   
采用LA28-NP电流传感器对充放电电流进行实时检测。该传感器是利用霍尔原理的闭环(补偿)电流传感器,原边回路和副边回路之间绝缘,可用于测量直交流脉冲和混合型电流,供电电压±15 V。系统中采用1000:5的匝比,原边回路的充放电±5 A电流对应副边回路的额定电流Is,其有效值为±25 mA。在应用中,感应电流Is通过精密电阻Rm,取得电压量V1,电阻Rm的取值取决于A/D转换器对于V2的要求。
    LA28-NP的输出电流为双向,即±25 mA的电流信号。在实际工作中,放电时输出最大电流为+25 mA,而充电时,输出最大电流为-25mA,由此而取得的电压信号V1相对于地电平也为相应的正负电压。STM32F103内置的ADC电压输入范围为Vref-≤Vin≤Vref+。本设计中Vref-接模拟地,Vref+接2.5 V基准电压,故ADC输入范围为O~2.5 V。目前存在的问题是:STM32F103采用单3.3 V工作,模拟量输入无法处理反向电压。在传统的方式下,如果电阻Rm基准电平端接入地,充电时V1为负电压,控制器无能为力。针对这个问题,本文设计了图2所示的累加升压、跟随反向信号预处理电路,解决了双向电流的A/D采样问题。


    该设计的基本思想是将双向电流的电压变化范围均控制在0~Vref+范围内。这是以牺牲A/D转换精度为代价的。详细过程如下:
    ①串入电阻Rm=50 Ω,获得模拟量电压输出V1范围为-1.25~+1.25 V。
    ②利用两门运算放大器构建求和电路,实现V1和+1.25 V基准电压累加,将V1扩展至0~-2.5 V。再做一次反向跟随放大,实现电压反向功能,输出电压V2为0~+2.5 V。
    运算放大器选用通用运放LM324,供电电压±15V,和电流传感器LA28-NP采用同一供电电路。
    取R3=R4=R5=10 kΩ,Vmid=-(1.25+V1),故Vmid电压范围为O~-2.5 V。[page]

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

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



2 软件设计
2.1 基本思路

    监控系统软件的开发采用ARM公司的Real View MDK开发工具,统一采用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 软件滤波措施
   
该应用中电压量和电流量为变化较缓的信号,故软件采取防脉冲干扰平均滤波算法。连续采样N个数据,去掉一个最大值和一个最小值,然后计算N-2个数据的算术平均值。通过实验N取5时可达到满意的效果。该算法能够剔除偶然出现的脉冲性干扰,消除由于脉冲干扰所引起的采样值偏差。

3 提高信号检测精度的措施
   
为提高ADC处理的精度和系统抗干扰能力,该设计从ADC的使用、电压基准和供电、滤波及元器件的选择等方面采取了系列的措施。
3.1 ADC的使用
    使用STM32F103的ADC时考虑两个方面:
    ①两个模拟量输入口临近的引脚不安排数字量I/O。I/O脚之间存在耦合电容,因此I/O端口的翻转可能对ADC的模拟输入产生一些噪声。这可能是因为PCB走线过于靠近,或互相交叉而产生的。
    ②温度会对ADC的精度产生较大的影响,主要包括偏移误差和增益误差。这些误差可以通过微控制器的固件程序补偿。一种方法是,根据不同的温度范围测量出完整的偏移和增益变化,再在存储器中建立一个对照表,需要耗费额外的费用和时间。另一种方法是,当温度达到某个数值时,使用内部的温度传感器和ADC看门狗功能,重新校准。
3.2 电压基准芯片和独立电源供电
   
在该设计中为保证信号的质量,重要的电平信号采用专用芯片来实现。例如使用REF2912和REF2925电压基准芯片产生+1.25 V和+2.5 V两个电压基准源,+1.25 V基准信号用于放大器累加电路,+2.5 V基准信号提供给SFM32F103的Vref+。另外,模拟电路、控制器模拟供电和数字电路供电采用独立电源,由专用DC/DC提供±15 V电源,为电流传感器LA-28P及运算放大器LM324供电,STM32F103的模拟部分VDDA和数字部分VDD使用独立的+3.3 V供电。三种独立电源于一点共地,尽可能地减少电源间的互扰。这样做的好处是,避免了很多的I/O端口翻转操作在直流电源上产生的大量的噪声干扰。
3.3 其他抗干扰措施
   
该设计还采取了其他的一些抗干扰措施:STM32F103控制器的VDDA和Vref+引脚连接2个外部的去耦电容器(10 nF瓷介电容+1 μF的钽电容);模拟电路中的所有电阻采用1%精度的金属膜电阻;在PCB的布置中,模拟电路部分远离数字部分,避免了在模拟电路底下通过数字信号线。

结语
   
该设计实现了充放电电流信号的累加升压、跟随反向,利用STM32F103控制器片内12位A/D实现了实时监测。最终电压检测实际精度达到O.005 V,电流实际精度达到O.005 A,效果稳定、可靠,满足了设计要求。需进一步改进之处在于处理系统的温漂问题,即温度对电路的影响。

关键字:高兵权  肖学福  刘金彪  张扬奇 引用地址:STM32F103控制器的蓄电池双向电流检测

上一篇:基于STM32和CAN总线的温度监控系统
下一篇:基于STM32控制器的SNTP授时服务器的研究与设计

小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved