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