条码扫描枪的 “PS/2 键盘 wedge” 接口是如何实现的? 请问这个有对条码扫描枪比较熟悉的高人吗? 最近我在做一款条码扫描枪,条码扫描枪在用PS/2 键盘 wedge 接口时, 需要同时通过PS/2接口连接键盘和扫描枪到PC上,显然扫描枪不能影响PC和键盘的双向通讯。 *********注意,时钟CLK是设备(键盘或者扫描枪发给PC的)********* 连接方式见下面的图1。
为实现如上PS/2连接,我的实现方案之一如图2。 键盘和扫描枪的PS/2总线并联在PC的PS/2总线上。 这种连接方式在扫描枪或者键盘主动向主机发送数据的时候,没有问题, 因为以上2者谁想发送数据,谁就驱动原来处于三态的DATA,和CLK两个信号。 问题出在,问题在于同时连接键盘时扫描器不能接收来自PC的命令。 因为,按照PS/2协议所描叙,当PC想让键盘接收命令时,会拉低CLK脚, 键盘响应后就会驱动CLK脚发出时钟。如果此时扫描器以为是PC机要自己接收命令, 也驱动发出CLK信号,显然CLK信号就会冲突。 “除非扫描器不接收来自PC的命令”,就不会使CLK产生冲突,也就不会影响到 PC机和键盘间的原有双向通讯。 ====这里要问下对扫描枪操作比较熟悉的朋友,用PS/2 键盘 wedge连接PC时,扫描枪需要通过PS/2接口 接收来自PC的命令吗?=====
实现方案之一如图3 网上发现别的公司的扫描器对外有4根PS/2线接口,一对接PC,一对接键盘。猜测他们使用CD4052等 双向模拟开关,在默认的情况下,一直使键盘的PS/2总线和PC相连。如图7所见。这样, 扫描器不会影响PC和键盘通讯。在需要扫描器向PC发数据的时候,断开键盘和PC的连接, 使扫描器和PC的PS/2总线连通。 不过有点疑问没有想清楚,当模拟开关CD4052使PC连接键盘时,如果PC机要发命令给扫描器, 那PC是如何通知扫描器让其断开 PC和键盘 连接的呢? 同样,当CD4052使扫描枪和PC连接时,如果PC机要发命令给键盘, 那PC是如何通知扫描器让其断开 PC和扫描器 的连接的呢? 用时间轮回打开CD4052的方式,似乎也不是最佳方案,太费DSP的控制任务了。 有高人指点吗? |