EBC-B10电池容量测试仪之通信协议分析

7 篇文章 0 订阅

手上有台EBC-B10电池容量测试仪,挺好的国货。可以用来测试电池容量,也可以用来给锂电池充电。

对于有数块1S,3S电池的人来说,充电参数略多设置有些麻烦。好在可以通过串口接电脑设置参数。不过想着还是通过手机操作要方便快捷。

大体上有2个方案:

1.自己写下位机固件,工作量有些大,目前看也没有太大必要。

2.实现通信协议与下位机交互(zke可以考虑开源下协议,如果可以固件代码也开源下)。网上没有找到它的通信协议,想来也不会太复杂。毕竟是单片机的方案。

尝试分析一下:

整理结果如下:

1. 可能是充电时,干扰大。通信采用9600bps 5V TTL电平,使用了奇偶校验位(好像是奇校验)。如果奇偶校验不对,下位机是不会有反应的。

2. 上位机命令。

连接命令

FA 05 00 00 00 00 00 00 05 F8 

停止命令

FA 02 00 00 00 00 00 00 02 F8

断开连接命令

FA 06 00 00 00 00 00 00 06 F8

启动命令(带4个参数)

示例参数:charge mode 1.33 A(85h) 4.13v(19d) 0.56a(38h)

消息头工作模式最大充电电流max current最大电压(voltage)截止电流(min current)校验字节消息尾
FA       11(charge mode)00 8501 AD00 380 F8 

检验算法:

1.就是有效载荷数据作一个按字节异或操作。

u8 TX_CheckSum(u8 *buf, u8 len) //buf为数组,len为数组长度
{
    u8 i, ret = 0;

    for (i = 0; i<len; i++)
    {
        ret ^= *(buf++);
    }
        return ret;
}

注:一开始以为就是常用的crc8校验,然而不是的,找遍了crc8都不配。看了下数据规律,发现不可能是crc;然后猜测是checksum(8),然而不是的。最后观察数据规律。发现是简洁的按字节异或操作(伽罗华域checksum?)。

参数设置的小坑。

电压电流参数,每2.4v,或者2.4A都会补一个0x10的偏移。猜测是线性修正偏差?

试验数据如下:

FA 11 01 00 04 EF 00 96 6D F8  //2.4a(f0) ->2.4a is point
FA 11 00 EF 04 EF 00 96 83 F8   // 2.39a(ef)

FA 11 00 C8 01 00 00 96 4E F8   //2.40 v(f0) -->+0x10

FA 11 00 C8 00 EF 00 96 A0 F8   //2.39v (ef)  

FA 11 01 A0 04 DD 01 6E 06 F8  //11.81v(49dh) 40h=11.81/2.4=4.92

3. 下位机回传参数

消息头(machine type)当前充电电流timestamp?(capacity) (?)(max current)now voltagemin current)校验字节消息尾
FA        charge mode 1.33 A(85h) 4.13v(19d) 0.56a(38h)0B00 5011 1D00 04 00 00(?) 00 5001 B4 00 328 F8 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值