已阅读5页,还剩93页未读, 继续免费阅读
(通信与信息系统专业论文)基于linux的usb+20+otg+ip核主机驱动的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 u s b 是数字有线通信设备应用十分广泛的接口之一,但u s b 接口两端的设 备有主从之分,因此u s b 接口不支持任意两个u s b 设备之间的直接通信。o t g 的出现解决了这一问题,支持o t g 规范的u s bo t g 双重角色设备既可以实现主 机功能,又可以实现标准设备功能,使得该设备可以实现与任意u s b 主机或设备 问的通信,此外两个支持o t g 规范的设备也能直接通信。本文介绍一种基于a r m 芯片的u s b 2 0o t g 接口的i p 核设计,主要对其在l i n u x 下的主机控制器设备驱 动的设计做详细讨论。 本论文基于的课题设计的u s b 2 0o t gi p 核支持u s b 2 0 协议、o t g 补充规 范、u t m i + 协议。该i p 核的一侧通过u t m i + 的p h y 与o t g 设备通信:另一侧 通过存储器控制器与a r m 嵌入式系统相连,使得a r m 访问i p 核如同访问存储 器。该i p 硬件包括o t g 控制器( o t g c ) 、高速主机控制器( e h c ) 、全速主机 控制器( o h c ) 以及设备控制器( d c ) 。与本论文相关的硬件模块是主机端e h c 和o h c 模块,本l p 设计的特点在于其具有o t g 功能,主机端同时具有全速与 高速主机控制器,而且本i p 独立于m c u ,不具有总线控制权的接口模块设计, 其与m c u 的数据交互均通过中断服务程序完成。 u s b 主机功能由u s b 主机控制器硬件和u s b 主机驱动共同实现。u s b 主机 驱动是一个复杂的软件体系,在l i n u x 系统中,u s b 主机驱动分为u s b 设备类 驱动、u s b 核心驱动( u s b d ) 、u s b 主机控制器驱动( h c d ) 几个层次。本论 文详细研究的h c d 是u s b 主机驱动中与硬件结合最紧密的一层,它是上层驱动 与下层硬件沟通的桥梁。h c d 实现了主机控制器的管理、应用程序数据到u s b 数据的转化、传输的管理、设备的管理等重要功能。 本论文首先仔细研究了l i n u x 系统内核中的u s b 主机协议栈,在此基础上构 建u s b 驱动的框架。根据上层驱动框架、i p 核硬件设计,结合本i p 核与a r m 嵌入式系统之间的接口分析,实现u s b 全速和高速主机控制器驱动的功能部分。 由于i p 硬件设计的特殊性,主机控制器驱动的设计需要考虑到高速与全速控制器 的路由切换与缓存区的共享,以及a r m 访问作为s l a v e 的i p 核的方式。最后 介绍了该驱动作为l i n u x 内核的一个模块,与i p 核结合,在基于l i n u x 的a r m i 摘要 测试平台上运行和测试,并分析了结果。 分析大规模存储功能测试的结果,该系统实现了预期u s b 全速与高速主机功 能,并能成功切换。为进一步应用o t g 功能开发奠定基础。 关键词:o t g ,通用串行总线,开放主机控制器接口,主机控制器驱动,l i n u x 操作系统,a r m a b s t r a c t u s bi sw i d e l yu s e di nw i r e dc o m m u n i c a t i o na r e a ,b u tt h eu s b i n t e r f a c ed o e sn o t s u p p o r td i r e c tc o m m u n i c a t i o nb e t w e e nt w op e r i p h e r a l sg e n e r a l l y w i t ht h e r e l e a s eo f o t gs u p p l e m e n t ,t h i sp r o b l e mi sr e s o l v e d t h eu s b o t gd u a ld e v i c ew h i c hs u p p o r t o t g s u p p l e m e n tc a n b ee i t h e rh o s to rd e v i c e ,s ot h ed i r e c tc o m m u n i c a t i o nb e t w e e nm o d u a ld e v i c e sc a nb ea c h i e v e d t h i sp a p e ri n t r o d u c e su s b 2 0o t g i pc o r eb a s e do n a r m a n di ti sm a i n l ya b o u tt h ed e s i g no ft h eh o s tc o n t r o l l e rd r i v e rb a s e d o nl i n u x t h eu s b 2 0o t gi pc o r es u p p o r t su s b 2 0s p e c i f i c a t i o n ,o t gs u p p l e m e n t ,a n d u t m i + s p e c i f i c a t i o n t h i si pc o r ei sl o c a t e db e t w e e nt h em e m o r y c o n t r o l l e ro fa r m a n dt h ep h yw h i c hd e s i g n e dt oc o m m u n i c a t ew i t hu s bd e v i c e t h eu s b 2 0o t gi p c o r cm a i n l vi n c l u d e so t gc o n t r o l l e r , e n h a n c e dh o s tc o n t r o l l e r , o p e nh o s t c o n t r o l l e r a n dd e v i c ec o n t r o i l e r t h i si pc o r eh a sf o l l o w i n gs p e c i a l t i e s f i r s tt h i s i pc o n t a i n s o t gc o n t r o i l e r a n di tc o n t a i n sb o t hf u l l s p e e da n dh i g h s p e e dh o s tc o n t r o l l e rw h i c h i s au n i q u ed e s i g n s e c o n dt h i si p ,w h i c hd o e sn o th a v et h eb u sc o n t r o lc a p a b i l i t y ,i s i n d e p e n d e n tw i t hm c u ,a n dd a t a t r a n s f e rb e t w e e ni t sb u f f e ra n dm c ui sa c h i e v e d t h r o u g ht h ei n t e r r u p tw h i c h i n i t i a t e db yt h ei pc o r e u s bh o s tf u n c t i o ni si m p l e m e n t e db yu s bh o s tc o n t r o l l e r a n du s bh o s t d r i v e r u s bh o s td r i v e ri sc o m p l e xs o f t w a r ea r c h i t e c t u r e i tc o n t a i n s s e v e r a ll a y e r s w h i c ha r eu s bd e v i c ec l a s sd r i v e r , u s bc o r e ,a n dh o s tc o n t r o l l e rd r i v e r h c d , w h i c hi sr e s e a r c h e dd e e p l yi nt h i sp a p e r , i st h ec o m m u n i c a t i o nc h a n n e lb e t w e e nu s b d r i v e ra b o v ea n dh o s tc o n t r o l l e rb e l l o w h c dm a i n l ym a n a g e st h eh c ,d a t at r a n s f e r , t h eu s b d e v i c e ,a n ds o 0 1 1 b e f | o r ed e v e l o p i n go ft h eu s bh c d ,t h ed r i v e rd e s i g n e rh a st oa n a l y z et h eu s b p r o t o c o l s t a c ki n t e g r a t e di nl i n u xo p e r a t i n gs y s t e m ,a n d t h e nb u i l du s bd r i v e r a r c h i t e c t u r e t h e nt h ed r i v e rd e s i g n e rc a ni m p l e m e n tu s bf u l l s p e e da n dh i g hs p e e d h c db a s e do nl i n u xa c c o r d i n gt ot h ei ph a r d w a r ed e s i g na n d t h ei n t e r f a c eb e t w e e nt h e i pa n da r m b e c a u s eo ft h es p e c i a l t i e so ft h ei pd e s i g n ,d r i v e rd e s i g n e rs h o u l d c o n s i d e rt h er o u t es w i t c hb e t w e e nt h eh i 曲一s p e e da n dt h ef u l ls p e e dc o n t r o l l e r ,a c c e s st o i i i a b s t r a c r s h a r e db u f f e r ,a n dt h em o d eo fa r ma c c e s s i n gt h ei pc o r ea sas l a v e f i n a l l yr u nt h i s d r i v e ra sam o d u l ei nl i n u xk e m e lo nt h ea r mt e s tb o a r da n dt e s t t h i si pc o r e i m p l e m e n tt h e m a s s s t o r a g ef u n c t i o n o ft h e f u l l - s p e e da n d h j 曲s p e e dh o s tc o n t r o l l e r ,a n dc a ns w i t c hb e t w e e nt h e ms u c c e s s f u l l y k e y w o r d s :o t g , u s b ,o h c i ,h c d ,l i n u xo p e r a t i o ns y s t e m ,a r m 图目录 图目录 图l 一1 c y p r e s sc y 7 c 6 7 3 0 0 芯片框图2 图2 1 内核功能的划分一9 图2 2l i n u x 软件系统得层次关系1 1 图3 1 系统硬件设计一:一1 5 图3 2u s b2 0o t gi p 核设计1 6 图3 3i p 核与a r m 系统接口设计1 8 图4 1u s b 系统分层2 2 图4 2u s b 关注的区域2 5 图4 3 典型的列表结构2 6 图4 4 端点描述符2 6 图4 5 全速传输描述符结构2 7 图4 - 6 高速传输描述符结构2 9 图4 7l i n u xu s b 主机驱动协议栈3 0 图4 8u s b 核心层3 1 图4 - 9u s b 总线的使用一3 5 图4 - 1 0u s b 设备的枚举3 6 图4 1 1 查找设备驱动的过程3 7 图4 1 2 管道的域值一3 8 图5 1h c d 框架以及接口设计4 2 图5 2 o t g i po h cp r o b e 函数流程4 9 图5 3 o t g i p _ o h c _ _ i r q 流程一5 0 图5 4 函数o t g i p 流程51ohch u bs t a t u sd a t a 图5 5 函数o t g r i po h ch u bc o n t r o l 流程:5 2 图5 6r o o th u bd r i v e r 的运行流程5 3 图5 7 函数o t 舀p 流程54ohc s t a r t 图5 8u s b 数据转移图5 6 图5 9o t t c ld r i v e r 各函数调用关系5 7 v 1 1 1 图目录 图5 1 0 函数o t g i p流程5 9 o h c u r be n q u e u e 图5 11 函数o t g i po h cs t a r ta l tt r a n s f e r s 流程6 0 图5 12 函数o t g i po h cf i n i s ha i rt r a n s f e r s 流程6 1 图6 1 字符设备驱动嵌入调试7 0 图7 1 系统硬件测试平台示意图7 2 图7 2 系统详细框图7 3 图7 3 $ 3 c 2 4 1 0 开发板与f p g a 验证板的正面图7 4 图7 42 4 1 0 开发板与f p g a 验证板的背面图7 4 图7 5u s b 2 0o t gl p 核测试系统7 5 图7 6 加载主机驱动模块o t g i p hck o 7 6 图7 7 插入全速u s b 设备7 7 图7 8 挂载全速u s b 设备7 8 图7 9 测试全速读写速度7 9 图7 1 0 插入高速u s b 设备一8 0 图7 1l 挂载高速u s b 设备8 1 图7 1 2 测试高速读写速度8 2 i x 缩略词表 缩略词表 e h c i e n h a n c e dh o s tc o n t r o l l e ri n t e r f a c e增强型主机控制器接口 e p e n dp o i n t端点 f p g af i e l dp r o g r a m m a b l eg a t e a r r a y现场可编程门阵列 f r d f u l l s p e e dt r a n s f e rd e s c r i p t i o n 全速 g p i og e n e r a lp r o g r a m m a b l ei n p u t o u t p u t通用可编程输入输出接1 :2 1 h ch o s tc o n t r o l l e r主机控制器 h c dh o s tc o n t r o l l e rd r i v e r主机控制器驱动 h n ph o s tn e g o t i a t i o np r o t o c o l主机交换协议 h t d h i g h s p e e dt r a n s f e rd e s c r i p t i o n 高速传输描述符 i pi n t e l l e c t u a lp r o p e r t y知识产权核 m c um i c r oc o n t r o l l e ru n i t微处理单元 o i t c i o p e nt i o s tc o n t r o l l e ri n t e r f a c e 开放型主机控制器接口 o t go nt h eg ou s b 2 0 的补充协议 p cp e r s o n a lc o m p u t e r个人电脑 p h y p h y s i c a ll a y e r 物理层 r i s cr e d h e e dl n s l r u c t i o ns e tc o r n p u t e r精简指令集计算机 s c m s i n g l ec h i pm i c r o c o m p u t e r 单片微计算机 s i es e r i a li n t e r f a c ee n g i n e串行接口引擎 s o c s y s t e mo nac h i p 片上系统 s r ps e s s i o nr e q u e s tp r o t o c o l会话请求协议 s w ls o f l w a r e1 n t e r r u p t软件中断指令 t dt r a n s f e rd e s c r i p t i o n传输描述符 u l p iu t m il o wp i n gi n t e r f a c e减少管脚的u t m i 接1 3 u r bu n i v e r s a lr e q u e s tb l o c k通用请求块 u s bu n i v e r s a ls e r i a lb u s通用串行总线 u s b du s bd r i v e ru s b 核心驱动 u t m iu s b 2 0t r a n s c e i v e rm a c r o c e l li n t e r f a c eu s b 2 0 收发器宏单元接口 x 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作 及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地方 外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为 获得电子科技大学或其它教育机构的学位或证书而使用过的材料。与 我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的 说明并表示谢意。 日期:加7 年f 月弓j 日 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁盘, 允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文的全 部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描 等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名: 导师签名:卅印州 日期:功刁年( 月3 3 日日期:卅年c 月 日 第一章引言 第一章引言 本章主要介绍u s b 总线及o t g 的发展及应用前景及课题背景,同时介绍了 u s b 2 0o t gi p 所要达到的指标和作者在项目中所承担的工作,最后介绍了本文的 安排。 1 1 u s b 发展概述及课题背景 u s b 2 0 ( 通用串行总线) 是由c o m p a q 、h p 、i n t e l 、l u c e n t 、m i c r o s o f t 、n e c 和p h i l i p s 制定的一种计算机外设连接规范,在u s b l 1 的1 5 m b p s 和1 2 m b p s 基础 上增加了4 8 0 m b p s ( 6 0 m b s ) 的高速数据传输模式i l l ,使u s b 的应用范围得到进 一步扩大。 国外u s b 2 0 接口芯片产品开发的很早,甚至在u s b 2 0 协议公布的同年1 1 月份,c y p r e s s 和p h i l i p s 就推出了u s b 2 0 接口芯片,如图1 1 。当前市面上出售 的u s b 2 0 接1 3 芯片也都被国外厂商所统治,其中c y p r e s s 、i n t e l 、p h i l i p s 、n e t c h i p 、 n e c 、t i 等几家公司的芯片比较成功l2 l 。 为了使u s b 设备具有一定的主机功能,u s bi f 于2 0 0 1 年1 2 月1 8 日推出了 u s bo t g ( u s bo n t 1 1 e g o ) i 叫。o t g 并不是一个独立于u s b 2 0 的规范,它是对 u s b 2 0 的补充,所有在o t g 中未提到的事项都以u s b 2 0 的规范为准i 引。u s bo t g 技术增添了电源管理功能,它允许设备既可作为主机,也可作为外设操作。o t g 双重角色设备完全符合u s b 2 0 标准,并可提供一定的主机检测能力,支持主机交 换协议( h n p ) 和会话请求协议( s r p ) 。s t - e r i c s s o n ,也就是以前的飞利浦( p h i l i p s ) 半导体于2 0 0 2 年推出了支持u s b1 0 协议的u s bo t g 接口芯片i s p l 3 6 2 1 引,并于 2 0 0 4 年推出了支持u s b2 0 协议的u s bo t g 接e l 芯片i s p l 7 6 1 i s p l 7 6 2 【6 1 ,并得 到了广泛的应用。 国内u s b 2 0 接口芯片现在也有一定的发展。早在2 0 0 2 年国内已有一些公司 开始研究u s b 2 0 的接口芯片,比如青岛硅盛微电子有限公司已取得了研发成功, 并于2 0 0 4 年5 月申请了专利,它还在2 0 0 5 年的高交会上吸引了资金,进入u s b 2 0 接口芯片的产品研发阶段i 丌。国家相关部门也高度重视u s b 2 0 接1 3 芯片的研发, 电子科技大学硕士学位论文 并将其列为国家8 6 3 项目,电子科技大学在2 0 0 2 年承接了u s b 2 0d e vi p 核( 设 备) 开发的国家8 6 3 项目,在2 0 0 4 年3 月通过了国家的验收。接着2 0 0 5 年电子 科技大学又与国内某著名公司合作开发基于a r m 的u s b 2 0d e vi p 核( 设备) 。 两次演示系统都是大规模存储功能的应用。这两个项目最大的不同是开发的侧重 点不同,国家8 6 3 项目是偏重于研发的项目,目标是打破国外的技术垄断,拥有 自己的核心自主知识产权:而与公司合作的项目是偏重于产品的项目,目标是设 计实现一个基于a r m 的u s b 2 0 设备端的l p 核,并应用于芯片设计中l 别。 国内目前基本没有进行u s bo t g 的开发设计,许多整机设备厂家都直接选择 国外芯片。本课题的目标就是设计具有自主知识产权并满足相关规范的具有o t g 功能的u s bi p 核,并在嵌入式l i n u x 操作系统下实现u s b 主机和设备控制器的驱 动。本课题与电子科技大学以前的u s b 相关课题研究相比,实现了以下创新:1 、 硬件方面,以前的课题仅实现了u s b2 0 设备端i p ,而本课题不仅实现了设备端 l p ,还实现了符合u s b2 0 协议的高速主机控制器并兼容符合u s b l 1 协议的全速 主机控制器,并且实现了o t g 控制器,完成主机端与设备端的路由切换;2 、软 件方面,以前设计的i p 虽然也是基于a r m 核,但是由于设备端操作简单,没有 2 第一章引言 使用操作系统,仅开发了u s b 设备端固件,而本课题中实现了u s b 高速和全速主 机控制器,以及设备控制器,因此涉及到开发应用于本l p 的高速和全速主机控制 器驱动以及设备驱动。 1 2 论文课题设计目标 本论文源于四川省纵向课题。课题目标是研究开发具有自主知识产权的o t g u s b 2 0i p 核,在此基础上开发出集成电路芯片,并且应用于产品。 本课题的工作包括: 设计并验证u s b 2 0o t gi p 核,该i p 核支持u s b 2 0 协议,同时兼容u s b l 1 协议,支持o t g 补充规范,支持u s b 传输中的控制传输和块传输,提供 8 位u s b2 0u t m i + 接口,和u s b 2 0p h y 芯片配合使用; 在l i n u x 下开发u s b 2 0o t gi p 的驱动程序,包括全速主机控制器驱动, 高速主机控制器驱动,设备驱动: 设计u s b 2 0o t gi p 核的f p g a 测试系统、测试该i p 核高速和全速主机 功能以及设备功能,并演示u s bo t g 功能: 1 3 本人的主要工作 在本课题的研究中,本人完成的主要工作如下。 与u s b 2 0o t gi p 核硬件设计成员讨论完成全速和高速主机控制器软硬件 功能划分,软硬件接口定义: 独立制定详细的基于u s b 2 0o t gi p 核全速和高速主机控制器驱动设计方 案; 独立编写l i n u x 下u s b 全速和高速主机控制器驱动代码: 配合硬件设计成员完成i p 核的硬件测试; 与硬件设计成员一起完成软硬件联合调试; 1 4 论文结构的安排 本论文第一章为引言,主要介绍了u s bo t g 的发展及应用,以及课题背景, 3 电子科技大学硕士学位论文 第二章介绍嵌入式l i n u x 及在其基础上开发设备驱动的方法,第三章重点分析本课 题研究中使用的嵌入式硬件系统以及嵌入式系统与本课题开发的l p 核之间的接口 设计,第四章介绍u s b 接口协议及l i n u x 中u s b 协议栈,第五章介绍o t gu s b 2 0 i p 核主机控制器驱动的设计实现,第六章介绍本课题开发的u s b 主机驱动的调试, 第七章介绍i p 核的f p g a 测试结果并对其进行分析,第八章主要对本论文及l p 核 驱动设计做一个总结。这样的论文结构也与进行课题研究时的步骤一致。 4 第二章嵌入式l i n u x 设备驱动研究 第二章嵌入式系统与l i n u x 设备驱动开发 嵌入式系统是将先进的计算机技术、半导体技术、电子技术和各个行业具体 应用相结合的产物,这一点决定了它必然是一个技术密集、资金密集、高度分散 和不断创新的知识集成体系。嵌入式系统是近年来发展较快的信息领域之一,也 是国家信息产业的一个重点发展方向。它是一个不可垄断的市场,因而蕴含着巨 大的市场需求,可广泛应用于移动计算机设备、网络设备、信息家电、工控设备、 车载设备和仪器仪表等场合。 从2 0 世纪8 0 年代开始,出现了各种各样的商业用嵌入式操作系统。这些操 作系统大部分都是为专有系统开发的,从而形成了目前多种形式的商用嵌入式操 作系统百家争鸣的局面,如v x w o r k s 、p s o s 、n u c l e u s 、p a l m o s 和w i n d o w sc e 等。但这些专用操作系统都是商业化产品,其高昂的价格使许多低端产品的小公 司望而却步;而且,源代码封闭性也大大限制了开发者的积极性。因为这些e o s 提供给编程人员的,往往只有a p i 应用编程接口,一般以函数形式出现,这些函 数均是不能修改的。此外,结合国内实情,当前国家对自主操作系统的大力支持, 也为源代码开发的l i n u x 的推广提供的广阔的发展前景。 2 1 嵌入式l i n u x 开发概述 l i n u x 是一套u n i x 1 i k e 的操作系统,是u n i x 的一种,它控制整个系统基本 服务的核心程序( k e m e l ) 是由l i n u s 带头开发出来的,l i n u x 采用“大众公有版权” ( g p l ) 的方式来发行这份程序,这个版权允许任何人以任何形式复制与散布l i n u x 的原始程序,因此l i n u x 实际上是免费的,使用者可以在网络上找到l i n u x 的原始 程序代码,并根据需要进行修改,这种开放式开发方式吸引了无数计算机爱好者 投入开发、改善l i n u x 的核心程序,使得l i n u x 的功能日见强大。嵌入式l i n u x 是 l i n u x 经过裁剪的版本,相对于使用w i n c e ,v x w o r k s 等昂贵的付费嵌入式操作 系统,使用嵌入式l i n u x 能够通过较小的成本获得不错的性能,因此嵌入式l i n u x 在嵌入式系统领域得到了非常广泛的应用,因此需要对嵌入式系统外设开发l i n u x 系统下的设备驱动。 5 电子科技大学硕士学位论文 2 1 1 嵌入式系统的定义和特点 1 嵌入式系统的定义 嵌入式系统的定义为:以应用为中心、以计算机技术为基础、软硬件可裁剪、 适用于应用系统,对功能、可靠性、成本、体积、功耗严格要求的专用计算机系 统。它的主要特点是嵌入、专用i 引。 从2 0 世纪7 0 年代起,微型机以小型、廉价、高速数值计算等特点迅速走向 市场,它所具备的智能化水平在工业控制领域发挥了作用,常备组装成各种形状, “嵌入”到一个对象体系中,进行某类智能化的控制。这样一来,计算机便失去 了原来的形态与“通用”的功能,为区别于通用计算机系统,简称嵌入式系统。 含有嵌入式系统的设备成为嵌入式设备,这在生活中随处可见:电子表、手 机、m p 3 播放器、遥控器等,涵盖了生产、工业控制、通信、网络、消费电子、 汽车电子、军工等领域。从通俗、广义的角度来说,除电脑、超级计算机等具备 比较强大计算能力及系统资源( 比如内存、储存器等) 的电子系统之外,凡具备 计算能力的设备都可称为嵌入式设备。随着技术的进步,嵌入式设备的性能越来 越高,一个相对高级的p d a 的性能并不弱于一般的电脑。 2 嵌入式系统的特点 嵌入式设备常应用于“特定”场合,与“通用的”个人电脑相比,具备以下 特点: ( 1 ) 软件、硬件可裁剪 将市面上的手机拆开,会发现虽然它们的功能是相似的,但是所用芯片多种 多样,所用的操作系统也有多种,操作界面更是千变万化,操作的便利性各有千 秋。这不同于个人电脑,c p u 除了i n t e l 就是a m d 公司的,操作系统多用于 w i n d o w s 。功能、成本、开发效率等条件决定了嵌入式设备的选材多样化,软件、 硬件开裁剪,即当不需要某项功能时,可以去除相关的软硬件。 ( 2 ) 对功能、可靠性、成本、体积、功耗要求严格。 功能、可靠性、功耗这3 点是软件开发人员最关注的地方。仍以手机为例, 当选定硬件平台之后,处理器的性能已经被限定了,怎样使得手机的操作更人性 化、菜单响应更快捷、具备更多更好的功能,这完全取决于软件。需要驱动程序 和应用程序配合,最大程度地发挥硬件的性能。 6 第二章嵌入式l i n u x 设备驱动研究 2 1 2 嵌入式技术的发展历史 嵌入式技术发展日新月异,经历了单片机( s c m ) 、微控制器( m c u ) 、系统 级芯片( s o c ) 三个阶段。 1 s c m ( s i n g l ec h i pm i c r o c o m p u t e r ) 又称单片微型计算机,简称单片机,随着大规模集成电路的出现及其发展, 计算机的c p u 、r a m 、r o m 、定时数器和多种i o 接口集成在一片芯片上,形成 芯片级的计算机。 这个阶段主要是“寻求”单片形态嵌入式系统的最佳体系结构,也是从这个 阶段起,嵌入式计算机技术与通用计算机技术走上两条不同的道路。 2 m c u ( m i c r oc o n t r o l l e ru n i t ) m c u 即微控制器阶段的特征是:“满足 各类嵌入式应用,根据对象系统要 求扩展各种外围电路与接口电路,突显其对象的智能化控制能力。它所涉及的领 域都与对象系统相关,因此,发展m c u 的重任不可避免地落在电气、电子技术厂 家身上。 实际上,m c u 、s c m 之间的概念在日常工作中并不严格区分,很多时候一概 以“单片机”称呼。随着能够运行更复杂软件( 比如操作系统) 的s o c 的出现, “单片机”通常是指不运行操作系统、功能相对单一的嵌入式系统,但这不是绝 对的,比如8 0 5 1 上就可以运行r t x 5 1 实时操作系统,它的大小只有6 k b ,相比 于嵌入式l i n u x 、w i n d o w sc e 等操作系统而言比较简单。 3 s o c ( s y s t e mo n ac h i p ) 随着设计与制造技术的发展,集成电路设计从晶体管的集成发展到逻辑门的 集成,现在又发展到i p 的集成,及s o c 设计技术。s o c 可以有效地降低电子信息 系统产品的开发成本,缩短开发周期,提高产品的竞争力,是未来工业界将采用 的最主要的产品开发方式。 s o c 具有以下特征: 实现复杂系统功能的v l s i ; 采用超深亚微米工艺技术; 使用一个以上嵌入式c p u 数字信号处理器( d s p ) : 外部可以对芯片进行编程; 主要采用第三方i p 进行设计。 7 电子科技大学硕士学位论文 从上述s o c 的特征来看,s o c 中包括了微处理器微控制器、存储器以及其他 专用功能逻辑,但并不是包含了微处理器、存储器以及其他专用功能逻辑的芯片 就是s o c ,s o c 技术被广泛认同的根本原因,并不在于s o c 可以集成多少个晶体 管,而在于s o c 可以用较短时间设计出来,这是s o c 的主要价值所在- 缩短产 品上市周期1 1 0 j 。 因此,s o c 更为合理的定义为:s o c 是在一个芯片上由于广泛使用预定制模 块i p ( i n t e l l e c t u a lp r o p e r t y ) 而得以快速开发的集成电路。本课题使用到的$ 3 c 2 4 1 0 就属于s o c ,它集成了处理器、内存管理单元( m m u ) 、n a n df l a s h 控制器等部 件,而处理器是基于a r m 公司的l p 设计的。 2 1 3 嵌入式l i n u x 的优势 在所有的嵌入式操作系统中,l i n u x 是发展最快、应用最广泛的。l i n u x 本身 的种种特性是其成为嵌入式开发的首选。在进入市场的前两年中,嵌入式l i n u x 的设计通过广泛应用而获得巨大成功。随着嵌入式l i n u x 技术的成熟,定制需要的 尺寸尤为方便,同时支持更多平台,并从早期的使用阶段迈进到成为嵌入式市场 的主流。 l i n u x 现在已经成为全球第二大操作系统。预计在服务器市场上,l i n u x 在未 来几年将以每年2 5 的速度增长,中国的l i n u x 市场更是保持4 0 左右的增长速 度。在l i n u x 操作系统方面,其市场占有率从2 0 0 1 年的4 4 7 上升到了2 0 0 6 年的 2 6 7 7 1 1 q 。 l i n u x 发展如此之快的主要原因是产品的成本。在激烈竞争中,只拥有先进的 技术远远不够,如何减少产品的投入也是需要重点考虑的问题。免费的l i n u x 无疑 为厂商节约了一大笔开支,特别是对于经济实力不强的公司来说。 嵌入式l i n u x 相对于其他的操作系统具有以下的优势: 由于嵌入式l i n u x 是免费的,系统成本十分低廉; 由于嵌入式l i n u x 的使用者众多,开放源代码,并且都遵从与g p l 协议 开发,所以嵌入式l i n u x 开发的技术支持是很好的,基于l i n u x 开发的嵌 入式系统的开发周期也是相对较短的; 由于嵌入式t a n u x 目前的市场占有率不断提高,以及网络的发达,使得嵌 入式l i n u x 可利用的资源十分丰富; 嵌入式l i n u x 是可裁减的; 8 第二章嵌入式l i n u x 设备驱动研究 嵌入式l i n u x 的可移植性十分强。 l i n u x 的缺点在于缺乏实时性,但是目前最新的l i n u x2 6 版本在实时性方面 有较大的改进,同时不少变种l i n u x 在实时性方面做了很大改进,比如r t l i n u x 达到了硬实时,t i m e s y sl i n u x 提高了实时性。嵌入式l i n u x 作为嵌入式操作系统 中的一种,具有良好的发展前景。 2 1 4 嵌入式l i n u x 内核功畿划分 嵌入式l i n u x 系统支持多个进程的并发运行,每个进程都请求系统资源,比如 运算、内存、网络连接或其他一些资源。内核负责处理所有的这些请求,根据内 核完成任务的不同,可将内核功能分成如下几部分1 1 2 j ,如图2 一l 。 图2 1内核功能的划分 内核 予系统 所实现 功能 软件 支持 硬件 1 进程管理 进程管理功能负责创建和销毁进程,并处理他们和外部区域的连接。不同进 程之间的通信是整个系统的基本功能,囚此也由内核处理。除此之外,控制进程 如何共享c p u 的调度器也是进程管理的一部分。概括来说,内核进程管理活动就 是在单个或多个c p u 上实现了多个进程的抽象。 2 内存管理 内存是计算机的主要资源之一,用来管理内存的策略是决定系统性能的一个 关键因素。内核在有限的可用资源之上为每个进程都创建了一个虚拟地址空间。 9 电子科技大学硕士学位论文 内核的不同部分在和内存管理子系统交互时使用一组函数调用,包括简单的 m a l l o c f r e e 函数对以及其他一些复杂的函数。 3 文件系统 嵌入式l i n u x 在很大程度上依赖于文件系统的概念,l i n u x 中每个对象几乎都 可以当做文件来看待。内核在没有结构的硬件上构造结构化的文件类型,而文件 抽象在整个系统中广泛使用。另外,l i n u x 支持多种文件系统类型,也就是在物理 介质上组织数据的不同方式。例如,磁盘可以格式化为符合l i n u x 标准的e x t 3 文 件系统,也可格式化为常用的f a t 文件系统或者其他种类。 4 设备控制 几乎每一个系统操作最终都会映射到物理设备上。除了处理器、内存以及其 他很有限的几个对象外,所有设备控制操作都由与被控制设备相关的代码来完成, 这段代码就叫做驱动程序。内核必须为系统中的每件外设嵌入相应的驱动程序, 这包括硬盘驱动器、键盘和磁带驱动器等。 5 网络功能 网络功能也必须由操作系统来管理,因为大部分网络操作和具体进程无关: 数据包的传入是异步事件。在某个进程处理这些数据包之前必须收集、标识和分 发这些数据包。系统负责在应用程序和网络接口之间传递数据包,并根据网络活 动控制程序的执行。另外,所有的路由和地址解析问题都由内核处理。 2 2 设备驱动概述 设备驱动程序,简称驱动程序,是一个允许高级计算机软件与硬件交互的程 序,这种程序建立了一个硬件与硬件,或硬件与软件沟通的界面,经由主板上的 总线或其它沟通子系统与硬件形成连接的机制,这样的机制使得硬件设备上的数 据交换成为可能。 2 2 1 设备驱动在操作系统中的作用 从上到下,一个软件系统可以分为:应用程序、库、操作系统( 内核) 、驱动 程序,如图2 2 。开发人员可以专注于自己熟悉的部分,对于相邻层,只需要了解 它的接口,无需关注它的实现细节。 1 0 第二章嵌入式l i n u x 设备驱动研究 库( l t , 女ng l i b c ) 给应用程序提供的o p e n 、r e a d 、w r i t e 、i o c t r l ,m m a p 等接口 函数被称为系统调用,它们都是设置好相关寄存器后,执行某条指令引发异常进 入内核。对于a r m 架构的c p u ,这条指令为s w i 。除系统调用接口外,库还提
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年肾炎脾肿大症状解析模拟题及答案详解
- 2026年登高安全模拟试题(含答案)
- 2026年电工学简答模拟试题(含答案)
- 2026年蓝色素质模拟题及答案详解
- 2026年四川省选调生行测模拟题及答案详解
- 翻罐工安全强化竞赛考核试卷含答案
- 2026年古诗细节描写模拟试题(含答案)
- 2026年海边侦探模拟试题(含答案)
- 2026年河南十大战略模拟试卷(含答案)
- 时间频率计量员安全生产规范考核试卷含答案
- 军品生产现场管理制度
- 2026年辽宁铁道单招测试题附答案
- 汽车吊装作业风险识别与管控
- 中国急性缺血性脑卒中诊疗指南(2025年)
- 离退休老干部专题党课筑思想防线葆党员本色
- 读后续写题型讲解课件-高中英语人教版第一册
- 铁路防断培训课件
- 反对本本主义解读课件
- 公司融资风险管理制度
- 麻醉睡眠治疗
- 《步辇图》美术鉴赏课件
评论
0/150
提交评论