您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > 3ARM9芯片S3C2410片上资源
第三章ARM9芯片S3C2410片上资源主要内容:3.1S3C2410处理器介绍3.2S3C2410处理器片上资源的定义和使用3.3参考软件项目2410test.mcp3.1S3C2410处理器介绍本节介绍S3C2410处理器的体系结构、特点和应用领域,AMBA、AHB、APB总线特点和应用,存储器存储空间映射等。S3C2410微处理器是一款由Samsung公司为手持设备设计的低功耗、高度集成的基于ARM920T核的微处理器。为了降低系统总成本和减少外围器件,这款芯片中还集成了下列部件:16KB指令Cache、16KB数据Cache、MMU、外部存储器控制器、LCD控制器(STN和TFT)、NANDFlash控制器、4个DMA通道、3个UART通道、1个I2C总线控制器、1个I2S总线控制器,以及4个PWM定时器和一个内部定时器、通用I/O口、实时时钟、8通道10位ADC和触摸屏接口、USB主、USB从、SD/MMC卡接口等。现在它广泛应用于PDA、移动通讯、路由器、工业控制等领域,其内部结构如图3-1所示。ARM9TDMICPU核(InternalEmbeddedICE)AMBA总线I/FCP15写缓冲C13指令Cache(16KB)处理协处理器接口指令Cache(16KB)WriteBackPATagRAMC13指令MMU数据MMULCDDMAExtMasterUSB主控制NAND控制总线控制中断控制电源管理MemoryCONT.SRAM/NOR/SDRAMAHB总线LCD控制系统总线桥&DMA时钟发生器(MPLL)UART0,1,2USB设备SDI/MMC看门狗总线控制SPI0,1I²CI²SGPIORTCADCTimer/PWM0~3,4APB总线JTAGARM920TIPA[31:0]IV²A[31:1]DV²A[31:0]ID[31:0]DD[31:0]DPI[31:0]WBPA[31:0]DVA[31:0]图3-1S3C2410X结构框图3.1.1AMBA、AHB、APB总线特点AMBA规范主要包括AHB(AdvancedHighperformanceBus)系统总线和APB(AdvancedPeripheralBus)外围总线。AMBA2.0规范包括四个部分:AHB、ASB、APB和TestMethodology。AHB的相互连接采用了传统的带有主模块和从模块的共享总线,接口与互连功能分离,这对芯片上模块之间的互连具有重要意义。AMBA已不仅是一种总线,更是一种带有接口模块的互连体系。下面将简要介绍比较重要的AHB和APB总线。3.1.2S3C2410处理器体系结构.ARM920T核,16位/32位RISC结构和ARM精简指令集;.ARMMMU,支持WindowsCE,Linux等操作系统;.指令Cache、数据Cache、写缓冲;.支持ARM调试结构,片上ICE支持JTAG调试方式3.1.3S3C2410处理器管理系统.支持大端(BigEndian)/小端(LittleEndian)模式;.地址空间为每个内存块128MB(一共1CB),每个内存块支持8/16/32位数据总线编程;.8个内存块,6个用于ROM、SRAM和其它,2个用于ROM/SRAM/SDRAM;.1个起始地址和大小可编程的内存块(Bank7);.7个起始地址固定的内存块(Bank0~Bank6);.所有内存块可编程寻址周期;.支持SDRAM自动刷新模式;.支持多种类型ROM启动,包括NOR/NANDFlash、EEPROM等。3.1.4S3C2410处理器存储器映射S3C2410的存储空间映射如图3-2所示。未用SFR区BootSRAM(4KB)SROM/SDRAM(nGCS7)SROM/SDRAM(nGCS6)SROM(nGCS5)SROM(nGCS4)SROM(nGCS3)SROM(nGCS2)SROM(nGCS1)SROM(nGCS0)未用SFR区未用SROM/SDRAM(nGCS7)SROM/SDRAM(nGCS6)SROM(nGCS5)SROM(nGCS4)SROM(nGCS3)SROM(nGCS2)SROM(nGCS1)内部启动SRAM(4KB)128MB128MB128MB128MB128MB2MB/4MB/8MB/16MB/32MB/64MB/128MB2MB/4MB/8MB/16MB/32MB/64MB/128MB1GBHADDR[29:0]可访问区域[不使用NANDFlash作为ROM][使用NANDFlash作为ROM]OM[1:0]=01,10OM[1:0]=000xffffffff0x600000000x480000000x40000fff0x400000000x380000000x300000000x280000000x200000000x180000000x100000000x080000000x00000000图3-2S3C2410存储区地址映射3.1.5S3C2410处理器时钟和电源管理1.时钟S3C2410的主时钟由外部晶振或者外部时钟提供,选择后可以提供3种时钟信号,分别是CPU使用的FCLK、AHB总线使用的HCLK和APB总线使用的PCLK。2.时钟源选择对时钟源的选择是通过OM[1:2]实现的,如表3-1所示。表3-1时钟源选择S3C2410引脚的OM[3:2]=00时,晶体为MPLLCLK和UPLLCLK提供时钟源;OM[3:2]=01时,晶体为MPLLCLK提供时钟源,EXTCLK为UPLLCLK提供时钟源;OM[32]=10时,EXTCLK为MPLLCLK提供时钟源,晶体为UPLLCLK提供时钟源;OM[3:2]=11时,EXTCLK为MPLLCLK和UPLLCLK提供时钟。3.时钟控制逻辑S3C2410支持HCLK、FCLK和PCLK的按比率选择,其比率是通过时钟分频寄存器CLKDIV中的HDIVN和PDIVN控制的,如表3-2所示。表3-2分频设定表4.电源管理S3C2410电源管理模块通过4种模式有效地控制功耗,即正常(Normal)模式、省电(Slow)模式、空闲(Idle)模式和断电(Power-off)模式。•Normal模式:为CPU和所有的外设提供电源,所有的外设开启,该模式下的功耗最大。这种模式允许用户通过软件控制外设,可以断开提供给外设的时钟以降低功耗。•Slow模式:采用外部时钟生产FCLK的方式,此时电源的功耗取决于外部时钟。5.时钟和电源管理寄存器S3C2410通过相应控制寄存器实现对时钟和电源的管理,相关寄存器使用参见表3-3。3.2S3C2410处理器片上资源的定义和使用和开发MCS-51单片机一样,S3C2410在头文件2410addr.h中,将S3C2410的所有硬件资源都进行了定义,我们在编写S3C2410的驱动程序时必需引用这个头文件。2410addr.h将系统所有的资源进行了宏定义,宏的名称就是所定义的寄存器的名字前面加一个小写的“r”,方便记忆。2410addr.h内容包括:Memorycontrol、USBHost、INTERRUPT、DMA、CLOCK&POWERMANAGEMENT、LCDCONTROLLER、NANDflash、UART、PWMTIMER、USBDEVICE、WATCHDOGTIMER、IIC、IIS、I/OPORT、RTC、ADC、SPI、ISR、SDInterface等,近20类。3.3参考软件项目2410test.mcp在随书提供的资料中,有一个2410test.mcp项目,里面包括几乎所有S3C2410硬件驱动的C语言例子和头文件,仔细阅读这些程序对我们编程有很大参考价值,应熟悉这些程序。项目主要部分列出如下,并做必要解释://--------------------------------------------------------------------------------------------------------//引入所有实验所需头文件//-------------------------------------------------------------------------------------------------------#includestdlib.h#includestring.h#includedef.h#includeoption.h#include2410addr.h#include2410lib.h#include2410slib.h#include2410etc.h#include2410IIC.h#include2410iis.h#include2410int.h#include2410RTC.h#include2410swi.h#includetimer.h#includeadc.h#includedma.h#includedma2.h#includeeint.h#includeextdma.h#includek9s1208.h#includemmu.h#includenwait.h#includesdi.h#includestone.h#includets_auto.h#includets_sep.h#includeusbfifo.h#includeIrDA.h#includelcd.h#includelcdlib.h#includeglib.h#includepalette.h#includespi.h#includeuart0.h#includeuart1.h#includeuart2.h#includeetc.h#includeflash.h#includeidle.h#includepd6710.h#includepll.h#includepower.h#includepwr_c.h#includestop.h//----------------------------------------------------------------------------------------------------------//定义一个二维的指针数组,数组中第一列是函数名,第二列是函数功能提示//--------------------------------------------------------------------------------------------------------void*function[][2]={//ADC,TSP(void*)Test_Adc,ADC,(void*)Test_DMA_Adc,ADCwithDMA,(void*)Ts_Sep,ADCTSPSeperate,(void*)Ts_Auto,ADCTSPAuto,//DMA(void*)Test_DMA,DMAM2M,(void*)Test_DMAWorst,DMAWorstTest,(void*)Test_Dma0Xdreq,ExternalDMA,//EINT(void*)Test_Eint,ExternalInterrupt,//IIC(void*)Test_Iic,IIC(KS24C080)INT,(void*)Test_Iic2,IIC(KS24C080)POL,//IIS(void*)Record_Iis,RecoIISUDA1341,(void*)Test_Iis,PlayIISUDA1341,//Interrupt(void*)Test_Fiq,FIQInterrupt,(void*)Change_IntPriorities,ChangeINTPriority,//IrDA(void*)T
本文标题:3ARM9芯片S3C2410片上资源
链接地址:https://www.777doc.com/doc-344331 .html