介绍Linux操作系统下的USB硬件设备驱动.doc

介绍Linux操作系统下的USB硬件设备驱动.doc

ID:61488159

大小:39.00 KB

页数:5页

时间:2021-02-05

介绍Linux操作系统下的USB硬件设备驱动.doc_第1页
介绍Linux操作系统下的USB硬件设备驱动.doc_第2页
介绍Linux操作系统下的USB硬件设备驱动.doc_第3页
介绍Linux操作系统下的USB硬件设备驱动.doc_第4页
介绍Linux操作系统下的USB硬件设备驱动.doc_第5页
资源描述:

《介绍Linux操作系统下的USB硬件设备驱动.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、介绍Linux操作系统下的USB硬件设备驱动----摘自网上USB是英文"UniversalSerialBus"的缩写,意为"通用串行总线"。是由Compaq(康柏)、DEC、IBM、Intel、NEC、微软以及NorthernTelecom(北方电讯)等公司于1994年11月共同提出的,主要目的就是为了解决接口标准太多的弊端。USB使用一个4针插头作为标准插头,并通过这个标准接头,采用菊花瓣形式把所有外设连接起来,它采用串行方式传输数据,目前最大数据传输率为12Mbps,支持多数据流和多个设备并行操作,允

2、许外设热插拔。对于使用Linux系统,正确支持和配置常见的USB设备,就是其使用必不可少的关键一步。模块(驱动程序)  模块(module)是在内核空间运行的程序,实际上是一种目标对象文件,没有链接,不能独立运行,但是可以装载到系统中作为内核的一部分运行,从而可以动态扩充内核的功能。模块最主要的用处就是用来实现设备驱动程序。Linux下对于一个硬件的驱动,可以有两种方式:直接加载到内核代码中,启动内核时就会驱动此硬件设备。另一种就是以模块方式,编译生成一个.o文件。当应用程序需要时再加载进内核空间运行。所以

3、我们所说的一个硬件的驱动程序,通常指的就是一个驱动模块。设备文件对于一个设备,它可以在/dev下面存在一个对应的逻辑设备节点,这个节点以文件的形式存在,但它不是普通意义上的文件,它是设备文件,更确切的说,它是设备节点。这个节点是通过mknod命令建立的,其中指定了主设备号和次设备号。主设备号表明了某一类设备,一般对应着确定的驱动程序;次设备号一般是区分不同属性,例如不同的使用方法,不同的位置,不同的操作。这个设备号是从/proc/devices文件中获得的,所以一般是先有驱动程序在内核中,才有设备节点在目录

4、中。这个设备号(特指主设备号)的主要作用,就是声明设备所使用的驱动程序。驱动程序和设备号是一一对应的,当你打开一个设备文件时,操作系统就已经知道这个设备所对应的驱动程序。SCSI设备  SCSI是有别于IDE的一个计算机标准接口。现在大部分平板式扫描仪、CD-R刻录机、MO光磁盘机等渐渐趋向使用SCSI接口,加之SCSI又能提供一个高速传送通道,所以,接触到SCSI设备的用户会越来越多。Linux支持很多种的SCSI设备,例如:SCSI硬盘、SCSI光驱、SCSI磁带机。更重要的是,Linux提供了IDE设

5、备对SCSI的模拟(ide-scsi.o模块),我们通常会就把IDE光驱模拟为SCSI光驱进行访问。因为在Linux中很多软件都只能操作SCSI光驱。例如大多数刻录软件、一些媒体播放软件。通常我们的USB存储设备,也模拟为SCSI硬盘而进行访问。Linux硬件驱动架构  对于一个硬件,Linux是这样来进行驱动的:首先,我们必须提供一个.o的驱动模块文件(这里我们只说明模块方式,其实内核方式是类似的)。我们要使用这个驱动程序,首先要加载运行它(insmod*.o)。这样驱动就会根据自己的类型(字符设备类型或

6、块设备类型,例如鼠标就是字符设备而硬盘就是块设备)向系统注册,注册成功系统会反馈一个主设备号,这个主设备号就是系统对它的唯一标识(例如硬盘块设备在/proc/devices中显示的主设备号为3,我们用ls-l/dev/had看到的主设备就肯定是3)。驱动就是根据此主设备号来创建一个一般放置在/dev目录下的设备文件(mknod命令用来创建它,它必须用主设备号这个参数)。在我们要访问此硬件时,就可以对设备文件通过open、read、write等命令进行。而驱动就会接收到相应的read、write操作而根据自己

7、的模块中的相应函数进行。 其中还有几个比较有关系的东西:一个是/lib/modules/2.4.XX目录,它下面就是针对当前内核版本的模块。只要你的模块依赖关系正确(可以通过depmod设置),你就可以通过modprobe命令加载而不需要知道具体模块文件位置。另一个是/etc/modules.conf文件,它定义了一些常用设备的别名。系统就可以在需要此设备支持时,正确寻找驱动模块。例如aliaseth0e100,就代表第一块网卡的驱动模块为e100.o。内核中配置要启用LinuxUSB支持,首先进入"USB

8、support"节并启用"SupportforUSB"选项(对应模块为usbcore.o)。特别地,现在需要选择用于系统的正确USB主控制器驱动程序。选项是"EHCI"(对应模块为ehci-hcd.o)、"UHCI"(对应模块为usb-uhci.o)、"UHCI(alternatedriver)"和"OHCI"(对应模块为usb-ohci.o)。 要理解"EHCI"及其同类是什么,首先要知道每块支持插入USB设备

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。