ARM嵌入式系统原理与开发 工业和信息化普通高等教育“十二五”规划教材立项项目 教学课件 ppt 作者 王诚 梅霆 第4章b 基于S3C2410的硬件结构与接口编程

上传人:E**** 文档编号:89448939 上传时间:2019-05-25 格式:PPTX 页数:153 大小:2.46MB
返回 下载 相关 举报
ARM嵌入式系统原理与开发 工业和信息化普通高等教育“十二五”规划教材立项项目  教学课件 ppt 作者  王诚 梅霆 第4章b 基于S3C2410的硬件结构与接口编程_第1页
第1页 / 共153页
ARM嵌入式系统原理与开发 工业和信息化普通高等教育“十二五”规划教材立项项目  教学课件 ppt 作者  王诚 梅霆 第4章b 基于S3C2410的硬件结构与接口编程_第2页
第2页 / 共153页
ARM嵌入式系统原理与开发 工业和信息化普通高等教育“十二五”规划教材立项项目  教学课件 ppt 作者  王诚 梅霆 第4章b 基于S3C2410的硬件结构与接口编程_第3页
第3页 / 共153页
ARM嵌入式系统原理与开发 工业和信息化普通高等教育“十二五”规划教材立项项目  教学课件 ppt 作者  王诚 梅霆 第4章b 基于S3C2410的硬件结构与接口编程_第4页
第4页 / 共153页
ARM嵌入式系统原理与开发 工业和信息化普通高等教育“十二五”规划教材立项项目  教学课件 ppt 作者  王诚 梅霆 第4章b 基于S3C2410的硬件结构与接口编程_第5页
第5页 / 共153页
点击查看更多>>
资源描述

《ARM嵌入式系统原理与开发 工业和信息化普通高等教育“十二五”规划教材立项项目 教学课件 ppt 作者 王诚 梅霆 第4章b 基于S3C2410的硬件结构与接口编程》由会员分享,可在线阅读,更多相关《ARM嵌入式系统原理与开发 工业和信息化普通高等教育“十二五”规划教材立项项目 教学课件 ppt 作者 王诚 梅霆 第4章b 基于S3C2410的硬件结构与接口编程(153页珍藏版)》请在金锄头文库上搜索。

1、基于S3C2410的硬件结构与接口编程,基于S3C2410的硬件结构与接口编程,ARM自带的10位A/D转换器,基于S3C2410的硬件结构与接口编程,编程注意事项如下。 (1)A/D转换的数据可以通过中断或查询的方式来访问,如果是用中断方式,全部的转换时间(从A/D转换的开始到数据读出)要更长,因为中断服务程序返回和数据访问的原因。如果是查询方式则要检测ADCCON15(转换结束标志位)来确定从ADCDAT寄存器读取的数据是否是最新的转换数据。 (2)A/D转换开始的另一种方式是将ADCCON1置为1,这时只要有读转换数据的信号A/D转换就会同步开始。 (3)与AD相关的寄存器 A/D采样控

2、制寄存器ADCCON及其位描述(参见表4-77、表4-78),ARM自带的10位A/D转换器,基于S3C2410的硬件结构与接口编程,ARM自带的10位A/D转换器,基于S3C2410的硬件结构与接口编程,ARM自带的10位A/D转换器,基于S3C2410的硬件结构与接口编程,A/D转换器在扩展版的接法,基于S3C2410的硬件结构与接口编程,【例4-5】 调节A/D转换测试程序。 功能:调节A/D转换时的输入电位器,从串行口0输出A/D转换结果数值。 主参考代码如下: int main(void) int i,j; float d; ARMTargetInit(); /开发版初始化 init

3、_ADdevice(); /A/D初始化 Uart_Printf(0,“n“); While (1),A/D编程实例,基于S3C2410的硬件结构与接口编程, for(i=0; i=2; i+) /采样03路A/D值 for(j=0;j=1;j+) d=GetADresult(i)*3.3/1023; /数据采集,处理 Uart_Printf(0, “a%d=%ft“,i,d); hudelay(1000); /延时 Uart_Printf(0, “r“); return 0; ,A/D编程实例,主要的定义和函数参考代码如下: #define ADCCON_FLAG (0x115) #defi

4、ne ADCCON_ENABLE_START_BYREAD (0x11) #define rADCCON (*(volatile unsigned *)0x58000000) #define rADCDAT0 (*(volatile unsigned *)0x5800000C) #define PRSCVL (496) #define ADCCON_ENABLE_START (0x1) #define STDBM (0x02) #define PRSCEN (0x114) void ARMTargetInit(void); void init_ADdevice() /初始化AD rADCCON

