在线工博会

医疗设备中的嵌入式系统开发策略
Mentor Graphics公司 Colin Walls
为节省流量,手机版未显示文章中的图片,请点击此处浏览网页版
在嵌入式系统开发和应用过程中,差异化也许是最有趣的事。每台设备都有独特的硬件和软件架构及其自身的独特功能。因此,要设计出可满足如此广泛要求的软件开发工具和操作系统就成为一个艰巨挑战。在严峻的经济条件下,对开发商来说,若因外包使其核心竞争力受损则绝非明智之举。但作为开发者毕竟更愿意外包那些可以从商业渠道获得的不具差异化特征的组件(图1)。
嵌入式设备市场存在可广泛涵盖的某些共同特性。医疗设备和仪器就是其中越来越重要的一个领域。在现代化的医疗机构内,电子技术应用的范围之广、数量之多是“触目惊心”的。医疗设备和系统的范围从庞大的要占用一整间房的核磁共振成像扫描仪到便携式和手持仪器、再到如心脏起搏器等植入式设备,应有尽有。上述每种产品都是嵌入式系统。

(图片)

图1、医疗电子设备设计周期内多达30%的时间花在非差异性工作上

当设计医疗设备系统时,软件开发人员必须牢记如下四个主要方面:1)安全。无论设计还要遵从哪些其它标准,安全都是其中最重要的,不可以牺牲安全为代价。2)性能。大多数嵌入式系统都有若干性能标准,但对许多医疗设备来说,其性能可是性命攸关的。3)经济性。现在全球医疗康护成本都在不断上升,控制医疗设备开发成本是实现负担得起的医疗保健的关键之一。4)功能。设计任何设备的意义都在于能为用户提供若干具体功能和用处。本文将重点探讨嵌入式软件、特别是实时操作系统的选择和实施是如何影响上述四个方面的。
安全
当病人到医院就诊时,他或她所期待的是病患的缓解或治愈而不是受到伤害。时刻牢记病人的安全是医疗机构应尽的职责和义务。这就强制了医疗仪器和系统要遵从一套明确的安全标准。但对嵌入式软件又有哪些要求?
用法。操控医疗设备出错的代价比操控任何其它设备出错的代价都高。有不同制造商制造的、工作于不同方式的、许多种不同医疗设备在使用中。这些设备在高压力环境下使用,常常是由超负荷且疲惫的医护人员操作的。很难想象一位整天连轴转的医生会认真研读每台要使用设备的操作手册。
所以,所有“智能”医疗设备都要有直观的用户界面(UI)就变得至关重要。越来越多的用户界面是由带巧妙编排的菜单和多媒体功能的高分辨率图形显示器实现的。开发高品质用户界面软件并非易事。用户界面开发包必须带可用的商业操作系统,以便能以具成本效益的方式为复杂的医疗设备构建具有卓异特性的用户界面。
可靠性。医疗仪器的硬件设计人员会选用高可靠性器部件。同样,构建可靠的软件也应使用经过现场验证、诸如已商品化且应用广泛并满足手头工作要求的操作系统(OS)等组件(如,用实时操作系统而不是台式机操作系统的衍生版本)。 一台要经常关电重启以“复位重置”的医疗设备是不可接受的。在弹出的对话框内给出一个莫名其妙的出错报告并非一种可接受的方法,应不在设计考虑之内。
验证。在大多数国家,监管机构测试并认证医疗设备是否满足特定标准。软件认证是一个复杂且昂贵的过程,通常在系统级实施。因此,购买一款“经过核证的实时操作系统(RTOS)”是不可能的,因为RTOS只是一个完整应用中的一个组成部分。
但根据所选的RTOS,有三个因素可提升获得认证的几率。首先是选用一款具有良好设备认证记录的实时操作系统;其次是RTOS的大小。软件的认证费用与所含的代码大小成正比。一个具有高度可扩展性且代码少的操作系统显然有利于降低成本。第三,提供源代码的操作系统将简化认证过程中的修改操作,并支持对在最终设计中到底包含哪些代码具有最终控制权。
性能
对许多类型的系统(如台式电脑)来说,通过简单地提升CPU性能、加大内存容量就可提升系统性能。但对许多嵌入式系统、特别是绝大多数医疗设备来说,这种做法却行不通。相反,必须要以性能和功能最恰到好处的CPU以及最少量的内存来实现既定目标。上述要求是通过高效运行构建在“快速”操作系统基础之上的软件实现的。
大多数医疗系统是“实时运行”的。但这并不一定意味着它们工作的速度快,而是说它们必须要在特定时间内做出响应,其特点是可预测性或确定性。对事件的反应必须“准时”——不早也不晚。实现可预测性的第一步是使用确定性或真正的实时操作系统。
经济性
医疗设备和系统市场的竞争非常激烈,最大限度地降低成本至关重要。需考虑的一些成本构成包括:
开发成本。医疗设备的研发过程受多种因素的影响。产品上市进度也许是最重要的因素。软件设计、开发和认证必须要在非常紧迫的期限内完成。重复使用经过验证的软件(如实时操作系统)可以加速这一进程。自己开发一款RTOS代价高昂,且需要长期的支持担当。使用商业操作系统使满足各种标准变得容易,且还能简化认证过程、减少认证费用。了解所选用的代码业已在先前的应用中得到成功认证,对降低开发成本很关键。硬件/软件集成阶段往往是最费心费力费时的,在时间段上,它一般处在最终产品发布日和最新的可用原型硬件提供日之间。
制造成本. 在更小内存上运行的高效软件加之选用非高端的CPU可降低器件成本、减少所需的元器件数。一个商用实时操作系统在这方面有帮助,且如果其商业模式是灵活的,它就不会对成本产生负面影响。

