ImageVerifierCode 换一换
格式:DOCX , 页数:53 ,大小:313.07KB ,
资源ID:5885738      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5885738.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第8章 集成可编程中断控制器.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

第8章 集成可编程中断控制器.docx

1、第8章 集成可编程中断控制器第八章 集成可编程中断控制器(IPIC)本章介绍集成可编程中断控制器(IPIC),包括外部信号的定义及其功能。此外,本章还介绍配置、控制和状态寄存器。注意,本参考手册的每一章都介绍了一个部件的特定的具体的初始化过程。8.1 绪论 本节介绍IPIC中断协议、IPIC单元控制的不同类型的中断源、以及IPIC寄存器及其编程指南。编程模型与MPC8260的中断控制相似。中断控制器提供中断管理,负责接收来自不同中断源(内部的和外部的)的硬件产生的中断。它还将中断分为不同的优先级,并将中断交付给CPU,由CPU服务。IPIC区分来自下列控制单元的中断的优先级并管理这些中断: D

2、DR存贮器控制器(DDR) 本地总线内存控制器(LBC) PCI1和PCI2 四通道DMA控制器(DMA) 消息单元(MU) 双三态Ethernet控制器(TSEC1和TSEC2) DUART通信模块(DUART) USB 2.0控制器(USB DR 和USB MPH) 安全引擎(SEC) 系统总线仲裁器(SBA) 周期间隔定时器(PIT) 实时时钟定时器(RTC ALR和RTC SEC) 八个全局定时器(GTM1GTM8) 软件看门狗定时器(WDT) I2C控制器(I2C1和I2C2) SPI控制器(SPI) 电源管理控制器(PMC) 两个通用I/O控制器(GPIO1和GPIO2) 外部引脚

3、(/IRQ0:7) IPIC单元控制的中断源引起处理器核内部的异常。内部中断(/int)信号是从IPIC到核的主要中断输出信号,它引起常规中断异常。/cint是从IPIC到处理器核的紧急中断输出信号,它引起紧急中断异常。/smi信号是从IPIC到处理器核的系统管理中断输出信号,它引起系统管理中断异常。机器检查异常由IPIC产生的内部/mcp引起,通知主处理器出现错误、外部/IRQ0机器检查请求有效(在SEMSRSIRQ01时允许)、以及其他情况。 表8-1列出了各种功能部件和设备的外部信号与IPIC单元的关系。 IPIC接收来自下列两个地方的中断请求信号: 该集成设备的外部 该集成设备的内部

4、该单元从当前所有的中断中选择最高优先级的中断,并将它交给内部处理器核,或片外,在外部服务中断。 IPIC还管理内部不可屏蔽机器检查处理器(/mcp)信号和片外中断源产生的中断(/IRQ0:7)。 IPIC的中断发送程序监控内部配置寄存器的输出。若某个收到的中断信号的优先级最高,IPIC就将某个中断未决寄存器中的对应位置位系统内部中断未决寄存器(SIPNR)/系统外部中断未决寄存器(SEPNR)。如果该中断未被屏蔽,IPIC就宣告/int信号有效,向处理器指示中断请求。若处理器正在运行特定/int、/cint或/smi的中断处理程序代码,则处理器必须通过显式(用软件)读取相应的中断向量寄存器(S

5、IVCR、SCVCR或SMVCR),将外部中断处理程序向量化。读取后,IPIC单元将向量(与中断源相关)返回给中断处理程序例程。此外,处理程序可以将不同分支的中断处理向量化图8-1 中断源结构图IPIC可以接收来自下列不同中断域的中断: 8个外部片外信号(/IRQ0:7) 35个内部片上中断信号。中断源为DDR MEMC、LB、PCI1、PCI2、DMA、MU、TSEC1、TSEC2、DUART、USB、SEC、系统总线仲裁器、PIT、RTC、GTM、I2C1、I2C2、SPI、GPIO1、GPIO2和PMC 1个外部和5个内部片上/mcp中断信号。中断源为/IRQ0、软件看门狗定时器(WDT

6、)、PCI1、PCI2、MU和系统总线仲裁器(SBA) 中断控制器提供了屏蔽每个中断源的能力,还可以屏蔽GPIO、SEC或SBA外围事件中的多个事件。 当收到一个内部或外部中断时,IPIC检查其配置寄存器,确定应将中断发送到片外(到外部/INTA),还是作为正常外部中断由处理器核服务(通过/int信号)。第三种方法是,如果进来的中断已经被配置为紧急中断或系统管理中断,IPIC就向核宣告/cint或/smi有效,完成该中断的处理。到核的/cint或/smi信号有效会把中断分别作为紧急或系统管理中断来服务。8.2 特性 IPIC单元实现了下列特性: 与MPC8260中断控制器在功能和编程方面兼容

