RIL QMI Linux Data Start Guide

更新时间:2024-04-12 23:36:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

RIL/QMI/Linux Data Start Guide 简介

本文档为RIL/QMI/Linux Data入门介绍文档,目的是指导RIL新同事学习的内容和顺序,加快学习速度,尽快掌握相关知识。RIL/QMI/Linux Data涉及的内容比较多,要掌握这些模块需要学习如下内容:

AP侧:掌握Android Framework Telephony、RILD、QMI、DSS、NETMGR等 AMSS侧:了解CM、WMS、UIM、PBM、STK、MMGSDI等模块的接口和典型消息流程,Data Service相关模块和Call Flow

相关协议:了解GSM、WCDMA、CDMA相关协议,例如MO、MT信令流程,SIM卡相关协议等。

由于内容太多,我们需要循序渐进,可以按照下面的顺序学习,具体每个模块相关资料和代码列在后面

? RILD/RIL-LIB/Reference-RIL ? Framework RIL JAVA

? QCRIL框架,CM、WMS、UIM模块典型的业务流程(例如MO CALL、MT

CALL、MO SMS、MT SMS、开机流程等),可以同时参考AMSS侧相关模块的介绍、接口文档、典型Case的Call Flow,不需要深入学习AMSS侧相关模块代码,两边结合更容易理解业务流程 ? QMI架构介绍 ? QCRIL DATA ? NET MGR

? QMI MUX、QMI CTRL、QMI Service Linux侧代码 ? DSS

? Framework Data Call相关代码

注:RILD/RIL-LIB/Framework这三部分为Android平台代码,如果以前做过其它平台则可以直接跳过去;其他部分为Qualcomm平台独有部分。

Android RIL

文档

Android RIL部分网上有很多资料可供参考,如果以前没有接触过RIL可以先看一些介绍RIL架构的文档,先了解Android中Telephony整体架构,Telephony的层次架构、模块,每个模块的功能,重点先放在Rild和QCRIL上,掌握之后再去看Framework层的RIL JAVA和GSMPhone或者CDMAPhone。

具体可以先看一下下表列出的一些资料,其中Android Radio Layer Interface这篇PPT比较好,讲的很清楚。另外Reference-ril使用AT命令与Modem通信,与Qualcomm平台差别很大,reference-ril只需要大致了解其处

理流程即可,不需要深入学习其代码。

编名称 号

1 Radio Layer Interface

http://www.netmite.com/android/mydroid/development/pdk/docs/telephony.html 2

Android电话系统-概述篇 http://blog.csdn.net/maxleng/article/details/5576509 3

Android电话系统之-RILD

http://blog.csdn.net/maxleng/article/details/5576637

4

Android电话系统之RIL-Java http://blog.csdn.net/maxleng/article/details/5593759 5

Android电话系统之GSMCallTracker http://blog.csdn.net/maxleng/article/details/5593780 6

Android RIL结构分析与移植 http://wenku.http://www.wodefanwen.com//view/2ed3105abe23482fb4da4c09.html描述

Android SDK中的RIL介绍

Android平台

RIL整体架构 RILD框架及内部原理介绍,QCRIL是RILD的一部分

Framework层

RIL Command Interface

GSM Call

Tracker Call管理

介绍了RILD的

Event机制、初始化流程,以及Request、

Response流程分析,

7 Android Radio Layer Interface

http://www.slideshare.net/ssusere3af56/android-radio-layer-interface

比较详细的介绍了RILD;包括架构,各个子模块的功能和实现细节,以及数据处理流程,值得仔细阅读

代码

重点看RILD和RIL LIB,了解一下Reference-ril,其他模块在看流程时可以参考一下 编名称 描述 号

1 Rild hardware\\ril\\rild

Rild

mian函数 2 RIL hardware\\ril\\libril

Library RIL抽象层

3 referenchardware\\ril\\reference-ril

e-ril 基于AT命令的Vendor-spec实现

4 RIL JAVA

Framework层Command Interface,Framework通过RIL JAVA与RILD通信 5 GSM

Phone相关实现代码 6 CDMA

Phone相关实现代码 7 Phone

APP

Phone服务运行在该APP Call处理也在该APP 8 MMS和

SMS APP 9 STK APP

frameworks\\base\\telephony\\java\\com\\android\\internal\\telephony\\RIL.java

frameworks\\base\\telephony\\java\\com\\android\\internal\\telephony\\gsm

frameworks\\base\\telephony\\java\\com\\android\\internal\\telephony\\cdma

packages\\apps\\Phone

packages\\apps\\Mms packages\\apps\\Stk

QCRIL

文档

