android QMI机制---概论
前言:
Qualcomm MSM Interface,作用用于AP和BP侧的交互,通俗说法就是让设备终端TE(可以是手机,PDA,计算机)
对高通BP侧的AMSS系统进行操作,如调用函数,读取数据,设置其中的NV项等。
QMI的核心称之为QMI框架(QMI Framework),其主要功能包括以下3点:
1,连接MSM模块和设备终端,提供一个正交的控制和数据通道。在QMI的消息用有两种定义,一种是
QMIControl Message,另一种是QMI DataMessage,支持这两种消息并发,不会互相干扰导致出错。
2,列举一系列的枚举逻辑设备,提供给连接使用。QMI机制类似于一个服务器机制,有相应的client端
和services端,对应于QMI的control point和service。在AP向BP发送请求时,AP作为client端,当AP
接收BP侧返回的响应时,AP作为services端。QMI包含了一系列的QMI Service,例如nas,voice,wds等,
这些不同的services相当于不同逻辑设备,给不同的app调用。
3,QMI有相应的消息和消息的协议,设备终端就是通过这些消息来访问AMSS。对于不同的qmi消息,
消息长度不一样,可自己定义消息长度,不同的qmi消息,消息格式是相同的。
上图是QMIFramework的一个软件结构图。
从图中可以看出,上层控制点打包对应类型的QMI消息或通过其他操作系统的框架,将要发出的数据传到AP
侧底层的逻辑设备,最后逻辑设备通过内联的总线接口,传到BP侧的AMSS。在代码中可以找到从控制点发
送到逻辑设备的函数。
这个是控制点向BP侧发送同步消息的函数,参数包括走的QMI_Service类型,Service里面消息的名称,
请求消息的初始地址,长度,返回相应的初始地址和长度。逻辑设备和BP侧内联的总线也可以分很多种:
USB,SDIO,共享内存,无线协议802.11等都可以作为总线连接AP和BP。咱们现在开发的MSM平台用
的是共享内存。代码中qmi_port_defs.h中的枚举qmi_connection_id_type定义了AP侧QMI和BP侧的
连接通道,包括集成modem的MSM平台和独立modem的MDM。
在代码中的vendor\qcom\proprietary\qmi\platform目录,linux_qmi_qmux_if_client.c,定义了和BP侧通信
的逻辑设备种类。
目前我们QMI支持的逻辑设备有图中四种,电话系统,音频,蓝牙,GPS。
TE和MSM通信原理图:
两个特点:1.单一的物理链接总线,必须被多个逻辑设备所复用。
2.不同的逻辑设备要求独立的控制信道和数据信道。
QMI终端原理图如下:
从图中可看出,整个QMI架构中,主要是通过QMUX层完成软件上的TE和MSM的交互。
1,一个服务可以对应多个控制点,一个控制点只能对应一个服务。
2,控制点与服务的关系就好比C/S模型中的客户端与服务器关系。
3,如果某程序使用几种QMI服务,那么它就要为每种服务构建一个控制点。
可以看出QMI并不是一个简单的一对一传输通信方式,而是一个服务可以同时接受几个控制点发出的消息,
其实现的原理也是对传输信道的复用。
android QMI机制---概论相关推荐
- Linux中消息机制的通信原理,android QMI机制---概论
前言: Qualcomm MSM Interface,作用用于AP和BP侧的交互,通俗说法就是让设备终端TE(可以是手机,PDA,计算机) 对高通BP侧的AMSS系统进行操作,如调用函数,读取数据,设 ...
- android QMI机制--简介
前言: Qualcomm MSM Interface,作用用于AP和BP侧的交互,通俗说法就是让设备终端TE(可以是手机,PDA,计算机) 对高通BP侧的AMSS系统进行操作,如调用函数,读取数据,设 ...
- 6 android QMI机制---Modem消息接收
原文:https://blog.csdn.net/u012439416/article/details/74277494 6 Modem消息接收 3.1 消息初始化 初始化:qmi_modem_tas ...
- android QMI机制---Modem消息接收
6 Modem消息接收 3.1 消息初始化 初始化:qmi_modem_taskàqmii_init()àqmux_init().qmux_init方法完成对控制通道的初始化后, 通过函数qmuxi_ ...
- android QMI机制---modem消息发送
7 modem消息发送 一般BP侧处理完请求后,都会回应一个响应给AP,一般是用宏QMI_SVC_PKT_PUSH将要作为响应 的消息发送出去.qmi_svc_utils.h中QMI_SVC_PKT_ ...
- android QMI机制---QCRIL消息发送
4 QCRIL消息发送 当ril有请求过来时,就会调用ril库的onRequest()方法,此时就会根据当前Qcril注册的函数列表 进入到qcril_request_api的onRequest_ri ...
- 基于android2.3.5系统:开天辟地Android启动机制[二]
**************************************************************************************************** ...
- Android消息机制Handler用法
这篇文章介绍了Android消息机制Handler用法总结,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 1.简述 Handler消息机制主要包括: Messa ...
- 【腾讯Bugly干货分享】经典随机Crash之二:Android消息机制
为什么80%的码农都做不了架构师?>>> 本文作者:鲁可--腾讯SNG专项测试组 测试工程师 背景 承上经典随机Crash之一:线程安全 问题的模型 好几次灰度top1.top ...
最新文章
- 数据科学工具 Jupyter Notebook 教程(一)
- unity发布安卓黑屏_Unity将携十余爆款新游和多个独立游戏亮相ChinaJoy 2020
- python下载教程pdf-Python教程PDF合集下载
- [小故事大道理] -- GoodMorning,Sir!
- CentOS 7安装zabbix-2.4.8监控
- linux监控http连接数,zabbix监控linux tcp连接数
- jsp的九大内置对象和作用域
- python判断线程结束_判断Threading.start新线程是否执行完毕的实例
- Linux基本命令二(帮助命令)
- 将网页和文档的背景改为绿色来保护眼睛
- 在dll中用DirectSound8同时播放多个wav文件不能发声
- pandownload搜索引擎脚本
- 如何利用模型对大客户风险评估——信用额度进行推测
- 桌面排版神器:Affinity Publisher
- 闲鱼双11全链路营销体系初体验
- 去掉/隐藏 word的回车符
- 管理kde wallet
- 火车站的江湖,远比你想象的深
- PostGISGeography支持功能PostGIS Geography Support Functions
- Tensorflow训练maskrcnn