7、支持8个外部和35个内部离散向量化中断源 支持1外部个和5个内部/mcp中断源 可编程最高优先级请求(可被编程,以支持紧急(/cint)或系统管理(/smi)中断) 两个可编程优先级混合组,每组4个片上和4个外部中断信号,两种优先级方案:分组的(grouped)和分散的(spread) 两个可编程优先级内部组,每组8个片上中断信号,两种优先级方案:分组的(grouped)和分散的(spread) 每组可以安排两个最高优先级的中断,以支持紧急或系统管理中断类型 外部和内部中断可以定向到主处理器 每个中断源的向量号唯一8.3 操作模式 IPIC单元可以运行在核允许模式或核禁止模式。8.3.1 核允

8、许模式 在核允许模式中,所有的内部中断(包括来自PCI1和PCI2部件的那些中断)都被送到IPIC,或源自IPIC,将中断发送给PowerPC核。DMA控制器可以随意(根据DMA寄存器的设计)将其中断通过INTA信号送给PCI主机。 在该模式中,IPIC搜集所有的机器检查中断,并将它们发送给PowerPC核。如果设备作为PCI主机操作,那么应将其他PCI代理(agent)的中断连接到实现(设备)的/IRQ信号,并将它们当作正常外部中断对待(发送给核)。8.3.2 核禁止模式 在核禁止模式中,所有的内部中断(包括来自PCI1和PCI2部件的那些中断)都被送到IPIC,或源自IPIC,然后将中断通

9、过/INTA信号发送给PCI主机的CPU。注意,核中断信号被屏蔽。在该模式中,用户应仅使用/int输出中断类型(不能使用/cint或/smi输出中断类型)读取更新了的SIVCR。(参见8.5.7节“系统内部中断控制寄存器(SICNR)”和8.5.12节“系统外部中断控制寄存器(SECNR)”。) 在该模式中,在/INTA上或/MCP_OUT上驱动的机器检查中断是电平敏感中断。SERCRMCPR(见8.5.15节“系统错误控制寄存器(SERCR)”)控制使用哪个外部信号。8.4 外部信号说明 下面几节概述并详细说明了IPIC信号。8.4.1 概述 该设备有8个不同的外部中断请求输入信号(/IRQ

10、0:7)和一个中断请求输出信号(/INTA)。IPIC接口信号在表8-1中定义。表8-1 IPIC信号属性名字端口功能I/O复位需要上拉/IRQ0:7/IRQ0:7外部中断I是/INTA/INTA中断请求输出OZ是/MCP_OUT/MCP_OUT中断请求输出OZ是8.4.2 详细信号说明 表8-2提供了外部IPIC信号的详细说明表8-2 IPIC外部详细信号说明信号I/O说明/IRQ0:7I中断请求07。每一个信号的检测(电平或边沿)都是可编程的。所有这些输入都可以被完全异步驱动。状态含义有效当外部中断请求信号有效时(根据规定的极性),IPIC单元检查优先级,有条件地将中断传给处理器。无效没有

