安全关键型软件和 SoC – 对于下一代医疗设备,直线和狭窄的路径是什么?
嵌入式开发人员在开发医疗嵌入式设备时面临着多个决策,从选择最佳系统软件以获得最佳应用性能,到了解软件操作系统与目标硬件之间的交互和限制。软件工程师应该使用小型微内核、实时操作系统 (RTOS) 还是通用操作系统 (GPOS),如安卓或 Linux?其他考虑因素包括系统的物理尺寸,以满足便携性和功能要求,包括更快的性能、功耗、数据保护和显示(用户界面)技术。影响嵌入式软件选择的FDA认证和行业标准也参与其中。
现代医疗设备正在以创纪录的速度发展。从供患者在家中使用的便携式无线设备到医疗专业人员在设施中使用的更大更复杂的设备,毫无疑问,我们处于开发新方法以增强患者和医疗专业人员能力的最前沿。我们如何确保控制这些设备的系统软件完全按计划运行,几乎没有伤害患者的风险?
问题的核心:操作系统
通常,操作系统 (OS) 管理医疗嵌入式设备。操作系统可以从一些有进取心的软件程序员内部构建的简单“滚动自己的”到来自已建立的供应商的更复杂的操作系统。GPOS(如 Linux 或 Android)为应用程序开发建立了一个功能丰富的平台,但有时消耗的内存比必要的要多。RTOS也是现代医疗设备的不错选择,特别是当特定的系统要求需要确定性的抢占式内核和较小的内存占用量时。在混合中的某个地方,您的应用程序和硬件有一个理想的候选者。有一件事是肯定的:在选择操作系统之前,请确切地知道应用程序的意图和您计划使用的硬件。
设备将如何使用?
在开发嵌入式系统时,将风险降至最低的一种方法是首先考虑其用例 - 不仅要考虑最终用户将如何与它交互,还要考虑如何设计,开发和测试它。该设备将主要由医疗保健提供者使用,由家中的患者使用,还是两者兼而有之?
设备是否具有通信模式或纯粹是独立的?根据其通信需求,您可能会发现首选操作系统包含许多您需要的模式,或者您可能更喜欢其他操作系统,在这种情况下,您必须通过通信堆栈和/或驱动程序进行移植才能获得正确的通信软件组合。
是否确定了任何实时需求?对于某些设备,不需要实时行为。如果延迟 100 毫秒处理中断,则结果可能会延迟 100 毫秒,但这不会导致失败。但是,如果它是参与眼科手术的激光,如果激光不能在精确的时间打开和关闭,这可能会产生灾难性的影响。如果激光具有眼动追踪引导,则即使在存在眼球运动的情况下,激光也必须以预定义的模式同步移动。
也许该设备是关键设备,因此对成本的敏感性最小。相反,手持式且销售量达到数百万的设备对成本具有很高的敏感性。这些类型的考虑因素将直接影响最小化 BOM 的需求,这反过来又可能导致最小化内存,从而最大限度地减少有效构建完整应用程序所需的内存。
一切都与硬件有关
定义用例后,就该找到合适的硬件了。医疗系统可以非常小,8位微控制器的时钟频率低于25 MHz,并且仅使用8K的内存。更复杂的设计可以包括功能丰富的SoC,时钟频率为数百MHz和兆字节的内存。系统范围包括具有专用处理器或DSP的混合系统,以及包含众多多核芯片的系统。
最适合您的设计的因素来自用例和对您希望系统如何表现的期望。
多核是必要的吗?
对于选择多核的两个主要原因 - 纯处理性能和低功耗管理 - 第三个原因可以添加,即两者的结合。
如果您担心低功耗,您可能希望使用多核SoC,因为它可以在较低的时钟频率下利用所有可用内核,而不是以更高的频率为主处理器计时。当不需要时,它可以关闭额外的内核以节省功率。
虽然功耗和性能都是使用多核的好理由,但问题更多的是关于找到分配CPU的最佳方式。使用对称硬件,您可以在所有可用内核上使用单个操作系统作为对称多核处理 (SMP) 的一种类型。大多数 GPOS 和某些 RTOS 都具有此功能。然而,使用SMP可能会使跨内核的调度复杂化,因为由于一个内核中的缓存未命中而导致的实时命中可能导致另一个内核中的缓存刷新,这总是导致系统中的延迟。自旋锁等功能是所有支持 SMP 的操作系统所共有的。如果使用不当,自旋锁可能会损害系统性能,因为一个内核会停滞一段时间,等待另一个内核上的资源被释放。
构建系统的另一种方法(即使使用对称硬件)是应用非对称多核处理(AMP)技术。这种方法涉及两个或多个独立的操作系统,使用硬件(如一系列 FIFO)或通过共享内存通过某种类型的通信通道进行交互。有一个标准使应用程序开发通过多核关联(称为多核通信 API (MCAPI))进行可移植。
当硬件和软件世界发生碰撞时
考虑这样一种情况:与 Windows 主机具有 USB 连接的医疗设备通常遵循 USB 规范,但是当 SoC 的所有部分被激活时,硬件间歇性地开始发出规范之外的信号,使得主机在会话过程中关闭端口,从而在最不合时宜的时间(在患者数据收集期间)导致故障。由于结果丢失,患者提前24小时为原始程序做了特殊准备,必须准备重新测试。
造成港口关闭的根本原因有两个。首先,软件假设USB控制器不会出现故障。其次,系统架构没有为在会话过程中拔下设备的情况进行规划。如果系统考虑了这些用例中的任何一个,系统就会在本地存储数据,从而允许在重新建立会话后进行传输,从而最大限度地降低患者可能重新测试的风险。
该应用程序依靠USB控制器的完美操作来防止数据丢失。如果应用程序已分解为多个部分,则可能会避免数据丢失。在数据收集和数据传输不相互关联的架构中,即使链路断开,数据仍存储在设备中,因此当它恢复时,它可以从中断的地方继续,而不会丢失任何数据。在传输到主机之前,在后台对缓冲区进行写入是避免在这种情况下丢失数据的一种方法。
如果使用软件变通办法来检测 USB 总线挂起,则该变通办法可以将 SoC 引脚从 USB 模式中取出,并使其成为 GPIO 引脚,以便主机可以检测到重置条件并强制重新枚举设备。然后,USB 软件将重新提交缓冲区,并且传输将恢复。最终结果是数据不会丢失,只是在解决方法发生时延迟。
可移植性注意事项
操作系统管理系统的硬件和软件资源。最基本的管理是记忆和时间。但是,操作系统的责任在哪里停止,应用程序的责任从哪里开始呢?虽然应用程序可以内置设备驱动程序并直接与硬件通信,但随着设备的发展和使用更新的硬件,移植到新硬件成为一项挑战。因此,建议系统中的大多数(如果不是全部)设备由操作系统管理,以确保将来的可移植性。
法规和患者隐私
对便携性的需求包括用于连接的 GSM 无线电或 802.11 无线接口等无线设备。其他包括蓝牙和ZigBee,这些链接也必须是安全的,并提供患者隐私。即使在设备本身中,也必须只有有权看病人的医生才能真正看到病人的数据。禁止未经授权的访问也是任何设备的关键要求。记录是否安全,即使对于在设备上工作的技术人员也是如此?是否有任何模式使此数据不安全?真正的健康保险流通与责任法案 (HIPPA) 合规性是确保信息安全至关重要。患者记录数据库内部的安全性也是如此。
结论
医疗设备是一种特殊的品种,它将以某种方式触及我们所有人。在设计这些系统时,我们需要格外小心,以确保设备能够实现其预期功能。使用 RTOS 或 GPOS 来满足确定性、大小、启动时间、功耗优化和可用中间件的广度要求是否有意义?最后,为了最大限度地降低风险,我们需要确保遵守HIPA和FDA的所有法规。
审核编辑:郭婷
全部0条评论
快来发表一下你的评论吧 !