ОПИСАНИЕ ПРОТОКОЛА POCSAG

Протокол пейджерной передачи POCSAG это последовательность цифровых импульсов с частотой 512, 1200 или 2400 импульсов в секунду.

Сигнал в POCSAG можно условно разделить на вызывающую часть (уникальный номер пейджера в дальнейшем - капкод) и информационную часть - сообщение.

Формат сигнала следующий:
1. Начальная последовательность (преамбула) - сигнал

 10101010101 ... 010101010... 
и так далее 576 бит.
2. Стартовая синхропосылка (Magic Word) - фрейм - последовательность из 32 битов
 01111100110100100001010111011000

3. Дальнейший сигнал идет в виде фреймов. Количество фреймов в сообщении всегда кратно 17. Первый - синхропосылка + 16 последующих фремов составляют Мастерфрейм.
Формат фрейма для капкода:

                 0 - хххххххххххххххххх - хх - ххххххххххх
                 |   ------------------   --   ----------- 
                 |                 |      |        |
индикатор -------     информационная      групп. check
0-капкод,              часть 18 бит       код    сумма
пустой фр.                                2 бита 11 бит
или синхропосылка
Формат фрейма для сообщения:

       1 - хххххххххххххххххххх - ххххххххххх
       |   --------------------   -----------
       |                 |             |
   индикатор     информационная       check
1-сообщение       часть 20 бит        сумма
                                      11 бит
ФОРМИРОВАИЕ КАПКОДА

Капкод в POCSAG может быть любым числом от 0000000 до 2097151, однако не рекомендуется использовать следующие значения:

2097144, 2097145, 2097146, 2097147, 2097148, 2097149, 2097150, 2097151,
2045056, 2045057, 2045058, 2045059, 2045060, 2045061, 2045062, 2045063,
2007664, 2007665, 2007666, 2007667, 2007668, 2007669, 2007670, 2007671,
0000000, 0000001, 0000002, 0000003, 0000004, 0000005, 0000006, 0000007.

Для передачи капкода используется до 16 фреймов, идущих сразу после стартового фрейма (синхропосылки). Каждый из капкодов передается строго в своем фрейме, номер которого определяется следующим образом: капкод делится на 8, затем отбрасывается целая часть, а дробная часть умножается на 8. Полученное таким образом число от 0 до 7 , является номером фрейма, в котором передается данный капкод.
Пример:
капкод 1234567 будет передаваться в фрейме номер 7
1234567 / 8 = 154320.875
отбрасываем целую часть, а дробную умножаем на 8
0.875 * 8 = 7
Капкод 1234567 будет передан следующим образом:
2*n пустышек, т.е. 2*7=14 пустых фреймов в виде

01111010100010011100000110010111
далее - индикатор фрейма капкода 0,
число 154320 в двоичном виде
100101101011010000 
групповой код, например - 00
контрольная сумма.

Передача данных

Следующие за фреймом капкода - фреймы данных выглядят следующим образом:

1 - индикатор фрейма данных
хххххххххххххххххххх - поле информации   -20 бит
ххххххххххх          - контрольная сумма -11 бит

Данные передаются в виде подряд идущих 7-битовых при алфавитно-цифровой передаче и 4-битовых при цифровой передаче последовательностей. 7-битовая последовательность, прерванная в любом месте концом поля информации фрейма, продолжается в начале поля информации следующего фрейма данных. Оставшееся место в поле информации последнего фрейма данных добивается пустыми символами. Контрольная сумма вычисляется по методу, изложенному ниже.
Символы в POCSAGe пеpедаются следyющим образом:
Беpется обычное двоичное пpедставление ASCII кода и пеpедаются задом напеpед (младший бит пеpедается пеpвым):

           A - 1000011
           B - 0100011
пустой симв. - 0000000
и т.д.

Сообщение может занимать несколько подряд идущих мастерфреймов Недостающее до конца последнего мастерфрейма место добивается пустыми фреймами. За последним мастерфреймом сообщения может идти следующее сообщение или передача прекращается.

МЕТОД ВЫЧИСЛЕНИЯ КОНТРОЛЬНОЙ СУММЫ

Контрольная сумма вычисляется с помощью логической операции XOR над значениями, соответствующими ненулевым битам, содержащимся в индикаторе, поле данных и групповом коде, например контрольная сумма фрейма

000000000000001101000   (10000000101) 
считается следующим образом:
       000000000000001000000 10111110100
XOR    000000000000000100000 01011111010
       000000000000000001000 01100001011
_________________________________________
       000000000000001101000 10000000101

Т.к. в данной строке отличны от 0 биты 15,16 и 18, то из нижеприведенной таблицы XORятся вместе с контрольными суммами строки 15,16 и 18.

N
бита
Двоичное представление
бита
Двоичное представление
контрольной суммы
1 100000000000000000000 11101101001
2 010000000000000000000 01110110101
3 001000000000000000000 00111011011
4 000100000000000000000 11110000100
5 000010000000000000000 01111000010
6 000001000000000000000 11010001001
7 000000100000000000000 01101000101
8 000000010000000000000 00110100011
9 000000001000000000000 11110111000
10 000000000100000000000 01111011100
11 000000000010000000000 00111101110
12 000000000001000000000 11110011111
13 000000000000100000000 10010100110
14 000000000000010000000 10100111011
15 000000000000001000000 10111110100
16 000000000000000100000 01011111010
17 000000000000000010000 11000010101
18 000000000000000001000 01100001011
19 000000000000000000100 11011101100
20 000000000000000000010 01101110110
21 000000000000000000001 11011010011

P.S. Собственно сам метод вычисления CRC более сложен, но тем не менее для моих возможных кpитиков объясняю:
так как код циклический, то в поле данного кода я пpосто изложил ноpмальные вектоpа (то бишь базис) по котоpомy спокойно вычисляется все остальное. Метод pаботает, пpичем его аппаpатная pеализация более пpоста, чем пpедлагаемое в БЧХ деление многочленов по модyлю 2.

По материалам сети FIDONET за 1996 год.
Особые благодарности Black Angel за научную систематизацию и написание этого текста.
Технический редактор: Igor Vaskov.



Домой

eComStation.Ru