Android VI SmartPhone的硬件结构


如何区别智能手机(SmartPhone)与功能手机(FeaturePhone)?

有一种观点认为,智能手机本质上是功能手机与便携式电脑(Laptop PC)的结合。功能手机的功能受限于制造厂商的预制,也就是说,用户基本上只能使用手机出厂时已经预制的功能,而不能自主下载并安装新的应用。而个人电脑出厂时,多半是裸机,用户根据自己的喜好,自主决定安装哪些软件。一言以蔽之,所谓智能手机,就是用户能够自主安装应用软件的手机。

按照这个定义,智能手机与上网本(Netbook)有什么本质区别呢?

智能手机与上网本并不存在本质区别。如果说电脑与功能手机是一段光谱的两极,那么智能手机与上网本都处于两极的中间。智能手机更接近功能手机,强调小巧,省电。而上网本更趋近与电脑,强调功能,但是代价是尺寸较大,耗电,续航时间短。例如,Apple公司最新推出的iPad上网本,实际上就是放大了尺寸和功能的iPhone智能手机,见Figure 9.1 并参考文献[1] 。

Figure 9.1 iPad notebook is an enlarged iPhone smartphone. [1]
Courtesy http://farm5.static.flickr.com/4063/4348114249_e5bbef101b_o.png

从硬件结构上看,不妨把智能手机粗略地概括为电脑加移动网卡。我们在上一节,“自己动手做电脑手机”一文中,大致介绍了电脑加移动网卡的具体做法。

智能手机 == 电脑 + 移动网卡,这个提法比较粗略,更精准的提法应当是,智能手机的硬件结构分为AP和BP两个部分。AP,应用程序处理器(Application Processor),负责大部分应用程序的执行。而BP,基带处理器(Baseband Processor),也称为通信处理器(CP,Communication Processor),负责所有通讯软件的执行。

如果说功能手机的硬件结构,以BP为主体,添加了一些额外的应用程序和相应的硬件
外设。那么智能手机作为功能手机的进一步发展,在BP的基础上,增加了AP,专门用于强化对应用程序的支持。

但是AP并不等同于电脑主板,这主要体现在CPU的配置上。一方面智能手机AP的CPU的运算速度,应当趋近于电脑CPU的速度。以往智能手机AP的CPU,速度通常是200MHz以上,而近期高档智能手机AP的CPU速度,有的已经达到1GHz。另一方面,智能手机AP的CPU不能一味追求速度,而且要均衡CPU尺寸,便于携带,还要考虑省电,延长续航时间。

在权衡了CPU的速度,尺寸,以及耗电量等等诸多因素以后,ARM系列CPU成为智能手机AP的CPU的主流。当然,并不是所有厂商都接受这个观点,例如Intel就不看好ARM系列。

2006年,Intel把ARM
指令兼容内核的StrongARM/XScale产品线,作价6亿美元,卖给了Marvell[2]。同时,Intel着力发展x86内核的Atom CPU,与ARM系列争夺手机芯片市场。但是代号为Menlow的第一代Intel手机芯片,由于功耗和电源管理无法满足手机的要求,无法挑战ARM系列在手机芯片市场的地位,只好转战上网本 [3]。

但是在2010年1月份举办的美国家电年度展会(CES)上,韩国厂商LG展示了一款新手机,LG GW990,见Figure 9.2。这款手机的看点,是使用了代号为Moorestown的第二代Atom CPU芯片。据传闻,Moorestown的续航时间长达24小时 [4,5]。


Figure 9.2 LG GW990, with Intel Moorestown Atom CPU inside [5].
Courtesy http://www.blogcdn.com/www.engadget.com/media/2010/01/intel-keynote-ces10-0175-rm-eng.jpg

虽然Moorestown似乎很有潜力,但是就目前而言,ARM系列CPU在手机芯片市场的霸主地位,是毋庸置疑的。例如,最近几年,多款被市场热捧的智能手机,它们的CPU都不约而同地选用了以ARM Cortex A8为内核的芯片。

1. Palm公司曾经在1990年代以掌中宝Palm PDA风光一时。后来一度沉寂,迷失了自己的定位。2009年1月,在美国家电年度展会(CES)上,Palm高调宣布他们研制的Palm Pre手机即将上市。这款手机的确很炫,获得该年度CES大奖。

   Palm Pre手机于2009年6月正式上市,它使用的CPU芯片,是德州仪器(TI)于2007年推出的OMAP3430芯片,而OMAP3430芯片的内核,是ARM Cortex-A8 [10]。


