本帖最后由 tongguan123 于 2022-6-8 22:30 编辑
第四章 东芝微控制器,内核示例(TLCS-870/C1)
1 CPU整体配置
CPU具有用于存储读取指令存储器地址的存储电路、用于暂时存储读取指令的存储电路、用于存储数据的存储电路以及用于执行计算的运算电路。
 8位微控制器功能框图

2 CPU整体配置:CPU核心(1)
PSW(程序状态字):用于保存操作结果和指令执行结果状态的寄存器,由各种标志组成。
通用寄存器:储存数据的存储电路。根据存储电路的位置,通用寄存器分别称为W、A、B、C、D、E、H、L等。储存计算结果的地方称为累加器。在TLCS-870/C1中,W、A、B、C、D、E、H、L、IX和IY这十个寄存器具有累加器功能。
程序计数器(PC):用于储存存储器地址以读取指令的存储电路。
 各种寄存器

3 CPU整体配置:CPU核心(2)
ALU(算术逻辑单元):用于执行计算的运算电路。
指令寄存器:用于暂时存储读取指令的存储电路。
指令解码器:对存储在指令寄存器中的指令进行解密,并将其发送到控制单元。
中断控制电路:控制中断功能。
 计算部分、指令部分、中断电路

4 CPU整体配置:程序计数器
程序计数器(PC)是管理下一步要执行的指令的存储器地址的寄存器。每次执行一条指令时,程序计数器指定的地址将+n(1字指令为+1,2字指令为+2)。但是,在中断指令等情况下,将存储跳转目标地址。 调用执行指令
CPU从PC读取下一条要执行的指令所在的地址,并依次执行。例如,如果PC中存储了0x8020(地址),则意味着CPU正在执行地址为0x8019的指令。如果从PC读取了地址0x8020,则用于读取CPU下一步要执行的指令的地址0x8021将储存在PC中。 调用下一个指令的存储地址(程序计数器)

5 CPU整体配置:通用寄存器通用寄存器可用于各种用途,例如累加器和数据处理。TLCS-870/C1有八个8位寄存器:W、A、B、C、D、E、H和L。这八个寄存器也可以作为16位寄存器成对使用:WA、BC、DE和HL。这些组合只适用于相邻的寄存器,例如,B和E、H和E等不能组合。 通用寄存器(1)
此外,TLCS-870/C1还有两个16位通用寄存器IX和IY。这些寄存器主要作为访问存储器时的索引寄存器。TLCS-870/C1有两组这样的寄存器。 通用寄存器(2)

6 CPU整体配置:PSW(标志)执行指令后,会有一个标志指示存储器的内容以及计算结果的状态。PSW(*)收集这些标志。* PSW:程序状态字 PSW(*),储存计算结果的状态
下图是A寄存器(00111110)和B寄存器(11100000)相加的例子。计算结果(100011110)储存在A寄存器中。但是,由于A寄存器只能储存8位,所以将进位标设置为“1”,并将进位标志保留为发生进位的信息。在A寄存器中,存储不包括最高有效位1的(00011110)作为计算结果。例如,如果计算结果是(100000000),则在进位标志中设置1,(00000000)储存在A寄存器中,所以在零标志中设置1。 计算结果的内容写入PSW

7 CPU整体配置:堆栈和堆栈指针发生中断请求时,堆栈用于临时保存在中断发生之前正处于运行状态的程序的标记以及PC值。中断处理完成之后,将恢复堆栈中保存的标志等信息,并继续运行暂停的程序。 中断的发生
堆栈指针用于管理堆栈,并指示PC和标志的保存地址。堆栈中要放入和取出的数据采用FILO(先进后出)法管理,先储存的数据后取出。在该堆栈中储存数据称为“Push”(压栈),从该堆栈中读取数据叫做“Pop”(出栈)。堆栈指针由“Push”前进,由“Pop”返回。 FILO法(先进后出法)

8 中断处理中断处理是指当微控制器接收到外部中断请求,并处于可以接受中断的状态时,暂停正在执行的程序,并执行另一个程序。当外部设备的中断请求信号输入到CPU上的中断专用端子时,当前正在执行的程序暂停,微控制器切换到中断时要执行的程序,执行该程序.当中断处理程序结束之后,返回原程序,从暂停处理的程序重新启动。 中断发生时的操作

9 中断处理:中断类型中断有两种:硬件中断和软件中断。
硬件中断通过外围电路的中断请求信号来发生中断。另一方面,软件中断则通过执行专用指令来发生中断。 中断类型
硬件中断分为外部中断和内部中断。
当指定的信号输入到专门的外部中断端子时,就会发生外部中断。内部中断则通过微控制器内置的外围电路发出中断请求信号而发生。此外,根据中断请求信号的接收方式,还分为可屏蔽中断和不可屏蔽中断。 发生中断的各种因素

10 中断处理:可屏蔽中断这里的“可屏蔽”是指“被禁止”。当发生中断请求信号时,如果CPU设置为启用中断,就可以执行中断处理。如果中断设置为禁用,则将忽略中断请求信号,不执行中断处理。忽略的中断请求信号会被保留,直到中断请求变为启用或者命令被程序取消。这样,可屏蔽中断可以自由地启用或者禁用中断处理。它通常由程序设置。当CPU收到中断请求信号之后,中断控制电路将转入中断处理操作。 可屏蔽中断

11 中断处理:不可屏蔽中断不可屏蔽中断不能禁用。如果有中断请求,CPU将无条件地执行中断处理。不可屏蔽中断用于进行紧急处理,例如断电处理等数据备份处理。有一个看门狗定时器作为不可屏蔽中断。看门狗定时器检查微控制器是否正常工作。当检测到异常时,产生看门狗定时器中断,将错误通知给CPU或使CPU复位。 不可屏蔽中断
复位
微控制器通常可在接通电源时复位。复位使微控制器的配置返回初始状态。复位时,程序将从头开始运行。 复位 |