ARRL

PACTOR

1. PROTOCOL

PACTOR can be viewed as a combination of two earlier digital modes, packet radio and AMateur Teleprinting Over Radio (AMTOR). PACTOR provides improved throughput because its transmission speed adapts to the quality of the link and it uses Huffman compressed characters. PACTOR operates over half-duplex links and uses an Automatic Repeat reQuest (ARQ) protocol, acknowledging each individual data packet with a short Control Signal (CS). Some PACTOR implementations provide a Memory-ARQ feature to determine and store the relative strength of each received bit. Copies of corrupted frames stored this way are correlated with frames received later, to provide a coding gain for improved error correction.

2. PACKET LENGTH AND ACKNOWLEDGMENT

PACTOR is a synchronous transmission system with a packet duration of 0.96 second, a CS duration of 0.12 second, and an idle time of 0.17 second for a total cycle time of 1.25 seconds. The idle time is required for turaround procedures and settling, which allows for a maximum distance of about 20,000 km as in AMTOR. Clock reference is crystal controlled with an internal standard to at least 15 X 10-6 accuracy. The initiating station is the Master, and the other station is the Slave. PACTOR subjects each received packet to a Cyclic Redundancy Check (CRC) which triggers an ARQ for packets failing the CRC. The receiving station provides acknowledgment by sending a CS. Repetition of the same CS indicates a request for a packet to be repeated. The CS has a standard length of 12 bits and is always sent at 100 bauds.

3. PACKET COMPOSITION AND BAUD RATE

Packets are either 96 bits long sent at 100 bauds or 192 bits long sent at 200 bauds, with the data rate dependent on conditions. Each packet consists of a Header byte, Data field, and Status byte, followed by the CRC byte given twice. The Header byte consists of the 8-bit pattern for 55 hexadecimal and is used for synchronization, MemoryARQ, and listen mode. The Data field contains 64 bits if sent at 100 bauds or 160 bits if sent at 200 bauds. Its format is normally Huffman-compressed ASCII, with conventional 8-bit ASCII as the alternative. The Status byte provides the packet count, data format (whether standard 8-bit ASCII or Huffman-compressed ASCII), break-in request, and QRT bit, for a total of 8 bits. The CRC calculation is based on the ITU-T polynomial xE16+xE12+xE5+1. The CRC byte is calculated for the whole packet starting with the data field, without Header, and consists of 16 bits. There are four different Control Signals, identified as CS1, CS2, CS3, and CS4, the functions of which are explained below.

4. LINK INITIALIZATION

To initiate a PACTOR connection, the Master station sends a special synchronization packet which contains the standard Header byte followed by the call sign (address) of the Slave station in both a 100-baud and a 200-baud bit pattern. (Each address field allows for up to eight characters, with the character 0F hexadecimal following the call sign in each unused space.) This allows the 200-baud bit pattern to determine the quality of the channel: The Slave responds with CS1 (4D5 hexadecimal) if the 200-baud bit pattern was received without error, or CS4 (D2C hexadecimal) if not, which leads to an instant reduction of data rate to 100 bands. After receiving the first CS1 or CS4 from the Slave, the Master sends the first data packet with Header=AA hexadecimal and packet count=1. System specific data, including the Master call sign, is sent automatically at the beginning. If the Slave is busy, it can both acknowledge and reject a connection by sending one CS2 (AB2 hexadecimal) each time it receives a correct synchronization pattern. The Master terminates its connect request after receiving CS2 twice in succession.

5. CHANGING SPEED

The decision regarding a speed change is made at the receiving end, by automatically evaluating the data input rate and packet statistics including error rate and number of retries. The receiving station transmits CS1 (acknowledge) following each correctly received packet, or CS4 (speed change request) following receipt of a bad 200-baud packet. The data contained in each unacknowledged 200-baud packet is automatically repeated at 100 bauds. This repetition requires several 100-baud packets because of the smaller Data field. If the receiving station acknowledges a correctly received 100-baud packet with CS4, the transmitting station sends the next packet at 200 bauds. If the following 200-baud packet is not acknowledged after an operator-selectable number of attempts (normally two), the speed is automatically set back to 100 bauds.

6. CHANGING DIRECTION AND ENDING CONNECTION

The receiving station can change to transmit by sending CS3 (3413 hexadecimal) as a break-in request at the head of its first data packet. At the end of a connection, special end of contact (QRT) synchronization packets are transmitted which contain the receiver address in the reversed order. This process is repeated until the sending station has received the acknowledgement.

7. ASCII CHARACTERS AND HUFFMAN COMPRESSION

