8098单片机原理介绍

🏠 首页 《无线电》杂志 1992年 🔗 第6期 🔗 第24页 分类:无线电技术自学经验交流 🔗 陈尚品 🔗, 梁建国 🔗, 朱小华 🔗

一、8098结构原理

1.8098芯片功能:8098是MCS-96系列单片微控制器(简称单片机)之一,它是美国英特尔(Intel)公司在1988年推出的,具有准16位微控制器的功能,即外部数据总线为8位而软件上又与16位计算机相兼容。经过改进的8098芯片,既能工作在准16位状态,又能工作在真16位状态。图1是8098的内部原理框图。8098内部有两条总线,一条是16位的D总线,另一条是8位的A总线。高速输入和高速输出口,A/D(带取样保持电路)转换器,两个定时器(T1和T2)和一个监督定时器(俗称看门狗电路)、双向串行通信口(带波特率发生器)、脉宽调制器(可作D/A的PWM电路)等都通过16位的 D总线与内部CPU相联,这样就能保证快速传送数据,从而加快数据的处理速度。而内部CPU又用一条8位的A总线与存储控制器相联,使得外部数据总线可设定为8位,从而降低应用系统的价格和便于使用。

图1
图1 🔍原图 (1149×766)

2.8098这个子系列的芯片有三种型号:8098/8398/8798。8398是内部带有8k字节ROM的版本,8798是内部带有8k字节EPROM的版本。它们都是采用48脚双列直插封装,8O98的引脚功能见图2。下面对各引脚功能作些介绍:

图2
图2 🔍原图 (612×961)

VCC:主电源(+5V)。

VSS:数字地。8098共有两个VSS引脚,它们都必须接地。

VPD:RAM后备电源接入端。在正常操作时,VPD应与VCC等电位。如果VPD接在后备电源上,若在VCC下降到规定值之前使RESET-有效,则8098片内寄存器阵列顶部的16个字节中的内容就会保持不变。在掉电期间RESET-应一直保持低电平,直到VCC恢复到规定范围内且振荡器达到稳定时为止。

VREF:片内A/D转换器的参考电压,它也是A/D转换器模拟部分的电源电压以及读PO口操作所需的逻辑电压。

ANGND:A/D转换器的参考地,还常应与VSS等电位。

VPP:EPROM版本芯片的编程电压端。

XTAL1:片内振荡器中反相器的输入端,也是片内时钟发生器的输入端,通常接外部晶振。

XTAL2:片内振荡器中反相器的输出端,通常接外部晶振。

RESET-:复位信号输入端。

EA-:存储器选择端。当EA-=1, CPU寻址存储器2000H~3FFFH空间时,访问的是片内ROM/EPROM;当EA-=0时,则访问外部存储器。此引脚内部有下拉电阻,若外部悬空,它就保持低电平。

ALE/ADV-:地址锁存允许(ALE)或地址有效输出(ADV-)信号端,可由CCR寄存器来选择它的功能。两者都提供了一个锁存信号,以便地址从地址/数据复用总线中分离出来。当选择ADV-功能时,在总线周期结束时,此引脚变高。ADV-可作为外部存储器的片选信号,ALE/ADV-仅在访问外部存储器时才有效。

RD-:对外部存储器的读信号。

WR-:对外部存储器的写信号。

READY:准备就绪信号,用来延长对外部存储器的访问时间,以便与慢速或动态存储器接口,它也可以用于总线共享,总线周期最长可延长至1μs。当不使用外部存储器时,此信号无效。通过CCR寄存器可控制插入到总线周期内的等待状态数。此引脚内部有微弱的上拉电路,当外部悬空时,此引脚为高电平。

HSI:高速输入部件的信号输入端。共有4个HSI输入端:HSI.0、HSI.1、HSI.2、HSI.3,其中HSI.2和HSI.3与HSO部件共用引脚。

HSO:高速输出部件的信号输出端。共有6个HSO输出端:HSO.0~HSO.5,其中HSO.4和HSO.5与HSI部件共用引脚。

PO口: 4位高阻抗输入口,这些引脚既可作为数字输入口,也可作为A/D转换器的模拟信号输入端(ACH4~ACH7)。

P2口: 4位多功能口,它们除了可作标准的I/O口外,还可作特殊功能口使用。

P3和P4口:具有漏极开路输出的8位双向口,这些口作为多路复用地址/数据总线和地址总线用,它们内部具有很强的上拉电路。

