帮助解码这个UART串行信号

逆向工程 串行通讯
2021-07-11 15:12:26

我试图闯入门铃。它有一个明确标记的 TX 引脚。

这是我的拉布拉多示波器/逻辑分析仪的输出......不过我无法理解。有任何想法吗?我的设置为 9600 波特/8/N。

拉布拉多的输出

1个回答

每个 UART 数据包都包含一个始终为 0 的起始位和 1 或 2 个始终为 1 的停止位。如果您检查跟踪的中间,则有单个 1 位,它们之间有一些空格。每个位都是停止位,在每个停止位之后,一个新的起始位开始。这些是数据包的边界。如果您绘制一些宽度相同的矩形,您可以将图片分成12 个 UART 包

在此处输入图片说明

现在我们的工作很简单,我们只需要找出每个数据包中的值。根据我的测量,消息是:0x5F 0xAC 0x11 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x32。

关于通信设置,如果您测量单个停止位的持续时间,您可以通过 f = 1/t 公式计算波特率是多少。很难从这张低分辨率图片中弄清楚,但如果我假设 14.02 毫秒的时间增量是数据包的总长度,并且我们有 12*(1+8+1) = 120 位,那么单个位的持续时间是 116.83我们,所以波特率为 8559 波特。最接近的有效 UART 波特率为 9600 波特,所以我认为它应该是正确的值。

我认为波特率为9600baud(应该用工具测量),有1个起始位,1个停止位,没有奇偶校验包数据长度为8位