RIL 驱动开发一
来源:互联网 发布:开淘宝电脑配置 编辑:程序博客网 时间:2024/06/05 03:01
RIL是移动通讯核心(cellcore)和无线硬件设备(modem)之间通讯的控制接口,由此集成GSM, CDMA等不同Modem设备,适应不同无线网络。RIL由两部分组成:RIL proxy和RIL driver。RILproxy是一个基于CE的动态链接库(DLL) --- ril.dll,微软已经提供,它简化上层各个应用对驱动的访问。 而RIL driver即流驱动需要自己实现。RILdriver向系统提供无线服务,包括语音、 数据和SMS。RILdriver同时也通知无线状态的改变,例如服务区(coverage)、信息强度和来电等。 RIL模型类同音频模型,ril proxy好比waveapi, ril driver好比wave流驱动。 【RIL结构和接口】 一:串口驱动。 最下层是串口硬件和串口驱动。Modem串口连接最普遍的说法是需要用到9pin的全功能串口,我的看法,在RIL驱动中对DCD配置的修改,使用3线串口也是可以的,但是在完整的产品还是要通过3线之外的其他io来辅助,不然会牺牲掉硬件流控以及唤醒,通知等功能。 二:可选的mux驱动。 考虑到modem不仅有at控制通道,还有数据传输通道,而串口是无协议的接口,所以从软件实现和性能考虑,最好的方式当然是2个串口分别提供。但实际中常见的都是1个串口的,支持gsm0710协议的modem能够实现在1个物理串口基础上虚拟多路串口。怎么判断是否支持多路复用? modem用AT+CMUX命令来完成多路复用协议。Cellcore里面Gsm 07.10协议已经提供源码实现mux07_10.dll,默认的虚拟出2个串口COM7和COM9.典型应用中,COM7作为AT命令通道,COM9作为数据通道,这样意味着在gprs状态下语言短信业务有可能可以同时使用,不必退出data模式。如果你的modem本身就已经有2路物理串口,那么710mux驱动是不需要的。如果你的modem并不支持GSM 07.10协议,只有+++退出data模式了。 三:RIL驱动。 710mux驱动之上就是ril驱动了。MS已经抽象了大部分ril驱动的功能,通过了MDD源码,所以写一个ril驱动就是把自己modem相关的代码和MDD链接成一个流驱动rilgsm.dll。ril驱动与串口驱动的最大不同在于,ril是同时支持多个应用使用的,每次open都new一个Instance对应。 上层应用打开RIL之后就可以使用RIL流驱动的IOCTL来使用RIL驱动。 四:RIL代理层 直接使用ril驱动显得不方便,所以MS继续封装了一个RILProxy的层,由它来和驱动打交道,这个RIL Proxy的实体是ril.dll,函数形式都是RIL_XXX(),函数声明在ril.h文件。基本上所有的应用都是使用代理层来实现。 五:应用层 RIL Proxy的上层是TAPI/ExTAPI, SIM管理程序,SMS管理程序,电话,以及是基于gprs的网络应用程序。如图1,这些顶层的应用也许并没有直接和RIL驱动打交道,中间还有一些代理层,如下面列出的celltsp.dll, sms.dll等。 tapi-> tsp(celltsp.dll) -> ril代理(ril.dll) –> rilgsm.dll Sim -> sim api(cellcore.lib) -> ril.dll ->rilgsm.dll Sms -> sms api(sms.dll) -> sms provider(sms_provider.dll) ->smsdrv.dll -> ril.dll -> rilgsm.dll 再往上,还有connection manager(在CE6 R3包含)连接管理器api, ATCI和Assisted tapi这些。 ATCI是保留给应用一条对modem直接发AT命令的管道,但只在wm中有ce并没有包含。Assisted Tapi在ce6的文档仅仅包含tapiRequestMakeCall,按照理解,这个是提供给系统拨号软件之外的第三方软件一个请求拨号的接口,会转发到系统的拨号软件处理。至于connection manager是09年10月发布R3版本中的新增内容,如同wm中的CM模块,这对应用而言是很有吸引力的模块,具有自动完成各种网络连接,自动选择网络,自动重拨,永远在线按需使用等功能,遗憾的是根据我目前实验,因为DMProcessConfigXML在CE无实现,CM配置存在困难,如您有答案不吝赐教。 http://www.study-bbs.com/thread-29359-1-1.html
- RIL 驱动开发一
- WinCE RIL层驱动开发日志(一)
- WinCE6 RIL驱动开发日志(四)
- WinCE6 RIL驱动开发日志(五)
- RIL 驱动
- WinCE的RIL驱动开发日志(二)
- WinCE 6 RIL层驱动开发日志(三)
- ril驱动解析
- RIL驱动介绍
- ZTE ANDROID RIL驱动
- Android 的RIL驱动模块
- RIL及其问题(驱动 串口)
- RIL开发过程
- RIL开发过程
- RIL开发过程
- WinCE6 RIL驱动开发日志(六)——完结篇
- wince驱动开发一
- android 驱动开发一
- java数据类型转换
- Flex中创建RSS阅读器
- windows中遍历指定文件夹下的所有子文件夹
- [精]自动生成Makefile的详细过程
- LED照明灯具与传感器技术
- RIL 驱动开发一
- RIL开发过程
- MSDN关于RIL的翻译
- Eclipse CDT Makefile Project, or NOT Makefile Project
- PLI Library Routines
- WinCE RIL SMS
- 抽象类中应注意的问题
- vs2008 转换VS2005工程方法
- [任天堂社长访谈之:Nintendo 3DS内置软件