嵌入式技术的发展状况

Download Report

Transcript 嵌入式技术的发展状况

嵌入式系统简介

Introduction to Embedded System

南开大学 孙凤池 Mar. 12, 2007

报告内容

认识嵌入式技术

 嵌入式技术的起源  嵌入式技术的现状  嵌入式系统的开发  WinCE 系统开发  展望与总结

认识嵌入式技术

 丰富多彩的嵌入式产品  无处不在的嵌入式技术  嵌入式系统的概念  嵌入式系统的特点  嵌入式系统的结构

丰富多彩的嵌入式产品

无处不在的嵌入式技术

            消费电子:数码相机、 MP3 、游戏机等 信息家电:数字电视、机顶盒 智能电器:能上网的冰箱、空调、洗衣机等 通信设备:手机、 IP 电话、网络设备等 便携设备: PDA 、数据采集、测试装置等 工业设备 : 数控设备、过程工业控制设备 商业金融:售货机、收款机、取款机等 汽车电子:智能化汽车 航空航天:飞行器控制、外星探测器 医疗设备: CT 机,电子血压计等 交通管理: GPS 导航、智能监控设施 军事领域:武器控制、车载电子设备等

嵌入式系统的概念

  定义:嵌入式系统是以应用为中心,以计算机 技术为基础,软件、硬件可裁剪,功能、可靠 性、成本、体积、功耗严格要求的专用计算机 系统。 与通用计算机系统的不同:嵌入式系统是不同 于常见计算机系统的一种计算机系统,它不以 独立设备的物理形态出现,嵌入式系统的部件 根据主体设备及其应用的需要,嵌入在主体设 备内部,发挥着运算、处理、存储及控制的作 用,是“用于控制、监视或者辅助操作机器和 设备的装置”。

嵌入式系统的结构

 从体系结构来看,嵌入式系统包括两部分: 1)嵌入式处理器为中心的嵌入式硬件系统; 2)由嵌入式操作系统和用户应用程序组成的嵌入 式软件系统。 注意: 与传统的嵌入式控制系统相比,现在的嵌入式 系统,强调“系统”---指的是嵌入式操作系统。

应用程序 输入 操作系统 软件 结构 存储器 处理器 输出 硬件 结构

嵌入式系统的特点

     嵌入式系统是多学科融合的结果:计算机、电子、半 导体、通信、控制等; 嵌入式系统通常是面向用户、面向产品、面向特定应 用,开发人员很可能是各个应用领域的专家; 产品具有较长的生命周期; 软件固化存储, OS 内核小, OS 和应用程序的区分不 明显; 需要另外的开发工具和环境:宿主机 + 目标机的开发 方式 / 集成开发环境;

报告内容

 认识嵌入式技术 

嵌入式技术的起源

 嵌入式技术的现状  嵌入式系统的开发  WinCE 系统开发  展望与总结

嵌入式技术的起源

 早期的嵌入式技术  嵌入式操作系统的出现  采用嵌入式操作系统的优点

早期的嵌入式技术

  微处理器 - 单板机 - 单片机、 DSP 等 早期的嵌入式应用大都不采用操作系统,只是为 了实现某些特定功能,使用一个简单的 循环控制 程序 对外界的控制请求进行处理。  问题:    不利于扩展新功能; 加入网络协议栈比较麻烦; 应用程序移植性差;

嵌入式操作系统的出现

    随着嵌入式系统的功能要求日益复杂,硬件功能 越来越强大,使用操作系统是必须的,并且可能 的; C 语言被广泛用于嵌入式操作系统开发; 从 20 世纪 80 年代开始,出现了各种各样;商用嵌 入式操作系统,大多为专用系统开发,从而形成 了目前多种嵌入式操作系统并存的局面; 嵌入式操作系统的功能包括:任务管理、存储管 理、时钟管理、进程间通信与同步、设备管理、 文件系统、图形界面、网络接口等。

采用嵌入式操作系统的优点

     在嵌入式应用中使用操作系统,可以把复杂的应用分 解成多个任务,简化了应用系统软件的设计; 程序的设计和扩展变得容易,不需要大的改动就可以 增加新的功能; 使控制系统的实时性得到保证; 通过有效的系统服务,嵌入式实时操作系统使得系统 资源得到更好的利用; 良好的多任务设计,有助于提高系统的稳定性和可靠 性 .

