我正在尝试回收防盗系统键盘。
我的目标是将此键盘用作系统外围设备。
该键盘通过rs485总线与主设备进行物理连接。 br />要利用此键盘,第一步是了解这两个设备(主机及其键盘)之间的通信。
我的第一个想法是点击总线并嗅探流量。
做为此,我在这两个设备之间收集了少量已建立的对话框转储,但是由于水龙头的作用,我对我记录的字节方向一无所知。
所以我的第二步是播放手动操作中间游戏。
我设置了一个设备,放置在主机和它的键盘之间,以切断总线并使用两个收发器,一个面向主机,另一个面向键盘。然后,我编写了一个简单的程序来将所有内容从一个接口转发到另一个接口。
感觉到传输中可能有问题,我的USB加密狗上的rs485芯片和键盘上的rs485芯片不同(sipex sp485ec键盘-st 485ecdr usb加密狗),我试图将逻辑分析仪直接点击到微控制器的串行引脚上。这样做,我验证了通过USB加密狗发送字节后,我可以在MCU的引脚上接收它们。
#1 楼
主设备很可能需要键盘在特定时间窗口内应答。添加中间人违反了这些条件。要分析数据方向,可以尝试在设备之间的线路中串联一个小阻值电阻(100 — 1k)。将示波器连接到线路。信号电压电平会有所不同,具体取决于驱动线路的那一侧。
#2 楼
通常,解决方案比您想象的要容易。但是在继续告诉您问题出在哪之前,我想向大家问一个简单的问题:您知道吗,如果在串行通信中,停止位设置错误,您可以成功接收和解码流吗?
坦白说,我不知道,这是我一直把时间浪费在诸如此类的简单问题上的主要原因。
您还应该我了解到,根据我的经验,我从未需要更改停止位设置。直到现在为止。
您可能已经猜到了,问题在于“停止位”设置是错误。
代替传统的9600,8,n,1,此设置需要9600,8,n,2。
猜猜是什么,我需要很长时间才能弄清楚。我最终直接在MCU串行引脚tx和rx引脚上检测串行数据,因为我担心rs485驱动程序可能出了点问题。
最后,比较原始MASTER和我产生的波形我终于看到了区别。防盗系统。