热烈庆祝北京家电维修网改版成功

创维5D20机芯原理与维修(十六)

文章整理:   来源:  作者:   点击:

第十一章 红外遥控系统

随着科学技术的迅猛发展和消费的便利要求,红外遥控系统在生活中起着很重要的作用。红外遥控系统由红外遥控发射装置(遥控器)、红外遥控接收装置(红外遥控接收头)和微处理器( CPU 或 MCU )三大部分组成。

在发射端,遥控器依据操作指令按照某种编码方式将各项控制功能进行编码,编码的信号经过驱动,从红外发射二极管中发射,这样编码的信号以红外光作为传输载体被发送到接收端;在接收端,红外遥控接收头将红外信号接收下来,接收的信号由微处理器内部的红外处理电路根据发送端的编码方式对接收的信号进行解调、解码和译码,得到的信号实际上代表操作项的控制功能,微处理器依据译码的信息执行相应的操作。

11.1 红外遥控发射电路

11.1.1 红外遥控发射电路原理

5D20 机芯红外遥控发射电路原理图如下:

如图 11 - 1 所示,是红外遥控发射电路原理图。当按下遥控器键盘矩阵的任意一个按键时, PCA8521 对应的识别线( SN )和驱动线( DR )将被连接,于是两线上的电位相等,相应驱动线上的脉冲(在定时脉冲的作用下产生)被送到识别线,此脉冲将触发一个键扫描事件,产生的信号被赋予特定的二进制代码,即得到一个相应的键位码,然后依据此键位码从指令编码器的 ROM 中读出相应的功能码,即完成编码,为了提高抗干扰能力,编码的信号经过移位寄存器送到脉冲发生器进行调制,调制的信号经过输出驱动电路的驱动,从 19 脚输出,输出的信号经过 Q 的倒相放大,从红外发射二极管发射出去。

编码的脉冲通常由引导码、用户码、系统码、系统反码、功能码和功能反码等组成。其中,引导码是接收数据的准备脉冲;用户码是芯片厂家预留允许其客户写入特定功能的识别码;系统码是整个系统正常工作的代码集;系统反码是一种校验码,用于在接收端检查信号在传输中是否存在差错;功能码是控制功能的代码;功能反码也是一种校验码。

11.1.2 PCA8521 介绍

PCA8521 是一款专用于红外遥控发射系统的集成电路。当一个按键被按下时,它会产生一个遵循 RC5 协议的脉冲。此集成电路不用连接一个软件可编程的处理器,就可以实现系统所有的功能。

PCA8521 的内部组成原理框图如下:

如图 11 - 2 所示,是 PCA8521 的内部组成原理框图。 PCA8521 由键扫描、振荡器、时序发生器、控制器、 ROM (在其中存储有必需传输的代码)、移位寄存器、脉冲发生器、输出驱动几部分电路组成。 PCA8521 的振荡频率可以任意地选择为 432KHz (一定要外接振荡电容)或 4MHz (振荡电容已经被集成)。

当键控矩阵的一个按键被按下时,对应的驱动线将被连接到识别线,这将引起振荡器开始振荡,一个相应遵循 RC5 协议的代码将被产生。通过键控矩阵扫描键,七条驱动线( DR0 ~ DR6 )和八条识别线( SN0 ~ SN7 )将被连接,按键被激活,当两个或更多按键被激活时,将没有信号发射。当按键被扫描到时,激活键的键数决定 ROM 的寻址,以获得需要的代码字。对于 16 引脚的集成电路,识别线 SN6 、 SN7 和驱动线 DR5 、 DR6 将不被连接,相应地,键数 6 、 7 、 14 、 15 、 22 、 23 、 30 、 21 、 38 、 39 和 40 ~ 45 不被寻址。

ROM 包括 8 个 64 代码字的槽,这样对每一个按键,一个最大 8 个不同的代码字被产生,随着多系统的使用, 8 个不同的系统( TV 、 VCR 、 tuner 、 CD 等)可被选择。通过真多功能键,除系统位外,命令位在不同的槽中也可以不同,使用此键可以实现几种选择,对每一个按键,三槽选择位(它确定哪一个槽将被选择用于下一键)是存在的。

对每一个按键,一个“抑制( inhibit )”位也会存在。当此位在给定槽中的一个地址处于逻辑“ 1 ”且相应的按键被按下时(此槽已被选择),将不会产生传输。

单一系统选择也是可以的,它通过一根跳线和 / 或一个开关用作槽选择,以取代这些按键。通过一根跳线选择需要的槽以实现单一系统的选择,在集成电路中编程不同的发射模式是可能的。另外,一个开关( side - switch )也可用于改变产生的暂时代码以得到多功能键,对此功能的选择,选择跳线或开关一定要被连接到识别线 SN0 和驱动线, DR0 ~ DR6 之一接地,这意味着 SN0 不被用于连接按键,并且最大的键数将是 25 个(对于 16 引脚集成电路)或 49 个(对于 20 引脚集成电路)。在一个单元中,使用跳线的组合和用于槽选择的选择键是可能的。 ROM 的输出被送到一个移位寄存器,它提供用于脉冲发生器的输入位,另外,控制器的控制信号也被送到脉冲发生器,脉冲发生器输出的信号经过输出驱动电路的放大用于驱动输出引脚。

时序发生器

时序发生器主要用于产生系统正常工作所需要的基准时钟信号,基准时钟信号参与键扫描、编码、信号调制等红外遥控信号处理的全过程。

时序发生器的组成框图如下:

如图 11 - 3 所示,是 PCA8521 的时序发生器组成框图。本时序发生器由振荡器、分频器、或门、倒相器、与门、 RS 触发器、控制定时器组成,其中,振荡器的振荡频率是 432KHz 或 4MHz 。当没有按键被激活和一个按键被按下又一次起动时,振荡被停止。振荡器的输出 CLK1 被 111 分频(对于 4MHz )或 12 分频(对于 432KHz ),其分频比通过一个时标选项被选择,分频器的输出信号 CLK2 (其频率是 36KHz )用作控制定时器的时钟和将其倒相后用于产生在副载波频率的输出脉冲。通过时标选项,其占空比可以选择为 25% 或 33% 。控制定时器有一个 4096 倍副载波脉冲宽度的周期,它等于传输重复时间,一位时间等于 64 个脉冲,重复时间是 64 位时间。控制定时器提供键扫描、 ROM 存取和代码传输的时序。当控制定时器到达一个确定的状态且至少 28ms 时间没有按键被按下时,一个控制振荡器停振的停止信号将被产生,所有驱动线将被设为逻辑“ 0 ”。当一个键被按下,识别线之一将变成逻辑“ 0 ”,这将产生一个重新起动振荡器的起动信号。

