主题:【原创】论山寨手机与Android联姻的技术基础 -- 邓侃
暂时保密。
不过,会围绕MTK,手机软硬件架构,与Android三者关系展开。
【1】MTK亮相的历史背景
如果说1960年代是大型机(Mainframe)的时代,1970年代是小型机(Microcomputer)的时代,那么1980年代无疑是个人电脑(PC)的时代,而1990年代则是互联网的时代。2000年以后呢?或许是移动互联网的时代。
与电脑的发展历程类似,移动互联网的发展轨迹,看来也同样是以硬件的改进为先导,软件的繁荣紧随其后,带动整个行业的井喷式的爆发性增长。
Figure 2. 第一代手机,俗称大哥大。
Courtesy http://farm3.static.flickr.com/2711/4149584622_1338223724_o.jpg
1980年代,手机开始商用。第一代手机俗称大哥大,特点是无线网络通讯信道中传输的是模拟信号。传输模拟信号有两个缺点,一是耗电,二是同一频段能够同时容纳的用户数量少。因为耗电,所以手机必须携带大块的电池,导致体积庞大,形如板砖。街头流氓打架时,常常捡起地上的板砖砸人,如果随身携带着大哥大,情急之时也可以把大哥大当板砖用。
Figure 3. 以DSP为核心的第二代手机的硬件架构 [4]。
Courtesy http://farm3.static.flickr.com/2751/4146507443_9601fd7d08_o.png
为什么传输模拟信号,会有耗电以及频段容量低的缺点?对比一下数字信号就清楚了。如果把语音转换成数字,就可以采取数据压缩的办法,减少传输语音时占用的带宽。同时由于数字信号容易处理,所以在传输数字语音信号时,可以使用复杂的传输协议与控制,以便在同一频段,同时容纳更多用户相互通话。而对于模拟信号,很难使用类似的协议与控制。
第二代手机的核心,是数字信号处理器,DSP(Digital Signal Processor)。第二代手机的硬件架构,如Figure 3 所示,分为三部分。
1. 射频芯片组 (Radio Subsystem)。它负责调制-发送,以及接收-解调无线信号。无论是发送还是接收,射频芯片组只处理模拟信号。
2. 模拟基带芯片组 (Analog Baseband)。这个芯片组中,主要包括两个功能块,射频接口(RF Interface),以及音频接口(Audio Interface)。
射频接口负责把从射频芯片组接收来的模拟信号,转换成数字信号,转发给数字信号处理器(DSP),以及把DSP输出的数字信号,转换成模拟信号,转发给射频芯片组以便发送。
音频接口负责把从麦克风接收来的模拟信号,转换成数字信号,然后转发给DSP做进一步处理。同时,它也负责把DSP输出的数字信号,转换成模拟信号,然后转发给喇叭以便播放。
3. 数字基带芯片组 (Digital Baseband)。这个芯片组主要由两部分构成,数字信号处理器(DSP),以及微控制器(Microcontroller)。
DSP的主要任务是进行语音处理,例如去除噪音和语音矫正等等。此外DSP还负责,对语音数据流的压缩解压,不同格式之间的编码解码和转换,还有加密解密等等。如果单块DSP芯片的功能不够,还可以借助于其它专用芯片(ASIC)。
微处理器负责两个任务,1. 处理无线通信协议,2. 运行手机操作系统。
当一位用户拨号呼叫另一位用户时,首先要建立一个通话通道,连接主叫方与被叫方。双方对话的语音数字信号,在这个通话通道里传输。七号信令系统负责建立这个通话通道[5]。为了保证信息安全,以及提高系统效率,采取了分离控制流与数据流的做法,也就是说,七号信令系统是一套独立的系统,游离于承载语音数字信号的通话通道之外。
七号信令由一系列协议组成,与有线网络协议的ISO七层模型大致对应,参见Figure 4。微处理器负责处理七号信令的第一层到第三层协议,MTP1,MTP2,MTP3。
Figure 4. Comparison SS7 Protocol Suite and ISO Protocol Model [6]
Courtesy http://farm3.static.flickr.com/2742/4152165133_959a2cb7a3_o.jpg
手机操作系统,例如Nucleus RTOS,负责处理如何开机/关机/锁机,屏幕显示,音量控制,响铃与震动等等外围动作。此外,还负责手机各个功能模块的运行调度 (Scheduling),以及不同进程间的数据交换(IPC)。虽然DSP在手机中的地位非常重要,但是DSP仍然接受手机操作系统的控制。
微控制器处理的数据,存放在Flash存储器中。
第二代手机的核心任务是实时通讯,表现为通话与短信两种功能。围绕实时通讯这个核心,操作系统具体协调各部分的工作。与用户的交互手段,依赖于十几个按键,以及一小块单色液晶显示屏。1998年开始销售的Nokia 5165,是第二代手机的一个经典,参见Figure 5。
Figure 5. 第二代手机,Nokia 5165,1998年
Courtesy http://i1.phonearena.com/showimage.php?m=Phones.Images&f=image&id=7252&v=default
Reference,
[4] Trends in Hardware Architecture for Mobile Devices. (http://www.inf.fu-berlin.de/inst/pubs/tr-b-04-17.abstract.html)
[5] Signaling System 7, SS7. (http://en.wikipedia.org/wiki/Signaling_System_7)
[6] Comparison SS7 Protocol Suite and ISO Protocol Model. (http://www.kenneyjacob.com/2007/06/05/ss7-backbone-of-mobile-networks/)
从去年开始,从老邓这里吸取了不少营养,但惭愧的是,目前还只是个追星族,hehe
详情如何?
【2】手机OS成为核心
手机凭借通话和短信这两项基本功能,积累了用户,开拓了市场。但是用户的需求是永无止境的,对于手机制造商来说,紧跟用户需求,拓展手机功能,是机会也是挑战。
1988年第一款数码相机在日本上市。数码相机的关键是感光芯片。最初的数据相机,使用的是CCD芯片。1990年代初,美国宇航局的科学家Eric Fossum发明了CMOS感光芯片,体积更小,感光效果更好。如果把CMOS感光芯片集成到手机上去,那么手机就可以兼具照相机和摄像机的功能。
但是事情没有那么简单,给手机配上镜头以及CMOS感光芯片只是起步,接下去还有其它问题需要解决。1. 微控制器的处理能力需要加强。2. 操作系统需要增添相应的驱动程序,同时改进任务调度的机制。3. 多媒体播放器,在液晶显示屏上(LCD)显示照片,播放视频,同时协调扬声器同步播放视频的声音。4. 不仅可以在手机本地存储并显示照片和视频,还要支持连网,支持用户上传和下载多媒体文件。
1997年,硅谷工程师Philippe Kahn制成了世界第一台具有摄像功能的手机。与相机手机同时出生的,是他的女儿。Philippe用手机给襁褓中的女儿拍了照片,并转发给2000多名亲友,这是人类历史上,第一次用手机拍摄,并通过移动网络散发的照片[7]。
从此,多媒体成为手机不可或缺的功能。此外,手机还添加了日历,记事本,计算器,音乐播放器等等功能。以及Java VM,以便运行用J2ME编写的程序。还有WAP,用于访问互联网。
第二代手机的使命结束了,取而代之的是第三代手机,也就是所谓功能手机(Feature Phone)。如果说,对于第二代手机而言,DSP是核心,操作系统是配角。那么自从Feature Phone以来,操作系统的功能大大强化了,地位也上升了,由配角熬成了主角。
Feature Phone的OS有多种选择。其中,Symbian长期占据Feature Phone OS市场的半壁江山[8],曾几何时,Symbian OS叱诧风云,一言九鼎,俨然是手机操作系统领域的霸主。举个例子,从严格意义上来说,Symbian OS是操作系统内核(Kernel)。同一套内核可以支持多种GUI图形界面,当年曾经出现S60,MOAP和UIQ三种GUIs,其中UIQ被索爱(SonyEricsson)热捧。作为手机制造商,索爱是Nokia的竞争对手。坊间传说,Nokia因为恨屋及乌,决定打压UIQ。2008年,Nokia指使Symbian Fundation出面宣布,今后Symbian OS只支持S60一款GUI。被冷落的UIQ别无选择,只好关门大吉[9]。
Figure 6. Mobile OS marketshare recent history [10]
Courtesy http://farm3.static.flickr.com/2568/4153933833_bdd657cde7_o.png
但是近年来,手机操作系统市场急剧动荡。带头造反的是Apple的iPhone OS,第二冲击波来自Google的Android,此外还有Palm的WebOS凑热闹,参见Figure 6。有评论认为,
1. Symbian老矣,很难逃脱日薄西山的命运。
2. iPhone特立独行,走精品路线,成为时尚风向标。
3. Android稳扎稳打,免费开源,走群众路线,将来最有可能成为手机OS的主流,取代Symbian的盟主地位。
4. WinMobile偏安一隅,虽不大富,却也小康。
5. WebOS喧嚣一时,如昙花一现。
6. RIM的未来在于投靠强人门下。假如自立山头,则前途暗淡。不仅自毙,而且有可能殃及热销中的黑莓手机(BlackBerry)。
Nucleus OS在哪里?这是一个被市场遗忘的角落。
Figure 7. Nucleus OS Functional Modules [11]
Courtesy http://farm3.static.flickr.com/2560/4152533296_eceecd1965_o.gif
是什么原因,使Nucleau OS成为昨日黄花?Figure 7 描述了Nucleus OS内部的各个功能块。Nucleus本身有不可回避的技术限制,比如没有虚拟内存,而且不分Kernel Space和User Space,系统和应用程序运行在同一个空间中。这对于Feature Phone来说,问题还不是很大,但是对于Smart Phone来说就非常致命了。因为如果应用程序不受限制,那么恶意程序就可以钻空子,获取整个操作系统的控制权,为非作歹。典型的案例就是死机短信,恶意操作致使整个操作系统崩溃。
但是在2000年,MTK借力Nucleus OS,从一家默默无名的IC Design House,发展成为2009年一季度世界第20名芯片销售大户,参见Figure 8。更重要的是,MTK颠覆了传统的手机制造产业链。
MTK最初靠什么发家?技术上有什么优势?商业模式上有什么优势?且听下回分解。
Figure 8. Top 20 Semiconductor Sales Leaders, Q1, 2009 [12]
Courtesy http://farm3.static.flickr.com/2752/4154795958_eda5f2f9d0_o.jpg
Reference,
[7] Philippe Kahn created the first camera phone in 1997. (http://en.wikipedia.org/wiki/Philippe_Kahn)
[8] Mobile OS market share.(http://en.wikipedia.org/wiki/Mobile_operating_system)
[9] UIQ history. (http://en.wikipedia.org/wiki/UIQ, http://en.wikipedia.org/wiki/Symbian_Foundation)
[10] iPhone and Android in two-horse smartphone OS race. (http://arstechnica.com/apple/news/2009/11/admob-iphone-and-android-in-two-horse-smartphone-os-race.ars)
[11] Nucleus OS modules. (http://www.mentorg.co.jp/products/embedded_software/nucleus_rtos/mainColumnParagraphs/2/content_files/file/ill-nucleus.gif)
[12] Chaos reigns in top 20 semiconductor company ranking. (http://www.evertiq.com/news/14176)
期待邓肯的更新。
另外,是否有关于电路/模拟电子/数字电子/单片机/DSP的基础扫盲?在珠三角地区,要有碗饭吃,没这个技能混不下去。
首先绘图支持功能比较差,我都是一个一个像素自己写代码渲染的。今年4月份做项目的时候,ANDROID的蓝牙API还没发布。我写的一个程序不能用蓝牙功能。
Android 的优点在于跟java相似度高,Android 提供的api全是开源的。我有需要自己查一下代码就可以。 优点二:调用 google map, GPS,这些api非常简单。而且是设备无关的,继承了java程序一贯的平台无关性。第三,鄙人觉得android的发展空间和可扩展性比较好。Android本身的架构比较好。在其api完善后,用ECLIPSE的开发会比较简单。
前几天传出消息,HTC准备和Android合作。那就真的是以后可以看到有
Google牌子的手机了。山寨机还是歇歇吧。硬件性能不知道跑android程序怎么样。毕竟android是在java基础上做得啊。
我这回是做作业。
请教高人,然后把高人的指点记录下来而已。
G1就是Android的阿。
至于Java的速度,我倒不认为是个问题。语言而已了。其他的,就没什么评价了,我看不出来android除了开源有什么更多技术优势
我的理解有三条,
1. 梳理了纷乱的Embedded Linux,成为稳定的标准的用于手机的Linux Kernel。
这活儿听起来没什么技术难度。其实有很多家公司有过类似的尝试,例如Limo等等。但是Limo等等之不成功,反衬出Android的精致与扎实。
2. 梳理了纷乱的MiddleWare,包括Telephony Lib等等。
与前面一样,听起来不是高难度的活儿。但是做起来至少非常耗时费力。Google花了大量人力资金,然后免费开源,极大地方便了应用开发。
3. Dalvik VM。
依托Java,方便开发。这个思路也不是新的,例如J2ME也在积极尝试。
比较一下J2ME与Android的运行效率,以及功能多寡,就可以知道Android Dalvik很优秀。
MTK牛在什么地方?
显然就是他的mmi方案不需要大改,和它用的os一点关系都没有。多数搞mtk的也不需要去多么了解Nucleus。
Symbian是智能手机的操作系统。当然很多WM user不承认,不过这对市场一点影响力都没有。
Nucleus支持多个task,它的编译器也可以随便运行在普通pc上,不知道楼主的资料都是从哪里得来的。
别着急,等着读下面的章节。
OS不是MTK成功的关键因素,但是却可能成为扼杀MTK在智能手机领域继续辉煌的凶手,如果MTK抱着Nucleus不放的话。
MTK放弃Nucleus是大势所趋,这一点没有疑问。悬念在于MTK将来拥抱谁?Symbian不是选项,选项是WinMobile和Android。
对于大多数手机应用开发商而言,OS是不是稳定,好用,是他们决定是不是为相应手机开发软件的一个重要条件。为了迎合应用开发商,手机制造商在选择OS的时候就必须慎重。
至于基于Nucleus的开发,是不是能够在PC上进行,别着急,故事还在进行中。
如果篇幅太长,内容太多,不仅写起来累,而且也担心读起来也累。所以,一段长话分成若干短句说。当然,这样做也有坏处,就是太拖沓。所谓鱼和熊掌不可得兼,或许说的是同一回事儿。
今天intel还宣布application developer program
http://appdeveloper.intel.com/en-us/
苹果再次开启时代,其他IT巨头再次跟进,我感觉移动领域的PC时代到来了,我们都在浪尖上。
1.MMI方案不需要大改不是成功的必要条件。刚开始WM的MMI根本就不允许修改!
2.Symbian在那个年代就是一功能手机系统。当然后来进化成智能手机的操作系统。
3.早期的Nucleus需要工作站。后来才可以随便运行在普通pc上。其实这也是MTK方案的一个优势。
请讲讲Nucleus的多个task是不是真正的多任务?
Please post it.I have to go。 (此为授权凭证,)