处理器接口电路、中断系统的设计.ppt
《处理器接口电路、中断系统的设计.ppt》由会员分享,可在线阅读,更多相关《处理器接口电路、中断系统的设计.ppt(174页珍藏版)》请在三一办公上搜索。
1、1,4.4 处理器接口电路、中断系统的设计,4.4.1 通用输入/输出接口GPIO设计4.4.2 中断系统设计4.4.3 串行接口设计4.4.4 USB接口设计4.4.5 JTAG接口设计4.4.6 A/D转换接口设计,2,4.4.1 通用输入/输出接口GPIO,嵌入式系统的GPIO接口引脚数量较多,例如,S3C44BO有71个,S3C2410有117个,PXA255有84个GPIO管脚,PXA270有120个GPIO管脚。它们与处理器之间的连接一般不使用系统总线,而是直接连接在处理器的引脚上。每个I/O引脚可被编程设置成为普通的输入或输出状态。如被作为输入端时,该GPIO管脚可被设置工作在中
2、断方式或查询方式。但当系统被复位后,所有的GPIO管脚的默认值为输入状态。有些GPIO管脚还通过设置具有第二功能。每个处理器内的GPIO又分成若干个组(端口),每组称为一个I/O接口。每个接口含有10-20多个引脚不等。,1、I/O系统工作过程,I/O系统的初始化,设备打开,设备关闭,设备读,设备写,设备控制,设备管理初始化,驱动逻辑初始化,硬件抽象初始化,完成设备管理相关信息的初始化,如创建驱动程序地址表、设备名表、文件记录表等,实现系统中各驱动程序的注册,即把系统中各驱动程序注册到设备管理中,主要完成设备注册,4,I/O系统工作过程,关闭设备 系统调用close()关闭一个不再使用的设备,
3、关闭一个设备时,I/O系统的内部运作过程和写一个设备大致相同,不同的是I/O系统根据设备名表中的主设备号在驱动程序地址表中定位并调用驱动程序的xxx_close()函数,然后释放文件表中的记录,返回。在此之后对该文件描述符的任何引用都将返回错误。但是随后的open()系统调用将仍然返回该文件描述符。,5,1)GPIO的配置,GPIO接口的控制器通常集成在处理器芯片内部。在系统启动时应对它们进行正确设置,GPIO的设置需要用到三组特殊功能寄存器来定义I/O引脚的具体功能。第一组时端口配置寄存器组(PCONA-PCONG),第二组是端口数据寄存器组(PDATA-PDATG),第三组是端口上拉电阻设
4、置寄存器(PUPA-PUOG),其中A-G为端口序号。如:GPDR(方向寄存器):负责设置GPIO的输入、输出功能。GPSR(输出置位寄存器):在输出模式下,可以通过GPSR设置GPIO管脚上的高电平值。GPCR(输出清零寄存器):在输出模式下,可以通过GPCR设置GPIO管脚为低电平值。,6,GPLR(引脚状态寄存器):当某管脚设置为输入模式时,读GPLR(引脚状态寄存器)的内容可以反映当前GPIO管脚的状态。GPER是探测上升沿使能的专用寄存器;GFER是探测下降沿使能的专用寄存器;GEDR是探测上升下降沿使能的专用寄存器;GAFR是设置第二功能寄存器。,7,2)GPIO的设计要求,在并行
5、信号传输线中,一般有数据线、控制线和电源线。由于每条数据导线传输一个数据位,这时要求数据总线长度必须较短,否则长的导线会导致有较高的寄生电容值,影响数据的传输速度。此外,并行总线中各导线长度上的小差异,也可能导致所接受的数据字各位的抵达时间不同,影响数据的准确性。基于ARM的处理器内核和处理器核一般都没有I/O总线部件,需要通过先进微控制总线架构AMBA来扩展宏单元和总线I/O部件,为微处理器提供32位地址信号、32位数据信号和读/写、时钟、外围复位、选通等控制信号。,8,3)编址形式,ARM采用存储器与I/O统一编址的方式,即把I/O端口当作为特殊的存储器地址来对待处理。比如S3C44B0X
6、微处理器芯片,芯片内部具有71个通用多功能输入输出引脚,分别包含在如下7组端口中:1个10位输出端口(端口A);1个11位输出端口(端口B);1个16位输入输出端口(端口C);2个8位输入输出端口(端口D和G);2个9位输入输出端口(端口E和F)。,9,举例,PXA27X处理器提供了120个的GPIO,其分组如下:端口A通用目地的I/O;端口B可选输入功能;端口C可选输入功能;端口D可选输入功能;端口E可选输出功能;端口F可选输出功能;端口G可选输出功能。,2、S3C2410处理器GPIO设计与应用S3C2410X有8个端口,117个输入/输出引脚。这些端口是:A口(GPA):23个输出口B口
7、(GPB):11个输入/输出口C口(GPC):16个输入/输出口D口(GPD):16个输入/输出口E口(GPE):16个输入/输出口F口(GPF):8个输入/输出口G口(GPG):16个输入/输出口H口(GPH):11个输入/输出口这些端口都具有多功能,通过引脚配置寄存器,可以将其设置为所需要的功能,如:I/O功能、中断功能等等。,1)端口寄存器及引脚配置每一个端口都有4个寄存器,它们是:引脚配置寄存器、数据寄存器、引脚上拉寄存器等。,GPADAT寄存器为准备输出的数据其值为23位22:0注意:(1)当A口引脚配置为非输出功能时,其输出无意义;(2)从引脚输入没有意义。,(1)端口A寄存器及引
8、脚配置,端口A寄存器及引脚配置,GPBDAT-为准备输出或输入的数据其值为11位10:0GPBUP-端口B上拉寄存器,位10:0有意义。0:对应引脚设置为上拉1:无上拉功能注意:当B口引脚配置为非输入/输出功能时,其寄存器中的值没有意义。,(2)端口B寄存器及引脚配置,端口B引脚配置寄存器,GPCDAT-为准备输出或输入的数据其值为16位15:0GPCUP-端口C上拉寄存器,位15:0有意义。0:对应引脚设置为上拉1:无上拉功能注意:当C口引脚配置为非输入/输出功能时,其寄存器中的值没有意义。,(3)端口C寄存器及引脚配置,端口C引脚配置寄存器,GPDDAT-为准备输出或输入的数据其值为16位
9、15:0GPDUP-端口D上拉寄存器,位15:0有意义。0:对应引脚设置为上拉1:无上拉功能初始化时,15:12无上拉功能,而11:0有上拉注意:当D口引脚配置为非输入/输出功能时,其寄存器中的值没有意义。,(4)端口D寄存器及引脚配置,端口D引脚配置寄存器,GPEDAT-为准备输出或输入的数据其值为16位15:0GPEUP-端口E上拉寄存器,位15:0有意义。0:对应引脚设置为上拉1:无上拉功能初始化时,各个引脚都有上拉功能。注意:当E口引脚配置为非输入/输出功能时,其寄存器中的值没有意义。,(5)端口E寄存器及引脚配置,端口E引脚配置寄存器,GPFDAT-为准备输出或输入的数据其值为8位7
10、:0GPFUP-端口F上拉寄存器,位7:0有意义。0:对应引脚设置为上拉1:无上拉功能初始化时,各个引脚都有上拉功能。注意:当F口引脚配置为非输入/输出功能时,其寄存器中的值没有意义。,(6)端口F寄存器及引脚配置,端口F引脚配置寄存器,GPGDAT-为准备输出或输入的数据其值为16位15:0GPGUP-端口G上拉寄存器,位15:0有意义。0:对应引脚设置为上拉1:无上拉功能初始化时,15:11引脚无上拉功能,其它引脚有。注意:当G口引脚配置为非输入/输出功能时,其寄存器中的值没有意义。,(7)端口G寄存器及引脚配置,端口G引脚配置寄存器,LCD-PEN:POWER_ENABLE,nSS0:S
11、PI0_SELECT,GPHDAT-为准备输出或输入的数据其值为11位10:0GPHUP-端口H上拉寄存器,位10:0有意义。0:对应引脚设置为上拉1:无上拉功能注意:当H口引脚配置为非输入/输出功能时,其寄存器中的值没有意义。,(8)端口H寄存器及引脚配置,端口H引脚配置寄存器,UCLK为USB的,(9)端口其它控制寄存器,nEN_SCKE-SCLK使能位。在电源关闭模式下对SDRAM做保护0:正常状态 1:低电平nEN_SCLKx-SCLKx使能位。在电源关闭模式下对SDRAM做保护0:SCLKx=SCLK 1:低电平nRSTCON-对nRSTOUT软件复位控制位0:使nRSTOUT为低,
12、0;1:使nRSTOUT为高,1,MISCCR-混合控制寄存器,USBSUSPND1-USB端口1模式0:正常1:浮空USBSUSPND0-USB端口0模式0:正常1:浮空CLKSEL1-CLKOUT1引脚输出信号源选择000:MPLL CLK001:UPLL CLK 010:FCLK011:HCLK100:PCLK 101:DCLK111x:保留CLKSEL0-CLKOUT0引脚输出信号源选择000:MPLL CLK001:UPLL CLK 010:FCLK011:HCLK100:PCLK 101:DCLK011x:保留,USBPAD-与USB连接选择0:与USB设备连接1:与USB主机连接
13、MEM_HZ_CON-MEM高阻控制位0:Hi-Z 1:前一状态SPUCR_L-数据口低16位15:0上拉控制位0:上拉1:无上拉SPUCR_H-数据口高16位31:16上拉控制位0:上拉1:无上拉,DCLKCON-D时钟控制寄存器,DCLK1(0)CMP-DCLK1(0)低电平时间所占的比例数。设该位值为m,m DCLK1(0)DIV。则低、高电平持续时间的源周期数分别为:m+1、DCLK1(0)DIV-m DCLK1(0)DIV-DCLK1(0)分频值 DCLK1(0)frequency=source clock/(DCLK1(0)DIV+1),DCLKCON-D时钟控制寄存器(续),DC
14、LK1(0)SelCK-DCLK1(0)source clock 选择0:源时钟选择PCLK1:源时钟选择UCLK(USB)DCLK1(0)EN-DCLK1(0)Enable0:禁止1:允许,主要设置各个外中断源的触发方式、滤波,(10)外中断控制寄存器,EINT07-中断请求信号触发方式选择000:低电平触发001:高电平触发01x:下降沿触发10 x:上升沿触发11x:双边沿触发第3、7、11、15、19、23、27、31位-保留,EXTINT0-外中断触发方式控制寄存器0,EINT815-中断请求信号触发方式选择000:低电平触发001:高电平触发01x:下降沿触发10 x:上升沿触发1
15、1x:双边沿触发第3、7、11、15、19、23、27、31位-保留,EXTINT1-外中断触发方式控制寄存器1,EINT1623-外中断请求信号触发方式选择000:低电平触发001:高电平触发01x:下降沿触发10 x:上升沿触发11x:双边沿触发第3、7、11、15、19、23、27、31位-为FILTEN各引脚滤波控制位0:禁止滤波1:使能滤波,EXTINT2-外中断控制寄存器2,主要设置各个外中断源的滤波器设置,(11)外中断滤波控制寄存器,FLTCLK1619-外中断1619滤波器时钟选择0:PCLK1:外部/振荡时钟(由OM引脚选择)EINTFLT1619-外中断1619滤波器宽度
16、(频带宽度),EINTFLT2-外中断滤波控制寄存器2,FLTCLK2023-外中断2023滤波器时钟选择0:PCLK1:外部/振荡时钟(由OM引脚选择)EINTFLT2023-外中断2023滤波器宽度(频带宽度),EINTFLT3-外中断滤波控制寄存器3,(12)外中断屏蔽、标志寄存器,外中断屏蔽寄存器,各位:0:允许中断1:禁止中断注意:EINT0-EINT3不能在此被屏蔽,在SRCPND中屏蔽。,外中断标志寄存器,各位:0:无中断请求1:有中断请求注意:对某位写1,则清除相应标志,即清为0.,GSTATUS3、4:复位时被清0,其它情况下其数据不变。用户可以用于保存数据。,(13)外中断
17、状态寄存器,nWEIT-引脚nWEIT状态nCON-引脚nCON状态RnB-引脚R/nB状态nBATT_FLT-引脚nBATT_FLT状态注意:各位的数值0、1,随着对应引脚变化。,GSTATUS0-外部引脚状态寄存器,WDTRST-上电复位控制状态1:出现了上电复位对该位写,则将该位清0OFFRST-掉电模式复位状态。1:系统出现了从掉电模式唤醒复位对该位写,则将该位清0PWRST-看门狗复位状态1:系统出现了看门狗定时器复位对该位写,则将该位清0,GSTATUS2-复位状态寄存器,第13讲到此,外中断举例static void _irq Eint0Int(void)ClearPending
18、(BIT_EINT0);Uart_Printf(EINT0 interrupt is occurred.n);static void _irq Eint1Int(void)ClearPending(BIT_EINT1);Uart_Printf(EINT1 interrupt is occurred.n);#define ClearPending(bit)rSRCPND=bit;rINTPND=bit;rINTPND;,void Test_Eint(void)int i;int extintMode;/选择外中断触发方式变量 Uart_Printf(External Interrupt Test
19、n);Uart_Printf(1.L-LEVEL 2.H-LEVEL 3.F-EDGE 4.R-EDGE 5.B-EDGEn);Uart_Printf(Select the external interrupt type.n);extintMode=Uart_Getch();/extintMode=3;rGPFCON=(rGPFCON/设置引脚配置,F0、F1配置为EINT0/1,switch(extintMode)case 1:rEXTINT0=(rEXTINT0,case 4:rEXTINT0=(rEXTINT0,Uart_Printf(“Press the EINT0/1 buttons
20、 or Press any key to exit.n”);/设置中断向量 pISR_EINT0=(U32)Eint0Int;/将中断处理程序的开始 pISR_EINT1=(U32)Eint1Int;/地址送到中断向量表 rEINTPEND=0 xffffff;/清除EINTPND需要向其中写入数 据。因此这句代码的含义是清除EINTPND。rSRCPND=BIT_EINT0|BIT_EINT1;/to clear the previous pending states rINTPND=BIT_EINT0|BIT_EINT1;rINTMSK=(BIT_EINT0|BIT_EINT1);Uart
21、_Getch();rEINTMASK=0 xffffff;rINTMSK=BIT_ALLMSK;(void Test_Eint(void)函数结束)注释:#define BIT_ALLMSK(0 xffffffff),52,4.4.2 中断异常方式的设计,嵌入式系统中一般具有与硬件、软件相关的中断源、软件错误相关的中断源、为调试程序而设置的中断源和系统分时所用的中断源。还有具有快速中断源FIQ和一般I/O中断源IRQ。执行中断要经过三个环节:中断响应、中断处理和中断返回。注意:在使用I/O中断处理事件比较频繁的场合时,会很明显地影响嵌入式系统的性能。因此,微处理器内部包含有直接存储控制通道DM
22、A。这样使用DMA方式,I/O的数据块传送至存储器的缓冲器区域就不需要微处理器介入,提高了微处理器的工作效率。,53,1、中断方式处理过程,在系统对外部事件做出反应的过程中,中断响应是第一个环节,主要的任务是确定中断源。然后根据中断源指引CPU进入具体的中断处理程序。由于芯片的引线数量受到的限制,因此很难为CPU芯片带足够多的中断请求线。这样一来,为了确定中断源的来源,就需要采用如下的辅助的手段,来实现这个功能。,辅助手段有以下二种形式:,(1)CPU在响应中断时,进入一个特殊的中断响应周期,并向外发一个“中断响应(ACK)”信号,同时要求中断源通过数据总线提供 一个“中断向量”。为了防止多个
23、外设同时发出中断向量而形成冲突的情况,还需要把所有可能成为中断源的设备连接成一条“中断链”,在“中断链”的不同位置应具有不同的优先级。(2)在外部提供一个“集线器”,称为“中断控制器”。它为外设提供多条中断请求线,但是将这些中断请求线(相或)合并成一条。与此同时,在中断控制器中还要提供一个寄存器,记录当前的(综合)中断请求来自哪条外部中断请求线,而CPU则可以像访问外设一样读出这个寄存器的内容,以确定中断请求的来源。,55,1)GPIO中断接口分类,GPIO是一个通用的可编程的I/O接口,其接口寄存器中的每一位都可以分别在程序的控制下设置成用于输入或者输出。而且,当用于输入的时候,还可以让每一
24、位的状态变化都引发一个中断请求。例如S3C44BOX具有30个中断源,包括1个看门狗定时器,6个定时器,6个UART,8个外部,4个DMA,2个RTC,1个ADC,1个IIC和1个SIO中断源。,56,S3C44B0X中断系统举例,S3C44B0X支持的中断处理模式称为矢量中断模式。中断控制器的角色,就是响应来自FIQ或IRQ的中断,并请求内核对中断进行处理。多个中断请求发生时,由硬件优先级逻辑确定应该有哪个中断源得到服务,同时硬件逻辑使中断向量表该中断矢量被自动加载到该中断源的入口地址(如0X18或0X1C)位置,在该位置执行跳转指令使程序跳到相应的中断服务线程。,57,2)控制中断的寄存器
25、,(1)中断控制寄存器(2)中断请求寄存器(3)中断模式寄存器(4)中断屏蔽寄存器(5)IRQ矢量模式寄存器(6)IRQ/FIQ中断服务寄存器(7)外部中断控制寄存器(8)外部中断请求寄存器,58,3)系统异常中断种类,复位中断(reset)未定义的指令中断软件中断指令预取中止数据访问中止外部中断请求快速中断请求 异常是由内部或外部源产生的,需要处理器处理的一个事件。,59,中断向量表,当一个中断发生以后,ARM 处理器便强制把PC 指针置为向量表中对应中断源的地址值。因为每个中断只占据向量表中一个字的存储器空间,只能放置一条ARM指令,所以通常在向量表中放的是跳转指令,使程序能从向量表里跳转
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 处理器 接口 电路 中断 系统 设计
链接地址:https://www.31ppt.com/p-6456090.html