ARM Cortex-A8体系结构与外设接口实战开发(txt+pdf+epub+mobi电子书下载)


发布时间:2020-06-23 09:44:36

点击下载

作者:北京通联物网教育咨询有限公司苗凤娟,奚海蛟

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

ARM Cortex-A8体系结构与外设接口实战开发

ARM Cortex-A8体系结构与外设接口实战开发试读:

前言

第1章 ARM处理器概述

1.1 ARM处理器的应用领域和特点

1.1.1 ARM处理器的应用领域

1.1.2 ARM处理器的特点

1.2 主流的ARM处理器介绍

1.2.1 ARM体系结构的命名规则

1.2.2 ARM Cortex应用程序处理器

1.2.3 ARM Cortex嵌入式处理器

1.2.4 经典ARM处理器

1.2.5 ARM专家处理器

1.2.6 其他ARM处理器

1.3 S5PV210处理器简介

1.3.1 AMBA、AHB、APB总线介绍

1.3.2 存储器子系统

1.3.3 多媒体

1.3.4 时钟和电源管理

本章小结

第2章 ARM汇编语言基础

2.1 编程模型介绍

2.1.1 ARM处理器模式

2.1.2 ARM寄存器组介绍

2.2 ARM处理器寻址方式

2.2.1 立即寻址

2.2.2 寄存器寻址

2.2.3 寄存器间接寻址

2.2.4 寄存器偏移寻址

2.2.5 基址变址寻址

2.2.6 多寄存器寻址

2.2.7 堆栈寻址

2.3 ARM指令集

2.3.1 ARM指令的格式和分类

2.3.2 跳转指令

2.3.3 数据处理指令

2.3.4 程序状态寄存器传输指令

2.3.5 Load/Store指令

2.3.6 协处理器指令

2.3.7 异常中断产生指令

2.4 Thumb指令集

2.4.1 Thumb指令集简介

2.4.2 Thumb指令集和ARM指令集的区别

2.5 ARM伪指令

2.5.1 小范围地址读取——ADR伪指令

2.5.2 中等范围地址读取——ADRL伪指令

2.5.3 大范围地址读取——LDR伪指令

2.5.4 空操作——NOP伪指令

2.6 ARM汇编语言的伪操作和宏指令

2.6.1 符号定义伪操作

2.6.2 数据定义伪操作

2.6.3 汇编控制伪操作

2.6.4 杂项伪操作

2.6.5 GNU ARM汇编伪操作

2.7 ARM汇编实例

2.7.1 汇编语句格式

2.7.2 汇编语言的程序结构

2.7.3 程序实例

本章小结

第3章 ARM中的C语言和汇编混合编程

3.1 ATPCS介绍

3.1.1 寄存器的使用规则

3.1.2 数据栈使用规则

3.1.3 参数传递规则

3.2 内嵌汇编

3.2.1 内嵌汇编的语法格式

3.2.2 内嵌汇编指令的特点

3.2.3 内嵌汇编指令注意事项

3.2.4 内嵌汇编指令举例

3.3 ARM中的汇编和C语言相互调用

3.3.1 从汇编程序中访问C程序变量

3.3.2 C程序调用汇编程序

3.3.3 汇编程序调用C程序

本章小结

第4章 GPIO接口

4.1 GPIO概述

4.1.1 GPIO简介

4.1.2 GPIO寄存器

4.1.3 IO操作的步骤

4.2 按键控制LED实例

4.2.1 硬件原理图

4.2.2 实例测试

4.2.3 跑马灯实例

本章小结

第5章 存储器接口设计与应用

5.1 存储器概述

5.1.1 存储器分类

5.1.2 存储器的层次结构

5.1.3 ARM存储器系统

5.2 SDRAM内存管理

5.2.1 S5PV210地址空间

5.2.2 SDRAM工作原理

5.2.3 SDRAM存储控制器的使用

5.3 SDRAM存储器接口实例

5.3.1 SDRAM硬件接口电路

5.3.2 SDRAM控制器使用分析

5.3.3 程序设计及分析

5.3.4 实例测试

本章小结

第6章 中断系统原理与应用

6.1 中断的基本概念

6.1.1 中断的基本概念和处理过程

6.1.2 中断源、中断信号和中断向量

6.1.3 中断优先级和中断嵌套

6.1.4 中断响应条件与中断控制

6.2 S5PV210的中断系统

6.2.1 S5PV210的中断源

6.2.2 S5PV210的中断控制

6.3 S5PV210中断编写实例

6.3.1 中断控制程序编写步骤

6.3.2 中断实例

6.3.3 实例测试

本章小结

第7章 串口通信原理与应用

7.1 串口通信原理

7.1.1 串口通信的重要参数

7.1.2 串行通信接口

7.1.3 通用异步接收器和发送器(UART)

7.2 S5PV210的UART功能寄存器

7.2.1 UART控制寄存器

7.2.2 UART 操作寄存器

7.3 UART通信实例(一)

7.3.1 查看电路连接图

7.3.2 翻查数据手册

7.3.3 确定关键定义

7.3.4 编写程序

7.3.5 实例测试

7.4 UART通信实例(二)

本章小结

第8章 ADC和触摸屏接口与应用

8.1 ADC工作原理

8.2 触摸屏结构和工作原理

8.2.1 触摸屏的工作原理

8.2.2 触摸屏的主要类型

8.3 S5PV210中的触摸屏接口

8.3.1 ADC工作模式

8.3.2 触摸屏接口模式

8.4 硬件连接

8.5 ADC及触摸屏接口特殊寄存器

8.6 触摸屏控制实例

8.7 滑动变阻器控制实例

本章小结

第9章 I2C接口与应用

9.1 I2C总线协议

9.2 S5PV210的I2C总线控制器

9.2.1 S5PV210的I2C接口的主要特性

9.2.2 S5PV210的I2C总线接口

9.2.3 I/O描述

9.2.4 I2C总线控制相关寄存器

9.2.5 S5PV210的I2C总线操作方法

9.3 I2C总线应用实例

9.3.1 I2C接口和AT24C02的连接

9.3.2 读写AT24C02程序设计及分析

9.3.3 测试实例

本章小结

