手機的CPU一般不是獨立的芯片,而是基帶處理芯片的一個單元,也稱作CPU核;鶐幚硇酒鞘謾C的核心,它不僅包含CPU核、DSP核這些比較通用的單元,還包含通信協議處理單元。通信協議處理單元和手機協議軟件一起完成空中接口要求的通信功能。
隨著芯片技術的不斷發展,越來越多的外圍電路可以被集成到基帶處理芯片中,例如BAP,即基帶模擬處理器。這樣手機才可能越做越小、越做越便宜。
1.2 單CPU和雙CPU很多手機只有一個CPU,也就是基帶處理芯片中的CPU核。在這個CPU上既要跑通信協議,又要實現用戶界面(稱作UI或MMI)。當然DSP會分擔一些計算量繁重的工作,例如語音編解碼、安全層的各種算法等。
在市場推動下,手機功能在不斷發展。攝像頭、MP3、藍牙這些功能可以依靠硬件,對CPU的壓力還不是很大,但java虛擬機、嵌入式瀏覽器等應用軟件就會對CPU資源有較高的要求。
單CPU的首要任務是完成通信協議。通信協議軟件有著很精確的定時要求,如果這個CPU還要兼顧很多應用軟件的話,就難免吃力。于是雙CPU手機應運而生。
顧名思義,雙CPU手機就是有兩個CPU的手機,一個CPU專心把通信協議做好,另一個CPU負責UI、java虛擬機、嵌入式瀏覽器等應用功能。兩個CPU可以做在一個芯片里面,也可以分開。
市場上的實際情況是,很多手機設計公司(Design House)沒有基帶處理芯片的開發能力,他們購買國外公司的手機模塊,自己在外面再加一塊CPU。模塊跑通信協議,自己加的CPU跑UI和應用軟件,兩 者通過串行口通信。很多Design House也會購買國外方案商的開發板級方案,自己做PCB、軟件上改改UI和外設驅動。
市場上的智能手機基本上全是雙CPU方案,什么Windows CE、SmartPhone、WindowsMobile、Symbian、嵌入式Linux全是運行在第二塊CPU上的。這些商業操作系統無法和無線通 信協議軟件集成到一塊CPU上。雙CPU的手機功能比較多,但它們一般體積大,耗電多,成本高,F在市場上的大部分手機還是單CPU的。
目前的大部分手機應用,例如Java、BREW、WAP、郵件、攝像頭、閃存、MP3、藍牙,在單CPU方案里都能實現。我認為不管3G、4G如何發展, 小巧、實用、低成本的單CPU方案總會占據較大的市場份額。微軟在單CPU方案的手機市場還沒有立足之地,又怎么談的上什么引領方向呢?
本文主要介紹單CPU手機,大多數論述也適用于雙CPU方案的通信CPU。
1.3 3G和4G3G和4G是指第三代、第四代無線通信技術,對手機而言,它們改進的是空中接口的效率,空中接口能以更大的帶寬傳送數據。通過手機無線上網的速度會更快。這和話音業務、手機應用軟件沒有直接的聯系。
當然,手機的嵌入式數據業務由于更高的帶寬,會產生更多的可能性。不過這些可能性的實現還是會受到手機輸入慢、顯示屏小等條件的制約。 2 手機軟件的組成 2.1 概述手機軟件和PC機軟件一樣從中斷向量表開始,因為比較小,看上去更加清晰。中斷向量表的 個跳轉指令當然是跳到復位的處理程序,后面是中斷處理、錯誤處 理的跳轉指令。一上電,手機就跳轉到復位的處理程序,開始檢查內存、初始化C運行環境,然后創建 個任務。這個任務會按順序創建、啟動其它任務。絕大多 數手機程序都是多任務的,但也有一些小靈通的協議棧是單任務的,沒有操作系統,它們的主程序輪流調用各個軟件模塊的處理程序,模擬多任務環境。
手機軟件可以粗略地分成啟動模塊、操作系統、協議棧、數據業務、本地存儲、驅動程序、用戶界面和其它應用。啟動模塊前面已經說過了,下面簡單介紹其它部分。
2.2 操作系統操作系統在手機軟件只占很小一部分。它的主要功能就是提供多任務調度、通信機制。有的操作系統會提供動態內存分配,定時函數,但這些都不是必須的。例如需要動態內存分配的模塊,可以自己管理一個內存池,這樣更易于隔離模塊和預測內存需求。
大多數手機的操作系統都是一個很小的內核,例如REX、HIOS等。高通REX的源代碼連C代碼加匯編也不過一千多行,編譯后不過是2、3K的代碼量。而一般手機軟件有幾百到上千個源文件、超過一百萬行的代碼。
延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/