基于ARM的硬件结构设计课件

上传人:枫** 文档编号:570117186 上传时间:2024-08-02 格式:PPT 页数:92 大小:1.06MB
返回 下载 相关 举报
基于ARM的硬件结构设计课件_第1页
第1页 / 共92页
基于ARM的硬件结构设计课件_第2页
第2页 / 共92页
基于ARM的硬件结构设计课件_第3页
第3页 / 共92页
基于ARM的硬件结构设计课件_第4页
第4页 / 共92页
基于ARM的硬件结构设计课件_第5页
第5页 / 共92页
点击查看更多>>
资源描述

《基于ARM的硬件结构设计课件》由会员分享,可在线阅读,更多相关《基于ARM的硬件结构设计课件(92页珍藏版)》请在金锄头文库上搜索。

1、第第4 4章章 基于基于ARMARM的硬件结构设计的硬件结构设计v4.14.1概述概述vARMARM公司是把公司是把ARMARM作为知识产权作为知识产权IPIP推向市场,因此推向市场,因此ARMARM架构在市场上出现也有多种形式,既有处理器内核架构在市场上出现也有多种形式,既有处理器内核(如(如ARM7TDMIARM7TDMI)形式,也有处理器核(如)形式,也有处理器核(如ARM720TARM720T)形式。半导体厂商或片上系统形式。半导体厂商或片上系统SoCSoC设计应用厂商采用设计应用厂商采用ARMARM架构来生产相应的架构来生产相应的MPUMPU或或SoCSoC芯片。芯片。ARMARM系

2、统设计系统设计人员再在人员再在MPUMPU或或SoCSoC芯片的基础上根据实际需求再进芯片的基础上根据实际需求再进行硬件系统一级的扩展和软件系统的裁剪和应用程行硬件系统一级的扩展和软件系统的裁剪和应用程序的编写。序的编写。v嵌入式系统的软嵌入式系统的软/ /硬件框架如下图所示。硬件框架如下图所示。1基于ARM的硬件结构设计软硬件框架图 2基于ARM的硬件结构设计智能监控器系统体系结构3基于ARM的硬件结构设计4.1.1、嵌入式系统的设计原则和步骤v 嵌入式系统设计的重要特点之一,就是技术多样化。嵌入式系统设计的重要特点之一,就是技术多样化。知识多变性和面向对象的系统设计性技术多样性就是实知识多

3、变性和面向对象的系统设计性技术多样性就是实现同一个嵌入式系统可以有许多不同的设计方案选择;现同一个嵌入式系统可以有许多不同的设计方案选择;而不同的设计方案就意味使用不同的设计和生产技术。而不同的设计方案就意味使用不同的设计和生产技术。所谓知识多变性是指实现系统目标的基础理论和方法随所谓知识多变性是指实现系统目标的基础理论和方法随着新知识的出现不断的变化着新知识的出现不断的变化 v嵌入式系统设计一般由嵌入式系统设计一般由5 5个阶段构成:需求分析、体系个阶段构成:需求分析、体系结构设计、硬件结构设计、硬件/ /软件设计、系统集成和系统测试。各软件设计、系统集成和系统测试。各个阶段之间往往要求不断

4、的反复和修改,直至完成最终个阶段之间往往要求不断的反复和修改,直至完成最终设计目标。设计目标。4基于ARM的硬件结构设计设计步骤图设计步骤图5基于ARM的硬件结构设计1)、需求分析阶段contents1.分析用户的需求2.确定硬件软件3.检查需求分析的结果4.确定项目的约束条件5.概要设计6基于ARM的硬件结构设计需求分析需求分析- -罗列用户的需求罗列用户的需求1/21/2(1)系统用于什么任务?(2)系统从用户或其他源接收什么输入?(3)系统从用户或其他源输出什么?(4)用户想要如何同系统打交道?(5)系统的重量和体积如何?(6)系统连接何种外设?(7)系统是否需要运行某些现存的软件?(8

5、)系统处理哪种类型的数据?(9)系统是否要与别的系统通讯?(10)系统是单机还是网络系统?7基于ARM的硬件结构设计需求分析-罗列用户的需求2/2(1111)系统的响应时间是多少?)系统的响应时间是多少?(1212)需要什么安全措施?)需要什么安全措施?(1313)系统在什么样的环境下运行?)系统在什么样的环境下运行?(1414)外部存储媒介和内存需要多大?)外部存储媒介和内存需要多大?(1515)系统的可拆装性,可靠性和牢固性的期望值是)系统的可拆装性,可靠性和牢固性的期望值是什么?什么?1616)如何给系统供电?)如何给系统供电?(1717)系统如何向用户通报故障?)系统如何向用户通报故障

6、?(1818)是否需要任何手动或机械代用装置?)是否需要任何手动或机械代用装置?(1919)系统是否将具有远程诊断或更正问题的功能?)系统是否将具有远程诊断或更正问题的功能?(2020)其他问题)其他问题8基于ARM的硬件结构设计2)体系结构设计v描述系统的功能如何实现是体系结构设计的目的 。v决定因素1.系统是硬实时系统还是软实时系统2.操作系统是否需要嵌入3.物理系统的成本、尺寸和耗电量是否是产品成功的关键因素4.选择处理器和相关硬件5.其他9基于ARM的硬件结构设计3)详细设计阶段-硬件与软件划分v决定哪些用硬件实现,哪些用软件实现?决定哪些用硬件实现,哪些用软件实现?v例如:例如:1.

7、1.浮点运算浮点运算2.2.网络通信控制器实现的功能网络通信控制器实现的功能3.3.软调制解调器软调制解调器/ /硬调制解调器硬调制解调器4.4.软件压缩解压软件压缩解压/ /硬件压缩解压图像硬件压缩解压图像10基于ARM的硬件结构设计详细设计阶段-硬件设计1.1.设计硬件子系统:设计硬件子系统:top-downtop-down方法方法1.1.分成模块分成模块2.2.设计框图设计框图3.3.例:例:CPUCPU子系统、存储器子系统等子系统、存储器子系统等2.2.定义硬件接口定义硬件接口1.1.I/OI/O端口端口2.2.硬件寄存器硬件寄存器3.3.共享内存共享内存4.4.硬件中断硬件中断5.5

8、.存储器空间分配存储器空间分配6.6.处理器的运行速度处理器的运行速度11基于ARM的硬件结构设计详细设计阶段详细设计阶段- -软件设计软件设计设计软件子系统设计软件子系统总体设计、模块设计总体设计、模块设计定义软件接口定义软件接口模块接口、函数接口模块接口、函数接口12基于ARM的硬件结构设计详细设计阶段-检查设计v小项目小项目自己审查设计文档自己审查设计文档v中等项目中等项目拿给同事朋友并向他们解释你的设计拿给同事朋友并向他们解释你的设计 v大型项目大型项目- -审查会审查会设计者应作一个更正式的报告。由于这是一设计者应作一个更正式的报告。由于这是一个设计审查会,召集一群人,主要由工程师个

9、设计审查会,召集一群人,主要由工程师组成,并尽可能包括一些对项目有不同看法组成,并尽可能包括一些对项目有不同看法角度的成员,如做市场的人员、最终用户角度的成员,如做市场的人员、最终用户 13基于ARM的硬件结构设计4)系统集成 把系统的软件、硬件和执行装置把系统的软件、硬件和执行装置集成在一起,进行调试,发现并改进设计过程集成在一起,进行调试,发现并改进设计过程中的错误。中的错误。 5 5)系统测试)系统测试 对设计好的系统进行测试,看其是否对设计好的系统进行测试,看其是否满足给定的要求。满足给定的要求。14基于ARM的硬件结构设计基于分层和模块化的嵌入式系统设计方法基于分层和模块化的嵌入式系

10、统设计方法15基于ARM的硬件结构设计4.1.2 嵌入式系统选型原则1 1、嵌入式系统选型原则、嵌入式系统选型原则 当我们在设计信息电器、数字医疗设备等嵌入式产当我们在设计信息电器、数字医疗设备等嵌入式产品时,嵌入式操作系统的选择至关重要。一般而言,在品时,嵌入式操作系统的选择至关重要。一般而言,在选择嵌入式操作系统时,可以遵循以下原则。总的来说,选择嵌入式操作系统时,可以遵循以下原则。总的来说,就是就是“做加法还是做减法做加法还是做减法”的问题。的问题。 1)1)市场进入时间市场进入时间 制定产品时间表与选择操作系统有关系,实际产品制定产品时间表与选择操作系统有关系,实际产品和一般演示是不同

11、的。目前是和一般演示是不同的。目前是WindowsWindows程序员可能是人程序员可能是人力资源最丰富的。现成资源最多的也就可能是力资源最丰富的。现成资源最多的也就可能是WinCEWinCE。使用使用WinCEWinCE能够很快进入市场。因为能够很快进入市场。因为WinCE+X86WinCE+X86做产品实做产品实际上是在做减法,去掉你不要的功能,能很快出产品,际上是在做减法,去掉你不要的功能,能很快出产品,但伴随的可能是成本高,核心竞争力差。而某些高效的但伴随的可能是成本高,核心竞争力差。而某些高效的操作系统可能由于编程人员缺乏,或由于这方面的技术操作系统可能由于编程人员缺乏,或由于这方面

12、的技术积累不够,影响开发进度。积累不够,影响开发进度。 16基于ARM的硬件结构设计 2)2)可移植性可移植性 当进行嵌入式软件开发时,可移植性是要重点考虑的问题。当进行嵌入式软件开发时,可移植性是要重点考虑的问题。良好的软件移植性应该比较好,可以在不同平台、不同系统上运良好的软件移植性应该比较好,可以在不同平台、不同系统上运行,跟操作系统无关。软件的通用性和软件的性能通常是矛盾的,行,跟操作系统无关。软件的通用性和软件的性能通常是矛盾的,即通用以损失某些特定情况下的优化性能为代价。很难设想开发即通用以损失某些特定情况下的优化性能为代价。很难设想开发一个嵌入式浏览器而仅能在某一特定环境下应用。

13、反过来说,当一个嵌入式浏览器而仅能在某一特定环境下应用。反过来说,当产品与平台和操作系统紧密结合时,往往你的产品的特色就蕴含产品与平台和操作系统紧密结合时,往往你的产品的特色就蕴含其中。其中。 3)3)可利用资源可利用资源 产品开发不同于学术课题研究,它是以快速、低成本、高产品开发不同于学术课题研究,它是以快速、低成本、高质量的推出适合用户需求的产品为目的的。集中精力研发出产品质量的推出适合用户需求的产品为目的的。集中精力研发出产品的特色,其他功能尽量由操作系统附加或采用第三方产品,因此的特色,其他功能尽量由操作系统附加或采用第三方产品,因此操作系统的可利用资源对于选型是一个重要参考条件。操作

14、系统的可利用资源对于选型是一个重要参考条件。LinuxLinux和和WinCEWinCE都有大量的资源可以利用,这是它们被看好的重要原因。都有大量的资源可以利用,这是它们被看好的重要原因。其它有些实时操作系统由于比较封闭,开发时可以利用的资源比其它有些实时操作系统由于比较封闭,开发时可以利用的资源比较少,因此多数功能需要自己独立开发。从而影响开发进度。近较少,因此多数功能需要自己独立开发。从而影响开发进度。近来的市场需求显示,越来越多的嵌入式系统,均要求提供全功能来的市场需求显示,越来越多的嵌入式系统,均要求提供全功能的的WebWeb浏览器。而这要求有一个高性能、高可靠的图形用户接口浏览器。而

15、这要求有一个高性能、高可靠的图形用户接口GUIGUI的支持。的支持。 17基于ARM的硬件结构设计4)4)系统定制能力系统定制能力 信息产品不同于传统信息产品不同于传统PCPC机结构的单纯性,用户的需机结构的单纯性,用户的需求是千差万别的,硬件平台也都不一样,所以对系统的求是千差万别的,硬件平台也都不一样,所以对系统的定制能力提出了要求。要分析产品是否对系统底层有改定制能力提出了要求。要分析产品是否对系统底层有改动的需求,这种改动是否伴生着产品特色?动的需求,这种改动是否伴生着产品特色?LinuxLinux由于由于其源代码开放的天生魅力,在定制能力方面具有优势。其源代码开放的天生魅力,在定制能

