第3章32BitRISC微处理器S3C2410A3.1S3C2410A简介3.1.1S3C2410A内部结构S3C2410是Samsung公司推出的16/32位RISC处理器,主要面向高性价比、低功耗的手持设备应用。S3C2410有S3C2410X和S3C2410A两个型号,A型是X型的改进型,具有更好的性能和更低的功耗。为了降低系统的成本,S3C2410A在片上集成了单独的16KB指令Cache和16KB数据Cache、用于虚拟存储器管理的MMU、支持STN和TFT的LCD控制器、NANDFlashBootLoader、系统管理器(片选逻辑和SDRAM控制器)、3通道UART、4通道DMA、4通道PWM定时器、I/O口、RTC、8通道10位ADC和触摸屏接口、I2C总线接口、I2S总线接口、USB主设备、USB从设备、SD主卡和MMC(MultiMediaCard,多媒体卡)卡接口、2通道的SPI(SerialPeripheralInterface,串行外围设备接口)以及PLL时钟发生器。S3C2410A的CPU内核采用的是16/32位ARM920T内核,同时还采用了AMBA(AdvancedMicrocontrollerBusArchitecture,先进的微控制器总线体系结构)新型总线结构。ARM920T采用了MMU,AMBA总线和Harvard高速缓存体系结构,该结构具有独立的16KB指令Cache和16KB数据Cache,每个Cache都是由8字长的行组成的。S3C2410A提供一组完整的系统外围设备接口,从而大大减少了整个系统的成本,省去了为系统配置额外器件的开销。S3C2410A集成的片上功能包括:●内核电压1.8V/2.0V,存储器电压3.3V,外部I/O电压3.3V;●具有16KB的I-Cache和16KB的D-Cache以及MMU;●外部存储器控制器(SDRAM控制和片选逻辑);●LCD控制器(最大支持4K彩色STN和256K彩色TFT)提供1通道LCD专用DMA;●4通道DMA并有外部请求引脚端;●3通道UART(IrDAl.0,16字节TxFIFO和16字节RxFIFO)/2通道SPI;●1通道多主设I2C总线和1通道I2S总线控制器;●版本1.0SD主接口和2.11兼容版MMC卡协议;●2个USB主设接口/1个USB从设接口(版本1.1);●4通道PWM定时器和1通道内部定时器;●看门狗定时器;●117位通用I/O口和24通道外部中断源;●电源控制模式有正常、慢速、空闲和电源关断4种模式;●8通道10位ADC和触摸屏接口;●具有日历功能的RTC;●使用PLL的片上时钟发生器。S3C2410A的内部结构方框图如图3.1.1所示。图3.1.1S3C2410A内部结构方框图3.1.2S3C2410A的技术特点S3C2410A具有如下特点:1.体系结构●采用ARM920TCPU内核,具有16/32位RISC体系结构和强大的指令集,为手持设备和通用嵌入式应用提供片上集成系统解决方案;●增强的ARM体系结构MMU,支持WinCE、EPOC32和Linux;●使用指令Cache、数据Cache、写缓冲器和物理地址TAGRAM减少主存储器带宽和反应时间对性能的影响;●ARM920TCPU内核支持ARM调试体系结构;●内部采用先进的微控制器总线体系结构(AMBA)(AMBA2.0,AHB/APB)。2.系统管理器●支持小/大端方式。●地址空间:每bank128MB(byte)(总共1GB)。●每个bank支持可编程的8/16/32位数据总线宽度。●bank0~bank6都采用固定的bank起始地址。●bank7具有可编程的bank起始地址和大小。●8个存储器bank:一6个用于ROM、SRAM及其他;一2个用于ROM、SRAM和同步DRAM。●所有的存储器bank都具有可编程的访问周期。●支持使用外部等待信号来填充总线周期。●支持掉电时的SDRAM自刷新模式。●支持各种类型的ROM启动(booting),包括NOR/NANDFlash和EEPROM等。3.NANDFlashBootLoader(启动装载)●支持从NANDFlash存储器的启动。采用4KB内部缓冲器用于启动引导。●支持启动之后NAND存储器仍然作为外部存储器使用。4.Cache存储器●I-Cache(16KB)和D-Cache(16KB)为64路组相联Cache。●每行8字长度,其中每行带有一个有效位和两个脏位(dirtybits)。●采用伪随机数或循环替换算法。●采用写直达(Write-through)或写回(Write-back)Cache操作来更新主存储器。●写缓冲器可以保存16个字的数据值和4个地址值。5.时钟和电源管理●片上MPLL和UPLL:一UPLL产生用于USB主机/设备操作的时钟;一MPLL产生操作MCU的时钟,时钟频率最高可达266MHz(2.0V内核电压)。●通过软件可以有选择地为每个功能模块提供时钟。●电源模式包括正常、慢速、空闲和掉电模式:一正常模式为正常运行模式;一慢速模式为不加PLL的低时钟频率模式;一空闲模式只停止CPU的时钟;一掉电模式切断所有外设和内核的电源。●可以通过EINT[15:0]或RTC报警中断从掉电模式中唤醒处理器。6.中断控制器●55个中断源(1个看门狗定时器、5个定时器、9个UART、24个外部中断、4个DMA、2个RTC、2个ADC、1个I2C、2个SPI、1个SDI、2个USB、1个LCD和1个电池故障);●支持电平/边沿触发模式的外部中断源;●可编程的电平/边沿触发极性;●为紧急中断请求提供快速中断服务(FIQ)支持。7.具有脉冲宽度调制(PWM)的定时器●具有PWM功能的4通道16位定时器,可基于DMA或中断操作的1通道16位内部定时器;●可编程的占空比周期、频率和极性;●能产生死区;●支持外部时钟源。8.RTC(实时时钟)●完整的时钟特性:秒、分、时、日期、星期、月和年;●工作频率32.768kHz;●具有报警中断;●具有时钟滴答中断。9.通用I/O口●24个外部中断口;●多路复用的I/O口。10.UAR●3通道UART,可以基于DMA模式或中断模式操作;●支持5位、6位、7位或者8位串行数据发送/接收(Tx/Rx);●支持外部时钟作为UART的运行时钟(UEXTCLK);●波特率可编程;●支持IrDA1.0;●支持回环(Loopback)测试模式;●每个通道内部都具有16字节的发送FIFO和16字节的接收FIFO。11.DMA控制器●4通道的DMA控制器;●支持存储器到存储器、I/O到存储器、存储器到I/O和I/O到I/O的传送;●采用突发传送模式提高传送速率。12.A/D转换和触摸屏接口●8通道多路复用ADC;●转换速率最大为500KSPS(KiloSamplesPerSecond,每秒采样千点),10位分辨率。13.LCD控制器STNLCD显示特性●支持3种类型的STNLCD显示屏:4位双扫描、4位单扫描和8位单扫描显示类型;●对于STNLCD支持单色模式、4级灰度、16级灰度、256彩色和4096彩色;●支持多种屏幕尺寸,典型的屏幕尺寸有:640×480,320×240,160×160;●最大虚拟屏幕大小是4MB;●在256彩色模式下支持的最大虚拟屏幕尺寸是:4096×1024,2048×2048,1024×40960或者其它尺寸。14.TFT(ThinFilmTransistor,薄膜场效应晶体管)彩色显示特性●彩色TFT支持1、2、4或8bpp(bitperpixel,每像素所占位数)调色显示;●支持16bpp无调色真彩显示;●在24bpp模式下支持最大16M彩色TFT;支持多种屏幕尺寸,典型的屏幕尺寸有:640×480,320×320,160×160或者其它尺寸;●最大虚拟屏大小是4MB;●在64彩色模式下支持的最大虚拟屏幕尺寸是:2048×1024或者其它尺寸。15.看门狗定时器●16位看门狗定时器;●定时器溢出时产生中断请求或系统复位。16.I2C总线接口●1通道多主机I2C总线;●串行、8位、双向数据传送,在标准模式下数据传送速率可达100kb/s,在快速模式下可达400kb/s。17.I2S总线接口●1通道音频I2S总线接口,可基于DMA方式操作;●串行,每通道8/16位数据传输;串行,每通道8/16位数据传输;●发送和接收(Tx/Rx)具备128字节FIFO(64字节发送FIFO+64字节接收FIFO);●支持I2S格式和MSB-justified数据格式。18.USB主设备●2个USB主设接口;●遵从OHCIRevl.0标准;●兼容USBVerl.1标准。19.USB从设备●1个USB从设接口;●具备5个USB设备端口;●兼容USBVerl.1标准。20.SD主机接口●兼容SD存储卡协议1.0版;●兼容SDIO卡协议1.0版;发送和接收采用字节FIFO;●基于DMA或中断模式操作;●兼容MMC卡协议2.11版。21.SPI接口●兼容2通道SPI协议2.11版;●发送和接收采用2字节的移位寄存器;●基于DMA或中断模式操作。22.工作电压●内核电压:1.8V,最高工作频率200MHz(S3C2410A-20);2.0V,最高工作频率266MHz(S3C2410A-26)。●存储器和I/O电压:3.3V。23.封装●采用272-FBGA封装。3.2S3C2410A存储器控制器3.2.1S3C2410A的存储器控制器特性S3C2410A的存储器控制器提供访问外部存储器所需要的存储器控制信号,具有以下特性:●支持小/大端(通过软件选择)。●地址空间:每个bank有128MB(总共有8个bank,共1GB)。●除bank0只能是16/32位宽之外,其他bank都具有可编程的访问位宽(8/16/32位)。●总共有8个存储器bank(bank0~bank7):一其中6个用于ROM,SRAM等;一剩下2个用于ROM,SRAM,SDRAM等。●7个固定的存储器bank(bank0~bank6)起始地址。●最后一个bank(bank7)的起始地址是可调整的。●最后两个bank(bank6和bank7)的大小是可编程的。●所有存储器bank的访问周期都是可编程的。●总线访问周期可以通过插入外部等待来扩展。●支持SDRAM的自刷新和掉电模式。3.2.1S3C2410A的存储器映射S3C2410A复位后,存储器的映射情况如图3.2.1所示,bank6和bank7对应不同大小存储器时的地址范围参见表3.2.1。[不使用NANDFlash作为启动ROM][使用NANDFlash]作为启动ROM]注意:①SROM表示是ROM或SRAM类型的存储器;②SFR指特殊功能寄存器。图3.2.1S3C2410A复位后的存储器映射表3.2.1bank6和bank7地址注:bank6和bank7必须具有相同的存储器大小。3.3复位、时钟和电源管理1.复位电路在系统中,复位电路主要完成系统的上电复位和系统在运行时用户的按键复位功能。复位电路可由简单的RC电路构成,也可以使用其他的相对较复杂,但功能更完善的电路。为了提供高效的电源监视性能,选取了专门的系统监视复位芯片IMP811S。该芯片性能优良,可以通过手动控制系统的复位,同时还可以实时监控系统的电源。一旦系统电源低于系统复位的阀值(2.9V),IMP811S将会对系统进行复位。系统复位电路如图3.3.1所示。图3.3.1系统复位电路也可以采用如图3.3.2所示较简单的RC复位电路,经使用证明,其复位逻辑是可靠的。该复位电路的工作原理如下:在系统上电时,通过电阻R108向电容C162充电,当C162两端的电压未达到高电平的门限电压时,RESET端输出为高电平,系统处于复位状态;当C162两端的电压达到高电平的门限电压时,RESET端输出为低电平,系统进入正常工作状态。当