高通搜网流程
引言
 樣機(jī)上電之后如何自動選擇合適的網(wǎng)絡(luò)進(jìn)行附著,如何對選擇的小區(qū)確實(shí)是否可以駐守,本文將以高通平臺為例,講述從識別SIM開始,到注冊到合適的小區(qū)這整個流程。
架構(gòu)
 LTE協(xié)議棧基本分為NAS(Non-Access-stratum),AS(Access-stratum),PHY,在高通平臺中的基本架構(gòu)如下圖:
其中 Call manager 為上層APP,這部分還包括識別SIM 的UIM 模塊等等
LTE NAS層包括ESM ,REG ,EMM
LTE AS層包括了RRC,PDCP,L1,RLC等等,重點(diǎn)關(guān)注RRC(Radio Resource Control)
選網(wǎng)搜網(wǎng)流程
 下圖為LTE自動搜網(wǎng)撥號的簡易流程:
上層APP
 自動搜網(wǎng)
對于NAS來說,整個搜網(wǎng)撥號的流程發(fā)起者為CM模塊,QXDM log 如下
[0005/0002]????????????? MSG????????????????????? ????Call Manager/High??????? [cmregprx.c?? 3261] =CMREGPRX= AS_ID=0, stack=0, addl 0, Send SERVICE_REQ
[0005/0002]????????????? MSG????????????????????? ????Call Manager/High????? ??[cmregprx.c?? 3275] =CMREGPRX= mode_pref 5????????? //LTE-ONLY
[0005/0002]????????????? MSG????????????????? ???????????Call Manager/High??????? [cmregprx.c?? 3282] =CMREGPRX= net_sel_mode 0????? // AUTOMATIC
[0005/0002]????????????? MSG??????????????????? ?????????Call Manager/High??????? [ cmregprx.c?? 3285] =CMREGPRX= srv_domain 3, req_id = 0? //CS+PS
[0005/0002]????????????? MSG??????????????? ???????????Call Manager/High ???????[??? cmwll.c??? 223] =CM= Send cmd 2 to REG?????????????????
 手動搜網(wǎng)
CM發(fā)送NETWORK_LIST_REQ 到nas層進(jìn)行搜網(wǎng),然后再發(fā)送SERVICE_REQ進(jìn)行駐網(wǎng)
[0005/0002] MSG Call Manager/High [ cmregprx.c 3874] =CMREGPRX= AS_ID=0, stack=0, Send NETWORK_LIST_REQ
 [0005/0002] MSG Call Manager/High [ cmregprx.c 3877] =CMREGPRX= mode_pref 5
 [0005/0002] MSG Call Manager/High [ cmregprx.c 3880] =CMREGPRX= band_pref 00
 [0005/0002] MSG Call Manager/High [ cmwll.c 223] =CM= Send cmd 1 to REG
 NAS層的結(jié)果:
[3010/0002/0003/0004] MSG NAS REG/High [ reg_state.c 8487] DS: SUB 1 =REG= CM_NETWORK_LIST_REQ
 [3010/0002/0003/0004] MSG NAS REG/High [ reg_mode.c 4644] DS: SUB 1 =REG= Available PLMN Manual list (length = 3)
 [3010/0002] MSG NAS REG/High [ reg_mode.c 1543] 0 460- 01 LTE PS_ONLY HPLMN H 87
 [3010/0002] MSG NAS REG/High [ reg_mode.c 1548] 1 460- 00 F LTE PS_ONLY OTHER H 87
 [3010/0002] MSG NAS REG/High [ reg_mode.c 1553] 2 460- 11 F LTE PS_ONLY OTHER H 100
 下面的章節(jié)只講述自動搜網(wǎng)的過程
QXDM Filter : message packets/ call manager
NAS層
 REG
 REG最重要的功能就是PLMN(Public Land Mobile Network),RAT(radio access technology)的選擇,通俗點(diǎn)講就是根據(jù)sim的運(yùn)營商,以及支持的制式去搜網(wǎng)。比如說插入一張聯(lián)通的LTE sim 卡,自動搜網(wǎng)的PLMN應(yīng)該是 MCC 460 MNC 1/6/9/20,搜索到移動或者電信的基站不進(jìn)行自動駐網(wǎng)。
