Pocsag

"Post Office Code Standard Advisory Group"

 

Hier eine Beschreibung des Protokolls vom CCC mit persönlichen Ergänzungen

1) Verwendung
2) Aufbau eines Codewortes
3) Batches und Adressierung
4) Syncron- und Idlewort
5) Checksumme
6) Nachrichtenaufbau
7) Andere Länder andere Sitten
8) Synchronwort für Inforuf
9) Geschwindigkeit der Übertragung
10) Verschlüsselung
 

1) Verwendung:

Der Pocsag-Code wird für sog. Pager-Dienste verwendet. Dies sind Dienste, mit denen dem registrierte Teilnehmer über Funk Nachrichten übermittelt werden, die mittels sog. Pager oder Funkmeldeempfängern etc. empfangen werden. Er stellt quasi eine Weiterentwicklung des EFuRD (Europäischer Funkrufdienst - Europieper) dar. In der Praxis wird Cityruf u.a von Ärzten, Journalisten, Service-Technikern, aber auch Privatpersonen verwendet. Eine Neuerung stellt der SCALL-Dienst der DeTeMobil (Telekom Tochter) dar, er wurde speziell auf Jugendliche zugeschnitten. Der Pocsag-Code wird in der BRD für folgende Funkdienste verwendet:

   Cityruf               
   Euromessage  
   Inforuf      
   SCALL        
   BOS-POCSAG  

weiter Details siehe Netze und Frequenzen         

2) Aufbau eines Codewortes:

Codewörter im Cityruf-Netz bestehen aus 32 Bit, das erste Bit dient zur Unterscheidung zwischen Adress- und Nachrichtenwort. Die nächsten 20 Bits enthalten die Adresse inkl. Modus oder eine Nachricht. Die nächsten 10 Bits stellen die Prüfsumme dar, Bit 32 stellt eine gerade Parität her.

Nochmal als Tabelle:

Bit Nr.:        Funktion:                      Bemerkung:

1           Codewortbeschreibung   0 = Adresse, 1 = Nachricht
2-21        Adresse (2-19) Modus (20-21) / Nachricht (2-21)
22-31       Checksumme
32          Parität

Nachrichtenworte können auch batchübergreifend ausgesendet werden, sie dürfen aber ein Syncronwort nicht überschreiben.

3) Batches und Adressierung

Jeweils zwei Codewörter werden zu einem Rahmen (Frame) zusammengefaßt. In einem Batch werden acht dieser Frames zusammengefaßt. Diesen acht Frames wird dann noch ein Syncronwort vorangestellt, womit der Begin eines Batches signalisiert wird. Einer Gruppe von Batches (es kann aber auch ein Batch sein) wird noch eine Präambel vorangestellt, sie dient der Syncronisation der PLL der Empfänger. Nochmal als Grafik: Präambel-SW-CWCW-CWCW-CWCW-CWCW-CWCW-CWCW-CWCW-CWCW-SW-CWCW-CWCW-CWCW-.... Die, wie geschrieben zur PLL-Syncronisation verwendete Präambel besteht aus einer Folge von 0 und 1, welche mindestens 576 Bits lang ist. Die Wirkungsweise einer PLL-Schaltung wird hier aber nicht näher beschrieben, da sie mit dem Pocsag-Verfahren relativ wenig zu tun hat, und einen eigenen Text Wert ist. Generell besteht eine PLL-Schaltung aus einem Regelkreis, und dient dazu, Signale Frequenz- und Phasenstabil einzustellen. Unter anderem werden sie auch in Sendern- und Empfängern (jedes bessere Radio enthält heutzutage eine PLL-Schaltung) oder auch in Plattenspielern verwendet, um hier nur Beispiele zu nennen.

