版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1第五章基于第五章基于S3C2410的的系统硬件设计系统硬件设计 (上)(上)2第五章第五章 基于基于S3C2410的系统硬件设计的系统硬件设计 l5.2 最小系统设计l5.3 中断系统设计l5.4 DMA设计l5.5 I/O接口扩展l5.6 AD、DA接口设计l5.7 PWM定时器l5.8 人机接口设计l5.9 通信接口设计3 5.1 S3C2410 5.1 S3C2410简介简介 S3C2410 S3C2410是是SamsungSamsung公司公司推出的推出的16/3216/32位位RISCRISC处理器,主要处理器,主要面向手持设备以及高性价比、低功耗的应用。面向手持设备以及高性价比、
2、低功耗的应用。 CPUCPU内核采用内核采用的是的是ARMARM公司设计的公司设计的16/3216/32位位ARM920T RISCARM920T RISC处理器处理器。 S3C2410AS3C2410A提供一组完整的系统外围设备:提供一组完整的系统外围设备:2 2个个USBUSB主设备接口,主设备接口,1 1个个USBUSB从设备接从设备接口;口;4 4通道通道PWMPWM定时器和定时器和1 1通道内部定时器;通道内部定时器;看门狗定时器;看门狗定时器;117117位通用位通用I/OI/O口和口和2424通道外部中断源;通道外部中断源;电源控制模式包括:正常、慢速、空闲电源控制模式包括:正常
3、、慢速、空闲和掉电四种模式;和掉电四种模式; 8 8通道通道1010位位ADCADC和触摸屏接口;和触摸屏接口;具有日历功能的具有日历功能的RTCRTC;使用使用PLLPLL的片上时钟发生器。的片上时钟发生器。 1.8V/2.0V1.8V/2.0V内核供电,内核供电,3.3V3.3V存储器供电,存储器供电,3.3V3.3V外部外部I/OI/O供电;供电;具有具有16KB16KB的的ICacheICache和和16KB16KB的的DCacheDCache以以及及MMUMMU;外部存储器控制器;外部存储器控制器;LCDLCD控制器提供控制器提供1 1通道通道LCDLCD专用专用DMADMA;4 4
4、通道通道DMADMA并有外部请求引脚;并有外部请求引脚;3 3通道通道UARTUART和和2 2通道通道SPISPI;1 1通道多主机通道多主机IICIIC总线和总线和1 1通道通道IISIIS总线控总线控制器;制器;SDSD主接口版本主接口版本1.01.0和和MMCMMC卡协议卡协议2.112.11兼兼容版;容版;4S3C2410S3C2410结构框图结构框图 5 S3C2410X Pin Assignments (272-FBGA) S3C2410X Pin Assignments (272-FBGA)6789101112131415第五章第五章 基于基于S3C2410的系统硬件设计的系统
5、硬件设计 l5.1 S3C2410 简介l5.3 中断系统设计l5.4 DMA设计l5.5 I/O接口扩展l5.6 AD、DA接口设计l5.7 PWM定时器l5.8 人机接口设计l5.9 通信接口设计16 5.2 .2 什么是最小系统什么是最小系统 嵌入式微处理器芯片自己是不能独立工作的,需要嵌入式微处理器芯片自己是不能独立工作的,需要一些必要的外围元器件给它提供基本的工作条件。一些必要的外围元器件给它提供基本的工作条件。一个一个 ARM 最小系统一般包括:最小系统一般包括:(1) ARM 微处理器芯片微处理器芯片(2) 电源电路、复位电路,晶振电路,电源电路、复位电路,晶振电路, (3) 存
6、储器(存储器( FLASH 和和 SDRAM ),), (4) UART(RS232及以太网)接口电路。及以太网)接口电路。 (5) JTAG 调试接口。调试接口。17最小系统结构框图最小系统结构框图最小系统例板最小系统例板S3C2410晶振系统扩展接口电源复位电路串行接口JTAG接口Flash存储器SDRAM18 微处理器:S3C2410是系统工作和控制中心; 电源电路:为S3C2410核心部分提供所需的1.80V工作电压,为部分外围芯片提供3.0V的工作电压; 晶振电路:为微处理器及其他电路提供工作时钟,及系统中S3C2410芯片使用32KHz或32.768KHz无源晶振;Flash存储器
7、:存放嵌入式操作系统、用户应用程序或者其他在系统掉电后需要保存的用户数据等;S3C2410晶振系统扩展接口电源复位电路串行接口JTAG接口Flash存储器SDRAM最小系统结构框图最小系统结构框图19SDRAM:作为系统运行时的主要区域,系统及用户数据、堆栈均位于该存储器中;串行接口:用于系统与其他应用系统的短距离双向串行通信和构建交叉编译环境; JTAG接口:对芯片内部所有部件进行访问,通过该接口对系统进行调试、编程等;系统总线扩展:引出地址总线、数据总线和必须的控制总线,便于用户根据自身的特定需求,扩展外围电路。S3C2410晶振系统扩展接口电源复位电路串行接口JTAG接口Flash存储器
8、SDRAM最小系统结构框图最小系统结构框图20 在嵌入式系统中,最小系统虽然简单,但是在嵌入式系统中,最小系统虽然简单,但是作为整个系统正常运行的基本条件,因此其稳作为整个系统正常运行的基本条件,因此其稳定可靠的运行是至关重要的。因此,在嵌入式定可靠的运行是至关重要的。因此,在嵌入式系统中,往往将最小系统制成一个核心板,其系统中,往往将最小系统制成一个核心板,其他的各种接口和外围扩展设备都制成一个接口他的各种接口和外围扩展设备都制成一个接口板来组成一个系统。板来组成一个系统。2122 5.2.1 .2.1 时钟和功率管理时钟和功率管理 S3C2410A的时钟控制逻辑能够产生系统所需要的时钟,的
9、时钟控制逻辑能够产生系统所需要的时钟,包括包括 CPU的的FCLK,AHB总线接口的总线接口的HCLK,和,和 APB总线接总线接口的口的PCLK。 S3C2410A有两个有两个PLL(MPLL和和UPLL) ,一个,一个MPLL用用于于FCLK,HCLK,PCLK,另一个,另一个UPLL用于用于USB模块模块(48MHZ)。时钟控制逻辑能够由软件控制不将)。时钟控制逻辑能够由软件控制不将 PLL连接到连接到各接口模块以降低处理器时钟频率,从而降低功耗。各接口模块以降低处理器时钟频率,从而降低功耗。23 FCLK用于 ARM920T; HCLK用于 AHB总线(包括 ARM920T,存储控制器
10、,中断控制器,LCD控制器,DMA和 USB主机); PCLK 用于APB总线 (包括外设如WDT,IIS,I2C,PWM, PWM,TIMER, MMC, ADC, UART, GPIO, RTC, SPI)。 24 时钟架构的方块图如下图所示:主时钟源由一个外部时钟架构的方块图如下图所示:主时钟源由一个外部晶振或者外部时钟产生。时钟发生器包括连接到一个外部晶振或者外部时钟产生。时钟发生器包括连接到一个外部晶振的振荡器和两个晶振的振荡器和两个 PLL(MPLL和和UPLL)用于产生系)用于产生系统所需的高频时钟。统所需的高频时钟。 时钟源选择时钟源选择 下表 描述了模式控制引脚(OM3和OM
11、2)和选择时钟源之间的对应关系。OM3:2的状态由OM3和 OM2引脚的状态在 nRESET的上升沿锁存得到。25262、锁相环、锁相环 PLL 位于时钟信号发生器的内部 MPLL 用于将输出信号和相关输入信号在相位和频率上同步起来。它包括如下图所示的一些基本模块:2728PLL的工作原理:的工作原理:29PLL控制寄存器控制寄存器(MPLLCON/UPLLCON) USB时钟控制时钟控制 USB 主机接口和 USB 设备接口需要 48MHz 的时钟。在 S3C2410 中,是通过UPLL来产生这一时钟的,UCLK只有在 UPLL配置好后才会生效。 0 x5C=920 x28=4030PLL选
12、择表选择表31注:注: 1、默认值下、默认值下MPLL为为Fin的的10倍频,倍频,UPLL为为Fin的的4倍频倍频 1、尽管可以根据公式设置、尽管可以根据公式设置 PLL,但是推荐仅使用,但是推荐仅使用 推荐推荐表里面的值。表里面的值。 2、如果要同时设置、如果要同时设置 UPLL 和和 MPLL,请先设置,请先设置 UPLL,然后设置然后设置 MPLL,且至少要间隔,且至少要间隔7个时钟周期。个时钟周期。 32上电复位(上电复位(XTIpll)时钟锁定过程)时钟锁定过程 下图显示了上电复位时的时钟行为。 晶振在几毫秒内开始振荡。当 OSC 时钟稳定后,PLL 根据默认 PLL 设置开始生效
13、,但是通常这个时候是不稳定的,因此。FCLK在软件配置好 PLLCON之后锁定一段时间后连接到Mpll。33正常情况下改变正常情况下改变 MPLL设置设置 正常模式下,用户可以通过写 P/M/S的值来改变 FCLK的频率,此时将会自动插入一段时间延迟,在这段延迟内 FCLK将停止,其时序如下图所示:34FCLK,HCLK,PCLK频率确定频率确定 S3C2410支持三者之间的比率可选,这个比率是由CLKDIVN寄存器的 HDIVN和 PDIVN决定的。 设置好 PMS 的值后,需要设置 CLKDIVN 寄存器。CLKDIVN 寄存器的值将在PLL锁定时间之后生效,在复位和改变功率模式后也是有效
14、的。3536 S3C2410A有各种针对不同任务提供的最佳功率管理策略,功率管理模块能够使系统工作在如下 4种模式:正常模式正常模式,低速模式低速模式,空闲模式空闲模式和掉电模式掉电模式。 在 S3C2410 中,功率管理模块通过软件控制系统功率管理模块通过软件控制系统时钟来达到降低功耗的目的时钟来达到降低功耗的目的。这些策略牵涉到 PLL,时钟控制逻辑和唤醒信号。图显示了 S3C2410的时钟分配。3738 正常模式下,所有的外设和基本的功能模块,包括功率管理模块,CPU 核心,总线控制器,存储控制器,中断控制器,DMA 和外部控制器都可以完全操作。但是除了基本的模块之外,其他模块都可以通过
15、关闭其时钟的方法来降低功耗。 空闲模式下,除了总线控制器、存储控制器、中断控制器、功率管理模块以外的 CPU 时钟都被停止。EINT23:0、RTC 中断或者其他中断都可以将 CPU从空闲模式下唤醒。39 低速模式通过降低低速模式通过降低 FCLK和关闭和关闭 PLL来实现降低功来实现降低功耗。耗。此时 FCLK是外部时钟(XTIpll or EXTCLK)的 n 分频。分频数由 CLKSLOW 寄存器的 SLOW_VAL 和CLKDIVN寄存器决定。 在低速模式下,PLL 是关闭的。当用户需要从低速模式切换到正常模式时,PLL 需要一个时钟稳定时间(PLL 锁定时间)。PLL 稳定时间是由内
16、部逻辑自动插入的,大概需要150us,在这段时间内,FCLK还是使用低速模式下的时钟。 40低速时钟控制寄存器低速时钟控制寄存器(CLKSLOW) 41时钟控制寄存器时钟控制寄存器 CLKCON 42 功率管理模块断开内部电源功率管理模块断开内部电源。因此除CPU和唤醒逻辑单元以外的外设都不会产生功耗。要执行掉电模式需要有两个独立的电源,其中一个给唤醒逻辑单元供电,另一个给包括 CPU在内的其他模块供电。在掉电模式下,第二个电源将被关掉。掉电模式可以由外部中断 EINT15:0或 RTC中断唤醒。43电源电路设计电源电路设计DC-DC转换芯片转换芯片q有很多有很多DC-DCDC-DC转换器可完
17、成到转换器可完成到3.3V3.3V的转换,如的转换,如Linear Linear TechnologyTechnology的的LT108XLT108X系列。常见的型号和对应的电流输出系列。常见的型号和对应的电流输出如下:如下:LT1083 LT1083 7.5A7.5ALT1084 LT1084 5A5ALT1085 LT1085 3A3ALT1086 LT1086 1.5A1.5Aq有很多有很多DC-DCDC-DC转换器可完成到转换器可完成到2.5V2.5V的转换,常用的如的转换,常用的如Linear TechnologyLinear Technology的的LT1761LT1761。44电
18、源电路设计电源电路设计3.3Vq需要使用需要使用3.3V3.3V的直流稳压电源,系统电源电路如下图的直流稳压电源,系统电源电路如下图所示:所示:DC 7.5V 2A直流电源整流、定向拨动开关DC-DC转换芯片LT1086滤波电路45电源电路设计电源电路设计2.5Vq需要使用需要使用2.5V2.5V的直流稳压电源,系统电源电路如下图的直流稳压电源,系统电源电路如下图所示:所示:滤波电路DC3.3V464748 5.2.2 .2.2 复位复位 S3C2410的nRESET管脚上,持续持续4个个FCLK以上以上的低电平,将使其进入复位状态。 S3C2410的复位电路一般由复位芯片来实现。MAX811
19、或IMP811芯片就是常用的复位芯片,它只有4个管脚。利用该芯片可以同时上电复位和手动复位,其复位时间不小于140ms。其引脚分布如下:49引脚说明引脚说明50 当Vcc信号低于门限电压时,IMP811的复位信号为低电平,而IMP812的复位信号则为高电平。并且在Vcc已经升至该门限之上后,保持这个信号最少140ms。 MR端的逻辑低电平将IMP811的RESET端设为低电平,而IMP812的复位则设为高电平。MR在内部通过一个20k电阻被拉至高电平并可由TTL/CMOS门或集电极/漏极开路输出驱动。MR不用时可为开路。 MR可用一个常开开关连接到地而无需外部去抖动电路。51其应用电路如下:其
20、应用电路如下:IMP811有六种电压门限以支持3V至5V系统:52 5.2.3 JTAG.2.3 JTAG JTAG(Joint Test Action Group,联合测试行动小组1985 年制定的检测PCB 测试的一个标准, 1990 年被修改后成为IEEE 的一个标准, 即IEEE1149.1-1990。IEEE 1149.1 标准就是由JTAG 这个组织最初提出的,最终由IEEE 批准并且标准化的。所以,这个IEEE 1149.1 这个标准一般也俗称JTAG 调试标准。 一个含有一个含有JTAG Debug接口模块的接口模块的CPU,只要时钟正常,就可,只要时钟正常,就可以通过以通过J
21、TAG接口访问接口访问CPU的内部寄存器和挂在的内部寄存器和挂在CPU总线上的设备总线上的设备,如FLASH,RAM,SOC内置模块的寄存器,像UART,Timers,GPIO等等的寄存器 在理论上,通过JTAG可以访问CPU总线上的所有设备,所以应该可以写FLASH,但是FLASH写入方式和RAM大不相同,需要特殊的命令,而且不同的FLASH擦除,编程命令不同,而且块的大小,数量也不同,很难提供这一项功能。所以一般调试软件像AXD等不提供写Flash功能,或者仅支持少量几种Flash。 53 接口的主要信号接口就是这 5 个。下面,我先分别介绍这个 5 个接口信号及其作用。 Test Clo
22、ck Input (TCK) TCK 为 TAP 的操作提供了一个独立的、基本的时钟信号,TAP 的所有操作都是通过这个时钟信号来驱动的。TCK在 IEEE 1149.1 标准里是强制要求的。 Test Mode Selection Input (TMS) TMS 信号用来控制 TAP 状态机的转换。通过 TMS 信号,可以控制 TAP 在不同的状态间相互转换。TMS信号在 TCK的上升沿有效。TMS在 IEEE 1149.1 标准里是强制要求的。 54Test Data Input (TDI) TDI是数据输入的接口。 所有要输入到特定寄存器的数据都是通过 TDI 接口一位一位串行输入的(由
23、 TCK驱动) 。TDI在 IEEE 1149.1 标准里是强制要求的。 Test Data Output (TDO) TDO是数据输出的接口。所有要从特定的寄存器中输出的数据都是通过 TDO接口一位一位串行输出的(由 TCK驱动) 。TDO在 IEEE 1149.1 标准里是强制要求的。 Test Reset Input (TRST) TRST可以用来对TAP Controller进行复位 (初始化) 。 不过这个信号接口在IEEE 1149.1标准里是可选的,并不是强制要求的。因为通过 TMS也可以对 TAP Controller进行复位(初始化) 。5556 5.2.4 .2.4 存储器
24、扩展存储器扩展 S3C2410A S3C2410A的存储器控制器提供访问外部存储器所需的存储器控制器提供访问外部存储器所需要的存储器控制信号。要的存储器控制信号。 支持小支持小/ /大端(通过软件选择)大端(通过软件选择) 地址空间:每地址空间:每bankbank有有128M128M字节(总共有字节(总共有8 8个个banksbanks,共,共1G1G字节字节) 除除bank0bank0(只能是(只能是16/3216/32位宽)之外,其他位宽)之外,其他bankbank都具有可编程的都具有可编程的访问大小(可以是访问大小(可以是8/16/328/16/32位宽)位宽) 总共有总共有8 8个存储
25、器个存储器banksbanks(bank0bank7bank0bank7)其中其中6 6个个banksbanks用于用于ROMROM,SRAMSRAM等等剩下剩下2 2个个banksbanks用于用于ROMROM,SRAMSRAM,SDRAMSDRAM等等 7 7个固定的存储器个固定的存储器bankbank(bank0bank6bank0bank6)起始地址)起始地址 最后一个最后一个bankbank(bank7bank7)的起始地址是可调整的)的起始地址是可调整的 最后两个最后两个bankbank(bank6bank7bank6bank7)的大小是可编程的)的大小是可编程的 所有存储器所有存
26、储器bankbank的访问周期都是可编程的的访问周期都是可编程的 总线访问周期可以通过插入外部等待来延长总线访问周期可以通过插入外部等待来延长 支持支持SDRAMSDRAM的自刷新和掉电模式的自刷新和掉电模式 特性特性 57存储器映射存储器映射 58 BOOT ROM 在地址上位于ARM 处理器的 区,它可具有多种,这个宽度是可以通过硬件设定的,即,如下表所示:59nWAIT引脚操作引脚操作 在在S3C2410AS3C2410A的存储器访问期间,的存储器访问期间,nWAITnWAIT信号有效(低电信号有效(低电平)将使得其访问周期相应(平)将使得其访问周期相应(nOEnOE或者或者newnew
27、信号有效时间)信号有效时间)的延长。的延长。 60nXBREQ/nXBACK 当当nXBREQnXBREQ信号有效(低电平)时,信号有效(低电平)时,S3C2410AS3C2410A将通过使将通过使nXBACKnXBACK信号有效作出响应。同时,将使地址数据总线和存储器控制信号信号有效作出响应。同时,将使地址数据总线和存储器控制信号处于高阻(处于高阻(Hi-ZHi-Z)状态,直到)状态,直到nXBREQ nXBREQ 信号无效为止。信号无效为止。 61总线宽度和等待控制寄存器总线宽度和等待控制寄存器BWSCON6263ROM Memory Interface Examples8-bit ROM
28、 8-bit ROM 2648-bit ROM 416-bit ROM65SRAM Memory Interface Examples16-bit SRAM16-bit SRAM 266SDRAM Memory Interface Examples16-bit SDRAM(8MB: 1Mb 16 4banks)16-bit SDRAM (16MB: 1Mb 16 4banks 2ea)67SDRAM 电路图电路图68BANK控制寄存器控制寄存器(BANKCONn: nGCS0-nGCS5)69707172BANK控制寄存器控制寄存器(BANKCONn: nGCS6-nGCS7)73 5.2.5
29、 NAND Flash.2.5 NAND Flash和和NOR FlashNOR Flash NOR和NAND是现在市场上两种主要的非易失闪存技术。Intel于1988年首先开发出NOR flash技术,彻底改变了原先由EPROM和EEPROM一统天下的局面。紧接着,1989年,东芝公司发表了NAND flash结构,强调降低每比特的成本,更高的性能,并且象磁盘一样可以通过接口轻松升级。 NOR的特点是芯片内执行的特点是芯片内执行(XIP, eXecute In Place),这样应用程序可以直接在flash闪存内运行,不必再把代码读到系统RAM中。NOR的传输效率很高传输效率很高,在14MB
30、的小容量时具有很高的成本效益,但是很低的写入和擦除速度很低的写入和擦除速度大大影响了它的性能。 NAND结构能提供极高的单元密度极高的单元密度,可以达到高存储密度,并且写入和擦除的速写入和擦除的速度也很快度也很快。应用NAND的困难在于flash的管理和。 Flash闪存是非易失存储器,可以对称为块的存储器单元块进行擦写和再编程。NAND器件执行擦除操作是十分简单的,而NOR则要求在进行擦除前先要将目标块内所有的位都写为0。 执行擦除时块尺寸的不同进一步拉大了NOR和NADN之间的性能差距。 74NAND Flash和和NOR Flash的比较的比较 NOR的读速度比NAND稍快一些。 NAN
31、D的写入速度比NOR快很多。 NAND的4ms擦除速度远比NOR的5s快。 大多数写入操作需要先进行擦除操作。 NAND的擦除单元更小,相应的擦除电路更少 NOR flash带有SRAM接口,有足够的地址引脚来寻址,可以很容易地存取其内部的每一个字节。 NAND器件使用复杂的I/O口来串行地存取数据,各个产品或厂商的方法可能各不相同。8个引脚用来传送控制、地址和数据信息。 NAND读和写操作采用512字节的块,这一点有点像硬盘管理此类操作,很自然地,基于NAND的存储器就可以取代硬盘或其他块设备。75 NAND flash的单元尺寸几乎是NOR器件的一半,由于生产过程更为简单,NAND结构可以
32、在给定的模具尺寸内提供更高的容量,也就相应地降低了价格。 NOR flash占据了容量为116MB闪存市场的大部分,而NAND flash只是用在8128MB的产品当中,这也说明介质中,NAND适合于数据存储适合于数据存储,NAND在CompactFlash、Secure Digital、PC Cards和MMC存储卡市场上所占份额最大。 采用flahs介质时一个需要重点考虑的问题是可用性。对于需要扩展MTBF的系统来说,Flash是非常合适的存储方案。可以从寿命(耐用性)、位交换和坏块处理三个方面来比较NOR和NAND的可用性。 在NAND闪存中每个块的最大擦写次数是一百万次闪存中每个块的最
33、大擦写次数是一百万次,而NOR的擦的擦写次数是十万次写次数是十万次。NAND存储器除了具有10比1的块擦除周期优势,典型的NAND块尺寸要比NOR器件小8倍,每个NAND存储器块在给定的时间内的删除次数要少一些。 76 所有flash器件都受位交换现象的困扰。在某些情况下(很少见,NAND发生的次数要比NOR多),一个比特位会发生反转或被报告反转一个比特位会发生反转或被报告反转了。 一位的变化可能不很明显,但是如果发生在一个关键文件上,这个小小的故障可能导致系统停机。如果只是报告有问题,多读几次就可能解决了。 当然,如果这个位真的改变了,就必须采用错误探测/错误更正(EDC/ECC)算法。位反
34、转的问题更多见于位反转的问题更多见于NAND闪存,闪存,NAND的供应商建议使用的供应商建议使用NAND闪存的时候,同时使用闪存的时候,同时使用EDC/ECC算法算法。 这个问题对于用NAND存储多媒体信息时倒不是致命的。当然,如果用本地存储设备来存储操作系统、配置文件或其他敏感信息时,必须使用EDC/ECC系统以确保可用性。 NAND器件中的坏块是随机分布的器件中的坏块是随机分布的。以前也曾有过消除坏块的努力,但发现成品率太低,代价太高,根本不划算。 NAND器件需要对介质进行初始化扫描以发现坏块,并将坏块标记为不可用。在已制成的器件中,如果通过可用的方法不能进行这项处理,将导致高故障率。
35、77可以非常直接地使用基于NOR的闪存,可以像其他存储器那样连接,并可以在上面直接运行代码。 在NAND器件上进行同样操作时,通常需要驱动程序,也就是内存技术驱动程序通常需要驱动程序,也就是内存技术驱动程序(MTD),NAND和NOR器件在进行写入和擦除操作时都需要MTD。 使用NOR器件时所需要的MTD要相对少一些,许多厂商都提供用于NOR器件的更高级软件。 驱动还用于对DiskOnChip产品进行仿真和NAND闪存的管理,包括纠错、坏块处理和损耗平衡。 78lNor Flash 带有SRAM接口,有足够的地址引脚,可以很容易的对存储器内部的存储单元进行直接寻址。在实际的系统中,可以根据需要
36、选择ARM处理器与Nor Flash的连接方式。下图给出了嵌入式最小系统在包含两块Nor Flash的情况下,ARM处理器与Nor Flash两种不同的连接方式。 vARMARM处理器与处理器与NOR FlashNOR Flash的接口的接口 Nor Flash 接口方式 79l(1)双Flash独立片选 该方式是把两个该方式是把两个NorNor FlashFlash芯片各自作为一个独立的单元进芯片各自作为一个独立的单元进行处理。根据不同的应用需要,可以在一块行处理。根据不同的应用需要,可以在一块FlashFlash中存放启动中存放启动代码,而在另一块代码,而在另一块FlashFlash中建立
37、文件系统,存放应用代码。该中建立文件系统,存放应用代码。该方式操作方便,易于管理。方式操作方便,易于管理。 l(2)双Flash统一片选 该方式是把两个该方式是把两个NorNor FlashFlash芯片合为一个单元进行处理,芯片合为一个单元进行处理,ARMARM处理处理器将它们作为一个并行的处理单元来访问,本例是将两个器将它们作为一个并行的处理单元来访问,本例是将两个8bit8bit的的NorNor FlashFlash芯片芯片SST39VF1601SST39VF1601用作一个用作一个16bit16bit单元来进行处理。对于单元来进行处理。对于N N(N2N2)块)块FlashFlash的
38、连接方式可以此作为参考。的连接方式可以此作为参考。 80NOR FLASH 电路图电路图 采用 AMD 公司的 nor flash,型号为 AM29LV160DB,容量 2Mbyte,兼容 Intel E28F128J3A/16Mbyte。81 5.2.6 .2.6 嵌入式系统的启动架构嵌入式系统的启动架构 嵌入式系统在启动时,引导代码、操作系统的运行和应用程序的加载主要有两种架构,一种是直接从Nor Flash启动的架构,另一种是直接从Nand Flash启动的架构。 (1 1)从)从NorNor FlashFlash启动启动 Nor Flash具有芯片内执行(XIP eXecute In
39、Place ) 的特点,在嵌入式系统中常做为存放启动代码的首选。从Nor Flash启动的架构又可细分为只使用Nor Flash的启动架构和Nor Flash与Nand Flash配合使用的启动架构。下图 给出了这两种启动架构的原理框图。 8283 该架构充分利用了Nor Flash芯片内执行的特点,可有效提升系统性能。不足在于随着操作系统和应用代码容量的增加,需要更大容量昂贵的Nor Flash来支撑。 v单独使用单独使用NorNor Flash Flash 在该架构中,引导代码、操作系统和应用代码共存于同一块Nor Flash中。系统上电后,引导代码首先在Nor Flash中执行,然后把操
40、作系统和应用代码加载到速度更高的SDRAM中运行。另一种可行的架构是,在Nor Flash中执行引导代码和操作系统,而只将应用代码加载到SDRAM中执行。 84vNorNor FlashFlash和和NandNand FlashFlash配合使用配合使用 Nor Flash的单独使用对于代码量较大的应用程序会增加产品的成本投入,一种的改进的方式是采用Nor Flash 和Nand Flash配合使用的架构。在该架构中附加了一块Nand Flash。Nor Flash(2M或4M)中存放启动代码和操作系统(操作系统可以根据代码量的大小选择存放于Nor Flash或者Nand Flash),而Na
41、nd Flash中存放应用代码,根据存放的应用代码量的大小可以对Nand Flash容量做出相应的改变。系统上电后,引导代码直接在Nor Flash中执行,把Nand Flash中的操作系统和应用代码加载到速度更高的SDRAM中执行。也可以在Nor Flash中执行引导代码和操作系统,而只将Nand Flash中的应用代码加载到SDRAM中执行。该架构是当前嵌入式系统中运用最广泛的启动架构之一。85(2 2)从)从NandNand FlashFlash启动启动 SamSung公司的ARM920T系列处理器S3C2410支持从Nand Flash启动的模式,它的工作原理是将NandFlash中存
42、储的前4KB代码装入一个称为Steppingstone(BootSRAM)的地址中,然后开始执行该段引导代码,从而完成对操作系统和应用程序的加载。这个过程不需要程序干涉,而是由内部控制器来完成的。 需要注意的是:你需要编写一个长度小于4K的引导程序,作用是将启动代码剩余部分拷贝到SDRAM中运行(NF地址不是线性的,程序不能直接运行,必须拷贝到线性RAM中) ,同时完成完成S3C2410的核心配置。 86特性特性 u支持读支持读/ /擦除擦除/ /编程编程NAND FlashNAND Flash存储器。存储器。u自动启动模式:复位后,启动代码被传送到自动启动模式:复位后,启动代码被传送到Ste
43、pping stoneStepping stone中中。传送完毕后,启动代码在。传送完毕后,启动代码在Stepping stoneStepping stone中执行。中执行。uNAND FlashNAND Flash启动以后,启动以后,4KB4KB的内部的内部SRAMSRAM缓冲器缓冲器Stepping Stepping stonestone可以作为其他用途使用。可以作为其他用途使用。u具备硬件具备硬件ECCECC(校验码,(校验码,Error Correction CodeError Correction Code)生成模块()生成模块(硬件生成校验码,通过软件校验)。硬件生成校验码,通过软
44、件校验)。uNAND FlashNAND Flash控制器不能通过控制器不能通过DMADMA访问,可以使用访问,可以使用LDM/STMLDM/STM指令来代替指令来代替DMADMA操作。操作。 5.2.7 S3C2410 NAND Flash.2.7 S3C2410 NAND Flash控制器控制器 相对于SDRAM 和 NAND flash,NOR flash价格越来越高,许多用户将启动代码放在NAND flash,而主程序代码放在SDRAM中。为了支持 NAND flash bootloader, S3C2410X 装配了NAND flash控制器以及4KB 的内部SRAM 缓冲区,这个缓
45、冲区叫做 “Steppingstone”。当开始启动时, NAND flash 的前 4KB将被装入“Steppingstone” SDRAM ,同时利用硬件ECC 检查这些数据的有效性,装入完成之后,开始执行这些存放于SDRAM中的主程序。87v NAND Flash NAND Flash控制器的结构框图控制器的结构框图 88I/O7:0 : Data/Command/Address In/Out Port (shared with the data bus)CLE : Command Latch Enable (Output)ALE : Address Latch Enable (Outp
46、ut)nCE : NAND Flash Chip Enable (Output)nRE : NAND Flash Read Enable (Output)nWE : NAND Flash Write Enable (Output)R/nB: NAND Flash Ready/nBusy (Input)PIN CONFIGURATIONPIN CONFIGURATION89v NAND Flash NAND Flash的工作方式的工作方式 9091v NAND Flash NAND Flash存储器的时序存储器的时序 92NAND FLASH MEMORY MAPPINGNAND FLASH M
47、EMORY MAPPING93SPECIAL FUNCTION REGISTERSSPECIAL FUNCTION REGISTERS949596vARMARM处理器与处理器与NandNand FlashFlash接口技术接口技术 lNand Flash接口信号比较少,地址,数据和命令总线复用。Nand Flash的接口本质上是一个I/O接口,系统对Nand Flash进行数据访问的时候,需要先向Nand Flash发出相关命令和参数,然后再进行相应的数据操作。ARM处理器与Nand Flash的连接主要有三种方式,如下图所示: 97l(1)运用GPIO方式 运用GPIO管脚方式去控制Nand
48、 Flash的各个信号,在速度要求相对较低的时候,能够较充分的发挥NAND设备的性能。它在满足NAND设备时域需求方面将会有很大的便利,使得ARM处理器可以很容易的去控制NAND设备。该方式需要处理器提供充足的GPIO。 l(2)运用逻辑运算方式进行连接 在该方式下,处理器的读和写使能信号通过与片选信号CS进行逻辑运算后去驱动NAND设备对应的读和写信号。图中b例为SamSung公司ARM7TDMI系列处理器S3C44B0与Nand Flash K9F2808U0C的连接方式。 98l(3)直接芯片使能 有些ARM处理器如S3C2410内部提供对NAND设备的相应控制寄存器,通过控制寄存器可以
49、实现ARM处理器对NAND设备相应信号的驱动。该方式使得ARM处理器与NAND设备的连接变得简单规范,图中c例给出了ARM处理器S3C2410与Nand Flash K9F2808U0C的连接方式。 9916Mbyte NAND FLASH,型号为 K9F2808UOBNAND FLASH 电路图电路图100第五章第五章 基于基于S3C2410的系统硬件设计的系统硬件设计 l5.1 S3C2410 简介l5.2 最小系统设计l5.4 DMA设计l5.5 I/O接口扩展l5.6 AD、DA接口设计l5.7 PWM定时器l5.8 人机接口设计l5.9 通信接口设计101 5.3 5.3 中断系统设
50、计中断系统设计l5.3.1 ARM9的异常事件管理l5.3.2 ARM的中断原理 l5.3.3 S3C2410A的中断控制器 l5.3.4 中断编程实例1025.3.1 ARM920T的异常事件管理的异常事件管理 ARM920T的异常向量表有两种存放方式,一种是低端存放(从0 x00000000处开始存放),另一种是高端存放(从0 xfff000000处开始存放)。 ARM920T能处理有8个异常,他们分别是:Reset,Undefined instruction,Software Interrupt,Abort (prefetch),Abort (data),Reserved,IRQ,FIQ
51、 ,它们的矢量表是:Address Instruct0 x00000000: b Handle_Reset0 x00000004: b HandleUndef0 x00000008: b HandleSWI0 x0000000C: b HandlePrefetchAbort0 x00000010: b HandleDataAbort0 x00000014: b HandleNotUsed0 x00000018: b HandleIRQ0 x0000001C: b HandleFIQ103l异常矢量表的生成一般由一段汇编程序完成:_start: b Handle_Reset b HandleUn
52、def b HandleSWI b HandlePrefetchAbort b HandleDataAbort b HandleNotUsed b HandleIRQ b HandleFIQ . . other codes . 这部分片段一般出现在一个名叫“head.s”的汇编文件的里,“b Handle_Reset”这条语句就是系统上电之后运行的第一条语句。 104l我们可以看到每条指令占用了4个字节。上电后,PC指针会跳转到Handle_Reset处开始运行。以后系统每当有异常出现,则CPU会根据异常号,从内存的0 x00000000处开始查表做相应的处理,比如系统触发了一个IRQ异常,I
53、RQ为第6号异常,则CPU将把PC指向0 x00000018地址(4*6=24=0 x00000018)处运行,该地址的指令是跳转到“中断异常服务例程”(HandleIRQ)处运行。 1053.3.2 ARM ARM的中断原理的中断原理lS3C2410共有56个中断源,可以产生32个中断请求,这些中断源来自两部分:一部分来自片内外设(如DMA、UART等),一部分来自于外部引脚。lARM920T内核共具有2种类型的中断模式:FIQ和IRQ。IRQ和FIQ之间的区别是:对于FIQ必须尽快处理事件并离开这个模式;为了使FIQ更快,FIQ模式具有更多的私有寄存器。l中断控制器的角色,就是响应来自片内
54、或片外的中断源的中断请求,向ARM920T提出FIQ(快速中断请求)或IRQ(普通中断请求)的中断请求,请求内核对该中断中断进行处理。l 106 S3C2410 S3C2410的的5656个中断源个中断源 107处理中断的步骤如下:处理中断的步骤如下:(1)(1)保存现场。保存当前的保存现场。保存当前的PCPC值到值到R14R14,保存当前的程序运,保存当前的程序运行状态到行状态到SPSRSPSR。(2)(2)模式切换。根据发生的中断类型,进入模式切换。根据发生的中断类型,进入IRQIRQ模式或模式或FIQFIQ模式。模式。(3)(3)获取中断源。以异常向量表保存在低地址处为例,若获取中断源。
55、以异常向量表保存在低地址处为例,若是是IRQIRQ中断,则中断,则PCPC指针跳到指针跳到0 x180 x18处;若是处;若是FIQFIQ中断,则跳到中断,则跳到0 x1C0 x1C处。处。IRQIRQ或或FIQFIQ的异常向量地址处一般保存的是中断服的异常向量地址处一般保存的是中断服务子程序的地址,所以接下来务子程序的地址,所以接下来PCPC指针跳入中断服务子程序指针跳入中断服务子程序处理中断。处理中断。-这些工作都是由硬件自动完成这些工作都是由硬件自动完成108处理中断的步骤如下:处理中断的步骤如下:(4)(4)中断处理。为各种中断定义不同的优先级别,并为每中断处理。为各种中断定义不同的优
56、先级别,并为每一个中断设置一个中断标志位。当发生中断时,通过判断一个中断设置一个中断标志位。当发生中断时,通过判断中断优先级以及访问中断标志位的状态来识别到底哪一个中断优先级以及访问中断标志位的状态来识别到底哪一个中断发生了。进而调用相应的函数进行中断处理。中断发生了。进而调用相应的函数进行中断处理。(5)(5)中断返回,恢复现场。当完成中断服务子程序后,将中断返回,恢复现场。当完成中断服务子程序后,将SPSRSPSR中保存的程序运行状态恢复到中保存的程序运行状态恢复到CPSRCPSR中,中,R14R14中保存的被中保存的被中断程序的地址恢复到中断程序的地址恢复到PCPC中,进而继续执行被中断
57、的程序中,进而继续执行被中断的程序- - -这些工作必须由用户在中断处理函数中实现。这些工作必须由用户在中断处理函数中实现。 109 5.3.2 S3C2410A 5.3.2 S3C2410A的中断控制器的中断控制器 中断控制器使用的寄存器中断控制器使用的寄存器110INTMODINTMOD寄存器寄存器 l有效位为32位,每一位与SRCPND中各位相对应,它的作用是指定该位相应的中断源处理模式(IRQ还是FIQ)。若某位为0,则该位相对应的中断按IRQ模式处理,为1则以FIQ模式进行处理,该。 111SRCPND/ SUBSRCPNDSRCPND/ SUBSRCPND寄存器寄存器 l这两个寄存
58、器在功能上是相同的,它们是中断源引脚寄存器,在一个中断异常处理流程中,中断信号传进中断异常处理模块后首先遇到的就是SRCPND/ SUBSRCPND,这两个寄存器的作用是用于标示出哪个中断请求被触发。lSRCPND的有效位为32,SUBSRCPND 的有效位为11,它们中的每一位分别代表一个中断源,每个位的初始值皆为0。假设现在系统触发了TIMER0中断,则第10bit将被置1,代表TIMER0中断被触发,该中断请求即将被处理(若该中断没有被屏蔽的话)。两个寄存器的各个位的置两个寄存器的各个位的置1是由相应的中断源自动引起是由相应的中断源自动引起的,而在中断服务程序中必须将其清的,而在中断服务
59、程序中必须将其清0,否则,否则CPU将认为将认为是又一次中断的到来。是又一次中断的到来。lSRCPND(地址为(地址为0X4A000000)为主中断源挂起寄存器,SUBSRCPND(地址为(地址为0X4A000018)为副(次)中断源挂起寄存器 112113SUB SOURCE PENDING (SUBSRCPND) REGISTER114INTMSK/ INTSUBMSK INTMSK/ INTSUBMSK 寄存器寄存器 l中断屏蔽寄存器 ,INTMSK为主中断屏蔽寄存器,INTSUBMSK为副中断屏蔽寄存器。INTMSK有效位为32,INTSUBMSK有效位为11,这两个寄存器各个位与SR
60、CPND和SUBSRCPND分别对应。l它们的作用是决定该位相应的中断请求是否被处理。若某位被设置为1,则该位相对应的中断产生后将被忽略(CPU不处理该中断请求),设置为0则对其进行处理。l这两个寄存器初始化后的值是0 xFFFFFFFF和0 x7FF,既。 115v 优先级生成模块优先级生成模块 lCPU某个时刻只能对一个中断源进行中断处理,如果现在有3个中断同时发生了,那CPU要按什么顺序处理这个3个中断呢?这正是引入优先级判断的原因所在,通过优先级判断,CPU可以按某种顺序逐个处理中断请求。3sc2410的优先级判断分为两级。 l如下图所示,SRCPND寄存器对应的32个中断源总共被分为
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 宁夏2025秋九年级英语全册Unit7Teenagersshouldbeallowedtochoosetheirownclothes课时3SectionA(GrammarFocus-4c)课件新版人教新目标版
- 农村厂区租房合同范本
- 信访分类培训课件
- 信用社柜面业务培训课件
- 口才锻炼课件
- 保留灌肠护理课件
- 环保工程施工安全技术方案
- 古典诗词用典技巧教学设计
- 工业防雷接地安全施工标准案例
- 小学三年级英语口语教学方案
- 工程维保及售后服务方案
- GB/Z 43482-2023液压传动软管和软管总成收集流体样本分析清洁度的方法
- 急性中毒的处理与抢救
- 淤泥消纳施工方案
- 附表:医疗美容主诊医师申请表
- 跌落式熔断器熔丝故障原因分析
- 2023年全市中职学校学生职业技能大赛
- 黑布林英语阅读初一年级16《柳林风声》译文和答案
- 仓库安全管理检查表
- 岭南版美术科五年级上册期末素质检测试题附答案
- 以执业医师考试为导向的儿科学临床实习教学改革
评论
0/150
提交评论