1. 嵌入式系统设计
[toc]
1.1. 嵌入式系统基础知识[16]
PCI总线标准是一种局部并行总线标准,常用来表示个人计算机中使用最为广泛的接口,几乎所有的主板产品上都带有这种插槽。
GUI(Graphical User Interface)常用来表示采用图形方式显示的计算机操作用户界面。
API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,开发人员无须访问源码(或理解内部工作机制的细节)。
PCI是一种局部总线标准,它是在CPU和原来的系统总线之间插入的一级总线,具体由一个桥接电路实现对这一层的管理,并实现上下之间的接口以协调数据的传送。
JTAG是一个调试接口,用来供开发人员调试CPU的工作状态。JTAG软件通过该接口控制CPU来调试CPU以及读写Flash。
1.2. 嵌入式处理器[16]
嵌入式处理器是嵌入式系统的核心部件,一般可分为嵌入式微处理器(MPU)、微控制器(MCU)、数字信号处理器(DSP)和片上系统(SOC)。
嵌入式微处理器(EMPU)是嵌入式系统硬件层的核心,大多工作在为特定用户群专用设计的系统中,它将通用CPU中许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统在设计时趋于小型化,同时还具有很高的效率和可靠性。
嵌入式微控制器(EMCU)的典型代表是单片机,单片机从诞生之日起,称为嵌入式微控制器。它体积小,结构紧凑,作为一个部件安装在所控制的装置中,主要执行信号控制的功能。
数字信号处理器(DSP)由大规模或超大规模集成电路芯片组成,是用来完成某种信号处理任务的处理器。它是为适应高速实时信号处理任务的需要而逐渐发展起来的。随着集成电路技术和数字信号处理算法的发展,数字信号处理器的实现方法也在不断变化,处理能力不断提高。
片上系统(SOC)指的是在单个芯片上集成一个完整的系统,一般包括中央处理器(CPU)、存储器,以及外围电路等。SOC是与其他技术并行发展的,如绝缘硅(SOI),它可以提供增强的时钟频率,从而降低微芯片的功耗。
1.3. 嵌入式操作系统-板级支持包BSP[15]
在嵌入式系统中,板级支持包Board Support Package(简称BSP)是对硬件抽象层的实现,是介于主板的硬件和操作系统驱动程序之间的一层,为整个软件系统提供底层硬件支持,是介于底层硬件和上层软件之间的底层软件开发包,它主要的功能是给上层提供统一接口,同时屏蔽各种硬件底层的差异,以及提供操作系统的驱动及硬件驱动。简单地说,就是BSP包含了所有与硬件有关的代码,为操作系统提供了硬件平台无关性。
在嵌入式操作系统中,板级支持包BSP作为对硬件的抽象,实现了硬件有关性,操作系统无关性。
1.4. 嵌入式操作系统的特点[15]
嵌入式操作系统是应用于嵌入式系统,实现软硬件资源的分配,任务调度,控制、协调并发活动等的操作系统软件。
它除了具有一般操作系统最基本的功能如多任务调度、同步机制等之外,通常还会具备以下适用于嵌入式系统的特性:
- 面向应用,可以进行检查和移植,以支持开放性和可伸缩性的体系结构;
- 强实时性,以适应各种控制设备及系统;
- 硬件适用性,对于不同硬件平台提供有效的支持并实现统一的设备驱动接口;
- 高可靠性,运行时无须用户过多干预,并处理各类事件和故障;
- 编码体积小,通常会固化在嵌入式系统有限的存储单元中。
嵌入式系统的软件设计除了需要考虑一般软件设计的基本要求之外,通常都会要求嵌入式系统软件具有良好的可移植性,以实现对不同硬件平台的适用性,这就要求基于硬件抽象层的系统软件设计特性实现对上层软件的统一接口,做到硬件无关性。
在嵌入式系统开发中,由于嵌入式设备不具备足够的处理器能力和存储空间,程序开发一般用PC(宿主机)来完成,然后将可执行文件下载到嵌入式系统(目标机)中运行。
当宿主机与目标机的机器指令不同时,就需要交叉工具链(指编译、汇编、链接等一整套工具)。
1.5. 嵌入式数据库管理系统[14]
嵌入式数据库管理系统一般只为前端应用提供基本的数据支持
嵌入式数据库管理系统一般支持实时数据的管理
嵌入式数据库管理系统一般支持多线程并发操作
嵌入式数据库管理系统一般只提供本机服务接口
1.6. [14]嵌入式处理器:
MMU是存储器管理单元的缩写,是用来管理虚拟内存系统的器件。MMU通常是CPU的一部分,本身有少量存储空间存放从虚拟地址到物理地址的匹配表。此表称作TLB(转换旁置缓冲区)。所有数据请求都送往MMU,由MMU决定数据是在RAM内还是在大容量存储器设备内。如果数据不在存储空间内,MMU将产生页面错误中断。
MMU的两个主要功能是将虚地址转换成物理地址,控制存储器存取允许。MMU关掉时,虚地址直接输出到物理地址总线。
Cortex—M3处理器采用ARMv7一M架构,它包括所有的16位Thumb指令集和基本的32位Thumb-2指令集架构。Cortex-M3支持线程模式和处理模式。在复位时处理器进入“线程模式”,异常返回时也会进入该模式,特权和用户(非特权)模式代码能够在“线程模式”下运行。出现异常模式时处理器进入“处理模式”,在处理模式下,所有代码都是特权访问的。 嵌入式操作系统μC/OS-II可以运行在Cortex-M3处理器上。
1.7. [13]可行性分析:
可行性研究通常从经济可行性、技术可行性、法律可行性和用户使用可行性4个方面来进行分析。
1.8. [12]嵌入式系统硬件抽象层:
硬件抽象层是位于操作系统内核与硬件电路之间的接口层,其目的在于将硬件抽象化。
它隐藏了特定平台的硬件接口细节,为操作系统提供虚拟硬件平台,使其具有硬件无关性,可在多种平台上进行移植。
1.9. [12]嵌入式实时操作系统实时性的评价指标:
一个嵌入式实时操作系统(RTOS)的评价要从很多角度进行,如体系结构、API的丰富程度、网络支持、可靠性等。其中,实时性是RTOS评价的最重要的指标之一,实时性的优劣是用户选择操作系统的一个重要参考。
严格地说,影响嵌入式操作系统实时性的因素有很多,如常用系统调用平均运行时间、任务切换时间、线程切换时间、信号量混洗时间(指从一个任务释放信号量到另一个等待该信号量的任务被激活的时间延迟)、中断响应时间等。
任务执行时间不是反映RTOS实时性的评价指标。