




已阅读5页,还剩124页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第4章 基于ARM的硬件结构设计 1 大连理工大学 丁男 4.1概述 4.1.1 嵌入式系统的设计步骤 4.1.2 设计层次和设计架构 4.2 微处理器系统的硬件设计 4.2.1 微处理器芯片选型的一般原则 4.2.2 多路时钟电路的设计 4.2.3 系统复位电路的设计 4.2.4 电源管理器 4.3.1 存储系统设计的原理与特点 4.3.2 存储系统的组成结构 2 4.1.1 嵌入式系统的设计原则和步骤 嵌入式系统设计的重要特点是技术多样化, 即实现同一个嵌入式系统可以有许多不同的设计 方案选择,而不同的设计方案就意味使用不同的 设计和生产技术。 嵌入式系统设计一般步骤: 1)需求分析 2)体系结构设计 3)硬件/软件设计 4)系统集成和系统测试 注意:各个阶段之间往往要求不断的反复和修改, 直至完成最终设计目标。 3 嵌入式系统设计过程 4 嵌入式系统设计过程 5 1、需求分析阶段包括 分析用户的需求 确定硬件软件 检查需求分析的结果 确定项目的约束条件 概要设计 6 需求分析-罗列用户的需求 (1)系统用于什么任务? (2)系统接收什么输入和输出什么信号? (3)用户需要如何同系统打交道? (4)系统的重量和体积如何? (5)系统需要连接何种外设? (6)系统是否需要运行某些现存的软件? (7)系统处理哪种类型的数据? (8)系统是否要与别的系统通讯? (9)系统是单机还是网络系统? 7 需求分析-罗列用户的需求 (10)系统的响应时间是多少? (11)需要什么安全措施?在什么样的环境下运行? (12)外部存储媒介和内存需要多大? (13)系统可拆装性,可靠性,牢固性的期望值是什么? (14)如何给系统供电? (15)系统如何向用户通报故障? (16)是否需要任何手动或机械代用装置? (17)系统是否将具有远程诊断或更正问题的功能? (18)其他问题 8 2、体系结构设计 设计目的描述系统的功能如何实现。 决定因素 系统是硬实时系统还是软实时系统; 操作系统是否需要嵌入; 物理系统的成本、尺寸和耗电量是否是产品 成功的关键因素; 选择处理器和相关硬件; 其他。 9 3、硬件/软件设计 (1)设计目的:决定哪些用硬件实现,哪些用软件实现 。 例如: 浮点运算;网络通信控制器实现的功能;软调制解调器/硬调 制解调器;软件压缩解压/硬件压缩解压图像。 (2)硬件设计: 设计硬件子系统(top-down方法)分成模块;设 计框图。 例如:CPU子系统、存储器子系统等。 定义硬件接口 I/O端口;硬件寄存器;共享内存;硬件中断; 存储器空间分配;处理器的运行速度。 10 3、硬件/软件设计 (3)软件设计 l 设计软件子系统:软件总体设计、模块设计。 l 定义软件接口:模块接口、函数接口。 (4)检查设计 l小项目:自己审查设计文档 l中等项目:拿给同事朋友并向他们解释你的设计 l大型项目-审查会:设计者应作一个更正式的报告。由于这 是一个设计审查会,召集一群人,主要由工程师组成,并尽 可能包括一些对项目有不同看法角度的成员,如做市场的人 员、最终用户。 11 4、系统集成与测试 系统集成 把系统的软件、硬件和执行装置集成在一起 ,进行调试,发现并改进设计过程中的错误。 系统测试 对设计好的系统进行测试,看其是否满足给定 的要求。 12 5、嵌入式操作系统选型原则 当进行设计信息电器、数字医疗设备等 嵌入式产品时,嵌入式操作系统的选择至关 重要。 一般而言,在选择嵌入式操作系 统时,可以遵循以下原则: 就是“做加法还是做减法”的问 题。 13 (1)市场进入时间 制定产品时间表与选择操作系统有关系。 目前Windows程序员是人力资源最丰富的。现成 资源最多的也是WinCE,使用WinCE能够很快进入 市场。因为应用WinCE+X86做产品实际上是在做减 法,去掉你不要的功能,能很快出产品,但伴随 的可能是成本高,核心竞争力差。 而某些高效的操作系统可能由于编程人员缺乏 ,或由于这方面的技术积累不够,影响开发进度 。 14 (2)可移植性 当进行嵌入式软件开发时,可移植性是要重点 考虑的问题。 良好的软件移植性应该比较好,可以在不同平 台、系统上运行,跟操作系统无关。 软件的通用性和软件的性能通常是矛盾的,通 常以损失某些特性情况下的优化性能为代价。 15 (3)可利用资源 产品开发不同于学术课题研究,它是以快速、低 成本、高质量的推出适合用户需求的产品为目的 的。 集中精力研发出产品的特色,其他功能尽量由操 作系统附加或采用第三方产品,因此操作系统的 可利用资源对于选型是一个重要参考条件。 Linux和WinCE都有大量的资源可以利用,这是它 们被看好的重要原因。 16 (4)系统定制能力 信息产品不同于传统PC机结构的单纯 性,用户的需求是千差万别的,硬件平台 也都不一样,所以对系统的定制能力提出 了要求。要分析产品是否对系统底层有改 动的需求,这种改动是否伴生着产品特色 ? Linux由于其源代码开放的天生魅力 ,在定制能力方面具有优势。随着WinCE 原码的开放,以及微软在嵌入式领域力度 的加强,其定制能力会有所提升。 17 (5) 成本 成本是需要综合权衡以后进行考虑的。 选择某一系统可能会对其它一系列的因素产生 影响,如对硬件设备的选型、人员投入、以及 公司管理和与其它合作伙伴的共同开发之间的 沟通等许多方面的影响。 18 (6) 中文内核支持 国内产品需要对中文的支持。 由于操作系统多数是采用西文方式,是否 支持双字节编码方式、是否遵循GBK、 GB18030等各种国家标准、是否支持中文输 入与处理、是否提供第三方中文输入接口 等等,这些是针对国内用户的嵌入式产品 的必需考虑的重要因素。 19 6、 嵌入式软件开发工具 “工欲善其事,必先利其器” 嵌入式软件开发工具的集成度和可用性将 直接关系到嵌入式系统的开发效率。ARM的开 发工具包括有编译器、汇编器、连接器、 调试器、操作系统、函数库、评估板、JTAG 调试器、在线仿真器等。目前世界上约有40 多家公司提供不同类型的产品。 在Windows环境下,其代表产品是ARM公司 的软件开发工具包SDT和ADS。 在Linux环境中,主要使用GNU开发工具。 20 开发工具的分类 根据不同的阶段,嵌入式软件开发工具可 以分为: 需求分析工具(Requirement Analysis Tools) 软件设计工具(Software Design Tools) 编码、调试工具(Coding Tools) 测试工具(Testing Tools) 配置管理工具、维护工具等 21 开发工具的分类 嵌入式软件的开发可以分为以下几种 : 编写简单的板级测试软件,主要是辅助硬件 的调试 开发基本的驱动程序 开发特定嵌入式操作系统的驱动程序(板级 支持包) 开发嵌入式系统软件,如:嵌入式操作系统 等 开发应用软件 22 7.嵌入式系统开发环境和开发过程 建立交叉开发环境是进行嵌入式软件开发的第 一步,主要功能是把在宿主机上编写的高级语言程 序编译成可以在目标机上运行的二进制代码。 目前常用的交叉开发环境主要有开放和商业两种类 型。 开放的交叉开发环境的典型代表是GNU工具链、目 前已经能够支持x86、ARM、MIPS、PowerPC等多种 处理器。 商业的交叉开发环境则主要有Metrowerks CodeWarrior、ARMSoftware Development Toolkit、Embedded Visual C+等。 23 ADS 1.2 ARM公司开发的集成开发环境ADS 1.2,该开发 环境使用了CodeWarrior公司的编译器,可实现 本地和远程调试。 ADS有一系列应用程序及相关文档、范例组成, 主要包括命令行开发工具、GUI开发工具、实用 工具和支持软件。使用它们就可以编写和调试 自己的应用程序了。 24 GNU交叉工具 GNU开发工具包括C编译器GCC、C+编译器G+、汇编 器AS、连接器LD、二进制转换工具、调试工具GDB和 基于不同硬件平台的开发库。 GCC几乎在各种常见的UNIX平台上都可以见到,即 使是Windows32也有GCC的移植。 GDB支持远程调试模式,同时还包含一个ARM指令集 ,能够在PC机上通过软件方式仿真ARM程序的执行。 以上这些工具顺序使用,必须保持前后一致,才能 产生最终需要的二进制文件。 25 1)嵌入式软件的交叉开发环境 交叉开发环境是指用于嵌入式软件开发的 所有工具软件的集合,一般包括: 文本编辑器 交叉编译器 交叉调试器 仿真器 下载器等 交叉开发环境由宿主机和目标机组成,宿 主机与目标机之间在物理连接的基础上建 立起逻辑连接。 26 用于ARM的交叉开发结构图 27交叉开发环境 目标机硬件 目标机应用系统 应用软件 应用中间件 目标机OS 宿主机硬件 宿主机OS 调 试 代 理 运 行 库 宿主机开发环境 编辑 编译 连接 调试 运行平台 Target 开发平台 Host 3)嵌入式软件生成阶段 28 l三个过程 l源代码程序的编 写 l编译成各个目标 模块 l链接成可供下载 调试或固化的目 标程序(映像文 件) 编辑器交叉编 译器 交叉链 接器 源程序 目标模 块 可供调试 /固化 库文件 映像文件是计算机上的一个可执行文件,在执行之 前被加载到计算机存储器中。扩展名常为 *.bin 交叉开发环境的连接 主要分为物理连接和逻辑连接: 物理连接是指宿主机与目标机通过物理线路连接 在一起,连接方式主要有三种: 串行通信口 局部以太网口 OCD(On Chip Debug)方式,如JTAG、BDM等 逻辑连接指宿主机与目标机间按某种通信协议建 立起来的通信连接,目前逐步形成了一些通信协 议的标准。 PS:物理连接是逻辑连接的基础。 29 2)嵌入式软件实现阶段的开发过程 嵌入式软件的开发进入实现阶段,可分为 三个步骤:生成、调试和固化运行。 软件的生成主要是在宿主机上进行,利用各种 工具完成对应用程序的编辑、交叉编译和链接 工作,生成可供调试或固化的目标程序。 调试是通过交叉调试器完成软件的调试工作。 调试完成后还需进行必要的测试工作。 固化运行是先用一定的工具将应用程序固化到 目标机上,然后启动目标机,在没有任何工具 干预的情况下应用程序能自动地启动运行。 31 嵌入式软件的调试 在嵌入式软件开发中,调试-采用的是在宿主机和 目标机之间进行的远程调试(Remote Debug) 。 调试器仍然运行在宿主机的通用操作系统之上, 但被调试的进程却是运行在基于特定硬件平台的 嵌入式系统中。 调试器和被调试进程通过串口或者网络进行通信 。 32 远程调试器的功能 调试器的功能: 可以控制、访问被调试的进程, 读取被调试进程的当前状态,并能够改变被调试进 程的运行状态。 查看和修改目标机上内存单元、寄存器以及被调试 进程中的变量值等各种调试功能。 33 嵌入式软件的固化运行 34 阶段调试环境固化环境 编译目标文件需要调试信息目标文件不需要调试信息 链接 应用系统目标代码不需要Boot模块 ,此模块已由目标板上的监控器程 序实现。 应用系统目标代码必须以Boot模块 作为入口模块。 定位 程序的所有代码段、数据段都依次 被定位到调试空间的RAM中。 程序的各逻辑段按照其不同的属性 分别定位到非易失性存储空间( ROM)或RAM中。 下载 宿主机上的调试器读入被调试文件, 并将其下载到目标机上的调试空间中 ,目标机掉电后所有信息全部丢失。 在宿主机上利用固化工具将可固化的 应用程序写入目标机的非易失性存储 器中,目标机掉电后信息不丢失。 运行 被调试程序在目标监控器的控制下运 行,并与后者共享某些资源,如CPU资 源、RAM资源以及通信设备(如串口、 网口等)资源。 程序在真实的目标硬件环境上运行 嵌入式软件的固化运行 Boot模块:当应用程序在真实的目标环境下 运行时将首先执行该程序。 主要功能:初始化CPU环境,使目标机硬件到 已知的状态 初始化芯片的引脚 初始化系统外部控制寄存器 初始化基本输入输出设备 初始化MMU,包括片选控制寄存器等 执行数据拷贝 35 ARM实验平台与PC机连接关系框图 36 3)交叉编译、交叉调试方法 交叉编译:把在宿主机上编写的高级语言 程序编译成可以运行在目标机上的代码, 即在宿主机上能够编译生成另一种CPU(嵌 入式微处理器)上的二进制程序。 交叉调试器是指调试程序和被调试运行在 不同机器上的调试器,能够通过某种方式 控制目标机上被调试程序的运行方式,并 且通过调试器能查看和修改目标机上的内 存、寄存器以及被调试程序中的变量等。 37 38 交叉调试非交叉调试 调试器和被调试程序运行在不同的计 算机上 调试器和被调试程序运行在同一台计 算机上 可独立运行,无需操作系统支持需要操作系统的支持 被调试程序的装载由调试器完成 被调试程序的装载由专门的Loader程 序完成 需要通过外部通信的方式来控制被调 试程序 不需要通过外部通信的方式来控制被 调试程序 可以直接调试不同指令集的程序只能直接调试相同指令集的程序 嵌入式系统交叉调试的方式 交叉调试的方式执行即调试器控制被调 试程序的运行常通过如下五种方式: 指令集模拟器、ROM Monitor方式、 JTAG调试方式、实时在线仿真器ICE方式和 基于Angel的调试方式。 39 指令集模拟器 指令集模拟器是用来在一台计算机上模拟另一台计 算机上目标程序运行过程的软件工具,也成为软仿 真器。 内部有一个反映目标处理器硬件的数据结构。它以 时序状态机的方式工作,可以根据目标机指令集定 义执行目标指令。 应用场合:没有目标机开发板或者成本太高;被调 试的程序模块不需要在实际开发板上执行;对模块 代码先调试,以加快调试速度。 40 ROM Monitor方式 ROM Monitor是运行在目标机上监控被调试程序运行的 一段程序,与宿主机端的调试器一起完成对应用程序 的调试。 在这种调试方式下,调试环境由宿主机端的调试器、 目标机端的监控程序(ROM Monitor)以及二者间的物 理连接三部分构成。 它要预先被固化到目标机的ROM中,在目标机复位后首 先被执行来完成对目标机进行一些必要的初始化,然 后等待宿主机的命令。 41 ROM Monitor 在目标机上电或复位后首先执行的就是ROM Monitor,它对目标机进行一些必要的初始 化: 初始化要求的外围设备,如最基本的串 口和用于内存刷新的系统计时器芯片; 初始化用于下载映像的内存系统; 初始化中断控制器和安装中断处理程序 。 初始化自己的程序空间 42 ROM Monitor的功能 ROM Monitor能配合调试器完成: 程序映像下载 对目标机系统内存的读写 对寄存器的读写 设置和清除不同类型的断点 单步执行指令 复位系统等调试功能 43 ROM Monitor方式特点 这种方式的最大优点是简单方便、成本低廉。它还 可以支持许多高级的调试功能,可扩展性强,基本 不需要专门的调试硬件支持,几乎所有的交叉调试 器(ADS、GDB)都支持这种方式。 缺点: ROM Monitor要占用目标机一定的资源,如 CPU、RAM和串口或网卡等通信资源;应用程序的最 终运行环境和调试环境有一定的差异;不便于调试 有时间特性的程序,实时性较差。 44 ROM Monitor调试方式 45 调试器 Windows或其它桌 面操作系统 PC机等硬件 嵌入式 硬件 监控程 序(ROM Monitor) 被调试 程序 宿主机目标机 逻辑上的连接 物理上的连接 JTAG调试方式 嵌入式系统的开发中,最常使用的一种调试方法。 JTAG可以实现的功能有:读取/修改地址空间任意值 ;设置断点位置;通过内置于CPU内的ATP接口实现 CPU寄存器读取/修改,控制CPU运行/停止;下载程序 写入Flash芯片等。 主要优点:不占用目标机的资源,调试环境和最终的 程序运行环境基本一致,支持硬件断点,跟踪、精确 计量程序的执行时间,具有时序分析等。 主要缺点:调试的实时性不如ICE方式强,不支持非 干扰调试查询,CPU必须支持JTAG功能。 46 47 JTAGJTAG下载器(连接器)下载器(连接器) ARM JTAG EmulatorARM JTAG Emulator仿真器仿真器( (也称调试器)也称调试器) 48 ARM JTAG ARM JTAG 仿真器的功能仿真器的功能 支持程序下载及实时调试:支持实时硬件断点;可通过支持程序下载及实时调试:支持实时硬件断点;可通过JTAGJTAG 修改寄存器、存储器内容。修改寄存器、存储器内容。 JTAGJTAG接口:支持接口:支持1414针或针或2020针针JTAGJTAG接头。接头。 支持支持EPPEPP增强型并口:下载速度可达增强型并口:下载速度可达130KB/s130KB/s。 JTAGJTAG时钟速率可调:最大可达时钟速率可调:最大可达10MHz10MHz;支持所有符合;支持所有符合RDI1.50RDI1.50 或或RDI1.51RDI1.51规范的调试工具软件:规范的调试工具软件:ADSADS 支持多种操作系统:支持多种操作系统:Microsoft Windows Microsoft Windows 95/98/NT/2000/Me/XP X86 Red Hat 95/98/NT/2000/Me/XP X86 Red Hat Linux 6.2/7.1/7.2 Linux 6.2/7.1/7.2 独立的直流独立的直流5V5V供电:不会影响目标板供电系统;兼容不同电供电:不会影响目标板供电系统;兼容不同电 压的目标板。压的目标板。 支持通过网络连接使用;支持多内核系统。支持通过网络连接使用;支持多内核系统。 49 实时在线仿真系统ICE ICE(In Circuit Emulator)是一种用于替代目标机 上的CPU设备,主要应用在硬件的实时开发调试中。 ICE上的CPU是一种特殊的CPU,它可以执行目标机CPU 的指令,能够将内部的信号输出到被控制的目标机 。ICE上的内存也可以被映射到用户的程序空间,这 样即使在目标机不存在的情况下,也可以进行代码 的调试。 ICE可以完成一些特殊调试功能,如同时支持软件断 点和硬件断点的设置;实时跟踪目标程序的运行, 并可实现选择性的跟踪等。 ICE的主要缺点是售价较贵。 50 51 实时在线仿真器 52 Angel调试的方法 Angel是一组运行在目标机上的程序,可以接受主机上调试器发 送的命令。功能如下: 支持Angel调试协议ADP(Angel Debug Protocol),从而实现 PC主机与目标机的串行或并行通信,也支持与目标板的网卡 通信。 支持目标机中应用程序可使用主机PC上的标准C函数库。 具有多任务调度和处理器模式管理功能。能分配任务优先级 并对任务进行管理,也可根据操作需要在不同处理器模式中 运行。 具有中断功能。能实现调试、通信和管理等操作的要求。支 持软中断SWI指令。 4)嵌入式软件的测试 测试工具:能够用来辅助测试的工具,主要用来支 持测试人员的工作,本身不能直接用来进行测试。 测试工具一般都是通用工具,测试人员应该根据实 际情况对它们进行适当的调整。 嵌入式软件测试中经常用到的测试工具有: 内存分析工具 性能分析工具 覆盖分析工具 缺陷跟踪工具等 53 内存分析工具 嵌入式系统的内存资源通常是受限的,内存分析工具 可以用来处理在进行动态内存分配时产生的缺陷。使 用内存分析工具可以很好地检测出这类缺陷。 目前常用的内存分析工具有软件和硬件两种: 基于软件的内存分析工具可能会对代码的执行性能 带来很大影响,从而影响系统的实时性; 基于硬件的内存分析工具对系统性能影响小,但价 格昂贵,并且只能在特定的环境中使用。 54 性能分析工具 嵌入式系统的性能通常是一个非常关键的因素,开 发人员一般需要对系统的某些关键代码进行优化来 改进性能。 性能分析工具的功能: 可以提供有关数据,帮助确定哪些任务消耗了 过多的执行时间,从而可以决定如何优化软件, 以获得更好的时间性能。 引导开发人员发现在系统调用中存在的错误以 及程序结构上的缺陷。 55 软件测试的两种方法:白盒测试 : 白盒测试是基于代码的测试,检查程序的内部设计 。把100%的代码都测试一遍是不可能的,所以要选 择最重要的代码进行白盒测试。 一般在目标硬件上进行。通过硬件仿真进行,所以 选取的测试工具应该支持在宿主环境中进行。这种 方法一般是开发方的内部测试方法。 软件的测试需以其用途作为重要依据,根据实际中 对负载、定时、性能的要求,判断软件是否满足这 些需求规范。 56 软件测试的两种方法:黑盒设计 黑盒设计在某些情况下也称为功能测试。不依赖于 代码,而是从使用的角度进行测试。 黑盒只能限制在需求的范围内进行。第三方采用的 方法,进行验证和确认测试。 嵌入式软件的测试工具 (1)内存分析工具 (2)性能分析工具 (3)GUI(图形界面)测试工具 (4)覆盖分析工具。 57 8. 嵌入式系统设计人员的3个层次 第1层次以CAD软件和ICE为主要工具的设计方法。 第2层次以EDA工具软件和EOS为开发平台的设计方法 。 第3层次以IP内核库为设计基础,用软硬件协同设计 技术的设计方法。 这3个层次各有各的应用范围。初级应用设计 人员会以第1种方法为主;富有经验的设计人员会以 第2种方法为主;很专业的设计人员会用第3种方法 进行简单单片系统的设计和应用。 58 9、嵌入式系统开发经验 掌握嵌入式系统的应用开发需要一个过程。 需要掌握数字电路和模拟电路方面的知识、 单片机原理、硬件结构、扩展接口和编程语 言。 硬件设计方面的积累;软件设计方面的积累 ;设计经验方面的积累。 硬件开发是嵌入式系统开发的基础,软件的 开发是建立在硬件之上,软、硬件结合设计 是项目开发质量保证的关键。 59 4.1.2 嵌入式系统设计的层次和设计架构 1) 嵌入式系统设计的层次和设计原则 层次分为系统级和应用级 设计原则具体分为: 复用原则; 模块化原则; 标准化原则(地址总线;数据总线;控制总线 ) 电源、网络标号的使用 网络标号的使用反 映用途,例如:RXD,TXD等; 60 2)嵌入式系统硬件系统的设计架构 包含三部分: (1)、微处理器的选型、时钟及复位电路的设计 (2)、存储系统ROM/RAM的设计 (3)、系统外围设备接口电路的设计 其中系统外围设备接口硬件部分包括有通用接 口设计、人机交互接口设计和网络接口设计。 61 4.2 微处理器系统的硬件设计 在现阶段,嵌入式系统设计仍处于一种手工阶段 。微处理器系统的硬件一般包括有微处理器、时 钟电路、复位电路和电源管理等几部分。 微处理器是根据不同应用的场合来进行选型。 时钟管理为各个外围模块提供时钟。在不使用某 个单元时刻关闭其时钟以降低功耗。这些时钟均 来自核内部的可控频率的时钟源PLL。 复位电路一般有硬件复位(RESET引脚)、 Watchdog软件复位等方式。 62 电源管理控制 电源管理控制处理器的几种不同耗电的工作方式: (1)运行方式:属正常工作方式,允许所有电源和允 许的时钟。在复位可进入运行方式。 (2)空闲方式 :允许用户停止CPU核时钟,但仍继续 监视片内和外中断服务请求。这时系统单元模块(中 断控制器、LCD控制器、时钟和电源管理器等)及存 储器仍处于运行状态 (3)睡眠方式:内核可无电源,仅电源管理器继续工 作。仅唤醒信号和复位信号等才能触发处理器。 (4)快速方式(PXA250)或低速方式(S3C2410)部分 机器带有允许处理机核在短时间内高速/低速运行。 63 4.2.1 微处理器芯片选型的一般原则 (1)ARM内核 功能上的选择,如果希望使用 WinCE或Linux等操作系统以减少软件开发时间, 就需要选择ARM7T以上带有MMU功能的ARM芯片。 (2)系统时钟控制器 系统时钟决定了ARM芯片 的处理速度: ARM7芯片系统时钟为20MHZ133MHZ, ARM9的系统时钟为100MHZ233MHZ, ARM10最高可以达到700MHZ。 64 ARM微处理器芯片选型的一般原则 (3)扩展资源的选择,包括: 内存储器容量、USB接口、GPIO(引脚)数 量、IIS(集成音频接口)、LCD控制器 、PWM输出、ADC和DAC、UART和IrDA、 DSP、内置FPGA、DMA控制器等。 65 4.2.2 多路时钟电路的设计 时钟发生器为处理器提供时钟信号。它可以是独 立的芯片(80186处理器),也可以集成在处理 其内部(嵌入式处理器)。 一般芯片功耗与使用时钟频率成平方关系。 主要功能: 维持日历时间; 任务有限等待的计时; 软定时器的定时管理; 维持系统时间片轮转调度。 66 1、硬件时钟设备 大多数嵌入式系统有两种时钟源:实时时钟(real time clock,RTC);定时器/计数器。 实时时钟: 一般靠电池供电,即使系统断电,也可以维持日期和时 间。 实时时钟独立于操作系统,所以也被称为硬件时钟,为 整个系统提供一个计时标准。 定时器/计数器: 实时内核需要一个定时器作为系统时钟(或称OS时钟) ,并由实时内核控制系统时钟工作。 一般情况下,系统时钟的最小粒度是由应用和操作系统 的特点决定的。 67 例1:S3C44B0X微处理器的RTC 在系统没有上电的情况下,可由后备电池供电; 时钟包含秒、分、小时、日、月和年等内容;包括 一个闰年产生器; 使用一个外部的32.768KHz晶振; 提供告警中断或是从掉电模式中唤醒的告警功能: ; 能够为实时内核的系统时钟提供毫秒级的时间中断 ; 68 例2:S3C2410的RTC结构 S3C2410的RTC与S3C44B0X基本相似,主要有5部分构成 :时钟发生器、节拍发生器、时间与日期计数器(时 分秒年月日星期)、报警发生器、控制逻辑等部分。 如下图所示。 69 XTAL1 XTAL2 节拍发生器 时钟发生器 时分秒计数器 年 月 计 数 器 闰 年 发 生 器 日星期计数器 控 制 逻 辑 时 钟 分 频 器 报警发生器 RTCVDD PMWKUP ALMINT PWDN (1)S3C2410 RTC的振荡电路 S3C2410 RTC的只需外接2个20P左右的小电容、32.768KHz 的晶振即可。如下图所示。 70 S3C2410的RTC有17个专用寄存器,均需用字节读写。下 表为前10个,有4个为控制寄存器,6个为报警寄存器。 71 (2)RTC专用寄存器 (2)RTC专用寄存器 S3C2410的RTC有17个专用寄存器,均需 用字节读写。下表为4个控制寄存器。 72 73 本表6个寄存器:为报警日期、时间寄存器 Register Address R/W Description Reset Value ALMSEC0x57000054/7 R/W 报警秒数寄存器0x00 ALMMIN0x57000058/B R/W 报警分钟数寄存器0x00 ALMHOUR 0x5700005C/F R/W报警小时数寄存器0x00 ALMDAY0x57000060/3 R/W 报警天(日)数寄存器0x01 ALMMON0x57000064/7 R/W 报警月数寄存器0x01 ALMYEAR0x57000068/B R/W报警年数寄存器0x00 后7个寄存器: 为日期、时间寄存器。 74 3、 多路时钟电路的设计 在嵌入式处理器上通常使用频率较低的基准时钟源 ,然后通过锁相倍频电路进行分频器进行分频,获 得多时钟源来提供给系统使用。 PS:在8位单片机中时钟电路产生的频率可直接作为单片机的 主频工作。 多路时钟方式一般用于32位及以上处理器中不同的 功能部件电路使用不同频率的时钟频率工作。主要 是通过主时钟分频或倍频来形成的。有的系统是采 用两套或以上石英晶振来实现。 75 多路时钟电路的原因 出于节能设计的考虑,不同的I/O接口等智能 部件的工作状态可以由处理器的编程控制。 处理器内部设计了多种时钟源,分别为处理 器内核、实时时钟电路、I/O部件提供不同的 时钟信号。 例如,使用MC68EZ328的锁相时钟电路可以形成四种时 钟输出: 其一是CLK32,即32khz的时钟源,送给实时时钟,完成 嵌入式处理器的日历功能、低速接口。 其二是LCDCLK,液晶控制器的时钟。 其三是DMACLK,DMA控制器的时钟。 最后是SYSCLK,系统主时钟。 76 日历时钟电路的设计 日历时钟32.768KHz,可以通过两种方式实现。 其一是通过对主时钟进行分频方式来实现, 其二是由外部32.768KHz晶体振荡器直接产生 32.768KHz 日历时钟信号。 处理器的日历时钟一直工作,即使系统进入省电 状态的时候也同样工作。 集成在处理器内部,系统不需要外接日历时钟芯 片和相关的电路。 77 4)时钟源选择 S3C2410的时钟可以选用晶振(XTAL),也可以使用外 部时钟(EXTCLK),由系统复位时,在复位信号上 升沿对引脚OM3、OM2所测的状态来确定。其对应关 系如下表所示。 78 时钟和电源管理功能 通过两个锁相环MPLL、UPLL产生系统所需要 的不同频率的时钟。 提供四种时钟: 为CPU产生FCLK时钟 为高速总线AHB产生HCLK时钟 使用HCLK的设备:中断控制器、存储器 管理器、DMA控制器、LCD控制器、FLASH控 制器、USB Host(不用PLL时)、总线控制 器、片外设备。 79 为外设总线APB产生PCLK时钟 使用PCLK的设备: 117个通用I/O口 GPIO、ADC、5个定时器与4个PWM、3个UART 、2个SPI、IIC、USB Device (不用PLL时 )、RTC、WDT、SD卡接口、IIS接口(Host and Device)。 为USB (Host and Device)产生UCLK时 钟(48MHz)。 80 电路结构 主要由5部分组成:时钟源、MPLL、UPLL、时钟控制 器、电源控制器等。 81 晶振、 外部时钟 MPLLCLK HCLK PCLK FCLKUCLK 晶振电路和外部时钟 82 4、S3C2410X定时器 1)组成 5个16位定时器;2个8位预分频器和2个4位分频器;可 编程PWM输出占空比;具有初值自动重装连续输出模式和单 脉冲输出模式;具有死区生成器。在这段时间间隔内,禁止 两个开关同时处于开启状态。 S3C2410有5个16位的定时器,定时器03具有PWM(脉 宽调制)功能。定时器4是一个内部定时器,没有输出引脚 ,供内部使用。定时器0有死区产生器,通常用于大电流设 备控制。 有2个8位预分频器和2个4位分频器。定时器0 和定时器 1 分享同一个8 位的预分频器和分频器,定时器2、3、4 分 享另一个预分频器和分频器,分频器有1/2、1/4、1/8、 1/16这4种分频值。定时器从分频器接收自己的时钟信号, 时钟分频器从相应的预分频器接收时钟信号。 83 2) PWM(脉宽调制)概念 PWM(脉宽调制):就是只对一方波序列信号的占空比 按照要求进行调制,而不改变方波信号的其它参数, 即不改变幅度和周期,其产生和传输,都是数字式的 。 用脉宽调制技术可以实现模拟信号:如果调制信号的 频率远远大于信号接受者的分辨率,则接收者获得的 是信号的平均效果,不能感知数字信号的0和1,其信 号大小的平均值与信号的占空比有关,信号的占空比 越大,平均信号越强,其平均值与占空比成正比。只 要带宽足够(频率足够高或周期足够短),任何模拟 信号都可以使用PWM 来实现。 3)定时器结构图 85 预分频器 8位 分频器 1/2 1/4 1/8 1/16 TCLK0/1 计数器 观 察 寄 存 器 比较寄存器 PCLK 五 选 一 开 关 初 值 寄 存 器 控 制 逻 辑 TOUT 中断 4)工作原理 定时器工作过程 装入初值、启动计数,计数结束产生中断请求,并且可以 重装初值连续计数。如下图所示。 86 初值自动重装、手动装载和双缓冲 初值自动重装功能: 5个定时器都具有此功能。当计 数器中值减到0后,若设置了自动重装功能,则在下 一计数周期开始前将初值装入计数器重新计数。 初值手动装载功能:在启动计数前,必须使用 手动装载功能将初值装入计数器,而初值自动重装 仅是一次计数结束后重新装入初值。 双缓冲功能:如果定时器正在工作,此时写入 新的数据到TCNTBn、或者到TCMPBn,该写入的数据 不影响本次定时器的操作。当定时器到达0后下一次 运行定时器时,新写入的TCNTBn、或者TCMPBn才生 效。 87 4)定时器专用寄存器 共有6种、17个寄存器 88 TCNTBn-Timern计数初值寄存器(计数缓冲寄存器),16位 TCMPBn-Timern比较寄存器(比较缓冲寄存器),16位 TCNTOn-Timern计数读出寄存器,16位 (1)TCFG0-预分频器配置寄存器 Dead zone length-死区宽度设置位 其值N为: 0255,以timer0的定时时间为单位 死区宽度为:(N+1)timer0的定时时间 Prescaler1-timer2、3、4的预分频值 其值N为: 0255 输出频率为:PCLK (N+1) Prescaler0- timer0、1的预分频值 其值N为: 0255 输出频率为:PCLK (N+1) 89 3124 2316 158 70 保留(为0)Dead zone length Prescaler1Prescaler0 DMA mode-DMA通道选择设置位 0000:不使用DMA方式,所有通道都用中断方式 0001:选择timer00010:选择timer1 0011:选择timer20100:选择timer3 0101:选择timer4011X:保留 MUX4 MUX0-timer4timer0分频值选择0000: 1/20001:1/40010:1/8 0011:1/16 01XX:选择外部TCLK0、1(对timer0、1是选TCLK0, 对timer4、3、2是选TCLK1) 90 (2)TCFG1-DMA模式与分频选择寄存器 (3)TCON-定时器控制寄存器 TL4TL0-计数初值自动重装控制位 0:单次计数 1:计数器值减到0时,自动重新装入初值 连续计数。 TUP4TUP0-计数初值手动装载控制位。 0:不操作1:立即将TCNTBn中的计数初值装载到计 数寄存器TCNTn中。 说明:如果没有执行手动装载初值,则计数器启动时无初值。 91 121110987543210 TR2TL1 TO1 TUP1 TR1 保留 DZE TL0 TO0 TUP0 TR0 3123 22212019181716151413 保留TL4 TUP4 TR4 TL3 TO3 TUP3 TR3 TL2 TO2 TUP2 TCON-定时器控制寄存器(续) TR4TR0-TIMER4TIMER0运行控制位 0:停止1:启动对应的TIMER TO3TO0- TIMER4TIMER0输出控制位 0:正相输出1:反相输出 DZE-TIMER0死区操作控制位 0:禁止死区操作1:使能死区操作 92 121110987543210 TR2TL1 TO1 TUP1 TR1 保留 DZE TL0 TO0 TUP0 TR0 3123 22212019181716151413 保留TL4 TUP4 TR4 TL3 TO3 TUP3 TR3 TL2 TO2 TUP2 4)定时器的使用 (1)定时器初始化方法 写TCFG0,设置计数时钟的预分频值和Timer0死区宽度; 写TCFG1,选择各个定时器的分频值和DMA、中断服务; 对TCNTBn和TCMPBn分别写入计数初值和比较初值; 写TCON,设置计数初值自动重装、手动装载初值、设置反 相输出; 再写TCON,清除手动装载初值位、设置正相输出、启动计 数。 2、定时器停止运行方法 写TCON,禁止计数初值自动重装。(一般不使用运行控制 位停止运行) 93 5) 看门狗定时器功能及应用开发 当受到故障例如噪声或系统错误的干扰时,S3C2410 看门 狗定时器能够继续控制器的操作,它可用作一个普通的16 位定时器去请求中断服务。并可以在每128MCLK后产生一个 长达为128 MCLK时钟周期的复位信号。看门狗定时器框图 入下: 94 看门狗定时器特殊功能寄存器 看门狗定时器控制寄存器(WTCON) 95 96 4.2.3 系统复位电路的设计 系统复位电路的设计也是设计中一个必要 的环节。 比如在 微处理器S3C44B0X中,首先把外部 复位信号也作为一个中断来处理。在系统 复位的时候,程序(PC)指针被设置成0, 使程序跳转到0x00000000开始运行。此空 间对应的是Bank0,系统的1MB的线性Flash 和处理器的Bank0相连接。 97 系统复位电路图 98 系统复位后初始化内容 建立中断向量表(vector table) 始终在 0 地址处开始。 初始化存储器系统 Memory access interface: type, timing, etc. 初始化堆栈 为指定的模式分别设置 SP,注意模式改变次序 初始化有特殊要求的端口、设备 初始化应用程序执行环境,全局变量区,动态存储 器分配区 改变处理器模式,包括中断使能控制 呼叫应用程序,跳转至主函数入口 99 嵌入式系统中各个单元的电压范围有如下几种: 1.35V(部分微处理器);3.3V(外部接口芯片) 5.0V、 12V(外部设备) 操作系统是通过电源管理器来进行系统的电源管理 ,提高整个系统的电源效率,并为每一个外围设备 模块提供电源管理。 通过电源管理不仅可以减少目标设备上的电源损耗 ,而且可以在系统重启、运行、空闲和挂起的电源 状态下保存RAM 中的文件系统。 100 4.2.4 电源管理器 4.3 存储系统的分析与设计4.3.1 存储系统设计的原理与特点 基于嵌入式微处理器/控制器的专用嵌入式系统而言 ,它们的存储器系统与通用计算机系统的设计方法 有所不同。 主要体现在以下几个方面: (1)嵌入式系统由于体积的限制,尽量使用存储密度 比较大的存储芯片。 (2)嵌入式系统由于功耗的限制,在设计嵌入式系 统的存储系统时需要考虑功耗问题。 101 (3)出于成本考虑,大多数嵌入式系统的存储器容量 与软件的大小相匹配。 (4)如果嵌入式处理器中没有存储器,就进行扩充, 通常需要扩充ROM子系统用于存储程序,RAM子系 统用于存储中间数据,FlachROM子系统也可用于 存储配置数据和常数。 (5)嵌入式系统的存储子系统通常设置成模块结构, 包括ROM子系统、RAM子系统,每个子系统占用一 定的存储空间。 嵌入式系统的存储器通常与系统主板设计在一起的 .原因是:一方面嵌入式系统的内存通常是固定大 小的;另一方面一体系结构可以提高系统的可靠 性。 102 4.3.2 存储系统的组成结构 ARM架构处理器的存储器寻址空间最大 为4GB。 ARM架构处理器还允许外接U盘、SD等存 储卡,用来扩大存储空间。 103 ARM存储结构 104 多级存储器系统 CPU 寄存器组 片上RAM 片上Cache 主存储器 辅存 寄存器组 访问时间约为几个ns。 片上RAM 与片外RAM比速度快、功耗小、 容量小。读写时间约为几个ns。 片上Cache 832KB,访问时间约为十几个ns。 主存储器 一般为几兆字节1GB 的动态存 储器,访问时间约 50ns。 ROM 存储器简介 FlashROM存储器是非易失性存储器。FlashROM存储 器可在线进行电写入、电擦除,并且掉电后信息不丢 失的ROM存储器。具有低功耗、大容量、擦写快、可整 片或分扇区在系统编程、擦除等特点。 FlashROM可由内部嵌入的算法完成对芯片的操作, 因而在各种嵌入式系统中得到了广泛的应用,通常用 于存放程序代码、常量表,以及一些在系统掉电后需 要保存的用户数据等。 常用的FlashROM为8位或16位数据宽度,编程电压 为3.3V。 105 (2)ROM 存储器简介 传统上,ROM是只能让处理器读取的存 储器,而且即使在没有电源的情况下也能保 持所存储的数据位。 RAM是指处理器可读写的存储器,但在 电源消失后其所存储的数据位也会丢失。 目前有些微处理器不但可以在线读取也 可以在线写入高级的ROM,如FlashROM,但 这种写入比写入RAM要慢一些。 106 (3)ROM 存储器简介 FlashROM在20世纪80年代末期出现。虽然 FlashROM存储器也使用EEPROM的浮栅原理,但 FlashROM存储器可以每次擦除存储器的一块区域, 每个块区域通常有几千个字节。这种快速擦除能力 ,可以大幅度提高那些需要将大量数据存储在非易 失性存储器的嵌入式系统的性能,例如数码相机、 机顶盒、移动电话以及医疗监护设备。 FlashROM媒质存储器的构成主要采用两种技术 ,NAND结构(非线性存储器)和NOR结构(线性存储 器)。 107 非线性FlashROM( NAND) NAND型FlashROM自身是没有存储控制器的,其结 构可看作是由许多的小区块组成的,每块都能存储 一定数量信息,类似于硬盘的族。NAND型Flash的读 写也是以块和页为单位来进行,使用8bit I/O端口 存储数据。 NAND型Flash容量大、成本低、可以达到比较高 的速度,所以应用较为广泛,不过它也有些比较明 显的缺点。NAND型Flash的基本工作方式是按顺序串 行读取,一个区块写入或读出结束再进行下一个操 作,采用的是串行方式工作。 108 非线性FlashROM( NAND) 比如,区块上已有信息,就一定要先擦 除,再写入。另一个问题就是NAND型Flash需 要一定的存储空间来存放目录等信息来管理 所有的资料,进行任何操作都要使用这一部 分,大部分闪盘的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 丰宁满族自治县同鑫铁矿有限公司王营铁矿矿山地质环境保护与土地复垦方案专家评审意见
- 武义县白姆乡谢坑萤石矿矿山地质环境保护与土地复垦方案(修编)专家评审意见
- 宁夏王洼煤业有限公司银洞沟煤矿矿山地质环境保护与土地复垦方案评审表及专家意见
- 《西南能矿集团股份有限公司贵州省六枝特区平桥矿区萤石矿(新建)矿产资源绿色开发利用方案(三合一)》专家组评审意见
- 空中餐厅与特色美食体验行业深度调研及发展项目商业计划书
- 建筑设计中的声学技术应用
- 2025年公交客车项目评估报告
- 情感营销如何用情感打动消费者
- 工业设计成果转化中的跨界合作与资源整合
- 2025年中国冻鸡行业市场深度评估及投资战略规划报告
- 内科学《肺结核》课件
- (完整版)传热学期末考试试题
- Python数据分析与数据挖掘 课件 第6、7章 Pandas基础与应用、Matplotlib
- 玻璃体手术并发症的预防及处理
- 2023年医学高级职称-中医肛肠(医学高级)考试历年高频考点试题含答案
- 爬架拆除技术交底
- pergeos软件教程评价许可介绍
- 密封条范文模板(A4打印版)
- 出租车 专业部分考核试题 城市客运企业主要负责人和安全生产管理人员安全考核基础题库
- GB/T 9634.3-2002铁氧体磁心表面缺陷极限导则第3部分:ETD和E形磁心
- GB/T 8478-2008铝合金门窗
评论
0/150
提交评论