PDA功能模块的设计
Springboard扩展槽可集成在Visor与Visor Deluxe手持式电脑中,从一开始就为手持式电脑设计了真正的即插即用硬件扩展功能。由于独特的平台型设计机遇,业已设计了多款Springboard模块并投入市场。
Springboard槽的设置充分考虑到用户的使用要求。用户可将欲增添的硬件附件直接插入模块,使用时无需装载额外的软件,也不用安装复杂的驱动程序。一个成功地设计的模块可随时插入或拔出,甚至在使用之中,也不会危及或损坏系统。
Spring Board扩展槽具有三大特点:
1、真正的即插即用:模块内置使用Springboard模块所必需的全部软件。任何必需的软件在模块插入时即能自动投入使用。
2、灵活的电源管理:Spring board 槽可为不带电源的模块提供功率。在同时使用充电器的场合,它也能为可充电模块提供充电电压。当未使用模块时,插槽的软件和硬件结构可让研发者将模块处于低功耗状态。
3、面向开放的插槽设计:插槽的上、下两边是开放的,因而模块可制造成各种不同的尺寸。灵活的设计可让研发者内装电池、天线、耳机插座或电话插座、以及其它元件,不受机械条件的限制。
为支持插槽的即插即用功能,Handspring扩充了Palm OS,以便检测模块的插入;在模块上直接执行应用程序和驱动程序;并在拔出模块后彻底去除软件。
驻留在模块存储器中的应用软件通常是在模块上就地执行的,其作用如同从手持式电脑内部ROM或RAM来执行应用软件。这种设计让OS直接跳转至程序代码,而无须先将应用软件复制到内部存储器,然后再执行复制的软件。该体系结构最大限度地减少了应用软件使用的内部存储器,节省了宝贵的存储器资源。Springboard扩展槽是按模块映射至CPU存储器空间的方式构建在该体系结构上的,从而在程序上保持访问内部存储器与访问模块存储器的一致性。当模块被拔除后,用户自动地脱离模块应用软件并返回至应用启动程序。
插槽的体系结构
Springboard槽是存储器映射的,具有一个16位数据总线、一个24位地址总线、两条片选线、一条中断线、系统电源、接地以及控制逻辑。此外,还有电池过低及复位信号、两个卡检测信号、一条充电电压直通连接、以及两个直接连接至内置话筒的引脚(图1)。
当插入模块时,系统将16Mbytes地址空间分配给每条默认片选线(图2)。每条片选线是按16位宽地址的存储器器件配置的,因此只能以偶数来访问模块存储器。研发者也能使用8位外设,即简单地将外设连接高8位数据总线、或低8位数据总线,视模块的结构而定。模块中的ROM应驻留在cs Slot0的起始地址且应是16位宽的,便于系统识别模块。对驻留在cs Slot1上的模块,系统未作任何规定。
Springboard体系结构可让设计者从系统电压(规定在3.0V~3.6V)取得最大为100mA电流,供模块使用。当模块需要更大功率时,本身应安装电源,通常是充电电池或碱性电池组。碱性电池灵活性好,电池用完后更换电池十分方便;若模块频繁地使用(如数据或语音通信模块)且消耗大量功率,最好选择充电电池。
每个可充电的Handspring电脑都备有供电的充电座,而碱性电池供电平台作为一个可选件。充电电压叫做Vdock,是一个4.75V~6.2V信号。该信号给可充电Visors中电池充电,同时对所有Visors,该信号也连接至Springboard槽上的两个引脚。当手持式电脑放置在充电座时,开发者能从两个引脚处取得总量500mA电流,给自己模块上的电池充电。
电源管理
研发者在考虑模块结构时,应充分了解整个系统的性能。例如,当手持式电脑开机且处于静屏显示的闲置方式时,Visor Deluxe整机仅消耗两节AAA电池15mA,而处理大量计算的应用时,要消耗60mA。因此,模块消耗电流大于Visor本身时,会严重影响系统的电池寿命,这反映出用户缺乏使用经验。
当电池低于规定的电压电平时,电脑向模块提供LOWBAT*信号。在电池低于该阈值几毫秒后,Visor停止向模块供电,当然在到达电池过低状态前,用户会从OS接收到几个电池过低的告警信号。LOWBAT*仅在停止向模块供电后才是有效的。
处于电池过低状态时,电脑会尽一切可能保护内部存储器。此时,模块与系统是电隔离的,避免系统从模块获取能量。同时,电脑也不会对电源按钮或应用按钮作出响应。在更换电池期间,一个超级电容器有一分钟时间来保护内存中的数据。安装新电池后,模块被重新供电并重新启动初始化程序,就象模块被拔除后又重新插入一样。
当系统关机或进入休眠模式时,虽然系统不能阻止模块获取能量,但通常将模块设计在极低的功耗状态。例行程序通过扩充API使模块进入或脱离低功耗状态。每当手持式电脑开机或关机(即进入或脱离休眠模式)时,操作系统调用例行程序。例行程序中的参数会告知是开机还是关机。
机械考虑
设计者在考虑模块的机械外壳时有几种可选择的方案,使用现成的塑料外壳或设计定制的外壳。使用现成的塑料外壳可充分利用业已成功的机械封装,减少设计者的研发成本。
要是设计的产品可放置在较小的封装中,标准模块塑料外壳是最灵活的选择。这些模块能容纳Visor产品提供的各种载体(图3)。若设计的产品需要更大的空间,或2节AAA电池,则可采用电池模块塑料外壳,它具有容纳较高元件的空间。还有其它的塑料外壳变种,来启动PC板上的表面贴装按钮(图4)。标准模块塑料外壳和电池模块塑料外壳可直接向第三方供应商购买。
若研发者选择自己设计定制塑料外壳,应仔细地考虑定制模块的体积。内装的元件应确保模块插入在Springboard槽中,并能和各种载体和Hotsyn充电座相互配合。在Handspring Web网站上有一篇资料,详细地规定了创建Springboard模块的定制塑料外壳必须遵循的体积。这对在模块上实现主要功能尤为重要。成功地设计的主要功能应确保模块能正好插入插槽中,这样大大减少了弄弯插针的情况。
尽管PCMCIA与Spring borad槽的主要机械与电气特性是不同的,但是Springboard模块上的68针插座广泛提供PCMCIA核心部件。模块设计者应尽量采用适合自己具体设计的各种核心部件。
软件考虑
Springboard扩展槽支持真正的热即插即用可置换模块.插入模块后,就能立即运行模块上的软件。
Handsping软件体系的两个有用单元是可选的“Setup”与“Welcome”应用软件。要是插入模块后出现Setup应用程序,该应用程序被复制到内部存储器,然后加以执行。该程序是唯一能被OS自动地复制到内部存储器的应用程序。在模块被拔除后,再次执行程序,完成结束应用程序必须的一切内务处理。按照Springboard“善后清除”的原则,最后自动地从内部存储器删除应用程序。
当然用户也可在模块上指定“Welcome”应用程序。程序是在Setup被复制并执行后才执行的,通常是模块上的主应用程序。这种机制提供一插上模块后明确的自启动功能。
语言与具
Handspring研发者最广泛使用的是C语言。两种最流行的编程工具是免费的Handspring Palm OS GNU Tools和Palm OS Tools用的商用Metrowerks Code Warrior。GNU Tools是既经济又功能强的选择,特别适合熟悉unix类环境的研发者。Code warrior提供接口设计和类似研发环境的有用工具,是为原先在其它平台上用Code warrior进行研发的工程人员设计的。Palm OS GNU Tools仅在Windows平台上使用,而Code Warriors可在Macintosh和PC两种平台上使用。
与目前的台式电脑相比,Palm OS手持式电脑的处理能力相对较弱。Visor Deluxe是用16.58MHz Motorola DragonBall VZ处理器构建的,而Visor Prism与Platinum则用33MHz DragonBall VZ处理器。在研发模块硬件时应考虑这一差别。一般说来,Visor Deluxe约有1MIPS处理能力。在模块的处理能力比手持式电脑强的场合,应在模块上安装一个DSP。
对计算量大但不要求实时信息处理的应用,可选择另一种方案,即将Visor用作数据收集设备或数据输入设备,将计算卸载到台式PC。用户用Visor采集数据,再通过Palm OS管道Hotsync,或为应用优化的专用文件传输程序将数据传送至台式PC。在台式PC完成复杂的计算后,再通过另一个Hotsync或电脑上可查看的文件将结果送回手持式电脑。
设计实例
参考Springboard Diagnostic Reference Module的方框图(图5)。模块的应用软件和驱动软件驻留在闪存中。2Mbytes闪存是通过两条片选线之一CSO*来访问的,充分利用插槽的自发射能力。
另一条片选线CS1*,与其它的译码逻辑相结合,将多个外设接口至Springboard总线上。其中一个外设UART和RS-232线路驱动器相结合,提供与外部串行设备通信的串行输出。RS-232驱动器由UART控制,尽量减少更多的功率消耗。寄存器控制一个红色LED,中断启用线与一个按钮相连。
该模块的设计可详细参考Handspring Web网站上的“Application Note03:Diagnostic Reference module”。
评论
查看更多