Before a TD-SCDMA UE can send anything, it has to find a cell, learn the codes of that cell and get its uplink timing right. The steps on this page go from the first DwPTS detection to the RRC Connection Setup. The uplink part is special, because TD-SCDMA needs uplink synchronisation before the UE can use a normal timeslot. Let's walk through the steps first. Then we'll look at the code tables and the FPACH message that the steps refer to.
- What are the steps from cell detection to RRC Connection Setup ?
- Which SYNC-DL and SYNC-UL codes does a cell use ?
- What does the FPACH tell the UE ?
- Reference
What are the steps from cell detection to RRC Connection Setup ?
The seven steps below cover one initial access in the 1.28 Mcps TDD option. Steps i and ii are the downlink search. Steps iii to v are the uplink synchronisation, and steps vi and vii carry the first RRC messages.
i) NodeB is transmitting DwPTS carrying one of the 32 bit pattern defined in 25.223 Table AA.1. (Each bit pattern is made up of 64 bits)
ii) UE detect DwPTS and figure out Code ID by comparing all the 32 bit patterns with the one it recieved. With this UE synchronize it's timing.
iii) UE send UpPCH carrying one of the bit patterns out of 256 bit patterns. (However UE cannot use any of these 256 patterns. With a DwPTS bit pattern, UE can use one of only 8 different bit patterns. The mapping between each DwPTS bit pattern and group of 8 UpPCH bit pattern is defined in 25.223 8.3 Code Allocation.
iv) NodeB detect UpPCH and decode its signature.
v) NodeB send FPACH containing the information in 25.221 Table 8J. (FPACH is similar to AICH in WCDMA)
vi) UE send PRACH with RRC Connection Request.
vii) NodeB send RRC Connection Setup via S-CCPCH.
Step ii gives the UE more than timing. The SYNC-DL code identifies one of 32 code groups, and each group holds four basic midamble codes and four scrambling codes. The UE then receives the midamble of the P-CCPCH in timeslot 0 and finds which of the four basic midamble codes the cell uses. The scrambling code has the same number as the basic midamble code, so the UE now knows both. Next, the phase modulation of the SYNC-DL shows the UE where the P-CCPCH multi-frame starts, and the UE reads the BCH.
The BCH gives the UE the PRACH, FPACH and S-CCPCH configuration of the cell. It also lists the SYNC-UL codes that each access service class may use. So when the UE sends a SYNC-UL code in step iii, it already knows which FPACH, PRACH and S-CCPCH belong to that access.
Steps iii to v form a small power ramping loop. The UE picks one SYNC-UL code, which is one of the 8 signatures of the cell, and sends it in the UpPTS. It then listens to the FPACH for the next WT sub-frames, and WT is at most 4. If no answer comes, the UE raises its power by the Power Ramp Step and tries again, until the retransmission counter reaches zero. When an FPACH answer arrives, the UE corrects its timing and power. It then sends the PRACH two sub-frames after the sub-frame that carried the FPACH.
The SYNC-DL code gives the code group : One of 32 codes points to 4 basic midamble codes and 4 scrambling codes.The UE synchronises the uplink before the PRACH : The SYNC-UL in the UpPTS and the FPACH answer set the timing and the power of the PRACH.The first RRC exchange uses common channels : The RRC Connection Request goes on the PRACH, and the RRC Connection Setup comes on the S-CCPCH.
Which SYNC-DL and SYNC-UL codes does a cell use ?
Steps i to iii refer to three tables in 25.223. The system has 32 SYNC-DL codes and 256 SYNC-UL codes, but one cell uses only one SYNC-DL code and eight SYNC-UL codes. Let's see where these numbers come from.
25.223 Table AA.1 lists the 32 basic SYNC-DL codes, with Code ID 0 to 31. Each code is written as 16 hexadecimal digits, which is 64 binary elements. The copy below is cut in the middle, so it shows only Code ID 0 to 6 and 26 to 31.
< Following Table is from 3GPP 25.223 >