第10章 系统时钟与定时器

10.1 S5PV210的时钟体系

10.1.1 系统时钟概述

10.1.2 时钟声明

10.1.3 时钟的产生

10.1.4 每个子块最大工作频率

10.1.5 时钟配置过程

10.1.6 系统时钟相关寄存器

10.2 实时时钟RTC

10.2.1 实时时钟概述

10.2.2 实时时钟操作

10.3 PWM定时器

10.3.1 PWM定时器概述

10.3.2 PWM定时器操作

10.3.3 PWM定时器特殊寄存器

10.4 WATCHDOG定时器

10.5 定时器使用实例

10.5.1 PWM编程实例

10.5.2 WATCHDOG编程实例

本章小结

第11章 LCD接口设计与应用

11.1 LCD介绍

11.2 S5PV210的LCD控制器介绍

11.2.1 S5PV210显示控制器概述

11.2.2 显示控制器的主键特性

11.2.3 显示控制器的功能描述

11.2.4 数据流

11.2.5 接口

11.2.6 颜色数据概要

11.2.7 颜色空间转换(CSC)

11.2.8 调色板的使用

11.2.9 窗口混合

11.2.10 图像增强

11.2.11 VTIME控制器操作

11.2.12 设置的命令

11.2.13 虚拟显示

11.2.14 RGB接口说明

11.2.15 LCD iNDIRECT i80系统接口

11.2.16 LCD控制器特殊功能寄存器

11.3 TFT LCD 显示实例

11.3.1 硬件电路的连接

11.3.2 程序设计与分析

11.3.4 测试实例

本章小结

第12章 IIS接口控制与应用

12.1 数字音频信号(IIS)介绍

12.2 S5PV210的IIS接口

12.2.1 发送接收模式

12.2.2 音频串行接口格式

12.2.3 IIS总线接口寄存器

12.3 S5PV210 IIS控制程序编写实例

12.3.1 设备驱动程序简介

12.3.2 IIS总线接口实例

本章小结

第13章 DMA接口与应用

13.1 DMA的基本概念

13.1.1 DMA系统组成

13.1.2 DMA工作原理

13.1.3 DMA传输方式

13.1.4 DMA传输特点

13.2 S5PV210的DMA控制器

13.2.1 S5PV210的DMA概述

13.2.2 DMA控制器的主要特性

13.2.3 S5PV210的DMA特殊寄存器

13.3 S5PV210 DMA控制编写实例

13.3.1 DMA代码分析

13.3.2 DMA测试实例

本章小结

第14章 NAND Flash控制接口与应用

14.1 NOR Flash和NAND Flash

14.1.1 Flash闪存

14.1.2 NOR和NAND的比较

14.2 NAND Flash的物理结构

14.3 S5PV210的NAND Flash控制器

14.3.1 NAND Flash控制器的特性

14.3.2 NAND Flash的模块图

14.3.3 NAND Flash的引脚配置

14.3.4 NAND Flash存储器配置

14.3.5 NAND Flash寄存器

14.4 NAND Flash操作实例

14.4.1 NAND Flash读的步骤

14.4.2 NAND Flash写的步骤

14.4.3 NAND Flash读写程序设计实例

14.4.4 测试实例

本章小结

参考文献前言

随着嵌入式行业的迅猛发展,嵌入式开发也已经成为当前最热门、最有发展前途的行业之一,同时,嵌入式行业的快速发展造成了它巨大的人才缺口,越来越多的人抓住这个机遇投身到嵌入式这个行业当中。

对于嵌入式设备而言,其核心部分同PC类似为处理器。但是,嵌入式设备的处理同PC的处理器是不同的。对于嵌入式设备而言,不具备PC那么强大的功能,因此,其处理器也没有PC的处理器那么复杂。随着嵌入式行业的不断发展,嵌入式设备正在逐步地走入各行各业,而嵌入式设备的处理器功能也在不断地完善,可能将来的某一天,嵌入式设备的处理器芯片的功能就会超越PC的处理器。

对于嵌入式设备的处理器,大多数为ARM架构的处理器。对于初入嵌入式行业的人来说,对于ARM可能还比较陌生。ARM是一个公司的名字,也是一种处理器的架构,类似于PC常用的X86架构。ARM架构是一个32位元精简指令集(RISC)中央处理器架构,由于其节能的特点,被广泛地应用于嵌入式设备。本书以S5PV210处理器为例,为读者打开一道学习ARM架构的大门。

AAE考试报名与培训请联系:xhj1021@sina.com或2698408486(QQ)。

本书主要内容

第1章 ARM处理器,从应用领域和结构特点出发介绍ARM处理器,使读者对ARM架构有初步的了解。

第2章 ARM汇编语言和第3章 ARM和C语言的混合编程,使读者具有了在ARM处理器平台进行开发的基础。由于ARM架构和X86架构的区别,这两章的学习将为后续的学习提供一个良好的支持。

第4章 GPIO接口,让读者对GPIO有全面的认识,并且通过GPIO的操作了解如何通过软件控制操作GPIO。

第5章 存储器接口设计与应用,无论是X86系统还是嵌入式系统中,存储器都占有很重要的地位,掌握存储器的相关知识是非常有必要的。

第6章 中断系统原理与应用,学习并深入了解中断的原理和应用是掌握ARM应用的非常重要的关键问题之一。

第7章 串口通信原理与应用,串口可以说是ARM的外围部件中使用得最多、最频繁的接口,由于其硬件接口简单,容易实现并且常常作为设备的调试终端,所以也是嵌入式系统中极其重要的接口。

第8章 ADC和触摸屏接口与应用,嵌入式系统中的信号测量一般都会用到ADC,ADC测量作为嵌入式系统开发设计中不可缺少的一个部分存在于各种测量装置中。

第9章 I2C接口与应用,I2C总线被广泛用于许多重要外扩设备的连接,因此,对于开发人员来说,很有必要掌握I2C总线的使用方法。

第10章 系统时钟与定时器,在嵌入式系统中有很多情况都是需要精确的延时的,而想通过精确延时来实现的一些操作一般不会通过循环语句来实现了,而是利用定时器来实现。