所以REG模塊首先需要讀取SIM卡中的信息。那么需要熟悉以下概念:
RPLMN – Last Registered PLMN //記錄上一次注冊的PLMN
HPLMN – Home PLMN //本地PLMN,SIM內(nèi)置
EHPLMN – Equivalent HPLMN //同等本地PLMN
VPLMN – Visitor PLMN
PPLMN – Preferred PLMN
OPLMN – Operator Preferred PLMN
UPLMN – User Preferred PLMN
FPLMN – Forbidden PLMN //拒絕注冊的PLMN
SIM卡里的信息可以使用讀卡器讀取,是以EFs存儲,具體如下
EFIMSI – IMSI
EFPLMNwAcT – User-controlled PLMN selector with Access Technology //PLMN RAT
EFHPPLMN – Higher-priority PLMN search period
EFFPLMN – Forbidden PLMNs // FPLMN
EFLOCI – Location information
EFOPLMNwACT – Operator-controlled PLMN selector with Access Technology
EFHPLMNwAcT – Home HPLMN selector with Access Technology ?//HPLMN RAT
EFEHPLMN – Equivalent HPLMN // EHPLMN
EFLRPLMNSI – Last RPLMN selection indication // RPLMN
EFPSLOCI – Packet-switched location information
EFEPSLOCI – EPS location information
除了EFs,REG模塊還需要從UE NV 以及UE EFS中拿到樣機(jī)的配置
NVs Used by the UE
NV 1190, NV_RPLMNACT_I – Stores the last RPLMN RAT information
NV 849, NV_NET_SEL_MODE_PREF_I – 手動選網(wǎng)還是自動選網(wǎng)
NV 850, NV_SERVICE_DOMAIN_PREF_I – Domain CS or PS
EFS Used by the UE
/sd/rat_acq_order :PLMN選擇中的rat 優(yōu)先級列表(LTE UMTS GSM )
自動撥號中整個PLMN,RAT的選擇在REG中的流程如下:
從CM模塊知道,整個撥號過程的發(fā)起信號是CM_SERVICE_REQ,而REG模塊處理的函數(shù)就是reg_state_process_cm_service_req,代碼流程與上圖一致,具體可以看代碼,這邊不多講。最后將發(fā)送MMR_REG_REQ 將選擇的PLMN以及RAT發(fā)送給EMM
[3010/0002/0003/0004] MSG NAS REG/High [ reg_send.c 1585] DS: SUB 1 =REG= MMR_REG_REQ PLMN(460-1) RAT(LTE)
 [3007/0002/0003/0004] MSG NAS MM/High [ emm_reg_handler.c 856] DS: SUB 1 =EMM= MMR_REG_REQ - Srv Domain 3, NW Sel Mode 0, Type 2 //CS+PS 自動搜網(wǎng) normal
 [3007/0002/0003/0004] MSG NAS MM/High [ emm_reg_handler.c 860] DS: SUB 1 =EMM= MMR_REG_REQ - Addtnl info 0x0
 代碼路徑在:mmcp\nas\reg
入口函數(shù) reg_main
QXDM Filter : message packets/UMTS/NAS
EMM
 將REG的信號轉(zhuǎn)發(fā)給RRC
[3007/0002/0003/0004] MSG NAS MM/High [ emm_rrc_if.c 522] DS: SUB 1 EMM: Sent LTE_RRC_SERVICE_REQ scan_scope 0
 ?
 代碼路徑在:mmcp\nas\mm
QXDM Filter : message packets/UMTS/NAS
AS層
 AS層在搜網(wǎng)流程中的重點(diǎn)工作都集中在RRC(Radio Resource Control)層,整個入口即上面NAS層提到的LTE_RRC_SERVICE_REQ ,這個信號會將REG選擇的PLMN,RAT等信息都傳遞到RRC。
