文档介绍:第5章嵌入式系统开发过程
嵌入式系统的总体结构
在不同的应用场合,嵌入式系统呈现出的外观和形式各不相同。但通过对其内部结构进行分析,可以发现,一个嵌入式系统一般都由嵌入式微处理器系统和被控对象组成,如图所示。其中嵌入式微处理器系统是整个系统的核心,由硬件层、中间层、软件层和功能层组成。被控对象可以是各种传感器、执行机构(如继电器、电机等),可以接受嵌入式微处理器系统发出的控制命令,执行所规定的操作或任务。
硬件层由嵌入式微处理器、外围电路和外设组成。在一片嵌入式微处理器基础上增加电源电路、复位电路、调试接口和存储器电路,就构成一个嵌入式核心控制模块。其中操作系统和应用程序都可以固化在ROM或者Flash中。为方便使用,有的模块在此基础上增加了LCD、键盘、USB接口,以及其他一些功能的扩展电路。
嵌入式系统的硬件层是以嵌入式处理器为核心的,最初的嵌入式处理器都是为通用目的而设计的。后来随着微电子技术的发展出现了ASIC(Application specific integrated circuit,专用的集成电路),ASIC是一种为具体任务而特殊设计的专用集成电路。由于ASIC在设计过程中进行了专门优化,其性能、性价比都非常高。采用ASIC可以减少系统软硬件设计的复杂度,降低系统成本。有的嵌入式微处理器利用ASIC来实现,但ASIC的前期设计费用非常高,而且ASIC一旦设计完成,就无法升级和扩展,一般只有在一些产量非常大的产品设计中才考虑使用ASIC。
近年来,各种PLD(Programmable Logic Device,可编程逻辑器件)的出现,改变了硬件设计方法,出现了“可重构计算”的概念。通过改写PLD,允许在不改变硬件结构的情况下,实现不同的接口和功能。20世纪80年代中期以后出现了FPGA(Field-programmable gate array,现场可编程门阵列)器件,这是是一种大规模可编程逻辑器件,具有保密性好、体积小、重量轻、可靠性高等一系列ASIC的优点。FPGA的出现使得一个电子系统可以仅仅由三种标准模块构成,即微处理器、存储器和可编程逻辑器件。前两种模块都已标准化,系统中大量的控制逻辑由FPGA实现。这使得硬件的设计更具有灵活性和扩展性,并降低了后续产品开发的成本。
硬件层与软件层之间为中间层,也称为BSP(Board Support Package,板级支持包),将系统软件与底层硬件部分隔离,使得系统的底层设备驱动程序与硬件无关,一般应具有相关硬件的初始化、数据的输入/输出操作和硬件设备的配置等功能。BSP是主板硬件环境和操作系统的中间接口,是软件平台中具有硬件依赖性的那一部分,主要目的是为了支持操作系统,使之能够更好地运行于硬件主板上。
纯粹的BSP所包含的内容一般说来是与系统有关的驱动程序,如网络驱动程序和系统中的网络协议有关,串口驱动程序和系统的下载调试有关,等等。离开这些驱动程序系统就不能正常工作。
软件层主要是操作系统,有的还包括文件系统、图形用户接口和网络系统等。操作系统是嵌入式应用软件的基础和开发平台,实际上是一段程序,系统复位后首先执行,相当于用户的主程序,用户的其他应用程序都建立在操作系统之上。操作系统是一个标准的内核,将中断、I/O、定时器等资源都封装起来,以方便用户使用。
操作系统的引入大大提高了嵌入式系统的功能,方便了应用软件的设计,但同时也占用了宝贵的嵌入式系统资源。一般在大型的或需要多任务的应用场合才考虑使用嵌入式操作系统。
功能层由基于操作系统开发的应用程序组成,用来完成对被控对象的控制功能。功能层是面向被控对象和用户的,为了方便用户操作,往往需要具有友好的人机界面。
对于一些复杂的系统,在系统设计的初期阶段就要对系统的需求进行分析,确定系统的功能,然后将系统的功能映射到整个系统的硬件、软件和执行装置的设计过程中,这个过程称为系统的功能实现。
与通用PC相比,嵌入式系统有以下主要差别:
并发处理,及时响应
接口方便,操作容易
稳定可靠,维护简便
功耗管理,降低成本
功能实用,便于升级
嵌入式软件的开发与传统的软件有许多共同点,它继承了许多传统软件开发的开发习惯。但由于嵌入式软件运行于特定的目标环境,与传统软件的开发又有着很大的不同。
嵌入式系统开发的最大特点就是需要软硬件综合开发
一、采用宿主机/目标机方式
嵌入式系统的软件使用交叉开发平台进行开发。
系统软件和应用软件在主机开发平台上开发
系统软件和应用软件在嵌入式硬件平台上运行。
宿主机(Host)是用来开发嵌入式软件的系统。
目标机(Target)是被开发的目的嵌入式系统。
交叉编译器(piler)是进行交叉平台开发的主要软件工具。它是运行在一种处理器体系