3.地址空间:8098可寻址的地址空间为64k字节,无论是RAM、ROM或I/O口都安排在这64k字节的空间内,这一点与MCS-51或MCS-48系列芯片是不一样的。8098对地址空间的分配和使用,有些特殊的规定和限制,故使用者在使用8098芯片时,应特别注意这一点。8098的复位入口是2080H,而不是0000H。在8098能操作的64k字节的空间内,地址:0000H~00FFH和1FFEH~2080H的空间具有特殊用途,使用者不要将应用程序或I/O口安排在这些地址范围内。而其它空间则可任意安排RAM、ROM或I/O,8098的地址空间分配见图3。

图3
图3 🔍原图 (1177×1083)

(l)内部RAM:RALU可对内部00H~0FFH任何一个单元进行操作,但其中00H~17H这24个单元是特殊功能寄存器。18H和19H这两个单元是用作堆栈指示器使用,当然这两个单元如果不作为栈指针使用的话,也可作为普通RAM使用。8098内部的还有230个通用寄存器,这230个通用寄存器的每一个都具有8031内A寄存器的功能,8098的ALU能对任何一种寄存器单元进行数据操作,能够在这些寄存器中直接处理数据,省去了数据向累加器移进移出的过程,也就是说避免了瓶颈效应,从而明显地改善了程序运行的速度。8098内部RAM区顶部的0F0H~0FFH这16个字节的单元,具有掉电保护功能,如果在引脚VPD上接入合适的供电电源,那么当主电源关断时,0F0H~0FFH之中保持的数据不会丢失。

(2)特殊功能寄存器:8098内部的各个功能部件可通过SFR(特殊功能寄存器)操作,大多数SFR具有两种功能,读和写时其用途不同。

(3)内部ROM/EPROM:8398/8798这种版本的芯片内部含有8k字节的ROM/E-PROM,它们占用地址空间2000H~3FFFH。如果EA-这个引脚与VCC相联(接高电位),则8098在2000H~3FFFH范围内取数据或指令时,就会从内部ROM/EPROM中读取。如果EA-引脚与VSS相联(接低电位),那么就从片外的地址空间中读取。

(4)保留和特殊存储单元:当使用内部ROM/EPROM时,在8098的地址空间内有一些单元是暂不允许使用的,这些单元必须被置为OFFH状态,以保证现有的芯片与将来其它版本芯片在软件上的兼容性。8098的复位入口不是0000H单元,而是2080H单元,这一点与MCS—51系列芯片是不同的,MCS-51系列芯片的复位入口是0000H单元。8098进入中断入口的方式与8031不一样,8031的中断有固定的入口而8098则是将中断服务程序的入口地址填入到中断向量地址单元中,中断时就直接转到中断服务程序的入口。

4.总线方式: 8098可对外部总线的工作方式进行设定,以满足不同工作环境的需要。总线工作方式是由芯片设置寄存器(CCR)决定的,而CCR之中的内容又是由2018H这个单元的内容决定的。CCR是一个特殊的专用寄存器,它不属于内部RAM中的寄存器,故系统在正常工作时,操作者无法用软件更改CCR之中的内容。而只有在复位时,8098自动将2018H单元的内容读入到CCR之中,这时芯片就进入由2018H单元所决定的总线方式之中。

(1)总线控制方式:通常设定CCR.2和CCR.3可使8098的总线工作在4种不同的方式。为了减少外部硬件的接线,ALE和WR-这两个控制信号线都被赋予了双重功能。

①标准总线方式:CCR.2和CCR.3都被置成1时,当地址信号被送上总线时,ALE引脚将随着地址信号被送上总线而上升,ALE引脚保持一段高电平后又下降,ALE的下降沿可作为外部地址的锁存信号,以便将低8位地址锁存在外部地址锁存器之中。

②地址有效选通方式:如果将CCR.3置为0,当地址被送上外部总线时,ADV-就立即下降,并一直保持到这个总线周期结束时才又上升为高电平,这时ADV-可作为外部存储器的片选信号。

③写选通方式:8098可改变WR-信号的下降沿的位置,如果将CCR.2置成0,则会使WR-信号宽度变窄,使WR-在下降之前,被送上总线的数据信号,有一段稳定的时间。这一点对于那些采用下降沿作融发信号的锁存器是很有用的,因为在标准方式时,输出数据有效的同时,WR-信号便开始下降,这对那些采用下降沿作为触发信号的器件来说,可能会出现工作不正常的现象。