16、力方面具有优势。随着随着WinCE WinCE 原码的开放,以及微软在嵌入式领域力度的原码的开放,以及微软在嵌入式领域力度的加强,其定制能力会有所提升。加强,其定制能力会有所提升。 5) 5) 成本成本 成本是所有产品不得不考虑的问题。成本是所有产品不得不考虑的问题。LinuxLinux免费,免费,WinCEWinCE等商业系统需要支付许可证使用费,但这都不是等商业系统需要支付许可证使用费,但这都不是问题的答案。成本是需要综合权衡以后进行考虑的问题的答案。成本是需要综合权衡以后进行考虑的-选择某一系统可能会对其它一系列的因素产生影响,如选择某一系统可能会对其它一系列的因素产生影响,如对硬件设备

17、的选型、人员投入、以及公司管理和与其它对硬件设备的选型、人员投入、以及公司管理和与其它合作伙伴的共同开发之间的沟通等许多方面的影响。合作伙伴的共同开发之间的沟通等许多方面的影响。 18基于ARM的硬件结构设计6) 6) 中文内核支持中文内核支持 国内产品需要对中文的支持。由于操作系统多数是采用西文国内产品需要对中文的支持。由于操作系统多数是采用西文方式,是否支持双字节编码方式,是否遵循方式,是否支持双字节编码方式,是否遵循GBKGBK,GB18030GB18030等各种等各种国家标准,是否支持中文输入与处理,是否提供第三方中文输入国家标准,是否支持中文输入与处理,是否提供第三方中文输入接口是针

18、对国内用户的嵌入式产品的必需考虑的重要因素。接口是针对国内用户的嵌入式产品的必需考虑的重要因素。 上面提到用上面提到用WinCE+x86WinCE+x86出产品,这实际上就是所谓出产品,这实际上就是所谓PCPC家电化;家电化;另外一种做法是加法,利用家电行业的硬件解决方案(绝大部分另外一种做法是加法,利用家电行业的硬件解决方案(绝大部分是非是非x86x86的)加以改进,加上嵌入式操作系统,再加上应用软件。的)加以改进,加上嵌入式操作系统,再加上应用软件。这是所谓家电这是所谓家电PCPC化的做法,这种加法的优势是成本低,特色突出,化的做法,这种加法的优势是成本低,特色突出,缺点是产品研发周期长,

19、难度大(需要深入了解硬件和操作系统)缺点是产品研发周期长,难度大(需要深入了解硬件和操作系统)。如果选择这种做法,。如果选择这种做法,LinuxLinux是一个好选择,它让你能够深入到是一个好选择,它让你能够深入到系统底层。系统底层。 嵌入式系统是面向用户、面向产品、面向应用的。嵌入式处嵌入式系统是面向用户、面向产品、面向应用的。嵌入式处理器的功耗、体积、成本、可靠性、速度、处理能力、电磁兼容理器的功耗、体积、成本、可靠性、速度、处理能力、电磁兼容性等方面均受到应用要求的制约,这些也是各个半导体厂商之间性等方面均受到应用要求的制约,这些也是各个半导体厂商之间竞争的热点。嵌入式处理器的应用软件是

20、实现嵌入式系统功能的竞争的热点。嵌入式处理器的应用软件是实现嵌入式系统功能的关键。软件要求固化存储,软件代码要求高质量、高可靠性,系关键。软件要求固化存储,软件代码要求高质量、高可靠性,系统软件统软件(OS)(OS)的高实时性是基本要求。的高实时性是基本要求。 19基于ARM的硬件结构设计2、嵌入式操作系统选择原则v嵌入式操作系统选择的原则嵌入式操作系统选择的原则: :v1 1)操作系统的硬件支持)操作系统的硬件支持 是否支持目标硬件平台、是否支持目标硬件平台、 可移植性;可移植性;v2 2)开发工具的支持程度)开发工具的支持程度 ; v3 3)能否满足应用要求)能否满足应用要求 对操作系统性

21、能的要求、中文对操作系统性能的要求、中文内核支持、标准兼容性、技术支持、源代码还是目标代内核支持、标准兼容性、技术支持、源代码还是目标代码、码、 许可(一次性付费?);许可(一次性付费?);v如自建操作系统如自建操作系统 : 一种是完全从内核开始,另一种一种是完全从内核开始,另一种是在免费的源代码公开的内核上写自己的是在免费的源代码公开的内核上写自己的RTOSRTOS。20基于ARM的硬件结构设计4.1.3 4.1.3 嵌入式系统开发环境、方法和开发经验嵌入式系统开发环境、方法和开发经验v1 1、嵌入式系统开发环境、嵌入式系统开发环境v嵌嵌入入式式系系统统通通常常是是一一个个资资源源受受限限的

22、的系系统统,因因此此直直接接在在嵌嵌入入式式系系统统的的硬硬件件平平台台上上编编写写软软件件比比较较困困难难。目目前前一一般般采采用用的的解解决决办办法法是是首首先先在在通通用用计计算算机机上上编编写写程程序序,然然后后通通过过交交叉叉编编译译生生成成目目标标平平台台上上可可以以运运行行的的二二进进制制代代码码格格式式,最最后后再再下下载载到到目目标标平平台台上上的的特特定定位位置上运行。置上运行。v交交叉叉开开发发环环境境是是指指编编译译、链链接接和和调调试试嵌嵌入入式式应应用用软软件件的的环环境境,它它与与运运行行嵌嵌入入式式应应用用软软件件的的环环境境有有所所不不同同,通通常常采采用用宿

23、宿主主机机/ /目目标标机模式。机模式。v宿宿主主机机(HostHost)是是一一台台通通用用计计算算机机(如如PCPC机机或或者者工工作作站站),它它通通过过串串口口或或者者以以太太网网接接口口与与目目标标机机通通信信。宿宿主主机机的的软软硬硬件件资资源源比比较较丰丰富富,不不但但包包括括功功能能强强大大的的操操作作系系统统(如如WindowsWindows和和LinuxLinux),而而且且还还有有各各种种各各样样优优秀秀的的开开发发工工具具,能能够够大大大大提提高高嵌嵌入入式式应应用用软软件件的开发速度和效率。的开发速度和效率。21基于ARM的硬件结构设计 v嵌嵌入入式式系系统统的的交交

24、叉叉开开发发环环境境一一般般包包括括交交叉叉编编译译器器、交交叉叉调调试试器器和和系系统统仿仿真真器器,其其中中交交叉叉编编译译器器用用于于在在宿宿主主机机上上生生成成能能在在目目标标机机上上运运行行的的代代码码,而而交交叉叉调调试试器器和和系系统统仿仿真真器器则则用用于于在在宿宿主主机机与与目目标标机机间间完完成成嵌嵌入入式式软软件件的的调调试试。在在采采用用宿宿主主机机/ /目目标标机机模模式式开开发发嵌嵌入入式式应应用用软软件件时时,首首先先利利用用宿宿主主机机上上丰丰富富的的资资源源和和良良好好的的开开发发环环境境开开发发和和仿仿真真调调试试目目标标机机上上的的软软件件,然然后后通通过

25、过串串口口或或者者以以太太网网接接口口将将交交叉叉编编译译生生成成的的目目标标代代码码传传输输并并装装载载到到目目标标机机上上,并并在在监监控控程程序序或或者者操操作作系系统统的的支支持持下下利利用用交交叉叉调调试试器器进进行行分分析析和和调调试试,最最后后目目标标机机在在特特定定环环境下脱离宿主机单独运行。境下脱离宿主机单独运行。22基于ARM的硬件结构设计 v建建立立交交叉叉开开发发环环境境是是进进行行嵌嵌入入式式软软件件开开发发的的第第一一步步,目目前前常常用用的的交交叉叉开开发发环环境境主主要要有有开开放放和和商商业业两两种种类类型型。开开放放的的交交叉叉开开发发环环境境的的典典型型代

26、代表表是是GNUGNU工工具具链链、目目前前已已经经能能够够支支持持x86x86、ARMARM、MIPSMIPS、PowerPCPowerPC等等多多种种处处理理器器。商商业业的的交交叉叉开开发发环环境境则则主主要要有有Metrowerks Metrowerks CodeWarriorCodeWarrior、ARM ARM Software Software Development ToolkitDevelopment Toolkit、Embedded Visual C+Embedded Visual C+等。等。v在完成嵌入式软件的编码之后,需要进行编译和在完成嵌入式软件的编码之后,需要进行

27、编译和链接以生成可执行代码,由于开发过程大多是在链接以生成可执行代码,由于开发过程大多是在使用使用IntelIntel公司公司x86x86系列系列CPUCPU的通用计算机上进行的通用计算机上进行的,而目标环境的处理器芯片却大多为的,而目标环境的处理器芯片却大多为ARMARM、MIPSMIPS、PowerPCPowerPC等系列的微处理器,这就要求在等系列的微处理器,这就要求在建立好的交叉开发环境中进行交叉编译和链接。建立好的交叉开发环境中进行交叉编译和链接。 23基于ARM的硬件结构设计 v交交叉叉编编译译器器和和交交叉叉链链接接器器是是能能够够在在宿宿主主机机上上运运行行,并并且且能能够够生

28、生成成在在目目标标机机上上直直接接运运行行的的二二进进制制代代码码的的编编译译器器和和链链接接器器。例例如如在在基基于于ARMARM体体系系结结构构的的gccgcc交交叉叉开开发发环环境境中中,arm-linux-gccarm-linux-gcc是是交交叉叉编编译译器,器,arm-linux-ldarm-linux-ld是交叉链接器。是交叉链接器。v嵌入式系统在链接过程中通常都要求使用较小的嵌入式系统在链接过程中通常都要求使用较小的函数库,以便最后产生的可执行代码能够尽可能函数库,以便最后产生的可执行代码能够尽可能的小,因此实际运用时一般使用经过特殊处理的的小,因此实际运用时一般使用经过特殊处

29、理的函数库。对于嵌入式函数库。对于嵌入式LinuxLinux系统来讲,功能越来系统来讲,功能越来越强、体积越来越大的越强、体积越来越大的C C语言函数库语言函数库glibcglibc和数学和数学函数库函数库libmlibm已经很难满足实际的需要,因此需要已经很难满足实际的需要,因此需要采用它们的精化版本采用它们的精化版本uClibcuClibc、uClibmuClibm和和newlibnewlib等等 24基于ARM的硬件结构设计 v目目前前嵌嵌入入式式的的集集成成开开发发环环境境都都支支持持交交叉叉编编译译和和交交叉叉链链接接,如如Windriver Windriver TornadoTor

30、nado和和GNUGNU工工具具链链等等,编编写写好好的的嵌嵌入入式式软软件件经经过过交交叉叉编编译译和和交交叉叉链链接接后后通通常常会会生生成成两两种种类类型型的的可可执执行行文文件件:用用于于调调试试的的可可执执行行文文件件和和用用于于固固化化的的可可执执行文件。行文件。v2 2、嵌入式开发流程、嵌入式开发流程v在在嵌嵌入入式式系系统统的的应应用用开开发发中中,整整个个系系统统的的开开发发过过程程有有选选择择嵌嵌入入式式处处理理器器、选选择择嵌嵌入入式式操操作作系系统统、开开发发嵌嵌入入式式应应用软件、进行测试和开发结束。用软件、进行测试和开发结束。v嵌嵌入入式式系系统统发发展展到到今今天

31、天,对对应应于于各各种种微微处处理理器器的的硬硬件件平平台台一一般般都都是是通通用用的的、固固定定的的、成成熟熟的的,这这就就大大大大减减少少了了由由硬硬件件系系统统引引入入错错误误的的机机会会。此此外外,由由于于嵌嵌入入式式操操作作系系统统屏屏蔽蔽了了底底层层硬硬件件的的复复杂杂性性,使使得得开开发发者者通通过过操操作作系系统统提提供供的的APIAPI函函数数就就可可以以完完成成大大部部分分工工作作,因因此此大大大大简简化化了了开开发发过过程程,提提高高了了系系统统的的稳稳定定性性。嵌嵌入入式式系系统统的的开开发发者者现现在在已已经经从从反反复复进进行行硬硬件件平平台台设设计计的的过过程程中