键扫描

控制定时器中的 6 位( bits )被用于控制键扫描,接着 64 个时隙是有效的,每一个时隙对应一个键数,其中,三个最高有效位( MSBs )控制驱动线和三个最低有效位( LSBs )控制识别线。

键扫描的时序图示如下:

如图 11 - 4 所示,在键扫描时序中的最先八个时隙驱动线 为低电平,在此期间,八根识别线 SN0 ~ SN7 都将依次地被测试。当 处于逻辑“ 0 ”时,对于下八个时隙这样的测试同样存在,等等,直到 处于逻辑“ 0 ”。在测试之后,当没有驱动线处于逻辑“ 0 ”时,将会有八个时隙。当在时隙 0 ~ 63 期间且识别线之一处于逻辑“ 0 ”时, 6bits 的常数被存储到键寄存器中,此寄存器用于寻址 ROM 。当两个或更多个按键被激活时,将不会传输,此时相当于没有按下按键,并且用于下一传输的命令字中的控制位将被触发。当没有按键被按下时,振荡器将在控制定时器的计时结束停止振荡,此时所有驱动线将被设为逻辑“ 0 ”,当任一键再次被按下时,一个唤醒操作( Wake - up )通过起动振荡器而实现。

单一系统

在单一系统中, SN0 一定要被连接到驱动线之一或接地,即被选择的槽等于被 SN0 连接的驱动线数。当被连接到地时,其数目为 7 。当识别线 SN0 处于逻辑“ 0 ”时,它可以通过引导槽选择触发( flip - flops ) BS0 ~ BS2 和控制定时器的 C5 ~ C7 的常数实现。通过这种方式,在一个发射器中通过一个开关( side switch )使用两种不同的系统是可能的。

多系统

对于最大八个不同的系统( TV 、 VCR 、 CD 等),槽通过按键被选择,任何键可以灵活地用于槽选择。当使用者装入新电池时,默认槽一直在第 7 槽,如仅第 7 槽被选择,最大键数可以是 56 键(对于 20 引脚的集成电路)或 30 键(对于 16 引脚的集成电路)。

ROM

ROM 是只读存储器,用于存储必需传输的代码。其集成框图如下:

如图 11 - 5 所示,是 PCA8521 的 ROM 集成框图。 ROM 被分成八个 2 × 64 字节的槽,槽选择是通过使用触发( flip - flops ) BS0 ~ BS2 的地址的三个最高位实现。在单一系统中,当 SN0 = 0 时,这些位从扫描控制的三个最高位( MSBs )被引导,在 power on 时,槽选择 flip - flops 将处于一个随机状态。当一个按键被激活时,键数被存储在 6bit 键寄存器中,此寄存器产生 ROM 地址的最低位。对于每一个命令, ROM 将被访问两次,这将得到 16bits ( M0L ~ M7L 和 M0H ~ M7H )。

M0L ~ M7L 和 M0H ~ M7H 的功能见下表:

位( bits )

功 能 ( FUNCTION )

M0L ~ M5L

命令位 0 ~ 5

M6L

当前位。用于识别命令代码 0 ~ 63 被采用还是命令代码 64 ~ 127 被采用

M7L

禁止位。逻辑“ 1 ”时,没有信号传输;否则,将出现代码字被传输

M0H ~ M4H

系统位 0 ~ 4

M5H ~ M7H

槽选择。多系统时,将被存储在 BS0 ~ BS2 中;单系统时,不用管

脉冲输出

遥控控制字的位(通过寻址的 ROM 定位表示)被送到一个移位寄存器中,每满一位时这个寄存器被移位,其输出在双相的曼彻斯特译码器中用于产生一个逻辑“ 0 ”或一个逻辑“ 1 ”,并且与一个 36KHz 的频率一起被调制。调制脉冲的占空系数可被选择为 25% 或 33% ,脉冲发生器的输出控制一个最大 45mA 电流的输出驱动器。

11.2 创维 5D20 机芯 CPU 电路

11.2.1 创维 5D20 机芯键控板电路原理

创维 5D20 机芯键控板电路原理图如下:

如图 11 - 7 所示,是创维 5D20 机芯键控板电路原理图,它包括三部分电路如下:

Q401 、 Q402 及其外围元件组成开机 / 待机指示电路。在待机时,微处理器 ST92196 的 50 脚输出高电平,即 Q401 (它是 NPN 型三极管)和 Q402 (它是 PNP 型三极管)的基极都是高电平,于是 Q401 导通, Q402 截止,红色发光二极管通过电流而发红色光;反之,在开机时, Q401 截止, Q402 导通,绿色发光二极管通过电流而发绿色光。

PT401 、 C401 、 C402 和 R401 组成红外遥控接收电路。当红外信号被送到 PT401 时,内部的光敏管导通,接收下来的信号被送到微处理器进行再处理,以实现各项控制。

R405 ~ R412 和 SW401 ~ SW408 组成键控电路,实际上,它是 ST92196 内置 A/D 变换器的一部分。键控信号由电阻对+ 5V 电压进行分压得到,它是模拟信号,需要经过 A/D 变换将模拟信号变成数字信号才能进行再处理, ST92196 采用逐次逼近式 A/D 变换电路,此种变换器有变换速度快(大约在几微秒到几百微秒之间)和变换精度高的优点。

A/D 变换器按变换方式分为计数式 A/D 变换器、双积分式 A/D 变换器、并行式 A/D 变换器和逐次逼近式 A/D 变换器四种。

逐次逼近式 A/D 变换器包括模拟量(键控)电路、八路模拟量开关电路、地址锁存与译码电路、八位 A/D 变换电路和三态输出锁存器五大部分,其中,模拟量开关允许八个模拟量分时输入;地址锁存与译码电路完成对 A 、 B 、 C 三个地址位进行锁存和译码,用于通道选择;八位 A/D 变换电路采用逐次逼近方式,它由比较器、控制与时序电路、逐次逼近寄存器、树状开关、 256R 电阻阶梯网络等组成;输出锁存器用于存放和输出变换得到的数字量。逐次逼近由控制逻辑电路实现,其大致过程是:控制逻辑电路把寄存器的最高位( Dn- 1 )置 1 ,其它位置 0 ,寄存器中的内容经过转换得到约为满量程输出一半的电压 Vc 。输入的模拟量 Vx 与 Vc 进行比较。若 Vx ≥ Vc ,则说明寄存器中的数字量偏小,应保留 Dn- 1 = 1 ;若 Vx < Vc ,则说明数字量偏大,应使 Dn- 1 = 0 ;然后由控制逻辑电路把下一位( Dn- 2 )置 1 ,进行同样的转换和比较,并根据结果再决定是否保留 1 ……直到最低位( D 0 )置 1 或 0 ,这样寄存器的各位均已确定,转换完成,寄存器中的内容就是转换得到的数字量结果。

