美文网首页
BPT通信协议说明

BPT通信协议说明

作者: leon_e | 来源:发表于2018-08-16 14:16 被阅读0次

    设备通信接口说明

    发现接口

    客户端通过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
    说明:

    • 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
    

    相关文章

      网友评论

          本文标题:BPT通信协议说明

          本文链接:https://www.haomeiwen.com/subject/htznbftx.html