• 122
随着MCU 微控器技术的不断发展,高校单片机实验教学领域也有着新的变化。仿真器是单片机实验教学平台核心部件,而基于CPLD 技术的仿真器是目前高端仿真器发展的主流方向。文章采用了将监控功能与仿真功能分开的设计思路,用两片具有IAP 功能的STC89C58RD+芯片分别完成程序仿真和监控。采用MATCH4系列CPLD 与监控芯片组成控制回路,完成仿真和监控的协同工作。整个仿真器完成了程序仿真调试时的单步、连续、断点运行,具有较高的集成度和扩展性。
1  引言
单片机仿真器是在程序开发阶段用来替代单片机进行软硬件调试的工具。目前,虽然具有ISP 、IAP 等功能的单片机可完成仿真器大部分功能,但应用在实验教学领域该仿真器功能稍显简单。这类仿真器可以具有全速运行、停止、单步、断点、寄存器内容修改等功能,但是存在工作频宽不高、程序空间不大的缺点。目前单片机技术发展迅速,单片机功能越来越强大,其使用范围也越来越广对单片机仿真器的要求也越来越高,因而开发高频宽、大用户程序存储空间、断点可任意设置、可以跟踪反馈的仿真器具有很强的研究价值。
文章采用两片单片机STC89C58RD+,一片用于存放监控程序,另一片用于用户程序调试。可以根据实际的仿真需求选择程序存储位置并读取指令。采用可编程逻辑器件实现波特率可调以及程序空间的切换和扩展。该类仿真器可以支持多种单片机的仿真,学生通过操作上位机控制仿真器能更简单清晰的明白单片机执行每条语句的流程,快速定位程序出错位置。
2  单片机仿真系统组成及工作原理
单片机仿真系统一般由带编程软件的上位机、仿真器和实验电路组成。上位机编程软件是指可以运行仿真器程序的软件,用户可以在该软件上输入和修改程序,同时可以编译运行程序,观察程序运行结果。上位机根据用户的操作向仿真器发送调试命令,比如波特率设置、下载程序、全速运行、复位、设置断
点等命令。仿真器将上位机发出的命令接收并识别出具体的调试命令,通过自带的仿真I/O 接口作用在目标实验电路。
仿真器在整个系统中起到了串联调试上位机与实验电路的作用。仿真器中监控用的STC89C58RD+单片机与M4-128N64可编程逻辑芯片CPLD 组成监控回路,另一片STC89C58RD+当仿真芯片使
用。监控回路联合控制仿真进程,其接收上位机开发软件发来的调试命令并控制仿真芯片执行对应的操作,仿真芯片利用其I/O 端口控制调试实验电路。同时仿真芯片返回信息至监控回路,监控回路将数据进行处理,并通过RS232串口将整理后的数据发送至上位机开发软件。该仿真系统原理框图如图1
所示。
图1 原理框图
3  系统硬件设计
3.1  主控CPLD芯片
系统中主控CPLD 选择莱迪斯公司产的M4-128N64芯片,该芯片为快速逻辑设计提供灵活的架构,平均传输延迟时间仅10ns ,在电路中用其监控整个系统工作状态,使得仿真器具有很好的扩展性。其在电路中作用有如下几点:
(1)与监控MCU 通信
如图2所示,与监控MCU 的P1.1、P1.2、P1.4连接,从监控MCU 芯片中得到用户操作命令,联合监控MCU 控制仿真芯片完成单步、运行、停止、存储器选择、复位、读写等命令。
(2)程序存储选择
根据调试命令辅助将调试程序存储到外置RAM 或者监控MCU 内部,如果上位机选择片内存储,则监控
MCU 的P1.6控制MAX232与仿真MCU 串口的导通,CPLD 控制数据流向并通过使能信号将RAM 的地址总线和数据总线分别断开,此时下载的程序便可直接下载到仿真MCU 内部;如果上位机选择片外存储,则监控MCU 的P1.6断开MAX232与仿真MCU 的连接,CPLD 控制数据流向并通过使能信号将外置RAM 与监控MCU 的P2口连接,联合控制监控MCU 将程序数据写入RAM 。
(3)控制用户程序运行
为控制用户程序的正常运行,需要仿真芯片得到正确的用户程序。在本设计中采用IDT71V016高速静态随机存储芯片作为外置
• 123
程序存储器,程序存储空间可达64k ×16-bit ,存取访问时间可达10ns 。如果选择片外ROM 存储,则CPLD 控制仿真MCU 的PSEN 引脚为低读取片外程序存储器,同时将仿真MCU 的PROG 信号接入,得到要访问的程序空间继而控制RAM 读出数据。如果选择片内存储,则CPLD 控制PSEN 选择片内读取ROM 并断开与片外RAM 的连接。RAM 的读写控制信号、芯片使能与高低位使能信号均受CPLD 控制,低位数据总线既与CPLD 连接又与监控MCU 的P0口连接,高位地址总线接CPLD 同时经74LS245驱动芯片接监控MCU 的P2
口。
图2 主控MCU与CPLD电路图
3.2  监控MCU芯片
设计中监控MCU 采用STC89C58RD+芯片,该芯片内部烧写监控程序,通过RS232串口按约定通信协议与上位机通信,在用户点击打开编译软件、仿真模式选择、编译装载程序、全速运行、复位、断点设置时上位机便发送对应格式数据至监控MCU ,监控MCU 识别上位机发送的命令,将命令转化为CPLD 可识别的命令并共同执行该用户命令完毕后向上位机发送执行结果。3.3  仿真MCU芯片
仿真芯片同样采用一片STC89C58RD+芯片,该芯片具有普通单片机的全部功能,同时具有仿真调试功能。仿真芯片内部同样烧写监控程序,既可以通过地址和数据总线访问外部用户程序空间,也可以将用户程序下载到仿真芯片内部。仿真芯片连接仿真头,引脚功能可以根据用户任意配置,在使用时将仿真头直接连接在用户目标系统,在CPLD 的控制下完成仿真芯片的运行和停止、用户程序设置和清除断点、读取内部寄存器等。其硬件电路图如图3
所示。
图3 仿真MCU电路图
4  仿真器监控软件设计
仿真器监控软件设计中单片机通过串口与上位机软件进行通信,将上位机发送来的指定格式数据转换为芯片可以识别的命令,同时进行命令的处理,并将结果按协议转换为上位机可以识别的数据,通过串口发送到上位机。具体流程图如图4
所示:上位机软件开发培训
图4 监控流程图
程序开始首先进行初始化,包括外部引脚功能的配置、串口通信
初始化、中断及堆栈的配置等。初始化完成后程序进入循环模式,首先判断是否发送或接收数据,是否
正在与上位机通信,如果未发送数据且接收到数据,则触发中断,程序执行串口中断函数,将上位机发送的数据全部接收后判断仿真器是否正在运行,如果仿真器正在运行则判断是否为停止命令,如果是则仿真停止并返回主函数,如果不是则程序直接返回主函数。如果仿真器未运行则执行相应的命令。执行完毕后程序回到主函数并启动发送命令,利用串口发送回执数据至上位机。
5  结束语
文章提出了一种基于CPLD 技术的仿真器硬件电路方案设计,该电路设计简单,功能多样,通过RS232串口与上位机通信,具有单步、全速、设置断点、寄存器查询等功能,既可以在上位机软件中观察变量和存储器内容,也可以在实验系统上观察硬件仿真的现象和运行结果,为学生提供一个真实的硬件仿真环境,满足单片机教学需求。
参考:陈东晓,高磊,梅优良,一种快速断点仿真器的软硬件协同设计:计算机工程,2007;曹健雄,严壮志,基于FPGA 的单片机仿真器设计:中国医疗器械杂志,2010;肖哲靖,徐静平,钟德刚,等.用于8051微控器的片上调试系统的硬件设计:计算机与数字工程,2011;宋志强,方武,基于Multisim 10和Keil C51的单片机仿真:计算机时代,2010;张俊涛,王长安,基于SST89C54/58的单片机仿真器的设计:现代电子技术,2011;王咏梅,王印松,单片机实验教学改革的探索与实践:实验室科学,2012;熊晓松,董逸君,Protues 仿真软件在单片机原理课程中的应用:科教导刊
(上旬刊),2017;孙逸洁,刘素芳,单片机仿真器的设计:电子商务,2013;蓝忠华,楼建勇,单片机仿真技术在中职教学与产品开发中的应用:机电信息,2015;林益平,基于SST89E54RD 单片机的MONITOR-51仿真器设计:肇庆学院学报,2008。
作者简介:高原(1987—),硕士,实验师,主要研究方向:自动化控制,嵌入式系统。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。