原创翻译 使用Windows Embedded Standard开发电池供电设备(二)

简介: 作者: Lawrence Ricci, Eurotech 人机界面&联网人机界面移动WES设备的设计者应认真考虑人机界面。即使有Atom芯片组的图形处理能力,并得到了微软现成驱动程序的强大支持,移动WES设备仍可能限制显示器的尺寸,需要重新设计某些人机界面。

作者: Lawrence Ricci, Eurotech

人机界面&联网

人机界面
移动WES设备的设计者应认真考虑人机界面。即使有Atom芯片组的图形处理能力,并得到了微软现成驱动程序的强大支持,移动WES设备仍可能限制显示器的尺寸,需要重新设计某些人机界面。当然,普通的“XP”桌面是可用的,并且可以被赋予不同的颜色主题,如果需要的话还可以对图形和功能作重大修改。

如果想要为其设备完整设计定制接口,则应认真研究Silverlight。Siverlight主要用于微软所谓的RIA(丰富交互式应用)。Silverlight是在.NET 3.5下的Visual studio中开发的,可以在单一IDE中提供与数据库和编程语言的直接接口。.NET 3.5是WES提供的一个新功能,并不是老版XP embedded的一部分。

但是Silverlight是一项基于浏览器的技术,因此可能不适用于移动手持设备。在本例中,首选接口可以是Windows Presentation Foundation(WPF)。WPF可以提供Silverlight的所有功能——视频插件、动画、可扩展矢量图形等——但所有这些功能的实现都不需要使用浏览器。

最后,另一个细节是:移动设备一般都使用电阻式触摸屏,而不是鼠标或轨迹球。这是一种不同的界面——例如,它没有“悬停”的功能。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做出调整。

电源和ACPI

电源
电源的使用,更具体地说是每次单元操作的能耗,对电池供电设备而言非常重要。最终所需要的是以最低的电池成本和体积实现“使用天数(DOU)”。 Clockspeed或 MIPS的测量并不能很好地指示一个设备的‘DOU’。 MIPS/瓦在一定程度上是重要的,但是假设是持续不间断地使用——当然一台移动设备很少持续不间断地使用。但是真正重要的是每次操作的瓦秒(尔格)。

移动应用是中断和事件驱动型应用。例如,移动设备可能有一个内置的RFID阅读器。其电池寿命可能不是以小时计,而是以阅读次数计。如果设计合理的话,这种设备平时应该几乎不耗电,除非收到读标签的指令。然后,它触发工作、发出射频脉冲、读取返回的数据、排除错误读数、应用一些业务逻辑,再将数据传送给本地或远程数据库,中间可能需要启动网络连接。

每次操作的最优化尔格设计集合了硬件、操作系统和应用软件。进一步的每次操作的尔格取决于所执行的操作和使用的网络。例如,通过CDMA 或 GPRS发送的简短的SMS具有很高的能效(每字节纳尔格值)。当通过Wi-Fi传输时,电子邮件或图形等较大的文档具有最高的效率(每兆字节尔格值)。WES为应用程序设计人员提供了一个平台,在此平台上设计人员可以基于带宽要求、安全性和服务质量有选择地使用网络。

带ACPI的电源管理
现有的WES提供与XP Pro笔记本电脑相同的高级配置与电源接口(ACPI)。通过这种内置并且现成的ACPI,可以实现休眠等基本功能。而且可以从应用层实现额外的电源管理功能。ACPI级电源管理是基于对运行时间空闲的简单监视,如图4所示

术语
 
定义
 
唤醒程序
 
功能驱动器在驱动器中断设备电源之前使用的一项程序——准备设备自行唤醒。
 
Dx
 
处于低耗电状态(D1D3)的所有设备的统称。D0是设备的正常运行状态。
 
Dx IRP
 
功能驱动器向设备支架发送的电源IRP,将设备转换到Dx
 
空闲时间计时器
 
自一台设备最后使用时开始计时的计时器,当计时器达到设定的空闲时间超时值时,计时器中止计时并通知功能驱动器开启断电程序。
 
电源策略所有者
 
控制设备电源状态的驱动器,决定改变其状态的时间。每个设备支架都有一个单独的PPO,通常是支架的功能驱动器。
 
空闲运行时间检测
 
当系统保持其正常运行状态时,通过断开空闲装置的电源而节约能源。
 
Sx
 
处于低耗电状态(S1S5)的所有系统的统称,包括备用、休眠等。S0是系统的正常运行状态。
 
Sx IRP
 
向设备支架发送电源IRP,表明系统准备从S0 转换到 Sx
 
USB选择性中止
 
这种功能使一个功能驱动器命令母驱动器中止一个独立的USB设备或功能,同时与此母驱动器连接的其它设备或功能仍保持其正常的运行状态。
 
S0状态唤醒
 
当系统处于S0时,一台设备可自行唤醒。这是运行空闲时间检测方案。
 