11.2.2 创维 5D20 机芯 CPU 电路原理

创维 5D20 机芯 CPU 电路是以 ST92196 为核心的,其电路原理图如下:

如图 11 - 7 所示,是 创维 5D20 机芯 CPU 电路原理图。其中, IC901 ( ST92196 )是微处理器; IC902 ( 24C08 )是存储器; Q900 、 R970 、 R977 组成 VGA 转换控制电路; Q901 、 R929 、 R974 组成待机控制电路; Q902 、 Q903 、 R907 、 C954 、 R902 、 R998 、 R955 、 R954 、 C978 组成复位电路, C954 同时还有抗干扰作用; Q904 、 D900 、 D901 、 D902 、 R900 、 R904 、 R906 、 C901 、 C925 、 C926 组成开关机静音电路; X901 、 C952 、 C953 是 IC901 内置 压控振荡器的振荡元件; C929 、 R931 、 C928 是 IC901 内置 字符振荡器的滤波电路元件; C927 、 R930 、 C930 是 IC901 内置 频率倍增器的滤波电路元件; C957 、 C958 是电源纹波滤波电容; R999 是供电电阻; R909 是限流电阻; C951 是滤波电容; R926 、 R927 是限流电阻; R933 、 R934 是上拉电阻; R971 是上拉电阻; R972 是隔离、限流电阻; R978 、 R980 是上拉电阻; R924 、 R925 是隔离电阻。

微处理器的工作过程

当正常的供电电压被送到 ST92196 的供电引脚且其复位引脚得到正常的复位电压时, ST92196 内部被初始化,振荡器开始振荡,在基准时钟的作用下, ST92196 执行完最基本的操作之后即处于随机待命状态。

复位电路的工作过程

当 5V 供电送到 Q902 、 Q903 及其外围元件组成的复位电路时,由于 R955 、 C978 组成的 RC 定时电路的存在, 5V 电压通过 R955 对 C978 充电,只有当 C978 的充满电之后, Q903 的基极才是高电平,因此 Q903 的基极电位在一段时间(由 R955 、 C978 确定的时间常数决定)内处于较低的电平,此电平使 Q903 处于饱和导通状态, Q903 的导通使得 Q902 也导通, Q902 的集电极为低电平,相应地 ST92196 的复位引脚也处于低电平,此低电平使其内部电路得以复位;随着 C978 充电的进行, Q903 基极的电位会逐步升高,当 Q903 基极的电位升高到其截止电压之后, Q903 截止, Q903 集电极为低电平, Q902 基极为低电平, Q902 截止, Q902 集电极为高电平,相应地 ST92196 的复位引脚跳变为高电平。

对复位信号的要求:保证复位引脚在低于 0.3 倍电源电压的低电平持续最小 20us 。

时钟振荡电路

ST92196 的时钟振荡电路由一个集成的 VCO 压控振荡器组成,其基准振荡是一个 4.0MHz 晶振,连接在晶振两个引脚的电容用于滤除振荡产生的高次谐波。 4.0MHz 晶振信号经过分频或频率倍增(用于将 VCO 压控振荡器产生的 4.0MHz 时钟信号进行频率提升)后用作相应电路的工作基准。

选台过程

当执行选台指令时, ST92196 通过 I2C 总线传送选台相关的信息到高频调谐器中的集成电路 SN761672 , SN761672 接到相关信息后,使其 22 脚、 23 脚、 25 脚之一输出波段电压,用于 选择各自的输入回路、高频放大管和双调谐回路工作,于是相应频段相应频道的信号被选择、放大,送到锁相环混频电路;同时, SN761672 的 15 脚输出一个标准的 PWM 信号,此 PWM 信号经过积分后送到 VCO 压控振荡器的移相网络,用于调整 VCO 压控振荡器的振荡频率, VCO 压控振荡器产生的信号也送到锁相环混频电路;高频放大的高频电视信号和 VCO 压控振荡器产生的本振信号在锁相环混频电路中混频得到中频电视信号;中频电视信号经过预中放、中放电路的一系列处理,得到 AFC 电压; AFC 电压送到 ST92196 的 10 脚, ST92196 根据此 AFC 电压反馈的信息自动地调整选台相关信息,调整的选台信息通过 I2C 总线送到 SN761672 中,它会改变 SN761672 内置计数器的分频比,并追加相关信息和改变 PWM 信号的步长,从而得到一个更精确的 PWM 信号,此 PWM 信号经过积分后送到 VCO 压控振荡器的移相网络,调整 VCO 压控振荡器的振荡频率,从而可以得到一个更精确的振荡频率,相应地会得到一个更理想的电视中频信号,此电视中频信号经过后级电路的处理,得到一个更理想的 AFC 电压,于是又进入下一个循环控制,如此循环往复,直到 AFC 电压在一个恒定值(其误差可以忽略);另外,中频放大电路产生的视频信号经过数字处理电路板相关电路的处理,得到图像同步识别信号,此同步识别信号经过 I2C 总线送到 ST92196 ;当送到 ST92196 的 10 脚的 AFC 电压达到最理想的状态时,同时, ST92196 得到正常的图像同步识别信号后, ST92196 发出指令执行存台操作,存储器将此时的选台信息保存起来(包括频段、频道、分频比等),于是完成选台的全过程。

开 / 关机静音电路工作过程

开机时, 8V 经过 R906 、 D900 分别送到 Q904 的基极和发射极, Q904 导通, 8V 经过 D900 、 Q904 的 C - E 结、 D901 送到静音控制电路使功放电路静音;关机时, Q904 的基极电压逐渐降低,当此电压降低到低于 C901 的充电电压 0.5V 时, Q904 导通, C901 上的充电电压经过 Q904 的 C - E 结、 D901 送到静音控制电路使功放电路处于静音。

开机 / 待机过程

