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