关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > STM32F103控制器的蓄电池双向电流检测

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

作者:时间:2010-12-09来源:网络收藏

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

的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所示。

本文引用地址:http://www.eepw.com.cn/article/162582.htm



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模式,即可以实现模拟量输入。共有16个外部通道,该设计中将PCA和PC6作为电压量和电流量的ADC输入端。
②将ADC设置为连续转换模式、右对齐、非外部触发。
③启动ADC,开始采样转换和处理。
2.2 软件滤波措施
该应用中电压量和电流量为变化较缓的信号,故软件采取防脉冲干扰平均滤波算法。连续采样N个数据,去掉一个最大值和一个最小值,然后计算N-2个数据的算术平均值。通过实验N取5时可达到满意的效果。该算法能够剔除偶然出现的脉冲性干扰,消除由于脉冲干扰所引起的采样值偏差。

3 提高信号精度的措施
为提高ADC处理的精度和系统抗干扰能力,该设计从ADC的使用、电压基准和供电、滤波及元器件的选择等方面采取了系列的措施。
3.1 ADC的使用
使用的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,效果稳定、可靠,满足了设计要求。需进一步改进之处在于处理系统的温漂问题,即温度对电路的影响。

基尔霍夫电流相关文章:基尔霍夫电流定律



上一页 1 2 下一页

评论


相关推荐

技术专区

关闭