如何监控/反向工程 RS485 连接的显示设备流量?

逆向工程 解密 Python 动态分析 编码 协议
2021-06-24 21:33:06

任何人都可以为我指出有关逆向工程 RS484 连接电池管理系统的教程等的正确方向吗?

我有一个大的 12V 锂电池模块,它有一个内部 BMS 和它的官方诊断程序,它在旧的 XP 笔记本电脑上运行,它使用 RS485-USB 加密狗将两者连接起来。

我在 XP 笔记本电脑上运行 RealTerm,监听 RS485 连接,可以看到大量流量在两者之间来回移动。流量由大量数据字节组成,其中一些是 ASCii 纯文本,clearlu 将自身标识为与电池/诊断应用程序相关(其中包含制造商名称等)。

我想在破译流量方面得到一些帮助,因为它必须代表笔记本电脑诊断应用程序中显示的电池内部电压和温度等。

最终,我想构建一个非常基本的基于 PIC 的(因为这是我已经知道的 - 我很欣赏可能是时候转向 Arduino 或类似的了)“主”BMS 来监控多个电池模块并控制充电和/或在任何电池模块出现故障时触发警报。

问候,MW。

3个回答

Renogy 刚刚为我解决了整个问题。他们终于完成了自己的软件。

因此,他们现在拥有 USB 电缆和软件,可以更好地控制其控制器,而不是嗅探 RS485

Rs485 只是物理接口,您的 bms 使用一些逻辑协议与管理/报告软件进行通信。您可以尝试在这里找到众所周知的 485 接口协议:https : //en.wikipedia.org/wiki/RS-485#Applications 也许您的 bms 使用了其中的一些。对于此类设备,modbus 协议非常普遍。

我正在与 Renogy Commander 一起做同样的事情。点赞。

它与抓取网站非常相似,因为很多都是文本和图形来绘制屏幕,​​然后是带有我想要的值的变量。

这是一个可以帮助您指明正确方向的搜索: RS-485 监控

RS485 是一种总线式系统,因此对其进行监控不会中断流量。我不想控制任何事情;只是想定期记录数据。

我从一个 RJ-45 分线板开始,这样我就可以轻松地拔下 RS-485 转换器所需的电线。这是我买的一个: RJ-45 breakout

然后拿起一个RS485-to-USB单元: RS485-to-USB

如果这个不是那么贵,我也会得到这个: RS485 I/O 突破

您可能会发现这些引出线很有趣: RJ-45 上的 RS485 引出线

或者这个: RJ-45 上的 RS485 引脚

或者这个: RJ-45 上的 RS485 引脚

特别是这个仅用于监控的: RS-485 到 RJ-45 公头

所以我在突破口上连接一根辫子,作为常规连接的直通,但只拔下这些引脚进行监控。

仅供参考,大多数用于 RS485 的 RJ-45 端接电缆将是直通电缆。以下是一些示例: RS-485 的 RJ-45 端接电缆引脚

与像这样的 TIA-568A 或 568B 的普通以太网电缆相反: 用于以太网的 TIA-568 A/B 电缆

它们不可互换。

正如我所搜索的,我发现很少有人尝试这样做,但是有很多关于 RS-485 的信息。Modbus 是一回事,但我的品牌似乎使用非标准接线。

现在我正在使用我的 Win7 机器(RS485-to-USB),但如果我可以获得 Debian 驱动程序,我很快就会将其全部转移到 Raspberry Pi 3。

听起来你有点领先于我。

我正在用 Python 处理所有数据。