USB设备的Bulk模式驱动程序设计
1 引言
通用串行总线(USB)是一种串行接口,具有自动配置能力和良好的兼容性,从而简化了计算机与外设的连接,被计算机外设硬件制造商广泛采纳。USB总线标准由1.1版升级到2.0版后,传输率由12Mbps增加到了480Mbps,更适宜于高速数据传输。USB设备支持打印机、扫描仪、数码相机等外设时,由于这些外设与主机间传输的数据量大,要求驱动程序采用Bulk模式进行高速数据传输。
2 USB设备驱动的整体结构
USB设备驱动的整体结构包括如下五个主要部分:USB应用程序接口、USB设备驱动函数、USB中断服务程序、USB回调接口程序、USB标准事件处理程序。
3 USB应用程序接口
USB应用程序接口主要功能是对USB驱动器进行软硬件初始化、打开端口、关闭端口、读端口、写端口和端口控制操作。当设备驱动器装入系统设备表时,I/O系统就调用该应用程序接口。
USB应用程序接口的一个例程所包含的函数:
l USB_init( ) —— USB端口驱动函数的安装和初始化、硬件配置。
l USB_open( ) —— 打开USB端口。
l USB_close( ) —— 关闭USB端口。
l USB_read( ) —— 对USB端口进行读操作。
l USB_write( ) —— 对USB端口进行写操作。
l USB_ioctl( ) —— 对USB设备进行I/O控制操作。
4 USB设备驱动函数
4.1 USB_init()—— 初始化USB端口
USB_init函数初始化特定USB端口驱动器,进行软硬件配置。
初始化步骤如下:
(1)将USB设备驱动器安装到I/O系统设备表中。
(2)获取USB控制器使用的中断号。
(3)获取各端口所需的系统资源,包括内存、信号量和消息队列。
(4)初始化USB驱动器数据结构与USB端口状态寄存器。
(5)启动USB标准事件处理程序。
(6)启用控制端口0和USB中断最小支持集。
4.2 USB_open()—— 打开USB端口
USB_open函数允许应用程序打开一个USB端口,选择DMA数据传输方式。
执行打开调用的典型步骤如下:
(1)如果不是默认的控制端口0,要检查端口状态是否为“CONFIGURED”。
(2)如果不允许多次打开,要确认端口还没有打开。
(3)确认端口对当前选择的接口有效。
(4)选择DMA传输,设置DMA控制器使用该端口的FIFO作为目的地址。
(5)设置端口为打开状态。
4.3 USB_close()—— 关闭USB端口
USB_close函数允许USB应用程序关闭一个端口,并关闭DMA通道。
执行关闭调用的典型步骤为:
相关文章
- 2024-10-23海洋渔业科学与技术专业工程力学课程教与学的探讨
- 2023-10-19磁光调制锁相椭偏仪与多层磁光薄膜测试系统
- 2024-07-03基于VXI总线的水声基阵信号采集与分析
- 2024-02-07连续累计自动衡器(皮带秤)耐久性试验的讨论
- 2024-05-17DAW30-100弯板式称重系统在高速公路计重收费中的应用
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。