报告内容

 认识嵌入式技术  嵌入式技术的起源 

嵌入式技术的现状

 嵌入式系统的开发  WinCE 系统开发  展望与总结

嵌入式技术的现状

 嵌入式微处理器发展现状  嵌入式操作系统发展现状  嵌入式技术市场现状

嵌入式微处理器现状

 由于嵌入式系统应用环境比较特殊,因而嵌入 式微处理器在对实时系统的支持能力、工作温 度、电磁兼容性、功耗、可靠性方面的要求较 通用微处理器更高;但嵌入式微处理器在基本 功能方面与通用微处理器类似.

嵌入式处理器分类

嵌入式微控制器 (MCU) 嵌入式处理器 嵌入式DSP处理器 (DSP) 嵌入式微处理器 (MPU) 嵌入式片上系统 (System On Chip)

 五种主流的嵌入式微处理器体系    ARM/Xscale MIPS IBM的Power PC   INTEL的X86 Motorola的 68000(68K)

嵌入式操作系统的发展现状

 嵌入式操作系统是一种支持嵌入式系统应用的 操作系统软件,通常包括与硬件相关的底层驱 动软件、系统内核、设备管理、网络通信、图 形界面、文件系统等模块;  嵌入式操作系统具有通用操作系统的基本特点, 能够有效管理越来越复杂的系统资源;  能够把硬件虚拟化,使得开发人员从繁忙的驱 动程序移植和维护中解脱出来;  能够提供库函数、驱动程序、工具集以及一些 典型应用程序。

 嵌入式操作系统可以分为两类:   面向控制、通信等领域的 实时操作系统-RTOS , 实时系统能在确定的时间内执行其功能,并对 外部的异步事件做出响应; 面向消费电子产品的 非实时操作系统 ,这类系 统用于对响应时间要求不严格的场合。

    实时系统的定义:系统执行的正确性不仅取决 于计算的逻辑结果,还取决于结果产生的时间。 特点:通过任务调度,使得对于重要事件在规 定的时间内做出正确的响应。 硬实时系统: 必须对事件做出及时的反应,绝 对不能错过事件处理的时限。 软实时系统: 危害。 如果在系统负荷比较严重的时候, 允许发生错过时限的情况,而不会造成太大的

 内核 是操作系统的核心程序,多任务系统中, 内核负责管理各个任务:为每个任务分配CPU 时间,并且负责任务之间的通信。  任务调度 (Scheduler)是内核的主要职责, 就是要决定运行哪一个任务。多数实时内核是 基于优先级调度法的:每个任务根据其重要程 度的不同被赋予一定的优先级,CPU总是让 “处在就绪态的优先级最高的任务先运行”。

调度方式

 当系统响应时间很重要时,要使用 占先式 (preemptive) 调度的内核:最高优先级的任务 一旦就绪,总能得到CPU的控制权。  当一个运行着的任务使一个比它优先级高的任务 进入了就绪态,当前任务的CPU使用权就被剥夺了, 或者说被挂起了,那个高优先级的任务立刻得到 了CPU的控制权。   如果是中断服务程序使一个高优先级高的任务进 入了就绪态,则中断完成时,原来被中断了的任 务被挂起,优先级高的任务开始运行。 占先式内核的任务级响应时间是可知的。

 几款主流嵌入式操作系统  VxWorks      Windows CE 嵌入式Linux uC/OS Palm OS QNX

VxWorks

VxWorks操作系统是美国WindRiver公司于1983年设计 开发的一种嵌入式实时操作系统(RTOS),具有良好的 扩展能力、高性能的内核以及友好的用户开发环境。该 公司在实时操作系统领域是世界公认最具有领导作用的 公司。VxWorks具有很高的可靠性、实时性和可裁减性, 它支持多种处理器,被广泛应用在通信、军事、航空、 航天等对实时性要求极高的领域中,在美国的 F-16、 FA-18 战斗机、B-2 隐形轰炸机和爱国者导弹、火星探 测器上也使用到了VxWorks。

