怎样写linux下的USB设备驱动程序
怎样写linux下的USB设备驱动程序
怎样写linux下的USB设备驱动程序 发布时间:2007年11月19日
引言
随着人们生活水平的提高,我们用到的USB设备也越来越多,但是Linux在硬件配置上仍然没有做到完全即插即用,对于Linux怎样配置和使用他们,也越来越成为困扰我们的一大问题;本文的目地是使大家了解怎样编制USB设备驱动,为更好地配置和使用USB设备提供方便;对于希望开发Linux系统下USB设备驱动的人员,也可作为进一步学习USB驱动的大体架构进而编写出特殊USB设备的驱动程序。
USB基础知识
USB是英文Universal Serial Bus的缩写,意为通用串行总线。USB最初是为了替代许多不同的低速总线(包括并行、串行和键盘连接)而设计的,它以单一类型的总线连接各种不同的类型的设备。USB的发展已经超越了这些低速的连接方式,它现在可以支持几乎所有可以连接到PC上的设备。最新的USB规范修订了理论上高达480Mbps的高速连接。Linux内核支持两种主要类型的USB驱动程序:宿主系统上的驱动程序和设备上的驱动程序,从宿主的观点来看(一个普通的宿主也就是一个PC机),宿主系统的USB设备驱动程序控制插入其中的USB设备,而USB设备的驱动程序控制该设备如何作为一个USB设备和主机通信。本文将详细介绍运行于PC机上的USB系统是如何运作的。并同时用USB驱动程序的框架程序当例子作详细的说明,我们在此文中不讨论USB器件的驱动程序。
USB驱动程序基础
在动手写USB驱动程序这前,让我们先看看写的USB驱动程序在内核中的结构,如下图:
USB驱动程序存在于不同的内核子系统和USB硬件控制器之间,USB核心为USB驱动程序提供了一个用于访问和控制USB硬件的接口,而不必考虑系统当前存在的各种不同类型的USB硬件控制器。USB是一个非常复杂的设备,linux内核为我们提供了一个称为USB的核心的子系统来处理大部分的复杂性,USB
你可能喜欢
- USB开发
- USB通信
- Linux编程
- 驱动设备
- 存储设备
- USB固件开发流程3页
- 再谈USB开发:LabVIEW调用DLL文件实现STM32+USB+HID双向通信8页
- EZ-USB 68013A开发指南8页
- USB转485开发板26页
- Linux_USB设备开发17页
- 基于STM32的USB程序开发笔记66页
- USB通信7页
- 平整度测试系统中USB通信模块的设计与实现2页
- USB通信协议48页
- 基于CY7C68013A的USB通信程序开发设计3页
- DSP和PC机之间通过USB实现通信3页
- 【工学】USB通信协议 共(16页)18页
- Linux编程白皮书 (2)14页
- Linux编程实验内容7页
- Linux Shell编程 [兼容模式]47页
- Linux开源编程期末考试13页
- Linux的shell编程11页
- Linux系统编程第2章64页
- inux查看硬件信息及驱动设备相关整理10页
- 浅谈linux驱动(2)-字符设备驱动程序10页
- Linux驱动设备模型之Platform5页
- linux驱动设备8页
- 裸机驱动与linux设备驱动的区别1页
- Linux字符驱动设备-学习笔记(最新实例)7页
- 软磁盘存储设备5页
- 第10章 办公移动存储设备23页
- 美国网件存储设备试题(考试用)10页
- 存储设备17页
- 中端FC存储设备2页
- FC存储设备3页