嵌入式设备无处不在,从家里到汽车,从办公室到遥远的装配工厂、甚至海上石油钻井平台。由于这些设备已渗透到世界每一个角落,远程维护和远程调试就变得十分重要。当然,在理想世界里,远程调试是不必要的。但在现实世界中,这还是必要的。
典型的调试系统由一台主机PC、一个目标连接和被测试设备组成。大多数情况下,主机是运行微软视窗操作系统的PC,偶尔也会是运行Linux的系统。与被测设备的通信有几种方式,一般通过并行、串行或以太网连接来实现。许多制造商提供连接以利用被测目标的片上调试(OCD)功能。然后,OCD接口通过一个特定的管道与目标处理器相连。
为了便于远程调试,一台设备在制造时必须考虑三点。第一,目标的OCD如何与外部相连?如果用于OCD通信的连接器处于系统深处,那么被测目标可能要在现场拆卸下来才能调试,或者只有以某种无法接受的方式才能对其进行修改。第二,OCD接口应该植入被测目标内还是放置在外部?如果在实验室,设计师利用主机的串行接口通过OCD接口与被测目标通信,那么最终产品是否要内置OCD接口,而只把串行端口留在外面?或者,OCD接口是否应与被测目标一起放置在远程位置?这里要
远程调试也包括不太极端的情况,如待在家里调试一个正在实验室中开发的新原型。在这种情况下,问题不是测试设备如何访问目标,而是工程师如何访问主机,或者主机如何访问测试设备。每种情况都有不同的处理方法。
首先看一下最简单的情况,即工程师想待在家里调试位于实验室的系统。假设他的主机在物理上与测试设备相连,现在的问题是如何从他的家庭电脑控制主机。市面上有几款商业产品可以很容易做到这点。假设两个系统都可以访问互联网,那么我们有几种商业解决方案。通过利用基于Web的GoToMyPC简单地建立一个账户,任何人都可以从任何网络浏览器安全、方便地访问远程PC。因此,坐在家里,这位工程师也可以在本地计算机上看到其办公室电脑的工作桌面,就像本人在办公室一样有效地测试和调试目标。其它类似产品,如Symantec公司的pcAnywhere,也可以实现同样的功能,但安全性和客户端要求可能有所不同。这种情况要求所有的调试和维护软件都安装在实验室的系统上。
仍然是针对远程目标,如果这位工程师想在本地做一些测试和调试工作,那么问题将变得更复杂。如果他还处于设计阶段,或者如果维护和调试涉及大量的编译或仿真,那么使用本地主机可能更容易处理。在这种情况下,我们必须指出如何通过调试接口连接到本地计算机。考虑到工具仍在实验室,我们只需要把主机与调试器的连接抽象化。这种连接可以是串行、并行、USB或以太网连接。我们将考虑以太网连接,因为它已经非常普遍。
在本地测试环境下,我们经常利用企业内部互联网(内联网),它连接了许多PC和一些测试设备,并具有一个连接到互联网的网关。在内联网的元素中,办公室的每台PC和测试设备都有一个本地的IP地址,一般从外部无法看到它们。这提供了安全保障,而且是必须采取的措施,因为没有足够的外部IP地址可以分配给每个办公室的每台设备。网关设备通常是一个路由器,它是网络的门户,往往具有一个外部能看到的IP地址。为了执行远程调试或维护,外部世界的客户端需要访问内部的设备。路由器有一个简单的方法来处理这项任务。网络地址转换(NAT)功能是通过路由器的查找表来实现的。其原理非常简单:TCP/IP(内联网和互联网所用的典型通信协议)通信采用双地址方案。地址的一部分是IP地址,而另一部分是端口号。在本例中,路由器的IP地址通过互联网暴露给外部世界。任何人从任何地方都可直接与其通信。当路由器接收到一个带有地址的信息数据包时,它将查看目标端口号,然后,将这个端口号与路由器NAT表中的端口号进行比较。如果有匹配的结果,该表将包含目标通信设备的内部IP地址。然后,数据包被发送到正确的内部设备,在本例中是基于以太网的OCD接口。这种情况几乎没有任何安全性可言,因为任何人只要知道路由器IP地址及调试器的端口号,就可以访问该系统。这一问题的严重性取决于很多因素,将不在本文予以讨论。
如果需要更高的安全性,可采用其它办法将主机与远程调试器相连。虚拟专用网(VPN)可以让远程系统(办公室、个人及调试器)利用互联网安全地访问主机网络。VPN不是采用专用电话线路或其它安全通信方式,而是利用密码访问、加密数据和隧道协议等安全手段来实现的。这位工程师不必关心VPN是如何工作的,只要在家庭计算机 上安装客户端软件,并请IT部门设置在办公室或实验室里的服务器即可。一旦通过互联网建立连接并通过验证,该工程师就可以像坐在办公室里一样工作了。所有数据传输都是加密的,但更重要的是,他被认为是一个合法用户,可以访问OCD设备及其被测目标,甚至内联网的更多内容。
有助于简化远程调试的工具之一是Macraigor系统公司的mpDemon。该工具可通过串行或并行连接与本地主机相连,或者通过以太网远程连接主机。它带有一个可配置IP地址及端口,并支持多种通信协议,可以为各种远程调试情况提供灵活的解决方案。
下一步是在一个真正的环境中进行远程调试和维护。过去几年,该技术已经将触角延伸到日常设备,如售货机。最新的售货机在需要补充货品时能够自动联系分销商。这一般可利用嵌入式处理器通过调制解调器和电话线来实现。这种应用并不局限于本地库存报告,因为机器还可以通过同样的通信渠道升级其固件和执行其它维护。银行ATM取款机等其它嵌入式系统正变得更智能,它们可以通过电话线或以太网与主机系统相连,从而扩展远程调试、维护和升级能力。
更进一步,许多嵌入式系统被用于偏远的地方,如石油钻井平台等。这些设备虽然处于远程
这些设备的物理设计也很重要,不但要考虑设备所处的环境,还要考虑服务是怎么执行的。一些远程调试或维护可能意味着派个技术员去现场升级固件,但设计不应要求完全拆卸设备才能访问其内部的嵌入式EPROM。