因为老板认为wifi连接的方式传输数据太慢,想通过USB传输来实现与硬件的连接,所以通过android客户端作为主设备,终端硬件作为从设备。其中收到数据的处理和 下发设置帧的生成与wifi连接的方式都相同,就不赘述。本篇主要谈 usb的数据传输。
数据传输流程:需要软件、硬件、驱动程序的共同配合
硬件部分:USB主控制芯片 (集成在计算机主板上,负责USB主机的功能实现)
USB HUB芯片 (集成在计算机主板上,或者可以由外设USB HUB来实现,负责扩展USB接口数量)
USB功能设备芯片 (集成在USB设备中, 完成传输的核心器件)
软件部分:USB主机程序 (用户可以直接操作,常常具有人机交互页面,标准USB鼠标和标准USB键盘除外)
USB总线驱动程序 (负责USB主机程序的请求响应)
USB主控制器驱动程序(负责数据传输的事务处理)
USB功能设备程序(负责USB设备的核心功能实现)
USB下发数据
1)USB主机程序准备好待下发的数据,并将数据保存在USB发送断点的数据缓冲区,然后向USB总线驱动程序发送IO请求包(IRP),也就是数据传输请求。
2)USB总线驱动程序响应USB主机程序的数据传输IO请求包(IRP),将其中数据转化为相应的USB事务处理格式,然后将该数据处理向下传递给USB主控制器驱动程序
3) USB的主控制器驱动程序对每个接收到的事物进行处理,转化为一系列的事务处理队列
4) USB主控制器将帧或者小帧为单位的事务处理队列以信息包的形式向外发送。按照规定的传输方式(块传输,控制传输,中断传输,同步传输)在USB总线上 传输<