NG Toolset開發筆記--5GNR Resource Grid(52)

4/7 update:

*recvMsg4 is ok

*add 'always-on-transmission' functions, including: aotSsb, aotPdcchSib1 and aotSib1

*add UI pararmeters for CSI-RS configurations

 

(1) recvMsg4 implementation

Msg2 is similar to Msg4, except that:

*after sending Msg1 in uplink, UE monitor PDCCH during ra-ResponseWindow for DCI 1_0 scheduling Msg2

*after sending Msg3 in uplink, UE monitor PDCCH for DCI 1_0 scheduling Msg4 and contention resolution before ra-ContentionResolutionTimer expired

(2) 'always-on-transmission' functions

'always-on-transmission' including:

*SSB

*PDCCH occasions for SIB1 scheduling (Coreset0/Css0)

*SIB1

Example debug output for AOT(always-on-transmissions):
---->inside alwaysOnTr(hsfn=0,sfn=0)
---->inside initTddGrid(hsfn=0, sfn=0)
scaleTd=2 where baseScsTd=60KHz and tddCfgRefScs=30KHz
---->inside aotSsb(hsfn=0,sfn=0, scaleTd=2, scaleFd=2)
[AOT @ hsfn=0, sfn=0]issb=0, ssbFirstSc=360, v=0, ssbFirstSymb=4
[AOT @ hsfn=0, sfn=0]issb=1, ssbFirstSc=360, v=0, ssbFirstSymb=16
[AOT @ hsfn=0, sfn=0]issb=2, ssbFirstSc=360, v=0, ssbFirstSymb=32
[AOT @ hsfn=0, sfn=0]issb=3, ssbFirstSc=360, v=0, ssbFirstSymb=44
---->inside aotPdcchSib1(hsfn=0, sfn=0, dci="dci10",rnti="si-rnti", scaleTdSsb=2, scaleTdRmsiScs=2)
---->inside detCss0(hsfn=0, sfn=0)
[Type-0 CSS]PDCCH monitoring occasion for SSB [0_0_0](hrf=0, issb=0): [[(0, 0, 0), (0, 0, 1)], 0, ['OK', 'OK']]
[Type-0 CSS]PDCCH monitoring occasion for SSB [0_0_1](hrf=0, issb=1): [[(0, 0, 1), (0, 0, 2)], 0, ['OK', 'OK']]
[Type-0 CSS]PDCCH monitoring occasion for SSB [0_0_2](hrf=0, issb=2): [[(0, 0, 2), (0, 0, 3)], 0, ['OK', 'OK']]
[Type-0 CSS]PDCCH monitoring occasion for SSB [0_0_3](hrf=0, issb=3): [[(0, 0, 3), (0, 0, 4)], 0, ['OK', 'OK']]
[AOT @ hsfn=0, sfn=0]PDCCH scheduling SIB1 for issb=0(hrf=0): [[0, 0, 0, 0, 0]]
---->inside alwaysOnTr(hsfn=0,sfn=0)
[AOT @ hsfn=0, sfn=0]PDCCH scheduling SIB1 for issb=1(hrf=0): [[0, 0, 1, 0, 0]]
---->inside alwaysOnTr(hsfn=0,sfn=0)
[AOT @ hsfn=0, sfn=0]PDCCH scheduling SIB1 for issb=2(hrf=0): [[0, 0, 2, 0, 0]]
---->inside alwaysOnTr(hsfn=0,sfn=0)
[AOT @ hsfn=0, sfn=0]PDCCH scheduling SIB1 for issb=3(hrf=0): [[0, 0, 3, 0, 0]]
---->inside alwaysOnTr(hsfn=0,sfn=0)
---->inside aotSib1(hsfn=0,sfn=0)
contents of reservedPdcchSib1(key=[hsfn,sfn,issb],val=[hsfn,sfn,slot,firstSymb,pdcchCandidate])
key=0_0_0,val=[0, 0, 0, 0, 0]
key=0_0_1,val=[0, 0, 1, 0, 0]
key=0_0_2,val=[0, 0, 2, 0, 0]
key=0_0_3,val=[0, 0, 3, 0, 0]
[AOT @ hsfn=0, sfn=0]SIB1 corresponding to SSB#0(hrf=0)
contents of sib1DmrsSymbs(w.r.t to slivS): [0]
[AOT @ hsfn=0, sfn=0]SIB1 corresponding to SSB#1(hrf=0)
contents of sib1DmrsSymbs(w.r.t to slivS): [0]
[AOT @ hsfn=0, sfn=0]SIB1 corresponding to SSB#2(hrf=0)
contents of sib1DmrsSymbs(w.r.t to slivS): [0]
[AOT @ hsfn=0, sfn=0]SIB1 corresponding to SSB#3(hrf=0)
contents of sib1DmrsSymbs(w.r.t to slivS): [0]

Here is the new recvSib1:

def recvSib1(self, hsfn, sfn):
        if self.error:
            return (None, None, None)

        self.ngwin.logEdit.append('contents of reservedSib1(key=[hsfn,sfn,issb],val=[hsfn,sfn,slotSib1]):')
        for key,val in self.reservedSib1.items():
            self.ngwin.logEdit.append('key=%s,val=%s' % (key, val))
            qApp.processEvents()

        dn = '%s_%s' % (hsfn, sfn)
        if self.nrAdvBestSsb is None:
            while True:
                bestSsb = np.random.randint(0, len(self.ssbFirstSymbInBaseScsTd[dn]))
                if self.ssbFirstSymbInBaseScsTd[dn][bestSsb] is not None:
                    break
        else:
            bestSsb = self.nrAdvBestSsb

        #save bestSsb index for later ssb-prach mapping
        issb = bestSsb % self.nrSsbMaxL
        hrf = self.nrMibHrf if self.nrSsbPeriod >= 10 else bestSsb // self.nrSsbMaxL
        self.bestSsbInd = issb
        self.ngwin.logEdit.append('<font color=purple>bestSsb=%d(hrf=%d,issb=%d)</font>' % (bestSsb, hrf, issb))
        qApp.processEvents()

        key = '%s_%s_%s' % (hsfn, sfn, bestSsb)
        if key in self.reservedSib1:
            return self.reservedSib1[key]
        else:
            return (None, None, None)

Note: As a result of 'always-on-transmission', PDCCH occasions of CSS0/CORESET0 may not be enough for later Msg2/Msg4 scheduling.

(3) UI design for CSI-RS configurations

After receiving Msg4, UE may be configured in RrcSetup dedicated PUCCH settings/dedicated SR settings/CSI-RS settings/SRS settings:

CSI-RS only simulates NZP CSI-RS and CSI-IM:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章