高通rmnet_lte模块介绍

高通rmnet_lte模块介绍

搜网与网络选择,是指在手机开机过程中,确定注册或者附着到哪个运营商网络及哪个制式的过程,也就是选择PLMN 以及RAT 的过程。

定义

RPLMN(Registered PLMN):是指手机上一次成功注册的网络,需要注意的是,这里必须是成功注册的网络,且需要样机正常关机才会将RPLMN写入到SIM卡中;

HPLMN(Home PLMN):是指归运营商的归属网络,例如联通卡的HPLMN一般是46001

EHPLMN(Equivalent Home PLMN):是指运营商的等效归属网络,例如,中国联通的MCC和MNC有46001、46007等,这些网络均属于EHPLMN;但需要注意的是,国内的SIM卡可能并没有将EHPLMN写入到SIM卡文件系统中;

VPLMN(Visited PLMN):是指UE所访问的PLMN,即当前所在的网络

EFs SIM卡存储信息
EFIMSI – IMSI
EFPLMNwAcT – User-controlled PLMN selector with Access Technology
EFHPPLMN – Higher-priority PLMN search period
EFFPLMN – Forbidden PLMNs
EFLOCI – Location information
EFOPLMNwACT – Operator-controlled PLMN selector with Access Technology
EFHPLMNwAcT – Home HPLMN selector with Access Technology
EFEHPLMN – Equivalent HPLMN
EFLRPLMNSI – Last RPLMN selection indication
EFPSLOCI – Packet-switched location information

NVs Used by the UE
NV 1190, NV_RPLMNACT_I – Stores the last RPLMN RAT information
NV 849, NV_NET_SEL_MODE_PREF_I – 手动选网还是自动选网
NV 850, NV_SERVICE_DOMAIN_PREF_I – Domain CS or PS 

EFS Used by the UE

/sd/rat_acq_order :PLMN选择中的rat 优先级列表(LTE UMTS GSM )

AUTO PLMN选择流程

高通rmnet_lte模块介绍

REG模块

代码路径在:mmcp\nas\reg

入口函数 reg_main

void reg_main(dword dummy) { reg_init_before_task_start();//初始化queue 在reg_put_cmd中填充 reg_timers_initialize();//初始化timer reg_create_efs_config();//init efs reg_ulog_register(); reg_initialize(); reg_nv_initialize_cache();//init nv reg_sim_mmgsdi_init();//建立与MMGSDI 的通信,接受sim 卡消息 for(;;) { sigs = reg_wait(REG_CMD_Q_SIG);//监听signal if (sigs & REG_CMD_Q_SIG) { (void) rex_clr_sigs( reg_tcb_ptr,REG_CMD_Q_SIG);//清空signal while ((reg_cmd_p = (reg_cmd_type*)q_get(&reg_cmd_q) ) != NULL) { reg_state_main(reg_cmd_p); //核心函数,处理各种signal } } }

函数的核心函数的reg_state_main 函数,主要处理REG接收到的SIGNAL,主要有以下几个信号

MS_CM_REG/* messages between CM and REG         */
 MS_MM_REG/* messages between MM and REG         */
MS_GSDI/* messages from/to GSDI               */
MS_TIMER/* Messages indicating timeouts        */
MS_REG_REG/* Messages REG to REG internal */

具体的信号我们可以从QXDMlog 来看,从Call manager 收到信号,到发送拨号请求给RRC,整个流程如下:

//REG Queries the SIM 21:18:51.779 reg_sim.c 1072 SIM card mode (USIM) 21:18:51.779 reg_sim.c 1576 HPLMN(001-001) 21:18:51.781 reg_nv.c 289 Read GPRS_ANITE_GCF -1 //REG →MM; SIM availability 00:00:01.126 reg_state.c 9179 =REG= CM_SIM_AVAILABLE_REQ mode_pref:2, 21:18:51.787 reg_send.c 821 MMR_SIM_AVAILABLE_REQ 21:18:51.788 mmcoord.c 465 MM received MMR_SIM_AVAILABLE_REQ 21:18:51.805 reg_state.c 2713 MMR_SIM_AVAILABLE_CNF //REG reads PLMN information from SIM 21:18:51.828 reg_sim.c 1836 CS RPLMN(1-1) 21:18:51.829 reg_sim.c 1576 HPLMN(001-001) 21:18:51.829 reg_sim.c 2406 Forbidden PLMN list (length = 4) 21:18:51.829 reg_sim.c 2410 # MCC-MNC 21:18:51.829 reg_sim.c 2423 0 310-017 21:18:51.829 reg_sim.c 2423 1 000-000 21:18:51.829 reg_sim.c 2423 2 000-000 21:18:51.829 reg_sim.c 2423 3 000-000 21:18:51.830 reg_sim.c 2031 RPLMN RAT Search Order (UMTS-GSM) //REG → MM 21:18:51.830 reg_send.c 786 MMR_REG_REQ PLMN(1-1) RAT(UMTS) 21:18:51.830 mmcoord.c 922 MM received MMR_REG_REQ [0 f1 10] //MM →RRC 21:18:51.831 mmrrcconn.c 316 MM sent RRC_SERVICE_REQ to RRC 21:18:51.831 rrcdispatcher.c 3432 Recd: RRC_SERVICE_REQ

从整个交互来看 REG主要是与CM 和MM 进行交互,CM 就是上层Call Manager MM是底层NAS的模块,与RRC通信

整个拨号过程核心signal就是CM_SERVICE_REQ,是CM发起拨号选网,而reg_state_main处理的函数就是reg_state_process_cm_service_req

函数比较复杂,这个流程如下

reg_state_process_cm_service_req reg_sim_is_hplmn_to_be_selected //首先检查EF_LRPLMNSI;如果为 1 ,PLMN 使用HPLMN,如果为0,PLMN使用RPLMN CASE 0 PLMN选择 reg_sim_read_sim_rplmn 检查NV_RPLMNACT_I 如果为LTE,则RPLMN 从EF_EPSLOCI中读取; 如果为UMTS 和GSM ,则通过NV_SERVICE_DOMAIN_PREF_I 选择从EF_PSLOCI还是EF_LOCI中读取RPLMN 函数中reg_sim_rplmn_rat_search_order 其实是REG模块启动时调用reg_sim_load_card_mode,从NV_RPLMNACT_I获取的 RAT选择 由NV_RPLMNACT_I和SIM卡中EF_RPLMNAcT来决定 reg_mode_get_3gpp_rat_capabilty ,转换rat_acq_order reg_mode_determine_first_plmn 确认RPLMN是否valid ,如果invalid 就选用HPLMN reg_sim_read_rplmn_rat_search_order,从sim卡中读取EF_RPLMNAcT,再EFS rat_acq_order 做并集 reg_sim_combined_rat_search_order如果读取失败,使用NV_RPLMNACT_I CASE 1 PLMN reg_sim_load_card_mode 中读取EF_IMSI 赋值HPLMN RAT reg_sim_read_hplmn_rat_search_order 中读取EF_HPLMNWACT 

参考文档:

80-N0608-1_B_UMTS_Cell_Select_Reg

80-N9533-2_D_PLMN_RAT_Selection_GSM_WCDMA_LTE_TD-SCDMA

80-N9811-1_C_LTE_Cell_Select_Registration_TAU

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/161985.html

(0)
上一篇 2024年 7月 5日 下午6:16
下一篇 2024年 7月 5日

相关推荐

关注微信