最成熟的3G网络系统,是3GPP项目组制订的WCDMA。WCDMA的网络结构,可参考Figure 12.1,其中有几个特点。

1. 反向兼容GSM/GRPS网络
  原有GSM网络的基站子系统(BSS)保持不变,并且可以通过原有A协议栈和Gb协议栈,与改造后的核心网(Core Network)互联互通。

2. 核心网保持了原有GSM/GRPS/EDGE网络的HLR,AUC,EIR,VLR,MSC,SGSN,GGSN等等网络结构
  主要变化是把原有的MSC,分拆为MSC(Mobile Switching Center)和MGW(Media Gateway)。分拆后的MSC,仍然负责建立通话双方的电路连接,并且在通话双方在移动过程中,不断切换基站时,维持语音的连续。但是把WCDMA网络把电路切换的任务,交给MGW专司负责,既提高了系统运行效率,又便于系统的维护[1, pp134]。

3. 增设小区服务广播功能
  小区服务广播中心(Cell Broadcast Center)负责对小区内手机广播各种消息,例如天气,股票,实时交通信息等等。

4. GSM网络原有的基站子系统(BSS)在UMTS/WCDMA系统中,不再被沿用,取而代之的是UMTS陆基无线接入网(UTRAN,UMTS Terrestrial Radio Access Network)。
  UTRAN中,基站Node B负责与手机的无线联系,职能类似于GSM BSS子系统中的BTS。而UTRAN中的RNC(Radio Network Controller)的职能,与GSM网络中基站子系统(BSS)中的基站控制器(BSC)的职能很相似。但是由于GSM的多址接入方式是时分多址 (TDMA),而UMTS/WCDMA的多址接入方式是码分多址(CDMA),导致基站与基站监管所使用的技术也极为不同。因此,原有GSM的BTS和 BSC,很难在WCDMA中沿用,只好另起炉灶,用Node B和RNC来替换它们[1, pp198]。

Figure 12.1  3G/UMTS/WCDMA Release 4 Network Architecture [1].
Courtesy http://farm3.static.flickr.com/2708/4403166623_f6c7790b77_b.jpg

在UMTS/WCDMA网络规范中,不仅有Node B,RNC,MSC,MGW,SGSN,GGSN,和CBC等等网络构件,而且还有Uu,Iub,Iur,Iu-CS,Iu-PS,和Iu-BC等等协议栈。所谓协议栈,是网络构件之间传输信息时,使用的一系列协议,它们层层叠叠,堆砌成一个栈结构,所以叫协议栈(Protocol Stack),如Figure 12.2所示。

1. Uu协议栈负责在手机与基站Node B之间,通过无线方式传输信息。所以,Uu无线协议栈直接关系到智能手机BP部分的技术实现。

2. UTRAN中基站Node B,与无线网络控制器(RNC),合称为无线网络系统(RNS)。它们之间的协议栈分别是Iub和Iur,在Figure 12.2中,没有详细列出Iub和Iur,而是把Node B与RNC合并成RNS,重点描述RNS与外界,也就是手机与核心网之间的协议栈。

3. RNC在处理语音业务时,使用Iu-CS协议栈。但是Iu-CS的用法,有控制层面(Control Plane)与用户层面(User Plane)之分。
    在建立联系通话双方的电路时,RNC使用Iu-CS的控制层面(Iu-CS Control),与MSC联系。电路接通以后,在传输通话双方的语音信号的过程中,RNC使用Iu-CS的用户层面(Iu-CS Bearer),与MGW联系,参见Figure 12.1。

4. RNC在处理数据业务时,使用Iu-PS协议栈,并且永远只与SGSN联系。但是联系方式也分控制层面与用户层面。Figure 12.2描述了在处理数据业务的过程中,传输信令和数据实体的各个协议栈。
   虽然同属于Iu-PS协议栈,但是对于控制层面和用户层面,不同的层面使用的具体协议并不相同。Figure 12.2上半部分描述了控制层面的协议栈,负责建立数据通道,而Figure 12.2下半部分描述了用户层面协议栈,负责传输数据实体。

5. 智能手机的BP部分,需要实现Uu协议栈的左侧框图中,所包含的所有协议。
    以数据业务为例,智能手机BP部分,既要实现Figure 12.2中上半部分的最左侧的框图中,所描绘的与手机(UE)相关的种种协议,也就是RF-MAC-RLC-RRC-GMM/SM/SMS各个模块所涉及 的种种协议,以便完成建立数据通道的任务,这是控制层面的工作。同时也要实现Figure 12.2中下半部分的最左侧的框图中,所描绘的与手机(UE)相关的种种协议,也就是RF-MAC-RLC-PDCP-IP/PPP所涉及的种种协议,以及相关应用程序(Applications),以便传输数据实体,这是用户层面的工作。