第11章 LCD接口设计与应用,本章将对LCD的相关概念以及一些控制操作的实现进行详细的介绍,并通过实例分析带领读者进行深入的理解学习。

第12章 IIS接口控制与应用,随着数字信号处理技术的发展,音频信号转换成数字音频信号进行处理成为一种常见的信号处理方式。S5PV210集成了IIS总线接口,在WM8960GEFL芯片的配合下,可以实现音频信号的简单传输,实现类似录音、播放音乐等功能。本章将介绍S5PV210的IIS接口的控制与应用。

第13章 DMA接口与应用,DMA(PL330s)是一种不经过CPU而直接从内存存取数据的数据交换模式,实现大量数据的快速传输;第14章 NAND Flash控制接口与应用,掌握NAND Flash的接口控制与应用十分重要。

通过对本书的阅读和学习,读者可以对ARM体系结构有深入的了解,可以自己完成各种外设的编程,可以使读者掌握开发基于ARM的应用系统的各方面的知识。书中所有程序案例都是基于北京融慧广泽科技有限公司的CW210开发板开发的,如需购买请发电子邮件到xhj1021@sina.com或2698408486(QQ)。

参与本书编写的主要人员有谌利、乔林、陈晓冬、李政春、刘张辉、李晓庆、滕忠楠、付盈、王秀文、吴飞、王丽娜。

读者可登录华信教育资源网(www.hxedu.com.cn)免费注册后下载本书的全部案例代码。

读者对象

本书ARM体系结构与外设接口实战开发适用于以下读者:

● 初入嵌入式行业的开发人员。

● 想要进入嵌入式行业的学生。

● 想要使用S5PV210进行快速开发的开发人员。作 者2014年3月第1章 ARM处理器概述

ARM处理器是一种低功耗高性能的32位RISC(精简指令集)处理器。目前,采用ARM技术知识产权(IP)核的微处理器,即我们通常所说的ARM微处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,基于ARM技术的微处理器应用约占据了32位RISC微处理器75%以上的市场份额,ARM技术正在逐步渗入到我们生活的各个方面。本章将从应用领域和结构特点出发介绍ARM处理器,并且对本书使用的S5PV210芯片做了详细的描述。

本章要点:

● ARM处理器的应用领域和特点。

● 主流的ARM处理器介绍。

● S5PV210处理器简介。1.1 ARM处理器的应用领域和特点

通常我们也把Linux的命令行模式称为终端界面、终端或者控制台,所谓的命令行模式就是我们通常见到的使用字符操作界面的人机接口,这与DOS很像。我们说命令行模式下的命令,就是指通过字符界面输入的可以操作系统的命令。例如,DOS命令就是控制台命令。有一点一定要注意,Linux的命令(也包括文件名等)对大小写是敏感的,也就是说,如果你输入的命令大小写不对的话,系统是不会做出你期望的响应的。1.1.1 ARM处理器的应用领域

在信息化程度很高的今天,ARM微处理器及其技术的应用已经深入到了各个领域,不断地发展和革新,为人们的生活带来了极大的方便。

1.嵌入式领域

ARM将“嵌入式”归类为利用微控制器作为主处理器的所有应用程序,以及其他领域中未明确涵盖的基于处理器的任何应用程序。其中,第一种类别的示例包括家用电器、HVAC系统、智能测量平台、触摸屏控制器、传感器和电动机控制。在这些应用程序中,据ARM官方提供,ARM Cortex-M系列处理器是目前理想解决方案的核心。ARM Cortex-A系列处理器在远程医疗、安全/监视、航空电子领域的应用同样也属于此类别。嵌入式领域应用如图1.1所示。

2.企业领域

ARM将企业应用程序定义为提供网络连接和/或存储功能的完整系统或子系统。这包括家庭和公司网关、企业路由器、以太网交换机、无线访问点、基站、多服务配置平台、硬盘驱动器、网络连接存储和固态磁盘。在过去的5年中,上述许多应用领域的系统设计人员已开始考虑这些系统完成其任务时的能效,而不是考虑绝对性能。随着更高性能的多核处理器核心和经过优化性能改进物理逻辑IP(包括ARM物理IP部门提供的标准单元库)的问世,可通过ARM技术满足需求,使上述应用领域得到了拓展。此外,在研发预算匮乏的环境下,具有受到强力支持的软件和工具生态系统的行业标准ISA使产品能够缩短产品的上市时间,并节省研发成本以用于开发增值功能和不同的应用程序特定功能。企业领域应用如图1.2所示。图1.1 嵌入式领域应用图1.2 企业领域应用

3.家庭领域

ARM为用户在所有屏幕类型上随时随地地访问和享受富媒体内容,并与这些内容交互提供了技术平台。ARM拥有知识、产品和合作伙伴生态系统,可帮助客户在市场中快速推出不同解决方案。ARM IP设计已融入到范围广泛的高增长家用设备中。家庭领域应用如 图1.3所示。

4.移动领域

ARM在提供支持一系列移动设备的处理器和其他关键模块方面占据着市场领先地位,这些设备可在提供卓越性能的同时延长电池寿命。ARM的芯片合作伙伴采用ARM的技术构建着世界一流的电池电源芯片,这些芯片的年销售量可达数十亿。将PC性能、优异的多媒体性能和卓越连接融入到移动设备的功率范围中耗费了ARM和芯片合作伙伴的大量设计精力,但成果却让上百万的消费者感到欣慰,其中包括最新的智能手机、智能本、电子阅读器、PND或PMP。移动领域应用如图1.4所示。图1.3 家庭领域应用图1.4 移动领域应用1.1.2 ARM处理器的特点

ARM处理器的三大特点是:耗电少功能强、16位/32位双指令集和合作伙伴众多。具体来说,有以下六个主要特点:

● 体积小、低功耗、低成本、高性能。

● 支持Thumb(16位)/ARM(32位)双指令集,能很好地兼容8位/16位器件。

● 大量使用寄存器,指令执行速度更快。

● 大多数数据操作都在寄存器中完成。

● 寻址方式灵活简单,执行效率高。

● 指令长度固定。1.2 主流的ARM处理器介绍

