2017-04-06 110 views
0

我正尝试使用USB串行连接与GBA ST2 Bill Validator进行通信。一切正常工作在Windows(该设备然后连接到COM端口),但不是在Linux上(到目前为止与Ubuntu 14.04,16.04和Debian 8)。USB串行通信在Linux上不起作用(Bill Validator GBA ST2)

默认情况下,cdc_acm驱动程序用于连接到/ dev/ttyACMx,但它不回答任何请求。 (然而,当在睡眠模式下请求时,它立即醒来)。

的dmesg的lsusb相关输出:

$ dmesg 
[26600.821389] usb 2-1: new full-speed USB device number 37 using ohci-pci 
[26601.307233] usb 2-1: New USB device found, idVendor=16f9, idProduct=0003 
[26601.307237] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 
[26601.307239] usb 2-1: Product: GBA ST2 
[26601.307240] usb 2-1: Manufacturer: Astrosystems 
[26601.307242] usb 2-1: SerialNumber: 06010010001 
[26601.316173] cdc_acm 2-1:1.0: ttyACM0: USB ACM device 

$ lsusb -t 
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ohci-pci/12p, 12M 
    |__ Port 1: Dev 37, If 0, Class=Communications, Driver=cdc_acm, 12M 
    |__ Port 1: Dev 37, If 1, Class=CDC Data, Driver=cdc_acm, 12M 
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/12p, 480M 

强制设备何时使用usbserial司机,我可以用它下一个Linux VM(VirtualBox虚拟托管在Windows上) ,但不是在普通的Linux机器上。我用下面的命令来使用usbserial司机:

sudo modprobe -r cdc_acm 
sudo modprobe usbserial vendor=0x16f9 product=0x0003 

相关的dmesg的lsusb输出:

$ sudo dmesg 
[26022.203166] usbserial: USB Serial support registered for generic 
[26022.203188] usbserial_generic 2-1:1.0: Generic device with no bulk out, not allowed. 
[26022.206497] usbserial_generic: probe of 2-1:1.0 failed with error -5 
[26022.206530] usbserial_generic 2-1:1.1: The "generic" usb-serial driver is only for testing and one-off prototypes. 
[26022.206532] usbserial_generic 2-1:1.1: Tell [email protected] to add your device to a proper driver. 
[26022.206533] usbserial_generic 2-1:1.1: generic converter detected 
[26022.207075] usb 2-1: generic converter now attached to ttyUSB0 

lsusb -t 
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ohci-pci/12p, 12M 
    |__ Port 1: Dev 35, If 0, Class=Communications, Driver=, 12M 
    |__ Port 1: Dev 35, If 1, Class=CDC Data, Driver=usbserial_generic, 12M 
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/12p, 480M 

我如何在Linux下该设备进行通信?任何想法将不胜感激。

+0

Stack Overflow是编程和开发问题的网站。这个问题似乎与题目无关,因为它不涉及编程或开发。请参阅帮助中心的[我可以询问哪些主题](http://stackoverflow.com/help/on-topic)。也许[超级用户](http://superuser.com/)或[Unix&Linux堆栈交换](http://unix.stackexchange.com/)会是一个更好的地方。另请参阅[我在哪里发布有关Dev Ops的问题?](http://meta.stackexchange.com/q/134306) – jww

+0

我问自己同样的问题。我选择最后在这里发布我的问题,因为这个问题可能与程序方面有关(如使用的驱动程序)。我会尝试另一个更合适的地方。 –

回答

0

取决于什么协议的纸币识别器使用的时刻,根据http://www.intelligentvending.co.uk/payment-systems-telemetry/banknote-readers-note-stackers/gba-st2.htm它能够在ccTalkMDB,沟通并行脉冲串行SSP

您可以使用socat与CDC ACM设备进行通信。使用socat发送AT命令的例子是https://unix.stackexchange.com/questions/97242/how-to-send-at-commands-to-a-modem-in-linux

socat建立你有什么命令序列发送连接取决于纸币鉴别本协议......