1 / 53

第 4 章 基于 ARM 的硬件结构设计

第 4 章 基于 ARM 的硬件结构设计. 大连理工大学 丁男. 章节介绍. 4.1 概述 4.1.1 嵌入式系统的设计步骤 4.1.2 设计层次和设计架构 4.2 微处理器系统的硬件设计 4.2.1 微处理器芯片选型的一般原则 4.2.2 多路时钟电路的设计 4.2.3 系统复位电路的设计 4.2.4 电源管理 4.3 存储系统的设计 4.3.1 存储系统设计的原理与特点 4.3.2 存储系统的组成结构. 4.1.1 嵌入式系统的设计原则和步骤.

shanta
Download Presentation

第 4 章 基于 ARM 的硬件结构设计

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第4章 基于ARM的硬件结构设计 大连理工大学 丁男

  2. 章节介绍 4.1概述 4.1.1 嵌入式系统的设计步骤 4.1.2 设计层次和设计架构 4.2 微处理器系统的硬件设计 4.2.1 微处理器芯片选型的一般原则 4.2.2 多路时钟电路的设计 4.2.3 系统复位电路的设计 4.2.4 电源管理 4.3 存储系统的设计 4.3.1 存储系统设计的原理与特点 4.3.2 存储系统的组成结构

  3. 4.1.1 嵌入式系统的设计原则和步骤 嵌入式系统设计的重要特点是技术多样化,即实现同一个 嵌入式系统可以有许多不同的设计方案选择,而不同的设计方 案就意味使用不同的设计和生产技术。 嵌入式系统设计一般步骤: 1)需求分析 2)体系结构设计 3)硬件/软件设计 4)系统集成和系统测试 注意:各个阶段之间往往要求不断的反复和修改,直至完成最终设计目标。

  4. 嵌入式系统设计过程

  5. 嵌入式系统设计过程

  6. 1、需求分析阶段包括 • 分析用户的需求 • 确定硬件软件 • 检查需求分析的结果 • 确定项目的约束条件 • 概要设计

  7. 2、体系结构设计 • 设计目的—描述系统的功能如何实现。 • 决定因素— ①系统是硬实时系统还是软实时系统; ②操作系统是否需要嵌入; ③物理系统的成本、尺寸和耗电量是否是产品成功的关键因素; ④选择处理器和相关硬件; ⑤其他。

  8. 3、硬件/软件设计 (1)设计目的:决定哪些用硬件实现,哪些用软件实现。 (2)硬件设计: ①设计硬件子系统(top-down方法)分成模块;设计框图。 ②定义硬件接口 (3)软件设计 • 设计软件子系统:软件总体设计、模块设计。 • 定义软件接口:模块接口、函数接口。 (4)检查设计

  9. 4、系统集成与测试 • 系统集成 把系统的软件、硬件和执行装置集成在一起,进行调试,发现并改进设计过程中的错误。 • 系统测试 对设计好的系统进行测试,看其是否满足给定的要求。

  10. 5、嵌入式操作系统选型原则 当进行设计信息电器、数字医疗设备等嵌入式产品时,嵌入式操作系统的选择至关重要。 一般而言,在选择嵌入式操作系统时,可以遵循以下原则: 就是“做加法还是做减法”的问题

  11. 6、嵌入式软件开发工具 “工欲善其事,必先利其器” 嵌入式软件开发工具的集成度和可用性将直接关系到嵌 入式系统的开发效率。 ARM的开发工具包括有编译器、、汇编器、连接器、调试 器、操作系统、函数库、评估板、JTAG调试器、在线仿真器等。 根据不同的阶段,嵌入式软件开发工具可以分为: • 需求分析工具(Requirement Analysis Tools) • 软件设计工具(Software Design Tools) • 编码、调试工具(Coding Tools) • 测试工具(Testing Tools) • 配置管理工具、维护工具等

  12. 7、嵌入式系统开发环境和开发过程 建立交叉开发环境是进行嵌入式软件开发的第一步,主要功能是把在宿主机上编写的高级语言程序编译成可以在目标机上运行的二进制代码。 目前常用的交叉开发环境主要有开放和商业两种类型。 • 开放的交叉开发环境的典型代表是GNU工具链、目前已经能够支持x86、ARM、MIPS、PowerPC等多种处理器。 • 商业的交叉开发环境则主要有Metrowerks CodeWarrior、ARMSoftware Development Toolkit、Embedded Visual C++等。

  13. 1)嵌入式软件的交叉开发环境 • 交叉开发环境是指用于嵌入式软件开发的所有工具软件的集合,一般包括: • 文本编辑器 • 交叉编译器 • 交叉调试器 • 仿真器 • 下载器等 • 交叉开发环境由宿主机和目标机组成,宿主机与目标机之间在物理连接的基础上建立起逻辑连接。

  14. 运行平台 开发平台 Target Host 宿主机开发环境 目标机应用系统 —编辑 调 —应用软件 运 试 —编译 行 —应用中间件 代 —连接 库 —目标机 理 —调试 目标机硬件 宿主机 OS 宿主机硬件 用于ARM的交叉开发结构图 交叉开发环境

  15. 2)嵌入式软件生成阶段 库文件 三个过程 • 源代码程序的编写 • 编译成各个目标模块 • 链接成可供下载调试或固化的目标程序(映像文件) 源程序 目标模块 可供调试/固化 编辑器 交叉编译器 交叉链接器 映像文件是计算机上的一个可执行文件,在执行之前被加载到计算机存储器中。扩展名常为 *.bin

  16. 3)嵌入式软件实现阶段的开发过程 • 嵌入式软件的开发进入实现阶段,可分为三个步骤:生成、调试和固化运行。 • 软件的生成主要是在宿主机上进行,利用各种工具完成对应用程序的编辑、交叉编译和链接工作,生成可供调试或固化的目标程序。 • 调试是通过交叉调试器完成软件的调试工作。调试完成后还需进行必要的测试工作。 • 固化运行是先用一定的工具将应用程序固化到目标机上,然后启动目标机,在没有任何工具干预的情况下应用程序能自动地启动运行。

  17. 嵌入式软件的调试 • 在嵌入式软件开发中,调试--采用的是在宿主机和目标机之间进行的远程调试(Remote Debug) 。 • 调试器仍然运行在宿主机的通用操作系统之上,但被调试的进程却是运行在基于特定硬件平台的嵌入式系统中。 • 调试器和被调试进程通过串口或者网络进行通信。

  18. 远程调试器的功能 调试器的功能: • 可以控制、访问被调试的进程, • 读取被调试进程的当前状态,并能够改变被调试进程的运行状态。 • 查看和修改目标机上内存单元、寄存器以及被调试进程中的变量值等各种调试功能。

  19. 阶段 调试环境 固化环境 编译 目标文件需要调试信息 目标文件不需要调试信息 链接 应用系统目标代码不需要Boot模块,此模块已由目标板上的监控器程序实现。 应用系统目标代码必须以Boot模块作为入口模块。 定位 程序的所有代码段、数据段都依次被定位到调试空间的RAM中。 程序的各逻辑段按照其不同的属性分别定位到非易失性存储空间(ROM)或RAM中。 下载 宿主机上的调试器读入被调试文件,并将其下载到目标机上的调试空间中,目标机掉电后所有信息全部丢失。 在宿主机上利用固化工具将可固化的应用程序写入目标机的非易失性存储器中,目标机掉电后信息不丢失。 运行 被调试程序在目标监控器的控制下运行,并与后者共享某些资源,如CPU资源、RAM资源以及通信设备(如串口、网口等)资源。 程序在真实的目标硬件环境上运行 嵌入式软件的固化运行

  20. ARM实验平台与PC机连接关系框图

  21. 4)交叉编译、交叉调试方法 • 交叉编译:把在宿主机上编写的高级语言程序编译成可以运行在目标机上的代码,即在宿主机上能够编译生成另一种CPU(嵌入式微处理器)上的二进制程序。 • 交叉调试器是指调试程序和被调试运行在不同机器上的调试器,能够通过某种方式控制目标机上被调试程序的运行方式。

  22. 调试器 Windows或其它桌面操作系统 PC机等硬件 被调试程序 监控程序(ROM Monitor) 嵌入式 硬件 ROM Monitor调试方式 宿主机 目标机 逻辑上的连接 物理上的连接

  23. JTAG调试方式 • 嵌入式系统的开发中,最常使用的一种调试方法。 • JTAG可以实现的功能有:读取/修改地址空间任意值;设置断点位置;通过内置于CPU内的ATP接口实现CPU寄存器读取/修改,控制CPU运行/停止;下载程序写入Flash芯片等。 • 优点:不占用目标机的资源,调试环境和最终的程序运行环境基本一致,支持硬件断点,具有时序分析等。 • 缺点:调试的实时性不 如ICE方式强,不支持非干 扰调试查询,CPU必须支持 JTAG功能。 JTAG下载器(连接器)

  24. ARM JTAG Emulator仿真器(也称调试器)

  25. 实时在线仿真系统ICE • ICE(In Circuit Emulator)是一种用于替代目标机上的CPU设备,主要应用在硬件的实时开发调试中。 • ICE上的CPU是一种特殊的CPU,它可以执行目标机CPU的指令,能够将内部的信号输出到被控制的目标机。 • ICE可以完成一些特殊调试功能,如同时支持软件断点和硬件断点的设置;实时跟踪目标程序的运行,并可实现选择性的跟踪等。 • ICE的主要缺点是售价较贵。

  26. 实时在线仿真器

  27. 5)嵌入式软件的测试 • 测试工具:能够用来辅助测试的工具,主要用来支持测试人员的工作,本身不能直接用来进行测试。测试工具一般都是通用工具,测试人员应根据实际情况对它们进行适当调整。 • 嵌入式软件测试中经常用到的测试工具有: • 内存分析工具 • 性能分析工具 • 覆盖分析工具 • 缺陷跟踪工具等

  28. 8、嵌入式系统设计人员的3个层次 • 第1层次以CAD软件和ICE为主要工具的设计方法。 • 第2层次以EDA工具软件和EOS为开发平台的设计方法。 • 第3层次以IP内核库为设计基础,用软硬件协同设计技术的设计方法。 这3个层次各有各的应用范围。初级应用设计人员会以第1种方法为主;富有经验的设计人员会以第2种方法为主;很专业的设计人员会用第3种方法进行简单单片系统的设计和应用。

  29. 4.1.2嵌入式系统设计的层次和设计架构 1、嵌入式系统设计的层次和设计原则 • 层次分为系统级和应用级 • 设计原则具体分为: • 复用原则; • 模块化原则; • 标准化原则(地址总线;数据总线;控制总线); • 电源、网络标号的使用 网络标号的使用反映用途,例如:RXD,TXD等。

  30. 2、嵌入式系统硬件系统的设计架构 包含三部分: (1)、微处理器的选型、时钟及复位电路的设计 (2)、存储系统ROM/RAM的设计 (3)、系统外围设备接口电路的设计 其中系统外围设备接口硬件部分包括有通用接口设计、人机交互接口设计和网络接口设计。

  31. 4.2 微处理器系统的硬件设计 在现阶段,嵌入式系统设计仍处于一种手工阶段。微处理器系统的硬件一般包括有微处理器、时钟电路、复位电路和电源管理等几部分。 • 微处理器是根据不同应用的场合来进行选型。 • 时钟管理为各个外围模块提供时钟。在不使用某个单元时刻关闭其时钟以降低功耗。这些时钟均来自核内部的可控频率的时钟源PLL。 • 复位电路一般有硬件复位(RESET引脚)、Watchdog软件复位等方式。

  32. 4.2.1 微处理器芯片选型的一般原则 (1)ARM内核 功能上的选择,如果希望使用WinCE或Linux等操作系统以减少软件开发时间,就需要选择ARM7T以上带有MMU功能的ARM芯片。 (2)系统时钟控制器 系统时钟决定了ARM芯片的处理速度: ARM7芯片系统时钟为20MHZ~133MHZ, ARM9的系统时钟为100MHZ~233MHZ, ARM10最高可以达到700MHZ。 (3)扩展资源的选择,包括: 内存储器容量、USB接口、GPIO(引脚)数量、IIS(集成音频接口)、LCD控制器、PWM输出、ADC和DAC、UART和IrDA等。

  33. 4.2.2 多路时钟电路的设计 • 时钟发生器为处理器提供时钟信号。它可以是独立的芯片(80186处理器),也可以集成在处理其内部(嵌入式处理器)。 • 一般芯片功耗与使用时钟频率成平方关系。 • 主要功能: • 维持日历时间; • 任务有限等待的计时; • 软定时器的定时管理; • 维持系统时间片轮转调度。

  34. 1、硬件时钟设备 大多数嵌入式系统有两种时钟源:实时时钟(real time clock,RTC);定时器/计数器。 • 实时时钟: • 一般靠电池供电,即使系统断电,也可以维持日期和时间。 • 实时时钟独立于操作系统,所以也被称为硬件时钟,为整个系统提供一个计时标准。 • 定时器/计数器: • 实时内核需要一个定时器作为系统时钟(或称OS时钟),并由实时内核控制系统时钟工作。 • 一般情况下,系统时钟的最小粒度是由应用和操作系统的特点决定的。

  35. 2、多路时钟电路的设计 • 在嵌入式处理器上通常使用频率较低的基准时钟源,然后通 过锁相倍频电路进行分频器进行分频,获得多时钟源来提供给系统使用。 PS:在8位单片机中时钟电路产生的频率可直接作为单片机 的主频工作。 • 多路时钟方式一般用于32位及以上处理器中不同的功能部件电路使用不同频率的时钟频率工作。主要是通过主时钟分频或倍频来形成的。有的系统是采用两套或以上石英晶振来实现。

  36. 日历时钟电路的设计 • 日历时钟32.768KHz,可以通过两种方式实现。 • 其一是通过对主时钟进行分频方式来实现, • 其二是由外部32.768KHz晶体振荡器直接产生32.768KHz 日历时钟信号。 • 处理器的日历时钟一直工作,即使系统进入省电状态的时候也同样工作。 • 集成在处理器内部,系统不需要外接日历时钟芯片和相关的电路。

  37. 时钟源选择 • S3C2410的时钟可以选用晶振(XTAL),也可以使用外部时钟(EXTCLK),由系统复位时,在复位信号上升沿对引脚OM3、OM2所测的状态来确定。其对应关系如下表所示。

  38. 时钟和电源管理功能 • 通过两个锁相环MPLL、UPLL产生系统所需要的不同频率的时钟。 • 提供四种时钟: • 为CPU产生FCLK时钟 • 为高速总线AHB产生HCLK时钟 • 为外设总线APB产生PCLK时钟 • 为USB (Host and Device)产生UCLK时钟(48MHz)。

  39. 电路结构 • 主要由5部分组成:时钟源、MPLL、UPLL、时钟控制器、电源控制器等。 MPLLCLK 晶振、外部时钟 PCLK UCLK HCLK FCLK

  40. 晶振电路和外部时钟

  41. 4.2.3 系统复位电路的设计 • 系统复位电路的设计也是设计中一个必要的环节。 • 比如在 微处理器S3C44B0X中,首先把外部复位信号也作为一个中断来处理。 在系统复位的时候,程序(PC)指针被设置成0,使程序跳转到0x00000000开始运行。 此空间对应的是Bank0,系统的1MB的线性Flash和处理器的Bank0相连接。

  42. 系统复位电路图

  43. 系统复位后初始化内容 • 建立中断向量表(vector table) • 始终在 0 地址处开始。 • 初始化存储器系统 • Memory access interface: type, timing, etc. • 初始化堆栈 • 为指定的模式分别设置 SP,注意模式改变次序 • 初始化有特殊要求的端口、设备 • 初始化应用程序执行环境,全局变量区,动态存储器分配区 • 改变处理器模式,包括中断使能控制 • 呼叫应用程序,跳转至主函数入口

  44. 4.2.4 电源管理器 • 嵌入式系统中各个单元的电压范围有如下几种: 1.35V(部分微处理器);3.3V(外部接口芯片); ㈯5.0V;㈯12V(外部设备) • 操作系统是通过电源管理器来进行系统的电源管理,提高整个系统的电源效率,并为每一个外围设备模块提供电源管理。 • 通过电源管理不仅可以减少目标设备上的电源损耗,而且可以在系统重启、运行、空闲和挂起的电源状态下保存RAM 中的文件系统。

  45. 4.3 存储系统的分析与设计 4.3.1 存储系统设计的原理与特点 • 基于嵌入式微处理器/控制器的专用嵌入式系统而言,它们的存储器系统与通用计算机系统的设计方法有所不同。 • 主要体现在以下几个方面: (1)嵌入式系统由于体积的限制,尽量使用存储密度比较大的存储芯片。 (2)嵌入式系统由于功耗的限制,在设计嵌入式系统的存储系统时需要考虑功耗问题。

  46. 4.3.1 存储系统设计的原理与特点 (3)出于成本考虑,大多数嵌入式系统的存储器容量与软件的大小相匹配。 (4)如果嵌入式处理器中没有存储器,就进行扩充。 (5)嵌入式系统的存储子系统通常设置成模块结构,包括ROM子系统、RAM子系统,每个子系统占用一定的存储空间。 嵌入式系统的存储器通常与系统主板设计在一起的.原 因是:一方面嵌入式系统的内存通常是固定大小的;另一方面 一体系结构可以提高系统的可靠性。

  47. 4.3.2 存储系统的组成结构 • ARM架构处理器的存储器寻址空间最大为4GB。 • ARM架构处理器还允许外接U盘、SD等存储卡,用来扩大存储空间。

  48. ARM存储结构 多级存储器系统 寄存器组 ——访问时间约为几个ns。 片上RAM ——与片外RAM比速度快、功耗小、 容量小。读写时间约为几个ns。 片上Cache ——8—32KB,访问时间约为十几个ns。 主存储器 ——一般为几兆字节—1GB 的动态存 储器,访问时间约 50ns。 CPU 寄存器组 片上RAM 片上Cache 主存储器 辅存

  49. 4.3.3 存储器系统的设计 1、程序存储器连接电路

  50. S3C44B0X与FLASH的连接(Half Word方式)

More Related