您的位置:首页 > 其它

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

2006-05-10 11:04 337 查看
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设备的高速数据传输同样适用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: