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方案总会占据较大的市场份额。
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浏览器、邮件软件等,是一些比较大,又相对独立的应用模块。
手机程序绝大部分是用C语言写的。但对于做应用软件的程序员要求具备面向对象、设计模式的思维能力,然后用C语言实现出来。
相关推荐
通过对这些图的分析和设计,开发者可以深入理解手机通信软件的运行机制,优化性能,减少延迟,提高安全性。例如,通过SDL图可以发现并解决可能的死锁、竞态条件等问题,确保通信的可靠性和实时性。 在这个课程中,...
这个过程涵盖了从需求分析到最终产品发布的各个阶段,确保软件在不同设备、操作系统版本和网络环境下都能正常运行。以下是对手机软件测试流程的详细解释: 1. 需求分析:在测试流程开始时,测试团队需要对软件的...
在IT行业中,手机软件测试是确保产品质量的关键环节,特别是对于知名厂商如Nokia而言,其产品的稳定性和用户体验至关重要。本文将深入探讨Nokia手机软件测试的相关知识点,包括测试流程、手机的基本功能、软件和硬件...
总的来说,"手机虚拟环境配置工具.zip"中的内容是安卓开发和调试领域的宝贵资源,涵盖了从应用分析到系统修改的多个层面。通过学习和运用这些工具,开发者可以提升自己的技能,更好地应对各种挑战。
手机软件测试流程是确保移动应用质量的关键步骤,它涵盖了从需求分析到最终产品发布的整个过程。下面将详细解析这一流程。 一、需求分析 在测试流程的起始阶段,测试团队需要深入理解软件的需求和预期功能。这包括...
【JAVA环境下运行的手机缴费系统】是一个专门为课程设计而构建的应用程序,旨在模拟并实现手机充值和缴费功能。这个系统通常包含多个模块,如用户管理、账单处理、支付接口等,以提供全面的手机缴费服务。在JAVA环境...
【智能手机软件架构】 智能手机软件架构的设计与传统的桌面操作系统如Windows平台有着显著的差异。由于手机应用需要在多种操作系统和硬件平台上运行,这增加了其开发的复杂性。为了提高软件的可移植性和适应性,...
在安装和使用前,请确保你的电脑已经安装了相应的防病毒软件,并在安全的环境中运行,以确保软件的合法性及安全性。在恢复数据的过程中,遵循软件的指导步骤,并耐心等待,不要轻易中断进程,以免影响数据的完整恢复...
在IT行业中,手机软件测试是确保应用程序质量的关键环节。它涉及到对手机应用的功能性、性能、安全性、兼容性等多个方面进行全面验证。以下是对"手机软件测试标准及流程"的详细阐述: 1. **测试标准**: - **功能...
手机软件库游戏库系统源码是一款专为手机应用和游戏下载设计的系统,它集成了软件下载、管理以及卡密验证等多种功能。本系统适用于开发者、个人网站所有者或者小型应用商店,提供了一套完整的解决方案,使用户可以...
手机软件反分析是安全研究人员和逆向工程师经常使用的一种技术,它涉及对软件进行反编译和分析,以便理解其运行原理、查找安全漏洞或进行其他相关研究。IDA,即Interactive Disassembler,是一款流行的反汇编工具,...
在安卓手机运行Windows 98和XP的场景中,SDL可能被用来处理图形界面和用户输入,为模拟环境提供必要的硬件抽象层,使得老版本的Windows能在安卓系统上正确显示和交互。 【文件列表解析】 1. **VGABIOS-elpin-2.40**...
在这款软件中,用户输入自己的手机号码,程序会依据预设的规则和算法进行分析,如数字的谐音、数字在易经八卦中的对应、数字在风水学中的意义等,生成一份关于手机号的“吉凶”报告。报告可能包括诸如财运、事业运、...
手机软件测试是保证移动应用质量的关键环节,它涵盖了多种技术和方法,旨在确保应用程序在不同的设备、操作系统版本和网络环境下能够稳定、高效地运行。本文将深入探讨手机软件测试的最佳实践,帮助开发者和测试...
C++作为软件的开发语言,提供了高效、灵活的编程能力,使得这款手机测试软件能够在资源有限的S60手机上稳定运行,同时具备扩展性,以应对各种复杂的网络测试需求。 总的来说,这款手机网络测试软件是移动通信网络...
Java手机软件的真实运行环境是支持J2ME的手机终端。开发过程中通常会先在台式机上模拟运行,确认无误后再部署到实际手机设备上。具体的开发环境配置如下: - **系统环境**:Windows 2000 Server - **平台支持**:...
展讯TD-SCDMA手机软件开发平台,作为一款面向3G手机开发的重要工具,兼容了展讯2G/2.5G系列产品的基本架构,为开发者提供了一个集成化的软件开发环境。此平台不仅涵盖了TD-SCDMA协议栈软件,还包含了GSM/GPRS协议栈...
智能手机软件在现代生活中扮演着重要角色,而" Cab转换绿色"这一主题似乎涉及到智能手机应用的安装包处理。在Windows Mobile和一些旧版Windows Phone系统中, CAB( Cabinet)文件是常用的软件分发格式,它包含了...