![/dev/tty* 和 /dev/bus/usb/001/002 有什么区别?](https://linux22.com/image/850797/%2Fdev%2Ftty*%20%E5%92%8C%20%2Fdev%2Fbus%2Fusb%2F001%2F002%20%E6%9C%89%E4%BB%80%E4%B9%88%E5%8C%BA%E5%88%AB%EF%BC%9F.png)
当我插入使用LUFA USB 框架(或任何 USB<->串行外围设备),Ubuntu 会创建一个/dev/ttyACM*
设备文件。它还会创建一个/dev/bus/usb/001/002
文件和一/sys/bus/usb/devices/usb1/1-1/1-1.3/1-1.3.1/
棵树。
这些之间有什么区别?我问是因为我正在使用皮尤代夫,它提供了如/dev/bus/...
示例的设备节点,但我不知道这是否与 tty 不同。是吗?
答案1
该/sys/bus/usb/devices/*
树描述了完整的物理 USB 拓扑,并包含有关每个设备的元数据。
这些/dev/bus/usb/<bus number>/<device number>
设备以简化的方式寻址每个设备(因此您不必关心设备是直接连接还是通过一个或多个 USB 集线器连接,只需选择正确的总线即可),并允许将原始 USB 数据包传递到设备/从设备传递。使用 USB 串行转换器,您可以发送请求数据包并返回描述串行端口握手线当前状态的响应。
另一方面,该/dev/ttyACM*
设备隐藏了 USB 总线的复杂性,并允许您像直接连接的串行端口一样控制 USB<->串行外围设备的串行端口,并具有 Unix 样式 tty 驱动程序的所有功能。由于 USB 总线引起的延迟,某些功能可能不如“真实”串行端口那样好用:特别是,尝试以精确的时间对控制线进行位拆解可能不起作用。