(控制理论与控制工程专业论文)基于qte的嵌入式控制器设计与研究.pdf_第1页
(控制理论与控制工程专业论文)基于qte的嵌入式控制器设计与研究.pdf_第2页
(控制理论与控制工程专业论文)基于qte的嵌入式控制器设计与研究.pdf_第3页
(控制理论与控制工程专业论文)基于qte的嵌入式控制器设计与研究.pdf_第4页
(控制理论与控制工程专业论文)基于qte的嵌入式控制器设计与研究.pdf_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

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

文档简介

摘要 摘要 本文就工业环境的要求设计出一种基于q t e 的嵌入式工业网络控制器。一 般控制系统由p l c 、d c s 等构成,而本文设计控制器可以使控制系统结构简单、 易于维护、使用方便。 控制系统由硬件和软件部分构成,作者主要负责软件部分工作,系统经调 试,达到了良好的控制效果。 文章以系统开发流程为主线,首先简要的介绍了系统的硬件结构,然后讲 述了嵌入式操作系统l i n u x ,之后介绍了嵌入式q t e m b e d d e d 编程特点及如何建 立嵌入式的q t 开发环境和运行环境。在系统功能需求的基础上进行了软件的总 体设计及其技术的说明,最后在第五章进行了总结。为了便于将系统移植到多 种操作系统平台上,整个软件使用q t e m b e d d e d 进行开发。 本文的安排如下: 第一章指出课题背景以及提出了问题的可行性嵌入式系统技术以及相关 技术的发展动态。 第二章分析了系统的硬件结构。说明硬件的工作原理以及嵌入式l i n t l x 操 作系统。 第三章对嵌入式g u i 进行了分析, 工具并对q t e m b e d d e d 做了简要的介绍 环境。 选择q t e m b e d d e d 作为嵌入式g u i 开发 然后建立嵌入式的q t 开发环境和运行 第四章介绍了嵌入式网络控制器系统功能的实现。 第五章对本文所做的工作进行了小结,并说明了实现的效果,指出了要进 一步完善的工作。 关键词:控制器;l i n u x ;嵌入式系统;q t e m b e d d e d 三至三! ! 奎兰三兰堡圭兰堡丝兰 a b s t r a c t ak i n do fe m b e d d e di n d u s t r yn e t w o r kc o n t r o l l e rb a s e do nq t ed e s i g n e d i nt h et h e s i sa c c o r d i n gt ot h ed e m a n df o ri n d u s t r ye n v i r o n m e n t c o m m o n c o n t r o l s y s t e mc o n s i s t so fp l c 、d c sa n ds oo n ,a n dt h ec o n t r o l l e rg i v e n i nt h et h e s i sc a nm a k et h ec o n s t r u c t u r eo fc o n t r o l s y s t e mb es i m p l e 、 m a i n t a i ne a s i l y 、u s ec o n v e n i e n c e l y t h ec o n t r 0 1s y s t e mc o n s is t so fh a r d w a r ea n ds o f t s y s t e m ,a n dw r i t e r m a i n l yw a sr e s p o n s i b l ef o r s o f tp a r t t h ec o n t r o l s y s t e mr e a l i z eg o o d c o n t r 0 1e f f e c t t h r o u g hd e b u g t h et h e s i s1 i n e st h es y s t e md e s i g nf l o w ,t e l l st h et e c h n 0 1 0 9 yo ft h e h a r d w a r es t r u c t u r ea n dt h es o f t d e v e l o p m e n t ,f o r t h ec o n v e n i e n c eo f t r a n s p l a n t i n gi tt om a n yk i n d so fo p e r a t i n gs y s t e m s ,t h ew h 0 1 es o f ts y s t e m d e v e l o p e db yq t e m b e d d e d i n c h a p t e r1 ,i n t r o d u c t i o no fe m b e d d e ds y s t e r n a n dt h ef e a s i b i l i t y o fp o i n ta n ds o m eo t h e rr e l a t e dt e c h n i q u e sa r ed i s c u s s e d i nc h a p t e r2 ,t h ep r i n c i p l eo fs y s t e r ni s i n t r o d u c e d i n c l u d i n gt h e c h a r a c t e r i s t i co fe l e c t r o m a g n e t i ew a v e ,t h ep r i n c i p l eo fd i s t a n c e m e a s u r i n ga n dt h ep r i n c i p l eo fo r i e n t a t i o nm e a s u r i n g i nc h a p t e r3 ,e m b e d d e dg u ia r ed is c u s s e d o t e m b e d d e da r es e l e c t e d a st h ee m b e d d e dg u ia n disi n t r o d u c e ds i m p l l y t h e nd e v e l o p i n ga n dr u n n i n g e n v i r o n m e n to fe m b e d e ds y s t e mi sb u l i t i n c h a p t e r4 ,t h er e a l i z a t i o ni n r o d u c t i o no fs y s t e m i nc h a p t e r5 ,ih a v ee o n c l u d e dt h em a i nw o r kw h i c hh a sb e e nd o n ei n t h e a r t i c l e ,p o i n t e d o u tt h er e a li s e de f f e c ta n d t h er e s e a r c h i n gw o r k n e e d st od o n e 】a t e r k e yw or d s :c o n t r o l l e r ;l i n u x :e m b e d d e ds y s t e m :o t e m b e d d e d 1 1 本课题的目的和意义 绪论 本课题的目的是针对工业控制系统的要求以及嵌入式系统技术及其在工业 控制中应用情况设计了一种基于o t e 的嵌入式网络控制器。它具有现场控制、 显示、存储、人机界面、t c p i p 以太网口等显著特点。 在工业控制领域,目前主要还是使用传统的p l c 、d c s 、工控模块等方式。 在控制网络、信息技术高速发展的今天,迫切需要新一代的工业控制器来推动 自动化控制系统的发展。随着自动化行业的发展,工业控制领域对测控系统提 出的将测控分散到现场、实现远程监控的要求,以及e t h e r n e t 技术的发展,整 合e t h e r n e t 和t c p i p 技术是今后发展的主流体系和应用热点。可见研究具备 灵活的人机界面的嵌入式网络控制器将有重要的意义。 1 2 本课题的来源 本课题是受广东省教育厅科研项目和广东省科技攻关项目资助。 1 3 相关领域研究现状及发展趋势 1 3 1 嵌入式技术 嵌入式系统( e m b e d d e ds y s t e m ) 是一种用于控制、监测或协助特定机器和 设备正常运转的计算机。它通常由3 个部份组成:嵌入式处理器、相关的硬件 支持设备、以及嵌入式软件系统【副。其中,嵌入式处理器是嵌入式系统中的核 心部件,按照功能和用途划分,它可以进一步细分为以下几种类型:嵌入式微 控制器( e m b e d d e dm i c r o c o n t r 0 1 l e l ) 、嵌入式微处理器( e m b e d d e dm ic r o p r o c e s s o r ) 和嵌入式数字信号处理器( e m b e d d e dd i g i t a l s i g n a l p r o c e s s o r ) 。 j 乐工、i k 大学工学硕士学位论文 嵌入式系统早在上世纪六十年代就被用于对电话交换进行控制,当时被称 为“存储式过程控制系统”( s t o r e dp r o g r a mc o n t r o ls y s t e m ) 。真正意义t 的 嵌入式系统是在上世纪七十年代出现的,发展至今已经有3 0 多年的历史,它大 致经历了以下4 个发展阶段【3 】:第一阶段是以单芯片为核心的可编程控制器系 统,同时具有检测、伺服、指示设备相配合的功能。这一类型的系统大部分用 于专业性极强的工业控制系统中,一般没有操作系统支持,通过汇编语言对系 统进行直接控制。这一阶段系统主要的特点是:结构和功能相对单一、效率较 低、存储容量较小、几乎没有用户接口。由于这种嵌入式系统使用简单、价格 便宜,以往在工业领域中应用较为普遍。但是,它们已经远远不能适应高效的、 需要大容量存储介质的现代化工业控制和后p c 时代新兴的信息家电等领域的要 求。第二阶段是以嵌入式中央处理器( c p u ) 为基础,以简单操作系统为核心的 嵌入式系统。这一阶段系统的主要特点是:c p u 种类繁多、通用性较弱、系统开 销小、操作系统只具有低度的兼容性和扩展性、虚用软件较为专业、用户界面 不够友好。这种嵌入式系统的主要任务是用来控制系统负载,以及监控应用程 序的运行。第三阶段是以嵌入式操作系统为标志的嵌入式系统。这一阶段系统 的主要特点是:嵌入式操作系统能够运行于各种不同类型的处理器之上、操作 系统内核精小、效率高、模块化程度高、具有文件和目录管理、支持多任务处 理、支持网络操作、具有图形窗口和用户界面等功能、具有走量的应用程序接 口、开发程序简单、并且嵌入式应用软件丰富。然而,在通用性、兼容性和扩 展性方面仍不理想。第四阶段是以基于网络操作为标志的嵌入式系统,这是一 个正在迅速发展的阶段。随着网络在人们生活中的地位日益重要,越来越多的 应用需要采用支持网络功能的嵌入式系统,所以在嵌入式系统中使用网络操作 系统将成为今后的发展趋势。 从当前的嵌入式系统的发展方向来看,我们可以看出,a r m 代表单片机的发 展方向;l i n u x 代表操作系统的发展方向:c c + 十代表了嵌入式开发语言的发展 方向;从事这个方面相关开发必将是未来嵌入式系统的发展热点。 1 3 2 工业控制的系统要求 工业控制系统的要求就是必须满足工业过程控制的特点,它具有以f 的六 第章绪论 个方面要求: 1 高可靠性,工业控制的控制器直接控制着生产过程,要求工业环境连续 稳定运行,也就是说要求能够在具有粉尘、高温、震动和电磁干扰的环境中长 时间连续可靠地工作,能够抗工业电网的浪涌、失波、跌落和尖峰干扰等【”。 2 简单方便的操作性能,具有人机联系功能以便实现人机对话,及时地 对生产过程进行必要的干预。生产过程常常会发生意外事故,或生产设备出现 问题,控制失灵等,都需要人工停止计算机控制,或发现控制发生偏差,人工 可修正控制。 3 ,可维护性,这是工业过程控制本身的要求,一旦控制系统发生故障将影 响生产的正常操作,要求工业控制系统结构便于维修,硬软件故障诊断功能强, 以利于快速查找故障,缩短维修时间。 4 ,网络扩展性能好,通用性强,具有良好的开放性能以便进行扩展。 5 控制系统的分散性,以及部分控制现场级之间数据的交互性【5 】。尤其在 工业控制系统内,由于对系统可靠性和灵活性的更高要求控制面向多元化, 系统面向分散化,即负载分散、功能分散、危险分散和地域分散,为了能够实 现设备之间大量数据的充分共享,有效地支持分布式控制和实时控制,单纯依 靠传统的串行通信口,已不能满足需求。 6 ,工业生产过程进行实时在线检铡与控制,对工况变化给予快速桷应及 时进行采集和输出调节,把各种操作分成不同的优先级处理,保证被控系统的 正常运行,特别是网络通信的实时性能的要求。当系统处在分散控制位置的时 候,必须要求部分通信具有很高的实时性。 1 3 3 嵌入式控制器国内外研究现状与趋势 嵌入式系统从一问世就应用于工业控制系统中,但进展得非常的缓慢。不 过随着人们对工业控制系统的开放性、互操作性、安全性、可靠性以及系统成 本等方面不断提出许多新的要求,基于嵌入式操作系统的嵌入式控制系统逐渐 在工业控制系统中的应用中发展并成熟起来【6j 。在过去的几年里,工业p c 及其 相关的数据采集、监控系统硬件的销售额一直保持高速增长。但是,基于p c 的 控制系统常有一个问题:运彳亍标准操作系统( 多为商用w i i d o w s 操作系统t 其并 广东工业大学工学硕士学位论文 非主要针对工控系统所设计) 、使用现成软件的p c 机不够稳定,同时实时性刁i 强,因此不能完全靠它完成工业控制。在许多工业实际应用环境下,工业p c 总 是和一些专用的控制系统如智能化仪表、单片机控制器、p l c 等等配合使用,从 而形成复杂的控制系统【7 】,同时增加了系统的成本,而且控制系统厂商的封闭 性常常使得工程师需要集成不同公司的产品,这为系统的维护、升级都带来了 许多困难。尤其在一些小型的控制系统中,这并非是一种最优方案。 目前,国内外针对嵌入式网络控制器鼹研究日渐兴起,不过它们多是针对 特定的应用领域,比如环境检测、网络通信、医疗电子、视频电话等,不具备 工业现场控制器的通用性【8 】。在嵌入式技术和控制网络技术飞速发展的今天, 控制系统开发工程师迫切需要一种新型实用的产品,这种产品具备p c 的特点, 强大的处理器,丰富的软件,足够的存储空间,同时也具有良好可靠性和稳定 性。显然,采用传统的单片机系统与通用操作系统相结合的技术来实现这样的 产品是相当困难的,但基于嵌入式操作系统的嵌入式系统却大有用武之地。可 以想象。随着嵌入式控制系统的发展它将在一定程度上取代现有的工业p c 控 制系统,在微型d c s 系统、现场总线系统、p l c 控制系统、智能化仪表等领域得 到广泛的应用。其相对于大型的d c s 系统来说具有较强的成本优势和灵活性, 应用领域将会进一步扩大。 1 3 4 本课题的主要贡献 本课题主要的贡献在以下几个方面: 1 设计出一种用于工业控制领域的工业网络控制器。 2 移植了l i n u x 操作系统。 3 实现了部分底层驱动。 4 实现了基于q t e 的图形用户界面。 5 实现了嵌入式移动数据库的应用。 本文作者主要完成了其中2 5 的工作。 第二章系统硬件架构与操作系统 第二章嵌入式控制器硬件架构与操作系统综述 本章主要根据工业控制的性能需求,如系统应具有通用的工业控制器的特 点如:i o 端口、存储、显示、通信,同时要求具有方便的人机操作界面,可以 接入现有的t c p i p 以太网络,所以,本章进行了两个方面的介绍系统的硬 件架构和系统所用的操作系统l i n u x 。 2 1 嵌入式控制器硬件架构 嵌入式系统的构架可以分成四个部分:处理器、存储器、输入输出和软件。 作为一个工业网络控制器,必然有些基本的需求,如输入输出、显示、存储、 通信等。根据这些的需求,考虑到应用的领域、用户的需求、成本问题和开发 的难易程度等因素,我们采用三星公司生产的$ 3 c 2 4 1 0 微处理器,设计出系统 的结构如图2 1 所示。 厂东工业大学工学硕士学位论文 图2 - 1 嵌入式控制器的结构图 f i g 2 - 1s t r u c t u r eo fe m b e d d e dc o n t r o ll e f 上图所示的就是本系统的结构图。首先,嵌入式系统最核心的部分就是嵌入式 处理器了。不同的处理器有其不同的功能和优势。但是低成本、低功耗、高性 能是嵌入式系统应用的特殊要求。目前主要的嵌入式处理器类型有p o w e r p c ,x 8 6 , m i p s ,a r m s t r o n g a r m 系列等。智能控制器用于工业控制网络应用,对于网络功 能要求比较高,因此,微处理器应该具有丰富的网络接口。通过性能和价格以 及系统要求对比和我们对微处理器资料掌握情况,系统选用了三星公司集成 a r m 9 2 0 t 核的工业级$ 3 c 2 4 1 0 作为控制器的微处理器。先进的a r m 9 2 0 t 处理器支 持l i n u x 、w i n d o w sc e 和其他许多嵌入式操作系统的存储器管理单元( m m u ) 。 a r m 9 2 0 t 的3 2 位微控制器结构带有一个5 级管线,可以极低的功耗提供优异的 性能。a r m 内核工作电压为1 8v ,输入输出为3 3v 引。依据不同的速度和工 作模式,功耗从4 5m w 到7 5 0m w 不等。1 6 k b 指令高速缓存和1 6 k b 数据高速缓 存可为现有的程序和数据提供零等待时间,或者也可被锁定,以确保对关键指 令和数据的无延迟存取。对于那些指令存储器大小有限制的产品,a r m 9 2 0 t 的压 缩型t h u m b 指令集有助于空间利用率和外部指令存储器的最大化使用【1 0 】。全面 调试支持。 其次,存储器也是构建嵌入式系统的重要部分。本系统就需要f l a s h 和s d r a m , 虽然存储器的选择依赖于处理器的选择,但是就功能需求来说,需要考虑容量 大的,性能稳定的存储器。为了便于调试和方便扩展,将$ 3 c 2 4 i 0 的展小系统 高度集成为核心板结构。不同的应用需要不同的接v 1 形式,但是所需要的最小 系统大致相同。核心板的设计和生产比较复杂,而扩展板的设计和生产相对简 单。核心板由主c p u ( $ 3 c 2 4 1 0 ) 、$ d r a m 和n a n d f l a s h 组成的最小系统。f l a s h 存储模块是在近十年来应用广泛的一种非易失性半导体存储器,n a n df l a s h 芯 片采用s a m s u n g 公司生产的k 9 f 1 2 0 8 ,它是一款大容量、高可靠f l a s h 存储器, 存储容量为6 4 m 8 b i t 。6 4 m bn a n d f l a s h ( 可轻松存放l i n u x w i n c e 用户程序, 以及用户数据) 。s d r a m ( s y n c h r o n o u s d r a m ) 同步动态存储器为系统运行时程序 及过程数据的暂存提供了大容量的高速存储空间,是系统的重要组成部分。系 统用两片各3 2 m b y t e s ( 1 6 位宽度) 的s d r a m 芯片h y 5 7 v 5 6 1 6 2 0 构成共6 4 m b y t e s 的r a m 空间。核心板物理特性:6 7 6 m m * 4 0 m m * 6 m m 尺寸,1 4 4p i n 核心板接口。 第二章系统硬件架构与操作系统 核心板图如下: 图2 - 2 系统的核心板图 f i g 2 - 2p h o t oo fs y s t e f t c o n t r o l l e rc o r eb o a r d 再次,要结合实际情况和处理器的功麓,确定系统外厨设备。本系统是 一个完整的嵌入式系统,根据实际的应用需要在系统扩展板上扩展了以下通信 接口: 1 r s 一2 3 2 接口 目前r s 一2 3 2 是p c 机与通信工业中应用最广泛的一种串行接口,r s - 2 3 2 被 定义为一种在低速率串行通信中增加通信距离的单端标准。系统需要通过该串 口下载程序,或者进行串行通信。 2 r s - 4 8 5 接口 为扩展应用范围,系统也扩展了了r s - 4 8 5 接口,增强了多点、双向通信能 力,通常要求通信距离为几十米至上千米时,广泛采用r s - 4 8 5 收发器。在工业 领域,抄表系统上,4 8 5 总线被广泛应用。因此,在本系统中,4 8 5 接口也是需 要的。 3 以太网接口 在e t e r n e t 飞速发展的今天,网络已经渗透到了方方面面。在嵌入式系统 方面,和网络的结合已经成为了嵌入式系统最新的研究方向。因此,在本系统 中,以太网接口是必不可少的。 7 l u d 显示和触摸屏 液晶显示器( l c d ) 以其功耗低、体积小、外形美观、价格低廉等多种优势在 仪器仪表产品中得到越来越多的应用。本文液晶屏选用了台湾产的元太t f t 真 彩l c d 液晶显示模块,6 4 寸大小,分辨率为6 4 0 x 4 8 0 。 广东工业大学工学硕士学位论文 在便携式的电子类产品中,船摸屏由于其轻便、占用空间少、方便灵活 等优点,己经逐渐取代键盘和鼠标成为嵌入式系统常选用的人机交流工具。 用带有触摸屏的l c d 可以把嵌入式控制器的功能发挥更大,并且可以用于 现场调试。 8j t a g 调试接口 j t a g ( j o i n tt e s ta c t i o ng r o u p ) 是i e e e t l 4 9 1 的标准规范,a r m 9 2 0 t 内 部提供了3 个j t a g 型的扫描链,可以进行调试和配置嵌入式的i c e - r t 逻辑。 j t a g 仿真器也称为j t a g 调试器,是通过a r m 芯片上的j t a g 边界扫描口进行调 试的设备。它无需目标存储器,不占用目标系统的任何端口,而这些是普通的 驻留监控软件所必须的。另外,j t a g 调试的目标程序直接在目标板上执行,仿 真更接近于目标硬件。我们只需把$ 3 c 2 4 1 0 上的j t a g 信号引出即可与仿真器连 接进行调试。 9 u s b u s b 接口以其方便、传输速率高等优点逐渐成为计算机行业的外设接口标 准。嵌入式设备要与p c 机进行高速通信,那么u s b 接口当然是理想的选择。 第二章系统硬件架构与操作系统 图2 - 3 系统的扩展板图 f i g 2 - 3p h o t oo fs y s t e mc o n t r o l l e re x t e n d i n gb o a r d 作为一个网络空制器,扩展i o 接口是必不可少的,工业网络空制器,一 个重要的任务就是对各种类型的底层设备的数据进行的采集,这些数据包括有 温度、湿度、压力、电流、电压、烟雾报捷、红外检测等等,除此之外, 现场设备还负责对底层设备的运行进行控制,这些底层设备有电机、马达、开 关。等。 尽管工业现场的数据种类多种多样,但是对于底层设备,从信号的角度我 们可以把他们分为输入模拟量、输出模拟量、数字量输入、数字量输出。在扩 展板中,我们用s p i 总线扩展s p i 芯片( m a x l 2 2 7 扩展8 路模拟量输入,m a x 7 3 1 7 扩展l o 路开关量,m a x 5 5 3 3 扩展2 路模拟量输出) ,通过s p i 芯片连接经过i 0 板调节的现场电压信号。 图2 4 系统的i o 板图 按下的工作是要进行硬件的测试,连上仿真器,建立连接,如图所示 。,:三至三兰查兰三兰塑圭兰堡丝兰 圈2 - 5a d s 仿真界面 f i g 2 - 5a d ss i m u l a t i o ni n t e r f a c e 打开a d s 调试窗口,编写程序代码进行硬件测试: 图2 - 6a d s 仿真界面 薹三薹至篓些些茎塑量堡堡至丝 触摸屏的驱动测试点击时的坐标位置测试结果如下图: 2 2 嵌入式操作系统 图2 7 触模屏点击测试 f i g 2 7t o u c h s c r e e nt e s t 嵌入式操作系统是一种支持嵌入式系统应用的操作系统软件,它是嵌入式 系统极为重要的组成部分,主要包括网络系统、文件系统、内存管理、进程调 度、进程问通信等子系统。 嵌入式操作系统应具有以下三个方面的条件: 一、嵌入式o s 的内核规模较小。嵌入式设备本身的特点和用途决定了其操 作系统的规模必须很小,通过内核构筑工具对l i n u x 内核功能进行削减,可使 其达到3 0 0 - 5 0 0 k b 的规模。 二、嵌入式o s 毖须能支持多种处理器。嵌入式设备使用的处理器不像p c 机那样单一,而l i n u x 恰恰可以支持多种处理器,包括a r m ,m i p s ,s h 3 , 广东工业大学t 学硬士学位论文 a l p h a ,x 8 6 ,p o w e r p c 等。 三、作为嵌入式o s 的个非常重要的条件就是实时性。但就实时处理而言, l i n u x 赶不上v x w o r k s 等专用实时操作系统。l i n t l x 的时间片比专用实时操作系 统的l o us 长。不过除了航空、原子能等高科技领域,很少需要u s 级实时性能 的系统。像消费类电子产品所需要的实时性只要能满足平滑、流畅地再生图像 和语音即可。 源码开放的、免费的嵌入式l i n u x 操作系统成为嵌入式操作系统的新庞 1 1 1 。l i n u x 已经被移植到多种硬件平台,这对受开销、时间限制的研究与开发 项目是很有吸引力的:原型可以在标准平台上开发然后移植到具体的硬件上, 加快了软件与硬件的开发过程;l i n u x 可以随意地配置不需要侄何的许可证或商 家的合作关系;它本身内置网络支持;l i n u x 的高度模块化使添加部件非常容易; 它是免费的,源代码可以得到;另外可以从网上免费下载三星公司针对$ 3 c 2 4 1 0 改进的m i z i l i n u x 系统更方便了系统的开发。从上面的分析来看,l i n u x 具备作 为嵌入式0 s 的条件,而且在很多方面有独特的优势。 2 2 1l i n u x 系统分析 l i n u x 内核主要由5 个模块组成,他们分别是:进程调度模块、内存管理模 块、文件系统模块、进程间通信模块和网络接口模块。进程调度模块用来负责 控制进程对c p u 资源的使用。所采取的调度策略是各进程能够公平合理地访问 c p u ,同时保证内核能及时地执行硬件操作。内存管理模块用于确保所有进程能 够安全的共享主机内存区,同时内存管理模块还支持虚拟内存管理方式,使得 l if i u x 支持进程使用比实际内存空间更多的内存容量。并可以利用文件系统把暂 时不用的内存数据块交换到外部存储设备上,当需要时再交换回来。文件系统 模块用于支持对外部设备的驱动和存储。虚拟文件系统模块通过向所有的外部 存储设备提供一个通用的文件接口,隐藏了各种硬件设备的不同细节,从而提 供并支持与其他操作系统兼容的多种文件系统格式。进程问通信模块子系统用 于支持多种进程间的信息交换方式。网络接口模块提供对多种网络通信标准的 访问并支持许多网络硬件。模块的内核结构方框图如图所示l 1 “。 第二章系统硬件架构与操作系统 用户程序 阜 l 甲 l系统调用接口 :0 ll i 文件子系统b;进程间通信 ll 高速缓冲l 子系统i 闸幔任7 序- p l 善 | 字符设备块设备 l 内存管理 l 设备驱动程序 。 毒l: l 硬件控制 l r e l硬件 图2 - 8 内核结构方框图 f i g 2 - 8b l o c kd i a g r a mo fl i n u xk e r n e l 2 2 2 内核配置与编译 用户级 内核级 内核级 硬件级 编译的最主要的工作就在将你的程序转化成运行该程序的c p u 所能识别的 机器代码,不同的c p u 有相应的编译器。另一方面,编译器本身也是程序,当 然也要在某一个c p u 平台上运行。于是交叉编译的交叉点就在那个编译器本身 是pc 上的一个程序,却在为a r m 编译代码。而且开发应用程序可以先在主机 上调通,然后用交叉编译工具为目标系统重新编译一遍。 在我的系统上,建立a r m 一1 i n u x 基本的开发环境过程如下。 1 安装g n u 开发工具链( 是g n u 开发的针对a r mc p u 的一组编译开发的l i f l u x 程序,它包括a r m l i n u x g c c ,a r m l i n u x l d 等。 2 将m i z i l i n u x 源代码源代码解压到相应路径下,按照编译内核的步鄹编 泽一遍( 此时使用的编译工具已经是上面提到的a r m 编译工具了,因为它要在 a r mc p u 上运行,另外,和编译1 i n u x 内核一样,此时可以通过m e n u c o n f i g 来 对内核提供的功能进行裁减) 。这样最基本的a r m 一1 i n u x 环境就算搭建好了。 。东工业大学工学硕士学位论文 内核的配置实质就是配置l i n u x 内核在编译的时候,将支持那些内核功能, 那些模块静态编译到内核中去,那些模块编译成动态可加载模块。l if l u x 内核的 配置系统由三个部分组成,分别是:m a k e f i l e ,分布在l i n u x 内核源代码中 的m a k e f i l e ,定义l i n u x 内核的编译规则;配置文件( c o n f i g i n ) ,给用户 提供配置选择的功能;配置工具:包括配置命令解释器( 对配置脚本中使用的 配置命令进行解释) 和配置用户界面( 提供基于字符界面、基于n c u r s e s 图形 界面以及基于x w i n d o w s 图形界面的用户配置界面,各自对应于m a k ec o n f i g 、 m a k em e n u e o n f i g 和m a k ex c o n f i g ) 。从w w w m i z i c o m 下载m i z i l i n u x 进行如 下之一的配置。 1 ) m a k em e n u c o n f i g 基于c u r s e 库的一种配置方法( 类似d o s 下图形界面) 。 2 ) m a k ex e o n f i g 基于t k 图形库的一种x - w i n d o w 图形配置界面:所有的配 置方法在执行完成后,都是在l i n u x 代码的根目录下产生一个名为c o n f i g 配嚣 文件。 编译嵌入式l i n u x 内核编译过程。实际上是在本机上编译生成另外一种c p u 上的目标程序,是一种交叉编译过程,所以首先要在本机上进行交又编译工具 的安装和编译过程。然后进入l i n u x 的k e r n e l 文件夹输入如下的命令: 1 ) m a k ec l e a n m a k ec l e a n 是清除以前在编译内核时所产生的目标文件,模块文件,肉核 以及一些临时文件。 2 ) m a k ed e p 第一个命令m a k ed e p 实际上读取配置过程生成的配置文件,用来创建对应 于配置的依赖关系,从而决定哪些需要编译而那些不需要。 3 ) m a k ez i m a g e 编译产生内核,生成的内核是使用g z l p 压缩的。同时产生s y s t e m m a p 文 件,这个文件保存了内核中所有编译过的函数入口地址信息,l i n u x 下的个别程 序在运行时,需要这个文件提供一些函数的入口地址。 然后进行内核安装,在嵌入系统上,内核文件一般都是保存在固件存储器 中,一般在内核写入芯片前,首先需要格式转换工具对内核的格式进行转换, 转换成b i n ( 二进制) 格式,这种工具一般在开发工具链中能找到。一般写内核到 f l a s h 的方法直接采用j t a g 现在大多数嵌入式处理器都提供j t a g 调试接 2 1 ,采 第二:章系统硬件架构与操作系统 用j t a g 就可以把内核写入f l a s h 。 2 2 3 启动引导程序 系统加电后,c p u 将首先执行b o o tl o a d e r 程序,进行初始化硬件设备、 建立内存空间的映射图,将系统的软硬件环境带到一个合适的状态,以便为调 用操作系统内核准备好正确的环境。b o o tl o a d e r 分为s t a g e l 和s t a g e 2 两部 分。如设备初始化代码等,通常都放在s t a g e l 中,而且通常都用汇编语言来 实现,s t a g e 2 通常用c 语言来实现,这样可以实现给复杂的功能,而且代码会 具有更好的可读性和可移植性。 b o o t l o a d e r 启动引导程序它完成以下几个方面的任务【1 3 】: 在s t a g e l 阶段: l :硬件设备初始化。包括屏蔽所有的中断、设置c p u 的速度和时钟频率、 r a m 初始化、初始化l e d 、关闭c p u 内部指令数据c a c h e 等。 2 :为加载s t a g e 2 准备r a m 空间。大小是m e m o r yp a g e ( 通常是4 k b ) 的倍 数,一般l m 的r a m 空间足够。r a m 空间范围的大小记为:s t a g e 2 一s i z e ( 字节) , 把起始地址和终止地址分别记为:s t a g e 2 一s t a r t 和s t a g e 2 一e n d ( 这两个地址均 以4 字节边界对齐) 。因此: s t a g e 2 一e n d 2 s t a g e 2 3 :拷贝s t a g e 2 到r a m 空间中。 4 :设置堆栈指针s p 。堆栈指针的设置是为了执行c 语言代码作好准备, 通常把s p 的值设置为( s t a g e 2 一e n d 一4 ) 。 5 :跳转到s t a g e 2 的c 入口点。 在s t a g e 2 阶段: 1 :初始化本阶段要使用到的硬件设备。如串口、计时器等。 2 :检测系统内存映射( m e m o r ym a p ) 。 3 :将k e r n e l 映像和根文件系统映像从f l a s h 上读到r a m 空间中。 对于内核映像,一般将其拷贝到从( m e m s t a r t + o x 8 0 0 0 ) 这个基地址开始 的大约1 m b 大小的内存范围内( 嵌入式l i n u x 的内核一般小于1 m b ) 。m e m s t a r t 到m e ms t a r t + o x s 0 0 0 这段3 2 k b 大小的内存空出来放置一些全局数据结构, 广东工业大学 学硕上学位论文 如:启动参数和内核页表等信息。 根文件系统映像,则一般将其拷贝到m e m s t a r t + o x 0 0 1 0 ,0 0 0 0 开始的地 方。 由于像a r m 这样的嵌入式c p u 通常都是在统一的内存地址空间中寻址 f l a s h 等固态存储设备的,因此从f l a s h 上读取数据与从r a m 单元中读取数 据并没有什么不同。用个简单的循环就可以完成从f l a s h 设备上拷贝映像的 工作: w h i l e ( c o u n t ) ( * d e s t 十+ = 水s r c + + :丰t h e y a r ea l l a l i g n e dw i t hw o r db o u n d a r y 半 c o u n t 一= 4 : b y t en u m b e r ) : 4 :为内核设置启动参数。启动参数标记列表以标记a t a g c o r e 开始,以 标记a t a g n o n e 结束。每个标记由标识被传递参数的t a g h e a d e r 结构以及随 后的参数值数据结构来组成。定义在l if l u x 内核源码的i n c l u d e a s m s e t u p h 头文件中,由b o o tl o a d e r 设置的常见启动参数有:a t a g c o r e 、a t a gm e m 、 a t a gc m d l i n e 、a t a gr a m d i s k 、a t a gi n i t r d 等。 5 :调用内核。b o o tl o a d e r 调用l i n u x 内核的方法是童接跳转到内核的 第一条指令处,也即直接跳转到m e m s t a r t + o x 8 0 0 0 地址处。在跳转时,下列 条件要满足: c p u 寄存器的设置: r o = 0 ;r 1 = 机器类型i d ;关于m a c h i n et y p en u m b e r ,可以参见 1 i n u x a r c h a r m t 0 0 l s i n a e h t y p e s 。r 2 = 启动参数标记列表在r a m 中起始基 地址; c p u 模式:必须禁止中断( i r q s 和f i q s ) ;c p u 必须s v c 模式; c a c h e 和m m u 的设置:m m u 必须关闭;指令c a c h e 可以打开也可以关 闭;数据c a c h e 必须关闭。 作为系统启动程序,最先要考虑的是c p u 在加电的时候运行那个地址的代 码。然后用这个地址的值作为最先执行代码的的地址,b o o t l o a d e r 程序就放在 p c 指针指向的起始地址。目前有很多成数的b o o t l o a d e r 可以在互联网上下载。 它们支持各种开发板上的l i n u x 的开发。比较著名的有c o l i i o ,m yr i g h tb o o t , 第一章系统硬件架构与操作系统 p p c b o o ta n dm o t o r o l ad b u g 。它们功能强大并且可以很方便的移植到自己的开 发板上。系统选用三星为$ 3 c 2 4 1 0 设计的v i v i 程序作为l i n u x 启动支持,它的 任务是初始化芯片和板子,把l i n u x 拷贝到内存处,然后从该处运行l i n u x 。它 可以完成b o o t l o a d e r 的所有任务,支持从网络上烧写l i f l u x 到f 1 a s h 中。v i v i 的源代码可以从w w w m i z i c o m 的网站上下载,针对我们设计的控制器系统,只 需要修改它的几个初始化文件就可以用在目标系统上。 奎三! ! 奎兰三耋竺圭兰堡耋兰 第三章图形用户界面开发环境 本章介绍了图形用户界面g u i 与嵌入式的关系,在比较的基础上选择了q t e 作为嵌入式图形用户界蕊g u i 的开发,并对q t e 进行了介绍。最后讲述了如何建 立嵌入式的q t 开发环境、如何建立嵌入式的q t 运行环境。 3 1 图形用户界面与嵌入式 图形用户界面g u i ( g r a p h i c su s e ri n t e r f a c e ) 使得计算机成为我们大多 数人都能够使用和接受的工具,如w i n d o w s 系统就是p c 机上占主导地位的g u i 系统【1 4 l 。在l i n u x 之上进行嵌入式系统开发的厂商,一般选择如下几种g u i 系 统:紧缩的xw i n d o w 系统、m i n i g u i 、i i c r o w i n d o w s 、o p e n g u i 、q t e m b e d d e d 等,他们都采用f r a m e b u f f e r 作为图形驱动。f r a m e b u f f e r 是l i n u x 内核提供的 一种底层图形接口,是嵌入式l i n u x 下大多数g u t 的基础。f r a m e b u f f e r 将显示 设备( 显示内存和显示芯片寄存器) 映射到进程地址空间。用户可以用设备文件 d e v f b o ,d e v f b l 等来操作f r a m e b u f f e r 的读写【1 5 1 。 xw i n d o w 是l i n u x 以及其他类u n i x 系统的标准g u i 。xw i n d o w 系统采用 标准的c 1 i e n t s e r v e r 体系结构,具有可扩展性好、可移植性好等优点。但该 系统的庞大、累赘和效率低。为了获得应用程序的可移植性,许多厂家都试图 通过对xw i n d o w 系统的紧缩开发,使之能够在嵌入式系统上运行。国外已经开 发出了大小约为8 0 0 k b 的xs e r v e r 。但该系统的源代码尚不开放,从而很难进 行本地化开发。 m i c r o w i n d o w s 是美国一家公司一个开放源码的项目。它提供了比较完善的 图形功能,包括一些高级的功能,比如a l p h a 混合、三维支持、t r u e t y p e 字体 支持等 1 6 】。它的a p i 简单易学。但作为一个窗口系统,该项目提供的窗口处理 功能还需要进一步完善,比如控件或构件的实现还很不完备,键盘和鼠标等的 驱动还很不完善。 第三章雷形用户界面开发环境 o p e n g u i 在l i n u x 系统上存在已经很长时间了。最初的名字叫f a s t g l ,只 支持2 5 6 色的线性显存模式。但目前也支持其他显示模式。这个库是用c + + 编写 的,只提供c 十十接口。 m i n i g u i 由北京飞漫软件技术有限公司开发的面向实时嵌入式系统的轻嚣 级图形用户界面支持系统,它主要运行于l i n u x 控制台。它灵活性好,可定制 能力强:结构简单、可控性好:速度快。但它的图形功能尚不完善,对图形设 备

温馨提示

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

评论

0/150

提交评论