您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 第9章S3C44B0_2410硬件结构与关键技术分析(2)
1TM1配套教材:《ARM嵌入式系统结构与编程》,邱铁编著,清华大学出版社,2009,3ARM嵌入式系统结构与编程2TM第9章S3C44B0/S3C2410硬件结构与关键技术分析S3C44B0是基于ARM7TDMI架构的,S3C2410是基于ARM920T架构的。当前,这两款芯片在嵌入式开发领域广泛应用。本章主要介绍S3C44B0和S3C2410的硬件资源和整体架构,对其存储控制器、NANDFlash控制原理、时钟电源管理、通用I/O接口和中断控制器作了详细介绍,并通过一定的实例来加深读者对关键技术的理解。3TM3内容提要9.1处理器简介9.2S3C44B0/S3C2410存储控制器9.3S3C2410NANDFlash控制器9.4S3C44B0/S3C2410时钟电源管理9.5S3C44B0/S3C2410通用I/O端口9.6S3C44B0/S3C2410中断机制4TM49.4S3C44B0/S3C2410时钟电源管理S3C44B0的电源管理有五种模式:正常模式,低速模式,空闲模式,停止模式和LCD的SL空闲模式。S3C2410的电源管理模块有四种活动模式:正常模式,低速模式,休眠模式和断电模式。5TM59.4.1S3C44B0/S3C2410时钟管理1.时钟结构:S3C44B0的时钟发生器模块6TM6S3C2410的时钟发生器模块见教材《ARM嵌入式系统结构与编程》第241页9-207TM72.时钟源的选择:控制模式引脚(OM3和OM2)与S3C44B0/S3C2410时钟源选择的结合关系如表9-18所示。OM[3:2]状态通过查阅OM3和OM2引脚在nRESET上升沿时的值内部锁存的。8TM8S3C44B0模式OM[3:2]时钟源晶体驱动PLL开始状态Fout00晶振时钟使能使能(1)PLL输出(1)01外部时钟禁止使能(1)PLL输出(1)其他(10,11)测试模式S3C2410模式OM[3:2]MPLL状态UPLL状态主时钟源USB时钟源00OnOn晶振晶振01OnOn晶振外部时钟10OnOn外部时钟晶振11OnOn外部时钟外部时钟9TM93.PLL(锁相环)内置时钟发生器的S3C44B0PLL/S3C2410MPLL是一个以频率与相位输入信号的基准的同步输出信号的电路。10TM104.上电复位:晶振开始振荡数毫秒后,当S3C44B0OSC(S3C2410:XTlpll)时钟稳定后nRESET得到释放,PLL开始根据默认的PLL配置进行运作。PLL在上电复位后变得不稳定,所以Fin代替Fpllo(S3C2410:Mpll)在S/W(S3C2410:软件)更新PLLCON的配置前直接反馈到Fout。用户在复位后想使用PLLCON寄存器的默认值,也需要通过S/W(S3C2410:软件)写入相同的值给PLLCON寄存器。11TM11上电复位时钟锁定12TM12在正常模式下的操作,如果用户希望通过写PMS值的方法改变频率,PLL锁定时间会自动写入。在锁定时间里,时钟不支持内部模块。13TM139.4.2S3C44B0/S3C2410电源管理S3C44B0/S3C2410电源管理模块通过控制系统时钟,实现减少系统的电源功耗。S3C44B0的方法与PLL,时钟控制逻辑,外设时钟控制以及唤醒信号相关。14TM1415TM15S3C44B0电源管理状态机16TM16S3C2410电源管理状态机17TM179.4.3S3C44B0/S3C2410时钟与电源管理专用寄存器锁时计数寄存器LOCKTIME、PLL配置寄存器、时钟控制寄存器(CLKCON)、低速时钟控制寄存器(CLKSLOW)详细描述信息见教材《ARM嵌入式系统结构与编程》第246-250页18TM189.5S3C44B0/S3C2410通用I/O端口S3C44B0有71个多功能输入/输出引脚。有如下7个端口:两个9位输入/输出端口(端口E和F)两个8位输入/输出端口(端口D和G)一个16位输入/输出端口(端口C)一个10位输入/输出端口(端口A)一个11位输入/输出端口(端口B)19TM19S3C2410有117个多功能输入/输出引脚。有如下8个端口:端口A(GPA):23位输出端口端口B(GPB):11位输入/输出端口端口C(GPC):16位输入/输出端口端口D(GPD):16位输入/输出端口端口E(GPE):16位输入/输出端口端口F(GPF):8位输入/输出端口端口G(GPG):16位输入/输出端口端口H(GPH):11位输入/输出端口20TM209.5.1端口控制描述1.端口配置寄存器在S3C44B0和S3C2410中,大多数引脚是复合式的。所以,需要决定每个引脚所选择的功能。端口控制寄存器决定每个引脚的功能。在S3C44B0中,如果PG0-PG7用于在掉电模式下的唤醒信号,这些端口需要配置成中断模式。在S3C2410中,如果GPF0-GPF7和GPG0-GPG7用于断电模式下的唤醒信号,这些端口必须配置能中断模式。21TM212.端口数据寄存器如果这些端口被配置成输出端口,数据可以从相应的位被写入。如果端口被配置成输入端口,数据可以从相应的位读出。22TM223.端口上拉寄存器端口上拉寄存器控制每个端口组的上拉电阻使能/禁止。当相应的位置0,引脚的上拉电阻被使能。为1时,上拉电阻被禁止。23TM234.外部中断控制寄存器S3C44B0的8个外部中断与S3C2410的24个外部中断通过多种信号方法被请求。24TM249.5.2端口控制寄存器1.S3C44B0端口寄存器(1)端口A寄存器(PCONA,PDATA)寄存器地址读/写描述复位值PCONA0x01D20000R/W配置端口A的引脚0x3ffPDATA0x01D20004R/W端口A的数据寄存器未定义25TM25PCONA位描述PA9[9]0=输出1=ADDR24PA8[8]0=输出1=ADDR23PA7[7]0=输出1=ADDR22PA6[6]0=输出1=ADDR21PA5[5]0=输出1=ADDR20PA4[4]0=输出1=ADDR19PA3[3]0=输出1=ADDR18PA2[2]0=输出1=ADDR17PA1[1]0=输出1=ADDR16PA0[0]0=输出1=ADDR026TM26PDATA位描述PA[9:0][9:0]当端口被配置成输出端口时,引脚状态与对应的位相同当端口被配置成功能引脚时,将会读到未定义的值27TM27端口C控制寄存器(PCONC,PDATC,PUPC)寄存器地址读/写描述复位值PCONC0x01D20010R/W配置端口C的引脚0xaaaaaaaaPDATC0x01D20014R/W端口C的数据寄存器未定义PUPC0x01D20018R/W端口C上拉电阻使能寄存器0x028TM2829TM29PDATC位描述PC[15:0][15:0]当端口被配置成输入端口,相应的位为引脚状态当端口被配置成输出端口时,引脚状态与对应的位相同当端口被配置成功能引脚时,将会读到未定义的值PUPC位描述PC[15:0][15:0]0:上拉电阻与相应的引脚连接使能1:上拉电阻被禁止30TM30专用上拉电阻控制寄存器(SPUCR)在停止/SL空闲模式,数据总线(D[31:0]或者D[15:0])在高阻态。但是,因为IO引脚的特性,数据总线上拉电阻被启用,以减少在停止/SL空闲模式上的电源消耗。D[31:16]引脚上拉电阻可以被PUPC寄存器控制。D[15:0]引脚上拉电阻可以通过SPUCR寄存器进行控制。在停止模式,存储器控制信号可以被选为高阻态或原状态,以防止通过设置SPUCR寄存器的HZ@STOP域而导致存储器故障。31TM31寄存器地址读/写描述复位值SPUCR0x01D2004CR/W专用上拉寄存器[2:0]0x4SPUCRG位描述HZ@STOP[2]0=引脚的先前状态1=HZ@stopSPUCR1[1]0=DATA[15:8]端口上拉电阻使能1=DATA[15:8]端口上拉电阻禁止SPUCR0[0]0=DATA[7:0]端口上拉电阻使能1=DATA[7:0]端口上拉电阻禁止32TM32外部中断控制寄存器(EXTINT)寄存器地址读/写描述复位值EXTINT0x01D20050R/W外部中断控制寄存器0x00000033TM3334TM34外部中断挂起寄存器(EXINTPND)外部中断请求(4,5,6,7)是‘或’关系,提供一个中断信号给中断控制器。ENIT4,ENIT5,ENIT6和ENIT7在中断控制器中共享相同的中断请求线(EINT4/5/6/7)。35TM35寄存器地址读/写描述复位值EXTINTPND0x01D20054R/W外部中断挂起寄存器0x00EXTINTPND位描述EXTINTPND3[3]如果EINT7被激活,EXINTPND3位被置1,并且INTPND[21]被置1EXTINTPND2[2]如果EINT6被激活,EXINTPND3位被置1,并且INTPND[21]被置1EXTINTPND1[1]如果EINT5被激活,EXINTPND2位被置1,并且INTPND[21]被置1EXTINTPND0[0]如果EINT4被激活,EXINTPND0位被置1,并且INTPND[21]被置136TM362.S3C2410端口寄存器端口B寄存器(GPBCON,GPBDAT,GPBUP)寄存器地址读/写描述复位值GPBCON0x56000010R/W配置端口B的引脚0x0GPBDAT0x56000014R/W端口B的数据寄存器未定义GPBUP0x56000018R/W端口B上拉禁止寄存器0x0保留0x5600001C–保留未定义37TM3738TM38GPBDAT位描述GPB[10:0][10:0]当端口被配置成输入端口,从外部源来的数据可以被读到相应引脚当端口被配置成输出端口,写入寄存器的数据可以被送到相应引脚当端口被配置为功能端口,读取该端口数据为乱码GPBUP位描述GPB[10:0][10:0]0:上拉电阻与相应的引脚连接使能1:上拉电阻被禁止39TM39S3C44B0和S3C2410其它端口寄存器详细信息见教材《ARM嵌入式系统结构与编程》第九章的9.5.2节的说明40TM409.5.3通用I/O接口设计实例LED与蜂鸣器接口电路S3C44B0的端口A的第0、1、2、3管脚分别与LED相连,端口E的第0管脚用来控制蜂鸣器。41TM4142TM42控制编程实现根据LED的硬件电路图,实现LED的循环闪烁:{LED1亮延时,LED4灭}-{LED2亮延时,LED1灭}-{LED3亮延时,LED2灭}-{LED4亮延时,LED3灭}-{蜂鸣器开延时,蜂鸣器关},如此无限循环,实现LED霓虹灯式的循环闪烁。43TM439.6S3C44B0/S3C2410中断机制中断是CPU在程序运行过程中,被内部或外部的事件所打断,转去执行一段预先安排好的中断服务程序,中断服务程序执行完毕后,又返回原来的断点,继续执行原来的程序。S3C44B0/S3C2410内部集成了中断控制器,能够管理多个中断源。44TM449.6.1S3C44B0中断控制器1.中断源S3C44B0中断控制器可以管理30个中断源45TM4546TM462.中断优先级产生模块47TM4748TM48非向量中断方式中断源产生中断后,从0x18处取指执行向量中断方式中断源产生中断后,跳转到0x18处,但由处理器识别中断后自动填充总线,并忽略0x18处指令,执行总线上新的指令0x18中断服务入口0x18中断服务入口S3C44B0向量中断与非向量中断49TM49启动---中断响应IRQs中断非向量中断INTCONV=1向量中断INTCONV=0中断服务入口地址表地址映射中断控制器读取I_ISPR寄存器计算偏移(R8)26个中断源EINT0/1/2……PowerDownEINT0/1
本文标题:第9章S3C44B0_2410硬件结构与关键技术分析(2)
链接地址:https://www.777doc.com/doc-445073 .html