小牛v2中控收不到信号怎么解决

小牛v2中控收不到信号怎么解决,第1张

准备材料:一个sim卡座,一个移动物联网卡,tb上十多块钱搞定。
第一步:拆下中控
第二步,拆下板上的贴片SIM卡,图上8脚的小芯片,焊上图中上方的sim卡座
第三步:装车,稳稳的上线了。

小牛电池协议逆向

小羽的知识库
写博客,写专栏,写影评。
来自专栏项目 & 解决方案
背景
不喜欢挤地铁或是挤公交,骑自行车又太累,于是购置了一台电动自行车作为代步工具。上下班 3 公里的通勤距离大约 20 分钟以内。
业余时间打算骑车到处逛逛,原装电池只提供 40km 的续航。又购置了备用电池,可额外提供约 50km 的续航。可问题是备用电池是小牛青春版,自己的电动车是小牛 G0,两者不兼容(小牛 G0 的电池要 800-1000 元,青春版的电池约 300-400 之间)。可以只接电源不接通讯线保证正常行驶,但没有电池电量显示功能。
目的
希望做一个监控装置,可以接入小牛青春版电池的通讯接口,提供电量统计功能,在电量低时提醒我充电。
如果有时间的话,还希望提供两个附加功能
数据传输,考虑到电动自行车不在室内,无法接入 WIFI。需要找到一种物联网的方式,尽量不要用 SIM 卡,因为每个月都要有最低资费,物联卡或者 NBIoT 的物联卡流量也较贵;
GPS 追踪,可以做行车记录,防盗等功能。
总体方案
电量统计方案
小牛青春版电池提供 RS485 接口,同时网络上有用于 windows 端的电池诊断软件(提取码 9jbd),可以显示电池序列号与每个电池单元的电压、电池余量等信息。
该电池当前只有诊断软件可用,暂未搜索到具体的协议分析内容,只能通过分析该通讯协议拿到电池数据
数据传输方案
在腾讯的物联网平台看到我所处的城市 LoRa 网关较多,甚至可以自己部署腾讯连连的网关。LoRa 的通讯距离在几公里左右,可以满足电动车的数据传输要求。
同时,为保证项目的通用性,需要提供通用化的 2G/NBIoT 接入方案。
GPS 方案
GPS 传输需要购买 GPS 模块,同时接入电动车自己的震动传感器实现警报感知。
以上方案都只是传感器接入、数据传输方案,在用户界面上拟采用 hass 作为分析处理终端。
实现细节
电量统计
通过 RS485 协议读取电池温度、容量等信息,需要先分析协议的具体内容,再确定硬件方案,最后对固件进行定制。
协议逆向
环境搭建
考虑到这次逆向的协议为 RS485 协议,使用一个 USB2RS485 模块将 RS485 协议转为串口,并在桌面端使用诊断软件。那么可以直接看串口接收到的数据,并不需要逻辑分析仪。
因为诊断软件只能在 windows 端运行,所以使用 virtual box 安装 windows 系统,并安装诊断软件和串口助手。
串口监听方式分析
USB2RS485 模块会在系统中生成一个串口设备,诊断软件又打开了这个设备,且串口只能被打开一次,所以我们需要一款软件来对串口数据进行监听。本项目采用串口监控精灵(提取码 2xas)实现该功能。
下面是一次监控的数据交互:
可以看到共有诊断软件发送了两种数据帧,分别是:
问询数据帧一:68 31 CE 68 02 02 35 5F 67 16 问询数据帧二:68 31 CE 68 02 02 60 6A 9D 16
并且电池对两个问询都有不同的回应,猜测一个数据帧是电池基本信息,另一个是电池电压电流等信息。
对回应数据帧做分析,有了如下初步判断:
68 31 CE 68 是帧头;
第 4 个字节(从 0 开始,下同) 0x02表示问询,0x82表示回应;
所有的数据帧都以0x16做结尾。
再看问询帧和回应帧的第 5 字节,结合帧长度,计算可得该字节表示有效数据的长度,此时倒数第 2 字节的含义尚不明确。
重复不断地接收数据并观察,发现回应帧一数据量少,有 0x2C 个,回应帧二数据量大,有 0x37 个。同时发现回应帧一的数据非常稳定保持不变,而回应帧二经常会有若干数据的变动。所以回应帧一是电池固定信息,回应帧二是电池容量信息。
此处要特别注意,电池固定信息中有很多锚点,比如电池序列号、软件版本号等,这些 ascii 信息理论上应该在串口监控中显示出来,但实际上并没有。
接着观察回应帧二,连续出现 5 个 0x51,并且该电池有 5 个温度传感器显示,不由得怀疑是温度数据。将 0x51 转为十进制的 81,与实际温度不符。怀疑是华氏温度,转为摄氏温度为 27 度多,比较接近,实际显示温度 30 度。使用吹风机热风挡加热电池,打算观察温度数据变化。但可能吹的地方不是温度传感器,温度变化非常小。
持续观察回应帧二,连续出现 13 个 0x40 0x01,而电池是 13 个基本单元,怀疑是单个电池的电压数据。将 0x4001 换为十进制的 16385,与实际电压值 3V 左右相去甚远。考虑字节序问题,但也差很多。甚至考虑了传输时的 MSB 和 LSB 问题,与实际值也差很多。继续充电至满电量,此时的数据变为 0x41FE,基本可以确定是电池电压,但具体换算关系不明朗。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/dianzi/10705921.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存