在正常开机时, ST92196 的 50 脚输出高电平, Q901 导通, Q901 集电极低电平, Q604 截止,待机电路对光耦 TLP621 内置发光二极管两端的电压没有影响,从而正常开机;在待机时, ST92196 的 50 脚输出低电平, Q901 截止, Q901 集电极高电平, Q604 饱和导通( Q603 也导通),光耦的负极被 D618 箝位在 1V 左右(比正常时低很多), Q603 集电极输出的电压经过 R627 、 R624 ,加在光耦内置发光二极管正极,此电压比正常时高很多,于是发光二极管导通程度较强,光耦内置光敏三极管的导通程度较强, STR - S6709 的 7 脚输入较大的电流, STR - S6709 内置振荡器迅速停振,在一小段时间后, STR - S6709 的供电引脚的电压达到起动电压时,内置振荡器又开始振荡,此时待机电路还处于待机状态,于是又重复上述控制过程,如此循环往复,开关电源电路工作在间歇振荡状态,从而实现待机。

11.3 ST92196 介绍 (以下为英文翻译资料,供高级技术人员参考)

ST92196 专门设计用于电视系统,它采用基于寄存器的增强 ST9 结构,使用了灵活的 256 个寄存器编程模型,获得了超快场合的转换、实时事件响应和最大的核心资源的使用,这些新技术成就了一种新的高性能微处理器。 ST9 微控制单元提供高效的低功耗 / 低电压工作方式和低功耗嵌入系统。

1 ST92196 的特性

具有 RUN 、 WFI 和 HALT 模式的基于寄存器页的 8/16bit 核心体系结构

具有丰富的指令设置和 14 种寻址模式, 37 个全编程 I/O 引脚

0 ~ 70 ℃ 工作温度, 5V ± 10% 时工作在 24MHz ,最小指令周期时间: 24MHz 时 165ns

32 ~ 128Kbytes ROM , 1 ~ 4Kbytes 静态 RAM , 256bytes 寄存器页, 384bytes 显示 RAM

用于 OSD 、数据限制器和核心时钟的灵活的时钟控制器,它来源于外部的低频率晶振

红外遥控信号数字预处理

带四通道多路主 / 从 I2C 总线, NMI 和 6 个外部中断,串行通信接口,串行外设接口

具有 6bit 精度的八通道 A/D 变换器,八个 8bit 可编程的 PWM 输出

带 2 路输出的、用于 2 个调谐器的、 14bit 电压合成的调谐基准电压

带集成同步分离的 2 通道同步误差检测

带 8bit 预计数器的 16bit 标准定时器, 16bit 多功能定时器

在两路独立视频源中,用于 Close Captioning 的 1 或 2 个数据限制器和外部数据伺服 Extended Data Service 的数据抽取,用于 FCC 视频和 Gemstar 位流解码

增强的显示控制器,每行显示字符多达 63 个, 8 级字符半透明(在快速消隐)

通用的开发工具,包括从第三方得到的 C 语言编译、汇编、连接、编辑程序、源码级调试、仿真和实时操作系统

2 ST92196 的核心体系结构框图

3、 ST92196的核心体系

如图 11 - 8 所示, ST92196 包括 ST9 +内核、寄存器、 I2C 总线、存储总线、寄存器寻址总线、中断 /DMA 总线、时钟处理、频率倍增器、定时器、数据限制器、 PWM 处理、电压合成、红外遥控处理单元、 OSD 、并行通讯接口、串行通讯接口、 A/D 变换、 D/A 变换、全可编程的 I/O 端口等电路。其中, ST9 +内核包括中央处理单元( Central Processing Unit )、寄存器页( Register File )、中断( Interrupt )和 DMA 控制器。其中,采用三个受控于内核的独立总线是:一个 16bit 寄存器寻址总线、一个 8bit 寄存器寻址总线和一个 6bit 中断 /DMA 总线(外围设备与内核一起连接中断和 DMA 控制器)。这种多总线结构使得 ST9 家族的产品能高效地访问存储器和快速地与外围设备进行数据交换。

实际上,上述电路组成算术逻辑运算单元( Arithmetic Logic Unit , ALU )、寄存器组、指令处理单元等几部分。其中, ALU 就是微处理器的运算器,其基本组成是加法器,负责进行各种算术和逻辑运算,算术运算包括加、减、乘、除、比较、求反、求补等运算,逻辑运算包括逻辑与、逻辑或、逻辑非、逻辑异或、循环、引导、存储、记忆存储、寄存、记忆存储到记忆存储变换等运算。虽然 ST9 有一个 8bit 的算术逻辑单元,但是芯片也提供了 16bit 的工作方式。许多操作码确定字节或字操作,硬件自动地进行 16bit 工作方式并访问。寄存器组是 CPU 内部高速存储单元,用于临时存放数据和地址,具有数据准备、数据调度、数据缓冲作用。寄存器包括通用寄存器、地址寄存器、标志寄存器和系统寄存器。其中,通用寄存器是调度数据的主要手段,可用作加法器、变址寄存器、地址指针、邻近寄存器排(配置 16bit 寄存器用于寻址或处理);地址寄存器主要存放地址,用于寄存器的寻址操作;标志寄存器(也叫程序状态字寄存器)用来表征程序的运行状态。指令处理单元是微处理器的控制器,用于译码、处理指令,它包括指令寄存器(暂存来自存储器的指令)、指令译码逻辑(对指令进行译码,产生指令功能的操作)、时序和控制逻辑(根据指令、时序要求发出和接收各种信号,控制整个系统完成需要的操作),中断或子程序调用也属于此部分, CPU 使用一个系统栈连接栈指针( SP ),一个独立的使用者栈有自己的指针,此独立栈没有大小限制,可以在芯片的 RAM (或寄存器页)或外部记忆存储器中。

4、指令设置

微处理器通常有一套指令(以二进制编码的形式存放在存储器中)系统,它们是微处理器能够识别的机器指令,机器指令可记忆性和可读性都较差,为此常用具有符号指令的汇编语言来表示,汇编指令由操作码(表示执行的指令功能)和操作数(表示执行操作需要的数据或所需数据与输出数据的存放地址)两部分组成。

增强的 ST9 指令系统由 94 条指令组成,这些指令可分为:数据传送指令、算术运算类指令、逻辑运算指令、移位操作类指令、串操作指令、控制转移类指令和处理器控制类指令。其中,数据传送指令是最基本、最常用、最重要的操作,它用来在寄存器与存储单元、寄存器与寄存器、累加器与 I/O 端口之间进行数据和地址传送[有通用(位、 8bit 字节和 16bit 字)数据传送、地址传送、标志位传送、 I/O 数据传送];算术运算类指令可完成加、减、乘、除、数制(二进制、十进制、十六进制)转换;逻辑运算指令可以对字节或字进行逻辑与、逻辑或、逻辑非、逻辑异或、布尔格式等运算操作;移位操作类指令可以对字节或字中的各位进行算术移位、逻辑移位或循环移位等操作;串操作指令可以对一串字节或字的每一项进行操作;控制转移类指令用来控制程序执行的顺序,它包括无条件转移、有条件转移、循环控制、中断、调用 / 返回等控制操作;处理器控制类指令用来对微处理器的工作状态进行控制,它包括设定、清除、计数、测试和设置、引导、各种逻辑指令等。 ST9 +指令集的增强,便于大程序、大数据的处理,也便于提高性能和提高 C 函数调用的代码密度,它有立即寻址、寄存器寻址、直接寻址、寄存器间接寻址、变址寻址、基址寻址、基址加变址寻址、带位移量的基址加变址寻址、比例变址寻址、基址加比例变址寻址、带位移量的基址加比例变址寻址等 14 种寻址方式可供软件开发者选择。

5、工作模式

为了获得最佳的功耗性能, ST9 提供了根据需要而动态选择的工作模式。

RUN MODE :通过时钟控制单元( CCU )的时钟锁相环( CPLL )的作用, CPU 和外围设备工作在最大的时钟速度,即全速工作模式。

SLOW MODE :通过 CPU 预处理器( Prescaler )和时钟控制单元时钟分频器, CPU 和外围设备工作在被减小的时钟速度,即慢速工作模式。

Wait For Interrupt MODE : Wait For Interrupt ( WFI )指令在一个中断请求被应答后即悬挂程序的执行。在此期间, CPU 时钟被停止,然而外围设备和中断控制器工作在一个通过中央处理单元可编程的频率,通过这种方式,设备的功耗可被减小超过 95% 。

Halt MODE :当执行 HALT 指令,并且看家狗( Watchdog )没被使能时, CPU 和它的外围设备停止工作, I/O 端口将处于高阻抗模式,可以通过复位退出此模式。

6、存储器和寄存器

存储器是指存储信息的硬件设备,它包括主存储器(内存)、随机存取存储器( RAM )和只读存储器( ROM ,包括 OSDROM )。其中,主存储器就是通常说的内存,它由存储体、地址接口电路、读写控制接口电路和数据接口电路等组成,存储体是由半导体介质按照特定结构组成的存储单元的组合体;地址接口电路用于从外部总线上接收地址信号,并按地址信号要求寻址规定的存储单元,它包括地址锁存器、地址译码器和驱动电路;数据接口电路用于为外部数据总线提供接口; RAM 是一种可以随机读写的存储器,它有静态和动态之分,其中,动态 RAM 将信息作为电荷来存储,它需要及时更新,否则,很容易逸散掉。只读存储器 ROM 是一种存储体具有固定信息的记忆元件阵列,用于存储微程序、固定程序、字母符号、汉字符号点阵等系统级信息。通常所说的寄存器是微处理器内部的高速存储单元, 它用于临时存放数据和地址,具有数据准备、数据调度、数据缓冲作用。

ST92196 中有两种独立的记忆存储空间:( 1 )寄存页,由 224 个通用寄存器(组 0 ~ D ,寄存器 R0 ~ R239 )、 16 个系统寄存器(在系统组 E 中,寄存器 R224 ~ R239 )组成,这 240 个 8bit 寄存器被排列成 15 组,每一组又由 16 个 8bit 寄存器组成,这样多达 64 页(取决于设备结构,每一页包含多达 16 个寄存器)寄存器被映射到 F 组( R240 ~ R255 )寄存器,它用于外围设备和 I/O 保持数据和控制位;( 2 )一个用于寄存程序和数据的单线性记忆存储空间,包括内部 ROM 、内部 RAM 和外部记忆存储器在内的所有的物理独立的记忆存储区域被映射到这个通用的地址空间,总共 4Mbytes 可寻址的记忆空间被排列成 64 段,每一段 64Kbytes ,每一段被更细地分成四页,每一页 16Kbytes 。一个记忆存储管理单元通过 16bit 基址指令使用一套指针寄存器去寻址一个 22bit 记忆存储区域。

通用寄存器

通用寄存器是一种用于一般场合的寄存器,如加法、减法、乘法、除法运算和计数等,其 使用情况列表如下:

功能或外围设备

通 用 寄 存 器

SCI , MFT

CICR + NICR + DMA 寄存器+ I/O 端口寄存器

ADC

CICR + NICR + I/O 端口寄存器

WDT

CICR + NICR +外部中断寄存器+ DMA 寄存器+ I/O 端口寄存器

I/O 端口

I/O 端口寄存器+脉冲编码装置

外部中断

中断寄存器+ I/O 端口寄存器

RCCU

中断寄存器+脉冲编码装置

地址寄存器

地址寄存器用于存储栈指针、基址指针和寻址方式等与地址信息相关的寄存器。

标志寄存器

标志寄存器是用于存放程序状态信息的寄存器,也叫程序状态字( PSW )寄存器,它包含 8 个用于显示 CPU 状态的标志,在中断期间,标志寄存器自动地被存储在系统栈区域,并且在中断服务子程序的结束被取消,这样微处理器会返回到最初的状态,这用于所有的中断和嵌套( nested )模式。标志寄存器的使用情况列表如下:

7

6

5

4

3

2

1

0

Carry

Zero

Sign

Overflow

Decimal Adjust

Half Carry

保留

Data/Program Memory

系统寄存器

系统寄存器主要用于对重要的系统参数进行设定,组 E ( R224 ~ R239 )中的 16 个寄存器就是系统寄存器,使用任何的寄存器寻址方式都可以对它们进行寻址。系统寄存器的使用情况列表如下:

R239 ( EFh )

系统栈指针低位寄存器( SSPLR )

R238 ( EEh )

系统栈指针高位寄存器 SSPHR

R237 ( EDh )

使用者栈指针低位寄存器 USPLR

R236 ( ECh )

使用者栈指针高位寄存器 USPHR

R235 ( EBh )

模式寄存器( MODE REGISTER )

R234 ( EAh )

页指针寄存器( PAGE POINTER REGISTER )

R233 ( E9h )

寄存器指针 1 ( REGISTER POINTER 1 )

R232 ( E8h )

寄存器指针 0 ( REGISTER POINTER 0 )

R231 ( E7h )

标志寄存器( FLAG REGISTER )

R230 ( E6h )

重要的中断控制寄存器( CENTRAL INT. CNTL REG. )

R229 ( E5h )

