在设备开发中,常用到基于USB的虚拟串口,此类接口在linux平台上被枚举为ttyUSB设备。

当有多个ttyUSB设备时,常常导致分不清是哪个功能接口。

其实还是可以很容易分出来的,在sysfs中通过以下步骤查看可以轻而易举的搞得一清二楚。

查看sys目录,会看到bus子目录

/#: ls /sys

block     class     devices   firmware  kernel    pmu       zte

bus       dev       dwc_usb   fs        module    power

查看bus子目录,会有USB子目录

/#: ls /sys/bus

clocksource  i2c          rpmsg_zx29   serio        usb

cpu          platform     scsi         spi          usb-serial

查看USB子目录,会有devices和drivers子目录

/ # ls sys/bus/usb

devices            drivers_autoprobe  uevent

drivers            drivers_probe

在devices目录下,即是所有的USB设备

/ # ls sys/bus/usb/devices

1-0:1.0  1-1      1-1:1.0  1-1:1.1  1-1:1.2  1-1:1.3  1-1:1.4  1-1:1.6  usb1

任选一个查看,比如选择1-1:1.2,可以看到该设备的诸多属性

/ # ls sys/bus/usb/devices/1-1:1.2

bAlternateSetting     driver                subsystem

bInterfaceClass       ep_03                 supports_autosuspend

bInterfaceNumber      ep_83                 ttyUSB0

bInterfaceProtocol    interface             uevent

bInterfaceSubClass    modalias

bNumEndpoints         power

同时可以看到,它所对应的ttyUSB设备是ttyUSB0,但是这个是哪个接口,是什么功能呢?

其实1-1:1.2这个名字已经表明了是接口2,但是对于普通人来说很难去记,还是进一步查看确认一下才好。查看接口号:

bInterfaceNumber代表接口号,可以看到是02

/ # cat sys/bus/usb/devices/1-1:1.2/bInterfaceNumber

02

查看对应的功能接口描述,interface代表功能接口描述,可以看到是USB-AT,表明是AT口

/ # cat sys/bus/usb/devices/1-1:1.2/interface

USB-AT

由此可知,ttyUSB0对应的是AT口。

其他的所有接口也可以通过该方法查看。

Logo

更多推荐