11、来自那个源的中断。时序有效可以被完全异步地宣告所有输入有效。无效规定为电平敏感的中断在被服务之前必须保持有效。/INTAOD中断请求输出。低有效,开漏极。若将IPIC设置为核禁止模式,则该输出反映的是片上中断源产生的原始中断。细节参见8.3节“操作模式”。状态含义有效当前正在向外部系统报告至少一个中断。无效指示当前没有发向/IRQ_OUT的中断源。时序因为外部中断是异步的,不考虑系统时钟,所以/IRQ_OUT的有效和无效可以异步出现,与中断源无关。这里给出的所有时序都是近似的。有效内部中断源:中断发生后的3个系统总线时钟周期。外部中断源:中断发生后的4个周期。无效中断源无效后,后面跟下列延迟:

12、内部中断源:3个系统总线时钟周期。外部中断源: 4个周期。/MCP_OUTOD不可屏蔽中断请求(机器检查)输出。低有效,开漏极。若将IPIC设置为核禁止模式,则该输出反映的是片上中断源产生的/mcp中断。细节参见8.3节“操作模式”。状态含义有效当前正在向外部系统报告至少一个机器检查中断。无效指示当前没有发向/MCP_OUT的中断源。时序因为外部中断是异步的,不考虑系统时钟,所以/MCP_OUT的有效和无效可以异步出现,与中断源无关。这里给出的所有定时时间都是近似的。有效内部中断源:中断发生后的2个系统总线时钟周期。外部中断源:中断发生后的4个周期。无效中断源无效后,后面跟下列延迟:内部中断源

13、:2个系统总线时钟周期。外部中断源: 4个周期。8.5 内存映射/寄存器定义 IPIC可编程寄存器映射占用256个字节的内存空间。读取内存映射的未定义部分返回全零,写入无效。 所有的IPIC寄存器都为32位宽,位于32位地址边界。软件可以对所有IPIC寄存器执行字节、半字或字访问。本章使用的所有地址都是距IPIC基址的偏移量,如第二章“内存映射”所定义的。 表8-3列出了IPIC单元的内存映射。表8-3 IPIC寄存器地址映射偏移量寄存器访问复位值节/页0x00系统全局中断配置寄存器(SICFR)R/W0x0000_00008.5.1/8-8(需调整)0x04系统常规中断向量寄存器(SIVCR

14、)R0x0000_00008.5.2/8-8(需调整)0x08系统内部中断未决寄存器(SIPNR_H)R0x0000_00008.5.3/8-80x0C系统内部中断未决寄存器(SIPNR_L)R0x0000_00008.5.3/8-80x10系统内部中断组A优先级寄存器(SIPRR_A)R/W0x0530_97708.5.4/8-80x14保留0x18保留8.5.5/8-80x1C系统内部中断组D优先级寄存器(SIPRR_D)R/W0x0530_97708.5.5/8-80x20系统内部中断屏蔽寄存器(SIMSR_H)R/W0x0000_00008.5.6/8-80x24系统内部中断屏蔽寄存器

15、(SIMSR_L)R/W0x0000_00008.5.6/8-80x28系统内部中断控制寄存器(SICNR)R/W0x0000_00008.5.7/8-80x2C系统外部中断未决寄存器(SEPNR)R/W特殊8.5.8/8-80x30系统混合中断组A优先级寄存器(SMPRR_A)R/W0x0530_97708.5.9/8-80x34系统混合中断组B优先级寄存器(SMPRR_B)R/W0x0530_97708.5.10/8-80x38系统外部中断屏蔽寄存器(SEMSR)R/W0x0000_00008.5.11/8-80x3C系统外部中断控制寄存器(SECNR)R/W0x0000_00008.5.

16、12/8-80x40系统错误状态寄存器(SERSR)R/W0x0000_00008.5.13/8-80x44系统错误屏蔽寄存器(SERMR)R/W0xFF00_00008.5.14/8-80x40系统错误控制寄存器(SERCR)R/W0x0000_00008.5.15/8-80x4C0x4F保留0x50系统内部中断强制寄存器(SIFCR_H)R/W0x0000_00008.5.16/8-80x54系统内部中断强制寄存器(SIFCR_L)R/W0x0000_00008.5.16/8-80x58系统外部中断强制寄存器(SEFCR)R/W0x0000_00008.5.17/8-80x5C系统错误强制

