2012-12-18 21 views
11

我需要处理两个通过两个串行连接发送调试数据的自定义硬件。这些串行连接通过两个串行到USB转换器。串口至USB设备具有相同的供应商编号,设备编号以及显然相同的序列号。如何从我的串行端口始终记录数据?

下面是问题:我想分别记录两个串行端口。自定义硬件需要不断重新启动,并且它们是否连接到相同的/dev/ttyUSB*是完全随机的。我怎样才能让他们每次都选择相同的设备路径?我可以让它取决于它插入什么端口,但这似乎有点哈克。

所以,我跑了反对udevadm的输出差异,像这样:

$ udevadm info -a -p `udevadm info -q path -n /dev/ttyUSB1` > usb1 
$ udevadm info -a -p `udevadm info -q path -n /dev/ttyUSB2` > usb2 
$ diff usb1 usb2 

The output of the diff is long; you can see it here

Grepping串行(两者相同):

$ udevadm info -a -p `udevadm info -q path -n /dev/ttyUSB2` | grep serial 
SUBSYSTEMS=="usb-serial" 
ATTRS{serial}=="0001" 
ATTRS{serial}=="0000:00:1d.7" 

其他信息:

我正在使用PuTTY从串口读取数据。
OS:

$ uname -a 
Linux xxxxxxxx.localdomain 2.6.32-279.14.1.el6.x86_64 #1 SMP Tue Nov 6 23:43:09 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux 
+3

请参阅http://askubuntu.com/questions/49910/how-to-distinguish-between-identical-usb-to-serial-adapters –

+0

@KarlBielefeldt我宁愿不让它依赖于它是哪个端口插入,但如果这是唯一的方法,我会采取。 –

+1

据我所知,如果序列号相同,那*就是唯一的方法。 –

回答

1

请检查USB串行转换器是基于FTDI芯片? (您可以查看驱动程序文件名)

如果是这样;您有机会更改序列号,甚至更改制造商信息。

http://www.ftdichip.com/Support/Utilities.htm 检查工具; MProg和FT_PROG实用工具。

+0

我没有ftdi芯片,因为它使用了cp210x驱动程序。但是,一些谷歌搜索显示我有一个相当于cp210x的:http://www.silabs.com/support%20documents/technicaldocs/an144.pdf 我看起来这个芯片也支持它。 (cp2103) –

+0

很高兴知道它给你一个见解...希望你能使它工作... – freewill