ARM是32位嵌入式微处理器的行业领先提供商,到目前为止,已推出各种各样基于通用体系结构的处理器,这些处理器具有高性能和行业领先的功效,而且系统成本也有所降低。ARM与业界最广泛的体系(拥有超过750个可提供硅、工具和软件的合作伙伴)相结合,已推出的一系列20多种处理器可以解决几乎每个应用难题。迄今为止,ARM已生产超过200亿个处理器,每天的销量超过1000万,是真正意义上的“The Architecture for the Digital World”(数字世界的体系结构)。

目前,ARM微处理器宏伟而丰富的体系主要包括以下四个部分:

● ARM Cortex应用程序处理器。

● ARM Cortex嵌入式处理器。

● 经典ARM处理器。

● ARM专家处理器。

图1.5直观地展示了ARM不同系列处理器在性能、功能和兼容性之间的关系。图1.5 ARM不同系列处理器之间关系1.2.1 ARM体系结构的命名规则

为便于理解ARM的各个型号的命名含义,也便于根据设计的功能进行芯片的选型,在详细介绍各个系列的ARM处理器之前,先补充一下ARM命名规则的知识。

ARM体系结构是CPU产品所使用的一种体系结构,ARM公司开发了一套拥有知识产权的RISC体系结构的指令集。每个ARM处理器都有一个特定的指令集架构,而一个特定的指令集架构又可以由多种处理器实现,特定的指令集架构随着嵌入式市场的发展而发展。由于所有产品均采用一个通用的软件体系,所以相同的软件可在所有产品中运行(理论上如此)。

ARM产品通常以ARM【x】【y】【z】【T】【D】【M】【I】【E】【J】【F】【S】形式出现。表1.1显示了ARM体系结构的命名规则中这些后缀的具体含义。表1.1 ARM体系结构的命名规则

此外,还有一些附加的要点:(1)ARM7TDMI之后的所有ARM内核,即使“ARM”标志后没有包含“TDMI”字符,也都默认包含了TDMI的功能特性。(2)JTAG是由IEEE 1149.1标准测试访问端口和边界扫描结构来描述的,它是ARM用来发送和接收处理器内核与测试仪器之间调试信息的一系列协议。(3)嵌入式ICE宏单元是简历在处理器内部用来设置断点和观察点的调试硬件。(4)可综合,意味着处理器内核是以源代码形式提供的。这种源代码形式可被编译成一种易于EDA工具使用的形式。1.2.2 ARM Cortex应用程序处理器

作为目前ARM处理器中最高端的系列——Cortex应用程序处理器在高级工艺节点中已经可实现高达2 GHz+标准频率的卓越性能,从而可支持下一代的移动Internet设备。这些处理器具有单核和多核种类,最多提供四个具有可选NEON多媒体处理模块和高级浮点执行单元的处理单元。

应用程序处理器按处理器执行复杂操作系统(如Linux、Android/Chrome、Microsoft Windows(CE/嵌入式)和Symbian)和支持复杂图形用户界面的能力来定义。此类处理器集成了内存管理单元(MMU)以管理这些复杂操作系统的内存需求,并允许下载和执行第三方软件。

ARM Cortex应用程序处理器主要包含Cortex-A系列——开放式操作系统的高性能处理器。下面来看看Cortex-A处理器卓越的性能表现。

1.Cortex-A处理器概述

ARM Cortex-A系列的应用型处理器可向托管丰富的操作系统平台的设备和用户应用提供全方位的解决方案,包括超低成本的手机、智能手机、移动计算平台、数字电视、机顶盒、企业网络、打印机和服务器解决方案。高性能的Cortex-A15、可伸缩的Cortex-A9、经过市场验证的Cortex-A8处理器和高效的Cortex-A5处理器均共享同一体系结构,因此具有完整的应用兼容性,支持传统的ARM、Thumb指令集和新增的高性能紧凑型Thumb-2指令集。

Cortex-A8是本书所采用的微处理器,虽然它没有Cortex-A15系列那样杰出的性能以及新颖的技术,但它是经过市场验证的高效处理器,毕竟ARM经典系列在很多领域已经力不从心了,因此对于Cortex-A8系列及属于它的S5PV210处理器的特点,在本章中将进行详细介绍。

2.Cortex-A处理器的优势(1)移动Internet的理想选择。

● 本身支持Adobe Flash 10.1。

● 高性能NEON引擎,广泛支持媒体编/解码器。

● 低功率设计,支持全天浏览和连接。(2)高性能。Cortex-A设备可为其目标应用领域提供各种可伸缩的能效性能点。一些说明示例如下:

● Cortex-A15,可为新一代移动基础结构应用和要求苛刻的无线基础结构应用提供性能最高的解决方案。

● Cortex-A9实现,可提800MHz~2GHz的标准频率,每个内核可提供5000DMIPS的性能。

● Cortex-A8单核解决方案,可提供经济有效的高性能,在600 MHz~1 GHz的频率下,提供的性能超过2000DMIPS。

● Cortex-A5低成本实现,在400~800MHz的频率下,提供的性能超过1200DMIPS。(3)多核技术。Cortex-A5、Cortex-A9和Cortex-A15处理器都支持ARM的第二代多核技术。

● 单核到四核实现,支持面向性能的应用领域。

● 支持对称和非对称的操作系统实现。

● 通过加速器一致性端口(ACP)在导出到系统的整个处理器中保持一致性。(4)高级扩展。除了具有与上一代经典ARM和Thumb体系结构的二进制兼容性外,Cortex-A类处理器还通过以下技术扩展提供了更多优势:

● Thumb-2,提供最佳代码大小和性能。

● TrustZone安全扩展,提供可信计算。

● Jazelle技术,提高执行环境(如Java、Net、MSIL、Python和Perl)速度。

3.Cortex-A处理器的应用场合

Cortex-A处理器适用于具有高计算要求、运行丰富的操作系统,以及提供交互媒体和图形体验的应用领域。从最新技术的移动Internet必备设备(如手机和超便携的上网本或智能本)到汽车信息娱乐系统和下一代数字电视系统。

虽然Cortex-A处理器正朝着提供完全的Internet体验的方向发展,但其应用也很广泛,如表1.2所示。表1.2 ARM Cortex-A处理器应用1.2.3 ARM Cortex嵌入式处理器

