设备通信接口说明
发现接口
客户端通过UDP
向子网224.224.1.1
组播地址9001
端口上发送字符串命令IDN?
,子网内的设备收到消息后将向客户端端口9002
上回复自身设备信息ip,port,name,aliveFlags
。
字段 | 说明 |
---|---|
ip | 设备当前ip,若设备使用的是动态ip,每次开机获取后的ip可能不是固定的。 |
name | 设备名,此设备名为设备出厂唯一 的ID,不可更改,可作为设备唯一标记 |
aliveFlags | 通道存活(如果通道有板卡且正常工作认为是存活)标记位,如0x05表明第1、3通道有正常工作板卡。设备共有8个卡槽。 |
命令接口
客户端可通过UDP
向设备9004
端口发送控制命令字符串,如果设备有返回,将通过9003
端口发送到客户端。
硬件接口
9针通讯口的板卡管脚定义如下图所示:

p+/p-接口定义如下:

设备基本使用流程
发现和绑定流程

基本测试流程

设备命令接口说明
status
功能:获取当前通道状态
参数:status
返回:通道,状态码,当前正在测试的id,当前测试的index,当前充电电流值,当前放电电流值,当前电压值,上一次对半过流点测试下限,上一次对半过流点测试上限
- 此处的
二分法测试过流点下限,二分法测试过流点上限
为二分法测试过流点
的结果。 - 状态码表示当前通道板卡状态。
状态码 | 含义 | 说明 |
---|---|---|
0 | 通道在线并空闲 | 通道空闲或者上一次测试已经完成,此时通道可接受测试命令。 |
1 | 通道正在测试 | 通道忙,需等待测试完成才能进行下一次测试。可使用stop 命令终止当前测试 |
2 | 通道不在线 | 通道损坏或者通道没有插板卡 |
3 | 通道错误 | 通道错误,需重启或者更换板卡 |
范例:
regulate
功能:校准通道
参数:regulate ch;[volt/ccrt/dcrt/resis]
描述:其中chFlags
为通道标记位,如第4通道则chFlags=0x8,第123通道则chFlags=0x07。
返回:通道,状态,index,内部采样计数,0,0,0,当前电压值,版本号
范例:
regulate 0;volt
regulate 0;volt
regulate 1;ccrt
regulate 1;ccrt
regulate 1;dcrt
regulate 1;dcrt
regulate 1;resis
config
功能:全局配置
参数:config 4.7,2,0.1,0.5,0.1,0.5,1.0,0.1
配置的顺序为: 充电限压
,自动初始化电压
,自动初始化电流
,自动初始化时间
,COCP电流阀值
,COCP释放时间
,DOCP电压阀值
,DOCP电流阀值
test
功能:测试命令。设备有多个测试类型如静态AC测试、充放电测试、过流保护测试等功能。
参数:test chFlags;id,params...
描述:其中chFlags
为通道标记位,如第4通道则chFlags=0x8,第123通道则chFlags=0x07。id为测试类型id,每个id的参数列表和返回不尽相同,具体参数和返回如下表所示(表格中所有参数和返回的电流单位A,电压单位V,时间单位s)。
测试命令id,和参数表
id | 功能 | params | 备注 |
---|---|---|---|
3 | 静态AC测试 | 测试时间 |
test 15;3,2 ,在1,2,3,4通道上进行AC静态测试,持续2s |
4 | 短路保护测试 | 测试时间 |
test 15;4,2 ,在1,2,3,4通道上进行短路测试,持续2s |
5 | 放电测试(AC/叠加i2c电压测试) | 放电电流,放电时间 |
test 1;0.5,2 ,有两条返回,包括常规测试结果和i2c电压测试结果 |
6 | 放电过流保护点扫描 | 最小电流,最大电流,测试时间 |
test 1;0.5,2.5,3 ,在通道0上将放电电流从0.5A动态拉升到2.5A,拉升时间3s |
7 | 强制电池初始化测试 | (充电)唤醒电流,持续时间 |
test 1;0.5,1 ,在通道0上采用充电0.5A持续1s的方法唤醒电池 |
8 | 充电测试 (AC/叠加i2c电压测试) | 充电电流,充电时间 | 有两条返回,包括常规测试结果和i2c电压测试结果 |
9 | 充电过流保护点扫描 | 最小电流,最大电流,测试时间 | 参照6 放电过流保护点扫描 ,格式一致 |
10 | 对半法充电过流测试 | 最小电流,最大电流,电流保持时间,释放时间,测试次数 |
test 1;10,1.7,2.3,1,0.6,8 ,将对电池从1.7A到2.3A进行对半过流点测试(充电过流),每次电流保持1s,释放时间0.6s,总共测试8次,总测试时间至少为8*(1+0.6)=12.8s |
11 | 对半法放电过流测试 | 最小电流,最大电流,电流保持时间,释放时间,测试次数 | 参照11 对半法放电过流测试 格式一致. test 1;11,1.7,2.3,1,0.6,8 ,对半法测试第0通道放电过流点,查找区间1.7~2.3A,保持时间1s,释放保持时间0.6s |
测试id和返回表(测试返回由get
命令获取)
返回结果的格式为通道id;命令1结果;命令2结果;命令3结果...
,其中一条基本测试结果返回命令n结果
的结构为测试index,测试命令n的ID,数值0,数值1,数值2,数值3,数值4
。如果测试有多条回复(如充电、放电测试有2条结果返回),则使用;
隔开。不同通道的返回结果用\n
隔开。每个测试项返回的数值的意义不尽相同,返回的5个数值具体含义如下表所示:
id | 测试含义 | 数值0 | 数值1 | 数值2 | 数值3 | 数值4 |
---|---|---|---|---|---|---|
3 | 静态AC测试 | 充电电流 | 放电电流 | 电压 | 1kHz交流内阻 | |
4 | 短路保护测试 | 充电电流 | 放电电流最大值 | 短路电压 | 短路保护时间 | 初始化后电压 |
5 | 放电测试(叠加AC) | 充电电流 | 放电电流 | 放电电压 | 放电过流保护时间 | 1kHz交流内阻 |
6 | 放电过流保护点扫描 | 充电电流 | 放电OCP值 | 过流保护电压 | 放电过流保护时间 | 自动初始化后电压 |
7 | 强制初始化测试 | 充电电流 | 放电电流 | 初始化后电压 | ||
8 | 充电测试(叠加AC) | 充电电流 | 放电电流 | 充电结束后电压 | 充电过流保护时间 | 1kHz交流内阻 |
9 | 充电过流保护点扫描 | 充电OCP电流 | 放电电流 | 充电释放后电压 | 充电过流保护时间 | 自动初始化后电压 |
16 | 充电/放电测试(叠加i2c) | 温度电阻值 | SDQ/HDQ电压 | ID电阻值 | SDA电压值 | SCL电压值 |
范例:
# 在1,2,3,4通道上进行AC静态测试,持续2s
test 15;3,2
# 通道2[0~3]充电测试0.1A持续1s
test 4;8,0.1,1
# 通道2[0~3]放电测试0.1A持续1s
test 4;5,0.1,1
get(命令在新板上已废弃)
功能:获取上一测试的结果
参数:get chFlags
,其中chFlags
为通道标记位,如第4通道则chFlags=0x8,第123通道则chFlags=0x07。
说明:get返回第一行为状态码
,0表示没有错误,非0负数对应相应的错误。当状态码错误时,应当停止解析并丢弃此返回串,按照错误码作出相应的错误提示。详细返回格式参照test
命令。
状态码
的定义如下:
状态码 | 含义 |
---|---|
0 | OK,测试成功或者命令执行成功 |
-1 | Failed,测试失败或者命令执行失败 |
-14 | 命令参数错误 |
-18 | |
-19 | |
-20 |
# 获取1,2,3,4通道的测试结果
get 15
# 仅仅获取4通道的测试结果
get 8
i2c(命令在新板上已废弃)
功能:配置i2c接口
参数:i2cflags
说明:参数为四位比特的整型
// Bit1-0:电压选择
// Bit2:上拉
// Bit3:8/16位读写模式
bit[0:1] 0/1/2/3: 3.3v/1.8v/2.5v/1.2v
bit[2] 0/1: with/no pull_up
bit[3] 0/1: 8/16bit mode
i2cget
功能:读i2c接口
参数:i2cget chFlags,devAddr,memAddr,nBytes,w(双字节模式,可选)
返回:通道,状态码,读到的字节数,b0,b1,b2..bn
说明:
-
chFlags
: 通道掩码。 -
devAddr
: 设备地址,十进制表示。 -
memAddr
: 要读取的地址,十进制表示。 -
nBytes
: 要读取的字节数 -
w
:代表双字节模式,一些设备但字节读取即可(默认),双字节读取时在命令后加w
选项
# 在6通道(0~7通道中的6通道,掩码64)读取设备0x55(十进制为85)上6(十进制)地址4个字节。
-> i2cget 64,85,6,4
# 6通道,状态码0(成功),4个字节从低到高分别为“204,11,126,14”
# 例如“126,14”对应8~9地址上的值表示电压换算为电压为“14×256+126=3710mV”
6,0,4,204,11,126,14
#双字节模式读取0通道下0xb设备的0xcc地址,总共读取2个字节,返回87,66即ascii码'WB'
-> i2cget 1,11,204,2,w
0,0,2,87,66
i2cset
功能:写i2c接口
参数:i2cset chFlags,devAddr,memAddr,nBytes,b0,b1,b2..
返回:通道,状态码
(写入成功返回0,或者失败返回对应错误代码,错误代码为负数)
说明:
-
chFlags
: 通道掩码。 -
devAddr
: 设备地址,十进制表示。 -
memAddr
: 要写入的地址,十进制表示。 -
nBytes
:要写入的字节数 -
b0,b1,b2..bn
:要写入的字节,用逗号隔开
过流点测试(命令在新板上已废弃)
功能:二分法测试过流点,一般情况下使用充电/放电过流保护点扫描测试
即测出过流点,此命令作为备选方案采用二分法测试过流点。
参数:最小电流,最大电流,电流保持时间,释放时间,最大测试循环次数,激活电流,激活时间
返回:测试的结果通过status
命令获取
说明:
# 对半法测试第0通道放电过流点,查找区间1.7~2.3A,保持时间1s,释放保持时间0.6s
test 1;11,1.7,2.3,1,0.6,8
set
功能:设置系统相关硬件接口
参数:set key1,value1;key2,value2;key3,value3...
返回:无
说明:
此命令支持多个选项配置,包括充电电压、i2c电压、i2c上下拉、led等设置。
// power switch, 设置继电器开关
set ps,1
set ps,0
// power volt,设置充电电压
set volt,4.35
set pv,4.35
// i2c电压
set i2c-volt,1.8
// i2c上拉
set i2c-pullup,1
set i2c-pullup,0
// io设置,打开第4、2通道的IO1开关
set io1,A
网友评论