(电力电子与电力传动专业论文)嵌入式系统课程的研究与设计.pdf_第1页
(电力电子与电力传动专业论文)嵌入式系统课程的研究与设计.pdf_第2页
(电力电子与电力传动专业论文)嵌入式系统课程的研究与设计.pdf_第3页
(电力电子与电力传动专业论文)嵌入式系统课程的研究与设计.pdf_第4页
(电力电子与电力传动专业论文)嵌入式系统课程的研究与设计.pdf_第5页
已阅读5页,还剩47页未读 继续免费阅读

(电力电子与电力传动专业论文)嵌入式系统课程的研究与设计.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

东南大学硕士学位论文 a b s t i 曩c t r 钟训y ,t l l e 啪b c d d e ds y s t 咖sg o 如n 删q u i c u y 锄da 坞印p l i e dw i d e l y mr n a r i yf i e l d s , s u c h 罄w i 化l 船s 咖硼i l i o i l ,n c t w o 血d e v i ,m o b i l em 咖o i y ,re l 咖l l i c s 锄de t c t 峙 h 啦e d u c a t i i sl l l ec m d l eo fp e 】璐、v j t i ih i g l id i 甜m i s d m p o d 曲i l i n e s ,s u m i yi tw i l i t a i 【et h et a s ki nh a r l dt oc u l 矗v a 把t i i es t 咖tw i t l l 曲eh w i e d 嚣o f 锄b e d d e ds y s t e m s t h eo 嘶t 盯州他c m s ei sh o w 自oc u 埘i v a 帕t l l es t i l d 钉nw i t l lt i l ei m o w l e d 留eo f 铀b c d d e d s y 嘶那s u r m i m d i n gm 咄也ep 印盯m 辩s e dh o wt o 鳅锄d 甜绡n g et i i ei t e i 璐o f t 量i e 懿州m 朋馘i o n s f o r m es h l d e 吣n e m a i n 佻k o f t h i s p a p 盯i s t os e tu p t l i ec d u c 硝伽s y s t e m s b u i l dm ee d u c a l i o np l a t f b m lo f 鼬f b 啾a n dh a r d 辅a 诧,锄da f r a i l 蓉et h eo 删o f 锄b e d d e d 夥s t e mp r o p e d y t l l e 懈曲i 1 1 9o f m b e d d e ds y s t e mi s 彻co f t h ea d v a c dd i s c 砸l i n e sw h i c hj s a b u n d a i l ti i le d u c 甜i 伽l a ld e s o u n 蕊 f i r s t l l i sp a p e rs 啪m 甜i z e dm es t a n 岱o ft 1 1 e 哪b e d d c ds y s t e mt e a c h i n g 锄l y s e dt 量i e 曲m i n c y 锄ds j 鲥f j c a t i o f 忙磁m r c ho f w a d 4 y ,i l l 啪i l l 捌i 忸c i l a 阳m 耐s t i c so f b 嬲i s 哆p e ,p m c t i c a lt y 】p e ,p 糟h e i l s i v e 帅c ,如db f o u g h tf 0 _ ,a r dan e wt e a c l l i 】1 1 9 h 涨o ft l l i s 毋吼c l l lt h e h 黜i l l c l u d 髓佃op a r b :t e a c l l i n g0 f 曲e 0 巧龃dt e a c l l i n go f e x l ) e r i m e n t a 士i o i l t t l e l 砒t e ri so n e o f t l l e 蚰p ( 硼粕tp c n i o n 缸t h ed 嚣i g no f 伽e 慨 t h e nt l l ep a p 盯a i l a i y s e dt l 砖d c s j g n 俺q u i 蛐e i i io fe d u c 越i o n 代w c 嚣,锄db u i ha n s 臼1 i c 吐v es y s 胁b a s e d a r mp l 确蛐。a l u 订t l a v e v m ld 谗璃西耐s t i c s ,s u c h 笛l 翳蝌 p o w 盯c o 璐哪p 6 0 i i h 蛳p c d b l m a n c e 柚dl o w 盯硼a f h 肿盯q 删彻o f p c 薯f b 删a n c c n i ss 诚a b l e t o b e u s e d 罄t l l e c 0 他p f o c e s s o r b a s e d l h i s ,t t l e s 缸l d 酬c 锄a p p l y “夥珊硎c a l l y t h ec 仰t e l i to f 蚀岵p l 施m w 豁d m d e d i 咖t w o p a 凼:t e 都h i n go f t l l e o r y a l i d t c a c h i i i go f 麟酬m 铋喇傩t h et e a 曲i 1 1 9o f 也黟j sb a s e d 锄a 刚,卸dl e a c h i n go f 既p c l 佃e r n 砒i 硼i s 谢学i i i j 捌锄d m p 0 do fb y 岫辩c 6 0 脏:b 习b i c j i l t e r f h c e e x p e r i m 明t 砒i o i l ,i u d s 币刊胁朋倒o n 觚d 咖p 化h c 璐i v e 甲妇n t 砒o i l c o n 伽m i l 坞t 量世私p e c to fb d t 的m f t w a 坤o ft l l e 鲫b t :d d e d 科s c e m c p c r i m e f l 僦彻 p l 蒯研l 玎n 摇f l c o s - l i i s l e c t e d 鹊趣i u d sp l a 渤皿1 1 l c p 印c r a l s e t f o m l 仕嵋删m l o do f 咖s p i a i l 廿i 培a l i dt h ep m c 铭so f s t a m l p 锄dg a v eas p i f i ce 搿m l p i eo f a p p i i c a 蝣o i l k e yw b r d s :t e 蚰f l gs y 蜘;a r m ;心,o s i i ;s y i l 协e n c a lt y p ee x p e 咖1 e t 砒i 东南大学学位论文独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研究成果。 尽我所知,除了文中特剐加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过 的研究成果,也不包含为获得东南大学或其它教育机构的学位或证书而使用过的材料。与我 一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。 研究生签名: 宰盘查盎塾日 东南大学学位论文使用授权声明 东南大学、中国科学技术信息研究所、国家图书馆有权保留本人所送交学位论文的复 印件和电子文档,可以采用影印、缩印或其他复制手段保存论文本人电子文档的内容和 纸质论文的内容相一致。除在保密期内的保密论文外,允许论文被查阅和借阅,可以公布 ( 包括刊登) 论文的全部或部分内容。论文的公布( 包括刊登) 授权东南大学研究生院办 理。 啾繇弛缒名糯日躲刈 第一章绪论 第一章绪论 1 1 嵌入式系统教学研究背景 嵌入式技术是2 1 世纪最有生命力的新技术之一,己被广泛地应用在工业控制系统、信 息家电、通信设备,医疗仪器、智能仪器仪表等诸多领域,如手机、p d a 、i p 0 d 、智能电 话等。嵌入式系统是当前i t 业界的热点,学习和研究嵌入式系统成为当前社会潮流。高等 院校作为研究和探索新技术最活跃的场所,高校老师如何指导学生学习嵌入式、研究嵌入 式、应用嵌入式成为一个重要的研究课题i l - z j 嵌入式系统教学是一门应用技术型课程,实践操作是其重要的环节。通过实践操作, 接触目标开发板、集成开发环境的构建方式和作业方式、嵌入式系统的硬件和软件、盯a g 调试方法,学生才能学会如何从头开始着手开发嵌入式系统;才能增长交叉编译、目标板 程序调试和目标板程序装载的真知;才能积累嵌入式系统开发流程、开发方法和开发技巧 的经验由此可以看出,实验教学起着至关重要的作用。 目前,国内许多重点院校已在本科生和研究生中开设了嵌入式系统的相关课程,并筹 建了嵌入式系统教学实验平台,应用于电子工程、计算机,自动化控制等专业的本科生和 研究生的教学。 为了使我校培养的学生能够跟上技术发展的步伐,尽快适应社会的需要,掌握最新的 知识结构,我校准备新增设嵌入式系统课程,该课程建设分为理论授课和实践操作两个环 节:理论课围绕嵌入式系统的基本概念,嵌入式系统的体系结构与编程技术,以及嵌入式 系统的开发、应用进行讲述;实验课程依托实验教学平台进行专题实验项目和综合实验项 目。对于想继续学习深造的学生来说,可以为研究生阶段的研究打下基础;对于走上就业 岗位的学生来说。在开发工作的前线亦可得心应手,尽快出成果。 因此,在高校开设嵌入式系统方面的课程具有重要的理论与现实意义,一方面可以进 一步完善课程体系,为培养基础型、综合型人才打下坚实的基础;另一方面为培养社会需 要的应用型人才作好准备,进一步加强学生的实践能力与创新精神。嵌入式系统的硬件与 软件是紧密联系在一起的,是训练学生软硬件综合能力的一个极好的载体。 1 2 嵌入式系统教学的特点 嵌入式系统教学课程主要是针对目前主流的基于a 删架构的嵌入式微处理器与源码公 开的实时操作系统进行详细剖析,并结合具体的嵌入式系统开发实验,使学生能够掌握嵌 入式系统的设计与开发方法。在教学过程中,强调以学生为认知的主体,通过学生的实践 发现、产生问题,在教师的指导下理解问题的本质,学生在实践过程中学习理论知识、掌 握操作技能,并将理论和实践结合在一起,从而能激发学生学习的兴趣,增加了学生的创 新意识,嵌入式系统教学体现了如下几个特点:基础性、综合性和实践性。 ( 1 ) 基础性嵌入式系统技术涉及多个专业,如计算机工程、软件工程、工业自动控制、 机械电子工程、精密仪器、电子工程和电力系统等等。嵌入式技术与各个专业相互渗透融 合,将逐渐形成新的学科研究方向,因此嵌入式系统可作为上述各专业的基础平台课,可 以强化专业基础知识。 东南大学硕士学位论文 ( 2 ) 综合性嵌入式系统是软件和硬件设计的完美结合,它涉及电子信息、计算机、自 动控制等诸多专业相关课程的内容,如c 语言、微机原理、单片机设计和操作系统等课程, 有很强的综合性,可以有效地对学生进行综合能力的培养。 ( 3 ) 实践性嵌入式系统是理论与实践相结合的课程,实验是嵌入式系统课程的重要环 节,缺乏实验的嵌入式系统课程学习是纸上谈兵。因此,学生经过大量的实验和实践环节, 来提升嵌入式系统设计的专业知识和实际设计能力。 1 3 嵌入式系统教学体系的建立 如图1 1 所示,嵌入式系统课程体系内容颇多,涉及到基本的硬件知识,如计算机系 统结构和微机原理知识、数字电路设计和单片机设计知识、人机交互接口知识等;涉及到 操作系统知识,如中断、优先级、任务调度、任务间通讯和同步等知识;涉及到程序设计 知识,如c 语言、汇编语言等。以嵌入式系统为平台的相关学科与领域包括嵌入式应用领 域,如自动控制、仪器仪表、通信工程、信息技术等;计算机学科( 嵌入式计算机系统) , 如嵌入式体系结构、软硬件开发平台、开发环境;电子技术学科( 即电子电路设计) ,如电 路设计、电子系统设计、功a 等;微电子学科( 即集成电路设计) ,如a s l c 、s o c 设计等” 图l l 嵌入式系统教学体系架构 嵌入式系统教学体系的建立包含理论教学体系和实验教学体系两部分,其中理论教学 具有指导意义,实验教学体系的建立是其中重要的环节 1 理论教学体系的建立 嵌入式系统理论课程主要围绕基于a r m 的微处理器和实时操作系统,介绍嵌入式系 统基本概念、前沿发展趋势,理解其设计方法,学会嵌入式编程技术。 2 第一章绪论 2 实验教学体系的建立 按照学生认知的特点,建立了基础型、技能型,综合应用型三层次的嵌入式系统实验 教学体系。 基础型实验采用理论授课与动手实验相结合的方式,让学生了解开发环境和开发流程, 学会使用开发工具,按照指导书的内容进行实验案例的调试,弄懂实验源程序和程序的运 行过程,然后进行修改、综合运用式的应用编程。 技能型实验采用在某种操作系统环境下,进行多任务的应用。让学生能够掌握操作系 统的移植和多任务的调度。 综合型实验由教师提供一些设计课题让学生自选其中一种进行设计,要求学生综合应用 所学到的知识和实验系统所提供的功能模块。 由此可见,嵌入式系统教学体系就是要通过必要的基础理论教学,与大量的实践操作环 节相结合,利用先进的教学实验平台及集成开发环境,使学生在较短的时间内了解3 2 位嵌 入式应用的基本特点。并掌握用3 2 位嵌入式开发高端智能产品所需的基本技能。同时针对 3 2 位应用大多使用操作系统的特点,本方案还要求学生掌握基于嵌入式实时操作系统的原 理、特点并能够熟练编写基于嵌入式实时操作系统的应用软件,通过这些训练使学生具有较 强的综合素质,成为具有良好的实际操作能力和研发设计能力,符合社会需求的高素质、开 拓型电子应用人才。 东南大学硕士学位论文 第二章嵌入式系统方案设计 嵌入式系统是指以应用为中心,以计算机技术为基础。软硬件可裁剪,功能、可靠性、 成本、体积及功耗具有严格要求的专用计算机系统【4 l 。嵌入式系统的硬件和软件都必须高 效率地设计,量体裁衣、去除冗余,力争在同样的硅片面积上实现较高的性能。3 2 位a i t m 嵌入式微处理器具有高性能,低功耗的特性,并且提供了可编程性和可操作性,软件的设 计可以独立于硬件,已被广泛应用于消费电子产品、无线通信和网络通信等领域。 在开设嵌入式系统实验项目之前首先根据教学内容的要求,搭建一个软硬件实验平台, 该平台包括开设实验项目的全部资源,从而让学生能够在此平台上完成专题实验项目和综 合实验项目 2 1 硬件实验平台的构建 a i t m 实验平台选用核心主板加扩展板的设计思想:提供基于微处理器的核心主板, 将微处理器的所有输入输出端口全部引出来。在核心主板上只提供最基本的接口,而将音 频接口、通讯接口、u a r t 接口以扩展板形式提供。这样学生可以在实验平台上进行主流 技术硬件电路设计实验,真正掌握有关硬件电路工作原理。 硬件平台主要包括s 3 c “b o x 、存储器、r s 2 3 2 通信接口、l e d 、肛 a g 调试接口、i i s 音频控制器、键盘接口、l c d 接口,参见图2 - 1 : 2 1 1a r m 的选型 图2 一l 硬件平台基本构架图 ( 1 ) a i t m 处理器系列 a r m 处理器目前有6 个系列产品:a r m 7 、a i t m 9 、a r m 9 e 、a r m l o e 、s w c o 4 第二章嵌入式系统方案设计 以及最新的a r m l l 系列。 其中,a r m 7 、a 砌圆、 r m 9 e 和a 蹦1 0 e 为4 个通用处理器系列,每个系列提供 一套特定的性能来满足各个应用领域的需求 基于a r m 7 1 d m i 核的三星s 3 c 4 4 8 0 x 芯片,是目前国内使用最普遍的a i t m 芯片, 非常适合教学,充分体现嵌入式系统对资源、成本、可靠性有严格要求的特点。与a r m 7 相比,a r 的在性能和功能方面有很大提高,但系统复杂,更适合作为高端产品的开发 平台,并不适合作为教学平台,就好比用一台p c 进行教学一样,无法体现嵌入式教学的 特点。因此,实验平台选用3 2 位a r m 7 1 d 娜核的三星s 3 0 b o x 芯片,作为微处理器。 ( 2 ) a r m 7 1 i ) m i 处理器 a r m 7 系列微处理器为低功耗的3 2 位i u s c 处理器,a i t m 7 处理器特点如下: 能够提供o 9 m i p s n 哪z 的三级流水线结构,代码密度高,并兼容1 6 位的t h m b 指令 指令系统与a i t m 9 、a r m 9 e 和a r m l 0 e 系列兼容,便于产品升级 具有嵌入式i c e - r t 逻辑,调试开发方便 极低的功耗,适合对功耗要求较高的应用 a r m 7 系列处理器包括以下几种类型的核:a r m 7 1 d m 【、a r m 7 2 0 t 、a r m 7 e j 。其中, a r m 7 ) h 是目前使用最广泛的3 2 位嵌入式脚s c 处理器。t i ) 的基本含义是: t :支持1 6 位压缩指令集n 哪b ; d :支持片上调试( d 曲l l g ) ; m :内嵌硬件乘法器( m u l t i p l i 盯) ; l :嵌入式l c e ,支持片上断点和调试点。 ( 2 - 1 ) 指令流水线 a r m 7 ) m i 采用3 级流水线,以提高处理器指令的流动速度,指令的执行分为三个 阶段:取指、译码和执行。具体的操作参见图2 2 : 图2 - 2a l t m 7 ) m i 单周期指令的三级流水线操作 当正常操作时,在执行一条指令期间,其后面的一条指令可以进行译码,且第三条指 令从存储器取指。程序计数器( p c ) 指向正在取指的指令,并不是正在执行的指令。 ( 2 - 2 ) 存储器访问 a r m 只有加载、存储和交换指令可以访问存储器中的数据。数据可以是8 位( 字节) 、 1 6 位( 半字) 和3 2 位( 字) 。字必须是4 字节边界对准,半字必须是2 字节边界对准。 ( 2 - 3 ) 嵌入式i c e r t 逻辑 嵌入式l c b i 玎逻辑为a i t m 7 t d 内核提供了集成的片上调试支持,可以利用i c b r t 逻辑来编程断点或观察断点出现的条件。嵌入式i c e r t 逻辑包含调试通信通道( d x , d c b 嚷c 蛐肿岫i c 砒j 册sc l m e 1 ) 。d c c 用于在目标处理器和宿主调试器之间传递信息。 嵌入式i c b i 汀逻辑通过a g 接口( j o l mt e s ta c t i 帆g 】p ) 进行控制。 ( 2 4 ) a l u 订7 1 d m i 处理器模式 a r m 7 t d m l 支持7 种处理器模式: 5 东南大学硕士学位论文 用户模式:这是正常程序的运行状态 快速中断模式:为快速数据传输或通道处理设计 中断模式:用于通用的中断处理 管理模式:操作系统的保护模式 中止模式:取数据或指令错误后进入该模式 系统模式:支持操作系统特权任务的模式 未定义模式:当有未定义的指令被执行时进入该模式 模式之间的切换可以通过软件控制,多数的用户程序都是在用户模式下运行,进入非 用户模式一般都是完成操作系统中的一些操作。 ( 3 ) a r m 7 t d m i 的寄存器 a r m 7 t d m l 共有3 7 个寄存器,其中3 1 个为3 2 位通用寄存器。6 个为状态寄存嚣。 但是这些寄存器不能被同时访问,当前处理器的状态和模式决定了哪些寄存器可以被访问。 ( 4 ) a r m 嵌入式系统 a r m 体系处理器被广泛应用于嵌入式系统的原因基于以下几点: 高性能的砌s c 处理器内核低功耗。 兼容3 2 位和1 6 位指令,灵活的外部设备扩展方式。 大量系统软件和应用软件。 高性能和低功耗是嵌入式系统的应用复杂性和应用环境所需要的。兼容1 6 位指令能够 降低系统开销,这对于比较简单的应用而言非常重要。通过各种总线,包括先进高性能总 线a h b ( a d v 锄c e dh i 咖p e m 眦锄c eb u s ) 、先进系统总线a s b ( a d v 锄c e ds y s t e i i lb u s ) 和先进 外围总线a p b ( a d v c e d 嘣p h c r a lb u s ) ,a r m 体系处理器能够集成各种外围设备,提高 s o c 集成程度。a r m 体系的成功使得许多软件能够运行在该体系处理器上,进一步促进更 多的软件被移植或开发,包括操作系统、中间件和各种应用程序。 2 1 2 硬件实验平台的电路设计 从嵌入式系统教学的角度考虑,a l m 处理器可以工作的最小系统一般由电源、c p u 芯片、存储器、复位电路、系统时钟等构成,考虑到a r m 调试方便,把,i - a g 和串口也 包括进来。 ( 1 ) 电源设计 电压设计采用5 v 电压输入主板,经过l d o 芯片( 低压差电源芯片) 稳压输出3 3 v , 提供给m 端口使用。l d o 采用了l m “1 7 - 3 3 ,其特点为输出电流大,精度高,稳定性高, 功耗低。在核心板上采用稳压块稳压输出2 5 v ,供给c p u 内核电压。具体电路参见图2 3 , 图2 - 4 ; 6 第二章嵌入式系统方案设计 图2 - 33 3 v 电源设计 图2 - 4 2 5 v 电源设计 ( z ) 系统时钟电路 采用外部时钟源,时钟频率为1 0 2 5 z ,内部p l l 电路可调整时钟,c p u 最大操 作时钟频率为6 0 厶振荡器输出频率称为f o ,a i t m 处理器时钟频率称为f c c l k ,系统 时钟电路如图2 5 所示,l m 欧姆电阻并联,使系统更容易起振。 图2 5 系统时钟 ( 3 ) 系统复位电路 为了提供性能好的电源监视功能,选取专门的系统监视复位芯片哪! 1 s ,可通过手 动控制系统的复位,同时监控系统的电源,一旦系统电源低于系统复位的阀值( 2 9 v ) , 嗍1 l s 将会动作,对系统进行复位,如图2 - 6 所示。 图2 - 6 系统复位电路 ( 4 ) j t a g 接口电路 a r m 7 t d m i 处理器的高级调试特性使应用程序、操作系统和硬件开发变得更加容易。 通过a i 洲彻m i 处理器j t a g 接口,在调试时可以实现如下功能: 暂停程序的执行。 检查和修改内核的内部状态。 检查存储器系统的状态。 7 东南大学硕士学位论文 执行中止异常,允许实时监控内核。 恢复程序执行 所有型号的a r m 产品其盯a g 接口是一致的,具体电路参见图2 - 7 : 图2 7 a r m 的j 1 - a g 接口 ( 5 ) 串口电路 在a 跚最小系统中加入串口电路为调试提供方便。具体电路参见图2 8 : 图2 - 8 串口电路 上图有两个注意事项:1 ) l s p 下载前要求p 0 1 4 脚在上电时为低。2 ) m a x 3 2 3 2 工作 电压是3 3v s 3 c “b o x 的工作电压是2 5 v ,虽然a r m 的i ,o 口可以承受3 3v 电压, 但用作输入时最好串一个1 0 0 欧姆的电阻用于限流。 ( 6 ) s 3 c “b o x 的i ,o 接口设计 a r m 系统完成i ,o 功能的标准方法是使用存储器映射i ,o 。该种方法使用特定的存储 器地址。当从这些地址加载或向这些地址存储时。它们提供i ,0 功能。 s 3 c 4 4 8 0 x 有7 1 个多功能输入僚出引脚,鞫成了7 个i 船接口: 两个9 位的输入输出接口( e 和f ) 两个8 位的输入腧出接口( d 和g ) 一个1 6 位的输入,输出接口( c ) 一个1 0 位的输出接口( a ) 一个1 1 位的输出接口( b ) 每个管脚都可以通过软件按各种系统的要求进行设置,每一个要用到的管脚的功能要 在系统主程序启动前进行设置。 8 第二章嵌入式系统方案设计 在s 3 c “b o x 中,由于每个管脚是多路复用的,故要确定每个管角的功能。p c c i n n 能够定义管脚的功能。如果接口定义为输入功能,则输入的数据可以从p d a t n 读入;如 果接口定义为输出功能,则可通过寄存器p d a t n 输出数据。 ( 7 ) 按键电路设计 设计了2 路按键电路,通过2 个c p u 的g p i o 管脚各被1 个1 0 k 的电阻上拉,在一般情况下, 该g p i o 的管脚电平为高,一旦按键按下,g p i o 的管脚电平将为低,可以通过程序轮询的模 式或者中断的模式来获取g p i o 的管脚电平的变化。电路图参见2 - 9 所示: 图2 - 9 按键电路 ( 8 ) 1 2 c 电路设计 支持一个多主控的1 2 c 总线串行接口。一根串行数据线s d a 和一根串行时钟线在总线 m a s t e r 和s l a v e 设备间传递信息。s d i a 和s c l 都是双向信号线。1 2 c 电路图如2 1 0 所示: 图2 1 0 1 2 c 电路 ( 9 ) 音频接口电路设计 1 2 s 即音频数据接口,它是s o n y 、p h i l i p s 等电子巨头共同推出的接口标准。s 接口电 路如图2 1 1 所示,本系统把1 2 s 接口与p h 几i p s 的u d a l 3 4 l t s 音频数字信号编译码器相连接。 得到c r o p h o n e 音频输入通道和s p e a d e r 音频输出通道。u d a l 3 4 l t s 可把立体声模拟 信号转化为数字信号,同样也能把数字信号转换成模拟信号,并可用p g a ( 可编程增益控制) , a g c ( 自动增益控制) 对模拟信号进行处理;对于数字信号,该芯片提供了d s p ( 数字音频处 理) 功能。s 3 c 4 4 b o x 的i i s 口可与u d a l 3 4 1 t s 的b c k 、w s 、d a t a l ,s y s c l k 相连。对于 u d a l 3 4 l t s 的l 3 总线,它是该芯片工作于微控制器输入模式时使用的,它包括l 3 d a l a 、 l 3 m o d e 、l 3 c l ( ) c k 共三根接线,它们分别表示为微处理器接口数据线、微处理器接口模 式线,微处理器接口时钟线。通过这个接口,微处理器能够对u d a l 3 4 l 鸭中的数字音频处 理参数和系统控制参数进行配置。但是s 3 c “b 0 x 中没有设该专用接口,可通过通用i o 口 进行扩展。 9 东南大学硕士学位论文 ,o v 。人 rj 1 d r 劓加 删季辩灞 ;= 1 憝 l g 砌2 l 乞朋, ? 咖虹2q 睫i e 答 i 、 l 。:j v 吼3 帅d d c ) o c 咖斧 吣 。a 八。 p 黼 日3 i 暇v 呦3 h 帅d 1 w * 导等芋i 勺匿搬。刚1 5 l 珊俐 翻1 3嚏1 1 9 懿黛墨 4 7 k _ i 淑 l 擅 c 2 0c 2 3 一 芝l 帅f1 晰; _ , = 硫耥, u m l 3 4 l b g m 图2 - l l 音频接口电路 ( 1 0 ) l c d 及触模屏控制电路 由于s 3 c 4 4 8 0 x 内已经提供了l c d 控制器、驱动器及输输出口,故只要把l c d 接 口相关引脚与c p u 相应引脚相连就可以了。 对于t s p 由于s 3 c “b o x 未提供该功能,因此用i ,o 口进行配置。t s p 包括两个面电阻, 即x 轴面电阻,y 轴面电阻,t s p 于是就有4 个终端口,其接线如图2 1 2 。在系统处于休眠状 态时,q l 、q 2 、q 3 处于截止,q 4 为导通;当触摸屏受到接触时,x 轴面电阻与y 轴面电阻 在接触处导通,由于电阻值很小( 几百欧左右) ,使在e x i n r 2 处分压得低电平。产生中断; m c u 通过对i ,o 口的控制使q 1 、q 4 导通q 2 、q 3 截止,a i n o 读取x 轴坐标然后关闭q l ,q 4 , 使q 2 、q 3 导通,a 聃l 读取y 轴坐标。系统得到坐标值后,关闭q l 、q 2 、q 3 打开q 4 ,回到 初始状态,等待下一次接触。s 3 c 4 4 b o x 采用外部中断t s p - t 以及4 个通用i ,o 口,2 路a d c 口来实现 图2 1 2 触摸屏控制电路 1 0 第二章嵌入式系统方案设计 2 2 软件实验平台的构建 底层硬件驱动程序是嵌入式系统软件开发的第一个阶段,其将软件和硬件紧密地联系 在一起,涉及到许多硬件方面的知识,对底层硬件驱动程序的了解,是深入理解嵌入式系 统工作原理的有效手段,同时也是进一步开发基于嵌入式操作系统的设备驱动程序的基础 基于教学角度考虑,提供所有硬件部分的底层驱动程序。 在嵌入式操作系统运行起来之前首先需要一段程序来初始化c p u 、内存控制器、看门 狗等硬件设备,然后进行配置存储映射,建立系统的内存空间映射图,从而将系统软硬件 设置到准备工作状态,最后将操作系统内核解压加载到r a m 中,并且跳转到操作系统的 起始代码部分去执行,这段程序称为b 0 0 i l o a d 日,其作用相当于p c 机上的b i o s l 6 j 。 l i l l 在a r m 等嵌入式设备中的应用越来越广泛,很多使用其它嵌入式操作系统 ( e m b e d d e d0 1 ) e r 蚵0 ns y s t e m ) 的设备也开始转向使用l i n 一个嵌入式l m 系统从软件 的角度通常分为以下四个层次1 7 j : 1 引导加载程序。包括固化在固件( f i m m 曲中的启动( 啪t ) 代码( 可选) 和 b o o l l 口a d 盯两部分。 2 l i n i l 】( 内核。针对嵌入式系统的定制内核以及内核的启动参数。 3 文件系统。包括根文件系统和建立于f l a s h 内存设备之上的文件系统。通常用舢 d i s k 来作为r 睡。 4 用户应用程序。针对用户的应用程序。有时在用户应用程序和内核层之间可能还 会包括一个嵌入式图形用户界面常用的嵌入式g u i 有:m i c w i n d o w s 和m j l l i g u l 等。 图2 1 3 就是一个同时装有b 0 0 t l o a d e r 内核启动参数,内核映像和根文件系统映像 的典型固态存储设备的空间分配结构示意图: 图2 1 3l i n 空间分配结构示意图 引导加载程序是系统上电后首先运行的软件代码。在p c 机中,引导加载程序由b i o s ( 其本质就是一段固件程序) 和位于硬盘m b r 中操作系统的b 删舶d e r ( 比如,l l l o 和 g r u b 等) 一起组成。b l o s 在完成硬件检测和资源分配后,将硬盘m b r 中的b o o t l o a d 目 读到系统的r a m 中,然后将控制权交给操作系统的b 0 0 t i m d 日。b d 日的主要运行 任务就是将内核映像从硬盘上读到i 认m 中,然后跳转到内核的入口点去运行,也即开始 启动操作系统。 而在嵌入式系统中,通常并没有像b i o s 那样的固件程序( 有的嵌入式c p u 也会内嵌 一段短小的启动程序,但其功能远比b i o s 弱) ,因此整个系统的加载启动任务就完全由 b 删o a d e r 来完成。b o o t l l o a d e f 是在操作系统内核运行之前执行的一小段程序,完成硬件 设备的初始化、建立内存空间映射图,并将系统的软硬件环境带到一个合适的状态,以便 为最终调用操作系统内核准备好环境。比如在一个基于a r m 7 t d m l 的嵌入式系统中,系 统在上电或复位后通常从地址0 】0 0 0 0 0 0 处开始执行,而在这个地址处存放的就是跳到系 统的b 0 0 t l o a d h 程序 通常,b o o t l o a d 日很大程度上依赖于硬件而实现的。因此,在嵌入式世界里建立一个 通用的b o o i l l 0 a d 日几乎是不可能的,嵌入式系统中的引导代码( b 删e r ) 也就成为嵌入 式系统开发的难点之一,同时是系统运行的基本前提条件,没有这段和硬件紧密相关的代 码,再强的内核也不能发挥作用。常用的b 删d a d 日有v - v i b l 0 ;b 、r e d b o 叭u - b 0 0 t 等。 东南大学硕士学位论文 2 2 1 系统初始化 a r m 芯片多数为复杂的片上系统( s o c ) ,该系统里的大部分硬件模块是可配置的,但 需要有软件将其配置成需要的工作状态,因此在用户的应用程序启动前,需要有专门的一 段启动代码完成硬件的初始化。这类代码直接面向处理器内核和硬件控制器进行编程,常 采用汇编语言。我们选择的初始化工作由b 岫d 盯完成嗍。包括: ( 1 ) 初始化中断向量表 a i t m 要求中断向量表必须放置在从0 地址开始的连续3 2 个字节的空间内( a i t m 7 2 0 t 和a l t m 9 ,1 0 及以后的a i t m 处理器也支持从啪f 0 0 0 0 开始的高地址向量表) 。各个中 断向量表中的位置分配如图2 - 1 4 所示: f i q i r q ( r e s e r v e d ) d a l aa b o f t p 诧f b t c ha b 毗 s o 出v a 他i n 妇n l p t u n d e f r 铭e t 快速中断 普通中断 保留 数据异常 预取指中断 软件中断 未定义指令中断 复位中断 图2 1 4 中断向量表 每当一个中断发生后,a r m 处理器便强制把p c 指针设为向量表中对应中断类型的地 址值。因为每个只占据向量表中一个字节的存储器空间,只能放置l 条a i t m 指令,所以 通常在向量表中存放的是跳转指令,使程序能从向量表中的某个位置跳转到程序寄存器中 的其它地址,再执行中断处理程序。中断向量表的程序通常如下所示: a r e as t a n ,c o d e , r e a d o n i y 声明代码段s 诅r t d 删标识程序入口 o x 0 0 0 0 0 0 0 0br e s e |复位跳转到r e s e t 处开始执行 o x 0 0 0 0 0 0 0 4 王詹p c ,= 0 x 蝴0 4 未定义指令异常 o x 0 0 0 0 0 0 0 8k kp c ,砘0 c 0 0 0 0 0 8自陷指令异常 o 】i o 0 0 0 0 0 0 c 胁p c ,砘0 c 0 0 0 0 0 c预取指令失败异常 o 】0 0 0 0 0 0 l o 哳p c ,= 0 x o c 0 0 0 0 1 0预取数据失败异常 o x o o o o 1 4b保留字 o x 0 0 0 0 0 0 1 8l d rp c ,o x o c 0 0 0 0 1 8中断请求异常 o x 0 0 0 0 0 0 1 cu rp c - o 如c 0 0 0 0 l c快速中断异常 ( 2 ) 初始化堆栈 因为a r m 有7 种工作模式。除了系统模式( s y s ) 和用户模式( m r ) 使用相同的堆栈指 针寄存器( s p ) 外,其它五种模式分别使用各自的的s p o 因此对程序中需要用到的每一 种模式都要给s p 寄存器定义一个堆栈地址。方法是改变c p s r ( 状态寄存器) 的状态位, 使处理器切换到不同的状态,然后给s p 赋值。般堆栈的大小根据需要而定,但是尽可 1 2 c 8 4 o c 曙 4 o 螂 州 枷 眦 蝴 螂 枷 第二章嵌入式系统方案设计 能给堆栈分配快速或高速带宽的存储器。这样能提高系统整体性能下面是一段堆栈初始 化的代码实例,只定义了两种模式的s p 指针: m r sr o ,c p s r 读取c p s r 值放在r o 中 b i c r o 。r o ,# m o d e m a s k 安全起见,屏蔽模式位以外的位 o r rr 1 ,r o ,# i r q m o d e 把模式位设置成中断模式 m s rc p s rc x s f ,砌 转到i r q 模式 l d r s p ,= i r q s 切略k设置s p 蛔 o r rr l ,r o ,虾i q m o d e 把模式位设置成快速中断模式 m s rc p s rc f ,r l 转到f i o 模式 l d rs p ,= f i q s 屯a c k 设置s pf i 口 注意:上面用到的两个s p 是不同的物理寄存器:s p 蛔,s p6 q 。 ( 3 ) 改变处理器模式 a r m 处理器一共有7 种模式。除用户模式处,其它6 种都是特权模式。因为在初始 化过程中,许多操作都需要在特权模式下才能进行( 比如c p s r 的修改) ,所以要特别注 意不能过早的进入用户模式一般的,在初始化过程中会经历如图2 _ 1 5 所示的模式变化: 设成 各种特权 卜 用户程序 管理模式 模式变化 , 运行模式 复位后的 默认模式 慧冀垫 用户选择 进入用户模式 厂口78 ” 图2 一1 5 处理器模式的变化 最后阶段才能把模式转换到最终应用程序运行所需的模式,一般是用户模式。内核级 的中断使能( c p s r 的i 、f 状态位) 也可以考虑在这一步进行,如果系统中存在另外一个 专门的中断控制器,这样做总是安全的,否则就需要考虑过早地打开中断会带来什么问题, 比如在系统初始化完成之前就引发了有效中断,从而会导致系统的死机。 ( 4 ) 系统硬件初始化 这部分内容包括锁相环的初始化,存储器加速模块设置,向量中断控制器的初始化。 至此,初始化基本完成了通过一条命令。bm a i l l ”就可以跳转到用户的c 语言主程序。 ( 5 ) 程序的加载 芯片复位后,系统进入管理模式,p c ( r 1 5 ) 寄存器值为o x o o o o 0 0 0 0 ,所以必须保证 用户的向量表代码定位在0 ) 【o 0 0 0 0 0 0 0 处( 例如本程序向量表代码通过舢a p 放在实际地址 o x 8 0 0 0 0 0 0 0 处p 。 要把中断向量表定位在0 x 嗍o o ,就需要编写分散加载文件( s c a l t e r ) ,分散加载描 述文件的作用是将代码段、数据段分别定位到指定的地址上。文件如下:m 咖b s c f r o m j d a d 呶8 0 0 0 0 0 0 0 定义加载时的名称为r o mid a d ,起始地址为o ) 8 0 0 0 0 0 _ o o ( r o me x e co x 8 0 0 0 0 0 0 0 开始定义运行时域,第一个运行时域的名称为r o me ) ( e c , 起始地址为0 ,【8 0 0 0 0 0 0 0 吼u t 叩o ( v i 姗。晦+ f i f s o 将鼬t u p o 中的v e c t o f s 代码段( 即中断向量表) 定位在 1 3 东南大学硕士学位论文 。m t m a m m “删o 本域起始位置o x 8 0 0 0 0 0 以下将顺序加载其它代码段 定义第二个运行时域起始地址为o x 4 0 0 0 0 0 0 0 s t a r t i l p o ( + r w ,+ z i )将程序的r w 段和z i 段定位到o 】4 0 0 0 0 0 0 0 ( 内部i l a m ) 以上程序中,s 啪l o 是s t a r t u p s 的目标文件,以上讨论的中断向量表和堆栈初始化 程序都存放在了s 哳t l l p s 中。v e c t 0 临是其中的中断向量表段,通过上面的程序被加载到了 实际地址0 ) 【8 0 0 0 0 0 0 0 处。l t o 段是指代码段,r w 段、z l 段是为了运行程序所开辟出的堆 栈空间,用来存放变量。对于不同硬件资源的系统,可以套用上面的格式,编写相应的分 散加载文件。分散加载的过程如图2 - 1 6 所示。 驯 o 】【8 0 0 0 0 o r w 属性的输出段 。 r o 属性的输出段r 0 属性的输出段 变 z i 属性的输出段 r w 属性的输出段 加载时地址映射关系 运行时地址映射关系 图2 1 6 分散加载的过程 2 2 2 嵌入式开发工具及开发环境 1 嵌入式开发工具 雌 o x 8 0 咖o o o o 嵌入式应用软件的开发工具包括:编译软件、汇编软件、链接软件、调试软件、,r a g 仿真器和在线仿真器等。选择合适的开发工具可以加快开发进度,节省开发成本,因此, 一套含有编辑软件、编译软件、汇编软件、链接软件、调试软件、工程管理及函数库的集 成开发环境( i d e ) 是必要的。常见的调试方法有: ( 1 ) 驻留监控软件 驻留监控软件是一段运行在目标板上的程序。集成开发环境中的调试软件通过通信接 口与驻留监控软件进行交互,由调试软件发出命令通知驻留监控软件控制程序的执行、 存储器的读写和设置断点。 ( 2 ) 在线仿真器 在线仿真器使用仿真头完全取代目标扳上的c p u ,可以仿真a r m 芯片的行为,调试 功能更加深入。但这类仿真器仿真速度高于处理器,需采用复杂的设计和工艺,价格较高 难以普及 1 4 = 内 妇 舟i i i i i u 第二章嵌入式系统方案设计 ( 3 ) ,r a g 仿真器 j 1 a g 仿真器是通过a r m 芯片的j 1 a g 边界扫描口进行调试的设备。它通过j 1 r a g 边 界扫描口与a r m c p u 核进行通信,仿真更接近于目标硬件。使用集成开发环境配带j 1 奠g 仿真器进行开发是目前常用的调试方法。 2 嵌入式开发环境 嵌入式开发环境一般由三个部分组成:运行于p

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论