Figure 12.2 UMTS/WCDMA GRPS Protocol Stacks, Release 99.
 [1, Figure 6.24, pp 237, and Figure 6.25, pp238]  Courtesy http://farm3.static.flickr.com/2731/4396349395_039ccddf6e_o.png

接下来,我们剖析智能手机的BP部分,在建立数据传输通道时,控制层面需要处理的工作,以及传输数据实体时,用户层面需要处理的工作。也就是Figure 12.2图中,上半部分最左边的框图中,与手机(UE)相关的协议,也就是RF-MAC-RLC-RRC-GMM/SM/SMS这五个模块所涉及的协议和彼此互动。此外还包括,下半部分最左边的框图中,与手机(UE)相关的协议,也就是RF-MAC-RLC-PDCP-IP/PPP- Application,这六个模块所涉及的协议和彼此互动。

Figure 12.3描绘了这些模块中包含的部分协议,以及相互关系[2,3]。

1. 各个模块可以被垂直地划分为若干层(Layer),每个模块只与上下层的对应模块发生联系,但是不与同层的其它模块联系。
  自下而上,分别是物理层RF/PHY(Layer 1)链路层(Layer 2),包括MAC/RLC/PDCP/BMC各模块,和网络层(Layer 3),包括RRC及Network Control/AMR Voice/CS Data/PS Data各模块。
  同时,自下而上整个系统又被分为接入层(Access Stratum,AS)与非接入层(Non-Access Stratum,NAS)。非接入层的模块负责与核心网联系,例如网络控制模块(Network Control),它负责电话呼叫和来电接通(Call Control,CC),在手机切换基站时,保持通话连续(Mobility Management,MM),和保证数据包的正常传输(GPRS Mobility Management,GMM)等等。接入层的模块负责无线网络系统(RNS)内部的局部联系,包括手机(UE)与基站(Node B),基站与基站之间,基站与基站控制器(RNC)的局部联系。此外,也包括基站控制器(RNC)与核心网之间Iu-CS/Iu-PS/Iu-BC协议栈 所涉及的联系。接入层为非接入层提供基础服务[4]。

2. 协议栈分成控制层面(Control Plane)与用户层面(User Plane)。
   Figure 12.2分成上下两部分,上半部分描述控制层面,下半部分描述用户层面。而Figure 12.3把控制层面摆放在图左侧,把用户层面放在图右侧。
   以非接入层为例,控制层面包括网络控制(Network Control),负责通话控制(CC),移动通话管理(MM),和数据包管理(GMM)。而用户层面负责语音和数据包实体的传输,相应地有三个功能模块,分别是负责电路交换数据传输的模块(Circuit Switched Data,CS Data),包交换数据传输模块(Packet Switched Data,PS Data),和负责语音传递的自适应多速语音编码器(AMR Voice)。

3. 无线接口与通道(Channel)
   对于手机(UE)来说,物理层(Layer 1)和链路层(Layer 2)负责如何使用无线频段来传输数据,这两层协议的数据编码方式被称为通道[5],包括以下三类,
   1. Physical Channel(RF),DPCH,P-CCPCH,PRACH, S-CCPCH,AICH, PICH。
   2. Transport Channel(PHY-MAC,定义数据的传输方式), DCH, PCH, BCH,RACH,FACH。
   3. Logical Channel(MAC-RLC,定义传输数据的类型), DCCH,CCCH,BCCCH,DTCH。

网络层(Layer 3)的内容,主要是无线资源控制(RRC)协议,负责对无线资源的分配进行控制,并发送有关控制信令。

Figure 12.3 UMTS/WCDMA Uu Protocol Stacks and its internal interaction [2].

Courtesy http://farm5.static.flickr.com/4066/4397161512_e634f2f8dd_o.png

理解了Uu协议栈包含的各个协议,如Figure 12.2所示,以及它们之间的相互作用,如Figure 12.3所示,就不难理解智能手机BP部分的系统架构。Figure 12.4是一款智能手机的BP部分的系统架构图,这款手机应用于4G LTE网络,由英国4M Wireless Ltd公司出品。但是这个BP部分的系统架构,与3G手机的BP部分,在结构上基本相似。

虽然结构相似,但是对应于不同的移动网络,例如WCDMA和TD-SCDMA,每个模块的实现细节不完全相同,导致相应的硬件也可能不能通用。这就是所谓“双模双待”手机存在的意义。

具体来说,由于3G数据传输速度达到2M到7.5Mb/s(HSPA),实时性要求远远高于2G,所以3G的BP部分通常使用多个DSP硬件等等专用处理器,来处理协议数据的编码解码,而不采用软件的办法。使用硬件固然保证了速度,但是对于不同的通信协议,例如2G 的GSM/GRPS,与3G的WCDMA/HSPA,需要有不同的硬件配合。