32、中解解脱脱出出来来,从而可以将主要精力放在满足特定的需求上。从而可以将主要精力放在满足特定的需求上。25基于ARM的硬件结构设计嵌入式系统开发流程框图嵌入式系统开发流程框图26基于ARM的硬件结构设计 v在嵌入式软件开发中,调试时采用的是在宿主机和目标在嵌入式软件开发中,调试时采用的是在宿主机和目标机之间进行的远程调试,调试器仍然运行在宿主机的通机之间进行的远程调试,调试器仍然运行在宿主机的通用操作系统之上,但被调试的进程却是运行在基于特定用操作系统之上,但被调试的进程却是运行在基于特定硬件平台的嵌入式操作系统中,调试器和被调试进程通硬件平台的嵌入式操作系统中,调试器和被调试进程通过串口或者网

33、络进行通信,调试器可以控制、访问被调过串口或者网络进行通信,调试器可以控制、访问被调试进程,读取被调试进程的当前状态,并能够改变被调试进程,读取被调试进程的当前状态,并能够改变被调试进程的运行状态。试进程的运行状态。v远远程程调调试试(Remote Remote DebugDebug)允允许许调调试试器器以以某某种种方方式式控控制制目目标标机机上上被被调调试试进进程程的的运运行行方方式式,并并具具有有查查看看和和修修改改目目标标机机上上内内存存单单元元、寄寄存存器器以以及及被被调调试进程中变量值等各种调试功能。试进程中变量值等各种调试功能。v 27基于ARM的硬件结构设计 v嵌嵌入入式式系系统

34、统远远程程调调试试方方法法很很多多,可可被被细细分分成成不不同同的的层层次次,但一般都具有以下特点:但一般都具有以下特点:v调调试试器器和和被被调调试试进进程程运运行行在在不不同同的的机机器器上上,调调试试器器运运行行在在PCPC或或者者工工作作站站上上(宿宿主主机机),而而被被调调试试进进程程则则运运行行在在各种专业调试板上(目标机)。各种专业调试板上(目标机)。v调调试试器器通通过过某某种种通通信信方方式式与与被被调调试试进进程程建建立立联联系系,如如串串口、并口、网络、口、并口、网络、DBMDBM、JTAGJTAG或者专用的通信方式。或者专用的通信方式。v目目标标机机可可能能是是某某种种

35、形形式式的的系系统统仿仿真真器器,通通过过在在宿宿主主机机上上运运行行目目标标机机的的仿仿真真软软件件,整整个个调调试试过过程程可可以以在在一一台台计计算算机机上上运运行行。此此时时物物理理上上虽虽然然只只有有一一台台计计算算机机,但但逻逻辑辑上上仍然存在着宿主机和目标机的区别。仍然存在着宿主机和目标机的区别。v在在嵌嵌入入式式软软件件开开发发过过程程中中的的调调试试方方式式有有很很多多种种,应应根根据据实际的开发要求和条件进行选择。实际的开发要求和条件进行选择。28基于ARM的硬件结构设计ARMARM实验平台与实验平台与PCPC机连接关系框图机连接关系框图29基于ARM的硬件结构设计v3 3

36、、 嵌入式系统开发工具与测试嵌入式系统开发工具与测试v 通常采用宿主机通常采用宿主机/ /目标机方式。首先,利用宿主机目标机方式。首先,利用宿主机上丰富的资源及良好的开发环境开发和仿真调试目标机上丰富的资源及良好的开发环境开发和仿真调试目标机上的软件。然后,通过串行口或网络及交叉编译生成目上的软件。然后,通过串行口或网络及交叉编译生成目标代码传输并装载到目标机上,并用交叉调试器在监控标代码传输并装载到目标机上,并用交叉调试器在监控程序或实时内核程序或实时内核/ /操作系统的支持下进行实时分析和调操作系统的支持下进行实时分析和调度。最后,目标机在特定的环境下运行。度。最后,目标机在特定的环境下运

37、行。v嵌入式系统开发工具主要包括有高级语言编译器、源程嵌入式系统开发工具主要包括有高级语言编译器、源程序模拟器和实时在线仿真器。序模拟器和实时在线仿真器。v1 1)高级语言编译器)高级语言编译器 C C语言作为一种通用高级语语言作为一种通用高级语言大幅度提高了嵌入式系统工程的工作效率,充分发挥言大幅度提高了嵌入式系统工程的工作效率,充分发挥出嵌入式处理器日益提高的性能,缩短产品进入市场时出嵌入式处理器日益提高的性能,缩短产品进入市场时间。另外,间。另外,C C语言便于移植和修改,使产品的升级和继语言便于移植和修改,使产品的升级和继承更迅速。嵌入式系统中承更迅速。嵌入式系统中C C语言编译器要专

38、门进行优化,语言编译器要专门进行优化,以提高编译效率。优秀的以提高编译效率。优秀的C C编译器代码长度仅比以汇编编译器代码长度仅比以汇编语言编写的同样功能程度长语言编写的同样功能程度长5 52020。30基于ARM的硬件结构设计 v2)2)源程序模拟器源程序模拟器 它是在广泛使用的、人机接口完备的工作平台上,它是在广泛使用的、人机接口完备的工作平台上,如小型机和如小型机和PCPC机,通过软件手段模拟执行某种嵌入式处机,通过软件手段模拟执行某种嵌入式处理器内核编写的源程序测试工具。简单的模拟器可以通理器内核编写的源程序测试工具。简单的模拟器可以通过指令解释方式逐条执行源程序,分配虚拟存储空间和过

39、指令解释方式逐条执行源程序,分配虚拟存储空间和外设,供程序员检查。高级的模拟器可以利用计算机的外设,供程序员检查。高级的模拟器可以利用计算机的外部接口模拟处理器的外部接口模拟处理器的I/OI/O信号。模拟器软件独立于处信号。模拟器软件独立于处理器硬件,一般与编译器集成在同一个环境中,是一种理器硬件,一般与编译器集成在同一个环境中,是一种有效的源程序检验和测试工具。但其毕竟是以一种处理有效的源程序检验和测试工具。但其毕竟是以一种处理器模拟另一种处理器的运行,在指令执行时间、中断响器模拟另一种处理器的运行,在指令执行时间、中断响应、定时器等方面可能与实际处理器有相当大的差别。应、定时器等方面可能与

40、实际处理器有相当大的差别。另外,它无法和另外,它无法和ICEICE一样,仿真嵌入式系统在应用系统一样,仿真嵌入式系统在应用系统中的实际执行情况。中的实际执行情况。v3 3)实时在线仿真系统)实时在线仿真系统ICE ICE 在计算机辅助设计非常发达的今天,实时在线仿真在计算机辅助设计非常发达的今天,实时在线仿真 31基于ARM的硬件结构设计 v系统(系统(ICE)仍是进行嵌入式应用系统调试最有效的开)仍是进行嵌入式应用系统调试最有效的开发工具。发工具。ICE首先可以通过实际执行,对应用程序进行首先可以通过实际执行,对应用程序进行原理性检验,排除人的思维难以发现的设计逻辑错误。原理性检验,排除人的

41、思维难以发现的设计逻辑错误。ICE的另一个主要功能是在应用系统中仿真微控制器的的另一个主要功能是在应用系统中仿真微控制器的实际执行,发现和排除由于硬件干扰等引起的异常执行实际执行,发现和排除由于硬件干扰等引起的异常执行行为。此外,高级的行为。此外,高级的ICE带有完善的跟踪功能,可以将带有完善的跟踪功能,可以将应用系统的实际状态变化、微控制器对状态变化的反映、应用系统的实际状态变化、微控制器对状态变化的反映、以及应用系统对控制的响应等以一种录像的方式连续记以及应用系统对控制的响应等以一种录像的方式连续记录下来,以供分析和优化控制过程。录下来,以供分析和优化控制过程。 嵌入式应用的特点是和现实世

42、界中硬件系统有关,嵌入式应用的特点是和现实世界中硬件系统有关,存在各种异变和事先未知的变化,这就给微处理器的指存在各种异变和事先未知的变化,这就给微处理器的指令执行带来了各种不确定性,这种不确定性只有通过令执行带来了各种不确定性,这种不确定性只有通过ICE的实时在线仿真才能发现,特别是在分析可靠性时的实时在线仿真才能发现,特别是在分析可靠性时要在同样条件下多次仿真以发现偶然出现的错误。要在同样条件下多次仿真以发现偶然出现的错误。ICE不仅是软件硬件排错工具,同时也是提高和优化系统性不仅是软件硬件排错工具,同时也是提高和优化系统性能指标的工具。能指标的工具。32基于ARM的硬件结构设计 v4 4

43、)软件测试有两种方法:)软件测试有两种方法:v(1 1)白盒测试)白盒测试 基于代码的测试检查程序的内部设计。基于代码的测试检查程序的内部设计。把把100%100%的代码都测试一遍是不可能的,所以要选择最重的代码都测试一遍是不可能的,所以要选择最重要的代码进行白盒测试。在进行测试是要把系统的与其要的代码进行白盒测试。在进行测试是要把系统的与其用途作为重要依据,根据实际中对负载、定时、性能的用途作为重要依据,根据实际中对负载、定时、性能的要求,判断软件是否满足这些需求规范。要求,判断软件是否满足这些需求规范。 白盒测试一般在目标硬件上进行。通过硬件仿白盒测试一般在目标硬件上进行。通过硬件仿真进行

44、,所以选取的测试工具应该支持在宿主环境中进真进行,所以选取的测试工具应该支持在宿主环境中进行。这种方法一般是开发方的内部测试方法。行。这种方法一般是开发方的内部测试方法。v(2 2)黑盒测试)黑盒测试 在某些情况下也称为功能测试。不依在某些情况下也称为功能测试。不依赖于代码,而是从使用的角度进行测试。赖于代码,而是从使用的角度进行测试。 黑盒只能限制在需求的范围内进行。第三方采黑盒只能限制在需求的范围内进行。第三方采用的方法,进行验证和确认测试。用的方法,进行验证和确认测试。33基于ARM的硬件结构设计 v嵌入式软件的测试工具嵌入式软件的测试工具v内存分析工具、性能分析工具、内存分析工具、性能

45、分析工具、GUIGUI(图形界面)测试(图形界面)测试工具、覆盖分析工具。工具、覆盖分析工具。v硬件故障的特性像一个浴缸曲线。在模块的生命初期,硬件故障的特性像一个浴缸曲线。在模块的生命初期,硬件故障率是很高的;在产品的有效生命期,故障率比硬件故障率是很高的;在产品的有效生命期,故障率比较低;一旦达到生命末期,模块的故障率又提高了。较低;一旦达到生命末期,模块的故障率又提高了。v嵌入式微处理器的设计一般都具备有结构多样性和应用嵌入式微处理器的设计一般都具备有结构多样性和应用灵活性的两大特点。就智能性来说,现代的芯片计算机灵活性的两大特点。就智能性来说,现代的芯片计算机可以进行逻辑、符号和语言处

46、理等,这些被认为是大脑可以进行逻辑、符号和语言处理等,这些被认为是大脑左半球的功能,而且达到了人类自己都感到惊奇的程度。左半球的功能,而且达到了人类自己都感到惊奇的程度。34基于ARM的硬件结构设计 v4、嵌入式系统开发方法的变化v 过去擅长于软件设计的编程人员一般对硬件电路设过去擅长于软件设计的编程人员一般对硬件电路设计敬而远之,硬件设计和软件设计被认为是性质完全不计敬而远之,硬件设计和软件设计被认为是性质完全不同的技术。随着电子信息技术和计算机技术的飞速发展,同的技术。随着电子信息技术和计算机技术的飞速发展,特别是特别是HDLHDL的发明,硬件设计方法发生了变化,数字系的发明,硬件设计方法

47、发生了变化,数字系统的硬件组成及其行为完全可以用统的硬件组成及其行为完全可以用HDLHDL来描述和仿真。来描述和仿真。在这种情况下,要求设计人员都要借助在这种情况下,要求设计人员都要借助HDLHDL工具来描述工具来描述硬件电路的行为、功能、结构、数据流、信号连接关系硬件电路的行为、功能、结构、数据流、信号连接关系和定时关系,设计出满足各种功能要求的硬件系统。和定时关系,设计出满足各种功能要求的硬件系统。35基于ARM的硬件结构设计 vEDAEDA工具允许有两种设计输入工具,分别适应硬件电路工具允许有两种设计输入工具,分别适应硬件电路设计人员和软件设计人员有两种不同背景的需要。让具设计人员和软件

