在上一篇中,鳥大師談到GSM系統的基本架構,而在這篇中,鳥大師要更深入的探究GSM系統資料傳輸的程序與限制,讓大家了解為什麼GSM會如此龜速,而且連線價格很貴,必需被日後的GPRS、Edge和3G取代的原因。(左圖攝影:Per Foreby)
「無線電子系統」(Radio Subsystem)其實是行動通訊系統的術語,簡單的來說就是這個行動通訊系統的無線電介面標準,它所用的頻帶、頻道的分配、調變及解調的方式、功率的大小等。
無線電子系統決定了很重要的一個關鍵參數,稱之為單位頻率的系統容量。以GSM系統來說,最早的GSM 900規格分配了兩個25MHz的頻段供整個系統使用。890-915MHz這段供手機送往基地台使用,稱之為上行鍊路(uplink);而935-960MHz這段則是供基地台送往手機的通訊使用,稱之為下行鍊路(downlink)。這個頻段被切成以200KHz為單位的頻道,因此25MHz就有125個可用的頻道,這些可用頻道被編上號碼,稱之為ARFCN(Absolute Radio Frequency Channel Number)。一般來說,在同一個國家或地區很少只有一家電信業者經營GSM網路,因此主管機關可以分配不同的業者使用不同的頻道,而各業者再根據各自分配到的頻道號碼,去做頻率重用的規劃。
以台灣現行的 GSM 900 系統來說,中華電信的全區系統分配到第25號到第99號ARFCN,總共有75個頻道,而北中南三家單區的業者,都分配到第101號到第124號ARFCN,共25個頻道。由於單區業者的經營區域不同,因此同樣的ARFCN可以在北中南三區重覆使用。
頻道分配完了,接下來就要看一個頻道能塞多少人了。一個頻道能塞多少使用者,以及每個使用者能分配到多少頻寬,是由無線電子系統的調變方式及多工存取方式來決定的。
調變是數位通訊系統中,用來將資料以訊號的格式表現的方式。教科書上告訴我們可以用訊號的振幅、頻率、或是相位來代表資訊,實務上這三者常常混用。而多工存取方式則是當一個頻道要給很多人使用時,大家所必需遵守的遊戲規則。
GSM使用的數位調變方式稱之為GMSK,簡單來說它是一種經過特殊處理的二元頻率調變方式,每一個符號只能攜帶一個bit的狀態,零或一。在數位調變中有個很重要的觀念,稱之為符號的鑑別率。越好的鑑別率代表這個調變方式能耐越大的雜訊干擾。
以同樣的調變強度來說,如果一個符號有四種可能的狀態,它一次就能攜帶兩個bit的資訊量,但相對的來說,因為在接收端它有四種狀態需要鑑別,因此它的鑑別率一定不如只有兩種狀態的二元調變。但相對來說,二元調變能攜帶的資訊量卻只有前者的一半。
▲圖二 調變密度與鑑別率的關係。
GSM選擇了相對來說較耐雜訊的二元GMSK調變,但代價就是較低的頻寬利用率。在一個200KHz的ARFCN中,GSM的GMSK調變只能達到270.83333…Kbps的可用資料速率。對,它有個除不盡的尾數,看起來很怪,不過這只是因為計算的單位不同。實際上照GSM的通訊協定,它是每六秒可以傳送1625000個bit,除下來每秒就是270.833333…個bit。
270Kbps聽起來還蠻快的吧?但它不是一人獨享。每一個ARFCN要讓八位使用者共享,而這八位使用者以4.615ms的週期輪流使用這個無線電頻道。這樣的多工存取方式稱之為TDMA(Time Division Multiple Access),而每個使用者佔用無線電資源的時間稱之為時槽(time slot)。
▲圖三 GSM的分時多工。
我們可以這樣想像:第一隻手機要傳送資料給基地台時,首先它得在很短的時間內將無線電發射系統打開並且準備好,這個動作稱之為ramp-up。等射頻系統準備好後,它就有576.92us這麼一點點的時間,可以用來傳送156.25個bit,用GSM的術語來說,這叫做一個burst。這次的0.25個bit就真的是0.25個bit,在GSM的通訊協定設計中,真的有四分之一位元這種東西,稱之為QB(quarter bit),不過它不是用來載送資訊的就是了。
當這隻手機在限定的時間內傳送完它想傳送的burst後,它得趕緊把發射電路關掉,因為馬上第二隻手機接著就要用同樣的頻率傳送資料給基地台。如果第一隻收機的發射電路關得太慢,就會干擾到第二隻手機的發射,影響基地台接收第二隻手機資料的正確性。這個關掉的動作稱之為ramp-down。在GSM手機的射頻系統設計中,ramp-up跟ramp-down是很重要的課題:如何讓射頻放大器在短時間內打開並穩定到可以輸出的狀態,以及在傳送完後可以迅速關閉不去踩到下一位使用者的發言,都是需要精確控制的動作。
GSM 同時定義了單一手機從關掉發射到開始接收之間,需要有三個burst的時間差,這同樣是因為發射電路關閉需要時間,而接收電路開啟也需要時間的關係。
因為每隻手機都以4.615ms的週期將射頻電路打開來發射再關掉,因此我們若單看任何一隻手機,它的發射電路就是以4.615ms的週期在發射576.92us這麼短的訊號。這樣的無線電訊號,如果對鄰近的裝置造成干擾的話,就會變成像是一個個的脈衝訊號以4.615ms的時間間隔打在被干擾的裝置上。在使用GSM手機時,電話還沒響起,我就就常常聽到旁邊的電腦喇叭發出「茲…茲…」的聲音,就是這種干擾造成的。而那個「茲…」聲的頻率,則剛好就是4.615ms的倒數,大約是217Hz。這種雜訊,我們稱之為TDD noise,因為它是由分時多工 TDD(Time Division Duplex)所造成的。
一隻手機每次只能分到156.25個位元已經夠慘了,但更糟的是這156.25個位元還不是全部都可以用來傳送資料。前面提過,如果前一個使用者ramp-down做得不好,就會踩到後面使用者發射的訊號,而這種情況其實很難完全避免,因此GSM預留了8.25個bit的時間專門用來被踩的,這就是guard period。除此之外,因為無線電頻道是個瞬息萬變的通訊媒介,接收端需要使用等化器和其它自適應(adaptive)的接收技術來因應,因此需要一些已知的訊號供校正所需。在一個burst中,這種用來校正接收端的訊號又佔去了26個位元,再扣除一些雜七雜八的小符號所佔用的的位元,一個burst裡真正能用來傳資料的位元數只有114個,換算下來,真正用來傳資料的位元速率只有24.7Kbps左右。
▲圖四 GSM的burst格式。
說了這麼多,其實只是想告訴你,GSM這個系統原來就不是設計來傳資料的,它是設計來提供穩定可靠的數位語音服務。
24.7Kbps可以提供語音服務?沒錯,GSM的語音就是在這麼一點點的頻寬中傳送。因為頻寬很少,所以語音資料必需經過壓縮。早期GSM所使用的語音壓縮演算法稱為LPC-RPE,它是種專門針對語音所設計的聲音壓縮演算法,編碼後的資料速率是 13Kbps。因為它是特別為語音所設計的,所以對於處理語音以外的聲音訊號並不在行。你可以試著對手機話筒吹口哨,對方會聽到一個在顫抖又中氣不足的口哨聲,就是這種語音編碼法在處理非語音訊號時造成的奇特結果。
13Kbps 的語音經過錯誤更正碼及錯誤偵測碼等編碼後,膨漲為22.8Kbps的資料流,就可以載在burst上傳送了。
那9.6Kbps的CSD資料服務是怎麼回事呢?其實它就是將預備載在burst中的語音資料以使用者自己想傳送的資料取代。語音可以容許小部份差錯,但資料則是一個bit都錯不得,因此GSM用來傳送資料時,會用更完整、更嚴謹的錯誤更正碼及錯誤偵測碼去將欲傳送的資料編碼,因此9.6Kbps的使用者資料流經過編碼後,也膨脹為22.8Kbps的資料流,用一樣的方式載在burst上傳送。
所以,並不是GSM有留一手,而是CSD的系統設計就真的只能傳送9.6Kbps這麼慢的資料。而且,因為CSD完全遵守語音通話的遊戲規則:撥號建立連線、使用與語音相同的封包格式與頻道資源,因此這項服務會以連線時間計費也是理所當然的。
第一篇:【鳥專欄】從2G到3G –行動通訊技術解密 一:GSM架構篇