第9讲 S3C44B0硬件结构与关键技术分析_第1页
第9讲 S3C44B0硬件结构与关键技术分析_第2页
第9讲 S3C44B0硬件结构与关键技术分析_第3页
第9讲 S3C44B0硬件结构与关键技术分析_第4页
第9讲 S3C44B0硬件结构与关键技术分析_第5页
已阅读5页,还剩72页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1TM第第9讲讲 S3C44B0硬件结构与关键技术分析硬件结构与关键技术分析 S3C44B0是基于是基于ARM7TDMI架构的,架构的,S3C2410是基于是基于ARM920T架构的。当前,这两款芯片在嵌入架构的。当前,这两款芯片在嵌入式开发领域广泛应用。式开发领域广泛应用。 本章主要介绍本章主要介绍S3C44B0的硬件资源和整体架构,的硬件资源和整体架构,对其存储控制器、对其存储控制器、NAND Flash控制原理、时钟电源控制原理、时钟电源管理、通用管理、通用I/O接口和中断控制器作了详细介绍,并接口和中断控制器作了详细介绍,并通过一定的实例来加深读者对关键技术的理解。通过一定的实例来加深

2、读者对关键技术的理解。2TM2S3C44B0微控制器微控制器n带带8KB Cache的的ARM7TDMI核。核。n内置系统存储控制器(片选逻辑,支持内置系统存储控制器(片选逻辑,支持ROM、SRAM、Flash、FP/EDO/SDRAM)。)。nLCD控制器(支持控制器(支持256色的色的STN,集成,集成1个个DMA控制器)。控制器)。n2个通用个通用DMA控制器(控制器(ZDMA)/2个外围个外围DMA控制器(控制器(BDMA)。)。n2个带硬件握手的个带硬件握手的UART控制器(符合控制器(符合550标准)标准)/1个个SIO。n1个支持多主设备的个支持多主设备的I2C控制器。控制器。n

3、1个个IIS总线控制器。总线控制器。3TM3n5个个PWM定时器和定时器和1个内部定时器。个内部定时器。n看门狗定时器看门狗定时器Watch Dog。n71个通用可编程的个通用可编程的I/O口和口和8个外部中断源。个外部中断源。n具有具有8通道输入的通道输入的10位位ADC。n具有日历功能的实时时钟具有日历功能的实时时钟RTC。n功率控制模式:功率控制模式:Nomal、Slow、Idle和和Stop。n带锁相环带锁相环PLL的片内时钟发生器。的片内时钟发生器。4TM4S3C44B0内内部部结结构构5TM5看门狗定时器看门狗定时器n看门狗定时器(看门狗定时器(WDT,Watch Dog Time

4、r)实际上是一个)实际上是一个计数器,一般给看门狗一个大数,程序开始运行后看门狗开计数器,一般给看门狗一个大数,程序开始运行后看门狗开始倒计数。如果程序运行正常,过一段时间始倒计数。如果程序运行正常,过一段时间CPU应发出指令应发出指令让看门狗复位,重新开始倒计数,即让看门狗复位,重新开始倒计数,即“喂狗喂狗”,以防止复位,以防止复位信号的发生。如果看门狗减到信号的发生。如果看门狗减到0就认为程序没有正常工作,就认为程序没有正常工作,强制整个系统复位。强制整个系统复位。n看门狗的作用就是防止程序发生死循环,或者说程序跑飞。看门狗的作用就是防止程序发生死循环,或者说程序跑飞。nS3C44B0X在

5、使用嵌入式在使用嵌入式ICE来调试时,看门狗定时器不能来调试时,看门狗定时器不能被操作。因此,信号在调试模式下,即使看门狗的定时器定被操作。因此,信号在调试模式下,即使看门狗的定时器定时时间到了,也不会产生复位信号。时时间到了,也不会产生复位信号。6TM6n看门狗定时器对微控制器提供了独立的保护系统,当系统看门狗定时器对微控制器提供了独立的保护系统,当系统出现故障时,在可选的超时周期之后,看门狗将以出现故障时,在可选的超时周期之后,看门狗将以RESET信号作出响应。即当信号作出响应。即当WatchDog在你的程序陷入死循环的在你的程序陷入死循环的时候,可以让系统复位而不用整个系统断电,从而保护

6、你时候,可以让系统复位而不用整个系统断电,从而保护你的硬件电路。的硬件电路。n汽车电子系统需要监控电路监测故障容限或安全性。看门汽车电子系统需要监控电路监测故障容限或安全性。看门狗定时器可理想满足这类需求,通过对微控制器正常工作狗定时器可理想满足这类需求,通过对微控制器正常工作条件下产生的周期脉冲进行检测,侦测电路或条件下产生的周期脉冲进行检测,侦测电路或IC的失效状的失效状态,一旦发生故障可立即切换到备份态,一旦发生故障可立即切换到备份/冗余系统。冗余系统。 看门狗定时器看门狗定时器7TM7PWM脉宽调制脉宽调制nPWM是是“Pulse Width Modulation”即脉冲宽度调制,简即

7、脉冲宽度调制,简称脉宽调制。称脉宽调制。 n脉宽调制脉宽调制PWM一种是利用微处理器的数字输出对模拟电路一种是利用微处理器的数字输出对模拟电路进行控制的非常有效的技术,广泛应用在从测量、通信到功进行控制的非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。率控制与变换的许多领域中。 nPWM是一种对模拟信号电平进行数字编码的方法。通过高是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体分辨率计数器的使用,方波的占空比被调制用来对一个具体的模拟信号的电平进行编码。的模拟信号的电平进行编码。n其中:占空比和调制频率是两个主要参数其中:

8、占空比和调制频率是两个主要参数8TM8PWM脉宽调制脉宽调制n占空比占空比是指在一个周期内,接通信号与周期的比值是指在一个周期内,接通信号与周期的比值105070n占空比为占空比为10%的的PWM输出,即在信号周期中,输出,即在信号周期中,10%的时间的时间通通(高电平高电平),其余,其余90%的时间断。的时间断。n另外两个显示的分别是占空比为另外两个显示的分别是占空比为50%和和70%的的PWM输出。输出。n这三种这三种PWM输出的编码分别是强度为满度值的输出的编码分别是强度为满度值的10%及及50%和和70%的的3种不同模拟信号值。种不同模拟信号值。9TM9PWM脉宽调制脉宽调制灯灯 开关

9、开关n调制频率调制频率是周期的倒数。是周期的倒数。n例如图中使用例如图中使用9V电池给一个白炽灯泡供电。如果将连接电池电池给一个白炽灯泡供电。如果将连接电池和灯泡的开关闭合和灯泡的开关闭合50ms,则灯泡在这段时间中将得到,则灯泡在这段时间中将得到9V供供电,如果在下一个电,如果在下一个50ms中将开关断开,灯泡得到的供电将中将开关断开,灯泡得到的供电将为为0V。如果在。如果在1s内将此过程重复内将此过程重复10次,灯泡将会点亮。次,灯泡将会点亮。n因占空比是因占空比是50%,因此像连接到了一个,因此像连接到了一个4.5V电池电池(9V的的50%) n因因T=1s/10次次=0.1s,因此调制

10、频率为,因此调制频率为1/T=1/0.1s=10Hz10TM10PWM定时器定时器nS3C44B0的的PWM定时器具有定时器具有6个个16位定时器,每个位定时器,每个定时器可以按照中断模式或定时器可以按照中断模式或DMA模式工作。模式工作。n定时器定时器0,1,2,3和和4具有具有PWM输出功能。输出功能。n定时器定时器5是一个内部定时器不具有对外输出口线。是一个内部定时器不具有对外输出口线。n定时器定时器0具有死区发生器,通常用于大电流设备应用。用具有死区发生器,通常用于大电流设备应用。用于在开关设备的断开和另一个开关设备的闭合之间插入于在开关设备的断开和另一个开关设备的闭合之间插入一个时间

11、缺口。这个时间缺口阻止两个开关设备处于同一个时间缺口。这个时间缺口阻止两个开关设备处于同时闭合的状态,即使是非常短的时间。时闭合的状态,即使是非常短的时间。n例如:通过例如:通过PWM控制器控制蜂鸣器的发生控制器控制蜂鸣器的发生11TM11S3C44B0存储控制器存储控制器n存储器是嵌入式系统的重要组成部分,在嵌存储器是嵌入式系统的重要组成部分,在嵌入式开发中,扩展存储器是重要的一步。入式开发中,扩展存储器是重要的一步。nS3C44B0和和S3C2410的存储器控制器提供访的存储器控制器提供访问外部存储器所需要的存储器控制信号,便问外部存储器所需要的存储器控制信号,便于扩展外部存储器。于扩展外

12、部存储器。12TM12S3C44B0存储控制与地址空间存储控制与地址空间n存储格式小存储格式小/大端选择大端选择13TM13nS3C44B0存储空间共有存储空间共有8个个Bank,每个,每个Bank为为32MB,总共,总共256MB。n8个个Bank中:中:nBank0 Bank5这这6个为个为ROM、SRAM等类型的等类型的Bank,起始地址都是固定的。起始地址都是固定的。nBank6、 Bank7这两个可做这两个可做SROM、SDRAM、FP/EDO/SDRAM等类型的等类型的Bank;nBank6、 Bank7这两个的大小是可选的,因此,这两个的大小是可选的,因此,Bank6的起始地址固

13、定,但的起始地址固定,但Bank7的起始地址是可变的;但的起始地址是可变的;但Bank6和和Bank7必须有相同的存储器大小。必须有相同的存储器大小。 (见教材表(见教材表9-2) 14TM14 地地址址空空间间分分布布 专用功能专用功能寄存器寄存器Bank6Bank7大小可选大小可选15TM15 S3C44B0的的Bank6/7地址分布地址分布 16TM16S3C44B0存储位宽控制存储位宽控制n S3C44B0存储器数据宽度选择存储器数据宽度选择 S3C44B0的的Bank0数据总线(数据总线(nGCS0)宽度可配置成)宽度可配置成8/16/32bit;又因;又因为为BANK0是是ROM区

14、的引导(映射到区的引导(映射到0 x0000 0000),总线宽度需在),总线宽度需在ROM访问前确定,在复位时根据访问前确定,在复位时根据OM1:0的逻辑电平来确定。的逻辑电平来确定。17TM17nS3C44B0存储器接口存储器接口18TM18ROM接口接口n 4片片8位位ROM存储器接口存储器接口 u 读读/写写32位宽度数据时位宽度数据时 CPU 存储器存储器地址线地址线 A2 A019TM19n16位位ROM存储器接口存储器接口u 读读/写写16位宽度数据时位宽度数据时 CPU 存储器存储器地址线地址线 A1 A020TM20nSDRAM接口接口地址线连与地址线连与ROM同理同理u 读

15、读/写写16位宽度数据时位宽度数据时 CPU 存储器存储器地址线地址线 A1 A021TM21u 读读/写写32位宽度数据时位宽度数据时 CPU 存储器存储器地址线地址线 A2 A022TM22S3C44B0存储控制寄存器存储控制寄存器 n总线宽度和等待控制寄存器(总线宽度和等待控制寄存器(BWSCON)详细信息见教材详细信息见教材ARM嵌入式系统结构与编程嵌入式系统结构与编程 227页表页表9-623TM23n总线控制寄存器总线控制寄存器(1)()(BANKCONn:nGCS0-nGCS5):):总线控制寄存器总线控制寄存器BANKCON0 BANKCON5位位详细信息见教材详细信息见教材2

16、27页表页表9-724TM24(2)()(BANKCONn :nGCS6-nGCS7):):总线控制寄存器总线控制寄存器BANKCON6BANKCON7位位 详细信息见教材详细信息见教材229页表页表9-825TM25n刷新控制寄存器(刷新控制寄存器(REFRESH)n刷新控制寄存器刷新控制寄存器REFRESH详细信息见详细信息见230页表页表9-926TM26nBANKSIZE 寄存器(寄存器(BANKSIZE)BANKSIZE 寄存器位详细信息见教材寄存器位详细信息见教材231页表页表9-1027TM27SDRAM接口电路设计接口电路设计nSDRAM的行地址线和列地址线是分时复用的,也就是

17、地址的行地址线和列地址线是分时复用的,也就是地址线要分两次送出,先送行地址线,再送列地址线。线要分两次送出,先送行地址线,再送列地址线。 nHY57V561620是现代公司生产的容量为是现代公司生产的容量为32MB(4M x 16bit x 4Bank)的)的SDRAM 28TM28HY57V561620内部原理内部原理 29TM29jnS3C2410与与HY57V561620的接口电路详细信息见教材的接口电路详细信息见教材233页表页表9-1230TM30S3C44B0存储器初始化实例存储器初始化实例例:使用一条例:使用一条STM指令完成指令完成13个控制寄存器的初始化。个控制寄存器的初始化

18、。 当系统复位后,通过当系统复位后,通过LDMIA和和STMIA命令来设置命令来设置BWSCON, BANCON0-7,REFRESH,BANKSIZ,MRSRB6/7这这13个控制寄存器。个控制寄存器。LDR R0, =SMRDATALDMIA R0, R1-R13 ;将;将R0R0+13*4的字数据读到的字数据读到R1R13中,中, ;即下面;即下面DATA区的区的13个字数据读到个字数据读到R1R13中中LDR R0, =0 x01C80000 ; BWSCON 寄存器地址寄存器地址STMIA R0, R1-R13 ;将;将R1R13中的字数据存入中的字数据存入R0R0+13*4中中 ;

19、即将;即将DATA区的字数据存入区的字数据存入13个控制寄存器个控制寄存器SMRDATA DATADCD 0 x22221210 ; BWSCONDCD 0 x00000600 ; GCS031TM31DCD 0 x00000700; GCS1DCD 0 x00000700 ; GCS2DCD 0 x00000700; GCS3DCD 0 x00000700; GCS4DCD 0 x00000700 ; GCS5DCD 0 x0001002A ; GCS6, EDO DRAM (Trcd=3) ; (Tcas=2, Tcp=1, CAN=10bit)DCD 0 x0001002A ; GCS7

20、, EDO DRAMDCD 0 x00960000 + 953 ; Refresh(REFEN=1, TREFMD=0) ; (Trp=3, Trc=5, Tchr=3)DCD 0 x0 ; Bank Size, 32MB/32MBDCD 0 x20 ; MRSR 6(CL=2)DCD 0 x20 ; MRSR 7(CL=2)32TM32S3C44B0时钟电源管理时钟电源管理nS3C44B0的电源管理有五种模式:的电源管理有五种模式:n正常模式正常模式n低速模式低速模式n空闲模式空闲模式n停止模式停止模式nLCD的的SL空闲模式空闲模式 nS3C44B0的时钟生成器能够为的时钟生成器能够为CP

21、U和外设产生和外设产生所需的时钟信号,且可以控制每个外设提供或所需的时钟信号,且可以控制每个外设提供或断开时钟,以减少电源消耗。断开时钟,以减少电源消耗。33TM33S3C44B0时钟管理时钟管理 S3C44B0的时钟发生器模块的时钟发生器模块主时钟源来自外部晶振或外部时钟。主时钟源来自外部晶振或外部时钟。连接到外部的连接到外部的晶体振荡器晶体振荡器PLL锁相环,把低频率震荡输出锁相环,把低频率震荡输出作为它的输入,然后产生满足作为它的输入,然后产生满足S3C44B0需求的高频率时钟。需求的高频率时钟。34TM342时钟源的选择:时钟源的选择:n控制模式引脚(控制模式引脚(OM3和和OM2)与

22、)与S3C44B0时钟源选择的结时钟源选择的结合关系如表合关系如表9-18所示。所示。OM3:2状态通过查阅状态通过查阅OM3和和OM2引引脚在脚在nRESET上升沿时的值内部锁存的。上升沿时的值内部锁存的。35TM35n五种电源管理模式分别是:五种电源管理模式分别是:n正常模式:用来支持正常模式:用来支持CPU和所有外设的时钟。且用户可以选择断开和所有外设的时钟。且用户可以选择断开外设的的电源管理来减少消耗。外设的的电源管理来减少消耗。n低速模式:不使用低速模式:不使用PLL锁相环直接种用外部时钟作为主时钟。电源锁相环直接种用外部时钟作为主时钟。电源消耗只依赖于外部时钟频率。消耗只依赖于外部

23、时钟频率。n空闲模式:只断开空闲模式:只断开CPU内核的时钟,但为所有外设提供时钟。内核的时钟,但为所有外设提供时钟。CPU内核的电源消耗被减少了,任何中断请求可使内核的电源消耗被减少了,任何中断请求可使CPU从空闲模式被唤从空闲模式被唤醒。醒。n停止模式:通过禁止停止模式:通过禁止PLL锁相环来冻结锁相环来冻结CPU和所有外设的时钟。和所有外设的时钟。CPU的外部中断可使之从停止模式被唤醒。的外部中断可使之从停止模式被唤醒。nLCD的的SL空闲模式空闲模式 :使得:使得LCD控制器得以工作。除了控制器得以工作。除了LCD控制器外控制器外的的CPU及外设的时钟被停止,此模式电源消耗比空闲模式小

24、。及外设的时钟被停止,此模式电源消耗比空闲模式小。36TM36上电复位上电复位n晶振开始振荡数毫秒后,当晶振开始振荡数毫秒后,当S3C44B0OSC时钟稳时钟稳定后定后nRESET得到释放,得到释放,PLL开始根据默认的开始根据默认的PLL配置进行运作。配置进行运作。nPLL在上电复位后变得不稳定,所以在上电复位后变得不稳定,所以Fin代替代替Fpllo在在S/W更新更新PLLCON的配置前直接反馈到的配置前直接反馈到Fout。n用户在复位后想使用用户在复位后想使用PLLCON寄存器的默认值,也寄存器的默认值,也需要通过需要通过S/W写入相同的值给写入相同的值给PLLCON寄存器。寄存器。 3

25、7TM37上电复位时钟锁定上电复位时钟锁定 38TM38n在正常模式下的操作,如果用户希望通过写在正常模式下的操作,如果用户希望通过写PMS值值的方法改变频率,的方法改变频率,PLL锁定时间会自动写入。在锁锁定时间会自动写入。在锁定时间里,时钟不支持内部模块。定时间里,时钟不支持内部模块。 39TM39S3C44B0时钟与电源管理专用寄存器时钟与电源管理专用寄存器n锁时计数寄存器锁时计数寄存器LOCKTIME 、PLL配置寄配置寄存器存器 、时钟控制寄存器(、时钟控制寄存器(CLKCON) 、低、低速时钟控制寄存器(速时钟控制寄存器(CLKSLOW) 详细描述详细描述信息信息见教材第见教材第2

26、46-250页页40TM40S3C44B0通用通用 I/O端口端口nS3C44B0有有71个多功能输入个多功能输入/输出引脚。输出引脚。有如下有如下7个端口个端口n一个一个10位输入位输入/输出端口(端口输出端口(端口A)n一个一个11位输入位输入/输出端口(端口输出端口(端口B)n一个一个16位输入位输入/输出端口(端口输出端口(端口C)n两个两个8位输入位输入/输出端口(端口输出端口(端口D 和和G)n两个两个9位输入位输入/输出端口(端口输出端口(端口E 和和F)41TM41端口控制描述端口控制描述1端口配置寄存器端口配置寄存器n在在S3C44B0中,大多数引脚是复合式的。所以,需要决定

27、中,大多数引脚是复合式的。所以,需要决定每个引脚所选择的功能。端口控制寄存器决定每个引脚的每个引脚所选择的功能。端口控制寄存器决定每个引脚的功能。功能。n在在S3C44B0中,如果中,如果PG0-PG7用于在掉电模式下的唤醒用于在掉电模式下的唤醒信号,这些端口需要配置成中断模式。信号,这些端口需要配置成中断模式。2端口数据寄存器端口数据寄存器n如果这些端口被配置成输出端口,数据可以从相应的位如果这些端口被配置成输出端口,数据可以从相应的位被写入。被写入。n如果这些端口被配置成输入端口,数据可以从相应的位如果这些端口被配置成输入端口,数据可以从相应的位读出。读出。42TM423端口上拉寄存器端口

28、上拉寄存器n端口上拉寄存器控制每个端口组的上拉电阻使能端口上拉寄存器控制每个端口组的上拉电阻使能/禁止。禁止。当相应的位置当相应的位置0,引脚的上拉电阻被使能。为,引脚的上拉电阻被使能。为1时,上拉时,上拉电阻被禁止。电阻被禁止。4外部中断控制寄存器外部中断控制寄存器nS3C44B0 的的8个外部中断通过多种信号方法被请求。个外部中断通过多种信号方法被请求。 nEXTINT寄存器可以设置外部中断触发方式。寄存器可以设置外部中断触发方式。43TM43通用通用I/O接口设计实例接口设计实例例:例:LED与蜂鸣器接口电与蜂鸣器接口电路路S3C44B0的端口的端口A的的第第0、1、2、3管脚分管脚分别

29、与别与LED相连,端口相连,端口E的第的第0管脚用来控制管脚用来控制蜂鸣器。蜂鸣器。 n根据根据LED的硬件电路图,实现的硬件电路图,实现LED的循环闪烁:的循环闪烁:LED1亮亮 延时延时,LED4灭灭- LED2亮亮 延时,延时,LED1灭灭- LED3亮亮 延时,延时,LED2灭灭- LED4亮亮 延时,延时,LED3灭灭- 蜂鸣器开蜂鸣器开 延时,蜂延时,蜂鸣器关鸣器关,如此无限循环,实现,如此无限循环,实现LED霓虹灯式的循环闪烁霓虹灯式的循环闪烁 。44TM44/*文件名:文件名:GPIO_Test.c版本号:版本号:V1.0创建日期创建日期:2008-7-1作者作者:FE2000

30、硬件描述硬件描述:S3C44B0 GPA0GPA3分别接分别接LED1LED4,GPE0控制蜂鸣器。控制蜂鸣器。主要函数描述主要函数描述:函数函数LED1_delayLED4_delay用于实现用于实现LED1LED4亮灭控制并延时。亮灭控制并延时。修改日志:修改日志:*/*定义定义S3C44B0内部端口寄存器地址内部端口寄存器地址*/#define rPCONA(*(volatile unsigned *)0 x1d20000) /定义端口定义端口A配置寄存器配置寄存器rPCONA#define rPDATA(*(volatile unsigned *)0 x1d20004) /定义端口定义

31、端口A数据寄存器数据寄存器rPDATA#define rPCONE(*(volatile unsigned *)0 x1d20028) /定义端口定义端口E配置寄存器配置寄存器rPCONE#define rPDATE(*(volatile unsigned *)0 x1d2002c) /定义端口定义端口E数据寄存器数据寄存器rPDATE#define rPUPE(*(volatile unsigned *)0 x1d20030) /定义端口定义端口E上拉电阻寄存器上拉电阻寄存器rPUPE/*S3C44B0端口配置端口配置*/rPCONA = rPCONA & 0 xFFFFFFF0 /GPA0

32、GPA3设置为输出设置为输出rPCONE = rPCONE & 0 xFFFFFFFD rPCONE = rPCONE | 0 xFFFFFFFD /GPE0设置为输出设置为输出具体代码见教材具体代码见教材P27627945TM45/*函数名称函数名称:Delay功能描述功能描述:Delay函数实现软件延时函数实现软件延时.入口参数入口参数:Time延时参数延时参数出口参数出口参数:无无*/Void Delay(int Time) unsigned int I; for(i=0;i LED2亮亮 延时,延时,LED1灭灭- LED3亮亮 延时,延时,LED2灭灭- LED4亮亮 延时,延时,L

33、ED3灭灭- 蜂鸣器开蜂鸣器开 延时,蜂鸣器关延时,蜂鸣器关入口参数入口参数:无无出口参数出口参数:无无*/void Main() while(1) LED1_Delay(1);LED4_Delay(0);LED2_Delay(1);LED1_Delay(0);LED3_Delay(1);LED2_Delay(0);LED4_Delay(1);LED3_Delay(0);Beep_Delay(1);Beep_Delay(0);49TM49程序中:程序中:/*定义定义S3C44B0内部端口寄存器地址内部端口寄存器地址*/#define rPCONA(*(volatile unsigned *)0

34、 x1d20000) /定义端口定义端口A配置寄存器配置寄存器rPCONA#define rPDATA(*(volatile unsigned *)0 x1d20004) /定义端口定义端口A数据寄存器数据寄存器rPDATA#define rPCONE(*(volatile unsigned *)0 x1d20028) /定义端口定义端口E配置寄存器配置寄存器rPCONE#define rPDATE(*(volatile unsigned *)0 x1d2002c) /定义端口定义端口E数据寄存器数据寄存器rPDATE#define rPUPE(*(volatile unsigned *)0

35、x1d20030) /定义端口定义端口E上拉电阻寄存器上拉电阻寄存器rPUPE/*S3C44B0端口配置端口配置*/rPCONA = rPCONA & 0 xFFFFFFF0 /PA0PA3设置为输出设置为输出rPCONE = rPCONE & 0 xFFFFFFFD rPCONE = rPCONE | 0 xFFFFFFFD /PE0设置为输出设置为输出端口端口A(控制寄存器(控制寄存器PCONA,数据寄存器数据寄存器PDATA)各寄存器的具体位信息见教材各寄存器的具体位信息见教材P251表表9-2450TM5051TM51程序中:程序中:/*定义定义S3C44B0内部端口寄存器地址内部端口

36、寄存器地址*/#define rPCONA(*(volatile unsigned *)0 x1d20000) /定义端口定义端口A配置寄存器配置寄存器rPCONA#define rPDATA(*(volatile unsigned *)0 x1d20004) /定义端口定义端口A数据寄存器数据寄存器rPDATA#define rPCONE(*(volatile unsigned *)0 x1d20028) /定义端口定义端口E配置寄存器配置寄存器rPCONE#define rPDATE(*(volatile unsigned *)0 x1d2002c) /定义端口定义端口E数据寄存器数据寄存

37、器rPDATE#define rPUPE(*(volatile unsigned *)0 x1d20030) /定义端口定义端口E上拉电阻寄存器上拉电阻寄存器rPUPE/*S3C44B0端口配置端口配置*/rPCONA = rPCONA & 0 xFFFFFFF0 /PA0PA3设置为输出设置为输出rPCONE = rPCONE & 0 xFFFFFFFD rPCONE = rPCONE | 0 xFFFFFFFD /PE0设置为输出设置为输出端口端口E(控制寄存器(控制寄存器PCONE,数据寄存器数据寄存器PDATE,上拉电阻使能寄存器上拉电阻使能寄存器PUPE)各寄存器的具体位信息见教材各

38、寄存器的具体位信息见教材P255页表页表9-28寄存器寄存器 地址地址 读读/写写 描述描述 复位值复位值 PCONE 0 x01D20028 R/W 配置端口 E 的引脚 0 x00 PDATE 0 x01D2002C R/W 端口 E 的数据寄存器 未定义 PUPE 0 x01D20030 R/W 端口 E 上拉电阻使能寄存器 0 x0052TM52S3C44B0中断机制中断机制n中断是中断是CPU在程序运行过程中,被内部或外在程序运行过程中,被内部或外部的事件所打断,转去执行一段预先安排好部的事件所打断,转去执行一段预先安排好的中断服务程序,中断服务程序执行完毕后的中断服务程序,中断服务

39、程序执行完毕后,又返回原来的断点,继续执行原来的程序,又返回原来的断点,继续执行原来的程序。nS3C44B0内部集成了中断控制器,能够管理内部集成了中断控制器,能够管理30个中断源。个中断源。53TM53n26个独立的外部中断个独立的外部中断n4个通过或门共用一根个通过或门共用一根中断请求线的外部中断中断请求线的外部中断4/5/6/7n2个通过或门共用一根个通过或门共用一根中断请求线的中断请求线的UART错错误中断误中断0/1说明:对于共用中断请说明:对于共用中断请求线的中断发生时,需求线的中断发生时,需要在中断服务程序中进要在中断服务程序中进行查询以进一步确定中行查询以进一步确定中断源。断源

40、。54TM54中断优先级产生模块中断优先级产生模块n由由1个主单元和个主单元和4个从单元组成个从单元组成n主单元管理主单元管理4个从单元和个从单元和2个中断源个中断源n从单元有从单元有4个可编程优先级中断源个可编程优先级中断源sGN和和2个固定优先级中断源个固定优先级中断源sGKn;2个固定优先级中断源在个固定优先级中断源在6个中断源中个中断源中优先级最低优先级最低55TM55中断优先级约定中断优先级约定n从优先级单元中:从优先级单元中:sGA、sGB、sGC、sGD的优先级的优先级sGKAsGKB。其。其中,中,sGA、sGB、sGC、sGD的优先的优先级通过编程配置。级通过编程配置。n主优

41、先级单元中:主优先级单元中:mGA、mGB、mGC、mGD的优先级的优先级mGKAmGKB。其中,。其中,mGA、mGB、mGC、mGD的优先级通过编程配置。的优先级通过编程配置。n所以所以mGKA和和mGKB在其他中断源中在其他中断源中优先级最低。优先级最低。56TM56n非向量中断方式非向量中断方式n中断源产生中断后,从中断源产生中断后,从0 x18 处取指执行处取指执行n向量中断方式向量中断方式n中断源产生中断后,跳转到中断源产生中断后,跳转到0 x18 处,并忽略处,并忽略0 x18 处指令,由处理器处指令,由处理器识别中断后自动产生一个跳转到中断源向量地址的分支指令,并填充识别中断后

42、自动产生一个跳转到中断源向量地址的分支指令,并填充总线执行总线上新的指令;在各中断源对应的中断向量地址中,存放总线执行总线上新的指令;在各中断源对应的中断向量地址中,存放着跳转到相应中断服务程序的指令代码。着跳转到相应中断服务程序的指令代码。0 x18中断服务入口0 x18中断服务入口S3C44B0的的IRQ中断分为向量中断与非向量中断中断分为向量中断与非向量中断57TM57向量中断与非向量中断处理过程向量中断与非向量中断处理过程IRQs 中断中断非向量中断非向量中断INTCON V= 1向量中断向量中断INTCON V= 0中断服务入口地址表中断服务入口地址表地址映射中断控制器地址映射中断控

43、制器读取读取I_ISPR寄存器寄存器并计算偏移量并计算偏移量26个中断源个中断源EINT0/1/2 PowerDownEINT0/1/2 PowerDown 中断初始化时要对中断控制寄存器中断初始化时要对中断控制寄存器INTCON进行配置,设置进行配置,设置V来选择向量来选择向量模式还是非向量模式。模式还是非向量模式。58TM58S3C44B0 中断控制特殊功能寄存器中断控制特殊功能寄存器n使用使用S3C44B0中断控制时,要能够完成这些功能的中断控制时,要能够完成这些功能的寄存器的初始化。主要寄存器有:寄存器的初始化。主要寄存器有:n中断控制寄存器中断控制寄存器INTCONn中断挂起寄存器中

44、断挂起寄存器INTPNDn中断模式寄存器中断模式寄存器INTMODn中断屏蔽寄存器中断屏蔽寄存器INTMSKnIRQ向量模式相关寄存器向量模式相关寄存器 59TM59中断控制寄存器中断控制寄存器INTCON见见P284页表页表9-51 60TM60中断挂起寄存器中断挂起寄存器 INTPND见见P284页表页表9-52所示所示n每一个中断源对应着一位。只有未被屏蔽且具有每一个中断源对应着一位。只有未被屏蔽且具有最高优先级、在源挂起寄存器中等待处理的中断最高优先级、在源挂起寄存器中等待处理的中断请求,其对应的中断挂起位被置请求,其对应的中断挂起位被置1。nS3C44B0在中断服务程序中必须加入对在

45、中断服务程序中必须加入对I_ISPC和和F_ISPC写写1的操作来清除挂起条件,准备接收下的操作来清除挂起条件,准备接收下一次中断。一次中断。61TM61中断模式寄存器中断模式寄存器INTMOD见见P286表表9-53nARM处理器的中断模式有两种:处理器的中断模式有两种:IRQ模式和模式和FIQ模式。模式。n每一个中断源对应着一位。当中断源的模式位设每一个中断源对应着一位。当中断源的模式位设置为置为0时,中断会按时,中断会按IRQ模式来处理;当模式位设模式来处理;当模式位设置为置为1时,对应的中断会按时,对应的中断会按FIQ模式来处理。模式来处理。n某一时刻只能有一个中断源在某一时刻只能有一

46、个中断源在FIQ模式下处理,模式下处理,即即INTMOD寄存器只有一位可以设置为寄存器只有一位可以设置为1。62TM62中断屏蔽寄存器中断屏蔽寄存器INTMSK见见P288表表9-54n每一个中断源对应着一位;每一个中断源对应着一位;n如果某位设置为如果某位设置为1,则该位所对应的中断请求不会,则该位所对应的中断请求不会被处理;被处理;n如果某位设置为如果某位设置为0,则该位所对应的中断请求才会,则该位所对应的中断请求才会被处理;被处理;n如果全局屏蔽位被设置为如果全局屏蔽位被设置为1,则所有的中断请求都,则所有的中断请求都不会被处理。不会被处理。 63TM63S3C44B0向量模式相关寄存器

47、向量模式相关寄存器见见P290表表9-55n对对S3C44B0中的优先级产生模块的设置通过对寄中的优先级产生模块的设置通过对寄存器存器I_PSLV、I_PMST、I_CSLV、C_CMST的设的设置来完成。置来完成。n如果几个中断源同时发出中断请求,则可通过读如果几个中断源同时发出中断请求,则可通过读I_ISPR寄存器可获知前具有最高优先级的中断源寄存器可获知前具有最高优先级的中断源。64TM647个外部中断的中断控制寄存器个外部中断的中断控制寄存器EXTINT见见P258页表页表9-3265TM657个外部中断的中断挂起寄存器个外部中断的中断挂起寄存器EXINTPND见见P259页表页表9-

48、33n外部中断请求(外部中断请求(4,5,6,7)是)是或或关系,中共享相同的中断请求线,提供一关系,中共享相同的中断请求线,提供一个中断信号给中断控制器。个中断信号给中断控制器。n当每个外部中断请求中断,相应位将会被设置成当每个外部中断请求中断,相应位将会被设置成1。n中断服务例程必须在清除外部挂起条件中断服务例程必须在清除外部挂起条件EXINTPND后清除中断挂起条件后清除中断挂起条件INTPND66TM66S3C44B0中断接口实例中断接口实例 部分函数代码见部分函数代码见P298n图为一个图为一个3*3的的 矩阵键盘,矩阵键盘,3条行线接条行线接GPC02,3条列线接条列线接GPC35

49、,键盘中断,键盘中断从从EXINT6输入。输入。n行线由行线由CPU送出低电平送出低电平n当按键当按键K19中任一按键按中任一按键按下时,行线和列线短路,列下时,行线和列线短路,列线被拉低,经过与门后,线被拉低,经过与门后,EXINT6产生低电平向产生低电平向CPU发出中断请求。发出中断请求。n当当CPU受理中断后,进入受理中断后,进入相应中断服务程序,进行按相应中断服务程序,进行按键判断和键值计算。键判断和键值计算。67TM67基于基于ARMARM的嵌入式硬件平台体系结构的嵌入式硬件平台体系结构UP-NET ARM3000UP-NET ARM300068TM68nS3C44B0XS3C44B

50、0X把外部复位信号,也作为一个中断来处理。在系统复把外部复位信号,也作为一个中断来处理。在系统复位的时候位的时候, ,程序(程序(PCPC)指针被设置成)指针被设置成0 0,使程序跳转到,使程序跳转到0 x000000000 x00000000开始运行。此空间对应的是开始运行。此空间对应的是Bank0Bank0。因为在系统的。因为在系统的1MB1MB的线性的线性FlashFlash和处理器的和处理器的Bank0Bank0相连接。在线性相连接。在线性FlashFlash里存储里存储的是供系统的初始化的程序。此程序负责配置处理器的结构、的是供系统的初始化的程序。此程序负责配置处理器的结构、工作模式

51、以及自动检测嵌入式控制器的各个硬件是否工作正常工作模式以及自动检测嵌入式控制器的各个硬件是否工作正常。此程序负责把存储在。此程序负责把存储在16MB16MB的非线性处理器里面的的非线性处理器里面的system.binsystem.bin文件复制到文件复制到0 xc5f00000 xc5f0000地址(此地址是系统地址(此地址是系统8MB8MB的的SDRAMSDRAM的首地的首地址址) )。引导程序把程序(。引导程序把程序(PCPC)指针指向)指针指向0 xc0000000 xc000000地址,系统开地址,系统开始运行。始运行。nsystem.binsystem.bin是嵌入式操作系统引导的执

52、行文件。编译以后的操是嵌入式操作系统引导的执行文件。编译以后的操作系统和应用程序就是这个文件。作系统和应用程序就是这个文件。 69TM69S3C44B0XS3C44B0X存储系统的特征存储系统的特征 l支持数据存储的大支持数据存储的大/ /小端选择小端选择( (通过外部引脚进行选择通过外部引脚进行选择) )l地址空间:具有地址空间:具有8 8个存储体,每个存储体可达个存储体,每个存储体可达32Mb32Mb,总共可,总共可达达256Mb256Mb。l 对所有存储体的访问大小均可进行改变(对所有存储体的访问大小均可进行改变(8 8位位1616位位3232位位)l8 8个存储体中,个存储体中,Ban

53、k0Bank0Bank5Bank5可支持可支持ROMROM、SRAMSRAM;Bank6Bank6、Bank7Bank7可支持可支持ROMROM、SRAMSRAM和和FPFPEDOEDOSDRAMSDRAM等。等。l7 7个存储体的起始地址固定,个存储体的起始地址固定,1 1个存储体的起始地址可变。个存储体的起始地址可变。 70TM70典型系统中存储体的分配情典型系统中存储体的分配情况况存储体存储体与存储体的接口与存储体的接口Bank0Bank0BIOS 512KBIOS 512K2Flash2FlashBank1Bank116M Flash 16M Flash 硬盘硬盘Bank2Bank2U

54、SBUSB接口接口Bank3Bank3LCDLCD显示模块显示模块Bank4Bank4保留保留Bank5Bank5保留保留Bank6Bank6系统内存系统内存SDRAMSDRAMBank7Bank7保留保留71TM71复位后的复位后的S3C44B0XS3C44B0X的存储器映射表的存储器映射表 2MB/4MB/8MB/16MB/32MB 2MB/4MB/8MB/16MB/32MB 32MB 32MB 32MB 32MB 32MB 28MB 256MB SA27:0 可存取 区域 参 见 表 7-1 特殊功能 寄存器(4MB) SROM (nGCS1) SROM (nGCS1) SROM (nG

55、CS2) SROM (nGCS3) SROM (nGCS4) SROM (nGCS5) SROM/DRAM/SDRAM (nGCS6) SROM/DRAM/SDRAM (Ngcs7) 0 x1000_0000 0 x0e00_0000 0 x0c00_0000 0 x0e00_0000 0 x0800_0000 0 x0600_0000 0 x0400_0000 0 x0200_0000 0 x01c0_0000 0 x0000_0000 72TM72n使用使用Bank0Bank0上的两片上的两片512Kb512Kb2 2来放置系统来放置系统BIOSBIOS,系统上电,系统上电以后,以后,PC

56、PC指针自动指向指针自动指向Bank0Bank0的第一个单元,开始进行系的第一个单元,开始进行系统自举。系统自举完成以后,便从硬盘中将系统文件和用统自举。系统自举完成以后,便从硬盘中将系统文件和用户应用程序复制到户应用程序复制到SDRAMSDRAM内存中执行。内存中执行。nBank1Bank1上接上接16M16M非线性非线性FlashFlash,当做系统硬盘使用,可以构,当做系统硬盘使用,可以构造文件系统,存放海量数据。造文件系统,存放海量数据。n用用SDRAMSDRAM当作系统内存,只有当作系统内存,只有Bank6/Bank7Bank6/Bank7能支持能支持SDRAMSDRAM,所以将所以

57、将SDRAMSDRAM接在接在Bank6Bank6上。如果同时使用上。如果同时使用Bank6/Bank7Bank6/Bank7,则要求连接相同容量的存储,而且其地址空间在物理上是则要求连接相同容量的存储,而且其地址空间在物理上是连续的。连续的。73TM73nBank0Bank0:系统的启动:系统的启动ROMROM(Flash RomFlash Rom)。在系统复位的)。在系统复位的时候,处理器的时候,处理器的PCPC(程序计数器)指针指向(程序计数器)指针指向0 x00 x0地址。地址。在在Bank0Bank0的起始地址的程序,就是系统的初始化程序。的起始地址的程序,就是系统的初始化程序。此程

58、序的主要任务是:此程序的主要任务是:1 1、管理处理器的中断服务程序、管理处理器的中断服务程序n处理器的中断是从处理器的中断是从0 x00 x0地址开始,引导地址开始,引导ROMROM负责把这一负责把这一部分的中断映射到另一个区域,以便系统处理。具体部分的中断映射到另一个区域,以便系统处理。具体的做法,可以参考的做法,可以参考44binit.s44binit.s里面的代码。(这部分代里面的代码。(这部分代码是三星主页可以提供,它把系统的中断,映射到了码是三星主页可以提供,它把系统的中断,映射到了不同的指针所指向的地址空间(主要就是系统不同的指针所指向的地址空间(主要就是系统RAMRAM的空的空间)。间)。74TM742 2、初始化硬件平台,配置其他的、初始化硬件平台,配置其他的BankBanknS3C44B0XS3C44B0X的的Bank0Bank0是通过外部的一个管脚提供的上是通过外部的一个管脚提供的上拉、下拉电阻来配置的。主要包括:数据位数(拉、下拉电阻来配置的。主要包括:数据位数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论