48、设计人员有两种不同背景的需要。让具有硬件背景的设计人员用已习惯的原理图输入方式,而有硬件背景的设计人员用已习惯的原理图输入方式,而让具有软件背景的实际人员用硬件描述语言输入方式。让具有软件背景的实际人员用硬件描述语言输入方式。由于采用由于采用HDLHDL描述输入,因而与系统行为描述更接近,描述输入,因而与系统行为描述更接近,且更便于综合、时域传递和修改,还能建立独立于工艺且更便于综合、时域传递和修改,还能建立独立于工艺的设计文件。所以,擅长软件编程的人一旦掌握了的设计文件。所以,擅长软件编程的人一旦掌握了HDLHDL和一些必要的硬件知识,往往可以比习惯于传统设计的和一些必要的硬件知识,往往可以

49、比习惯于传统设计的工程师设计出更好的硬件电路和系统。所以,习惯于传工程师设计出更好的硬件电路和系统。所以,习惯于传统设计的工程师应该学会用统设计的工程师应该学会用HDLHDL来描述和编程。来描述和编程。v嵌入式系统设计的嵌入式系统设计的3 3个层次个层次v第第1 1层次以层次以PCB CADPCB CAD软件和软件和ICEICE为主要工具的设计方法。这是过去为主要工具的设计方法。这是过去和现在我国单片机应用人员一直沿用的方法,其步骤是先抽象后和现在我国单片机应用人员一直沿用的方法,其步骤是先抽象后具体。具体。36基于ARM的硬件结构设计 v 第第2 2层次以层次以EDAEDA工具软件和工具软件

50、和EOSEOS为开发平台的设计方法。为开发平台的设计方法。随着微电子工艺的发展,各种通用的可编程半定制逻辑随着微电子工艺的发展,各种通用的可编程半定制逻辑器件应运而生。这样,硬件设计人员从过去选择和使用器件应运而生。这样,硬件设计人员从过去选择和使用标准通用集成电路,逐步转向自己设计和制作部分专用标准通用集成电路,逐步转向自己设计和制作部分专用的集成电路器件的集成电路器件ASICASIC。随着半制定器件的规模增大,可。随着半制定器件的规模增大,可集成的器件越来越多,使印制板上互连器件的线路、装集成的器件越来越多,使印制板上互连器件的线路、装配和调试费用越来越少,即减少了面积和插件的数量,配和调

51、试费用越来越少,即减少了面积和插件的数量,降低了成本,又增加了可编程应用的灵活性。更重要的降低了成本,又增加了可编程应用的灵活性。更重要的是降低了系统的功耗,提高了系统的工作速度和可靠性是降低了系统的功耗,提高了系统的工作速度和可靠性及安全性。及安全性。v 半定制逻辑器件经历了可编程逻辑阵列半定制逻辑器件经历了可编程逻辑阵列PLAPLA、可编、可编程阵列逻辑程阵列逻辑PALPAL、通用阵列逻辑、通用阵列逻辑GALGAL、复杂可编程逻辑器、复杂可编程逻辑器件件CPLDCPLD和现场可编程门阵列和现场可编程门阵列FPGAFPGA的发展过程。设计人员的发展过程。设计人员可以利用各种可以利用各种EDA

52、EDA工具和标准的工具和标准的CPLDCPLD和和FPGAFPGA等,设计和等,设计和自制用户专用的集成电路。然后再通过自下而上的设计自制用户专用的集成电路。然后再通过自下而上的设计方法,把用半定制期间设计自制的集成电路、可编程外方法,把用半定制期间设计自制的集成电路、可编程外围器件、所选择的围器件、所选择的ASICASIC与嵌入式微控制器或微处理器在与嵌入式微控制器或微处理器在印版上布局、布线构成系统。印版上布局、布线构成系统。37基于ARM的硬件结构设计 v第第3 3层次以层次以IPIP内核库为设计基础,用软硬件协同设计技内核库为设计基础,用软硬件协同设计技术的设计方法。已开始从集成电路级

53、设计转向到集成系术的设计方法。已开始从集成电路级设计转向到集成系统级的设计。目前已进入单片系统统级的设计。目前已进入单片系统SOCSOC设计阶段,并开设计阶段,并开始进入实用阶段。如智能始进入实用阶段。如智能ICIC卡等。卡等。v这这3 3个层次各有各的应用范围。初级应用设计人员会以个层次各有各的应用范围。初级应用设计人员会以第第1 1种方法为主;富有经验的设计人员会以第种方法为主;富有经验的设计人员会以第2 2种方法为种方法为主;很专业的设计人员会用第主;很专业的设计人员会用第3 3种方法进行简单单片系种方法进行简单单片系统的设计和应用。统的设计和应用。v嵌入式微处理器的设计一般都具有结构多

54、样性与应用灵嵌入式微处理器的设计一般都具有结构多样性与应用灵活性的两大特点。硬件和软件的协同设计在嵌入式系统活性的两大特点。硬件和软件的协同设计在嵌入式系统设计中是一项很重要的技术。设计中是一项很重要的技术。38基于ARM的硬件结构设计5、 嵌入式系统开发经验嵌入式系统设计主要适用于电子玩具、工业控制、民嵌入式系统设计主要适用于电子玩具、工业控制、民用电器、机电一体化产品、航天航海等众多领域。它们用电器、机电一体化产品、航天航海等众多领域。它们的应用开发不单是软件的开发,其开发语言和硬件密切的应用开发不单是软件的开发,其开发语言和硬件密切相关。所以只有开发者对嵌入式系统的内部结构非常了相关。所

55、以只有开发者对嵌入式系统的内部结构非常了解,才能编好软件。而嵌入式系统的开发应用还涉及到解,才能编好软件。而嵌入式系统的开发应用还涉及到硬件扩展接口和各类传感器,更重要的是必须尽可能地硬件扩展接口和各类传感器,更重要的是必须尽可能地了解各学科中适应嵌入式系统完成的控制项目以及控制了解各学科中适应嵌入式系统完成的控制项目以及控制过程。过程。 掌握嵌入式系统的应用开发需要一个过程。首先必须掌握嵌入式系统的应用开发需要一个过程。首先必须掌握数字电路和模拟电路方面的知识,还必须学习单片掌握数字电路和模拟电路方面的知识,还必须学习单片机原理、硬件结构、扩展接口和编程语言。初次开发时机原理、硬件结构、扩展

56、接口和编程语言。初次开发时由于没经验,可能要经过多次反复才能完成项目。这时,由于没经验,可能要经过多次反复才能完成项目。这时,你会得到较大的收获和积累,表现在以下几个方面:你会得到较大的收获和积累,表现在以下几个方面: 硬件设计方面的积累;硬件设计方面的积累; 软件设计方面的积累;软件设计方面的积累; 设计经验方面的积累。设计经验方面的积累。39基于ARM的硬件结构设计 系统的应用开发不单是软件的开发,其开发语言和硬系统的应用开发不单是软件的开发,其开发语言和硬件密切相关。所以只有开发者对嵌入式系统的内部结构件密切相关。所以只有开发者对嵌入式系统的内部结构非常了解,才能编好软件。而嵌入式系统的

57、开发应用还非常了解,才能编好软件。而嵌入式系统的开发应用还涉及到硬件扩展接口和各类传感器,更重要的是必须尽涉及到硬件扩展接口和各类传感器,更重要的是必须尽可能地了解各学科中适应嵌入式系统完成的控制项目以可能地了解各学科中适应嵌入式系统完成的控制项目以及控制过程。及控制过程。硬件开发是嵌入式系统开发的基础,软件的开发是建硬件开发是嵌入式系统开发的基础,软件的开发是建立在硬件之上,软硬件设计的巧妙结合是项目开发质量立在硬件之上,软硬件设计的巧妙结合是项目开发质量保证的关键。在硬件开发设计中应注意以下几个方面:保证的关键。在硬件开发设计中应注意以下几个方面: 开发者必须学习应用最新嵌入式系统,如新型

58、的开发者必须学习应用最新嵌入式系统,如新型的MPUMPU的优势表现在时钟频率的进一步提高。处理器相关功的优势表现在时钟频率的进一步提高。处理器相关功能的提高,内部程序存储器和数据存储器容量的进一步能的提高,内部程序存储器和数据存储器容量的进一步扩大,扩大,A/DA/D和和D/AD/A转换器的内部集成,转换器的内部集成,LCDLCD显示等功能模块显示等功能模块的内部集成,外部扩展功能的增强。的内部集成,外部扩展功能的增强。40基于ARM的硬件结构设计扩展接口的开发尽可能采用扩展接口的开发尽可能采用FPGAFPGA或或CPLDCPLD等器件开发。等器件开发。这类器件都有开发平台的支持,开发难度较小

59、,开发出的这类器件都有开发平台的支持,开发难度较小,开发出的硬件性能可靠、结构紧凑、利于修改、保密性好。硬件性能可靠、结构紧凑、利于修改、保密性好。在扩展了在扩展了RS-232RS-232等标准串口以后,嵌入式系统可和等标准串口以后,嵌入式系统可和PCPC机通信,对于众多测控方面的人机对话、报表输出、集成机通信,对于众多测控方面的人机对话、报表输出、集成控制等功能进行优势互补。控制等功能进行优势互补。C C语言是普及最广泛的程序设计语言,它既有高级语语言是普及最广泛的程序设计语言,它既有高级语言的各种特点,又可对硬件进行操作,并可进行结构化程言的各种特点,又可对硬件进行操作,并可进行结构化程序

60、设计,用序设计,用C C语言编写的程序较容易移植。目前已有专用语言编写的程序较容易移植。目前已有专用的的C C语言编译器,它们可生成简洁可靠的目标代码,在代语言编译器,它们可生成简洁可靠的目标代码,在代码效率和代码执行速度上完全可以和汇编媲美。码效率和代码执行速度上完全可以和汇编媲美。 有时开发一个嵌入式系统应用项目,在仿真调试完成有时开发一个嵌入式系统应用项目,在仿真调试完成后系统运行正常,而接入现场后出现不能正常运行或运行后系统运行正常,而接入现场后出现不能正常运行或运行时好时坏,脱离现场后一切正常,这种现象就涉及到可靠时好时坏,脱离现场后一切正常,这种现象就涉及到可靠性问题。解决这种问题

61、可以从以下几个方面考虑:性问题。解决这种问题可以从以下几个方面考虑:41基于ARM的硬件结构设计1 1)选择性能好、抗干扰能力强的供电系统,)选择性能好、抗干扰能力强的供电系统,尽量少地从电源引入干扰;尽量少地从电源引入干扰; 2 2)设计电路板时排除可能引起干扰的因)设计电路板时排除可能引起干扰的因素,合理布线,避免高频信号的干扰;素,合理布线,避免高频信号的干扰; 3 3)选择较好的接地方式,如模拟地和数)选择较好的接地方式,如模拟地和数字地采用一点接地方式,驱动大电流信号时采用字地采用一点接地方式,驱动大电流信号时采用光电隔离;光电隔离; 4 4)数据采集时进行数字滤波处理,常用)数据采

62、集时进行数字滤波处理,常用的数字滤波方式有:程序判断滤波、中位值滤波、的数字滤波方式有:程序判断滤波、中位值滤波、算术平均滤波、递推平均滤波法、防脉冲干扰平算术平均滤波、递推平均滤波法、防脉冲干扰平均值滤波、一阶滞后滤波等。均值滤波、一阶滞后滤波等。 由于干扰问题可能是由于不同的原因引起,由于干扰问题可能是由于不同的原因引起,在设计时要根据项目应用场所分析可能出现的干在设计时要根据项目应用场所分析可能出现的干扰,有目的地设计抗干扰电路。扰,有目的地设计抗干扰电路。42基于ARM的硬件结构设计其中,开发平台部分为用户提供了一个简易,其中,开发平台部分为用户提供了一个简易,方便的开发环境,使用户可

