【问题标题】:Linux writing raw bytes on USBLinux 在 USB 上写入原始字节
【发布时间】:2012-12-29 06:59:37
【问题描述】:

我已将 USB 电缆插入我的计算机,其中 D+ 和 D- 引脚连接到万用表。我想发送一些原始字节来获得一些电压.. 有可能吗?

我 99% 确定我插入的 USB 端口类似于 /dev/bus/usb/002

我知道有可能对 LPT 或 RS232 端口做同样的事情。

【问题讨论】:

  • RS232 和 LPT 不是 总线 ! USB 设备需要被寻址才能变得可访问。
  • 可能正在卸载并重新加载驱动您的 USB 主机的 USB 驱动程序...或尝试在 USB 集线器主机上进行重置...

标签: linux usb byte


【解决方案1】:

RS232 和 LPT 不是总线! USB 设备需要被寻址才能变得可访问。

可能正在卸载并重新加载驱动您的 USB 主机的 USB 驱动程序...或尝试在 USB 集线器主机上进行重置...

为了在usb端口上进行这种操作,你必须打破usb内核驱动并鞭打所有寻址操作来直接寻址芯片组......

完全,由于 USB 的概念,我不确定您是否可以成功地保持插座上的某些电源状态。

玩那种物理IO,有两种解决方案:

安装一个低成本的 RS-232 USB 适配器

或更好

购买Arduino 微控制器用于原型设计和开发。

【讨论】:

    【解决方案2】:

    我几乎 100% 确定,除非您在另一端确实有设备,否则您无法通过 USB 线发送任何内容。如果你仍然想玩这个,买一个便宜的记忆棒,把它的外壳拆下来[不要太粗略],然后在向记忆棒传输大文件的同时测量,或者类似的。

    但我不确定你的万用表会显示多少,因为与 USB 速率相比,它们往往有点慢。

    【讨论】:

    • 我是用万用表看有无电压,不是测值。
    • 我知道有可能对 LPT 或 RS232 端口做同样的事情。
    • 是的,LPT 和 RS232 可以做到这一点,理论上我认为你也可以使用 USB,但驱动架构完全不同。我会在司机周围挖掘,看看我能找到什么。
    • 我在写入 /dev/bus/usb/002/001 时收到“无效参数” - 这表明您需要做的不仅仅是打开设备本身来写入它。 [我尝试了几种不同的设备]
    • 我也一样,尝试用Java和终端写。
    【解决方案3】:

    USB 使用数据线上的上拉/下拉电阻来检测端口是否连接(设备端 1.5k 上拉至 3.3v,主机端 IIRC 15k 下拉) .确切的连接取决于设备速度。

    因此,如果您连接适当的电阻器,主机应尝试开始发送信号。由于数据速率的原因,您可能无法在万用表上看到它;示波器会更合适。

    如果您想绕过普通的 USB 协议而只是盲目地发送数据,我认为您需要亲自动手编写代码来绕过通常的设备驱动程序并直接访问 USB 硬件。即便如此,我也不确定有什么可能——USB 硬件比好的 ol' LPT 和 RS232 端口更智能,这可能会妨碍做这种低级的事情。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-31
      • 1970-01-01
      相关资源
      最近更新 更多