嵌入式设备驱动程序设计
- 格式:ppt
- 大小:295.50 KB
- 文档页数:66


158 福 建 电脑 2008年第7期
嵌入式Linux下USB2.0 海量存储设备驱动设计
冯韬.李广军
(电子科技大学通信与信息工程学院四川成都610054)
【摘 要】:该文首先介绍了USB2.0以及嵌入式Linux的应用背景,然后介绍了USB2.0设备的概念以及其驱动框架,并
详细介绍了在嵌入式Linu】【下海量存储设备驱动的设计与实现方法。该驱动设计采用了模块化设计的思路,层次清晰,并在
现实中得到了验证.最后成功实现了海量存储设备的功能。
【关键词】:嵌入式Linux;通用串行总线;海量存储设备;块传输协议
1.引言
通用串行总线USB 2.0接13是目前PC机的主流接13.可提
供480Mb/s(60MB/s)的高速数据传输.具有即插即用、热插拔、
接口体积小巧、节省系统资源、传输可靠、提供电源、良好的兼容
性、共享式通信、低成本等优点。由于USB接13的优点和流行,
当今嵌入式设计要和PC连接.首选USB接口。
LinUX以其开源、易于移植和可裁剪性。越来越多地被应用
于嵌入式系统。Linux内核支持2种主要类型的驱动程序:主机
端和设备端驱动程序 主机端驱动程序控制与其连接的USB设
备从而使用设备的功能:设备端USB驱动程序控制设备如何与
主机通信从而使其对主机表现出特定的功能.此时的设备应理
解为运行Unu】【的嵌入式系统。本文将着重分析的便是设备端
USB驱动程序的设计与实现。
2.设计概述
2.1.协议概述
设计前首先需要了解USB协议。
USB采用树形拓扑结构。主机侧和设备侧USB控制器分别
称为主机控制器(Host Controller和USB设备控制器(UDC),
每条总线上只有一个主机控制器.负责协调主机和设备问的通
信.而设备不能主动向主机发送任何消息。主机控制器通过
UDC的端点(Endpoint)与设备进行通信.端点由端点号和传输
方向确定.仅能单向传输数据。USB端点有4种类型。分别对应
2010年4月 第10卷第2期 廊坊师范学院学报(自然科学版) Journal of Lang ̄ng Teachers CoUege(Naturnal Science Edition) Apr.2010 Vo1.10 No.2
设备驱动程序在嵌入式Linux系统中的实现分析
王 莹
(枣庄学院,山东枣庄277160)
【摘要】 简述了在嵌入式Linux系统开发中驱动程序设计的重要性,以及驱动程序的基本结构和实现原理,通过 步进电机驱动实例详述了设备驱动程序的开发过程。 【关键词】 嵌入式;Linux;步进电机;驱动程序
The Realization Analysis of Device Drivers in Embedded Linux system
4NG Ying 【Abstract】This paper describes the importance of designing drivers in the embedded Linux system,as well as the basic structure r and the realization of the principle of device driver,detmls device driver development process through stepper motor driver examples. 【Key words】embedded;hnux;stepper motor;driver
[中图分类号]TP274 [文献标识码]A [文章编号]1674—3229(2010)02—0048—04
1 引言
设备驱动程序是操作系统内核和机器硬件之间
的接口,作为应用和设备间的软件层,为应用程序屏 蔽了硬件的细节。在Linux系统中,硬件设备只是
一个设备文件,应用程序可以像操作普通文件一样 对硬件设备进行操作。作为操作系统内核的一部
162010,31(1)计算机工程与设计ComputerEngineeringandDesign
0引言
NVRAM(non-volatilerandomaccessmemory,非易失性随
机访问存储器)是广泛应用于网络路由器的一种存储器件。它
如同PC上的CMOS,作用是存放路由器的配置参数。目前常
见的NVRAM,大都是静态SRAM,即带有备用电源的SRAM,
它的实现最简单,同普通内存操作一样。但是在实际应用中,
不是所有的开发板都配备有静态SRAM。在这种情况下,如
果使用该方案开发网络路由器,重新加入配备电源的SRAM
必须要重新排版,布线。开发周期与开发成本将会大大增加。
因此,可以考虑在现有的硬件资源基础上,通过新的方式来实
现NVRAM[1]。
本文就是以神州龙芯开发的CQ8401开发板为硬件平台,
在自行裁剪和移植的嵌入式Linux平台下,利用NorFlash来
实现网络路由器的NVRAM功能。
1NVRAM新的实现方案分析
由于NVRAM仅用于保存启动配置文件(Startup-Config),
故其容量较小,通常在路由器上只配置32KB~128KB大小的
NVRAM。配备电源的SRAM速度较快,是目前读写最快的存
储设备,而成本也比较高。一般的开发板所配备的NorFlash空间足够大,在系统性能得到满足的前提下,可以把NorFlash
分出一个区来当作NVRAM使用。SRAM和NorFlash的对比
分析,如表1所示。
网络路由器中的NVRAM用于存放配置参数。正常启动
路由器后,NVRAM中的内容会拷贝到内存一份,我们对路由
器的设置实际上就是修改内存中的参数。所以内存和NVRAM
中的内容可以不一样,直到使用writememory将内存设置保存
到NVRAM。在系统起来以后,我们可以根据需要修改配备参
收稿日期:2009-07-17;修订日期:2009-09-18。嵌入式系统工程徐立松,郭晓金:嵌入式Linux中NVRAM的实现方案及驱动设计2010,31(1)17
SCIENCE&TECI-INOL00YINFORMATION学术论坛
嵌入式!inux按键驱动程序的设计
王兵王冰峰(电子科技大学自动化工程学院成都)
摘要:本文主要介绍在linux系统下键盘驱动程序设计的方法,分析它与内核以及它与TTY层驱动之间的关系,从而得出linux下键盘驱动程序制作的框架,最后在LH7A404CPU下,充分利用它的资源,作出简单高效的驱动程序。
关键词:驱动程序中图分类号:TP311linux键盘
。1文献标识码:A文章编号:1672-3791(2007)01(a)-0220-01
随着计算机技术,通信技术和软件技术
为核心的信息技术的发展,嵌人式系统在各
行业中得到了广泛的应用。嵌入式系统成为
当前IT行业最热门的焦点之一。Linux操作
系嵌入式Linux凭借其功能强大、免费以及
开发资源丰富等优势,占据了嵌入式操作系
统的主导地位。目前linux操作系统支持X86
系列,ARM系列,POWERPC等各种常
见的CPU体系。各种开源团体,硬件厂商
为嵌人式LINUX发展注人活力。尽管linux
系统提供了多种多样的键盘驱动,但复杂多
样的硬件常常迫使我们完成自己的键盘驱动
程序。能终端和智能玩具等场合,目前LH7A404
的开发板功能已经很丰富,为用户的设计提
供了参考和方便。LH7A404提供了64个GPIO,这里我们用到GPIOA和一个专门用
于键盘扫描的GPIO,在使用之前.我们必
须配置相关寄存器使GPIOA作为输入。硬
件电路的连接如下图所示。
1键盘驱动程序所处的层次及程序处理过
程
在linux中总是以显示器和键盘的组合作
为一个控制台的,介绍键盘程动程序就不得
不从终端设备说起。与终端设备关系密切的数据结构有三个,第一个fileoperation结
构,这里终端设备为他提供的值是tty_fops
第一个tty_driver,终端设备为他提供的值
是console,另一个是ttyldisc数据结构。控制台为他提供的值是ttyldisc_NTTY,