轉載時請注明出處和作者聯系方式:http://blog.csdn.net/absurd
作者聯系方式:李先靜 <xianjimli at hotmail dot com>
更新時間:2007-6-21
在正式進入Marvell-linux研究之前,我們介紹一點背景知識,讓沒有手機開發經驗的朋友有個概念。
1. 基帶(BaseBand)
基帶是傳統手機中最重要的功能,它直接與無線網絡交互,負責信號的發送和接收。所有編碼/解碼和網絡協議處理都是它負責的,這一部分也是最復雜,涉及專利最多的部分。所幸的是,大部分處理都集成在芯片里了,對于一般手機設計來說,至少在軟件方面是不用太關心的。
我們知道,交變電流在流經導體時會產生無線電波,無線電波可以經過空間傳播出去,這就是無線發送的原理。而無線電波又可以讓導體產生電流,電流信號可恢復為與發送時的一致信號,這就是無線接收的原理。
在無線電設備中,這里的導體就是天線,天線的長度是有要求的,它一般不能小于波長的一半,像耳朵能聽聲音頻率范圍是20Hz~20KHz,最敏感的部分在2500赫茲到3000赫茲之間。因為波長x頻率=光速,以3000赫茲的無線電波為例,它對應的波長是100公里,如果直接收/發這種電波,那么天線長度至少要50公里,我們當然不可能在手機上安裝一個50公里長的天線,怎么辦呢?
要縮短天線的長度,只能提高電波的頻率。發送時,把低頻信號調制在高頻信號上再發送出去,接收時,先得到高頻信號,然后從中解調出低頻信號。這里高頻信號稱為載波,一般GSM手機使用1800M或900M的載波,而CDMA使用800M或1900M的載波。當然這里的頻率指的是中心頻率,信號本身要占一定的帶寬,而且為了避免干擾,發送和接收所用的頻率也不一樣,以900M的載波來看,接收頻率為925M-960M,發送頻率為880M-915M。
高頻信號是真正在空間中傳播的無線信號,對高頻信號的處理也就是所謂的射頻(RF) 信號處理,高頻信號讓天線變短了,這是它的好處,同時也帶來了副作用,因為它的波長太短,它可能把印刷板上的導線都當作天線,在上面產生感應電流,原本兩根無關的導線,現在變得關系曖昧,加上無線電波的反射互相影響,使其中充滿太多不確定因素,導致射頻電路設計非常復雜。按照溫伯格的《系統化思維導論》里的說法,這是一個典型的中數系統,即不能采用小數系統中那樣的簡化,又不能采用大數系統中的概率統計。
手機的功率比較小,它不能直接與衛星建立通信,而是與基站(BS)之間通信,基站呈蜂窩狀布置,所以以前稱手機為蜂窩電話。
現在的手機都是數字信號,即使音頻信號也要進行數字編碼之后才能傳遞,任何通信都有一套通信協議,手機和基站之間的通信當然也不例外,多個手機共享基站,信道的建立,手機在基站之間的切換,如此等等,還有很多復雜的情況,所以整套協議非常復雜。
多個手機共享一個基站,如何共享,這就是所謂的多址問題。常見的有頻分多址(FDMA)、時分多址(TDMA)和碼分多址(CDMA)。在2G中通常使用頻分多址(FDMA)和時分多址(TDMA)的組合,而在3G中使用碼分多址(CDMA)。
2. 應用處理器(AP)
AP從邏輯上講是一個獨立的東西,在物理上可以獨立于基帶處理器,也可以從屬于基帶處理器。如果使用Marvell的Monahans系列芯片,那么可以肯定AP是獨立于基帶處理器的。
AP的功能是運行應用程序,我們常說的MMI就是在這上面運行,一般手機設計公司的主要工作就是開發這些應用程序。一個典型軟件(linux平臺)的分層視圖如下圖所示:

在Marvell-linux這個系列中,我們關注的主要是linux kernel中與平臺相關的部分。
3. BB與AP的橋梁
既然像電話這種通信類應用程序是在AP上跑的,而通信功能又是在BB上實現的,那么就一定會存在一個連接AP和BB的通道。
最常見的連接方式就是串口,在linux下,也就是tty設備。在AP這邊,用AT命令控制BB,來實現打電話和發短信等功能,在3GPP的《AT command set for User Equipment (UE)》文檔中定義標準的AT命令,各個模組廠家為了增加功能,在上面都做了些擴展,在使用AT時,要參考模組廠家的手冊。
AT命令是文本格式的,它經過串口發送到BB。它控制BB來完成打電話和發短信等傳統功能沒有問題,但是要通過BB無線上網(如GPRS),就遇到麻煩了,因為上網的數據是二進制的,如果和AT命令混在一起從串口傳輸,那就會亂成一團了。
為了解決AT命令和二進制數據共享串口的問題,3GPP制定了一個稱為多路復用的協議,它把一個物理串口虛擬成多個邏輯上的串口。應用程序使用各自獨立的虛擬串口而互不干擾。
有人會問GPRS數據和AT命令是通過多路復用協議經串口在AP和BB之間傳遞的,那么打電話時的語音數據呢,是不是也是走條通道呢?答案是否,因為那樣做效率太低了,所以對于下行語音數據,BB解碼后直接送到speaker,對上行的語音數據,從MIC采樣/處理后,直接通過BB發送出去。
本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/absurd/archive/2007/06/21/1661231.aspx
posted on 2010-10-16 17:44
何克勤 閱讀(381)
評論(0) 編輯 收藏