区别于Cortex应用程序处理器对操作系统和移动Internet的支持偏向,Cortex嵌入式处理器旨在为各种不同的市场提供服务。嵌入式处理器主要着重于在各种功耗敏感型应用中提供具有高确定性的实时行为。这些处理器通常执行实时操作系统(RTOS)和用户开发的应用程序代码,因此只需内存保护单元(MPU),不需应用程序处理器中提供的MMU。

ARM Cortex嵌入式处理器主要包括Cortex-M系列和Cortex-R系列。

● Cortex-M系列:面向具有确定性的微控制器应用的成本敏感型解决方案。

● Cortex-R系列:面向实时应用的卓越性能。

从上面的简单介绍可以明显看出M和R系列的市场定位的区别,在图1.5中也能看到R系列在实时性等性能方面要优于M系列,而M系列在成本上更具优势。下面具体介绍两种系列的处理器。

1.Cortex-M处理器

ARM Cortex-M系列处理器主要是针对微控制器领域开发的,在该领域中,既需进行快速且具有高确定性的中断管理,又需将门数和可能功耗控制在最低。

Cortex-M处理器是一系列可向上兼容的高能效、易于使用的处理器,这些处理器旨在帮助开发人员满足将来的嵌入式应用的需要。这些需要包括以更低的成本提供更多功能、不断增加连接、改善代码重用和提高能效。

简单地说,ARM Cortex-M处理器提供优于8位和16位体系结构的代码密度。这在减少对内存的需求和最大限度地提高宝贵的芯片上闪存的使用率方面具有很大的优势。随着技术和应用要求的不断更新,对不断增加连接(如USB、蓝牙和IEEE 802.15)、具有复杂模拟传感器(如加速计和触摸屏)且成本日益降低的产品的需求,已导致需要将模拟设备与数字功能更紧密地集成,以对数据进行预处理和传输。而问题是,大多数8位设备在不显著增加频率(并不因此显著增加功率)的情况下不提供支持这些任务的性能,因此嵌入式开发人员需要寻找具有更高级处理器技术的替代设备。16位设备以前曾被用来解决微控制器应用中的能效问题。但是,16位设备相对不高的性能意味着它们通常需要较长的工作周期或较高的时钟频率才能完成32位设备所完成的相同任务。因此,Cortex嵌入式处理器就为解决这些应用要求提供了合适的方案,而M系列在整个Cortex处理器中的价格优势更为降低成本给出了一个很好的选择。

当然,除了指令执行效率的优势之外,基于ARM Cortex处理器的微控制器的软件开发可能比8位微控制器产品的开发容易得多。Cortex处理器不但是完全可通过C语言进行编程的,而且还附带各种高级调试功能以帮助定位软件中的问题。除MCU开发工具包中包括的所有附加资源外,网上还有大量示例和教程,其中许多来自基于ARM处理器的MCU供应商的网站。

Cortex-M系列针对成本和功耗敏感的MCU和终端应用(如智能测量、人机接口设备、汽车和工业控制系统、大型家用电器、消费性产品和医疗器械)的混合信号设备进行过优化。总之,Cortex-M系列是必须考虑不同的成本、能耗和性能的各类可兼容、易于使用的嵌入式设备(如微控制器)的理想解决方案。

2.Cortex-R处理器

对比Cortex-M系列而言,Cortex-R系列处理器的开发则面向深层嵌入式实时应用,对低功耗、良好的中断行为、卓越性能以及与现有平台的高兼容性这些需求进行了平衡考虑。其最重要的两个特点,即是实时性和可靠性。

ARM Cortex-R实时处理器为具有严格的实时响应限制的、深层嵌入式系统提供高性能计算解决方案。其实时处理器技术由包括ARM Thumb-2指令集的ARM v7-R体系结构定义,可在不牺牲性能的情况下提供高代码密度。此体系结构在具有针对如下所述的高性能和硬件实时应用的特定功能的Cortex-R处理器中实现。(1)高性能:针对实时应用的高效率和高频率。Cortex-R处理器全部使用高性能、深管道化的微体系结构以便以高时钟频率(在采用40 nm级工艺的情况下接近1 GHz)运行。此微体系结构包括指令预取、入队和分支预测以保持要执行的指令流。硬件除法器和浮点单元包括在内,并且处理器具有超标量功能,因此可以并行执行不需要冲突资源的指令。ARM的AMBA 3 AXI(高级可扩展接口)总线用于在访问内存和外设时最大限度地提高性能。从Cortex-R4(R4是此实时系列的第一个处理器)开始,这些采用40 nm级工艺的处理器都能够达到1500D MIPS的性能。(2)实时:提供具有确定性的行为以获得高可靠性。Cortex-R处理器通过对事件和中断做出快速且具有确定性的响应来支持实时系统。中断接口和外部中断控制器的选择允许SoC设计者在响应时间和中断数、中断屏蔽和优先化等功能之间进行优化。可能延迟中断响应超过几个周期的任何指令都可以被停止并重新启动。Cortex-R处理器还有一个与本地RAM或闪存的紧密耦合内存(TCM)接口,该本地RAM或闪存可以安排为保存始终可立即用于处理的指令和数据。TCM可用于保存中断服务例程或其他时间关键事件的代码。可使用DMA通过专用AXI从属设备总线接口将快速数据读入TCM或从TCM中读出。这些功能使系统可以对实时事件做出快速且具有确定性的响应。(3)灵活的成本效益和能效:可针对功能丰富且成本敏感的应用进行配置。当然,隶属于Cortex嵌入式处理器的Cortex-R系列的另一个主要特点就是可配置性,它允许设计者选择处理器功能以精确匹配应用要求。这些选项使Cortex-R处理器可以满足范围广泛的应用,并且设计者可以根据最终ASIC或ASSP设备的能耗、面积和成本权衡功能和性能。

