第一章 嵌入式系统概况 大连理工大学 马洪连
本章内容 1.1 嵌入式系统的定义 1.2 嵌入式技术的应用领域及发展趋势 1.3 嵌入式系统组成简介
1.1、嵌入式系统的定义 1. 概述 嵌入式系统是将计算机硬件和软件结合起来构成的一个专门的装置,这个装置可以完成一些特定的功能和任务,能够在没有人工干预的情况下独立地进行实时监测和控制。 另外,由于被嵌入对象的体系结构、应用环境不同,所以各个嵌入式系统也可以由各种不同的结构组成。
2. 发展历史 嵌入式系统已有近40年的历史,它是以硬件和软件交替双螺旋式发展的。 1971年第一款微处理器是Intel的4004 20世纪80年代初,Intel研制成功了MCS8051系列单片机。 1981年世界上第一个商业嵌入式实时内核(VTRX32)诞生(包含许多操作系统的特征,如任务管理、任务间通信、同步与互斥、中断支持、内存管理等功能。)
3.IEEE定义 IEEE(国际电气和电子工程师协会)定义原文:devices used to control,monitor,or assist the operation of equipment,machinery or plants. 嵌入式系统是“用于控制、监视或者辅助操作机器和设备的装置”。可以看出,此定义是从应用上考虑的,嵌入式系统是软件和硬件的综合体,还可以涵盖机电等附属装置。
4. 一般定义 “以应用为中心,以计算机技术为基础,软件、硬件可裁减,功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。 嵌入式系统本身是一个相对模糊的定义。一个手持的MP3、MP4和一个PC104小型工控机都可以认为是嵌入式系统。 总之,嵌入式系统采用“量体裁衣”的方式把所需的功能嵌入到各种应用系统中。
1.2、嵌入式技术的应用领域及发展趋势 1.2.1 嵌入式技术的现状 1.2.2 嵌入式技术的应用领域 1.2.3 嵌入式技术的发展趋势
1.2.1 嵌入式技术的现状 随着信息化、智能化、网络化的发展,嵌入式技术也将获得广阔和发展空间。美国著名学者尼葛洛庞帝1999年1月访华时预言,4至5年后嵌入式智能工具将是PC和Internet网络之后最伟大的发明。 在硬件方面,市场上不仅有各大公司生产的各种微处理器芯片,还有用于学习和进行研发的各种配套的软件开发包和开发工具。目前,嵌入式底层系统和硬件平台已经相对比较成熟,实现各种功能的芯片应有尽有,巨大的市场需求给我们提供了学习嵌入式技术的机遇。
1.2.1 嵌入式技术的现状 在软件方面,也有相当多的成熟软件系统。国外的嵌入式操作系统有Windows CE、Linux、ucOS、VxWorks等。我国自主开发的嵌入式系统软件产品,如科银京城(CoreTek)公司的DeltaSystem开发平台,中科院推出的Hopen嵌入式操作系统。 嵌入式系统技术的发展,大致经历了以下四个阶段:无操作系统阶段,如单片机;简单操作系统阶段,如Power PC;实时操作系统阶段,如DSP;面向Internet阶段。
1.2.2 嵌入式技术的应用领域 嵌入式技术可应用在:工业控制;交通管理;信息家电;家庭智能管理;网络及电子商务;环境监测;机器人等领域。 在工业和服务领域中,大量嵌入式技术也已经应用于工业控制、数控机床、智能工具、工业机器人、服务机器人等各个行业,正在逐渐改变着传统的工业生产和服务方式。例如,飞机的电子设备、城市地铁购票系统等都可应用嵌入式系统来实现。嵌入式系统的应用领域如下图所示。
嵌入式系统的应用领域示意图 军事国防 消费电子 工业控制 嵌入式应用 网络 军事电子 信息家电 工控设备 智能玩具 智能仪表 通信设备 汽车电子 移动存贮 网络设备 电子商务 网络
Tektronix TDS7000 Digital Oscilloscopes 一些典型的嵌入式系统应用实例 Tektronix TDS7000 Digital Oscilloscopes goReader Internet eBook Samsung AnyWeb Internet Screen Phone Nixvue Digital Album Digital Photo Album eRemote Intelligent Home Controller
3. 其他方面的应用举例 ARM技术的IP(知识产权)在许多领域已经取得了很大的成功。 比如,目前绝大部分的无线设备(如手机等)和PDA之类的无线设备中都采用了嵌入式技术。在数字音频播放器、数字机顶盒和游戏机中也得到了更广泛的应用。典型的嵌入式系统应用实例如下图所示:
典型的嵌入式系统应用实例
嵌入式系统的具体应用 家用方面:数字电视、信息家电、智能玩具、手持通讯、存储设备的核心。
嵌入式系统的具体应用 家庭智能管理系统:社区建筑的水、电、煤气表的远程自动抄表,安全防火、防盗系统,远程点菜器等。
嵌入式系统的具体应用 社会发展方面:嵌入式Internet应用
嵌入式系统的具体应用 汽车电子:汽车电子产品(18个嵌入式控制模块)——CAN总线网络。 VOLVO S80汽车的CAN总线网络
嵌入式系统的具体应用 智能玩具与机器人
嵌入式系统的具体应用 智能机器鱼技术研究
嵌入式系统的具体应用 仿人型机器人 Humanoid by University of Humanoid by Beijing Defense Technology in 1999 Institute of Technology in 2002
基于Win CE的移动机器人平台
嵌入式系统的具体应用 军事侦察 阿富汗参加反恐作战的“赫耳墨斯”价值4万美元,可携带2架摄像机,发挥了很好作用。
嵌入式系统的具体应用 反恐防暴 2002年11月28日,以色列一选举投票点,发生枪击事件,造成至少7人死亡,数十人受伤。以警方用机器人在检查一具巴勒斯坦枪手的尸体。
嵌入式系统的具体应用 产品介绍-掌上电脑 CPU:intel PXA255 400MHz FLASH:64M SDRAM:64M Bluetouth 影音 Compact Flash 电源管理 红外线接口
嵌入式系统的具体应用 产品介绍-基于RTLinux的仿人机器人 高 48 cm 重: 6 kg 灵活性:20 DOF 操作系统: RT-Linux 接口形式: USB 1.0 (12Mbps) 响应周期: 1ms 能源: DC24V x 6.2A (150W) 制造:富士通
嵌入式系统的具体应用 产品介绍-工程机械智能监控系统
嵌入式系统的具体应用 产品介绍-基于VXworks的火星探路者
结论: 事实上,嵌入式技术无外不在,计算机应用技术也开始进入一个被称为后PC技术的春天。
1.2.3 嵌入式技术的发展趋势 1)目前的发展 经济性 计算机要很便宜,让更多的人能买得起; 小型化 (笔记本、PDA)人们携带方便; 经济性 计算机要很便宜,让更多的人能买得起; 小型化 (笔记本、PDA)人们携带方便; 可靠性 (汽车VCD,跳动问题); 稳定性 能够在一般环境条件下或者是苛刻的环境条件下运行; 高速度 (飞机刹车系统) 实时性 能够迅速地完成数据计算或数据传输; 智能性 (知识推理、模糊查询、识别、感知运动) 实用性 使人们用起来更习惯,对人们更有使价值。
2)未来发展趋势 支持开发的工具和操作系统 联网成为必然趋势 精简系统内核、算法,设备实现小尺 寸、微功耗和低成本 提供精巧的多媒体人机界面
(1)支持开发的工具和操作系统 软件系统开发工具和软件包 采用实时多任务编程技术 交叉开发工具技术 简化应用程序设计 保障软件质量 缩短开发周期
(2)联网成为必然趋势 为适应嵌入式分布处理结构和应用上网需求,要求配备标准的一种或多种网络通信接口。针对外部联网要求,嵌入设备必需配有通信接口,相应需要TCP/IP协议簇软件支持。由于家用电器相互关联(如防盗报警、灯光能源控制、影视设备和信息终端交换信息)及实验现场仪器的协调工作等要求,新一代嵌入式设备还需具备IEEE1394、USB、CAN、Bluetooth或IrDA通信接口,同时也需要提供相应的通信组网协议软件和物理层驱动软件。为了支持应用软件的特定编程模式,如Web或无线Web编程模式,还需要相应的浏览器,如HTML、WML等。
(3)精简系统内核、算法,设备实现小尺寸、微功耗和低成本 为满足这种特性,要求嵌入式产品设计者相应降低处理器的性能,限制内存容量和复用接口芯片。这就相应提高了对嵌入式软件设计技术要求。
(4)提供精巧的多媒体人机界面 嵌入式设备之所以为亿万用户乐于接受,重要因素之一是它们与使用者之间的亲和利,自然的人机交互界面,如司机操纵高度自动化的汽车主要还是通过习惯的方向盘、脚踏板和操纵杆。人们与信息终端交互要求以GUI屏幕为中心的多媒体界面。手写文字输入、语音拨号上网、收发电子邮件以及彩色图形、图像已取得初步成效。目前一些先进的PDA在显示屏幕上已实现汉字写入、短消息语音发布,但离掌式语言、同声翻译还有很大距离。
1.3 嵌入式系统组成简介 1.3.1 嵌入式系统的重要特征 1.3.2 典型嵌式系统的硬件组成 1.3.3 嵌入式系统的软件组成
嵌入式系统的基本组成
嵌入式系统的架构图 应用程序 软件结构 操作系统 存储器 硬件结构 处理器 输出 输入
软 件 硬 件 应用程序 实时操作系统(RTOS) 输入输出接口 处理器/ARM核 SOC/SOPC USB GPIO IIS LCD MMU/Cache SOC/SOPC USB GPIO IIS LCD UART和IrDA ADC/DAC FPGA/CPLD DSP/浮点运算协处理器 DMA 电源管理 人机交互接口LCD/触摸屏、键盘、鼠标 设备驱动程序、HAL、BSP 文件系统/图形用户应用程序接口 驱动层 OS层 应用层 软 件 以太网 看门狗及复位电路 Timer/RTC CAN Flash SDRAM SRAM 内存 硬 件
软件硬件基本要素 硬件 软件 实时操作系统(RTOS) 嵌入式处理器 板级支持包(BSP) 各种类型存储器 模拟电路及电源 接口控制器及接插件 软件 实时操作系统(RTOS) 板级支持包(BSP) 设备驱动(Device Driver) 协议栈(Protocol Stack) 应用程序(Application)
体系结构 为了有效组织和管理各种不同的设备,可以采用分层的思想,把I/O系统从上到下分为四层,分别为API、设备管理、驱动逻辑和硬件抽象。 设备管理层 中断驱动程序 串口驱动程序 键盘驱动程序 …… 驱动逻辑层 …… 串口卡A 硬件抽象 串口卡B 硬件抽象 …… 硬件抽象层 串口1 串口2 串口3 串口4 串口1 串口2 设备
1)嵌入式系统硬件系统 嵌入式系统的硬件是以嵌入式处理器为核心,配置必要的外围接口部件。在嵌入式系统设计中,应尽可能选择适用于系统功能接口的SoC/SOPC芯片,以最少的外围部件构成一个应用系统,满足嵌入式系统的特殊要求。 一般包括有 :嵌入式处理器; 存储器; I/O系统和外设。
2)嵌入式系统的软件系统 包括 : 操作系统、应用软件、驱动层软件。 (1)操作系统功能简介 操作系统层包含嵌入式内核、嵌入式TCP/IP网络系统、嵌入式文件系统、嵌入式GUI系统和电源管理等部分。其中嵌入式内核是基础和必备的部分,其他部分要根据嵌入式系统的需要来确定。 作为嵌入式系统软硬件资源的管理者,负责系统软硬件资源的调度与分配,保证系统资源被有效合理使用。嵌入式操作系统掩盖了底层硬件的复杂性,提高了软件的开发效率和可维护性。
(1) 嵌入式操作系统 嵌入式 操作系统 非实时 实时 硬实时 软实时
(2)应用程序 应用层软件主要是由多个相对独立的应用任务组成,每个应用任务完成特定的工作,如I/O任务、计算的任务和通信的任务等,一般由操作系统调度各个任务。应用层要针对不同的应用而编写的程序。
(3)中间层(驱动层软件) 使用任何外设都需要有驱动程序的支持,驱动程序不仅要实现设备的基本功能函数,如初始化、中断响应、发送、接收等,而且还要提供完备的错误处理函数。中间层为上层软件提供了设备的操作接口。上层程序只需调用驱动程序提供的接口,而不用理会设备具体的内部操作。 驱动层软件(中间层)将系统软件与底层硬件部分进行了隔离,使得系统的底层设备驱动程序与硬件无关。具体包括硬件抽象层HAL和板级支持包BSP。
1)硬件抽象层HAL HAL是位于操作系统内核与硬件电路之间的接口层,其目的是将硬件抽象化,可以通过程序来控制所有硬件电路,如CPU、I/O、存储器等的操作,从而使设备驱动程序与硬件无关,提高了系统的可移植性。 在定义抽象层时需要根据系统需求规定统一的软硬件接口标准。在功能上应实现相关硬件的初始化、数据的I/O操作、硬件设备的配置操作等功能。引入抽象层还可以对系统的软硬件进行并行测试。
硬件抽象层 是硬件功能模块的集合,是对硬设备功能的第一层抽象,实现基本的IO操作。 所关心的是如何实现硬件功能的软件接口,而不是设备的管理逻辑。 每个硬件可能有多个端口(设备),对应的硬件抽象层是对这些端口(设备)操作的基本抽象,为驱动程序管理这些设备提供接口。上层驱动程序在不需要了解具体设备硬件信息的情况下,就可以操作这些设备。
2)板级支持包BSP BSP主要是为驱动程序提供访问硬件设备寄存器的函数包,从而实现对操作系统的支持。不同操作系统有不同的板级支持包。具体完成如下二方面的功能: ①在系统启动时,完成对硬件的初始化。如对设备的中断、CPU的寄存器和内存区域的分配等进行操作。 ②为驱动程序提供访问硬件的手段。如系统是统一编址的,则可以直接在驱动程序中用C语言的函数进行访问。如是单独编址的,只能用汇编语言编写函数进行访问。BSP就是为上层的驱动程序提供访问硬件设备寄存器的函数包。
BSP小结 当前,实时操作系统的提供商基本上都要提供性能稳定可靠、可移植性好、可配置性好、规范化的板级支持包。作为嵌入式系统的开发者,只需在原来板级支持包基础上作一定改动,就可以适应性的目标硬件环境。
嵌入式系统组成原理架构
1.3.1 嵌入式系统的重要特征和特点 1)嵌入式系统的重要特征 (1)系统内核小 嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物。这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。 由于嵌入式系统一般是应用于小型电子装置的,系统资源相对有限,所以内核较之传统的操作系统要小得多。比如ENEA公司的OS分布式系统,内核只有5KB,而Windows的内核则要大得多。
(2)专用性强 嵌入式CPU大多工作在为特定用户群设计的系统中,具有低功耗、体积小、集成度高等特点。能够把通用CPU中由板卡完成的任务集成在芯片内部,有利于嵌入式系统设计趋于小型化。移动能力大大增强,跟网络的耦合也越来越紧密。嵌入式系统的个性化很强,其中的软件系统和硬件的结合非常紧密。同时针对不同的任务,往往需要对系统进行较大更改,程序的编译下载要和系统相结合,这种修改和通用软件的“升级”是完全不同的概念。
(3)系统精简和高实时性OS 嵌入式系统一般系统软件和应用软件的区分不明显,这样既利于控制系统成本,又利于实现系统安全。这是嵌入式软件的基本要求,而且软件要求固态存储,以提高速度。软件代码要求高质量和高可靠性、实时性。很多嵌入式系统都需要不断地对所处环境的变化做出反应,而且要实时地得出计算结果,不能延迟。
(4)高效率地设计 嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣、去除冗余,力争在同样的硅片面积上实现更高的性能,这样才能在具体应用中对处理器的选择更具有竞争力。 (5)创新性和有效性 嵌入式系统和具体应用有机地结合在一起,它的升级换代也是和具体产品同步进行,因此嵌入式系统产品一旦进入市场,具有较长的生命周期。 为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或微处理器中,而不是存贮于磁盘等载体中。
(6)嵌入式软件开发走向标准化 为了合理地调度多任务、利用系统资源、系统函数以及和专家库函数接口,用户必须自行选配RTOS开发平台,这样才能保证程序执行的实时性、可靠性,并减少开发时间,保障软件质量。 (7)嵌入式系统开发需要开发工具和环境 由于其本身不具备自主开发能力,即使设计通用计算机上的软硬件设备以及各种完成以后,用户通常也是不能对其中的程序功能进行修改,必须有一套开发工具和环境才能进行开发。 开发时往往有宿主机和目标机的概念,宿主机用于程序的开发,目标机作为最后的执行机,开发时需要交替结合进行。
交叉式的开发环境示意图 嵌入式系统开发所需的开发工具和环境
2)嵌入式系统的特点 采用32位RISC嵌入式微处理器和实时操作系统组成的嵌入式控制系统,与传统基于单片机的控制系统和基于PC的控制方式相比,具有以下突出优点: 性能方面:采用32位RISC结构微处理器,主频从30MHz到1200MHz以上,接近PC机的水平,但体积更小,能够真正地“嵌入”到设备中。
嵌入式系统的特点 实时性方面:嵌入式机控制器内嵌实时操作系统(RTOS),能够完全保证控制系统的强实时性。 人机交互方面:嵌入式控制器可支持大屏幕的液晶显示器,提供功能强大的图形用户界面,这些方面的性能也接近于PC,优于单片机。 系统升级方面:嵌入式控制器可为控制系统专门设计,其功能专一,成本较低,而且开放的用户程序接口(API)保证了系统能够快速升级和更新。
3)嵌入式系统与单片机的区别 嵌入式系统 单片机系统 目前嵌入式系统的主流是以32位嵌入式微处理器为核心的硬件设计和基于实时操作系统(RTOS)的软件设计。由于有了OS可以执行多任务调度,支持网络协议TCP/IP,所以嵌入式系统可以比普通单片机系统更适合完成复杂的任务。
单片机系统多为4位、8位、16位机,它们不适合运行操作系统,难以进行复杂的运算及处理功能; 嵌入式系统强调基于平台的设计、软硬件协同设计。单片机大多采用软硬件流水设计; 嵌入式系统设计的核心是软件设计(占70%左右的工作量),单片机系统软硬件设计所占比例基本相同。 单片机的开发通常是由一个电子工程师完成电路设计和软件编程开发工作;嵌入式系统不仅硬件系统的开发比单片机复杂,更最要的是在系统中采用了操作系统,其应用软件的开发转变为使用操作系统标准接口的计算机工程领域的应用软件开发。
4)嵌入式系统与PC之间的区别 嵌入式系统一般是专用系统,而PC是通用计算平台; 嵌入式系统一般采用实时操作系统;有成本、功耗的要求;得到多种微处理体系的支持并需要专用的开发工具。
嵌入式系统与PC之间的区别 通用计算机系统要求的是高速、海量的数值运算。在技术发展上追求总线速度不断提升、存储容量不断扩大。 而嵌入式系统要求的是对象体系的智能化控制能力,在技术发展方向追求对特定对象系统的嵌入性、专用性和智能化。其计算能力和数据存储能力都受到资源的限制。外形、尺寸、功能和功耗都受限于应用对象的设计要求。
1.3.2 典型嵌式系统的硬件组成 1.3.2.1 嵌入式系统基本硬件架构 主要包括有处理器、外围电路及接口和外部设备三大部分。其中外围电路一般包括有时钟、复位电路、程序存储器、数据存储器和电源模块等部件组成。外部设备一般应配有USB、显示器、键盘和其他等设备及接口电路。在一片嵌入式微处理器基础上增加电源电路、时钟电路和存储器电路,就构成了一个嵌入式核心控制模块。其中操作系统和应用程序都可以固化在ROM中。如下图所示:
典型嵌式系统的硬件组成 外围电路 微处理器 MPU 外设 电源 模块 时钟 复位 Flash RAM ROM USB LCD Keyboard 外围电路 Other 外设
1)嵌入式处理器的特点 核心是嵌入式处理器,具备以下4个特点: (1)对实时多任务有很强的支持能力,从而使内部的代码和实时内核的执行时间减少到最低限度。 (2)具有功能很强的存储区保护功能。这是由于嵌入式系统的软件结构已模块化,而为了避免在软件模块之间出现错误的交叉作用,需要设计强大的存储区保护功能,同时也有利于软件诊断。
嵌入式处理器的特点 (3)可扩展的处理器结构,以能最迅速地开发出满足应用的最高性能的嵌入式微处理器。 (4)嵌入式微处理器必须功耗很低,尤其是用于便携式的无线及移动的计算和通信设备中,靠电池供电的嵌入式系统更是如此,如需要功耗只有mW或W级。
2)嵌入式处理器的分类
(1)嵌入式微控制器MCU 嵌入式MCU的典型代表是单片机,这种8位的电子器件目前在嵌入式设备中仍然有着极其广泛的应用。 目前通常使用单片机芯片内部集成FlashROM 、RAM、总线、总线逻辑、定时/计数器、看门狗、I/O、串行口、脉宽调制输出等必要功能和外设。 MCU的最大特点是单片化,体积大大减小,从而使功耗和成本下降、可靠性提高。微控制器目前在工业中的应用还是很多,由于适合于控制,因此称为微控制器。
嵌入式微控制器图
(2)嵌入式DSP处理器 DSP(Digital Signal Processor )数字信号处理器 20世纪60年代发展起来的一门新兴技术,所涉及的领域非常广泛。如在数学领域中,微积分、概率统计、随机过程、数字分析等都是数字信号处理的基础工具。它与网络理论、信号与系统、控制理论、通信理论、故障诊断等密切相关。近年来,人工智能、模式识别、神经网络等新兴学科都与数字信号处理密不可分。数字信号处理包括算法的研究和数字信号处理的实现两个方面的内容。
DSP芯片的特点 采用哈佛结构:采用数据总线与程序总线 分离方式。 采用流水线技术 配有专用的硬件乘法-累加器:可在一个周期内完成一次乘法和一次累加操作。 具有特殊的DSP指令:循环寻址、位码倒置。 快速的指令周期 支持多处理器结构。 省电管理和低功耗
DSP的应用 信号处理:数字滤波、快速傅里叶变换、频谱分析、波形产生等。 通信:调制解调、自适应均衡、数据加密和压缩、多路复用、移动通信、可视电话、路由器等。 语音和图象的处理:语音编码与合成、文本-语音转换、图象压缩与传输、鉴别、转换、模式识别、动画、电子地图、机器人视觉。 军事:保密通信、雷达处理、导航、导弹制导、GPS、电子对抗、搜索与跟踪等。 仪器仪表:频谱分析、函数发生、数据采集、锁相环、暂态分析。 还有在自动控制、医疗工程、家用电器等方面的应用。
DSP处理器小结 DSP具有较完善的软、硬件开发工具,如软件仿真器、在线仿真器、C编译器等。TI公司提供的CCS开发工具功能强大,集成了代码的编辑、编译、连接和调试等功能,而且支持C/C++和汇编的混合编程。开放式的结构允许用户外扩展自身的模块,DSP的开发工作。 DSP具有处理速度快,灵活,精确,抗干扰能力强,体积小等优点。已经成为一个新的技术领域,形成了有潜力的产业和市场。 目前,国际上DSP的供货商有以下几大公司: TI(德州公司)、ADI公司、AT&T公司。
(3)嵌入式微处理器 (Micro Processor Unit) 嵌入式微处理器是由通用计算机中的CPU演变而来的。与计算机处理器不同的是,在实际嵌入式应用中,只保留和嵌入式应用紧密相关的功能硬件,去除其他的冗余功能部分,这样就以最低的功耗和资源实现嵌入式应用的特殊要求。 功能与和标准微处理器基本类似,在工作温度、抗电磁干扰、可靠性等方面一般都做了各种增强。 与工业控制计算机相比,嵌入式微处理器具有体积小、重量轻、成本低、可靠性高的优点。 主流芯片ARM 、Am186/88、Power PC、M68000、MIPS系列等。
ARM微处理器举例 提供Linux系统内核 系统稳定工作在203MHz主频上 模块包括64MB SDRAM、16-64MB flashROM 三星公司S3C2410的最小系统 提供Linux系统内核 系统稳定工作在203MHz主频上 模块包括64MB SDRAM、16-64MB flashROM 模块给出了S3C2410几乎所有的信号,32位的数据总线,保留充分扩展空间 为嵌入式技术爱好者提供了一个廉价的中高端平台 科研人员高效的开发工具
(4)嵌入式片上系统(System On Chip) SOC技术是一种高度集成化、固件化的系统集成技术。其核心思想就是要把整个应用电子系统全部集成在一个芯片中。如将ARM RISC、MIPS RISC、DSP等微处理器核,加上一些通用的接口单元集成在一起。如信号采集、转换、存储、处理等功能模块,通用串行端口(USB),TCP/IP通信单元、GPRS通信接口、GSM通信接口、IEEE1394、蓝牙模块接口等等。这些单元以往都是依照各单元的功能做成一个个独立的处理芯片。 SOC是追求产品系统最大包容的集成器件, 最大的特点是成功实现了软硬件无缝结合,直接在处理器片内嵌入操作系统的代码模块。
嵌入式片上系统(SOC)结构图
嵌入式片上系统(SOC)介绍 由于SOC往往是专用的,在声音、图像、影视、网络及系统逻辑等应用领域中发挥了重要作用。SoC微处理器所具有的好处如下: 利用改变内部工作电压,降低芯片功耗;减少芯片对外管脚数,简化制造过程;减少外围驱动接口单元及电路板之间的信号传递,可以加快微处理器数据处理的速度;内嵌的线路可以避免外部电路板在信号传递时所造成系统杂讯。 SOC实现了在一个硅片内部运用VHDL等硬件描述语言,实现一个复杂的系统。用户只需使用编程语言,综合时序设计,直接在器件内调用各种通用处理器的标准,然后通过仿真之后就可交付芯片厂商进行生产。故其减小了体积和功耗,而且提高了系统的可靠性和设计生产效率。
1.3.3 嵌入式系统的软件组成 嵌入式系统的软件包括嵌入式操作系统和相应的各种应用程序。 1、嵌入式操作系统EOS 为了使嵌入式系统的开发更加方便和快捷,需要有专门负责管理存储器分配、中断处理及任务调度等功能的软件模块,这就是EOS。EOS是用来支持嵌入式应用的系统软件,是嵌入式系统极为重要的组成部分。 通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面GUI、标准化浏览器等。嵌入式操作系统具有编码体积小,面向应用,可裁剪和移植,实时性强,可靠性高,专用性强等特点。
2、相应的各种应用程序 根据不同的应用场合,来编写不同的应用程序。嵌入式应用软件不仅要求其准确性、安全性和稳定性等方面能够满足实际的应用的需要,而且还要尽可能的进行优化,以减少对系统资源的消耗,降低硬件成本。所以对嵌入式系统而言,大而全的功能不是目标,少而精才是它的设计目标。
3、嵌入式系统的开发模式 软件开发过程,从编写程序、编译和运行等过程全都在同一个PC机平台上完成。嵌入式系统开发的代码生成是在PC机上完成,但由于嵌入式目标平台的不同,就要求在开发机上的编译器能支持交叉编译(例如GCC) 、链接,然后将程序的代码下载到目标机上指定位置,然后还要交叉调试。调试器还是运行在宿主机的操作系统上,被调试的程序是放在目标机上,通过串口或网络接口相连接。 主要流程为:编写-交叉编译、链接-定位和下载-调试。嵌入式系统采用这种开发模式主要是自身的特点决定的。
开发环境和工具一般使用于开发主机(如微机)的资源,包括语言编译器、连接定位器、调试器等。开发平台一般有4部分组成:硬件平台、操作系统、编程语言和开发工具。 注意:嵌入式系统的硬件和软件位于嵌入式系统产品本身,开发工具则独立于嵌入式系统产品之外 。
3. 嵌入式系统软件的开发模式 需要使用交叉编译器,进行交叉开发。 3. 嵌入式系统软件的开发模式 需要使用交叉编译器,进行交叉开发。 交叉编译器(Cross-compiler):是一种运行在通用计算机上的、但是能够生成在另一种处理器上运行的目标代码的编译器。 交叉开发:在一台通用计 算机上进行软件的编辑、 编译,然后下载到嵌入式 系统中运行调试。 宿主机 目标机
4、嵌入式操作系统的分类方法 1)按其应用对象不同,有如下4类: (1)基于Windows兼容,可包括有WindowsCE、嵌入式Linux等; (2)工业和通信类,包括有VxWorks、Psos、QNX等; (3)单片机类,包括有uC/OS、CMX、iRMX; (4)面向Intelnet类包括有Plam、Visor、Hopen、PPSM。
2)依据嵌入式系统操作系统的类型划分 主要有实时系统、分时系统(非实时系统)和顺序执行系统。其中实时系统又分为硬(强)实时和软(弱)实时系统。 (1)实时操作系统:系统内有多个程序运行,每个程序有不同的优先级,只有最高优先级的任务才能占有CPU的控制权。 (2)分时操作系统:系统内同时可以有多个程序运行,把CPU的时间分按顺序分成若干片,每个时间片内执行不同的程序,如UNIX。 (3)顺序执行系统:系统内只含有一个程序,独占CPU的运行时间,按语句顺序执行该程序,直至执行完毕,另一程序才能启动运行。如DOS操作系统。
3)按实时性划分 实时嵌入式系统是为执行特定功能而设计的,可以严格地按时序执行功能。其最大的特征就是程序的执行就有确定性。 具体可分为二种形式: (1)具有强(硬)实时特点的嵌入式操作系统 系统在指定的时间内未能实现某个确定的任务,会导致系统的全面失败,则被称为硬(强)实时系统。硬实时系统,其系统响应时间在毫秒或微秒级(数控机床)。一个硬实时系统通常在硬件上需要添加专门用于时间和优先级管理的控制芯片, uc/os和VxWorks是典型的实时操作系统。
嵌入式操作系统的分类方法 (2) 具有弱(软)实特点的嵌入式操作系统 (2) 具有弱(软)实特点的嵌入式操作系统 在软实时系统中,虽然响应时间同样重要,但是超时却不会发生致命的错误。软实时系统则主要在软件方面通过编程实现现实的管理。比如Windows CE、uCLinu是一个多任务分时系统。一般软实时系统,其系统响应时间在毫秒或几秒的数量级上,其实时性的要求比强实时系统要差一些(电子菜谱的查询)。
4)经济上分为商用型和免费型 (1)商用型的实时操作系统功能稳定、可靠,有完善的技术支持和售后服务,但价格昂贵。比如有VxWorks、Windows Embedded、Psos、Palm、OS-9、LynxOS和QNX等。 (2)免费型的在价格方面具有优势,目前主要有Linux和uC/OS。但不可靠,无技术咨询。
5)按软件结构分类 (1)循环轮询系统:(Polling Loop) 最简单的软件结构是循环轮询,程序依次检查系统的每一个输入条件,一旦条件成立就进行相应的处理。 Initialize() While(true){ if(condition_1) action_1(); if(condition_2) action_2(); …… if(condition_n) acition_n(); }
(2)事件驱动系统 事件驱动系统是能对外部事件直接响应的系统。它包括前后台、实时多任务、多处理器等,是嵌入式实时系统的主要形式。 应用程序是一个无限的循环,循环中调用相应的函数完成相应的操作,这部分可以看成后台行为(background)。中断服务程序处理异步事件,这部分可以看成前台行为(foreground)。 后台也可以叫做任务级,前台也叫中断级。 平时微处理器处在待机状态,所有的事都靠中断服务来完成。