《ARM嵌入式系统基础教程.pdf》由会员分享,可在线阅读,更多相关《ARM嵌入式系统基础教程.pdf(405页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、广州周立功单片机发展有限公司 Tel:(020)38730916 38730917 38730976 38730977 Fax:38730925 -1前言 个人电脑已经是 64 位了,您还在使用 8 位微控制器吗?尽管一般情况下嵌入式系统对 CPU 处理能力的要求比个人电脑(对 CPU 处理能力的要求)低,但随着人们生活的提高和技术的进步,嵌入式系统对 CPU 处理能力的要求也稳步的提高,大量高速的与 MCS51 体系结构兼容的微控制器的出现就证明了这一点。但 8 位微控制器受限于体系结构,处理能力的提高始终有限。而 16 位系统在性能上与 8 位机相比始终没有太大优势,成本上与 32 位系统
2、相比也没有什么优势,未来一段时间嵌入式微控制器的发展方向必然是 32 位系统。基于 ARM 体系结构的 32 位系统占领了 32 位嵌入式系统的大部分分额,但长期以来,基于 ARM 体系结构的 32 位系统仅在嵌入式式系统的高端(通讯领域、PDA)等场合使用,要么以专用芯片的面貌出现,要么以位处理器的庙貌出现,并没有出现性价比高的通用的微控制器。PHILIPS 发现了这个空当,推出了性价比很高 LPC2000 系列微控制器,让更多的嵌入式系统具有 32 位的处理能力。这也预示着 32 位系统即将成为嵌入式系统的主流。基于 ARM 体系结构的芯片在中国推广已经有好几年了,关于 ARM 的图书也出
3、了不少。关于 ARM 的图书主要有以下几类:1关于 ARM 内核的图书,主要读者是芯片设计者,内容主要是介绍芯片设计的。2芯片应用类图书,主要是芯片的生产商或代理商编写,主要读者为应用工程师。3开发板类图书,主要介绍相应的 ARM 开发板,给应用者一些参考。以上 3 类图书的侧重点都不是 ARM 应用开发教学,用于大学本科教学不太适合。为了方便高等院校教学方便,笔者编写了这本教材。不过,因为嵌入式系统牵涉的知识太广,一本教材无法深入论述。为此,笔者还会推出多本被套图书以便学生知识扩展。广州周立功单片机发展有限公司 Tel:(020)38730916 38730917 38730976 3873
4、0977 Fax:38730925 -1目录 第第 1 章章 嵌入式系统概述嵌入式系统概述1 1.1 嵌入式系统嵌入式系统1 1.1.1 现实中的嵌入式系统1 1.1.2 嵌入式系统的概念2 1.1.3 嵌入式系统的未来2 1.2 嵌入式处理器嵌入式处理器2 1.2.1 简介2 1.2.2 分类3 1.3 嵌入式操作系统嵌入式操作系统4 1.3.1 简介4 1.3.2 基本概念5 1.3.3 使用实时操作系统的必要性8 1.3.4 实时操作系统的优缺点8 1.3.5 常见的嵌入式操作系统8 第第 2 章章 嵌入式系统工程设计嵌入式系统工程设计14 2.1 嵌入式系统项目开发生命周期嵌入式系统项
5、目开发生命周期14 2.1.1 概述14 2.1.2 识别需求15 2.1.3 提出方案17 2.1.4 执行项目19 2.1.5 结束项目21 2.2 嵌入式系统工程设计方法简介嵌入式系统工程设计方法简介22 2.2.1 由上而下与由下而上22 2.2.2 UML 系统建模22 2.2.3 面向对象 OO 的思想23 第第 3 章章 ARM7 体系结构体系结构25 3.1 简介简介25 3.1.1 ARM25 3.1.2 ARM 的体系结构 25 3.1.3 ARM 处理器核简介26 3.2 ARM7TDMI27 3.2.1 简介27 3.2.2 三级流水线28 广州周立功单片机发展有限公司
6、 Tel:(020)38730916 38730917 38730976 38730977 Fax:38730925 -23.2.3 存储器访问28 3.2.4 存储器接口28 3.3 ARM7TDMI 的模块和内核框图的模块和内核框图29 3.4 体系结构直接支持的数据类型体系结构直接支持的数据类型31 3.5 处理器状态处理器状态32 3.6 处理器模式处理器模式32 3.7 内部寄存器内部寄存器33 3.7.1 简介33 3.7.2 ARM 状态寄存器集33 3.7.3 Thumb 状态寄存器集35 3.8 程序状态寄存器程序状态寄存器37 3.8.1 简介37 3.8.2 条件代码标志
7、 38 3.8.3 控制位38 3.8.4 保留位39 3.9 异常异常39 3.9.1 简介39 3.9.2 异常入口/出口汇总39 3.9.3 进入异常40 3.9.4 退出异常41 3.9.5 快速中断请求 41 3.9.6 中断请求41 3.9.7 中止41 3.9.8 软件中断指令 42 3.9.9 未定义的指令 42 3.9.10 异常向量42 3.9.11 异常优先级43 3.10 中断延迟中断延迟43 3.10.1 最大中断延迟 43 3.10.2 最小中断延迟 44 3.11 复位复位44 3.12 存储器及存储器映射存储器及存储器映射 I/O44 3.12.1 简介44 3
8、.12.2 地址空间44 3.12.3 存储器格式45 3.12.4 未对齐的存储器访问46 3.12.5 指令的预取和自修改代码47 广州周立功单片机发展有限公司 Tel:(020)38730916 38730917 38730976 38730977 Fax:38730925 -33.12.6 存储器映射的 I/O49 3.13 寻址方式简介寻址方式简介51 3.14 ARM7 指令集简介指令集简介52 3.14.1 简介52 3.14.2 ARM 指令集52 3.14.3 Thumb 指令集54 3.15 协处理器接口协处理器接口56 3.15.1 简介56 3.15.2 可用的协处理器
9、56 3.15.3 关于未定义的指令57 3.16 调试接口简介调试接口简介57 3.16.1 典型调试系统 57 3.16.2 调试接口58 3.16.3 EmbeddedICE-RT58 3.16.4 扫描链和 JTAG 接口59 3.17 ETM 接口简介接口简介 59 第第 4 章章 ARM7TDMI(-S)指令系统指令系统61 4.1 ARM 处理器寻址方式处理器寻址方式61 4.2 指令集介绍指令集介绍64 4.2.1 ARM 指令集64 4.2.2 Thumb 指令集90 第第 5 章章 LPC2000 系列系列 ARM 硬件结构硬件结构 112 5.1 简介简介112 5.1.
10、1 描述112 5.1.2 特性112 5.1.3 器件信息113 5.1.4 结构概述113 5.2 引脚配置引脚配置114 5.2.1 引脚排列及封装信息114 5.2.2 LPC2114/2124 的引脚描述116 5.2.3 LPC2210/2212/2214 的引脚描述120 5.2.4 引脚功能选择使用示例126 5.3 存储器寻址存储器寻址126 5.3.1 片内存储器126 广州周立功单片机发展有限公司 Tel:(020)38730916 38730917 38730976 38730977 Fax:38730925 -45.3.2 片外存储器127 5.3.3 存储器映射12
11、7 5.3.4 预取指中止和数据中止异常131 5.3.5 存储器重映射及引导块132 5.3.6 启动代码相关部分134 5.4 系统控制模块系统控制模块136 5.4.1 系统控制模块功能汇总136 5.4.2 引脚描述137 5.4.3 寄存器描述137 5.4.4 晶体振荡器138 5.4.5 复位139 5.4.6 外部中断输入 142 5.4.7 外部中断应用示例145 5.4.8 存储器映射控制146 5.4.9 PLL(锁相环)148 5.4.10 VPB 分频器153 5.4.11 功率控制154 5.4.12 唤醒定时器156 5.4.13 启动代码相关部分156 5.5
12、存储器加速模块(存储器加速模块(MAM)158 5.5.1 描述158 5.5.2 MAM 结构159 5.5.3 MAM 的操作模式160 5.5.4 MAM 配置161 5.5.5 寄存器描述161 5.5.6 MAM 使用注意事项162 5.5.7 启动代码相关部分162 5.6 外部存储器控制器(外部存储器控制器(EMC)163 5.6.1 特性163 5.6.2 概述163 5.6.3 引脚描述164 5.6.4 寄存器描述164 5.6.5 外部存储器接口166 5.6.6 典型总线时序 168 5.6.7 外部存储器选择168 5.6.8 启动代码相关部分169 5.7 引脚连接
13、模块引脚连接模块170 5.7.1 介绍170 5.7.2 寄存器描述170 5.7.3 引脚功能控制 173 5.7.4 启动代码相关部分173 广州周立功单片机发展有限公司 Tel:(020)38730916 38730917 38730976 38730977 Fax:38730925 -55.8 向量中断控制器(向量中断控制器(VIC)175 5.8.1 特性175 5.8.2 描述175 5.8.3 结构176 5.8.4 寄存器描述177 5.8.5 中断源181 5.8.6 VIC 使用事项183 5.8.7 VIC 应用示例184 5.8.8 启动代码相关部分185 5.9 G
14、PIO 186 5.9.1 特性186 5.9.2 应用186 5.9.3 引脚描述187 5.9.4 寄存器描述187 5.9.5 GPIO 使用注意事项 189 5.9.6 GPIO 应用示例189 5.10 UART 0 189 5.10.1 特性189 5.10.2 引脚描述190 5.10.3 应用190 5.10.4 结构190 5.10.5 寄存器描述191 5.10.6 使用示例198 5.11 UART1 200 5.11.1 特性200 5.11.2 引脚描述200 5.11.3 应用201 5.11.4 结构202 5.11.5 寄存器描述203 5.12 I2C 接口接
15、口211 5.12.1 特性211 5.12.2 应用211 5.12.3 引脚描述211 5.12.4 I2C 接口描述211 5.12.5 I2C 操作模式214 5.12.6 寄存器描述225 5.13 SPI 接口接口 228 5.13.1 特性228 5.13.2 引脚描述228 5.13.3 描述229 广州周立功单片机发展有限公司 Tel:(020)38730916 38730917 38730976 38730977 Fax:38730925 -65.13.4 结构234 5.13.5 寄存器描述235 5.14 定时器定时器 0 和定时器和定时器 1237 5.14.1 描述
16、237 5.14.2 特性237 5.14.3 应用238 5.14.4 管脚描述238 5.14.5 结构239 5.14.6 寄存器描述239 5.14.7 定时器举例操作244 5.14.8 使用示例245 5.15 脉宽调制器(脉宽调制器(PWM)247 5.15.1 特性247 5.15.2 引脚描述248 5.15.3 描述248 5.15.4 结构249 5.15.5 寄存器描述251 5.15.6 使用示例256 5.16 A/D 转换器转换器258 5.16.1 特性258 5.16.2 描述258 5.16.3 引脚描述258 5.16.4 寄存器描述259 5.16.5
17、操作261 5.16.6 使用示例261 5.17 实时时钟实时时钟262 5.17.1 特性262 5.17.2 描述262 5.17.3 结构262 5.17.4 RTC 中断263 5.17.5 闰年计算264 5.17.6 寄存器描述264 5.17.7 混合寄存器组 265 5.17.8 完整时间寄存器267 5.17.9 时间计数器组 268 5.17.10 报警寄存器组269 5.17.11 基准时钟分频器(预分频器)269 5.17.12 RTC 使用注意事项271 5.17.13 使用示例271 5.18 看门狗看门狗274 广州周立功单片机发展有限公司 Tel:(020)3
18、8730916 38730917 38730976 38730977 Fax:38730925 -75.18.1 特性274 5.18.2 应用274 5.18.3 描述274 5.18.4 结构275 5.18.5 寄存器描述275 5.18.6 使用示例277 5.19 本章小结本章小结278 第第 6 章章 接口技术与硬件设计接口技术与硬件设计280 6.1 最小系统最小系统280 6.1.1 框图280 6.1.2 电源280 6.1.3 时钟284 6.1.4 复位及复位芯片配置284 6.1.5 存储器系统287 6.1.6 调试与测试接口288 6.1.7 完整的最小系统289
19、6.2 片内外设片内外设291 6.2.1 GPIO(通用 I/O)291 6.2.2 UART、MODEM295 6.2.3 I2C298 6.2.4 SPI304 6.3 总线接口总线接口308 6.3.1 并行 SRAM308 6.3.2 并行 FALSH314 6.3.3 USB(D12)接口328 6.3.4 液晶接口332 6.3.5 网络接口341 6.4 其它外设其它外设350 6.4.1 并行打印机接口350 6.4.2 CF 卡及 IDE 硬盘接口356 第第 7 章章 移植移植C/OS-II 到到 ARM7 362 7.1 C/OS-II 简介简介362 7.1.1 概述
20、362 7.1.2 C/OS-II 的特点 362 7.2 移植规划移植规划363 7.2.1 编译器的选择 363 7.2.2 任务模式的取舍363 广州周立功单片机发展有限公司 Tel:(020)38730916 38730917 38730976 38730977 Fax:38730925 -87.2.3 支持的指令集 363 7.3 移植移植C/OS-II363 7.3.1 概述363 7.3.2 关于头文件 includes.h 和 config.h364 7.3.3 编写 OS_CPU.H365 7.3.4 编写 Os_cpu_c.c 文件366 7.3.5 编写 Os_cpu_a
21、.s371 7.3.6 关于中断及时钟节拍374 7.4 移植代码应用到移植代码应用到 LPC2000376 7.4.1 编写或获取启动代码376 7.4.2 挂接 SWI 软件中断 376 7.4.3 中断及时钟节拍中断377 7.4.4 编写应用程序 377 7.5 本章小结本章小结379 第第 8 章章 嵌入式系统开发平台嵌入式系统开发平台380 8.1 如何建立嵌入式系统开发平台如何建立嵌入式系统开发平台380 8.1.1 使用平台开发是大势所趋380 8.1.2 建立开发平台的方法383 8.1.3 编写自己的软件模块384 8.2 数据队列数据队列384 8.2.1 简介384 8
22、.2.2 API 函数集384 8.3 串口驱动串口驱动387 8.3.1 简介387 8.3.2 API 函数集387 8.4 MODEM 接口模块接口模块 389 8.4.1 简介389 8.4.2 MODEM 的状态389 8.4.3 API 函数集389 8.5 I2C 总线模块总线模块390 8.5.1 简介390 8.5.2 API 函数集391 8.6 SPI 总线模块总线模块 392 8.6.1 简介392 8.6.2 API 函数集392 广州周立功单片机发展有限公司 Tel:(020)38730916 38730917 38730976 38730977 Fax:38730
23、925 -98.7 其它软件模块其它软件模块394 广州周立功单片机发展有限公司 Tel:(020)38730916 38730917 38730976 38730977 Fax:38730925 -1第第1章章 嵌入式系统概述 嵌入式系统概述 1.1 嵌入式系统嵌入式系统 经过几十年的发展,嵌入式系统已经在很大程度改变了人们的生活、工作和娱乐方式,而且这些改变还在加速。嵌入式系统具有无数的种类,每类都具有自己独特的个性。例如,MP3、数码相机与打印机就有很大的不同。汽车中更是具有多个嵌入式系统,使汽车更轻快、更干净、更容易驾驶。尽管嵌入式系统极大地改变了人们的生活、工作和娱乐,但要定义嵌入式
24、系统的概念却不容易,下面先介绍一些生活中常见的嵌入式系统。1.1.1 现实中的嵌入式系统现实中的嵌入式系统 即使不可见,嵌入式系统也无处不在。嵌入式系统在很多产业中得到了广泛的应用并逐步改变着这些产业,包括工业自动化、国防、运输和航天领域。例如神州飞船和长征火箭中肯定有很多嵌入式系统,导弹的制导系统也是嵌入式系统,高档汽车中也有多达几十个嵌入式系统。在日常生活中,人们使用各种嵌入式系统,但未必知道它们。图 1.1 就是一些比较新的、生活中比较常见的嵌入式系统。事实上,几乎所有带有一点“智能”的家电(全自动洗衣机、电脑电饭煲)都是嵌入式系统。嵌入式系统广泛的适应能力和多样性,使得视听、工作场所甚
25、至健身设备中到处都有嵌入式系统。图 1.1 常见的嵌入式系统应用实例 广州周立功单片机发展有限公司 Tel:(020)38730916 38730917 38730976 38730977 Fax:38730925 -21.1.2 嵌入式系统的概念嵌入式系统的概念 目前,对嵌入式系统的定义多种多样,但没有一种定义是全面的。下面给出两种比较合理定义:?嵌入式系统:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。?嵌入式系统:嵌入式系统是设计完成复杂功能的硬件和软件,并使其紧密耦合在一起的计算机系统。术语嵌入式反映了这些系统通
26、常是更大系统中的一个完整的部分,称为嵌入的系统。嵌入的系统中可以共存多个嵌入式系统。两种定义的出发角度不同,一个是从技术的角度来定义的,另一个是从系统的角度来定义的。事实上,在大多数情况下,嵌入式系统是真正的被嵌入,即它们是“系统中的系统”。它们不能够或没有自身的功能。例如,数字机顶盒 DST(Digital Set-Top box)可以在许多家庭娱乐场所中找到。数字音频视频解码系统,称为 A/V 解码器(A/V decoder),是 DST 的一个完整部分,是一个嵌入式系统。A/V 解码器接收单个的多媒体流,并且产生声音和视频帧作为输出。DST 从卫星接收的信号中包含多个流或频道,因此,A/
27、V 解码器与传输流解码器连接工作。传输流解码器也是一个嵌入式系统。传输流解码器解调收到的多媒体流到分离的频道上,并且只将所选的频道送给 A/V 解码器。某些情况下,嵌入式系统在功能上是独立的系统。例如网络路由器是独立的嵌入式系统。它由特殊的通信处理器、内存、许多网络访问接口(称为网络端口)以及实现包的路由算法的特殊软件组成。换句话说,网络路由器是一个独立的嵌入式系统,路由包从一个端口到另一个端口,实现程序化的路由算法。1.1.3 嵌入式系统的未来嵌入式系统的未来 早在 1990 年之前,嵌入式系统通常是很简单的且具有很长的产品生命周期的自主设备。近些年来,嵌入式工业经历了巨大的变革。?产品市场
28、窗口现在预计翻番的周期狂热到 69 个月。?全球重新定义市场的机会和膨胀的应用空间。?互联现在是一个需求而不是辅助性的,包括用有线和刚刚显露头角的无线技术。?基于电子的产品更复杂化。?互联嵌入式系统产生新的依赖网络基础设施的应用。?微处理器的处理能力按莫尔定律(Moores L aw)预计的速度在增加。该定律认为集成电路和晶体管个数每 18 个月翻一番。如果说过去的趋势能指明未来,那么随着技术的革新,嵌入式软件将继续增加新的应用,并产生更加灵巧的产品种类。根据人们对于自身虚拟运行设备的消费要求增加而不断壮大的市场,以及由 Internet 创造的无限的机会,嵌入式系统将不断地重新塑造未来的世界
29、。1.2 嵌入式处理器嵌入式处理器 1.2.1 简介简介 普通个人计算机(PC)中的处理器是通用目的的处理器。它们的设计非常丰富,因为这些处理器提供全部的特性和广泛的功能,故可以用于各种应用中。使用这些通用处理器的系统有大量的应用编程资源。例如,现代处理器具有内置的内存管理单元(MMU),提供内存保护和多任务能力的虚存和通用目的的操作系统。这些通用的处理器具有先进的高速缓存逻辑。许多这样的处理器具有执行快速浮点运算的内置数学协处理器。这些处理器提供接口,支持各种各样的外部设备。这些处理器能源消耗大,产生的热量高,尺寸也大。其复杂性意广州周立功单片机发展有限公司 Tel:(020)3873091
30、6 38730917 38730976 38730977 Fax:38730925 -3味着这些处理器的制造成本昂贵。在早期,嵌入式系统通常用通用目的的处理器建造。近年来,随着大量先进的微处理器制造技术的发展,越来越多的嵌入式系统用嵌入式处理器建造,而不是用通用目的的处理器。这些嵌入式处理器是为完成特殊的应用而设计的特殊目的的处理器。关键是应用意识,即知道应用的自然规律并满足这些应用的需求。一类嵌入式处理器注重尺寸、能耗和价格。因此,某些嵌入式处理器限定其功能,即处理器对于某类应用足够好,而对于其他类的应用可能就不够好了。这就是为何许多的嵌入式处理器没有太高的 CPU 速度的原因。例如,为个人
31、数字助理(PDA)设备选择的就没有浮点协处理器,因为浮点运算没有必要,或用软件仿真就足够了。这些处理器可以是 16bit地址体系结构,而不是 32bit 的,因为受内存储器容量的限制;可以是 200MHz CPU 频率,因为应用的主要特性是交互和显示密集性的,而不是计算密集性的。这类嵌入式处理器很小,因为整个 PDA 装置尺寸很小并能放在手掌上。限制功能意味着降低能耗并延长电池供电时间。更小的尺寸可降低处理器的制造成本。另一类嵌入式处理器更关注性能。这些处理器功能很强,并用先进的芯片设计技术包装,如先进的管道线和并行处理体系结构。这些处理器设计满足那些用通用目的处理器难以达到的密集性计算的应用
32、需求。新出现的高度特殊的高性能的嵌入式处理器,包括为网络设备和电信工业开发的网络处理器。总之,系统和应用速度是人们关心的主要问题。还有一类嵌入式处理器关注全部 4 个需求性能、尺寸、能耗和价格。例如,蜂窝电话中的嵌入式数字信号处理器(DSP)具有特殊性的计算单元、内存中的优化设计、寻址和带多个处理能力的总线体系结构,这样 DSP 可以非常快地实时执行复杂的计算。在同样的时钟频率下,DSP 执行数字信号处理要比通用目的的处理器速度快若干倍,这就是在蜂窝电话的设计上用 DSP 而不用通用目的的处理器的原因。更甚之,DSP 具有非常快的速度和强大的嵌入式处理器,其价格是相当合适的,使得蜂窝电话的整体
33、价格具有相当的竞争力。使用 DSP 的供电电池可以持续几十小时。片上系统 SoC(System on-a-Chip)处理器对嵌入式系统具有特别的吸引力。SoC 处理器具有 CPU 内核并带内置外设模块,如可编程通用目的计时器、可编程中断控制器、DMA控制器和以太网接口。这样的自含设计使嵌入式设计可以用来建造各种嵌入式应用,而不需要附加外部设备,再次减少了最终产品的整个费用和尺寸。1.2.2 分类分类?嵌入式微处理器嵌入式微处理器(Embedded Microprocessor Unit,EMPU)嵌入式微处理器的基础是通用计算机中的 CPU。在应用中,将微处理器装配在专门设计的电路板上,只保留
34、和嵌入式应用有关的母板功能,这样可以大幅度减小系统体积和功耗。为了满足嵌入式应用的特殊要求,嵌入式微处理器虽然在功能上和标准微处理器基本是一样的,但在工作温度、抗电磁干扰、可靠性等方面一般都做了各种增强。和工业控制计算机相比,嵌入式微处理器具有体积小、重量轻、成本低、可靠性高的优点,但是在电路板上必须包括 ROM、RAM、总线接口、各种外设等器件,从而降低了系统的可靠性,技术保密性也较差。嵌入式微处理器及其存储器、总线、外设等安装在一块电路板上,称为单板计算机。如 STD-BUS、PC104 等。近年来,德国、日本的一些公司又开发出了类似“火柴盒”式名片大小的嵌入式计算机系列 OEM 产品。嵌
35、入式处理器目前主要有 Am186/88、386EX、SC-400、Power PC、68000、MIPS、ARM系列等。?嵌入式微控制器嵌入式微控制器(Microcontroller Unit,MCU)嵌入式微控制器又称单片机,顾名思义,就是将整个计算机系统集成到一块芯片中。嵌入式微控制器一般以某一种微处理器内核为核心,芯片内部集成 ROM/EPROM、RAM、总线、总线逻辑、定时/计数器、WatchDog、I/O、串行口、脉宽调制输出、A/D、D/A、Flash RAM、广州周立功单片机发展有限公司 Tel:(020)38730916 38730917 38730976 38730977 F
36、ax:38730925 -4EEPROM 等各种必要功能和外设。为适应不同的应用需求,一般一个系列的单片机具有多种衍生产品,每种衍生产品的处理器内核都是一样的,不同的是存储器和外设的配置及封装。这样可以使单片机最大限度地和应用需求相匹配,功能不多不少,从而减少功耗和成本。和嵌入式微处理器相比,微控制器的最大特点是单片化,体积大大减小,从而使功耗和成本下降、可靠性提高。微控制器是目前嵌入式系统工业的主流。微控制器的片上外设资源一般比较丰富,适合于控制,因此称微控制器。嵌入式微控制器目前的品种和数量最多,比较有代表性的通用系列包括 8051、P51XA、MCS-251、MCS-96/196/296
37、、C166/167、MC68HC05/11/12/16、68300、数目众多 ARM 芯片等。目前 MCU 占嵌入式系统约 70的市场份额。?嵌入式嵌入式 DSP 处理器处理器(Embedded Digital Signal Processor,EDSP)DSP 处理器对系统结构和指令进行了特殊设计,使其适合于执行 DSP 算法,编译效率较高,指令执行速度也较高。在数字滤波、FFT、谱分析等方面 DSP 算法正在大量进入嵌入式领域,DSP 应用正从在通用单片机中以普通指令实现 DSP 功能,过渡到采用嵌入式 DSP处理器。嵌入式DSP处理器比较有代表性的产品是Texas Instruments
38、的TMS320系列和Motorola的 DSP56000 系列。TMS320 系列处理器包括用于控制的 C2000 系列,移动通信的 C5000系列,以及性能更高的 C6000 和 C8000 系列。DSP56000 目前已经发展成为 DSP56000,DSP56100,DSP56200 和 DSP56300 等几个不同系列的处理器。另外 PHILIPS 公司近年也推出了基于可重置嵌入式 DSP 结构低成本、低功耗技术上制造的 R.E.A.L DSP 处理器,特点是具备双 Harvard 结构和双乘/累加单元,应用目标是大批量消费类产品。?嵌入式片上系统嵌入式片上系统(System On Ch
39、ip)随着 EDI 的推广和 VLSI 设计的普及化及半导体工艺的迅速发展,在一个硅片上实现一个更为复杂的系统的时代已来临,这就是 System On Chip(SOC)。各种通用处理器内核将作为 SOC 设计公司的标准库,和许多其它嵌入式系统外设一样,成为 VLSI 设计中一种标准的器件,用标准的 VHDL 等语言描述,存储在器件库中。用户只需定义出其整个应用系统,仿真通过后就可以将设计图交给半导体工厂制作样品。这样除个别无法集成的器件以外,整个嵌入式系统大部分均可集成到一块或几块芯片中去,应用系统电路板将变得很简洁,对于减小体积和功耗、提高可靠性非常有利。SOC 可以分为通用和专用两类。通
40、用系列包括 Infineon 的 TriCore,Motorola 的 M-Core,某些 ARM 系列器件,Echelon 和 Motorola 联合研制的 Neuron 芯片等。专用 SOC 一般专用于某个或某类系统中,不为一般用户所知。一个有代表性的产品是 Philips 的 Smart XA,它将 XA 单片机内核和支持超过 2048 位复杂 RSA 算法的 CCU 单元制作在一块硅片上,形成一个可加载 JAVA 或 C 语言的专用的 SOC,可用于公众互联网如 Internet 安全方面。1.3 嵌入式操作系统嵌入式操作系统 1.3.1 简介简介 在计算机技术发展的初期阶段,计算机系
41、统中没有操作系统这个概念。为了给用户提供一个与计算机之间的接口,同时提高计算机的资源利用率便出现了计算机监控程序(Monitor),使用户能通过监控程序来使用计算机。随着计算机技术的发展,计算机系统的硬件、软件资源也愈来愈丰富,监控程序已不能适应计算机应用的要求。于是在六十年代中期监控程序又进一步发展形成了操作系统(Operating System)。发展到现在,广泛使用的有三种操作系统即多道批处理操作系统、分时操作系统以及实时操作系统。多道批量处理系统一般用于计算中心较大的计算机系统中。由于它的硬件设备比较全、广州周立功单片机发展有限公司 Tel:(020)38730916 38730917
42、 38730976 38730977 Fax:38730925 -5价格较高,所以此类系统十分注意 CPU 及其它设备的充分利用,追求高的吞吐量,不具备实时性。分时系统的主要目的是让多个计算机用户能共享系统的资源,能及时地响应和服务于联机用户,只具有很弱的实时功能,但与真正的实时操作系统仍然有明显的区别。那么什么样的操作系统才能称为实时操作系统呢?IEEE 的实时UNIX分委会认为实时操作系统应具备以下的几点:1.异步的事件响应 1.异步的事件响应 实时系统为能在系统要求的时间内响应异步的外部事件,要求有异步 I/O 和中断处理能力。I/O 响应时间常受内存访问、盘访问和处理机总线速度所限制。
43、2.切换时间和中断延迟时间确定 3.优先级中断和调度 2.切换时间和中断延迟时间确定 3.优先级中断和调度 必须允许用户定义中断优先级和被调度的任务优先级并指定如何服务中断。4.抢占式调度 4.抢占式调度 为保证响应时间,实时操作系统必须允许高优先级任务一旦准备好运行马上抢占低优先级任务的执行。5.内存锁定 5.内存锁定 必须具有将程序或部分程序锁定在内存的能力,锁定在内存的程序减少了为获取该程序而访问盘的时间,从而保证了快速的响应时间。6.连续文件 6.连续文件 应提供存取盘上数据的优化方法,使得存取数据时查找时间最少。通常要求把数据存储在连续文件上。7.同步 7.同步 提供同步和协调共享数
44、据使用和时间执行的手段。总的来说实时操作系统是事件驱动的(event_driven),能对来自外界的作用和信号在限定的时间范围内作出响应。它强调的是实时性、可靠性和灵活性,与实时应用软件相结合成为有机的整体起着核心作用,由它来管理和协调各项工作,为应用软件提供良好的运行软件环境及开发环境。从实时系统的应用特点来看实时操作系统可以分为两种:一般实时操作系统和嵌入式实时操作系统。一般实时操作系统与嵌入式实时操作系统都是具有实时性的操作系统,它们的主要区别在于应用场合和开发过程。一般实时操作系统应用于实时处理系统的上位机和实时查询系统等实时性较弱的实时系统,并且提供了开发、调试、运用一致的环境。嵌入
45、式实时操作系统应用于实时性要求高的实时控制系统,而且应用程序的开发过程是通过交叉开发来完成的,即开发环境与运行环境是不一致。嵌入式实时操作系统具有规模小(一般在几 K-几十 K 内)、可固化使用实时性强(在毫秒或微秒数量级上)的特点。1.3.2 基本概念基本概念?前后台系统前后台系统 对于基于芯片开发来说,应用程序一般是一个无限的循环,可称为前后台系统或超循环系统。循环中调用相应的函数完成相应的操作,这部分可以看成后台行为。中断服务程序处理异步事件,这部分可以看成前台行为。后台也可以叫做任务级,前台也叫中断级。时间相关性很强的关键操作一定是靠中断服务程序来保证的。因为中断服务提供的信息一直要等
46、到后台程序走到该处理这个信息这一步时才能得到进一步处理,所以这种系统在处理的及时性上比实际可以做到的要差。这个指标称作任务级响应时间。最坏情况下的任务级响应时间取广州周立功单片机发展有限公司 Tel:(020)38730916 38730917 38730976 38730977 Fax:38730925 -6决于整个循环的执行时间。因为循环的执行时间不是常数,程序经过某一特定部分的准确时间也不能确定。进而,如果程序修改了,循环的时序也会受到影响。很多基于微处理器的产品采用前后台系统设计,例如微波炉、电话机、玩具等。在另外一些基于微处理器应用中,从省电的角度出发,平时微处理器处在停机状态,所有
47、事都靠中断服务来完成。?操作系统操作系统 操作系统是计算机中最基本的程序。操作系统负责计算机系统中全部软硬资源的分配与回收、控制与协调等并发的活动;操作系统提供用户接口,使用户获得良好的工作环境;操作系统为用户扩展新的系统功能提供软件平台。?实时操作系统(实时操作系统(RTOS)实时操作系统是一段在嵌入式系统启动后首先执行的背景程序,用户的应用程序是运行于 RTOS 之上的各个任务,RTOS 根据各个任务的要求,进行资源(包括存储器、外设等)管理、消息管理、任务调度、异常处理等工作。在 RTOS 支持的系统中,每个任务均有一个优先级,RTOS 根据各个任务的优先级,动态地切换各个任务,保证对实
48、时性的要求。工程师在编写程序时,可以分别编写各个任务,不必同时将所有任务运行的各种可能情况记在心中,大大减小了程序编写的工作量,而且减小了出错的可能,保证最终程序具有高可靠性。实时多任务操作系统,以分时方式运行多个任务,看上去好象是多个任务“同时”运行。任务之间的切换应当以优先级为根据,只有优先服务方式的 RTOS 才是真正的实时操作系统,时间分片方式和协作方式的 RTOS 并不是真正的“实时”。?代码的临界区代码的临界区 代码的临界区也称为临界区,指处理时不可分割的代码,运行这些代码不允许被打断。一旦这部分代码开始执行,则不允许任何中断打入(这不是绝对的,如果中断不调用任何包含临界区的代码,
49、也不访问任何临界区使用的共享资源,这个中断可能可以执行)。为确保临界区代码的执行,在进入临界区之前要关中断,而临界区代码执行完成以后要立即开中断。?资源资源 程序运行时可使用的软、硬件环境统称为资源。资源可以是输入输出设备,例如打印机、键盘、显示器。资源也可以是一个变量、一个结构或一个数组等。?共享资源共享资源 可以被一个以上任务使用的资源叫做共享资源。为了防止数据被破坏,每个任务在与共享资源打交道时,必须独占该资源,这叫做互斥。至于在技术上如何保证互斥条件,本章会做进一步讨论。?任务任务 一个任务,也称作一个线程,是一个简单的程序,该程序可以认为 CPU 完全属于该程序自己。实时应用程序的设
50、计过程,包括如何把问题分割成多个任务,每个任务都是整个应用的某一部分,每个任务被赋予一定的优先级,有它自己的一套 CPU 寄存器和自己的栈空间。?任务切换任务切换 当多任务内核决定运行另外的任务时,它保存正在运行任务的当前状态,即 CPU 寄存器中的全部内容。这些内容保存在任务的当前状态保存区,也就是任务自已的栈区之中。入栈工作完成以后,就把下一个将要运行的任务的当前状态从任务的栈中重新装入 CPU 的寄予存器,并开始下一个任务的运行。这个过程就称为任务切换。这个过程增加了应用程序的额外负荷。CPU 的内部寄存器越多,额外负荷就越重。做任务切换所需要的时间取决于 CPU有多少寄存器要入栈。实时