除了实时性的技术保证,在可靠性方面Cortex-R系列处理器也有可为可靠系统使用和配置的功能,以下列出的这些功能及其他未说明的相应功能使该系列实时ARM处理器(如Cortex-R4)适合于在运行时必须符合IEC 61508或ISO 26262中定义的安全完整性等级(SIL)的系统中使用。(4)ARM v7体系结构。与早期版本的ARM体系结构相同,v7为处理器指定了在用户应用和授权程序(如操作系统、中断和异常处理程序)之间不同的软件操作模式。某些指令只在授权模式中可用,这些指令可供操作系统使用,而应用程序则被禁止对内存区域或外设进行未经授权的访问。(5)MPU。内存保护单元监视对内存和内存映射外设的所有访问,可以由所选的软件任务配置为报告或禁止对各区域的访问。与处理器的用户和授权模式配合工作,MPU提供了监视地址映射中的所选区域和阻止由于编程缺陷、错误条件或安全漏洞而由恶意代码导致的未经授权的访问的综合能力。(6)奇偶校验。奇偶校验检查功能内置在Cortex-R处理器中,提供了自动检测(在某些情况下还提供自动更正)1级内存(如高速缓存和TCM)中的奇偶校验错误的功能,还提供了与外部奇偶校验电路的接口。(7)ECC。错误更正代码处理功能也内置在Cortex-R处理器中,使处理器可以自动更正单位错误。多位错误也会被检测到(但不能总是得到更正),还提供了与外部ECC电路的接口。(8)锁步。Cortex-R处理器用于进行配置和合成以在锁步配置中创建冗余处理器,因此,通过检查逻辑可以检测到任一处理器中的错误。

因此,Cortex-R系列处理器的特性决定了其适应的场合,如表1.3所示。表1.3 ARM Cortex-R处理器应用

归纳来说,Cortex-R实时处理器在以上这些应用中有如下基本特征。

● 快速:以高时钟频率获得高处理性能。

● 确定性:处理在所有场合都必须符合硬实时限制。

● 安全:系统必须可靠且可信,某些系统将是安全关键系统。

● 成本效益:在处理器及其内存系统中都具有竞争力的成本和能耗。1.2.4 经典ARM处理器

ARM经典处理器适用于那些希望在新应用中使用经过市场验证的技术的组织。这些处理器提供了许多的特性、卓越的功效和范围广泛的操作能力,适用于成本敏感型解决方案。这些处理器每年都有数十亿的发货量,因此可确保设计者获得最广泛的体系和资源,从而最大限度地减少集成过程中出现的问题并缩短上市时间。

经典ARM处理器包括我们耳熟能详的ARM7、ARM9、ARM11三个系列。

● ARM7系列:面向普通应用的经典处理器。

● ARM9系列:基于ARMv5体系结构的常用处理器。

● ARM11系列:基于ARMv6体系结构的高性能处理器。

我们惯称的ARM9系列中又存在ARM9与ARM9E两个系列,其中ARM9属于ARM v4T架构,典型处理器如ARM9TDMI和ARM922T。而ARM9E属于ARM v5TE架构,典型处理器如ARM926EJ和ARM946E。

因为后者的芯片数量和应用更为广泛,所以我们提到ARM9的时候更多地是特指ARM9E系列处理器(主要就是ARM926EJ和ARM946E这两款处理器)。下面关于ARM9的介绍也是更多地集中于ARM9E。

与ARM7处理器相比,ARM9处理器有以下特点。

1.5级流水线

对嵌入式系统设计者来说,硬件通常是第一考虑的因素。

针对处理器来说,流水线则是硬件差别的最明显标志,不同的流水线设计会产生一系列硬件差异。

让我们来比较一下ARM7TDMI和ARM9E的流水线,如图1.6所示。图1.6 ARM7与ARM9的流水线

可以看到ARM9E从ARM7TDMI的3级流水线增加到了5级,ARM9E的流水线中容纳了更多的逻辑操作,但是每一级的逻辑操作却变得更为简单。5级流水线的具体内容如下。

● 取址:从存储器中取出指令并将其放入指令流水线。

● 译码:对取出的指令进行译码。

● 执行:把一个操作数移位,产生ALU的结果。

● 缓冲:如果需要则访问数据存储器,否则ALU的结果只是简单地缓冲一个时钟周期,以便所有的指令具有相同的流水线流程。

● 回写:将指令产生的结果回写到寄存器堆,包括从存储器取出的数据。

比如,原来ARM7的第三级流水,需要先内部读取寄存器,然后进行相关的逻辑和算术运算,接着处理结果回写,完成的动作非常复杂;而在ARM9E的5级流水中,寄存器读取、逻辑运算、结果回写分散在不同的流水当中,使得每一级流水处理的动作非常简洁。这就使得处理器的主频可以大幅度地提高。因为每一级流水都对应CPU的一个时钟周期,如果一级流水中的逻辑过于复杂,使得执行时间居高不下,必然导致所需的时钟周期变长,造成CPU的主频不能提升。所以流水线的拉长,有利于CPU主频的提高。

在常用的芯片生产工艺下,ARM7一般运行在100 MHz左右,而ARM9E则至少在 200 MHz以上。

2.采用哈佛结构

根据计算机的存储器结构及其总线连接形式,计算机系统可以分为冯·诺依曼结构和哈佛结构。

冯·诺依曼结构具有共用的数据存储空间以及分离的访问总线。在哈佛结构在指令执行时,取址和取数可以并行,因此具有更高的执行效率。

ARM9采用的就是哈佛结构,而ARM7采用的则是冯·诺依曼结构。图1.7和图1.8分别为冯·诺依曼结构和哈佛结构的数据存储方式。图1.7 冯·诺依曼结构图1.8 哈佛结构

在RISC架构的处理器中大约有30%的指令是Load-Store指令,而采用哈佛结构将大大提升这两个指令的执行速度,提高系统效率。

3.引入高速缓存和写缓存

一般来说处理器的处理速度远远高于存储器的访问速度,而当存储器访问成为系统性能的瓶颈时,处理器再快也无法发挥作用。

在这里,高速缓存(Cache)和写缓存(Write Buffer)可以很好地解决这个问题,它们存储了最近常用的代码和数据,以供CPU快速存储。

4.支持MMU

MMU是存储器管理单元的缩写,是用来管理虚拟内存系统的器件。

