接口技术课程设计多级中断控制系统.docx
- 文档编号:23561063
- 上传时间:2023-05-18
- 格式:DOCX
- 页数:20
- 大小:89.65KB
接口技术课程设计多级中断控制系统.docx
《接口技术课程设计多级中断控制系统.docx》由会员分享,可在线阅读,更多相关《接口技术课程设计多级中断控制系统.docx(20页珍藏版)》请在冰豆网上搜索。
接口技术课程设计多级中断控制系统
接口技术课程设计
----多级中断控制系统
组长:
07计科杨静刚
组员:
07计科X俊飞
王鹏余凯
指导教师:
胡静芳
完成时间:
2021.12.20
一、引言及任务分配
(一)实验目的
1、了解并掌握8259中断控制器的工作原理,通过8259进展中断控制效劳,调用中断效劳程序
2、掌握8259中断控制器级联方式的硬件设计和软件编程
3、了解利用数模转换器产生模拟信号根本方法,通过DAC0832产生报警信号
4、制作外部中断信号源,产生中断申请信号
(二)任务分配
8259中断控制器线路连接杨静刚
8259中断控制器级联方式的硬件设计X俊飞
8259中断控制器级联方式的软件编程王鹏
制作外部中断信号源余凯
二、什么是中断
1.中断的根本概念
对于计算机系统来说,中断是指CPU正在运行一个程序时发生了某种非预期的事件,CPU暂停正在运行的程序,转而执行对这一事件进展处理的程序〔称为中断效劳程序〕,完成后再返回原程序继续运行的过程。
引起中断的事件称为中断源。
对于计算机系统来说,中断源分为外部中断和内部中断。
外部中断主要是指由计算机外围设备、系统定时时钟及人工干预等外部事件起的中断,通过设备产生的外部中断,能使CPU与设备间进展中断方式的数据传输,这也是我们本小节要主要讲述的内容。
内部中断主要包括指令中断和故障中断。
指令中断是由软件指令引起的,设置指令中断的目的通常是为用户程序提供对系统资源的访问,例如x86CPU指令系统提供了一条软中断指令INT,执行该指令后,系统会转入执行一段驻留在主存中的系统程序,该程序主要完成对系统某一资源的访问效劳。
故障中断主要是指由系统软硬件故障引起的中断,如内存校验故障、电源掉电、除零错、算术溢出、内存越界、指令非法、虚拟存储器页面失效等。
计算机中断源的类型归纳总结如下列图所示。
计算机中断源的类型
2.中断控制的根本原理
前面已经提到,程序控制方式在多道程序系统中会因为某一程序长时间占用CPU进展输入输出操作而浪费CPU资源,而中断控制方式那么可以有效提高CPU利用率。
下面我们通过比照程序控制方式和中断控制方式下CPU控制打印机打印输出的过程阐述中断控制的根本原理。
下列图〔a〕和〔b〕分别给出了程序控制方式和中断控制方式这两种方式下打印机的打印输出过程。
程序控制方式和中断控制方式下打印输出的过程比照
从上图可以看出,在程序控制方式下,当CPU执行的一个主程序要打印输出数据时,首先启动打印机,使打印机进入打印准备工作状态。
在打印机准备的过程中,CPU一直处于查询等待的状态,即查询打印机是否准备就绪。
当CPU查询到打印机已做好打印准备时,便向打印机传送第一个数据,打印机接收到该数据后进展打印。
在打印机打印的过程中,CPU又开场进入查询等待状态,等到打印机打印完一个数据,可以接收下一个数据时,CPU再向打印机发送下一个数据。
如此重复,直到将所有数据打印完。
一般来讲,CPU向打印机传送一个数据的时间远比打印机打印一个数据所花的时间少得多,而在上述过程中,当打印机进展打印操作时,CPU一直在执行一段查询打印机状态的循环控制程序,无法执行其它程序,这对CPU资源是极大的浪费。
而在中断控制方式下,情况就不一样了。
当CPU执行的一个主程序要打印输出数据时,首先启动打印机,使打印机进入打印准备工作状态。
在打印机准备的过程中,CPU可以由系统调度去执行其它的主程序。
当打印机做好打印准备时,向CPU发出一个中断请求信号,CPU接收到该请求后,暂停正在执行的主程序,向打印机传送一个数据,然后返回被中断的主程序继续执行。
打印机接收到数据后进展打印,打印完成后,又向CPU发出中断请求,CPU响应中断,向打印机传送下一个数据进展打印。
如此重复,直到将所有数据打印完。
从这一过程我们注意到,在打印机打印的同时,CPU可以被调度执行其它主程序,而无需查询等待,使CPU的利用率得到了提高。
通过对以上两种不同控制方式控制打印机打印输出的过程进展比拟可以看出它们的不同之处:
〔1〕程序控制方式下,CPU是通过查询方式了解打印机的状态的;而中断控制方式下,CPU是通过中断方式了解打印机的状态的。
〔2〕程序控制方式下,CPU和打印机之间是串行工作的;而中断控制方式下,CPU和打印机可以并行工作。
〔3〕程序控制方式对于单用户单道程序系统来说是有效的;而中断控制方式对于多用户多道程序系统来说可以大大提高CPU的利用率。
3.中断处理过程
一个中断的处理过程是由中断源的中断请求引起的。
在一个实现了中断系统功能的机器中,CPU在执行一个主程序时,每执行完一条指令都会检查是否有中断请求发生,假设无,那么继续执行原程序,假设有,那么在条件满足的情况下,暂停正在执行的程序,对中断请求进展响应。
在中断响应过程中,中断系统要识别是哪一个中断源发出的中断请求,在有多个中断源同时发出中断请求的时候还要决定首先响应哪一个中断源的请求。
在确定了要响应的中断源后,进入对该中断源的中断请求进展处理的中断效劳程序去执行,执行完后返回原被中断的程序继续执行。
中断系统的中断处理过程如图所所示。
中断处理过程
〔1〕中断请求的建立
在中断系统中,外部中断源及硬件故障中断源的中断请求是由硬件实现的,当某中断源要向CPU发出中断请求时,首先通过硬件方式为其建立和保持一个中断请求信号。
通常是在其中断接口电路里设置一个“中断请求触发器〞,当中断源有中断请求时〔对设备来说就是设备准备就绪,对故障中断源来说就是发生了硬件故障〕,将接口中的中断请求触发器置位,中断请求触发器的输出将作为发往CPU的中断请求信号。
为了控制的灵活性,通常在中断接口电路中还会设置一个中断屏蔽触发器,其作用是对中断源的中断请求进展屏蔽和开放。
中断系统允许在程序中对中断屏蔽触发器进展设置,以决定在程序的执行过程中哪些中断源允许请求中断,哪些中断源不允许请求中断。
在一个机器系统中,往往有多个中断源,将这些中断源的中断请求触发器合在一起便构成一个中断请求存放器,而这些中断源的中断屏蔽触发器合在一起构成一个中断屏蔽存放器。
其中,中断屏蔽存放器作为I/O端口可供CPU访问,在程序中通过将一个中断屏蔽字写入该端口,便可实现对中断源的屏蔽和开放功能。
〔2〕中断响应
CPU在其中断请求线上检测到外部中断源的中断请求时,并不是都会给予响应的。
通常,大多数CPU内部都设置了一个中断允许触发器,该触发器的作用是对中断请求线上来的中断请求进展制止和允许。
中断允许触发器可以通过CPU提供的指令进展设置,例如,8086/8088CPU提供了两条指令STI和CLI,前一条指令称为开中断指令,用于将CPU内部的中断允许触发器置1,即中断允许或开中断;后一条指令称为关中断指令,用于将中断允许触发器清0,即中断制止或关中断。
在CPU处于中断允许状态时,可以对来自中断请求线上的中断请求进展响应;而CPU处于中断制止状态时,那么对来自中断请求线上的中断请求不予响应。
当然,并不是所有中断源的中断请求都能被CPU制止,尤其是一些比拟紧迫的事件的中断,如因电源掉电、内存校验出错等导致的硬件故障中断,CPU必须立即响应。
因此,多数CPU在引脚设计上会设置多条中断请求信号线,一些用于可屏蔽的中断请求,一些用于非屏蔽的中断请求〔如8086/8088CPU的INTR和NMI〕。
一旦CPU响应了中断,便进入中断响应周期。
在中断响应周期里,中断系统主要完成以下三项功能:
ⅰ〕关中断和保护断点。
CPU响应中断时,会自动执行一条中断隐指令,一方面将中断允许触发器清零,即关中断;另一方面将CPU内部的指令指针和程序状态字PSW等压入堆栈。
当前指令指针指向的是下一条要执行的指令,又称为断点,将指令指针压入堆栈的目的是为了使得在中断效劳程序执行完后能正确返回到当前被中断的程序的下一条指令继续执行。
而程序状态字PSW记录的是当前指令执行完后程序和机器的状态,将PSW压入堆栈的目的是为了保证中断返回后PSW能恢复成被中断前的状态。
ⅱ〕进展中断源的识别。
一个机器的中断源和CPU的中断请求线往往不是一一对应的,换句话说,CPU的一条中断请求输入线会对应多个中断源的中断请求输出。
当CPU检测到一条中断请求信号有效时,它可以判定外部中断源有了中断请求,但却无法确定具体是哪一个中断源发出的请求。
因此,在中断响应周期,CPU要对发出中断请求的中断源进展识别。
另外,在某一时刻,有可能同时有两个或两个以上的中断源向CPU发出中断请求信号,而CPU一次只能响应一个中断源的请求。
在这种情况下,CPU除了进展中断源的识别外,还要根据一定的规那么选择其中一个进展响应。
ⅲ〕形成中断源中断效劳程序的入口地址。
每一个中断源都对应有一段驻留在内存中的软件程序,称为中断效劳程序,该程序的功能是完成中断源需实现的功能。
例如,打印机是一个中断源,它所对应的中断效劳程序的功能是实现CPU向打印机传输数据。
在中断响应周期,识别中断源后,最后还需形成该中断源对应的中断效劳程序在内存的入口地址,以便CPU从当前被中断的主程序转入中断效劳程序执行。
〔3〕中断源识别
中断源识别的任务是确定某次中断响应具体该响应的是哪个中断源。
中断源识别的方法很多,常用的方法主要有软件查询法、硬件查询法和中断向量法等。
软件查询法是通过执行一段软件查询程序,对中断请求存放器的状态逐位判断,从而确定某次该响应的是哪个中断源。
前面讲到,将各中断源接口电路中的中断请求触发器合在一起构成一个中断请求存放器,也就是说,中断请求存放器的每一位就对应了一个中断源的中断请求状态。
将中断请求存放器的内容读出,按某一种顺序一位一位进展判别,遇到第一个“1〞,这一位所对应的中断源就是本次CPU识别响应的中断源。
硬件查询法是通过专门的硬件电路实现中断源识别。
一种实现中断源识别的串行排队链路如下图。
串行排队链中断源识别
在中断响应周期,CPU发出查询信号POL,沿着串行排队链依次经过各中断源接口。
当POL到达某一中断源接口时,如果该中断源没有中断请求,那么将POL信号继续往下传;如果该中断源有中断请求,那么POL信号不再往下传,接口向CPU发答复信号SYN,同时形成中断源的中断效劳程序入口地址,经数据总线传送给CPU。
中断向量法是一种通过硬件控制电路形成一个所识别的中断源的中断向量号,并由此中断向量号实现中断响应的方法。
在这种方法中,每个中断源对应有一个中断向量号,中断向量号对应一个中断向量,即中断效劳程序入口地址,将所有中断向量集中存放在内存中的一片固定区域中。
在中断响应周期,首先由一个专门的中断控制电路进展中断识别,并形成一个对应该中断源的中断向量号;然后将此中断向量号传送给CPU;最后由CPU依据中断向量号生成该中断源的中断向量在内存中的首地址,从这一地址单元中即可取出中断效劳程序的入口地址。
如下图。
向量中断示意图
x86CPU采用的就是中断向量法,其中断响应过程如下:
ⅰ〕当某一中断源i需要申请中断时,向中断控制电路发出一个请求中断信号INTi;
ⅱ〕在该中断源的中断请求未被屏蔽的情况下,中断控制电路向CPU发出中断请求信号INTR;
ⅲ〕在CPU处于开中断的情况下,CPU响应中断,向中断控制电路发回一个中断响应信号INTA;
ⅳ〕中断控制电路完成中断源的识别,并将中断源的中断向量号通过数据总线传送给CPU;
ⅴ〕CPU依据此中断向量号计算得到中断向量地址,并从此地址单元中取出该中断源对应的中断效劳程序入口地址。
〔4〕中断效劳
CPU在中断响应周期获取到中断效劳程序入口地址后,便可转入中断效劳程序执行。
一般来讲,中断效劳程序包括以下几个过程:
ⅰ〕保护现场。
所谓现场是指主程序执行完当前指令时的一些存放器内容等。
由于中断效劳程序在执行过程中有可能用到主程序使用到的一些存放器,因此必须在执行中断效劳程序前将这些存放器的内容保护起来。
保护现场的具体方法就是将CPU所有程序可用的存放器内容压入堆栈,以便待从中断效劳程序返回到主程序时再将这些存放器的内容恢复到中断前的状态。
ⅱ〕开中断。
前面讲到,CPU响应中断时执行了一次硬件自动关中断的操作,这次关中断的目的是阻止在保护现场的过程中再次被中断。
如果本次执行的中断效劳程序在后续的中断效劳过程中允许其它的中断,在这里就必须开中断。
开中断的方法是执行一条开中断指令,将CPU的中断允许触发器置位。
ⅲ〕中断效劳。
其实,中断处理的核心就是执行这里的中断效劳,在此之前和之后的所有操作都是为这里的中断效劳提供支持的。
中断效劳的内容就是完成中断源的功能。
例如,键盘作为计算机的标准输入设备,它与CPU之间采用的是中断控制方式进展数据传输。
每当用户在键盘上敲一个键,就会由键盘接口电路产生一个中断请求信号发往CPU,CPU响应键盘中断后进入中断效劳程序。
在键盘中断效劳程序里的中断效劳主要实现对用户所敲键的识别,并根据所敲键实现相应的功能。
ⅳ〕关中断。
这次的关中断是在程序中使用关中断指令将CPU中的中断允许触发器清零,制止一切可屏蔽中断,使后续的恢复现场工作不再被新的中断源中断。
ⅴ〕恢复现场。
将中断效劳程序开场时保护起来的存放器内容恢复到中断响应前的状态,假设保护现场使用的是入栈的方法,那么恢复现场那么使用相应的出栈操作。
ⅵ〕开中断。
再次使用开中断指令将CPU的中断允许触发器置位,以便该中断效劳程序执行完后系统恢复到正常中断工作状态。
ⅶ〕中断返回。
CPU的指令系统通常会提供一条中断返回指令,中断效劳程序完毕前执行中断返回指令,执行该指令的结果是将系统中断响应保护断点时压入栈的内容出栈,一是恢复PSW值,二是恢复主程序被中断时的指令指针值,从而将程序控制返回到主程序被中断的指令继续执行。
三、什么是8259
8.3.48259A中断控制器
8259A是一个可编程的中断控制器,应用在实时的、以中断方式进展监控的计算机系统中。
用一片8259A可以管理8个等级的中断申请。
并可再经级联扩展多至8片8259A,使得中断等级可扩展多至64级。
8259A可以作为一个I/O外围器件,用系统软件编程,它所具有的多种优先权方式可以通过主程序在任何时候进展改变或重新组织。
这意味着可以按照全系统的外围情况和要求,设计出一个完整的中断构造,用来实现优先管理、中断屏蔽以及自动中断矢量转移。
它几乎可以适合于任何一种中断控制的构造,因而得到了广泛的应用。
1.8259A引脚及功能
8259A管脚示意图
8259A为28脚双列直插式封装的器件。
Vcc(28):
输入,=5C电源。
GND(14):
输入,地。
D7~D0(4~11):
输入或输出,双向数据总线,8259-A通过该引脚与CPU通信,传送命令、状态和中断矢量信息。
较大的系统中需接总线驱动器,在小系统中可直接连接之。
CS
(1):
输入,读,用于表示在访问8259A。
该引脚通过地址译码器连接至地址总线。
WR
(2):
输入,写,通知8259A接收数据总线上的数据,并用这些数据设置命令字。
RD(3):
输入,读,用于通知8259A将IMR,ISR或IRR存放器。
INT(17):
输出,中断申请。
当8259A接到从外设经IR脚送来的一个有效的中断请求时,将从这脚输出高电平,并对CPU提出中断申请。
该脚连到CPU的INTR引脚。
IR0~IR7(18~25):
输入,中断请求。
接口或其它8259A(称为从控制器)上接收异步的中断请求。
在边沿触发方式中,IR输入应保持高电平。
INTA(26):
输入,中断响应,用来通知8259A中断申请已被响应,使其将中断矢量送到数据总线上。
8259A认为中断响应信号由两个负脉冲组成,因而它能与8086/8088系统兼容。
A0(27):
输入,地址线。
这个脚与CS,WR或RD联合使用,用于表示正在访问8259A的哪个端口。
8259A从中识别出CPU是要写命令还是要读状态。
典型的接法是连到CPU的A0地址线(8080A或8085)上,对于8086那么为A1地址线。
因为8259A只有8根数据引脚,而8086总是从其16位数据总线的低8位输入中断指示字,所以8086与8259A的所有数据传送只能用数据总线的低位进展。
要保证所有传送都用总线的低位,最简单的方法是将A0与8086总的A1相连接,使用两个相邻的偶数地址且第一个地址可被4除尽,所以编程时要特别注意配合。
系统中每块8259A须在I/O地址空间中保存两个地址。
SP/EN(16):
输入或输出,为双功能脚。
在缓冲方式中,该引脚被用作输出线,控制总线缓冲器的接收或发送;在非缓冲方式中,那么作为输入线,确定该8259A是主控制器(SP/EN=1)还是从控制器(SP/EN=0)。
CAS0~CAS2(12,13,15):
输入或输出,级联总线。
用于区分特定的从控制器件。
8259A作为主控制时,该总线为输出,它还可控制多至8个辅从的8259A,8259A作为辅从时,它那么为输入。
2.8259A工作过程
第一步:
当中断请求线(IR0~IR7)上有信号输入时,就把中断请求存放器IRR相应的位置1。
第二步:
当IRR的一位置1后,就会与IMR中相应的屏蔽位进展比拟,如该屏蔽位为0,那么请求被发送给优先级分析器;如该屏蔽位为1,那么封锁该请求。
第三步:
当一个中断请求被输入优先级分析器后,将由优先权分析器判定其优先权,然后向CPU发中断申请,INT脚变高(INT联到8086的INTR)。
第四步:
CPU的INTR引脚为异步状态接收,也就是它可以在任何时间(与时钟无关)接收中断。
在软件控制下利用STI指令(中断置位)或CLI(中断复位)指令可分别将CPU的“中断开放标志位〞IF置位或复位,可以做到承受或不理睬在INTR上的中断申请。
第五步:
假定CPU中的IF标志为1,那么CPU在完成当前指令的即进入中断响应周期,这个中断响应周期将标志存放器入栈,然后去除IF标志,关闭了中断。
再将代码段存放器和指令指针也入栈〔这是为了从中断效劳程序返回〕,然后CPU发出第二个INTA脉冲通知8259A,说明8086已经允许了它的中断请求。
假设8086用于“最小方式〞,那么INTA脉冲信号为8086INTA引脚上的信号;假设8086用于“最大方式〞时,那么8086LOCK脚在中断响应序列执行期间变为低电平。
LOCK信号用来指示其它系统总线控制器:
当中断响应序列到来时不要获取系统总线控制,一个“HOLD〞请求在LOCK变低时不会被响应。
第六步:
8259A收到第一个INTA负脉冲后,将制止IRR锁存器,使IRR不受IR7~IR0进一步变化的影响,这种状态一直保持到第二个INTA脉冲完毕。
第一个INTA脉冲还使ISR的某一位置位,并去除相应的IRR位。
第二个INTA脉冲使ICW2当前内容被放到D7~D0上,CPU用该字节确定中断型号。
此后CPU将按照这个指定的中断类型号中的内容去执行所对应的中断程序。
注意:
假设ICW4的中断自动完毕位(AEOI)为1,那么第二个INTA脉冲完毕时,ISR中被第一个INTA脉冲置位的位被去除,否那么要等到送内含中断完毕(EOI)命令的OCW2前方能去除ISR中的该位。
第七步:
当进入中断效劳程序时,那些主程序和子程序都要用到的存放器应当保存入栈,最好的方法是立刻“PUSH〞每个用到的存放器入栈。
当中断效劳程序完成后,再以相应的反次序“POP〞每个存放器出栈。
第八步:
一旦中断效劳程序完成,就应用IRET(中断返回)指令使CPU再回到主程序。
IRET指令就会自动弹出中断前的指令指针,使主程序恢复到被中断之处,并且恢复中断前与中断效劳变化无关的标志状态(包括IF标志的状态)。
而中断也自动放开。
3.8259A的编程
因为8259A是可编程的中断控制器,所以它的操作是用软件通过命令进展控制的。
8259A的编程命令字有两类:
一是初始化命令字〔ICW〕,二是操作命令字〔OCW〕。
相应的8259A的控制局部有一些可编程的位,它们分布在7个8位存放器中。
这些存放器分成两组,一组用作存ICW,另一组存OCW。
当计算机刚开机时,用初始化程序设定ICW,即由CPU按次序发送2~4个不同格式的ICW,用来建立起8259A操作的初始状态,此后的整个工作过程中该状态保持不变。
相反操作命令字〔OCW〕用于动态控制中断处理,是在需要改变或控制8259A操作时发送的。
注意:
当发出ICW或OCW时,CPU中断申请脚INTR应关闭〔使用CLI关中断指令〕。
1.ICW〔ICW1、ICW2、ICW3、ICW4〕初始化命令字编程格式
(1)ICW1〔芯片控制初始化命令字〕功能介绍:
A0
D7
D6
D5
D4
D3
D2
D1
D0
0
0
0
0
1
LTIM
ADI
SNGL
IC4
16位机无效
标志位
电平触发
无效
弹片使用
需要ICW4
ICW1负责启动8259A和进展初始化工作:
1)去除IMR
2)把最低优先权分配给IR7
3)把最高优先权分配给IR0
4)将从设备标志ID置成7
5)去除特殊屏蔽方式以及设置读IRR方式
(2)ICW2〔中断类型号的设置〕功能介绍:
A0
D7
D6
D5
D4
D3
D2
D1
D0
1
T7
T6
T5
T4
T3
0
0
0
中断类型号的高5位
16位机无效
ICW2负责规定中断类型号字节。
编程时规定高5位T7---T3,低3位由IR的编码写入。
输入时地址线A0=1,IR0---IR7的中断向量为08H---0FH,PC/XT机中的T7—T3==00001,当IR4申请时8259向CPU发出中断申请的类型号为00001100==0CH。
(3)ICW3〔主/从片初始化命令字〕功能介绍:
主片ICW3:
A0
D7
D6
D5
D4
D3
D2
D1
D0
1
S7
S6
S5
S4
S3
S2
S1
S0
主片ICW3负责记录与从片哪一个输入端与从片相连。
当主片输入端IRi上连接有从片的INT时,那么Si=1;否那么Si=0
从片ICW3:
A0
D7
D6
D5
D4
D3
D2
D1
D0
1
*
*
*
*
*
ID2
ID1
ID0
从片ICW3负责自己连接到主片的哪一端。
应用ICW3时的注意点:
一、什么时候用ICW3:
即当ICW1中的SNGI位为0时,也就是工作于级联方式,才需要ICW3设置8259A的状态。
二、〔主片接出〕判断哪个引脚〔IR7—IR0〕有级联:
当D7—DO的某位为1时那么接有从片,为0时不接从片。
三、〔从片接入〕判断接入主片的哪个引脚:
是通过对D2D1D0三位的组合来判断接入的引脚。
(4)ICW4〔方式控制初始化命令字〕功能介绍:
A0
D7
D6
D5
D4
D3
D2
D1
D0
1
0
0
0
SFNM
BUF
M/S
AEOI
uPM
ICW4负责缓冲器方式和中断完毕方式的设置。
应用ICW4时的注意点:
一、什么时候写入ICW4:
当ICW1的IC=1时,才使用ICW4。
二、命令字各位所代表的含义:
UPM:
指定CPU类型:
UPM=0时,工作于8080〔8位机〕;UPM=1时,工作于8086〔16位机〕
AEOI:
指定是否自动中断完毕方式:
1:
自动中断完毕方式;0:
非自动中断完毕方式。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 接口 技术 课程设计 多级 中断 控制系统