WES操作系统电池供电的解决方案
扫描二维码
随时随地手机看文章
Window Embedded Standard(简称WES)不只是台式机操作系统的翻版,它是一种不同的环境,具有专门针对低功耗、移动和不连续操作而设计的新功能。本文将介绍如何高效地使用这些功能。
台式机和移动设备是不同的
从安全性角度来看,人们可能丢失移动设备,从而造成其中的数据安全受到威胁。蜂窝电话中可能有许多电话号码。一个WES设备可能含有美国国家电话簿。而且有类数据特别重要,即生物识别数据。帐号或电话号码被盗,可以修改;而一旦生物识别数据库遭到破坏,那么问题非同小可。
针对“静止数据”的安全性,WES提供磁盘级、目录级或文件级的数据加密技术,因为EFS(加密的文件系统)是基本NTFS文件系统的组成部分。虽然WES没有采用Vista级的“Bitlocker”加密,但却采用了其他方法来建立等效的安全系统。
另外该系统还提供多种第三方的‘整盘’加密解决方案,其中有些方案甚至符合FIP140-2标准,也有一些方案与硬盘技术集成在一起。
所有这些安全解决方案都要从身份验证开始,移动设备的身份欺骗是一种真正的威胁。我们希望移动设备能在安全区域之外使用,因此我们需要知道它是否真的是那台‘给家里打电话’的设备。
对于移动设备来说可能还有另外一种‘欺骗’——可以和目标设备切换的克隆或孪生设备。也许一位不知情的伙伴无意中会把这台‘邪恶的孪生设备’带进安全地区,还有可能移动设备中的硬盘被取出来放进另一台电脑中进行分析和攻击。
需要注意,良好的用户安全三要素(你有什么——标记,你是谁——生物识别,你知道什么——口令)不足以战胜这类欺骗威胁。取得合法认证的用户仍能通过泄密设备登录到网络(例如,利用安装好的键盘记录器),从而破坏安全。设备本身(不仅是硬盘上的软件)需要成为网络上传送数据的安全路径的一部分。这方面最好要用TCG(可信计算机组)规定的一些硬件解决方案来实现。
像Atmel的TPM(可信平台模块)等硬件组件执行重要功能,尤其是“安全启动”,其得到了第三方整盘加密文件系统的支持。这里的想法是,随着引导软件的加载,将产生唯一的软件和设备身份哈希码。这个哈希码被存储在模块深处,即使用户或管理者都无法获知。只有系统知道要启动什么软件,并且软件知道只能在这个硬件上运行。
TPM模块还为口令、哈希过的口令、密钥和证书提供安全存储库。‘静止’保存在RAM中或磁盘扇区上的数据(比如口令)可以被WINHEX等商用工具提取出来并还原出本来面目。如果这些数据位于没有被基本NTFS加密的扇区(例如脱机处理区、临时区、交换区或打印区),那么可能就是明文。
但即使经过了加密,通过使用快速的离线计算机也能哈希数百万个明文字符串,直到它们‘匹配哈希结果’,从而获得口令或密钥。保证重要的密钥数据安全的最佳方法是将它存储在芯片最深处,因为那里有篡改检测和响应电路,可以保护数据免于遭受入侵。
即使不是国家安全方面的应用,也经常需要强大的数据保护功能,例如高清媒体。许多移动x86设备正在规划中,而高清视频的回放通常是这些设备的目标应用之一。
事实上,所有商业高清视频内容都受强大的DRM(如索尼的蓝光技术)保护,但不管是在实验室还是法庭,经常能看到内容所有者和那些在不支付版税的情况下拷贝并分发内容的人进行“斗争”。目前为止,通过使用智能和容易更新的安全VM(虚拟机),以及类似WIPO著作权条约(1996年)1等法律,高清内容所有者似乎胜算较大。对于建立在嵌入式设备中且必须跨国界使用的软件来说,争论尚未结束。可以在PC机上运行的下载版“破解”软件,也许在挪威法庭2上仍然是争论的焦点。一道禁令,完全可以在国界线上阻止装有侵权软件的设备,但这会造成制造商和进口商严重的现金流问题。
美国佛罗里达州立大学的“Molecular Expressions”在检查Digital MicroVAX计算机上的切割线通道(scribe lane)时偶然发现了一条消息,消息文本是条俄语短语:“VAX——如果你真在乎,就去偷最好的东西。”这句话经常出现在20世纪70年代的黑帽白帽黑客大战中。
这些DRM方案通常要求多方面的设备认证,从媒体到播放器,再到计算机,然后到显示图片的显示设备。芯片保护身份(如TCG批准的模块)对这种系统来说是必需的。像Vista一样的WES可以与这种软件一起工作,并可与DMC1998兼容。微软正在努力防止Linux被“Tivo化”3。
移动WES设备的设计师应该仔细考虑人机界面(HMI)问题。即使有Atom芯片组的图形处理能力,并得到了微软现成驱动程序的强大支持,设备仍可能因显示器尺寸限制而需要重新对某些HMI进行设计。当然,普通的“XP”桌面是可用的,并且可以被赋于不同的颜色主题,如果需要的话还可以对图形和功能作重大修改。
想要为其设备完整设计定制接口的人都应该好好看看Siverlight。Siverlight主要用于微软所谓的RIA(丰富交互式应用)。Silverlight是在.NET 3.5下的Visual studio中开发的,可以在单一IDE中提供到数据库和编程语言的直接接口。.NET 3.5是WES提供的一个新功能,并不是老版XP embedded的一部分。
但Silverlight是一种基于浏览器的技术,因此可能不适合移动手持设备。在本例中,首选接口可以是Windows Presentation Foundation(WPF)。WPF可以提供Silverlight的所有功能——嵌入式视频、动画、可扩展矢量图像等,但所有这些功能的实现都不需要使用浏览器。
最后,有关移动设备的另一个细节:它们一般都用电阻触摸屏,不用鼠标或轨迹球。这是一种不同的接口——比如没有’hover’特性。Windows Mobile和Windows CE都习惯于利用屏幕上的点击保持、点击拖放和双击操作提供需要的功能,但这些功能必须嵌入触摸屏驱动程序,而这些驱动程序对每家触摸屏供应商来说都是不同的,并不是现成WES的一部分。你需要自己来创建这种驱动程序,或者从OEM供应商处获取。
需要提醒大家的是,这种驱动程序如果做得不好的话,可能极耗资源和功率。最好使用优秀的低功耗、中断驱动设计技术来创建这些驱动程序。
联网功能
对于一个真正的移动设备来说,联网功能是有差异的。笔记本电脑虽然也是可移动的,但通常在一个固定地点工作,并保持一条到单个WiFi接入点的链接。然而,手持式WES设备可能需要在移动中使用(比如在仓库中携带RFID阅读器/平板电脑的工人),可能从一个接入点‘跳到’另一个接入点,同时还要保持会话的连接性和安全性。
Windows Communication Foundation(WCF)可以提供这种灵活性。WCF是.NET框架的一部分,可用于搭建互相通信的应用程序。WCF内置于Vista中,开发WCF设备的OEM商可以进行下载和安装。
WCF是微软针对通信的全面解决方案,但该领域并非只有微软一家大公司。思科几乎垄断了接入点市场,他们的各种标准(著名的CCX)也是OEM设备开发环境中的一个要素。幸运的是,这些通信技术都基于与XP/Vista兼容这样一个共同点,因此可以与WES系统一起作为即插即用驱动程序安装。
OEM厂商应注意,对移动设备来说,供应商标准也许还不够。针对不同类型的医疗设备、DoD信息和各种安全(经济)事务都有严格的工业和政府标准。同样幸运的是,所有这些标准都是用Windows PC设备开发和验证的,因此OEM商适应WES设备通常很容易。
然而,所有答案不在软件中。移动设备设计师尤其需要理解他的设备处于通信情景中的哪个环节。例如,笔记本电脑几乎都是USB主机。然而,移动设备可能是USB从机,也可能同时具有主机和从机的功能。这类变化可能需要BIOS做出调整。
功耗
功率使用,更具体地说是每次单元操作的能耗,对电池供电设备而言非常关键。最终,我们需要的是在最小电池成本和体积下的“使用天数(DOU)”。时钟速率或MIPS的测量并不能很好地指示一个设备的‘DOU’。功耗的测量并不严格与DOU相关。每瓦的MIPS有一定程度的关联,但前提是恒定连续的使用——对移动设备来说很少这样。但真正有价值的是每次操作的瓦特秒(尔格)。
移动应用是中断和事件驱动型应用。例如,移动设备可能有一个内置的RFID阅读器。它的电池寿命可能不是以小时计,而是以阅读次数计。如果设计合理的话,这种设备平时应该几乎不耗电,除非要求去读取标签。然后,它应触发工作、发出射频脉冲、读取返回的数据、排除错误读数、应用一些商业逻辑,再将数据传送给本地或远程数据库,中间可能需要启动网络连接。
正如你看到的那样,对硬件、操作系统和应用软件的整合努力,可以实现最优的每次操作尔格值。进一步的尔格/操作优化直接取决于执行的操作和采用的网络。例如,简短的SMS通过CDMA或GPRS发送可能具有很高的能效(每字节纳尔格)。而较大的文档,比方电子邮件或图形,在用Wi-Fi传送时可能具有最高的效率(每兆字节尔格值)。WES向应用程序设计师提供了这样的平台:能够根据要求的带宽、安全性和服务质量有选择地使用网络。
带ACPI的电源管理
现有的WES提供与XP Pro计算机电脑上一样的高级配置与电源接口(ACPI)。通过这种内置并且现成的ACPI,你可以获得像休眠等许多基本功能。而且你可以从应用层实现额外的电源管理功能。ACPI级电源管理基于对运行时间空闲的简单监视,如表1所示4。
WES中包含的这种基本ACPI函数与笔记本电脑中使用的一样,只是移动设备电源管理的开始点。控制ACPI的‘定时器’设置值通常远大于用于表征实时设备事件驱动操作的间隔时间。
扩展电源管理
WES 2009有一个新特性,即一次休眠,多次启动(HORM)。HORM能让系统迅速(标称值是1秒)启动至事先创建的休眠文件。例如,这一特性能让自动化系统在短暂的电源故障后迅速进入工作状态。
对一些设备来说,OEM商应准备好移动过去基本的ACPI级电源管理功能,将它们集成进应用程序中。OEM或其一线供应商,可以扩展BIOS来提供API,以便将CPU甚至相关的电子器件转换为更低功耗状态。
有趣的是,对我们来说是连续操作的短暂毫秒时间内,有足够的空间实现功耗节省。例如,MPEG回放的每帧要求多种耗用功率:一种是将数据送出磁盘,一种是解码,一种是填充帧缓存,然后是很低功耗(但屏幕背光一直是开着的)以等待下一帧。
MPEG帧与帧之间的这种可变功耗在高速电流测量示波器上是真实可见的。
电池充电
耗能只是问题的一半,首先必须给电池充电。锂化学原料具有一定的危险性,一般是使用智能电池。控制电池充电要求访问I2C或SPI总线接口,并且是从应用层一直到管理电池的充放电过程。电池管理是一个艰巨的软硬件设计挑战,而与操作系统的集成是任何移动设备成功的基础。
图1:“笔记本电脑”与“移动设备”设计标准的比较。[!--empirenews.page--]
图2:危险分子会努力破坏安全图。
图3:运行时空闲检测。WES中包含的这种基本ACPI函数与笔记本电脑中使用的一样,只是移动设备电源管理的开始点。控制ACPI的‘定时器’设置值通常远大于用于表征实时设备事件驱动操作的间隔时间。
图4:功耗。黄色=功耗,紫红色=电流,稳定的黄色=电源。MPEG-1回放,顶部是Linux操作系统,底部是WES。平台是Catalyst EC。