17、寄存器(SERFR)R/W0x0000_00008.5.18/8-80x60系统紧急中断向量寄存器(SCVCR)R0x0000_00008.5.19/8-80x64系统管理中断向量寄存器(SMVCR)R0x0000_00008.5.20/8-80x680xFF保留8.5.1 系统全局中断配置寄存器(SICFR System Global Interrupt Configuration Register) SICFR如图8-2所示,它定义最高优先级中断,以及中断在优先级表中是分组的还是分散的。更多信息见表8-4。图8-2 系统全局中断配置寄存器(SICFR) 表8-4定义了SICFR的位字段。表

18、8-4 SICFR字段说明位名字说明0写忽略,读017HPI最高优先级中断。指定一个中断控制器中断源的7位唯一中断号/向量(见表8-6),将该中断源提升为IPIC优先级表(见表8-31)中的最高优先级。可以动态修改HPI。8写忽略,读09MPSB组B的混合中断优先级方案。选择相应的MIXB优先级方案。不能动态修改。0 分组的。在表顶部按优先级分组MIXB。1 分散的。在表中按优先级分散MIXB。10MPSA组A的混合中断优先级方案。选择相应的MIXA优先级方案。不能动态修改。0 分组的。在表顶部按优先级分组MIXA。1 分散的。在表中按优先级分散MIXA。11写忽略,读012IPSD组D的内部

19、中断优先级方案。选择相应的SYSD优先级方案。不能动态修改。0 分组的。在表顶部按优先级分组SYSD。1 分散的。在表中按优先级分散SYSD。1314写忽略,读015IPSA组A的内部中断优先级方案。选择相应的SYSA优先级方案。不能动态修改。0 分组的(grouped)。在表顶部按优先级分组SYSA。1 分散的(spread)。在表中按优先级分散SYSA。1621写忽略,读02223HPITHPI优先级位置IPIC输出中断类型。定义在HPI优先级位置中,哪种类型的IPIC输出中断信号(/int、/cint或/smi)向核宣告其请求有效。不能动态修改这些位。(如果软件确实要修改,软件必须确认相

20、应中断源已被屏蔽,或者在修改时不会发生中断)。HPIT的定义如下:00 HPI到核的/int请求有效。01 HPI到核的/smi请求有效。10 HPI到核的/cint请求有效。11 保留。2431写忽略,读08.5.2 系统常规中断向量寄存器(SIVCR System Regular Interrupt Vector Register) SIVCR如图8-3所示,它包括7位编码,表示最高优先级上的常规未屏蔽中断源(/INT)。注意在核禁止模式中,用户只能使用SIVCR,以便读取更新了的中断向量寄存器(不应使用SCVCR和SMVCR)。图8-3 系统常规中断向量寄存器(SIVCR)表8-5定义了

21、SIVCR的位字段。表8-5 SIVCR字段说明位名字说明05IVECx向后(MPC8260)兼容的常规中断向量。指定核未决的、IPIC最高优先级常规中断源的6位唯一中断号。在出现常规中断请求时,可以读取SIVCR。如果有多个常规中断源,SIVCR锁存最高优先级的常规中断。注意,IVECx字段仅正确反映前64个中断向量(细节见表8-6)。读取时,不能修改SIVEC的值。624写忽略,读02531IVEC常规中断向量。指定核未决的、IPIC最高优先级常规中断源的7位唯一中断号。注意,在出现常规中断请求时,可以读取SIVCR。如果有多个常规中断源,SIVCR锁存最高优先级的常规中断。注意,IVEC

22、字段正确反映所有的中断向量(细节见表8-6)。读取时,不能修改SIVCR(SIVEC?)的值。 表8-6给出了IVEC的定义。表8-6 IVEC/CVEC/MVEC字段定义中断ID号中断含义中断向量0错误(无中断)0b000_000018保留0b000_00000b000_10009UART10b000_100110UART20b000_101011SEC0b000_10111213保留0b000_11000b000_110114I2C10b000_111015I2C20b000_111116SPI0b001_000017ipp_ind_ext-int10b001_000118ipp_ind_