不同国家和地区也使用不同的频段,RF部分也就不同。2G手机只要支持GSM /GPRS/EDGE 850/1900 和900/1800就可以号称世界手机(除日本和韩国外)。而3G的世界手机,一般需要支持2G所有的协议和频段,外加3G的2100/850/1900(覆盖日本和韩国)。对比MTK功能手机,这些前辈手机大部分是只支持2个频段的GSM/GPRS,3G手机的BP部分要复杂得多。如果把MTK的BP复杂度类比成8086,3G手机BP的复杂度也许就相当于Core2 Duo。

所有这一切都导致3G智能手机的BP部分的开发难度很大。在2G时代,TI+Nokia的无敌组合,一度占据了大部分市场份额,成为市场霸主。但是由于MTK的崛起,以及3G芯片出货的延迟,使得TI逐渐失去基带芯片的市场优势。至于其它2G时代的基带芯片制造商,NXP被收购后苟延残喘,Broadcomm试图用低价来争夺市场,但几乎无功而返。Marvell的Tavor虽然赢得RIM的订单,但是后继乏力。现在只有Qualcomm纵横捭阖,用AP+BP的SoC芯片,牢牢占据了3G单芯片市场。同时,Qualcomm用低端3G BP芯片,与英飞凌争夺BP专用芯片市场。

由于BP部分负责处理通话,实时性要求很高,所以BP部分使用的操作系统必须是实时操作系统(RTOS),例如VxWorks,Nucleus,和 ThreadX等等。实时操作系统负责各个Layer的所有功能模块的任务调度,如Figure 12.4中最右侧垂直黄色方框所示。

Figure 12.4 3G SmartPhone BP architecture [6].
Courtesy http://farm3.static.flickr.com/2749/4397161506_bd52c7cec9_o.png

总结一下,智能手机的BP部分实际上就是一个Modem。它与功能手机的区别仅仅在于,除了SIM/USIM这个外设被保留以外,其它的外设和人机接口统统被去掉,取而代之以AP端的控制接口,类似于MTK系统中的RMI,参考本系列第7章,MTK手机软件系统。

智能手机BP部分,分为垂直分布的多个Layers,对应不同的网络传输协议。同时又被水平分割为控制和用户两个planes,分别负责管理信息通道,以及负责传递信息实体。

智能手机BP部分拥有独立的实时操作系统,为各个Layer各个Plane所包含的所有功能模块,提供任务调度,CPU和内存管理等等最基本的操作系统内核服务。

智能手机的BP部分结构相当复杂,对应于不同类型的网络,不同地域的频段分割,软件和硬件都难以通用。

Reference,

