你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:文章管理 / 本期精品文章
嵌入式LinuxUSB驱动程序
 

杨德芳

摘要 在嵌入式系统的开发中,编写设备驱动程序是必须要做的工作。本文给出了USB驱动程序的编写的架构,包括发现设备、读取设备信息、编写设备操作函数和注册、注销设备等操作,并给出了键盘飞梭驱动程序完整实例。

关键词 USB,探测函数,usb_driver结构

一、引言

USB(Universal Serial Bus)即通用串行总线,是一种全新的双向同步传输的支持热插拔的数据传输总线,其目的是为了提供一种兼容不同速度的、可扩充的并且使用方便的外围设备接口,同时也是为了解决计算机接口的太多的弊端而设计的。一个USB系统主要有三部分组成:USB互连、USB主机、USB设备三部分组成的,其结构如图1所示。在编写USB设备驱动程序设计时,可以分为三部分编写:主机端设备驱动程序、主机控制器驱动程序设计和设备端驱动程序三部分,在本文中重点介绍主机端驱动程序的设计。

USB主机控制器

根集线器

外设

集线器

外设

外设

集线器

外设

外设

 

 

 

 

 

 

 

 

 

 

 

 


  1  USB系统拓扑结构

二、USB设备驱动程序的设计

       USB设备驱动程序的设计包括主机端设备驱动程序设计、主机控制器驱动程序设计和设备端驱动程序设计三部分组成。主机端设备驱动程序就是通常说的设备驱动程序,它是主机环境中为用户应用程序提供一个访问USB外设的接口。Linux为这部分驱动程序提供编程接口,驱动程序设计者只要按照需求编写驱动程序框架,通过调用操作系统提供的API接口函数可以完成对USB外设的特定访问。

主机控制驱动主要是对USB主机控制器的驱动,在大多数PC环境下,主机控制器都是由操作系统提供。嵌入式设备一般都没有USB主机控制器,只是工作在Slave模式下。如果要使USB具有主机功能,那么设备中需要选用一个带主机控制器的USB接口控制芯片, 同时自己还要有实现该主机控制器的驱动程序。目前Linux内核中只提供USB主机控制器的开放主机控制器和通用主机控制器接口两种规格,而这两种规格主要用在PC架构中。USB主机端驱动程序与主机控制器的结构如图2所示。其中USB核是Linux的一个子模块,集中定义了一组USB相关的数据结构、宏以及API函数。

 

USB设备驱动程序

USB设备驱动程序

USB设备驱动程序

USB

USB主机控制器驱动程序

USB主机控制器驱动程序

上层API函数

下层API函数

 

 

 

 

 

 


2  USB主机端驱动程序结构

USB设备驱动程序是常说的设备固件程序的一部分,提供设备信息与主机的通信接口。设备端USB驱动程序设计由以下几部分处理程序组成。初始化例程:完成描述符指针、端点、配置改变等操作。数据传输例程:完成控制传输、批量传输、中断传输及同步传输等传输方式下的数据收发工作。标准设备处理请求:处理标准设备请求。厂商请求处理:处理生产商指定请求。其他操作:处理主机发出的端口复位、配置改变等操作。

  推荐精品文章

·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录
·2023年10月目录
·2023年9月目录 
·2023年8月目录 
·2023年7月目录
·2023年6月目录 
·2023年5月目录

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089