第7章I/O端口及中断控制器.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第7章I/O端口及中断控制器.ppt》由会员分享,可在线阅读,更多相关《第7章I/O端口及中断控制器.ppt(75页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1第7章 IO端口及中断控制器2本章重点本章重点:S3C2410A I/O端口概述;I/O端口控制;I/O端口特殊功能寄存器;I/O端口程序举例。在I/O端口特殊功能寄存器中,除了讲述GPAGPH对应的寄存器外,还讲述了杂项控制寄存器、与外部中断有关的寄存器等内容。S3C2410A中断控制器概述;中断控制器操作、中断源及中断优先权产生模块;中断控制器特殊功能寄存器;中断程序举例。37.1 I/O端口概述I/O端口控制寄存器位于S3C2410A内部,有117个多功能输入/输出端口引脚,分为如下8个端口:端口A(GPA):23个输出引脚的端口;端口B(GPB):11个输入/输出引脚的端口;端口C(
2、GPC):16个输入/输出引脚的端口;端口D(GPD):16个输入/输出引脚的端口;端口E(GPE):16个输入/输出引脚的端口;端口F(GPF):8个输入/输出引脚的端口;端口G(GPG):16个输入/输出引脚的端口;端口H(GPH):11个输入/输出引脚的端口。4上述8个端口也称为通用输入输出端口GPIO(General Purpose I/O,通用输入/输出接口)也称为并行I/O(parallel I/O),是最基本的I/O形式,由一组输入引脚、输出引脚或输入/输出引脚组成,CPU对它们能够进行存取操作。为了满足不同系统设计的需要,每个I/O口可以很容易地通过软件对进行配置。每个引脚的功
3、能必须在启动主程序之前进行定义。如果一个引脚没有使用复用功能,那么它可以配置为I/O口。注意:端口A除了作为功能口外,只能够作为输出口使用。5在S3C2410A中,大多数的引脚端都是复用的,所以对于每一个引脚端都需要定义其功能。为了使用I/O口,首先需要定义引脚的功能。每个引脚端的功能通过端口控制寄存器(PnCON)来定义(配置)。与配置I/O口相关的寄存器包括:端口控制寄存器(GPACONGPHCON)、端口数据寄存器(GPADATGPHDAT)、端口上拉寄存器(GPBUPGPHUP)、杂项控制寄存器以及外部中断控制寄存器(EXTINTN)等。6在7.3.2节,讲述了特殊功能寄存器中的另外一
4、些寄存器,这些寄存器控制某些时钟信号、外部中断请求信号的方式、外部中断屏蔽与否等等。包括:杂项控制寄存器MISCCR、DCLK控制寄存器DCLKCON、外部中断控制寄存器EXTINT0EXTINT2、外部中断滤波寄存器EINTFLT2和EINTFLT3、外部中断屏蔽寄存器EINTMASK、外部中断登记寄存器EINTPEND和通用状态寄存器GSTATUS0GSTATUS4。每个寄存器的具体含义见7.3.2节。77.2 I/O端口控制 端口引脚配置寄存器GPACONGPHCON在S3C2410A中,大多数引脚有多种功能。因此对每个引脚,要求确定哪一种功能被选择。端口引脚配置寄存器GPACONGPH
5、CON确定每个引脚的功能。如果GPF0GPF7和GPG0GPG7在Power_OFF模式用作唤醒信号,那么这些端口应该配置成中断模式。8 端口数据寄存器GPADATGPHDAT如果端口被配置为输出端口,数据应该写到端口数据寄存器的对应位;如果端口被配置为输入端口,数据应该从端口数据寄存器的对应位读出。9 端口上拉(电阻)允许/禁止寄存器GPBUPGPHUP端口上拉(电阻)允许/禁止寄存器也称为端口上拉允许/禁止寄存器。端口上拉(电阻)允许/禁止寄存器控制每个端口上拉电阻允许/禁止。当对应位为0时,引脚的上拉电阻被允许;当对应位为1时,上拉电阻被禁止。10 杂项控制寄存器杂项(miscellan
6、eous)控制寄存器对数据总线端口DATA31:16、DATA15:0上拉电阻、USB pad和CLKOUT等进行选择。11 外部中断控制寄存器EXTINTn和外部中断滤波寄存器EINTFLTnS3C2410A的24个外部中断可以由各种信号方式提出请求。由EXTINTn寄存器配置的外部中断请求信号方式有:低电平触发、高电平触发、下降沿触发、上升沿触发以及2个沿都触发。8个外部中断引脚有数字滤波,参见7.3.2节外部中断滤波寄存器EINTFLT2和EINTFLT3。只有16个EINT引脚EINT15:0在Power_OFF模式可以用作唤醒源。12 Power_OFF模式与I/O端口在Power_
7、OFF模式,所有GPIO寄存器值被保留。外部中断屏蔽寄存器EINTMASK不能阻止从Power_OFF模式中唤醒。但是,如果EINTMASK正屏蔽着EINT15:4中的一个,虽然唤醒能够被操作,但源登记寄存器SRCPND中的EINT4-7和EINT8-23位,在刚刚唤醒后将不设置为1。137.3 I/O端口特殊功能寄存器7.3.1 端口A端口H寄存器组 端口A寄存器组 共有4个寄存器:端口A引脚配置寄存器GPACON,地址0 x56000000,可读写,复位值0 x7FFFFF。端口A数据寄存器GPADAT,地址0 x56000004,可读写,复位值未定义。其他未用。各寄存器具体含义见表7-1
8、和表7-2。14表7-1 端口A引脚配置寄存器含义GPACON位位描描 述述GPACON位位描描 述述GPA22220=输输出出 1=nFCEGPA10100=输输出出 1=ADDR25GPA21210=输输出出 1=nRSTOUT GPA990=输输出出 1=ADDR24GPA20200=输输出出 1=nFREGPA880=输输出出 1=ADDR23GPA19190=输输出出 1=nFWEGPA770=输输出出 1=ADDR22GPA18180=输输出出 1=ALEGPA660=输输出出 1=ADDR21GPA17170=输输出出 1=CLEGPA550=输输出出 1=ADDR20GPA16
9、160=输输出出 1=nGCS5GPA440=输输出出 1=ADDR19GPA15150=输输出出 1=nGCS4GPA330=输输出出 1=ADDR18GPA14140=输输出出 1=nGCS3GPA220=输输出出 1=ADDR17GPA13130=输输出出 1=nGCS2GPA110=输输出出 1=ADDR16GPA12120=输输出出 1=nGCS1GPA000=输输出出 1=ADDR0GPA11110=输输出出 1=ADDR2615GPADAT位位描描 述述GPA22:022:0当当该该端口被配置端口被配置为输为输出端口出端口时时,引脚状,引脚状态态与与这这个寄个寄存器中的存器中的对
10、应对应位相同。位相同。当当该该端口被配置端口被配置为为功能引脚功能引脚时时,读读入入值值未定未定义义表7-2 端口A数据寄存器含义16 端口B寄存器组共有4个寄存器:端口B引脚配置寄存器GPBCON,地址0 x56000010,可读写,复位值0 x7FFFFF。端口B数据寄存器GPBDAT,地址0 x56000014,可读写,复位值未定义。端口B上拉允许/禁止寄存器GPBUP,地址0 x56000018,可读写,复位值0 x00。第四个保留未用。各寄存器具体含义见表7-3、表7-4和表7-5。17表7-3 端口B引脚配置寄存器含义GPBCON位位描描 述述GPB1021:2000=输输入入 0
11、1=输输出出 10=nXDREQ0 11=保留保留GPB919:1800=输输入入 01=输输出出 10=nXDACK0 11=保留保留GPB817:1600=输输入入 01=输输出出 10=nXDREQ1 11=保留保留GPB715:1400=输输入入 01=输输出出 10=nXDACK1 11=保留保留GPB613:1200=输输入入 01=输输出出 10=nXBREQ 11=保留保留GPB511:1000=输输入入 01=输输出出 10=nXBACK 11=保留保留GPB49:800=输输入入 01=输输出出 10=TCLK0 11=保留保留GPB37:600=输输入入 01=输输出出
12、10=TOUT3 11=保留保留GPB25:400=输输入入 01=输输出出 10=TOUT2 11=保留保留GPB13:200=输输入入 01=输输出出 10=TOUT1 11=保留保留GPB01:000=输输入入 01=输输出出 10=TOUT0 11=保留保留18GPBDAT位位描描 述述GPA10:010:0当当该该端口被配置端口被配置为输为输入端口入端口时时,从,从输输入引脚来的外入引脚来的外部信号能部信号能够够从从这这个寄存器的个寄存器的对应对应位位读读出。出。当当该该端口被配置端口被配置为输为输出端口出端口时时,写到,写到这这个寄存器中个寄存器中的数据能的数据能够够被送到被送到对
13、应对应的引脚。的引脚。当当该该端口被配置端口被配置为为功能引脚功能引脚时时,读读入入值值未定未定义义表7-4 端口B数据寄存器含义表7-5 端口B上拉寄存器含义GPBUP位位描描 述述GPA10:010:00:连连接到接到对应对应端口引脚的上拉功能被允端口引脚的上拉功能被允许许。1:连连接到接到对应对应端口引脚的上拉功能被禁止。端口引脚的上拉功能被禁止。19 端口C寄存器组 各寄存器具体含义见表7-6、表7-7和表7-8。端口D寄存器组 各寄存器具体含义见表7-9、表7-10和7-11。端口E寄存器组 各寄存器具体含义见表7-12、表7-13和表7-14。端口F寄存器组 各寄存器具体含义见表7
14、-15、表7-16和表7-17。端口G寄存器组 各寄存器具体含义见表7-18、表7-19和表7-20。端口H寄存器组 各寄存器具体含义见表7-21、表7-22和表7-23。207.3.2 其他寄存器 杂项控制寄存器杂项控制寄存器中的一些位用来对USB主机和USB设备进行控制;另外一些位用于保护SDRAM,以及对数据总线上拉电阻允许/禁止等进行控制。杂项控制寄存器MISCCR,地址为0 x56000080,可读写,Reset值为0 x10330。寄存器具体含义见表7-24。SCKE、SCLK1和SCLK0引脚信号,S3C2410A输出,在Power_OFF模式用于保护SDRAM。在寄存器MISC
15、CR中规定了它们输出信号的方式。21 DCLK控制寄存器DCLK控制寄存器DCLKCON,地址为0 x56000084,可读写,Reset值为0 x0。寄存器具体含义见表7-25。DCLKCON寄存器定义DCLK0、DCLK1信号,这两个信号用作外部源时钟,DCLKn信号的低电平、高电平时间长度的关系见图7.1。只有当CLKOUT1:0被设置成发送DCLKn信号时,DCLKCON才能够实际操作。22图7.1 DCLKn高低电平关系23 外部中断方式控制寄存器组外部中断控制寄存器组共有3个寄存器,寄存器名分别为EXTINT0、EXTINT1和EXTINT2;地址分别为0 x56000088、0
16、x5600008C和0 x56000090;可读写;Reset值均为0。外部中断控制寄存器组,能够配置EXINT0EXINT23共24个外部中断源中的每一个提出中断请求信号的方式,包括电平方式和边沿方式,同时也配置了信号的极性。为了识别电平中断,对EINT15:0中的EXTINTn引脚合法的逻辑电平必须保持最少40ns以上。各寄存器具体含义见表7-26、表7-27和表7-28。24外部中断控制寄存器外部中断控制寄存器寄存器地址读/写描述复位值EXTINT0外部中断控制寄存器0 0 x56000088 R/W使用位30:0,分别对EINT7EINT0触发信号进行配置。000:低电平触发;001:
17、高电平触发;01x:下降沿下降;10 x:上升沿触发;11x:双边沿触发0 x0EXTINT1外部中断控制寄存器10 x5600008C R/W使用位30:0,分别对EINT15EINT8触发信号进行配置。0 x025EXTINT2外部中断控制寄存器20 x56000090 R/W使用位30:0,分别对EINT23EINT16触发信号进行配置。000:低电平触发;001:高电平触发;01x:下降沿下降;10 x:上升沿触发;11x:双边沿触发。位31为EINT23滤波器使能控制,1:使能;0:不使能0 x026 外部中断滤波寄存器组外部中断滤波寄存器组共有4个寄存器,前两个保留未用。后两个寄存
18、器分别是EINTFLT2和EINTFLT3;地址分别是0 x5600009C和0 x560000A0;可读写;Reset值均为0 x0。2个外部中断滤波寄存器控制8个外部中断EINT23:16使用的滤波时钟和滤波宽度。各寄存器具体含义见表7-29和表7-30,表中OSC_CLK即图6.1中的XTIpll。27 外部中断屏蔽寄存器外部中断屏蔽寄存器名为EINTMASK,地址为0 x560000A4,可读写,Reset值为0 x00FFFFF0。外部中断屏蔽寄存器能够对20个外部中断源EINT23:4分别进行屏蔽,具体含义见表7-31。28外部中断屏蔽寄存器外部中断屏蔽寄存器寄存器地址 读/写描述
19、 复位值EINTMASK 0 x560000A4 R/W 外部中断屏蔽寄存器,使用位23:4 控制EINT23EINT4中断屏蔽。0:使能中断;1:屏蔽中断0 x00FFFFF0 29 外部中断登记寄存器外部中断登记寄存器EINTPEND供20个外部中断EINT23:4使用。用户能够清除EINTPEND寄存器某一指定位,方法是通过给寄存器对应位写1。外部中断登记寄存器(external interrupt pending register)也译作外部中断未决寄存器。外部中断登记寄存器地址为0 x560000A8,可读写,Reset值为0 x0。外部中断登记寄存器具体含义见表7-32。1表示有中
20、断请求。30寄存器地址 读/写 描述 复位值EINTPEND 0 x560000A8 R/W 外部中断登记寄存器,使用位23:4 控制EINT23EINT4中断请求。0:不被请求;1:被请求 0 x0 31 通用状态寄存器组通用状态寄存器组由5个寄存器GSTATUS0GSTATUS4组成;地址分别为0 x560000AC、0 x560000B0、0 x560000B4、0 x560000B8和0 x560000BC;前两个寄存器为只读,后3个为可读写寄存器;Reset值分别为未定义、0 x32410000、0 x1、0 x0和0 x0。各寄存器具体含义见表7-33、表7-34、表7-35、表7
21、-36和表7-37。32通用状态寄存器通用状态寄存器寄存器地址 读/写 描述 复位值GSTATUS0 0 x560000AC R 外部引脚端状态Undefined GSTATUS1 0 x560000B0 R 芯片ID 0 x32410000 GSTATUS2 0 x560000B4 R/W 复位状态 0 x1 GSTATUS3 0 x560000B8 R/W Infrom 寄存器,可以利用nRESET和看门狗定时器清零0 x0 GSTATUS4 0 x560000BC R/W Infrom寄存器,可以利用nRESET和看门狗定时器清零0 x0 33这些寄存器中,可以读取的S3C2410A的引
22、脚状态有:nWAIT,存储器要求等待(扩展当前总线周期)信号,输入,见表7-33,参考表5-3。NCON,Nand Flash配置状态,输入,见表7-33,参考表5-29。RnB,Nand Flash Ready/Busy输入信号,见表7-33,参考表5-29。nBATT_FLT,电池状态引脚输入信号,见表7-33,参考表6-1。347.4 I/O端口程序举例在嵌入式系统中能够使用C语言对特殊功能寄存器进行读写,特殊功能寄存器位于S3C2410A片内。每个特殊功能寄存器都有一个固定地址,通常要在.H文件中映射特殊功能寄存器的地址。方法是对每个特殊功能寄存器对应的地址,用预处理命令define加
23、以定义。以下映射方法一的代码取自C/OS-的gpio.h,方法二的代码取自Linux的arch-s3c2410/s3c2410.h。35方法一:#define _REG(x)(*(volatile unsigned int*)(x)#define GPIO_CTL_BASE0 x56000000#define bGPIO(p)_REG(GPIO_CTL_BASE+(p)#define rMISCCRbGPIO(0 x80)/相当于#define rMISCCR(*(volatile unsigned int*)(0 x56000000+0 x80)/下同#define rDCLKCONbGPI
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第7章 IO端口及中断控制器 端口 中断 控制器
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内