23、ext-int20b001_001019ipp_ind_ext-int30b001_001120IRQ40b001_010021IRQ50b001_010122IRQ60b001_011023IRQ70b001_01112431保留0b001_10000b001_111132TSEC1 Tx0b010_000033TSEC1 Rx0b010_000134TSEC1 Err0b010_001035TSEC2 Tx0b010_001136TSEC2 Rx0b010_010037TSEC2 Err0b010_010138USB DR0b010_011039USB MPH0b010_01114047保

24、留0b010_10000b010_111148ipp_ind_ext-int00b011_000049-63保留0b011_00010b011_111164ipp_ind_ext-int320b100_000065ipp_ind_ext-int330b100_000166ipp_ind_ext-int340b100_001067ipp_ind_ext-int350b100_001168RTC ALR0b100_010069USB MPH0b100_010170SBA0b100_011071USB MPH0b100_011172GTM40b100_100073GTM80b100_100174GP

25、IO10b100_101075GPIO20b100_101176DDR0b100_110077LBC0b100_110178GTM20b100_111079GTM60b100_111180PMC0b101_00008183保留0b101_00010b101_001184GTM30b101_010085GTM70b101_01018689保留0b101_01100b101_100190GTM10b101_101091GTM50b101_101192127保留0b101_11000b111_11118.5.3 系统内部中断未决寄存器(SIPNR_H和L System Internal Interr

26、upt Pending Register) SIPNR_H和SIPNR_L中的每一位都对应一个内部中断源,如图8-4和8-5所示。(表8-7列出了已实现了的位。)当收到中断请求时,中断控制器置位对应的SIPNR位。在处理完未决中断后,通过清除对应的事件寄存器位,用户可以清除SIPNR位。 注意,SIPNR位的状态不会依相对优先级改变。图8-4 系统内部中断挂起寄存器(SIPNR_H) 表8-7列出了实现的SIPNR_H位。表8-7 SIPNR_H/SIFCR_H/SIMSR_H分配位字段0TSEC1 Tx1TSEC1 Rx2TSEC1 Err3TSEC2 Tx4TSEC2 Rx5TSEC2 E

27、rr6USB DR7USB MPH82324UART125UART226SEC272829I2C130I2C231SPI 表8-8定义了SIPNR_H的位字段。表8-8 SIPNR_H字段说明位名字说明031INTn每个已实现了的位(表8-7中列出)都对应一个内部中断源。当收到中断请求时,中断控制器置位对应的SIPNR位。在处理完未决中断后,通过清除对应的事件寄存器位,用户可以清除SIPNR位。SIPNR位是只读的。写入该寄存器无用。注意,SIPNR位的状态不会依相对优先级变化。对于未实现的位,写忽略,读0。 SIPNR_L如图8-4所示。图8-5 系统内部中断未决寄存器(SIPNR_L) 表

28、8-9列出了实现的SIPNR_L位。表8-9 SIPNR_L/SIFCR_L/SIMSR_L分配位字段0RTC SEC1PIT2PCI13ipi_int_internal354RTC ALR5MU6SBA7DMA8GTM49GTM810GPIO111GPIO212DDR13LBC14GTM215GTM616PMC171920GTM321GTM7222526GTM127GTM5283031表8-10定义了SIPNR_L的位字段。表8-10 SIPNR_L字段说明位名字说明031INTn每个已实现了的位(表8-7中列出)都对应一个内部中断源。当收到中断请求时,中断控制器置位对应的SIPNR位。在处理完未决中断后,通过清除对应的事件寄存器位,用户可以清除SIPNR位。SIPNR位是只读的。写入该寄存器无效。注意,SIPNR位的状态不会依相对优先级变化。对于未实现的位,写忽略,读0

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1