识别未知协议的引脚分配(Rollei 6000 Camera-Lens 通信)

逆向工程 串行通讯 协议 沟通
2021-07-07 08:42:18

我想用 Arduino 板控制镜头,但当然,我首先必须了解协议的工作原理。使用示波器,我能够发现协议使用高和低状态(大约 20 毫秒长)来传输信息,但甚至不知道地面在哪里,该信息相当不可靠。所以到目前为止我所知道的是:

有 10 个引脚,其中两个必须为镜头中的电机供电和接地。通信是数字的,但不一定是串行的(例如,相机在 Pin X 上发送高电平,镜头中的快门打开,在下一个高电平时快门关闭)我的猜测是该协议实际上是串行的,因为似乎有一个控制镜头中检查快门速度准确性的机制(需要知道它们;快门速度拨盘在相机上)

我如何找出该连接器的引脚排列?

镜头来自带有 PQ 快门的 Rollei 6000 系列。通过谷歌搜索,我只能找到有关与电影背面交流的信息。

谢谢你的回答。

1个回答

我首先要使用的是数字示波器,可能带有逻辑分析仪。这样的东西是负担得起的,并允许您同时监控多达 8 个通道。能够看到改变高/低的不同线之间的增量时间可能对您有很大帮助。(我不隶属于这家特定公司;他们的产品从网站描述中看起来不错;您可能会也可能不会在其他地方找到更好的产品/更好的价格)。

一旦您有理由假设其中一条线路使用串行通信,您可能会对Bus Pirate感兴趣以进一步调查。总线海盗还允许您模拟串行传输,而无需对 arduino 进行大量编程;一旦你知道协议是如何工作的,你就可以开始实现它(或使用预制的库)。

由于您不知道哪条线是 GND,我会将地连接到相机电池的接地引脚。这样,您肯定知道它不在可能改变其电压的数据线上,并且一旦您确定了似乎“始终高”或“始终低”的线路,您就知道哪些是(可能)电源供应。

根据硬件的物理布局,当镜头在相机上时,可能很难将逻辑分析仪/总线盗版连接到引脚。在这种情况下,对我有用的是制作一个纸模板,在应该有针脚的地方有孔,并在其中两个模板之间粘上一堆薄铝箔条纹(当然这些条纹需要彼此绝缘) . 如果用薄纸完成,你应该可以把它放在相机和镜头之间。

此外,我建议使用逻辑分析仪使用某种精确的时间源,并在您尝试相机设置和镜头反应时使用廉价的网络摄像头制作电影。这将允许您稍后将单个电影帧与信号转换相匹配,因此您在“我按下了哪些开关”、“相机/镜头做了什么”和“数据线上出现了哪些信号”之间有更好的参考比当你尝试在实验时写下东西时。