由于 MBIM 1.0 勘误表规范缺少使用新的或修改的有效负载更改现有 CID 的机制,Windows 10版本 1903 引入了 MBIM 1.0 扩展 2.0 来扩展接口以支持 5G。
主机通过两种方式了解设备的 MBIMEx 版本:
- MBIM 扩展功能描述符。
- 可选MBM_CID_VERSION消息(如果设备支持它并声明支持它)。
如果这两者不同,则更高版本在设备枚举到主机的持续时间内规定 MBIMEx 版本。 较高的 MBIMEx 版本称为设备 宣布的 MBIMEx 版本。 设备宣布的 MBIMEx 版本可能低于其本机 MBIMEx 版本,后者是设备支持的最高 MBIMEx 版本。 设备只能通过MBIM_CID_VERSION消息显式了解主机的 MBIMEx 版本。
在任何版本中,主机始终在设备初始化序列的开头使用MBIM_CID_DEVICE_SERVICES查询设备,以查找受支持的服务和 CID。
如果设备支持MBIM_CID_VERSION并在MBIM_CID_DEVICE_SERVICES查询响应中播发其支持,则不了解MBIM_CID_VERSION或 MBIMEx 版本低于 2.0 的主机将忽略它。 同时,了解MBIM_CID_VERSION且本机 MBIMEx 版本为 2.0 或更高版本的主机使用主机的本机 MBIMEx 版本向设备发送MBIM_CID_VERSION消息,CID 是收到MBIM_CID_DEVICE_SERVICES响应后发送到设备的第一个 CID。
如果设备在响应MBIM_CID_DEVICE_SERVICES查询后从主机接收的第一个 CID MBIM_CID_VERSION,则设备知道主机的 MBIMEx 版本。
如果设备在响应MBIM_CID_DEVICE_SERVICES查询后从主机接收的第一个 CID 是任何其他 CID,则设备假定主机的本机 MBIMEx 版本为 1.0。
如果设备不支持MBIM_CID_VERSION,则不会使用 MBIM_CID_VERSION 响应MBIM_CID_DEVICE_SERVICES查询。 因此,主机不会发送MBIM_CID_VERSION消息,并假定设备的本机 MBIMEx 版本为 1.0。
从功能上看,较高 MBIMEx 版本是所有较低 MBIMEx 版本的超集。 主机支持具有已宣布的 MBIMEx 版本在主机的本机 MBIMEx 版本或低于主机的本机 MBIMEx 版本的所有设备。 如果设备宣布的 MBIMEx 版本高于主机的本机 MBIMEx 版本,则主机不应支持该设备,并且在这种情况下主机的确切行为未定义。
打算使用较旧主机的设备最初应播发 MBIMEx 版本 1.0 或最低主机 MBIMEx 版本,该设备打算使用 MBIM 扩展功能描述符。
如果主机发送的 MBIMEx 版本高于最初播发的设备版本MBIM_CID_VERSION,则设备应在MBIM_CID_VERSION响应中指示更高的 MBIMEx 版本,最高为主机的本机 MBIMEx 版本和设备本机 MBIMEx 版本中的较小版本。
下表显示了一个兼容性矩阵,其中包含三个假设主机和三个假设设备,每个设备都声明了其本机 MBIMEx 版本。 设备最初在 USB 描述符中播发 MBIMEx 1.0 版。 矩阵显示每个设备与每个主机的行为方式。
本机 MBIMEx 版本 1.0
设备最初播发 MBIMEx 1.0。 无MBIM_CID_VERSION交换。 兼容的设备和主机。 默认情况下适用于 MBIMEx 版本 1.0。 设备最初播发 MBIMEx 1.0。 无MBIM_CID_VERSION交换。 主机使用 MBIMEx 1.0 处理设备。 5G NSA 设备本机 MBIMEx 版本 2.0
设备最初播发 MBIMEx 1.0。 无MBIM_CID_VERSION交换。 设备知道主机具有 MBIMEx 1.0,并继续使用 MBIMEx 1.0。 设备最初播发 MBIMEx 1.0。 主机发送MBIM_CID_VERSION以通知设备主机支持 MBIMEx 2.0。 设备使用 MBIMEx 2.0 进行响应。 双方继续执行 MBIMEx 2.0。下表列出了 MBIMEx 版本 2.0 中修改的所有现有 CID 及其修改的有效负载。 这些 CID 中的所有未提及有效负载以及表中未提及的所有其他 CID 都会从 MBIMEx 版本 1.0 继续保留,并且保持不变。
对于支持 MBIM Microsoft 扩展 2.0 或更高版本的 MBB 驱动程序,MBIM_CID_VERSION 是用于在主机和设备之间交换 MBIM 版本信息的必需命令。 对于具有无法识别此 CID 的驱动程序的市场内设备,主机将假定并提供向后兼容性。
如果设备支持此命令,主机会将此命令作为查询发送。 该查询包含主机当前支持的 MBIM 版本号和 MBIM 扩展版本号。
在设备端,设备根据 版本控制方案中定义的规则调整其宣布的 MBIM 版本号和 MBIM 扩展版本号,然后在响应中将它们发送到主机。
此命令在 基本连接扩展 服务下定义。
通知设备主机的本机 MBIM 版本号和 MBIM 扩展版本号。 InformationBuffer 包含以下MBIM_VERSION_INFO结构。
不适用。
MBIM_COMMAND_DONE 中的 InformationBuffer 包含MBIM_VERSION_INFO结构。
不适用。
此 CID 仅使用 MBIM 规范修订版 1.0 第 9.4.5 节中定义的泛型状态代码。
此 CID 与在 MB 多 SIM 卡操作上定义的相同,该操作本身是 MBIM 规范修订版 1.0 第 10.5.1 节中定义的MBIM_CID_MS_DEVICE_CAPS的扩展。 对于 MBIM Extensions 2.0 版,MBIM_DATA_CLASS表中定义了新的数据类,使设备能够报告其 5G 功能。 MBIMDataClass5G_NSA表示设备支持 3GPP TS 37.340 中定义的 5G 非独立 (NSA) ,MBIMDataClass5G_SA表示设备支持 5G 独立 (SA) (也在 3GPP TS 37.340 中定义)。
如果设备支持这两个新数据类,则应设置这两个位。
此命令是 MBIM 规范修订版 1.0 中已定义的 MBIM_CID_REGISTER_STATE CID 的扩展。 此扩展为响应结构添加了名为 PreferredDataClasses 的新成员。
InformationBuffer 为 null,InformationBufferLength 为零。
设置注册状态。 此信息与 MBIM 规范修订版 1.0 中所述相同。
MBIM_COMMAND_DONE 中的 InformationBuffer 包含以下MBIM_REGISTRATION_STATE_INFO_V2结构。 与 MBIM 规范修订版 1.0 第 10.5.10.6 节中定义的MBIM_REGISTRATION_STATE_INFO结构相比,以下结构具有新的 PreferredDataClasses 字段。 除非此处另有说明, 否则 MBIM 规范修订版 1.0 的表 10-55 中的字段说明适用于此结构。
MBIM_REGISTRATION_STATE_INFO_V2
如果 RegisterState 不是 MBIMRegisterStateHome、MBIMRegisterStateRoaming 或 MBIMRegisterStatePartner,则此值设置为 MBIMDataClassNone。
16 4 CurrentCellularClass MBIM_CELLULAR_CLASS 指示当前用于多模式函数的手机网络类。 有关详细信息,请参阅 MBIM 规范修订版 1.0 中的表 10-8 。对于单模式函数,这与 MBIM_CID_DEVICE_CAPS 中报告的手机网络类相同。 对于多模式函数,使用更新的 CurrentCellularClass 指示从 CDMA 转换到 GSM,反之亦然。
20 4 ProviderIdOffset OFFSET 从此结构的开头 计算到数字 (0-9) 表示网络提供程序标识的 名为 ProviderId 的 字符串的偏移量(以字节为单位)。对于基于 GSM 的网络,此字符串是三位数移动国家/地区代码 (MCC) 和两位或三位数移动网络代码 (MNC) 串联。 基于 GSM 的运营商可能有多个 MNC,因此有多个 ProviderId。
对于基于 CDMA 的网络,此字符串是 SID) (五位数的系统 ID。 通常,基于 CDMA 的运营商具有多个 SID。 通常,一个运营商为每个市场都有一个 SID,通常按法规(例如大都会统计区域 (MSA) 美国)划分。 如果此信息不可用,基于 CDMA 的设备必须指定MBIM_CDMA_DEFAULT_PROVIDER_ID。
处理查询请求并且注册状态处于自动注册模式时,此成员包含当前与设备关联的提供程序 ID, ((如果适用) )。 当注册状态处于手动注册模式时,此成员包含请求设备注册的提供程序 ID (即使提供程序) 不可用也是如此。
处理设置请求并且注册状态处于手动模式时,这包含主机选择的提供程序 ID,用于注册设备的主机。 当注册状态处于自动注册模式时,将忽略此参数。
如果提供程序 ID 不可用,必须将 CDMA 1xRTT 提供程序设置为 MBIM_CDMA_DEFAULT_PROVIDER_ID。
24 4 ProviderIdSize 大小 (0..12) ProviderId 的大小(以字节为单位)。 28 4 ProviderNameOffset OFFSET 从此结构的开头开始计算到表示网络提供商名称的名为 ProviderName 的字符串的偏移量(以字节为单位)。 此成员最多只能MBIM_PROVIDERNAME_LEN个字符。对于基于 GSM 的网络,如果首选国家/地区首字母缩写和移动网络名称 (PCCI&N) 的长度超过 20 个字符,则设备应缩写网络名称。
当主机设置首选提供程序列表时,将忽略此成员。 设备应为没有此信息的设备指定 NULL 字符串。
32 4 ProviderNameSize 大小 (0..40) ProviderName 的大小(以字节为单位)。 36 4 RoamingTextOffset OFFSET 从此结构的开头计算到名为 RoamingText 的字符串的偏移量(以字节为单位),以通知用户设备正在漫游。 此成员最多只能包含 63 个字符。 当注册状态为 MBIMRegisterStatePartner 或 MBIMRegisterStateRoaming 时,此文本应向用户提供其他信息。 此成员是可选的。 40 4 RoamingTextSize 大小 (0..126) RoamingText 的大小(以字节为单位)。 44 4 RegistrationFlag MBIM_REGISTRATION_FLAGS MBIM 规范修订版 1.0 中按表 10-48 设置的标志。 48 4 PreferredDataClass UINT32 MBIM_DATA_CLASS中值的位图,表示设备上已启用的数据类。 设备只能使用已启用的数据类进行操作。 动态 4 DataBuffer DATABUFFER 包含 ProviderId、 ProviderName 和 RoamingText 的数据缓冲区。通知包含MBIM_REGISTRATION_STATE_INFO_V2结构。
此 CID 仅使用 MBIM 规范修订版 1.0 的第 9.4.5 节中定义的通用状态代码。
此命令是 MBIM 规范修订版 1.0 中定义的现有MBIM_CID_PACKET_SERVICE的扩展。
此扩展为响应结构添加了名为 FrequencyRange 的新成员,并将 HighestAvailableDataClass 成员重命名为 CurrentDataClass ,以阐明其用途。
CurrentDataClass 指示设备当前注册到的无线电访问技术 (RAT) 。 它包含 来自 MBIM_DATA_CLASS 的单个值。
FrequencyRange 指示设备当前使用的频率范围。 仅当 CurrentDataClass 字段指示设置了MBIMDataClass5G_NSA位或MBIMDataClass5G_SA位时,这才有效。
InformationBuffer 为 null,InformationBufferLength 为零。
MBIM 规范修订版 1.0 中介绍了 set 命令的信息。
MBIM_COMMAND_DONE 中的 InformationBuffer 包含MBIM_PACKET_SERVICE_INFO_V2结构。 与 MBIM 规范修订版 1.0 的第 10.5.10.6 节中定义的MBIM_PACKET_SERVICE_INFO结构相比,此新结构具有 CurrentDataClass 和 FrequencyRange 字段。 除非此处另有说明,否则 MBIM 规范修订版 1.0 的表 10-55 中的字段说明在此处适用。
MBIM_PACKET_SERVICE_INFO_V2
MBIM_FREQUENCY_RANGE
以下枚举用作上述MBIM_PACKET_SERVICE_INFO_V2结构中的值。
通知包含MBIM_PACKET_SERVICE_INFO_V2结构。
此 CID 仅使用 MBIM 规范修订版 1.0 第 9.4.5 节中定义的泛型状态代码。
此 CID 是MBIM_CID_SIGNAL_STATE的扩展,引入了用于信号状态条件的 RSRP 和 SNR。 仅当设备指示支持 MBIM 扩展版本 2.0 时,此新扩展才有效。 如果调制解调器支持 MBIMDataClass5G_ (N) SA 数据类,则此扩展是必需的。
仅当相应的 SystemType 为 MGBIMDataClassLTE 或 MBIMDataClass5G_ (N) SA 时,RSRP 和 SNR 字段才有效。 如果调制解调器报告 RSRP 和/或 SNR,则 RSSI 字段应设置为值 99。
如果相应的 SystemType MBIMDataClass5G_ (N) SA,则 RSRP 字段是必需的,SNR 字段是可选的。 如果相应的 SystemType 为 MBIMDataClassLTE,则 RSRP 和 SNR 字段是可选的,可以改用 RSSI 字段。 在这种情况下,可以通过为 RsrpSnrOffset 和 RsrpSnrSize 成员设置零 (0) 值来省略 RSRP 和 SNR 字段。
InformationBuffer 为 null,InformationBufferLength 为零。
MBIM 规范修订版 1.0 中介绍了设置命令的信息。
MBIM_COMMAND_DONE 中的 InformationBuffer 包含以下MBIM_SIGNAL_STATE_INFO_V2结构。
MBIM_SIGNAL_STATE_INFO_V2
MBIM_RSRP_SNR
以下MBIM_RSRP_SNR结构用于MBIM_SIGNAL_STATE_INFO_V2结构的 DataBuffer 。
MBIM_RSRP_SNR_INFO
以下MBIM_RSRP_SNR_INFO结构的数组用于MBIM_RSRP_SNR结构的 DataBuffer 。
通知包含MBIM_SIGNAL_STATE_INFO_V2结构。
此 CID 仅使用 MBIM 规范修订版 1.0 第 9.4.5 节中定义的泛型状态代码。
OS 应按以下顺序处理用于信号强度计算的注册表设置:
数据类是 CDMA (或其变体) 或 TDSCDMA
- 如果“per_iccid”下存在旧信号条映射表,请使用此设置。
- 否则,如果“per_device”下存在旧信号条映射表,请使用此设置。
- 否则,请在代码中使用默认信号条映射表。
Dataclass 为 GSM 或 WCDMA
- 如果“per_iccid”下存在特定于 GSM 或 WCDMA 技术的信号条映射表,请使用此设置。
- 否则,如果“per_device”下存在特定于 GSM 或 WCDMA 技术的信号条映射表,请使用此设置。
- 否则,如果“per_iccid”下存在旧信号条映射表,请使用此设置。
- 否则,如果“per_device”下存在旧信号条映射表,请使用此设置。
- 否则,请在代码中使用默认信号条映射表。
- RSSI >= 17;5 条
- RSSI >= 12;4 条
- RSSI >= 7;3 条
- RSSI >= 4;2 条
- RSSI >= 2;1 条
- 还;0 条
数据类为 LTE,调制解调器报告 RSRP
- 如果 RSRP 的 LTE 技术特定信号条映射表位于“per_iccid”下,请使用此设置。
- 否则,如果“per_device”下存在 RSRP 的 LTE 技术特定信号条映射表,请使用此设置。
- 否则,请在代码中使用默认的 LTE RSRP 信号条映射表。
数据类为 LTE,RSSI 由调制解调器报告
- 如果“per_iccid”下存在 LTE 技术特定的信号条映射表,请使用此设置。
- 否则,如果“per_device”下存在 LTE 技术特定的信号条映射表,请使用此设置。
- 否则,如果“per_iccid”下存在旧信号条映射表,请使用此设置。
- 否则,如果“per_device”下存在旧信号条映射表,请使用此设置。
- 否则,请在代码中使用默认信号条映射表。
数据类为 NR
- 如果“per_iccid”下存在 RSRP 的 NR 技术特定信号条映射表,请使用此设置。
- 否则,如果“per_device”下存在 RSRP 的 NR 技术特定信号条映射表,请使用此设置。
- 否则,请在代码中使用默认的 NR RSRP 信号条映射表。
Dataclass 为 NSA
- 如果未设置 EnableLTEReportingOnNSA 或设置为 0:
- 遵循 Dataclass NR 流。
- 如果 EnableLTEReportingOnNSA 设置为 1:
- 遵循 DATAclass LTE 流 (RSRP 或 RSSI) 。
- 如果 EnableLTEReportingOnNSA 设置为 2:
- 如果 FrequencyRange 为 FR1,请按照 Dataclass LTE 流 (RSRP 或 RSSI) 。
- 如果 FrequencyRange 为 <> FR1,请遵循 Dataclass NR 流。
- 如果 EnableLTEReportingOnNSA 设置为 3:
- 如果 FrequencyRange 为 FR2,请按照 DATAclass LTE 流 (RSRP 或 RSSI) 。
- 如果 FrequencyRange 为 <> FR2,请遵循 Dataclass NR 流。
- 如果 EnableLTEReportingOnNSA 设置为 4:
- 使用 LTE 和 NR 流计算信号条。
- 选择最强的 。
EnableLTEReportingOnNSA:
0 = “使用 5G 信号”
1 = “使用 LTE 信号”
2 = “如果在 5G 频率范围 1 上设置,请使用 LTE 信号”
3 = “如果在 5G 频率范围 2 上设置,请使用 LTE 信号”
4 = “使用 LTE 和 5G 的最强信号”
EnableNRSnrReporting:
0 = “仅使用 RSRP”
1 = “同时使用 RSRP 和 SNR”
EnableLTESnrReporting:
0 = “仅使用 RSRP”
1 = “同时使用 RSRP 和 SNR”
Cellular/PerDevice/SignalBarMappingTable/SignalForBars/<SignalBar>
修改与要显示的条数对应的最小信号强度值。 技术特定的设置优先。 每个条形图数都需要有有效的信号强度映射,此设置才能生效。
Cellular/PerDevice/SignalBarMappingTable/SignalForBars/GERAN/<SignalBar>
修改与设备在 GSM 上定点时要显示的条数对应的最小信号强度值。 每个条形图数都需要有有效的信号强度映射,此设置才能生效。
Cellular/PerDevice/SignalBarMappingTable/SignalForBars/WCDMA/<SignalBar>
修改与设备在 WCDMA 上定点时要显示的条数对应的最小信号强度值。 每个条形图数都需要有有效的信号强度映射,此设置才能生效。
Cellular/PerDevice/SignalBarMappingTable/SignalForBars/LTE/<SignalBar>
修改与设备在 LTE 上定点时要显示的条数对应的最小信号强度值。 每个条形图数都需要有有效的信号强度映射,此设置才能生效。
Cellular/PerDevice/SignalBarMappingTable/SignalForBars/LTERSRP/<SignalBar>
修改设备在 LTE 上定营时对应于要显示的条数的最小信号强度值。 每个条形图数都需要有有效的信号强度映射,此设置才能生效。
Cellular/PerDevice/SignalBarMappingTable/SignalForBars/LTERSSNR/<SignalBar>
修改与设备在 LTE 上定点时要显示的条数对应的最小信号强度值。 当 EnableLTESnrReporting 设置为 1 时使用。 每个条形图数都需要有有效的信号强度映射,此设置才能生效。
Cellular/PerDevice/SignalBarMappingTable/SignalForBars/NRRSRP/<SignalBar>
修改与设备在 5G 上定营时要显示的条数对应的最小信号强度值。 每个条形图数都需要有有效的信号强度映射,此设置才能生效。
Cellular/PerDevice/SignalBarMappingTable/SignalForBars/NRRSSNR/<SignalBar>
修改与设备在 5G 上定营时要显示的条数对应的最小信号强度值。 当 EnableNRSnrReporting 设置为 1 时使用。 每个条形图数都需要有有效的信号强度映射,此设置才能生效。
<SignalBar> 可以是 1-5 个值。
如果 OEM/MO 未能正确配置 RSSI 的映射表或它不完整,请使用默认映射:
如果 OEM/MO 未能正确配置 RSRP 的映射表或它不完整,请使用默认映射:
如果 OEM/MO 无法正确配置 SNR 的映射表或它不完整,请使用默认映射:
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/sjkxydsj/19769.html