[1] 3G Wireless Network, 2'nd Edition. ISBN-13: 978-0-07-226344-2.
[2] WCDMA Radio Access Network Concepts.
  (http://wireless.agilent.com/rfcomms/refdocs/wcdma/wcdma_gen_bse_concepts.php)
[3] Wireless Protocols.
  (http://www.ccpu.com/trillium-protocol-software-products/all-protocols-list/)
[4] WCDMA Radio Access Network Architecture.
  (http://www.comlab.hut.fi/opetus/238/lecture5Lansisalmi001103.pdf)
[5] WCDMA Physical, Transport and Logical Channels.
  (http://www.networkdictionary.com/Wireless/UMTS-WCDMA-Logical.php)
[6] BP Architecture by 4M Wireless Ltd.
  (http://www.3g.co.uk/PR/Oct2008/3G_LTE_UE_Protocol_Stack_Verification_3G.htm)

论山寨手机与Android 【12】3G时代SmartPhone BP部分的更多相关文章

  1. 论山寨手机与Android 【13】SmartPhone AP系统

    在第9章中我们提到,从功能上讲对于智能手机的一个粗略的概括是,智能手机 == 电脑 + 移动网卡,或者更准确地说,智能手机的硬件结构分为应用程序处理器AP,和基带处理器BP两个部分.这里隐含着两个问题 ...

  2. 论山寨手机与Android 【14】3G SmartPhone时代的MTK

    分析了SmartPhone的里里外外以后,现在我们可以分析MTK的机遇和挑战了.MTK面临的外部环境在发生变化,变化有两条,一是移动网络从2G演变到3G,二是手机由FeaturePhone演化到Sma ...

  3. 论山寨手机与Android联姻 【10】SmartPhone的通信机制

    上一章我们说到,智能手机 == 电脑 + 移动网卡,这个提法比较粗略,更精准的提法应当是,智能手机的硬件结构分为应用程序处理器AP,和基带处理器BP两个部分.虽然AP部分的功能与电脑主板基本类似,但是 ...

  4. 论山寨手机与Android 【11】移动网络规范的合纵连横

    上一章我们讨论了SmartPhone BP部分的硬件系统,接下去我们将讨论SmartPhone BP部分的软件系统.所谓BP,指的是基带处理器(Baseband Processor),又称为通讯处理器 ...

  5. Android 12(S) 图形显示系统 - 示例应用(二)

    1 前言 为了更深刻的理解Android图形系统抽象的概念和BufferQueue的工作机制,这篇文章我们将从Native Level入手,基于Android图形系统API写作一个简单的图形处理小程序 ...

  6. Android 12(S) 图形显示系统 - 基本概念(一)

    1 前言 Android图形系统是系统框架中一个非常重要的子系统,与其它子系统一样,Android 框架提供了各种用于 2D 和 3D 图形渲染的 API供开发者使用来创建绚丽多彩的应用APP.图形渲 ...

  7. Android 12(S) 图形显示系统 - 应用建立和SurfaceFlinger的沟通桥梁(三)

    1 前言 上一篇文章中我们已经创建了一个Native示例应用,从使用者的角度了解了图形显示系统API的基本使用,从这篇文章开始我们将基于这个示例应用深入图形显示系统API的内部实现逻辑,分析运作流程. ...

  8. Android 12(S) 图形显示系统 - SurfaceFlinger的启动和消息队列处理机制(四)

    1 前言 SurfaceFlinger作为Android图形显示系统处理逻辑的核心单元,我们有必要去了解其是如何启动,初始化及进行消息处理的.这篇文章我们就来简单分析SurfaceFlinger这个B ...

  9. Android 12(S) 图形显示系统 - createSurface的流程(五)

    题外话 刚刚开始着笔写作这篇文章时,正好看电视在采访一位92岁的考古学家,在他的日记中有这样一句话,写在这里与君共勉"不要等待幸运的降临,要去努力的掌握知识".如此朴实的一句话,此 ...

随机推荐

  1. ORACLE CHECK CONSTRAINT使用示例(转载) .

    看下面的例子: CREATE TABLE temp (age NUMBER(3)); ALTER TABLE temp ADD CONSTRAINT ck_temp_age CHECK     ((A ...

  2. 使用bootstrap时,选项框出现的意外效果,怎么办?

    <label for="" style="float:right;margin-right:10%;">     <input type=&q ...

  3. JAVA编程思想——类型信息(反射)

    一.反射与RTTI RTTI:这个类型必须在编译的时候已知或者存在,如果不知道对象的确切类型,RTTI可以告诉你. 反射(个人认为就是能够利用Class获取或者调用.class这个文件中的数据):当我 ...

  4. ASP.net(C#)批量上传图片(完整版)

    摘自:http://www.biye5u.com/article/netsite/ASPNET/2010/1996.html   这篇关于ASP.Net批量上传图片的文章写得非常好,偶尔在网上看到想转 ...

  5. Windows消息拦截技术的应用(作者博客里有许多相关文章)

    民航合肥空管中心 周毅 一.前 言 众所周知,Windows程式的运行是依靠发生的事件来驱动.换句话说,程式不断等待一个消息的发生,然后对这个消息的类型进行判断,再做适当的处理.处理完此次消息后又回到 ...

  6. 【Xamarin挖墙脚系列:Xamarin正式发布了IOS的模拟器在Windows下】

    xamarin 的发展越来越迅速.如果还感觉这玩意儿是个鸡肋,辣么请跟的上时代吧 . (额,对微软产品有严重偏见的请绕行..............其实你可以看看.net 基金会现有的开源项目再说不开 ...

  7. 必学100个常用linux命令大全

    1,echo “aa” > test.txt 和 echo “bb” >> test.txt //>将原文件清空,并且内容写入到文件中,>>将内容放到文件的尾部 2 ...

  8. LINUX下DNS的查看和配置

    linux下好像没有专门的DNS查看命令. 用ifconfig命令也是看不到DNS的信息.(也可能是我不知道) 本机的DNS配置信息是在:/etc/resolv.conf [root@localhos ...

  9. cocos2d-x 打包工具用Shell 还是 用 Python

    功能上说两种脚本都可以完成工作.但是跨平台开发用Shell意味着脚本要写两套.Macosx 的bash 和window bat.如果用python写一套就可以了.

  10. Yii2权威指南中文版及众包翻译平台

    Yii2在今年4月份公布了beta版本号,预计下半年会推出正式版本号(可用于生产环境). Yii2使用了新的PHP语法特性(PHP5.4+)并集成了大量新的编程最佳实践, 如命名空间.响应式界面组件库 ...