63、对单片机应用项目进方便的开发环境,使用户可对单片机应用项目进行可视化开发行可视化开发 硬件智能开发部分提供了一个通过选项开硬件智能开发部分提供了一个通过选项开发硬件原理图的方法,这个过程中根据硬件方案发硬件原理图的方法,这个过程中根据硬件方案平台自动的生成一部分配套软件。平台自动的生成一部分配套软件。 可视化软件开发可简单方便的开发出用户可视化软件开发可简单方便的开发出用户程序,成品系统库中有大量已开发成功的项目,程序,成品系统库中有大量已开发成功的项目,在产品开发时如开发项目功能相近,只要略加修在产品开发时如开发项目功能相近,只要略加修改便可成为一个新的项目。成品系统库开发为用改便可成为一个

64、新的项目。成品系统库开发为用户升级成品库提供了一个开放式的环境。户升级成品库提供了一个开放式的环境。 子程序开发中为子程序的升级提供了一个子程序开发中为子程序的升级提供了一个开放式的环境。实用信息部分提供了开发方面用开放式的环境。实用信息部分提供了开发方面用到的大量实用信息到的大量实用信息43基于ARM的硬件结构设计4.1.44.1.4嵌入式系统设计的层次和设计架构嵌入式系统设计的层次和设计架构 嵌入式系统设计的层次分为系统级和应用级嵌入式系统设计的层次分为系统级和应用级 设计原则具体分为:设计原则具体分为:v复用原则复用原则v模块化原则模块化原则v标准化原则标准化原则 地址总线;数据总线;控

65、制总线地址总线;数据总线;控制总线v电源、网络标号的使用电源、网络标号的使用- -网络标号的使用反映用途网络标号的使用反映用途例如例如:RXD,TXD:RXD,TXD等等v分图的处理分图的处理 分图之间的连接线尽量少分图之间的连接线尽量少44基于ARM的硬件结构设计 嵌入式系统硬件系统的设计架构大致可包含三部分:嵌入式系统硬件系统的设计架构大致可包含三部分: (1)(1)、微处理器的选型、时钟及复位电路的设计、微处理器的选型、时钟及复位电路的设计 (2)(2)、存储系统、存储系统ROM/RAMROM/RAM的设计的设计 (3)(3)、系统外围设备接口电路的设计、系统外围设备接口电路的设计 其中

66、系统外围设备接口电路的硬件部分包括:其中系统外围设备接口电路的硬件部分包括:通用接口的设计、人机交互接口的设计和网络接通用接口的设计、人机交互接口的设计和网络接口的设计。口的设计。 针对不同类型的处理器应采用不同的设计方针对不同类型的处理器应采用不同的设计方法。法。45基于ARM的硬件结构设计 近年来,各种可编程芯片的出现,改变了嵌入式硬件模块的近年来,各种可编程芯片的出现,改变了嵌入式硬件模块的设计方法,出现设计方法,出现“可重构计算可重构计算“的概念。可重构计算是通过可编的概念。可重构计算是通过可编程逻辑器件实现的,它允许在不改变硬件电路板的情况下,实现程逻辑器件实现的,它允许在不改变硬件

67、电路板的情况下,实现不同的控制接口和控制功能。可重构计算结合了通用微处理器和不同的控制接口和控制功能。可重构计算结合了通用微处理器和ASICASIC的特点。的特点。v 可重构计算是通过现场编成门阵列可重构计算是通过现场编成门阵列FPGAFPGA实现的。实现的。FPGAFPGA是是2020世世纪纪8080年代中期以后发展起来的一种可编程的大规模集成器件。年代中期以后发展起来的一种可编程的大规模集成器件。FPGAFPGA具有保密性好、体积小、重量轻、可靠性高等一系列专用大具有保密性好、体积小、重量轻、可靠性高等一系列专用大规模集成电路规模集成电路ASICASIC的优点,是一种新型的的优点,是一种新

68、型的ASICASIC产品。产品。v FGPAFGPA的出现,是电子系统设计领域内的一次重大变革。这次的出现,是电子系统设计领域内的一次重大变革。这次变革使一个电子系统可仅仅由三种标准模块构成,即微处理器、变革使一个电子系统可仅仅由三种标准模块构成,即微处理器、存储器和可编程逻辑器件。以往,前两种器件已经产品化、系列存储器和可编程逻辑器件。以往,前两种器件已经产品化、系列化,而系统中大量的逻辑控制仍由许多中小规模器件来实现,其化,而系统中大量的逻辑控制仍由许多中小规模器件来实现,其工作复杂,开发周期长,而且速度低,可靠性差。工作复杂,开发周期长,而且速度低,可靠性差。FPGAFPGA的出现,的出

69、现,使系统中的第三个模块也实现了大规模集成化与可编程化。这一使系统中的第三个模块也实现了大规模集成化与可编程化。这一方面改进了系统的可调整性,降低了功耗,提高了可靠性促使系方面改进了系统的可调整性,降低了功耗,提高了可靠性促使系统更加小型化,另一方面大大缩短了系统的开发周期,减少了设统更加小型化,另一方面大大缩短了系统的开发周期,减少了设计成本,并降低了设计风险。计成本,并降低了设计风险。46基于ARM的硬件结构设计4.2 微处理器系统的硬件设计v 在现阶段,嵌入式系统设计仍处于一种手工阶在现阶段,嵌入式系统设计仍处于一种手工阶段。虽然有关硬件结构和软件子系统的知识是很清楚段。虽然有关硬件结构

70、和软件子系统的知识是很清楚的,但是还没有协调整个设计过程的通用系统设计方的,但是还没有协调整个设计过程的通用系统设计方法,在大多数项目中嵌入式系统的设计仍然采用某种法,在大多数项目中嵌入式系统的设计仍然采用某种特定方法。特定方法。v嵌入式系统设计所面临的某些挑战源于基础技术嵌入式系统设计所面临的某些挑战源于基础技术的改变以及系统各部件如何能全部正确地混合和集成的改变以及系统各部件如何能全部正确地混合和集成在一起的细微之处,另一些挑战源于新的并且常常是在一起的细微之处,另一些挑战源于新的并且常常是不熟悉的系统需求。此外用于通信和协作的基础设施不熟悉的系统需求。此外用于通信和协作的基础设施和技术的

71、改善已经使快速设计以响应市场需求呈现出和技术的改善已经使快速设计以响应市场需求呈现出前所未有的可能性。但是,还没有有效的设计方法和前所未有的可能性。但是,还没有有效的设计方法和相关的设计工具足以迅速应付这些挑战。相关的设计工具足以迅速应付这些挑战。47基于ARM的硬件结构设计 v微处理器系统的硬件一般包括有微处理器、时微处理器系统的硬件一般包括有微处理器、时钟电路、复位电路和电源管理等几部分。钟电路、复位电路和电源管理等几部分。v微处理器是根据不同应用的场合来进行选型。微处理器是根据不同应用的场合来进行选型。v时时钟钟管管理理为为各各个个外外围围模模块块提提供供时时钟钟。在在不不使使用用某某个

72、个单单元元时时刻刻关关闭闭其其时时钟钟以以降降低低功功耗耗。这这些些时时钟均来自核内部的可控频率的时钟源钟均来自核内部的可控频率的时钟源PLLPLL。v复复位位电电路路一一般般有有硬硬件件复复位位(RESETRESET引引脚脚)、WatchdogWatchdog软件复位等方式。软件复位等方式。v电电源源管管理理可可控控制制处处理理器器的的几几种种不不同同耗耗电电的的工工作作方式。方式。48基于ARM的硬件结构设计 v(1 1)运行方式)运行方式 属正常工作方式,允许所属正常工作方式,允许所有电源和允许的时钟。在复位可进入运行方式。有电源和允许的时钟。在复位可进入运行方式。v(2 2)空闲方式)

73、空闲方式 允许用户停止允许用户停止CPUCPU核时钟,核时钟,但仍继续监视片内和外中断服务请求。这时系但仍继续监视片内和外中断服务请求。这时系统单元模块(中断控制器、统单元模块(中断控制器、LCDLCD控制器、时钟和控制器、时钟和电源管理器等)及存储器仍处于运行状态电源管理器等)及存储器仍处于运行状态v(3 3)睡眠方式)睡眠方式 内核可无电源,仅电源管内核可无电源,仅电源管理器继续工作。仅唤醒信号和复位信号等才能理器继续工作。仅唤醒信号和复位信号等才能触发处理器。触发处理器。v快速方式(快速方式(PXA250PXA250)或低速方式()或低速方式(S3C2410S3C2410) 部分机器带有

74、允许处理机核在短时间内高速部分机器带有允许处理机核在短时间内高速/ /低低速运行。速运行。49基于ARM的硬件结构设计4.2.1 ARM4.2.1 ARM微处理器芯片选型的一般原则微处理器芯片选型的一般原则 (1 1)ARMARM内核内核 如果希望使用如果希望使用WinCEWinCE或或LinuxLinux等操作系统以等操作系统以减少软件开发时间,就需要选择减少软件开发时间,就需要选择ARM7TARM7T以上带有以上带有MMUMMU功能功能的的ARMARM芯片。芯片。(2 2)系统时钟控制器)系统时钟控制器 系统时钟决定了系统时钟决定了ARMARM芯片的处理芯片的处理速度,常见的速度,常见的A

75、RM7ARM7芯片系统时钟为芯片系统时钟为20MHZ133MHZ ,ARM920MHZ133MHZ ,ARM9的系统时钟为的系统时钟为100MHZ233MHZ,ARM10100MHZ233MHZ,ARM10最高可以达到最高可以达到700MHZ700MHZ。有的芯片只有一个主时钟频率,这样的芯片不。有的芯片只有一个主时钟频率,这样的芯片不能顾及能顾及UARTUART和音频时钟的准确性。有的芯片内部时钟控和音频时钟的准确性。有的芯片内部时钟控制器可以分别为制器可以分别为CPUCPU内核和内核和USBUSB、DSPDSP、音频等功能部件、音频等功能部件提供不同频率的时钟。提供不同频率的时钟。 还有内

76、存储器容量、还有内存储器容量、USBUSB接口、接口、GPIO(GPIO(引脚引脚) )数量、数量、IISIIS(集成音频接口)、(集成音频接口)、LCDLCD控制器、控制器、PWMPWM输出、输出、ADCADC和和DACDAC、UARTUART和和IrDAIrDA、DSPDSP、内置、内置FPGAFPGA、DMADMA控制器等。还控制器等。还有多有多ARMARM内核、内核、ARMARM芯核芯核+DSP+DSP芯核、芯核、ARMARM芯核芯核+FPGA+FPGA等。等。50基于ARM的硬件结构设计ARMARM处理器本身是处理器本身是3232位设计,但也配备位设计,但也配备1616位指令集,位指

77、令集,以允许软件编码为更短的以允许软件编码为更短的1616位指令。与等价的位指令。与等价的3232代码代码相比,占用的存储器空间可节省高达相比,占用的存储器空间可节省高达35%35%,然而保留了,然而保留了3232位系统所有的优势。位系统所有的优势。 ARMARM还提供了两个前沿特性还提供了两个前沿特性嵌入式嵌入式ICERTICERT逻逻辑和嵌入式跟踪宏核系列,用以辅助带嵌入式处理器辑和嵌入式跟踪宏核系列,用以辅助带嵌入式处理器核的、高集成的核的、高集成的SOCSOC器件的调试。器件的调试。ARMARM业界领先的跟踪解决方案业界领先的跟踪解决方案嵌入式跟踪宏单嵌入式跟踪宏单元(元(ETM,Em

78、beddeb Trace MacrocellETM,Embeddeb Trace Macrocell),被设计成驻),被设计成驻留在留在ARMARM处理器上,用以监控内部总线,并能以核速度处理器上,用以监控内部总线,并能以核速度无妨碍地跟踪指令和数据的访问。无妨碍地跟踪指令和数据的访问。51基于ARM的硬件结构设计 * * 基于基于ARM7ARM7架构的嵌入式芯片架构的嵌入式芯片Samsung3C44B0xSamsung3C44B0x芯芯片片* * 8MB SDRAM8MB SDRAM,1MB1MB线性线性FlashFlash、16MB16MB非线性非线性FlashFlash* * 接口丰富:

