《2022年《嵌入式系统的原理及应用》课程讲义_ .pdf》由会员分享,可在线阅读,更多相关《2022年《嵌入式系统的原理及应用》课程讲义_ .pdf(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、嵌入式系统的原理及应用课程讲义目录2.7 S3C2410 ARM 微处理器简介. 22.7.1 内部结构 . 32.7.2 S3C2410A 的启动. 72.7.3 存储器控制器 . 72.7.4 Nand Flash控制器 . 10 2.7.5 时钟和电源管理. 11 2.7.6 输入 /输出口. 12 2.7.7 中断 . 13 2.7.8 异步串行口 UART. 17 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 20 页 - - - - - - - - - 第
2、4 次课: S3C2410 ARM 微处理器主要介绍 4 个方面的内容:(1) 内部结构(2) S3C2410A 的启动(3) 存储器控制器(4) Nand Flash控制器(5) 时钟和电源管理(6) 输入/输出口(7) 中断(8) 异步串行口 UART 2.7 S3C2410 ARM 微处理器简介Samsung 公司推出的 16/32 位 RISC 处理器 S3C2410A,为手持设备和一般类型应用提供了低价格、 低功耗、高性能小型微控制器的解决方案。采用 272 脚FBGA 封装,内含一个ARM920T 内核。为了降低整个系统的成本,S3C2410A提供了以下丰富的片内外围: 1 个 L
3、CD 控制器 (支持 STN 和 TFT 带有触摸屏的液晶显示器 ); SDRAM 控制器; 3 个通道的 UART; 4 个通道的 DMA ; 4 个具有 PWM 功能的计时器和 1 个内部时钟; 8 通道的 10 位 ADC; 触摸屏接口; I2C 总线接口; 1 个 USB 主机接口, 1 个 USB 设备接口; 2 个 SPI 接口; SD 接口和 MMC 卡接口; 117位通用 I/O 口和 24 位外部中断源;S3C2410A 采用了 ARM920T 内核, 0.18um 工艺的 CMOS 标准宏单元和存储器单元。 它的低功耗、精简和出色的全静态设计特别适用于对成本和功耗敏感的 应
4、 用 。 同 样 它 还 采 用 了 一 种 叫 做Advanced Microcontroller Bus Architecture(AMBA) 新型总线结构。 S3C2410A 的显著特性是它的CPU 核心,是一个由 Advanced RISC Machines(ARM)有限公司设计的 16/32位 ARM920T RISC处理器。 ARM920T 实现了 MMU ,AMBA BUS 和 Harvard 高速缓冲体系结构。这一结构具有独立的16KB 指令 Cache和 16KB 数据 Cache ,每个都是由 8 字长的行(line)构成。通过提供一系列完整的系统外围设备,S3C2410A
5、大大减少了整个系统的成本,消除了为系统配置额外器件的需要。关于 S3C2410X和 S3C2410A的区别如下:(1) A/D 9 位升到 10 位;(2) MMC 的接口频率从 10M 升到 20M。其他功能一样!管脚兼容,封装一样。S3C2410A 可以替代 S3C2410X。S3C2410X01已经停产。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 20 页 - - - - - - - - - 2.7.1 内部结构S3C2410X 的内部结构框图如图2.7 所示。
6、Clock Cont. Interrupt Cont. JTAG Power Management ARM920T Core 200MHz LCD DMA LCD Cont. 4 Channel DMA Controller Bus Cont. Arbiter/Decoder USB HostCONT. NandFlash Cont. Memory Cont. AHB Bridge UARTS USB Devices SDI/MMC Watchdog Timer BUS Cont. SPI I2C I2S GPIO RTC ADC 图 2.7 S3C2410X 的内部结构名师资料总结 - -
7、-精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 20 页 - - - - - - - - - UTRPNMLKJHGFEDCBA1 2 3 4567891011 12131415 16 17BOTTOM VIEW图 2.8 S3C2410A 引脚定义图 (272FBGA 封装) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 20 页 - - - - - - - - -
8、表2.1 272-Pin FBGA封装的引脚分配 引脚 顺序引脚号引脚定义引脚号引脚定义引脚号引脚定义A1DATA19B14ADDR0/GPA0D10ADDR19/GPA4A2DATA18B15nSRASD11VDDiA3DATA16B16nBE1:nWBE1:DQM1D12ADDR10A4DATA15B17VSSiD13ADDR5A5DATA11C1DATA24D14ADDR1A6VDDMOPC2DATA23D15VSSMOPA7DATA6C3DATA21D16SCKEA8DATA1C4VDDiD17nGCS0A9ADDR21/GPA6C5DATA12E1DATA31A10ADDR16/GP
9、A1C6DATA7E2DATA29A11ADDR13C7DATA4E3DATA28A12VSSMOPC8VDDiE4DATA30A13ADDR6C9ADDR25/GPA10E5VDDMOPA14ADDR2C10VSSMOPE6VSSMOPA15VDDMOPC11ADDR14E7DATA3A16nBE3:nWBE3:DQM3C12ADDR7E8ADDR26/GPA11A17nBE0:nWBE0:DQM0C13ADDR3E9ADDR23/GPA8B1DATA22C14nSCASE10ADDR18/GPA3B2DATA20C15nBE2:nWBE2:DQM2E11VDDMOPB3DATA17C16n
10、OEE12ADDR11B4VDDMOPC17VDDiE13nWEB5DATA13D1DATA27E14nGCS3/GPA14B6DATA9D2DATA25E15nGCS1/GPA12B7DATA5D3VSSMOPE16nGCS2/GPA13B8DATA0D4DATA26E17nGCS4/GPA15B9ADDR24/GPA9D5DATA14F1TOUT1/GPB1B10ADDR17/GPA2D6DATA10F2TOUT0/GPB0B11ADDR12D7DATA2F3VSSMOPB12ADDR8D8VDDMOPF4TOUT2/GPB2B13ADDR4D9ADDR22/GPA7F5VSSOPF6VS
11、SiH4nXDREQ1/GPB8K13TXD2/nRTS1/GPH6F7DATA8H5nTRSTK14RXD1/GPH5F8VSSMOPH6TCKK15TXD0/GPH2F9VSSiH12CLE/GPA17K16TXD1/GPH4F10ADDR20/GPA5H13VSSOPK17RXD0/GPH3F11VSSiH14VDDMOPL1VD0/GPC8名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 20 页 - - - - - - - - - Table 2.1 272-Pi
12、n FBGA封装的引脚分配 引脚 顺序 (Continued)引脚号引脚定义引脚号引脚定义引脚号引脚定义F12VSSMOPH15VSSiL2VD1/GPC9F13SCLK0H16XTOpllL3LCDVF2/GPC7F14SCLK1H17XTIpllL4VD2/GPC10F15nGCS5/GPA16J1TDIL5VDDiarmF16nGCS6:nSCS0J2VCLK:LCD_HCLK/GPC1L6LCDVF1/GPC6F17nGCS7:nSCS1J3TMSL7IICSCL/GPE14G1nXBACK/GPB5J4LEND:STH/GPC0L9EINT11/nSS1/GPG3G2nXDACK1/
13、GPB7J5TDOL11VDDi_UPLLG3TOUT3/GPB3J6VLINE:HSYNC:CPV/GPC2L12nRTS0/GPH1G4TCLK0/GPB4J7VSSiarmL13UPLLCAPG5nXBREQ/GPB6J11EXTCLKL14nCTS0/GPH0G6VDDaliveJ12nRESETL15EINT6/GPF6G7VDDiarmJ13VDDiL16UEXTCLK/GPH8G9VSSMOPJ14VDDaliveL17EINT7/GPF7G11ADDR15J15PWRENM1VSSiarmG12ADDR9J16nRSTOUT/GPA21M2VD5/GPC13G13nWAITJ1
14、7nBATT_FLTM3VD3/GPC11G14ALE/GPA18K1VDDOPM4VD4/GPC12G15nFWE/GPA19K2VM:VDEN:TP/GPC4M5VSSiarmG16nFRE/GPA20K3VDDiarmM6VDDOPG17nFCE/GPA22K4VFRAME:VSYNC:STV/GPC3M7VDDiarmH1VSSiarmK5VSSOPM8IICSDA/GPE15H2nXDACK0/GPB9K6LCDVF0/GPC5M9VSSiarmH3nXDREQ0/GPB10K12RXD2/nCTS1/GPH7M10DP1/PDP0M11EINT23/nYPON/GPG15P8SPI
15、CLK0/GPE13T5I2SLRCK/GPE0M12RTCVDDP9EINT12/LCD_PWREN/GPG4T6SDCLK/GPE5M13VSSi_MPLLP10EINT18/GPG10T7SPIMISO0/GPE11M14EINT5/GPF5P11EINT20/XMON/GPG12T8EINT10/nSS0/GPG2M15EINT4/GPF4P12VSSOPT9VSSOPM16EINT2/GPF2P13DP0T10EINT17/GPG9M17EINT3/GPF3P14VDDi_MPLLT11EINT22/YMON/GPG14N1VD6/GPC14P15VDDA_ADCT12DN0N2VD
16、8/GPD0P16XTIrtcT13OM3N3VD7/GPC15P17MPLLCAPT14VSSA_ADCN4VD9/GPD1R1VDDiarmT15AIN1名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 20 页 - - - - - - - - - Table 2.1 272-Pin FBGA封装的引脚分配 引脚 顺序 (Continued)引脚号引脚定义引脚号引脚定义引脚号引脚定义N5VDDiarmR2VD14/GPD6T16AIN3N6CDCLK/GPE2R3VD1
17、7/GPD9T17AIN5N7SDDAT1/GPE8R4VD18/GPD10U1VD15/GPD7N8VSSiarmR5VSSOPU2VD19/GPD11N9VDDOPR6SDDAT0/GPE7U3VD21/GPD13N10VDDiarmR7SDDAT3/GPE10U4VSSiarmN11DN1/PDN0R8EINT8/GPG0U5I2SSDI/nSS0/GPE3N12VrefR9EINT14/SPIMOSI1/GPG6U6I2SSDO/I2SSDI/GPE4N13AIN7R10EINT15/SPICLK1/GPG7U7SPIMOSI0/GPE12N14EINT0/GPF0R11EINT19/
18、TCLK1/GPG11U8EINT9/GPG1N15VSSi_UPLLR12CLKOUT0/GPH9U9EINT13/SPIMISO1/GPG5N16VDDOPR13R/nBU10EINT16/GPG8N17EINT1/GPF1R14OM0U11EINT21/nXPON/GPG13P1VD10/GPD2R15AIN4U12CLKOUT1/GPH10P2VD12/GPD4R16AIN6U13NCONP3VD11/GPD3R17XTOrtcU14OM2P4VD23/nSS0/GPD15T1VD13/GPD5U15OM1P5I2SSCLK/GPE1T2VD16/GPD8U16AIN0P6SDCMD/
19、GPE6T3VD20/GPD12U17AIN2P7SDDAT2/GPE9T4VD22/nSS1/GPD142.7.2 S3C2410A 的启动S3C2410A支持从 NAND Flash 启动, NAND Flash 具有容量大,比 NOR Flash价格低等特点。 系统采用 NAND Flash 与 SDRAM 组合,可以获得非常高的性价比。 S3C4120X 具有三种启动方式,可通过 OM 1:0 管脚(OM0 为管脚 UR14, OM1为管脚 U15)进行选择。OM 1:0 = 00 从 Nand Flash 启动;OM 1:0 = 01 从 16位宽的 ROM 启动;OM 1:0 =
20、10 从 32位宽的 ROM 启动;OM 1:0 = 11 TEST 模式。2.7.3 存储器控制器先介绍一下存储器类型。 Flash ROM FLASH ROM 属于真正的单电压芯片,在使用上很类似EPROM,因此,有些书籍上便把FLASH ROM 作为 EPROM 的一种。事实上,二者还是有差别的。 FLASH ROM 在擦除时,也要执行专用的刷新程序,但是在名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 20 页 - - - - - - - - - 删除资料时,并非
21、以Byte 为基本单位,而是以Sector(又称 Block)为最小单位,Sector 的大小随厂商的不同而有所不同;只有在写入时,才以Byte 为最小单位写入;FLASH ROM 芯片的读和写操作都是在单电压下进行,不需跳线,只利用专用程序即可方便地修改其内容。DRAM ,动态随机存取存储器,需要不断的刷新(ms 级),才能保存数据。 而且是行列地址复用的,许多都有页模式。SRAM,静态的随机存取存储器, 加电情况下, 不需要刷新,数据不会丢失,而且,一般不是行列地址复用的。需要更大的硅片面积,成本较高。它的存取时间比 DRAM 要短得多,经常用于Cache 。SDRAM ,同步的 DRAM
22、 ,即数据的读写需要时钟来同步。因而能够工作在较高的时钟频率下。数据从存储元(memory cell) 被流水化地取出,最后突发式(burst)输出到总线。DRAM 和 SDRAM 由于实现工艺问题,容量较SRAM 大。但是读写速度不如 SRAM。存储器控制是通过相关的寄存器来实施的。寄存器分为控制寄存器和状态寄存器。可以给控制寄存器赋值以得到所需要的状态,而状态寄存器会根据情况自行产生变化。不要试图控制状态寄存器。存储器控制器是由若干寄存器组成。了解这些寄存器,就可以阅读或编写Bootloader 程序了。(1) 总线宽度和等待控制寄存器寄存器地址读/写功能复位后的值BWSCON 0 x48
23、000000 R/W 总线宽度和等待控制0 x000000 bank0 的数据总线 (nGCS0)必须首先设置成 16 位或 32 位的。 因为 bank0 通常作为引导 ROM 区(映射到地址 0 x0000-0000),在复位时,系统将检测 OM1:0上的逻辑电平,并依据这个电平来决定bank0 区存储器的总线宽度。BWSCON 寄存器描述了 bank1bank7数据总线宽度和等待控制。总线宽度可以是 8 位、16 位和 32 位。每个 bank_n(n=17)用该寄存器的 4 位来描述,分别是 UB/LB( 即高 8 位和低 8 位,有些存储器给出 2 个引脚可以进行选择 )、是否需要总
24、线访问等待周期、数据总线宽度的是多少(占用了 2位)。如果对每个 bank使能 WAIT 功能,当对某个 bank区进行访问时, nOE 的低电平有效时间就会在nWAIT 引脚的控制下延长。从tacc-1 时刻开始检测 nWAIT的状态。在采样到 nWAIT 为高电平后的下一个时钟, nOE 将恢复高电平。nWAIT对 nWE 信号的作用与对 nOE 信号相同。(2) 组控制寄存器 (nGCS0 nGCS7) 寄存器地址读/写功能复位后的值BANKCON0 0 x48000004 R/W BANK0 控制0 x0700 BANKCON1 0 x48000008 R/WBANK1 控制0 x07
25、00BANKCON2 0 x4800000c R/W BANK2 控制0 x0700 BANKCON3 0 x48000010 R/WBANK3 控制0 x0700BANKCON4 0 x48000014 R/W BANK4 控制0 x0700 BANKCON5 0 x48000018 R/WBANK5 控制0 x0700BANKCON6 0 x4800001c R/W BANK6 控制0 x18008 BANKCON7 0 x48000020 R/WBANK7 控制0 x18008名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - -
26、 名师精心整理 - - - - - - - 第 8 页,共 20 页 - - - - - - - - - 组控制寄存器 BANKCON05 均用 15 位来描述地址信号建立时间Tacs、片选建立时间 Tcos、访问周期 Tacc、片选保持时间 Tcoh、地址信号保持时间Tcah、页访问周期 Tacp和页访问模式 PMC 等。组控制寄存器 BANKCON67 除了用 15 位描述上述内容外,还增加了2 位来描述存储器类型MT。 当 MT=11 时, 表示存储器类型为SDRAM 时, 位3:2 表示 RAS(行地址使能 )到 CAS(列地址使能 )的延迟时间 Trcd。 位1:0 表示列地址位数(
27、可以是 8、9、10 位)。如此一来,总共8 个存储器bank 中,6 个是 ROM,SRAM 等类型存储器bank(05),剩下的 2 个可以作为 ROM,SRAM,SDRAM 等存储器 bank(67)。7 个存储器 bank (06)的起始地址是固定的。 最后一个 bank(7)的起始地址是可调整的。最后两个bank(67) 的大小是可编程的。未使用未使用SFR 区SFR 区未使用BootSRAM (4KBytes)SROM/SDRAM (nGCS7) SROM/SDRAM (nGCS7) SROM/SDRAM (nGCS6) SROM/SDRAM (nGCS6) SROM (nGCS5
28、) SROM (nGCS5) SROM (nGCS4) SROM (nGCS4) SROM (nGCS3) SROM (nGCS3) SROM (nGCS2) SROM (nGCS2) SROM (nGCS1) SROM (nGCS1) SROM (nGCS0)(3) REFRESH控制寄存器寄存器地址读/写功能复位后的值REFRESH 0 x48000024 R/W DRAM/SDRAM 刷新控制0 xAC0000 用来支持 SDRAM 的自刷新和掉电模式。(4) BANKSIZE 控制寄存器寄存器地址读/写功能复位后的值BANKSIZE 0 x48000028 R/W 可改变存储器大小0
29、BANKSIZE 的第 7 位 BURST_EN,突发传输模式使能。这种方式传输效率较高。0 xffff_ffff 0 x6000_0000 0 x4000_0000 0 x4800_0000 0 x4000_0fff 0 x3800_0000 0 x3000_0000 0 x2800_0000 0 x2000_0000 0 x1800_0000 0 x1000_0000 0 x0800_0000 0 x0000_0000 2/4/8/16/32/64/128MB 2/4/8/16/32/64/128MB 128MB 128MB 128MB 128MB 128MB Boot internal
30、/ SRAM(4KB)128MB 1GB 可访问空间不用 N/F 启动 用 N/F 启动 OM1:0=01,10 OM1:0=00 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 20 页 - - - - - - - - - BANKSIZE 的第 5 位 SCKE_EN,同步时钟使能。BANKSIZE 的第 4 位 SCLK_EN 有如下功能:0 = SCLK 总是激活;1 = SCLK 只有在访问期间 (推荐的 )激活。SCLK=1 时,只有在 SDRAM 访问周期期
31、间, SCLK 才使能,这样做是可以减少功耗。当 SDRAM 不被访问时, SCLK 变成低电平。BANKSIZE 的2:0,bank6/7的存贮空间分配。(5) SDRAM 模式控制寄存器寄存器地址读/写功能复位后的值MRSRB6 0 x4800002C R/W BANK6 的模式设置寄存器xxx MRSRB7 0 x48000030 R/W BANK7 的模式设置寄存器xxx 主要对突发 (burst)传输模式下的写进行设置:如。burst写的长度、类型和时间等。2.7.4 Nand Flash控制器当前, NOR flash 存储器的价格比较昂贵,而SDRAM 和 NAND flash
32、存储器的价格相对来说比较合适,这样就激发了一些用户产生希望从NAND flash 启动和引导系统,而在SDRAM 上执行主程序代码的想法。S3C2410A 恰好满足这一要求, 它可以实现从 NAND flash 上执行引导程序。为了支持 NAND flash 的系统引导, S3C2410A具备了一个内部 SRAM 缓冲器,叫做“Steppingstone ” 。当系统启动时, NAND flash 存储器的前面 4KByte 字节将被自动载入到 Steppingstone中,然后系统自动执行这些载入的引导代码。一般情况下,这4K 的引导代码需要将NAND flash 中程序内容拷贝到SDRAM
33、 中,在引导代码执行完毕后跳转到SDRAM 执行。使用 S3C2410A内部硬件 ECC 功能可以对 NAND flash 的数据进行有效性的检测。2.7.4.1 引导过程(1) 复位。(2) 如果自动导入模式使能, NAND flash 存储器的前面 4K 字节被自动拷贝到 Steppingstone 内部缓冲器中。(3) Steppingstone被映射到 nGCS0。(4) CPU 在 Steppingstone的 4-KB 内部缓冲器中开始执行引导代码。注意:在自动导入模式下,不进行ECC 检测。因此, NAND flash 的前 4KB 应确保不能有位错误 (一般 Nandflash
34、厂家都确保 )。工作过程如图 2.9 所示。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 20 页 - - - - - - - - - 2.7.4.2 NAND FLASH 模式配置(1) 通过 NFCONF 寄存器配置 NAND flash ;(2) 写 NAND flash 命令到 NFCMD 寄存器;(3) 写 NAND flash 地址到 NFADDR 寄存器;(4) 在读写数据时,通过NFSTAT 寄存器来获得 NAND flash 的状态信息。应该在读操作
35、前或写入之后检查R/nB 信号(准备好 /忙信号 )。寄存器地址读/写功能复位后的值NFCONF 0 x4E000000 R/W NAND flash 配置- NFCMD 0 x4E000004 R/W NAND flash 命令设置寄存器- NFADDR 0 x4E000008 R/W NAND flash 地址设置寄存器- NFDATA 0 x4E00000C R/W NAND flash 数据寄存器- NFSTAT 0 x4E000010 R NAND flash 操作状态- NFECC 0 x4E000014 R NAND flash ECC寄存器- 需要说明的是: NAND Flas
36、h 与 Nor Flash是有很大不同的。从接口来看:NOR flash 带有 SRAM 接口,有足够的地址引脚来寻址, 可以很容易地存取其内部的每一个字节。 NAND 器件使用复杂的 I/O 口来串行地存取数据, 各个产品或厂商的方法可能各不相同。8 个引脚用来传送控制、地址和数据信息。NAND 读和写操作采用 512 字节的块,这有点像硬盘管理此类操作, 很自然地,基于 NAND的存储器就可以取代硬盘或其他块设备。所有 flash 器件都受位交换现象的困扰。位真的改变了,就必须采用错误检测/错误更正 (EDC/ECC)算法。 位反转的问题更多见于NAND 闪存, 在使用 NAND闪存的时候
37、,应使用EDC/ECC 算法。用 NAND 存储多媒体信息时倒不是致命的。当然,如果用本地存储设备来存储操作系统、配置文件或其他敏感信息时,必须使用 EDC/ECC 系统以确保可靠性。2.7.5 时钟和电源管理时钟和电源由 3 部分组成:时钟控制、 USB 控制和电源控制。(1) 时钟控制S3C2410A 能够产生 3 种时钟信号,分别是FCLK、HCLK 、PCLK。FCLK应用于 CPU的时钟, HCLK 用于 AHB bus 各种外围设备, PCLK 用于 APB bus各种接口设备。其中FCLK 应用的就是 MPLL 的频率,不用设置。steppingstone (4KB Buffer
38、) 特殊功能寄存器Nand Flash 控制器Nand Flash 存储器用户程序操作CPU 操作(boot 代码 ) Nand Flash 模式自动启动模式图 2.9 Nand Flash 工作方式名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 20 页 - - - - - - - - - HCLK 和 PCLK 可以设置为 FCLK 或 FCLK/2 ,即通过设置相应得寄存器CLKDIVN 中的对应位 HDIVN 和 PDIVN( 即 CLKDIVN 的第 1位和第
39、 0 位)即可。CLKDIVN 控制寄存器寄存器地址读/写功能复位后的值CLKDIVN 0 x4C000014 R/W 时钟分频控制寄存器0 x00000000 S3C2410A 有 2 个锁相环,一个是MPLL( 用于 FCLK、HCLK 、PCLK);另一个是 UPLL(用于 USB)。时钟控制逻辑可以在无PLL 时使时钟变慢, 且可以通过软件将时钟连接或不连接到每一个外设的时钟上,这将减少电源的功耗。(2) USB 控制主要对 USB 的时钟参数进行配置。(3) 电源控制S3C2410A 通过 4 种电源管理模式有效地控制了功耗。这4 种模式分别是NORMAL 模式、 SLOW 模式、
40、IDLE 模式和 POWER-OFF 模式。NORMAL 模式:电源管理模块为CPU 及所有的外设提供时钟。在这种模式下,如果所有外设都工作的话, 电源的功耗将是最大的。 用户可以通过软件控制外设的运行。如:假如不需要一个定时器,则可以断开时钟的连接以减少功耗。SLOW 模式: 非锁相环模式。 与正常模式不同, SLOW 模式直接把一个外部的时钟作为 S3C2410 的 FCLK 而没有锁相环。在这种模式下,电源功耗仅取决于外部时钟的频率。因PLL 的功耗应除外。IDLE 模式 (空闲模式 ): 电源管理模块为所有的外设提供时钟而仅把时钟FCLK 与 CPU 核断开。该模式能够减少因CPU 核
41、所带来的电源功耗。任何对CPU 的中断请求将唤醒空闲模式。Power_OFF 模式: 电源管理模块断开内部电源。在这种模式下,除了唤醒逻辑外,CPU 和内部逻辑将不会产生电源功耗。激活Power_OFF 模式需要 2 个独立的电源。一个电源为唤醒逻辑供电。另一个为内部逻辑(包括 CPU)供电。且这两个电源均可被控制为断或开。在Power_OFF 模式下,第二个电源 (为 CPU和内部逻辑供电)将被关断。声明EINT15:0 或 RTC 报警中断请求可唤醒Power_OFF 模式。另外:需要指出的是, S3C2410A 提供了一个片内的实时时钟,可提供标准的日期和时间,并提供报警中断和滴答中断。
42、2.7.6 输入/输出口S3C2410A 有 117多功能 I/O 口,它们分别是: Port A (GPA): 23-输出口 Port B (GPB): 11-输入/输出口 Port C (GPC): 16-输入/输出口 Port D (GPD): 16-输入/输出口 Port E (GPE): 16-输入/输出口 Port F (GPF): 8-输入 /输出口 Port G (GPG): 16-输入/输出口 Port H (GPH): 11-输入/输出口每个口通过三个寄存器进行配置及读写数据。分别是:GPxCON、GPxDAT、GPyUP 名师资料总结 - - -精品资料欢迎下载 - -
43、- - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 20 页 - - - - - - - - - 其中 x 为 AH,y 为 BH。(1) 输入/输出口配置寄存器 (GPACON-GPHCON) 在 S3C2410A 中大多数输入 /输出口引脚是复用的,因此需要用输入/输出口控制寄存器来确定每个引脚的功能。如果 GPF0 GPF7 和 GPG0 GPG7 为 Power-OFF模式下的唤醒信号,那么这这些管脚必须被配置成中断模式。(2) 输入/输出口数据寄存器 (GPADAT-GPHDAT) 如果管脚被置成输出方式则可以向
44、相应的位写数据;如果管脚被置成输入方式则可以从相应的位读数据。(3) 输入/输出口上拉电阻使能寄存器(GPBUP-GPHUP) 该寄存器能够使能或禁止每个端口组是否需要上拉电阻。0 表示使能, 1 表示禁止。如果该端口上拉电阻使能, 则上拉电阻始终有效, 无论是否设置了管脚的功能。2.7.7 中断S3C2410A 的中断控制器能够接收来自56 个中断源的请求。这些中断源由内部的外设提供 (如 DMA 控制器、 UART 等)。中断的工作过程如图2.10 所示。中断异常处理模块总共由以下8 个寄存器构成: SRCPND (中断源悬挂寄存器 ) INTMOD ( 中断模式寄存器 ) INTMSK
45、( 中断屏蔽寄存器 ) PRIORITY ( 中断优先级寄存器 ) INTPND (中断悬挂寄存器 ) INTOFFSET (中断偏移寄存器 ) SUBSRCPND (子中断源悬挂寄存器 ) INTSUBMSK ( 子中断屏蔽寄存器 ) (1) SRCPND/ SUBSRCPND 寄存器地址读/写功能复位后的值SRCPND 0X4A000000 R/W 表示中断请求状态。0 表示没有请求中断; 1 表示已经请0 x00000000 处理器地址解码逻辑中断控制逻辑芯片外设控制器地址总线中断请求中断应答数据总线中断请求图 2.10 硬件中断的工作过程名师资料总结 - - -精品资料欢迎下载 - -
46、 - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 20 页 - - - - - - - - - 求中断。SUBSRCPND 0X4A000018 R/W 表示中断请求状态。0 表示没有请求中断; 1 表示已经请求中断。0 x00000000 这两个寄存器在功能上是相同的,它们是中断源引脚寄存器, 在一个中断异常处理流程中,中断信号传进中断异常处理模块后首先遇到的就是SRCPND/ SUBSRCPND,这两个寄存器的作用是用于标示出哪个中断请求被触发。SRCPND的有效位为 32,SUBSRCPND 的有效位为 11,它
47、们中的每一位分别代表一个中断源。SRCPND 为主中断源引脚寄存器, SUBSRCPND 为副中断源引脚寄存器。每个位的初始值皆为0。假设现在系统触发了TIMER0 中断,则 SRCPND的第 10bit 将被置 1,代表 TIMER0 中断被触发,该中断请求即将被处理(若该中断没有被屏蔽的话 )。SUBSRCPND 情况与 SRCPND 相同,这里就不多讲了。(2) INTMOD 寄存器地址读/写功能复位后的值INTMOD 0X4A000004 R/W 0 为 IRQ 模式 ,1 为 FRQ 模式0 x00000000 该寄存器有效位为32位,每一位与 SRCPND 中各位相对应, 它的作用
48、是指定该位相应的中断源处理模式(IRQ 还是 FIQ)。若某位为 0,则该位相对应的中断按IRQ 模式处理,为1 则以FIQ 模式进行处理,该寄存器初始化值为0 x00000000,即所有中断皆以IRQ 模式进行处理。(3) INTMSK/ INTSUBMSK 寄存器地址读/写功能复位后的值INTMSK 0X4A000008 R/W 确定相应的中断源是否被屏蔽。 1 是,0 否。0 xFFFFFFFF INTSUBMSK 0X4A00001C INTSUBMSK 确定相应的中断源是否被屏蔽。 1 是,0 否。0 x7FF INTMSK为主中断屏蔽寄存器,INTSUBMSK为副中断屏蔽寄存器。I
49、NTMSK有效位为32,INTSUBMSK有效位为11,这两个寄存器各个位与SRCPND 和 SUBSRCPND 分别对应。它们的作用是决定该位相应的中断请求是否被处理。若某位被设置为1,则该位相对应的中断产生后将被忽略(CPU 不处理该中断请求),设置为0 则对其进行处理。这两个寄存器初始化后的值是0 xFFFFFFFF 和 0 x7FF,既默认情况下所有的中断都是被屏蔽的。(4) PRIORITY 寄存器地址读/写功能复位后的值PRIORITY 0 x4A00000C R/W IRQ 优先级控制寄存器0 x7F 先弄清楚一点, 现在要讨论的是一个中断优先级的判断问题。为什么会有中断有先级的
50、问题呢?我们知道CPU 某个时刻只能对一个中断源进行中断处理,如果现在有 3 个中断同时发生了,那CPU 要按什么顺序处理这个3 个中断呢?这正是引入优先级判断的原因所在。通过优先级判断,CPU 可以按某种顺序逐个处理中断请求。 S3C2410的优先级判断分为两级。SRCPND 寄存器对应的32 个中断源总共被分为6 个组,每个组由一个ARBITER(05) 寄存器对其进行管理。中断必须先由所属组的ARBITER(05)进行第一次优先级判断 (第一级判断 )后再发往 ARBITER6 进行最终的判断 (第二级名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - -