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”。
評論
查看更多