79、串口、接口丰富:串口、USBUSB等等* * 键盘输入,键盘输入,320320 240240分辨率分辨率1616级灰度级灰度LCDLCD显示显示* * 10M10M以太网口,支持以太网口,支持TCP/IPTCP/IP协议协议* * 触摸屏触摸屏* * 预留预留A/DA/D、I/DI/D、SPISPI、I I2 2C C、IISIIS等总线接口等总线接口 简介简介 52基于ARM的硬件结构设计嵌入式硬件平台体系结构图53基于ARM的硬件结构设计4.2.2 4.2.2 多路时钟电路的设计多路时钟电路的设计v 在在8 8位单片机中时钟电路产生的频率可直接作为单片机的主频位单片机中时钟电路产生的频率可

80、直接作为单片机的主频工作,但在高频时易产生电磁干扰。因此在高性能的嵌入式处理工作,但在高频时易产生电磁干扰。因此在高性能的嵌入式处理器上通常使用频率较低的基准时钟源,然后通过锁相倍频电路得器上通常使用频率较低的基准时钟源,然后通过锁相倍频电路得到高频时钟在进行分频器进行分频,获得多时钟源来提供给系统到高频时钟在进行分频器进行分频,获得多时钟源来提供给系统使用。使用。v 出出于于节节电电设设计计的的考考虑虑,不不同同的的I/OI/O接接口口等等智智能能部部件件的的工工作作状状态态可可以以由由处处理理器器的的编编程程控控制制。于于是是这这样样处处理理器器内内部部设设计计了了多多种种时时钟钟源源,分

81、分别别为为处处理理器器内内核核、实实时时时时钟钟电电路路、I/OI/O部部件件提提供供不不同同的的时时钟钟信信号号。例例如如,使使用用MC68EZ328MC68EZ328的的锁锁相相时时钟钟电电路路可可以以形形成成四四种种时时钟钟输输出出,其其一一是是CLK32CLK32,即即32khz32khz的的时时钟钟源源,送送给给实实时时时时钟钟,完完成成嵌嵌入入式式处处理理器器的的日日历历功功能能。其其二二是是LCDCLKLCDCLK,液液晶晶控控制制器器的的时时钟钟。其三是其三是DMACLKDMACLK,DMADMA控制器的时钟。最后是控制器的时钟。最后是SYSCLKSYSCLK,系统主时钟。,系

82、统主时钟。v ARMARM微微处处理理器器内内核核中中有有一一个个可可控控频频率率的的时时钟钟源源PLLPLL(Phase Phase Locked Locked Loop,Loop,锁锁相相环环电电路路)把把低低频频振振荡荡器器的的输输出出作作为为自自己己的的输输入入,产产生生所所需需的的高高频频信信号号。时时钟钟发发生生模模块块有有一一个个逻逻辑辑电电路路,用用来来在在复复位位后后或或各各种种模模式式下下产产生生稳稳定定的的时时钟钟频频率率。其其他他的的时时钟钟均均来来自自核核内内部的部的PLLPLL。54基于ARM的硬件结构设计 v 多路时钟方式一般用于高性能的嵌入式处理多路时钟方式一般

83、用于高性能的嵌入式处理器中,通常器中,通常3232位及以上处理器中不同的功能部件位及以上处理器中不同的功能部件电路使用不同频率的时钟频率工作。电路使用不同频率的时钟频率工作。v各个时钟内部之间具有相关性,它们是通各个时钟内部之间具有相关性,它们是通过主时钟分频或倍频来形成的。有的系统是过主时钟分频或倍频来形成的。有的系统是采用两套石英晶振来实现。采用两套石英晶振来实现。日历时钟系统与处理器集成在一起。日历时钟系统与处理器集成在一起。v日历时钟日历时钟32.768KHz32.768KHz,可以通过两种方式实,可以通过两种方式实现。其一是通过对主时钟进行分频方式来实现。其一是通过对主时钟进行分频方

84、式来实现,其二是由外部现,其二是由外部32.768KHz32.768KHz晶体振荡器直晶体振荡器直接产生接产生32.768KHz 32.768KHz 日历时钟信号。日历时钟信号。v处理器的日历时钟一直工作,即使系统进处理器的日历时钟一直工作,即使系统进入省电状态的时候也同样工作。入省电状态的时候也同样工作。v系统不需要外接日历时钟芯片和相关的电系统不需要外接日历时钟芯片和相关的电路路55基于ARM的硬件结构设计4.2.3 4.2.3 系统复位电路的设计系统复位电路的设计 系统复位电路的设计也是设计中系统复位电路的设计也是设计中一个一个必要的环节。必要的环节。比如在比如在 微处理器微处理器S3C

85、44B0XS3C44B0X中,首先把外部复位信号也中,首先把外部复位信号也作为一个中断来处理。在系统复位的时候,程序(作为一个中断来处理。在系统复位的时候,程序(PCPC)指针被设置成指针被设置成0 0,使程序跳转到,使程序跳转到0x000000000x00000000开始运行。开始运行。此空间对应的是此空间对应的是Bank0,Bank0,系统的系统的1MB1MB的线性的线性FlashFlash和处理器和处理器的的Bank0Bank0相连接。在线性相连接。在线性FlashFlash里存储的是供系统初始化里存储的是供系统初始化的程序,此程序负责配置处理系统的结构、工作模式以的程序,此程序负责配置

86、处理系统的结构、工作模式以及自动检测嵌入式控制器的各个硬件是否工作正常。系及自动检测嵌入式控制器的各个硬件是否工作正常。系统经过初始化和硬件自检以后,此程序负责把存储在统经过初始化和硬件自检以后,此程序负责把存储在16MB16MB的非线性处理器里面的的非线性处理器里面的system.binsystem.bin文件复制到文件复制到0xc0000000xc000000地址(此地址是系统地址(此地址是系统8MB8MB的的SDRAMSDRAM的首地址)。的首地址)。然后,引导程序把程序(然后,引导程序把程序(PCPC)指针指向)指针指向0xc0000000xc000000地址,地址,系统开始运行。系统

87、开始运行。56基于ARM的硬件结构设计 系统复位电路图57基于ARM的硬件结构设计初始化内容v中断向量表(中断向量表(vector tablevector table)始终在始终在 0 0 地址处开始。地址处开始。初始化存储器系统初始化存储器系统Memory access interface: type, timing, etc.Memory access interface: type, timing, etc.v初始化堆栈初始化堆栈为指定的模式分别设置为指定的模式分别设置 SPSP,注意模式改变次序,注意模式改变次序v初始化有特殊要求的端口、设备初始化有特殊要求的端口、设备v初始化应用程序

88、执行环境初始化应用程序执行环境全局变量区,动态存储器分配区全局变量区,动态存储器分配区v改变处理器模式改变处理器模式包括中断使能控制包括中断使能控制v呼叫应用程序呼叫应用程序跳转至主函数入口跳转至主函数入口部分次序可调整58基于ARM的硬件结构设计4.2.4 电源管理器v 嵌入式系统中各个单元的电压范围有如下几种:嵌入式系统中各个单元的电压范围有如下几种:v1.35V(1.35V(部分微处理器)、部分微处理器)、 3.3V3.3V(外部接口芯片)(外部接口芯片) 和和 5.0V5.0V、 12V12V(外部设备)。(外部设备)。 v 操作系统是通过电源管理器来进行系统的电源管操作系统是通过电源

89、管理器来进行系统的电源管理,提高整个系统的电源效率,并为每一个外围设备理,提高整个系统的电源效率,并为每一个外围设备模块提供电源管理。通过电源管理不仅可以减少目标模块提供电源管理。通过电源管理不仅可以减少目标设备上的电源损耗,而且可以在系统重启、运行、空设备上的电源损耗,而且可以在系统重启、运行、空闲和挂起的电源状态下保存闲和挂起的电源状态下保存RAM RAM 中的文件系统。电源中的文件系统。电源管理模块通过软件来控制系统时钟,以降低微处理器管理模块通过软件来控制系统时钟,以降低微处理器的耗电量。这些方案与、时钟控制逻辑、外设的耗电量。这些方案与、时钟控制逻辑、外设的时钟控制以及唤醒信号有关。

90、的时钟控制以及唤醒信号有关。 v 电源管理器会同三种不同的客户端程序发生作用,电源管理器会同三种不同的客户端程序发生作用,对于这三种客户端电源管理器提供了不同的编程接口:对于这三种客户端电源管理器提供了不同的编程接口:59基于ARM的硬件结构设计 v电源管理器相关的设备驱动程序电源管理器相关的设备驱动程序v可以改变系统电源状态或者改变设备性能的应用程序,可以改变系统电源状态或者改变设备性能的应用程序,如一些需要改变系统时钟频率的应用;如一些需要改变系统时钟频率的应用;v在电源相关事件发生时需要得到通知的应用程序以及在电源相关事件发生时需要得到通知的应用程序以及影响系统的电源状态的改变的应用程序

91、,例如电池电影响系统的电源状态的改变的应用程序,例如电池电量低时发出警告的程序。量低时发出警告的程序。v芯片的电源管理技术:芯片的电源管理技术:芯片内部:电压分区设置、时钟管理、分区投切芯片内部:电压分区设置、时钟管理、分区投切外围器件:电源开关、可关断外围器件:电源开关、可关断DC/DCDC/DC、可关断器件、可关断器件 电源管理器可控制微处理器的几种不同耗电的工作方电源管理器可控制微处理器的几种不同耗电的工作方式:运行方式、空闲方式、睡眠方式。式:运行方式、空闲方式、睡眠方式。 60基于ARM的硬件结构设计4.3 存储系统的分析与设计v存储器是构成嵌入式系统硬件的重要组成部分。出于成存储器

92、是构成嵌入式系统硬件的重要组成部分。出于成本和体积的限制,嵌入式系统的存储器通常采用高度集本和体积的限制,嵌入式系统的存储器通常采用高度集成的存储芯片,以节省电路板的面积,减少设计的复杂成的存储芯片,以节省电路板的面积,减少设计的复杂性,提高系统的可靠性。性,提高系统的可靠性。v基于嵌入式微处理器基于嵌入式微处理器/ /控制器的专用嵌入式系统而言,控制器的专用嵌入式系统而言,它们的存储器系统与通用计算机系统的设计方法有所不它们的存储器系统与通用计算机系统的设计方法有所不同,主要体现在以下几个方面。同,主要体现在以下几个方面。v嵌入式系统由于体积的限制,尽量使用存储密度比较大嵌入式系统由于体积的

93、限制,尽量使用存储密度比较大的存储芯片。的存储芯片。v嵌入式系统由于功耗的限制,在设计嵌入式系统的存储嵌入式系统由于功耗的限制,在设计嵌入式系统的存储系统时需要考虑功耗问题。系统时需要考虑功耗问题。v出于成本考虑,大多数嵌入式系统的存储器容量与软件出于成本考虑,大多数嵌入式系统的存储器容量与软件的大小相匹配。的大小相匹配。61基于ARM的硬件结构设计 v使用使用MCUMCU微控制器的嵌入式系统,由于微控制器上集成微控制器的嵌入式系统,由于微控制器上集成了存储器资源了存储器资源(ROM(ROM和和RAM),RAM),因此有的系统可以不需要因此有的系统可以不需要另外设计存储器子系统;有的则需要扩展

94、一部分存储另外设计存储器子系统;有的则需要扩展一部分存储器子系统。器子系统。v如果嵌入式处理器上没有存储器,就进行扩充,通常如果嵌入式处理器上没有存储器,就进行扩充,通常需要扩充需要扩充ROMROM子系统用于存储程序,子系统用于存储程序,RAMRAM子系统用于存子系统用于存储中间数据,储中间数据,FlachROMFlachROM子系统用于存储配置数据和常子系统用于存储配置数据和常数。数。v嵌入式系统的存储子系统通常设置成模块结构,包括嵌入式系统的存储子系统通常设置成模块结构,包括ROMROM子系统、子系统、RAMRAM子系统,每个子系统占用一定的存储子系统,每个子系统占用一定的存储空间。空间。

95、v嵌入式系统的存储器通常与系统主板设计在一起,而嵌入式系统的存储器通常与系统主板设计在一起,而不设计成所谓的内存条形式。原因是:一方面嵌入式不设计成所谓的内存条形式。原因是:一方面嵌入式系统的内存通常是固定大小的;另一方面一体系结构系统的内存通常是固定大小的;另一方面一体系结构可以提高系统的可靠性。可以提高系统的可靠性。62基于ARM的硬件结构设计 v ARMARM架架构构处处理理器器的的存存储储器器寻寻址址空空间间有有4GB4GB。该该存存储储空空间间可以分为快存可以分为快存/ /缓存区域和不可快存缓存区域和不可快存/ /不可缓存区域。不可缓存区域。vARMARM架架构构的的处处理理器器有有

96、的的带带有有指指令令快快存存和和数数据据快快存存。但但是是片片内内都都不不带带有有RAMRAM和和ROMROM。 系系统统所所需需的的RAMRAM和和ROMROM(包包括括闪闪存存)都都通通过过总总线线外外接接。由由于于系系统统的的地地址址范范围围较较大大,所所以以有的片内还带有有的片内还带有MMUMMU。ARMARM架构处理器还允许外接架构处理器还允许外接PCMCIAPCMCIA。v快快存存(CacheCache)是是一一种种小小容容量量、高高速速度度的的存存储储器器,用用于于处处理理器器与与主主存存之之间间存存放放当当前前被被使使用用的的主主存存内内容容,以以减减少少访访问问主主存存的的等

97、等待待时时间间。快快存存放放置置数数据据的的常常用用地地址址变变换换方方法法有有直直接接映映像像、组组相相联联映映像像、和和全全相相联联映映像像方方式式。替替换换算算法法有有随随机机法法、近近期期最最少少使使用用法法和和循循环环法法。存存储储器器写写策策略采用写直达法、通过缓存写直达法和写回法。略采用写直达法、通过缓存写直达法和写回法。63基于ARM的硬件结构设计 v对于对于3232位地址、位地址、4GB4GB寻址的寻址的ARMARM微处理器一般都采用页微处理器一般都采用页式寻址的方式。若页面大小为式寻址的方式。若页面大小为4KB4KB,可采用,可采用2 2级页表的级页表的方式来寻址。在方式来

98、寻址。在3232位逻辑地址中,最高位逻辑地址中,最高1010位用作为目位用作为目录索引,接下来的录索引,接下来的1010位作为页表项索引,余下的作偏位作为页表项索引,余下的作偏移量。移量。v由于页目录和页表都存放在主存中,从逻辑地址变换由于页目录和页表都存放在主存中,从逻辑地址变换至物理地址需读至物理地址需读2 2次主存。因此在它们之间插入了一个次主存。因此在它们之间插入了一个地址变换缓冲器地址变换缓冲器TLBTLB(转换旁路缓冲器)。(转换旁路缓冲器)。TLBTLB中每一中每一项都由逻辑页号与相对应物理页号所组成。项都由逻辑页号与相对应物理页号所组成。TLBTLB采用类采用类似快存的结构,只

99、存放最近使用过的页表项,故也称似快存的结构,只存放最近使用过的页表项,故也称为快表。而页表与段表之间的变换表则称为慢表。为快表。而页表与段表之间的变换表则称为慢表。vARMARM的存储器管理的存储器管理MMUMMU是通过系统控制协处理器是通过系统控制协处理器CP15CP15来来实现和完成虚拟存储器管理功能的。实现和完成虚拟存储器管理功能的。64基于ARM的硬件结构设计 高速缓冲存储器高速缓冲存储器工作原理:65基于ARM的硬件结构设计4.3.1 4.3.1 存储系统的构成分析存储系统的构成分析下面以基于下面以基于S3C44B0XS3C44B0X的存的存储系系统为例来例来进行介行介绍。 v支持数

100、据存支持数据存储的大的大/ /小端小端选择( (通通过外部引脚和程序外部引脚和程序进行行选择) )v地址空地址空间:具有:具有8 8个存个存储体,每个存体,每个存储体可达体可达32Mb32Mb,总共可达共可达256MB256MB。v对所有存所有存储体的体的访问大小均可大小均可进行改行改变(8 8位位1616位位3232位)位)v8 8个个BankBank中,中,Bank0Bank0Bank5Bank5可支持可支持ROMROM、SRAMSRAM;Bank6Bank6、Bank7Bank7可支持可支持ROMROM、SRAMSRAM和和EDOEDOSDRAMSDRAM等。等。66基于ARM的硬件结构

101、设计 1) 存储器接口存储器接口ARMARM的总线接口信号分成的总线接口信号分成4 4类类( (以以ARM7TDMIARM7TDMI为例说明为例说明):):时钟和时钟控制信号:时钟和时钟控制信号:MCLKMCLK、ECLKECLK、nRESETnRESET、nWAITnWAIT。地地址址类类信信号号:A31.0A31.0、nRWnRW、MAS1.0MAS1.0、nOPCnOPC、nTRANSnTRANS、LOCKLOCK、TBITTBIT。存储器请求信号:存储器请求信号:nMREQnMREQ、SEQSEQ。数数 据据 时时 序序 信信 号号 : D31.0D31.0、 DIN31.0DIN31

