开放标准/多功能交流电池/数据规范
此部分描述了从控制头到交流电池组以及反之的数据传输。
数据传输仅为单向,但通过所有电池组进行链式传输。因此,可以在链中轻松地寻址 1..10 个电池组,而无需区分地址。
数据传输始终由主控制单元发起。它将数据发送到第一个电池组。然后,第一个电池组将数据发送到下一个电池组,依此类推。最后一个电池组将数据返回到主控制单元。
应该可以使用简单的微控制器激活交流电池组。因此,传输应通过 UART 接口完成。
逻辑电平:0V = 隐性电平,显性电平为 3..3,5V,最大电流为 10mA。
通信速度:125kHz(1MHz 的分数)
数据格式:8 位 LSB 优先,偶校验,1 个起始位,2 个停止位。每个帧都包含一个校验和,该校验和是对字节进行 mod256 求和,并对位进行反转。
数据传输分为三组:主控到所有,主控到专用电池组,以及电池组到主控。
如果主控要将数据发送到所有电池组,则使用此方法。
主控发送一个报头来传达数据的含义。然后会传输一个或多个数据字节(参见表格)。在所有数据字节之后,添加一个校验和(对字节进行 mod256 求和并反转位)。然后会进行至少 2 个字节的断开,以信号传达传输的结束(如果无法从报头中获取长度)。
电池组仅将此消息转发到下一个电池组,无需修改。
报头 0x02:平均电流对于电池管理非常重要,因为交流电池组没有自己的电流传感器。此消息必须至少每秒发送一次。
报头 | 数据字节 | 含义 |
---|---|---|
0x02 | 2 个短整型 | 流过的平均电流。-512A..0A..+511A,分辨率为 15.625mA/增量 |
0x0D | 32 字节字符串 | 将当前用户标识写入非易失性存储器 |
0x10 | ||
0x23 | 1 个字节 | 紧急停机。数据内容:0xFA |
0x3E | ||
0x46 |
此方法用于将不同的数据写入电池组。
主控发送一个报头来传达数据的含义。然后会传输多个针对所有电池组的数据字节(含义:参见表格)。第一个电池组在报头之后直接从主控接收其相关数据。然后,它将报头和下一个数据(不包括自身相关数据)转发到第二个电池组,并生成一个新的正确校验和。每个电池组的消息都会缩短。如果字节数正确,则仅将报头和校验和返回到主控。
报头 | 数据字节 | 含义 |
---|---|---|
0x5B | 每个开关电池 1 个 | 设置电池旁路的放电限值。0...250 增量 = 0..100%,分辨率为 0.4%/增量。251...255 = 电池旁路 |
0x68 | 每个开关电池 1 个 | 设置电池旁路的充电限值。0...250 增量 = 0..100%,分辨率为 0.4%/增量。251...255 = 电池旁路 |
0x75 | ||
0x8A | ||
0x97 | ||
0xA4 |
通过设置限值,可以覆盖内置的电池管理,并通过控制头对其进行优化。通常,例如在放电模式下,放电电池会失效且不再使用。因此,可能的输出电压会下降。电池管理可以按时禁用(旁路)最空的电池,以便所有电池都具有相同的剩余电量。相同的办法也可以用于充电。
此方法用于从电池组读取不同的数据。
主控发送一个报头来传达请求数据的含义,以及一个校验和。第一个电池组添加请求的数据,并将报头、其数据和一个新的校验和转发到第二个电池组。下一个电池组也附加其数据,依此类推。在最后一个电池组之后,主控会接收链中所有电池组的数据。使用此方法,可以了解链中包含多少个电池组以及它们包含多少个开关电池。
报头 | 数据字节 | 含义 |
---|---|---|
0xB9 | 每个开关电池 1 个 | 读取当前容量。0...250 增量 = 0..100%,分辨率为 0.4%/增量。251...255 = 电池缺陷。 |
0xC1 | 每个电池组 2 个整型 | 读取电池组的电流限值。0..511A,分辨率为 15,625mA/增量(可能取决于温度) |
0xDC | 每个电池组 3 个字节 | 读取温度:最小工作温度、实际温度、最大工作温度。比例:0...250 = -50..+200 °C,251...255:N/A。 |
0xEF | 每个电池组 32 字节字符串 | 读取供应商名称(用于租赁管理) |
0xF2 | 每个电池组 32 字节字符串 | 读取用户标识(用于租赁管理) |
0xFD | 每个电池组 32 字节字符串 | 读取序列号和类型 |