论山寨手机与 Android【10】SmartPhone 的通信机制(BP)
上一章我们说到,智能手机 == 电脑 + 移动网卡,这个提法比较粗略,更精准的提法应当是,智能手机的硬件结构分为应用程序处理器 AP,和基带处理器 BP 两个部分。虽然 AP 部分的功能与电脑主板 基本类似,但是硬件结构有很大不同,不同之处体现在 CPU 的选择,以及整个主板的布局连线。
BP 负责所有通讯软件的执行,它的硬件结构,也并非如网卡那么简单。基带处理器 BP 的实现,有三种方式。
1. 分立器件(Discrete Components)。
把 BP 部分的 CPU,内存,电源管理,无线收发器,功率放大器等等器件,作为散装器件组装起来的做法,称为分立器件。如 Figure 10.1 所示,Palm Pre 的 BP 部分,采用的就是分立器件的做法 [1]。有趣的是,Palm Pre 把 BP 部分与 AP 部分,分别组装在不同的电路板上。这个做法,不同于 Moto Droid 和 iPhone 3GS,参见上一章中 Figure 9.6 的手机实体图,和 Figure 9.5 的逻辑结构图。Moto Droid 把逻辑上属于 BP 的器件,以及属于 AP 的器件,统统组装在同一块电路板上。而 iPhone 3GS,虽然也把 AP 和 BP 的器件组装在同一块电路板上,但是隔离成了不同屏蔽区域。
不同的分立器件的组装方式,对于散热,抗震,重量和外观会有一定影响。各个厂商考虑这些因素时的侧重点不同,导致各自选择了不同的组装方式。
Figure 10.1 Palm Pre teardown and analysis [1].
Courtesy http://farm5.static.flickr.com/4030/4359122164_0f0e8be100_b.jpg
2. BP 模块。
最接近网卡的方式,是 BP 模块。使用 BP 模块很方便。在设计电路板时,设计好相应的接口,大部分情况下是 miniPCI 接口。在制造时,只需要把外购来的完 整 BP 模块,插入相应接口即可。这个做法很方便,但是方便的代价是成本,通常 3G BP 模块的单价超过 100 美元。所以,熟悉 BP 内部结构,技术积累厚实的手机制造厂商,多半不用 BP 模块,而是选择了成本低,但是技术难度大的分立器件方 式。
但是,对于其它移动设备,例如电子书(eBook),考虑到作为新产品,抢先进入市场的时间,比成本更重要。而且作为投石问路的尝试 阶段,对销量的期望不高。另外,eBook 的赚钱法门在于销售内容,而不是设备本身。或许是考虑到这三个因素,Amazon 的电子书,Kindle 1&2,Barns&Noble 的电子书,Nook,采用的都是 BP 模块的做法,来解决移动上网的需求 [2,3,4]。
Amazon Kindle 2 有两个版本,美国国内版用的是 Novatel 出品的 E725 miniPCI 模块,国际版用的是 AnyDATA 的 DTP600W miniPCI 模块。由于两个模块都是 miniPCI 接口,它们可以很容易互换。
Figure 10.2 中,上排左边的照片是 Amazon Kindle 2 国际版的外观。上排中间和上排右边的照片是打开后盖时,看到的 AnyDATA DTP600W BP 模块的外观照片。下排左边的照片是拆解了 BP 模块以后,看到的内部实物照片,下排右边的逻辑图,是 Kindle 2 国际版的逻辑结构图,红线标识的部分,是 BP 模块所包括的构件。
Figure 10.2 Amazon Kindle 2 and its BP module [3,5].
Courtesy http://farm5.static.flickr.com/4007/4364813490_3c6c69de64_o.png
3. SoC(System on Chip)AP+BP 二合一芯片。
不管是前面提到的分立器件的做法,还是 BP 模块的做法,AP 部分与 BP 部分都是分开的,两者之间通过 AT 命令通信 [6]。拨打电话时,AP 通过 AT 命令控制 BP,而有来电时,BP 通过 AT 命令通知 AP。
早期的手机,AP 与 BP 的物理联系,通过串口(UART)来实现,不仅需要串口,而且通常还需要通用输入输出控制线(General Purpose Input/Outpu, GPIO),来协调 AP 与 BP 之间的电源管理等等。在手机闲置时,AP 和 BP 部分都处于睡眠状态,以便省电。拨打电话时,AP 通过 GPIO 唤醒 BP,然后 通过串口给 BP 发送 AT 命令。有来电时,BP 也通过 GPIO 唤醒 AP,然后也通过串口发送 AT 命令,通知 AP 启动振铃,接换手机界面等等。
很显然,用串口(UART),GPIO,加 AT 命令的方式,来协调 AP 与 BP 的工作,效率不太高。虽然后期手机,用 USB 或 SPI 取代了 UART,效率有所提高,但是总体上来说,AP 与 BP 的协调,仍然是整个手机工作效率的瓶颈。
AP 和 BP 各自有一块彼此独立的 CPU 芯片,不仅相互之间的通信效率差,而且购置芯片的成本高,占用手机电路板的面积大,同时还耗电。为了克服这些缺 点,SoC 二合一芯片的出现,是大势所趋,困难在于 SoC 芯片的设计和制造难度较大 [7]。例如,在 SoC 内部,AP 和 BP 分工依然明确,两者之间的通 信,通常依靠内存共享(Shared Memory)。但是实现内存共享的技术难度,要比 AT 命令的方式要复杂得多 [8]。
GPhone, 是指内置 Google Android 操作系统的手机。例如 2008 年 10 月上市的 G1,2009 年 4 月上市的 G2,以及 2010 年 1 月份新鲜出炉的 Nexus One[9],都是 HTC 的产品 [10]。Nexus One 的 CPU 配置,是 Qualcomm 的 QSD8250 1 GHz 芯片 [11],而 G1 和 G2,都使用了 Qualcomm 的 MSM7200 系列芯片,见 Figure 10.3[12]。
Figure 10.3 HTC Android G1 teardown and analysis [12].
Courtesy http://farm5.static.flickr.com/4004/4358377359_03420dd1a7_o.png
GPhone Nexus One 所使用的 Qualcomm 的 QSD8250,以及 G1 和 G2 所使用的 Qualcomm 的 MSM7200 芯片,都是 AP 和 BP 二合一的 SoC 芯片。以 MSM7200 芯片为例,它的 AP 部分内置两枚 CPU 内核,一个是 ARM11,另一个是 DSP 专用内核 QDSP5,BP 部分也有两个 CPU 内核,分别是 ARM926 和 DSP 专用内核 QDSP4,参见 Figure 10.4 左侧,以及参考文献 [13]。
Qualcomm 的 MSM7xxx 系 列 AP+BP SoC 芯片,于 2006 年左右陆续上市。其实,早在 2001 年,TI 就推出了 AP+BP SoC 芯片,OMAP710。此后,TI 又陆续推出了 OMAP730,733,750,850,1030, 1035 SoC 芯片。TI OMAP710 和 OMAP850 的内部结构图,参见 Figure 10.4 右侧。从 OMAP710 到 OMAP850,速度提高了,内存加大了,功能也有所增强 [14]。
但是 Qualcomm 的 SoC 芯片 系列的特色,在于积极支持 Android 手机操作系统,其用意或许类似 Intel 绑定 Windows 电脑操作系统,两者结盟形成 Wintel 软硬件共生 体,共存共荣占据 PC 领域霸主地位 [15]。Qualcomm 是否能够与 Google 结盟,形成 MSM 与 Android 软硬件共生体,谋求智能手机领域霸 主地位,大家拭目以待。
Figure 10.4 Qualcomm MSM vs TI OMAP [10,11].
Courtesy http://farm5.static.flickr.com/4054/4358401341_5b51b0037f_o.png
总结一下,智能手机的 BP 部分,功能上基本等同于功能手机,所以实际上智能手机等同于,功能手机(BP)外加新增的 AP 部分。BP 的做法有三种方式,1. 分立器件,这是早期智能手机的 BP 部 分的主要实现方式,例如以 Intel PXA 系列芯片为 CPU 的手机。眼下 iPhone,PalmPre, Moto Droid 也沿袭了分立器件的结构。2. BP 模块,这个方式使用简单,但是成本较高。非手机类的移动设备,常用这种设计。3. AP+BP 二合一 SoC 芯片,技术难度最大,但利润率也最高,是目前手机最普遍使用的 BP 实现方式,例如 HTC 手机既用 TI 的 SoC 芯片,使用的是 Qualcomm 的 SoC 芯片,而 Nokia 智能手机大部分使用 TI 的 SoC。
通吃 AP 和 BP,利用 SoC 芯片的高额利润,在每一部手机上获取最大利润,是每一个芯片厂商的梦想。由于 SoC 芯片开发成本较高,为了维持经济效益,芯 片厂商就必须实现大批量生产。因此芯片厂商投入很大力量来帮助手机制造厂商设计基于自己芯片的手机产 品。从手机制造厂商立场出发,由于芯片厂商的大力支持,使用 SoC 芯片可以降低自己的开发难度,缩短开发周期,增加市场机会。正因为如此,SoC 成为当前手机的硬件结构的主流。
2G 到 3G,AP+BP 二合一 SoC 芯片的竞争异常激烈。参与竞争的有 TI,ADI,西门子,Sagem, NXP, Marvell,Qualcomm 和英飞凌(Infineon)等等这些大厂商 [16],谁更有希望胜出,成为行业领袖?中小厂商芯片厂商如展讯和 MTK 以及手机设备厂商 HTC,Motorola 等等,是否能够乱世出英雄,参与分工合作,不断壮大自己?这些问题,留给后续章节讨论。
Reference,
[1] Palm Pre with WebOS teardown and analysis.
(http://www.phonewreck.com/2009/06/07/palm-pre-teardown-and-analysis-review-coming-soon/)
[2] Amazon Kindle1 teardown and analysis.
(http://www.rapidrepair.com/guides/amazonkindleguide/amazon-kindle-Take-Apart-Guide.htm)
[3] Amazon Kindle2 teardown and analysis.
(http://www.phonewreck.com/2010/01/27/amazon-kindle-2-global-wireless-teardownin-depth-analysis/)
[4] Barns&Noble Nook teardown and analysis.
(http://androidandme.com/2009/12/hacks/nook-rooted-how-to-and-teardown-pics/)
[5] Amazon Kindle2 network card teardown. (http://www.ifixit.com/Teardown/Kindle-2/624/1)
[6] Introduction to AT commands. (http://en.wikipedia.org/wiki/AT_commands)
[7] Design an optimal wireless SoC. (http://www.eetimes.com/showArticle.jhtml?articleID=49900397)
[8] Solving SoC shared memory resource challenges.
(http://www.design-reuse.com/articles/5816/solving-soc-shared-memory-resource-challenges.html)
[9] Google Nexus One 评测。(http://chinese.engadget.com/2010/01/05/nexus-one-review/)
[10] A List of Android Devices. (http://en.wikipedia.org/wiki/List_of_Android_devices)
[11] Google Nexus One teardown and analysis.
(http://www.ifixit.com/Teardown/Nexus-One-Teardown/1654/2)
[12] HTC T1 teardown and analysis.
(http://www.phonewreck.com/2008/12/09/t-mobile-g1-review-and-teardown/)
[13] Android OS 与 Qualcomm MSM7200 芯片. (http://mobile.onegreen.org/Article/HTML/15203.html)
[14] TI 的 OMAP750 与 OMAP850 两款 CPU 的比较.
(http://hi.baidu.com/sl1987/blog/item/0afb5a663d663f23ab184c1a.html)
[15] The silicon behind Android.
(http://www.engadget.com/2009/10/14/core-values-the-silicon-behind-android/)