根據(jù)上圖,可以將RRC搜網(wǎng)過程分為以下步驟:
掃頻
 搜索小區(qū)
 獲取小區(qū)SIB
 小區(qū)選擇
 頻率掃描
 有兩種類型的頻率掃描:
System scan, 部分頻率掃描
 UE之前有過頻率掃描,會將掃描結(jié)果存儲在UE EFS acq db,包括erafcn,bw
 如果acq db沒有掃描到,會掃描全頻帶除了acq db記錄的其他頻點(diǎn)(考慮UE移動導(dǎo)致環(huán)境變化)
 Band scan, 全頻帶掃描
 UE acq db中沒有值,需要在整個支持頻帶中掃描
 Acq_db 可以通過EFS tool查看,路徑 nv/reg_files/modem/lte/rrc/csp
System scan
 RRC層發(fā)起system scan,從以下log我們可以看到,acq db記錄了上次掃描的結(jié)果,earfcn 為450,1650的兩個cell,對應(yīng)band 為1 和3
[9501/0002/0009] MSG LTE RRC/High [ lte_rrc_csp.c 7321] CSP:final system scan list for acd db = 450
 [9501/0002/0009] MSG LTE RRC/High [ lte_rrc_csp.c 7321] CSP:final system scan list for acd db = 1650
 [9501/0000/0009] MSG LTE RRC/Low [ lte_rrc_csp.c 7326] CSP: Found 2 systems to scan
 [9501/0002/0015] MSG LTE RRC/High [ lte_rrc_llc.c 1206] Sent System Scan Request
 PHY層收到 System Scan請求后,會在這兩個頻點(diǎn)進(jìn)行掃描,最后得出兩個頻點(diǎn)上的能量強(qiáng)度
[9509/0002] MSG LTE ML1/High [ lte_ml1_sm_fs.c 5852] SM_fs: System Scan Results, num systems found 2
 [9509/0002] MSG LTE ML1/High [ lte_ml1_sm_fs.c 5900] SM_fs: earfcn 1650 bw 100 scaled energy linear 0x22 dBm -96
 [9509/0002] MSG LTE ML1/High [ lte_ml1_sm_fs.c 5900] SM_fs: earfcn 450 bw 100 scaled energy linear 0x10 dBm -99
 [9509/0002] MSG LTE ML1/High [ lte_ml1_sm_fs.c 7818] SM FS :fscan object schedule/deschedule 0 min_act_window 0@ time 0x00000cb9f
 之前我們也提到,這兩個頻點(diǎn)是已經(jīng)掃描過的,所以將他們都看作是符合PLMN,RAT的選擇條件的。接下來RRC選擇信號強(qiáng)度更強(qiáng)的小區(qū)進(jìn)行搜索,本例中也就是earfcn1650
[9501/0000/0009] MSG LTE RRC/Low [ lte_rrc_csp.c 4275] CSP: Acq requested on earfcn 1650
 band scan
 [9501/0002/0009] MSG LTE RRC/High [ lte_rrc_csp.c 6346] CSP: Zero entries in acquistion list
 [9501/0002/0009] MSG LTE RRC/High [ lte_rrc_csp.c 9019] CSP: Acquisition list exhausted
 [9501/0000/0009] MSG LTE RRC/Low [ lte_rrc_csp.c 4139] CSP: Sending 1 bands in band scan
 [9501/0000/0009] MSG LTE RRC/Low [ lte_rrc_csp.c 4159] CSP: Band 1
 [9501/0002/0009] MSG LTE RRC/High [ lte_rrc_csp.c 4174] CSP: Sent Band Scan Request
 如果acq_db為空,RRC層發(fā)起band scan:log如下
[9501/0002/0009] MSG LTE RRC/High [ lte_rrc_csp.c 6346] CSP: Zero entries in acquistion list
 [9501/0002/0009] MSG LTE RRC/High [ lte_rrc_csp.c 9019] CSP: Acquisition list exhausted
 [9501/0000/0009] MSG LTE RRC/Low [ lte_rrc_csp.c 4139] CSP: Sending 1 bands in band scan
 [9501/0000/0009] MSG LTE RRC/Low [ lte_rrc_csp.c 4159] CSP: Band 1
 [9501/0002/0009] MSG LTE RRC/High [ lte_rrc_csp.c 4174] CSP: Sent Band Scan Request
 搜索結(jié)果如下
