嵌入式系统设计与开发ppt课件.ppt
嵌入式系统设计与开发,第1章 概述 第2章 ARM及其编程模型 第3章 ARM指令集 第4章 嵌入式程序设计 第5章 C/OS-实时操作系统 第6章 嵌入式最小系统设计 第7章 部件工作原理与开发实例 第8章 基于C/OS-的程序设计 第9章 ARM嵌入式开发工具 第10章 ARM9处理器,嵌入式系统设计与开发第1章 概述,本章提要,1.1 嵌入式系统 1.2 嵌入式系统的组成 1.3 嵌入式系统的主要应用领域 1.4 嵌入式处理器 1.5 嵌入式操作系统 1.6 嵌入式系统的开发,1.1 嵌入式系统,嵌入式系统的定义一般定义: 以应用为中心,计算机技术为基础,软硬件可剪,以适应应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。本质定义: 嵌入到对象体系中的专用计算机系统。,嵌入式系统的发展历史,1976年,Intel 公司推出了MCS-48单片机,只有1KB ROM和64KB RAM。 1980年,Intel 公司对MCS-48单片机进行了全面完善,推出了8位MCS-51单片机。 1984年,Intel 公司又推出了16位8096系列并将其称之为嵌入式微控制器。 此外,为了高速、实时地处理数字信号,1982年诞生了首枚数字信号处理芯片DSP。 20世纪90年代后,伴随着网络时代的来临,网络、通信、多媒体技术得以发展,基于硬件底层的单线程程序的单片机已经很难满足这些领域的要求。32位微处理器面向嵌入式系统的高端应用,由于速度快、资源丰富、本身的复杂性、可靠性等,得到了广泛的需求。,嵌入式计算机系统与通用计算机系统,嵌入式系统通常是面向特定应用的,应用的多样性决定了硬件平台的多样性。大多嵌入式系统都有实时性要求,在高端应用中,为满足应用需求、增强可靠性和便于开发,往往要有实时多任务操作系统的支持。嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物。功耗、成本和可靠性对嵌入式系统有特别重要的意义。,嵌入式计算机系统与通用计算机系统,嵌入式系统和具体应用有机的结合在一起,它的升级换代也是和具体产品同步进行的,因此嵌入式系统产品进入市场后具有较长的生命周期。嵌入式系统本身不具备自主开发能力,即使设计完成以后,用户通常也不能对其中的程序功能进行修改,必须有一套交叉开发工具和环境才能进行开发。嵌入式系统工业是不可垄断的高度分散的工业,充满了竞争、机遇与创新,是一个可以大有作为的行业。,1.2 嵌入式系统的组成,硬件 处理器/微处理器、存储器、 I/O接口及输入/输出设备软件 嵌入式操作系统、应用程序,嵌入式系统的架构,处理器,存储器,输入,输出,操作系统,应用程序,软件结构,硬件结构,嵌入式系统的硬件组成,电源模块,时钟模块,复位,外围电路,微处理器MPU,Flash,RAM,ROM,外设,USB,LCD,键盘,其他,嵌入式系统的软件组成,1.嵌入式操作系统 2.嵌入式应用软件 3.硬件抽象层HAL 4.板级支持包BSP 5.设备驱动程序 6.操作系统的应用程序接口函数API,嵌入式软件的主要特点,软件要求固化存储。软件代码要求高质量、高可靠性。系统软件(OS)的高实时性是基本要求。嵌入式系统软件需求实时多任务操作系统开发平台(RTOS)。在嵌入式系统的软件开发过程中,采用C语言将是最佳的选择。,1.3 嵌入式系统的主要应用领域,嵌入式应用,信息家电,智能玩具,军事电子,通信设备,移动存贮,工控设备,智能仪表,汽车电子,网络设备,消费电子,军事国防,电子商务,网络,工业控制,其他,嵌入式系统的应用领域,PDA 可视电话,机器人 SONY机器狗,嵌入式系统的应用领域,嵌入式技术在电子通讯中的应用,手机、小灵通、智能手机、3C合一,信息家电的应用,信息家电数字机顶盒,信息家电消费电子,SAN公司的信息家电产品,嵌入式技术在汽车电子中的应用,VOLVO S80汽车的CAN总线网络,(18个嵌入式控制模块) CAN总线网络,阿富汗参加反恐作战的“赫耳墨斯”价值4万美元,可携带2架摄像机,发挥了很好作用。,嵌入式技术在军事方面的应用,嵌入式系统高性能武器平台的基础,嵌入式Internet应用,嵌入式系统与机器人技术,图:卡耐基梅隆大学和瑞士EPFL研制的机器人控制器 (采用卡西欧PDA和Windows CE),智能机器人,基于Win CE的移动机器人平台,基于Win CE的机器人装配平台,基于RTLinux的仿人机器人,高 48 cm重: 6 kg灵活性:20 DOF操作系统: RT-Linux接口形式: USB 1.0 (12Mbps)响应周期: 1ms能源: DC24V x 6.2A (150W)制造:富士通,基于VXworks的火星探路者,2004年“勇气号”再次登陆火星,1.4 嵌入式处理器,嵌入式处理器分类:,嵌入式 处理器,嵌入式微处理器MPU,嵌入式微处理MCU,嵌入式数字信号 处理器EDSP,嵌入式片上系统SoC,嵌入式处理器现状及发展趋势,1.32位处理器在兴起2.处理器IP(知识产权)3.可编程处理器,1.5 嵌入式操作系统,嵌入式操作系统分类面向控制、通信等领域的实习操作系统 WindRiver公司的VxWorks、ATI的Nucleus、QNX系统软件公司的QNX、ISI的pSOS等面向消费电子产品的非实时操作系统 WinCE、Linux等,实时操作系统,实时系统的两种类型 硬件实时系统和软件实时系统 在实时多任务系统中,内核负责管理各个任 务,或者说为每个任务分配CPU时间,并且负责任务之间的通信。 基于优先级的内核的2种类型 不可剥夺型的和可剥夺型内核,不可剥夺型内核(非占先式 Non-Preemptive),可剥夺型内核(占先式 Preemptive),嵌入式操作系统的特点,1.可裁剪2.强实时性3.统一的接口4.操作方便、简单、提供友好的图形用户界面GUI5.提供强大的网络功能6.稳定性,弱交互性7.固化代码8.良好的移植性,VxWorks,VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),具有良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时操作系统领域牢牢占据着一席之地。VxWorks所具有的显著特点是:可靠性、实时性和可裁减性。它支持多种处理器,如x86、i960、Sun Sparc、Motorola MC68xxx、MIPS 、POWER PC等等。大多数的VxWorks API是专有的,火星机器人。,目前市场上流行的嵌入式操作系统,Nucleus,Nucleus实时操作系统是Accelerater Technology公司开发的嵌入式RTOS,产品只需一次性购买Licenses就可以获得操作系统的源码,并且免产品版税。Nucleus的另一大好处是程序员不用写BSP。Nucleus的特点是:对CPU的支持能力比较强,支持当前流行的大多数RISC、CISC、DSP处理器。Nucleus PLUS采用了软件组件的方法,每个组件具有单一而明确的目的。Nucleus PLUS除提供功能强大的内核操作系统外,还提供种类丰富的功能模块。Nucleus得到许多第三方工具厂商和方案提供商的支持。如ARM、Lauterbach、TI、Infineon、高通、IAR等。,Windows CE,Microsoft Windows CE是从整体上为有限资源的平台设计的多线程、完整优先权、多任务的操作系统。Windows CE操作系统的基本核心需要至少200KB的ROM。它支持Win32 API的子集,支持多种的用户界面硬件,同时提供熟悉的开发模式和工具。Windows CE有5个主要的模块:内核模块、内核系统接口模块、文件系统模块、图形窗口和事件子系统模块、通信模块,嵌入式Linux,自由免费软件Linux是一个类似于Unix的操作系统。优点:Linux是由很多体积小且性能高的微内核系统组成。Linux支持所有标准的因特网协议。Linux具备一整套工具链,容易自行建立嵌入式系统的开发环境和交叉运行环境,可以跨越嵌入式系统开发中仿真工具的障碍。传统的嵌入式程序调试和调试工具是用在线仿真器(ICE)实现的。Linux具有广泛的硬件支持特性。不足:实时性是嵌入式操作系统的基本要求。Linux内核的所有部分都集中在一起,而且所有的部件在一起编译连接。Linux需要占用较多存储器。提供完整的集成开发环境是每一个嵌入式系统开发人员所期待的。,QNX,加拿大QNX公司的产品。QNX是在X86体系上面开发出来的,这和别的RTOS不一样,别的好多RTOS都是从68K的CPU上面开发成熟,然后再移植到X86体系上面来的。QNX是一个实时的、可扩充的操作系统,它部分遵循POSIX相关标准,由于QNX具有强大的图形界面功能,因此很适合作为机顶盒、手持设备(手掌电脑、手机)、GPS设备的实时操作系统使用。,C/OS-,C/OS-是一种可移植、可固化、可裁剪及可剥夺的多任务实时内核。 (第5章详细介绍),嵌入式操作系统在我国的应用现状,目前为止,中国嵌入式操作系统的主要客户分布在电信、医疗、汽车、安全和消费类等行业,未来的嵌入式操作系统的主要增长动力来自消费类等行业。,1.6 嵌入式系统的开发,嵌入式系统设计流程:1.需求分析2.体系结构设计3.硬件的设计、制作及测试4.软件的设计、实现及测试5.系统集成6.系统性能测试及可靠性测试,系统需要分析规格说明书,体系结构设计,硬件设计,软件设计,硬件制作,软件实现,硬件测试,软件测试,系统集成,系统测试,符合 要求?,产品,否,是,基于知识平台的开发方法,嵌入式系统的软/硬件框架,开发平台简介,嵌入式软件开发流程,开发平台简介,嵌入式系统开发考虑的一些问题,1.软硬件协同设计2.嵌入式处理器的选择3.操作系统的选择4.嵌入式系统的交叉开发环境5.嵌入式系统的调试,交叉开发环境,