102、.0、DOUT31.0DOUT31.0、ABORTABORT、BL3.0BL3.0。67基于ARM的硬件结构设计2 2)典型系统中存储体的分配情况)典型系统中存储体的分配情况存储体存储体与存储体的接口与存储体的接口Bank0BIOS 512K2FlashBank116M Flash 硬盘硬盘Bank2USB接口接口Bank3LCD显示模块显示模块Bank4保留保留Bank5保留保留Bank6系统内存系统内存SDRAMBank7保留保留68基于ARM的硬件结构设计系统的存储空间分配vBank0:1Bank0:1片片2MB NOR Flash2MB NOR Flash,放置系统引导程序,系统上,放

103、置系统引导程序,系统上电复位后,电复位后,PCPC指针自动指向指针自动指向Bank0Bank0的第一个单元,进行的第一个单元,进行系统自举。以便从硬盘中将系统文件和用户应用程序复系统自举。以便从硬盘中将系统文件和用户应用程序复制到制到SDRAMSDRAM内存中执行。值得注意的是在嵌入式系统中内存中执行。值得注意的是在嵌入式系统中内核映象与根系统映象也可以直接在内核映象与根系统映象也可以直接在FlashFlash这样的固态这样的固态存储器中直接运行,但是会使其运行速度减慢。存储器中直接运行,但是会使其运行速度减慢。 vBank1Bank1:非线性寻址。:非线性寻址。Bank1Bank1上接上接1

104、6M NAND Flash16M NAND Flash,当做,当做系统硬盘使用,可以构造文件系统,存放海量数据。系统硬盘使用,可以构造文件系统,存放海量数据。v用用SDRAMSDRAM当作系统内存,只有当作系统内存,只有Bank6/Bank7Bank6/Bank7能支持能支持SDRAMSDRAM,所以将,所以将SDRAMSDRAM接在接在Bank6Bank6上。如果同时使用上。如果同时使用Bank6/Bank7Bank6/Bank7,则要求连接相同容量的存储器,而且其,则要求连接相同容量的存储器,而且其地址空间在物理上是连续的。地址空间在物理上是连续的。vBank2Bank2:PDIUSBD1

105、2PDIUSBD12。USBUSB设备端接口芯片,占用系统外设备端接口芯片,占用系统外部中断部中断0 0。8 8位数据总线。位数据总线。vBank3Bank3、Bank4Bank4未接设备。可以供扩展使用。未接设备。可以供扩展使用。69基于ARM的硬件结构设计vBank5Bank5:RTL8019ASRTL8019AS,ISAISA总线兼容的总线兼容的10M10M以太网(以太网(PHYPHYMACMAC层)控制芯片。占用系统外部中断层)控制芯片。占用系统外部中断1 1,1616位数据总线;位数据总线;扩展扩展IOIO口口vBank6Bank6:SDRAMSDRAM,起始地址为,起始地址为0xC

106、0000000xC000000。在。在SDRAMSDRAM中,前中,前512Kbyte512Kbyte的空间划分出来,作为系统的的空间划分出来,作为系统的LCDLCD显示缓冲区显示缓冲区使用(更新其中的数据,就可以更新使用(更新其中的数据,就可以更新LCDLCD的显示)。系的显示)。系统的程序存储空间从统的程序存储空间从0xC0800000xC080000开始。也就是,引导系开始。也就是,引导系统的时候,需要把统的时候,需要把system.binsystem.bin文件复制到文件复制到0xC0800000xC080000开开始的地址空间,把始的地址空间,把PCPC指针指向指针指向0xC0800

107、000xC080000。vBank7Bank7:未使用。可以扩展另一片:未使用。可以扩展另一片SDRAMSDRAM,或者其他的外设。,或者其他的外设。v系统的同步串行口(系统的同步串行口(SIOSIO),连接着触摸屏控制芯片),连接着触摸屏控制芯片FM7843FM7843(与(与ADS7843ADS7843完全兼容);完全兼容);CANCAN总线控制芯片总线控制芯片MCP2510MCP2510;Max504Max504(D/AD/A););键盘和键盘和LEDLED扫描芯片扫描芯片ZLG7289ZLG7289。在同步串行口上,还可以扩展其他。在同步串行口上,还可以扩展其他的芯片。通过的芯片。通过

108、IOIO口控制设备的片选信号(口控制设备的片选信号(CSCS)来防止设备的冲突。)来防止设备的冲突。70基于ARM的硬件结构设计3) Boot Loader的任务vBoot LoaderBoot Loader是系统加电后首先运行的一段代码,其目是系统加电后首先运行的一段代码,其目的是将系统的软硬件环境带到一个合适的状态,为调用的是将系统的软硬件环境带到一个合适的状态,为调用操作系统内核准备好正确的环境。对于不使用操作系统操作系统内核准备好正确的环境。对于不使用操作系统的嵌入式系统而言,应用程序的运行同样也需要依赖它,的嵌入式系统而言,应用程序的运行同样也需要依赖它,因此因此Boot Loade

109、rBoot Loader对于嵌入式系统是必要的。对于嵌入式系统是必要的。v每种嵌入式微处理器体系结构都有不同的每种嵌入式微处理器体系结构都有不同的Boot LoaderBoot Loader。即使是基于相同嵌入式微处理器构建不同嵌入式目标板即使是基于相同嵌入式微处理器构建不同嵌入式目标板也要修改也要修改Boot LoaderBoot Loader的源程序。因此,建立一个通用、的源程序。因此,建立一个通用、标准的标准的Boot LoaderBoot Loader应该是几乎不可能的。应该是几乎不可能的。v通常,通常, Boot LoaderBoot Loader只有几十只有几十KBKB的大小,其作

110、用相当于的大小,其作用相当于普通普通pcpc机的机的BIOSBIOS,是在系统复位后执行的第一段代码。,是在系统复位后执行的第一段代码。71基于ARM的硬件结构设计 v因此,整个系统的加载启动任务就完全由因此,整个系统的加载启动任务就完全由Boot LoaderBoot Loader来完成。它首先完成系统硬件的初始化,包括时钟的设来完成。它首先完成系统硬件的初始化,包括时钟的设置、存储器的映射等。并设置堆栈指针,然后跳转到操置、存储器的映射等。并设置堆栈指针,然后跳转到操作系统内核入口,如系统在加电或复位时通常从地址作系统内核入口,如系统在加电或复位时通常从地址0x000000000x0000

111、0000处开始执行,而在这个地址处安排的通常就处开始执行,而在这个地址处安排的通常就是系统的是系统的Boot LoaderBoot Loader程序。这样,将系统的软硬件环程序。这样,将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。在此之后,系统的运行在操作系统准备好正确的环境。在此之后,系统的运行在操作系统的控制下了。的控制下了。v另外,由于大多数另外,由于大多数Boot LoaderBoot Loader都分为阶段都分为阶段1 1和阶段和阶段2 2两两部分。依赖于部分。依赖于CPUCPU的体系结构的代码,比如

112、设备初始化的体系结构的代码,比如设备初始化代码等,通常都放在阶段代码等,通常都放在阶段1 1中,而且通常用汇编语言来中,而且通常用汇编语言来实现,以达到短小精悍的目的。而阶段实现,以达到短小精悍的目的。而阶段2 2通常用通常用C C语言来语言来实现,这样可以实现一些复杂的功能,而且代码会具有实现,这样可以实现一些复杂的功能,而且代码会具有更好的可读性和移植性。更好的可读性和移植性。72基于ARM的硬件结构设计 堆栈初始化堆栈初始化DRAM配置配置设定特殊寄存器设定特殊寄存器开始开始建立中断向量表建立中断向量表内存初始化内存初始化镜像文件拷贝镜像文件拷贝系统重新映射系统重新映射切换到用户模式切换