5、=(PRSCVL|ADCCON_ENABLE_START|STDBM|PRSCEN); int GetADresult(int channel) /取采样值 rADCCON=ADCCON_ENABLE_START_BYREAD|(channel3)|PRSCEN|PRSCVL; hudelay(10); while(!(rADCCON /返回采样值 ,A/D编程实例,基于S3C2410的硬件结构与接口编程,S3C2410X中断控制器可以接收来自56个中断源的中断请求。这些中断源来自DMA、UART、I2C等这样的片内外围或片外外部引脚。其中24路为外部中断EINTn,外部中断中EINT4EIN

6、T7、EINT8EINT23是逻辑或的关系,它们共享一条中断请求线。 当从内部外设和外部中断请求引脚接收到多个中断请求时,经过中断仲裁后,中断控制器向ARM920T请求FIQ或者IRQ中断。 仲裁过程与硬件优先级有关,仲裁结果写入中断请求寄存器。中断请求寄存器帮助用户确定哪个中断产生。,ARM中断,基于S3C2410的硬件结构与接口编程,1中断控制器的运行 程序状态寄存器PSR中有F位和I位。如果PSR中的F位被置1,CPU不接收FIQ快速中断,同样如果I位PSR被置1,CPU不接收IRQ中断,因此中断控制器能够通过将PSR的F位、I位和相应的INTMSK中的位清零来接收中断。 2中断模式 A

7、RM920T有两种中断模式(INTMOD):FIQ和IRQ。在中断请求时所有的中断源要决定使用哪个模式。 3中断请求寄存器 S3C2410X有两种中断请求寄存器:源挂起寄存器(SRCPND)和中断挂起寄存器(INTPND)。这些请求挂起寄存器揭示了一个中断是否正在请求。当中断源请求中断服务时,SRCPND寄存器中的相应位肯定被置1,然而,中断仲裁之后则只有INTPND寄存器的某1位被自动置1。即使该中断被屏蔽,SRCPND寄存器中的相应位也会被置1,但是INTPND寄存器将不会改变。当INTPND寄存器的某位被置1,且I位或者F位清零时中断服务即开始。SRCPND和INTPND寄存器能够被读和

8、写,因此服务函数必须通过向SRCPND和INTPND中相应位写入“1”来清除中断请求条件。,ARM中断,基于S3C2410的硬件结构与接口编程,4中断屏蔽寄存器INTMSK 通过中断屏蔽寄存器的哪个屏蔽位被置1可以知道哪个中断被禁止。如果INTMSK的某个屏蔽位为0,此中断将会被正常服务。如果中断源产生了一个请求,SRCPND中的源请求位被置位,即使相应屏蔽位为1。 5中断源 表4-81所示为中断控制器支持的56个中断源。,ARM中断,基于S3C2410的硬件结构与接口编程,ARM中断,基于S3C2410的硬件结构与接口编程,ARM中断,基于S3C2410的硬件结构与接口编程,6中断优先级产生

9、模块 其中32个中断请求的优先级逻辑由7个仲裁位组成:6个一级仲裁位和一个二级仲裁位,如图4-21所示。 每个仲裁器可以处理6个中断请求,基于一位仲裁器模式(ARB_MODE)和两位选择信号(ARB_SEL)。 如果ARB_SEL位为00B,优先级顺序是:REQ0, REQ1, REQ2, REQ3, REQ4, and REQ5。 如果ARB_SEL位为01B,优先级顺序是:REQ0, REQ2, REQ3, REQ4, REQ1, and REQ5。 如果ARB_SEL位为10B,优先级顺序是:REQ0, REQ3, REQ4, REQ1, REQ2, and REQ5。 如果ARB_SE

10、L位为11B,优先级顺序是:REQ0, REQ4, REQ1, REQ2, REQ3, and REQ5。,ARM中断,基于S3C2410的硬件结构与接口编程,7中断控制器特殊寄存器SFR 中断控制器有5个控制寄存器:源挂起寄存器、中断模式寄存器、屏蔽寄存器、优先级寄存器和中断请求寄存器。 (1)源挂起寄存器(SRCPND)及其位描述(参见表4-82、表4-83) 该寄存器是32位的,每一位都同一个中断源相联系。如果中断源产生中断请求并等待中断服务,那么相应的位要设为1。相应的,该寄存器表明哪个中断源在等待请求被服务。注意,源挂起寄存器中的位被中断源自动置1不管屏蔽寄存器的值。另外,源挂起寄存

11、器也不被优先级寄存器和中断控制器影响。 在一个特定的中断源的中断服务程序中,SRCPND中的相应位应该被清除,这样才能正确得到下一次同一个中断源的中断。如果在中断服务程序返回时没有清除相应的位,中断控制器会认为该中断源又产生了一个中断。换句话说,如果SRCPND中有一位为1,中断控制器会始终认为一个有效的中断请求等待服务。,ARM中断,基于S3C2410的硬件结构与接口编程,ARM中断,基于S3C2410的硬件结构与接口编程,ARM中断,基于S3C2410的硬件结构与接口编程,ARM中断,基于S3C2410的硬件结构与接口编程,ARM中断,基于S3C2410的硬件结构与接口编程,ARM中断,基

12、于S3C2410的硬件结构与接口编程,ARM中断,基于S3C2410的硬件结构与接口编程,ARM中断,基于S3C2410的硬件结构与接口编程,(5)中断挂起寄存器(INTPND)(参见表4-88) 32位的该寄存器显示了那个没有被屏蔽的,等待被服务的中断请求是否拥有最高的优先级。既然INTPND排在优先级寄存器后面,显然只有一位能够被置1,并且该中断请求向CPU产生一个IRQ。在IRQ的中断服务程序中,可以读取该寄存器以确定哪一个中断源被服务。像SRCPND一样,需要在中断服务程序中将SRCPND清除后将INTPND相应位清除。,ARM中断,基于S3C2410的硬件结构与接口编程,ARM中断,

13、ARM嵌入式系统原理与开发,ARM中断,基于S3C2410的硬件结构与接口编程,ARM中断,基于S3C2410的硬件结构与接口编程,(7)子源挂起寄存器(SUBSRCPND)及其位描述(参见表4-91、表4-92),ARM中断,基于S3C2410的硬件结构与接口编程,ARM中断,基于S3C2410的硬件结构与接口编程,ARM中断,基于S3C2410的硬件结构与接口编程,ARM中断,基于S3C2410的硬件结构与接口编程,ARM920T有一个当前程序状态寄存器(CPSR)和5个保留程序状态寄存器(SPSR)用于异常处理。这些寄存器的功能如下。 保存最常用的ALU操作的有关信息; 控制中断的使能与

14、禁止; 设定处理器的工作模式。 寄存器的格式如下。 条件码标志:N、Z、C、V是条件码标志,它们可能会因为逻辑或算术运算的结果变化。有时候可能会被检测以决定某条指令是否执行。 控制位:低8位被称为控制位。当异常发生时,它的值可能会发生变化。如果处理器工作在特权模式下,它们的值也可被软件改变。 T位:它反应了工作的状态,该位为1表示工作在Thumb状态下,为0表示工作在Arm状态下。 I位、F位:这是中断禁止位,当被置1时,IRQ和FIQ就被禁止了。 模式位:它们决定了处理器的工作模式。并非任意一个组合就可以定义一个有效的工作模式。用户需要注意,如果非法的值写入这些位,处理器会进入一个无法恢复的

15、状态,只能复位解决。,ARM中断,基于S3C2410的硬件结构与接口编程,8异常中断的响应过程与返回过程 异常中断的响应过程如下。 在合适的Lr寄存器中保存下一条指令的地址。 将处理器当前状态寄存器(CPSR)的值保存到异常中断的SPSR中。 设置当前状态寄存器(CPSR)的值,包括设置CPSR相应位的值使处理器进入特定的处理器模式。按要求屏蔽中断,通常应该屏蔽IRQ中断,在FIQ中断时屏蔽FIQ中断。 处理程序计数器(PC)。将PC值设为相应的中断服务程序的地址,从而实现跳转以执行中断程序。 异常中断返回过程如下。 恢复状态寄存器。将保存在中断模式中的SPSR值赋予当前的状态寄存器。 将返回

16、地址复制到程序计数器。这样程序将返回到异常中断产生的下一条指令或出现问题的指令处执行。 清除中断禁止位,如果中断入口处关闭了中断。 9中断编程实例 中断编程实例可参考本章4.4.6节的DMA编程实例,该实例是利用中断的一个特例。,ARM中断,基于S3C2410的硬件结构与接口编程,液晶得名于其物理特性:它的分子晶体以液态而非固态存在。这些晶体分子的液体特性使得它具有两种非常有用的特点:如果让电流通过液晶层,这些分子将会以电流的流向方向进行排列,如果没有电流,它们将会彼此平行排列。如果提供了带有细小沟槽的外层,将液晶倒入后,液晶分子会顺着槽排列,并且内层与外层以同样的方式进行排列。液晶的第3个特性是很神奇的:液晶层能使光线发生扭转。液晶层表现的有些类似偏光器,这就意味着它能够过滤除了那些从特

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号