BPT通信协议说明

2018-08-16  本文已影响0人  leon_e

设备通信接口说明

发现接口

客户端通过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-接口定义如下:


p+p-示意图.png

设备基本使用流程

发现和绑定流程

发现和绑定流程.png

基本测试流程

BPT基本测试流程.png

设备命令接口说明

status

功能:获取当前通道状态
参数:status
返回:通道,状态码,当前正在测试的id,当前测试的index,当前充电电流值,当前放电电流值,当前电压值,上一次对半过流点测试下限,上一次对半过流点测试上限

  1. 此处的二分法测试过流点下限,二分法测试过流点上限二分法测试过流点的结果。
  2. 状态码表示当前通道板卡状态。
状态码 含义 说明
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
说明:

# 在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,或者失败返回对应错误代码,错误代码为负数)
说明:

过流点测试(命令在新板上已废弃)

功能:二分法测试过流点,一般情况下使用充电/放电过流保护点扫描测试即测出过流点,此命令作为备选方案采用二分法测试过流点。
参数:最小电流,最大电流,电流保持时间,释放时间,最大测试循环次数,激活电流,激活时间
返回:测试的结果通过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
上一篇下一篇

猜你喜欢

热点阅读