标签: usbserial

如何在Windows下嗅探USB端口?

我不时需要在Windows下转储USB流量,主要是为了支持Linux下的硬件,因此我的主要目标是生成用于协议分析的转储文件.

对于USB流量,似乎SniffUsb是明显的赢家......它在Windows XP下运行(但不是更晚),并且具有比早期版本更好的GUI.它产生巨大的转储文件,但一切都在那里.

但是,我的设备实际上是一个USB串行设备,所以我转向Portmon,它可以在没有USB开销的情况下嗅探串口流量.

windows usb usbserial sniffing

37
推荐指数
5
解决办法
8万
查看次数

如何以编程方式拔出和重新插入任意USB设备?

我正在尝试修复一个伪装成虚拟COM端口的无响应USB设备.手动重新插入工作,但最多可能有12个这样的单位.是否有API命令来执行unplug/replug循环的程序化等效操作?

c++ usb winapi usbserial

34
推荐指数
2
解决办法
5万
查看次数

绕过android usb主机权限确认对话框

我想在工业中使用android,

我可以使用slickdevlabs.com库连接到Profilic和Ftdi USB转串口芯片,没有任何问题.

应用程序有一个服务,它在启动时启动,连接到USB串口并执行其他操作.

我的问题是主机设备没有与用户进行任何交互,

所以当android问

Allow the app "MyAPP" to access the USB device ?
[checkmark]Use by default for this USB device
Cancel            OK
Run Code Online (Sandbox Code Playgroud)

没有人点击确定.

即使我默认检查使用...复选框,如果我重新插入USB,或重新启动主机设备,它会在下次启动时再次询问.

我使用SuperUser模式运行服务和应用程序,但没有区别,它再次询问.

我添加了意图过滤但没有区别,它每次都会问我.

        <intent-filter>
            <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
            <action android:name="android.hardware.usb.action.USB_DEVICE_DETACHED" />
        </intent-filter>

        <meta-data
            android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"
            android:resource="@xml/device_filter" />
        <meta-data
            android:name="android.hardware.usb.action.USB_DEVICE_DETACHED"
            android:resource="@xml/device_filter" />
Run Code Online (Sandbox Code Playgroud)

任何意见如何绕过或禁用它?

我有root和SU访问权限.

permissions usb android usbserial root

31
推荐指数
5
解决办法
4万
查看次数

USB连接的"信号量超时时间已过期"错误

我收到这个错误......

信号量超时期限已过期.

在这条线上......

ThePorts.ActivePort1.Open();

......但我不时会得到它.当它发生时,它会一次又一次地发生.然后问题消失了几个小时或几天,然后又回来了.

串口是连接蓝牙的USB.

我认为这个人有一个非常相似的问题,但不是在C#

使用usbser.sys冻结SerialPort.Open/DeviceIoControl/GetcommState

我可以估计,我已经阅读了他的整个问题,以及由此产生的评论和答案,但我真的无法弄清楚哪一个解决了他的问题,或者C#是否与他的体验有很大不同.

感谢您对无能为力的任何帮助.这是它发生的实际代码.

public static void Open_ActivePortWeWillUse(String Drone_StringNameFromUser)
{
    SerialPort TempSerialPort = new SerialPort(Drone_StringNameFromUser, (int) SerialPortSpeed);

    ThePorts.ActivePort1 = TempSerialPort;

    ThePorts.ActivePort1.DataBits = 8;
    ThePorts.ActivePort1.Parity = Parity.None;
    ThePorts.ActivePort1.StopBits = StopBits.One;

    ThePorts.ActivePort1.DataReceived += new SerialDataReceivedEventHandler(OurBackGroundSerialPortReceiver);

    ThePorts.ActivePort1.Open();  // "Sometimes" Error hits here
}
Run Code Online (Sandbox Code Playgroud)

c# usb semaphore serial-port usbserial

31
推荐指数
2
解决办法
10万
查看次数

如何找出哪个USB-RS232设备在哪个tty上?

我有两个基于相同USB-RS232芯片的不同USB设备.当我将它们插入USB时,它们被安装到/dev/ttyUSB0...3

我的问题是,在脚本中,我可以找出哪个是什么tty?

使用lsusb我可以区分它们:

$> lsusb | grep 0403:f850
Bus 004 Device 002: ID 0403:f850 Future Technology Devices International, Ltd
$> lsusb | grep 0403:6001
Bus 004 Device 003: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Run Code Online (Sandbox Code Playgroud)

使用dmesg,我可以知道它们的安装位置:

$> dmesg | grep 'FTDI USB Serial Device converter now attached'
[36051.393350] usb 4-2: FTDI USB Serial Device converter now attached to ttyUSB1
[36061.823513] usb 4-1: FTDI USB Serial Device converter now attached to ttyUSB0
Run Code Online (Sandbox Code Playgroud)

但"usb 4-1"似乎与"Bus 004 Device 002"不对应. …

linux serial-port usbserial

25
推荐指数
2
解决办法
8万
查看次数

检索用户空间Linux C代码中USB串行写传输的缓冲区/数据包/有效负载大小

提前道歉我不能立即接受答案 - 只是想我想记下来,而我有问题......

简而言之:当我在Linux下使用用户空间C代码启动对usb-serial端口的写入时,我可以观察到三种不同的缓冲区大小 - 问题是,我想从用户空间C中检索所有这些大小代码本身.


比方说,我有一个带有FTDI FT232芯片的Arduino Duemillanove,它被编程为从PC读取来自usb /串行连接的输入字节,然后丢弃它们.当我在系统中插入此设备时(在Ubunty 11.04 Natty上执行此操作),我可以通过以下方式观察以下内容tail -f /var/log/syslog:

Mar 21 08:05:05 mypc kernel: [  679.197982] usbserial: USB Serial Driver core
Mar 21 08:05:05 mypc kernel: [  679.223954] USB Serial support registered for FTDI USB Serial Device
Mar 21 08:05:05 mypc kernel: [  679.227354] ftdi_sio 2-2:1.0: FTDI USB Serial Device converter detected
Mar 21 08:05:05 mypc kernel: [  679.227633] usb 2-2: Detected FT232RL
Mar 21 08:05:05 mypc kernel: [  679.227644] usb 2-2: Number …
Run Code Online (Sandbox Code Playgroud)

c linux buffer usbserial packet

16
推荐指数
1
解决办法
8077
查看次数

如何识别USB设备?

是否可以通过唯一标识符识别USB设备,例如操作系统具有Mac-ID,硬盘ID,以太网卡ID是否具有唯一标识符?我知道可以轻松更改USB分区的卷序列号,也可以在用户格式化时更改.

但是有ID可以使用WMI服务通过MFC(Visual C++或C#)检索某种"USB硬盘ID或USB硬件ID"吗?这样的标识符对于物理设备是否是唯一的?请澄清......

usb usbserial usb-drive visual-c++ usb-flash-drive

15
推荐指数
1
解决办法
2万
查看次数

与Android/Arduino的USB通信

我正在研究需要通过USB进行通信的Android应用程序.我有一个Archos 101平板电脑(规格在这里:http://www.archos.com/products/ta/archos_101it/specs.html? country = us&lang = en ).它有一个完整的USB主机端口.我可以在USB端口中放置一个闪存USB驱动器,并将文件从闪存驱动器复制到内部存储器.

我有这个Arduino Fio板,附有XBee.我有一个XBee Explorer Dongle和另一个XBee,我打算将Archos 101平板电脑连接到USB端口.

到目前为止,我可以将XBee Explorer Dongle放入我的计算机并从Arduino Fio发送/接收数据,没问题.

有没有办法让Android通过USB通话?我知道在平板电脑的某个地方必须有允许USB通信的驱动程序,但我找不到访问它们或使用它们的方法.

我可以看到Android识别XBee Explorer Dongle.我下载了一个终端模拟器,我可以输入"dmesg",看到它看到了加密狗连接.但我不能做任何事情.

我似乎需要Android 的FTDI驱动程序.

我非常感谢帮助我的平板电脑与XBee Explorer Dongle进行通信.

usb android arduino usbserial

10
推荐指数
1
解决办法
3万
查看次数

从USB(多产)到Android设备的数据传输

我发现了一个用于读取FTDI设备USB数据的问题. 传输数据USB 我使用此代码用于多产设备,并且可以检测usb等,除了conn.bulkTransfer()给出-1.

    private class UsbRunnable implements Runnable {
    private final UsbDevice mDevice;

    UsbRunnable(UsbDevice dev) {
        mDevice = dev;
    }


    public void run() {//here the main USB functionality is implemented
        UsbDeviceConnection conn = mUsbManager.openDevice(mDevice);
        if (!conn.claimInterface(mDevice.getInterface(1), true)) {
            l("in run(), no connection");
            return;
        }
        l("in run(), connection");



         conn.controlTransfer(0x40, 0, 0, 0, null, 0, 0);// reset
         // mConnection.controlTransfer(0×40,
         // 0, 1, 0, null, 0,
         // 0);//clear Rx
         conn.controlTransfer(0x40, 0, 2, 0, null, 0, 0);// clear Tx
         conn.controlTransfer(0x40, 0x02, 0x0000, 0, null, …
Run Code Online (Sandbox Code Playgroud)

android usbserial

10
推荐指数
1
解决办法
1850
查看次数

无法为Ubuntu 12.04的USB串口设置波特率

我刚从Ubuntu 10.04升级到一个项目,该项目通过USB串口以115,200波特连接嵌入式设备.升级后,它没有工作,但我重新启动,并能够连接.由于关闭并重新启动我的系统,我无法连接.串行线看起来像是以错误的波特率连接(快速的字符串如下所示:

"'''''''''''''''''ppppp'''''''''''''''pppppp'''''''''''"...
Run Code Online (Sandbox Code Playgroud)

USB设备正在被识别并设置为/dev/ttyUSB0.当我尝试设置波特率时,stty我得到:

$ sudo stty -F /dev/ttyUSB0 115200
stty: /dev/ttyUSB0: unable to perform all requested operations
Run Code Online (Sandbox Code Playgroud)

如果我尝试设置9600它似乎工作:

$ sudo stty -F /dev/ttyUSB0 9600
Run Code Online (Sandbox Code Playgroud)

但其他事情都失败了:

$ sudo stty -F /dev/ttyUSB0 4800
stty: /dev/ttyUSB0: unable to perform all requested operations
Run Code Online (Sandbox Code Playgroud)

这是stty看到的:

$ stty -F /dev/ttyUSB0
speed 9600 baud; line = 0;
min = 1; time = 0;
-brkint -icrnl -imaxbel
-opost -onlcr
-isig -icanon -iexten -echo -echoe -echok -echoctl -echoke
Run Code Online (Sandbox Code Playgroud)

我可以使用stty(echo,echoe等)更改其他值,但不能更改波特率.

我在网上看到有人可以用 …

usb ubuntu serial-port usbserial

9
推荐指数
1
解决办法
4万
查看次数