簡體   English   中英

USB串行通信在Linux上不起作用(Bill Validator GBA ST2)

[英]USB-Serial communication not working on Linux (Bill Validator GBA ST2)

我正在嘗試使用USB串行連接與GBA ST2賬單驗證器進行通信。 在Windows上一切正常(然后將設備連接到COM端口),但在Linux上一切正常(到目前為止,對於Ubuntu 14.04、16.04和Debian 8)。

默認情況下,使用cdc_acm驅動程序,該驅動程序附加在/ dev / ttyACMx上,但不回答任何請求。 (但是,當在睡眠模式下被請求時,它會立即喚醒)。

dmesglsusb的相關輸出:

$ 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

當強制設備使用USB驅動程序時,我可以在Linux VM(Windows上托管的Virtualbox)下使用它,但不能在普通的Linux計算機上使用它。 我使用以下命令來使用usbserial驅動程序:

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

相關的dmesglsusb輸出:

$ 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 linux-usb@vger.kernel.org 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下如何與該設備通信? 任何想法將不勝感激。

要看什么協議的紙幣識別器使用的時刻,根據http://www.intelligentvending.co.uk/payment-systems-telemetry/banknote-readers-note-stackers/gba-st2.htm它是能夠溝通在ccTalk上MDB並行脈沖串行SSP

您可以使用socat與CDC ACM設備進行通信。 https://unix.stackexchange.com/questions/97242/how-to-send-at-commands-to-a-modem-in-linux上使用socat發送AT命令的示例

socat建立連接,您必須發送的命令序列取決於票據驗證器的當前協議...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM