如何停止USB缓冲?

时间:2010-07-16 16:48:10

标签: windows linux usb

我正在通过USB读取实时数据,但数据已缓冲。我该如何停止缓冲?

1 个答案:

答案 0 :(得分:5)

<强>的Linux

使用udev更改latency_timer。

在ubuntu上,在/etc/udev/rules.d为您的设备创建规则。例如99-xsens.rules

在该文件中创建规则以匹配您的设备并设置latency_timer。例如,对于我的设备,这是:

KERNEL=="ttyUSB[0-9]*", SUBSYSTEMS=="usb-serial", DRIVERS=="ftdi_sio", ATTR{device/latency_timer}="2"

这导致设备等待更短的时间,然后才决定不再有缓冲的传入数据。在这种情况下,我的设备从等待16ms到等待2ms。

例如,使用udevadm info -a -n /dev/ttyUSB0找出要在规则中匹配的键值对。要记住一些棘手的事情,但是一旦我知道使用udev规则,找到资源来帮助解决这些问题很容易。

这是writing udev rules上的一个很好的参考页面。它很旧,udev工具的语法已经改变,但概念仍然有效。

<强>窗

在Windows上,您使用Device Manager->Ports->COM Port->Port Settings->Advanced->Latency Timer