逆向工程非标准LIN协议

逆向工程 协议
2021-07-03 14:37:41

我正在尝试对来自模型飞机喷气涡轮机的 ECU/GSU 协议进行逆向工程,以制作遥测适配器。过去我解码了其他几种协议并取得了很好的成功,但这个特别困难,所以我想我会寻求帮助。

我有一个 Arduino Nano 作为 GSU 仿真器,带有一个 LIN 收发器并在 Saleae 逻辑分析仪上验证通信。

ECU 使用 LIN 接口,但使用我不知道的专有协议。为了阅读它,我使用了一个带有电平转换器的 Arduino,我验证了输入的数据是正确的。

当 ECU 是独立的时,它会发送几个字符串,这些字符串似乎是对总线节点的询问,但显然没有人回复。

0x0A 0x00 0x00 0x00 0x00 0x0A
0x14 0x00 0x00 0x00 0x00 0x14
0x1E 0x00 0x00 0x00 0x00 0x1E
0x28 0x00 0x00 0x00 0x00 0x28

当 GSU 连接到 ECU 时,它会0.2在第一个字符串 ( 0x0A 0x00 0x00 0x00 0x00 0x0A)立即响应 ( ms ),以6字节回复。每次都是略有不同的回复。

这样的回复之后是ECU发送一个数据流,这就是我需要读取的数据。

我尝试用 Arduino 模拟这些 GSU 回复中的一些,但是如果 arduino 正在询问它,ECU 永远不会将数据流发送回总线;它只是忽略它并继续询问,好像什么也没发生。随着 GSU 的询问,ECU 做出回应。

我附上了一个 Excel 表格,其中显示了一些回复和我玩过的一些数据处理。似乎回复是一个6字节流,其中每个字节的 MSB(最高有效位)是01我不确定这里的规则以及它为什么会改变。

这对任何人都有意义吗?任何逆向工程专家可以分享一些想法吗?到目前为止还没有能够让 ECU 回答 Arduino。

谢谢你的帮助。

ECU / GSU 初始化过程

0个回答
没有发现任何回复~