




已阅读5页,还剩75页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于MTK平台移动终端毕业论文目 录第一章 绪 论11.1 手机发展现状11.1.1 移动通信的发展11.1.2 手机软件开发平台11.1.3 手机软件分类21.2 课题的现实意义21.3 论文的工作和结构3第二章 手机系统结构52.1 手机硬件结构52.2 手机软件结构62.2.1 移动通信协议体系结构62.2.2 软件设备驱动1682.2.3 手机操作系统92.2.4 人机交互接口MMI112.3 手机嵌入式系统112.3.1 多任务处理机制112.3.2 基于优先数的任务调度122.3.3 任务间的通信122.3.4 任务间的同步132.4 小结13第三章 MMI的研究与分析153.1 MTK平台总体设计153.1.1 适配层KAL153.1.2 适配层L422163.1.3 task间的通信机制23173.2 MMI层软件结构24183.2.1 MMI接口介绍193.2.2 MMI与L4之间的通信193.3 Framework层25223.3.1 事件处理器223.3.2 历史管理243.3.3 OSL层243.3.4 NVRAM253.3.5 文件系统263.4 UI层273.5 Application层273.6 小结29第四章 通讯录应用的设计与实现314.1 初步设计与分析314.1.1 系统需求分析314.1.2 模块设计思路334.2 初始化详细流程设计364.3 界面显示的设计与实现404.3.1 一、二级菜单设计404.3.2 编辑框的设计414.3.3 弹出窗口的设计424.3.4 窗口绘制与History管理设计444.4 核心功能的设计与实现464.4.1 显示电话号码列表464.4.2 添加新条目484.4.3 删除已有条目494.4.4 姓名查找514.4.5 复制或转存524.4.6 相关设置功能524.5 应用间的交互534.6 高级功能快速查找544.7 小结55第五章 手机应用层的软件测试575.1 手机应用层软件测试方法35575.2 MTK平台软件仿真工具36595.3 通讯录应用的测试用例625.3.1 基本功能测试635.3.2 批量测试645.3.3 失败测试655.3.4 集成测试675.4 通讯录应用的测试结果67第六章 总结与展望71致谢73参考文献75第一章 绪论3第一章 绪 论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最被人称颂的total solution,而是“取其精华”,利用自己对市场的理解生产出具有自身特色的MTK手机。例如成功坐上了国产手机的第一把交椅的天语手机。1.1.3 手机软件分类按照软件安装的方式来分类,可以将手机软件分为前装软件和后装软件。前装软件是指在手机用户购买手机的时候,已经预先安装在系统内的软件。如通讯录、短信息等是设计厂商捆绑在操作系统的前装软件;后装软件是指在用户购买手机之后,通过下载或者与电脑连接等方式获取并安装的软件。按照应用类型分类,可以分为基本功能类(如通讯录、短消息)、信息资讯类(如腾讯QQ),工具类(如地图),娱乐类(如影院),游戏类等。1.2 课题的现实意义本课题来源于本人在实习公司参与的手机研发项目A302,以其中的通讯录模块为例,详细阐述了GSM网络中MTK平台应用层软件的设计与实现。本项目的客户要求是希望从界面外观、功能操作等各方面,在MTK平台上达到与某款手机高仿的效果。因此本课题的实践背景是基于MTK的total solution方案,按照用户需求并结合手机应用软件开发平台中的应用层概念,在应用层基础版本上进行基本功能类、前装软件的MMI二次开发。移动终端的应用层软件需要嵌入式实时操作系统的支持,基于一定的嵌入式操作系统提供操作系统抽象层,便于上层应用软件的开发和移植。应用层软件即人机交互接口(MMI)所反映出来的界面,其操作之简易性对于移动终端产品的优劣也具有举足轻重的作用。它是相对独立于通信设备标准的,有利于二次开发和项目移植,对于嵌入式移动终端应用软件的研究具有长远的现实意义。另外,从市场效益的角度来说,不仅给公司带来了可观的经济价值,同时又为消费者购买移动终端产品提供了一个更有竞争力的选择。1.3 论文的工作和结构在研发手机项目中,对通讯录模块研究与开发的工作经历了四个主要阶段:第一阶段:学习阶段。在原有移动通信的理论基础上,进一步对移动通信系统进行深入学习,阅读大量数字移动通信系统的书籍,着重于对移动终端所涉及到的理论进行有针对性的学习,为后续的工作奠定了良好的专业理论基础。同时,为了更好的进行软件设计,阅读了MTK平台软件设计的相关文章和文档,并参阅软件工程的书籍,学习必要的软件设计知识。对整个手机系统软件的架构进行把握。第二阶段:设计阶段。在了解了移动通信终端协议体系和整个手机架构的前提下,对通讯录模块进行了总体设计。第三阶段:应用阶段。理论结合实践在手机软件平台上设计实现了通讯录模块的基本操作(如电话条目存储、删除、复制等)、来电免打扰、快速拨号等全部功能和界面。第四阶段:测试阶段。通过严格测试,并在程序结构上进行优化。根据实习期间所完成工作,将论文结构安排如下:第一章 绪论本章通过对比国内外手机发展先介绍了移动通讯的发展情况,然后分析了手机市场最大竞争力软件开发平台,由此简单介绍了项目应用平台MTK。最后阐明了本课题的实践背景、现实意义和论文各章节安排。第二章 手机系统结构本章分析了手机平台的硬、软件结构。在软件结构中重点介绍了移动通信体系结构,用举例对比的形式介绍了几种常见的手机操作系统。最后着重阐述了手机嵌入式实时操作系统中的核心概念。第三章 MMI的研究与分析本章首先分析了MTK平台的总体结构。由于项目针对的是MMI层软件开发,开始重点分析MMI的软件结构。其中主要介绍了MMI Task运行机制、重要接口,以及MMI的各个模块。第四章 通讯录应用的设计与实现本章以通讯录模块为例,详细阐述了如何对该模块进行需求分析和设计,并在MMI层实现了通讯录各功能及相应界面。第五章 手机应用层的软件测试 本章首先列举了手机应用层软件测试方法,然后介绍了一个重要的调试工具MTK平台提供的软件仿真工具MoDIS。通过编写的通讯录应用的黑盒测试用例完成测试,最终给出测试结果。第六章 总结与展望本章总结课题结果、不足之处以及展望。13第二章 手机系统结构第二章 手机系统结构2.1 手机硬件结构手机电路由无线收发信机、基带信号处理电路、基带控制电路、存储电路、键盘、显示器、外部接口等部分组成4其硬件结构,如图2.1所示。MT6205 GSM BasebandMT6119RF TransceiverMBuzzerBatteryFET+0.2DC inT/RSwitchPATXVCOVCOPLL26MHzVCTCXOI/QControlDSP52MHzDSPCoprocessorsMCU/DSPInterfaceRAMROMJTAGDebug256KbRAMARM7TDMI26MHzROMTDMATimerPLLRTCPWMLCDGPTSIMEMIWTDInterruptsDMAsSystem BusGPIOFlashUARTKPSubLCDSRAMMainLCDADCDACADCDACPowerSuppliesSIMCard1 2 34 5 67 8 9* 0 #MT6305PMIC图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。第三层 L3第二层 L2第一层 L1第三层 L3第二层 L2第一层 L1中间层数据链路层 物理 连接MS侧网络侧SMSCCSSMMRMLAPDm物理层模块管理子层第三层第二层物理层MS的Um接口信令软件总体框图图2.2 GSM协议结构分层模型第一层:物理层。物理层是协议体系中的最低层,它包括各类信道,为高层信息的传输提供基本的逻辑信道;每个逻辑信道都有自己的服务接入点(SAP),移动台的接入方式采用多址接入方式,可以在空闲时间检测周围的无线电环境,把检测结果定时的传给基站,确定是否进行小区切换。第二层:链路层。链路层属于中间层8-10(LAPDm:Link Access Protocol for Dm Channel Dm信道链路连接协议)。它包括各种数据传输结构,对数据传输进行控制。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 层之上的短消息的第四层和第五层结构,分别为中继层(SMRL)和传输层(SMTL)。此外,此协议栈还需要支持SIM卡单元和小区广播的功能模块。由协议栈总体结构的描述可知,L3层是整个协议栈的核心,它包括了大部分的手机功能实现。它提供一个蜂窝移动网和与其相连接的其它公共移动网之间的建立、维护和释放电路交换的功能;提供必要的支持补充业务、短消息业务和呼叫控制的功能;L3还包括移动管理和无线资源管理的功能。此外,最新开发的L3层应当能支持GPRS业务,并提供相应复杂的控制功能。在软件设计过程中,L3层主要由大量的程序模块构成,这些程序块在第三层各主体之间、第三层与相邻层以及相关层之间传递携带各种信息的消息单元。因此可以说,解决了L3层协议的设计也就基本上解决了整个协议栈软件的设计工作。2.2.2 软件设备驱动16设备驱动主要用来解释来自MCU的命令,实现对外设的控制。这个模块处理许多用户可见的手机行为,例如键盘处理、LCD显示。该模块通过函数调用或与L4实体进行消息交互的方式被引用,通过访问设备寄存器来提供必要的控制功能。手机系统中的软件设备驱动如图2.3所示:UARTSPIAUX taskBMTPMICCameraUSB taskMSDCGPT,RTC,WDTPWM, AlerterJPEG DecoderADC SchedGPIOKeyPadLCDIrDA taskSIM图2.3 软件设备驱动外设的功能解释如下:SIM:用户识别模块,写入用户信息UART:通用异步收发设备SPI:串口界面LCD:液晶显示器GPIO:通用输入输出RTC:实时时钟。当要求在某个时间闹铃,或者在某个时间段给MMI发送消息提示(以1秒为基准),这就由软件clock模块读写RTC。WDT:看门狗计时器GPT:一般设定的时钟PWM:脉冲宽度调制Alerter:报警设备KeyPad:键盘,该模块处理所有从键盘发送来的信息,处理后并把按键信息发给上层。PMIC:电源管理芯片BMT:电池充/放电管理AUX task:耳机taskUSB task:USBI.1协议和驱动IrDA task:IrDA和驱动MSDC:内存卡驱动,支持SD、MMC卡和内存片Camera:照相机JPEG Decoder:控制硬件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.Windows CE系统Windows CE系统包括 Pocket PC和Smartphone,前者针对无线PDA,后者专为手机,已有多个来自IT业的新手机厂商使用,增长率较快。Pocket PC 2002 推出了应用在手机上的Phone Edition(电话版本),国内贴牌机多普达686就使用了这个系统。不过它在移动通讯方面的功能并不是很全面。针对这种情况,微软于2002年底发布了专门为手机开发的操作系统SmartPhone2002,像Symbian Pearl一样,是专为移动通讯设备开发的系统。虽然从众多手机厂商的反应来看,全球手机五大厂商中只有三星购买了微软的软件许可,故其在手机市场上占有率不高。3.Linux系统Linux系统件是一个源代码开放的操作系统,目前已经有很多版本流行。但尚未得到较广泛的支持,其发展的最大阻力在于它对硬件要求比较高,而且没有一个强有力的推广方。这样就导致Linux手机的成本比较高,而且版本混乱。但Linux的优势也相当明显,首先它是免费的,其次它是开源的,每一家愿意的厂商都能够加入到Linux操作系统的底层开发中。4.Palm系统Palm OS是Palm公司的是一种32位的嵌入式操作系统,它的操作界面采用触控式,差不多所有的控制选项都排列在屏幕上,使用触控笔便可进行所有操作。作为一套极具开放性的系统,开发商向用户免费提供Palm操作系统的开发工具,允许用户利用该工具在Palm操作系统的基础上编写、修改相关软件,使支持Palm的应用程序丰富多彩、应有尽有。5.非智能手机操作系统低端手机也有操作系统,但功能非常简单,主要支持通讯录调用等。对于非智能手机设计生产商来说,不追求系统的强扩展性和第三方软件的添加,一般手机操作系统只需提供核心功能,如多任务调度、中断、通信机制等,便于上层应用软件的开发和移植即可。例如:MTK平台使用Nucleus Plus操作系统,Brew平台使用的是rex(Real-time Executive system)操作系统,展讯平台操作系统抽象层支持的是Threadx 操作系统。Nucleus Plus是美国源代码操作系统商ATI公司推出的新一代嵌入式操作系统,属于抢先式实时多任务操作系统内核,95%的代码使用ANSI C编写,非常便于移植于各种处理器家族。从实现的角度讲,不同于传统嵌入式开发,Nucleus Plus是以函数库的形式链接到目标应用程序中,形成可执行目标代码,下载到目标板上或烧到ROM/FLASH ROM 中去执行。Nucleus Plus内核在典型的CISC体系结构上占据大约20k空间,而在典型的RISC体系结构上占据空间为40k左右,其内核数据结构占据1.5k字节的空间。2.2.4 人机交互接口MMI随着社会的发展,人们对手机的要求越来越高,良好的通话质量,美观的外形,友好的人机界面,已成为人们追求的目标。因此,手机人机界面的设计和开发无论对用户还是对公司,都日益重要。其主要提供移动台(手机)的全面控制和手机与用户之间的接口,功能包括:用户键盘输入、手机状态和呼叫处理过程显示、SIM卡和通讯录的管理、PIN码的控制、缩位拨号等。2.3 手机嵌入式系统实时操作系统(Real Time Operating System)是根据操作系统的工作特性而言的。实时是指物理进程的真实时间。实时操作系统是指具有实时性,能支持实时控制系统工作的操作系统。首要任务是调度一切可利用的资源完成实时控制任务,其次才着眼于提高系统的使用效率,重要特点是要满足对时间的限制和要求。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提供的一种机制。每个任务可以定义一个信箱,其他任务可以给它发送消息。每个消息的结构中有个是信号量,它与某一事件联系,而此事件是由于信箱中来了消息激发的。然而如果一个任务需要从多个信箱中得到消息,它必须能够知道事件的标识和事件已经发生。信箱可以看成是长度为1的队列,它消耗的资源少于队列,运行速度快于队列。2.队列FIFOFIFO是一种先进先出的队列。它类似于一个管道,只允许数据的单向流动。每个FIFO都有一个名字,允许不相关的进程访问同一个FIFO。因此也成为命名管。3.管道PIPE管道一般用于两个不同进程之间的通信。当一个进程创建一个管道,并调用fork创建自己的一个子进程后,父进程关闭读管道端,子进程关闭写管道端,这样提供了两个进程之间数据流动的一种方式。2.3.4 任务间的同步内核也要提供为了有效地共享不可抢占的资源或临界区所需的同步机制。任务之间的同步有三种方式:信号量、事件组和信号。1.信号量(semaphore)信号量提供了对临界资源的控制机制。所谓的临界资源指的是在同一时刻只能为一个用户所使用的资源。对信号量的基本操作是得到(obtain)和释放(release)信号量。得到信号量是信号量的值减少;释放信号量使信号量的值增加。2.事件组(event group)事件组提供一种机制,指明了某种系统事件的发生。一个事件由在事件组变量中的某一位(bit)来代表,该位被称为一个事件标志。事件标志的使用是同步的,任务并不知道事件标志的出现直到出现特定的服务请求。通常每个事件组中有32个事件标志。3.信号(signal)信号以异步方式操作,当信号出现时任务被中断,一个先前被任务定义的特定的信号处理程序被执行。每一个任务具有处理32个信号的能力。每一个信号由变量的一位(bit)代表。2.4 小结在本章中首先介绍了手机的硬件结构和软件结构,其中详细研究了移动通信协议体系结构,并用对比的方式介绍了流行的嵌入式实时操作系统,最后重点对嵌入式实时系统的特点做了详细的分析。本项目是基于GSM网络,从界面、功能、外观等各角度在MTK平台上达到高仿某款手机的效果。而该款手机采用的Symbian操作系统在智能移动终端上拥有强大的应用程序以及通信能力,它的特征包括文件系统、图形用户界面框架、多媒体支持、TCP/IP栈和库,提供的软件开发包可以供第三方应用程序开发使用。Symbian体系中有多个可选择的UI平台以适应不同的用户需求。这些优点是普通手机平台难以实现的,当然这也是本项目的难点所在。因此,项目的首要任务是先对原始需求进行充分评估和合理设计。29第三章 MMI的研究与实现第三章 MMI的研究与分析3.1 MTK平台总体设计手机软件主要包括运行软件和调试软件两大部分。本项目中运行软件主要由:GSM协议栈、Nucleus操作系统、设备驱动、MMI和WAP模块组成。MTK提供的调试软件有:Catcher、META20。它们的作用在于监视软件的实时运行,加速手机运行软件的开发。整个软件的结构如图3.1所示:CatcherMETAJAVAMMIWAPL2/L3 Protocol StackDriversL1 Protocol StackL4CckNucleusOS图3.1 MTK软件结构其中,Drivers是整个系统外围设备的驱动程序,WAP是无线应用协议,JAVA是J2ME软件。3.1.1 适配层KALMTK平台使用了Nucleus Plus实时操作系统。本系统设计了一个操作系统适配层(KAL)在其上做了个内核抽象层的封装,使得手机软件独立于Nucleus操作系统。为了确保MMI task上所有程序能在PC机上正常的运行,这层是必须的。它封装了一些API,它们为其他软件提供了很多系统服务函数,例如时钟管理、任务管理(同步和通信)、资源管理,内存管理等21。如图3.2所示:OSLKALNucleusor otherRTOS图3.2适配层KAL3.1.2 适配层L422MTK平台中,L4层是MMI与AT和协议栈之间的一个适配层。也就是说,二者通过L4层完成通信过程。一般地,我们将L4以下的部分称为下层,上面的称为上层或应用层。详细结构如图3.3所示:KAL OS adaptationNucleus OSDriverPS/L1RMI(AT)FMIATCIL4AL4CUEMSMUSMSALCSMTCMENGPHBRACL4图3.3适配层L4MMI:包括RMI和FMI两个部分。前者即远程MMI(例如,PC端),通过UART口利用AT命令与协议栈通信;后者包括了MMI的所有特性。L4A:FMI对应的L4适配层,FMI和L4A之间的服务节点是原始节点。L4C:L4的控制实体,处理所有应用的请求和响应。ATCI:AT命令解释器,解释来自PC端的AT命令,同时命令L4C执行相应的动作。UEM:用户设备适配。驱动的适配,如KEYPAD、LED、GPIO等。PHB:电话本管理。处理电话本的相关操作,如存储等。SMU:安全管理单元。安全性管理以及STK。CSM:电路交换协议栈管理。RAC:注册接入控制。包括GSM/GPRS的注册管理等。SMSAL:短消息服务应用层。处理短信存储、收发短信、小区广播等。TCM:终端文本管理。3.1.3 task间的通信机制23在MTK平台中,系统被划分为若干个独立的task,它们由操作系统来统一管理调度。一个事件的处理往往是多个task交互完成的,这就需要每个task之间都可以进行通信,它们都是通过消息队列来接受或发送消息的。如图3.4所示:CC TaskSIM TaskL4 TaskMMI Taskmore TaskMODL4CMODTCMMODSMSALMODCSMMODUEMMODRACMODSMUMODPHBSystem图3.4 task结构消息队列可以分为三种:内部队列Internal queue、外部队列External queue和循环队列Circular queue。其中,内部队列是在同一个task的模块之间进行消息交互的队列,外部队列是在不同的task的模块之间进行消息交互的队列,循环队列是专门用于MMI模块读取消息的队列,默认的大小是30。消息message的数据结构定义如下:typedef struct ilm_structoslModuleType oslSrcId; / 源模块IDoslModuleType oslDestId; / 目的模块IDoslMsgType oslSapId; / 服务接入点oslMsgType oslMsgId; / 信息名IDoslParaType *oslDataPtr; /本地参数缓冲器oslPeerParaPtr *oslPeerBuffPtr;/peer缓冲器指针 ilm_struct;进行task之间的通信之前,先创建task。建立task入口函数,进入消息的循环,从而在外部队列中监听消息message,完成此步骤的函数是:OslReceiveMsgExtQ(mmi_qid, &mmi_message);下面以MMI task向L4 task发送消息来说明task间的通信过程:1.建立一个本地参数的缓冲器2.分配需要的值到本地参数缓冲器3.在结构体ilm_struct中填写相应信息4.发消息给L4CMMI从L4C中接收到消息后,MMI会根据消息ID注册一个消息响应的处理函数,完成此步骤的函数是SetProtocolEventHandler(FuncCB, msg_id)。以MMI向L4C发送调节音量请求为例:void SetVolumeLevelReq(volume_type_enumvolume_type,U8 volume_level)MYQUEUE Message;mmi_eq_set_volume_req_struct *setVolumeLevelReq;Message.oslMsgId = MSG_ID_MMI_EQ_SET_VOLUME_REQ; /消息ID/建立本地参数缓冲器setVolumeLevelReq = OslConstructDataPtr(sizeof(mmi_eq_set_volume_req_struct);setVolumeLevelReq-volume_type = volume_type;setVolumeLevelReq-volume_level = volume_level;Message.oslDataPtr= (oslParaType*)setVolumeLevelReq; /本地参数缓冲器Message.oslPeerBuffPtr= NULL; /Peer参数缓冲器Message.oslSrcId=MOD_MMI; /源模块IDMessage.oslDestId=MOD_L4C; /目的模块IDOslMsgSendExtQueue(&Message); /发送给L4 task3.2 MMI层软件结构24MMI模块主要由三部分组成:Application Layer(应用层软件)、Framework(框架)和UI Layer(图像用户接口)。它们之间的关系如图3.5所示:Application LayerUI LayerFrameworkOperating System & Protocol Stack Layer & Driver图3.5 MMI软件结构Application Layer即手机应用,就是手机提供的各功能。具体包括通讯录、消息(短消息、增强型短消息、小区广播)、历史记录、设置(电话设置、网络设置、安全设置)、情景模式、娱乐游戏、WAP、快捷方式等。Framework是MMI模块的核心,主要用于分发和解释消息并控制向用户提供友好界面的信息,接收到的消息按其属性逐层解析处理。包括OS适配层、与L4 task通信的Task和与存储设备通信的文件系统。UI Layer主要负责人机界面元素,实现菜单的组织和屏幕的显示。例如:主题风格、标题、按钮、图片等的组织和调用LCD驱动显示人机界面。由此可以说Framework主要实现了调度功能;Application Layer实现各个服务功能,每个功能又自己组成一个模块,设计时可根据具体需求增减模块;UI Layer负责显示用户友好界面。为了增强软件的可扩展性和灵活性,特意将Framework和Application Layer分开,利于模块的封装和程序的二次开发。3.2.1 MMI接口介绍MMI中主要接口包括:Framework与协议栈L4层的接口,也是MMI层与应用提供者的接口。它们之间时通过消息进行通信的,是由Task机制来完成的。UI Layer与LCD的接口,也是MMI与硬件的接口。UI Layer先与LCD驱动通信,然后通过驱动与硬件设备连接。它们是通过接口和消息进行通信的。3.2.2 MMI与L4之间的通信MMI Task与L4 Task的通信过程如图3.6所示:网络模拟器/L4MMI队列网络模拟器/L4队列MMITASK操作系统层图3.6 MMI Task与L4 Task的通信过程MMI 队列:协议栈或者L4将事件写到该队列中,然后MMI Task从这个队列中读取事件。网络模拟器/L4队列:MMI Task将MMI事件写入该队列中,然后L4 task或者网络模拟器从这个队列中读取事件。MMI Task的运行过程如图3.7所示:FrameworkEventHandlerHistoryOSLNVRAMFileSystemEventsFrom/ToL4CATEGORYSCREENSAPPLICATION层UI层UIELEMENTSIMAGESFONTSTHEMESGRAPHICS库WRAPPERSGRAPHICS库IMPLEMENTATION图3.7 MMI Task运行过程此图中我们可以看到该过程如下:1.等待发送给MMI队列的messages2.协议栈把messages写入到MMI队列中3.Framework层处理事件4.Framework层调用Application Layer中注册过的回调函数5.Application Layer调用UI层的类屏幕函数来组织UI元素,使之呈现在界面上下面举例来说明MMI Task中的事件流:1. 按键事件(向Application Layer发送)协议栈/L4MMI队列APPLICATIONFRAMEWORK按键事件图3.8 按键事件一旦有键按下,MMI运行机制如下步骤工作:l 协议栈将此事件写入MMI队列中;l MMI Task从MMI队列中读该事件;l Framework调用回调函数,在Application Layer注册事件;l Application Layer接收到按键事件给出响应。2. 播放声音请求(Application Layer向底层发送)协议栈/L4L4队列APPLICATIONFRAMEWORK图3.9 播放声音请求应用层发送播放声音请求时,MMI运行机制如下步骤工作:l Application Layer给Framework层发送呼叫请求,要将信息传送给L4队列中;l Framework层将信息写入L4队列;l L4 task从L4队列中读出事件,播放先前请求的声音。3.3 Framework层25Framework作为
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 费用结算面试题及答案
- 校医院药品安全知识培训课件
- 栓绳安全知识培训内容课件总结
- 2025年建店培训合同范文
- 工会知识竞赛题库含参考答案
- 2025年初级育婴师执业资格模拟考试题库及答案
- 2024年设备监理师考试题库附答案【培优b卷】
- 高压电工实操考试题库(附答案)
- 标点符号的用法课件
- 标准作业基础知识培训课件
- 某工业区供水管道工程施工组织设计
- 防山体滑坡应急预案
- 江苏省社会组织网上办事系统-操作手册
- DB37-T 3079-2017特种设备事故隐患排查治理体系细则
- 2023版江西省乡镇卫生院街道社区卫生服务中心地址医疗机构名单(1744家)
- 模具保养记录表
- 皮内针讲课课件
- 各种隔离标识
- 钢质防火门窗项目商业计划书范文参考
- 农村道路畅通工程路面加宽改造施工组织设计
- 德龙自卸车合格证扫描件(原图)
评论
0/150
提交评论