论山寨手机与Android 【12】3G时代SmartPhone BP部分
最成熟的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部分的更多相关文章
- 论山寨手机与Android 【13】SmartPhone AP系统
在第9章中我们提到,从功能上讲对于智能手机的一个粗略的概括是,智能手机 == 电脑 + 移动网卡,或者更准确地说,智能手机的硬件结构分为应用程序处理器AP,和基带处理器BP两个部分.这里隐含着两个问题 ...
- 论山寨手机与Android 【14】3G SmartPhone时代的MTK
分析了SmartPhone的里里外外以后,现在我们可以分析MTK的机遇和挑战了.MTK面临的外部环境在发生变化,变化有两条,一是移动网络从2G演变到3G,二是手机由FeaturePhone演化到Sma ...
- 论山寨手机与Android联姻 【10】SmartPhone的通信机制
上一章我们说到,智能手机 == 电脑 + 移动网卡,这个提法比较粗略,更精准的提法应当是,智能手机的硬件结构分为应用程序处理器AP,和基带处理器BP两个部分.虽然AP部分的功能与电脑主板基本类似,但是 ...
- 论山寨手机与Android 【11】移动网络规范的合纵连横
上一章我们讨论了SmartPhone BP部分的硬件系统,接下去我们将讨论SmartPhone BP部分的软件系统.所谓BP,指的是基带处理器(Baseband Processor),又称为通讯处理器 ...
- Android 12(S) 图形显示系统 - 示例应用(二)
1 前言 为了更深刻的理解Android图形系统抽象的概念和BufferQueue的工作机制,这篇文章我们将从Native Level入手,基于Android图形系统API写作一个简单的图形处理小程序 ...
- Android 12(S) 图形显示系统 - 基本概念(一)
1 前言 Android图形系统是系统框架中一个非常重要的子系统,与其它子系统一样,Android 框架提供了各种用于 2D 和 3D 图形渲染的 API供开发者使用来创建绚丽多彩的应用APP.图形渲 ...
- Android 12(S) 图形显示系统 - 应用建立和SurfaceFlinger的沟通桥梁(三)
1 前言 上一篇文章中我们已经创建了一个Native示例应用,从使用者的角度了解了图形显示系统API的基本使用,从这篇文章开始我们将基于这个示例应用深入图形显示系统API的内部实现逻辑,分析运作流程. ...
- Android 12(S) 图形显示系统 - SurfaceFlinger的启动和消息队列处理机制(四)
1 前言 SurfaceFlinger作为Android图形显示系统处理逻辑的核心单元,我们有必要去了解其是如何启动,初始化及进行消息处理的.这篇文章我们就来简单分析SurfaceFlinger这个B ...
- Android 12(S) 图形显示系统 - createSurface的流程(五)
题外话 刚刚开始着笔写作这篇文章时,正好看电视在采访一位92岁的考古学家,在他的日记中有这样一句话,写在这里与君共勉"不要等待幸运的降临,要去努力的掌握知识".如此朴实的一句话,此 ...
随机推荐
- 使用jsonp实现ajax跨域请求
Jsonp(JSON with Padding)是资料格式 json 的一种“使用模式”,可以让网页从别的网域获取资料. 由于同源策略,一般来说位于 server1.example.com 的网页无法 ...
- 也谈谈关于WEB的感想
距离上次在博客园发表博文已经是数年以前了,想想自己也确实有够懒惰的,实为不该. 引起我想发这篇博文的原因是 @Charlie.Zheng 所发表的 <Web系统开发构架再思考-前后端的完全分离& ...
- Yii 多表关联relations,需要与with()方法联合使用
1,首先多表关联是在models/xx.php的relations里配置的.而且是互配,但有区别. 格式: 'VarName'=>array('RelationType', 'ClassName ...
- php 数组 (3) reset() end() count() current() key()
<?php /* count()统计数组中元素的个数 reset() 把数组内部指针移动到数组第一个元素,并返回元素值 end() 把数组内部指针移动到数组最后一个元素,并返回元素值 prev( ...
- WDLINUX (Centos5.8) 安装 bcmath
环境 centos5.8 php5.2.17 因为wdos 集成的php5.2.17为精简版,并未包含php52-bcmath扩展. 所以先下载完整php5.2.17源码包 wget -c http: ...
- yii2不用composer使用redis
1.下载redis https://github.com/yiisoft/yii2-redis 2.下载解压放到 basic\vendor\yiisoft\yii2-redis 3.编辑文件: bas ...
- 创建以 API 为中心的 Web 应用
http://www.oschina.net/translate/creating-an-api-centric-web-application?from=20130818 正计划着要开始搞一个新的网 ...
- codevs2822 爱在心中
2822 爱在心中 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description “每个人都拥有一个梦,即使彼此不相同,能够与你分享,无 ...
- 带有OUTPUT的INSERT,DELETE,UPDATE
原文地址:http://blog.sina.com.cn/s/blog_71460d950100nld2.html OUTPUT是SQL SERVER2005的新特性.可以从数据修改语句中返回输出.可 ...
- JqueryeasyUI选项卡选择判定更改内部Iframe地址
1.tabs的常用操作 //1.判断tab是否存在. var currtab = $('#tabs').tabs('getSelected'); //2.判断点击的tab是否是当前选中的tab. va ...