[9509/0002] MSG LTE ML1/High [ lte_ml1_sm_fs.c 3338] SM_fs: Band 1 scan complete, num systems reported 14
 [9509/0002] MSG LTE ML1/High [ lte_ml1_sm_fs.c 3350] SM_fs: System 1 earfcn 226 bw 25 energy norm dBm -65
 [9509/0002] MSG LTE ML1/High [ lte_ml1_sm_fs.c 3350] SM_fs: System 2 earfcn 225 bw 25 energy norm dBm -65
 [9509/0002] MSG LTE ML1/High [ lte_ml1_sm_fs.c 3350] SM_fs: System 3 earfcn 227 bw 25 energy norm dBm -65
 [9509/0002] MSG LTE ML1/High [ lte_ml1_sm_fs.c 3350] SM_fs: System 4 earfcn 276 bw 25 energy norm dBm -65
 [9509/0002] MSG LTE ML1/High [ lte_ml1_sm_fs.c 3350] SM_fs: System 5 earfcn 275 bw 25 energy norm dBm -65
 [9509/0002] MSG LTE ML1/High [ lte_ml1_sm_fs.c 3350] SM_fs: System 6 earfcn 277 bw 25 energy norm dBm -66
 [9509/0002] MSG LTE ML1/High [ lte_ml1_sm_fs.c 3350] SM_fs: System 7 earfcn 450 bw 100 energy norm dBm -68
 [9509/0002] MSG LTE ML1/High [ lte_ml1_sm_fs.c 3350] SM_fs: System 8 earfcn 451 bw 100 energy norm dBm -68
 [9509/0002] MSG LTE ML1/High [ lte_ml1_sm_fs.c 3350] SM_fs: System 9 earfcn 449 bw 100 energy norm dBm -68
 [9509/0002] MSG LTE ML1/High [ lte_ml1_sm_fs.c 3350] SM_fs: System 10 earfcn 452 bw 100 energy norm dBm -68
 [9509/0002] MSG LTE ML1/High [ lte_ml1_sm_fs.c 3350] SM_fs: System 11 earfcn 448 bw 100 energy norm dBm -68
 [9509/0002] MSG LTE ML1/High [ lte_ml1_sm_fs.c 3350] SM_fs: System 12 earfcn 100 bw 100 energy norm dBm -75
 [9509/0002] MSG LTE ML1/High [ lte_ml1_sm_fs.c 3350] SM_fs: System 13 earfcn 101 bw 100 energy norm dBm -75
 [9509/0002] MSG LTE ML1/High [ lte_ml1_sm_fs.c 3350] SM_fs: System 14 earfcn 102 bw 100 energy norm dBm -75
 [9509/0002] MSG LTE ML1/High [ lte_ml1_mgr_task.c 1609] HST DEBUG: received UMID 67241039
 ?? 從第一個頻點(diǎn)開始進(jìn)行小區(qū)搜索
QXDM Filter : MESSAGE PACKETS/LTE/RRC&ML1
小區(qū)搜索
 UE進(jìn)行小區(qū)搜索的目的是