113、到用户模式进入进入C代码区代码区在在Flash Memory中执行中执行在在SDRAM中执行中执行启动代码流程图启动代码流程图73基于ARM的硬件结构设计 Boot Loader Boot Loader阶段阶段1 1其主要步骤有:其主要步骤有:v硬件系统自检、对系统硬件进行初始化(设置处理器时钟和运行硬件系统自检、对系统硬件进行初始化(设置处理器时钟和运行速度)。速度)。S3C44B0XS3C44B0X的的Bank0Bank0是通过外部的一个管脚提供的上拉、是通过外部的一个管脚提供的上拉、下拉电阻来配置的。主要包括:数据位数(下拉电阻来配置的。主要包括:数据位数(8 8位、位、1616位、位、

114、3232位),位),数据格式(大端、小端)。而其他的数据格式(大端、小端)。而其他的BankBank的配置,以及读写周期的配置,以及读写周期等信息是靠等信息是靠Bank0Bank0内部的代码配置相应的寄存器来实现的。同时,内部的代码配置相应的寄存器来实现的。同时,系统的引导系统的引导RomRom也负责配置系统的其他的一些寄存器,比如,系也负责配置系统的其他的一些寄存器,比如,系统的统的PLLPLL(锁频环)配置,系统的(锁频环)配置,系统的IOIO口等一些端口功能的配置等口等一些端口功能的配置等等。引导等。引导RomRom负责检测系统的启动所必须的外设是否正常。主要负责检测系统的启动所必须的外

115、设是否正常。主要是系统的是系统的SDRAMSDRAM的检测。的检测。v为加载为加载Boot LoaderBoot Loader的阶段的阶段2 2准备准备RAMRAM空间;并复制空间;并复制Boot LoaderBoot Loader的的阶段阶段2 2到到RAMRAM空间中。空间中。v配置相关寄存器、存储器或者端口、外设等地址、工作模式和堆配置相关寄存器、存储器或者端口、外设等地址、工作模式和堆栈等栈等 。v处理系统的中断。处理器的中断是从处理系统的中断。处理器的中断是从0x00x0地址开始,引导地址开始,引导ROMROM负责负责把这一部分的中断映射到另一个区域,以便系统处理。把这一部分的中断映

116、射到另一个区域,以便系统处理。74基于ARM的硬件结构设计 vBoot LoaderBoot Loader阶段阶段1 1完成的功能有:完成的功能有:v(1 1)基本的硬件初始化,包括屏蔽所有的中断、)基本的硬件初始化,包括屏蔽所有的中断、设置设置CPUCPU的速度和时钟频率、的速度和时钟频率、RAMRAM初始化、关闭初始化、关闭CPUCPU内部指令内部指令/ /数据数据CacheCache。v(2 2)为加载阶段)为加载阶段2 2准备准备RAMRAM空间,由于阶段空间,由于阶段2 2通常通常是是C C语言执行代码,因此在考虑空间大小时还要语言执行代码,因此在考虑空间大小时还要把堆栈空间也考虑进

117、来。一般而言把堆栈空间也考虑进来。一般而言1M1M的的RAMRAM已经已经足够了。足够了。v(3 3)拷贝阶段)拷贝阶段2 2到到RAMRAM中,拷贝时要确定阶段中,拷贝时要确定阶段2 2的的可执行映象在固态存储设备的存放起始地址和终可执行映象在固态存储设备的存放起始地址和终止地址。还有止地址。还有RAMRAM空间的起始地址。空间的起始地址。v(4 4)设置堆栈指针)设置堆栈指针SP,SP,一般安排在所预留一般安排在所预留1M RAM1M RAM空间的最顶端(堆栈向下生长)空间的最顶端(堆栈向下生长)v(5 5)跳转到阶段)跳转到阶段2 2的的C C入口点。入口点。75基于ARM的硬件结构设计

118、 Boot Loader Boot Loader阶段阶段2 2其主要步骤有:其主要步骤有:u初始化本阶段要使用到的硬件设备。初始化本阶段要使用到的硬件设备。u检测系统内核映射。检测系统内核映射。u加载内核映象和根文件系统映象,包括规划内存占用的加载内核映象和根文件系统映象,包括规划内存占用的布局和从布局和从FlashFlash将系统下载到将系统下载到RAMRAM空间中。空间中。u设置内核的启动参数。设置内核的启动参数。u跳转到内核映像入口并执行内核程序。跳转到内核映像入口并执行内核程序。u系统的软件设置,更新系统(系统的软件设置,更新系统(system.binsystem.bin) 用户可以在

119、系统启动的时候,按任意键,进入系统用户可以在系统启动的时候,按任意键,进入系统的软件设置状态。通过引导的软件设置状态。通过引导RomRom设置或者查看系统的一设置或者查看系统的一些软件信息。包括:通过开启些软件信息。包括:通过开启USBUSB端口;更新系统文件端口;更新系统文件system.binsystem.bin;LCDLCD显示测试;演示程序的装载测试;键显示测试;演示程序的装载测试;键盘测试;触摸屏的坐标校准;触摸屏测试;以太网地址盘测试;触摸屏的坐标校准;触摸屏测试;以太网地址的设置等的设置等76基于ARM的硬件结构设计 77基于ARM的硬件结构设计固态存储设备的典型空间分配结构 内

120、核根文件系统bootloader启动参数启动参数78基于ARM的硬件结构设计79基于ARM的硬件结构设计Boot Loader Boot Loader 的操作模式的操作模式v大多数大多数 Boot Loader Boot Loader 都包含两种不同的操作模式:都包含两种不同的操作模式:启动加载模式启动加载模式(AutonomousAutonomous) : Boot Loader Boot Loader 从目标机的固体从目标机的固体存储设备上讲操作系统加载到存储设备上讲操作系统加载到RAMRAM中运行,中运行,整个过程并没有用户的整个过程并没有用户的介入。这种模式是介入。这种模式是 Boot

121、 Loader Boot Loader 的正常工作模式,因此在嵌入式产品发的正常工作模式,因此在嵌入式产品发布的时侯,布的时侯,Boot Loader Boot Loader 显然必须工作在这种模式下。显然必须工作在这种模式下。下载模式:目标机中的下载模式:目标机中的Boot Loader Boot Loader 通过串口或网络连接等通过串口或网络连接等通信手段从宿主机上下载文件,如操作系统的内核映像和根通信手段从宿主机上下载文件,如操作系统的内核映像和根文件的映像等。从宿主级上下载的文件通常首先被文件的映像等。从宿主级上下载的文件通常首先被Boot Boot Loader Loader 保存

122、到目标机的保存到目标机的RAMRAM中,然后再被中,然后再被Boot Loader Boot Loader 写到写到目标机的目标机的FlashFlash中。这种模式通常在第中。这种模式通常在第1 1次安装操作系统内核次安装操作系统内核和根文件系统时被使用,另外系统更新时也会使用这种方式。和根文件系统时被使用,另外系统更新时也会使用这种方式。工作于这种模式下的工作于这种模式下的 Boot Loader Boot Loader 通常都会向它的终端用户提供一个简通常都会向它的终端用户提供一个简单的命令行接口。单的命令行接口。v最终用户的角度看,最终用户的角度看,Boot Loader Boot Lo

123、ader 的作用就是用来加载操作系统,的作用就是用来加载操作系统,而并不存在所谓的启动加载模式与下载工作模式的区别。而并不存在所谓的启动加载模式与下载工作模式的区别。80基于ARM的硬件结构设计BootLoader BootLoader 与主机通信与主机通信v从开发的角度来看,从开发的角度来看, Boot Loader Boot Loader 程序必须与程序必须与宿主机之间建立起至少一种通信方式,这也是将宿主机之间建立起至少一种通信方式,这也是将来第一次加载操作系统内核的唯一手段。通常,来第一次加载操作系统内核的唯一手段。通常,开发人员都会采用串口首先建立起目标机与宿主开发人员都会采用串口首先

124、建立起目标机与宿主机之间的联系。串口传输协议通常是机之间的联系。串口传输协议通常是 xmodemxmodemymodemymodemzmodem zmodem 。程序简单,但传输的速度比。程序简单,但传输的速度比较慢,较慢,115200bps115200bps。v另外,常采用的方法也可以在另外,常采用的方法也可以在Boot LoaderBoot Loader中实中实现现TFTP TFTP 协议,在宿主机上利用协议,在宿主机上利用TFTP TFTP 的软件工具,的软件工具,通过以太网传输和下载文件。通过以太网传输和下载文件。81基于ARM的硬件结构设计4 4)存储管理单元)存储管理单元MMUMM

125、U 虚拟内存管理占用了相当一部分系统资源,因此在虚拟内存管理占用了相当一部分系统资源,因此在系统资源非常有限的嵌入式系统中可不采用虚拟内存系统资源非常有限的嵌入式系统中可不采用虚拟内存管理,使用不带有管理,使用不带有MMUMMU的微处理器。这样要采用动态的微处理器。这样要采用动态内存管理方式,即当程序的某一部分需要使用内存时,内存管理方式,即当程序的某一部分需要使用内存时,利用操作系统提供的分配函数来处理,一旦使用完毕,利用操作系统提供的分配函数来处理,一旦使用完毕,可通过释放函数来释放所占用的内存,这样内存就可可通过释放函数来释放所占用的内存,这样内存就可以重复使用。以重复使用。 但在具有但

126、在具有MMUMMU的的ARMARM系统中,存储管理单元系统中,存储管理单元MMUMMU主要完成工作:主要完成工作:v 虚拟存储空间到物理存储空间的映射。在虚拟存储空间到物理存储空间的映射。在ARMARM中采中采用了页式虚拟存储管理。用了页式虚拟存储管理。v 存储器访问权限的控制。存储器访问权限的控制。v 设置虚拟存储空间的缓冲的特性。设置虚拟存储空间的缓冲的特性。82基于ARM的硬件结构设计 MMU MMU中的地址变换过程中的地址变换过程: :通过两级页表实现。通过两级页表实现。a)a)一一级级页页表表中中包包含含有有以以段段为为单单位位的的地地址址变变换换条条目目以以及及指指向向二二级级页页

127、表表的的指指针针。一一级级页页表表是是实实现现的的地地址址映映射射力力度度较较大大。以以段段为为单单位位的的地地址址变换过程只需要一级页表。变换过程只需要一级页表。b)b)二二级级页页表表中中包包含含有有以以大大页页和和小小页页为为单单位位的的地地址址变变换换条条目目。有有一一种种类类型型的的二二级级页页表表还还包包含含有有以以极极小小页页为为单单位位的的地地址址变变换换条条目目。以以页页为为单位的地址变换过程需要二级页表。单位的地址变换过程需要二级页表。 83基于ARM的硬件结构设计 由页表描述符获取二级描述符的过程由页表描述符获取二级描述符的过程 :84基于ARM的硬件结构设计通过MMU的

128、访存vMMU 先查找TLB(Translation Lookaside Buffers)中的虚拟地址表v如果TLB 中没有虚拟地址的入口,硬件从主存储器中的转换表中获取转换和访问权限开始MMU之前必须创建转换表85基于ARM的硬件结构设计ARM的MMU访存原理86基于ARM的硬件结构设计ARM的MMU页表格式MMU 支持基于节或页的存储器访问:v节(Section) 1MB 的存储器块v大页(Large page)64KB 的存储器块v小页(Small page)4KB 的存储器块v微页(Tiny page)1KB 的存储器块87基于ARM的硬件结构设计页表的级别存在主存储器内的转换表有两个级

129、别:v第一级表 存储节转换表和指向第二级表的指针v第二级表 存储大页和小页的转换表。存储微页转换表88基于ARM的硬件结构设计4.3.2 4.3.2 存储器系统的设计存储器系统的设计1 1)程序存储器连接电路)程序存储器连接电路89基于ARM的硬件结构设计S3C44B0XS3C44B0X与与FLASHFLASH的连接(的连接(Half WordHalf Word方式)方式)90基于ARM的硬件结构设计 2)数据存储器的设计91基于ARM的硬件结构设计S3C2410ARM处理器NANDFLASH 64M 存贮器SD RAM32M3 3)S3C2410S3C2410核核 心心 板板92基于ARM的硬件结构设计

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号