大工13春《嵌入式原理与开发》辅导资料十三
大工13春《嵌入式原理与开发》辅导资料十三主 题:第四章基于ARM的硬件系统结构设计(第1节)
学习时间:2013年6月24日-6月30日
内 容:
这周我们将学习第四章基于ARM的硬件系统结构设计,第四节通用输入/输出接口GPIO设计 、中断系统设计,下面整理出的理念框架供同学们学习。
4.4 处理器接口电路、中断系统的设计
4.4.1 通用输入/输出接口GPIO设计
嵌入式系统的GPIO接口引脚数量较多;
例如,S3C44BO有71个,S3C2410有117个,PXA255有84个GPIO管脚, PXA270有120个GPIO管脚。
它们与处理器之间的连接一般不使用系统总线,而是直接连接在处理器的引脚上;
每个I/O引脚可被编程设置成为普通的输入或输出状态。
如被作为输入端时,该GPIO管脚可被设置工作在中断方式或查询方式。但当系统被复位后,所有的GPIO管脚的默认值为输入状态。
有些GPIO管脚还通过设置具有第二功能。
每个处理器内的GPIO又分成若干个组(端口),每组称为一个I/O接口。每个接口含有10-20多个引脚不等。
2.编址形式
ARM采用存储器与I/O统一编址的方式,即把I/O端口当作为特殊的存储器地址来对待处理。
比如S3C44B0X微处理器芯片,芯片内部具有71个GPIO引脚,分别包含在如下7组端口中:
1个10位输出端口(端口A);
1个11位输出端口(端口B);
1个16位输入/输出端口(端口C);
2个8位输入/输出端口(端口D和G);
2个9位输入/输出端口(端口E和F)。
S3C2410处理器GPIO设计与应用
S3C2410X有8个端口,117个输入/输出引脚。这些端口是:
A口(GPA):23个输出口
B口(GPB):11个输入/输出口
C口(GPC):16个输入/输出口
D口(GPD):16个输入/输出口
E口(GPE):16个输入/输出口
F口(GPF):8个输入/输出口
G口(GPG):16个输入/输出口
H口(GPH):11个输入/输出口
端口寄存器及引脚配置
每一个端口都有4个寄存器,它们是:引脚配置寄存器、数据寄存器、引脚上拉寄存器等。其中,x代表具体端口号,如A~G
(1)端口A寄存器及引脚配置
GPADAT寄存器为准备输出的数据其值为23位
注意:
(1)当A口引脚配置为非输出功能时,其输出无意义
(2)从引脚输入没有意义。
(3)端口C寄存器及引脚配置
GPCDAT---为准备输出或输入的数据
其值为16位
GPCUP---端口C上拉寄存器,位有意义。
0:对应引脚设置为上拉1:无上拉功能
注意:当C口引脚配置为非输入/输出功能时,其寄存器中的值没有意义。
其他GPIO配置寄存器
对端口的特殊功能状态进行设置的寄存器:
GPDR(方向寄存器):负责设置GPIO的输入、输出功能。
GPSR(输出置位寄存器):在输出模式下,可以通过GPSR设置GPIO管脚上的高电平值。
GPCR (输出清零寄存器):在输出模式下,可以通过GPCR设置GPIO管脚为低电平值
GPIO的配置
GPLR(引脚状态寄存器):当某管脚设置为输入模式时,读GPLR(引脚状态寄存器)的内容可以反映当前GPIO管脚的状态。
GPER是探测上升沿使能的专用寄存器;
GFER是探测下降沿使能的专用寄存器;
GEDR是探测上升下降沿使能的专用寄存器;
GAFR是设置第二功能寄存器。
4.4.2 中断异常方式的设计
嵌入式系统中一般具有与硬件、软件相关的中断源、软件错误相关的中断源、为调试程序而设置的中断源和系统分时所用的中断源。还有具有快速中断源FIQ和一般I/O中断源IRQ。执行中断要经过三个环节:中断响应、中断处理和中断返回。
1. .中断方式处理过程
在系统对外部事件做出反应的过程中,中断响应是第一个环节,主要的任务是确定中断源。然后根据中断源指引CPU进入具体的中断处理程序。
由于芯片的引线数量受到的限制,因此很难为CPU芯片带足够多的中断请求线。这样一来,为了确定中断源的来源,就需要采用如下的辅助的手段,来实现这个功能。
辅助手段有以下二种形式:
(1)为了防止多个外设同时发出中断向量而形成冲突的情况,中断源通过数据总线提供 一个“中断向量”。并所有可能成为中断源的设备连接成一条“中断链”,在“中断链”的不同位置应具有不同的优先级。
(2)在外部提供一个“集线器”,称为“中断控制器”。它为外设提供多条中断请求线。并通过一个专用寄存器,记录当前的(综合)中断请求来自哪条外部中断请求线,而CPU则可以像访问外设一样读出这个寄存器的内容,以确定中断请求的来源。
1)GPIO中断接口分类
GPIO是一个通用的可编程的I/O接口,其接口寄存器中的每一位都可以分别在程序的控制下设置成用于输入或者输出。
当用于输入的时候,还可以让每一位的状态变化都引发一个中断请求。
例如:S3C44BOX具有30个中断源,包括1个看门狗定时器,6个定时器,6个UART,8个外部,4个DMA,2个RTC,1个ADC,1个IIC和1个SIO中断源。
2)控制中断的寄存器
(1)中断控制寄存器;
(2)中断请求寄存器;
(3)中断模式寄存器;
(4)中断屏蔽寄存器;
(5)IRQ矢量模式寄存器;
(6)IRQ/FIQ中断服务寄存器;
(7)外部中断控制寄存器;
(8)外部中断请求寄存器
3)系统异常中断种类
复位中断(reset)
未定义的指令中断
软件中断
指令预取中止
数据访问中止
外部中断请求
快速中断请求
异常是由内部或外部源产生的,需要处理器处理的一个事件。
4)外部中断的应用
(1) I/O口设置
首先对PG口的工作模式进行设置,要让PG4-7工作在外部中断输入状态。因此,要将PG口设置在功能3模式下,采用语句:
rPCONG= 11 11 11 11 xx xxxxxxB;
如果希望采用内部上拉,则语句为:
rPUPG= 0000xxxxB。
(2)外部中断触发模式设置利用外部中断控制寄存器来设置外部中断的触发模式。
①采用下降沿触发时:
rEXTINT= 01x 01x 01x 01x xxx xxxxxxxxxB;
②采用上升沿触发时:
rEXTINT=10x 10x 10x 10x xxx xxxxxxxxxB;
③采用边沿触发时:
rEXTINT=11x 11x 11x 11x xxx xxxxxxxxxB;
④采用低电平触发时:
rEXTINT=000 000 000 000 xxx xxxxxxxxxB;
2.S3C2410中断系统简介
S3C2410X中断控制器有56个中断源;
对外提供24个外中断输入引脚;
内部所有设备都有中断请求信号,例如DMA控制器、UART、IIC等等。
(2)中断优先级仲裁器及工作原理
(3)中断控制器专用寄存器
本节习题
1. ARM采用什么样的编址方式?
ARM采用存储器与I/O统一编址的方式,即把I/O端口当作为特殊的存储器地址来对待处理。
2,执行中断要经过哪三个环节?
中断响应、中断处理和中断返回。
3,系统异常中断分为哪几类?
复位中断(reset)
未定义的指令中断
软件中断
指令预取中止
数据访问中止
外部中断请求
快速中断请求
页:
[1]