1、為了獲取小區(qū)物理ID和完成下行同步,其實(shí)就是對PSS(Primary Synchronization Signal),SSS(Secondary Synchronization Signal)的檢測。當(dāng)UE檢測到PSS和SSS時,就能解碼出物理小區(qū)ID,同時根據(jù)PSS和SSS的位置,可以確定下行的子幀時刻,完成下行同步。
2、下行同步之后進(jìn)行PBCH 解碼,獲取MIB(MasterInformationBlock),從而獲取RS(Reference Signal),為后續(xù)的獲取SIB(SystemInformationBlocks)提供解碼。
對于PSS 以及SSS的檢測,可以看做是小區(qū)在特定頻點(diǎn)范圍,特定時域位置的廣播信號
(1)時域上的位置
對于LTE-FDD制式,PSS周期的出現(xiàn)在時隙0和時隙10的最后一個OFDM符號上,SSS周期的出現(xiàn)在時隙0和時隙10的倒數(shù)第二個符號上。
對于LTE-TDD制式,PSS周期的出現(xiàn)在子幀1、6的第三個OFDM符號上,SSS周期的出現(xiàn)在子幀0、5的最后一個符號上。
如果UE在此之前并不知道當(dāng)前是FDD還是TDD,那么可以通過這種位置的不同來確定制式。且SSS在兩個子幀中的序列不同,可以區(qū)分0時隙和10時隙
(2)頻域上的位置
PSS和SSS映射到整個帶寬中間的6個RB中,因?yàn)镻SS和SSS都是62個點(diǎn)的序列,所以這兩種同步信號都被映射到整個帶寬(不論帶寬是1.4M還是20M)中間的62個子載波(或62個RE)中,即序列的每個點(diǎn)與RE一一對應(yīng)。在62個子載波的兩邊各有5個子載波,不再映射其他數(shù)據(jù)。
確認(rèn)了0時隙的位置,也就完成了下行同步,就可以確認(rèn)MIB的位置。MIB的解析與搜網(wǎng)關(guān)系不大,這邊就不詳細(xì)說,需要知道的是只有解析了MIB,才能夠進(jìn)行后續(xù)的SIB信息的解碼。
獲取SIB
 SIB為UE提供了小區(qū)駐留、重傳、鏈路建立等等所需的若干參數(shù), LTE的SIB類型有很多種,介紹部分類型,所有SIB中最重要的當(dāng)屬SIB1,因?yàn)镾IB1除攜帶了UE接入小區(qū)等所需的參數(shù)之外,還攜帶了其他SIB類型的調(diào)度信息。如果UE解碼不到SIB1,也就無法解碼其他類型的SIB。
SIB1:主要攜帶小區(qū)接入和小區(qū)選擇相關(guān)信息,以及LTE-TDD子幀配置、其他SIB塊的調(diào)度和窗口信息等。
MCC,MNC
 CellIdentity
 q-RxLevMin, q-RxLevMinOffset 小區(qū)接入最小接受強(qiáng)度
 p-Max 最大功率
 后續(xù)攜帶的其他SIB,以及對應(yīng)的發(fā)送周期
SIB2:主要攜帶公共的無線資源配置相關(guān)信息,包括接入BAR信息、PRACH配置信息、上行頻點(diǎn)信息、MBSFN配置等。
SIB3:攜帶同頻、異頻、跨制式小區(qū)重選相關(guān)的公共信息。
SIB4:攜帶用于同頻小區(qū)重選的鄰區(qū)信息
SIB5:攜帶用于異頻小區(qū)重選的鄰區(qū)信息。
SIB6:攜帶用于跨制式(UTRA)小區(qū)重選的鄰區(qū)信息。
SIB7:攜帶用于跨制式(GERAN)小區(qū)重選的鄰區(qū)信息。
SIB8:攜帶用于跨制式(CDMA2000)小區(qū)重選的鄰區(qū)信息。
SIB9:攜帶HOME eNB(HNB)的相關(guān)信息。
QXDM Filter : LOG PACKETS(OTA)/LTE
小區(qū)選擇
 經(jīng)過上述的流程,UE已經(jīng)對該小區(qū)的信息全面掌握,那么接下來需要確認(rèn)該小區(qū)是否可以駐守,判斷條件有如下幾條:
小區(qū)所在的PLMN需滿足SIM卡的PLMN
小區(qū)沒有被禁止;
小區(qū)滿足S準(zhǔn)則,即小區(qū)搜索中的接收功率Srxlev> 0 dB且小區(qū)搜索中接收的信號質(zhì)量Squal > 0 dB。
S準(zhǔn)則需要滿足以下兩個條件:
Srxlev?=?Qrxlevmeas?–?(qRxLevMin?+?qRxLevMinOffset)?–?pCompensation
Qrxlevmeas : 測量小區(qū)的 RSRP 值。
 ?qRxLevMin:SIB1下發(fā)
 qRxLevMinOffset:SIB1下發(fā)
 ?pCompensation ?功率補(bǔ)償
 Squal?=?Qqualmeas?–?(qQualMin?+?qQualMinOffset)
