RIL 设计思想解析(一)
一.RIL 概述
目前的智能机在硬件上多采用双cpu的架构,一个是基带处理器,主要处理数字信号、语
音信号的编码解码以及GSM通信协议,另一个是应用处理器,运行操作系统和各种应用程序。
基带处理器、射频和其它外围芯片作为一个模块,成为GSM/GPRS modem,提供AT命令接口。
网络的应用已经是一个需求的热点,而目前的GSM模块大多都能支持GPRS功能。应用处理器
通过AT命令集与带GPRS功能的无线通讯模块通信,为实现网络的应用提供了一个最底层的支
持。
从软件的角度来看,RIL(Radio Interface Layer)工作在PPP、TCP/IP协议之下,负责数
据的可靠传输、AT命令的发送以及response的解析。当然,除了对网络的支持,RIL也支持
SMS、Voice Call等功能。从这一点来看,RIL的性能好坏影响着所有无线通信应用相关的软
件,而软件设计的合理性又影响着RIL的性能。
Windows Mobile是用在智能手机上的主流操作系统之一。微软是这样介绍RIL的:作为
Windows Mobile的一个非常重要的组件,RIL使各种无线语音和数据应用成为可能。运行在
Windows Mobile上的软件可以通过RIL无缝地与GSM/GPRS或者CDMA2000 1X modem通信。RIL
的位置处于无线基带系统的协议栈之上,Windows Mobile的CellCore层之下。由于RIL隐藏
了硬件上的一些细节,OEM厂商可以根据自己的需要将不同型号的无线modem集成到它们的产
品之中。
Windows Mobile 提供了RIL 的源码,因此在RIL上的开发工作相对来说比较简单了,主
要是根据不同厂商对AT命令以及Telephony features的差异对RIL做一些局部的修改和调
试。
但美中不足的是,微软没有提供 RIL 的设计文档,而且关于 RIL 架构的介绍也是最高层
的,不能够很深入地了解 RIL 的设计者在构建这个复杂组件时考虑了哪些问题,又是基于哪
些思想和方法来解决的,最终又是如何把一个个的片断整合起来形成一个精密运转的系统。
对我们而言,一个现实的途径就是通过对源码的分析把这个过程动态地还原出来。
这样做有什么意义?第一,在了解工作原理和结构后,有助于我们在 RIL 开发过程中能
够顺利地解决问题。第二,有利于积累设计经验和提高自己的设计水平。这一点也许是最重
要的,"他山之石,可以攻玉"。在吸收和掌握了 RIL 的设计思想后,也可以在自己的手机平
台上实现自己的 RIL。
当然,关于 RIL 的可讨论的问题很多,对于每一个关键的设计问题都可以单独作为一个
主题来阐述。由于重点是放在介绍 RIL 背后的的设计思想,所以尽量砍去旁支末节,而是专
注于基本问题和方法的讨论。要真正理解这些人怎么想的,所以最好的方式是动态地展现整
个思考过程,去模仿它们的足迹而不是生硬地 copy。
RIL 控制的设备是无线 modem,面临的第一个问题就是怎么把数据发送出去,又怎么接收
发给自己的数据。整篇其实就是围绕这个问题展开的,最终使我们的系统能够建立起数据传
输的双向通道,让数据有效率地往返流动。
二.应用场景和问题域
如图 1,手机中的 GSM/GPRS modem 支持呼叫控制、SMS、GPRS 等功能,以 AT 命令
方式提供了通信接口。对于每一个 AT 命令,Modem 都回返回一个 solicited response。现在
有两个应用程序:SMS_App1 和 SMS_App2。从用户的角度来看,要做到这两个应用程序能
够并发地运行。