2. 同样在2009年6月份,Apple公司的iPhone 3GS也上市,把Palm Pre的风头抢了过去。iPhone 3GS的CPU,选用的是Samsung S5PC100芯片,这款CPU的内核也是ARM Cortex-A8 [11]。

3. 老牌手机制造商Moto,业绩持续下滑。但是在2009年底,老树新花,Moto推出以Google Android v2.0为操作系统的Droid,火爆一时。与Palm Pre手机不谋而合的是,Droid的CPU也选用了TI的OMAP3430芯片,其内核也是ARM Cortex-A8 [12]。

4. Google一直声称自己不介入手机制造。但是在2010年1月,由台湾HTC代工的Nexus One,却是Google自己的品牌手机。Google Nexus One手机,内置CPU芯片是高通(Qualcomm)的Snapdragon系列QSD 8250芯片。该芯片的内核也是ARM Cortex-A8 [13]。


Figure 9.3 Palm Pre, iPhone 3GS, Moto Droid, Google Nexus One, all uses ARM Cortex-A8 CPU [10,11,12,13]。
Courtesy http://farm5.static.flickr.com/4069/4351123874_7c626a9175_o.png


智能手机的CPU芯片,核心是
处理器内核,例如ARM系列内核。除了内核以外,还包括其它外设组件。下面以TI的OMAP3430芯片为例,解剖一下智能手机CPU芯片内部结构。Figure 9.4是OMAP3430芯片的内部结构图,其中内核是ARM Cortex-A8。

ARM系列包括型号众多的内核,为什么大家不约而同地选择ARM Cortex-A8?选择的要点是功能,速度,耗电量三者的权衡。

ARM Cortex-A8使用的指令集是ARMv7。StrongARM系列,使用的指令集是ARMv4。ARM7系列和ARM9系列,用的是ARMv4和ARMv5指令集。ARM11系列,用的是ARMv6指令集。

指令集版本号越高,一方面意味着指令的数量越多,从而导致芯片内部电路越复杂,制造难度也越大。另一方面,指令集越大,指令数量越多,也说明芯片的功能越强,运行程序的速度越快。Cortex内核,是目前所有ARM系列CPU芯片中,功能最强,速度最快的一类。ARM9系列CPU的速度是 200-400MHz,ARM11系列是400-800MHz,而ARM Cortex A8/A9高达800-1000+MHz [7,8,9]。

ARM Cortex A8/A9功能强,速度快,而且比较省电,这就是以ARM Cortex A8/A9为内核的手机CPU芯片,被市场推崇的原因。当然,假如Intel的第二代Atom CPU,Moorestown,成功地降低了耗电量,那么就有可能冲击ARM Cortex A8/A9的霸主地位。

除了ARM Cortex-A8内核以外,OMAP3430芯片还包含其它专用
处理器内核。

1. 视频音频编码解码加速器 IVA2+,用于支持MPEG4,WMV9,H.264以及RealVideo10等等主流流媒体标准,实现视频会议,并让手机具备录制和播放DVD质量的视频的能力。

2. PowerVR SGX图形内核(GPU),用于增强2D和3D图片的渲染效果和速度。
支持OpenGL ES2.0 and OpenVG。

3. 图像信号处理内核(ISP),用来实现相机系统的高画质,强性能,和低成本。
支持12M像素相机模块;实时JPEG图像压缩。


Figure 9.4 TI OMAP3430 CPU Architecture
Courtesy http://focus.ti.com.cn/graphics/wtbu/blockdiagrams/l4_omap3430.gif

选择什么样的CPU芯片,就基本决定了手机主板的结构。例如,TI的OMAP3430芯片,本身不处理电源管理以及音频编码解码(Audio/Voice Codec),这两项工作,交给了TWL5030专用芯片处理,如Figure 9.4所示。因此,以TI的OMAP3430芯片为CPU的主板结构,与选用其它芯片为CPU的主板结构,在扬声器,耳机和话筒的连线上,有显著不同,参见Figure 9.5中红框标识部分。

Figure 9.5中上图为Moto Droid的逻辑结构图,下图为iPhone 3GS的。图中央的黑色方块,显示了应用程序处理器(AP)的CPU,Moto Droid的CPU是TI的OMAP3430,而iPhone 3GS的CPU是Samsung的S5PC100。Samsung S5PC100芯片自身拥有音频编码解码的功能[14],所以iPhone 3GS的扬声器,耳机和话筒直接连线到S5PC100芯片上。



