我有两个使用两条线连接的芯片。一个似乎是时钟线(占空比为50%),但不一定是(有时恒定为高)。另一行似乎是完全随机的,但仍然是数字的。可能是数据。它还不使用上拉电阻,而其他两个上拉电阻。

如何找出线路上使用的协议(I2C,SPI,RS232等),是否有任何标准?

评论

可能与arduino.cc/forum/index.php?topic=19191.0
相关
唯一真实的方法是查看流量,应用每个标准,然后查看它是否起作用...有时恒定为高的时钟可以通过时钟延长将i2c的时钟反转,但这不能解释第三条线。 br />
@RobertMason我不知道流量,尽管我知道设备可能正在发送8位字节。第三根线不必一定是协议的一部分,它也可以用于其他目的。

听起来像i2c,与第三行无关。

最简单的方法是通常查看芯片数据表。那么您根本不需要做任何工作。

#1 楼

我的猜测是该协议是标准的,在两个设备之间使用非标准协议会涉及到位碰撞,这不是很有用。
然后假设该协议是标准的。
这不是SPI,SPI需要4线路上班。 I2C需要两个,RS232仅需要两个。
我不知道第三行工作是什么,也许它用于芯片之间的触发/同步。我将打开微控制器的数据表,查看芯片支持哪些协议,通常如果它们是新的32位SOC,它们都支持CAN,SPI,USART等。
然后我将检查相应线路的引脚排列,以查看它们连接到芯片上的哪个端口。这将为您指出所使用的确切协议。

然后连接一个逻辑分析仪,例如此分析仪,该分析仪与一个软件捆绑在一起,可以对根据该协议传输的数据进行模拟。

评论


我发现位冲击在嵌入式系统中非常常见。但是,数据表将是我的第一种方法,尤其是如果两个芯片中的一个不是微控制器的话。

– Cyber​​gibbons
13年4月5日在13:36