资源预览内容
第1页 / 共38页
第2页 / 共38页
第3页 / 共38页
第4页 / 共38页
第5页 / 共38页
第6页 / 共38页
第7页 / 共38页
第8页 / 共38页
第9页 / 共38页
第10页 / 共38页
亲,该文档总共38页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
1 S3C44B0X S3C44B0X 通用通用I/OI/O口原理与应用口原理与应用 I/OI/O接口电路是主机和外围设备之间交换信息接口电路是主机和外围设备之间交换信息的连接部件(电路)。它在主机和外围设备之的连接部件(电路)。它在主机和外围设备之间的信息交换中起着桥梁和纽带作用。间的信息交换中起着桥梁和纽带作用。2a)a)解决解决CPUCPU和外围设备之间的时序配合和和外围设备之间的时序配合和 通信联络问题。通信联络问题。b)b)解决解决CPUCPU和外围设备之间的数据格式转换和外围设备之间的数据格式转换 和匹配问题。和匹配问题。c)c)解决解决CPUCPU的负载能力和外围设备端口选择的负载能力和外围设备端口选择 问题。问题。3.1 S3C44B0X I/O端口端口l处理器通过处理器通过I/OI/O口和外围硬件相连接口和外围硬件相连接lI/OI/O口通常和其他引脚复用口通常和其他引脚复用lS3C44B0X S3C44B0X 有有7171个多功能个多功能I/OI/O口口lS3C44B0X S3C44B0X 的的I/OI/O口功能配置由特殊口功能配置由特殊功能寄存器配置功能寄存器配置4多功能多功能I/O引脚引脚各端口必须在主程序开始前定义各端口必须在主程序开始前定义对每个对每个I/OI/O端口的配置一般按照以下步骤端口的配置一般按照以下步骤1 1 根据应用需要设置控制寄存器,确定各个端根据应用需要设置控制寄存器,确定各个端口的具体功能;口的具体功能;2 2 首先根据具体应用对端口数据寄存器设置相首先根据具体应用对端口数据寄存器设置相应的值;应的值;3 3 根据需要设置上拉电阻寄存器。根据需要设置上拉电阻寄存器。5.2 S3C444B0X 端口功能概述端口功能概述lS3C44B0X 71S3C44B0X 71个通用可编程多功能输入个通用可编程多功能输入/ /输出输出端口引脚,可分为端口引脚,可分为7 7类:类:l二个二个9 9位输入位输入/ /输出(输出(PORT EPORT E,PORT FPORT F)l二个二个8 8位输入位输入/ /输出(输出(PORT DPORT D,PORT GPORT G)l一个一个1616位输入位输入/ /输出(输出(PORT CPORT C)l一个一个1010位输出端口(位输出端口(PORT APORT A)l一个一个1111位输出端口(位输出端口(PORT BPORT B)6端口端口A: A: 可定义为可定义为 功能功能1:Output only1:Output only功能功能2;ADDR24-16,ADDR0. 2;ADDR24-16,ADDR0. 默认为功能默认为功能2 2端口端口B: B: 可定义可定义 功能功能1 1 Output onlyOutput only 功能功能2 nGCS5-1,nWBE2-3,nBE2-3,2 nGCS5-1,nWBE2-3,nBE2-3, DQM2-3,nSRAS,nSCAS,nCAS DQM2-3,nSRAS,nSCAS,nCAS SCLK,SCKE SCLK,SCKE 默认为功能默认为功能2 27端口端口C: C: 可定义为可定义为 功能功能1:Input/Output1:Input/Output 功能功能2:DATA16-312:DATA16-31 功能功能3:nCTS0,RxD1,VD4-73:nCTS0,RxD1,VD4-7等等8端口端口D: D: 功能功能1:Input/Output1:Input/Output 功能功能2:VLINE,VCLK,VD3-VD02:VLINE,VCLK,VD3-VD0 VFRAME,VM VFRAME,VM等等端口端口E: E: 功能功能1:Input/Output1:Input/Output 功能功能2:CODECLK,TOUT4-02:CODECLK,TOUT4-0 RXD0,TXDO RXD0,TXDO 功能功能3:VD7-6,TCLK,3:VD7-6,TCLK,9端口端口F: F: 功能功能1:Input/Output1:Input/Output 功能功能2: RXD1,TXD1,Nrts12: RXD1,TXD1,Nrts1 I I2 2CSDA,ICSDA,I2 2CSCLCSCL等等 功能功能3: SIOCK,SIORXD3: SIOCK,SIORXD等等 功能功能4: IISCLK,IISDI,IISDO,4: IISCLK,IISDI,IISDO,10端口端口G: G: 功能功能1 Input/Output1 Input/Output 功能功能2 IISLRCK,IISDO,IISDI,2 IISLRCK,IISDO,IISDI, nRTS0,nCTS0,VD5,VD4 nRTS0,nCTS0,VD5,VD4 功能功能3 EINT7-EINT03 EINT7-EINT011 . 3. 3 S3C44B0XS3C44B0X端口功能配置端口功能配置l 每个端口都可通过软件设置来满每个端口都可通过软件设置来满足各种各样的功能设置和设置要求。足各种各样的功能设置和设置要求。每个端口的功能通常都要在主程序开每个端口的功能通常都要在主程序开始前被定义。在引脚配置之前,需要始前被定义。在引脚配置之前,需要对引脚的初始化状态进行设定,以避对引脚的初始化状态进行设定,以避免一些问题的出现。免一些问题的出现。12端口选择端口选择: : 从上述端口功能看从上述端口功能看, ,在一般的在一般的应用中应用中, ,PAPA作为地址线使用作为地址线使用. . PBPB作为作为BANKBANK选择线和选择线和SDRAMSDRAM的接口信号线使用的接口信号线使用. . PCPC可作可作为数据线为数据线,IIS,IIS接口或接口或LCDLCD数据线等使用数据线等使用. .在系统具备在系统具备LCDLCD时时, ,PDPD主要作为主要作为LCDLCD的信号线的信号线使用使用. .PEPE可作为串口信号线和定时器输出使可作为串口信号线和定时器输出使用用. .PFPF和和PGPG则是多功能则是多功能I/OI/O口口. .13 .4 S3C44B0X端口功能控制端口功能控制 I/OI/O端口的各种功能主要是通过对端口各端口的各种功能主要是通过对端口各个寄存器进行设置而实现的:个寄存器进行设置而实现的:(1 1)端口配置寄存器(端口配置寄存器(PCON: A - GPCON: A - G) 在在S3C44B0XS3C44B0X中,大多数引脚都是多功能中,大多数引脚都是多功能引脚,因此,应为每个引脚选择功能。端引脚,因此,应为每个引脚选择功能。端口控制寄存器(口控制寄存器(PCON nPCON n)决定了每一个引决定了每一个引脚的功能。脚的功能。A-GA-G每个具有相应的地址每个具有相应的地址, ,属性属性, ,初始值初始值 14例如例如: :端口端口B B控制寄存器控制寄存器PCON B PCON B 地址地址:0X01D20008 :0X01D20008 配置寄存器配置寄存器 R/W R/W 初始值初始值:0X7FF:0X7FF位位10:610:6如果是如果是 0 = OUT 0 = OUT 1 = nGCS5-nGCS1 1 = nGCS5-nGCS115(2 2)端口数据寄存器(端口数据寄存器(PDAT :A-GPDAT :A-G) PDAT A PDAT A 地址:地址:0X01D20004 R/W0X01D20004 R/W PDAT B PDAT B 地址:地址:0X01D2000C R/W0X01D2000C R/W 如果这些端口被设定为输出端口,则输如果这些端口被设定为输出端口,则输出数据可被写到出数据可被写到PDAT nPDAT n的相应位;如果被的相应位;如果被设定为输入端口,则能够从这些端口设定为输入端口,则能够从这些端口(PDAT nPDAT n)的相应位读到这些数据。)的相应位读到这些数据。A-GA-G每个具有相应的地址每个具有相应的地址, ,属性属性, ,初始值初始值16(3) (3) 上拉电阻配置上拉电阻配置(PUP: C-G )(PUP: C-G )0: 0: 允许上拉电阻连接到对应引脚允许上拉电阻连接到对应引脚. .1: 1: 对应引脚不连接上拉电阻对应引脚不连接上拉电阻. .C-G C-G 每个具有相应的地址每个具有相应的地址, ,属性属性, ,初始值初始值 端口上拉寄存器控制着每一个端口组的上拉寄端口上拉寄存器控制着每一个端口组的上拉寄存器的使能端。当相应的位被设为存器的使能端。当相应的位被设为0 0时,引脚接上时,引脚接上拉电阻;当相应的位为拉电阻;当相应的位为1 1时,引脚不接上拉电阻。时,引脚不接上拉电阻。17(4) (4) 特殊的上拉电阻控制寄存器(特殊的上拉电阻控制寄存器(SPUCRSPUCR) 数据线数据线D15D15:00引脚的上拉电阻能够通过引脚的上拉电阻能够通过SPUPCRSPUPCR寄存器控制。寄存器控制。 在在STOP/SL-IDLESTOP/SL-IDLE模式里,数据线(模式里,数据线(D31D31:00或或D15D15:00)处于高阻状态。由于)处于高阻状态。由于I/OI/O端口的特征,数端口的特征,数据线上拉电阻可以降低功耗。据线上拉电阻可以降低功耗。 D31D31:1616引脚的上拉电阻能够通过引脚的上拉电阻能够通过PUPCPUPC寄存器寄存器来控制;来控制;D15D15:0 0 引脚上拉电阻能够通过引脚上拉电阻能够通过SPUCRSPUCR寄存寄存器来控制。器来控制。18.5 I/O接口的编址方式端口映射1 1)I/OI/O接口独立编址接口独立编址端口映射方式端口映射方式 这种编址方式是将存储器地址空间这种编址方式是将存储器地址空间和和I/OI/O接接口地址空间分开设置,互不影响。设有专门口地址空间分开设置,互不影响。设有专门的输入指令的输入指令(ININ)和输出指令和输出指令(OUTOUT)来完成来完成I/OI/O操作。操作。19l主要优点:主要优点:内存地址空间与内存地址空间与I/OI/O接口地址接口地址空间分开,互不影响,译码电路较简单,空间分开,互不影响,译码电路较简单,并设有专门的并设有专门的I/OI/O指令,所以编程序易于指令,所以编程序易于区分,且执行时间短,快速性好。区分,且执行时间短,快速性好。l缺点:缺点:只用只用I/OI/O指令访问指令访问I/OI/O端口,功能有端口,功能有限且要采用专用限且要采用专用I/OI/O周期和专用周期和专用I/OI/O控制线,控制线,使微处理器复杂化。使微处理器复杂化。20I/O接口的编址方式内存映射2 2) I/OI/O接口与存储器统一编址方式接口与存储器统一编址方式内内存映射存映射 该方式不区分存储器地址空间和该方式不区分存储器地址空间和I/OI/O接接口地址空间,把所有的口地址空间,把所有的I/OI/O接口的端口都当接口的端口都当作是存储器的一个单元对待,每个接口芯作是存储器的一个单元对待,每个接口芯片都安排一个或几个与存储器统一编号的片都安排一个或几个与存储器统一编号的地址号。也不设专门的输入地址号。也不设专门的输入/ /输出指令,所输出指令,所有传送和访问存储器的指令都可用有传送和访问存储器的指令都可用来对来对I/OI/O接口操作。接口操作。21l主要优点:主要优点:访问内存的指令都可用访问内存的指令都可用于于I/OI/O操作,数据处理功能强;同时操作,数据处理功能强;同时I/OI/O接口可与存储器部分共用译码和接口可与存储器部分共用译码和控制电路。控制电路。l缺点:缺点:一是一是I/OI/O接口要占用存储器地接口要占用存储器地址空间的一部分;二是因不用专门的址空间的一部分;二是因不用专门的I/OI/O指令,程序中较难区分指令,程序中较难区分I/OI/O操作。操作。22l ARMARM系统系统完成完成I/OI/O功能的标准方法是使用功能的标准方法是使用存存储器映射储器映射I/OI/O。这种方法使用特定的存储器地这种方法使用特定的存储器地址。当从这些地址加载或向这些地址存储时,址。当从这些地址加载或向这些地址存储时,它们提供它们提供I/OI/O功能。典型情况下,从存储器映功能。典型情况下,从存储器映射射I/OI/O地址加载用于输入,而向存储器映射地址加载用于输入,而向存储器映射I/OI/O地址存储用于输出。地址存储用于输出。23寄存器使用举例:寄存器使用举例:C语言编写的对语言编写的对I/O口端口初始化程序片段口端口初始化程序片段#define rpcona (*(volatile unsigned *) 0x1d20000)#define rpdat a (*(volatile unsigned *) 0x1d20004)#define rpconb (*(volatile unsigned *) 0x1d20008)#define rpdat b (*(volatile unsigned *) 0x1d2000c)#define rpconc (*(volatile unsigned *) 0x1d20010)#define rpdat c (*(volatile unsigned *) 0x1d20014)24#define rpup c (*(volatile unsigned *) 0x1d20018)#define rpcond (*(volatile unsigned *) 0x1d2001c)#define rpdatd (*(volatile unsigned *) 0x1d20020)#define rpupd (*(volatile unsigned *) 0x1d200024)#define rpcone (*(volatile unsigned *) 0x1d20028)#define rpdat e (*(volatile unsigned *) 0x1d2002c)#define rpupe (*(volatile unsigned *) 0x1d200030)25#define rpconf (*(volatile unsigned *) 0x1d200034)#define rpdat f (*(volatile unsigned *) 0x1d200038)#define rpupf (*(volatile unsigned *) 0x1d20003c)#define rpcong (*(volatile unsigned *) 0x1d200040)#define rpdat g (*(volatile unsigned *) 0x1d200044)#define rpupg (*(volatile unsigned *) 0x1d200048)#define rspucr (*(volatile unsigned *) 0x1d20004c)#define rEXTINT (*(volatile unsigned *) 0x1d200050)#define rEXTINTPND (*(volatile unsigned *) 0x1d200054)26Void Port_int ( void) /BUSWIDTH = 16,数据总线配置数据总线配置16位位 /A组端口组端口 ADD24.ADD16,ADD0 / 1 1.1 1 1rPCON A= 0X3ff; /A口被定义功能口被定义功能2 PCONA9:0 0:功能:功能1输入输入;1:功能:功能2地址地址PDATA9:0 端口定义为输出时,引脚状态与对应位相同端口定义为输出时,引脚状态与对应位相同 端口定义为功能引脚时,读入无意义端口定义为功能引脚时,读入无意义27/B组端口组端口 /out,out,nGCS3, nGCS2, nGCS1,nWBE3, nWBE2 - 0 0 1 1 1 1 1 - nSRAS, Nscas, SCLK ,CKKE 1 1 1 1rPCON B = 0X1ff;PCONB10:0 0: 功能功能1 ; 1: 功能功能2PDATB 10:0 端口定义为输出时,引脚状态与对应为相同端口定义为输出时,引脚状态与对应为相同 端口定义为功能引脚时,读入无意义端口定义为功能引脚时,读入无意义28/C组端口组端口#if (BUSWIDTH=32)/D31 D30 D16 10 10 10rPCONC = 0Xaaaaaaaa;rPUPC = 0Xffff;#else / (BUSWIDTH=16),设设C组全部作输入,组全部作输入,0X0; rPDAT C = 0X0 rPCON C = 0X00000000 r PUPC = 0X000 29PCON C 00 : input ; 01 : output 10: DATA 11: 功能功能4PC0 1:0 00 : input ; 01 : output 10: DATA16;11: IISLRCKPC1 1:0 00 : input ; 01 : output 10: DATA17;11: IISDOPC15 31:30 00 : input ; 01 : output 10: DATA31;11: nCTS030#endif/G组端口,作为组端口,作为EINT7:0/0XFFFFrPCONG = 0XFFFF;rPUPG = 0X0;rSPUCR = 0X7rEXTINT = 0X22222222; / EINT7:0,下降沿触发下降沿触发31PCON GPCON GPG0 1:0 PG0 1:0 00 : input ; 01 : output 10: VD4; 11: EINT0PG1 3:2 PG1 3:2 00 : input ; 01 : output 10: VD5; 11: EINT1PG7 1:0 PG7 1:0 00 : input ; 01 : output 10: IISLRCK; 11: EINT732PDAT GPDAT GPG7:0 PG7:0 端口被设置为输入,对应位与引脚状态相同端口被设置为输入,对应位与引脚状态相同 端口被设置为输出,引脚状态与对应位相同端口被设置为输出,引脚状态与对应位相同 端口被设置为功能引脚,读入值无意义端口被设置为功能引脚,读入值无意义PUP GPUP GPG 7PG 7:0 00 0:允许上拉电阻连接到对应端口引脚;:允许上拉电阻连接到对应端口引脚; 1 1:上拉电阻被禁止:上拉电阻被禁止33.5 .5 键盘键盘1. 1. 键盘电路键盘电路 4X44X4 采用采用PFPF端口作为键盘接口端口作为键盘接口, ,设定设定PF0-PF3PF0-PF3 为输出口为输出口( (列线列线),PF4-PF7),PF4-PF7为输入口为输入口( (行线行线).).寄存器设置寄存器设置 程序中首先通过设置程序中首先通过设置PCON FPCON F寄存器寄存器, ,来实现端口来实现端口功能配置功能配置, ,然后在设置然后在设置PDAT F, PUP FPDAT F, PUP F寄存器寄存器. .3444键盘接口电路键盘接口电路l通过片选信号通过片选信号nGCS3来选通来选通 35步骤步骤: :(1). (1). 设置设置PCON FPCON F : : 地址地址 0X01D20034 0X01D20034 rPCONrPCON F=000 F=000 000000 000000 000000 00 01 00 01 0101 0101 01B=0X55 01B=0X55 PF8 PF7 PF6 PF5 PF4 PF3 PF2 PF1 PF0PF8 PF7 PF6 PF5 PF4 PF3 PF2 PF1 PF0(2).(2).设置设置PDAT F: PDAT F: 地址地址 0X01D20038 0X01D20038 PF0-3 PF0-3 作为输出作为输出 PDAT F=0XF0; / PF0-3PDAT F=0XF0; / PF0-3全写全写0 0PF4-7 PF4-7 作为输入口作为输入口, ,该位的值是对应的引脚的状态该位的值是对应的引脚的状态. . 读入键值时读入键值时, ,采用语句采用语句KeyvalueKeyvalue=(=(rPDATrPDAT F&0xf0)4 F&0xf0)4 ; 判定有否键按下判定有否键按下36识别哪一个键按下:识别哪一个键按下:设:设:PF3-0PF3-0, 1110 = E 1110 = E ,判,判PF7-4PF7-4状态状态 1101 = D 1101 = D ,判,判PF7-4PF7-4状态状态(3) . (3) . 设置设置PUP FPUP F寄存器寄存器设置内部上拉电阻的语句设置内部上拉电阻的语句rPUPrPUP F=0X00; / F=0X00; /使能使能PF0 7 PF0 7 的内部的内部 上拉电阻上拉电阻3738结结 束束
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号