嵌入式系统的基本设计思路
来源:用户上传
作者:
摘要:嵌入式系统已成为制造业的核心技术,广泛应用于工业控制、系统仿真、医疗设备、家用电器、通信设备等众多领域。围绕嵌入式系统展开研究和开发,已经成为计算机软硬件技术发展最活跃的方向之一。本文就嵌入式系统的技术特点和嵌入式系统的基本设计思路进行了探讨。
关键词:嵌入式系统;微处理器;操作系统;开发工具
中图分类号:TP336 文献标识码:A
嵌入式系统是以应用为中心、以计算机技术为基础、软硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗等有严格要求的专用计算机系统。其主要由嵌入式处理器、 相关支撑硬件、嵌入式操作系统及应用软件系统等组成。使用嵌入式系统技术,不仅可以实现硬件和软件的集成优化,而且具有多任务和网络化功能。
嵌入式系统是将计算机技术、半导体技术、电子技术与各个行业的具体应用相结合后的产物 ,是一种技术密集、资金密集、高度分散、不断创新的知识集成系统。
1嵌入式系统的技术特点
嵌入式系统由构成软件基本运行环境的硬件和操作系统两部分组成。其运行环境和应用场合决定了嵌入式系统有别于其它系统。
1.1嵌入式处理器
嵌入式处理器可以分为三类:嵌入式微控制器MCU、嵌入式微处理器MPU、嵌入式数字信号处理器DSP 。
嵌入式微控制器又称为单片机,它将CPU、存储器 、I/O接口封装于同一片集成电路,常用的是以8051为内核的各种单片机。嵌入式微处理器就是和通用计算机的微处理器对应的CPU,应用中一般将微处理器装配在专门设计的电路板上,在母板上保留与嵌入式有关的功能,以满足嵌入式系统体积小和功耗低的要求。嵌入式DSP专门用来对离散时间信号进行高速处理 ,多用于数字滤波、FFT、图像处理等领域 。
1.2微内核结构
多数嵌入式操作系统采用了微内核结构,内核只提供基本的功能,如:任务的调度、任务之间的通信与同步、内存管理、时钟管理等。其它的应用组件,如:网络功能、文件系统、GUI系统等均工作在用户态,以系统进程或函数调用的方式工作。因而系统都是可裁减的,用户可以根据自己的需要选用相应的组件。
1.3任务调度
大多数的嵌入式操作系统支持多任务,依靠CPU在多个任务之间切换、调度,每个任务都有其优先级。 任务的调度有三种方式:可抢占式调度、不可抢占式调度和时间片轮转调度。多数嵌入式操作系统对不同优先级的任务采用基于优先级的抢占式调度法,对相同优先级的任务则采用时间片轮转调度法。
1.4硬实时和软实时
对时间要求较高的嵌入式系统,称为实时系统。实时系统分为软实时系统和硬实时系统。软实时系统并不要求限定某一任务必须在一定的时间内完成,只要求各任务运行得越快越好;硬实时系统对系统响应时间有严格要求,一旦系统响应时间不能满足,就可能引起系统崩溃或致命的错误。工业控制多采用硬实时系统。
1.5内存管理
多数嵌入式系统针对没有内存管理单元MMU的处理器设计,故不能采用虚拟内存管理技术,而是实存储器管理策略。对内存的访问是直接的,对地址的访问不需要经过MMU,而是直接发送至地址线输出,所有程序中访问的地址都是实际的物理地址。多数嵌入式操作系统对内存空间没有保护,各个进程共享一个运行空间。一个进程在执行前系统必须为它分配足够的连续地址空间,然后全部载入主存储器的连续空间。
2嵌入式系统的基本设计思路
从图1可知,嵌入式系统的工程设计分成三个阶段:分析、设计和实现。
(1)分析阶段:确定要解决的问题及需要完成的目标;
(2)设计阶段:主要解决如何在给定的约束条件下完成用户的要求;
(3)实现阶段:主要解决如何在所选择的硬件和软件的基础上进行整个软、硬件系统的协调实现。
嵌入式系统的工程设计包括:处理器、硬件部件、操作系统、编程语言、软件开发工具、硬件调试工具、软件组件等内容。
2.1建立硬件平台
2.1.1选择处理器
嵌入式处理器是嵌入式系统的核心部件。目前全世界嵌入式处理器的品种总量已超过一千种,流行系列有三十多个,仅32位的CPU就有100种以上嵌入式微处理器。鉴于嵌入式系统设计的差异性很大,故而选择是多样化的。Motorola、Intel、AMD、ARM、MIPS等公司均生产微处理器,其中ARM是近年来在嵌入式系统有影响力的微处理器制造商。
选择处理器时要考虑的主要因素有:
(1)处理性能
处理器的性能取决于时钟频率、内部寄存器、指令是否对等处理所有的寄存器等多个因素。要选取能够完成作业的处理器和I/O子系统,不在于挑选速度最快的处理器。
(2)技术指标
许多嵌入式处理器都集成了外围设备的功能,减少了芯片的数量,降低了整个系统的开发费用。首先考虑的是,系统所要求的一些硬件能否无需过多的胶合逻辑(GL,Glue Logic)就可以连接到处理器上。其次是考虑该处理器的一些支持芯片,如DMA控制器、内存管理器、中断控制器、串行设备、时钟等的配套。
(3)功耗
嵌入式微处理器最大并且增长最快的市场是手持设备、电子记事本、PDA、手机、GPS导航器、智能家电等消费类电子产品。这些产品中选购的微处理器典型的特点是要求高性能、低功耗,使用普通电池供电即可。若用于工业控制领域,则可不考虑这方面因数。
(4)软件支持工具
较好的软件开发工具是必不可少的。 比如,交叉编译器。
(5)内置调试工具
处理器如果内置调试工具,可以大大缩小调试周期,降低调试的难度。
(6)软件对硬件的依赖性
软件是否可以在硬件没有到位的时候并行设计或先行开发。
2.1.2尽量选择普通硬件
在 CPU 及架构的选择上,总原则为:只要有可替代的方案,尽量不要选择 Linux 尚不支持的硬件平台。
2.2建立软件平台
嵌入式的软件开发主要为:代码编程、交叉编译、交叉连接、下载到目标板和及调试等步骤,因此软件平台的选择也涉及到以下几个方面:低端无MMU(Memory Management Unit,存储器管理单元)的CPU,要使用uClinux 操作系统;相对高端的硬件,则可以用普通的嵌入式 Linux 操作系统。
选择操作系统应考虑的因素:
(1)操作系统提供的开发工具
有些实时操作系统(RTOS)只支持该系统供应商的开发工具,因此,还必须向操作系统供应商获取编译器、调试器等;而有些操作系统使用广泛,且有第三方工具可用。
(2)操作系统向硬件接口移植的难度
操作系统到硬件的移植是关系到整个系统能否完成的一个关键因素。因此,要选择那些可移植性程度高的操作系统,避免操作系统难以向硬件移植而带来的种种困难,加速系统的开发进度。
(3)操作系统的内存要求
考虑是否需要扩充RAM或EEPROM来满足操作系统对内存的需求。
(4)对操作系统的熟悉程度
(5)操作系统是否提供硬件的驱动程序
(6)操作系统的可剪裁性
有些操作系统具有较强的可剪裁性,如嵌入式Linux、Tornado/VxWorks。
(7)操作系统的实时性能
2.3选择编程语言
编程语言的选择主要考虑以下因素:
(1)通用性
汇编语言不通用;
高级语言与具体机器的硬件结构联系较少,通用性较好。
(2)可移植性
汇编语言与具体的微处理器密切相关,移植性差;
高级语言对所有微处理器都是通用的,可移植性较好。
(3)执行效率
汇编语言来进行应用程序的开发,编程复杂、开发周期长;
越高级的语言,其编译器和开销就越大,应用程序就越大、越慢。
因此,必须在开发时间和运行性能间进行权衡、取舍。
(4)可维护性
汇编语言可维护性不高;
高级语言程序通常采用模块化设计,各个模块之间的接口是固定的,模块化设计便于系统功能的扩充和升级。
应用较多的高级语言有:Ada、C/C++、Modula-2和Java等。C语言具有广泛的库程序支持,目前在嵌入式系统中是应用最广泛的编程语言。
2.4集成开发环境的选择
集成开发环境IDE(Integrated Development Environment)主要考虑以下因素:
(1)系统调试器的功能
系统调试及远程调试。
(2)支持库函数
库函数和模板代码。
(3)编译器是否能持续升级
(4)连接程序是否支持所有的文件格式和符号格式。
2.5选择硬件调试工具
好的硬件调试工具会有事半功倍之效。常用的硬件调试工具有:
(1)实时在线仿真器ICE (In-Circuit Emulator)
ICE是一个可被控制的MCU。ICE支持常规的调试操作,如单步运行、断点、反汇编、内存检查、源程序级的调试等。
(2)逻辑分析仪
逻辑分析仪常用于硬件调试,亦可用于软件调试,主要用于监视系统总线的事件。
(3)ROM仿真器
ROM仿真器用于仿真ROM芯片。将程序下载到ROM仿真器中,然后调试目标程序。
(4)在线调试OCD(On-Chip Debugging)或在线仿真(on-chip emulator)
2.6软件组件的选择
免费软件可靠性稍差;
授权软件费用一般较高,但经过严格的测试,可靠性高,调试时间短。
3结语
嵌入式技术是计算机发展的一个重要分支,其设计、开发、应用是一个长期的课题。以信息家电为代表的互联网时代,嵌入式产品不仅为嵌入式市场展现了美好前景,注人了新的生命,同时也对嵌入式系统技术提出了新的挑战。随着信息化、智能化、网络化的发展,嵌入式系统技术也将获得更广阔的发展空间。
参考文献
[1] 王田苗主编.嵌入式系统设计与实例开发[M].北京:清华大学出版社,2005.
[2] 田泽.嵌入式系统开发和应用教程[M].北京:北京航空航天大学出版社,2005.
(本文审稿陈兵)
转载注明来源:https://www.xzbu.com/1/view-191925.htm