P25 works off the idea of a bandplan. With a P25 subscriber the bandplan is typically provided via programming but it can also be adapted (learned) by listening to an active control channel assuming the system is advertising the band plan (some don't but it is an exception). The band plan info contains the base frequency, bandwidth, offset, offset direction, and channel spacing and is typically advertised as something like:
- 01-851.00625-(-)45.000-6.25
- 02-762.00625-(+)30.000-6.25
- 03-851.01250-(-)45.000-12.5
- 04-762.00625-(+)30.000-12.5
The first object in the hash is the Channel ID, second is the Base Frequency, then the offset shift direction, offset and finally the channel width. In my example I provided the basics for a 7/800 MHz system which is advertising Phase 2 capability (though may not be utilizing Phase 2). When the radio is programmed one simply provides the control channel's Channel ID and RX frequency (it will calculate the rest) and it can communicate with the control channel (registration, affiliation, paging, status requests, channel requests, etc). When a user hit's the PTT on the radio the radio makes a channel request (since the radio is affiliated to a specific talkgroup the system already knows what talkgroup the radio wants to talk on). The system will either reply with a busy (and put the call into the queue), denial (in the case the user ID is RX only for the specific talkgroup at the system level or send a channel grant. In the case of a busy, the system will send a channel grant when the call has made it through the queue. The channel grant will look something like this on the control channel:
- TGID-01-2005 or TGID-03-0198-1
Where the TGID is whatever talkgroup is being used, 01/03 is the channel ID and 2005/0198 is the channel number. The final number is only present with Phase 2 and signifies the timeslot. The radio will then perform some quick math. For the 01-2005, the radio will look up the info in it's bandplan and calculate 851.00625+2005*0.00625 = 863.5375 RX with RX-45 = 818.5375 TX. For 03-0198-1 the radio will perform a similar calculation, 851.0125+198*0.0125 = 853.4875-1 RX, 808.4875-1 TX.
That's all the information the radio needs to know in order to transmit and receive. The radio doesn't actually need to even need to have the control channel information programmed into it to use a specific site as it can either learn it off of an active site who's control channel info is programmed into the radio via advertised adjacent site info or via a feature called spectrum wide scanning (where the radio scans for any control channel with a matching WACN). Whenever new control channels are learned, info is typically stored in the flash memory and can be recalled at a later date (or until the radio is reprogrammed which wipes the flash out).
Some other things to note, this only really covers 7/800/900 MHz trunking. VHF and UHF is what we call Other Band Trunking (OBT) and the control channels actually operate differently (as VHF has no truly predictable standard offsets) and while most of my professional Astro 25 career has been working with VHF OBT systems...I've never actually taken the time to learn exactly how the TX frequency is provided to the radio via the control channel as I've always lived under 7/800 MHz coverage and how VHF OTA assignment works simply is unimportant when you are physically looking at the repeaters that make up the site which are clearly labeled with their RX and TX frequencies. Also, the uplink to the control channel (the frequency the radio transmits on) will always be C4FM and the uplink on a Phase 1 system will always be C4FM even if the system is transmitting CQPSK (LSM) on the downlink. One should keep in mind that the uplink and downlink modulations are different with Phase 2 so just because a scanner can listen to a Phase 2 downlink doesn't always mean it can listen to the uplink.