该部分为Qualcomm Vendor-spec RIL实现,与Reference-ril完全不同,比传统的AT命令方式更难理解,代码中有两套RIL:qcril_fusion和qcril_qmi,目前大部分平台都是使用qcril_fusion,但是后面会逐步过渡到qcril_qmi。Qcril_fusion实现方式大部分功能通过ONCRPC,只有Data Service和UIM使用QMI。建议仔细阅读《高通平台RIL简介.pdf》这篇文章,写的比较详细。在涉及到相关流程时,请参考一下AMSS对应模块文档中的Call Flow,这样更容易理解。另外我们只需要看QCRIL的代码,ONCRPC的代码不需要看。

编名称 号

1 80-VM248-1_C_Android_QCRIL_Overview 2 3

描述

4

5 6

QCRIL Overview,目前使用较多的为该架构

80-N2442-1_C_Linux_Android_QCRIL_QMI 基于QMI方式的QCRIL,

暂时不用看

高通平台RIL简介.pdf TS内部总结文档,比较详

细,建议以此为重点学习QCRIL

80-VG802-ONCRPC介绍,QCRIL

1_E_MSM7xxx_QSD8xxx_QSTxxxx_Linux_ONCRPC Fusion使用ONCRPC调用

Modem侧的CM、WMS等服务

80-V3568-1_J_Multimode_CM_Overview.pdf Call Manager Overview 80-N2269-1_C_Dual_SIM_Dual_Standby_Overview 双卡双待Overview

代码

重点看qcril_fusion,qcril_qmi先不看 编名称 描述 号

1 Qcril fusion vendor\\qcom\\proprietary\\qcril\\qcril_fusion 2 Qcril_qmi vendor\\qcom\\proprietary\\qcril\\qcril_qmi 3 UIM vendor\\qcom\\proprietary\\qcril\\common\%uim 4 Data vendor\\qcom\\proprietary\\qcril\\common\\data

QMI

文档

先了解一下QMI架构,包括Mux、Ctrl、Service等,然后看一下目前使用的QMI Service(WDS、UIM、QoS、NAS)模块介绍。qmi_linux_application_note这篇文章介绍了Linux端的QMI具体实现细节,以及数据处理流程。

编名称 描述 号

1 80-VR459-QMI Framework Overview

1_C_QMI_Framework_Overview.pdf 介绍QMI Framework的PPT

2 3 4

80-VB816-1_A_QMI_Architecture.pdf

80-VB816-3_E_QMI_Control_Service_QMI_CTL.pdf 80-VB816-9_E_QMI_Wireless_Message_Service.pdf 80-VB816-13_A_QMI_for_WMS.pdf

80-VB816-10_F_QMI_Voice_Service.pdf 80-VB816-15_E_QMI_PBM.pdf qmi_linux_application_note

QMI架构介绍

QMI CTRL SPEC 详细的接口定义

QMI Wireless Message Service

SMS和CB详细接口定义 QMI SMS PPT

QMI Voice(CALL、USSD、SS)接口Spec QMI PBM接口Spec TS内部文档

5 6 7 8

代码

编名称 描述 号

1 Qmux、QCTL、vendor\\qcom\\proprietary\\qmi\\src

Service代码

Linux Data

文档

该部分涉及的内容较多,包括Framework Data Call、QCRIL、NETMGR、DSI_NETCTRL、DSS、VED Driver等,重点看80-VH396-1_A_Linux_Data_Service_Architect这篇文档。 编名称 描述 号

1 80-VH396-Data Service Architecture

1_A_Linux_Data_Service_Architect 2 80-V6123-Multimode Data Services

1_J_Multimode_Data_Services 3 80-VT996-1_D_QMI_WDS QMI WDS介绍 4 80-VB816-QMI WDS接口定义

5_L_QMI_WDS_Major_v1_Minor_v9 5 80-VF536-2_B_QMI_QoS_FDD Quality of Service 6 netmgrd介绍 TS内部文档 7 setup_data_msc Setup Data Call和Deactive

Data Call的MSC图

代码

编名称 描述 号

1 RIL Data vendor\\qcom\\proprietary\\qcril\\common\\data 2 DSI NET CTRL vendor\\qcom\\proprietary\\data\\dsi_netctrl 3 Netmgr vendor\\qcom\\proprietary\\data\\netmgr 4 Dss vendor\\qcom\\proprietary\\data\\dss

5 Framework中Data frameworks\\base\\telephony\\java\\com\\android\\inter

Call相关部分,例nal\\telephony 如

DataConnection、DataConnectionTracker

http://wenku.http://www.wodefanwen.com//view/436e1deb5ef7ba0d4b733b04.html

本文来源:https://www.bwwdw.com/article/ni0p.html

Top