一、基本概念
1、USB 协议本身很复杂,但方便在提供了统一的接口方式,使得驱动程序在使用设备的时候,工作简化到了类似操作串行接口。
2、USB 设备可以看作提供了多个串口的设备,依据USB 的规范,我们将每个串口称作端点(Endpoint) ,要和这个端点通信,我们就要打开到这个端点的连接,这个连接就是管道(Pipe) 。
3、打开端点之后,就可以像串口一样进行数据传输了。USB 有4种不同类型的传输方式:控制传输(Control Transfer) ,批量传输(Bulk Transfer) ,中断传输(Interrupt Transfer)和实时传输(IsochTransfer) 。
4、由于一个设备可能要适应多种情况,端点的设置会有多套,以备使用。端点设置称为接口(Interface) 。USB 设备展现给我们能够找到的东西就是这些Interface ,我们选择要用的Interface ,就可以找到Endpoint ,再打开Endpoint ,就可以传输数据了。所以,在驱动程序开始的时候,需要记录下这些Interface 。
5、例如: OV511+ 的端点0是控制端点,用来设置参数以及起停设备;端点1是实时传输端点,用来传输视频。端点1有8套不同的设置,主要区别就在于一次传输的数据帧的大小,所以在USBDeviceAttach 的时候,要记录这些设置到驱动程序中,后面才能够选用。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !