嵌入式系统设计与开发 第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接口及输入/输出设备 软件 嵌入式操作系统、应用程序
嵌入式系统的架构 应用程序 软件结构 操作系统 存储器 硬件结构 输入 输出 处理器
嵌入式系统的硬件组成 电源模块 Flash 外围电路 微处理器 MPU 时钟模块 RAM 复位 ROM 外设 USB LCD 键盘 其他
嵌入式系统的软件组成 1.嵌入式操作系统 2.嵌入式应用软件 3.硬件抽象层HAL 4.板级支持包BSP 5.设备驱动程序 6.操作系统的应用程序接口函数API
嵌入式软件的主要特点 软件要求固化存储。 软件代码要求高质量、高可靠性。 系统软件(OS)的高实时性是基本要求。 嵌入式系统软件需求实时多任务操作系统开发平台(RTOS)。 在嵌入式系统的软件开发过程中,采用C语言将是最佳的选择。
1.3 嵌入式系统的主要应用领域 军事国防 消费电子 工业控制 嵌入式应用 网络 其他······ 军事电子 信息家电 工控设备 智能玩具 智能仪表 通信设备 汽车电子 移动存贮 网络设备 电子商务 网络
嵌入式系统的应用领域
嵌入式系统的应用领域 PDA 可视电话 机器人 SONY机器狗
嵌入式技术在电子通讯中的应用 手机、小灵通、智能手机、3C合一……
信息家电的应用
信息家电——数字机顶盒
信息家电——消费电子
SAN公司的信息家电产品
嵌入式技术在汽车电子中的应用 —(18个嵌入式控制模块) — CAN总线网络 VOLVO S80汽车的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 嵌入式 处理器 嵌入式数字信号 处理器EDSP 嵌入式片上系统SoC
嵌入式处理器现状及发展趋势 1.32位处理器在兴起 2.处理器IP(知识产权) 3.可编程处理器
1.5 嵌入式操作系统 嵌入式操作系统分类 面向控制、通信等领域的实习操作系统 面向消费电子产品的非实时操作系统 WinCE、Linux等 WindRiver公司的VxWorks、ATI的Nucleus、QNX系统软件公司的QNX、ISI的pSOS等 面向消费电子产品的非实时操作系统 WinCE、Linux等
实时操作系统 实时系统的两种类型 硬件实时系统和软件实时系统 在实时多任务系统中,内核负责管理各个任 务,或者说为每个任务分配CPU时间,并且负责任务之间的通信。 基于优先级的内核的2种类型 不可剥夺型的和可剥夺型内核
不可剥夺型内核(非占先式 Non-Preemptive) 低优先级任务 ISR 高优先级任务 (1) (2) (3) (4) (5) (6) (7) 中断服务程序使 高优先级任务就绪 低优先级任务释放 CPU使用权 TIME
可剥夺型内核(占先式 Preemptive) 低优先级任务 ISR 高优先级任务 (1) (2) (3) (4) (5) (6) 中断服务程序使 高优先级任务就绪 高优先级任务得到 CPU使用权 TIME
嵌入式操作系统的特点 1.可裁剪 2.强实时性 3.统一的接口 4.操作方便、简单、提供友好的图形用户界面GUI 5.提供强大的网络功能 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是由很多体积小且性能高的微内核系统组成。 传统的嵌入式程序调试和调试工具是用在线仿真器(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.嵌入式系统的调试
交叉开发环境