单片机在线仿真技术的出现,极大地提高了开发单片机应用系统、仿真调试的效率和可靠性,减轻了开发者的劳动强度。
图1 宿主机/目标板的开发方式
一般地,单片机开发采用“宿主机/目标机”方式(如图1所示)。首先,利用宿主机上丰富的资源及良好的开发环境开发和仿真调试目标机上的软件。然后,通过串行口将编译生成的目标代码传输下载到目标板上,并用交叉调试器在调试软件支持下进行实时分析和在线仿真调试。最后,目标板在特定环境下编程脱机运行。
这种一对一式的开发,无疑是很好的开发方式,但它的问题是设备利用率低下,这在单片机实验室显得尤其突出。所以在设备紧缺情况下,开发一套辅助设备来提高仿真开发设备的利用率是非常有必要的。
性能要求
在现有单片机仿真设备的基础上,设计一个多路开发应用装置,实现一套可供几个用户轮流开发仿真的单片机仿真器。这样几人一组共用实验设备,既能提高设备利用率,又能形成良好的开发仿真氛围,更重要的是降低设备重复投入。
多路开发器的整机框图
本文陈述的设计实现了一套单片机仿真器的多路开发应用板,很好地满足了以上要求,并且在实践过程中取得了较好的效果。其原理如图2所示。
图2 仿真多路开发器的原理框图
多路开发器的电路设计
整机是通过一个控制电路来实现多个用户主机对一台单片机仿真器的轮流地一对一的仿真使用。这里选用了AT89C2051单片机芯片、74LS04反相器和电磁继电器为主要部件,来组成一个利用单片机自动控制的选通电路,来正确地完成每个用户主机与单片机仿真器之间串行口的数据通信。最终目的是设计一个单片机仿真器的多路复用系统板,以实现4个用户共同使用一个仿真器。
AT89C2051是一个低电压,高性能CMOS 8位单片机,片内含2Kb的可反复擦写的只读Flash程序存储器和128 字节的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大AT89C2051单片机可提供许多高性价比的应用场合。
它只有20个引脚,15个双向输入/输出(I/O)端口,其中P1是一个完整的8位双向I/O口,两个外中断口,两个16位可编程定时计数器,两个全双向串行通信口,一个模拟比较放大器。
多路开发器电路原理如图3所示。当用户1按下连接在单片机P3.5的按键S1时,产生一个低电平,单片机查询到P3.5变低时,使P1.0变低,让连接此端口的发光二极管导通发光以指示用户1正在申请使用,同时单片机P1.7产生一个高电平,经过74LS04反相后再经三极管放大,使得继电器K1导通,从而使得连接用户1主机和单片机仿真器的串行口TxD线,RxD线和地线能够顺利连接,使用户J1主机能顺利地使用单片机仿真器,这样就完成了用户J1主机与单片机仿真器的连接使用。
图3 仿真器多路开发器电路图
当用户2按下连接在单片机P3.4的按键S2时,产生一个低电平,单片机查询到P3.4变低时,使P1.0恢复高电平,此端口的发光二极管熄灭,此时单片机P1.1端口产生一个低电平,连接在此端口的发光二极管导通发光以指示用户J2正在申请使用,同时让P1.7变成低电平,流经继电器的电流消失,继电器K1断开,使得用户J1主机与单片机仿真器断开。此时P1.6端口产生高电平,经反相放大后使继电器K2导通,使得用户J2主机顺利使用单片机仿真器。
同样的道理,其他用户按下按键后,当单片机查询到时,就会使相应LED发光指示正在使用,从而相应继电器发生动作,这样就实现了单片机仿真器多路复用。
图4 多路开发仿真软件流程
软件编程
软件流程如图4所示。整个程序用C51编写完成,通过编译,编程至芯片AT89C2051,完成脱机工作。
单片机系统应用开发仿真调试借助WAVE6000仿真器,该调试器有集成的isp仿真调试环境。安装使用时,其默认的编译系统是汇编语言,为了实现C51编译,开发过程中,为WAVE6000安装了KEIL C51编译器。
结语
整个系统运行正常,达到了单片机仿真器多路复用的目的。在开发实践过程中,取得了预期目的效果,多个用户开发单片机应用系统仿真调试时,能很好地交替使用,从而提高了实验设备利用率。