(图片)

图2、可扩展性:只有用到的操作系统服务调用才占用内存

功能
提供特定的设备功能是应用软件的根本职责。但是,在有些情况,实现所需的功能会特别费时费力。
设备支持。在嵌入式软件开发中,设备支持是个大挑战,其后续工作与硬件有更多牵连。此外,能使硬件部件特点相得益彰的软件编程技巧也至关重要。目前大多数电子产品设计依赖于商用标准外围器件。对大多数商业操作系统来说,这些设备的驱动软件是现成的。使用以前已被应用过多次的代码会使硬件/软件集成工作简单得多。
便携性。越来越多的医疗设备要求便携性。虽然便携性始于对硬件的要求,但它对软件产生重大影响。关键问题是降低功耗、以最大限度地延长电池寿命。软件可在以下方面对便携性有所助益:
1)减小内存容量。尽量减少软件的内存占用将减少所需内存量,从而降低功耗。一款商用操作系统很可能是紧凑的且具有高效扩展能力,这样就可能仅对 用到的代码实施配置。下图2演示了一款假设的具有271个服务调用的操作系统以及一个仅使用其中三个调用的应用示例。
2)高效利用CPU。高效软件可以较低的时钟频率令人满意地运行于CPU之上,时钟频率对功耗有巨大影响。高效软件甚至可工作于较低端的CPU、且仍能实现预期性能。一种高效实时操作系统可确保在正确的时间运行正确的代码且不会引致任何不菲的开销。
3)电源管理。若所选的CPU(或硬件设计)支持主动电源管理,那么操作系统就可以控制这一能力。电源管理支持仅对CPU内正在工作的部分供电,或根据CPU的使用情况动态调整时钟频率。
连接性。越来越多的医疗仪器和系统正被相互连接起来。有多种连接技术可供选配,尤其是以下两种技术,既有效用又具挑战性。
1)USB是当今连接电脑与外设的最通用协议。处理USB协议的软件非常复杂。驱动不同类型的设备需要类驱动器。由于USB设备既可以是控制器;也可能是外设;而这两种“身份”又需要不同的协议栈,从而使问题进一步复杂。对医疗设备来说,既可作为主机又可作为功能外设的情况都是可能的。当从可用的USB堆栈中选用一款USB实现时,千万记得要选用“经过认证的USB”实现方案。
2)无线网络有各种形态,从诸如蓝牙和ZigBee这类的点对点连接,到WiFi这类的对等网络。采用无线方式进行通信的医疗设备所带来的好处远非仅仅是便利性。对医院来说,去掉了成捆的线缆对整洁环境有好处,还利于规避事故,这在全球范围内都是真切的关注所在。但无线网络不能以牺牲安全和保障为代价。为确保安全,以能防范窃听的方式发送病人数据就变得至关重要。目前已有包括802.11i协议在内的各种加密方式。一些商业实时操作系统供应商提供完整的预集成WiFi方案。
本文小结
与大多数嵌入式应用一样,医疗电子设备的开发需要从技术和商业角度考虑一系列问题。包括采用合适的技术、通过认证、将合适产品以合适价格及时推向市场等一系列工作。复用现有成熟技术不过是种常识,而从实时操作系统起步则是明智之举。 5/10/2010


电脑版 客户端 关于我们
佳工机电网 - 机电行业首选网站