3.09k likes | 3.27k Views
第六章 ARM 应用系统硬件设计. ◆ 熟悉S3C2410X的功能; ◆ 熟悉嵌入式系统的电源电路、时钟和电源管理、复位电路、存储器系统等主要功能与设计方法。 ◆ 熟悉与掌握I/O 端口、DMA控制器、UART、USB接口、A/D转换与触摸屏、LCD控制器、IIC和IIS等接口电路的原理与使用方法。. 6.1 S3C2410X 介绍. 6.1.1 S3C2410X 功能简介 Samsung 公司推出的 32 位 RISC 处理器 S3C2410X, 为手持设备和一般类型应用提供了低价格、低功耗、高性能小型微控制器的解决方案。
E N D
◆熟悉S3C2410X的功能; ◆熟悉嵌入式系统的电源电路、时钟和电源管理、复位电路、存储器系统等主要功能与设计方法。 ◆熟悉与掌握I/O 端口、DMA控制器、UART、USB接口、A/D转换与触摸屏、LCD控制器、IIC和IIS等接口电路的原理与使用方法。
6.1 S3C2410X介绍 6.1.1 S3C2410X功能简介 Samsung 公司推出的32位RISC处理器S3C2410X,为手持设备和一般类型应用提供了低价格、低功耗、高性能小型微控制器的解决方案。 S3C2410A采用了ARM920T内核,0.18μm工艺的CMOS标准宏单元和存储器单元。 它的低功耗、精简和出色的全静态设计特别适用于对成本和功耗敏感的应用。同样它还采用了AMBA新型总线结构。
S3C2410X为 16/32 位 RISC 体系结构和 ARM920T 内核强大的指令集,加强的 ARM体系结构 MMU用于支持 WinCE,EPOC 32和 Linux,指令高速存储缓冲器(I-Cache),数据高速存储缓冲器(D-Cache),写缓冲器和物理地址 TAG RAM 减少主存带宽和响应性带来的影响;S3C2410X采用 ARM920T CPU 内核,支持 ARM 调试体系结构。
1、体系结构 S3C2410由ARM920T内核和片内外设两大部分构成。 ARM920T内核由ARM9内核ARM9TDMI、32KB的Cache、MMU三部分组成,片内外设分为高速外设和低速外设,分别用AHB总线和APB总线连接。
2、系统管理器 1) 支持大/小端方式 ; 2) 寻址空间:每 bank 128M 字节(总共 1G字节); 3) 支持可编程的每 bank 8/16/32 位数据总线带宽 ; 4) 从 bank 0 到bank 6 都采用固定的 bank 起始寻址 ; 5) bank7 具有可编程的 bank的起始地址和大小;
6) 8 个存储器bank: -其中 6 个适用于 ROM,SRAM,和其他; -另外 2 个适用于 ROM/SRAM 和同步 DRAM 。 7) 所有的存储器 bank 都具有可编程的操作周期; 8) 支持外部等待信号延长总线周期; 9) 支持掉电时的 SDRAM 自刷新模式 ; 10) 支持各种型号的 ROM 引导(NOR/NAND Flash,EEPROM,或其他)。
3、NAND Flash 启动引导 1) 支持从 NAND flash 存储器的启动; 2) 采用 4KB 内部缓冲器进行启动引导; 3) 支持启动之后 NAND 存储器仍然作为外部存储器使用。
4、Cache 存储器 1) 64 项全相连模式,采用 I-Cache(16KB)和 D-Cache(16KB) ; 2) 每行 8 字长度,其中每行带有一个有效为和两个 页面重写标志位; 3) 伪随机数或轮转循环替换算法; 4) 采用写穿式(write-through)或写回式(write-back)cache 操作来更新主存储器; 5) 写缓冲器可以保存 16 个字的数据和 4 个地址。
5、时钟和电源管理 1) 片上 MPLL和 UPLL: 采用 UPLL 产生操作 USB 主机/设备的时钟 ; MPLL 产生最大 266MHZ(在 2.0V内核电压下)操作 MCU所需要的时钟。 2) 通过软件可以有选择性的为每个功能模块提供时钟 ;
3) 电源模式:正常,慢速,空闲和掉电模式; 正常模式:正常运行模式 ; 慢速模式:不加 PLL 的低时钟频率模式; 空闲模式:只停止 CPU的时钟; 掉电模式:所有外设和内核的电源都切断了。 4) 可以通过 EINT[15:0]或 RTC 报警中断来从掉电模式中唤醒处理器。
6、中断控制器 1) 55 个中断源(1 个看门狗定时器,5 个定时器,9 个UARTs,24 个外部中断,4 个 DMA,2个 RTC,2个ADC,1 个 IIC,2 个 SPI,1个 SDI,2 个 USB,1 个 LCD,和 1 个电池故障); 2) 电平/边沿触发模式的外部中断源 ; 3) 可编程的边沿/电平触发极性; 4) 支持为紧急中断请求提供快速中断服务。
7、具有脉冲带宽调制功能的定时器 1) 4 通道 16 位具有 PWM 功能的定时器,1 通道 16 位内部定时器,可基于 DMA 或中断工作 ; 2) 可编程的占空比周期,频率和极性; 3) 能产生死区; 4) 支持外部时钟源。
8、RTC(实时时钟) 1) 全面的时钟特性:秒、分、时、日期,星期,月和年; 2) 32.768KHz工作; 3) 具有报警中断; 4) 具有节拍中断。 9、通用 I/O 端口 1) 24 个外部中断端口; 2) 多功能输入/输出端口。
10、UART 1) 3 通道 UART,可以基于 DMA模式或中断模式工作; 2) 支持 5 位,6位,7 位或者 8 位串行数据发送/接收; 3) 支持外部时钟作为 UART 的运行时钟(UEXTCLK); 4) 可编程的波特率; 5) 支持 IrDA1.0; 6) 具有测试用的还回模式; 7) 每个通道都具有内部 16字节的发送 FIFO和 16 字节的接收 FIFO。
11、DMA控制器 1) 4 通道的 DMA控制器; 2) 支持存储器到存储器,IO到存储器,存储器到 IO和 IO到 IO的传输; 3) 采用猝发传输模式加快传输速率。 12、A/D 转换和触摸屏接口 1) 8 通道多路复用 ADC; 2) 最大 500KSPS/10 位精度。
13、LCD 控制器 STN LCD显示特性 1) 支持 3 种类型的 STN LCD 显示屏:4位双扫描,4位单扫描,8位单扫描显示类型; 2) 支持单色模式、4 级、16 级灰度 STN LCD、256色和 4096 色STN LCD; 3) 支持多种不同尺寸的液晶屏 ; 4) LCD实际尺寸的典型值是:640×480,320×240,160×160及其他; 5) 最大虚拟屏幕大小是 4M 字节.; 6) 256 色模式下支持的最大虚拟屏是:4096×1024,2048×2048,1024×4096 等。
15、看门狗定时器 1) 16 位看门狗定时器; 2) 在定时器溢出时发生中断请求或系统复位。 16、IIC 总线接口 1) 1 通道多主 IIC 总线; 2) 可进行串行,8 位,双向数据传输,标准模式下数据传输速度可达 100kbit/s,快速模式下可达到 400kbit/s。
17、IIS总线接口 1) 1通道音频 IIS 总线接口,可基于 DMA方式工作; 2) 串行,每通道 8/16 位数据传输; 3) 发送和接收具备 128 字节(64 字节加64 字节)FIFO; 4) 支持 IIS 格式和 MSB-justified 数据格式。
18、USB 主设备 1) 2 个 USB 主设备接口; 2) 遵从 OHCI Rev.1.0 标准; 3) 兼容 USB ver1.1 标准; 4) USB 从设备; 5) 1 个 USB 从设备接口; 6) 具备 5 个 Endpoint ; 7) 兼容 USB ver1.1 标准。
19、SD 主机接口 1)兼容 SD存储卡协议 1.0 版; 2)兼容 SDIO卡协议 1.0 版; 3)发送和接收具有 FIFO; 4) 基于 DMA或中断模式工作; 5) 兼容 MMC卡协议 2.11版。
20、SPI 接口 1) 兼容 2 通道 SPI 协议 2.11版; 2) 发送和接收具有 2×8 位的移位寄存器; 3) 可以基于 DMA或中断模式工作。 21、工作电压 1) 内核:1.8V 最高 200MHz (S3C2410A-20) ; 2.0V 最高266MHz (S3C2410A-26) ; 2) 存储器和 IO口:3.3V。
22、操作频率 最高达到 266MHZ 23、封装 272-FBGA
Addr0 ——addr26地址总线 Data0 ——data31地址总线 GPA0 -22、GPB0 -10 、GPC0 -15、 GPD0-15、GPE0-15、GPF0-7、GPG0-15、GPH0-10 EINT23 nGCS0—nGCS7、AIN7、IIC、SPI、OM0---OM3等,而且大部分都是复用的。
6.2 开发板外围电路设计 基于S3C2410X的开发板系统框图:
6.2.1 电源电路 基于S3C2410X的应用系统,需要使用+5V、3.3V和1.8V的直流稳压电源 5V直流稳压电源与计算机的USB输出电压5V可以分别向电路板提供5V直流电压,电压经过稳压电路稳压,分别获得输出3.3V和1.8V输出的直流电压为开发板供,稳压芯片采用LM117-33和LM117-18两种主芯片。 电源输出的3.3V经过分压后得到1.8V给RTC供电,在没有外接电源供电情况下,由3V锂电池,经过两个二极管降压后得到1.8V给RTC供电。
6.2.2 时钟和电源管理 外部振荡电路用于向S3C2410X及其他电路提供工作时钟。根据S3C2410X的最高工作频率以及PLL电路的工作方式,选择12MHz的有源晶振,经过S3C2410X片内的PLL电路倍频后,最高可以达到202.8MHz。
S3C2410X的主时钟由外部晶振或者外部时钟提供,选择后可以生成3种时钟信号,分别是:S3C2410X的主时钟由外部晶振或者外部时钟提供,选择后可以生成3种时钟信号,分别是: 1)CPU使用的FCLK 2)AHB总线使用的HCLK 3)APB总线使用的PCLK。 时钟管理模块同时拥有两个锁相环,一个称为MPLL,用于FCLK、HCLK和PCLK;另一个称为UPLL,用于USB设备。
1、时钟控制逻辑 时钟控制逻辑决定了所使用的时钟源,是采用MPLL作为FCLK,还是采用外部时钟。 复位后,Fin直接传递给FCLK,即使不想改变默认的PLLCON值,也需要重新写一遍。 FCLK由ARM920T核使用,HCLK提供给AHB总线,PCLK提供给了APB总线。 S3C2410X支持HCLK、FCLK和PCLK的分频选择,其比率是通过CLKDIV寄存器中的HDIVN和PDIVN控制的,其分频选择如下表所示。
通过函数ChangeClockDivider(int hdivn, int pdivn)配置APB总线时钟和AHB总线时钟。 通过函数ChangeMPllValue(int mdiv,int pdiv, int sdiv)配置系统主时钟 通过选择不同的分频因子mdiv, pdiv,sdiv,可获得不同的系统主时钟。
例:系统中,使FCLK、HCLK和PCLK的频率比为1:2:4,如果输入频率=12MHz,使输出频率=202.8 MHz,,如何设置它们的参数? 插相关的表知,HDIVN=1,PDIVN=1; 由表6.2.1知,mdiv=0xa1, pdiv=0x3,sdiv=0x1。 将上述参数带入以下函数,就完成了所需的配置。 ChangeClockDivider(int hdivn, int pdivn) ChangeMPllValue(int mdiv,int pdiv, int sdiv) ChangeClockDivider(1,1); // 1:2:4 配置APB总线时钟和AHB总线时钟 ChangeMPllValue(0xa1,0x3,0x1);//FCLK=202.8MHz 配置系统主时钟
2、电源管理 电源管理模块通过4种模式有效地控制功耗: Normal模式:为CPU和所有的外设提供时钟,所有的外设开启时,该模式下的功耗最大。这种模式允许用户通过软件控制外设,可以断开提供给外设的时钟以降低功耗。 Slow模式:采用外部时钟生成FCLK的方式,此时电源的功耗取决于外部时钟。
Idle模式:断开FCLK与CPU核的连接,外设保持正常,该模式下的任何中断都可唤醒CPU。Idle模式:断开FCLK与CPU核的连接,外设保持正常,该模式下的任何中断都可唤醒CPU。 Power-off模式:断开内部电源,只给内部的唤醒逻辑供电。一般模式下需要两个电源,一个提供给唤醒逻辑,另外一个提供给CPU和内部逻辑,在Power-off模式下,后一个电源关闭。该模式可以通过EINT[15:0]和RTC唤醒。
3、时钟和电源管理寄存器 S3C2410X通过控制寄存器实现对时钟和电源的管理,相关寄存器如下表所示。
6.2.3 复位电路 在系统中,复位电路主要完成系统的上电复位和系统在运行时用户的按键复位功能,复位电路采用较简单的RC复位电路,电路如下图所示。
工作原理: 在系统上电时,通过R108向C162充电,当C162两端的电压没有达到高电平的门限电压时,nRESET端输出为低电平,系统处于复位状态;当C162两端的电压达到高电平的门限电压时,nRESET端输出为高电平,系统进入正常工作状态。 当用户按下按键S6时,C162两端的电荷被泻放掉,nRESET端输出为低电平,系统处于复位状态;再重复以上的充电过程,系统进入正常工作状态。 调整R108和C162的值,可以调整复位状态的时间。
6.2.4 S3C2410X与外围电路的连接 由于S3C2410X信片引脚较多,为了设计方便,将其分为三部分:A部分主要为系统地址和数据总线、B部分为外围电路的连接以及C部分为芯片的供电电路。
6.2.5 存储器系统设计 S3C2410X的存储器管理器提供访问外部存储器的所有控制信号:26位地址信号、32位数据信号、8个片选信号、以及读/写控制信号等。 S3C2410X的存储空间分成8组,最大容量是1GB,bank0---bank5为固定128MB,bank6和bank7的容量可编程改变,可以是2、4、8、16、32、64、128MB,并且bank7的开始地址与bank6的结束地址相连接,但是二者的容量必须相等。 bank0可以作为引导ROM,其数据线宽只能是16位和32位,复位时由OM0、OM1引脚确定;其它存储器的数据线宽可以是8位、16位和32位。
S3C2410X的存储器格式,可以编程设置为大端格式,也可以设置为小端格式。S3C2410X的存储器格式,可以编程设置为大端格式,也可以设置为小端格式。 除BANK0外,其余个存储器的总线宽度可编程设置为8位、16位或32位。 BANK0只能设置为16位或32位。BANK0作为引导ROM,地址映射到0X00000000,总线宽度已经在复位时由OM[1:0]确定了。
S3C2410提供8路片选(nGCSn[0~7]),每个片选都指定了固定的地址,每个片选固定间隔为128MB。开发板内存由两片16M×16位数据宽度的SDRAM构成,两片拼成32位模式,公用nGCS6,共64 MB的RAM。起始物理实地址:0X30000000,物理地址分布图如下图所示。SFR表示专用寄存器。 nGCS0接的是一片8M×16位数据宽度的Nor Flash。
1、Nor和Nand Flash的区别 Nor的特点是XIP(eXecute In Place,芯片内执行)特性 应用程序可以直接在Flash闪存内运行,不必再把代码读到系统RAM中。 Nor的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响了它的性能。 Nand结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。AM29LV800容量为8 Megabit (1 M x 8-Bit/512 K x 16-Bit)。
Nor flash存储器:读速度高,而擦、写速度低,容量小,价格高。 Nand flash存储器:读速度不如Nor flash,而擦、写速度高,容量大,价格低。有取代磁盘的趋势。 现在不少用户从Nand flash启动和引导系统,而在SDRAM上执 行主程序代码。
2.存储器的控制寄存器 内存控制器为访问外部存储空间提供存储器控制信号, S3C2410X存储器控制器共有13个寄存器。
1)总线宽度和等待控制寄存器 STn:控制存储器组n的UB/LB引脚输出信号。 1:使UB/LB与nBE[3:0]相连; 0:使UB/LB与nWBE[3:0]相连 WSn:使用/禁用存储器组n的WAIT状态 1:使能WAIT;0:禁止WAIT DWn:控制存储器组n的数据线宽 00:8位;01:16位;10:32位;11:保留