4种USB通信方式的区别
USB 通信的 4 种方式分别是控制传输、同步传输、中断传输和批量传输,它们的区别如下:
1. 控制传输:
传输特点:是一种可靠的、双向的传输方式。所有 USB 设备都必须支持控制传输,通常发生在端点 0 中。它主要用于设备的配置、状态检测以及命令的传送等,比如设置设备地址、读取设备描述符等操作。
数据特点:数据量通常较小,但能保证数据传输的正确性。USB 协议采用了差错控制和重试机制来保障数据的准确传输,还使用数据翻转(DataToggle)机制确保主机与设备同步。
传输优先级:优先级最高,以保证设备的正常配置和管理能够优先进行。
传输过程:一般由建立阶段、数据阶段(可能没有)和状态阶段组成,每个阶段都由传输事务构成。
2. 同步传输:
传输特点:主要用于与时间相关的、周期性的连续通信。这种传输方式能保证带宽和间隔时间,适用于对实时性要求高,但对数据准确性要求相对不那么高的场景。
数据特点:数据量大,比如音频、视频等数据的传输。为了保证实时性,同步传输不进行数据错误的重试,也不在硬件层次上响应握手包,因此传输的数据可能存在一定的错误,但对于一些对实时性要求极高的应用,偶尔的错误是可以容忍的。
传输优先级:在安排传输事务时,同步传输的优先级较高,仅次于控制传输。
3. 中断传输:
传输特点:是一种单向的传输方式,但如果需要双向传输,必须使用 in 和 out 两个端点。它采用定时轮询的方式收发数据,主机按照设定的时间间隔询问设备是否有数据要传输。
数据特点:适用于数据量不大、对延迟要求比较严格的场景,比如鼠标、键盘等输入设备。这些设备产生的数据是少量的、非连续的,但需要及时传输给主机,以便主机能够及时响应。
传输频率:对于全速端点,中断传输的间隔在 1ms 到 255ms 之间;对于低速端点,间隔时间限制在 10ms 到 255ms 之间;对于高速端点,间隔为 2^binterval - 1×125us,binterval 的值在 1 到 16 之间。
4. 批量传输:
传输特点:是一种可靠的单向传输,但传输延迟没有保证。它会利用总线的空闲带宽进行数据传输,适合数据量大、对时间和传输速率要求不高的场合。
数据特点:数据传输时会进行错误检查,如果数据包传输过程出错,则会重新发出数据包。在总线空闲的情况下,批量传输的速度较快。
设备支持:只有全速与高速设备才支持批量传输,低速设备不支持批量传输。
5. libusb 库
在 libusb 中,读写操作可以使用控制传输、批量传输和中断传输。
如果是进行设备配置、获取设备信息等操作,可能会使用控制传输。控制传输通常用于设备的初始化、配置和状态查询等关键操作,具有较高的可靠性和优先级。
对于大量数据的传输,如从设备读取大量数据或向设备写入大量数据,可能会使用批量传输。批量传输适合于数据量大、对时间要求不高的情况,并且保证数据的可靠传输。
对于一些需要及时响应的设备,如键盘、鼠标等输入设备,可能会使用中断传输来读取数据。中断传输保证设备能够及时向主机报告状态变化或输入数据。
原文地址:https://blog.csdn.net/qq_34139994/article/details/142910497
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!