基于MTK平台移动终端应用层软件的设计与实现.docx
《基于MTK平台移动终端应用层软件的设计与实现.docx》由会员分享,可在线阅读,更多相关《基于MTK平台移动终端应用层软件的设计与实现.docx(89页珍藏版)》请在冰豆网上搜索。
基于MTK平台移动终端应用层软件的设计与实现
基于MTK平台移动终端应用层软件的设计与实现
摘要
目前,手机已成为最广范围内使用的便携式电话终端。
很多国家也成功地将本土品牌手机推向了国际市场。
在手机的研发过程中,人机交互接口(MMI)给进行移动通信的人与手机提供了交往的界面,它的设计优劣直接影响了手机销售市场的占有率,本文对人机界面的设计与实现进行了研究和探讨。
本文首先介绍了手机发展现状和课题选题由来,阐明了课题的现实意义和主要任务。
基于手机结构和嵌入式操作系统介绍了本项目的软件开发平台——MTK平台,并详细分析了该平台MMI层软件结构。
其中以手机应用层开发中的典型模块——通讯录应用为例,先进行了系统需求分析和方案设计。
然后具体实现了模块的各功能与所有界面,并完成了应用间交互的相关功能,后期根据编写的测试用例进行了黑盒测试。
最终,样机通过了软、硬件测试,验证了其设计的正确性和可行性,并成功投入市场。
关键字:
手机人机交互接口(MMI)MTK黑盒测试
第一章绪论
1.1手机发展现状
1.1.1移动通信的发展
从1876年贝尔发明电话以来,经历了长达一个多世纪的发展,电话通讯服务已走进了千家万户,成为国家经济建设、社会生活和人们交流信息所不可缺少的重要工具。
在最近二十年中,通讯技术和业务发生了巨大变化,通信的地点也由固定方式转向移动方式。
随着现代生活节奏越来越快,移动通讯发展迅猛,其通讯工具手机的更新换代和市场争夺战也愈演愈烈。
国外手机生产企业认为质量和信誉是品牌的保证。
同时,他们针对手机这种特殊商品的特点,即科技产品和时尚产品二位一体,致力于研究创新,从外型、功能、质量等方面不断改善力求做到尽善尽美。
手机不再只是用来通话的,它已经成为一个集照相机、游戏机、音乐播放器、电影院……等强大功能为一身的电子消费品。
例如,诺基亚的主要目标消费群是中高收入的白领阶层,摩托罗拉则是以追求潮流与时尚的年轻族为目标。
同时,他们很重视促销、售后服务等一系列提高品牌价值和产品附加值的营销环节。
国内在营销机理及营销管理的研究上,无论从框架体系,还是方法手段乃至观念都难于超越国外模式,基本上处于追赶型研究状态,但我国与国外研究的差距显然在以递增的速度缩小。
目前,我国手机市场有30多个品牌,生产厂商40多家。
整个手机市场保持着“寡头”格局,诺基亚、摩托罗拉、三星、索爱、飞利浦、NEC等著名外资品牌市场份额在四分之三。
其余被以联想、波导、夏新、TCL为龙头的国产手机瓜分,他们在国家政策的扶持下,守护着国产品牌的尊严。
我国部分的手机生产商已基本掌握了协议栈软件、应用软件的开发,以及整机电路、模具、造型的自主设计、大生产技术与产业化,个别企业还掌握了基带、射频等核心芯片设计、物理层软件开发技术,并拥有整机设计能力,我国手机及多媒体信息终端产品的研发技术水平得到显著提高。
手机所需的大部分元器件都可以在国内生产,移动通信产业链已基本形成[1]。
1.1.2手机软件开发平台
手机开发分为硬件、软件开发。
硬件就是指外观设备、芯片等,而软件分为底层软件、应用软件。
其中芯片设计是相对技术含量高的环节,其市场长期为国外厂商所垄断。
国内厂商在04-05年间起步发展,新进厂商采用降低芯片成本、芯片附赠软件平台的模式,逐渐占据国内手机市场。
手机芯片包含基带处理器、射频芯片、应用处理器等,可为音频、视频等多媒体配备相应自己的芯片[2]。
国外厂商有Ti、FreeScale、ARM、Intel、ADI、高通等,国内厂商有MTK、展讯、大唐移动、凯明、鼎新等。
据iSuppli公司数据显示,2006年MTK基带市场份额为44%。
国内手机采用MTK芯片的品牌有:
联想、天阔、普天、三新、三盟、宇宙、南方高科、诺科、康佳、科健、采星、迷你、波导、CECT、TCL、奥克斯、东信、长虹、托普、吉事达等。
MTK是联发科技股份有限公司的英文简称,它作为全球IC设计领导厂商,专注于无线通讯及数位媒体等技术领域。
公司提供的晶片整合系统解决方案,包含无线通讯等在市场上居领导地位。
在MTK的手机解决方案中,将手机芯片和手机软件平台预先整合到一起。
这种方案可以使终端厂商节约成本,加速产品上市周期。
MTK公司的产品因为集成较多的多媒体功能和较低的价格在大陆手机公司和手机设计公司得到广泛的应用。
MTK的Turn-key方案(将芯片与手机开发所需的软件平台乃至第三方软件捆绑销售)的巨大成功则证明了在这一领域平台技术不再是TI、英飞凌这些巨头的专属。
这一策略使得MTK在手机市场取得了骄人的业绩[3]。
但是并不是所有的国产手机都简单的运用MTK最被人称颂的totalsolution,而是“取其精华”,利用自己对市场的理解生产出具有自身特色的MTK手机。
例如成功坐上了国产手机的第一把交椅的天语手机。
1.1.3手机软件分类
按照软件安装的方式来分类,可以将手机软件分为前装软件和后装软件。
前装软件是指在手机用户购买手机的时候,已经预先安装在系统内的软件。
如通讯录、短信息等是设计厂商捆绑在操作系统的前装软件;后装软件是指在用户购买手机之后,通过下载或者与电脑连接等方式获取并安装的软件。
按照应用类型分类,可以分为基本功能类(如通讯录、短消息)、信息资讯类(如腾讯QQ),工具类(如地图),娱乐类(如影院),游戏类等。
1.2课题的现实意义
本课题来源于本人在实习公司参与的手机研发项目A302,以其中的通讯录模块为例,详细阐述了GSM网络中MTK平台应用层软件的设计与实现。
本项目的客户要求是希望从界面外观、功能操作等各方面,在MTK平台上达到与某款手机高仿的效果。
因此本课题的实践背景是基于MTK的totalsolution方案,按照用户需求并结合手机应用软件开发平台中的应用层概念,在应用层基础版本上进行基本功能类、前装软件的MMI二次开发。
移动终端的应用层软件需要嵌入式实时操作系统的支持,基于一定的嵌入式操作系统提供操作系统抽象层,便于上层应用软件的开发和移植。
应用层软件即人机交互接口(MMI)所反映出来的界面,其操作之简易性对于移动终端产品的优劣也具有举足轻重的作用。
它是相对独立于通信设备标准的,有利于二次开发和项目移植,对于嵌入式移动终端应用软件的研究具有长远的现实意义。
另外,从市场效益的角度来说,不仅给公司带来了可观的经济价值,同时又为消费者购买移动终端产品提供了一个更有竞争力的选择。
1.3论文的工作和结构
在研发手机项目中,对通讯录模块研究与开发的工作经历了四个主要阶段:
第一阶段:
学习阶段。
在原有移动通信的理论基础上,进一步对移动通信系统进行深入学习,阅读大量数字移动通信系统的书籍,着重于对移动终端所涉及到的理论进行有针对性的学习,为后续的工作奠定了良好的专业理论基础。
同时,为了更好的进行软件设计,阅读了MTK平台软件设计的相关文章和文档,并参阅软件工程的书籍,学习必要的软件设计知识。
对整个手机系统软件的架构进行把握。
第二阶段:
设计阶段。
在了解了移动通信终端协议体系和整个手机架构的前提下,对通讯录模块进行了总体设计。
第三阶段:
应用阶段。
理论结合实践在手机软件平台上设计实现了通讯录模块的基本操作(如电话条目存储、删除、复制等)、来电免打扰、快速拨号等全部功能和界面。
第四阶段:
测试阶段。
通过严格测试,并在程序结构上进行优化。
根据实习期间所完成工作,将论文结构安排如下:
第一章绪论
本章通过对比国内外手机发展先介绍了移动通讯的发展情况,然后分析了手机市场最大竞争力——软件开发平台,由此简单介绍了项目应用平台MTK。
最后阐明了本课题的实践背景、现实意义和论文各章节安排。
第二章手机系统结构
本章分析了手机平台的硬、软件结构。
在软件结构中重点介绍了移动通信体系结构,用举例对比的形式介绍了几种常见的手机操作系统。
最后着重阐述了手机嵌入式实时操作系统中的核心概念。
第三章MMI的研究与分析
本章首先分析了MTK平台的总体结构。
由于项目针对的是MMI层软件开发,开始重点分析MMI的软件结构。
其中主要介绍了MMITask运行机制、重要接口,以及MMI的各个模块。
第四章通讯录应用的设计与实现
本章以通讯录模块为例,详细阐述了如何对该模块进行需求分析和设计,并在MMI层实现了通讯录各功能及相应界面。
第五章手机应用层的软件测试
本章首先列举了手机应用层软件测试方法,然后介绍了一个重要的调试工具——MTK平台提供的软件仿真工具MoDIS。
通过编写的通讯录应用的黑盒测试用例完成测试,最终给出测试结果。
第六章总结与展望
本章总结课题结果、不足之处以及展望。
第二章手机系统结构
2.1手机硬件结构
手机电路由无线收发信机、基带信号处理电路、基带控制电路、存储电路、键盘、显示器、外部接口等部分组成[4]其硬件结构,如图2.1所示。
图2.1手机硬件结构
1.射频单元
射频单元的发信通路将基带单元产生的270.833Kbit/s的TDMA帧数据流信号按GMSK调制方法形成I、Q信号,再调制到900MHz或1800MHz射频信号,经射频开关由天线发射出去,收信通路将天线接收的信号经低噪声放大、解调产生基带I、Q信号,通过解调和均衡将模拟的I、Q信号进行数字化,恢复出数字基带信号,送基带电路处理。
射频单元的本振信号通常从时基电路获得基准频率,然后采用锁相环技术实现频率合成。
2.基带芯片与基带信号处理电路
基带芯片是通信终端产品的关键部件,现在流行的一般有单IC和双IC封装两种形式。
多家公司可以大量供应成套的芯片组。
基带信号处理电路包括信道编/译码、加密解密、TDMA帧形成/信道分离及基准时钟电路、话音编/译码、码速适配器等。
送话器的话音信号经过8kHz抽样及A/D变换,成为均匀量化的数据流,经话音编码、信道编码、交织、加密等处理,形成270.833Kbit/s的TDMA帧数据流,送调制器发送。
在接收通道执行与发信通道相反的过程。
帧及信令控制以时钟基准部分提供统一帧号、时隙号、1/8bits时钟等基础,实现同步。
3.控制器
控制器实现对手机系统的控制,包括协议处理、射频电路控制、基带电路控制、键盘输入、显示器输出、SIM卡接口及数据接口等功能。
2.2手机软件结构
手机系统软件主要由:
移动通信协议栈、设备驱动、操作系统、MMI和WAP组成。
2.2.1移动通信协议体系结构
GSM协议的分层原理来自于开放式系统互连(OSI)参考模型[5-7]。
根据协议分层的概念,通信处理过程可以看作由最低层到最高层的若干有序的逻辑层次构成,每层都存在实体单元。
最低层是信息在两个远距离实体之间的物理传输,要依赖物理介质,而最高层代表外部用户的观点。
每一层向它的上层提供服务,这些服务是对下一层提供服务的扩充。
GSM协议栈分为三层:
物理层、链路层、网络层,如图2.2中的L1、L2、L3。
图2.2GSM协议结构分层模型
第一层:
物理层。
物理层是协议体系中的最低层,它包括各类信道,为高层信息的传输提供基本的逻辑信道;每个逻辑信道都有自己的服务接入点(SAP),移动台的接入方式采用多址接入方式,可以在空闲时间检测周围的无线电环境,把检测结果定时的传给基站,确定是否进行小区切换。
第二层:
链路层。
链路层属于中间层[8-10](LAPDm:
LinkAccessProtocolforDmChannelDm信道链路连接协议)。
它包括各种数据传输结构,对数据传输进行控制。
LAPDm的基本功能是把单个的bit构成一个集合,以便在移动台和基站之间提供可靠的无线数据链路,所有的链路功能都是建立在这个基本结构单元上,这个单元称为帧,帧的结构采用HDLC(高层数据链路控制)的定义方式。
链路层协议主要由GSM04.05、04.06系列标准来描述[11]。
第三层:
网络层。
第三层实体提供在一个蜂窝移动网和其相连接的其他公众移动网中建立、维护和终止电路交换连接的功能。
还要提供必要的补充业务和短消息业务的控制功能。
按照第三层实体所要完成的功能可以分成无线资源管理(RR)、移动管理(MM)和连接管理(CM)三个子层(CC、SMS、SS)。
无线资源管理子层(RR):
提供的功能是完成与物理传输资源有关的管理。
提供的服务包括:
专用物理信道的建立与维持、应网络请求而进行的越区切换、信道传输模式的改变和质量测量等。
移动管理子层(MM):
具有支持移动用户的移动特性所必须的功能。
提供的服务包括:
当移动台激活与去激活时,或者用户所处定位区改变时,MM实体负责通知网络;MM实体不需要完成用户身份鉴别和注册的工作。
连接管理子层(CM):
包括呼叫控制(CC)、短消息业务(SMS)和附加业务(SS)实体。
呼叫控制具有为建立与拆除MS端主叫和被叫时的电路交换连接所必须的功能,提供的服务包括:
发起呼叫、连接呼叫和释放呼叫等[12];短消息业务支持完成各种补充业务,如:
呼叫转移、来电号码显示等;附加业务实体则支持完成点到点或广播短消息内容的接收与发送。
我们现将协议体系进行必要的转化,提出协议栈的概念,并按协议规范对协议栈的功能确定如下。
所提到的协议栈是对应与GSM标准[13-15]的L2和L3层,同时此协议栈还实现L3层之上的短消息的第四层和第五层结构,分别为中继层(SM-RL)和传输层(SM-TL)。
此外,此协议栈还需要支持SIM卡单元和小区广播的功能模块。
由协议栈总体结构的描述可知,L3层是整个协议栈的核心,它包括了大部分的手机功能实现。
它提供一个蜂窝移动网和与其相连接的其它公共移动网之间的建立、维护和释放电路交换的功能;提供必要的支持补充业务、短消息业务和呼叫控制的功能;L3还包括移动管理和无线资源管理的功能。
此外,最新开发的L3层应当能支持GPRS业务,并提供相应复杂的控制功能。
在软件设计过程中,L3层主要由大量的程序模块构成,这些程序块在第三层各主体之间、第三层与相邻层以及相关层之间传递携带各种信息的消息单元。
因此可以说,解决了L3层协议的设计也就基本上解决了整个协议栈软件的设计工作。
2.2.2软件设备驱动[16]
设备驱动主要用来解释来自MCU的命令,实现对外设的控制。
这个模块处理许多用户可见的手机行为,例如键盘处理、LCD显示。
该模块通过函数调用或与L4实体进行消息交互的方式被引用,通过访问设备寄存器来提供必要的控制功能。
手机系统中的软件设备驱动如图2.3所示:
图2.3软件设备驱动
外设的功能解释如下:
SIM:
用户识别模块,写入用户信息
UART:
通用异步收发设备
SPI:
串口界面
LCD:
液晶显示器
GPIO:
通用输入输出
RTC:
实时时钟。
当要求在某个时间闹铃,或者在某个时间段给MMI发送消息提示(以1秒为基准),这就由软件clock模块读写RTC。
WDT:
看门狗计时器
GPT:
一般设定的时钟
PWM:
脉冲宽度调制
Alerter:
报警设备
KeyPad:
键盘,该模块处理所有从键盘发送来的信息,处理后并把按键信息发给上层。
PMIC:
电源管理芯片
BMT:
电池充/放电管理
AUXtask:
耳机task
USBtask:
USBI.1协议和驱动
IrDAtask:
IrDA和驱动
MSDC:
内存卡驱动,支持SD、MMC卡和内存片
Camera:
照相机
JPEGDecoder:
控制硬件JPEG解码器的软件
2.2.3手机操作系统
现在市场上流行三类手机嵌入式操作系统[17]:
第一类是“实时操作系统(RTOS)”。
其目的主要是驱动硬件,任务调度。
这类操作系统一般是封闭系统,也就是一旦手机出厂,这类手机不能直接动态加载新的软件应用。
RTOS手机使用相对简单,经济实惠。
对多数只把手机当做通讯工具的人来说,事先预装浏览器、彩信、三到五款游戏也就足够了。
这类手机操作系统的主要代表为Nucleus、ThreadX、uC/OS、RT-Linux等。
对于智能手机来说,RTOS需要借助JAVA中间件等来扩展业务,运行效率问题比较突出。
第二类是“智能手机操作系统”。
在完成第一类手机操作系统任务的基础上,这类系统进一步加强人机交互的一致性体验,强调多任务之间的协同操作,规范程序间通讯和编程模型。
这类系统也被称为开放式操作系统,即手机出厂后,消费者可以借助于个人计算机,手工从因特网上下载新软件、游戏等。
智能手机操作系统的主要代表为Symbian、WinCE、PalmOS、Linux等。
它们的软件体系架构沿用PC模式,即软件要事先安装到本地永久存储器之后才能使用。
第三类是“网络软件运行平台”。
其目的是在第二类手机操作系统之上,构建一个所谓“中间件”平台。
消费者可以很容易地、动态地、透明地下载移动电讯网上的一些新兴增值业务、游戏等,无需个人计算机作为扩展手机业务的中介。
这类手机操作系统有JAVA、BREW、WIPI(韩国标准)等。
由于GPRS带宽和流量费的限制,这类手机操作系统现在还不是主流。
在网络软件运行平台上,消费者无需事先安装软件,软件可以直接下载到内存里运行。
这类软件的使用和维护也比PC模式简单很多。
下面介绍市场上主流的手机操作系统[18]:
1.Symbian系统
Symbian是一个实时性、多任务的纯32位操作系统,具有功耗低、内存占用少等特点,非常适合手机等移动设备使用,经过不断完善,可以支持GPRS、蓝牙、SyncML,以及3G技术。
最重要的是它是一个标准化的开放式平台,任何人都可以为支持Symbian的设备开发软件。
与微软产品不同的是,Symbian将移动设备的通用技术,也就是操作系统的内核,与图形用户界面技术分开,能很好的适应不同方式输入的平台,也可以使厂商可以为自己的产品制作更加友好的操作界面,符合个性化的潮流,这也是用户能见到不同样子的Symbian系统的主要原因。
现在为这个平台开发的java程序已经开始在互联网上盛行。
用户可以通过安装这些软件,扩展手机功能。
2.WindowsCE系统
WindowsCE系统包括PocketPC和Smartphone,前者针对无线PDA,后者专为手机,已有多个来自IT业的新手机厂商使用,增长率较快。
PocketPC2002推出了应用在手机上的PhoneEdition(电话版本),国内贴牌机多普达686就使用了这个系统。
不过它在移动通讯方面的功能并不是很全面。
针对这种情况,微软于2002年底发布了专门为手机开发的操作系统SmartPhone2002,像SymbianPearl一样,是专为移动通讯设备开发的系统。
虽然从众多手机厂商的反应来看,全球手机五大厂商中只有三星购买了微软的软件许可,故其在手机市场上占有率不高。
3.Linux系统
Linux系统件是一个源代码开放的操作系统,目前已经有很多版本流行。
但尚未得到较广泛的支持,其发展的最大阻力在于它对硬件要求比较高,而且没有一个强有力的推广方。
这样就导致Linux手机的成本比较高,而且版本混乱。
但Linux的优势也相当明显,首先它是免费的,其次它是开源的,每一家愿意的厂商都能够加入到Linux操作系统的底层开发中。
4.Palm系统
PalmOS是Palm公司的是一种32位的嵌入式操作系统,它的操作界面采用触控式,差不多所有的控制选项都排列在屏幕上,使用触控笔便可进行所有操作。
作为一套极具开放性的系统,开发商向用户免费提供Palm操作系统的开发工具,允许用户利用该工具在Palm操作系统的基础上编写、修改相关软件,使支持Palm的应用程序丰富多彩、应有尽有。
5.非智能手机操作系统
低端手机也有操作系统,但功能非常简单,主要支持通讯录调用等。
对于非智能手机设计生产商来说,不追求系统的强扩展性和第三方软件的添加,一般手机操作系统只需提供核心功能,如多任务调度、中断、通信机制等,便于上层应用软件的开发和移植即可。
例如:
MTK平台使用NucleusPlus操作系统,Brew平台使用的是rex(Real-timeExecutivesystem)操作系统,展讯平台操作系统抽象层支持的是Threadx操作系统。
NucleusPlus是美国源代码操作系统商ATI公司推出的新一代嵌入式操作系统,属于抢先式实时多任务操作系统内核,95%的代码使用ANSIC编写,非常便于移植于各种处理器家族。
从实现的角度讲,不同于传统嵌入式开发,NucleusPlus是以函数库的形式链接到目标应用程序中,形成可执行目标代码,下载到目标板上或烧到ROM/FLASHROM中去执行。
NucleusPlus内核在典型的CISC体系结构上占据大约20k空间,而在典型的RISC体系结构上占据空间为40k左右,其内核数据结构占据1.5k字节的空间。
2.2.4人机交互接口MMI
随着社会的发展,人们对手机的要求越来越高,良好的通话质量,美观的外形,友好的人机界面,已成为人们追求的目标。
因此,手机人机界面的设计和开发无论对用户还是对公司,都日益重要。
其主要提供移动台(手机)的全面控制和手机与用户之间的接口,功能包括:
用户键盘输入、手机状态和呼叫处理过程显示、SIM卡和通讯录的管理、PIN码的控制、缩位拨号等。
2.3手机嵌入式系统
实时操作系统(RealTimeOperatingSystem)是根据操作系统的工作特性而言的。
实时是指物理进程的真实时间。
实时操作系统是指具有实时性,能支持实时控制系统工作的操作系统。
首要任务是调度一切可利用的资源完成实时控制任务,其次才着眼于提高系统的使用效率,重要特点是要满足对时间的限制和要求。
2.3.1多任务处理机制
在嵌入式实时系统中,进程(或任务)是操作系统的核心,操作系统的存在归根结底就是为了提供一个运行程序的空间。
多任务系统的执行过程实际上就是一系列任务在三种状态中循环流动、轮流被内核调度的过程。
每个任务都是一个无限的循环,而且在同一时刻可运行的任务只能处于运行态、就绪态或阻塞态三种基本状态之一[19]。
如图2.4所示:
图2.4任务状态及转化
在市场推动下,手机功能在不断发展。
摄像头、MP3、蓝牙这些功能可以依靠硬件,对CPU的压力还不是很大。
但java虚拟机、嵌入式浏览器等应用软件就会对CPU资源有较高的要求。
不管是单CPU还是双CPU,多任务机制在手机中就显得非常重要。
在同一时间我们会有许多的事情要去做,比如进行电源管理,协处理器管理,文件系统管理,串口管理,显示管理,SIM卡管理,LCD显示管理,用户输入管理等等。
如果是单任务串行机制,那么操作系统的实时性就无法保证了。
2.3.2基于优先数的任务调度
每个进程都有一个优先数,数值大的表示优先级高,系统在调度时总选择优先数大的占用CPU。
优先数的确定有两种:
静态优先数法:
进程创建时就规定好它的优先数,这个数值在进程运行时不变。
确定数值时可以考虑采让外设进程或终端用户进程优先。
动态优先数法:
进程的优先数在执行过程中可以根据情况而改变。
大多数的嵌入式实时操作系统使用的是基于优先级的可抢占式调度策略,应当采用优先级继承和优先级天花板策略来解决和避免优先级反转问题。
手机嵌入式系统中,任务优先级的概念体现在窗口管理机制上。
设置窗口优先级的目的是为了保护那些重要的窗口不被打断。
例如,当手机在呼叫状态时是处于Call窗口的,在Call的过程中不能够出现被SMS或者Alarm窗口打断的情况,否则会影响正常的Call过程。
2.3.3任务间的通信
在一个实时系统中,可能有许多任务作为一个应用的一部分执行。
系统必须提供这些任务间的快速且功能强大的通信机制。
两个并行进程可以通过互相发送消息进行合作,消息是通过消息缓冲而在进程之间相互传递的。
任务之间的通信有三种方式:
信箱、队列FIFO和管道PIPE。
1.信箱
信箱是任务间发送消息的接口,也是OS提供的一种机制。
每个任务可以定义一个信箱,其他任务可以给它发送消息。
每个消息的结构中有个是信号