VxWorks的特点

 具有高性能实时微内核Wind;  友好的开发调试环境Tornado:运行在宿主机上, 包含编辑器、编译器、调试器的集成开发环境;  兼容POSIX 100.1b 标准;  良好的自由配置能力;  广泛的CPU支持.

基于VxWorks的火星探测机器人

VxWorks在高性能武器中广泛应用

Windows CE

 Windows CE是一种针对小内存、移动式、智能化 设备推出的模块化嵌入式操作系统。  由于其Windows背景,界面比较统容易接受,系统 功能丰富,如具有多媒体能力、网络和通信支持、 高级应用程序服务。  Win CE3.0 以前的版本实时性能不高。  另外两种版本:Windows Mobile 和Windows Automotive

Windows CE的开发环境

 Platform Builder用于定制Windows CE平台 Platform Builder能够根据用户的需求,选择 构建(定制)具有不同功能配置的CE系统;定制 的平台编译后,就会得到一个OS映像文件;将该 文件下载到目标平台,就能够调试、运行CE系统 了。  Visual Sudio.NET 2003/eMbedded Vsiual C++ 用于Windows CE应用程序的开发。

基于Win CE的自动装配平台

基于Win CE的移动机器人平台

嵌入式Linux

   嵌入式Linux(Embedded Linux)是指对Linux经过小型 化裁剪后,固化在容量只有几百K字节或几兆字节的 存储器芯片或单片机中,应用于特定嵌入式场合的专 用Linux操作系统。 前几年的嵌入式Linux主要有RTLinux和uCLinux两个 版本。uClinux内核不关心实时性问题,可用于各种 手持设备等场合,RTLinux适合处理实时任务,可用 于工业控制等场合。 Linux是开放源码的,并具有内核小、功能强大、运 行稳定、系统健壮、效率高、易于定制剪裁等优点, 在价格上极具竞争力,因此嵌入式Linux是一种最有 前途的嵌入式操作系统。

嵌入式Linux的交叉编译环境

 Linux内核编译时,默认的配置是对i386平台,如 果要编译其他CPU内核,要先建立针对该处理器的 编译环境,包括:Linux内核源代码、GNU的C库和 线程库、GNU的C编译器、连接器ld、汇编代码编 译器as、用来将文件打包重组的ar以及为ar打包 的文件建立符号表的ranlib等。  例如针对ARM处理器的交叉开发环境中:arm linux-gcc是编译器, arm-linux-ld是连接器

嵌入式Linux的开发环节

 引导装载程序(BootLoader)  Linux系统内核  嵌入式设备文件系统  设备驱动程序  应用程序

基于RTLinux的仿人机器人

高 48 cm 重: 6 kg 灵活性:20 DOF 操作系统: RT-Linux 接口形式: USB 1.0 (12Mbps) 响应周期: 1ms 能源: DC24V x 6.2A (150W) 制造:富士通

基于嵌入式

Linnux

的电子书

uc/OS

uc/OS是一个源代码公开、免费的嵌入式操作系 统,是一个高实时性的多任务系统内核,其应用 面覆盖了诸多领域,如照相机、网络设备、医疗 器械、音响设备、高速公路电话系统、自动提款 机等,并于2000年得到美国航空管理局(FAA) 的认证,可以用于飞行器中。

基于uc/OS的产品

 3-Axis Motor Control Card µC/OS-II Hitachi SH2 running at 29.4912 MHz 7 Tasks / 10 Hz Tick Rate • Self Service Terminal (SST) µC/OS-II Intel 80386 CPU @ 33 MHz 9 Tasks 20 Hz Tick Rate

基于uc/OS的机器鱼

机器鱼的嵌入式控制器

主控计算 机 无线通信 模块 基于ARM的嵌入式控制器 GPS 导 航 子 系 统 压 力 深 度 传 感 器 罗 盘 定 位 子 系 统 测 距 传 感 器 尾鳍驱动子 系统 上升下潜 子系统 机器鱼关节电 机 水泵/水柜装置 智能机器鱼的嵌入式控制器 uC/OS-II RTOS

PalmOS

  Palm OS是Palm Computing公司为其掌上电脑 产品开发的嵌入式操作系统,Palm OS在PDA 市场上占有很大的市场份额,目前主要与 WinCE(Pocket PC)进行激烈竞争。 采用Palm OS的掌上电脑:

QNX

 加拿大QNX公司的产品。内核只有8K字节,QNX 是一个实时的、可扩充的嵌入式操作系统,遵 循POSIX(可移植操作系统接口)相关标准, QNX具有强大的图形界面功能。  应用于机顶盒、手持设备(手掌电脑、手机)、 GPS设备等,在工业控制领域也有比较广泛的 应用。

采用QNX的机器人“EMIEW”

日立公司设计,在 2005年爱知世博会 展出。 050317hit1.mpeg

050317hit2.mpeg

附:手机操作系统

 Linux  微软Windows Mobile  Symbine

嵌入式技术市场现状

   引用:“PC和因特网之后最伟大的发明”,“福特出 售的‘计算能力’已超过了IBM ” 发展嵌入式软件有以下几个有利条件: 1.通用软件容易被盗版,但是嵌入式软件由于固化存储的原因 不易被盗版。 2.和开发通用系统软件相比,嵌入式软件的开发成本低,风险 小,门槛低。 3.嵌入式软件和具体行业、应用联系紧密,国外垄断程度和垄 断能力相对较弱。 嵌入式应用软件是除行业应用软件、软件外包之外的 又一个有前途的方向

嵌入式技术市场现状

 嵌入式技术相关的企业的运营模式:  生产、销售嵌入式系统相关产品的大公司;   提供嵌入式技术、应用解决方案的中小型技术公司; 用嵌入式技术进行生产设备改造或者产品升级的传 统企业;

报告内容

 认识嵌入式技术  嵌入式技术的起源  嵌入式技术的现状 

嵌入式系统的开发

 WinCE 系统开发  展望与总结

嵌入式系统的开发

 设计流程  软件开发调试方式  宿主机-目标机开发模式  嵌入式软件集成开发环境  操作系统移植  系统定制  Boot Loader设计  BSP的概念

设计流程

    系统需求分析:分功能性需求和非功能性需求 两方面.

体系结构设计:对硬件、软件和执行装置的功 能划分,对操作系统、微处理器选型.

硬件/软件协同设计:软硬件设计工作并行; 采用基于开发平台的方式进行硬件开发;大部 分工作集中在软件设计上,采用标准化的软件 设计方法.

系统集成与测试

软件开发调试方式

    在线仿真器 使用仿真头代替目标板上的CPU,可以完全 仿真ARM芯片的行为,速度快。但结构较复杂, 价格昂贵,通常用于ARM硬件开发中。 JTAG仿真器 通过ARM芯片的JTAG边界扫描口与ARM内核 进行通信,不占用目标板的资源,是目前使用 最广泛的调试手段。 指令集模拟器 驻留监控软件

宿主机

-

目标机开发模式

嵌入式软件集成开发环境

    集成开发环境(IDE)的意义:加快开发进度,节 省开发成本。 IDE集成了丰富的功能模块和资源:编辑、编译、 连接、调试、工程管理、函数库等。 例如:ARM SDT (ARM Software Development Toolkit)用于在ARM微处理器上进行应用软件开 发的集成开发工具,由ARM公司提供,可以直接用 于uC/OS系统移植和应用程序开发。 ARM SDT 可以在多个系统平台上运行,可以支持C 语言和汇编语言。

嵌入式操作系统的移植

 操作系统的移植,是指使一个实时操作系统能 够在某个微处理器平台上运行。  操作系统移植成功的要求:   微处理器能够支持 编译器能够支持  移植步骤和移植工作复杂程度,因选定的嵌入 式操作系统而异。

举例:移植

COS-II所需条件

 处理器的C编译器能产生可重入代码;  在程序中可以打开或者关闭中断;  处理器支持中断,并且能产生定时中断(通常 在10-100Hz之间);  处理器支持能够容纳一定量数据的硬件堆栈;  处理器有将堆栈指针和其他CPU寄存器存储和 读出到堆栈(或者内存)的指令.

移植

C/OS-II所需工作

 在includes.h中设置与处理器和编译器相 关的代码  用C语言编写六个操作系统相关的函数 (OS_CPU_C.C)  用汇编语言编写四个与处理器相关的函数 (OS_CPU.ASM)

