嵌入式 usb 从设备驱动程序设计

嵌入式 usb 从设备驱动程序设计

ID:34371732

大小:165.15 KB

页数:5页

时间:2019-03-05

嵌入式 usb 从设备驱动程序设计_第1页
嵌入式 usb 从设备驱动程序设计_第2页
嵌入式 usb 从设备驱动程序设计_第3页
嵌入式 usb 从设备驱动程序设计_第4页
嵌入式 usb 从设备驱动程序设计_第5页
资源描述:

《嵌入式 usb 从设备驱动程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、嵌入式USB从设备驱动程序设计黄晓敏朱光喜华中科技大学电子与信息工程系摘要:本文通过基于S3C2410的嵌入式USB从设备驱动程序的实现,介绍嵌入式Linux系统中的USB从设备驱动程序的设计方法,同时介绍了USB接口的一般原理和USB通信的一般过程,以及嵌入式Linux中驱动程序开发的一般原理和方法。关键字:USB;Endpoint;S3C2410;Linux中图分类号:TP336文献标识码:AAbstract:ThispaperdesignedaUSBdevicedriverprograminembedsystembasedonS3C2410.Usetheprogramintroduceh

2、owtodesignUSBdevicedriverprograminembedLinuxsystem,italsointroducetheprincipleofUSBinterfaceanditscommoncommunicationprocess,andabouthowtodesigndriverprograminembedLinuxsystem.KeyWords:USB;Endpoint;S3C2410;Linux引言:通用串行总线USB(UniversalSerialBus)作为计算机的标准外围设备接口以其热插拔、同时支持多个工作设备、外设自我标识、高速的传输速率等特点已倍受人们瞩目,使

3、得PC的接口纷纷从串行口和并行口转到USB总线上来。随着信息技术的发展和数字化产品的普及,嵌入式得到广泛深入的应用,嵌入式系统的广泛应用前景和发展潜力使其成为21世纪的应用热点之一。本文主要介绍如何实现嵌入式系统中的USB从设备驱动,进一步实现与PC机进行USB通信,在本程序的基础上易于开发USB的各种应用,例如:通过USB向开发板下载程序、数据采集上传以及作为移动存储设备等。一.USB接口原理USB通信一般采用层叠星型拓扑结构来组成通信网络,如图1所示。在USB通信网络中主要有三种设备:主机、设备和集线器。主机一般为PC或者其他计算机,主机必须具备两个元件:一个主机控制器和一个根集线器。主机

4、控制器格式化数据以便在总线上传输,根集线器检测外设的连接和断开,执行主机控制器发出的请求并在设备和主机控制器之间传递数据。设备是连接到总线的外设和其他集线器,设备必须包括带USB接口的电路和知道如何与主机通信的代码。集线器用于扩展USB接口的数目,最多可外接多达127各外设。图1.USB物理拓扑结构USB只有两根信号线负责与总线上的设备交换数据,这一对信号线只传输一个不同的信号,不同方向的信号要按顺序来传输。在一个USB拓扑结构中只能存在一个主机,总线上的设备必须共享一条传输通路,主机尽可能快地监视所有的传输。它通过如下方法管理流通量:首先把时间分成1毫秒(ms)的帧,然后每个传输都被分配到每

5、一帧的一部分,一帧的数据结构如表1所示。表1.主机安排1ms帧内的事务1ms帧帧的开始设备1、终端1设备2、终端1设备3、终端2设备3、终端3未用帧的开始设备1、终端11ms帧设备2、终端1未用每一帧以一个帧开始包开始,然后就是传输数据到/从设备的终端的事务,主机可以按自己的希望把事务安排在一帧的任何地方。所有的传输共享一个数据通道,因此每个事务必须包括事务的源和目的地址,每一个设备有一个由主机分配的唯一的地址。所有的事务都是以一个设备终端开始,或者以一个终端为目的地的。终端(Endpoint)是一个储存多个字节的缓冲器,用来作为主机和设备之间通信流的信息源或接收器,在USB设备中是一个可惟一

6、标识的端口。每个设备必须配置一个特殊的终端,即控制终端0,该终端为双向通信终端,用于USB设备与主机传输控制命令,在外设连接到USB集线器,USB系统软件就可通过终端0初始化并操纵USB设备。二.驱动程序设计与实现S3C2410芯片组内部提供USB支持,不需要附加专门的芯片来实现USB接口。该芯片包含5个终端:1个控制终端和4个数据终端,其中控制终端的FIFO最大为16Byte,数据终端的FIFO最大为64Byte,即控制数据包最大为16个字节,数据包最大为64个字节,支持USB1.1的12Mbps高速传输。2.1驱动程序设计Linux中将设备分成三种类型:字符设备、块设备和网络设备,对设备的

7、描述是通过主设备号和从设备号实现,其中主设备号描述控制这个设备的驱动程序,也就是说驱动程序和主设备号是一一对应的,从设备号是用来区分同一个驱动出现的不同设备。将USB设备作为一个字符设备,使用register_chrdev()函数向系统注册设备,在注册设备的同时必须提供一个文件操作的函数入口。文件操作实际上是一个file_operations结构指针,这个结构是设备驱动程序所提供的入口点位置,在设

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

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

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