Sx状态唤醒
 
当系统处于Sx时,一台设备可自行唤醒并唤醒系统。
 


 


图3:空闲运行时间检测


WES中包含的这种基本ACPI函数与笔记本电脑中使用的一样,只是移动设备电源管理的起点。控制ACPI的‘定时器’设置值通常远大于用于表征实时设备事件驱动操作的间隔时间。

脚注:
4. “通过支持空闲运行时间检测的驱动器提高系统功率”(MSDN,2008年4月23日)。

扩展的电源管理

扩展的电源管理
WES 2009有一个新功能,即一次休眠,多次启动(HORM)。HORM能让系统迅速(标称值是1秒)启动至事先创建的休眠文件。例如,这一特性能让自动化系统在短暂的电源故障后迅速进入工作状态。

对于一些设备而言,OEM应准备好通过将基本的ACPI级电源管理功能集成到其应用程序中。OEM或其电路板供应商可扩展BIOS,以便API将CPU甚至相关的电子元件转换为低耗能状态。

有趣的是,在短暂的毫秒时间内(在我们看来是连续操作),仍有很大的节能空间。例如,MPEG回放的每帧要求多种耗用功率:一种是将数据送出磁盘,一种是解码,一种是填充帧缓存,然后是很低功耗(但屏幕背光灯一直是开着的)以等待下一帧。
MPEG帧与帧之间的这种可变功耗在高速电流测量示波器上是真实可见的。


 


图4:电力消耗(黄色)=功耗;紫红色=电流;稳定的黄色=电压;MPEG-1回放;顶部:Linux 操作系统;底部: WES ;平台:Catalyst EC。

 

 

电池充电
耗能只是问题的一方面,首先必须给电池充电。锂化学原料具有一定的危险性,通常使用智能电池。控制电池充电要求访问I2C或SPI总线接口,并且是从应用层一直到管理电池的充放电过程。电池管理对于硬件/软件设计而言是一个大的挑战,而与操作系统的集成是任何移动设备成功的基础。

企业应用、维护和管理

企业应用、维护和管理
WES标志着移动计算资产融入企业的方式的真正典范转移。设备的部署与设备的设计同等重要。那些不得不安装软件更新、杀毒程序或推出新的价格表或更新地图数据库到5000台设备的人将理解可扩展性的重要性。拥有WES,可实现设备的高效部署。

轻量级WES设备有设备更新代理(DUA)。DUA是系统升级的一个轻量级(30K)部件,可更新现有的应用程序或应用程序数据库,安装新组件,安装新的设备驱动器,一般情况下可执行自动、远程或移动设备的管理。DUA是单独设置的,它可通过网络服务器、网络共享或者CD或USB的本机接口实现升级。

目前,多数企业移动设备围绕某些门户服务器呈 ‘星形’ 布置,通常使用第三方工具处理诸如软件升级、防火墙和安全等维护事项。由于WES与台式机的“XP”非常接近,因此可更直接地融入到企业中,设备设计人员需要考虑的是设备应用、部署和维护的方式。维护台式机的现成工具(微软或第三方)是一个选择。

因此,对于应用的程序开发而言,程序员可使API获得Active Directory和Calendars等资源(如果他/她想要这样做)。嵌入式设备无需维护单独的名称和地址数据库,‘断开的’设备配备文件同步工具。这意味着如果OEM厂商和终端用户愿意,WES设备可向Microsoft System Update拨号并扫描更新和补丁,这些功能目前的台式电脑或笔记本电脑均能实现。但是实际上,当部署移动终端、自动售货机、收银机或ATM时,OEM厂商和企业希望更好地控制互动。

而所有这些是标准的微软企业工具套装的一部分。

微软的标准维护平台,包括Windows Server Update Services (WSUS)或 Microsoft System Center Configuration Manager (SCCM)可管理WES设备,同时管理标准的台式电脑和服务器系统。独立的‘断开的’设备要求有专人通过便携式媒介(如CD或USB)应用更新。

另一个维护工具是Watson。Watson的特点是询问用户是否希望向微软报告应用程序破坏的细节。配备综合移动设备应用程序的OEM厂商或企业可以部署一个OEM版本的Watson,直接向其报告破坏数据。如果OEM厂商选择由微软进行修复,则企业或OEM厂商可直接与微软沟通详细信息。

最后,一项更新策略的一部分动机是防止发生破坏!许多设备(例如医疗设备)必须在一个‘经核准’的配置中运行。WES包括一些写过滤器,这些写过滤器可以防止更新存储器的某些部分,例如,使其不能安装新的应用程序,但仍然允许交换数据。

结语
Windows Embedded Standard提供了一个新的操作系统供嵌入式设备设计人员选择。目前设计人员可自由地为企业和所部署的应用程序进行真正的设计。