端口 5 数据寄存器( PORT5 DATA REG. )

R228 ( E4h )

端口 4 数据寄存器( PORT4 DATA REG. )

R227 ( E3h )

端口 3 数据寄存器( PORT3 DATA REG. )

R226 ( E2h )

端口 2 数据寄存器( PORT2 DATA REG. )

R225 ( E1h )

端口 1 数据寄存器( PORT1 DATA REG. )

R224 ( E0h )

端口 0 数据寄存器( PORT0 DATA REG. )

寄存器寻址

数据的存取和寄存器的定位都要进行寻址操作, ST92196 中包括分页的组 F 寄存器(组 D 除外)在内的寄存页寄存器可被精确地寻址,它通过一个十进制、十六进制或二进制地址寻址,这样 D231 、 RE7h 和 R1110 、 0111b 表示同一个寄存器,组 D 的寄存器仅在工作寄存器( Working Register )模式中被寻址。

工作寄存器

确定类型的指令要求寄存器按样式“ rx ”指定, x 在 0 ~ 15 之间,注意一个更小的“ r ”被用于指示间接寻址。有两种寻址方式对它是有效的:一组 16 个工作寄存器或两个独立映射的组(每组包括 8 个工作寄存器),这些组通过被描述的指针寄存器可被映射在寄存页中(开始于任何 8 或 16 字节分界)。

分页的寄存器

多达 64 页寄存器(每一页包含 16 个寄存器)可被映射到 F 组页寄存器,其使用情况列表如下:

寄存器

0

2

3

9

10

11

21

24

42

43

44

45

46

55

59

62

R255

no

no

no

no

M

F

T

no

M

M

U

S

C

I

0

no

no

no

no

no

no

V

S

no

R254

S

P

I

3

O

S

D

T

C

C

R253

no

R252

W

C

R

no

P

W

M

R251

W

D

T

no

R250

2

IR/

R249

R248

M

F

T

R247

no

no

no

D

S

0

D

S

1

R246

5

R

C

C

U

R245

no

I2C

R244

R243

no

M

F

T

S

T

I

M

R242

0

4

A

D

C

R241

no

R240

对上表寄存器的正确编程要注意:专用于特殊功能或外设的寄存器的设定;寄存器作为其它功用;双校验那些未定义寄存器的复位值是否正确地被初始化。使用任何的寄存器寻址模式可以寻址 F 组中的寄存器,与页指针寄存器相连的是 R234 ,它是一个系统寄存器,用于选择此页被映射到 F 组,一旦它被设置,如果两个或更多个寄存器在同一页面上连续地被寻址,那么就不需要改变。如果页指针 R234 要设为 5 ,那么其指令如下:

spp #5

ld R242 , r 4

这将装载工作寄存器 r 4 中的常数到第三寄存器的第五页( R242 )。这些分页的寄存器保持与外围设备有关的数据和控制信息,每一个外围设备一直涉及同样的页面和寄存器,以确保与 ST9 +设备兼容,这些寄存器的数目取决于外围设备,在其它字中,页仅存在于有关外围设备被采用的场合。

页指针寄存器的使用情况列表如下:

7

6

5

4

3

2

1

0

页指针 PP5

页指针 PP4

页指针 PP3

页指针 PP2

页指针 PP1

页指针 PP0

0

0

寄存器的定位方法

在系统寄存器组之间的两个寄存器被用作指向工作寄存器,指针 0 寄存器( R232 )可用它自己作为一个指针指向一个 16 位寄存器工作空间或与指针 1 寄存器( R232 )有关联地指向两个独立的八位寄存器空间。

为了寄存器定向的需要,寄存器页的 16 位寄存器组被细分成 32 个八位寄存器块,此值(与设定寄存器指针指令一起被确定)指向在双八位寄存器模式中被指向的相应块,或在单一的 16 位寄存器模式中对低八位寄存器块进行定向。

设定寄存器指针指令 srp 、 arp0 和 srp1 自动地完成微处理器是工作在单 16 位寄存器模式还是双八位寄存器模式, srp 指令选择单 16 位寄存器组模式和低八位寄存块的特殊定向,当 srp0 和 srp1 指令自动地选择双八位寄存器组模式和每八位寄存器块的特殊定向,除了在双八位寄存器模式中它们一定起始于一个八位寄存器边界,或在单一的 16 位寄存器模式中它们一定起始于一个 16 位寄存器边界,这些寄存器组的顺序和状态是没有限制的。在单一的 16 位寄存器模式中,寄存器块数一直是一个偶数。 16 位寄存器模式组将一直起始于与它的块数最接近的偶数块(等于或低于 srp 指令确定的块数),工作中要尽量避免使用奇数块,否则,在双模式中就可能导致混乱。

指针 0 寄存器的使用情况列表如下:

7

6

5

4

3

2

1

0

寄存器组数 RG4

寄存器组数 RG3

寄存器组数 RG2

寄存器组数 RG1

寄存器组数 RG0

寄存器指针选择器

保 留

保 留

指针 1 寄存器的使用情况列表如下:

7

6

5

4

3

2

1

0

寄存器组数 RG4

寄存器组数 RG3

寄存器组数 RG2

寄存器组数 RG1

寄存器组数 RG0

寄存器指针选择器

保 留

保 留

模式寄存器

它提供的控制项有:内部或外部系统和使用者栈区域的选择、时钟频率的管理、总线请求和外接存储器的等待信号。其寄存器的使用情况列表如下:

7

6

5

4

3

2

1

0

系统栈指 针

使用者栈指针

时 钟

二分频

CPUCLK 预处理

CPUCLK 预处理

CPUCLK 预处理

总线请

求使能

高阻抗

使 能

栈指针

两个独立的、双寄存器栈指针是可选的(即系统栈指针和使用者栈指针),它们可以寻址寄存器或记忆存储器。栈指针指向栈的底部( bottom ),它用“ push ”命令充满或用“ pop ”命令清除。当数据被压入堆栈时,栈指针自动地预先减小;当数据被推出堆栈时,栈指针自动地加速增加。通过加下标“ u ”,“ push ”和“ pop ”命令被用于管理系统栈,系统可被寻址到使用者栈;对于一个字,为了使用一个栈指令,下标“ w ”被添加,这些下标可被结合。当字节(或字)从一个堆栈中被推出时,只有刷新数据才能被引导,栈定向的内容才会改变,这样当数据从一个栈区域被压入堆栈时,堆栈中的内容保持不变。

系统栈

