基于MTK平台通话管理软件的设计与实现——毕业论文_第1页
基于MTK平台通话管理软件的设计与实现——毕业论文_第2页
基于MTK平台通话管理软件的设计与实现——毕业论文_第3页
基于MTK平台通话管理软件的设计与实现——毕业论文_第4页
基于MTK平台通话管理软件的设计与实现——毕业论文_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

题题(中、英文)(中、英文)目目基于基于 MTK 平台通话管理软件的设计与实现平台通话管理软件的设计与实现 Design and Implementation of Call Management Software Based on MTK Platform 作者姓名作者姓名 教授教授 软件工程软件工程 提交论文日期提交论文日期 年年 月月 高工高工 代号代号 分类号分类号 学号学号 密级密级 UDC编号编号 学校指导教师姓名职称学校指导教师姓名职称 工程领域工程领域企业指导教师姓名职称企业指导教师姓名职称 摘 要 本文以 MTK 手机开发平台为基础,简述了 MTK 平台中使用的 Nucleus 嵌入 式操作系统,分析了 MTK 平台的软件架构,详细说明了 MTK 中的任务处理和 消息管理机制。 基于以上理论基础,对通话管理模块软件进行分析,详细分析了其中的 AT 模块,研究了 MTK 平台中 AT 命令的类型和格式,分析了通话管理模块中 AT 命 令的收发格式。根据对通话管理模块软件的分析和 AT 命令收发格式的研究,设 计出底层 AT 命令的发送和响应过程,完成了通话管理软件中 AT 模块的设计。 然后根据实际需求,在原方案的基础上,针对 AT 模块设计的缺陷提出了改进方 案。利用扩展 AT 命令的实现原理,完善了对 AT 模块软件的设计,并最终实现 了通话管理的主要功能。最后,设计测试用例,对完成的功能进行测试和验证。 关键词: MTKMTK 手机 通话管理 ATAT命令 Abstact This thesis is based on the MTK mobile phones development platform. It briefly describes Nucleus operating system used in MTK platform, analyzes the framework of MTK platform, and focuses on the task processing and the mechanism of message management in MTK. Based on the above theory, this thesis analyzes the call management software and its AT module, studies the types and formats of AT commands, and expounds the sending and receiving formats of AT commands used in the call management. According to the analysis of call management software and the study of AT commands sending and receiving formats, this paper schemes out the sending and responding processes of AT commands and completes the design of AT module in the call management. According to the actual demands and on the basis of the original program, it puts forward the improvement. By using the realization principles of the expanded AT commands, it perfects the design of AT module and ultimately achieves the main functions of call management. Finally, it tests and verifies the completed functions using test cases. Keyword: MTK Mobile Phone Call Management AT command 目录 I 目录 第一章 绪论1 1.1 课题背景.1 1.2 课题研究的意义.2 1.3 论文的章节安排.3 第二章 MTK 手机开发平台的操作系统5 2.1 常用的手机操作系统.5 2.2 MTK 平台的 Nucleus 操作系统6 2.2.1 Nucleus 的特点.6 2.2.2 Nucleus 支持的 CPU 类型.7 2.2.3 Nucleus 源代码带来的优势.8 第三章 MTK 手机开发平台及其机制研究9 3.1 平台软件架构.9 3.2 应用模块的分析.10 3.2.1 应用模块的组成.10 3.2.2 屏幕历史管理机制.10 3.3 用户界面设计的分析.12 3.4 本地数据模块.14 3.5 输入事件处理机制.15 3.5.1 消息机制.15 3.5.2 事件处理机制.17 3.6 任务.18 3.7 本章小结.19 第四章 通话管理模块软件的分析21 4.1 通话管理软件的分析.21 4.2 AT 模块的分析.23 4.3 AT 命令的分析.24 4.3.1 AT 命令概述 24 4.3.2 AT 命令的类型和格式 25 4.3.3 AT 命令的分析 26 基于 MTK 平台通话管理软件的设计与实现 II 4.4 本章小结.30 第五章 通话管理模块软件的设计与实现31 5.1 通话管理中 AT 模块的设计31 5.1.1 MMI 功能接口层的设计 .31 5.1.2 AT 任务功能接口层的设计 31 5.1.3 AT 任务处理层的设计 32 5.1.4 AT 模块设计的几个关键点 36 5.2 AT 模块设计的改进方案.39 5.2.1 改进方案的必要性.39 5.2.2 扩展 AT 命令的设计原理 .39 5.2.3 改进方案的软件设计.40 5.2.4 改进方案 AT 任务处理层的设计 .42 5.3 通话管理主要功能的实现.45 5.3.1 单通电话拨打接通流程.46 5.3.2 来电接通挂断流程.47 5.3.3 单通电话的恢复暂停.48 5.3.4 两通电话的接通.48 5.3.5 两通电话的切换.49 5.3.6 两通电话的挂断.50 5.4 本章小结.50 第六章 通话管理模块软件的测试51 6.1 软件测试的方法和过程.51 6.2 通话管理软件测试用例的设计.52 6.3 通话管理软件测试平台的搭建.53 6.3.1 AT 命令测试平台的搭建 53 6.3.2 通话功能测试平台的搭建.55 6.4 通话管理软件的测试.56 6.4.1 AT 命令测试结果的分析 56 6.4.2 通话功能测试结果的分析.58 结束语59 致谢61 参考文献63 第一章 绪论1 第一章 绪论 1.1 课题背景 从 1876 年贝尔发明电话以来,电话通讯服务经历了长达一个多世纪的发展, 如今已走进千家万户,成为国家经济建设、社会生活和人们交流信息所不可缺少 的重要工具。随着人们生活水平的提高,手机已经逐渐从奢侈品发展到了现在十 分普及的消费电子产品。回顾手机发展的过程,无论从造型还是功能都有了翻天 覆地的变化。手机的发展也是经过了一次次的变革,才形成了如今多样化的造型, 多样化的功能,而不是单一的通信工具。随着科技的发展与进步,电话技术和业 务发生了巨大变化,通信的地点由固定方式转向移动方式。移动通讯的迅猛发展, 使现代生活节奏越来越快,移动通讯产品的更新换代和市场争夺战也愈演愈烈, 众多国产手机品牌群雄逐鹿,移动运营商也做好了一切准备迎接 3G 时代的到来。 未来的手机将偏重于安全和数据通讯。一方面加强个人隐私的保护,另一方面加 强数据业务的研发,更多的多媒体功能被引入进来,手机将会具有更加强劲的运 算能力,成为个人的信息终端,而不是仅仅具有通话和文字消息的功能。手机会 更加智能化、微型化、安全化、多功能化。 现在,手机开发模式包括采用芯片供应商提供的参考设计和完全独立自主的 研发两种。芯片供应商参考设计就是芯片供应商除了负责芯片组的设计外,还要 对芯片组的核心硬件电路、底层操作系统、第二、三层协议栈进行设计。对于那 些较小的终端厂商而言,其实力不足以承担独立开发以上设计的财力及人力,因 而只需要购进某家芯片供应商的芯片及其参考设计,再在此基础上进行驱动程序、 功能实现、应用程序、人机界面等的开发工作,来完成一款手机的设计与生产。 而完全自主设计的终端厂家则能自由组合不同厂商的芯片,完全掌握底层操作系 统和协议栈,可以根据自己的需求设计出更个性化的手机来。现阶段国内仍以采 用参考设计的方式为主。17 20 MTK 是台湾联发科技多媒体芯片提供商的简称。MTK 公司是国内的专业手 机平台提供商,该公司成立至今发展迅猛,如今,MTK 已成为全球光存储 IC 芯 片的领航者。该公司的产品因为集成较多的多媒体功能和较低的价格在大陆手机 公司和手机设计公司得到广泛的应用。MTK 手机开发平台就是目前国内向客户 提供整套手机开发方案支持的平台,并以其完善的服务,全面细致、稳定的方案, 迅速占领着国内市场。该平台的两个最大的优点是:产品研发周期短,方案成本 低。随着 MTK 芯片能力和系统的稳定性不断提高,手机的计算、存储能力大幅 提升,功能持续拓展。该平台在市场上的占有率逐年递增,基于 MTK 手机平台 基于 MTK 平台通话管理软件的设计与实现 2 的开发也逐渐受到业界的普遍关注。7 国外一些经济和技术实力很强的公司,像摩托罗拉、诺基亚、索爱、三星等 都有自己的开发平台26,他们在各自的平台上已经开发出了不少双卡双待机,三 星在双模手机领域一直处于领先地位,并且只走高端路线,基本垄断了高端商务 型双模手机市场。三星最新推出一款双 GSM 双待手机 SGH-D888,这款三星 D888 拥有双卡双待功能,还有着不俗的外观设计以及三星强大的品牌号召力, 尤其是它对通话管理的创新设计,使得 D888 成为高端用户所关注的焦点。 目前国内的手机开发商,开始致力于开发双卡双待手机。在 MTK 平台上做 底层开发主要是 AT 命令的解析和串口通信的实现,目前很多小公司都是基于 MTK 平台开发手机,但是对通话的管理功能也非常类似,突破很小,这主要是 由于 MTK 软件很多都是封闭的,无法了解他们的深层机制。而时间和精力也不 允许这些公司开发自己的研发平台,只能最大限度的在所用的平台上开发出最优 的手机软件。所以本文研究的基于 MTK 平台通话管理软件的设计与实现具有很 大的实用性和创新性。 1.2 课题研究的意义 伴随着人们生活品质的不断提高,许多人因为工作和生活的原因需要同时使 用两部不同的手机,拥有两个手机号码的用户越来越多,人们对双卡双待手机的 需求也越来越迫切。市场上出现双模双卡双待手机、GSM 网双卡双待手机、双卡 单待手机等多种不同的产品,以满足消费者多种不同的需求。随着移动网络单向 收费业务的逐步开通、资费标准不断下调,双卡双待手机有很好的市场前景。因 此,双卡双待手机功能的研发不仅为用户的使用带来了方便,也将给生产厂家带 来很大的经济效益。22 通常所说的手机大部分是指单 SIM 卡手机,双卡双待手机指的是在一部手机 使用一个界面管理两张 SIM 卡,可以同时处于移动网络中待机状态(双卡双待机) 。这两张 SIM 卡可以都是 GSM 网络的 SIM 卡,也可以分别是一张 GSM 网络和 CDMA 网络的 SIM 卡(称为双模双待机) 。两个号码可以同时待机,同时在线。 电话、短信、通讯录等功能都可以分别正常使用,彼此不受影响。这实际上是在 同一部手机中同时运行两套系统、两套基带,两套射频同时协调工作,一个系统 负责一个号码的通信控制,使得两张卡都能相对独立的同时工作。其中,MMI 界 面是由其中的主处理器负责。由于具备一机多卡、多网在线等功能,双卡双待手 机上市之后迅速赢得了商务人士的青睐,并被业界认为是 2G 向 3G 手机进行平 滑过渡的首选。5 本文依据本人在实习公司从事的 PW888 项目,以本人负责的通话管理模块 第一章 绪论3 为基础,详细阐述了在 MTK 手机开发平台上,通过 UART 串口实现两卡间通信, 利用 AT 命令完成对 SIM2 卡的操作和管理,最终完成了对双卡双待手机中通话 管理模块的分析、设计和实现。从开发者的角度来看,新功能手机的开发是技术 能力的一个挑战;对生产厂家来说,新功能吸引了众多消费者,增强了他们的市 场竞争力;对用户来说,新功能使人们的生活舒适,工作方便快捷。 从技术的角度讲,项目的实现具有很好的移植性,便于代码的二次开发。不 仅在理论上是对嵌入式移动终端平台的深入挖掘,更是在实践上解决了不同平台 间实现相同功能的技术难题。并根据需求,提出了最优化的设计方案,验证了优 化方案的可行性。本文对双卡双待手机技术的研究具有很好的参考价值。 从市场效益的角度来说,不仅给公司带来了可观的经济价值,同时又为消费 者购买移动终端产品提供了一个更有竞争力的选择。 1.3 论文的章节安排 本文在研究 MTK 平台开发技术的基础上,设计了一套如何在其上实现双卡 双待功能的解决方案。主要包括以下几个部分: 第一章介绍课题背景、研究意义和论文的章节安排。 第二章简述MTK手机开发平台中Nucleus嵌入式实时操作系统。 第三章主要研究MTK手机软件开发平台的架构,详细分析了消息队列、任务、 屏幕历史管理机制等。 第四章对通话管理模块软件进行分析,重点分析了其中的AT模块和通话管理 中用到的AT命令。 第五章对AT模块进行设计,根据实际需求,对AT模块的设计方案提出改进, 并完成改进方案的AT模块设计,最后用扩展的AT命令实现了通话管理的主要功 能。 第六章根据软件测试的方法和过程,设计通话管理软件的测试用例,搭建测 试平台,测试软件功能,并对测试结果进行分析。 结束语中提出本文所解决的实际问题,以及存在的问题,提出了下一步的研 究和开发任务。 基于 MTK 平台通话管理软件的设计与实现 4 第二章 MTK 手机开发平台的操作系统5 第二章 MTK 手机开发平台的操作系统 2.1 常用的手机操作系统 手机开发是典型的嵌入式实时操作系统的应用。手机操作系统是承载手机信 息服务的平台,地位十分重要。手机客户端软件开发最大的困难就是平台不统一, 手机开发平台太多。目前应用于手机中的一种是像 Symbian、Windows Mobile、Palm、linux 四个操作系统属于智能手机操作系统,这种操作系统不仅提 供操作系统的核心功能,还提供诸如多线程调度,高级 API 等其它附加功能。支 持智能手机操作系统的手机称为智能手机,也被称为结合手机与网络化的 PDA。9 1.Symbian 在智能手机操作系统中,Symbian抢得了先机,索爱、诺基亚、摩托罗拉以 及松下等公司基本上都采用了Symbian为主的操作系统。Symbian目前设计合理, 稳定,而且有众多厂商支持,前景看好。现在它的网络应用非常强,9键的单手 操作非常舒服,缺点就是慢。Symbian很像是Windows和Linux的结合体,有着良 好的界面,采用内核与界面分离技术,对硬件的要求比较低,支持C+,VB和 J2ME,兼容性较差。 2.Linux Linux操作系统包含了Unix的全部功能和特性,它具有开放性、多用户、多任 务、良好的用户界面、良好的可移植性、可靠的系统安全,除此之外,Linux还提 供丰富的网络功能,完善的内置网络是Linux的一大特点。Linux在通信和网络功 能方面优于其他操作系统。其他操作系统不包含如此紧密地和内核结合在一起的 连接网络的能力,也没有内置这些联网特性的灵活性。而Linux为用户提供了完善 的、强大的网络功能。支持Internet是其网络功能之一。Linux免费提供了大量支 持Internet的软件,Internet是在Unix领域中建立并繁荣起来的,在这方面使用 Linux是相当方便的,用户能用Linux与世界上的其他人通过Internet网络进行通信。 文件传输是其网络功能之二。用户能通过一些Linux命令完成内部信息或文件的 传输。 远程访问是其网络功能之三。Linux不仅允许进行文件和程序的传输,它 还为系统管理员和技术人员提供了访问其他系统的窗口。通过这种远程访问的功 能,一位技术人员能够有效地为多个系统服务,即使那些系统位于相距很远的地 方。 3.Windows CE Windows CE是针对有限资源的平台而设计的多线程、完整优先权、多任务的 基于 MTK 平台通话管理软件的设计与实现 6 操作系统,但它不是一个硬实时操作系统。高度模块化是Windows CE的一个鲜为 人知的特性,这一特性有利于它对从掌上电脑到专用的工业控制器的用户电子设 备进行定制。Windows CE支持Win32 API子集、多种用户界面硬件、多种串行和 网络通信技术。Windows CE嵌入式操作系统最大的特点是能提供与PC机类似的 图形界面和主要的应用程序。Windows CE的设计目标是:模块化及可伸缩性、实 时性能好,通信能力强大,支持多种CPU。它的设计可以满足多种设备的需要, 这些设备包括了工业控制器、通信集线器以及销售终端之类的企业设备,还有像 照相机、电话和家用娱乐器材之类的消费产品。一个典型的基于Windows CE的嵌 入系统通常为某个特定用途而设计,并在不联机的情况下工作。它要求所使用的 操作系统体积较小,内建有对中断的响应功能。 4.Palm Palm是3Com公司的产品,其操作系统为Palm OS。Palm OS是一种32位的嵌 入式操作系统。Palm提供了串行通信接口和红外线传输接口,利用它可以方便的 与其他外部设备通信、传输数据;拥有开放的OS应用程序接口,开发商可以根据 需要自行开发所需的应用程序。Palm OS是一套具有技术强、开放性的系统,现 在有大约数千种专为Palm OS编写的应用程序,从程序内容上看,小到个人管理、 游戏,大到行业解决方案,Palm OS无所不包。在丰富的软件支持下,基于Palm OS的掌上电脑功能得以不断扩展。Palm OS是一套专门为掌上电脑开发的OS。在 编写程序时,Palm OS充分考虑了掌上电脑内存相对较小的情况,因此它只占用 非常小的内存。由于基于 Palm OS编写的应用程序占用的空间也非常小,所以, 基于Palm OS的掌上电脑可以运行众多应用程序。这种系统对硬件的要求很低, 因此在价格上能很好的控制,耗电量也很小。显著特点是速度远远快于其他系统, 操作舒服,典型代表是三星SGH-i500Treo 600。 2.2 MTK 平台的 Nucleus 操作系统 MTK采用Nucleus实时操作系统,Nucleus是美国源代码操作系统商ATI公司 推出的嵌入式操作系统。它是一个抢先式多任务操作系统内核,Kernel Abstraction层为MTK软件和Nucleus操作系统的接口。它为任务提供许多系统服务 函数,比如计时器、队列、内存管理、事件等等。 2.2.1 Nucleus 的特点 Nucleus是为实时嵌入式应用而设计的一个抢先式多任务操作系统内核,其 95的代码是用ANSIC写成的,因此,非常便于移植并能够支持大多数类型的处 第二章 MTK 手机开发平台的操作系统7 理器。从实现角度来看,Nucleus是一组C函数库,应用程序代码与核心函数库连 接在一起,生成一个目标代码,下载到目标板的RAM中或直接烧录到目标板的 ROM中执行。在典型的目标环境中,Nucleus核心代码区一般不超过20K字节大小。 Nucleus采用了软件组件的方法。每个组件具有单一而明确的目的,通常由几个C 及汇编语言模块构成,提供清晰的外部接口,对组件的引用就是通过这些接口完 成的。除了少数一些特殊情况外,不允许从外部对组件内的全局进行访问。由于 采用了软件组件的方法,Nucleus各个组件非常易于替换和复用。Nucleus的组件 包括任务控制、内存管理、任务间通信、任务的同步与互斥、中断管理、定时器 及I/O驱动等。12 Nucleus具有如下特点: 1、提供源代码。Nucleus提供注释严格的C源代码给每一个用户。这样,用 户能够深入地了解底层内核的运作方式,并可根据自己的特殊要求删减或改动系 统软件,这对软件的规范化管理及系统软件的测试都有极大的帮助。另外,由于 提供了RTOS的源代码,用户不但可以进行RTOS的学习和研究,而且产品在量产 时也不必支付License,可以省去大量的费用。对于军方来说,由于提供了源代码, 用户完全可以控制内核而不必担心操作系统中可能会存在异常任务导致系统崩溃。 2、性价比高。Nucleus由于采用了先进的微内核(Micro-kernel)技术,因而在 优先级安排、任务调度、任务切换等各个方面都有相当大的优势。另外,对C+ 语言的全面支持使得Nucleus的Kernel成为名副其实的面向对象的实时操作系统内 核,但其价格却比较合理,所以容易被广大的研发单位接受。 3、易学易用。Nucleus能够结合Paradigm,SDS以及ATI自己的多任务调试器 组成功能强大的集成开发环境,配合相应的编译器和动态联结库以及各类底层驱 动软件,用户可以轻松地进行RTOS的开发和调试。另外,由于这些集成开发环 境(IDE)为所有的开发工程师所熟悉,因而,容易学习和使用。13 4、功能模块丰富。Nucleus除提供功能强大的内核操作系统外,还提供种类 丰富的功能模块。例如用于通讯系统的局域和广域网络模块,支持图形应用的实 时化Windows模块,支持Internet网的WEB产品模块,工控机实时BIOS模块,图 形化用户接口以及应用软件性能分析模块等。用户可以根据自己的应用来选择不 同的应用模块。 2.2.2 Nucleus 支持的 CPU 类型 Nucleus的RTOS内核可支持如下类型的 CPU:x86,68xxx,68HCxx,NECV25,ColdFire,29K,i960,MIPS,SPARCli 基于 MTK 平台通话管理软件的设计与实现 8 te,TIDSP,ARM6/7,StrongARM,H8/300H,SH1/2/3,PowerPC,V8xx,Trico re,Mcore,PanasonicMN10200,Tricore,Mcore等。可以说NUCLEUS是支持 CPU类型最丰富的实时多任务操作系统。 针对各种嵌入式应用,Nucleus还提供相应的网络协议(如TCP/IP,SNMP等) ,以满足用户对通讯系统的开发要求。另外,可重入的文件系统、可重入的C函 数库以及图形化界面等也给开发者提供了方便。针对不同的CPU类型,Nucleus还 提供编译器、动态链接库、多任务调试器等相应的工具来配置用户的开发环境。 2.2.3 Nucleus 源代码带来的优势 众所周知,Nucleus实时多任务操作系统提供给用户源代码。这除商务上给用 户带来巨大益处(免交Royalty)外,还在技术方面给用户极大的方便,即无需编 写和调试BSP,从而达到易学易用的目的,加速产品上市。 Nucleus的调试是基于全新的动态链接库(DLL) ,用户只须通过监控程序 (Monitor)或者BDM调试口(或者JTAG调试口)建立目标系统(Target)与主 机(Host)之间的通讯,并给主机上的Debugger初始化特性中加入Nucleus的动态 链接库。这时,调试器就能够自动地去识别运行在目标系统中的Nucleus内核和各 个应用任务,从而完成任务级调试。 因此,Nucleus的用户只需要将精力放在基于Nucleus的编程工作中。对于一 个新手,只需经过一天到两天的学习和培训,就可以投入到应用程序编制工作中 去,无需花大量的时间去研究CPU,特定的硬件等。另外,由于有了源程序,用 户在调试程序时可以清楚地通过STEPINTO命令,追踪到RTOS的内层中去,观看 和学习Kernel对任务的管理和调度机制。对于有志研究RTOS深层技术的工程师来 说极为方便。 对于Motorola68K和PowerPC,用户可以利用GreenHill公司的Mutil调试器或 TRACE-ICD来完成Nucleus的调试;对于ARM和StrongARM,用户可以利用ARM 公司的SDT251调试器或TRACE-ICD来完成Nucleus的调试;对于Intelx86实模式, 用户可以利用Paradigm公司的调试器及其DLL来进行任务级调试;对于Intelx86保 护模式则可以利用SSI公司Softprobe调试器和SSIDLL来调试;对于 i960,SH3/4,ARM6/7,MIPS等芯片,则可以使用ATI公司自己的UDB调试器来 进行任务的调试。 总之,动态链接库是在RTOS工具中新出现的应用趋势,通过这种方式,用 户可以免去BSP带来的麻烦,灵活方便地进行开发和调试,大大加速开发进度。 Nucleus实时操作系统提供源代码,支持丰富的CPU种类,配合各类动态链接库, 为使用和研究RTOS技术的工程带来极大的利益。 第二章 MTK 手机开发平台的操作系统9 第三章 MTK 手机开发平台及其机制研究11 第三章 MTK 手机开发平台及其机制研究 3.1 平台软件架构 图3.1为MTK手机开发平台的软件架构图。由图3.1可知,整个结构图可分为 六个部分:应用模块、UI模块、本地数据模块、对外接口模块、输入事件处理模 块、Nucleus操作系统。应用模块指手机具有的各种功能;UI模块绘制出各种功能 呈现给用户的视觉效果;本地数据模块是本地资源存储和应用的几种方式;对外 接口模块是指系统接口、第三方软件的接口和ADS编译器的接口;输入事件处理 模块是指消息、键盘、触摸屏、菜单等输入事件及对它们的处理;手机软件中的 操作系统主要提供多任务调度、通信机制、内存管理、文件管理等。这六个部分 相互关联:操作系统是软硬件运行的基础,输入事件处理模块是消息队列和事件 的管理中心,应用模块和UI模块体现给用户的是手机功能的多样性和炫丽的手机 界面,本地数据模块存储和管理手机需要的资源、保存手机的默认设置值,对外 接口模块方便系统应用第三方软件、系统扩展和调试。 图 3.1 MTK 平台软件架构图 基于 MTK 平台通话管理软件的设计与实现 12 3.2 应用模块的分析 3.2.1 应用模块的组成 如图3.1所示,应用模块由功能Applications和表现各种功能的Screens组成。 Applications主要指手机具有的各种功能。随着手机的发展,现在手机具有的 功能越来越多,从最初的通话、短信、电话本管理等基本功能到现在拥有闹钟、 备忘录、日历、照相机、音乐播放器、收音机、文件管理、游戏机、设置等,手 机逐渐摆脱作为单纯通信工具的形象,功能越来越丰富,界面越来越人性化,它 已经成为一个集娱乐、时尚为一体的电子消费品。从单色屏到彩屏,从彩屏到智 能,从MP3到MP4,从拍照到录像,手机市场显现出越来越多的多媒体色彩,特 别是智能手机的出现使手机功能的可扩展性也越来越强。智能手机一般都是拥有 开放性的操作系统,系统扩展性强,支持的软件游戏很多,娱乐性很强,能够满 足各类不同的爱好者;人机互动性能强大,可以根据个人喜好设计主题,扩展菜 单,增加功能;网络功能强大,几乎所有的智能手机在网络功能上都有着良好的 应用;智能手机的出现让手机变得像一台小型的PC机,强大的手机功能更能满足 用户的需求。这些功能一般都能在手机的主界面、一级或者二级菜单看到。 Screens指所看到的一个个手机界面。屏幕有点类似于Windows系统中的窗口 概念,即一个应用程序在某个状态的显示模式及交互方式,但有一点不同,屏幕 是独占整个显示系统及交互系统的,也就是说,系统在任何时候只能由一个屏幕 来控制。另外,一个程序可能会有多个屏幕组成,这跟Windows中一个程序可能 有多个窗口类似。MTK提供几百个Screens模板供程序员使用,程序员可以使用模 板,也可以自己写Screen。由于MTK的Screens模板很丰富,程序员一般只需调用 合适的Screen就能满足需求。 Screens分为四种:Menu、Message box、Public、Private。Menu指各种菜单用 到的Screens,有文本列表型、文本矩阵型、图片文本列表型、图片文本矩阵型、 单选框列表型、复选框列表型、内部编辑列表型等;Message box指手机弹出各种 消息提示框时用到的Screens,像短信发送过程提示框、充电完成提示框等; Public指各种公用的Screens,像密码的单行输入框、图片浏览器等所在的屏; Private指对某个功能私有的屏,像Idle屏、拨号屏、通话屏、日历屏等。 3.2.2 屏幕历史管理机制 屏幕历史管理机制,主要用来管理手机屏幕的进入和退出。 在手机程序运行的时候,如果有新的屏幕出现,就会强制退出原来的屏幕。 第三章 MTK 手机开发平台及其机制研究13 比如插上充电器时弹出提示框等,但新屏幕结束后,发现系统直接返回Idle界面, 显然这样用户操作起来十分不便。所以在MTK系统中,为了解决此问题而建立了 一套屏幕历史管理机制。只要在调用EntryNewScreen函数时,传入手机新进入屏 幕的ID及屏幕的入口函数,系统就会在下次调用EntryNewScreen(也就是进入更 新的屏幕)时,自动将手机的屏幕加入到历史记录中,当新的屏幕退出后,系统 也会将原来的屏幕从历史中弹出并显示出来。由此可知,屏幕历史管理机制是通 过栈来实现的,当加入一个新的历史记录时,它就被加到栈顶;当这个节点被删 除时,它就被从栈顶弹出。EntryNewScreen的函数原型如下: U8 EntryNewScreen(U16 newscrnID, FuncPtr newExitHandler, FuncPtr newEntryHandler, void *peerBuf) 其中第一个参数表明新显示屏幕的ID,每个屏幕都有一个全局唯一的序号, 这样方便系统管理;第二个参数指明屏幕的退出函数,系统在强制退出手机屏幕 时会自动调用此函数,因此可以在其中做一些资源释放等方面的工作,如果实在 没事可做就可以将此函数设为空;第三个参数指屏幕的入口函数,只有传入此函 数,系统才会将屏幕自动加入历史;第四个参数暂时不使用。 图3.2对屏幕历史管理机制做了详细描述:EntryNewScreen函数先将上次执行 EntryNewScreen时所记录的currExitScrnID,currEntryFuncPtr以history结构为载体 记录入栈;然后执行了记录中的currExitFuncPtr;最后将本窗口的 scrnID、exitFuncPtr、entryFuncPtr分别记录入全局变量 currExitScrnID、currExitFuncPtr和currEntryFuncPtr,留待下次调用 图 3.2 屏幕历史管理机制 基于 MTK 平台通话管理软件的设计与实现 14 EntryNewScreen时使用。在退出本窗口的时候通过GoBackHistory出栈,返回到本 窗口的父窗口。28 3.3 用户界面设计的分析 由MTK平台架构图3.1可知,用户界面UI模块分为WGUI、GUI和 GDI。WGUI、GUI、GDI为MTK的画图核心层,前者是对后者的封装。 窗口图形用户界面WGUI包括四部分:Category Screens、Controls、Draw Manager、TouchScreen。 Category Screens:MTK平台提供几百个Category Screens供程序员调用,程序 员只需调用ShowCategoryXXXScreen函数即可。但是内部画屏机制是个复杂的过 程,一般都用dm_redraw_category_screen函数画屏,它根据获得的该窗体所包含 的组件及它们的属性,再根据组件的类型和属性,调用不同的接口,逐一绘制各 组件,包括屏幕背景、菜单项、状态图标、输入框、左右软件、Title等各种屏幕 中的组成控件。 Controls:包括Category的各种组件,包括列表菜单组件、矩阵菜单组件、单 行输入组件、多行输入组件、拨号输入框组件、Title组件、左右软件组件、状态 栏组件、秒表组件、基本图形组件等。 Draw Manager是根据不同的screen id和category id来确定如何组织各组件,画 出手机需要显示的屏幕。Draw Manager绘图机制如图3.3所示: 由图3.3可知,从Application Layer中的具体功能模块对应的Screen,到Screen 里面用到的具体的Category,再到draw_manager来控制绘制Category可以看出: draw_manager是整个WGUI绘图的控制器。绘制Category实际上可以看作是绘制轮 图 3.3 Draw Manager 绘图机制 第三章 MTK 手机开发平台及其机制研究15 廓和绘制组件两个部分。首先将窗体的轮廓以及窗体的各个组件的坐标、高度、 宽度等属性用变量记录,结合提供的资源,通过dm_get_coordinates()这个函数映 射到具体的绘制过程中,最终完成Category的绘制。 TouchScreen主要根据触摸事件管理器绘制手机界面,TouchScreen触摸事件 绘图机制如图3.4所示: 由图3.4可知,手机有几种触摸事件:触摸笔按下、抬起、移动、长按、重复 按下等。当触摸笔与屏幕接触时,Driver Event Manager会从硬件驱动判断出手机 有触摸事件发生,Touch Event Manager进一步判断出是触摸笔的哪种操作,并调 用对应的事件处理函数,Draw Manager根据触摸点的处理结果利用Draw Manager resources提供的资源在相应的位置上画图,做图方法跟WGUI画各种组件类似。 图形用户界面GUI主要画各种控件,控件依赖于窗口存在,可以完成某种特 定功能。GUI提供的控件包括:菜单控件、菜单项控件、按钮控件、进度条控件、 滚动条控件、编辑框控件、文本框控件、图形控件、标点符号控件、软件盘控件 和日历控件等,还包括手机上的各种字符串和各种填充区域方式等。MMI的各控 件和窗口之间通过回调函数实现通信。GUI画各种控件也是用draw_manager来控 制的,因此所有窗口控件的实际绘制过程都是通过dm_redraw_category_screen()这 个函数来实现的。这个函数可以帮助绘制一些比较特殊的自定义的组件,如果使 用的组件已经包含在这个函数里,就直接使用定义好的绘制方法。 图形设备接口GDI,主要介绍了手机屏幕上图层的重叠机制;切片显示机制; 绘制点、线、矩形等基本图形的方法;在屏幕上显示静态、动态图片的方法;显 示字符串的方法等。了解这些机制后,根据所需更灵活的改动代码,设计出更美 观的手机界面。GDI中层主要有两个作用:缓冲和特效。 一、缓冲。在某些频繁更新的界面中,如果某些显示元素一直不变化,就可 以将这些元素提取出来画到一个模拟的屏幕中,当界面需要更新时,只需将要刷 图 3.4 TouchScreen 绘图机制 基于 MTK 平台通话管理软件的设计与实现 16 新的元素更新到另外一个模拟屏幕,而后将两个模拟屏幕合并到真正的屏幕上, 这样做就省掉了不变元素的重画时间,从而减轻了系统负担及加速画面更新,把 这样的模拟屏幕叫做层,也可以说,层就是屏幕的缓冲空间。 二、特效。因为层的格式简单统一,而且一般的图形系统中都会用硬件来加 速层合并,所以在层合并时加上些特效会很方便并且实现极快。系统中的特效有 通透、半透明、剪切等。 3.4 本地数据模块 由MTK软件架构图3.1可知,本地数据模块包括三部分:资源、 FAT、NVRAM。资源主要用来生成菜单、显示图片、显示字符串;文件系统存 储文件格式为FAT的数据,在系统运行时从文件系统中动态获取数据;NVRAM 用来存储系统的默认值。 UI的绘制除了各种绘图技巧和绘图机制外,离不开资源的支持。UI模块资源 包括以下几种:图片资源、字符串资源、菜单资源、字型资源、音频资源、主题 资源、包括音乐播放器、照相机、收音机、录像器、世界地图等在内的应用功能 资源、其他资源等,下面分别介绍。 图片资源:手机的每个界面几乎都由图片组成,像菜单项前面的小图标、手 机状态小图标、各种消息弹出框里的图片、拨号屏、音乐播放器、游戏等,这些 显然都是图片在手机界面上的显示。 字符串资源:在手机界面上看到的字符串,几乎都是来自字符串资源,像每 个菜单项的文字描述、弹出的文字消息提示等都是字符串。 菜单资源:即菜单在资源文件中的添加过程,在进入新屏时,只需调用相关 的函数获得菜单项数、菜单图片和菜单项的文字描述即可画出菜单,每个菜单项 对应唯一的ID。在代码里面用宏ADD_APPLICATION_MENUITEM装载菜单资源。 在MTK平台中,每个菜单项的行为都由菜单项自己控制,系统所能做的只是在高 亮此项时激活菜单事件。在开机初始化时,菜单项被注册,告知系统将由哪个函 数被激活,SetHiliteHandler就是把菜单项和对应的处理函数关联起来。 字型资源:在MTK平台中定义了几种型号的字型,有小号字体、中号字体、 大号字体、副屏幕字体、拨号屏字体、虚拟键盘字体等,但是程序员也可以自定 义需要的字体型号。 音频资源:指手机系统中自带的声音,像按键声、拨打电话声、来短信声、 弹出错误提示框声音、来电声、闹铃声、开关机铃声等,程序员也可以根据所需 添加铃声。 主题资源:指手机自带的几个主题,大部分是以背景为基础,不同的手机背 第三章 MTK 手机开发平台及其机制研究17 景图片显示不同的风格。 应用功能资源:像音乐播放器、照相机、收音机、录像器、世界地图等都有 单独的资源文件,记录各个屏幕图片的大小和坐标等信息,其中有些资源文件可 以通过MCT工具生成。 3.5 输入事件处理机制 系统的输入事件包括:消息、键盘、触摸屏、菜单事件等。消息输入事件分 两种:协议栈里面已经注册消息事件和中断消息事件,分别用 SetProtocolEventHandler和SetInterruptEventHandler注册事件;键盘输入事件指手 机键盘上每个按键对应的处理事件,用SetKeyHandler注册事件;触摸屏输入事件 指对触摸屏的按下、抬起、移动、长按、重复按下等动作注册的事件,用 mmi_pen_register_xxx_handler注册事件,xxx代表各种动作;菜单输入事件指高亮 该菜单后,按下确认键后的操作,用SetHiliteHandler和SetHintHandler注册事件。 消息是用户不可见的系统内部机制,而键盘、触摸屏、菜单事件是用户可见的, 所以总体可以分两类:消息机制和事件处理机制。 3.5.1 消息机制 由MTK软件架构图3.1可知,MMI和L4C之间是用消息队列来实现通信的。下 面以打电话为例来说明消息的发送和响应过程。 消息的发送:在代码中用OslMsgSendExtQueue(&Message)来发送消息,参数 Message的数据结构如图3.5所示: Message的数据结构各元素意义为: oslSrcId:消息来自哪个模块,一般为MOD_MMI,如果是AT命令,则为 MOD_ATL。 oslDestId:消息发送到哪个模块,一般为MOD_L4C。 oslSapId:服务访问点。 图 3.5 Message 的数据结构 基于 MTK 平台通话管理软件的设计与实现 18 oslMsgId:协议栈里的消息ID,一般是请求消息和响应消息成对出现,例子 中请求消息为PRT_USSDVSS_REQ,响应消息为PRT_USSDVSS_RSP;而中断消 息是L4收到信号主动上报的,不是消息的响应,因此不是成对出现,像来电消息 为PRT_INCOMINGCALL_EVENT。以PRT开头的消息为MMI层使用的消息,它 们在L4层也都对应一个以MSG_ID开头的消息,且消息ID唯一,主动上报的消息 大部分以IND结尾,消息的上下层对应关系用宏定义实现。MMI层和L4层在各自 内部都有自己的消息,这样将软件系统划分成模块,做到了高内聚、低耦合,提 高了模块的独立性,为设计高质量的软件结构奠定基础。OslMsgSendExtQueue只 管发送消息,并不关心目的对象如何接收消息,也不用关心具体的消息响应过程; 同样,消息接收者也不需要考虑消息的来源,而只需要对接收到的消息进行响应 即可。因此消息产生后,究竟如何传递,会引起什么样的过程来响应,是由管理 消息的部件来决定的,对消息的发送者和接收者来说都是透明的。这样,消息的 发送方和响应方形成了隐式的调用关系,非常有利于具有松散耦合结构特性的系 统间和系统内部件间的通信。 oslDataPtr:用来存放和消息一起发送的参数信息。 oslPeerBuffPtr:一般为NULL。 消息的响应:MMI_task函数里面调用OslReceiveMsgExtQ(qid, &Message)从 协议栈获得消息,当L4里面收到消息时,消息管理机制会传到MMI,此时执行用 SetProtocolEventHandler(PsFuncPtr) callBack, PRT_USSDVSS_RSP)注册的对应的 回调函数,callBack是与消息对应的回调函数。 在消息的发送和响应过程中,L4根据上层各个模块把消息也分块管理,由图 3.6可以看出,除了MMI发送的消息之外,用户可以用AT命令扩展MMI模块,定 义一套管理SIM2卡的消息,用系统提供的函数发送消息。消息响应时,也是根据 图 3.6 MTK 中的消息机制 第三章 MTK 手机开发平台及其机制研究19 消息类型分成AT命令模块和MMI模块两种消息处理。图3.6中各个模块的意义和 作用如下: Remote MMI(AT):用AT命令实现与协议栈通信的MMI。比如在PC机上测试 AT命令的收发和响应结果。 MMI:人机界面,主要负责和用户的交互。除了通话、短信、电话本等基本 功能的界面外,像游戏、音乐播放器、照相机等多彩的界面也都属于人机界面。 程序员一般在MMI层上对代码的改动最大,以更好的满足用户需求。 ATCI:AT命令解释程序,根据AT命令的编码规则编写能完成用户需求功能 的代码。 L4:MMI/AT与协议栈的适配层。在L4上,代码改动量较小,L4层以下代码 几乎对程序员是透明的。 L4A:上层函数调用的适配器。 L4C:L4的控制器,把L4的功能函数分模块管理,把接收到的消息也按模块 划分成如图3.6所示的模块。 UEM:用户设备模块,用于基础的设备驱动程序,像键盘,LED,GPIO等。 PHB:电话本管理模块,包括电话本

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论