相关文章
|
25天前
|
监控 关系型数据库 MySQL
PowerShell 脚本编写 :自动化Windows 开发工作流程
PowerShell 脚本编写 :自动化Windows 开发工作流程
20 0
|
1月前
|
Ubuntu Linux Python
如何利用wsl-Ubuntu里conda用来给Windows的PyCharm开发
如何在WSL(Windows Subsystem for Linux)的Ubuntu环境中使用conda虚拟环境来为Windows上的PyCharm开发设置Python解释器。
54 0
|
2月前
|
存储 安全 程序员
Windows任务管理器开发原理与实现
Windows任务管理器开发原理与实现
|
3月前
|
开发者 C# Windows
WPF与游戏开发:当桌面应用遇见游戏梦想——利用Windows Presentation Foundation打造属于你的2D游戏世界,从环境搭建到代码实践全面解析新兴开发路径
【8月更文挑战第31天】随着游戏开发技术的进步,WPF作为.NET Framework的一部分,凭借其图形渲染能力和灵活的UI设计,成为桌面游戏开发的新选择。本文通过技术综述和示例代码,介绍如何利用WPF进行游戏开发。首先确保安装最新版Visual Studio并创建WPF项目。接着,通过XAML设计游戏界面,并在C#中实现游戏逻辑,如玩家控制和障碍物碰撞检测。示例展示了创建基本2D游戏的过程,包括角色移动和碰撞处理。通过本文,WPF开发者可更好地理解并应用游戏开发技术,创造吸引人的桌面游戏。
172 0
|
3月前
|
开发者 iOS开发 C#
Uno Platform 入门超详细指南:从零开始教你打造兼容 Web、Windows、iOS 和 Android 的跨平台应用,轻松掌握 XAML 与 C# 开发技巧,快速上手示例代码助你迈出第一步
【8月更文挑战第31天】Uno Platform 是一个基于 Microsoft .NET 的开源框架,支持使用 C# 和 XAML 构建跨平台应用,适用于 Web(WebAssembly)、Windows、Linux、macOS、iOS 和 Android。它允许开发者共享几乎全部的业务逻辑和 UI 代码,同时保持原生性能。选择 Uno Platform 可以统一开发体验,减少代码重复,降低开发成本。安装时需先配置好 Visual Studio 或 Visual Studio for Mac,并通过 NuGet 或官网下载工具包。
231 0
|
4月前
|
Linux Apache C++
FFmpeg开发笔记(三十五)Windows环境给FFmpeg集成libsrt
该文介绍了如何在Windows环境下为FFmpeg集成SRT协议支持库libsrt。首先,需要安装Perl和Nasm,然后编译OpenSSL。接着,下载libsrt源码并使用CMake配置,生成VS工程并编译生成srt.dll和srt.lib。最后,将编译出的库文件和头文件按照特定目录结构放置,并更新环境变量,重新配置启用libsrt的FFmpeg并进行编译安装。该过程有助于优化直播推流的性能,减少卡顿问题。
109 2
FFmpeg开发笔记(三十五)Windows环境给FFmpeg集成libsrt
|
5月前
|
网络安全 C++ Windows
【Windows驱动开发】(主机)VS2017+(虚拟机)win10系统------双机调试
【Windows驱动开发】(主机)VS2017+(虚拟机)win10系统------双机调试
|
5月前
|
Windows
【Windows驱动开发】注册表的基本操作(创建、打开、修改、读取、枚举)(附源码)
【Windows驱动开发】注册表的基本操作(创建、打开、修改、读取、枚举)(附源码)
|
5月前
|
编解码 Windows
FFmpeg开发笔记(二十九)Windows环境给FFmpeg集成libxvid
XviD是开源MPEG-4视频编码器,与DivX相似但后者非开源。早期MP4常使用XviD或DivX编码,现已被H.264取代。在Windows上集成FFmpeg的XviD编解码库libxvid,需访问<https://labs.xvid.com/source/>下载源码,解压后在MSYS环境中配置、编译和安装。之后重新配置FFmpeg,启用libxvid并编译安装。详细步骤包括configure命令、make和make install。成功后,通过`ffmpeg -version`检查是否启用libxvid。更多音视频开发技术可参考《FFmpeg开发实战:从零基础到短视频上线》。
104 0
FFmpeg开发笔记(二十九)Windows环境给FFmpeg集成libxvid
|
6月前
|
算法 Linux Windows
FFmpeg开发笔记(十七)Windows环境给FFmpeg集成字幕库libass
在Windows环境下为FFmpeg集成字幕渲染库libass涉及多个步骤,包括安装freetype、libxml2、gperf、fontconfig、fribidi、harfbuzz和libass。每个库的安装都需要下载源码、配置、编译和安装,并更新PKG_CONFIG_PATH环境变量。最后,重新配置并编译FFmpeg以启用libass及相关依赖。完成上述步骤后,通过`ffmpeg -version`确认libass已成功集成。
137 1
FFmpeg开发笔记(十七)Windows环境给FFmpeg集成字幕库libass