系统栈被用于系统和 / 或控制数据的临时存储,例如:标志寄存器和程序计数器,其中,中断、子程序调用和连接指令执行时,数据被推入系统栈。所有这些情况都涉及到它们的副本,如返回指令在执行完操作后会推出存储的数据项。当输入一个中断时, PC 和标志寄存器被推向系统栈,如果 EMP2 寄存器内的 ENCSP 位被设定,那么代码段寄存器也被推向系统栈;当一个调用指令被执行时,仅 PC 被推向系统栈,而当一个调用段指令被执行时, PC 和代码段寄存器被推入系统栈;“ Link ”或“ Linku ”指令创建一个 C 语言栈结构。

使用者栈

它提供一个完全使用者控制的栈区域,由寄存器 R236 和寄存器 R237 组成,此两个寄存器用于在记忆存储器中寻址一个栈。当在寄存器页中压入数据时,使用者栈指针的高端寄存器 R236 变成多余的,但一定要被考虑作为保留。

栈指针

系统和使用者栈都是通过双字节栈指针被指向,栈可以在 RAM 或寄存器页中被设定。如果栈在寄存器页中,那么仅低字节是需要的,而高字节作为保留,一定不被用作普通用途的寄存器,栈指针寄存器在寄存器页的系统组中被定位。

栈定位

组 D 是一个在寄存器页中用于一个栈的好的定位方式,这样它的最高端是可用的区域,栈可被定位在寄存器页的最先的 14 组(内部栈)或定位在 RAM 中(外部栈)。

记忆存储器组织

代码和数据在同样的线性地址空间中被存取,所有物理独立的记忆区域(包括内部 ROM 、 RAM 和外部记忆存储器)被映射在一个普通的地址空间。 ST9 +提供一个 4Mbytes 可寻址的记忆存储空间,它被分成 64 段 64Kbytes ,每段又被分成 4 个 16Kbytes 页,不同记忆存储区域的映射不同于各设备,每一 64Kbyte 物理记忆存储段在内部或外部被映射,如果小于 64Kbytes 的内部的记忆存储器被使用,在 64Kbytes 段中剩余部分不能被使用。

记忆存储器管理单元

CPU 内核包括一个记忆存储管理单元( MMU ),它一定要被编程以完成存储器存取(既使外部记忆存储器没有被使用)。 MMU 受控于 7 个寄存器和 EMR2 中存在的 2 位( ENCOR 和 DPRREM ),通过编程,它们可被写和读。这些寄存器在寄存器页 21 页的 F 组中被映射,其中, 7 个寄存器可以被细分成两个主组:四个 8bit 寄存器( CDPR[3 : 0] )为第一组和三个 6bit 寄存器( ISR 、 CSR 和 DMASR )为第二组。第一组被用于数据存储访问时扩展外部地址( CDPR[3 : 0] ),第二组被用于代码执行( CSR )、中断服务子程序( ISR 或 CSR )和 DMA 转移( DMASR 或 ISR )期间管理程序和数据存储访问。

地址空间扩展( EXTENSION)

为了管理 4Mbytes 的寻址空间, 22 个地址位是必需的,记忆存储器管理单元( MMU )增加 6 位到通常的 16 位地址,即传输一个 16 位有效地址到一个 22 位物理地址,共有两种不同的方式可实现此功能:寻址 16Kbytes 页和寻址 64Kbytes 段。

寻址 16Kbytes 页:如果没有执行直接存储器存取( DMA ),那么此扩展模式固有地被用于寻址数据记忆存储器空间。数据记忆存储空间被分成 16Kbytes 的 4 页,四个 8 位的数据页寄存器之一选择一个不同的 16Kbytes 页。数据通过扩展 16 位地址的 14LSB 页与 DPR ( DPR0 ~ DPR3 )寄存器的内容一起实现分页。 16 位地址的两个 MSBs 被解释用作 DPR 寄存器的识别数。其中, DPR0 寄存器在 0000h ~ 3FFFh , DPR1 寄存器在 4000h ~ 7FFFh , DPR2 寄存器在 8000h ~ BFFFh , DPR3 寄存器在 C000h ~ FFFFh 。被选择 DPR 寄存器的常数确定 256 个可能的数据存储页之一,这个 8 位数据页数,加上 14 位页偏移地址形成物理 22 位地址,从而实现寻址 16Kbytes 页。

寻址 64Kbytes 段:此扩展模式在一个 DMA 期间用于寻址数据存储空间,而程序记忆存储空间可以用于任何代码执行(标准代码和中断子程序)。在此模式中,有三个寄存器被采用: CSR 、 ISR 、 DMASR ,三个寄存器之一的 6 位内容确定在 4Mbytes 地址空间中的 64Kbytes 的 64 个记忆存储段的超出部分。寄存器内容存在于记忆存储地址的 6MSBs ,而内部段地址的 LSBs 通过实际的 16 位地址给出,从而实现寻址 64Kbytes 段。

记忆存储器管理单元( MMU)寄存器

MMU 使用 7 个被映射到寄存器页第 21 页的 F 组的寄存器和 EMR2 寄存器的 2 位。这些寄存器的大多数在复位后没有一个默认值。如果这些寄存器被频繁地使用,它们可以通过编程第 21 页中的 EMR2 - R246 的第五位在寄存器组 E 中被定位,如果此位被设定, DPR[3 : 0] 寄存器被定位在 R224 ~ R227 ,从而代替了端口 0 - 3 数据寄存器,它被重新映射到默认的 DPR 的定位: R240 ~ 243 ( 21 页)。 MMU 寄存器包括数据页寄存器( DPR )、代码段寄存器( CSR )、中断段寄存器( ISR )、 DMA 段寄存器( DMASR )。

7、I2C总线接口

I2C 总线是内部集成的电路总线的英文缩写,它是通过数据线( SDA )和时钟线( SCL )来连接多个设备的异步串行总线,用于微处理器与外围设备或电路之间的异步通讯。其中,微处理器是主控设备,外围设备或电路是受控设备。总线在进行数据传输时,首先由时钟对设备进行初始化,受控设备通常具有唯一的地址标识,并且具有数据处理能力,数据在传送时,要么只能接收,要么只能发送,数据在接收端被正确地接收时,它会通过数据线发送一个应答位信号给发送装置,实际上,数据线是双向的(也叫双向数据线),在初始化后,挂接在总线上的负载就可以异步地工作了。 ST92196 的 I2C 总线接口提供 7bit 寻址,采用多主和多从工作方式,其最高工作时钟速度在 800KHz 。总线事件(如总线忙、从属地址被识别等)和误差情况在外围设备寄存器中自动地被标记,中断将被选择地发生。

