找回密码
 注册
搜索
查看: 1082|回复: 2

[资料] 手机软件的运行环境 免费

[复制链接]
发表于 2008-3-11 19:18:30 | 显示全部楼层 |阅读模式
1 手机软件的运行环境
1.1 概述
手机可以被看作袖珍的计算机。它有CPU、存储器(flash、RAM)、输入输出设备(键盘、显示屏、USB和串口)。它还有一个更重要的I/O设备, 那就是空中接口。手机通过空中接口协议(例如GSM、CDMA、PHS等)和基站通信,既可以传输语音、也可以传输数据。
手机的CPU一般不是独立的芯片,而是基带处理芯片的一个单元,也称作CPU核。基带处理芯片是手机的核心,它不仅包含CPU核、DSP核这些比较通用的单元,还包含通信协议处理单元。通信协议处理单元和手机协议软件一起完成空中接口要求的通信功能。
随着芯片技术的不断发展,越来越多的外围电路可以被集成到基带处理芯片中,例如BAP,即基带模拟处理器。这样手机才可能越做越小、越做越便宜。
1.2 单CPU和双CPU
很多手机只有一个CPU,也就是基带处理芯片中的CPU核。在这个CPU上既要跑通信协议,又要实现用户界面(称作UI或MMI)。当然DSP会分担一些计算量繁重的工作,例如语音编解码、安全层的各种算法等。
在市场推动下,手机功能在不断发展。摄像头、MP3、蓝牙这些功能可以依靠硬件,对CPU的压力还不是很大,但java虚拟机、嵌入式浏览器等应用软件就会对CPU资源有较高的要求。
单CPU的首要任务是完成通信协议。通信协议软件有着很精确的定时要求,如果这个CPU还要兼顾很多应用软件的话,就难免吃力。于是双CPU手机应运而生。
顾名思义,双CPU手机就是有两个CPU的手机,一个CPU专心把通信协议做好,另一个CPU负责UI、java虚拟机、嵌入式浏览器等应用功能。两个CPU可以做在一个芯片里面,也可以分开。
市场上的实际情况是,很多手机设计公司(Design House)没有基带处理芯片的开发能力,他们购买国外公司的手机模块,自己在外面再加一块CPU。模块跑通信协议,自己加的CPU跑UI和应用软件,两者通过串行口通信。很多Design House也会购买国外方案商的开发板级方案,自己做PCB、软件上改改UI和外设驱动。
市场上的智能手机基本上全是双CPU方案,什么Windows CE、SmartPhone、WindowsMobile、Symbian、嵌入式Linux全是运行在第二块CPU上的。这些商业操作系统无法和无线通 信协议软件集成到一块CPU上。双CPU的手机功能比较多,但它们一般体积大,耗电多,成本高。现在市场上的大部分手机还是单CPU的。
目前的大部分手机应用,例如Java、BREW、WAP、邮件、摄像头、闪存、MP3、蓝牙,在单CPU方案里都能实现。我认为不管3G、4G如何发展, 小巧、实用、低成本的单CPU方案总会占据较大的市场份额。微软在单CPU方案的手机市场还没有立足之地,又怎么谈的上什么引领方向呢?
本文主要介绍单CPU手机,大多数论述也适用于双CPU方案的通信CPU。
1.3 3G和4G
3G和4G是指第三代、第四代无线通信技术,对手机而言,它们改进的是空中接口的效率,空中接口能以更大的带宽传送数据。通过手机无线上网的速度会更快。这和话音业务、手机应用软件没有直接的联系。
当然,手机的嵌入式数据业务由于更高的带宽,会产生更多的可能性。不过这些可能性的实现还是会受到手机输入慢、显示屏小等条件的制约。
2 手机软件的组成
2.1 概述
手机软件和PC机软件一样从中断向量表开始,因为比较小,看上去更加清晰。中断向量表的第一个跳转指令当然是跳到复位的处理程序,后面是中断处理、错误处 理的跳转指令。一上电,手机就跳转到复位的处理程序,开始检查内存、初始化C运行环境,然后创建第一个任务。这个任务会按顺序创建、启动其它任务。绝大多 数手机程序都是多任务的,但也有一些小灵通的协议栈是单任务的,没有操作系统,它们的主程序轮流调用各个软件模块的处理程序,模拟多任务环境。
手机软件可以粗略地分成启动模块、操作系统、协议栈、数据业务、本地存储、驱动程序、用户界面和其它应用。启动模块前面已经说过了,下面简单介绍其它部分。
2.2 操作系统
操作系统在手机软件只占很小一部分。它的主要功能就是提供多任务调度、通信机制。有的操作系统会提供动态内存分配,定时函数,但这些都不是必须的。例如需要动态内存分配的模块,可以自己管理一个内存池,这样更易于隔离模块和预测内存需求。
大多数手机的操作系统都是一个很小的内核,例如REX、HIOS等。高通REX的源代码连C代码加汇编也不过一千多行,编译后不过是2、3K的代码量。而一般手机软件有几百到上千个源文件、超过一百万行的代码。
2.3 协议栈
协议栈是手机软件最复杂的部分,它的复杂性在于它和基带处理芯片的设计密切相关。只有具备芯片设计能力的企业才可能开发协议栈。协议栈会使用基带处理芯片的所有资源。
2.4 数据业务
数据业务主要有两种:在前一种,手机相当于一个调制解调器,PC机通过手机上网,网络协议全在PC机上,手机提供数据链路。另一种就是嵌入式数据业务,手机内部包含TCP/IP/PPP等协议,有时还要实现HTTP和嵌入式浏览器。
2.5 本地存储
手机都有本地存储功能,存储电话本、短消息、用户设定等。一般手机都有一个基于flash的文件系统。早期的手机存储是基于EEPROM的。
2.6 驱动程序
硬件驱动一般指外设驱动,不过有的外设已经被集成到基带处理芯片中了。驱动程序包括键盘、电源管理模块、LCD、flash、RTC、串口、USB、SIM卡或UIM卡、射频驱动等。
2.7 用户界面
用户界面(UI)又称作人机界面(MMI),它负责和用户的交互,在必要的时候调用其它模块的功能。除了手机的必备功能外,用户界面也可能包含一些相对独立的应用程序,例如日程表、游戏等。
2.8 其它应用
其它应用包括Java虚拟机、WAP浏览器、邮件软件等,是一些比较大,又相对独立的应用模块。
基本上讲完了。大家肯定看得挺没意思吧。这些程序和微软的longhorn、metedata有什么关系呢?手机程序绝大部分是用C语言写的。但对于做应用软件的程序员要求具备面向对象、设计模式的思维能力,然后用C语言实现出来。
高通的BREW就是用C语言硬生生地模仿C++,弄出很多奇怪的宏。一般应用软件的开发不用这么死板,但对各种软件设计方法的了解还是必要的。
3 手机的核心技术
手机的核心技术是芯片和协议栈,两者是密不可分的。芯片设计需要协议栈来验证,协议栈必须充分发挥出芯片的功能。芯片的CPU核、DSP核都可以买到现成的单元,但通信协议部分就需要自己设计了。手机比较难做好的是耗电量、恶劣信号环境的性能等。
4 第三方软件
4.1 原理
“第三方软件”这个词的含义比较宽泛。本文用它来指代不是硬编码在手机里,而是可以通过数据线或网络下载到手机上,可以装载、运行,也可以删除的软件。
前面讲到的软件都是完整程序的各个部分。这些部分会被放到一起编译,产生一个二进制文件,通过JTAG口(升级时可以用串口)下载到手机的flash中。手机一上电,就会从指定地址开始运行。这个地址的内容就是跳转到复位处理程序的跳转指令。哈哈,又讲回头了。
第三方软件是指手机可以通过数据线或者网络下载一些可执行文件到文件系统中。然后有一个装载器可以执行这些文件。这样第三方就可以开发一些应用程序,下载到手机中来扩充手机功能。
这些可执行文件现在主要有两种格式:java程序和BREW程序。java程序需要java虚拟机装载运行。BREW程序是一个很奇怪的东西,它实际就是用与编译手机程序相同的编译器编译出来的目标代码。这些目标代码必须是可以重新定位的,即不能包含全局和静态变量。
装载器将程序将执行权传给给BREW程序,一种听上去更安全的说法是调用BREW程序的入口函数。这个入口函数的位置在文件中是固定的。装载器在调用 BREW程序的入口函数时会传入一个地址。通过这个地址,BREW程序能够顺藤摸瓜,找到系统提供的各种API的地址,它通过这些API访问手机的显示、 通信等功能。
java程序基本上是平台无关的,针对各种平台设计的java虚拟机隔离了平台的大部分特性,除了厂家特意提供的一些OEM功能。BREW程序显然是平台相关,换一个CPU,就不认识原来的目标码了。
4.2 其它
除了java、BREW外,Windows CE、SmartPhone、WindowsMobile、Symbian、嵌入式Linux这些商业操作系统当然可以提供各种创建第三方程序的方法。在 这些环境写程序和在PC平台写程序很相近,基本上体会不到嵌入式编程的特点,只是屏幕小一些,输入麻烦一些。
这些第三方软件不是必需的。手机在3G的市场中只占了一个较小的部分,网络是大头。而第三方软件相对于手机来说,所占的份额就更小了。
《程序员》有一个嵌入式移动开发的专栏,总在讲这些手机第三方软件的开发手机软件只是嵌入式软件的一部分。第三方软件在嵌入式移动开发中又能占到多少比重呢?
5 结束语
需要说明:关于以后的市场究竟以单CPU手机为主,还是以双CPU手机为主的问题,我倾向于单CPU手机,但这只是我个人观点。实际市场会怎么发展,殊难预料。
对于一个芯片两个CPU核的方案,从软件角度看我是很赞成的。将应用软件和协议软件分开,协议软件可以更加稳定,应用软件可以自由发展,使用大量在PC环境已经成熟的技术。