Pocsag-Adresscodes sind insgesamt 21 Bit lang. 18 Bits werden, wie beschrieben innerhalb eines Codewortes übertragen, also fehlen noch drei Bits. Diese werden, über die Stellung des Codewortes innerhalb des Batches dargestellt. Wie bekannt werden die Codewörter in Frames zu zwei Stück zusammengestellt. Nun gibt es ja acht Frames. Wer sich jetzt einwenig mit Binären Systemen auskennt, kann sich ja denken, wo die drei Bits herkommen, wer sich nicht mit Binärzahlen auskennt, sollte sich jetzt einen Zettel nehmen, und vier Spalten machen: 2 1 0 D, und mal eine Tabelle in folgender Form erstellen:

        2 1 0 D
        0 0 0 0
        0 0 1 1
        0 1 0 2
        0 1 1 3
        .
        .
        .
        1 1 1 7

oder anders gesagt: die Zahlen von 0 - 7 (acht Stück) lassen sich auch mit drei Bits von 000 - 111 Binär darstellen. Die 18 Bits aus dem Codewort stellen die sog. höchstwertigen Bits dar, die drei aus der Stellung des Codewortes (besser des Frames) innerhalb des Batches die niederwertigen. Wer jetzt noch seinen Zettel zur Hand hat, kann ja mal versuchen herauszufinden, wieviele Adressen es gibt. Wer sich Zeit sparen möchte, gibt einfach in den Taschenrechner mal 2^21 ein. (2 = Anzahl der Möglichkeiten, 21 Anzahl der Stellen, vergl. 10^2 ;-). Wer sich das noch einfacher machen möchte liest einfach weiter: 2.097.715 oder etwas über 2 Millionen.

Die Bits 20 und 21 werden zur Bestimmung des Modus verwendet: Bei ,,Nur Ton'' Geräten werden diese Ihrer Bit-Kombination entsprechend bewertet: 00 = 1, 11 = 4. Bei Alpha- und Numerischen Geräten steht 00 für numerische-, 11 für Alphageräte. Laut Definition kann ein Alphagerät keine numerischen Rufe, und numerische Geräte keine Alpha-Codes (bei Alpha- Geräten werden Zahlen mittels des ,,normalen Alphabets'' übermittelt.

4) Syncron- und Idlewort.

Das Syncronwort dient, wie schon beschrieben, der Syncronisation zwischen den Batches. Mit dem Idlewort werden fehlende Codewörter innerhalb eines Batches aufgefüllt. Das Idlewort stellt ein gültiges Adresswort da, und darf keinem Empfänger zugeordnet werden (:-). Die nachstehende Tabelle zeigt beide Wörter:

                               1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3
Wort    Bit: 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
------------------------------------------------------------------------------
Syncronw.:   0 1 1 1 1 1 0 0 1 1 0 1 0 0 1 0 0 0 0 1 0 1 0 1 1 1 0 1 1 0 0 0
Idlewort:    0 1 1 1 1 0 1 0 1 0 0 0 1 0 0 1 1 1 0 0 0 0 0 1 1 0 0 1 0 1 1 1

5) Checksumme:

Jedes Codewort enthält 21 Informationsbits. Diese stellen die Koeffizienten eines Polynoms (x^30-X^10) da. Der Rest der Polynomkoeffizienten ist 0. Dieses Polynom wird geteilt (modulo 2) durch das Generatorpolynom x^10+x^9+x^8+x^6+x^5+ x^3+x^0. Die Prüfbits entsprechen den Koeffizienten x^9 bis x^0 des nach der Division verbleibenden Restpolynoms. Nochmal etwas anders formuliert: Mensch nehme die Info-Bits: (Idlewort:)

011110101000100111000 und hängt hier noch mal 10 * 0 dran. Nun nimmt Mensch das ,,Generatorpolynom'' 11101101001. Nun fängt Mensch von links mit 'ner XOR-Verknüpfung (0+0 = 0, 0+1 = 1, 1+0 = 1, 1+1 = 0) an, die beiden Polynome miteinander zu verknüpfen. (Und schmeisst dabei immer die führenden Nullen raus, fängt also im Beispiel bei 11110101000 an.) Die verbleibende Bit-Kombination wird mit Bits aus der oberen Reihe aufgefüllt. Dies macht -mensch solange weiter, bis ein weiteres Auffüllen mehr Bits brauchen würde, als vorhanden sind. Das verbleibende Bit-Feld stellt dann die Prüfsumme dar. Beispiel:

                          0000000000
     011110101000100111000
      11101101001
     ------------------
      00011000001100
         11101101001
        ----------------
         0010110010111 
                 .
                  .
                   .

                        11101101001
                       -------------
                        011110100010
                         11101101001
                        ------------
                         00011001011 
     

