RISC微处理器S3C2410A

上传人:gp****x 文档编号:243121560 上传时间:2024-09-16 格式:PPT 页数:91 大小:807KB
返回 下载 相关 举报
RISC微处理器S3C2410A_第1页
第1页 / 共91页
RISC微处理器S3C2410A_第2页
第2页 / 共91页
RISC微处理器S3C2410A_第3页
第3页 / 共91页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第3章 32 Bit RISC微处理器S3C2410A,1,3.1 S3C2410A简介,3.1.1 S3C2410A内部结构,S3C2410是Samsung公司推出的16/32位RISC处理器,主要面向高性价比、低功耗的手持设备应用。S3C2410有S3C2410X和S3C2410A两个型号,A型是X型的改进型,具有更好的性能和更低的功耗。,为了降低系统的成本,S3C2410A在片上集成了单独的16KB指令Cache和16KB数据Cache、用于虚拟存储器管理的MMU、支持STN和TFT的LCD控制器、NAND Flash Boot Loader、系统管理器(片选逻辑和SDRAM控制器)、3通道UART、4通道DMA、4通道PWM定时器、I/O口、RTC、8通道10位ADC和触摸屏接口、I2C总线接口、I2S总线接口、USB主设备、USB从设备、SD主卡和MMC(Multi Media Card,多媒体卡)卡接口、2通道的SPI(Serial Peripheral Interface,串行外围设备接口)以及PLL时钟发生器。S3C2410A的CPU内核采用的是16/32位ARM920T 内核,同时还采用了AMBA(Advanced Microcontroller Bus Architecture,先进的微控制器总线体系结构)新型总线结构。,2,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字节Tx FIFO和16字节Rx FIFO)/2通道SPI;, 1通道多主设I2C总线和1通道I2S总线控制器;, 版本1.0SD主接口和2.11兼容版MMC卡协议;,3, 2个USB主设接口/1个USB从设接口(版本1.1);, 4通道PWM定时器和1通道内部定时器;, 看门狗定时器;, 117位通用I/O口和24通道外部中断源;, 电源控制模式有正常、慢速、空闲和电源关断4种模式;, 8通道10位ADC和触摸屏接口;, 具有日历功能的RTC;, 使用PLL的片上时钟发生器。,S3C2410A的内部结构方框图如图3.1.1所示。,4,图3.1.1 S3C2410A内部结构方框图,5,3.1.2 S3C2410A的技术特点,S3C2410A具有如下特点:,1体系结构, 采用ARM920T CPU内核,具有16/32位RISC体系结构和强大的指令集,为手持设备和通用嵌入式应用提供片上集成系统解决方案;, 增强的ARM体系结构MMU,支持WinCE、EPOC 32和Linux;, 使用指令Cache、数据Cache、写缓冲器和物理地址TAG RAM减少主存储器带宽和反应时间对性能的影响;, ARM920T CPU内核支持ARM调试体系结构;, 内部采用先进的微控制器总线体系结构(AMBA)(AMBA2.0,AHB/APB)。,2.系统管理器, 支持小大端方式。, 地址空间:每bank 128 MB(byte)(总共1GB)。,6, 每个bank支持可编程的8/16/32位数据总线宽度。, bank0bank6都采用固定的bank起始地址。, bank7具有可编程的bank起始地址和大小。, 8个存储器bank:,一6个用于ROM、SRAM及其他;,一2个用于ROM、SRAM和同步DRAM。, 所有的存储器bank都具有可编程的访问周期。, 支持使用外部等待信号来填充总线周期。, 支持掉电时的SDRAM自刷新模式。, 支持各种类型的ROM启动(booting),包括NOR/NAND Flash和EEPROM等。,3NAND Flash Boot Loader(启动装载), 支持从NAND Flash存储器的启动。,7,采用4 KB内部缓冲器用于启动引导。, 支持启动之后NAND存储器仍然作为外部存储器使用。,4Cache存储器, I-Cache(16 KB)和D-Cache(16 KB)为64路组相联Cache。, 每行8字长度,其中每行带有一个有效位和两个脏位(dirty bits)。, 采用伪随机数或循环替换算法。, 采用写直达(Write-through)或写回(Write-back)Cache操作来更新主存储器。, 写缓冲器可以保存16个字的数据值和4个地址值。,5时钟和电源管理, 片上MPLL和UPLL:,一UPLL产生用于USB主机设备操作的时钟;,一MPLL产生操作MCU的时钟,时钟频率最高可达266 MHz(2.0V内核电压)。,8, 通过软件可以有选择地为每个功能模块提供时钟。, 电源模式包括正常、慢速、空闲和掉电模式:,一正常模式为正常运行模式;,一慢速模式为不加PLL的低时钟频率模式;,一空闲模式只停止CPU的时钟;,一掉电模式切断所有外设和内核的电源。, 可以通过EINT15: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)支持。,9,7具有脉冲宽度调制(PWM)的定时器, 具有PWM功能的4通道16位定时器,可基于DMA或中断操作的1通道16位内部定时器;, 可编程的占空比周期、频率和极性;, 能产生死区;, 支持外部时钟源。,8RTC(实时时钟), 完整的时钟特性:秒、分、时、日期、星期、月和年;, 工作频率32.768 kHz;, 具有报警中断;, 具有时钟滴答中断。,9通用I/O口, 24个外部中断口;, 多路复用的I/O口。,10,10UAR, 3通道UART,可以基于DMA模式或中断模式操作;, 支持5位、6位、7位或者8位串行数据发送接收(Tx/Rx);, 支持外部时钟作为UART的运行时钟(UEXTCLK);, 波特率可编程;, 支持IrDA 1.0;, 支持回环(Loopback)测试模式;, 每个通道内部都具有16字节的发送FIFO和16字节的接收FIFO 。,11DMA控制器, 4通道的DMA控制器;, 支持存储器到存储器、I/O到存储器、存储器到I/O和I/O到I/O的传送;, 采用突发传送模式提高传送速率。,12AD转换和触摸屏接口, 8通道多路复用ADC;, 转换速率最大为500 KSPS(Kilo Samples Per Second,每秒采样千点),10位分辨率。,11,13LCD控制器STN LCD显示特性, 支持3种类型的STN LCD显示屏:4位双扫描、4位单扫描和8位单扫描显示类型;, 对于STN LCD支持单色模式、4级灰度、16级灰度、256彩色和4 096彩色;, 支持多种屏幕尺寸,典型的屏幕尺寸有:640480,320240,160160;, 最大虚拟屏幕大小是4 MB;, 在256彩色模式下支持的最大虚拟屏幕尺寸是:4 0961 024,2 0482 048,1 0244 0960或者其它尺寸。,14. TFT(Thin Film Transistor,薄膜场效应晶体管)彩色显示特性, 彩色TFT支持1、2、4或8bpp(bit per pixel,每像素所占位数)调色显示;, 支持16bpp无调色真彩显示;, 在24bpp模式下支持最大16M彩色TFT;,12,支持多种屏幕尺寸,典型的屏幕尺寸有:640480,320320,160160或者其它尺寸;, 最大虚拟屏大小是4 MB;, 在64彩色模式下支持的最大虚拟屏幕尺寸是:2 0481 024或者其它尺寸。,15看门狗定时器, 16位看门狗定时器;, 定时器溢出时产生中断请求或系统复位。,16I2C总线接口, 1通道多主机I2C总线;, 串行、8位、双向数据传送,在标准模式下数据传送速率可达100kb/s,在快速模式下可达400kb/s。,17I2S总线接口, 1通道音频I2S总线接口,可基于DMA方式操作;, 串行,每通道8/16位数据传输;,13,串行,每通道8/16位数据传输;, 发送和接收(Tx/Rx)具备128字节FIFO(64字节发送FIFO64字节接收FIFO);, 支持I2S格式和MSB-justified数据格式。,18USB主设备, 2个USB主设接口;, 遵从OHCI Revl.0标准;, 兼容USB Verl.1标准。,19USB从设备, 1个USB从设接口;, 具备5个USB设备端口;, 兼容USB Verl.1标准。,20SD主机接口, 兼容SD存储卡协议1.0版;, 兼容SDIO卡协议1.0版;,14,发送和接收采用字节FIFO;, 基于DMA或中断模式操作;, 兼容MMC卡协议2.11版。,21SPI接口, 兼容2通道SPI协议2.11版;, 发送和接收采用2字节的移位寄存器;, 基于DMA或中断模式操作。,22工作电压, 内核电压:1.8V,最高工作频率200 MHz(S3C2410A-20);2.0 V,最高工作频率266 MHz(S3C2410A-26)。, 存储器和I/O电压:3.3 V。,23封装, 采用272-FBGA封装。,15,3.2 S3C2410A存储器控制器,3.2.1 S3C2410A的存储器控制器特性,S3C2410A的存储器控制器提供访问外部存储器所需要的存储器控制信号,具有以下特性:, 支持小大端(通过软件选择)。, 地址空间:每个bank有128 MB(总共有8个bank,共1 GB)。, 除bank0只能是16/32位宽之外,其他bank都具有可编程的访问位宽(8/16/32位)。, 总共有8个存储器bank(bank0bank7):,一其中6个用于ROM,SRAM等;,一剩下2个用于ROM,SRAM,SDRAM等。, 7个固定的存储器bank(bank0bank6)起始地址。, 最后一个bank(bank7)的起始地址是可调整的。, 最后两个bank(bank6和bank7)的大小是可编程的。,16,所有存储器bank的访问周期都是可编程的。, 总线访问周期可以通过插入外部等待来扩展。, 支持SDRAM的自刷新和掉电模式。,3.2.1 S3C2410A的存储器映射,S3C2410A复位后,存储器的映射情况如图3.2.1所示,bank6和bank7对应不同大小存储器时的地址范围参见表3.2.1。,17,不使用NAND Flash作为启动ROM 使用NAND Flash作为启动ROM,注意:SROM表示是ROM或SRAM类型的存储器;,SFR指特殊功能寄存器。,图3.2.1 S3C2410A复位后的存储器映射,18,表3.2.1 bank 6和bank 7地址,注:bank 6和bank 7必须具有相同的存储器大小。,19,3.3 复位、时钟和电源管理,1复位电路,在系统中,复位电路主要完成系统的上电复位和系统在运行时用户的按键复位功能。复位电路可由简单的RC电路构成,也可以使用其他的相对较复杂,但功能更完善的电路。,为了提供高效的电源监视性能,选取了专门的系统监视复位芯片IMP811S。该芯片性能优良,可以通过手动控制系统的复位,同时还可以实时监控系统的电源。一旦系统电源低于系统复位的阀值(2.9V),IMP811S将会对系统进行复位。系统复位电路如图3.3.1所示。,20,图3.3.1 系统复位电路,21,也可以采用如图3.3.2所示较简单的RC复位电路,经使用证明,其复位逻辑是可靠的。该复位电路的工作原理如下:在系统上电时,通过电阻R108向电容C162充电,当C162两端的电压未达到高电平的门限电压时,RESET端输出为高电平,系统处于复位状态;当C162两端的电压达到高电平的门限电压时,RESET端输出为低电平,系统进入正常工作状态。,当用户按下按钮RESET时,C162两端的电荷被放掉,RESET端输出为高电平,系统进入复位状态,再重复以上的充电过程,系统进入正常工作状态。,两级非门电路用于按钮去抖动和波形整形;nRESET端的输出状态与RESET端相反,用于低电平复位的器件;通过调整R108和C162的参数,可调整复位状态的时间。,22,图3.3.2 系统的复位电路,23,2时钟电路,在S3C2410A中的时钟控制逻辑能够产生CPU所需的FCLK时钟信号。AHB总线外围设备所需的HCLK时钟信号,以及APB总线外围设备所需的PCLK时钟信号。,S3C2410A有两个锁相环(Phase Locked Loops,PLL),一个用于FCLK,HCLK和PCLK,另一个专门用于USB模块(48 MHz)。时钟控制逻辑可以在不需要PLL的情况下产生慢速时钟,并且可以通过软件来控制时钟与每个外围模块是连接还是断开,从而降低功耗。,S3C2410A微处理器的主时钟可以由外部时钟源提供,也可以由外部振荡器提供,如图3.3.3所示,采用哪种方式通过引脚OM3:2来进行选择。, OM3:2=00时,MPLL和UPLL的时钟均选择外部晶体振荡器;, OM3:2=0l时,MPLL的时钟选择外部晶体振荡器;UPLL选择外部时钟源;,24, OM3:2=10时,MPLL的时钟选择外部时钟源;UPLL选择外部晶体振荡器;, OM3:2=11时,MPLL和UPLL的时钟均选择外部时钟源。,在系统中选择OM3:2均接地的方式,即采用外部振荡器提供系统时钟。系统时钟源直接采用外部晶振,内部PLL电路可以调整系统时钟,使系统运行速度更快。S3C2410X的系统时钟电路见图3.3.3,其外部振荡器由12MHz晶振和2个15pF的微调电容组成。振荡电路输出接到S3C2410X微处理器的XTIPLL脚,输入由XTOPLL提供。由于片内的PLL电路兼有频率放大和信号提纯的功能,因此,系统可以以较低的外部时钟信号获得较高的工作频率,从而降低因高速开关时钟所造成的高频噪声。,25,图3.3.3 S3C2410X微处理器外部时钟电路,26,3电源电路,对于电源控制逻辑,S3C2410A具有多种电源管理方案,对于每个给定的任务都具有最优的功耗。在S3C2410A中的电源管理模块具有正常模式、慢速模式、空闲模式和掉电模式4种有效模式。,在正常模式,电源管理模块为CPU和S3C2410A中的所有外围设备提供时钟。在这个模式,由于所有外围设备都处于开启状态,因此功耗达到最大。用户可以通过软件来控制外围设备的操作。例如,如果不需要定时器,那么用户可以断开定时器的时钟,以降低功耗。,慢速模式又称无PLL模式。与正常模式不同,在慢速模式不使用PLL,而使用外部时钟(XTIPLL或EXTCLK)直接作为S3C2410A中的FCLK。在这种模式下,功耗大小仅取决外部时钟的频率,功耗与PLL无关。,在空闲模式下,电源管理模块只断开CPU内核的时钟(FCLK),但仍为所有其他外围设备提供时钟。空闲模式降低了由CPU内核产生的功耗。任何中断请求可以从空闲模式唤醒CPU。,27,在掉电模式,电源管理模块断开内部电源。因此,除唤醒逻辑以外,CPU和内部逻辑都不会产生功耗。激活掉电模式需要两个独立的电源,一个电源为唤醒逻辑供电;另一个为包括CPU在内的其他内部逻辑供电,并且这个电源开关可以控制。在掉电模式下,为CPU和内部逻辑供电的第二个电源将关断。通过EINT15:0或RTC报警中断可以从掉电模式唤醒S3C2410A。,在设计系统电源电路之前对S3C2410A的电源引脚进行分析:VDDalive引脚给处理器复位模块和端口寄存器提供1.8V电压;VDDi和VDDiarm为处理器内核提供1.8V电压;VDDi_MPLL为MPLL提供1.8V模拟电源和数字电源;VDDi_UPLL为UPLL提供1.8V模拟电源和数字电源;VDDOP和VDDMOP分别为处理器端口和处理器存储器端口提供3.3V电压;VDD_ADC为处理器内的ADC系统提供3.3V电压;VDDRTC为时钟电路提供1.8V电压,该电压在系统掉电后仍需要维持。系统需要使用3.3V和1.8V的直流稳压电源。,为简化系统电源电路的设计,要求整个系统的输入电压为高质量的5V直流稳压电源。VDD3.3V提供给VDDMOP,VDDIO,VDDADC和VCC引脚,VDD1.8V提供给VDDi_X。,28,5V输入电压经过DC-DC转换器可完成5V到3.3V和1.8V的电压转换。系统中RTC所需电压由1.8V电源和后备电源共同提供,在系统工作时1.8V电压有效,系统掉电时后备电池开始工作,以供RTC电路所需的电源,同时使用发光二极管指示电源状态。S3C2410A电源电路如图3.3.4所示。,(a)3.3V电源电路,29,(b)1.8V电源电路,(电阻R203100K,R20447.5K,阻值需要修改),图3.3.4 电源电路,30,3.4 S3C2410A的I/O口,3.4.1 S3C2410A的IO口配置,S3C2410A共有117个多功能复用输入输出端口(I/O口),分为端口A端口H 8组,其中8组I/O口按照其位数的不同又可分为:端口A(GPA)是1个23位输出口;端口B(GPB)和端口H(GPH)是2个11位I/O口;端口C(GPC)、端口D(GPD)、端口E(GPE)和端口G(GPG)是4个16位I/O口;端口F(GPF)是1个8位I/O口。,为了满足不同系统设计的需要,每个I/O口可以很容易地通过软件对进行配置。每个引脚的功能必须在启动主程序之前进行定义。如果一个引脚没有使用复用功能,那么它可以配置为I/O口。注意:端口 A除了作为功能口外,只能够作为输出口使用。,S3C2410A的I/O口配置情况如表3.4.13.4.7所列。,31,表3.4.1 S3C2410A的端口A I/O口配置情况,端口A,可选择的引脚端功能,GPA22,输出,nFCE,GPA21,输出,nRSTOUT,GPA20,输出,nFRE,GPA19,输出,nFWE,GPA18,输出,ALE,GPA17,输出,CLE,GPA16GPA12,输出,nGCS5nGCS1,GPA11GPA1,输出,ADDR26ADDR16,GPA0,输出,ADDR0,32,端口B,可选择的引脚端功能,GPB10,输入/输出,nXDREQ0,GPB9,输入/输出,nXDACK0,GPB8,输入/输出,nXDREQ1,GPB7,输入/输出,nXDACK1,GPB6,输入/输出,nXBREQ,GPB5,输入/输出,nXBACK,GPB4,输入/输出,TCLK0,GPB3GPB0,输入/输出,TOUT3 TOUT0,表3.4.2 S3C2410A的端口B I/O口配置情况,33,端口C,可选择的引脚端功能,GPC15GPC8,输入/输出,VD7 VD0,GPC7GPC5,输入/输出,LCDVF2LCDVF0,GPC4,输入/输出,VM,GPC3,输入/输出,VFRAME,GPC2,输入/输出,VLINE,GPC1,输入/输出,VCLK,GPC0,输入/输出,LEND,表3.4.3 S3C2410A的端口C I/O口配置情况,34,端口D,可选择的引脚端功能,GPD15,输入/输出,VD23,nSS0,GPD14,输入/输出,VD22,nSS1,GPD13GPD0,输入/输出,VD21VD8,表3.4.4 S3C2410A的端口D I/O口配置情况,35,端口E,可选择的引脚端功能,GPE15,输入/输出,IICSDA,GPE14,输入/输出,IICSCL,GPE13,输入/输出,SPICLK0,GPE12,输入/输出,SPIMOSI0,GPE11,输入/输出,SPIMISO0,GPE10GPE7,输入/输出,SDDAT3SDDAT0,GPE6,输入/输出,SDCMD,GPE5,输入/输出,SDCLK,表3.4.5 S3C2410A的端口E、F I/O口配置情况,36,37,端口G,可选择的引脚端功能,GPG15,输入/输出,EINT23,nYPON,GPG14,输入/输出,EINT22,YMON,GPG13,输入/输出,EINT21,nXPON,GPG12,输入/输出,EINT20,XMON,GPG11,输入/输出,EINT19,TCLK1,GPG10GPG8,输入/输出,EINT18EINT16,GPG7,输入/输出,EINT15,SPICLK1,表3.4.6 S3C2410A的端口G I/O口配置情况,38,GPG6,输入/输出,EINT14,SPIMOSI1,GPG5,输入/输出,EINT13,SPIMISO1,GPG4,输入/输出,EINT12,LCD_PWREN,GPG3,输入/输出,EINT11,nSS1,GPG2,输入/输出,EINT10,nSS0,GPG1,输入/输出,EINT9,GPG0,输入/输出,EINT8,39,端口 H,可选择的引脚端功能,GPH10,输入/输出,CLKOUT1,GPH9,输入/输出,CLKOUT0,GPH8,输入/输出,UEXTCLK,GPH7,输入/输出,RXD2,nCTS1,GPH6,输入/输出,TXD2,nRTS1,GPH5,输入/输出,RXD1,GPH4,输入/输出,TXD1,GPH3,输入/输出,RXD0,GPH2,输入/输出,TXD0,GPH1,输入/输出,nRTS0,GPH0,输入/输出,nCTS0,表3.4.7 S3C2410A的端口H I/O口配置情况,40,3.4.2 S3C2410A的IO口寄存器,在S3C2410A中,大多数的引脚端都是复用的,所以对于每一个引脚端都需要定义其功能。为了使用I/O口,首先需要定义引脚的功能。每个引脚端的功能通过端口控制寄存器(PnCON)来定义(配置)。与配置I/O口相关的寄存器包括:端口控制寄存器(GPACONGPHCON)、端口数据寄存器(GPADATGPHDAT)、端口上拉寄存器(GPBUPGPHUP)、杂项控制寄存器以及外部中断控制寄存器(EXTINTN)等。在掉电模式,如果GPF0GPF7和GPG0GPG7用作为唤醒信号,那么这些端口必须配置为中断模式。,如果端口配置为输出口,数据可以写入到端口数据寄存器(PnDAT)的相应位中;如果将端口配置为输入口,则可以从端口数据寄存器(PnDAT)的相应位中读出数据。,端口上拉寄存器用于控制每组端口的上拉电阻为使能/不使能。如果相应位设置为0,则表示该引脚的上拉电阻使能;为1,则表示该引脚的上拉电阻不使能。如果使能了端口上拉寄存器,则不论引脚配置为哪种功能(输入、输出、DATAn、EINTn等),上拉电阻都会起作用。,41,杂项控制寄存器用于控制数据端口的上拉电阻、高阻状态、USB Pad和CLKOUT的选择。,24个外部中断通过不同的信号方式被请求。EXTINTn寄存器用于配置这些信号对于外部中断请求采用的是低电平触发、高电平触发、下降沿触发、上升沿触发还是双边沿触发。有8个外部中断有数字滤波器。仅16 EINT引脚端(EINT15:0)用来作为唤醒源。,所有GPIO寄存器的值在掉电模式下都会被保存。外部中断屏蔽寄存器EINTMASK不能阻止从掉电模式唤醒,但是如果EINTMASK正在屏蔽的是EINT15:4中的某位,则可以实现唤醒,不过寄存器SRCPND的位EINT4 和EINT8 23在刚刚唤醒后不能设置为1。,相关寄存器的设置分别描述如下:,42,寄存器,地址,读/写,描述,复位值,GPACON,0x56000000,R/W,配置端口A引脚端,使用位22:0。设置为0:输出引脚端;,设置为1:第2功能,0x7FFFFF,GPADAT,0x56000004,R/W,端口A数据寄存器,使用位22:0,未定义,保留,0x56000008,保留,未定义,保留,0x5600000C,保留,未定义,1端口A控制寄存器(参见表3.4.8),表3.4.8 端口A控制寄存器,43,寄存器,地址,读/写,描述,复位值,GPBCON,0x56000010,R/W,配置端口B引脚端,使用位21:0,分别对端口B的11个引脚端进行配置。,00:输入;01:输出;10:第2功能;11:保留,0x0,GPBDAT,0x56000014,R/W,端口B数据寄存器,使用位10:0,未定义,GPBUP,0x56000018,R/W,端口B上拉电阻不使能寄存器,使用位10:0 。,0:使能;1:不使能,0x0,保留,0x5600001C,保留,未定义,2端口B控制寄存器(参见表3.4.9),表.3.4.9 端口B控制寄存器,44,寄存器,地址,读/写,描述,复位值,GPCCON,0x56000020,R/W,配置端口C引脚端,使用位31:0,分别对端口B的16个引脚端进行配置。,00:输入;01:输出;10:第2功能;11:保留,0x0,GPCDAT,0x56000024,R/W,端口C数据寄存器,使用位15:0,未定义,GPCUP,0x56000028,R/W,端口C上拉电阻不使能寄存器,使用位15:0 。,0:使能;1:不使能,0x0,保留,0x5600002C,保留,未定义,3端口C控制寄存器(参见表3.4.10),表3.4.10 端口 C控制寄存器,45,寄存器,地址,读/写,描述,复位值,GPDCON,0x56000030,R/W,配置端口D引脚端,使用位31:0,分别对端口B的16个引脚端进行配置。,00:输入;01:输出;10:第2功能;11:保留/第3功能,0x0,GPDDAT,0x56000034,R/W,端口D数据寄存器,使用位15:0,未定义,GPDUP,0x56000038,R/W,端口D上拉电阻不使能寄存器,使用位15:0。,0:使能;1:不使能,0xF000,保留,0x5600003C,保留,未定义,4端口D控制寄存器(参见表3.4.11),表3.4.11 端口D控制寄存器,46,寄存器,地址,读/写,描述,复位值,GPECON,0x56000040,R/W,配置端口E引脚端,使用位31:0,分别对端口B的16个引脚端进行配置。,00:输入;01:输出;10:第2功能;11:保留/第3功能,0x0,GPEDAT,0x56000044,R/W,端口E数据寄存器,使用位15:0,未定义,GPEUP,0x56000048,R/W,端口E上拉电阻不使能寄存器,使用位15:0 。,0:使能;1:不使能,0x0,保留,0x5600004C,保留,未定义,5端口E控制寄存器(参见表3.4.12),表3.4.12 端口 E控制寄存器,47,寄存器,地址,读/写,描述,复位值,GPFCON,0x56000050,R/W,配置端口F引脚端,使用位15:0,分别对端口B的8个引脚端进行配置。,00:输入;01:输出;10:第2功能;11:保留,0x0,GPFDAT,0x56000054,R/W,端口F数据寄存器,,使用位7:0,未定义,GPFUP,0x56000058,R/W,端口F上拉电阻不使能寄存器,使用位7:0 。,0:使能;1:不使能,0x0,保留,0x5600005C,保留,未定义,6端口F控制寄存器(参见表3.4.13),表3.4.13 端口F控制寄存器,48,寄存器,地址,读/写,描述,复位值,GPGCON,0x56000060,R/W,配置端口G引脚端,使用位31:0,分别对端口B的16个引脚端进行配置。,00:输入;01:输出;10:第2功能;11:保留/第3功能,0x0,GPGDAT,0x56000064,R/W,端口G数据寄存器,,使用位15:0,未定义,GPGUP,0x56000068,R/W,端口G上拉电阻不使能寄存器,使用位15:0 。,0:使能;1:不使能,0xF800,保留,0x5600006C,保留,未定义,7端口G控制寄存器(参见表3.4.14),表3.4.14 端口G控制寄存器,49,寄存器,地址,读/写,描述,复位值,GPHCON,0x56000070,R/W,配置端口H引脚端,使用位21:0,分别对端口B的11个引脚端进行配置。,00:输入;01:输出;10:第2功能;11:保留/第3功能,0x0,GPHDAT,0x56000074,R/W,端口H数据寄存器,,使用位10:0,未定义,GPHUP,0x56000078,R/W,端口H上拉电阻不使能寄存器,使用位10:0 。,0:使能;1:不使能,0x0,保留,0x5600007C,保留,未定义,8端口H控制寄存器(参见表3.4.15),表3.4.15 端口H控制寄存器,50,寄存器,地址,读/写,描述,复位值,MISCCR,0x56000080,R/W,上拉电阻、高阻状态、USB Pad和CLKOUT的选择,控制,0x10330,9杂项控制寄存器(参见表3.4.16),表3.4.16 杂项控制寄存器,寄存器,地址,读/写,描述,复位值,DCLKCON,0x56000084,R/W,DCLK0/1 控制,位27:16控制DCLK1,位11:0控制DCLK9,0x0,10DCLK控制寄存器(参见表3.4.17),表3.4.17 DCLK控制寄存器,51,寄存器,地址,读/写,描述,复位值,EXTINT0,0x56000088,R/W,外部中断控制寄存器0 ,使用位30:0,分别对EINT7EINT0触发信号进行配置。,000:低电平触发;001:高电平触发;01x:下降沿下降;10x:上升沿触发;11x:双边沿触发,0x0,EXTINT1,0x5600008C,R/W,外部中断控制寄存器1,使用位30:0,分别对EINT15EINT8触发信号进行配置。,000:低电平触发;001:高电平触发;01x:下降沿下降;10x:上升沿触发;11x:双边沿触发,0x0,11.外部中断控制寄存器(参见表3.4.18),表3.4.18 外部中断控制寄存器,52,EXTINT2,0x56000090,R/W,外部中断控制寄存器2,使用位30:0,分别对EINT23EINT16触发信号进行配置。,000:低电平触发;001:高电平触发;01x:下降沿下降;10x:上升沿触发;11x:双边沿触发。,位31为EINT23滤波器使能控制,1:使能;0:不使能,0x0,53,12外部中断滤波寄存器(参见表3.4.19),表3.4.19 外部中断滤波寄存器,54,寄存器,地址,读/写,描述,复位值,EINTMASK,0x560000A4,R/W,外部中断屏蔽寄存器,使用位23:4 控制EINT23EINT4中断屏蔽。,0:使能中断;1:屏蔽中断,0x00FFFFF0,寄存器,地址,读/写,描述,复位值,EINTPEND,0x560000A8,R/W,外部中断挂起寄存器,使用位23:4 控制EINT23EINT4中断请求。,0:不被请求;1:被请求,0x0,14.外部中断挂起寄存器(参见表3.4.21),表3.4.21 外部中断挂起寄存器,13.外部中断屏蔽寄存器(参见表3.4.20),表3.4.20 外部中断屏蔽寄存器,55,寄存器,地址,读/写,描述,复位值,GSTATUS0,0x560000AC,R,外部引脚端状态,Undefined,GSTATUS1,0x560000B0,R,芯片ID,0x32410000,GSTATUS2,0x560000B4,R/W,复位状态,0x1,GSTATUS3,0x560000B8,R/W,Infrom 寄存器,可以利用,nRESET和看门狗定时器清零,0x0,GSTATUS4,0x560000BC,R/W,Infrom寄存器,可以利用,nRESET和看门狗定时器清零,0x0,15.通用状态寄存器(参见表3.4.22),表3.4.22 通用状态寄存器,56,3.5 S3C2410A的中断控制,3.5.1 ARM系统的中断处理,在ARM系统中,支持复位、未定义指令、软中断、预取中止、数据中止、IRQ和FIQ 7种异常,每种异常对应于不同的处理器模式,有对应的异常向量(固定的存储器地址)。,在ARM系统中,一旦有中断发生,正在执行的程序都会停下来,通常都会执行如下的中断步骤:,(1)保存现场。保存当前的PC值到R14,保存当前的程序运行状态到SPSR。,(2)模式切换。根据发生的中断类型,进入IRQ模式或FIQ模式。,(3)获取中断服务子程序地址。PC指针跳到异常向量表所保存的IRQ或FIQ地址处,IRQ或FIQ的异常向量地址处一般保存的是中断服务子程序的地址,PC指针跳入到中断服务子程序,进行中断处理。,(4)多个中断请求处理。在ARM系统中,可以存在多个中断请求源,比如串口中断、AD中断、外部中断、定时器中断及DMA中断等,所以可能出现多个中断源同时请求中断的情况。为了更好地,57,区分各个中断源,通常为这些中断定义不同的优先级别,并为每一个中断设置一个中断标志位。当发生中断时,通过判断中断优先级以及访问中断标志位的状态来识别哪一个中断发生了,进而调用相应的函数进行中断处理。,(5)中断返回,恢复现场。当完成中断服务子程序后,将SPSR中保存的程序运行状态恢复到CPSR中,R14中保存的被中断程序的地址恢复到PC中,继续执行被中断的程序。,3.5.2 S3C2410A的中断控制器,S3C2410A采用ARM920T CPU内核,ARM920T CPU的中断包含有IRQ和FIQ。IRQ是普通中断,FIQ是快速中断,FIQ的优先级高于IRQ。FIQ中断通常在进行大批量的复制、数据传输等工作时使用。,S3C2410A通过对程序状态寄存器(PSR)中的F位和I位进行设置控制CPU的中断响应。如果设置PSR的F位为1,则CPU不会响应来自中断控制器的FIQ中断;如果设置PSR的I位为1,则CPU不会响应来自中断控制器的IRQ中断。如果设置PSR的F位或I位设置为0,同时将中断屏蔽寄存器(INTMSK)中的相对应位设置为0,CPU响应来自中断控制器的IRQ或FIQ中断请求。,58,中断屏蔽寄存器用于指示中断是否禁止。如果设置中断屏蔽寄存器中的相对应屏蔽位为1,表示相对应的中断禁止;如果设置为0,表示中断发生时将正常执行中断服务。如果发生中断时相对应的屏蔽位正好为1,则中断挂起寄存器中的相对中断源挂起位将置1。,S3C2410A有SRCPND(中断源挂起寄存器)和INTPND(中断挂起寄存器)两个中断挂起寄存器。SRCPND和INTPND两个挂起寄存器用于指示某个中断请求是否处于挂起状态。当多个中断源请求中断服务时,SRCPND寄存器中的相应位设置为1,仲裁过程结束后INTPND寄存器中只有1位被自动设置为1。,S3C2410A中的中断控制器能够接收来自56个中断源的请求,这些中断源来自DMA控制器、UART、I2C及外部中断引脚等。从表3.5.1可以看出,S3C2410A共有32个中断请求信号。S3C2410A采用了中断共享技术,INT_UARTO、INT_UART1、INT_UART2、EINT8_23和EINT4_7为多个中断源共享使用的中断请求信号。中断请求的优先级逻辑是由7个仲裁器组成的,其中包括6个一级仲裁器和1个二级仲裁器,如图3.5.1所示。每个仲裁器是否使能由寄存器PRIORITY6:0决定。每个仲裁器可以处理46个中断源,从中选出优先级最高的。优先级顺序由寄存器PRIORITY20:7的相应位决定。,59,表3.5.1 S3C2410A 的中断源,中断源,描述,仲裁器分组,INT_ADC,ADCEOC和触摸中断(INT_ADC/INT_TC),ARB5,INT_RTC,RTC报警中断,ARB5,INT_SPI1,SPI1中断,ARB5,INT_UART0,UART0中断(故障、接收和发送),ARB5,INT_IIC,I,2,C中断,ARB4,VINT_USBH,USB主设备中断,ARB4,INT_USB,USB从设备中断,ARB4,保留,保留,ARB4,INT_UART1,UART1中断(故障、接收和发送),ARB4,INT_SPI0,SPI0中断,ARB4,INT_SDI,SDI中断,ARB3,INT_DMA3,DMA通道3中断,ARB3,INT_DMA2,DMA通道2中断,ARB3,INT_DMA1,DMA通道1中断,ARB3,INT_DMA0,DMA通道0中断,ARB3,60,INT_LCD,LCD中断,ARB3,INT_UART2,UART2中断(故障、接收和发送),ARB2,INT_TIMER4,定时器4中断,ARB2,INT_TIMERS,定时器3中断,ARB2,INT_TIMER2,定时器2中断,ARB2,INT_TIMER1,定时器1中断,ARB2,INT_TIMER0,定时器0中断,ARB2,INT_WDT,看门狗定时器中断,ARB1,INT_TICK,RTC时钟滴答中断,ARB1,nBATT_FLT,电源故障中断,ARB1,保留,保留,ARB1,EINT8_23,外部中断823,ARB1,EINT4_7,外部中断47,ARB1,EINT3,外部中断3,ARB0,EINT2,外部中断2,ARB0,EINTI,外部中断1,ARB0,EINT0,外部中断0,ARB0,61,图3.5.1 优先级生成模块,62,寄存器,地址,R/W,描述,复位值,SRCPND,0X4A000000,R/W,中断源挂起寄存器,为0时,无中断请求;当有中断产生,相应位置1。,所有来自中断源的中断请求首先被登记到中断源挂起寄存器中,0x00000000,INTMOD,0X4A000004,R/W,中断模式寄存器:0=IRQ模式,1=FIQ模式。多个IRQ中断的仲裁过程在优先级寄存器进行。,0x00000000,INTMSK,0X4A000008,R/W,中断屏蔽寄存器:0=允许中断,1=屏蔽中断。,中断屏蔽寄存器的主要功能是屏蔽相应中断的请求,即使中断挂起寄存器的相应位已经置1,也就是说已经有相应的中断请求发生了;但是如果此时中断屏蔽寄存器的相应位置1,则中断控制器将屏蔽该中断请求CPU不会响应该中断,0xFFFFFFFF,S3C2410A中断控制器的特殊寄存器如表3.5.2所示,中断控制需要正确,的设置这些寄存器,寄存器中每一位的含义请参阅S3C2410A数据手册。,表3.5.2中断控制器的特殊寄存器,63,PRIORITY,0x4A00000C,R/W,IRQ中断优先级控制寄存器,0x7F,INTPND,0X4A000010,R/W,中断状态指示寄存器:0=该中断没有请求,1=该中断源发出中断请求,0x00000000,INTOFFSET,0X4A000014,R,中断偏移寄存器,指示IRQ中断源,0x00000000,SUBSRCPND,0X4A000018,R/W,子中断源状态寄存器,指示中断请求的状态。,0=该中断没有请求,1=该中断源发出中断请求,0x00000000,INTSUBMSK,0X4A00001C,R/W,定义哪几个中断源屏蔽。,0=中断服务允许,1=中断服务屏蔽,0x7FF,64,3.5.3 S3C2410A的中断编程实例,本小节介绍一个通过定时器1控制一个led灯每1秒钟改变一次状态,需要完成的主要工作如下。,(1)对定时器1初始化,并设定定时器的中断时间为1,具体代码参见Timed init( )函数。,void Timerl_init(void),rGPBCON = rGPBCON,rGPBDAT= rGPBDAT |0x001;,rTCFG0 = 255;,rTCFG1 = 04;,rTCNTB1 = 48828; /在pclk = 50MHz下,1s的记数值rTCNTB1 = 50000000/4/256=48828;,rTCMPB1 0x00;,rTCON (1+11) | (19) | (08);/禁用定时器1,手动加载,rTCON (1+11) | (09) | (18);/启动定时器1,自动装载,65,(2)为了使CPU响应中断,在中断服务子程序执行之前,必须打开ARM920T的CPSR中的I位,以及相应的中断屏蔽寄存器中的位。打开相应的中断屏蔽寄存器中的位,是在TimerlINT Init()函数中实现的,具体代码如下。,void TimerlINT_Init(void) /定时器接口使能,if(rINTPNDBIT_TIMERI),rSRCPND | = BIT_TIMER1;,pISR_TMER1=(int)Timerl_ISR; /写入定时器1中断服务子程序的入口地址,rINTMSK (BIT_TIMERI); /开中断;,(3)等待定时器中断,通过一个死循环,如“while(1);”实现等待过程。,(4)根据设置的定时时间,产生定时器中断。中断发生后,首先进行现场保护,然后转人中断的入口代码处执行。该部分代码通常使用汇编语言编写。在执行中断服务程序之前,要确保HandleIRQ地址处保存中断分发程序IsrIRQ的入口地址,代码如下。,66,ldr r0, HandleIRQ,ldr r1, IsrIRQ,str r1,r0,接下来将执行IsrIRQ中断分发程序,具体代码如下。,IsrIRQ,sub sp,sp,#4; /为保存PC预留堆栈空间,stmfd sp!,r8r9,ldr r9, INTOFFSET,ldr r9,r9; /加载INTOFFSET寄存器值到r9,ldr r8,HandleEINT0; /加载中断向量表的基地址到r8,add r8,r8,r9,lsl #2; /获得中断向量,ldr r8, r8; /加载中断服务程序的入口地址到r8,str r8,sp,#8; /保存sp,将其作为新的pc值,ldmfd sp!,(r8-r9,pc; /跳转到新的pc处执行,即跳转到中断服务子程序执行,67,(5)执行中断服务子程序,该子程序实现led灯每一秒钟改变一次状态。看到LEDl灯闪烁一次,则说明定时器发生了一次中断。具体实现见函数Timerl_ISR()。,int f ;,void _ _irq Timer1_ISR(void),If (f= = 0), rGPBDAT = rGPBDAT | 0x001;,f=1;,If (f= = 1), rGPBDAT= rGPBDAT ,f=0;,rSRCPND |= BIT_TIMER1;,rINTPND |= BIT_TIMER1;,(6)从中断返回,恢复现场,跳转到被中断的主程序继续执行,等待下一次中断的到来。,68,3.6 S3C2410A的DMA控制器,3.6.1 DMA工作原理,DMA(Direct Memory Acess,直接存储器存取)方式是指存储器与外设在DMA控制器的控制下,直接传送数据而不通过CPU,传输速率主要取决于存储器存取速度。在DMA传输过程中,DMA控制器负责管理整个操作,并且无须CPU介入,从而大大提高了CPU的工作效率。DMA方式为高速I/O设备和存储器之间的批量数据交换提供了直接的传输通道。由于I/O设备直接同内存发生成块的数据交换,可以提高I/O效率。现在大部分计算机系统均采用DMA技术。许多输入输出设备的控制器都支持DMA方式。,在进行DMA数据传送之前,DMA控制器会向CPU申请总线控制权,CPU如果允许,则将控制权交出。因此,在数据交换时,总线控制权由DMA控制器掌握,在传输结束后,DMA控制器将总线控制权交还给CPU。采用DMA方式进行数据传输的具体过程如下。,69,(1)外设向DMA控制器发出DMA请求。,(2)DMA控制器向CPU发出总线请求信号。,(3)CPU执行完现行的总线周期后,向DMA控制器发出响应请求的回答信号。,(4)CPU将控制总线、地址总线及数据总线让出,由DMA控制器进行控制。,(5)DMA控制器向外部设备发出DMA请求回答信号。,(6)进行DMA传送。,(7)数据传送完毕,DMA控制器通过中断请求线发出中断信号。CPU在接收到中断信号后,转人中断处理程序进行后续处理。,(8)中断处理结束后,CPU返回到被中断的程序继续执行。CPU重新获得总线控制权。,70,3.6.2 S3C2410A的DMA控制器,在系统总线和外围总线之间,S3C2410A有4个DMA控制器。每个DMA控制器可以处理以下4种情况:,(1)源和目的都在系统总线上;,(2)源在系统
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!