第2章嵌入式系统的设计方法

更新时间:2023-06-03 01:26:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

复习提问

1.嵌入式系统的定义(国内普遍)? 2. 嵌入式系统的构成?

第2章 嵌入式系统的设计方法2.1 嵌入式系统的一般设计流程 2.2 传统的嵌入式系统设计方法 2.3 嵌入式系统的软硬件协同设计方法 2.4 嵌入式系统的测试技术 2.5 小节

2.1 嵌入式系统的一般设计流程一、单片机系统用户需求 选择处理器 设计硬件平台

根据硬件平台 编写软件

存在硬件 问题否 否

修改硬件平台

测试软件 通过是

1. 单片机系统主要用于实 现相对简单的控制,因 此系统核心部件集成在 一块芯片——单片机上, 再在单片机的外围加入 一些接口电路即可。 2. 单片机系统设计相对比 较简单,软件部分不需 要嵌入式操作系统的支 持,只需采用汇编语言 编写针对特定应用的程 序即可。

整个系统测试

系统开发结束

图2.1 单片机系统的开发流程

二、嵌入式处理器系统用户需求 选择嵌入式处理器 及硬件平台

选择合适的 嵌入式操作系统

基于操作系统 开发应用程序

应用程序 测试通过 是

1. 嵌 入 式 处 理 器 系 统 往 往 包 含 CPU 、 内 存 和 丰富的外部接口,其 开发过程类似在PC机 上开发应用程序。 2. 开 发 流 程 的 第 一 步 是 选择嵌入式处理器和 硬件平台。 3. 软 件 部 分 一 般 包 含 操 作系统,开发人员基 于此编写相应的应用 程序即可,这可大大 地简化开发过程,提 高系统的稳定性。系统开发结束

整个系统测试

图2.2 嵌入式处理器系统开发流程

二、嵌入式处理器系统开发方式嵌入式处理器系统通常采用“宿主机/目标机”的开发方式。

宿主机RS232 JTAG

目标机

JTAG仿真器

图2.3 嵌入式处理器系统的开发方式

二、嵌入式处理器系统开发方式嵌入式处理器系统的开发过程一般包括以下几个步骤: 源代码编写:编写源C/C++及汇编程序; 程序编译:通过专用编译器编译程序; 软件仿真调试:在SDK中仿真软件运行情况; 程序下载:通过JTAG/USB/UART等方式下载到目标机; 软硬件测试、调试:通过JTAG等方式联合调试程序; 下载固化:程序无误,下载到目标板。

SDK(Software Development Kit, 即软件开 发工具包 )一般是一些被软件工程师用于 为特定的软件包、软件框架、硬件平台、 操作系统等建立应用软件的开发工具的集 合。

二、嵌入式处理器系统嵌入式处理器系统设计的关键问题(1)嵌入式处理器的选型处理器的选型直接影响存储器、外设的选择。一般从以下 几个因素考虑:

够用 、适用 、成本 、 功耗 软件开发工具、 是否内置调试工具 是否提供评估板

(2)操作系统的选择

从八十年代起,国际

上就有一些 IT组织、公司,开始致力于嵌入式 操作系统的研发,现已涌现了一批 优秀的操作系统。如何从众多的嵌 入式操作系统中选取合适的操作系 统?可以考查以下几个方面:

操作系统的选择

操作系统的移植 操作系统的内存要求 操作系统的实时性 支持的开发工具 操作系统的可裁剪性 开发人员是否熟悉此操作系统及其提供的 API 操作系统是否提供硬件的驱动程序,如网 卡等

复习提问1.嵌入式系统软件有哪几部分? 2.嵌入式系统实际开发采用宿主机/目标机方 式的开发方式?

(3)编程语言的选取人们在选择编程语言时往往具有很大的随意性。对价格、 获取方便性等因素考虑较多,而对语言本身的技术因素考虑 较少。在此就目前应用广泛几种高级语言:Ada、C/C++、 Modula-2和JAVA等进行简单的分析比较。 Ada语言定义严格,易读易懂,有较丰富的库程序支持,由于它和运行环境联系较少,因此其运行特性比较出色。 C语言具有广泛的库程序支持,现在是嵌入式系统设计中应用最广泛 的语言。 C++是一种面向对象的编程语言,应用也很多,但与C语言相比,C++ 编写的程序目标代码往往比较庞大和复杂。 Modula-2定义清楚,支持丰富,具备较好的模块化结构,在教学科研 方面有较广泛的应用。 Java语言相对年轻,但有很强的跨平台特性,现在发展势头较为强劲。

Ada是一种表现能力很强的通用程序设计语 言,它是美国国防部为克服软件开发危机, 耗费巨资,历时近20年研制成功的。它被誉 为第四代计算机语言的成功代表。与其他 流行的程序设计语言不同,它不仅体现了 许多现代软件的开发原理,而且将这些原 理付诸实现。因此,Ada语言的使用可大大 改善软件系统 的 清晰性, 可靠性, 有效 性, 可维护性。

