1、实验四 微控制器实验一、实验目旳1. 熟悉微控制器的的控制原理。2. 掌握微控制器的实现方法。二、实验要求通过控制器实验,理解计算机内部工作过程,建立计算机整机工作概念。三、控制器组成控制器是计算机的指挥和控制中心,由它把计算机的运算器、存储器、I/O 设备等联系成一个有机的系统,并根据程序所特定的微指令序列对各部件的具体要求,适时地发出各种命令,控制计算机各部件有条不紊的进行工作。如图 4-1 所示,本系统控制器由组合逻辑与存储逻辑集合组成。两者按独立控制器的规范与标准设计,既可单独控制,亦可交替互补(混合)控制,在国内率先把 PLA 控制理念融入微控制器的设计与实现中。图 4-1 控制器组
2、成框图1. 组合逻辑型如图 2-4-13 所示的 PLD 框为组合逻辑型控制器,由可编程器件 XC9572 独立组成,在器件编程环境的支撑下完成微操作控制信号的设计与下载。以取得最高操作速度为设计目标,它的缺点是繁锁、杂乱、缺乏规律性,且不易修改和扩充,缺乏灵活性。组合逻辑控制器实质上是一个组合逻辑电骆,它将一组输入逻辑信号转換成一组输出控制信号,可称为硬布线控制器。2. 存储逻辑型如图 4-1 所示的 CM 框为存储逻辑型微程序控制器,它是采用存储逻辑来实现的,也就是把微操作信号代码化,使每条机器指令转化成为一段微程序,存入控制存储器中,微操作控制信号由微指令产生。微程序控制器的设计思想和组
3、合逻辑的设计思想截然不同。它具有设计规整,调试、维修以及更改、扩充指令方便的优点,易于实现自动化设计,已成为当前控制器的主流。但是,由于它增加了一级控制存储器,所以指令的执行速度比组合逻辑控制器慢。3. 组合逻辑与存储逻辑结型如图 4-1 所示,本系统控制器由组合逻辑与存储逻辑集合组成 PLA 控制器,它是吸收前两种的设计思想来实现的。PLA 控制器实际上也是一种组合逻辑控制器,但它又与常规的组合逻辑控制器的硬联结构不同,它是程序可编的,某一微操作控制信号由存储逻辑控制器产生。4. 关于组合逻辑控制器实验组合逻辑控制器由大规模可编程器件的软逻辑设计定义,渉及器件的开发环境,我们在基于“RISC
4、” (精简指令集)处理器构成的模型机实验中论证。这里以微程序控制器为例展开控制器的原理组成与顺序控制实验。四、微程序控制器微程序控制的实质是用程序设计的思想方法来组织微操作控制逻辑,用规整的存储逻辑代替繁杂的组合逻辑。把各条指令的微操作序列以二进制编码字的形式设计成微程序,存放在控制存储器中,通过读取并执行相应的微程序实现一条指令的功能。这就是微程序控制的基本概念。1. 微程序控制器的组成结构1)控制存储器 CM如图 4-2 所示的 CM 框为微程序控制器,由 2 片 6264 和 1 片 6116 共三片静态存储器平行组成。它们的地址通路由微程序计数器 PC 供给,其寻址范围为 07FF.控
5、制器设有段微址,2 片 6264 的数据端在段微址的指示下分时输出下址与微控制信息,并和 6116 的数据端平行组成 24 个途经三态门隔离驱动的微控制位(M23M0) 。M23M19 M7M0M18M8直控字段 目的字段 运算字段 源字段下续微地址字段识别字段保留段表 4-1 微指令的重叠结构定义2)微程序计数器 PC图 4-2 所示的微地址计数器框由 3 片 161 构成按字方式寻址的 uPC 计数器,计数器的输入端通过微总线(ubus)从指令译码器 ID、微控制器( CM)的下址段捕捉非因变分量,从运算标志 PSW、中断请求标志 INQ 等标志中捕捉因变分量。计数器的输出端组成 12 位
6、微地址总线,控制微程序存储器的寻址。其中 u0-u10 为段微址,电路构造中与 2 片 6264的地址端“A11”相连,它零状态输出微控制信息, “1”状态输出下续微地址。它的清零端由中央外理器单元直控,上电时 uPC 计数器自动淸零,实验中按 【返回】键亦可实现计数器的手动淸零。操作控制字段下续微地址控制字段译码微命令u10 u0 M23M0M2 M1 M0CMPC ARE/M 主存IR IDPSWINQ 微地址形成电路uPC微程序计数器T3 T2 T1图 4-2 微程序控制器原理图2. 微程序的执行过程图 4-2 所标示的字号表示微程序控制的全部工作过程。1)启动取指微指令或微程序,根据程
7、序计数器 PC 所提供的指令地址,从 EM 主存中取出所要执行的机器指令,送入指令寄存器 IR、指令译码器 ID 中,并且完成 PC+1,指向机器指令的下址单元。2)根据 ID 译码器中的指令码,把微地址形成电路产生的机器指令起始微地址打入PC。3)从 PC 所指定的 CM 控制存储器单元分时输出微操作控制字段与下续微地址控制字段。4)微指令的操作控制字段经译码或直接产生一组微命令,控制有关功能部件完成微程序所规定的微操作。 5)微指令的下址段及当前 PSW、INQ 等标志送往微地址形成电路,产生下条微指令的地址,进入读取与执行下条微指令。如此循环,直到一条机器指令的微程序全部执行完毕。译码器
8、 译码器直控字段 目的寻址字段运算字段 源寻址字段 识别字段下址段M7M0M15M11 M10M8M18M16M23M19M18M8微操作命令 目的微操作 运算微操作 源微操作 识别判断字d10 d0 图 4-3 微指令控制格式3. 微指令格式及编码本系统采用字段直接编码法,把微指令操作控制字段划分为若干个子字段,每个子字段的所有微命令进行统一编码。如图 4-3 所示,本控制器微指令字长 35 位,其中 24 个操作控制位分别由识别字段、判断字段、运算控制字段、源寻址字段、目的寻址字段及直接控制字段组成。在下址捕捉时段由 M18M8 输出字为十一位的后续微地址。识别字段M4、M1 、M0 分别
9、定义 I、Icz、Ids,组成下址识别字段。它们的编码下表所示。表 4-2 手控态识别字段编码表M4 M1 M0I Icz Ids 说明0 1 1 微址加 10 0 0 执行周期微变址0 0 1 无条件任意变址1 0 1 带进位标志变址1 0 0 带零标志位变址M2 定义为取指控位 IR表 4-3 取指控制一览表M23 M21 M2IP MWR IRT2 T3 T4 说明0 1 0 打操作码0 1 0 PC+10 1 0 打操作数*注释:当 IP 为“1”时 PC 不变,当 MWR 为“0”时执行指令寄存器写入操作M3 定义为中断控位 IE,中断源控制见表 4-4表 4-6。1. 中断允许控制
10、 IEQ表 4-4 中断允许控制表K7 K6 K3 K0 节拍Op W Ie Ids T4 功能 说明1 1 0 1 1IEQ 开中断1 0 0 1 0IEQ 关中断2. 中断响应控制 IAQ表 4-5 中断响应控制表K7 K6 K3 K0 节拍Op W Ie Ids T4 功能 说明0 1 0 1 1IAQ 中断响应0 0 0 1 0IAQ 中断退出3. 中断请求控制 INQ表 4-6 中断请求控制表IEQ IAQ INT T4 功能 说明1 0 0 1INQ 锁存请求X 1 X 0IAQ 清除请求运算字段M15M11 分别定义 M、S2 、 S1、S0,组成运算控制字段,其编码见实验一表
11、1-1。源控制段M10M8 组成 X2、X1、X0 源寻址段,其编码见表 4-7。表 4-7 源与目的寻址编码表总线源编码 在线态目的编码M10 M9 M8 M19 M18 M17X2 X1 X0 功能 O2 O1 O0 功能1 1 1 禁止 1 1 1 禁止1 1 0 ALU 1 1 0 MAR1 0 1 SP 1 0 1 BX1 0 0 IOR 1 0 0 AX0 1 1 MRD 0 1 1 SP0 1 0 XRD 0 1 0 IOW0 0 1 RRD 0 0 1 XWR0 0 0 PC 0 0 0 RWR目的控制段M19M17 组成 o2、o1、o0 目的寻址段。其编码见表 4-7.直接
12、控制字段M6 定义为字长控位 W,当 W=“0”时当前总线宽度为十六位;若 W=“1”根据总线源的奇偶特性形成偶递奇或奇递偶的八位字节总线。M7 定义为源奇偶特性控位 XP,在 CPU 特约的工作寄存器寻址中,当 XP=“0”时源寄存器为偶寻址,总线宽度由字长控位“W”定义;若 XP=“1”源工作寄存器为奇寻址,并且形成奇递偶的八位字节总线。在存储器或指令操作数字段为源的寻址中,XP 可指定操作源的途径,亦可作为识别控位用。M16 定义为目的奇偶控位 OP,在 CPU 特约的工作寄存器寻址中,当 OP=“0”时目的工作寄存器为偶操作,若总线宽度 W=“0”时以字为目标,遇 W=“1”时以字节为
13、目标;若 OP=“1”目的工作寄存器为奇操作,以奇字节为目标。在存储器或指令操作数字段的目的寻址中,OP 可指定目标操作途径,亦可作为识别控位用。M5 定义为运算源控位 ALU,当 ALU=“1”时运算器以 AX、BX 寄存器为源,若ALU=“0”运算器以当前源编码的定义部件为源。M20 定义为寄存器与内存选择控位 R/M,当 R/M=“1”时选择工作寄存器,若R/M=“0”选择内存。M21 定义为 EM / RM 主存及指令寄存器 IR 写命令 MWR,当 MWR=“0”、IR=“1”时执行存储器的写入操作。当 MWR=“0”、IR=“0”时执行指令寄存器 IR 写入操作。M22 定义为程序
14、计数器使能控位 IP,当 IP=“1”时程序计数器 PC 处保持状态,当IP=“0”时,遇 E/M=“0”执行 PC 地址的装载,若 E/M=“1”执行 PC+1。M23 定义为程序与数据的段地址选择控位 E/M,当 E/M=“1”时,主存以当前程序指针 PC 为 Addr 地址总线;当 E/M=“0”时,主存以当前 AR 为 Addr 地址总线。下址段由 M18M8 组成 D10D0 共十一位下址微总线,在下址形成时段 M18M8 输出下续微地址总线。4. 取址微操作流程取指周期是每条指令都要经历的周期,因此取指周期的操作称为公操作。在取指周期完成将现行指令从存储器中取出送往指令寄存器 IR
15、,并执行 PC+1PC,指向程序指令的下址。从上图 001 号微单元所示的取指流程可知, “取指”按字节方式分时实现,执行时首先把操作码所在字节打入指令寄存器 IR 偶单元,然后把 PC+1 单元的内容打入 IR 奇单元,执行操作数的存储。在同一机器周期内按字节方式分时实现十六位指令寄存器的打入操作。五、控制器特约定义为了迫使微程序控制器在上电或复位时按照预设的初始微操作信息步入正常工作状态,我们按照通用机设计规范强制定义了三个关联单元的微控制格式。1. 初始复位单元微程序定义初始复位微地址控制器的微地址计数器 upc 初始复位状态为零,上电时微计数器自动淸零,实验中按【返回】键亦可实现微计数
16、器的手动淸零。零微址单元格式零微址单元的微操作编程为空操作,下址为增量计数方式。其十六进制的指令格式为:FF FF FF FF FF下址段 微指令控制段2. 取指周期微址与微操作定义控制器定义 001h 单元为取指微入口,下址由指令译码器 ID 指定。其十六进制指令格式为:FF FF BF FF FB下址段 微指令控制段3. 中断控制微址与微操作定义控制器定义 003h 单元为中断响应微入口,下址为增量计数方式。其十六进制指令格式为:FF FF FE FF F7下址段 微指令控制段六、微控制器实践微控制器的格式及控位定义渉及机器指令的设计,我们结合模型机运用实践加予阐述与论正。这里围绕微控制器
17、的顺序控制,以“取指”微操作所形成的微入口作为切入点,用手控方法模似微控制器的顺序控制过程,验证微控制器的基本工作原理。首先把系统工作状态设置为“手动/在线”方式。1. 指令微地址的形成实验我们默认操作码段的字长为八位,从 PC 零地址开始,向 EM 主存写入指令码,然后模拟“取指”微操作中机器指令起始微地址的形成。K23K0 置“1” ,按【返回 】键迫使 PC=0,向程序段依次写入00h、80h、0C0h、0FFh。置数S15S0=8000S15S0=FFC0C0 02X2 X1 X0=100W XP=10写数据FF03写数据80 送01XP=1按【单拍】钮写数据0000E/M IP MW
18、R=100按【单拍】钮XP=0按【单拍】钮XP=1按【单拍】钮机器指令写入成功后,令 K23K0 为“1” ,灭 M23M0 控位显示灯,按复位键使PC=0000H,然后令 LDPC IR=00,点亮 M22、M2 控位显示灯,按【单拍】按钮执行取指微操作,把指令码 00h 打入 ID 指令译码器,uPC 自动转入机器指令“00h”的微入口地址600h,ID 按下流程完成取指微操作。按【单拍】按钮取指 PC+1IP IR=00逻辑左移 1 位(00000000)加基地址600h下续微地址uPC=600h关闭控位M23M0 灯灭按【返回】键保持当前“取指”状态,每按一次【单拍】按钮,uPC 依次
19、变址为700h、780h、7FEh随机,当 PC004h 后,每按一次 【单拍】按钮,uPC 随机散转。之后在按复位键,使 PC,uPC 恢复为零。2. 后续微地址的形成实验找到初始微地址,开始执行相应的微程序,每条微指令执行完毕,都要根据要求形成后续微地址。后续微地址的形成方法对微程序编制的灵活性影响很大。本系统采用断定方式,其后续微地址的定义可由设计者指定或由设计者指定的下址与识别判断字段指定的条件组合产生。增量计数实践默认当前 uPC,K23K0 置“1” ,在 M23M0 控制灯全灭的状态下,令 Iu(K4)=0,按【单拍】按钮,uPC 执行现行微地址的增 1 计数操作。当前 uPC
20、当前 uPC+1 当前 uPC+1 当前 uPC+1Iu=0 按【单拍】按钮 按【单拍】按钮当前 uPC+1按【单拍】按钮按【单拍】按钮按复位键,使 uPC 恢复为零绝对变址实践微程序控制器支持设计者在微程序控制器的 0047FF 范围内任意选择与指定后续微地址。操作方法如下:变址设置 设下续微址I/O=0100h 微变址uPC=100 微变址uPC=311Iu Icz Ids=001 X2 X1 X0=100W XP =00按【单拍】按钮设下续微址I/O=0311h按【单拍】按钮按复位键,使 uPC 恢复为零条件变址实践条件变址的后续微地址由非因变分量和因变分量两部分组成,非因变分量是由设计
21、者直接指定,对应下址段 ud10ud1。因变分量以当前运算标志为条件产生,对应下址段ud0。进位变址实验我们以准双向 I/O 部件 S10S0 模拟非因变分量部分的微地址,因变分量部分通过进位标志的置位清零操作产生,形成以进位标志为条件的后续微地址。K23K0 置“1” ,灭M23M0 控位显示灯,按【返回】键后照下流程操作。CY 灯亮 设非因变分量I/O=0100h条件变址uPC=101h条件变址uPC=100h令 CN=0按【单拍】按钮X2 X1 X0=100W XP =00CN=1令 Icz=0按【单拍】按钮CY 灯灭CN Icz=10按【单拍】按钮CN Icz=01按【单拍】按钮按复位
22、键,使 uPC 恢复为零零标志变址实验我们仍以准双向 I/O 部件 S10S0 模拟非因变分量部分的微地址,因变分量部分通过运算操作动态产生零标志,形成以零标志为条件的后续微地址。首先按【返回】键,清零运算寄存器 AX、BX,令 X2X0=111,然后按下流程操作。Z 标志灯亮 设非因变分量 I/O=0200h 条件变址uPC=201h 条件变址uPC=200h令 ALU Icz=01按【单拍】按钮X2 X1 X0=100W XP=00ALU Icz Ids =100按【单拍】按钮Z 标志灯灭Icz Ids=00按【单拍】按钮S0 ALU Icz Ids=0011按【单拍】钮按复位键,使 uP
23、C 恢复为零中断变址实践控制器把机器指令最后一个机器周期定义为中断测试微周期,它的后续微地址由取指公用微地址与中断请求源 INQ 两个部分组成,微总线指定为 “001h”,其中 ud1=/INQ。当INQ=“1”时,即无中断请求时它的后续微地址为 001h,执行机器指令的取指操作;遇INQ=“0”它的后续微地址为 003h,执行中断响应微程序。实验时我们以准双向 I/O 部件 S10S0 模拟产生取指微地址,由中断组成机制产生中断请求信号 INQ,观察取指与中断响应微程序入口地址的形成。实验时用一双头实验导线将中断请求源输入插孔 XINT 与中断源产生插孔 INT 相连接,按【返回】键,K23
24、K0 置“ 1”,灭 M23M0 控位显示灯,照下流程实施“取指”与“变址”操作。中断请求IEQ 灯亮LCD 视窗INQ=0中断变址uPC=003h中断服务uPC=001hIE=0按【单拍】按钮按【中断】按钮IE=1 Iu Icz Ids=000按【单拍】按钮中断响应IAQ 灯亮OP IE=11Iu Icz Ids=000按【单拍】按钮OP IE=00Iu Icz Ids=111按【单拍】按钮7、实验报告1.根据课堂讲解内容和实验过程,画出 upc 发出的地址总线和两片 6264 以及 1 片 6116 的地址引脚的连接,画出这三片 RAM 的数据端口如何组成微指令的。2.以一条机器指令为例,画出从 pc 向程序内存段存指令,然后从程序内存段取指令,并将其打入 IR,让其散转为微程序入口地址的过程。3.描述实验现象。