当前手机正在从2G((]SM)2.5G(GPRS)2.75G(EDGE)向3G(WCDMA,CDMA20001XEV—DO,TD-SCDMA)3.5G(HTDPA)过渡。HSDPA为高速下行链路分组接入,是一种3GPP标准,可使WCDMA网络更快、更智能,3.5G用户将从2006年底250万户到2010年2亿户。2007-2008年将推出HSUPA(高速上行链路分组接入),以提高频谱效率和缩短WCDMA上行链路的反应时间。  
    当前全球手机有三大发展方向:  
    高端手机,它以智能手机和3G/3.5G手机为代表,主要功能是通信+多媒体+娱乐。  
    低端手机,它以功能简单,价格低廉为特点,主要功能是通话+收发短信息。  
    适用于某一行业应用的手机,它针对某一行业应用而设计,不仅可大大降低成本,而且可满足用户特殊需求,如GPS(全球定位系统)手机、NFC(近短距无线通信)手机等。
    低成本/超低成本手机单芯片  
    低成本手机是指手机芯片生产成本低于30美元的手机,超低成本手机是指手机芯片生产成本低于20美元的手机,它的对象是亚洲、东欧、拉丁美洲和俄罗斯的新用户。据赛诺公司预测,国内低成本/超低成本手机将占2007年中国手机市场的一半以上。  
    实现低成本/超低成本手机的关键是要完成单芯片解决方案,其焦点是RF收发器能否集成到单芯片上。通常采用二条腿走路方针,先搞双芯片(基带芯片+RF芯片),然后搞单芯片,高通和英飞凌都是如此。所谓单芯片是指数字基带、模拟基带、RF收发器、电源管理、存储及大部份接口功能集成在单一芯片上,RF前端如PA、滤波器、部分电源器件仍在外面。手机单芯片的好处:降低功能、减小分立器件数量、降低物料成本、节约电路板面积、可制造出外形纤巧、成本低廉的手机。目前低成本/超低成本手机以通话+短信息为主,预计2011年前,彩屏、FM收音将成为其基本功能。提供低成本/超低成本手机单芯片的厂商主要有TI、高通、英飞凌,还有飞思卡尔、NXP等。  
    英飞凌于2006年推出E—GOLDVoiceUCLl超低成本手机平台,它是GSM/GPRS基带处理器+RF收发器及电源管理的双芯片方案。2007年又推出E—GOLDVoiceUCL2平台,它是GSM单芯片方案,采用130nm工艺,在单芯片上集成基带处理器、RF收发器、电源管理、SRAM等,芯片尺寸8×8mm,生产成本16美元,2007年4月量产,并被诺基亚手机相中。ULC1和ULC2的比较由表l所示。      
    高通于2006年8月推出CDMA2000手机单芯片QSCll00方案,并向超低成本方向发展。它在单芯片上集成基带调制解调器、RF收发器、电源管理、内存等。  
    TI在巴赛罗那2007年3GSM会上推出超低成本手机第三代GSM解决方案——LoCostoULC单芯片平台,它是已量产的LoCosto系列解决方案的扩展,其特点是大幅度提高语音清晰度与音量、延长电池使用寿命、支持多种高级特性,如增强型彩屏、FM立体声、MP3彩铃、拍照和MP3回放等。它将于2007年上半年提供样片,2008年量产。联想、夏新、波导、TCL、康佳都采用TILoCosto系列解决方案。目前市场上基于TILoCosto单芯片手机转换价格在30美元以下,若语音+黑白屏转换价为20美元以下,若加上彩屏或MP3功能为25美元。所谓转换价格是指运营商付给手机OEM的价格。超低成本手机的运作模式通常由运营商直接向手机OEM定制。TILoCosto单芯片集成ARM7和C54xx系列DSP及丰富外围功能,如支持NAND闪存接口和MicroSD接口等,其出货量已达几百万块,15家手机厂采用TILoCosto单芯片推出30余款超低成本手机。  
    SiliconLab.(已被NXP收购)于2006年9月推出GSM手机单芯片Si4901,它将电源管理,ARM控制器,电池接口,充电电路,数字基带,模拟基带,及RF收发器集成在单芯片上。  
    NXP将于2007年夏天出货GSM/GPRS手机单芯片,2008年推出EDGE/3G手机单芯片。  
    3G/3.5G手机单芯片  
    据2007年2月UMTS论坛透露,2007年初全球WCDMA3G用户突破1亿户大关,CDMA20001XEV-DO用户5000万户,全球使用3G用户超1.5亿户,2007年底各种3G用户超2.75亿户;2010年3G用户8亿户,其中WCDMA占3G用户总数的75%。至2006年9月,全球55个国家或地区已有120家运营商布署HSDPA,其中已有58个HSDPA网络提供商用。  
    日本NTTDocomo、瑞萨、富士通、松下电器、夏普、索爱于2007年2月联合推出下一代基于Symbian操作系统和瑞萨单芯片SH—MobileG2平台,支持HSDPA,2008年3季度推出支持3G(WCDMA/HSDPA)和2G(GSM/GPRS/EDGE)双模通信的手机。  
    高通于2006年11月推出WCDMA/HSDPA手机单芯片方案,QSC6240单芯片支持WCDMA和GSM/GPRS/EDGE,QSC6270单芯片支持WCDMA/HSDPA和GSM/GPRS/EDGE,下行速度3.6Mbps。由于WCDMA手机单芯片集成度较高,预计将在今后6—9月上市,如QSC6270单芯片将在2007年3季度上市。两块单芯片均采用65nm工艺,可节约电路板面积50%,它是全球首批WCDMA/HSDPA手机单芯片方案,在单芯处上集成基带调制解调器、RF收发器,多媒体处理器,电源管理等,芯片封装尺寸12×12mm,300万像素,72和弦铃声。  
    TI于2006年底推出支持EDGE、多媒体功能OMAP-VoX手机单芯片eCosto,首款产品为OMAPl035,它支持300万像素的数码相机,以每秒30帧播放的QVGA屏,10万多边形3D游戏,JAVA硬件加速,并支持多个连接功能,如移动电视,USB2.0、WiFi、AGPS、蓝牙等,eCosto集成ARM9和C55xx系列DSP,采用65nm工艺,2007年提供样片,2008年量产,最新的OMAP3手机平台支持手机实现D1分辨率的H.264视频流,完全具有DVD画质,最终将所有功能集成在单芯片上。  
    未来手机单芯片大战  
    未来手机的最终目标是替代PC,未来手机单芯片大战的主角将是英特尔与TI,博通是主要配角。  
    英特尔是全球半导体市场的“老大”,又是PC处理器的霸主,它对手机市场虎视眈眈,因为目前手机用户数已是PC的2倍,手机发货量更是PC的4倍,这么诱人的市场能不动心吗?表面上2006年初英特尔卖掉手机相关的产品线,这并不意味着英特尔要退出手机市场,相反,退后一步海阔天空。英特尔还计划今后10年的宏伟目标,推出超微薄电脑(uMPC),让UMPC+WiFi/WiMAX来控制未来的手机市场。正在开发UMPC单芯片平台,2007年推出针对UMPC的嵌入式1A处理器芯片组,并将南北桥整合成一个芯片。2008年芯片组与嵌入式处理器集成单芯片方案,即UMPC的主芯片将从目前的三块变成单片,这样UMPC的可取代PMP、PDA和手机。英特尔针对视频市场还推出oLoRivc平台,未来英特尔在PC、新兴视频消费电子、手机上全部采用X86架构。  
    TI不仅已推出低成本/超低成本手机单芯片,2.75G手机单芯片,而且还推出可统领所有视频应用的集成单芯片达芬奇平台,它可用于IP机顶盒、DVR、视频监控,手持PMP等。达芬奇平台希望成为像.PC一样的开放式架构,TI还将推出3G/3.5G手机的单芯片。  
    博通也不放弃未来手机单芯片,提出了超级芯片概念,将宽带无线接入和宽带应用技术都融合在未来手机上,先集成蓝牙,FM收音,然后集成WiFi,最后集成DVB—H、WiMAX。博通至少支持EDGE以上的功能,并将多媒体集成在单芯片上。  
    手机单芯片化是手机发展的必然趋势。2006年低成本/超低成本手机平均售价35~40美元,2007年降至20美元,主要对象是新兴用户。3G手机单芯片主要对象是换机用户,目标价格100美元,前景多么诱人。
发表于 2008-3-12 11:59:36 | 显示全部楼层
不错,比较全面
点评回复

使用道具 举报

发表于 2008-5-24 01:42:38 | 显示全部楼层
谢谢楼主
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-11-21 02:27 , Processed in 0.069141 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表