利用AFE+MCU构建电池管理系统(BMS)

前言

实际BMS项目中,可能会综合考虑成本、可拓展、通信交互等,用AFE(模拟前端)+MCU(微控制器)实现BMS(电池管理系统)。

希望看到这篇博客的朋友能指出错误或提供改进建议。

有纰漏请指出,转载请说明。

学习交流请发邮件 1280253714@qq.com


    单纯电池管理保护芯片构建的BMS

    以IP3264为例

    以英集芯的4~5 节锂离子/聚合物电池保护器IP3264为例,其具有如下功能。

    IP3264具有的功能

    这个电路为充放电同口电池管理保护电路

    在异常情况下,控制两个NMOS,起到保护作用

    通过采集每一节电芯电压,起到过充、过放、断线保护功能;

    通过外接NTC,检测电芯温度,起到低温、过温保护功能;

    通过采集Rsense压差,起到充放电过流保护功能;

    IP3264不具有的功能

    由于BMS架构已经被芯片定死了,IP3264后续的可拓展性比较差,无法像AFE+MCU架构那样根据具体需求进行灵活选择和优化。

    IP3264主要提供电池过充、过放、过流等基本保护功能,其数据处理和算法运行能力相对有限。

    IP3264无法支持复杂的电池管理算法和高级功能,如精确的SOC估算、SOH评估等。

    IP3264无法进行高效的数据处理和算法运行能力,使得BMS系统无法准确地监测电池状态、预测电池寿命并采取相应的保护措施。

    IP3265无法做到电芯均衡功能,监控和故障诊断能力相对有限,主要依赖于预设的保护阈值和延时设置。


    AFE+MCU构建电池管理系统的优势

    一、更高的灵活性和可扩展性

    • 组件选择多样性:设计师可以根据具体的应用场景、性能需求、成本预算等因素,从市场上众多不同型号、性能的AFE和MCU中选择最合适的组件进行搭配。这种灵活性使得BMS系统能够更精确地满足各种定制化需求。
    • 系统升级便捷性:随着电池技术的不断进步,BMS系统可能需要进行相应的升级以适应新的电池特性。采用AFE+MCU架构的BMS系统可以更容易地进行硬件和软件升级,以适应未来的电池技术和市场需求。

    二、优化系统性能并降低成本

    • 性能优化:通过精心挑选AFE和MCU组件,设计师可以构建出性能卓越的BMS系统。例如,选择高精度、低噪声的AFE可以确保电池参数的准确测量;选择高性能、低功耗的MCU可以提高数据处理速度和系统响应能力。
    • 成本降低:通过合理搭配组件和优化设计,AFE+MCU架构的BMS系统可以在保证性能的同时降低成本。例如,对于某些特定应用场景,可能无需采用最昂贵的电池管理保护芯片,而是可以通过选择合适的AFE和MCU来实现相同的功能并降低成本。

    三、数据处理和响应速度提升

    • 高效数据处理:AFE负责将电池的模拟信号转换为数字信号,并传输给MCU进行处理。MCU具有强大的数据处理能力,可以迅速对接收到的数据进行处理和分析,从而实现对电池状态的实时监测和精确控制。
    • 快速响应:由于MCU具有高速运算能力,因此当电池出现异常情况时,BMS系统可以迅速响应并采取相应的保护措施,如切断电池供电或发出警报,以确保电池组的安全运行。

    实际AFE+MCU项目

    AFE+MCU构建BMS的挑战

    由于AFE无法像电池管理保护芯片那样,做到电压、电流、温度的保护,所以只能靠MCU进行数据采集,通过软件进行异常保护。

    同时,数据采集在很大程度上,依赖MCU的ADC采集精度,所以数据采集的准确性也是一大挑战。

    另外,AFE+MCU架构,需要考虑到低功耗设计,MCU在静态下,需要做到100uA以内的静态功耗。

    电池均衡控制、放电电流多级保护,SOC、SOH算法全部依赖软件,所以需要一定的项目开发周期,软件测试也比较困难。


    DEMO原理图

    PT6105作为AFE

    这里我选用了华润微的PT6105作为AFE,其核心功能就三个:内置LDO、利用跟随器输出单节电芯电压供给MCU采集、MCU控制其进行电芯被动均衡。

    AFE外围

    总电芯电压采集

    温度检测

    TL431提供高精度基准电压

    按键唤醒、电量显示

    充电MOS控制

    放电电流检测

    电池ID识别、唤醒、单总线串口通信


    软件控制策略

    硬件特性
    *PT6105内置5V的LDO,给MCU及外围电路供电
    *用精度为0.5%的TL431作为MCU基准电压

    模拟量检测
    *MCU可检测电池包总压
    *MCU控制PT6105的VOUT输出单节电芯电压,从而监测每一节电芯电压
    *MCU可检测电池包温度
    *MCU可检测放电电流

    充电控制策略
    *MCU可控制MOS管来控制是否进行充电
    *休眠后O-CHG-CTRL为低电平,也就是只能特定的充电器才能对电池包进行充电

    唤醒策略
    *可通过按键唤醒
    *可通过充电器或者工具设备,ID、S脚提供的5V上拉进行唤醒

    低功耗策略
    *进入休眠后,O-GND为高电平,NTC、TL431回路不消耗电流
    *进入休眠后,O-AD-VBAT为低电平,总压检测回路不消耗电流
    *进入休眠后,O-LEDx为高电平
    *进入休眠后,O-AFE-EN为低电平,AFE进入休眠,减小模拟前端的功耗

    被动均衡策略
    *充放电时不可进行均衡
    *同一时刻只能均衡一节电芯电压
    *当充电器/工具拔出10S后,若无其他异常,最高节电芯电压比其他任何一节电压高0.1V,则进行均衡(例如4.25、4.15、4.14、4.13、4.12,最高电芯电压4.25,剩余电芯电压均值4.135),均衡到最高那一节电芯的电压小于其他节电芯电压均值/均衡超时,则均衡停止,进入休眠状态。
    *均衡电流由限流电阻控制,例如电压4.2V,限流电阻200Ω,则均衡电流为21mA

    SOC估算测量
    *采用OCV-SOC、安时积分法融合估算
    *在系统启动/更换电池/均衡完成时/充满电后/被唤醒时,此时电池一般为弛豫或静置状态,单纯通过OCV-SOC估算(线性插值法),获取SOC初始值,对于三元锂电池来说可行性较高
    *在放电时,采集放电电流,通过安时积分法,计算SOC

    温度保护
    *NTC悬空/短路
    *充电时,高温大于50℃置充电高温flag,低温低于-5℃置充电低温flag;温度低于45℃清除充电高温flag,温度高于0℃清除充电低温flag
    *放电时,高温大于75℃置放电高温flag,低温低于-20℃置放电低温flag;温度低于50℃清除放电高温flag,温度高于-10℃清除放电低温flag
    *温度在0-45℃清除所有温度异常flag

    充电过压保护策略
    *总压超过21V或单节最高电压超过4.25V时充电截止,总压低于20.5且所有电芯电压低于4.15V充电恢复

    放电保护策略
    *总压低于14V或单节最低电压低于2.6V时放电保护,总压高于15V且所有电芯电压高于2.8V放电恢复
    *对于2Ah电池包,放电电流大于2*10A且时间超过4S进入放电保护,放电电流大于2*20A且时间超过1S进入放电保护

    硬件故障
    *电芯最高与最低节压差超过1V时为电芯电压严重失衡,为故障状态;压差在0.5V以内恢复
    *当检测到电池总压低于5V,判定为保险丝烧坏/电压检测回路异常;总压高于10V恢复
    *当检测到任何一节电芯电压低于0.5V,为断线状态;所有电芯电压高于2V恢复
    *NTC悬空/短路为异常;温度在0-45℃恢复


    无情的AI生成结束语

    通过AFE(模拟前端)PT6105与MCU的紧密协作,我们成功实现了一个功能全面、性能卓越的电池管理系统(BMS)。该系统充分利用了PT6105的硬件特性,包括其内置的5V LDO为MCU及外围电路提供稳定供电,以及使用高精度TL431作为MCU的基准电压,确保了系统的高精度和低噪声性能。

    在模拟量检测方面,MCU能够准确检测电池包的总压、单节电芯电压、温度和放电电流,为电池状态的实时监测提供了可靠的数据支持。同时,充电控制策略、唤醒策略和低功耗策略的制定,进一步提升了系统的灵活性和能效。

    特别是在充电和放电过程中,系统采用了精细的控制策略,包括充电控制、休眠唤醒、低功耗管理以及被动均衡等,确保了电池的安全、稳定和高效运行。其中,被动均衡策略的实施,有效避免了电池组内部电芯之间的电压失衡,延长了电池的使用寿命。

    在SOC估算方面,系统采用了OCV-SOC和安时积分法相结合的估算方法,提高了SOC估算的准确性和可靠性。同时,温度保护、充电过压保护和放电保护策略的制定,为电池的安全使用提供了有力的保障。

    此外,系统还具备完善的硬件故障诊断功能,能够及时发现并处理电芯电压失衡、保险丝烧坏、电芯断线以及NTC异常等故障,确保了系统的稳定性和可靠性。

    综上所述,AFE+MCU实现的BMS系统具有高精度、高可靠性、高能效和低故障率等优点,为电动汽车、储能系统等领域提供了优质的电池管理解决方案。未来,我们将继续优化和完善该系统,以满足更多领域和场景的需求,推动电池管理技术的不断发展和进步。

    本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/21190.html

    如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

    相关文章

    RT-Thread+STM32L475VET6实现呼吸灯

    文章目录 前言一、板载资源资源说明二、具体步骤1.新建rt_thread项目2. 打开PWM设备驱动3. 在Stm32CubeMX配置定时器3.1打开Stm32CubeMX3.2 使用外部高速时钟,并修改时钟树3.3打开定时器1,并配置通道一为PWM输出模式(定时器根据自己需求调整)3.4 打开串口…

    新手小白如何挖掘cnvd通用漏洞之存储xss漏洞(利用xss钓鱼)

    视频教程和更多福利在我主页简介或专栏里 (不懂都可以来问我 专栏找我哦) 如果对你有帮助你可以来专栏找我,我可以无偿分享给你对你更有帮助的一些经验和资料哦 目录: 一、XSS的三种类型: 二、XSS攻击的危害&#x…

    详解TCP协议多种机制

    1.TCP报文格式 为了方便后续各位深入理解TCP机制,我们有必要先了解一下TCP的报文格式,首先我们先来看如下图 第四行那六个单词分别有不同的作用,初始为0,无作用,置为1即代表不同作用,具体后面会介绍。 我…

    Python蓝桥杯刷题-小数第n位详解

    题目描述 我们知道,整数做除法时,有时得到有限小数,有时得到无限循环小数。 如果我们把有限小数的末尾加上无限多个 0,它们就有了统一的形式。 本题的任务是:在上面的约定下,求整数除法小数点后的第 n 位开…

    android,flutter 混合开发,pigeon通信,传参

    文章目录 app效果native和flutter通信的基础知识1. 编解码器 一致性和完整性,安全性,性能优化2. android代码3. dart代码 1. 创建flutter_module2.修改 Android 项目的 settings.gradle,添加 Flutter module3. 在 Android app 的 build.gradl…

    Redis 客户端C++使用

    安装 redis-plus-plus 在C中使用Redis,通常需要借助第三方库来实现与Redis服务器的交互。目前比较流行的库有 redis-plus-plus 和 hiredis。redis-plus-plus 是基于 hiredis 实现的,hiredis 是⼀个 C 语⾔实现的 redis 客⼾端,因此需要先安装…

    Python的那些事第二十二篇:基于 Python 的 Django 框架在 Web 开发中的应用研究

    基于 Python 的 Django 框架在 Web 开发中的应用研究 摘要 Django 是一个基于 Python 的高级 Web 框架,以其开发效率高、安全性和可扩展性强等特点被广泛应用于现代 Web 开发。本文首先介绍了 Django 的基本架构和核心特性,然后通过一个实际的 Web 开发项目案例,展示了 Dj…

    亲测Windows部署Ollama+WebUI可视化

    一. Ollama下载 登录Ollama官网(Ollama)点击Download进行下载 如果下载很慢可用以下地址下载: https://github.com/ollama/ollama/releases/download/v0.5.7/OllamaSetup.exe 在DeepSeek官网上,你可以直接点击【model】 到达这个界面之后,…

    SpringBoot2.0整合Redis(Lettuce版本)

    前言: 目前java操作redis的客户端有jedis跟Lettuce。在springboot1.x系列中,其中使用的是jedis, 但是到了springboot2.x其中使用的是Lettuce。 因为我们的版本是springboot2.x系列,所以今天使用的是Lettuce。关于jedis跟lettuce的区别&#…

    自由学习记录(36)

    Linux Linux 是一个开源的操作系统,其内核及大部分组件都遵循自由软件许可证(如 GPL),允许用户查看、修改和分发代码。这种开放性使得开发者和企业可以根据自己的需求定制系统​。 “Linux”严格来说只是指由Linus Torvalds最初开…

    【数据分享】1929-2024年全球站点的逐年降雪深度数据(Shp\Excel\免费获取)

    气象数据是在各项研究中都经常使用的数据,气象指标包括气温、风速、降水、能见度等指标,说到气象数据,最详细的气象数据是具体到气象监测站点的数据! 有关气象指标的监测站点数据,之前我们分享过1929-2024年全球气象站…

    如何使用Redis实现分布式锁

    通常情况下,我们一般会选择基于 Redis 或者 ZooKeeper 实现分布式锁,Redis 用的要更多一点,我这里也先以 Redis 为例介绍分布式锁的实现。 基于 Redis 实现分布式锁 如何基于 Redis 实现一个最简易的分布式锁? 不论是本地锁还是…

    【办公类-90-02】】20250215大班周计划四类活动的写法(分散运动、户外游戏、个别化综合)(基础列表采用读取WORD表格单元格数据,非采用切片组合)

    背景需求: 做了中班的四类活动安排表,我顺便给大班做一套 【办公类-90-01】】20250213中班周计划四类活动的写法(分散运动、户外游戏、个别化(美工室图书吧探索室))-CSDN博客文章浏览阅读874次&#xff0…

    scroll、offset、client三大家族和getBoundingClientRect方法

    scroll、offset、client三大家族和getBoundingClientRect方法 1.offset(只能读,不能修改)2.client(只能读,不能修改)3.scroll滚动家族4.getBoundingClientRect方法 1.offset(只能读,不能修改) offsetParent:离当前元素最近的有定位的祖先元素…

    【LeetCode】LCR 139. 训练计划 I

    题目 教练使用整数数组 actions 记录一系列核心肌群训练项目编号。为增强训练趣味性,需要将所有奇数编号训练项目调整至偶数编号训练项目之前。请将调整后的训练项目编号以 数组 形式返回。 示例 1: 输入:actions [1,2,3,4,5] 输出&#…

    Ubuntu 20.04源码安装opencv 4.5.0

    安装依赖项 sudo apt install -y g sudo apt install -y cmake sudo apt install -y make sudo apt install -y wget unzip安装opencv依赖库 sudo apt-get install build-essential libgtk2.0-dev libgtk-3-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev l…

    阿里云上的网站配置HTTPS

    1. 获取SSL证书 创建证书 下载证书 下载 上传 .key .pem 文件 到 阿里云服务器 /etc/nginx/ssl nginx.conf 配置 server { listen 443 ssl; server_name yuming; ssl_certificate /etc/nginx/ssl/*.pem; ssl_certificate_key /etc/nginx/ssl/*.key;

    jetbrains IDEA集成大语言模型

    一、CodeGPT ‌CodeGPT‌是由CSDN打造的一款生成式AI产品,专为开发者量身定制。它能够提供强大的技术支持,帮助开发者在学习新技术或解决实际工作中的各种计算机和开发难题‌1。 idea集成 1.在线安装:直接在线安装 2.离线安装 JetBrains Mar…

    记录一次部署PC端网址全过程

    当我查看我之前写的文章时、顿时惊奇发出感慨:啥时候写的?是我写的么?疑惑重重… 所以说,好记性不如烂笔头。 记录一次部署PC端网址全过程 部署PC端网址分是三步:第一步:申请域名并映射到外网IP &#xff0…

    鸿蒙5.0实战案例:关于图像撕裂、掉帧等异常现象的原理以及优化方案

    往期推文全新看点(文中附带全新鸿蒙5.0全栈学习笔录) ✏️ 鸿蒙(HarmonyOS)北向开发知识点记录~ ✏️ 鸿蒙(OpenHarmony)南向开发保姆级知识点汇总~ ✏️ 鸿蒙应用开发与鸿蒙系统开发哪个更有前景&#…