当前位置: 首页 > news >正文

利用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系统具有高精度、高可靠性、高能效和低故障率等优点,为电动汽车、储能系统等领域提供了优质的电池管理解决方案。未来,我们将继续优化和完善该系统,以满足更多领域和场景的需求,推动电池管理技术的不断发展和进步。

    相关文章:

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

    前言 实际BMS项目中,可能会综合考虑成本、可拓展、通信交互等,用AFE(模拟前端)MCU(微控制器)实现BMS(电池管理系统)。 希望看到这篇博客的朋友能指出错误或提供改进建议。 有纰漏…...

    【教学类-89-06】20250220新年篇05——元宵节灯笼

    背景需求: 每年元宵、国庆都回带孩子做灯笼。用python对"对折灯笼“的纸模进行不同图案的填充(区分物权) 【教学类-39】A4红纸-国旗灯笼纸模(庆祝中华人民共和国成立74周年)_a4 打印 灯笼-CSDN博客文章浏览阅读1…...

    C++ Primer 类的静态成员

    欢迎阅读我的 【CPrimer】专栏 专栏简介:本专栏主要面向C初学者,解释C的一些基本概念和基础语言特性,涉及C标准库的用法,面向对象特性,泛型特性高级用法。通过使用标准库中定义的抽象设施,使你更加适应高级…...

    【UCB CS 61B SP24】Lecture 4 - Lists 2: SLLists学习笔记

    本文内容为重写上一节课中的单链表,将其重构成更易于用户使用的链表,实现多种操作链表的方法。 1. 重构单链表SLList 在上一节课中编写的 IntList 类是裸露递归的形式,在 Java 中一般不会这么定义,因为这样用户可能需要非常了解…...

    【科研绘图系列】R语言绘制小提琴图、散点图和韦恩图(violin scatter plot Venn)

    禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍加载R包数据下载画图1画图2画图3画图4画图5画图6画图7参考介绍 【科研绘图系列】R语言绘制小提琴图、散点图和韦恩图(violin & scatter plot & Venn) 加载R包 library…...

    Linux中POSIX应用场景

    Linux 提供了丰富的 POSIX(Portable Operating System Interface)标准接口,这些接口可以帮助开发者编写可移植、高效的应用程序。POSIX 标准定义了一系列系统调用和库函数,涵盖了文件操作、进程管理、线程管理、信号处理、同步机制…...

    量子算法导论

    重学了量子算法,不知道是温故而知新,还是之前的教材没有讲过这个概念。 如果把(图灵机)计算机比作一个查询机器,输入x通过f(x)作用得出结果,而查询的过程就是计算的过程。 中文解释…...

    nasm - BasicWindow_64

    文章目录 nasm - BasicWindow_64概述笔记my_build.batnasm_main.asmEND nasm - BasicWindow_64 概述 学习网上找到的demo. x64和x86的汇编源码还差挺多的。 x64的汇编代码不好写,细节整不对,程序就不运行。 如果要查为啥不运行,也要看和正向…...

    SpringBoot:SSL证书部署+SpringBoot实现HTTPS安全访问

    一、前言 SSL协议介于TCP/IP协议栈的第四层(传输层)和第七层(应用层)之间,为基于TCP的应用层协议(如HTTP)提供安全连接。它通过在客户端和服务器之间建立一个加密的通道,确保数据在传…...

    selenium爬取苏宁易购平台某产品的评论

    目录 selenium的介绍 1、 selenium是什么? 2、selenium的工作原理 3、如何使用selenium? webdriver浏览器驱动设置 关键步骤 代码 运行结果 注意事项 selenium的介绍 1、 selenium是什么? 用于Web应用程序测试的工具。可以驱动浏览…...

    Spark提交任务

    1、Spark提交任务到Yarn 1.1、DwKuduApp spark-submit --class com.io.etl.dwkudu.DwKuduApp \ --files /etl/etl-dwkudu/conf/doris.property,/etl/etl-dwkudu/conf/redis.property,/etl/etl-dwkudu/conf/log4j.property \ --master yarn --deploy-mode cluster \ --driver-…...

    游戏引擎学习第113天

    仓库:https://gitee.com/mrxiao_com/2d_game_2 黑板:优化的基本过程 在游戏编程中,优化是一个非常重要的学习内容,尤其是想要成为专业开发者时。优化的核心是理解代码的执行速度,以及如何提升其性能。在这个阶段,已经…...

    token是什么

    在自然语言处理(NLP)和机器学习的背景下,token 是指模型在处理文本时的最小单位。通常,这个单位可以是单词、字符,或者词的一部分。具体来说,token 的定义取决于你使用的模型和它的分词方式。 举个例子&am…...

    23. AI-大语言模型-DeepSeek赋能开发-Spring AI集成

    文章目录 前言一、Spring AI 集成 DeepSeek1. 开发AI程序2. DeepSeek 大模型3. 集成 DeepSeek 大模型1. 接入前准备2. 引入依赖3. 工程配置4. 调用示例5. 小结 4. 集成第三方平台(已集成 DeepSeek 大模型)1. 接入前准备2. POM依赖3. 工程配置4. 调用示例…...

    IPv6报头40字节具体怎么分配的?

    目录 IPv6报头结构 字段详解 示例代码:IPv6报头的Python实现 输出示例 IPv6协议是为了解决IPv4地址耗尽问题而设计的下一代互联网协议。与IPv4相比,IPv6不仅提供了更大的地址空间,还简化了报头结构,提高了网络设备的处理效率。…...

    驱动开发、移植

    一、任务明确:把创龙MX8的驱动 按照我们的要求 然后移植到 我们的板子 1.Linux系统启动卡制作, sd卡 先按照 《用户手册—3-2-Linux系统启动卡制作及系统固化》 把创龙的Linux系统刷进去。 2. 把TLIMX8-EVM的板子过一遍 把刚刚烧好系统的sd卡插入 创…...

    BFS与Flood Fill:算法原理、实现细节与复杂度分析

    目录 1. 概述 2. BFS 的基本原理 3. Flood Fill 算法 4. BFS 实现 Flood Fill 的步骤 5. C 实现 6. 代码解析 7. 复杂度分析 8. 应用场景 总结 1. 概述 Flood Fill 算法是一种用于填充封闭区域的算法,常用于图像处理、绘图工具和游戏开发中。BFS&#xff08…...

    计算机网络基础杂谈(局域网、ip、子网掩码、网关、DNS)

    目录 1. 简单局域网的构成 2. IP 地址 3. 子网掩码 4. IP地址详解自定义IP 5. IP 地址详解 6. 网关 7. DNS 域名解析 8. ping 1. 简单局域网的构成 交换机是组建局域网最重要的设备,换句话说,没有交换机就没法搭建局域网 交换机不能让局域网连…...

    雷龙CS SD NAND(贴片式TF卡)测评体验

    一、产品概述 近期获赠雷龙科技(Longsto)推出的CS系列贴片式SD NAND存储解决方案,包含两片工业级贴片式NAND芯片(CSNP16GCR01-AOW)及全兼容转接板。该方案支持TF卡形态扩展,实现高可靠性嵌入式存储应用。 …...

    【Alertmanager】alertmanager告警系统原理剖析与应用实战,应有尽有非常全面

    ✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全…...

    《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》

    引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...

    现代密码学 | 椭圆曲线密码学—附py代码

    Elliptic Curve Cryptography 椭圆曲线密码学(ECC)是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础,例如椭圆曲线数字签…...

    Axios请求超时重发机制

    Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...

    《基于Apache Flink的流处理》笔记

    思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...

    【JavaSE】绘图与事件入门学习笔记

    -Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...

    Maven 概述、安装、配置、仓库、私服详解

    目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

    Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信

    文章目录 Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket(服务端和客户端都要)2. 绑定本地地址和端口&#x…...

    高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数

    高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...

    VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP

    编辑-虚拟网络编辑器-更改设置 选择桥接模式,然后找到相应的网卡(可以查看自己本机的网络连接) windows连接的网络点击查看属性 编辑虚拟机设置更改网络配置,选择刚才配置的桥接模式 静态ip设置: 我用的ubuntu24桌…...

    代码随想录刷题day30

    1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...