程序开发方法;
l 程序开发可以在系统硬件完成之前开始;
l IDE仿真器最适合
智能传感器的初部程序开发。
使用IDE仿真器对智能传感器进行程序开发的缺点
l 无法仿真精确的模拟信号;
l 难以仿真过程控制中的网络时序及实时转换;
l 当软件开发进入必须有最终硬件参与共同完成的阶段时,就需要在目标系统或 ISD(指令式系统设计)中完成。
对于智能传感器开发来说,特设调试区是不够的 与PC仿真不同的是,ISD在实际系统中执行并调试软件。特设调试是最简单的方法,只需在需要的地方插入调试代码。例如,可简单添加一个打印语句并查看其结果。这种方式仅适用于简单的程序调试,当软件长度增加时,出现的若干个打印语句就会变得难以控制了。
智能传感器的在系统调试 ISD 开发环境在智能传感器中内置调试支持(图7)。开发程序会处理来自传感器的实际系统输入并提供瞬时系统响应,而不是系统仿真。因此,可解决系统级问题,如:传感器精度、控制系统稳定性以及传感器网络吞吐量等。如图3所示,ISD 分为两类:软件方式和硬件 方式。软件方式ISD 又分为基于终端的ISD与基于 IDE 的ISD两类。终端
调试包括一通用监控器及片上调试器。IDE调试包括源监控器与闪存 ISD。基于硬件的ISD又分为在电路仿真器 (ICE) 与内建调试器模块 (BDM)。
由于智能传感器是紧凑型系统,它们大多不能容忍占用额外电路板空间的、增加功耗及系统成本的外部存储器。因此,MSC1210必须提供ISD 所需的所有资源。包括ISD代码空间、CPU 的时序处理的ISD路径以及ISD口。
需要外部存储器的软件方式ISD(图3),如通用 MON51、Keil MON51 及 Raisonance MON51,这些工具都不是智能传感器开发的最佳选择。而需要额外 ICE 连接总线的硬件 ISD 也是如此,该硬件 ISD 会消耗更大 ICE 总线功率,产生更多系统噪声。在系统调试尽量不要采用 ICE,需要外部存储器的ICE及 ISD 只能用于半成品开发。

图7:智能传感器 ISD 配置图

图8:ISD 监控器框图
软件ISD调试方式是智能传感器开发的理想选择
对于智能传感器等远程目标系统的监控器是嵌入在存储器中的 ISD 软件监控器。ISD监控程序(图8)用于用户程序与调试端程序之间的程序衔接。监控器将程序从编程端(例如采用片上通用异步收发器的个人电脑端程序)下载到目标系统存储器,然后进行功能调试,诸如存储器或特殊功能寄存器的读取和修改、中央处理器的状态请求、用户程序转移、单步或断点操作等。
传感器网络作为调试端口
紧凑型远程智能传感器在连接端口到终端时,可能会产生问题。一个可行的方法是通过传感器网络将传感器与终端连接起来,完成命令、响应及用户程序的下载等。然而,由于传感器网络标准种类繁多,用户需要专门设计一个带有传感器网络处理的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 还带有用于监控程序及其应用的其他支持程序(参见例程1)。利用 autobaud、put_string或cmd_parser等系统引导调试子例程,用户可获得最低开销的调试设置 - MSCon(参见例程2)