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