1.08k likes | 1.27k Views
第三章 基于 ARM 处理器体系结构 2. 主讲 马洪连. 3.3 通用的 ARM 微处理器介绍. 现将几种通常使用较为广泛的低端微处理器 Samsung S3C44B0X ( ARM7TDMI 内核)、中端微处理器 S3C2410B ( ARM920T 核)和高端微处理器 Intel PXA255/27X ( Xscale 核)内部结构、特点及功能介绍一下。. 3.3.1 Samsung S3C44B0X 的内部结构.
E N D
第三章 基于ARM处理器体系结构2 主讲 马洪连
3.3 通用的ARM微处理器介绍 现将几种通常使用较为广泛的低端微处理器Samsung S3C44B0X (ARM7TDMI内核)、中端微处理器 S3C2410B (ARM920T核)和高端微处理器 Intel PXA255/27X(Xscale核)内部结构、特点及功能介绍一下。
3.3.1 Samsung S3C44B0X的内部结构 Samsung S3C44B0X微处理器是韩国三星公司专为手持设备和一般应用提供的高性价比和低档的微处理器解决方案,它使用ARM7TDMI核,工作在66MHZ。为了降低系统总成本和减少外围器件,这款芯片中还集成了下列部件: 8KB Cache、外部存储器控制器、LCD控制器、4个DMA通道、2通道UART、1个多主I2C总线控制器、1个IIS总线控制器,5通道PWM定时器及一个内部定时器、71个通用I/O口、8个外部中断源、实时时钟、8通道10位ADC等。
S3C44B0X系统板结构组成 LCD与触摸屏接口; USB HOST模块接口; JTAG调试接口; IIC 接口的EEPROM; 4×4矩阵键盘接口; LED指示灯; 8段数码管电路; S3C44BOX微处理器; 电源电路; 复位逻辑; 晶振电路; 系统配置; FLASH和SDRAM 的设计;UART接口。
1)S3C44B0X 结构主要特点 • 16/32位RISC结构和带ARM7DMI CPU核的功能强大的指令集; • Thumb协处理器在保证性能的前提下使代码密度最大; • 片上ICE中断调试JTAG调试方式; • 328位硬件乘法器。
2)系统管理 • 地址空间:每个Bank32MB(一共256MB); • 每个Bank支持8/16/32位数据总线编程; • 固定的Bank起始地址和7个可编程的Bank; • 1个起始地址和尺寸可编程的Bank; • 8个内存Bank:6个用于ROM和SRAM;2个用于ROM/SRAM/DRAM; • 所有内存Bank的可编程寻址周期; • 在能量低的情况下支持DRAM/SDRAM自动刷新模式; • 支持DRAM的非对称/对称寻址; • 缓冲内存和内部SRAM
4路带8K字节的联合缓存; • 不使用缓存的0/4/8K内容SRAM • 伪LRU(最近最少使用)的替代算法 • 在主内存和缓冲区内容之间保持一致的方式写内存; • 当缓冲区出错时,请求数据填充技术; • BOOTLOADER位于FLASH存储器,当S3C44B0X 复位或上电后首先执行BOOTLOADER的代码。 • BOOTLOADER代码有如下功能:通过基本串口可与PC机终端程序建立联接、可配置板子、提供用户帮助、允许下载应用程序到SDRAM并执行、将用户映象文件写入FLASH、然后部分测试程序。
0x1000_0000 SROM/DRAM/SDRAM 2MB/4MB/8MB/16MB/32MB nGCS7 ( ) 0x0 e 00_0000 SROM/DRAM/SDRAM 2MB/4MB/8MB/16MB/32MB nGCS6 ( ) 0x0c00_0000 SROM 32MB nGCS5 ( ) 0x0 e 00_0000 SROM 32MB 256MB nGCS4 ( ) 0x0800_0000 SA[27:0] 可存取 SROM 32MB 区域 nGCS3 ( ) 0x0600_0000 SROM 32MB nGCS2 ( ) 0x0400_0000 SROM 32MB nGCS1 ( ) 特殊功能 0x0 2 00_0000 4MB 寄存器( ) 0x01c0_0000 SROM 28MB nGCS0 ( ) 0x0 0 00_0000 复位后的S3C44B0X的存储器映射表
3)时钟和能量管理 • 低能耗,时钟可以通过软件选择性地反馈回每个功能块。 • 能量模式: 正常模式:正常运行模式; 低能模式:不带PLL的低频时钟; 休眠模式:只使CPU的时钟停止; 停止模式:所有时钟都停止; • 用EINT或RTC警告中断从停止模式唤醒。
4)中断控制器 • 30个中断源(看门狗定时器,6个定时器,6个UART,8个外部中断,4个DMA,2个RTC,1个ADC,1个I2C,1个SIO; • 矢量IRQ中断模式减少中断响应周期; • 外部中断源的电平/边缘模式; • 可编程的电平/边缘极性; • 对紧急中断请求支持FIQ(快速中断请求)
(1)ARM7TDMI中断点的设置 • 设置EmbeddedICE的两个watchpoint单元主要包括:地址、数据、控制信号等 • 当一个(或者两个)watchpoint中的地址(也可以包括数据)和ARM所执行的当前的指令相同的时候,ARM就从运行状态进入Debug状态 (2) 断点的类型 • 硬件断点:在ARM中直接设定watchpoint中的地址,当ARM运行到制定的地址时,就进入Debug状态。 • 软件断点:改变存储器中的ARM指令为一个特殊的数据X(ARM的未定义指令),同时,设置watchpoint中的断点数据也为X,当ARM把X数据作为指令读入的时候,ARM就进入Debug状态。
(3)硬件断点和软件断点的优缺点 • 硬件断点:数目受EmbeddedICE中的Watchpoint数目的限制;但是,可以在任何地方设置断点。 • 软件断点:数目不受限制,但是,软件断点是通过替换系统的断点地址的指令实现的,所以,软件断点只能在可写的存储器的地址中设置(比如:RAM),而不能在ROM(比如:Flash)中设置。
5)带PWM的定时器 S3C44B0X中的定时器具有PWM(脉宽调制)功能,通过对一些功能寄存器的配置,可定义占空比以及定义频率的高低。 内部具有5个16位带PWM的定时器/1个16位基于DMA或基于中断的定时器,可编程的工作循环,频率和极性选择。 6)实时时钟 • 具有全时钟特点:毫秒、秒、分、小时、天、星期、月、年。 • 在32.768KHz石英晶体下运行。 • 具有CPU唤醒的警告中断功能。
7)通用输入输出端口 • 8个外部中断端口 • 71个多路输入输出口; • 通用异步接收发送器 UART • 2个带DMA和中断的UART; • 支持5位,6位,7位,8位串行数据传送/接收; • 当传送/接收时支持双向握手 • 可编程波特率; • 支持IrDA1.0(115.2KbPS); • 测试的循环返回模式; • 每个通道有2个内部32位FIFO
8)DMAC控制器与A/D转换器 (1)DMA控制器 2路通用无需要CPU干涉的DMA控制器; 2路桥式DMA控制器; 采用6种DMA请求的桥式DMA支持IO到内存,内存到IO,IO到IO:软件,4个内部功能块(UART,SIO,实时器,IIS),外部管脚; DMA之间可编程优先级次序; 突发传送模式提高传送率。 (2)A/D转换器 10位8路ADC; 最大500KbPS/10位;
9)LCD液晶显示器控制器 • 支持彩色/单色/灰度LCD; • 支持单扫描和双扫描显示; • 支持虚拟显示功能 • 系统内存作为显示内存 • 专用DMA用于从系统内存中提取图象数据; • 可编程屏幕尺寸; • 灰度:16级,256色
10)看门狗定时器与I2C总线接口 • 16位看门狗定时器; • 定时中断请求和系统复位; • 1个带中断的多主机I2C总线; 串行,8位,双向数据传送器能够以100Kb/S的标准模式和400Kb/S的快速模式传送。
11)IIS总线接口 1个带DMA的音频IIS总线接口; 串行,每路8/16位数据传送器; 支持MSB数据格式; SIO(同步串行I/O) 1个带DMA和中断的SIO; 可编程波特率; 支持8位串行数据传送/接收操作 12)操作电压范围 内核:2.5V;I/O:3.0V到3.6V; 运行频率:最高到75MHz; 封装:160LQFP/160FBGA;
12)系统的启动过程 S3C44B0X把外部复位信号,也作为一个中断来处理。在系统复位的时候,程序指针被设置成0,使程序跳转到0x00000000开始运行。此空间对应的是Bank0,因为在系统的1MB的线性Flash和处理器的Bank0 相连接,存储的是供系统的初始化的程序。 此程序负责的配置处理器的结构、工作模式以及自动检测嵌入式控制器的各个硬件是否工作正常。此程序负责把存储在16MB的非线性存储器里面的system.bin文件复制到0xc5f0000地址(此地址是系统8MB的SDRAM的首地址)。引导程序把程序指针指向0xc000000地址,系统开始运行。system.bin是嵌入式操作系统引导的执行文件。编译以后的操作系统和应用程序就是这个文件。
3.3.2 LPC2119/2129微控制器 1. 概述 LPC2119/2129飞利浦公司生产的低端微处理器,内部包含有基于一个支持实时仿真和跟踪的16/32位ARM7TDMI-STM CPU,并带有128KB/256KB的Flash存储器。128位宽度的存储器接口和独特的加速结构使32位代码能够在最大时钟速率下运行。 由于LPC2119/2129非常小的64脚封装、极低的功耗、多个32位定时器、4路10位ADC、2路CAN、PWM通道、46个GPIO以及多达9个外部中断使它们特别适用于汽车、工业控制应用以及医疗系统和容错维护总线。由于内置了宽范围的串行通信接口,它们也非常适合于通信网关、协议转换器以及其它各种类型的应用。
2. 主要特性 • 16/32位ARM7TDMI-S核,超小LQFP64封装。 • 16KB片内静态RAM ,128/256KB片内Flash存储器。 • 通过片内boot装载程序实现在系统编程(ISP)和在应用编程(IAP)。512字节行编程时间为1ms。单扇区或整片擦除时间为400ms。 • EmbeddedICE-RT可实现断点和观察点。当使用片内RealMonitor软件对前台任务进行调试时,中断服务程序可继续运行。 • 嵌入式跟踪宏单元(ETM)支持对执行代码进行无干扰的高速实时跟踪。 • 2个互连的CAN接口,带有先进的验收滤波器。 • 4路10位A/D转换器,转换时间低至2.44μs。 • 多个串行接口,包括2个工业标准UART、高速IIC接口(400 kbit/s)和2个SPI接口。
通过片内PLL可实现最大为60MHz的CPU操作频率。 • 向量中断控制器,可配置优先级和向量地址。 • 2个32位定时器(带4路捕获和4路比较通道)、PWM单元(6路输出)、实时时钟和看门狗。 • 46个通用I/O口(可承受5V电压),9个边沿或电平触发的外部中断引脚。 • 片内晶振频率范围:1~30 MHz • 2个低功耗模式:空闲和掉电 • 通过外部中断将处理器从掉电模式中唤醒 。 双电源 • CPU操作电压范围:1.65~1.95 V(1.8 V± 0.15 V) • I/O操作电压范围:3.0~3.6 V(3.3 V± 10%),承受5V电压。
3. 通用并行I/O口 (GPIO) • 没有连接到特定外设功能的管脚由GPIO寄存器进行控制。管脚可以动态配置为输入或输出。寄存器可以同时对任意个输出口进行置位或清零。输出寄存器的值以及管脚的当前状态都可以读出。 • 特性 • 单个位的方向控制。 • 输出置位和清零可单独控制。 • 所有I/O在复位后的默认状态都为输入。
4. 10位A/D转换器 • LPC2119/2129分别包含一个带4路输入的10位逐次逼近模-数转换器。 • 特性 • 测量范围:0-3V • 每秒可执行400,000次10位采样 • 单路或多路输入的突发转换模式 • 根据输入脚的跳变或定时器匹配信号执行转换
5. CAN控制器和验收滤波器 • 包含2个CAN控制器。控制器局域网络(CAN)是一个串行通信协议,它能有效支持高安全等级的分布实时控制。CAN的应用范围很广,从高速的网络到低价位的多路接线都可以使用CAN。 • 特性 • 单个总线上的数据传输速率高达1Mb/s • 32位寄存器和RAM访问 • 兼容CAN 2.0B, ISO 11898-1规范 • 全局验收滤波器可以识别所有的11位和29位Rx标识符 • 验收滤波器为选择的标准标识符提供了FullCAN-style自动接收。
6. UART 包含2个UART。一个UART提供完全的调制解调器控制握手接口,另一个UART只有发送和接收数据线。 特性 • 16字节接收和发送FIFO • 寄存器位置遵循550工业标准 • 接收器FIFO触发点为1、4、8和14个字节 • 内置波特率发生器 • UART1包含标准调制解调器接口信号
7. IIC接口 IIC是一个双向总线,它使用两条线:串行时钟线(SCL) 和串行数据线(SDA) 实现互连芯片的控制。每个器件都通过一个唯一的地址来识别,这些器件可以是只接收器件(例如LCD驱动器),或是可以发送 和接收信息的发送器(例如存储器)。发送器和/或接收器可以操作为主或从模式,这取决于芯片是启动数据的发送还是只被寻址。IIC是一个多主总线,它可以由超过一个总线主控器进行控制。 LPC2119/2129所包含的IIC功能支持400kbit/s(快速I2C)。
8、SPI接口 • SPI接口:SPI(Serial Peripheral Interface,串行外设接口)是Motorola公司开发的一种同步串行外设接口标准。 • SPI接口信号:有4个信号:数据发送、数据接收、时钟和片选。在时钟信号的作用下,发送的同时,接收对方发来的数据;也可以只发送、或者只接收。SPI的波特率可以达到20Mb/s以上。 • 主要特点: • 与SPI 协议 (ver. 2.11) 兼容; • 8位发送移位寄存器; • 8位接收移位寄存器; • 8位预分频器; • 具有查询、中断、DMA传输模式。
8. SPI接口 • SPI是一个全双工的串行接口,它设计成可以处理在一个给定总线上多个互连的主机和从机。在一定数据传输过程中,接口上只能有一个主机和一个从机能够通信。在一次数据传输中,主机总是向从机发送一个字节数据,而从机也总是向主机发送一个字节数据。 • 特性 • 遵循串行外设接口(SPI)规范 • 同步、串行、全双工通信 • 组合的SPI主机和从机 • 最大数据位速率为输入时钟速率的1/8
SPI结构与工作原理 1)SPI结构 SPI主要由4部分构成:时钟分频器、发送移位寄存器、接收移位寄存器、控制逻辑等。如下图所示。
SCK MISO MOSI 主 SPI 设 备 …… 从SPI 1 从SPI 2 从SPI n nSS 2) SPI设备系统组成 系统可以多个SPI设备组成,任何一个设备都可以为主SPI,但是任一时刻只能有一个主SPI设备,并且主SPI设备发出时钟信号和片选控制信号,选择通信的从SPI设备。如下图所示。
9. 通用定时器 • 定时器对外设时钟周期(PCLK)进行计数,可选择产生中断或基于4个匹配寄存器,在到达指定的定时值时执行其它动作。它还包括4个捕获输入,用于在输入信号发生跳变时捕获定时器值,并可选择产生中断。多个管脚通过‘或’、‘与’,可以实现捕获、匹配或‘广播’功能。 • 特性 • 带可编程32位预分频器的32位定时器/计数器 • 当输入信号跳变时,4个32位捕获通道可捕获定时器的瞬时值。捕获事件可选择产生中断。 • 4个32位匹配寄存器: • -连续操作,可选择在匹配时产生中断 • -匹配时停止定时器,可选择产生中断 • -匹配时复位定时器,可选择产生中断
10. 看门狗 看门狗定时器的用途是使微控制器在进入错误状态经过一段时间后复位。当看门狗使能时,如果没有在预先确定的时间内“喂”(重装)看门狗,它将会产生一次系统复位。 特性 • 如果没有周期性重装,则产生片内复位 • 调试模式 • 由软件使能,但要求禁止硬件复位或看门狗复位/中断 • 错误/不完整的喂狗时序会导致复位/中断(如果使能) • 带内部预分频器的可编程32位定时器 • 可选择时间周期:从(tpclk×256×4) 到 (tpclk×232×4),可选值为tpclk×4的倍数
11. 实时时钟 当选择正常或空闲模式时,实时时钟(RTC)提供一套用于测量时间的计数器。RTC消耗的功率非常低,这使其适合于由电池供电的,CPU不连续工作(空闲模式)的系统。 特性: • 对时间段进行测量以实现一个日历或时钟 • 超低功耗设计,支持电池供电系统 • 提供秒、分、小时、日、月、年和星期 • 可编程基准时钟分频器允许调节RTC以适应不同的晶振频率
12. 脉宽调制器(PWM) • 独立控制上升和下降沿位置的能力使PWM可以应用于更多的领域。例如,多相位电机控制通常需要3个非重叠的PWM输出,而这3个输出的脉宽和位置需要独立进行控制。 • 两个匹配寄存器可用于提供单边沿控制的PWM输出。匹配寄存器MR0通过匹配时重新设置计数值来控制PWM周期率。其它的匹配寄存器控制PWM边沿的位置。每个额外的单边沿控制PWM输出只需要一个匹配寄存器,因为所有PWM输出的重复速率是相同的。
13. 晶振 振荡器支持晶振范围为1MHz~30MHz。晶振输出频率称为FOSC,而ARM处理器时钟频率称为cclk。除非连接并运行PLL,否则在该文档中FOSC和cclk的值是相同的。 PLL可以接受范围为10MHz~25MHz的输入时钟频率。输入频率通过一个电流控制振荡器(CCO)可以倍增为10MHz~60MHz。倍增器可以是从1到32的整数(实际上在该系列微控制器当中,由于CPU频率的限制,倍增器的值不可能高于6)。
14. 复位和唤醒定时器 • 2个复位源:RESET管脚和看门狗复位。RESET管脚是一个施密特触发输入管脚,带有附加的干扰滤波器。任何复位源所导致的芯片复位都会启动唤醒定时器(见下面描述的唤醒定时器),复位状态将一直保持到外部复位撤除,振荡器开始运行。振荡器运行经过固定数目的时钟后Flash控制器完成其初始化。 • 当内部复位撤除后,处理器从复位向量地址0开始执行。此时所有的处理器和外设寄存器都被初始化为预设的值。
唤醒定时器的用途是确保振荡器和其它芯片操作所需要的模拟功能在处理器能够执行指令之前完全正常工作。这在上电、各种类型的复位以及任何原因所导致上述功能被关闭的情况下非常重要。由于振荡器和其它功能在掉电模式下关闭,因此将处理器从掉电模式中唤醒就要利用唤醒定时器。 • 唤醒定时器监视晶体振荡器是否可以安全地开始执行代码。当芯片上电时,或某些事件导致芯片退出 • 掉电模式时,振荡器需要一定的时间以产生足够振幅的信号驱动时钟逻辑。时间的长度取决于许多因素,包括VDD上升速度(上电时)、晶振的类型及电气特性(如果使用石英晶体)以及其它外部电路(例如:电容)和外部环境下振荡器自身的特性。
15. 外部中断输入 • 根据可选管脚功能的设定,LPC2119/2129最多可包含9个边沿或电平触发的外部中断输入。外部事件可作为4个独立的中断信号来处理。外部中断输入可用于将处理器从掉电状态唤醒。
16. 存储器映射控制 • 存储器映射控制改变了从地址0x00000000开始的中断向量的映射。向量可以映射到片内Flash存储器的底部,也可以映射到片内静态RAM。这使得在不同存储器空间中运行的代码都能够对中断进行控制。
17. 功率控制 • 支持两种低功耗模式:空闲模式和掉电模式。 • 在空闲模式中,指令的执行被暂停,直到产生复位或中断为止。外围功能在空闲模式下继续工作并可产生中断唤醒处理器。空闲模式使处理器自身、存储器系统和相关的控制器以及内部总线不再消耗功率。 • 在掉电模式中,振荡器被关闭,芯片没有任何的内部时钟。处理器状态和寄存器、外设寄存器和内部SRAM的值在掉电模式下保持不变。芯片管脚的逻辑电平保持静态。通过复位或特定的不需要时钟还可工作的中断可终止掉电模式并恢复正常操作。由于芯片所有动态的操作都被暂停,掉电模式使芯片消耗的功率降低到几乎为零。 • 外设的功率控制特性允许关闭单独的不需要使用的外设,这样可进一步降低功耗。
18. 仿真和调试 • LPC2119/2129支持通过JTAG串行端口进行仿真和调试。跟踪端口允许跟踪程序的执行。调试和跟踪功能只在GPIO的P1口复用。这意味着位于P0口的所有通信、定时器和接口外设在开发和调试阶段都可用。
3.3.3 S3C2410微处理器 S3C2410韩国三星电子公司最近推出中档的一款基于ARM920T核的16/32位RISC嵌入式微处理器。该处理器主要面向手持式设备以及高性价比、低功耗的应用。该处理器采用0.18um CMOS制造工艺,内部采用了新的Advanced Microcontroller Bus Architecture (AMBA)总线 。 ARM920T核由ARM9TDMI内核、存储管理单元MMU和高速缓存三部分组成。其中,MMU可以管理虚拟内存,高速缓存由独立的16KB地址和16KB数据高速Cache组成。ARM920T有两个内部协处理器:CPl4和CPl5。CPl4用于调试控制,CPl5用于存储系统控制以及测试控制。