微处理器系统结构与嵌入式系统设计
第十章 基于ARM微处理器的硬
件系统设计
5学时
1
微处理器系统结构与嵌入式系统设计
第十章 基于ARM微处理器的硬件系统设计
基于ARM微处理器的系统设计概述(理解)
S3C2440A微处理器(了解)
S3C2440A微处理器简介
S3C2440A内部结构及主要特性
S3C2440A外部引脚
ARM微处理器最小硬件系统(掌握)
电源模块
时钟模块
复位模块
JTAG调试接口
外部存储器模块
2
微处理器系统结构与嵌入式系统设计
第十章 基于ARM微处理器的硬件系统设计
人机交互接口
键盘与LED接口(掌握)
LCD显示接口(理解)
触摸屏接口(理解)
通信接口
串行通信接口(掌握)
其他通信接口(理解)
3
微处理器系统结构与嵌入式系统设计
基于ARM微处理器的系统设计概述
ARM微处理器有多种内核结构,还有多种多
样的内部功能配置组合,所以在设计一个系
统时选择最合适的ARM芯片是非常重要的。
一些主流的ARM9处理器芯片如:
飞思卡尔:MC9328MX27…
三星:S3C2440A …
Atmel公司:AT91SAM9263 …
意法半导体:STR91x …
恩智浦半导体:LPC2000 系列…
4
微处理器系统结构与嵌入式系统设计
• 三星公司推出的基于ARM内核的微处理器主要面向消费类便
携式设备,为手持设备和一般应用提供了高性价比和高性能的
微控制器解决方案。包括:
• 采用ARM7TDMI内核的S3C44B0和S3C3410
• 采用ARM926EJ-S内核的S3C2412,S3C2413,S3C2416,
S3C2450和S3C24A0
• 采用ARM920T内核的S3C2410,S3C2440,S3C2442和
S3C2443
• 采用ARM1176JZF内核的S3C6400等
• 三星公司采用ARM内核的微处理器主要按照应用来划分,如
通用型32位MCU主要采用ARM7TDMI内核,面向CAN/LIN
总线、以太网、发动机控制和RFID等应用场合。
三星公司的ARM微处理器芯片
5
微处理器系统结构与嵌入式系统设计
三星公司的S3C2440A
• 采用ARM920T内核,实
现了MMU,AMBA总线
和哈佛架构的高速缓冲体
系结构。
• 在高速缓存方面采用了独
立的16 KB的I-cache和16
KB的D-cache。
• 采用 m CMOS工艺
标准宏单元和存储器单元,
其低功耗、简洁的结构和
全静态电路设计特别适合
对成本和功耗敏感的应用。
• 为了降低整机系统的成本,
提供了各类丰富的功能模
块,在系统设计中无需配
置额外的外部组件。
6
微处理器系统结构与嵌入式系统设计
飞思卡尔公司的ARM微处理器芯片
• 美国飞思卡尔公司采用ARM内核的微处理器命名为
系列,该系列主要包含以下子系列:
• ,,,,,,
,、等
• 该系列微处理器主要应用于智能手机、便携式多媒体
播放器、便携式导航设备、视频监控、销售终端机
系统和条码扫描仪等消费类、工业、健康等领域的
产品。
• 除系列微处理器以外,飞思卡尔公司还有少数
其他产品也采用了ARM内核,例如适用于便携式多
媒体播放器和导航设备的STMP37XX系列产品。
7
微处理器系统结构与嵌入式系统设计
飞思卡尔公司的
采 用 ARM926EJ-S内 核 ,
一级指令缓存和数据缓存
各有16KB
集 成 了 16通 道 DMA和
ETM实时调试接口
AHB总 线 采 用 了 6×3多
层交叉开关(MAX),
支持多个并行事项,改善
总线的有效吞吐量。
其外部存储器接口可以支
持16/32位SDRAM或DDR
存 储 器 、 8/16位 NAND
flash存储器和PSRAM。
8
微处理器系统结构与嵌入式系统设计
Atmel公司的ARM微处理器芯片
• 美国Atmel公司继成功推出AT89系列(兼容MCS-51)和AT90
系列(RISC)单片机后,采用业界流行的ARM内核推出了更强的
32位AT91系列微控制器。该系列主要包含以下子系列:
• AT91M42800A,AT91M55800A
• AT91RM9200,AT91SAM7A
• AT91SAM7L(低功耗),AT91SAM7S
• AT91SAM7SE,AT91SAM7X
• AT91SAM9,AT91SAM9XE和AT91X40
• AT91系列微控制器使用高密度CMOS技术,集成了ARM内核
和大量的Flash存储器、片内RAM和各种外围功能模块,为许
多需要加强运算的嵌入式应用提供了高度灵活且性价比高的解
决方案。
9
微处理器系统结构与嵌入式系统设计
Atmel公司的AT91SAM9263
• 基于ARM926EJ-S内核的32位微处理器
• 带MMU存储器管理单元,支持DSP扩展指令和JAVA
硬件加速,当运行在200MHz时拥有220MIPS的运算
性能
• AT91SAM9263具备两组独立的外部存储器总线EBI0
和EBI1,可以连接多种内存设备和大容量IDE硬盘设
备
• 内部嵌有LCD控制器,可支持2D图形加速、双通道
DMA和图像传感器接口
• 集成了多种标准外设接口,例如USART,SPI,TWI
,定时计数器,PWM,多媒体卡接口和CAN控制器
等
10
微处理器系统结构与嵌入式系统设计
意法半导体公司的ARM微处理器芯片
• 意法半导体有限公司(STMicroelectronics)是全球最大的半导
体公司之一。其采用ARM内核的微处理器主要包括三个系列:
采用Cortex-M3内核的STM32系列、采用ARM7TDMI内核的
STR7系列和采用ARM966E-S内核的STR9系列。
• STM32系列产品得益于Cortex-M3在架构上进行的多项改进,
包括性能和代码密度同时得以提升的Thumb-2指令集,大幅
度提高的中断响应,而且所有新功能都同时具有业界最优的
功耗水平。
• STR7系列产品融合了16位和32位产品的优势,适合嵌入式控
制应用,如工业控制、工厂自动化、销售终端设备、医疗和
测试设备以及电信和消费电子应用等。
• STR9系列结合了ARM9E处理器内核和通用闪存,并加入了联
网功能,使实现各种要求苛刻的应用变得更加简单和廉价。
11
微处理器系统结构与嵌入式系统设计
意法半导体公司的STR91x
n 采用96 MHz ARM966E-S内核,
带有单周期的DSP指令和与介质
无关的联网功能;
n 大容量存储器可满足复杂的应用、
实时操作系统(RTOS)、通信协
议栈和数据存储的需求;双体闪
存是实现在线编程(IAP)和
E2PROM仿真的理想结构。
n 具有优化DMA数据流的10/100
M以太网接口;
n 支持USB,CAN,SPI,I2C,
UART/IrDA和多个计时器,最多
80个5 V兼容的GPIO;
n 带有10位ADC并具有全方位的
CPU监控功能;
n 灵活的功耗和时钟管理功能,具
有多种低功耗模式和带闹钟功能
的低功耗实时时钟。
12
微处理器系统结构与嵌入式系统设计
恩智浦半导体的ARM微处理器芯片
恩智浦半导体由飞利浦在 50 多年前创立。恩智浦
提供半导体、系统解决方案和软件,为电视、机顶
盒、智能识别应用、手机、汽车以及其他形形色色
的电子设备提供更好的感知体验。
恩智浦半导体基于ARM7的LPC2000 为32 位微控
制器设定了新的性价比,包括LPC213x,LPC214x、
LPC2101/2/3等系列, 采用了 μm工艺
更高性能产品系列(LPC2300,LPC2400,LPC2800)采
用了工艺
13
微处理器系统结构与嵌入式系统设计
恩智浦半导体的LPC2000
ARM7TDMI-S内核
• 三级流水线
• 冯·诺依曼架构
• T: Thumb指令集
• D: Debug扩展
• M: 增强的乘法指令(32B x 8B -> 64B)
• I: 内核带有EmbeddedICE逻辑功能扩展
• S: 软核
高速嵌入式Flash
丰富的外设资源
• UART, SPI, I2C, CAN, USB, ethernet等
工业级芯片
• 工作温度范围: –40°C~+85°C / +105°C
丰富开发工具支持
高性能, 低价格
14
微处理器系统结构与嵌入式系统设计
ARM芯片的选型
• 性能参数的考虑
• ARM核版本
• 工作频率
• 内部存储器容量
• 电源控制
• DSP协处理器
• 功耗
• 外设接口的考虑
• USB接口
• RTC
• GPIO数量
• 其他因素
• 芯片封装的选择
芯片的封装有很多种类型,如:DIP、QFP、PGA、BGA等
在散热性能、信号完整性特性、体积大小等方面的要求
15
微处理器系统结构与嵌入式系统设计
ARM微处理器最小硬件系统
ARM微处理器;
电源模块,包括CPU内核和
I/O接口电源电源;
时钟模块,包括系统主时钟
和实时时钟;
复位模块,包括系统上电复
位、手动复位和内部复位;
存储器模块,包括程序保存
存储器(FLASH)和程序运
行存储器(SDRAM);
JTAG调试接口模块。
最小硬件系统通常是指以
嵌入式处理器为核心,包含电
源、时钟和复位等保障处理器
正常工作的基本硬件电路 。
16
微处理器系统结构与嵌入式系统设计
S3C2440A最小硬件系统:电源模块
电源模块是系统工作的能量来源,其电
压、纹波、内阻和驱动能力等性能直接影
响到系统工作的稳定性,因此电源模块在
系统设计中至关重要。
电源电压一定要在系统需求的范围之内
电源的驱动能力一定要能满足整个系统的
功率需求
电源纹波和电路干扰的处理
在设计PCB时需要对模拟电源和数字电源进
行物理上的隔离
17
微处理器系统结构与嵌入式系统设计
18
微处理器系统结构与嵌入式系统设计
S3C2440A最小硬件系统:时钟模块
时钟模块为系统提供同步工作信号,其稳定性直接关系
到系统的工作稳定性。
在ARM嵌入式系统中通常包括频率较高的系统主时钟
和频率较低的实时时钟。
时钟经内部锁相环后得到四组时钟信号:
FCLK:ARM920T内核
HCLK:AHB总线、存储器控制器、中断控制器、LCD控制器、DMA控
制器和USB主机模块
PCLK:访问APB总线的外设,如WDT,I2S,I2C,PWM定时器,MMC
接口,ADC,UART,GPIO,RTC和SPI等模块
UCLK:USB模块需要的48 MHz时钟
19
微处理器系统结构与嵌入式系统设计
20
微处理器系统结构与嵌入式系统设计
S3C2440A最小硬件系统:复位模块
系统上电复位、手动复位和内部复位
一般来说系统对外部复位信号波形有一定的要求,若不能满
足要求(例如持续时间过短),则系统将不能正常工作。
21
微处理器系统结构与嵌入式系统设计
存储器模块为系统程序的保存和运行提供空
间,在系统设计中主要根据处理器的存储器
接口选择合适的存储器芯片(存储类型、容
量、速度和接口类型 )
ARM最小系统中的存储器通常包括存放程序
的NAND Flash和用于程序运行的SDRAM。
存储器模块通常挂接在ARM芯片的局部总线
上(外部三总线)。
S3C2440A最小硬件系统:存储器模块
22
微处理器系统结构与嵌入式系统设计
“Steppingstone”为系统从外
部Flash存储器引导提供支持
23
微处理器系统结构与嵌入式系统设计
使用16位存储芯片构造32位宽存储器
系统
24
微处理器系统结构与嵌入式系统设计
ARM微处理器一般都采用JTAG作为基本调
试接口
nTRST,TMS,TCK,TDI和TDO
S3C2440A最小硬件系统:调试接口
25
微处理器系统结构与嵌入式系统设计
人机交互接口
人机交互接口主要用于人与设备之间的信
息交换,通常包括用于信息输入的键盘、触
摸屏,以及信息输出的各类显示设备。
以S3C2440A的相关接口为例介绍各类接
口硬件结构与使用:
• 键盘与LED接口
• LCD显示接口
• 触摸屏接口
26
微处理器系统结构与嵌入式系统设计
键盘与LED接口
按键和LED是最常用的两种输入输出器件,使
用它们可以实现简单的信号输入和输出,在嵌入式系
统中有重要用途。
这类简单外设与处理器进行连接时,通常有两
种方式:一是使用处理器的GPIO直接控制,由处理
器运行相应软件来实现所需功能;二是使用专用的控
制芯片来获取按键信息以及驱动显示。
GPIO(General Purpose Input)可以实现任何一
般用途的信号输入/输出。
ARM处理器芯片的大部分引脚都可以通过设定
相应的控制寄存器实现基本的GPIO功能,并可编程
设置信号方向、电平上拉/下拉等功能。
27
微处理器系统结构与嵌入式系统设计
在S3C2440A中共有130个多功能I/O引
脚,这些引脚除了可以作为某个特殊功能使
用外,均可以配置成GPIO模式,并分为以
下八组:
• Port A(GPA):25个输出端口
• Port B(GPB):11个输入/输出端口
• Port C(GPC):16个输入/输出端口
• Port D(GPD):16个输入/输出端口
• Port E(GPE):16个输入/输出端口
• Port F(GPF):8个输入/输出端口
• Port G(GPG):16个输入/输出端口
• Port H(GPH):9个输入/输出端口
• Port J(GPJ):13个输入/输出端口
GPIO
28
微处理器系统结构与嵌入式系统设计
例:使用S3C2440A的端口G的第4~7
引脚驱动四个LED,并点亮GPG4引脚的
LED。
29
微处理器系统结构与嵌入式系统设计
每组GPIO端口均有各自的寄存器组,主要包括
端口配置寄存器(GPxCON)、端口数据寄存器
(GPxDAT)、端口上拉寄存器(GPxUP)。
寄存器名 地址 读写属性 功能 复位值
GPGCON 0x56000060 可读可写
配置引脚功能为
输入/输出/其他
0x00
GPGDAT 0x56000064 可读可写 G端口数据寄存器 未定义
GPGUP 0x56000068 可读可写
上拉配置寄存器
低电平0有效
0xFC00
30
微处理器系统结构与嵌入式系统设计
G端口共有16个GPIO引脚,寄存器
GPGCON宽度为32位,每个引脚的功能各由2位
来选择控制,第4~7引脚的控制位如下:
GPGCON 寄存器位 功能选择
GPG7 [15:14]
00=输入 01=输出
10=EINT[15] 11=保留
GPG6 [13:12]
00=输入 01=输出
10=EINT[14] 11=保留
GPG5 [11:10]
00=输入 01=输出
10=EINT[13] 11=保留
GPG4 [9:8]
00=输入 01=输出
10=EINT[12] 11=保留
31
微处理器系统结构与嵌入式系统设计
寄存器GPGDAT和GPGUP宽度均为16位,
各引脚按其编号与相应的寄存器位对应。
GPGDAT中存放的即为需要输出的数据,
根据硬件电路连接图可知,要将第4引脚LED
点亮,则对应的引脚应输出低电平,所以寄
存器GPGDAT中的[7:4]位应设置为二进制值
1110。
本例中端口为输出功能,因此寄存器
GPGUP中对应各位均设置为1,将上拉电阻
断开。
32
微处理器系统结构与嵌入式系统设计
GPGCON EQU 0x56000060
GPGDAT EQU 0x56000064
GPUP EQU 0x56000068
;配置GPGCON寄存器,设置相关引脚为输出功能
LDR R0, =GPGCON
LDR R1, [R0]
BIC R1, R1, #0x0000FF00
ORR R1, R1, #0x00005500
STR R1, [R0]
;配置GPGUP寄存器,断开各上拉电阻
LDR R0, =GPGUP
LDR R1, [R0]
ORR R1, R1, #0x00F0
STR R1, [R0]
;输出驱动数据,点亮GPG4引脚对应的LED
LDR R2, =GPGDAT
LDR R3, [R2]
ORR R3, R3, #0x00F0
BIC R3, R3, #0x0010
STR R3, [R2]33
微处理器系统结构与嵌入式系统设计
使用GPIO的问题:
按键或LED数量较大时,由于处理器GPIO数量有
限,无法满足硬件电路设计需求;
采用GPIO的驱动方式需要CPU执行软件来完成相
应的功能,需占用大量的处理器时间,在多任务
系统中很难满足实时性要求。
采用专用的控制芯片来驱动键盘及数码管
直接驱动数码管/同时扫描管理多个按键/内含有显
示译码器
有多种控制指令,如消隐、闪烁、左移、右移、
段寻址等。
通常采用I2C等串行总线与系统连接
专用控制芯片
34
微处理器系统结构与嵌入式系统设计
在嵌入式系统中常用的LCD产品主要有两种:
一种是带有驱动电路的LCD显示模块;另一种则仅
是LCD显示屏,没有驱动电路,需要与驱动电路配
合使用。
在常见的ARM处理器芯片中,通常都带有LCD
控制器,可以直接驱动多种LCD显示屏。
S3C2440A中的LCD控制器模块,可以直接与
STN或TFT等多种不同分辨率的单色/彩色LCD连接,
具有将显示缓存(在系统存储器中)中的LCD图象
数据传输到外部LCD 驱动电路的逻辑功能,驱动其
完成各类数据的显示。
LCD显示接口
35
微处理器系统结构与嵌入式系统设计
按照触摸屏的工作原理和感应触摸信息的
介质来分,常见的触摸屏有四类:
电阻式
电容式
红外线式
表面声波式
触摸屏接口
电阻屏根据引出线数多少,可分为四线、五
线、六线等多线电阻触摸屏。
36
微处理器系统结构与嵌入式系统设计
S3C2440A处理器中内置了A/D转换器,并提
供了一个专用的四线电阻式触摸屏接口,此接口引
出了四根信号线XP,XM,YP,YM,分别对应触
摸屏上的X+,X-,Y+,Y-,因此在硬件接口
设计上十分简洁。
37
微处理器系统结构与嵌入式系统设计
通信接口
通信接口通常用于嵌入式设备与其他设
备进行信息交换,由于各类设备性能指标差
异巨大,要实现信息的传递需要进行速率、
电平、时序、信息格式等多方面的转换和匹
配,所以该类接口种类十分丰富。
• 串行通信SCI接口
• 其他通信接口
38
微处理器系统结构与嵌入式系统设计
S3C2440中的UART模块
39
微处理器系统结构与嵌入式系统设计
接口初始化:
ULCON、UCON、UFCON、UMCON、UBRDIV
数据传递:
UTRSTAT、UFSTAT、UTXH、URXH
接收错误状况:
UERSTAT
S3C2440A中UART0的相关寄存器
40
问题:请归纳总结上述串口的端口寄存器
的复用功能及每个位的含义。
微处理器系统结构与嵌入式系统设计
例:UART0采用查询方式进行数据通
信,要求使用8位数据位,1位停止位,奇
校验,传输速率115200bps,不使用FIFO
,关闭流控制,处理器外设时钟
PCLK=。
步骤1:接口初始化
设置帧格式、时钟来源、收发模式、中断配
置、FIFO的使用、波特率计算等
步骤2:数据传递:
可选择使用查询方式或中断方式传递
41
微处理器系统结构与嵌入式系统设计
主要用于帧格式配置
ULCON0=0x23
步骤1:UART0的初始化
①配置ULCON0线路控制寄存器
42
微处理器系统结构与嵌入式系统设计
主要用于时钟源选择、收发模式、中断配置等
UCON0=0x0005
步骤1:UART0的初始化
②配置UCON0控制寄存器
43
微处理器系统结构与嵌入式系统设计
主要用于使能FIFO及相关参数配置
UFCON0=0x00
步骤1:UART0的初始化
③配置UFCON0 FIFO控制寄存器
44
微处理器系统结构与嵌入式系统设计
主要用于设置UART模块与Modem相关
参数
UFCON0=0x00
步骤1:UART0的初始化
④配置UMCON0调制解调器控制寄存器
45
微处理器系统结构与嵌入式系统设计
步骤1:UART0的初始化
⑤配置UBRDIV0波特率控制寄存器
UBRDIV= int (UART时钟频率/(波特率×16) ) – 1
采用的PCLK作为时钟源,为得到115200bps的
速率,则:
UBRDIV= int ( ) – 1
=int() – 1=35
实际波特率=UART时钟频率/((UBRDIV+1)×16)
= ×16)≈115764bps
实际的工作速率与理论值之间存在偏差:
(115764 – 115200)/115200×100% = +%
46
微处理器系统结构与嵌入式系统设计
初始化程序段
ULCON0 EQU 0x50000000
UCON0 EQU 0x50000004
UFCON0 EQU 0x50000008
UMCON0 EQU 0x5000000C
UBRDIV0 EQU 0x50000028
LDR R2, =ULCON0 ;配置ULCON0寄存器
MOV R3, #0x23
STRB R3, [R2]
LDR R2, =UCON0 ;配置UCON0寄存器
MOV R3, #0x05
STRH R3, [R2]
LDR R2, =UFCON0 ;配置UFCON0寄存器
MOV R3, #0x00
STR R3, [R2]
LDR R2, =UMCON0 ;配置UMCON0寄存器
MOV R3, #0x00
STR R3, [R2]
LDR R2, =UBRDIV0 ;配置UBRDIV0寄存器
MOV R3, #35
STRH R3, [R2]47
微处理器系统结构与嵌入式系统设计
步骤2:使用UART0进行数据收发
使用UTRSTAT0、UTXH0、URXH0
进行状态的判断并完成通信。
48
微处理器系统结构与嵌入式系统设计
收/发示例程序段
UTRSTAT0 EQU 0x50000010
UTXH0 EQU 0x50000020 ;假设系统采用小端存储
URXH0 EQU 0x50000024 ;假设系统采用小端存储
…………
TLOOP LDR R0, =UTRSTAT0;读取UART0收发状态寄存器的值
TST R0, #0x02 ;判断发送缓冲区是否空闲
BEQ TLOOP ;不空闲则继续查询
LDR R0, =UTXH0
STRB R1, [R0] ;若空闲,则将R1寄存器中字节
;传递至发送缓冲区,完成一字节
;数据发送
…………
RLOOP LDR R0, =UTRSTAT0;读取UART0收发状态寄存器的值
TST R0, #0x01 ;判断接收缓冲区是否有数据
BEQ RLOOP ;若没有数据则继续查询
LDR R0, =URXH0
LDRB R1, [R0] ;若有数据则将数据收回至R1寄
;存器完成一字节数据接收
49
微处理器系统结构与嵌入式系统设计
其他通信接口
SPI(Serial Peripheral Interface)串行外设接口总
线系统是一种同步串行外设接口,是Motorola首先在
其MC68HC系列处理器上定义的。
I2C(Inter - Integrated Circuit)总线是由PHILIPS
公司开发的两线式串行总线,可用于连接微控制器及
其外围设备。
CAN(Controller Area Network)控制器局域网络,
是由研发和生产汽车电子产品著称的德国BOSCH公
司开发了的,并最终成为国际标准,是国际上应用最
广泛的现场总线之一。
USB(Universal Serial Bus)通用串行总线,是一
个外部总线标准,用于规范电脑与外部设备的连接和
通讯。
50
微处理器系统结构与嵌入式系统设计
第10章 作业
作业:2、4、6~10
思考:1、3、5
51