Qqualmeas?: 測量小區(qū)的 RSRQ 值。
 ?qQualMin?:SIB3下發(fā)
 qQualMinOffset:SIB1下發(fā)
 如下QXMDlog 顯示了該小區(qū)滿足S準(zhǔn)則
[9509/0002] MSG LTE ML1/High [ lte_ml1_sm_idle.c 4050] Cell (1650,43) Srxlev 18, rsrp -106 rsrq -14 qrx -124 qrx_off 0 pmax 23 pcomp 0
 [9509/0002] MSG LTE ML1/High [ lte_ml1_sm_idle.c 4141] Cell (1650,43) Squal 114, LL RSRQ -14 normalized rsrq -14 q_qual -128 q_qual_off 0
 ??? 之后開始駐守該小區(qū),并通知NAS層
[9501/0000/0009] MSG LTE RRC/Low [ lte_rrc_csp.c 17669] CSP: Camped on physical cell ID 43 on earfcn 1650
 [9501/0002/0009] MSG LTE RRC/High [ lte_rrc_csp.c 4714] CSP: Sending NAS Service I
 QXDM Filter : MESSAGE PACKETS/LTE/RRC&ML1
注冊撥號流程
 NAS層收到駐守完成的信號后,EMM開始請求注冊,具體流程如下:
RRC連接建立:
[0xB0C0/012/014/002] OTA LOG UL_CCCH / RRCConnectionRequest Radio Bearer ID: 0, Freq: 1650, SFN: 0
 [0xB0C0/012/012/004] OTA LOG DL_CCCH / RRCConnectionSetup Radio Bearer ID: 0, Freq: 1650, SFN: 61
 [0xB0C0/012/015/005] OTA LOG UL_DCCH / RRCConnectionSetupComplete Radio Bearer ID: 1, Freq: 1650, SFN: 0
 [0xB0C0/012/013/008] OTA LOG DL_DCCH / UECapabilityEnquiry Radio Bearer ID: 1, Freq: 1650, SFN: 64
 [0xB0C0/012/015/008] OTA LOG UL_DCCH / UECapabilityInformation Radio Bearer ID: 1, Freq: 1650, SFN: 0
 空口報文:
[0xB0ED] OTA LOG LTE NAS EMM Plain OTA Outgoing Message Attach request Msg
 [0xB0EC] OTA LOG LTE NAS EMM Plain OTA Incoming Message Identity request Msg
 [0xB0ED] OTA LOG LTE NAS EMM Plain OTA Outgoing Message Identity response Msg
 [0xB0EC] OTA LOG LTE NAS EMM Plain OTA Incoming Message Authentication request Msg
 [0xB0ED] OTA LOG LTE NAS EMM Plain OTA Outgoing Message Authentication response Msg
 [0xB0EC] OTA LOG LTE NAS EMM Plain OTA Incoming Message Security mode command Msg
 [0xB0ED] OTA LOG LTE NAS EMM Plain OTA Outgoing Message Security mode complete Msg
 [0xB0EC] OTA LOG LTE NAS EMM Plain OTA Incoming Message Attach accept Msg
 [0xB0E2] OTA LOG LTE NAS ESM Plain OTA Incoming Message Activate default EPS bearer context request Msg
 [0xB0ED] OTA LOG LTE NAS EMM Plain OTA Outgoing Message Attach complete Msg
 QXDM Filter : LOG PACKETS(OTA)/LTE
 ————————————————
 版權(quán)聲明:本文為CSDN博主「shawn4096」的原創(chuàng)文章,遵循CC 4.0 by-sa版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
 原文鏈接:https://blog.csdn.net/u011212816/article/details/97394498
總結(jié)
                            
                        - 上一篇: LTE 注网流程log分析
 - 下一篇: 安卓扫描周围基站信息,获取邻小区频段频点