




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2第第5 5章章 基于基于S3C2410S3C2410的系统硬件设计的系统硬件设计主要内容S3C2410简介简介 I/O口口中断中断DMAA/D接口接口UART触摸屏触摸屏LCDUSB设备的数据收发设备的数据收发音频录放音频录放键盘和键盘和LED控制控制3第第5 5章章 基于基于S3C2410S3C2410的系统硬件设计的系统硬件设计 5.2.1 5.2.1 S3C2410AS3C2410A的的I/OI/O口工作原理口工作原理 S3C2410AS3C2410A共有共有117117个多功能复用输入输出口(个多功能复用输入输出口(I/OI/O口),分为口),分为8 8组组PORT APORT AP
2、ORT HPORT H。PORT APORT A除了作为功能口外,它只作为输出口使用;除了作为功能口外,它只作为输出口使用;其余的其余的PORT BPORT BPORT HPORT H都可以作为输入输出口使用。都可以作为输入输出口使用。8 8组组I/OI/O口按照口按照其位数的不同,可分为:其位数的不同,可分为:1 1个个2323位的输出口(位的输出口(PORT APORT A)2 2个个1111位的位的I/OI/O口(口(PORT B PORT B 和和PORT HPORT H)4 4个个1616位的位的I/OI/O口(口(PORT CPORT C、PORT DPORT D、PORT EPO
3、RT E、PORT GPORT G)1 1个个8 8位的位的I/OI/O口(口(PORT FPORT F) 与配置与配置I/OI/O口相关的寄存器包括:口相关的寄存器包括:端口控制寄存器(端口控制寄存器(GPACONGPHCONGPACONGPHCON)端口数据寄存器(端口数据寄存器(GPADATGPHDATGPADATGPHDAT)端口上拉寄存器(端口上拉寄存器(GPBUPGPHUPGPBUPGPHUP)杂项控制寄存器杂项控制寄存器外部中断控制寄存器(外部中断控制寄存器(EXTINTNEXTINTN) 4第第5 5章章 基于基于S3C2410S3C2410的系统硬件设计的系统硬件设计每个引脚
4、的功能必须在启动主程序前进行定义。如果一个引脚没有复每个引脚的功能必须在启动主程序前进行定义。如果一个引脚没有复用,那么它可以配置为用,那么它可以配置为I/OI/O口。口。PORTA PORTA 除了用作功能口,只能用作输出口使用;除了用作功能口,只能用作输出口使用;其余的其余的PORT BPORT B到到PORT H PORT H 都可以用作都可以用作I/OI/O口使用。口使用。5第第5 5章章 基于基于S3C2410S3C2410的系统硬件设计的系统硬件设计I/O子系统:I/O设备、相关的设备驱动程序和I/O子系统组成嵌入式I/O子系统。I/O子系统的目标是对RTOS和应用程序员隐藏设备特
5、定的信息,并且对系统的外围I/O设备提供一个统一的访问方法。设备驱动程序I/O设备硬件RTOSI/O子系统应用程序中断处理程序6第第5 5章章 基于基于S3C2410S3C2410的系统硬件设计的系统硬件设计从系统软件开发者角度看,I/O操作意味着与设备的通信、对设备编程初始化和请示执行设备与系统之间的实际数据传输以及操作完成后通知请求者。系统软件工程师必须理解设备的物理特性,如寄存器的定义和设备的访问方法。从RTOS的角度看,I/O操作意味着对I/O请求定位正确的设备,对设备定位正确的设备驱动程序,并解决对设备驱动程序的请求。有时要求RTOS保证对设备的同步访问。RTOS必须进行抽象,对应用
6、程序员隐含设备的特性。从应用程序员角度看,目标是找到一个简单、统一和精练的方法与系统中出现的所有类型的设备通信。 7第第5 5章章 基于基于S3C2410S3C2410的系统硬件设计的系统硬件设计1)I/O接口独立编址端口映射方式 这种编址方式是将存储器地址空间和I/O接口地址空间分开设置,互不影响。设有专门的输入指令(IN)和输出指令(OUT)来完成I/O操作。I/O设备10X00000XFFFFI/O设备2I/O地址空间0X0000系统地址空间0XFFFF主要优点:主要优点:内存地址空间与内存地址空间与I/OI/O接口地址空间分开,互不影响,译码电接口地址空间分开,互不影响,译码电路较简单
7、,并设有专门的路较简单,并设有专门的I/OI/O指令,所以编程序易于区分,且执行时间指令,所以编程序易于区分,且执行时间短,快速性好。短,快速性好。缺点:缺点:只用只用I/OI/O指令访问指令访问I/OI/O端口,功能有限且要采用专用端口,功能有限且要采用专用I/OI/O周期和专周期和专用用I/OI/O控制线,使微处理器复杂化。控制线,使微处理器复杂化。8第第5 5章章 基于基于S3C2410S3C2410的系统硬件设计的系统硬件设计1)2)I/O接口与存储器统一编址方式内存映射 这种编址方式不区分存储器地址空间和I/O接口地址空间,把所有的I/O接口的端口都当作是存储器的一个单元对待,每个接
8、口芯片都安排一个或几个与存储器统一编号的地址号。也不设专门的输入/输出指令,所有传送和访问存储器的指令都可用来对I/O接口操作。I/O设备10X00000XFFFFI/O设备2保留I/O地址空间I/O设备硬件系统地址空间应用使用地址空间应用使用地址空间主要优点:主要优点:访问内存的指令都可用于访问内存的指令都可用于I/OI/O操作,数据处理功能强;同时操作,数据处理功能强;同时I/OI/O接口可与存储器部分共用译码和控制电路。接口可与存储器部分共用译码和控制电路。缺点:缺点:一是一是I/OI/O接口要占用存储器地址空间的一部分;二是因不用专门接口要占用存储器地址空间的一部分;二是因不用专门的的
9、I/OI/O指令,程序中较难区分指令,程序中较难区分I/OI/O操作。操作。 9第第5 5章章 基于基于S3C2410S3C2410的系统硬件设计的系统硬件设计DMA I/ODMA允许设备直接访问内存而不用包含处理器,在数据传输操作开始之前,处理器设置DMA控制器,在数据传输期间,读写操作均不通过处理器。DMA传输速度取决于I/O设备的传输速度、内存设备的速度和DMA控制器的速度。通过指定源地址、目的内存地址和传输到DMA控制器长度,处理器建立传输操作。CPUDMA控制器主存储器I/O设备10第第5 5章章 基于基于S3C2410S3C2410的系统硬件设计的系统硬件设计 根据设备如何处理与系
10、统之间的数据传输方法可将设备分为字符模式设备和块模式设备 字符模式设备:允许非结构的数据传输。数据传输典型地采用串行的形式,每次一个字节;字符设备通常是简单的设备,如串口、键盘等;当系统到设备的传输速率高于设备的处理速率时,设备驱动程序开设缓冲区,缓存这些数据; 块模式设备:每次传输一个数据块。采用硬件方式控制数据块的大小,有时需要采用固定的传输协议,如USB、以太网等设备11第第5 5章章 基于基于S3C2410S3C2410的系统硬件设计的系统硬件设计Create()Open()Read()Write()Close()Loctl()Destroy()Driver_Create()Drive
11、r_Open()Driver_Read()Driver_Write()Driver_Close()Driver_Loctl()Driver_Destroy()I/OI/O操作操作设备驱动程序设备驱动程序应应 用用设设 备备12第第5 5章章 基于基于S3C2410S3C2410的系统硬件设计的系统硬件设计 I/O接口电路也简称接口电路。它是主机和外围设备之间交换信息的连接部件(电路)。它在主机和外围设备之间的信息交换中起着桥梁和纽带作用。设置接口电路的必要性:a)解决CPU和外围设备之间的时序配合和通信联络问题。b)解决CPU和外围设备之间的数据格式转换和匹配问题。c)解决CPU的负载能力和外
12、围设备端口选择问题。13第第5 5章章 基于基于S3C2410S3C2410的系统硬件设计的系统硬件设计 5.2.2 5.2.2 I/OI/O口编程实例口编程实例 举例举例: :通过对通过对G G口的操作控制口的操作控制CPUCPU板左下角的板左下角的LED1LED1和和LED2LED2实现轮流闪烁。实现轮流闪烁。 void Main(void)void Main(void) int flag, i; int flag, i; Target_Init(); / Target_Init(); /进行硬件初始化操作,包括对进行硬件初始化操作,包括对I/OI/O口的初始化操作口的初始化操作 for(
13、;)for(;) if(flag=0)if(flag=0) for(i=0;i1000000;i+); /for(i=0;i1000000;i+); /延时延时 rGPGCON = rGPGCON & 0 xfff0ffff | 0 x00050000; /rGPGCON = rGPGCON & 0 xfff0ffff | 0 x00050000; /配置第配置第8 8、第、第9 9位为输出引脚位为输出引脚 rGPGDAT = rGPGDAT & 0 xeff | 0 x200; /rGPGDAT = rGPGDAT & 0 xeff | 0 x200; /第第
14、8 8位输出为低电平位输出为低电平 / /第第9 9位输出高电平位输出高电平 for(i=0;i10000000;i+); /for(i=0;i10000000;i+); /延时延时 flag = 1;flag = 1; else else for(i=0;i1000000;i+); /for(i=0;i1000000;i+); /延时延时 rGPGCON = rGPGCON & 0 xfff0ffff | 0 x00050000; /rGPGCON = rGPGCON & 0 xfff0ffff | 0 x00050000; /配置第配置第8 8、第、第9 9位为输出引脚位为
15、输出引脚 rGPGDAT = rGPGDAT & 0 xdff | 0 x100; /rGPGDAT = rGPGDAT & 0 xdff | 0 x100; /第第8 8位输出为高电平位输出为高电平 / /第第9 9位输出低电平位输出低电平for(i=0;i1000000;i+); /for(i=0;i1000000;i+); /延时延时flag = 0;flag = 0; 14第第5 5章章 基于基于S3C2410S3C2410的系统硬件设计的系统硬件设计主要内容S3C2410简介简介 I/O口口中断中断DMAA/D接口接口UART触摸屏触摸屏LCDUSB设备的数据收发设备
16、的数据收发音频录放音频录放键盘和键盘和LED控制控制15第第5 5章章 基于基于S3C2410S3C2410的系统硬件设计的系统硬件设计 5.3.1 5.3.1 ARMARM的中断原理的中断原理 ARMARM系统包括两类中断:一是系统包括两类中断:一是IRQIRQ中断中断,一是,一是FIQFIQ中断中断。 处理中断的步骤如下:处理中断的步骤如下:(1)(1)保存现场。保存当前的保存现场。保存当前的PCPC值到值到R14R14,保存当前的程序运行状态到保存当前的程序运行状态到SPSRSPSR。(2)(2)模式切换。根据发生的中断类型,进入模式切换。根据发生的中断类型,进入IRQIRQ模式或模式或
17、FIQFIQ模式。模式。(3)(3)获取中断源。以异常向量表保存在低地址处为例,若是获取中断源。以异常向量表保存在低地址处为例,若是IRQIRQ中断,中断,则则PCPC指针跳到指针跳到0 0 x18x18处;若是处;若是FIQFIQ中断,则跳到中断,则跳到0 0 x1Cx1C处。处。IRQIRQ或或FIQFIQ的异常的异常向量地址处一般保存的是中断服务子程序的地址,所以接下来向量地址处一般保存的是中断服务子程序的地址,所以接下来PCPC指针指针跳入中断服务子程序处理中断。跳入中断服务子程序处理中断。(4)(4)中断处理。为各种中断定义不同的优先级别,并为每一个中断设中断处理。为各种中断定义不同
18、的优先级别,并为每一个中断设置一个中断标志位。当发生中断时,通过判断中断优先级以及访问中置一个中断标志位。当发生中断时,通过判断中断优先级以及访问中断标志位的状态来识别到底哪一个中断发生了。进而调用相应的函数断标志位的状态来识别到底哪一个中断发生了。进而调用相应的函数进行中断处理。进行中断处理。(5)(5)中断返回,恢复现场。当完成中断服务子程序后,将中断返回,恢复现场。当完成中断服务子程序后,将SPSRSPSR中保存中保存的程序运行状态恢复到的程序运行状态恢复到CPSRCPSR中,中,R14R14中保存的被中断程序的地址恢复到中保存的被中断程序的地址恢复到PCPC中,进而继续执行被中断的程序
19、。中,进而继续执行被中断的程序。 16第第5 5章章 基于基于S3C2410S3C2410的系统硬件设计的系统硬件设计 5.3.2 5.3.2 S3C2410AS3C2410A的中断控制器的中断控制器 中断控制器使用的寄存器中断控制器使用的寄存器17第第5 5章章 基于基于S3C2410S3C2410的系统硬件设计的系统硬件设计v 优先级生成模块优先级生成模块 18第第5 5章章 基于基于S3C2410S3C2410的系统硬件设计的系统硬件设计 5.3.3 5.3.3 中断编程实例中断编程实例举例举例: :通过定时器通过定时器1 1中断控制中断控制CPUCPU板左下角的板左下角的LED1LED
20、1和和LED2LED2实现轮流闪烁。实现轮流闪烁。1 1对定时器对定时器1 1初始化,并设定定时器的中断时间为初始化,并设定定时器的中断时间为1 1秒。秒。void Timer1_init(void)void Timer1_init(void) rGPGCON = rGPGCON & 0 xfff0ffff | 0 x00050000; rGPGCON = rGPGCON & 0 xfff0ffff | 0 x00050000; /配置配置GPGGPG口为输出口口为输出口 rGPGDAT = rGPGDAT | 0 x300;rGPGDAT = rGPGDAT | 0 x300
21、; rTCFG0 = 255; rTCFG0 = 255; rTCFG1 = 0 4; rTCFG1 = 0 4; /在在pclk=50MHZpclk=50MHZ下,下,1 1秒钟的记数值秒钟的记数值rTCNTB1 =50000000/4/256=48828;rTCNTB1 =50000000/4/256=48828; rTCNTB1 = 48828; rTCNTB1 = 48828; rTCMPB1 = 0 x00; rTCMPB1 = 0 x00; rTCON = (1 11) | (1 9) | (0 8); rTCON = (1 11) | (1 9) | (0 8); /禁用定时器禁
22、用定时器1 1,手动加载,手动加载 rTCON = (1 11) | (0 9) | (1 8); rTCON = (1 11) | (0 9) | (1 8); /启动定时器启动定时器1 1,自动装载,自动装载 19第第5 5章章 基于基于S3C2410S3C2410的系统硬件设计的系统硬件设计举例举例: :通过定时器通过定时器1 1中断控制中断控制CPUCPU板左下角的板左下角的LED1LED1和和LED2LED2实现轮流闪烁。实现轮流闪烁。2 2为了使为了使CPUCPU响应中断,在中断服务子程序执行之前,必须打开响应中断,在中断服务子程序执行之前,必须打开ARM920TARM920T的的
23、CPSRCPSR中的中的I I位,以及相应的中断屏蔽寄存器中的位。位,以及相应的中断屏蔽寄存器中的位。void Timer1INT_Init(void) void Timer1INT_Init(void) /定时器接口使能定时器接口使能 if (rINTPND & BIT_TIMER1)if (rINTPND & BIT_TIMER1) rSRCPND |= BIT_TIMER1;rSRCPND |= BIT_TIMER1; /写入定时器写入定时器1 1中断服务子程序的入口地址中断服务子程序的入口地址 pISR_TIMER1 = (int)Timer1_ISR; pISR_TI
24、MER1 = (int)Timer1_ISR; rINTMSK &= (BIT_TIMER1); rINTMSK &= (BIT_TIMER1); /开中断;开中断; 3 3等待定时器中断,通过一个死循环如等待定时器中断,通过一个死循环如“while(1)while(1);”实现等待过程。实现等待过程。 20第第5 5章章 基于基于S3C2410S3C2410的系统硬件设计的系统硬件设计举例举例: :通过定时器通过定时器1 1中断控制中断控制CPUCPU板左下角的板左下角的LED1LED1和和LED2LED2实现轮流闪烁。实现轮流闪烁。4 4根据设置的定时时间,将产生定时器中断
25、。定时器中断发生后,首先进行根据设置的定时时间,将产生定时器中断。定时器中断发生后,首先进行现场保护,接下来转入中断的入口代码处执行,该部分代码通常使用汇编语言书现场保护,接下来转入中断的入口代码处执行,该部分代码通常使用汇编语言书写。在执行中断服务程序之前,首先要确保写。在执行中断服务程序之前,首先要确保HandleIRQHandleIRQ地址处保存中断分发程序地址处保存中断分发程序IsrIRQIsrIRQ的入口地址。的入口地址。ldrldrr0,=HandleIRQ r0,=HandleIRQ ldr ldrr1,=IsrIRQ r1,=IsrIRQ strstrr1,r0r1,r0接下来
26、将执行接下来将执行IsrIRQIsrIRQ中断分发程序,具体代码如下:中断分发程序,具体代码如下:IsrIRQ IsrIRQ subsubsp,sp,#4 sp,sp,#4 ; ;为保存为保存PCPC预留堆栈空间预留堆栈空间stmfdstmfdsp!,r8-r9 sp!,r8-r9 ldrldrr9,=INTOFFSET r9,=INTOFFSET ldrldrr9,r9r9,r9 ; ;加载加载INTOFFSETINTOFFSET寄存器值到寄存器值到r9r9ldrldrr8,=HandleEINT0r8,=HandleEINT0; ;加载中断向量表的基地址到加载中断向量表的基地址到r8r8addaddr8,r8,r9,lsl #2r8,r8,r9,lsl #2; ;获得中断向量获得中断向量ldrldrr8,r8r8,r8; ;加载中断服务程序的入口地
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论