系统定制

 嵌入式操作系统的定制: 用户可以根据自己系统的功能需求,通过交叉 开发环境对操作系统进行配置,保留所需要的功 能,删除不需要的功能,以节省硬件存储空间。  定制方式:   选择组件方式 条件编译方式  在编译之前定制

Boot Loader的设计

 BootLoader是嵌入式系统最底层的引导软件, 它在系统加电后初始化主板的基本设置,为接 收外部程序做硬件上的准备。  BootLoader是一段单独的程序代码,它存放于 目标平台的非易失存储介质中,如ROM或Flash ROM.

 Boot Loader的作用       硬件系统自检; 配置其他存储体或者端口、外设的工作模式; 处理系统的中断; Flash ROM编程、映像文件下载; 接收用户命令,参数和数据的设置、存储和传 递.

引导操作系统

  BootLoader 设计方法    从操作系统厂商提供的例程中寻找与硬件平台最接 近的作为标本程序,然后再根据自己的硬件平台做 相应的改动。 一些新的评估板可能会由供应商或者第三方的厂商 来提供Bootloader。如果硬件平台是从这样的基板 设计而来,寻求厂商获取Bootloader来移植,可以 减少工作量。 参考其他来源的近似系统的设计。 编写BootLoader是开发第一步。

BSP

的概念

   BSP是板级支持包,是介于主板硬件和操作系统之间 的层次,是操作系统的一部分,主要目的是为了支持 操作系统,使之能够更好的运行于硬件主板。 BSP是相对于操作系统而言的,不同的操作系统对应 于不同定义形式的BSP,BSP一定要按照该系统BSP的定 义形式来写,才能与上层OS保持正确的接口。 通常,BSP包括硬件适配层和设备驱动程序,其编程 过程大多数是在某一个成型的BSP模板上进行修改。

报告内容

 认识嵌入式技术  嵌入式技术的起源  嵌入式技术的现状  嵌入式系统的开发  WinCE

系统开发

 展望与总结

WinCE

系统开发的环节

 操作系统定制  BootLoader 开发  硬件适配层 (OAL) 开发  驱动程序开发  应用程序设计

WinCE

应用程序开发

 WinCE支持本地应用程序和托管应用程序:  Native application:开发工具是Embedded Visual C++  Managed application:开发工具是Visaul Studio.NET

开发环境比较

  Embedded Visual C++:  直接编译C/C++代码到CPU指令  可使用Win32API应用程序接口存取Windows CE 函数  可使用MFC(Microsoft Foundation Classes)及 ATL(Active Template Library)库函数开发GUI和COM 应用程序 Visual Studio.NET:  编译成独立于CPU的中间语言代码  托管应用程序不直接使用Win32API  必须通过.NET Compact Framework库才能访问操作系 统功能

本地(Native)应用程序开发

 从Platform Builder导出 SDK(Software Development Kit);  使用 eVC进行开发前要安装SDK;  Win32编程开发。 注:若只是进行应用程序开发,只要工作站上有 eVC,就可以安装SDK,而不必要安装Platform Builder.

关于

SDK

    SDK包含了一个特定平台的所有函数,SDK决定于包含在平 台中的操作系统配置 、运行时库 、OAL( OEM Adaption Layer)、和设备驱动程序; 导出的SDK是一个Windows安装程序(.msi文件); 在使用eVC进行开发前,必须安装特定平台的SDK,而且进 行开发时必须了解特定平台支持的函数,SDK中不包括的 函数不能使用; Micorosoft 提 供 了 一 些 SDK , 如 Standard SDK 、 Pocket PC2003、SmartPhone2003等等。开发人员可以使用这些 SDK进行相应程序开发,程序中使用的函数需要在这些SDK 中支持的范围以内。

报告内容

 认识嵌入式技术  嵌入式技术的起源  嵌入式技术的现状  嵌入式系统的开发  WinCE 系统开发 

展望与总结

展望

 软件设计比重日益突出;  采用组件设计技术;  SOC是发展趋势;  硬件软件化。

总结

 嵌入式系统开发与桌面应用开发存在很大区别, 软件和系统平台紧密相关;  嵌入式系统将迅速普及和发展,但不会取代传统 的单片机嵌入式测控系统,二者的发展空间并不 冲突;  嵌入式系统设计开发中的处理器、操作系统选择。

Thank you !