基于SST89C58单片机的仿真器设计与电路构成
扫描二维码
随时随地手机看文章
单片机仿真器可实现对单片机程序的单步跟踪调试,具备断点或全速等多种调式方式,同时能够记录各种变量以及RAM和寄存器的动态数据,对于程序的执行步骤与效果进行实时观察。此外,其还可实现对硬件电路的动态调试。当前单片机仿真器已在工业中得到了广泛应用,因此加大对其的研究具有重要的现实意义。
1 基于SST89C58单片机的仿真器设计
设计的主要部分是SST89C58单片机,从其构成来看,内部集成了72 kB大小的SuperFlashEEPROM程序存储器,涵盖了64 kB大小的Block0及8 kB大小的Block1的Flash—ROM。该单片机对于传统使用的SoftICE监控也做出了一定的优化处理,其中监控程序共占据了存储块Block0大小为1 kB的FC00H~FFFFH,同时还有Block1中大小为4 kB的0000H~0FF FH。
研究人员在进行仿真器调试过程中,借助IAP的帮助下再应用编程,将用户的目标程序从电脑机下载至仿真芯片所剩下的Block0空间之中,大小为63 kB,然后利用SoftICE的作用实施仿真调试。但需注意的是,在整个调试过程中,SoftICE和电脑内部的调试器程序之间始终未中断正常的通信联系。
文中从仿真器仿真的原理进行分析,其本质就是在程序调试时根据需要动态的对程序存储区作相应的修改,也唯有如此才能达到断点运行或单步运行的良好效果。在仿真芯片中研究人员预先烧入了相应的监控程序,其主要功能在于与计算机之间实施良好的通讯。等到调试者利用KeilμVision2集成环境来实施仿真的过程中,后者便会将SST89C58单片机程序目标代码利用串口传输到仿真器中,然后通过仿真器中监控程序的作用来将代码烧写至监控芯片的程序存储器。当SST89C58单片机程序在调试时,监控程序也会在集成开发环境指令的作用下,对于被调试的程序进行适当的改写,以便实现设置断点及单步运行。在这一过程中,一旦程序遇到断点而只能中断执行后,则此时监控程序便可获得CPU的控制权,其不仅需承担起查看单片机寄存器、RAM以及单片机内部的相关变量的工作任务,同时还需观察状态在串行口的帮助下输送至集成开发环境的过程,判断其是否可满足用户观察的各种需求。
2 电路构成分析
2.1 SSTB9C58单片机
图中的U1表示的是SST89C58单片机,从其指令来看与8051单片机完全相同,均使用的是双列直插封装方式,且其能与标准的8051管脚之间实现有效兼容。在整个电路中,对31引脚采取了接高电平的处理,目的在于确保其仅能访问内部64 kB大小的程序存储器;在这一构成条件下,利用对内部特殊功能寄存器的有效操作,可达到IAP在应用可编程的效果;系统本身带有SPI串行接口以及全双工增强型UART;若处于常规情况下,运行过程中外部晶振能达到40 MHz。
SST89C58单片机的16引脚可当做普通I/O口来进行使用,研究人员利用按键S2接地,与此同时S2和复位按键S1两者在互相作用下,不仅能实现仿真器的脱机运行,还可达到仿真运行功能的切换效果。
2.2 晶振与复位电路
如图1所示,晶振电路中主要包括晶振Y1、电容C5与C6、跳线器J1与J2等几个部分。在运行过程中,仿真器利用J1、J2的作用来决定是否需要应用外部电路晶振,否则便需要应用仿真器内部电路晶振。但需注意的是,等到跳线器J1及J2“2、3”端受到各种因素的影响发生短接时,则需采用用户板晶振;而一旦J1及J2“1、2”端发生短接,此时就需要应用仿真器内部电路晶振。
复位电路的主要功能在于仿真器的上电复位以及强制复位。从构成上讲,复位电路中涵盖了大小为0.1μF的电容C7、按键S1以及10 kΩ的R1。一旦系统上电,就会自动选择电容C7充电,单片机的复位引脚RST就能获得一个高电平脉冲,而等到C7充电结束后,复位引脚转变成低电平,就可完成上电复位作用;在SST89C58工作时,若根据实际情况必须对系统采取强制复位,工作人员可选择S1,复位脚电平便会从原先的低电平转变成高电平,而电容C7则会被瞬间放电,等到S1键被松开后,VCC就会开始对电容C7进行充电,以确保复位脚的高电平可持续一定的时间,因此最终完成强制复位功能。
2.3 电平转换电路
研究选择RS-232标准作为仿真器和计算机之间的串行通信。其中SST89C58单片机的逻辑电平常与TTL电平之间是兼容的,不过在RS-232标准中要求的逻辑电平和TTL电平之间,无论在极性还是幅度上均存在着一定的差异性,故需要采取电平转换。
文中选择的集成芯片是MAX232D,即图中的U2,其电平转换电路主要包括内部的电源电压变换器及外部电容等,主要目的在于实现电脑的232电平及SST89C58单片机的TTL电平之间的顺利转换。为达到这一目的,应当将输入的+5 V大小电源电压转变到±9 V。SST89C58单片机的串行通信传输信号是TXD,具体运行时需由U2的10引脚T2IN中开始进行输入,然后当其已经转变为232电平后,便可通过7引脚T2OUT来进行输出,在此基础上就可实现与电脑串行口接收端之间的连接;电脑的串口发送信号则需通过U2的8引脚R2IN才可进行输入,等到已转变为TTL电平后就可通过9引脚R2OUT来进行输出,然后与SST89C58单片机的接收引脚RXD之间实现互相连接。其具体情况如图2所示。
2.4 逻辑电平测试电路
设计时还可在仿真器上增加相应的集成逻辑笔功能,目的在于对电路中电平状态实现动态的测量,给SST89C58单片机实验实训及技术开发过程中工作人员及时的进行电路调试和硬件故障排除等创造了良好条件。逻辑电平测试电路除了有SN74HC00D(U3)之外,还包括发光二极管指示灯L1与L5,以及电阻R5~R9等几个部分。运行过程中只需通过测试线将测试端J4(V-IN)和相应的被测点之间进行有效连接。若发现被测电平处于高电平状态,则U3A和非门便会开始输出低电平,此时红灯L1亮起,而若U3C和非门开始输出高电平,则此时绿灯L2不亮,所代表的含义就是此时处于高电平状态;若输入端已与低电平之间实现有效连接时,则此时绿灯L2亮,而红灯L1则处于不亮状态;等到测试输入端空载,则无论是红灯或是绿灯均处于不亮状态;若系统中连接的测试信号为脉冲,则会发生一种红灯和绿灯一起闪烁的现象,工作人员只需利用对闪烁的速率及明暗程度进行观察,就可较为准确地估测出被测信号的频率大小及占空比情况。
3 结束语
SST89C58单片机与KeilμVision2集成开发软件间的有机结合,提供了一种功能过硬的单片机仿真器,其可实现仿真器的脱机运行以及仿真运行功能的切换,从而完成对电路中电平状态的动态测量,且具有较高的应用价值。