利用远程微控制器调试器加快工业自动化设施的配置
投稿人:DigiKey 北美编辑
2021-03-03
工业自动化设施越来越多地使用基于微控制器的单板计算机 (SBC) 来控制设备运行,以提高效率、生产力。通常使用的 SBC 是现成的带可配置固件的 SBC 和带定制固件的定制 SBC 的组合。但是,对于新型工业设备或刚完成重新配置的现有设施,可能需要修改 SBC 固件,以改善运行或修复代码错误。
本文将讨论 SBC 的作用以及为什么远程调试在工业环境中越来越重要。然后将介绍 MikroElektronika 的远程调试器及相关软件,并解释如何将其与 Wi-Fi 网络连接,从而对大多数 SBC 中的 Arm® 微控制器进行远程调试。
工业计算机中的 SBC
需要通过更精确、更好的过程管理来提高生产率,这是现代工业自动化设施面临的压力。这可以包括使用高分辨率传感器,从而向控制固件提供更准确的数据。此外,电机和螺线管等致动器可以升级为移动更精准的致动器。
一旦安装了这些具有更高的精度和分辨率的传感器、致动器,就必须对管理这些设备的 SBC 中的控制固件进行修改,从而充分发挥更高分辨率的优势。如果当前的 SBC 不能应对处理升级,则必须安装新的 SBC。在这两种情况下,新固件在安装到工业设备之前,通常会经过工作台测试和调试。完成初步测试后,新系统投入使用。
然而,对于较复杂的过程,调试和编程可能不会就此结束。通过在系统运行,可能会发现生产前测试中没有发现的问题。许多情况下,优化固件的唯一方法是在 SBC 使用时进行调试。
新的工业自动化设施也面临同样的问题。对于高性能系统来说尤其如此,因为在这些系统中,必须对固件控制环路进行微调以满足效率要求。无论新建工业设施还是对其升级,停机时间都是昂贵的,必须尽量减少。这意味着 SBC 必须进行在系统调试和编程。
远程调试工业嵌入式系统
工业系统中使用的 SBC 调试与任何基于微控制器的系统的调试是没有区别的。调试器必须通过电缆从微控制器的调试端口以物理方式连接到运行调试软件程序的 PC 上。然后,PC 技术人员会在固件运行时对其进行检查和调试。如果有许多 SBC 需要现场调试,就可能会相当耗时,因为技术人员需要到达每个 SBC 的实际位置。如果有些 SBC 处于恶劣环境中,或在偏远或交通不便的地方,现场调试可能会更加困难。此外,熟悉定制固件的技术人员数量通常有限,因此要求这些技术人员在短时间内调试许多系统,这会使工序复杂化,耽误工作进程。
解决办法是使用远程调试器,这些调试器与 SBC 以物理方式连接,但通过位于其他地方的联网 PC 提供调试功能。可将远程调试器插入 SBC 的微控制器调试端口,同时通过 Wi-Fi 连接到设施网络。同一网络上位于方便位置的某台 PC 可以用来访问任何一个远程调试器。技术人员就可以在远程 PC 上拥有完整的调试能力。
为了进行这种远程调试,工程师可以使用 Mikroe 的 CodeGrip,这是一个远程调试器系列,可以通过 Wi-Fi 连接远程 PC,以支持许多 Arm 微控制器的编程和调试。MIKROE-3460 CodeGrip Wi-Fi 调试器可用于大多数带有 JTAG 端口的 Arm 微控制器(图 1)。该器件还支持大多数 Arm Cortex-M3、Cortex-M4 和 Cortex-M7 微控制器上的 Arm 串行线输出 (SWO) 单线调试端口。
图 1:MIKROE-3460 CodeGrip 远程调试器与 SBC 的调试 JTAG 或 SWO 端口之间的物理连接。该器件通过 Wi-Fi 进行远程访问,对 Arm 微控制器固件进行编程或调试。(图片来源:Mikroe)
Mikroe 的 MIKROE-3460 CodeGrip 放置在基于 Arm 的 SBC 的实际位置处。该器件的一个端口连接电路板连接器上可用的 JTAG 或 SWO 端口。然后,通过 USB 临时与笔记本连接,以便为被调试的微控制器初步配置 CodeGrip 单元。对于高性能系统,CodeGrip 单元配备有一个 USB-C 接口。这在狭窄的环境中特别有用,而且会节省时间并减少挫折感,因为与以前的 USB 连接器不同,USB-C 连接器不分顶部或底部方向。
与 CodeGrip 单元连接的笔记本电脑必须运行 Mikroe 的 CodeGrip Suite,以便对 CodeGrip 设备进行初始配置。CodeGrip 单元配备五个 LED 状态灯指示灯(图 2)。因此,现场技术人员能了关键的状态信息,即无需连接笔记本电脑,该单元就能正常运行。供电正确时,绿色电源 LED 指示灯亮。CodeGrip 单元正常运行器件,红色 LED 灯也会亮。如果绿色 LED 指示灯亮且红色 LED 指示灯灭,则表示与 JTAG/SWO 端口连接不良或没有连接;对现场技术人员来说,这是调试电缆可能需要重新安装或更换的重要信息。
图 2:CodeGrip 单元使用五个 LED 指示灯提供关键的状态信息,可在现场提供快速视觉反馈,而无需连接笔记本电脑。(图片来源:Mikroe)
一旦通过 USB 连接到笔记本电脑,CodeGrip 单元上的黄色 USB-LINK LED 指示灯亮,表示连接成功。然后用户通过 USB 连接运行 CodeGrip Suite,配置 CodeGrip 单元。
配置 CodeGrip
CodeGrip Suite 通常可以自动检测 SBC 上的 Arm 微控制器,但也可以手动配置内核类型、闪存大小和 RAM 配置。然而,并不是所有的 Arm 产品系列都能使用相同的调试器来轻松完成配置。对于 STMicroelectronics 的 STM32 Arm 系列微控制器,Mikroe 提供了 MIKROE-3461 CodeGrip 单元。NXP Semiconductors 的 Kinetis 系列由 MIKROE-3462 CodeGrip 支持。对于所有这些产品,CodeGrip 单元和 CodeGrip 套件的运行都是相同的。
一旦连接并完成配置,CodeGrip Suite 就可以在现场进行编程和调试。在任何数据向 CodeGrip 单元传输的过程中,蓝色数据 LED 指示灯闪烁,表示数据正在 CodeGrip 设备和 CodeGrip Suite 之间传输。这表示 CodeGrip 单元运行正常,正在对 SBC 进行编程或调试。
至于远程调试,CodeGrip 单元可以通过 Wi-Fi 与同样运行 CodeGrip Suite 的远程 PC 连接。出于安全和性能考虑,用于连接 CodeGrip 单元的 Wi-Fi 网络应与工业设施中使用的其他 Wi-Fi 网络隔离。通过 Wi-Fi 向 CodeGrip 单元发送一个大的 .bin 或 .hex 文件,就相当于将一个大文件下载到 PC 上,所以会使整个网络的速度变慢。如果远程电脑成功连接 CodeGrip 设备,则 CodeGrip 单元上的橙色 NET-LINK 指示灯亮起,表示连接成功。一旦 CodeGrip 单元配置完成,就可以断开通过 USB 连接的笔记本电脑。
CodeGrip Suite 可对目标微控制器上的全部闪存进行读取、编程和擦除操作。该设备还可将微控制器闪存存储器的内容与源文件进行比较,以验证固件的真实性,是否被篡改。这在安全审计期间也很有用,需前往每个 SBC 的实际位置就可以验证固件安全性。
CodeGrip Suite 还可以对目标微控制器进行硬件复位。这对于 SBC 故障或怀疑有安全漏洞时非常有用。通常情况下,复位后的 SBC 会在启动时运行内置自检 (BIST) 功能,其中包括安全检查,验证设备是否正常运行,是否被篡改。
Mikroe CodeGrip 单元的一个强大功能就是支持 Arm SWO 实时调试端口。SWO 引脚发送 Arm 微控制器的状态调试信息,可用于实时提供固件运行的状态和跟踪信息。Mikroe 提供了一个 SWO 库,其功能可以增强 CodeGrip Suite 的调试能力(图 3)。这样可以方便地对微控制器固件进行远程监控和调试。
图 3:CodeGrip Suite 可以通过 SWO 端口的发出数据流,为 Arm 微控制器提供实时调试和跟踪信息。调试信息采用不同的颜色显示,便于参考。(图片来源:Mikroe)
SWO 消息有三个消息类别:信息、警告和错误。CodeGrip 可以显示任何或所有这些信息类别。显示的信息用用不同的颜色显示,以便参考;蓝色表示信息,黄色表示警告,红色表示错误。这能让用户快速决定需要查看的内容,也可以轻松地优先处理错误信息优。
结论
工业设施中 SBC 的在系统调试可能会很耗时,特别是当许多 SBC 必须进行编程和调试时。此外,到每一个单独的地点进行访问并不总是实际可行的。如图所示,使用 CodeGrip 等设备及相关软件通过 Wi-Fi 进行远程调试,既节省时间,又提高了工作效率。
免责声明:各个作者和/或论坛参与者在本网站发表的观点、看法和意见不代表 DigiKey 的观点、看法和意见,也不代表 DigiKey 官方政策。