




已阅读5页,还剩37页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于S3C2410的嵌入式硬盘mp3播放器设计与实现 USB设备驱动程序本科毕业论文(科研训练、毕业设计)题 目:基于S3C2410的嵌入式硬盘mp3播放器设计与实现 -usb设备驱动程序姓 名:学 院: 软件学院系:专 业: 软件工程年 级: 学 号:指导教师(校内): 职称: 指导教师(校外): 职称:年 月 日35基于S3C2410的嵌入式硬盘mp3播放器设计与实现 -usb设备驱动程序摘要 信息技术的发展已步入后PC时代,嵌入式系统正逐步应用到越来越多的领域。mp3播放器的发展也逐渐向着大容量、低价位的方向发展。我们开发小组所开发的基于S3C2410的嵌入式硬盘mp3播放器,以先进而又低成本的ARM9微处理器为核心,带有TFT LCD彩色显示屏,功能强大,可为用户带来超凡的听觉和视觉享受。其中将采用目前流行的USB(Universal Serial Bus,即通用串行总线)连接MP3播放器和其他设备(包括PC、U盘、移动硬盘等),以便实现从其他设备中高速地下载音乐和高速地上传音乐到其他设备中。本文主要介绍USB设备驱动程序设计部分,将从USB系统描述、USB工作原理、设备驱动程序设计基础和USB设备驱动程序设计等四个方面分别进行详细说明。关键词: 嵌入式系统,mp3播放器,ARM9微处理器,USB,设备驱动程序Design and Implement of the HDD mp3 player based on S3C2410 -USB device driverAbstract As the development of IT steps into the age of behind_PC , embedded systems are applying to all kinds of fields. Mp3 players are also developing towards high capacity and low cost. The mp3 player based on S3C2410 with a hard disk, which our developing team have designed, has the kernel of a ARM9 microprocessor that is in advance and costs low price and a TFT LCD. It can bring enjoyment to people in hearing and vision. We use USB to connect the mp3 player to other devices ,including PCs, USB disks and portable hard disks, in order to download musics from them at high rate and transfer musics to them at high speed. The paper introduces mainly the design of USB driver with the description of USB system, the working principle of USB, the foundation of the design of device drivers and the design of USB drivers. Key words: embedded system, mp3 player, ARM9 microprocessor, USB, device driver目录摘 要.ABSTRACT.目 录.第一章引言.1第二章USB 系统描述.32.1 系统拓扑结构.32.1.1 USB 接口.32.1.2 USB 主机.32.1.3 USB 设备.42.2 物理特性.42.2.1 SB 电缆.42.2.2 传输速率.4第三章USB 工作原理.53.1 USB 通信模型.53.2 数据传输方式.53.2.1 控制传输.53.2.2 中断传输.63.2.3 批量传输.63.2.4 同步传输.63.3 数据单元.63.3.1 端点.63.3.2 通道.73.3.3 字段.73.3.3.1 同步字段.73.3.3.2 包标识符字段.73.3.3.3 地址字段.73.3.3.4 端点字段.83.3.3.5 帧号字段.83.3.3.6 数据字段.83.3.3.7 CRC 字段.83.3.4 包格式.83.3.4.1 令牌包.83.3.4.2 SOF 包.93.3.4.3 SETUP 包.93.3.4.4 数据包.93.3.4.5 握手包.103.3.5 描述符.103.4 USB 设备枚举过程.10第四章设备驱动程序设计基础.124.1 设备驱动程序基础知识.124.1.1 设备分类.124.1.2 设备驱动程序的功能.124.1.3 设备驱动程序模块结构.124.1.3.1 初始化模块.134.1.3.2 I/O 请求处理模块.134.1.3.3 中断处理模块.144.1.4 设备驱动程序的加载.154.1.4.1 直接编译进内核.154.1.4.2 动态加载模块.154.2 嵌入式系统开发平台.154.2.1 开发模式.164.2.2 开发环境.164.2.2.1 硬件平台.164.2.2.2 软件平台.17第五章USB 设备驱动程序设计.185.1 概述.185.1.1 主机端设备驱动程序.185.1.2 主机控制器设备驱动程序.185.1.3 设备端驱动程序.195.2 主机端设备驱动程序分析和设计.195.2.1 数据结构部分.195.2.1.1 struct usb_driver.205.2.1.2 struct file_operations.205.2.1.3 struct usb_device.215.2.1.4 struct usb_skel.215.2.2 函数部分.225.2.2.1 usb_register()和 usb_deregister().225.2.2.2 probe().235.2.2.3 disconnect().235.2.2.4 open().235.2.2.5 release().235.2.2.6 read().245.2.2.7 write().245.3 设备端驱动程序分析和设计.245.3.1 设备端驱动程序结构.245.3.2 初始化模块.245.3.2.1 描述符指针及变量的初始化.255.3.2.2 端点初始化.255.3.2.3 配置RAM初始化.255.3.2.4 FIFO 缓冲区初始化.255.3.2.5 中断初始化.275.3.3 数据传输模块.275.3.3.1 中断传输、控制传输和批量传输.275.3.3.2 同步传输.305.3.4 标准设备请求处理模块.315.3.5 厂商请求处理模块.315.3.6 其他操作处理模块.325.3.6.1 端口复位事件的处理.325.3.6.2 配置改变事件的处理.33第六章结论.34致谢.35参考文献.36第一章引言现有的电脑系统中连接外围设备的接口各种各样,并无统一的标准,如:键盘使用PS/2接口,打印机使用25针并口,鼠标使用串口等。USB(Universal Serial Bus)即通用串行总线,是一种全新的、双向同步传输的、支持热插拔的数据传输总线,可兼容低速和高速传输,并可采用集线器进行扩充,使用方便;同时也可解决计算机接口太多的弊端,可将各种不同的接口统一起来,使用一个4针的USB接口作为标准接口。1994年,由Compaq、Intel、Microsoft、IBM、Digital、Northern Telecom和NEC七家世界著名的计算机和通讯公司成立的USB论坛,于1995年正式制定了USB0.9标准,1997年开始出现真正符合USB技术标准的外设。1999年在Intel的开发者论坛大会上,推出了USB2.0标准,该标准的支持者除了原有的Compaq、Intel、Microsoft和NEC外,还有惠普、朗讯和飞利浦三家公司。USB2.0向下兼容USB1.1,数据传输率将达到120Mbps240Mbps,还支持宽带网络、数字摄像设备及下一代扫描仪、打印机及存储设备等。USB OTG(USB On-The-Go)即移动式USB,是应用在便携式设备领域中的USB。USB OTG1.0作为USB2.0的补充协议,使得符合该协议的接口芯片具有双重功能:带有该芯片的设备既可以作为主机,也可以作为外设,其主机处理协议(HNP)可根据接入设备的特性和数据传输过程中的情况,自动切换主机和外设功能,这类设备也被称为双角色设备。现在,随着大量的支持USB接口的电脑的普及和各种USB产品(包括数字照相机、数字音箱、数字游戏杆、打印机、扫描仪、网卡、键盘和鼠标等)的出现,USB接口已被人们广泛接受,正逐步成为一种标准接口。如图11所示: 图11各种USB产品早期市场上的MP3功能单一,都是用来播放音乐和存储资料;但容量有限,同时价格昂贵。鉴于现有硬盘的大容量和低价位,开发小组所开发的嵌入式Linux硬盘MP3播放器将采用先进而又低成本的S3C2410嵌入式处理器及有关的外围接口电路和大容量的硬盘,严格控制成本,并将提供视频播放功能,为用户带来超凡的听觉和视觉享受;也可作为产品设计方案给产品开发商提供最有力的技术支持。其中将采用目前流行的USB连接MP3播放器和其他设备(包括PC、U盘、移动硬盘等),以便从其他设备中高速地下载音乐和高速地上传音乐到其他设备中。如图12所示:图12嵌入式硬盘MP3系统产品示例图本文将重点讲述一个基于S3C2410的嵌入式硬盘MP3播放器中的USB设备驱动程序开发。设备驱动程序是操作系统内核和外设之间的接口,将负责初始化外设、内核和外设之间的数据传输、应用程序和外设之间的数据传输等工作。USB设备驱动程序包括主机端设备驱动程序、主机控制器设备驱动程序和设备端驱动程序。其中主机控制器设备驱动程序一般是由操作系统提供。每个设备驱动程序都包括初始化模块、I/O请求处理模块和中断处理模块。正确地按照USB通信协议进行设备间的通信是其中的技术关键点。下面将从USB系统描述、USB工作原理、设备驱动程序设计基础和USB设备驱动程序设计等四个方面分别进行详细说明。第二章USB系统描述2.1 系统拓扑结构一个USB系统主要由3个部分组成: USB接口 USB主机 USB设备2.1.1 USB接口USB接口连接了USB主机和USB设备,构成了一个主/从结构的系统。物理连接上是层次的星形结构,如图21所示。每个星形结构的中心是一个集线器,每个点就是一个连接到集线器的某个端口的设备或其它集线器。但是在编程时,不必考虑它的物理连接,总线上的所有设备共享一条通往主机的数据通道,编程时只需认为某个外设是独占USB端口。USB主机控制器根集线器集线器外设外设外设集线器外设外设图21USB系统拓扑结构2.1.2 USB主机一个USB系统中只有一个主机。USB和主机系统的接口称作主机控制器,主机控制器可由硬件、固件和软件综合实现。根集线器是由主机系统整合的,用以提供更多的连接点。2.1.3 USB设备USB设备包括: 网络集线器:向USB设备提供更多的连接点; 功能器件:为系统提供具体功能,如USB数字照相机、USB数字音箱、USB数字游戏杆、USB打印机、USB扫描仪、USB网卡、USB键盘和USB鼠标等。2.2 物理特性2.2.1 SB电缆USB总线通过一根四线电缆传送信号和电源,如图22所示:VBUSDDGNDVBUSVBUSDDGND图22USB系统中SB电缆2.2.2 传输速率USB总线存在3种数据传输速率: 高速信号传送的速率为480Mbps; 全速信号传送的速率为12Mbps; 低速信号传送的速率为1.5Mbps;3种数据传输模式可在同一USB总线传输的情况下自动地动态切换。时钟信号被调制后与差分数据一同被传送出去,时钟信号被转换成NRZI码,并填充了比特以保证转换的连续性,每一数据包中附有同步信号以使接收方还原出原来的时钟信号。第三章USB工作原理3.1 USB通信模型主机的每一个层次分别对应设备相应的层次,通过逻辑通道连接起来,应用程序就可以通过逻辑通道直接控制设备的接口模块。这种连接使得软件控制与接口一一对应起来,用户使用起来可以十分简单快捷。如图3-1所示:应用程序图31USB通信模型USB系统软件USB主机控制器应用程序USB逻辑设备USB总线接口主机端设备端应用层设备层接口层逻辑通信流物理通信流3.2 数据传输方式USB总线有4种传输方式,分别是控制传输、中断传输、批量传输和同步传输。3.2.1控制传输主要用于主机向USB设备发送命令或是USB设备将自身状态信息返回给主机。任何一个USB设备必须支持一个与控制类型相对应的端点0,即主控端点。控制传输在所有USB设备中都需要使用,主机对USB设备的配置命令要通过控制传输来发送,而设备的描述信息也需通过控制传输传递给主机。3.2.2 中断传输用来支持那些偶然需要少量数据的传输,但服务时间受限制的设备。中断传输常常用来键盘、鼠标和游戏杆等外设上。3.2.3 批量传输主要用于需要传输大量数据,且数据传输速率不固定的设备。批量传输并不能保证传输的速率,但可保证传输的可靠性,当出现错误时会要求发送方重发。3.2.4 同步传输同步传输要求有一个恒定的传输速率,同步传输的发送方和接收方都必须保证传输速率的匹配,不然会造成数据传输的丢失。这种传输方式适用于实时性要求高而对准确性要求较低的场合,如音频和视频设备、语音和图像不能有明显滞后,但中间的某些数据错误则关系不大,不影响视觉和听觉效果。3.3 数据单元对应主机应用程序与设备应用程序间的不同通信服务,USB设备对数据流有不同的要求。为此,USB允许不同的数据流相互独立地进入一个USB设备,不同设备的不同端点用于区分不同的数据流。3.3.1端点端点是USB设备的逻辑设备。一个USB设备有一个或多个端点,对主机而言,它们对应一个或多个逻辑设备。设备连上主机时,主机分配给每个逻辑设备一个唯一地址,而设备中的每个端点在设备内部都有一个唯一的端点号,由设备设计时指定。这样,主机与设备间就可以依据端点来建立唯一通道。所以USB设备至少要有一个0号端点,USB系统使用这个默认端点设置设备。对于低速设备,除0号端点外,只能有2个额外的可选端点。而全速设备和高速设备则可以最多可以有15个额外输入端点和15个输出端点。3.3.2 通道设备上的端点和主机上的逻辑设备地址构成一个USB通道,主机与设备间的信息交互就是通过通道进行的。依据通信数据格式的不同,通道分为以下二种: 流:指不具有USB定义的格式的数据流; 消息:指具有USB定义的格式的数据流。消息通道要求把数据组织成USB定义的格式。3.3.3 字段USB的传输以包为单位,每个包由不同的字段组成。主要有以下几种字段:3.3.3.1 同步字段(SYNC)所有的包都是以同步字段开始,输入电路根据同步字段以本地时钟对齐输入数据。同步字段的最后2位是字段结束标记,同时标志包标识符(PID)字段的开始。3.3.3.2 包标识符字段(PID)USB包的同步字段后紧跟着包标识符字段。包标识符字段由4位包类型字段及其后的4位校验字段构成,如图3-2所示。PID0PID0PID1PID2PID3PID1PID2PID3图32PID格式3.3.3.3 地址字段地址字段指明外设地址,如图3-3所示。Addr06共指定128个地址,每个地址对应一个单一外设。设备在复位和加电时,地址默认为0,具体值由主机在枚举时指定。外设0地址为默认地址,不可被分配用于其他用途。图33地址字段Addr0Addr 1Addr 2Addr 3Addr4Addr5Addr63.3.3.4 端点字段当外设有多个端点时,要由4位的端点字段进行寻址,如图34所示。对于低速设备,每个外设最多提供3个通道,而全速设备和高速设备则可以支持最多16个任意类型通道。图34端点字段Endp0Endp1 1Endp2 2Endp33.3.3.5 帧号字段帧号字段是一个11位长的字段,主机每通过一帧就将其内容加1,达到最大值7FFH时清0。3.3.3.6 数据字段数据字段的长度可在08192字节间变动,但必须是整数个字节。3.3.3.7 CRC字段检验字段用来检验所有非PID字段。其中,标记字段使用5位CRC字段,数据字段使用16位CRC字段。3.3.4 包格式USB传输中的包有几种:令牌包(包括SOF包和SETUP包)、数据包和握手包。3.3.4.1 令牌包令牌包由PID、Addr、Endp和CRC5字段构成。其中,PID字段指明包的类型,Addr和Endp字段唯一确定要接收数据的端点,CRC5字段负责校验Addr和Endp字段。如图35所示。图35令牌包格式PIDAddr 1EndpCRC53.3.4.2 SOF包SOF包由PID、帧号字段和CRC5字段构成。主机以每1.00ms0.0005ms(低速设备和全速设备)或125s0.0625s(高速设备)的速率向设备发送SOF包。它以精确的时间间隔发送SOF标识及帧数。如图37所示。图37SOF包格式PID帧号字段CRC53.3.4.3 SETUP包USB设备的某些属性要由主机通过默认控制通道进行设置或读取。这些操作是通过主机向设备发送SETUP包来完成的。每个SETUP包有8个字节,分为5个域,如图38所示。图38SETUP数据包格式bRequestbmRequestTypewValuewIndexwLength3.3.4.4 数据包数据包由PID、Data和CRC16字段构成。对于低速设备,数据字段的长度是08字节;对于全速设备,数据字段的长度是01023字节;对于高速设备,数据字段的长度是08192字节。如图36所示。图36数据包格式PIDDataCRC163.3.4.5 握手包握手包仅由PID构成,主要用来报告数据事务的状态。3.3.5 描述符任何一个USB设备都包含一个设备描述符表,用于说明设备属性,一般固化在设备内部。当主机检测到总线上有设备插入进,通过控制传输从默认通道中将设备的描述符读出。USB设备的描述符有3种:设备描述符、设备类描述符和用户自定义描述符。其中设备描述符又分为4种:配置描述符、接口描述符、端点描述符和字符串描述符,它们之间的关系如图38所示。设备描述符配置1描述符配置2描述符配置3描述符接口1描述符接口2描述符端口1描述符端口2描述符接口3描述符端口3描述符接口4描述符端口4描述符图38设备描述符关系示意图3.4 USB设备枚举过程当USB设备连上主机或是从主机移走时,主机启动一个总线枚举进程,以识别和管理设备的状态变化。其枚举过程如下: USB设备连上主机,所连的集线器通知主机本设备已连接上。此时,USB设备处于加电状态,它所连接的端口是无效的。 主机一旦得知新设备已连上它的某个端口,它至少要等待100ms以确保插入操作的完成以及设备电源稳定工作。然后,主机向该端口发出端口使能及复位命令。 集线器将发向端口的复位信号持续10ms,当复位信号撤消后,端口已经变为有效。这时USB设备处于默认状态,并且可以从主机汲取小于100mA的电能,所有设备寄存器及状态已经被复位,设备可对默认地址(00H)产生响应。 主机给USB设备分配一个唯一的地址,设备以后就只对该地址进行响应。 主机读取USB设备描述符,确认设备的属性。 主机依照读取的USB设备描述符来进行配置,如果设备所需的USB资源得以满足,主机就发送配置命令给USB设备,表示配置完成。从设备的角度来讲,它已经准备就绪了。 为了节省电源,当总线保持空闲状态超过3ms以后,设备驱动程序进入挂起状态。挂起状态时设备的消耗电流不超过500A。当被挂起时,USB设备保留了包括其地址和配置信息在内的所有内部状态。 当USB设备被取走时,集线器同样会通知主机,主机使对应端口无效,并更新拓扑信息。第四章设备驱动程序设计基础4.1 设备驱动程序基础知识设备驱动程序是操作系统内核和外设之间的接口,是系统内核的一部分。设备驱动程序为应用程序屏蔽了外设的硬件细节,在应用程序来看,外设只是一个设备文件,应用程序可以像操作普通文件一样对外设进行操作。每个设备文件都有文件属性,用来表示是字符设备还是块设备。每个设备文件都有二个设备号:第一个是主设备号,用来标识设备驱动程序,必须与设备驱动程序在登记时申请的主设备号一致,否则应用程序无法访问到该设备驱动程序;第二个是从设备号,用来标识使用同一个设备驱动程序的不同外设。4.1.1 设备分类外围设备分为字符设备、块设备和网络设备3种。字符设备是指存取时不采用缓存的设备,对设备的操作直接反映在硬件上,如:鼠标、键盘和串口等。块设备是指存取时都有采用系统缓存,并且必须能够支持随机存取,如:软盘、硬盘和CDROM等。网络设备主要是基于SOCKET机制。4.1.2 设备驱动程序的功能 对外围设备初始化和释放; 把数据从内核传送到外设,或从外设读取数据; 读取应用程序传送给设备文件的数据,或回送应用程序请求的数据; 检测和处理外设出现的错误和异常。4.1.3 设备驱动程序模块结构每个设备驱动程序都包括初始化模块、I/O请求处理模块和中断处理模块。如图41所示。设备驱动主程序图41设备驱动程序模块结构初始化模块I/O请求处理模块中断处理模块4.1.3.1 初始化模块用于负责检测所要驱动的硬件设备是否存在和是否能正常工作。如果该设备正常,则对这个设备及其相关的设备驱动程序所需要的软件状态进行初始化,如:设置有关寄存器的值,初始化设备驱动程序中的数据结构,向系统的设备表登记主设备号等。这部分代码在初始化时被调用一次。各种操作系统中都提供专门的设备驱动程序的注册和注销函数。4.1.3.2 I/O请求处理模块这是设备驱动程序中处理部分的上半部分。调用该模块是由于系统调用的结果,如:read、write。在执行时,系统仍认为是和进行调用的进程属于同一进程,只是由用户态变成了核心态,它们的运行环境和进行此系统调用的应用程序一样,因些可以在其中调用sleep()等与进程运行环境有关的函数。在系统内部,I/O设备的存取通过一组固定的入口函数进行的,这组入口函数是由每个设备的设备驱动程序提供的,并要在struct file_operations中加以说明。一般来说,字符型设备驱动程序提供如下几个入口函数,如果没有提供某个入口函数,系统会用默认的入口函数来代替: open入口函数用于打开设备准备I/O操作。必须对将要进行的I/O操作做好必要的准备工作,如清除缓冲区等。如果设备是独占的,即同一时刻只能有一个应用程序访问到该设备,则还必须设置一些标志以表示设备处于忙状态。 close入口函数 用于关闭一个设备。当最后一次使用设备终结后,可调用该函数。独占设备必须标记该设备处于闲状态。 read入口函数用于从设备上读取数据。对于有缓冲区的I/O操作,一般是从缓冲区里读取数据。 write入口函数用于往设备上写入数据。对于有缓冲区的I/O操作,一般是向缓冲区里写入数据。 ioctl入口函数用于执行读、写之外的操作。 select入口函数用于检查设备,查看数据是否可读或设备是否可写。4.1.3.3中断处理模块这是设备驱动程序中处理部分的下半部分。在UNIX系统中,并不是直接从中断向量表中调用中断处理模块,而是由UNIX系统来接收硬件中断,再由系统调用中断处理模块。中断可以发生在任何一个进程运行的时候,因此在中断处理模块被调用时,不能依赖于任何进程的状态,也就不能调用任何与进程运行环境有关的函数。因为设备驱动程序一般支持同一类型的若干设备,所以一般在系统调用中断处理模块的时候,都带有一个或多个参数,以唯一标识请求服务的设备。中断处理模块中应进行的基本操作步骤如下: 保护现场为了返回后不破坏主程序在断点处的状态,用户需要保存在主程序和中断处理模块中均被使用到的寄存器,CPU自动保存相应中断时的标志寄存器值和断点地址。保护现场普遍使用的方法是将需要保存的寄存器内容压入堆栈。 开中断在中断响应过程中,CPU自动清除IF位和TF位,目的是暂时禁止中断,以保护中断识别周期不会被新的中断打断。在进入中断处理模块后,可以根据需要决定是否需要打开中断。其原则是,如果在处理该中断的过程中,需要响应更高级别的中断,以形成中断嵌套时,则必须开中断;反之,则不需要开中断。 执行中断处理模块这是最重要的部分。这段代码将完成中断处理的核心功能,诸如执行输入、输出操作或非常事件的处理等。 关闭中断如果在第2步中已经打开了中断操作,则在该处就应该进行关闭中断操作,以保证中断返回后主程序的正常执行。 恢复现场在中断返回之前,必须将机器的状态恢复到中断时的状态,以保证主程序的正常执行。恢复现场普遍使用的方法是将原来压入堆栈的寄存器的内容弹出堆栈,顺序与压入时的正好相反。 中断返回中断处理模块的最后一条指令是中断返回指令。执行该指令后,将自动恢复标志寄存器值,并从堆栈中取得返回地址。同时跳到该处继续执行。4.1.4 设备驱动程序的加载设备驱动程序可以按照二种方式加载:4.1.4.1 直接编译进内核如果直接编译进内核的话,不仅会增加内核的容量,还要改动内核的源代码,而且不能动态卸载,不利于调试。4.1.4.2 动态加载模块这是通用的方式。 用insmod命令将编译好的模块调入内存; 用rmmod命令将内存中的模块卸载掉。4.2 嵌入式系统开发平台由于嵌入式系统自身的特殊性,注定了它自身所具有的资源和内存空间都是十分有限,不可能像开发PC软件那样在其上运行所有的开发工具,而且很多嵌入式系统都没有像显示器那样的输出设备,这些都决定了嵌入式系统的开发应当采用一种特殊的模式:主机目标机模式,使用交叉开发的方式进行。4.2.1开发模式采用主机目标机开发模型,如图42所示。 在PC机Linux系统上进行源代码编辑、编译; 通过串口和网线在HHARM9-EDUR1实验平台上进行目标代码测试、运行。 图42 嵌入式系统开发模式4.2.2 开发环境4.2.2.1硬件平台包括PC、HHARM9-EDUR1实验平台、串口线、网线、USB线、硬盘、音箱和耳机等,如图43所示。图43 嵌入式系统开发硬件平台4.2.2.2软件平台 主机 :Red Hat Linux 9.0 (安装KDE)、vi/gedit、gcc(包括X86和ARM版)、gdb、minicom、JTAG烧写工具等 目标机:ArmLinux第五章USB设备驱动程序设计5.1 概述一个USB系统由主机和设备共同组成。所以,对应于设备驱动程序,也分为主机端设备驱动程序、主机控制器设备驱动程序和设备端驱动程序。5.1.1 主机端设备驱动程序这部分就是常说的设备驱动程序,是在主机环境中为应用程序提供一个访问USB外设的接口。无论是Linux还是Windows操作系统,都已经为这部分设备驱动程序提供了编程接口,设计者只需按要求建立程序框架,通过调用操作系统提供的API接口函数即可完成对USB外设的特定访问。5.1.2 主机控制器设备驱动程序这部分主要是对USB主机控制器的驱动,一般用户对此比较陌生。这是因为在大多数计算机环境特别是PC环境下,主机控制器设备驱动程序都是由操作系统提供的。主机端设备驱动程序与主机控制器设备驱动程序的关系如图51所示,其中的USB核是Linux的一个子模块,集中定义了一组USB相关的数据结构、宏及API函数。USB主机端设备驱动程序USB主机控制器设备驱动程序USB主机控制器设备驱动程序USB核上层API下层API图51USB主机部分设备驱动程序结构USB主机端设备驱动程序USB主机端设备驱动程序5.1.3 设备端驱动程序这部分是常说的设备固件程序的一部分,提供设备信息与主机的通信接口。设备端的USB接口芯片工作在Slave模式下,如图52所示。USB设备端驱动程序USB接口芯片图52USB设备端驱动程序结构5.2 主机端设备驱动程序分析和设计由于有关USB总线的通用操作如USB设备枚举、具体数据传输等是由主机控制器设备驱动程序完成的,所以这部分设备驱动程序只需完成与具体设备相关的操作即可。下面对其关键部分进行详细说明。5.2.1 数据结
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 村级财务制度培训与优化提升
- 七年级生物下册 第四单元 生物圈中的人 第七章 人类活动对生物圈的影响第一节 分析人类活动破坏生态环境的实例教学设计 (新版)新人教版
- 人教版 (2019)选择性必修 第二册Unit 1 Science and Scientists教案及反思
- 2024云南曲靖福牌彩印有限公司招聘2人笔试参考题库附带答案详解
- 三年级信息技术上册 第3课 可爱的小老鼠教学设计 辽师大版(三起)
- 人教精通版四年级下册Unit 3 What subject do you like bestLesson 14教案
- 上海市金山区九年级历史上册 第二单元 近代社会的确立与动荡 第11课 开辟新时代的“宣言”教学设计 北师大版
- 2024中核汇海招聘笔试参考题库附带答案详解
- 人教版四年级上册语文教案设计(教学反思参考3)去年的树学案-学案下载
- 内蒙古版四下综合实践 第三单元 主题活动四《自主选题:桥梁知多少》教案+素材
- 2024年中国农业银行辽宁省分行招聘考试真题
- 2025年新高考历史模拟试卷2(含答案解析)
- 中国汽车用品行业市场深度分析及发展前景预测报告
- 《森马服饰公司营运能力存在的问题及对策【数据图表论文】》11000字
- 外墙真石漆采购合同
- 物流行业招聘流程及人员配置
- 2025年扎赉诺尔煤业有限责任公司招聘笔试参考题库含答案解析
- 儿童科普教育:2025年《肥皂泡》
- 液化气充装站建站可行性研究报告
- 员工黄赌毒法制培训
- 2025年广西现代物流集团限公司校园招聘60人高频重点提升(共500题)附带答案详解
评论
0/150
提交评论