MMU通常是CPU的一部分,本身有少量存储空间存放从虚拟地址到物理地址的匹配表。所有数据请求都送往MMU,由MMU决定数据是在RAM内还是在大容量存储器设备内存储。如果数据不在存储空间内存储,MMU将产生页面错误中断。

MMU的主要功能如下。

● 将虚拟地址转换成物理地址。

● 控制存储器存取允许,MMU关掉时,虚拟地址直接输出到物理地址总线。

每当程序存取一块内存时,它会把相应的虚拟地址(Virtual Address)传输给MMU,MMU会在PMM中查找这块内存的实际位置,也就是物理地址(Physical Address),物理地址可以在内存中或磁盘上的任何位置。

如果程序要存取的位置在磁盘上,就必须把包含该地址的页从磁盘上读到内存中,并且必须更新PMM以反映这个变化(这被称为pagefault,即页错)。

只有拥有了MMU才能真正实现内存保护。例如,当A进程的程序试图直接访问属于B进程的虚拟地址中的数据时,MMU会产生一个异常(Exception)来阻止A的越界操作。这样,通过内存保护,一个进程的失败并不会影响其他进程的运行,从而增强了系统的稳定性,如图1.9所示,ARM9也正是因为拥有MMU,才比ARM7有了更强的稳定性和可靠性。图1.9 内存保护示意图

ARM9系列处理器可为要求苛刻、成本敏感的嵌入式应用提供可靠的高性能和灵活性。丰富的DSP扩展使SoC设计不再需要单独的DSP。此外,PPA特别适合各种应用。表1.4是ARM9处理器的主要应用。表1.4 ARM9系列处理器应用

而对于经典ARM中的其他系列处理器,在此仅通过表格对比的形式列出其主要的参数区别,见表1.5。表1.5 经典ARM处理器系列主要参数对比续表1.2.5 ARM专家处理器

ARM专家处理器旨在满足特定市场的苛刻需求,其主要分为SecurCore和FPGA内核两个系列。

● SecurCore:面向高安全性应用的处理器。

● FPGA内核:面向FPGA的处理器。

SecurCore处理器在安全市场中用于手机SIM卡和识别应用,集成了多种既可为用户提供卓越性能,又能检测和避免安全攻击的技术。

ARM还开发面向FPGA构造的处理器,在保持与传统ARM设备兼容的同时,方便用户产品快速上市。此外,这些处理器具有独立于构造的特性,因此开发人员可以根据应用选择相应的目标设备,不会受制于特定的供应商。

1.SecurCore系列处理器

具体的说,SecurCore系列微处理器专为安全需求而设计,提供了完善的32位RISC技术的安全解决方案,因此,SecurCore系列微处理器除了具有ARM体系结构的低功耗、高性能的特点外,还具有其独特的优势,即提供了安全解决方案的支持。

SecurCore系列微处理器除了具有ARM体系结构主要特点外,还在系统安全方面具有如下的特点。

● 带有灵活的保护单元,以确保操作系统和应用数据的安全。

● 采用软内核技术,防止外部对其进行扫描探测。

● 可集成用户自己的安全特性和其他协处理器。

SecurCore系列微处理器包含SecurCore SC100、SecurCore SC110、SecurCore SC200和SecurCore SC210,适用于不同的应用场合。SecurCore系列微处理器主要应用于一些安全产品及应用系统,包括电子商务、电子银行业务、网络、移动媒体和认证系统等。

2.FPGA内核系列

ARM Cortex-M1处理器满足FPGA应用的高质量、标准处理器体系结构的需要,支持范围广泛的FPGA设备,包括那些来自Actel、Altera和Xilinx的设备。

在FPGA中使用ARM Cortex-M1有如下优点。

● 全部使用标准处理器体系结构。

● 供应商独立性——Cortex-M1处理器支持所有主要FPGA供应商。

● 软件和工具可以在FPGA和ASIC/ASSP之间重用。

● 从FPGA到ASIC的简单迁移路径。

● 受最大的体系——ARM Connected Community的支持。

● 易于将Cortex-M1处理器设计迁移到更新和最有效的FPGA。

● 受可提供不同性能点解决方案的强大ARM处理器路线图的支持。

● ARM体系结构已在数十亿ARM Powered设备中经过验证。

ARM Cortex-M1处理器为FPGA用户带来了广泛的一系列ARM Connected Community 工具和操作系统,并提供与ASIC优化的处理器(如ARM Cortex-M3处理器)的软件兼容性。开发人员可以在受行业中最大体系支持的单个体系结构上进行标准化,以降低其硬件和软件工程成本。ARM Cortex-M1处理器主要应用在通信、广播、汽车、消费品、军事/航天和工业等领域。1.2.6 其他ARM处理器

除了ARM公司提供的四种类别的ARM处理器以外,常用的还有Intel公司开发的XScale系列和StrongARM系列。

1.XScale系列

XScale是基于ARMv5TE体系结构的一种内核,由Intel公司开发,在架构扩展的基础上同时也保留了对于以往产品的向下兼容,因此获得了广泛的应用。相比于ARM处理器,XScale功耗更低,系统伸缩性更好,同时核心频率也得到提高,达到了400 MHz甚至更高。这种处理器还支持高效通信指令,可以和同样架构处理器之间达到高速传输。其中一个主要的扩展就是无线MMX,这是一种64位的SIMD指令集,在新款的XScale处理器中集成有SIMD协处理器。这些指令集可以有效的加快视频、3D图像、音频,以及其他SIMD传统元素处理。目前已使用在数字移动电话、个人数字助理和网络产品等场合。

2.StrongARM系列

StrongARM系列处理器是Intel公司旗下的嵌入式处理器,它采用ARM公司推出的一款旨在支持WinCE3.0-PocketPC系统的RISC(精简指令集)处理器作为内核。较早期的Pocket PC中使用的ARM处理器是由Intel公司推出的StrongARM SA-1110,这是一款工作频率为206 MHz的32位处理器,内建8 KB的高速代码缓存和16 KB数据缓存。这款处理器目前主要使用在Compaq iPAQ H3100和H3600系列以及Palmax@migo上。该系列处理器主频在100~206 MHz之间,这款处理器也是微软的Pocket PC战略的奠基石。而在此之前,市场上的WinCE设备正被不同的CPU造成的软件兼容性问题困扰着。