The Node B sends the SYNC-DL in the DwPTS without scrambling. It turns the binary code into a complex sequence, with alternating real and imaginary elements, and QPSK modulates it. The UE correlates the received DwPTS with all 32 codes, and the best match gives the Code ID.
25.223 Table AA.2 lists the 256 basic SYNC-UL codes, with Code ID 0 to 255. Each code has 128 binary elements, written as 32 hexadecimal digits. This copy is also cut in the middle. The UpPTS carries 128 chips of one SYNC-UL code and a 32-chip guard period, again without scrambling.
< Following Table is from 3GPP 25.223 >

The table below, from 25.223 subclause 8.3, ties the two code sets together. Each of the 32 code groups has one SYNC-DL ID, eight SYNC-UL IDs, four scrambling code IDs and four basic midamble code IDs.
< Following Table is from 25.223 8.3 Code Allocation.>

- Group 1 : SYNC-DL ID 0, SYNC-UL IDs 0 to 7, and scrambling and basic midamble code IDs 0 to 3.
- Group 2 : SYNC-DL ID 1, SYNC-UL IDs 8 to 15, and scrambling and basic midamble code IDs 4 to 7.
- Group 32 : SYNC-DL ID 31, SYNC-UL IDs 248 to 255, and scrambling and basic midamble code IDs 124 to 127.
- In every row, the scrambling code ID and the basic midamble code ID are equal.
This is why step iii says that the UE can use only 8 SYNC-UL codes. The SYNC-DL code fixes the group, and the group fixes the 8 SYNC-UL codes. The BCH can restrict this set further for each access service class.
32 groups cover all the codes : The 32 SYNC-DL codes, 256 SYNC-UL codes and 128 scrambling and midamble codes split evenly into 32 groups.The SYNC codes are not scrambled : The UE can detect them before it knows the scrambling code of the cell.The group limits the uplink signatures : A cell offers at most 8 SYNC-UL codes, so the FPACH needs only 3 bits to name one.
What does the FPACH tell the UE ?
The FPACH is the answer of the Node B to a SYNC-UL code. It works like the AICH in WCDMA, but it carries more, because the UE needs a timing correction as well as an acknowledgement.
25.221 Table 8J lists the information bits of one FPACH burst. There are 32 bits in total, and the fields go in order from the MSB to the LSB.
< Following Table is from 25.221 >

- Signature Reference Number, 3 bits : the number of the acknowledged SYNC-UL code, from 0 to 7 within the cell. The UE compares it with the code that it sent.
- Relative Sub-Frame Number, 2 bits : how many sub-frames ago the Node B detected the signature, from 1 to 4. The UE uses it as a second check that the answer is for its own access.
- Received starting position of the UpPCH, 11 bits : the 11 LSBs of UpPCHPOS. UpPCHPOS is the measured arrival position of the SYNC-UL in steps of 1/8 chip, and the UE derives its timing correction from it.
- Transmit Power Level Command for RACH message, 7 bits : the power level for the PRACH that follows.
- Extended part of Received starting position of the UpPCH, 2 bits : the 2 MSBs of UpPCHPOS, which make it a 13-bit value from 0 to 8191.
- Reserved bits, 7 bits : set to 0.
The FPACH uses one SF 16 code, so its burst holds 44 symbols. The BCH broadcasts its code, its midamble and its timeslot. A cell can have several FPACHs. The UE listens to FPACH number N mod M, where N is its signature number and M is the number of FPACHs in the cell.
After a valid FPACH answer, the UE sets its timing and power from these fields. It sends the RACH message on the associated PRACH, two sub-frames after the sub-frame that carried the FPACH. So the whole exchange from the UpPTS to the PRACH takes only a few 5 ms sub-frames.
The FPACH is a 32-bit answer : It acknowledges one signature and gives a timing and a power correction.UpPCHPOS has 13 bits : The 11-bit field and its 2-bit extension give the arrival position in steps of 1/8 chip.Two fields protect against a wrong match : The signature number and the relative sub-frame number both have to match the access of the UE.
Reference
- 3GPP TS 25.221 v19.0.0 : Physical channels and mapping of transport channels onto physical channels (TDD)
- 3GPP TS 25.223 v19.0.0 : Spreading and modulation (TDD)
- 3GPP TS 25.224 v19.0.0 : Physical layer procedures (TDD)