PDA功能模塊的設(shè)計(jì)
Springboard擴(kuò)展槽可集成在Visor與Visor Deluxe手持式電腦中,從一開(kāi)始就為手持式電腦設(shè)計(jì)了真正的即插即用硬件擴(kuò)展功能。由于獨(dú)特的平臺(tái)型設(shè)計(jì)機(jī)遇,業(yè)已設(shè)計(jì)了多款Springboard模塊并投入市場(chǎng)。
Springboard槽的設(shè)置充分考慮到用戶的使用要求。用戶可將欲增添的硬件附件直接插入模塊,使用時(shí)無(wú)需裝載額外的軟件,也不用安裝復(fù)雜的驅(qū)動(dòng)程序。一個(gè)成功地設(shè)計(jì)的模塊可隨時(shí)插入或拔出,甚至在使用之中,也不會(huì)危及或損壞系統(tǒng)。
Spring Board擴(kuò)展槽具有三大特點(diǎn):
1、真正的即插即用:模塊內(nèi)置使用Springboard模塊所必需的全部軟件。任何必需的軟件在模塊插入時(shí)即能自動(dòng)投入使用。
2、靈活的電源管理:Spring board 槽可為不帶電源的模塊提供功率。在同時(shí)使用充電器的場(chǎng)合,它也能為可充電模塊提供充電電壓。當(dāng)未使用模塊時(shí),插槽的軟件和硬件結(jié)構(gòu)可讓研發(fā)者將模塊處于低功耗狀態(tài)。
3、面向開(kāi)放的插槽設(shè)計(jì):插槽的上、下兩邊是開(kāi)放的,因而模塊可制造成各種不同的尺寸。靈活的設(shè)計(jì)可讓研發(fā)者內(nèi)裝電池、天線、耳機(jī)插座或電話插座、以及其它元件,不受機(jī)械條件的限制。
為支持插槽的即插即用功能,Handspring擴(kuò)充了Palm OS,以便檢測(cè)模塊的插入;在模塊上直接執(zhí)行應(yīng)用程序和驅(qū)動(dòng)程序;并在拔出模塊后徹底去除軟件。
駐留在模塊存儲(chǔ)器中的應(yīng)用軟件通常是在模塊上就地執(zhí)行的,其作用如同從手持式電腦內(nèi)部ROM或RAM來(lái)執(zhí)行應(yīng)用軟件。這種設(shè)計(jì)讓OS直接跳轉(zhuǎn)至程序代碼,而無(wú)須先將應(yīng)用軟件復(fù)制到內(nèi)部存儲(chǔ)器,然后再執(zhí)行復(fù)制的軟件。該體系結(jié)構(gòu)最大限度地減少了應(yīng)用軟件使用的內(nèi)部存儲(chǔ)器,節(jié)省了寶貴的存儲(chǔ)器資源。Springboard擴(kuò)展槽是按模塊映射至CPU存儲(chǔ)器空間的方式構(gòu)建在該體系結(jié)構(gòu)上的,從而在程序上保持訪問(wèn)內(nèi)部存儲(chǔ)器與訪問(wèn)模塊存儲(chǔ)器的一致性。當(dāng)模塊被拔除后,用戶自動(dòng)地脫離模塊應(yīng)用軟件并返回至應(yīng)用啟動(dòng)程序。
插槽的體系結(jié)構(gòu)
Springboard槽是存儲(chǔ)器映射的,具有一個(gè)16位數(shù)據(jù)總線、一個(gè)24位地址總線、兩條片選線、一條中斷線、系統(tǒng)電源、接地以及控制邏輯。此外,還有電池過(guò)低及復(fù)位信號(hào)、兩個(gè)卡檢測(cè)信號(hào)、一條充電電壓直通連接、以及兩個(gè)直接連接至內(nèi)置話筒的引腳(圖1)。
當(dāng)插入模塊時(shí),系統(tǒng)將16Mbytes地址空間分配給每條默認(rèn)片選線(圖2)。每條片選線是按16位寬地址的存儲(chǔ)器器件配置的,因此只能以偶數(shù)來(lái)訪問(wèn)模塊存儲(chǔ)器。研發(fā)者也能使用8位外設(shè),即簡(jiǎn)單地將外設(shè)連接高8位數(shù)據(jù)總線、或低8位數(shù)據(jù)總線,視模塊的結(jié)構(gòu)而定。模塊中的ROM應(yīng)駐留在cs Slot0的起始地址且應(yīng)是16位寬的,便于系統(tǒng)識(shí)別模塊。對(duì)駐留在cs Slot1上的模塊,系統(tǒng)未作任何規(guī)定。
Springboard體系結(jié)構(gòu)可讓設(shè)計(jì)者從系統(tǒng)電壓(規(guī)定在3.0V~3.6V)取得最大為100mA電流,供模塊使用。當(dāng)模塊需要更大功率時(shí),本身應(yīng)安裝電源,通常是充電電池或堿性電池組。堿性電池靈活性好,電池用完后更換電池十分方便;若模塊頻繁地使用(如數(shù)據(jù)或語(yǔ)音通信模塊)且消耗大量功率,最好選擇充電電池。
每個(gè)可充電的Handspring電腦都備有供電的充電座,而堿性電池供電平臺(tái)作為一個(gè)可選件。充電電壓叫做Vdock,是一個(gè)4.75V~6.2V信號(hào)。該信號(hào)給可充電Visors中電池充電,同時(shí)對(duì)所有Visors,該信號(hào)也連接至Springboard槽上的兩個(gè)引腳。當(dāng)手持式電腦放置在充電座時(shí),開(kāi)發(fā)者能從兩個(gè)引腳處取得總量500mA電流,給自己模塊上的電池充電。[!--empirenews.page--]
電源管理
研發(fā)者在考慮模塊結(jié)構(gòu)時(shí),應(yīng)充分了解整個(gè)系統(tǒng)的性能。例如,當(dāng)手持式電腦開(kāi)機(jī)且處于靜屏顯示的閑置方式時(shí),Visor Deluxe整機(jī)僅消耗兩節(jié)AAA電池15mA,而處理大量計(jì)算的應(yīng)用時(shí),要消耗60mA。因此,模塊消耗電流大于Visor本身時(shí),會(huì)嚴(yán)重影響系統(tǒng)的電池壽命,這反映出用戶缺乏使用經(jīng)驗(yàn)。
當(dāng)電池低于規(guī)定的電壓電平時(shí),電腦向模塊提供LOWBAT*信號(hào)。在電池低于該閾值幾毫秒后,Visor停止向模塊供電,當(dāng)然在到達(dá)電池過(guò)低狀態(tài)前,用戶會(huì)從OS接收到幾個(gè)電池過(guò)低的告警信號(hào)。LOWBAT*僅在停止向模塊供電后才是有效的。
處于電池過(guò)低狀態(tài)時(shí),電腦會(huì)盡一切可能保護(hù)內(nèi)部存儲(chǔ)器。此時(shí),模塊與系統(tǒng)是電隔離的,避免系統(tǒng)從模塊獲取能量。同時(shí),電腦也不會(huì)對(duì)電源按鈕或應(yīng)用按鈕作出響應(yīng)。在更換電池期間,一個(gè)超級(jí)電容器有一分鐘時(shí)間來(lái)保護(hù)內(nèi)存中的數(shù)據(jù)。安裝新電池后,模塊被重新供電并重新啟動(dòng)初始化程序,就象模塊被拔除后又重新插入一樣。
當(dāng)系統(tǒng)關(guān)機(jī)或進(jìn)入休眠模式時(shí),雖然系統(tǒng)不能阻止模塊獲取能量,但通常將模塊設(shè)計(jì)在極低的功耗狀態(tài)。例行程序通過(guò)擴(kuò)充API使模塊進(jìn)入或脫離低功耗狀態(tài)。每當(dāng)手持式電腦開(kāi)機(jī)或關(guān)機(jī)(即進(jìn)入或脫離休眠模式)時(shí),操作系統(tǒng)調(diào)用例行程序。例行程序中的參數(shù)會(huì)告知是開(kāi)機(jī)還是關(guān)機(jī)。
機(jī)械考慮
設(shè)計(jì)者在考慮模塊的機(jī)械外殼時(shí)有幾種可選擇的方案,使用現(xiàn)成的塑料外殼或設(shè)計(jì)定制的外殼。使用現(xiàn)成的塑料外殼可充分利用業(yè)已成功的機(jī)械封裝,減少設(shè)計(jì)者的研發(fā)成本。
要是設(shè)計(jì)的產(chǎn)品可放置在較小的封裝中,標(biāo)準(zhǔn)模塊塑料外殼是最靈活的選擇。這些模塊能容納Visor產(chǎn)品提供的各種載體(圖3)。若設(shè)計(jì)的產(chǎn)品需要更大的空間,或2節(jié)AAA電池,則可采用電池模塊塑料外殼,它具有容納較高元件的空間。還有其它的塑料外殼變種,來(lái)啟動(dòng)PC板上的表面貼裝按鈕(圖4)。標(biāo)準(zhǔn)模塊塑料外殼和電池模塊塑料外殼可直接向第三方供應(yīng)商購(gòu)買。
若研發(fā)者選擇自己設(shè)計(jì)定制塑料外殼,應(yīng)仔細(xì)地考慮定制模塊的體積。內(nèi)裝的元件應(yīng)確保模塊插入在Springboard槽中,并能和各種載體和Hotsyn充電座相互配合。在Handspring Web網(wǎng)站上有一篇資料,詳細(xì)地規(guī)定了創(chuàng)建Springboard模塊的定制塑料外殼必須遵循的體積。這對(duì)在模塊上實(shí)現(xiàn)主要功能尤為重要。成功地設(shè)計(jì)的主要功能應(yīng)確保模塊能正好插入插槽中,這樣大大減少了弄彎插針的情況。
盡管PCMCIA與Spring borad槽的主要機(jī)械與電氣特性是不同的,但是Springboard模塊上的68針插座廣泛提供PCMCIA核心部件。模塊設(shè)計(jì)者應(yīng)盡量采用適合自己具體設(shè)計(jì)的各種核心部件。
軟件考慮
Springboard擴(kuò)展槽支持真正的熱即插即用可置換模塊.插入模塊后,就能立即運(yùn)行模塊上的軟件。
Handsping軟件體系的兩個(gè)有用單元是可選的“Setup”與“Welcome”應(yīng)用軟件。要是插入模塊后出現(xiàn)Setup應(yīng)用程序,該應(yīng)用程序被復(fù)制到內(nèi)部存儲(chǔ)器,然后加以執(zhí)行。該程序是唯一能被OS自動(dòng)地復(fù)制到內(nèi)部存儲(chǔ)器的應(yīng)用程序。在模塊被拔除后,再次執(zhí)行程序,完成結(jié)束應(yīng)用程序必須的一切內(nèi)務(wù)處理。按照Springboard“善后清除”的原則,最后自動(dòng)地從內(nèi)部存儲(chǔ)器刪除應(yīng)用程序。
當(dāng)然用戶也可在模塊上指定“Welcome”應(yīng)用程序。程序是在Setup被復(fù)制并執(zhí)行后才執(zhí)行的,通常是模塊上的主應(yīng)用程序。這種機(jī)制提供一插上模塊后明確的自啟動(dòng)功能。[!--empirenews.page--]
語(yǔ)言與具
Handspring研發(fā)者最廣泛使用的是C語(yǔ)言。兩種最流行的編程工具是免費(fèi)的Handspring Palm OS GNU Tools和Palm OS Tools用的商用Metrowerks Code Warrior。GNU Tools是既經(jīng)濟(jì)又功能強(qiáng)的選擇,特別適合熟悉unix類環(huán)境的研發(fā)者。Code warrior提供接口設(shè)計(jì)和類似研發(fā)環(huán)境的有用工具,是為原先在其它平臺(tái)上用Code warrior進(jìn)行研發(fā)的工程人員設(shè)計(jì)的。Palm OS GNU Tools僅在Windows平臺(tái)上使用,而Code Warriors可在Macintosh和PC兩種平臺(tái)上使用。
與目前的臺(tái)式電腦相比,Palm OS手持式電腦的處理能力相對(duì)較弱。Visor Deluxe是用16.58MHz Motorola DragonBall VZ處理器構(gòu)建的,而Visor Prism與Platinum則用33MHz DragonBall VZ處理器。在研發(fā)模塊硬件時(shí)應(yīng)考慮這一差別。一般說(shuō)來(lái),Visor Deluxe約有1MIPS處理能力。在模塊的處理能力比手持式電腦強(qiáng)的場(chǎng)合,應(yīng)在模塊上安裝一個(gè)DSP。
對(duì)計(jì)算量大但不要求實(shí)時(shí)信息處理的應(yīng)用,可選擇另一種方案,即將Visor用作數(shù)據(jù)收集設(shè)備或數(shù)據(jù)輸入設(shè)備,將計(jì)算卸載到臺(tái)式PC。用戶用Visor采集數(shù)據(jù),再通過(guò)Palm OS管道Hotsync,或?yàn)閼?yīng)用優(yōu)化的專用文件傳輸程序?qū)?shù)據(jù)傳送至臺(tái)式PC。在臺(tái)式PC完成復(fù)雜的計(jì)算后,再通過(guò)另一個(gè)Hotsync或電腦上可查看的文件將結(jié)果送回手持式電腦。
設(shè)計(jì)實(shí)例
參考Springboard Diagnostic Reference Module的方框圖(圖5)。模塊的應(yīng)用軟件和驅(qū)動(dòng)軟件駐留在閃存中。2Mbytes閃存是通過(guò)兩條片選線之一CSO*來(lái)訪問(wèn)的,充分利用插槽的自發(fā)射能力。
另一條片選線CS1*,與其它的譯碼邏輯相結(jié)合,將多個(gè)外設(shè)接口至Springboard總線上。其中一個(gè)外設(shè)UART和RS-232線路驅(qū)動(dòng)器相結(jié)合,提供與外部串行設(shè)備通信的串行輸出。RS-232驅(qū)動(dòng)器由UART控制,盡量減少更多的功率消耗。寄存器控制一個(gè)紅色LED,中斷啟用線與一個(gè)按鈕相連。
該模塊的設(shè)計(jì)可詳細(xì)參考Handspring Web網(wǎng)站上的“Application Note03:Diagnostic Reference module”。