8、标准程序执行

标准程序通常是顺序执行的,如有必要程序可以跨越需要的段(过程则不能), jps 、 calls 、 rets 指令(它们自动定义 CSR )常用于程序跳过段边界。在标准程序执行期间,由于它不同步于操作代码的取得,写 CSR 被禁止,这将导致从一个记忆存储段带来一个指令的首字节和从另外一个记忆存储段带来指令的第二位。当程序不被使用时,写 CSR 被允许。一个子程序一定要按同一种方式调用,如 call … ret , calls … rets 。

9、中断

中断简介

为了对某一发生的事件进行控制或在临时需要运行某一程序时,微处理器可以终止执行当前的程序去执行处理该事件的程序,在中断服务子程序执行完毕后,再返回到原断点继续执行原程序。中断技术可实现实时操作、分时操作和故障处理。 ST9 可以通过其中断通道响应外围设备和外部事件,暂停当前的程序执行,以便执行一个特殊子程序。若一个事件产生了有效的中断请求且当前的程序状态被保存,则它将转向适当的中断服务子程序。 ST9 可以接受的中断请求有:外围设备请求中断、外接引脚请求中断、实时时钟请求中断、数据通道中断、故障性中断、程序运行自动中断、顶级伪屏蔽中断。根据外围设备的功能,一个事件的存在可能产生一个中断请求(取决于选择的模式)。此芯片提供多达八个可用的外接中断通道,另外,一个专用的、具有顶级优先级的中断通道(外部 NMI 引脚)可被采用,中断服务子程序通过一个映射在记忆存储器中的向量表被寻址。

中断处理

一旦出现中断事件,微处理器会根据具体情况对它进行处理,其具体步骤是: 1 、识别中断源; 2 、判断中断优先权; 3 、执行中断嵌套; 4 、返回到断点。

中断的优先级

若系统中有多个中断源,则需要考虑其优先权。 ST9 提供了全可编程的中断优先功能,九个优先级可用于定义通道的优先关系。外围设备通道和八个外部中断源在八个优先级中是可编程的,每一通道有一个 3bit 区域用于在 0 ~ 7 范围内定义优先级, 0 是最高优先级, 7 是最低优先级,第九级(顶级)专用于定时 / 看门狗或外部伪非屏蔽中断,它的中断服务子程序在任何仲裁模式中不能被中断,其掩码可以屏蔽( TLI )或非屏蔽( TLNM )。

优先级仲裁

在中断控制寄存器中,当前优先级( CPL )的 3bits 包含当前正在运行程序的优先级。在复位后优先级为 7 ,在程序执行期间,可以通过软件或通过硬件依据选定的仲裁模式自动地定义优先级。若在每一指令运行期间发生一个仲裁,则每一通道可以产生一个中断,每一优先级与其它请求要进行比较(中断或 DMA )。若最高优先级请求是一个中断,则其优先级值一定要低于 CICR 寄存器( R230 )中的 CPL 值,顶级中断超越其它优先级。

仲裁模式

ST9 提供并发和嵌套两种中断仲裁模式( CICR 寄存器的 IAM 控制位选择)。并发模式是标准中断仲裁模式;嵌套模式在服务子程序嵌套被请求时提供有效地中断响应时间。

中断向量

无论是内部中断,还是外部中断,系统都会给每一中断源分配一个确定的中断类型码,并被顺序地放在中断向量表中,它实际是中断处理子程序的入口。 ST9 提供的中断向量功能允许外围设备自动地识别中断服务子程序最先的指令定位。当一个中断请求被确定时,外围设备的中断系数被提供,通过中断向量寄存器( IVR ),一个向量指向定位的向量表,每一个外围设备有一个特殊的 IVR 被映射到其寄存器页中。中断向量表通过 ISR 寄存器指向最先的 256 个记忆存储器,从而提供八位向量寻址。电源复位的向量被存储在最先的两个物理字节中( 000000h 和 0000001h ),顶级中断向量表通过中断段寄存器( ISR )定位在地址 0004h 和 0005h 。有了中断向量寄存器,寻址几个中断服务子程序是可能的。实际上,外围设备可共享同样的中断向量寄存器,其中,向量表中最有意义的位是在向量表中使用者编程定义的基本向量地址,最低有效位通过中断系数硬件地控制以选择适当的向量。

外部中断

标准 ST9 内核包含八个被分组成四排的外部中断源,每一中断源有一个触发控制位 TEA0 … TED1 用于选择在外接引脚的上升沿或下降沿触发。如果触发控制位设为 1 ,相应地未定位 IPA0 … IPD1 被设在输入引脚上升沿;如果它被清除,未定位设在输入引脚的下降沿。每一中断源可通过相应的控制位 IMA0 … IMD1 ( EIMR , 7 …, 0 )各自地被掩膜。外接中断源的优先级可以对控制寄存器 EIPLR ( R245 )在八个优先级中编程,每一排的优先级通过位 PRL2 、 PRL1 被软件定义,对每一排,组的偶数 / 奇数通道有偶数 / 奇数的优先级。

顶级中断

顶级中断是最高的中断优先级,其结构图如下: 如图 11 - 9 所示,是顶级中断结构图。顶级中断通道依据控制位 EIVR.TLIS ( R246.2 , page0 )的状态可被分配给外部引脚 NMI 或定时器 / 看家狗。如果控制位是高,中断源是外部引脚 NMI ;如果控制位是低,中断源是定时器 / 看家狗计数的结束。当中断源是 NMI 外部引脚,控制位 EIVR.TLTEV ( R246.3 , page0 )选择 set 或 reset 产生中断请求。当选择的事件存在时, CICR.TLIP 位被设定。取决于掩码(屏蔽的掩码和非屏蔽的伪掩码)的状态,一个顶级中断请求可能产生。最先的伪掩码是 CICR.TLI 位( R230.5 ):它可以分别地设定或清除,以使能或禁止顶级中断请求,如果它被使能,将全面使能中断位, CICR.IEN ( R230.4 )一定也被使能,以实现一个顶级中断请求。第二的伪掩码 NICR.TLNM ( R247.7 )仅是一项设置,一旦设定,它使能顶级中断请求(独立于 CICR.IEN 的值),并且此中断通过程序不能被清除,仅处理器复位周期可以清除此位。在任何仲裁模式中,顶级中断服务子程序不能通过任何其它中断或 DMA 请求被中断,即使通过一个后来的顶级中断请求也不能。

taGS: 

相关文章

    无相关信息