摘 要: 较详细地分析了基于 ARM的嵌入式系统的技术特点,嵌入式系统的开发设计过程、体系结构,以及硬件和软件的设计方法。
关键词:嵌入式系统;ARM;体系特点
嵌入式系统具有便利灵活、性能价格比高、嵌入性强等特点,可以嵌入到现有任何信息家电和工业控制系统中。从软件角度来看,嵌入式系统具有不可修改性、系统所需配置要求较低、系统专业性和实时性较强等特点。
1、嵌入式系统的技术特点
1.1系统精简
嵌入式系统是将先进的计算机技术、半导体技术以及电子技术与各个行业的具体应用相结合的产物 ,这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。
1.2专用性强
嵌入式系统中的 CPU与通用型 CPU的最大不同就是前者大多工作在为特定用户群设计的系统中。通常,嵌入式系统 CPU都具有低功耗、体积小、集成度高等特点,能够把通用 CPU中许多由板卡完成的任务集成在芯片内部,从而有利于整个系统设计趋于小型化。
1.3高实时性
为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机中,而不是存贮于磁盘等载体中。
1.4专用开发环境
嵌入式系统本身并不具备在其上进行进一步开发的能力。在设计完成以后,用户如果需要修改其中的程序功能,也必须借助于一套开发工具和环境。
2、嵌入式系统的开发设计
2.1系统需求分析
根据项目需求,确定设计任务和设计目标,对系统的功能、性能、生产成本、功耗、物理尺寸及重量等方面进行设定,并根据这些需求分析,制定可行性分析报告.
2.2体系结构设计
描述系统如何实现系统的整体功能需求,包括对系统硬件、软件和执行装置的功能划分,系统硬件和软件的组成及设备的选型等。在嵌入式系统的开发设计中,通常很难把系统的硬件和软件完全分开,因此,在考虑系统整体设计时,应先考虑系统软件的结构,然后再设计系统的硬件体系结构和实现方法.
2.3硬件 软件的协同设计
根据体系结构设计结果,对系统的硬件、软件进行详细设计。这一步骤通常也称为“构件设计 ”。在体系结构设计中,描述的是需要什么样的构件,而在构件设计中,就是要设计或选择符合体系结构和规格说明中所需的构件。构件通常包括硬件,如芯片、外围设备、电路板等,也包括软件系统及设计模块.
2.4系统集成
把系统的硬件、软件和执行装置集成在一起,以得到一个可以运行的目标系统。在目标系统调试过程中,通常还会发现前面的流程在设计上的问题和不足,良好的设计可以帮助开发人员快速发现系统中的问题并加以改正。
2.5完成测试并形成产品
把设计好的系统放在实际运行环境中进行测试,检验系统是否满足实际应用需要。 经过多种环境测试合格后 ,可以形成系统性的产品。
3、嵌入式系统的应用方案
3.1系统总体结构
嵌入式系统是电工电子装置、计算机软硬件以及网络、通信等多方面的有机组合体。它以智能化、网络化、交互性为特征 ,结构比较复杂。如果利用 OSI7层模型的内容和形式,把相应的数据采集控制模块硬件和应用软件以及应用环境有机结合,就可以形成一个统一的系统总体结构。
3.2硬件平台设计
根据系统体系结构设计的嵌入式目标控制系统,进行硬件平台设计。选择嵌入式系统的处理器及常用的外围设备 实现无缝连接,从而简化了外围电路的设计,降低了产品成本、体积和功耗.硬件设计也可以构成最小系统的设计。最小系统同单片机一样,ARM最小系统也包括电源、时钟源、复位电路、代码和数据存放空间、合理的管脚设置以及必要的调试接口等。
3.3软件设计与实现
3.3.1嵌入式软件的特点
(1)嵌入式软件设计时更强调软硬件协同工作的效率和稳定性。(2)嵌入式软件的结果通常需要固化在目标系统的存储器或处理器内部存储资源中 ,而不是存放在硬盘中。(3)嵌入式软件的开发一般需要开发工具、目标设备等。(4)嵌入式软件对实时性的要求更高。(5)嵌入式软件对抗干扰性和可靠性的要求也较高。
3.3.2嵌入式软件的设计流程
(1)需求定义。整理清楚设计的要求,并且将项目要求转化为设计输入,形成设计需求文档和初步的测试文档,通过与团队和指导老师逐步进行谈论之后,确定设计目标。
(2)资源准备。列出在设计过程中,会用到的设计工具、设计环境设计板、测试仪器等设备 ,以及在软件测试时用到的资源等。
(3)任务和时间表规划。
(4)人员规划。确定每个软件模块的负责人。
(5)整理设计输入文档。在开始进行具体设计之前,必须确定某些文档,例如系统接口定义、内部模块功能和相互之间的接口定义、性能要求、测试方法、版本管理方法等。
(6)程序设计。在正确的项目分支上进行程序编写与调试。
(7)程序测试。包括模块测试、子系统测试、整机测试等不同范围的检测,还有功能测试、可靠性测试、兼容性测试等不同内容的测试。
(8)结果验证。检查程序结果是否与预期的相互吻合。
3.3.3嵌入式软件的结构
基于 ARM的嵌入式软件通常需要一段汇编代码作为启动代码来完成处理器运行环境的初始化等操作,然后设计者可以跳转到用 C/C + +等高级语言编写的应用程序中,也可以进入某个嵌入式操作系统中开始任务的调度,当然所有代码可以全部由汇编语言完成。ADS、SDT等集成开发环境都提供了完备的运行时库供设计者引用。
参考文献:
[1]刘岚 ,尹勇 ,李京薇. 基于 ARM 的嵌入式系统开发 [M]. 北京 :电子工业出版社 , 2008: 34 - 78.