其他人已经提供了有关此特定协议的线索,因此我将只讨论解码协议的一般机制。您已经指定了“wire”,但这种通用方法也可以并且已经应用于光纤和 RF 协议。
制定调查计划
最好的开始通常不会被提及,但在实践中却非常重要。这一步是制定计划。您想了解有关协议的哪些信息?你打算用这些知识做什么?与您的情况一样,您所知道的可能包括协议的名称及其目的。它也可能是您可以收集或推断的任何线索。例如,您知道它是具有多个通道的低延迟音频。您是否拥有可以控制和观察的设备,或者您只是被动地倾听?是否有监管机构或标准机构可能拥有有关协议的文件?您是否寻找过专利或专利申请?是否有您可以阅读的具有类似目的的协议?
目视调查信号
人眼和大脑非常擅长模式识别,因此有用的第一步是将感兴趣的信号转换为视觉表示。对于有线 2 线连接,我通常会首先在线路上使用一个简单的万用表。这给出了可能存在哪些电压的粗略指示。这对人身安全和您可能连接的任何其他设备的安全都很重要。在这种情况下,由于它通过以太网布线,并且考虑到目的,它很可能与以太网电压兼容,并且可能使用 +/- 2.5V 的以太网电压。因此,我将使用的下一步是连接示波器。最简单和最典型的“示波器设置”只是电压随时间变化的图表。这可以提供很多见解。例如,是否使用了离散电压电平?如果是这样,多少(2、4、更多?)?信号似乎是打包的还是或多或少是连续的?信号变化之间的最短持续时间是多少?更高级的示波器还有其他有用的功能,例如频谱分析和/或 FFT 以及时间和电压测量。
尝试以已知方式修改信号
如果您有可以控制的设备,请尝试仅更改一件事,看看它如何影响输出信号。例如,尝试通过单个通道发送 1kHz 正弦波音频信号。现在通过 2 个通道发送相同的信号。尝试更改音频频率。尝试更改音频幅度。所有这些都可以引导您对协议有一些了解。
看看您是否可以以数字形式捕获信号
如果您可以忠实地将信号数字化并将其作为文件存储在计算机中,那么您就可以使用更多资源进行调查。您可以在计算机上进行频谱分析。您可以使用现成的或您自己的自定义软件在计算机上尝试有关调制类型、通道化等的理论。这对我们大多数人来说是有趣的部分!
测试你的理论
如果你认为你已经弄清楚了协议,并且如果你有可以控制的设备或至少可以观察到更多的样本,那么用这些数据测试你的理论。查看您的计算机实现的协议是否与您观察到的相符。理想情况下,您还可以构建自己的界面并假装是协议的一端或另一端。就音频设备而言,如果您不太正确,则不太可能伤害到任何东西。其他领域(例如车辆发动机控制)可能需要更加谨慎。看看您是否可以测试极端情况和错误条件。
分享你的结果
如果可以,并且有责任这样做,请考虑分享您的结果。很可能某个地方的某个人也有同样的兴趣。通过共享笔记,与单独工作相比,你们都会取得更大的进步。很多时候,我很幸运地在 github 或 sourceforge 等上找到了一个半生不熟的部分实现,这为我节省了大量时间。我也试图以同样的精神分享我的发现。
祝好运并玩得开心点!