优点:StrongARM处理器的性能不错,甚至表现不比新款产品差。而使用了基于StrongARM处理器的终端设备也不用再担心兼容性的问题——基本上用户可以使用任何2000后开发的软件了。

缺点:功耗过大一直是困扰高频率处理器首要问题,而StrongARM处理器的架构已经不允许它的频率再得到提升了。与此同时,其在多媒体方面的表现也并没有人们预料的那样好。

代表产品:康柏iPAQ 3630、NEC MP300等一些基于PocketPC/WinCE3.0的机型。另外许多中国台湾的厂商也推出了很多基于该系列处理器的产品。1.3 S5PV210处理器简介

本书使用的开发板是基于S5PV210处理器的。S5PV210又名“蜂鸟”(Hummingbird),是三星推出的一款适用于智能手机和平板电脑等多媒体设备的应用处理器。S5PV210采用了ARM CortexTM-A8内核,ARM V7指令集,主频可达1 GHz,64/32位内部总线结构,32/32 KB的数据/指令一级缓存,512 KB的二级缓存,可以实现2000DMIPS(每秒运算2亿条指令集)的高性能运算能力。

图1.10展示了S5PV210的系统结构。图1.10 S5PV210系统结构图

S5PV210提供全面的、通用的片上外设,大大降低系统的成本,下面列举了S5PV210的主要片上功能。

● 1.2 V内核供电,1.8V/2.5V/3.3V存储器供电,3.3V外部I/O供电。

● 32KB指令和32KB数据缓存的MMU内存管理单元。

● 外部存储控制器(SDRAM控制和芯片选择逻辑)。

● 提供LCD控制器(最大支持16M色),支持4.3英寸、7英寸、10.2英寸、10.4英寸、12.1英寸LCD显示,以及多款液晶模块接口。

● 提供24通道DMA控制器(8通道Memory-to-memory DMA和16通道外围DMA)。

● 提供4通道UART(支持3Mbps蓝牙2.0端口);

● 提供2通道SPI接口。

● 提供3个多主机IIC总线控制器。

● 提供3个24位IIS总线控制器。

● 一个AC97音频编/解码器接口和三路PCM系列音频接口。

● 支持四个SD/SDIO/HS-MMC接口(兼容SD主机接口2.0版及HS-MMC卡协议4.3版。

● 提供1个主机接口的USB、1个设备USB(2.0版本)。

● 4通道PWM定时器、1通道内部定时器。

● 提供看门狗定时器(16 bit)。

● 提供10通道12位多路复用ADC。

● 具有全时钟功能的RTC。

● 提供相机接口(支持横向4 224到8 192像素的输入,支持图像镜像和旋转,支持缩放)。

● 提供237个通用I/O口、178通道外部中断源。

● 提供电源控制不同模式,正常、空闲、停止、深停止、深空闲和睡眠模式。

● 具有PLL的片上时钟发生器。

● 提供带日历功能的实时时钟控制器(RTC)。

● 支持MPEG4/MPEG2、H.264/H263、VC-1的视频编/解码1080p@30fps。

● 支持2D图形加速,最大支持8 000×8 000分辨率。

● 支持3D图形加速(SGX540),OGL-1.1&2.0、OpenVG1.0。

● 支持JPEG硬件编/解码,最大支持8 192×8 192分辨率。

● 支持HDMI显示接口。

● 支持100Mbps以太网卡。

● 支持2个用户按键、14×8矩阵键盘接口(外扩键盘接口)。

● 支持LED灯显示(1个电源显示,2个用户LED灯)。

● 支持标准JTAG接口。

下面将依次对S5PV210的AMBA、AHB、APB总线、存储控制器、缓冲存储器、时钟和电源管理进行介绍,其中所有模式的选择都是通过相关寄存器的特定值的设定来实现的,因此,当读者需要对此进行修改时,请参阅三星公司提供的S5PV210用户手册。1.3.1 AMBA、AHB、APB总线介绍

ARM研发的AMBA(Advanced Microcontroller Bus Architecture)提供一种特殊的机制,可将RISC处理器集成在其他IP芯核和外设中,2.0版AMBA标准定义了三组总线:AHB(Advanced High-performance Bus,AMBA高性能总线)、ASB(Advanced System Bus,AMBA系统总线)和APB(Advanced Peripheral Bus,AMBA外设总线)。AHB的相互连接采用了传统的带有主模块和从模块的共享总线,接口与互连功能分离,这对芯片上模块之间的互连具有重要意义。AMBA已不仅是一种总线,更是一种带有接口模块的互连体系。下面将简要介绍比较重要的AHB和APB总线。

AHB主要用于高性能模块(如CPU、DMA和DSP等)之间的连接,作为SoC的片上系统总线,它包括以下一些特性。

● 数据突发传输(Burst Transfer)。

● 数据分割传输(Split Transaction)。

● 流水线方式。

● 一个周期内完成总线主设备(Master)对总线控制权的交接。

● 单时钟沿操作。

● 内部无三态实现。

● 更宽的数据总线宽度(最低32位,最高可达1 024位,但推荐不要超过256位)。

APB主要用于低带宽的周边外设之间的连接,如UART、1 284等,它的总线架构不像AHB支持多个主模块,在APB里面唯一的主模块就是APB桥。其特性包括:

● 两个时钟周期传输。

● 无须等待周期和回应信号。

● 控制逻辑简单,只有四个控制信号。1.3.2 存储器子系统

S5PV210的存储控制器提供访问外部存储器所需的存储器控制信号,其有以下特性。(1)两个独立的外部存储器端口(1×16静态混合内存端口和2×32 DRAM端口)。(2)矩阵结构增加了整体带宽与同步存取能力。(3)SRAM/ROM/NOR接口。

●×8或×16数据总线。

● 地址范围支持23位。

● 支持异步接口。

● 支持字节、半字访问。(4)OneNAND接口。

●×16数据总线。

● 地址范围支持16位。

● 支持字节、半字访问。

● 支持OneNAND和Flex OneNAND。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载