Ericsson RBS2000 GPRS » History » Version 7
dexter, 03/23/2023 04:02 PM
1 | 1 | laforge | h1. Ericsson RBS2000 GPRS |
---|---|---|---|
2 | |||
3 | 4 | laforge | {{>toc}} |
4 | |||
5 | 1 | laforge | This page collects some information regarding Ericsson RBS2000 GPRS support. |
6 | |||
7 | The fundamental difference between what we do so far (PCU co-located with BTS) and this architecture is that the PCU is co-located with the BSC! |
||
8 | |||
9 | In order to have (E)GPRS support using RBS2000, we need to solve the following parts: |
||
10 | * configuration / activation of timeslots using OML2000 / RSL? |
||
11 | * ensuring that GPRS related SI, particularly SI13 are broadcast via BCCH |
||
12 | * implementation of PCU TRAU frame format and converter between osmo-pcu PHY interface and them |
||
13 | ** 16k sub-slot and 64k slot formats |
||
14 | ** associated PCU SYNC protocol |
||
15 | ** all various coding schemes |
||
16 | * paging coordination between BSC and PCU |
||
17 | |||
18 | h2. PDCH timeslot configuration |
||
19 | |||
20 | It seems that in OM2000 all TCH (/F, /H, PDCH) are configued with a Combination "8", and no differentiation is made |
||
21 | |||
22 | The actual activation of the channel is expected via RSL. So it's analogous to a RSL CHAN ACT for TCH/H or TCH/F, but we also do this for a PDCH. In order to do so, we send a RSL CHAN ACT with Channel Number 0b11000 + the timeslot number. Deactivation works the same way. |
||
23 | |||
24 | 2 | laforge | h2. GPRS RACH requests |
25 | |||
26 | The BSC must identify the GPRS RACH requests (similar to osmo-bts currently) and pass them into the PCU. This could be done using the same pcu socket interface that already exists. |
||
27 | |||
28 | h2. GPRS paging |
||
29 | |||
30 | Thre's a RSL "Packet Paging Indication IE" (IEI = 0xF3) that the BSC can include when sending a paging request to the BTS. It's currently not clear what this is used for and why it is required. |
||
31 | |||
32 | 3 | laforge | h2. TRAU frames |
33 | 2 | laforge | |
34 | 3 | laforge | Classic GSM TRAU frames (for circuit switched voice) are transmitted on 16kBps sub-slots and are 39 octets (312 bits) long. They thus occur every 19.5ms. Four 16kbps sub-slots are multiplexed into a 64kbps E1 slots. For more information see 3GPP TS 48.060. |
35 | 1 | laforge | |
36 | 3 | laforge | Ericsson also introduces 64kbps TRAU frames (for higher EGPRS coding schemes). |
37 | |||
38 | The Synchronization of TRAU frames is based on a 16-bit all-zero field at the beginning of each TRAU frame (called the T0 bits) followed by a signle 1 bit (called the T1 bit). |
||
39 | |||
40 | 7 | dexter | A detailed description the TRAU frame format can also be found in the libosmo-abis code: |
41 | See also: https://gitea.osmocom.org/osmocom/libosmo-abis/src/branch/master/src/trau/trau_pcu_ericsson.c |
||
42 | |||
43 | 3 | laforge | |
44 | h3. 16kBps sub-slots |
||
45 | |||
46 | h4. PCU-DATA.ind |
||
47 | |||
48 | This frame can be used by a CS-1 or CS-2 frame transmitted by the PCU, i.e. downlink. |
||
49 | |||
50 | |T|17|T0*16,T1*1|Sync Word| |
||
51 | |C|8|C1..C8|Control Bits (Frame Type, Time adjustmentValue,Uplink Frame Error)| |
||
52 | |PC|1|PC|Parity (C1..C8)| |
||
53 | |E|16|E1..E16|Codec Control, Uplink Channel Mode, Power Control| |
||
54 | |PE|1|PE|Parity (E1..E16)| |
||
55 | |D|273|D1..D273|Data bits| |
||
56 | |TA|4|TA1..TA4|Time Alignment| |
||
57 | |||
58 | h4. CCU-DATA.ind |
||
59 | |||
60 | This frame can be used by a CS-1 or CS-2 frame transmitted by the CCU, i.e. uplink. |
||
61 | |||
62 | h3. 64kBps slots |
||
63 | |||
64 | h4. PCU-DATA-64.ind |
||
65 | |||
66 | |T|65|T0*64,T1*1|Sync Word| |
||
67 | |D|48|D1..D48|Data bits| |
||
68 | |C|8|C1..C8|Control Bits| |
||
69 | |PC|1|PC|Parity (C1..C8)| |
||
70 | |E|36|E1..E36|| |
||
71 | |PE|1|Parity (E1..E36)| |
||
72 | |S|21|S1..S21|| |
||
73 | |D|1132|D1..D1132|Data bits| |
||
74 | |TA|16|TA1..TA16|Time Alignment bits| |
||
75 | |Total|1328| |
||
76 | |||
77 | h4. PCU-DATA-MCS9.ind |
||
78 | |||
79 | |T|17|T0*16,T1*1|Sync Word| |
||
80 | |D|48|D1..D48|Data bits| |
||
81 | |C|8|C1..C8|Control Bits| |
||
82 | |PC|1|PC|Parity (C1..C8)| |
||
83 | |E|9|E1..E9|| |
||
84 | |PE|1|Parity (E1..E36)| |
||
85 | |D|1172|D49..D1228|Data bits| |
||
86 | |TA|16|TA1..TA16|Time Alignment bits| |
||
87 | |Total|1272| |
||
88 | |||
89 | h4. CCU-DATA-64.ind |
||
90 | |||
91 | |T|65|T0*64,T1*1|Sync Word| |
||
92 | |C|7|C1..C7|Control bits (FT, TAV)| |
||
93 | |PC|1|PC|Parity (C1..C7)| |
||
94 | |E|57|E1..E57|DBE, Codec Status, Receiver Level, Access Delay Deviation, Block Quality Measurement, Block Status Report, Spare, MEAN_BEP, CV_BEP, Header Quality, Data Block Quality| |
||
95 | |PE|1|PE|Parity (E1..E57)| |
||
96 | |S|3|S1..S3|Spare (set to 1)| |
||
97 | |D|1138|D1..D1138|Data bits| |
||
98 | |TA|8|TA1..TA8|Time Alignment bits| |
||
99 | |Total|1280| |
||
100 | |||
101 | h4. CCU-DATA-MCS9.ind |
||
102 | |||
103 | |T|17|T0*16,T1*1|Sync Word| |
||
104 | |D|48|D1..D48|Data bits| |
||
105 | |C|7|C1..C7|Control bits| |
||
106 | |PC|1|PC|Parity (C1..C7)| |
||
107 | |E|23|E1..E23|| |
||
108 | |PE|1|PE|Parity (E1..E23)| |
||
109 | |S|2|Spare| |
||
110 | |D|1165|D49..D1221|Data bits| |
||
111 | |TA|8|Time Alignment bits| |
||
112 | |Total|1272| |
||
113 | |||
114 | h4. CCU-SYNC-64.ind |
||
115 | |||
116 | Sent from CCU to PCU (uplink) |
||
117 | |||
118 | |T|17|T0*16+T1*1|Sync Word| |
||
119 | |C|8|C1..C8|Control bits (FT, TAV, DFE)| |
||
120 | |PC|1|PC|Parity (C1..C8)| |
||
121 | |E|1|E1|DBE (DownlinkBlockError)| |
||
122 | |PE|1|PE|Parity (E1)| |
||
123 | |D|44|D1..D44|Data bits| |
||
124 | |T|1|T1|| |
||
125 | |D|55|D45..D99|Data bits| |
||
126 | |T|1|T1|| |
||
127 | |D|1079|D100..D1178|Data bits (DPSEQ, DaFNu, DaFNd)| |
||
128 | |TA|8|TA1..TA8|Time Alignment bits| |
||
129 | |Total|1216| |
||
130 | |||
131 | h4. PCU-SYNC-64.ind |
||
132 | |||
133 | |T|65|T0*64+T1*1|Sync Word| |
||
134 | |C|8|C1..C8|Control| |
||
135 | |PC|1|Parity (C1..C8)| |
||
136 | |D|54|D1..D53|Data bits| |
||
137 | |T|1|T1|| |
||
138 | |D|63||Data bits| |
||
139 | |T|1|T1|| |
||
140 | |D|1071|..D1172|Data bits| |
||
141 | |TA|16|TA1..TA16|Time Alignment bits| |
||
142 | |Total|1280| |
||
143 | 5 | laforge | |
144 | 6 | laforge | h2. Trau Procedures |
145 | |||
146 | h3. SYNC procedure |
||
147 | |||
148 | Whenever the uplink is idle, the CCU is sending CCU-SYNC.ind towards the PCU. This frame includes: |
||
149 | * Time Adjustment Value |
||
150 | ** 00: no change |
||
151 | ** 01: delay 250us |
||
152 | ** 10: advance 250us |
||
153 | * Downlink Frame Error: Set to '0' in case the CCU receives bad downlink frames from the PCU |
||
154 | ** once we send valid frames in downlink, the bit should change to '1' |
||
155 | * Downlink Block Error: Set to '0' when a downlink block was not transmitted |
||
156 | * DPSEQ: ? |
||
157 | * afn_ul: Adjusted Frame Number Upliink |
||
158 | * afn_dl: Adjusted Frame Number Downlink |
||
159 | |||
160 | Whenever the downlink is idle, the PCU is sending PCU-SYNC.nd towards the CCU. This frame includes: |
||
161 | * Time Adjustment Value (see above) |
||
162 | * Uplink Frame Error: Set to '0' in case the PCU receives bad uplink frames from the CCU |
||
163 | * DPSEQ: PCU-internal counter which probably gets echo'ed back in uplink DPSEQ for the PCU to measure RTT? |
||
164 | * optional dss, dfn_u, dfn_ss, dfn_d and dls fields, ignored by PCU. |