为什么称作 Ada -

美国国防部之所以把这种语言取名为 Ada,是为了纪念奥左斯特. 艾达.洛夫莱斯 伯爵夫人 (Augusta Ada Lovlace 1815-1852),她 是英格兰诗人拜伦(Byron)勋爵的女儿,曾对 现代计算机技术之父查尔斯.巴贝奇(Charles Babage)的笔记,手稿进行了整理和修正。 从某种意义上说,她是世界上第一位计算 机程序员。

2.2 传统的嵌入式系统设计方法需求分析 总体设计

硬件子系统 设计

软件子系统 设计

系统集成、 测试、验证

系统 测试通过 是 开发结束

图2.4 传统的嵌入式系统设计方法

传统设计方法存在的缺陷传统的嵌入式系统设计方法虽然简单,但存在一些不 可避免的缺陷: 1)设计方法缺乏统一的软硬件协同表示方法,软硬件划 分完全由设计者凭经验完成,无法从系统级验

证划分的合 理性,且不易发现软硬件之间存在的接口问题。 2)在实际的设计过程中,通常采用“硬件优先的原则”, 因此软件的测试必须在硬件全部完成之后才能进行,这样 设计周期可能很长。 3)由于硬件设计在粗略估计软件任务需求的情况下进行, 缺乏对软件构架和实现机制的清晰了解,硬件设计工作带 有一定的盲目性。 4)整个系统的优化由于受设计空间的限制,只能改善硬 件和软件各自的性能,不可能对系统做出较好的综合优化, 难以适应现代复杂的、大规模的系统设计需要。

2.3 嵌入式系统的软硬件协同设计方法系统描述

软硬件划分

软件综合

接口综合

硬件综合

协同仿真/验证

系统集成与实现

图2.5 嵌入式系统的软硬件协同设计流程

嵌入式系统软硬件协同设计流程设计流程总体上可分为系统描述、软硬件划分、协同综 合、协同仿真与验证、系统集成几个过程。 (1)系统描述 系统描述是采用一种或多种系统级描述语言对所需设 计的嵌入式系统的功能和性能进行全面的描述,是建立系 统软硬件模型的过程。 系统建模可以由设计者用非正式语言,甚至是自然语 言手工完成,但手工完成容易导致系统描述不准确,而选 用合适的建模语言将对设计起到事半功倍的效果。 UML(Unified Modeling Language)语言是一种功能 强大的可视化建模语言。它将模型中的信息用标准图形元 素直观地显示,使具有不同技术背景的开发人员和设计师 可以较好地交流。

(2)软硬件划分 软硬件功能划分就是要确定哪些系统功能由硬件实现, 哪些功能由软件实现。 从理论上讲,每个应用系统都存在一个适合于该软硬 件功能的最佳组合,但如何从系统需求出发,依据一定的 指导原则和分配算法对硬件/软件功能进行合理划分,从而 使系统的整体性能达到最佳,是软硬件划分的目标所在。

(3)协同综合 软硬件协同综合是根据系统描述和软硬件划分的结果, 在已有的设计规则和既定的设计目标前提下,决定系统中 软件和硬件部分以及其接口的具体实现方法,并将其集成。

(4)协同仿真与验证 协同仿真验证是检验系统设计正确性的过程。它对设 计结果的正确性进行评估,以避免在系统实现过程中发现 问题再进行反复修改。 由于系统仿真验证的过程中,模拟的工作环境与实际使 用环境相差甚远,软硬件之间的相互作用方式及作用效果 也就不同,这就难以保证系统在真实环境下工作的可靠性, 因此系统仿真的有效性是有限的。 目前,软硬件协同设计领域的研究十分活跃,Berkeley, Princeton等著名大学有专门的研究小组进行相关研究,电

子设计领域权威的学术会议DAC上每年都有相当篇幅的论 文涉及软硬件协同设计,每年ACM还召开软硬件协同设计 的专门会议CODES。主要EDA厂家(Cadence,Synopsys) 目前己经推出部分支持软硬件协同设计的工具,并将软硬 件协同设计作为下一代的系统级EDA工具的关键技术。

软硬件协同设计的特点(1)软硬件协同设计采用统一的工具描述,可合理划分系 统软硬件,分配系统功能,在性能、成本、功耗等方面进 行权衡折衷,获取更优化的设计。 (2)软硬件协同设计方法采用并行设计和协同设计的思想, 提高了设计效率,缩短了设计周期。 (3)在系统级设计中,对软硬件部分使用统一描述语言和 工具进行集成开发,具有跨越软硬件界限进行系统优化的 能力。 (4)支持多领域专家的协同开发。它的核心思想是沟通软 件设计和硬件设计,避免系统中关系密切的两部分设计过 早独立。同传统设计方法相比,软硬件协同设计提高了设 计抽象的层次,拓展了设计的覆盖范围,采用软硬件协同 设计技术可以使嵌入式系统设计更好和更快。

本文来源:https://www.bwwdw.com/article/b0s1.html

Top