PACTOR normally uses ASCII characters that have been compressed with a Huffman algorithm. This Huffman compression reduces the average character length for improved efficiency. The Annex shows the Huffman compressed equivalent of each ASCII character used in PACTOR, with the least significant bit (LSB) given first. The length of individual characters varies from 2 to 15 bits, with the most frequently used characters being the shortest. This results in an average character length of 4 to 5 bits for English text, instead of the 8 bits required for normal ASCII.

8. SIGNAL CHARACTERISTICS

PACTOR uses frequency-shift keying (FSK). With the recommended frequency shift of 200 Hz, PACTOR can be received through a filter with a bandwidth as narrow as 600 Hz.

9. PACTOR HUFFMAN COMPRESSION

Char ASCII Huffman
(LSB [sent first] on left)
space 32 10
e 101 011
n 10 0101
i 105 1101
r 114 1110
t 116 00000
s 115 00100
d 100 00111
a 97 01000
u 117 11111
l 108 000010
h 104 000100
g 103 000111
m 109 001011
<CR> 13 001100
<LF> 10 001101
o 111 010010
c 99 010011
b 98 0000110
f 102 0000111
w 119 0001100
D 68 0001101
k 107 0010101
z 122 1100010
. 46 1100100
, 44 1100101
S 83 1111011
A 65 00101001
E 69 11000000
P 112 11000010
v 118 11000011
O 48 11000111
F 70 11001100
B 66 11001111
C 67 11110001
I 73 11110010
T 84 11110100
O 79 000101000
P 80 000101100
1 49 001010000
R 82 110000010
( 40 110011011
) 41 110011100
L 76 110011101
N 78 111100000
Z 90 111100110
M 77 111101010
9 57 0001010010
W 87 0001010100
5 53 0001010101
y 121 0001010110
2 50 0001011010
3 51 0001011011
4 52 0001011100
6 54 0001011101
7 55 0001011110
8 56 0001011111
H 72 0010100010
J 74 1100000110
U 85 1100000111
V 86 1100011000
<FS> 28 1100011001
x 120 1100011010
K 75 1100110100
? 63 1100110101
= 61 1111000010
q 113 1111010110
Q 81 1111010111
j 106 00010100110
G 71 00010100111
- 45 00010101111
: 58 00101000111
! 33 11110011101
/ 47 11110011110
* 42 001010001100
  34 110001101100
% 37 110001101101
  39 110001101110
  95 111100001100
& 38 111100111001
+ 43 111100111110
> 62 111100111111
@ 64 0001010111000
$ 36 0001010111001
< 60 0001010111010
X 88 0001010111011
# 35 0010100011011
Y 89 00101000110101
; 59 11110000110100
\ 92 11110000110101
[ 91 001010001101000
] 93 001010001101000
<DEL> 127 110001101111000
~ 126 110001101111001
} 125 110001101111010
| 124 110001101111011
{ 123 110001101111100
  96 110001101111101
^ 94 110001101111110
<US> 31 110001101111111
<GS> 29 111100001101100
<ESC> 27 111100001101101
<EM> 25 111100001101110
<CAN> 24 111100001101111
<ETB> 23 111100001110000
<SYN> 22 111100001110001
<NAK> 21 111100001110010
<DC4> 20 111100001110011
<DC3> 19 111100001110100
<DC2> 18 111100001110101
<DC1> 17 111100001110110
<DLE> 16 111100001110111
<RS> 30 111100001111000
<Sl> 15 111100001111001
<SO> 14 111100001111010
<FF> 12 111100001111011
<VT> 11 111100001111100
<HT> 9 111100001111101
<BS> 8 111100001111110
<BEL> 7 111100001111111
<ACK> 6 111100111000000
<ENQ> 5 111100111000001
<EOT> 4 111100111000010
<ETX> 3 111100111000011
<STX> 2 111100111000100
<SOH> 1 111100111000101
<NUL> 0 111100111000110
<SUB> 26 111100111000111

PACTOR REFERENCES

Helfert, Hans-Peter, and Ulrich Strate: PacTOR Radioteletype with Memory ARQ and Data Compression, QEX, American Radio Relay League, Newington, CT, October 1991, pp. 3-6.

Horzepa, Stan: PacTOR: Better HF Data Communications for the Rest of Us?, QST, American Radio Relay League, Newington, CT, February 1993, p. 98.

Rogers, Buck: PacTOR - The New Frontier, CQ, CQ Communications, Hicksville, NY, July 1993, pp. 88-95.

Van Der Westhuizen, Mike: A Practical Comparison Between Clover and Pactor Data Transfer Rates, CQ, CQ Communications, Hicksville, NY, February 1994, pp. 40-42.

See also: http://www.scs-ptc.com.

ACKNOWLEDGEMENT

This technical description was prepared by Steven L Karty, N5SK.

Join ARRL

Donate Now

Logbook of the World Logbook of the World The fastest way to earn awards. Learn More