使用IDE仿真器对智能传感器进行程序开发的优点
1、由于无须任何硬件参与开发,仿真是一种低成本的程序开发方法;
2、程序开发可以在系统硬件完成之前开始;
3、IDE仿真器最适合智能传感器的初部程序开发。
使用IDE仿真器对智能传感器进行程序开发的缺点
1、无法仿真精确的模拟信号;
2、难以仿真过程控制中的网络时序及实时转换;
3、当软件开发进入必须有最终硬件参与共同完成的阶段时,就需要在目标系统或 ISD(指令式系统设计)中完成。
对于智能传感器开发来说,特设调试区是不够的
与PC仿真不同的是,ISD在实际系统中执行并调试软件。特设调试是最简单的方法,只需在需要的地方插入调试代码。例如,可简单添加一个打印语句并查看其结果。这种方式仅适用于简单的程序调试,当软件长度增加时,出现的若干个打印语句就会变得难以控制了。
智能传感器的在系统调试
ISD 开发环境在智能传感器中内置调试支持。开发程序会处理来自传感器的实际系统输入并提供瞬时系统响应,而不是系统仿真。因此,可解决系统级问题,如:传感器精度、控制系统稳定性以及传感器网络吞吐量等。如图3所示,ISD 分为两类:软件方式和硬件方式。软件方式ISD 又分为基于终端的ISD与基于 IDE 的ISD两类。终端调试包括一通用监控器及片上调试器。IDE调试包括源监控器与闪存 ISD。基于硬件的ISD又分为在电路仿真器 (ICE) 与内建调试器模块 (BDM)。
由于智能传感器是紧凑型系统,它们大多不能容忍占用额外电路板空间的、增加功耗及系统成本的外部存储器。因此,MSC1210必须提供ISD 所需的所有资源。包括ISD代码空间、CPU 的时序处理的ISD路径以及ISD口。
需要外部存储器的软件方式ISD,如通用 MON51、Keil MON51 及 Raisonance MON51,这些工具都不是智能传感器开发的最佳选择。而需要额外 ICE 连接总线的硬件 ISD 也是如此,该硬件 ISD 会消耗更大 ICE 总线功率,产生更多系统噪声。在系统调试尽量不要采用 ICE,需要外部存储器的ICE及 ISD 只能用于半成品开发。
软件ISD调试方式是智能传感器开发的理想选择
对于智能传感器等远程目标系统的监控器是嵌入在存储器中的 ISD 软件监控器。ISD监控程序用于用户程序与调试端程序之间的程序衔接。监控器将程序从编程端(例如采用片上通用异步收发器的个人电脑端程序)下载到目标系统存储器,然后进行功能调试,诸如存储器或特殊功能寄存器的读取和修改、中央处理器的状态请求、用户程序转移、单步或断点操作等。
传感器网络作为调试端口
紧凑型远程智能传感器在连接端口到终端时,可能会产生问题。一个可行的方法是通过传感器网络将传感器与终端连接起来,完成命令、响应及用户程序的下载等。然而,由于传感器网络标准种类繁多,用户需要专门设计一个带有传感器网络处理的ISD监控程序。
通过传感网络或调试端口下载用户程序
包括MSC1210在内的可编程微控制器一般都带有内置的串/并行闪存编程操作功能。用户只需将 MSC1210 设定为闪存编程模式,便可通过UART0 把用户程序下载到远程传感器中。若没有调试端口,或系统需要尽可能减少网络连接传感器的数量时,用户程序可通过一般传感网络直接下载。MSC1210的可编程闪存具有自动更新的能力。换句话说,在运行嵌入式ISD监控程序Load User Code 时, MSC1210内置于闪存中的监控程序会将用户码下载并保存到同一闪存中。
MSC1210 IAP 闪存
在下载用户程序时,嵌入式闪存因忙于执行写、删除操作。这时,CPU不可对闪存操作,故MSC1210带有一个可提供闪存擦写程序的2KB嵌入式自启动ROM。该ROM程序可用于嵌入式闪存的内部在应用编程 (IAP)。MSC1210 用户应用程序,如ISD的监控程序,可以使 ROM 程序对闪存进行编程操作。
ISD 监控器 - 嵌入式 MSCMon
ISD监控器可通过通用的监控程序进行修改,该程序在因特网上随处可见,并且大部分已通过测试适合MSC1210,如:Steve Kemplin 编写的 MonPlus、Paul Stoffregen 编写的 PaulMon 以及 Ultramon(编者不明)。
MSCMon - 片上 MSC 监控程序
除了快闪的内部在应用程序外,嵌入式 ROM 还带有用于监控程序及其应用的其他支持程序。利用 autobaud、put_string或cmd_parser等系统引导调试子例程,用户可获得最低开销的调试设置 - MSCon。
嵌入式 MSC 调试子例程不仅支持基本调试命令,如:S-单步、B-中断以及Q-继续,同时支持包括CP-程序页删除、CW-程序写、XP-X页数据删除 以及 L-装载等的闪存命令。使用MSCMon 可大幅度节约调试空间,最低配置的 MSCon 仅需29字节的快闪程序空间。此外,由于用户程序储存在闪存中,下载程序可作为最终应用。完整的命令列表如图6所示。值得一提的是,MSC 监控程序保存在闪存中,通过Load User Code命令下载用户程序。由于 MSC 监控程序的存储要求很低,用户程序可以连接在 MSCMon上。
MSCon 需要 PC 调试终端,如Hyper-term、Tera-term、Procomm 或 Telix。在没有调试端口或调试终端的情况下,就需要有用户传感器网络程序。
汇编与源程序调试
采用 RS-232 端口的典型调试终端程序时,没有源程序或监控操作的信息。源程序调试,如单步执行需要机器代码与源代码之间的关联表,因此只支持汇编级调试。而 PC IDE 程序与监控程序通过特殊的握手信号,获得一般监控程序和MSCMon所没有的外部源码信息。将这些高性能源级接口与调试命令连接,使用户操作变得简单易行。
Keil ISD51 监控程序是闪存中的内嵌程序,与 IDE通信实现源级调试。IDE的图象用户接口可大大提高调试效率。用户可随时对CPU 寄存器及其中的任何存储器内容进行监控。由于它是源级监视程序,其调试质量要远远优于汇编级监视程序。而ISD51的小容量要求使得监控程序与用户码在目标系统中的编译和下载同时完成。MSC1210带有一内建硬件断点,用于检测硬件中的断点地址。ISD51 充分利用硬件断点功能,执行性能比通过软件实现提高了100倍。
尽管 Keil ISD51 是极具吸引力的工具,但仍需要 RS232 调试端口。另外指令式系统设计的监控程序与用户传感器网络之间的通信设置部分需要单独开发。
总结
由于ISD监控程序内置在智能传感器中,最终的智能传感器不会由于程序开发装置而降低了模拟性能。MSCMon 与 Keil ISD51 监控器只需较小的代码空间。针对某些对代码空间较敏感的应用领域,在产品设计阶段可考虑采用带有较大存储器的MSC1210系列版本,到实际生产中再降低内存。指令式系统设计监控器在调试阶段无须附加硬件,这样可有效降低开发成本。
文章评论(0条评论)
登录后参与讨论