④地址有效与写选通方式:如果将CCR.2和CCR.3同置成0的话,则地址有效选通方式和写选通方式会同时有效。

(2)等待就绪时间的控制:为了便于与各种速度不同的芯片相联结,8098可提供4种不同的就绪等待方式供选择,这些方式是由CCR.4和CCR.5内的值决定的。如果设置有等待周期,当READY信号为低电平时,8098就会自动插入等待周期,一直到READY信号变高,或插入的等待周期数达到设定的值为止。

8098准备就绪的这一功能,使得快速的8098芯片很方便地与各种不同速度的外围芯片联接,在实际使用时,可将外围芯片的OE-(输出允许信号)连到8098的READY端,当8098对外部慢速器件操作时,就会自动插入所设定的等待周期。

(3)内部ROM/EPROM内容的保密

8398/8798能对内部8k字节的ROM/EPROM的读写进行加保密锁,一旦将保密方式写入,便不能非法对ROM/E-PROM进行读写操作。但是对于知道存在2020H~202FH单元之中密码的操作者又能读出ROM/EPROM之中的内容,以便能对芯片中的ROM/EPROM进行校验。

操作者要想读出内部ROM/EPROM中的内容,就必须在片外存储单元4020H~402FH单元之中存入与片内2020H~202FH单元完全一样的16字节密码。芯片首先要核对密码,相符时,芯片就把片内存储器中的内容转储到片外1000H~11FFH单元之中,片内ROM/EPROM中的内容传送到4000H~5FFFH单元之中。如果在核对密码时,发现两者不完全相符,芯片将自动无休止地执行内部循环程序。

5.输入输出口:8098有4组I/O口,其中有些是双向 I/O口,有些口还具有复用功能。8098有一组特殊的 I/O口,那就是高速输入输出口(HSI和HSO)。

(1)PO口:PO口是输入口,它既能作数字信号的输入口,也能作为模拟信号的输入口。PO口只有4根引线(P 0.4~P0.7)。在8098这种版本的芯片中没有设置P1口,但在MCS96系列中有些芯片设置有P1口。

(2)P2口:P2口是一个多功能口。

(3)P3和P4口,这两组都是8位口,它们在8O98芯片中是作为外部总线使用的。在8398/8798芯片中它们既能作普通I/O口使用,又可作外部总线使用。当P3和P4作普通口使用时,EA-必须接到高电平且P3和P4作输出口时,需先将与其对应的寄存器置1,也就是先将1FFEH或1FFFH之中对应的单元置1。

(4)8098还具有一组特殊功能的I/O口,即HSI(高速输入)和 HSO(高速输出)口,它们能在没有CPU的干预的情况下,自动高速完成事先设置的输入输出工作,关于HSI和HSO后面还要详细介绍。

6.输入输出口控制寄存器:

(l)在8098芯片内设有2个输入输出控制寄存器(IOC0和IOC1)。IOC0的地址是15H,I0C0用来控制定时器T2以及HSI引脚。通过置位或清除IOC0中的有关位,可允许或禁止将HSI引脚的状态送入到HSI单元之中。IOC0中有关位的状态也可启动和复位定时T2。IOC0是一个只写寄存器,只能对它写入,写入的数据是不能读出的。IOC1的地址是16H,与IOC0一样它也是一个只写寄存器。

(2)在8098内还设有2个输入输出口的状态寄存器(IOS0和IOS1)。IOS0的地址是15H,它是一个只读寄存器,它是用来指示HSO部件的工作状态。IOS1的地址是16H,它也是一个只读寄存器,用来指示定时器和HSI部件的工作状态。应该指出的是,无论直接或间接读进IOS1都会将定时器溢出标志位清零,即清IOS1.0~IOS1.5位。例如:LD AL,IOS1和JBS,IOS1.3.SOMEWHERE都会清零IOS1的0~5位。解决这个问题的办法是,用一个寄存器单元来保存IOS1中的值,即作为IOS1的映像寄存器。任何时候出现一个硬件定时器中断或HSO软件定时器中断时,就用如下指令更新映像寄存器之中的内容:ORBIOS-IMGE,IOS1。这时IOS1的映像寄存器就保存了IOS1寄存器里以前设置的所有标志和因读操作而丢失的新标志。(未完待续)(朱小华 陈尚品 梁建国)