6) Nachrichtenaufbau

Es gibt zwei Arten von Codewörtern: Adressen- und Nachrichtenwörter.

Wenn nach einem Adresswort kein Nachrichtenwort kommt, so handelt es sich um einen Tonruf (BEEP). Wenn nach der Adresse ein oder mehrere Nachrichtenworte kommen, so ist dies logischerweise eine Nachrichtenübermittlung. Dies kann auch batchübergreifend geschehen. Hierbei darf das Syncronwort aber nicht überschrieben werden. Zwischen zwei Nachrichtenworten soll entweder ein Nur-Adress- oder ein Idlewort übermittelt werden. Die Nachrichtenübermittlung an Numerikempfänger geschieht mittels ein 4-Bit Codierung, die Übermittlung an Alphageräte benötigt 7 Bit.

Tabelle:
                       Zeichen
                    Numeric     Alpha
                            7   0   0   0 0 1 1 1 1
Bit                         6   0   0   1 1 0 0 1 1
4 3 2 1                     5   0   1   0 1 0 1 0 1

0 0 0 0              0         NUL DLE ' '0 ß P ' p
0 0 0 1              1         SOH  DC  ! 1 A Q a q
0 0 1 0              2         STX  DC  " 2 B R b r
0 0 1 1              3         ETX  DC  # 3 C S c s
0 1 0 0              4         EOT  DC  $ 4 D T d t
0 1 0 1              5         ENQ NAK  % 5 E U e u
0 1 1 0              6         ACK SYN  & 6 F V f v
0 1 1 1              7         BEL ETB  ` 7 G W g w
1 0 0 0              8         BS  CAN  ( 8 H X h x
1 0 0 1              9         HT  EM   ) 9 I Y i y
1 0 1 0          - SPARE -     LF  SUB  * : J Z j z
1 0 1 1              U         VT  ESC  + ; K Ä k ä
1 1 0 0             ' '        FF  FS   , < L Ö l ö
1 1 0 1              -         CR  GS   - = M Ü m ü
1 1 1 0              ]         SO  RS   . > N ^ n ß
1 1 1 1              [         SI  US   / ? O _ O DEL

7) Andere Länder andere Sitten

Land:              Bemerkungen:

Großbritanien      608 Bit Präambel
Frankreich         576 Bit Präambel
Italien            576 Bit Präambel

8) Syncronwort für Inforuf

                       1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3
Bit: 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 
--------------------------------------------------------------------
     0 1 1 1 1 1 0 0 1 1 0 1 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 1 0 1 1 0

9) Geschwindigkeit der Übertragung

Das POCSAG Protokoll lässt verschiedene Übertragungsgeschwindigkeiten zu. Dies wird mit der Baud-Rate angegeben und kann entweder 512Baud, 1200Baud oder 2400Baud betragen. Dies ist insofern wichtig, da nicht alle Empfänger mit jeder Baudrate arbeiten können bzw. im Vorfeld die Geschwindigkeit in der Pragrammierung angegeben werden muss (je nach Modell).

 

10) Verschlüsselung

Pagingnetze die dieses Protokoll verwenden sind nicht abhörsicher. Die gesendenten Nachrichten können mit einfachen mitteln decodiert und mitgelesen werden. Um dieses zu umgehen werden immer mehr BOS-Netze verschlüsselt d.h. jeder Empfänger wird mit einem speziellen Schlüssel programmiert, so dass die Nachrichten entschlüsselt werden. Einige Pagermodelle vergessen diesen Schlüssel bei einem unauthorisierten Programmierversuch, sodass er zunächst einmal keine Nachrichten mehr entschlüsseln kann.



(vgl. CCC-Seite www.ccc.de)