USB设备的Bulk模式驱动程序设计2

USB中断服务程序

  USB控制器产生单一中断,多个端口共享。每个端口产生ACK、NACK/ERROR中断。输出端口产生接收零字节包或短包中断。控制端口0接收设置包时产生中断。USB控制器产生USB事件中断,如帧起始(SOF)、挂起、恢复和复位。

  USB中断服务程序执行下列步骤:

  (1) 识别发生了USB中断的类型。

  (2) 清除中断产生的条件。

  (3) 读USB状态寄存器,获取当前配置、接口或帧起始时间戳状态信息。

  (4) 向USB控制器消息队列或回调函数的接收消息队列发送一条消息。

   USB标准事件处理程序

  USB驱动器初始化后,启动USB标准事件处理程序负责处理枚举过程和异步USB事件。

  事件处理程序使用控制端口0,直到完成枚举过程。当USB应用程序处于非活动状态时,除控制端口0以外端口均不可访问。事件处理程序在端口0上执行控制操作,响应USB标准请求,并负责通知USB应用程序枚举完成和接口活动状态,USB事件通过回调接口传递到USB外设应用程序。当对USB端口枚举操作完成,USB应用程序就可打开并使用USB端口。

  处理一个USB任务的执行过程为:

  (1) 读取USB控制器消息队列。

  (2) 如果接收到设置包,则调用标准请求处理函数。

  (3) 如果接收到事件,则调用USB事件处理函数。

  (4) 确定当前状态和有效配置/接口。

  (5) 更新USB控制器和端口数据结构。

  (6) 重复(1)~(5)步骤。

   USB回调接口程序

  回调应用程序接口是向应用程序提供反馈信息的一种接口,包括向应用程序通知USB事件的消息,如复位、配置改变、接口改变、挂起、恢复和帧起始。使用USB的应用程序要以下列方式回应这些消息:

  (1) 复位 关闭端口,等待枚举测试。

  (2) 配置改变 关闭端口,按新配置打开端口。

  (3) 接口改变 关闭端口,从新接口打开端口。

  (4) 挂起 进入低功耗模式。

  (5) 恢复 退出低功耗模式。

  (6) 帧起始 执行应用程序规定的处理。

   总结

  本文提供了进行USB端口Bulk模式驱动程序设计的过程,实现在USB接口设备与Host主机之间进行高速数据传输,对于嵌入式环境以及windows多线程环境下的USB设备的高速数据传输同样适用。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值