Figure 9.5 
Moto Droid vs iPhone 3GS internal logical structures [15,16].
Courtesy http://farm5.static.flickr.com/4028/4351590146_a5c13eff04_o.png

Figure 9.5 中央有两个黑色方块,右边的是应用程序处理器(AP)的CPU,左边的是基带处理器(BP)的CPU。Moto选用了高通(Qualcomm)的QSC6085芯片,作为BP的CPU。而iPhone 3GS选用的是英飞凌(Infineon)的芯片。关于BP的结构,我们将在下一章介绍。

智能手机的主板,以AP和BP的CPU芯片为核心,理解了这两块芯片,就不难理解手机主板的逻辑结构,例如Figue 9.5显示的Moto Droid和iPhone 3GS两款手机的主板逻辑结构。

理解了主板逻辑结构以后,再看主板实物,就不至于眼花缭乱。Figure 9.6显示的是Moto Droid和iPhone 3GS两款手机的主板实物照片。把Figure 9.5和Figure 9.6对照着看,有助于理解。需要注意的是,实物图中看不到CPU芯片,因为在主板中,CPU和RAM是叠加在一起的。这个做法叫Package on Package(PoP),它的好处主要是节省主板空间[17]。


Figure 9.6 Moto Droid vs iPhone 3GS PCBs [15,16].
Courtesy http://farm5.static.flickr.com/4061/4351590148_f6a392d8b9_o.png

总结一下,本章简要介绍了智能手机的硬件结构。硬件结构中,CPU芯片是核心,其它外围设备,包括LCD,相机,扬声器,话筒等等,都围绕CPU芯片这个核心布局连线。在CPU芯片内部,内核是关键。ARM系列是目前主流的手机CPU内核。其中,最近几年很热门的是ARM Cortex A8/A9。

下一章,我们将讨论智能手机中基带处理器(BP)的实现方式。比较各个不同的实现方式之间,有哪些差别,各自有什么优缺点, 以及AP与BP两者协作的方式。



Reference,

[1] Comparison of iPad and iPhone technical specs. (http://www.apple.com/ipad/specs/; http://www.apple.com/iphone/specs.html)
[2] Intel sold StrongARM/XScale to Marvell for 600 million. (http://www.eetimes.com/news/latest/showArticle.jhtml?articleID=189601851)
[3] Intel drops Centrino Atom Brand after 5 months. (http://www.pcworld.com/businesscenter/article/149791/intel_drops_centrino_atom_brand_after_five_months.html)
[4] Intel demonstrates Moorestown smartphone. (http://www.anandtech.com/cpuchipsets/showdoc.aspx?i=3716)
[5] Intel Keynote CES 2010, introducing Moorestown. (http://www.engadget.com/2010/01/07/live-from-paul-otellinis-intel-ces-keynote/)
[6] Introduction to TI OMAP3430 micro-processor. (http://focus.ti.com.cn/cn/general/docs/wtbu/wtbuproductcontent.tsp?templateId=6123&navigationId=12643&contentId=14649)
[7] ARM Processor Survey. (http://en.wikipedia.org/wiki/ARM_architecture)
[8] ARM Processor Selector. (http://www.arm.com/products/CPUs/core_selector.html)
[9] ARM Core Overview. (http://digital.knu.ac.kr/lecture/%EC%82%BC%EC%84%B1%ED%85%8C%ED%81%AC%EB%85%B8MBA/2_arm_core.pdf)
[10] Palm Pre technical spec. (http://pdadb.net/index.php?m=specs&id=1688&c=palm_pre_cdma)
[11] iPhone series technical spec. (http://en.wikipedia.org/wiki/IPhone)
[12] Moto Droid technical spec. (http://developer.motorola.com/products/droid/)
[13] Google Nexus One technical spec. (http://en.wikipedia.org/wiki/Nexus_One; http://en.wikipedia.org/wiki/Snapdragon_%28processor%29)
[14] Samsung S5PC100 technical spec. (http://www.samsung.com/global/business/semiconductor/support/brochures/downloads/systemlsi/s5pc100_brochure_200902.pdf)
[15] Moto Droid teardown and analysis. (http://www.phonewreck.com/2009/11/12/motorola-droid-teardown-analysis/)
[16] iPhone 3GS teardown and analysis. (http://www.phonewreck.com/2009/06/19/iphone-3gs-teardown-and-analysis/)
[17] Package on Package introduction. (http://en.wikipedia.org/wiki/Package_on_package)



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 1GHz芯片[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)