mobileandroid双模手机的开发流程及框架.

上传人:鲁** 文档编号:549636055 上传时间:2023-11-07 格式:DOC 页数:6 大小:104.50KB
返回 下载 相关 举报
mobileandroid双模手机的开发流程及框架._第1页
第1页 / 共6页
mobileandroid双模手机的开发流程及框架._第2页
第2页 / 共6页
mobileandroid双模手机的开发流程及框架._第3页
第3页 / 共6页
mobileandroid双模手机的开发流程及框架._第4页
第4页 / 共6页
mobileandroid双模手机的开发流程及框架._第5页
第5页 / 共6页
点击查看更多>>
资源描述

《mobileandroid双模手机的开发流程及框架.》由会员分享,可在线阅读,更多相关《mobileandroid双模手机的开发流程及框架.(6页珍藏版)》请在金锄头文库上搜索。

1、WM Platform双模手机的开发流程及框架分类:+3G/移动开发2009-04-28 22:42 185人阅读 评论(1收藏举报当前,基于WM (Windows Mobile)/UNIX/Linux系统的嵌入式开发已成为终端通讯产品的主流开发模式。终 端通讯产品,特别是手机,随 3G时代的到来,将引领当前潮流。双模式手机产品更是未来手机的发展趋势。工作之余,整理了 WM Platform双模手机的开发流程及框架。首先,请一定要弄清楚 Windows程序内部运行原理。(1)Windows程序设计是一种事件驱动方式的程序设计模式,主要是基于消息的。当用户需要完成某项功能 时,会调用操作系统的某

2、项支持,然后操作系统将用户的需要包装成消息并投递到消息队列中,最后应用程序 从消息队列中取走消息并进行消息响应。(2)应用程序通过函数调用的方式来通知操作系统执行相应的功能。一般情况下,操作系统所能完成的每一 个功能都有一个函数与其对应。因此,应用程序对这些函数的调用就称为系统调用,这些函数的集合就是Windows 操作系统提供给应用程序编程的接口,简称 Windows API ( Application Programming Interface )(3) 操作系统将每一个事件都包装成一个称为消息的结构体MSG来传递给应用程序,然后应用程序对事件 进行处理。对事件做岀反应的过程称为消息响应。

3、其次,请弄清楚 WM Platform 双模手机开发框架中每一层的功能,便于Bug的定位及调试。一般情况下,基于 WM Platform 双模手机的开发框架图如下:其中:(1)左边为基于 WM Platform的主模式,右边为内嵌的副模式。(2 )主模中各层的主要功能如下:APP :用户信息的显示和用户操作的管理。同API进行交互。API :给APP提供调用接口和同 RilProxy进行交互。实现系统的兼容性、重用性和安全性。RilProxy :將进程函数回调到RilDriver层。同 API和RilDriver进行交互。RilDriver :同 RilProxy 和 Module 进行交互,

4、包括 Active 信息。Module :实现网络的通信功能。同RilDriver进行交互。(3 )副模中各层的主要功能如下:APP :通过主模中提供的 Cprog.exe程序实现与主模中 APP相同的功能。TSPI :由主模中API层提供的TSPI来进行交互。Driver :作用等同于主模中的RilProxy层和RilDriver层。Module :实现网络的通信功能。同RilDriver进行交互。最后,请注意如下两点:(1 )副模式的流程及框架理论上应与主模式相同,但实际设计中常把作交互的层合并在一起。因此,副模式的流程及框架可以有所不同。(2) WM有很多不同版本,具体细节可查询最新的M

5、SDN。注:(1)双模手机中涉及的术语可能有不同的名称。(2)为适应发展,Microsoft已将WM改成 WP(Windows Phone) 了。优化RIL驱动,巧解 WinCE电话漏接难题分类:wince 2010-06-29 21:11 136 人阅读 评论(1收藏 举报随着3G移动电话热潮的高涨,我公司许多的嵌入式移动产品也正计划加入无线上网和电话功能。近期,公司委派我负责一个在WinCE 6.0平台下集成移动电话、无线上网和收发SMS功能的项目。但没有想到的是这个项目却让我陷入到反复调试的痛苦之中。原因是这个在 WinCE 6.0平台下开发的系统经常出现:漏接电话、或有信号但电话无法拨

6、 出、或短信收发不正常、或通话自动中断和通话断断续续等问题。初期我怀疑是因为信号质量问题所导致,所以花了大量时间和精力在硬件上,如天线和GSM射频通讯模块上。但后来却发现原来是我在 Win CE下没有进行优化 RIL接口驱动所造成的问题。在这里与大家分享一些 在此过程中得到的经验和教训。一. WinCE系统电话漏接的原因分析在无线移动通讯上,漏接的意思是指机器设备接通了,但机器设备却没反应。一般来说,这个 故障可能出现在两个层面:一是GSM射频通讯基带部分没有发出有来电的消息;二可能是WinCE系统没有对GSM模块的来电消息做出响应。(1) 硬件上没有发出有来电消息第一种漏接的原因可能是 GS

7、M射频通讯基带部分没有发出有来电的消息,这部份主要是因为GSM硬件上出现了问题,使到系统根本没有输入信号。例如,在有信号的场合下但电话无法 拨出时,很可能就是 GSM信号质量出现问题。所谓信号质量问题是指在正常情况下接收到的 信号强度明显低于正常标准,这是与GSM射频硬件相关的故障。因此,我把时间和精力都集中在天线接收和 GSM射频通讯硬件上,例如更换增强型的天线和使用经测试合格的GSM射频芯片和基带处理芯片。但经过多次硬件调试和更换,却发现此问题一直存在,后来我决定先 排除对GSM硬件可能存在故障的怀疑。(2) WinCE系统没有对来电消息做出响应第二种漏接的原因可能是 WinCE系统对来电

8、信号没有做出响应。后来,经过多次调试,我发 现问题还真是出在 WinCE 6.0系统的软件部分。用专业术语的话说,就是在通讯接口层RIL模块(即Radio In terface Layer ,无线接口层)和优先级处理上出了问题。这个RIL层主要是用于沟通 WinCE系统与GSM通讯模块,并且对 GSM通讯模块的行为做出适当的响应与动 作,例如启动数据连接、发送SMS消息等。换句话说就是,当问题出在WinCE软件模块时,就算GSM信号强度提高了,该漏接的还是会漏接,该挂断的还是会挂断。二. WinCE 6.0 RIL 接口驱动详细分析(1) WinCE 6.0新加入的电话功能一般来说,要在基于

9、WinCE平台的产品上具备无线通讯功能(如拨号上网、拨打电话、收发 短信)的方法有两种:一是选择让用户外接手机模块;二是在嵌入式产品上集成手机模块。如 果是外接手机模块,那么手机只是起到在上网浏览期间接收和发送数据的作用,而如果是嵌入 式设备自身集成手机模块,那么就可以很方便的实现无线通讯的全部功能。因此,为了实现嵌入式设备更好的增加无线通信功能,WinCE 6.0提供了连接移动电话网络所需的接口函数。例如,WinCE 6.0提供了 cellcore.dll组件,这个动态链接库扩展了Win32API函数,其作用是用以支持各种移动电话服务,例如启动数据连接、发送SMS消息等。另一个重要组件是无线

10、接口层RIL驱动程序ril.dll。该组件为应用层与移动电话硬件的连接提供了低级别接口。在早先几个版本的WinCE是不支持直接拨打电话和发送SMS文本消息的。因此,在以前要想在 WinCE上构建移动电话,OEM厂商就必须开发自己的接口层,然而这并 非易事。现在有了这个 RIL接口,要想在 WinCE平台上构建移动电话程序,就不用 OEM厂 商再自己开发相应的接口层了,这一功能也大大激发OEM厂商在WinCE平台上构建移动电话程序的热潮。(2) 什么是 RIL(Radio In terface Layer组件?在WinCE 6.0新加的RIL无线接口层组件原本是Windows Mobile 里的

11、,它的主要工作为连接WinCE操作系统和电话模块,RIL的主要作用是用于维护和关联无线GSM通讯模块的状态和事件消息。微软的帮助手册是这样介绍RIL的,作为无线通讯的一个非常重要的组件,RIL使各种无线语音和数据应用成为可能,也使到运行在WinCE 6.0上的软件可以通过 RIL无缝地与GSM/GPRS 或者CDMA2000 1X modem 通信。RIL的位置是处于 GSM无线基带系统的协 议栈之上,而在 WinCE系统的CellCore层之下。RIL跟上层通讯主要采用两种方式,一种是 通过Socket发送与接收消息的方式来实现,还有另外一种方式是通过TCP/IP直接访问内核中的shared

12、 memory,进行RPC调用,这种方式主要应用在数据模式上。因此,RIL组件能隐藏GSM无线基带硬件上的一些细节,也就使到OEM厂商可以根据自己的需要将不同型号的无线modem集成到它们的产品之中。简单的说,就是只要采用了RIL驱动模块和底层的 GSM通讯模块,WinCE系统就具有了移动电话的功能。一是因为 RIL提供了语音、数据、SMS短信、SIM卡管理以及STK应用的功 能,也包括了 EXTAPI、拔号盘等移动电话的其它功能。二是因为从软件的角度来看,RIL工作在PPP、TCP/IP协议之下,能把 AT命令的发送以及 Response响应的解析,也能把数据 可靠的传输。而且,除了对网络协

13、议的支持,RIL也支持SMS、Voice Call等功能。(3)RIL驱动程序的结构解析从RIL组件的功能我们可知,开发一个移动电话的设计起点,是需要有效的进行RIL驱动程序的开发。因为RIL驱动程序为应用程序提供无线通信相关的服务,包括呼叫控制、短消息、 GPRS等功能。而且对于上层应用程序来说,也可以抽象地把RIL驱动程序看作逻辑设备,它只需要和RIL驱动程序通信就能够获得所需要的服务。因此, RIL接口层驱动可以按照流驱动 Stream I/O的规范来设计,这样做的好处是应用程序可以把设备看作文件,通过文件接口来访 问 RIL。在WinCE系统中,一个加载式驱动程序通常会被分成与硬件相关

14、的PDD层和与硬件无关的MDD层两部分。MDD实现的是和平台无关的功能,它描述了一个通用的驱动程序框架,而 PDD是和硬件以及平台相关的代码组成。MDD会调用PDD中特定的接口来获取硬件相关的信息。因此,在使用层次型驱动的时候,一般只需要基于相近的样列驱动程序,针对特定的硬 件只修改PDD程序,MDD建立的框架可继续使用。在根据微软帮助手册的建议,RIL驱动程序的基本框架最好是采用MDD+PDD结构。一般来说,微软在 WinCE中提供了很多通用驱动程序的MDD样本,所以关键在于调试PDD层。因为不同的GSM/GPRS通讯模块,其 PDD层的实现是不一样的。例如,层次模型RIL_XXX是提供给

15、DeviceMa nger 的 stream In terface。而在 RIL Service 这一层,Dispather 会将 request code 分发给相应的function,例如SMS短信息发送。然后 SMS的function会发消 息给RIL Device,目的是为了请求以 AT命令的形式发送给 GSM modem。也就是说,公用的 MDD部分已经做好了,现在只需要针对不同的GSM模块进行不同的 PDD驱动开发,这样就可以大大地提高开发效率了。(4) WinCE如何通过RIL实现电话功能?现在我们从 WinCE线程的角度来观察 RIL的工作流程。RIL主要包括RIL Stub和RIL Driver 两个部份。RIL Stub和RIL Driver都拥有自己的线程,名为RILThread。应用程序调用 RIL驱动程序的工作流程如下:应用程序的进程在自己的进程空间里,以调用RIL Proxy方式发送请求。 RIL Proxy 以IPC方式把请求传给 Device Ma nager。Device Ma nan ger 根据操 作码,将请求分发到相应的 RIL驱动程序。RIL Stub接收到操作码后根据 PID做Con text 切换,然后把请求转发给RIL Drive

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号