- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
课件:ARMIO接口介绍.ppt
Tankertanker Design 5.2 I/O( GPIO)接口 GPIO (General Purpose I/O Ports)意思为通用输入/输出端口,通俗地说,就是一些引脚,可以过它们输出高低电平或者通过它们读入引脚的状态——是高电平还是低电平。 嵌入式系统的硬件平台是由微处理器(或微控制器)、存储器、I/O端口及设备组成。I/O接口部件是嵌入式系统的关键组成部分。 控制I/O接口部件的方式主要有:程序查询、中断控制、DMA方式 等。 中断技术主要是用于I/O接口部件与微处理器之间进行数据传输的控制,它协调了数据传输的双方的步调。 图 I/O端口是嵌入式系统硬件平台的重要组成部分,通过I/O端口可以连接各种类型的外部输入/输出设备,如:键盘、LCD显示器等。 S3C2410有117个I/O端口,共分为A-H其8组:GPA、GPB、…、GPH。S3C2440有130个I/O端口,分为A-J共9组:GPA、GPB、…、GPJ。可以通过设置寄存器来确定某个引脚用干输入、输出还是其他特殊功能。比如可以设置GPH6作为般的输入、输出引脚,或者用于串口。 §5.2.1 S3C2410的I/O接口 S3C2410芯片共有117个输入/输出引脚,分属于8个I/O端口: ·端口A (GPA):有23条输出引脚的端口。 ·端口B (GPB):有11条输入/输出引脚的端口。 ·端口C (GPC):有16条输入/输出引脚的端口。 ·端口D (GPD):有16条输入/输出引脚的端口。 ·端口E (GPE):有16条输入/输出引脚的端口。 ·端口F (GPF):有8条输入/输出引脚的端口。 ·端口G (GPG):有16条输入/输出引脚的端口。 ·端口H (GPH):有11条输入/输出引脚的端口。 端口功能定义 S3C2410芯片的每个I/O端口均是多功能的 上述8个I/O端口根据系统配置和设计的不同需求,设计者可以选择这些I/O端口的功能。若选定某个I/O端口的功能,设计者应在主程序运行之前编程设置对应的控制寄存器,从而选定所需I/O端口的功能。如果某个I/O引脚不用于特定功能的话,那么该引脚就可以设置为普通的输入/输出引脚。 对于这几组GPIO引脚,它们的寄存器是相似的:GPxCON用于选择引脚功能,GPxDAT 用于读/写引脚数据;另外,GPxUP用于确定是否使用内部上拉电阻。x为A、B、…H/J,没有GPAUP寄存器。 1 . GPxCON寄存器 从寄存器的名字即可看出,它用于配置(Configure) /选择引脚的功能。 PORTA与PORT B~PORT H/J在功能选择方面有所不同,GPACON中每一位对应一根引脚(共23根引脚)。当某位被设为0时,相应引脚为输出引脚,此时我们可以在GPADAT中相应位写入0或1让此引脚输出低电平或高电平:当某位被设为l时,相应引脚为地址线或用于地址控制,此时GPADAT无用。一般而言GPACON通常被设为全l,以便访问外部存储器件。 PORT B~ PORT H/J在寄存器操作方面完全相同。 GPxCON中每两位控制一根引脚:00表示输入、01表示输出、10表示特殊功能、11保留不用。 5.2.2 GPxDAT寄存器 GPxDAT用于读/写引脚;当引脚被设为输入时,读此寄存器可知相应引脚的电平状态是高还是低;当引脚被设为输出时,写此寄存器相应位可以令此引脚输出高电平或是低电平 5.2.3 GPxUP寄存器 GPxUP:某位为1时,相应引脚无内部上拉电阻;为0时,相应引脚使用内部上拉电阻。 上拉电阻的作用在于:当GPIO引脚处于第三态(即不是输出高电平,也不是输出低电平,而是呈高阻态,即相当于没接芯片)时,它的电平状态由上拉电阻、下拉电阻确定。 1.2 访问硬件 1.2.1 访问单个引脚 单个引脚的操作无外乎3种:输出高低电平、检测引脚状态、中断。对某个引脚的操作一般通过读、写寄存器来完成。 访问这些寄存器是通过软件来读写它们的地址。比如:S3C2410和S3C2440的GPBCON、GPBDAT寄存器地址都是00可以通过如下的指令让GPB5输出低电平。 #define GPBCON (*volatile unsigned long *)0 //long=int 4字节;char 1字节;short 2字节 #define GPBDAT (*volatile unsigned long *)0 #define GPB5_out (1(5*2)) GPBCON = GPB5_out; GPBDAT = ~(15);
文档评论(0)