欢迎来到装配图网! | 帮助中心 装配图网zhuangpeitu.com!
装配图网
ImageVerifierCode 换一换
首页 装配图网 > 资源分类 > PPT文档下载
 

基于ARM的硬件结构设计.ppt

  • 资源ID:15872663       资源大小:12.98MB        全文页数:129页
  • 资源格式: PPT        下载积分:14.9积分
快捷下载 游客一键下载
会员登录下载
微信登录下载
三方登录下载: 微信开放平台登录 支付宝登录   QQ登录   微博登录  
二维码
微信扫一扫登录
下载资源需要14.9积分
邮箱/手机:
温馨提示:
用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

基于ARM的硬件结构设计.ppt

第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)软件设计 设计软件子系统:软件总体设计、模块设计。 定义软件接口:模块接口、函数接口。 (4)检查设计 小项目:自己审查设计文档 中等项目:拿给同事朋友并向他们解释你的设计 大型项目-审查会:设计者应作一个更正式的报告。由于这是一个设计审查会,召集一群人,主要由工程师组成,并尽可能包括一些对项目有不同看法角度的成员,如做市场的人员、最终用户。,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,DownLoad,3)嵌入式软件生成阶段,28,三个过程 源代码程序的编写 编译成各个目标模块 链接成可供下载调试或固化的目标程序(映像文件),编辑器,交叉编译器,交叉链接器,源程序,目标模块,可供调试/固化,库文件,映像文件是计算机上的一个可执行文件,在执行之前被加载到计算机存储器中。扩展名常为 *.bin,交叉开发环境的连接,主要分为物理连接和逻辑连接: 物理连接是指宿主机与目标机通过物理线路连接在一起,连接方式主要有三种: 串行通信口 局部以太网口 OCD(On Chip Debug)方式,如JTAG、BDM等 逻辑连接指宿主机与目标机间按某种通信协议建立起来的通信连接,目前逐步形成了一些通信协议的标准。 PS:物理连接是逻辑连接的基础。,29,2)嵌入式软件实现阶段的开发过程,嵌入式软件的开发进入实现阶段,可分为三个步骤:生成、调试和固化运行。 软件的生成主要是在宿主机上进行,利用各种工具完成对应用程序的编辑、交叉编译和链接工作,生成可供调试或固化的目标程序。 调试是通过交叉调试器完成软件的调试工作。调试完成后还需进行必要的测试工作。 固化运行是先用一定的工具将应用程序固化到目标机上,然后启动目标机,在没有任何工具干预的情况下应用程序能自动地启动运行。,31,嵌入式软件的调试,在嵌入式软件开发中,调试-采用的是在宿主机和目标机之间进行的远程调试(Remote Debug) 。 调试器仍然运行在宿主机的通用操作系统之上,但被调试的进程却是运行在基于特定硬件平台的嵌入式系统中。 调试器和被调试进程通过串口或者网络进行通信。,32,远程调试器的功能,调试器的功能: 可以控制、访问被调试的进程, 读取被调试进程的当前状态,并能够改变被调试进程的运行状态。 查看和修改目标机上内存单元、寄存器以及被调试进程中的变量值等各种调试功能。,33,嵌入式软件的固化运行,34,嵌入式软件的固化运行,Boot模块:当应用程序在真实的目标环境下运行时将首先执行该程序。 主要功能:初始化CPU环境,使目标机硬件到已知的状态 初始化芯片的引脚 初始化系统外部控制寄存器 初始化基本输入输出设备 初始化MMU,包括片选控制寄存器等 执行数据拷贝,35,ARM实验平台与PC机连接关系框图,36,3)交叉编译、交叉调试方法,交叉编译:把在宿主机上编写的高级语言程序编译成可以运行在目标机上的代码,即在宿主机上能够编译生成另一种CPU(嵌入式微处理器)上的二进制程序。 交叉调试器是指调试程序和被调试运行在不同机器上的调试器,能够通过某种方式控制目标机上被调试程序的运行方式,并且通过调试器能查看和修改目标机上的内存、寄存器以及被调试程序中的变量等。,37,38,嵌入式系统交叉调试的方式,交叉调试的方式执行即调试器控制被调试程序的运行常通过如下五种方式: 指令集模拟器、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,JTAG下载器(连接器),ARM JTAG Emulator仿真器(也称调试器),48,ARM JTAG 仿真器的功能,支持程序下载及实时调试:支持实时硬件断点;可通过JTAG修改寄存器、存储器内容。 JTAG接口:支持14针或20针JTAG接头。 支持EPP增强型并口:下载速度可达130KB/s。 JTAG时钟速率可调:最大可达10MHz;支持所有符合RDI1.50或RDI1.51规范的调试工具软件:ADS 支持多种操作系统:Microsoft Windows 95/98/NT/2000/Me/XP X86 Red Hat Linux 6.2/7.1/7.2 独立的直流5V供电:不会影响目标板供电系统;兼容不同电压的目标板。 支持通过网络连接使用;支持多内核系统。,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,(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个寄存器:为报警日期、时间寄存器,后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,晶振电路和外部时钟,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,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,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,TCON-定时器控制寄存器(续),TR4TR0-TIMER4TIMER0运行控制位 0:停止1:启动对应的TIMER TO3TO0- TIMER4TIMER0输出控制位 0:正相输出1:反相输出 DZE-TIMER0死区操作控制位 0:禁止死区操作1:使能死区操作,92,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,使程序跳转到0 x00000000开始运行。此空间对应的是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需要一定的存储空间来存放目录等信息来管理所有的资料,进行任何操作都要使用这一部分,大部分闪盘的控制芯片都使用固定区块,所以其使用次数远高于其他区块,这样可能会因为目录损坏及缺乏有效扫描除错手段而造成数据丢失,需要格式化才能解决问题。,109,非线性FlashROM( NAND)的介绍,由于NAND型FlashROM是按页和块的组织存储单元,访问存储单元需要发送命令,不能直接读写。在进行大量读取文件时,NAND型的速度比NOR型的速度快很多,常用来存放OS、文件系统和部分应用程序。 如K9F1208,64MB、2048个块,每个数据块包含32个页,每页有528个字节,前512个字节为主数据存储器,后16个字节为辅助数据存储器,存放ECC代码,坏块信息和文件系统等代码。,110,非线性Flash ROM( NAND),使用复用接口,地址线、数据线共用。其读和写操作采用512字节的块,这一点有点像硬盘管理,此类操作易于取代硬盘等类似的块设备。 生产过程简单,成本低、容量大通常有8MB128MB存储芯片,适合用于数据存储,在NAND中每块的最大擦写次数是100万次。通常被称为固态盘或者电子盘。如U盘和SD卡都采用这种结构的Flash存储器。 读速度不如Nor flash,而擦、写速度高。存储在NAND Flash里的程序不可以直接执行,需要复制到RAM中才能执行。,111,SD存储卡,SD(Secure Digital)卡由松下电器、东芝和SanDisk联合推出,1999年8月首次发布。 2000年2月1日成立了SD协会(SDA),成员公司超过90个,其中包括Hewlett-Packard,IBM,Microsoft,Motorola,NEC、Samsung Electronics,Toyota Motor等巨头。 SDA是开放式的,缴纳1500美元就可以 成为一般会员,缴纳4000美元可以成为 执行会员。SD存贮卡的详细规范并没有 公开,只有SDA会员或签定了保密协议才能获得。 SD卡需付版税,112,3224mm,线性Flash ROM的介绍,其内部结构则是采用并行方式工作的,内部的地址线和数据线是分开的。其特点可以按字节随机读取任意单元的内容。该类存储器常用于制作计算机的BIOS存储器和微控制器的内部存储器。 读速度高,而擦、写速度低。可靠性高,但容量小,价格高。 NOR Flash可以做到芯片内直接执行程序,即程序代码不需要复制到RAM中在执行。因此,常常用作嵌入式系统的启动代码芯片。主要用于手机、掌上电脑等需要直接运行代码的场合。,113,线性FlashROM的介绍,常见的NOR FlashROM 为128KB16MB,擦写次数是10万次 两个大阵营:AMD与富士通(合资公司Spansion)、Intel与东芝,彼此管脚不兼容。 AMDAM29xxx,富士通MBMxxx,IntelE28Fxxx,东芝TC58Fxxx, SpansionS29xxx E28F128J3A,16位,16MB,114,115,2)存储器接口,ARM的总线接口信号分成4类(以ARM7TDMI为例说明): 时钟和时钟控制信号:MCLK、ECLK、nRESET、nWAIT。 地址类信号:A31.0、nRW、MAS1.0、nOPC、nTRANS、LOCK、TBIT。 存储器请求信号:nMREQ、SEQ。 数据时序信号:D31.0、DIN31.0、DOUT31.0、ABORT、BL3.0。,116,典型系统中存储体的分配情况,117,4)存储管理单元MMU,虚拟内存管理占用了相当一部分系统资源,因此在有些情况下嵌入式系统中可使用不带有MMU的微处理器。这种情况下需要采用动态内存管理方式,即当程序的某一部分需要使用内存时,利用操作系统提供的分配函数来处理,一旦使用完毕,可通过释放函数来释放所占用的内存,这样内存就可以重复使用。,118,(1)MMU主要完成工作,虚拟存储空间到物理存储空间的映射,在ARM中采用了页式虚拟存储管理方式。 存储器访问权限的控制。 设置虚拟存储空间缓冲的特性。 MMU中的地址变换过程:通过两级页表实现。 a)一级页表中包含有以段为单位的地址变换条目以及指向二级页表的指针。一级页表是实现的地址映射力度较大。以段为单位的地址变换过程只需要一级页表。,119,b)二级页表中包含有以大页和小页为单位的地址变换条目。有一种类型的二级页表还包含有以极小页为单位的地址变换条目。以页为单位的地址变换过程需要二级页表。 通过MMU的访存过程 MMU 先查找快表TLB(Translation Lookaside Buffers,转换旁路缓冲器)中的虚拟地址表 如果TLB 中没有虚拟地址的入口,硬件从主存储器中的描述符表(慢标)中获取转换和访问权限 开始MMU之前必须创建转换表,120,由页表描述符获取二级描述符的过程,121,(2)MMU页表格式,MMU 支持基于节或页的存储器访问: 节(Section) 1MB 的存储器块 大页(Large page)64KB 的存储器块 小页(Small page)4KB 的存储器块 微页(Tiny page)1KB 的存储器块 存在主存储器内的转换表有两个级别: 第一级表 存储节转换表和指向第二级表的指针 第二级表 存储大页和小页的转换表。 存储微页转换表,122,4.3.3 存储器系统的设计,123,1)程序存储器连接电路,S3C44B0X与FLASH的连接(Half Word方式),124,(4)SDRAM存储器简介,SDRAM不具有掉电保持数据的特点,但其存取速度高于Flash存储器,且具有读写的属性,因此SDRAM在系统中主要用作程序的运行空间,数据及堆栈区。当系统启动时,CPU首先从复位地址0 x0h处读取代码,在完成系统初始化后,程序代码一般调入SDRAM中运行,以提高系统的运行速度,同时系统及用户堆栈、运行数据也都放在SDRAM中。,125,(4)SDRAM存储器简介,SDRAM具有单位空间容量大和价格便宜的优点,已广泛应用在各种嵌入式系统中。SDRAM的存储单元可以理解为一个电容,总是倾向于放电,为避免数据丢失,必须定时刷新(充电)。因此要求微处理器具有刷新控制逻辑,或在系统中另外加入刷新控制逻辑电路。 嵌入式系统常用的SDRAM为8位/16位的数据宽度,一般工作电压为3.3V。目前PC机使用的是DDR型RAM内存条。,126,127,2)数据存储器的设计,128,3)S3C2410核心板的设计,S3C2410 ARM处理器,NANDFLASH 64MB 存贮器,SD RAM 32M,举例:,S3C2410处理器在片内集成了一个称为“Steppingstone”(垫脚石)的4KB大小的内部SRAM。如果系统工作在自动启动模式,那么家电或者复位后,NAND闪存的前4KB代码将加载到4KB的SRAM存储器上,接着该存储器的地址空间被重映射到片选信号Ngcs0上,即成为BANK0存储区。此后CPU从0 x0开始执行4KB的内部缓存里的启动代码。 S3C2410处理器德NAND闪存控制相关寄存器有6个。有了NAND闪存控制器后,NAND闪存与处理器连接就十分方便了。,129,

注意事项

本文(基于ARM的硬件结构设计.ppt)为本站会员(za****8)主动上传,装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知装配图网(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!