本文将深入介绍备用电池单元(BBU)中微控制器的软件,该软件主要负责确保进程平稳运行,从而为BBU的高效率和容量提供保障。硬件和软件必须顺畅协作,才能实现满足规范要求的系统级解决方案。将良好的管理方式放在优先位置,可以确保电路具有优异安全性和性能,此方法简单而有效,不容小觑。
每个BBU模块均采用一个微控制器和一个电池管理系统(BMS)微控制器。在ADI公司的参考设计中,超低功耗Arm®微控制器MAX32690充当微控制器,负责执行六个重要进程(见图1)。MAX32625微控制器充当参考设计的BMS微控制器。BMS微控制器负责与ADBMS6948芯片通信,并将所有测量数据传递给微控制器。
图1:主控制器的管理操作周期
微控制器的六个进程如下:
- 执行管理任务和通过I2C协议与各种外设进行通信。
- 处理由背板电压数据提供的放电序列。
- 选择恒流模式或恒压模式处理电池的充电工作。
- 转变BBU模块的充放电状态。
- 故障处理和响应。
作为Modbus从机响应Modbus命令。
01微控制器进程执行管理任务和通过I2C与各种外设通信
在众多辅助器件连接到模块电路的情况下,微控制器用作I2C主器件。核心微控制器收集并保存来自辅助器件的数据,同时充当I2C主器件。为了推进各种任务顺利进行,微控制器还负责控制各种I2C辅助器件。多款I2C辅助器件示例如下:
- BMS微控制器采用MAX32625。
- LTC2971,双通道电源系统管理器。
- MAX31760,精密风扇速度控制器。
- 24AA512T/EEPROM,用作数据存储器,可检索和存储重要数据。
LTC2991温度传感器。
BMS微控制器(MAX32625)
微控制器定期与BMS微控制器(MAX32625)通信,接收有关各个电池包的电芯电压、充电状态(SOC)、健康状态(SOH)、电芯温度以及电池包可能出现的任何故障的更新信息。更新每四分钟进行一次,因为电芯电压、SOC、SOH和温度预计不会快速变化。如果发生任何故障,两个微控制器之间的共享引脚将置为高电平,并触发微控制器上的中断,进而立即读取BMS微控制器,获取有关故障的信息。微控制器中有专用I2C端口,仅用于与BMS微控制器通信,以支持两个微控制器之间快速通信。
微控制器时常通过电源管理总线(PMBUS)协议与LTC2971通信,检查电压、电流和温度测量结果以及有无警告和故障。当测量背板输出电压参数时,LTC2971起到快速反馈作用,以便微控制器调整其例程。此外,该器件会调整电源变换器的反馈电压,并允许其将输出电压下调1%,从而确保放电工作模式下输出电压处于调节范围内。
MAX31760负责调节BBU模块的风扇速度。脉冲宽度调制的占空比由微控制器配置,以通过I2C调节风扇的速度。微控制器根据温度以及背板负载电流或电池包负载电流,计算并调整所需的风扇速度
板载EEPROM充当整个BBU模块的外部存储器件。微控制器通过I2C写入闪存页,定期将电池电压水平、SOC、SOH、电芯类型和型号年份以及电路板温度等重要信息保存到EEPROM中。该数据每小时更新一次,用户可以在维护和故障排除期间访问。
LTC2991是一款八通道电压、电流和温度传感器。该器件借助放置在电池模组内部重要位置的各种数字传感器,监测电池模块的温度。根据温度读数,微控制器可以调节风扇速度,确保电源板和电池堆的工作温度保持在适当水平,并且始终低于40°C。
02选择恒流模式/恒压模式处理电池的充电微控制器还负责处理电池的充电模式。开始时,电芯的电压容量非常低,微控制器允许以最大5A的电流为电芯充电。一旦电芯处于稳定状态,微控制器就会将充电电流调整为2A,此时每个电芯的电压尚未达到4V。利用来自BMS微控制器的数据持续监测电芯电压,并使用模数转换器外设测量整个电池层电压,微控制器便可以判断所有电芯是否都已达到4V,如达到4V,微控制器便会将充电模式切换为恒压模式。这需要将充电电流限制为仅0.5A。微控制器将继续监测整个电池层电压水平,同时从BMS微控制器获取数据,检查所有电池是否充满电。如图2所示。
03电源变换器充放电状态的转变充分了解BBU在电源中断期间如何从待机模式转变到电池供电模式至关重要。为了防止任何意外断电和数据丢失,模块的微控制器密切监视背板电压水平。LT8228的默认充电模式设置在49V至53V左右,但如果微控制器检测到背板电压在2ms内降至48.5V以下,则会立即将LT8228方向引脚从充电模式切换到放电模式,这种模式持续四分钟以处理停电情况。这四分钟里模块将持续放电,以确保供电不间断。
如果电芯的条件允许且背板电压供应仍未恢复,模块将再等待一分钟,以便电芯冷却,然后再次进入放电模式。电源恢复后,BBU将切换回主电源,并开始为电池充电。有关如何操作和维护BBU的具体说明,请参考图3了解此过程。
04故障处理和响应制定明确的故障处理计划非常重要。为了避免产生压力和得到不好的结果,提前发现潜在问题并制定处理方案至关重要。如需确保系统操作顺利运行,了解即将发生的情况,那么与相关系统中集成的器件进行顺畅通信也是非常必要的。请记住,错误和故障难以完全避免,而应对方式才是决定结果的关键。因此,微控制器经过专门设计,可减少OCP指定故障的误报发生率。微控制器中的固件程序执行算法检查以检测可能触发故障的前兆现象。检测到相关征兆后,算法将执行验证检查,只有在问题连续发生或在设定的周期数内发生时,才会确认故障。这种做法非常明智,可以确保识别和解决真正的故障。
05作为Modbus从机响应Modbus命令Modbus功能代码对于在Modbus网络的器件之间建立通信至关重要。这些代码确定器件之间发送的请求或响应的类型,例如读取或写入数据。一些比较常见的Modbus功能代码包括模块指标、模块工作状态、模块寄存器地址和故障状态。
Modbus命令的处理完全由微控制器控制。微控制器可以为OCP规范认为必要的所有基本Modbus命令提供支持。这些命令有权更改模块的设置,或提供有关电池SOC、运行状况、电芯电压水平、充电和放电电流以及其他参数的重要信息。微控制器验证消息后,就会根据收到的命令做出响应。
微控制器利用ADM2561和ADM30611收发器,通过UART协议处理来自各种外设的数据,并将其传输到机架微控制器,如图4所示。采用隔离型收发器的优点在于,它不受系统级电磁干扰的影响,并且符合OCP制定的电磁兼容性(EMC)标准。此外,机架到PC的通信是通过ADM2561完成的,ADM2561通过DB9(D-Subminiature)连接器和RJ45互联网端口连接到主机PC。
06总结
控制器架构必须要满足稳健可靠、高效且适应性强的要求,同时应该具有明确定义的输入和输出,并可以处理复杂算法例程。该架构应该是模块化的,以便支持无缝的算法更改和更新。此外还应内置有安全机制,以防范系统故障或事故,并能轻松处理意外事件。总的来说,高质量的控制器架构应提供可靠且高效的系统控制,同时可以降低错误或故障发生的概率。