访问电脑版页面

导航:老古开发网手机版其他

单片机智能化仪器嵌入式在线仿真设计方法

导读:
关键字:
单片机智能化仪器嵌入式在线仿真设计方法 江汉石油学院徐爱钧 摘要针对基于单片机的智能化仪器设计,提出一种新颖的“嵌入式”在线仿真方法。在智能仪器设计之初,直接在其硬件系统中嵌入1个包含专门用于仿真调试的监控程序模块,在整个设计过程中直接对仪器的各种功能进行实时调试。监控程序具有通用性,可与PC机通信实现源程序在线仿真调试,节省购买专用仿真器的费用,降低成本,加快仪器的更新换代速度。 关键词智能仪器仿真监控程序 一、 基于单片机的智能化仪器设计与仿真 单片机的出现引起了仪器、仪表结构的根本性变革。以单片机为主体取代传统仪器、仪表的常规电子线路,可以容易地将计算机技术与测量控制技术结合在一起,组成新一代的“智能化仪器仪表”。这种新型的智能化仪器在测量过程自动化、测量结果的数据处理以及功能的多样化方面,都取得了巨大的进展。采用单片机技术设计智能化仪器,能够解决许多传统仪器不能或不易解决的难题,可以简化电路,提高仪器的可靠性,降低成本以及加快新产品的开发速度。这类仪器的设计重点已经从模拟和逻辑电路的设计转向专用的单片机模板或功能部件、接口电路以及输入输出通道的设计、通用或专用软件程序的开发。 智能化仪器与传统仪器的最大不同,在于前者是以单片机作为仪器的核心,仪器各种功能主要通过单片机的控制作用来实现。单片机运行正常与否直接关系到仪器设计的成败,因此很有必要在仪器设计完成之后,对单片机进行仿真运行来检验该仪器设计是否合理,功能是否完善。所谓仿真运行,就是通过对仪器内部单片机中的系统程序人为设置单步、断点、运行历史记录等调试手段,根据仿真运行结果对初始设计进行分析和适当修改,以求达到最优化的设计效果。在智能化仪器设计过程中,仿真运行是必不可少的一个重要步骤。仿真运行的可靠性和方便性,直接影响到仪器的设计效果。可以采用专用仿真器对所设计的智能化仪器进行仿真,将专用仿真器的仿真电缆插头插入仪器中单片机插座,来代替仪器中的实际单片机,并将仪器的系统程序装入仿真器中运行,通过在仿真器中设置单步、断点等对仪器系统程序进行调试。采用这种方法仿真的优劣完全取决于仿真器的可靠性。高档仿真器可以做到实时在线仿真、全速运行用户程序并且不占用任何用户资源以达到完全仿真的目的。但这种仿真器价格昂贵,非一般用户所能承受。另外由于单片机的种类繁多,性能各异,1台仿真器不能仿真所有类型的单片机,如果设计中由于选择了不同类型的单片机而需要购买不同类型仿真器,则更将加大用户负担,从而导致仪器设计落后,更新换代缓慢。 图1地址跳零电路二、 嵌入式仿真方法及其实现 本文提出了一种新的“嵌入式”仿真调试方法:仪器设计之初,直接在系统中嵌入1个包含有专门用于仿真调试的监控程序模块,在仪器设计过程中可以直接应用该模块对所设计的各种功能进行在线测试。基于单片机的智能化仪器系统具有一般设计规则可以遵循,因此,完全可以预先设计出1种通用仿真调试模块,需要时将其嵌入到用户系统中去。采用“嵌入式”仿真调试方法设计智能化仪器,不仅可以节省用于购买专用仿真器的开支,降低成本,同时,由于仿真调试模块已经位于所设计的仪器之中,很容易对仪器进行现场调试,对于故障排除、使用人员培训等都提供了极大的方便。 “嵌入式”仿真调试模块的代码应尽可能小,同时应具有通用性,以便于嵌入任意用户系统,另外,模块应尽量少占用或不占用用户资源。在硬件上,要保证系统在仿真阶段能正确进入仿真监控程序;在软件上,要具有单步、断点、全速运行等基本调试功能。下面以目前使用极为广泛的8051系列单片机为例,阐述“嵌入式”仿真调试模块的基本设计方法。 众所周知,8051单片机的复位入口地址为0000H。如果将调试模块的入口地址安排在0000H地址,可以保证系统上电后立即进入调试模块运行仿真程序。但这样将占用用户程序的入口地址,导致用户程序需要采用“地址浮动、两次汇编”的方法设计。也就是说在编写用户程序时,第1次将起始地址定位在调试模块所占用的地址范围之外,当调试通过之后再采用“ORG”伪指令,将用户程序地址重新定位在0000H处,并再次进行汇编而得到可进行EPROM固化的用户程序机器码。显然,这种方法会使用户感到不方便。为了方便用户编程,使用户程序在调试通过之后不用改动即可运行,在设计上应使“嵌入式”仿真调试模块具有“零地址”仿真功能,即将仿真调试模块嵌入到高端地址空间,而将复位入口地址0000H留给用户使用。在硬件设计上可采用如图1所示的地址跳零逻辑电路,避开零地址的冲突。 当系统上电复位或手动复位时,地址跳零电路中P点的高电平使3个R\ S的触发器Q端置1,3个或门输出全为1。此时3\ 8译码器的输入端均为1,译码输出线Y7有效,送出地址信号E000H,选中“嵌入式”调试模块。8031单片机复位完成后,各个并行口的初值均为FFH,3根地址线A13、A14、A15为全1。一方面使3个R\ S触发器复位,另一方面使3\ 8译码器的输入端仍然维持全1,继续维持译码输出线Y7有效,从而实现复位时将运行控制权交给“嵌入式”调试模块。模块中的仿真调试程序控制用户程序进行仿真操作,这样就避开了复位时零地址的冲突。当仿真调试完成之后,可以通过跳线改变3\ 8译码器的输入信号,恢复对0000H地址的译码输出线Y0有效,将复位时的运行控制权交给用户系统,实现系统上电或手动复位时立即运行用户程序。 现在PC机的使用已经相当普遍。在进行单片机应用系统开发过程中,应该充分利用PC机的资源。为此“嵌入式”调试模块中设计了与PC机的通信程序。用户可以在PC机上采用PE、EDIT或任何一种自己熟悉的编辑器编写源程序,并进行编译和连接定位。完成这些基本工作之后,再通过PC机的RS232适配器与8051单片机内部串行口之间的通信,将其下载到应用系统之中。通信程序中还包含有直接仿真功能。程序调试中的各种信息,如单片机工作寄存器状态、程序指令的当前地址、堆栈状态、断点信息等都将图2模块内部调试监控程序流程通过通信接口传递给PC机并显示在屏幕上。从PC机上可以键入各种仿真操作命令并传送到8051单片机中,实现源程序跟踪调试。这种调试方法比单纯采用汇编码调试的效率要高出许多倍,而且容易发现错误,及时纠正,给程序的编写和修改都带来极大的方便。但这样做要占用8051单片机的串行口,需要时,可以利用8251等芯片为8051单片机增加1个扩展的UART串行接口,或者采用Dallas 80C320等具有双串行口的新型单片机。 “嵌入式”调试模块的软件设计包括两个方面:一是运行于用户系统内部的调试监控程序,另一个是运行于PC机上的仿真程序,两者配合以完成用户程序的仿真调试任务。其中用户系统内部的调试监控程序是关键部分,其基本结构如图2所示。 目前一些半导体厂商推出了内含Flash的程序存储器,并具有在系统编程(ISP)功能的单片机,如PHILIPS公司的89C51Rx、DALLAS公司的DS89C420、SST公司的89C58等ISP单片机。这类单片机的1个很大特点,是可以利用单片机串行口直接将用户程序下载到芯片内部的Flash存储器中,而且允许进行在应用中编程(IAP)。芯片内部Flash存储器可频繁擦写。一些简单的应用可以将编译连接好的程序直接下载到芯片中运行;对于较为复杂的应用可以按功能模块编程并下载到芯片中分段运行,从运行结果判断程序编写是否有错。这种方法不能进行程序在线仿真调试,难以发现某些隐匿的错误,不宜用于太大的应用程序。ISP单片机内部Flash存储器通常都被划分为几个块(BLOCK),允许进行分块擦写,可以在一个BLOCK中运行程序代码的同时擦写另一个BLOCK中的内容。根据这一特点,把“嵌入式”仿真调试模块设计为能对Flash存储器进行擦除和修改,从而可以实现对ISP单片机的仿真调试。PHILIPS公司的89C51RX单片机提供1个片内BOOT ROM固件。其中包含若干可直接调用的IAP子程序,并且允许用户修改启动向量(BOOT VECTOR)。SST89C58单片机允许用户通过编程改变ROM存储器映像(memory re\ mapping),重新设定复位和中断入口地址。利用ISP单片机这些特点,可以将“嵌入式”仿真调试监控程序写入ISP单片机内部Flash存储器的高端地址空间,然后将BOOT VECTOR修改为指向该监控程序。单片机在上电复位后将立即运行仿真调试监控程序,不再需要如图1所示的地址跳零电路,简化了硬件设计。由于单片机芯片中已经包含了可以对用户程序进行仿真调试的监控程序,可以嵌入到任何应用系统中,真正实现“嵌入式”仿真调试。对应用程序的调试和修改可以直接在芯片上进行,避免了由于连接仿真器而引入的某些设计问题,如在仿真器上用户程序能够正确运行,一旦脱离仿真器就发生程序跑飞等现象。对于不希望总线开放的单片机应用系统,采用这种方法特别适宜。由于系统总线处于封闭状态,可以大大减小外界干扰对单片机应用系统的影响,提高系统可靠性。 结束语 按上述思想设计的“嵌入式”仿真调试模块,已经在我们最近进行智能化仪器开发研制中得到应用:能够通过PC机向仪器装入系统应用程序,并可进行单步、断点调试、全速运行、存储器内容查看、修改等,使用十分方便。利用该模块对基于80C51/52、DS80C320、PHILIPS 89C51RD2、SST89C58等型号单片机的智能化仪器进行在线仿真调试,效果良好,证明“嵌入式”仿真调试方法思路是正确的。该“嵌入式”仿真调试模块能够装入Intel HEX格式的用户目标程序,可以利用多种汇编器,甚至高级语言编译器,对单片机应用系统源程序进行编译,只要能生成符合Intel HEX格式的目标程序,都可以利用“嵌入式”仿真调试模块进行调试。该模块紧凑,监控程序容量仅4KB左右,可以“嵌入”到大多数智能化仪器之中,实现对仪器系统应用程序的实时、在线仿真调试,对于提高仿真调试的可靠性,加快仪器的开发速度,提供了一条新的途径。MES 参考文献 1Intel Embedded Applications. Intel Corporation, 1997(79~104) 280C51 Flash Microcontroller Family. Philips Semiconductor,1999(39~47) 3徐爱钧.智能化测量控制仪表原理与设计.北京:北京航空航天大学出版社,1999(2~92)
来源:单片机与嵌入式系统应用   作者:江汉石油学院 徐爱钧  2006/2/12 0:00:00
栏目: [ ]

相关阅读

安森美推出新的高功率图腾柱PFC控制器,满足具挑战的能效标准

动态功耗低至60μA/MHz!助力设备超长续航,首选国民技术低功耗MCU!