Programmable data terminal set4199809Abstract An operator console, a general purpose digital computer and a radio set irface are connected to perform the modulation and demodulation of the differential coherent quadrature phase shift signal used to transmit the digital information over a computer-to-computer radio link. The console is used to initiate communications and to control and monitor link operation. The computer performs all of the signal processing and control functions. The radio set interface performs analogue-to-digital (A/D) and digital-to-analogue (D/A) conversions for the received and transmitted signals, respectively. The programmable data terminal set (PDTS) also controls the data link operation and sequencing and tests its own performance during operation. Claims We claim: Description BACKGROUND OF THE INVENTION
Table I
______________________________________
PROGRAM FUNCTION IDENTIFICATION
GROUP FUNCTION
______________________________________
Transmit
Message Generation
EDAC Encoding (EE)
Control Code Generation (CG)
Message Encoding (ME)
Header Generation
Header Generation (HG)
Modulation Signal Modulation (SM)
Receive
Demodulation Signal Demodulation (SD)
Header Processing
Signal Presence (SP)
Frame Synchronization (FS)
Phase Reference (PR)
Message Processing
Message Decoding (MD)
Control Code Recognition (CR)
EDAC Decoding (ED)
Input/ Radio Set Input/Output (RS)
Output NTDS Input/Output (NT)
Control Link Control (LC)
Auxiliary Man/Machine (MM)
Bulit-In Test (BT)
Executive (EX)
Loader (LD)
______________________________________
The PDTS system 10 operates in six distinct processing states: idle, listening, header reception, data reception, header transmission, and data transmission. The PDTS 10 is in the idle state after program loading and prior to program initialization. The PDTS is in the listening state while neither transmitting nor having yet received the first preamble frame of a message. The PDTS 10 is in the header reception state from detection of signal presence in the first preamble frame through detection of the phase reference frame. The PDTS 10 is in the data reception state following detection of the phase reference frame until detection of the end of the message. The PDTS is in the data transmission state while transmitting the remainder of the message. A cross-correlation table showing the functions affected by each of the states is shown in FIG. 7. A basic signal flow diagram of the transmit, input/output, and control functions is illustrated in FIG. 8. A basic signal flow diagram of the receive subsystem showing the relationship between receive, input/output, and control functions is presented in FIG. 9. A basic signal flow diagram of the auxiliary functions is presented in FIG. 10. It is noted that the blocks indicate computer program functions and the information on the lines interconnecting the blocks indicate the information type. The following functions are implemented in the general purpose digital computer 12 to provide an enlarged signal processing repertoire for programming. Fast Fourier Transform (FFT) This routine computes the Fast Fourier Transform of an array of N complex points contained in a contiguous block of core, in natural order, and stores F(k) in the same block in bit reversed order. For the present example, the FFT algorithm requires that N=32, i.e., the array may consist of thirty-two complex points. The stored values, F(k), are rounded. The input data must be scaled prior to executing the FFT; 12-bit accuracy is maintained. The FFT is defined as: ##EQU1## where, F(j)=the complex j.sup.th coefficient of the FFT of the input array s=scale factor T(k)=k.sup.th complex number of the input array i=.sqroot.-1 The input for this function is the input array starting address. It is noted that the input array for all major mocrocode functions described herein consists of complex numbers stored in two adjacent memory cells; for each real component located as address x, its imaginary component will be located at address x+1. Example: N=32
______________________________________
Address.sub.10 Contents
______________________________________
1000 Real.sub.1 First
Complex
1001 Imaginary.sub.1
Number
. . . . . .
1062 Real.sub.32 32.sup.nd
Complex
1063 Imaginary.sub.32
Number
______________________________________
The computation of the FFT or the inverse FFT results in scrambling the data addresses. The correct address for coefficient k is formed by reversing the bit order of the coefficient number expressed in binary. Examples of bit reversals for a 32-point FFT are:
______________________________________
Scrambled output of FFT
Unscrambled Final Address
______________________________________
00 000.sub.2 00 000.sub.2
00 001.sub.2 10 000.sub.2
00 100.sub.2 00 100.sub.2
11 111.sub.2 11 111.sub.2
______________________________________
This function unscrambles the contents of the addresses of the input array. No scaling is performed by the instruction. The inputs for this function are the input array starting address and n. Inverse Fast Fourier Transform (IFFT) This function computes the inverse FFT of an array of N complex points contained in a contiguous block of core, in natural order, and stores T(k) in the same block bit reversed order. The IFFT algorithm requires for the present example that N=64. The stored values, T(k), are rounded. The input data must be scaled prior to executing the FFT; 12-bit accuracy is maintained. The IFFT is defined as: ##EQU2## where, T(k)=the complex K.sup.th coefficient of the IFFT of the input array s=scale factor F(j)=j.sup.th complex number of the input array i=.sqroot.-1 The inputs for this function are the input array starting address. Amplutide and Phase (Modulo 2.pi.) This function converts a complex spectrum of N points into an array of N real amplitudes, A, and phase angles, .phi.. The following equations define A and .phi.: ##STR1## where, R=real component I-imaginary component N=2.sup.n (5 .ltoreq.n .ltoreq.6) The inputs are the input array starting address, n, and output array starting address. For the output format, A and .phi. are stored in alternate locations beginning with A.sub.1 at the output array starting address (the output array may have the same addresses as the input array). Separate This function separates the results of two real input sequences transformed as a single complex FFT. The input data consists of an array of N complex numbers, designated F(j) (where j=0, 1, . . . , N-1), stored in contiguous memory locations. F(j) is reordered to produce the output arrays of numbers F.sub.1 (j) and F.sub.2 (j), in a single complex transform (j=0, 1, . . . , (N/2)-1). F.sub.1 (j) is stored in natural order in the memory addresses which previously contained the first half of the input array, and F.sub.2 (j) is similarly stored in the remaining memory addresses. The separate instruction is defined as: F.sub.1 (j)=1/2(F* (N-j)+F (j)) stored in place of F(j) F.sub.2 (j)=i/2 (F* (N-J)-F (j)) stored in place of F(N/2+j) where, F(N).ident.F(O) j=0, 1, . . . , (N/2)-1 F*=complex conjugate of F i=.sqroot.-1 The trigonometric and square root functions are also implemented in the microcode. Referring now to FIG. 3, the transmission processing in the PDTS computer 12 will be described. Each block of FIG. 3 is a software program. The 24-bits of data from the data source computer 14 is received by the input/output program and passed to the error detection and correction (EDAC) encoding program which computes and appends six Hamming code bits. Next the message encoding program converts the 15-bit pairs to differential phase values and computes a Doppler tone phase. The phase values are then converted to a composite digitized audio tone package (sixteen tones) samples at a 7040 Hz rate by the signal modulation program using an Inverse Fast Fourier Transform (IFFT). Finally, the amplitudes of the signal are forwarded to the RIB unit 18 by the radio set I/O program which also controls the transmitter key signal. Referring now to FIG. 4, the RIB radio set interface 18 transmission processing is illustrated. As seen therein, the RIB interface 18 transmission section is seen to be comprised of a D/A converter 26 which receives its input from computer 12 and is driven by a suitable clock such as a 7040 Hz clock. A low pass filter 28 is connected to the output of the D/A converter 26. A first buffer amplifier 30 and a second buffer amplifier 32 are connected to the outputs of the low pass filter 28. Key line signals are forwarded to the radio set 20 by the key line driver 34 to initiate and terminate transmission and reception. During transmission, the radio set interface 18 hardware takes 16-bit (only to 12-bit precision) signed digital values from the terminal processor 12 at an accurate 7040 per second rate. The least significant 12-bits of each signed value are digital-to-analogue converted by the D/A converter 26 and the result is passed through low pass filter 28 to produce an audio signal in the 3KHz band. A signal is put on a key line to turn the radio transmitter on so that the transmitter will have reached 90 percent, for example, of its rated power output when the first audio signal is sent. The low pass filter 28 output is buffered to the upper and/or lower sideband input to the transmitter of the radio set 20. The received signal processing begins at the RIB interface 18 which takes two separate audio signals from the radio set 20 in the receive mode of operation. The reception portion of the interface 18 is illustrated in FIG. 5. Each of the upper and lower sideband signals is converted into component signals, an in-phase signal and a quadrature-phase signal by the quadrature phase shift circuits 36 and 38. Every audio tone in the quadrature-phase signal will lag the corresponding tone in the in-phase signal by 90.degree.. The outputs of the quadrature-phase shift circuits 36 and 38 are connected to sample and hold networks 40, 42, 44 and 46 and pass through analogue multiplexer 48 to the A/D converter 50. The sample and hold circuits 40, 42, 44 and 46 are driven from a 3520 Hz clock, for example, preferably derived from the same clock source as that to the D/A converter 26 in FIG. 4 and permits sampling of the same signal at the same time. Analogue multiplexer 48 is provided to permit use of the same A/D converter 50 for each input. A/D converter 50 provides an upper sideband output through input driver 52 and a lower sideband output through input driver 54. By the receive interface arrangement illustrated in FIG. 5, the relative phases and amplitudes of each tone are preserved. Each of the four resulting audio signals, in-phase and quadrature-phase from each received signal is analogue-to-digital converted by the A/D converter 50 into signed digital values with 12-bits of precision. The sampling is at a 3520 per second rate, precisely controlled by the same frequency standards used for transmission. Each signed digital value is formed into a 16-bit word by sign filling (the data is left justified) and the digital values are transferred to the terminal processor 12. The processing of the received data in the PDTS computer 12 begins with receiving the upper and/or lower sideband signals by the radio set I/O program (FIG. 6). The information is then passed to the signal demodulation program which adjusts the frequencies of the incoming data and corrects the Doppler error. The data is demodulated using a Fast Fourier Transform (FFT). The message decoding program converts the spectral components into 15-bit pairs. A diversity signal is formed by combining the upper and lower sideband signals. The data is next checked to determine whether it is a control code or not by the control code recognition program. If the data is a control code, it is forwarded to the Link Control program. Otherwise, the EDAC decoding program performs error detection and correction and selects the sideband data with the least errors. The selected data is forwarded to the NTDS or other computer by the NTDS I/O program. The detailed functional requirements of the program functions that comprise the PDTS computer 12 will now be described with reference to FIGS. 8, 9 and 10 illustrating respectively the transmit subsystem signal flow, the receive subsystem signal flow and the auxiliary subsystem flow. It is noted that the blocks in FIGS. 8, 9 and 10 denote program functions and the information on the lines interconnecting the blocks indicate signal type. The data terminal is always in one of three states: idle, receive, or transmit. The data terminal is in the idle state when the program has been loaded (Loader mode) or the selected program (On-Line or Maintenance mode) has not been initialized and started. The data terminal is in the receive state when either listening for a preamble, receiving a header, or receiving data. The data terminal is in the transmit state when transmitting either header or data. The value of this state is available to all functions. The Receive Processing Index (RPI) is a subdivision of the receive state and is available to all functions. It has the following values: 0=listening, no signal presence 1=signal presence detected 2=frame synchronization accomplished 3=phase reference frame detected 4=start code accepted 5=stop code accepted The configuration parameters and address values maintained by the Man/Machine function are also available to all other functions. Link Control The requirements of this program have been described in the Background of the Invention above. In the idle state, the input that this function responds to is an initiate request from the Executive function to begin operations. In the receive state, the input to this function is one of the following: a. A signal quality value from the Signal Demodulation function indicating the measured signal quality of the frame just demodulated. b. A XMT INITIATE/RESET from the Man/Machine functions as the result of the operator depressing the designated key on the ADD console 22. c. An accepted/no control code value from the Control Code Recognition function indicating that a start, control stop, picket stop, ownship address, or no control codes were detected. d. A timeout notification from the Executive function indicating that a Picket Station has not replied. e. A terminate request from the Built-In Test or Executive function to cease operations. In the transmit state, the input to this function is one of the following: a. A XMT INITIATE/RESET from the Man/Machine function as the result of the operator depressing the designated key on the ADD console 22. b. A header complete notification from the Radio Set Input/Output function indicating that the last header frame has been generated. c. A data available indicator, having the value true or false, from the NTDS Input/Output function. d. A terminate request from the Built-In Test or Executive function to cease operations. This function provides the logical interface between the receive and transmit functions to maintain the discipline required by a Net Control or Picket Station in a Link-11 net. The processing performed by this function is in response to the particular input received and the data terminal state. (1) In the idle state: When an initiate request is received, an initiate request is sent to the Radio Set Input/Output function to begin input from the Radio Set Interface, the Receive Processing Index is set to zero (listening), and the data terminal is placed in the receive state. (2) In the receive state: When a signal quality value is received it is added to a sum of previous values. If 750 values have now been received, the average is computed and sent to the Man/Machine function for the SIG QUAL status display to the operator, and the summing process is started again. If this input represents the fourth consecutive bad signal quality value, a missed stop code is assumed and the processing for a picket stop code is performed. The NCS in Roll Call mode will call the next address and a Picket Station or the NCS in other than Roll Call mode will return to listening. When a XMT INITIATE is received and the data terminal is in the Broadcast or Short Broadcast mode, a Prepare to Transmit-Broadcast request is sent to the NTDS Input/Output function and a header type value of three (data header) is sent to the Radio SEt Input/Output function. When the data terminal is in the Roll Call mode at the NCS, a header type value of two (address header) is sent to the Radio Set Input/Output function. When the data terminal is in the Net Test mode at the NCS, a header type value of three is sent to the Radio Set Input/Output function. When the data terminal is in the Net Sync mode at the NCS, a header type value of one (continuous preamble frames) is sent to the Radio Set Input/Output function. In these cases the Receive Processing Index is set to zero (listening) and the data terminal is placed in the transmit state. In all other cases an illegal action message is sent to the Built-In Test function in response to a XMT INITIATE function key. When an identified control code value is received the processing criteria is based on the particular control code detected or the absence of a control code where one should be found. When a start code is detected and the RPI has the value three (phase reference received last), the RPI is set to four (start code detected) and a Prepare to Receive request is sent to the NTDS Input/Output function to notify the NTDS computer that data is to follow. If the RPI does not have the value three this input results in an error notification to the Built-In Test function. When a control stop code is detected and the RPI has the vcalue four, an End of Receive request is sent to the NTDS Input/Output function to notify the NTDS computer of the end of data for this transmission. At a Picket Station the RPI is then set to five to indicate that a control stop has been detected and an address code is expected in the next two frames. At the NCS this input indicates that another station is also acting as a NCS and an error notification is sent to the Built-In Test function. When a picket stop code is detected and the RPI has the value four an End of Receive request is sent to the NTDS Input/Output function. At the NCS, an "accepted call" display for the current picket address is sent to the Man/Machine function to clear a previous "missed call" display for that address. At a Picket Station or the NCS in other than Roll Call mode, the RPI is set to zero to reinitialize the receive state and no further processing is performed. At the NCS in Roll Call mode, the next picket address in the list of addresses, treated circularly, is considered. If the last picket was the last address of the list then data is to be transmitted. In this case a header type value of three is sent to the Radio Set Input/Output function, a Prepare to Transmit-Roll Call request is sent to the NTDS Input/Output function, the RPI set to zero, and the data terminal placed in the transmit state. If the last picket called was not the last address of the list then no data is to be transmitted prior to the picket address. In this case a header type value of two (address header) is sent to the Radio Set Input/Output function, the RPI is set to zero, and the data terminal placed in the transmit state. When an ownship address code is detected at a Picket Station in Roll Call mode, then it is this station's turn to transmit. In this case a header type value of three is sent to the Radio Set Input/Output function, a Prepare to Transmit-Roll Call request is sent to the NTDS Input/Output function, the RPI is set to zero, and the data terminal is placed in the transmit state. At a Picket Station not in Roll Call mode this input is ignored. The value of ON for the RCV MODE status indicator is sent to the Man/Machine function for display to the operator when a start code is received. The value OFF is sent when a stop code is either received or assumed. At the NCS, the value OFF for the NET BUSY status indicator is sent to the Man/Machine function when a start code is received or a timeout notification is received for a Picket call. At a Picket Station, the value ON is sent when a start code or address code (ownship or other) is received and the value OFF is sent when a stop code (control or picket) is received. When the NCS receives a timeout notification it is interpreted to mean that a Picket Station has failed to respond to its address call. If this is the first failure during a cycle, another address call is made. In this case a header type value of two is sent to the Radio Set Input/Output function, the RPI is set to zero, and the data terminal is placed in the transmit state. If this is the second failure to respond, a "missed call" display for that station is sent to the Man/Machine function and the next picket address in the address list is considered as described above for an identified picket stop code. When a terminal request is received, a terminate request is sent to the Radio Set Input/Output function to stop all input/output operations of the RSI, an End of Receive request is sent to the NTDS Input/Output function if data was being transmitted to the NTDS computer, and the data terminal is placed in the idle state. (3) In the transmit state: When a XMT INITIATE is received an illegal action message is sent to the Man/Machine function. When a XMT RESET is received, a Reset request is sent to the NTDS Input/Output function, an XMT disable request is sent to the Radio Set Input/Output function, the RPI set to zero, and the data terminal is placed in the receive state. When a header complete notification is received at a Picket Station or at the NCS in the Roll Call mode when sending its own data or a the NCS in Broadcast or Short Broadcast mode and the data available input received previously has the value true, a next word request is sent to the NTDS Input/Output function to ccept the next data word. If the value is false then the NTDS computer has failed to respond to a request for data. An error notification of this condition is sent to the Built-In Test function if this is the second consecutive time, and the processing for an end of transmission condition, as described below, is performed. At the NCS in Roll Call mode, when not sending its own data, a control code index for the next picket address is sent to the Control Code Generation function, the net busy counter is started by sending a timeout request to the Executive function, the RPI is set to zero, and the data terminal is placed in the receive state. At the NCS in Net Test mode, a control code index for the next permuted data word is sent to the Control Code Generation function. When a data available indicator is received and has the value true, a next word request is sent to the NTDS Input/Output function if the header complete notification has previously been received. When the data available indicator has the value false, an end of transmission condition is recognized. At a Picket Station a control code index for the picket stop code is sent to the Control Code Generation function, the RPI is set to zero, and the data terminal is placed in the receive state. At the NCS a control code index for the control stop code is sent to the Control Code Generation function if one has not already been sent. If one has been sent, a control code index for the next picket address is sent, the net busy counter is started, the RPI set to zero, and the data terminal is placed in the receive state. When a terminate request is received the processing performed is identical to that described for the receive state. The value of ON for the XMT MODE status indicator is sent to the Man/Machine function when a header type value of three is sent to the Radio Set Input/Output function. The value OFF is sent when a picket stop code is generated at a Picket Station, or an address code is generated at the NCS. At a Picket Station, the value On for the NET BUSY status indicator is sent to the Man/Machine function when a start code is generated and the value OFF is sent when a picket stop code is generated. At the NCS, the value ON is sent when a start code (own data transmission) or an address code (picket call) is generated. In the idle state, the output of this function is an initiate request to the Radio Set Input/Output function. In the receive state, the output of this function is one of the following: a. A status value and item indicator to the Man/Machine function. b. A prepare to Transmit-Roll Call, a Prepare to Transmit-Broadcast, a Prepare to Receive, an End of Receive, or a Reset request to the NTDS Input/Output function. c. A header type value to the Radio Set Input/Output function. d. A control code index and frame indicator to the Control Code Generation function. e. A terminate request to the Radio Set Input/Output function. f. An error notification to the Built-In Test function. g. An accepted address to the Man/Machine function. h. A missed address to the Man/Machine function. In the transmit state, the output of this function is one of the following: a. A status value and item indicator to the Man/Machine function. b. A Prepare to Transmit-Broadcast or a Reset request to the NTDS Input/Output function. c. A header type value to the Radio Set Input/Output function. d. A XMT disable request to the Radio Set Input/Output function. e. A control code index and frame indicator to the Control Code Generation function. f. A next word request to the NTDS Input/Output function. g. A terminate request to the Radio Set Input/Output function. h. An error notification to the Built-In Test function. i. A timeout request to the Executive function. To provide an off-line maintenance capability to isolate faulty software or hardware components, this function also supports the following additional requirements: a. Inhibit the keying on of the transmitter. b. Inhibit the sending of received data to the NTDS computer. c. Inhibit the receiving of data from the NTDS computer. d. Use special octal data patterns: 52525 25252, 25252 52525, 00000 00000, and 77777 77777. e. Enable sustained instruction testing by the Built-In Test function (Test 1). f. Enable the circulation of test data patterns through the computer 12 without using the Radio Set Interface (Test 2). This requires that the real data normally presented to the RSI be checked for correctness and the equivalent complex data, that would have been received for the real data, be input to the receive processing functions. g. Enable the circulation of test data patterns through the computer 12 and the Radio Set Interface (Test 3). h. Interpret a XMT INITATE as a signal to start the selected test. i. Interpret a XMT RESET as a signal to stop the selected test. j. Report the success or failure of each of the tests to the operator with the count of frames successfully circulated. EDAC Encoding Each 24-bits of information received from the NTDS computer is augmented by six Hamming code redundancy bits to produce a 30-bit data word for transmission. The use of redundancy bits permits validation and limited correction of received data words. The only input to this function is twenty-four information bits from the NTDS Input/Output function every 13.3 ms. (Fast) or 22 ms. (Slow) while data is being transmitted. This function augments the 24-bit data word received from the NTDS computer with six Hamming code redundancy bits to generate a 30-bit transmission word. Data bits 0 through 23 are those received from the NTDS computer and data bits 24 through 29 are intially set to zero. Five bit patterns are used for encoding as well as for the decoding. Below are the patterns used:
______________________________________
Pattern Bits Set to One
______________________________________
1 0,1,3,4,6,8,10,11,13,15,17,19,21,23, & 25
2 0,2,3,5,6,9,10,12,13,16,17,20,21, & 26
3 1,2,3,7,8,9,10,14,15,16,17,22,23, & 27
4 4 through 10, 18 through 23, 28
5 11 through 23, & 29
______________________________________
Data bits 0 through 29 are logically ANDed with each of the bit patterns to generate five partial words. The parity of each partial word is indicated as a one for even parity or a zero for odd parity and inserted into the data word in the bit position corresponding to the last bit in the pattern. The overall parity of the entire data word is now indicated as a one for even parity or a zero for odd parity and inserted into bit position 24. This completes the encoding process. The output of this function is a 30-bit data word generated at the same rate as the input and is routed to the Message Encoding and Message Decoding functions. Control Code Generation During the transmit cycle a control stop, picket stop, or address code sequence is appended to the data stream. Although all control and address codes are comprised of 60 bits, only 30 bits at one time are generated by this function. The required inputs to this function, generated upon demand, are: a. A control code index representing the desired control code from the Link Control function. The sixty-five legal values of this index are from 0 to 100.sub.8. b. A frame indicator denoting which 30-bit frame of the control code is desired from the Link Control function. This function locates and outputs the appropriate 30-bits to be modulated. All of the control codes used by the PDTS are contained in a stored table of 65 entries, with each entry 60 bits long. Entry 0 corresponds to the control stop code and entry 77.sub.8 corresponds to the picket stop code. Entries 1 through 76.sub.8 correspond to the sixty-two permissable address codes. The value of each control code is given in Table II. The control code index is used as an address into the table to locate the proper entry. The frame indicator is used to determine which frame of the entry is required. When in the Net Test mode at the NCS, the 60-bit control codes generated will be permutations of the start code sequence. The first 60-bits generated, as indicated by a control code index of 100.sub.8, is a one-bit circular shift of the start code. All subsequent outputs will be successive 1-bit circular shifts of this 60-bits. The output of this function, generated at the same rate as the input, is a single 30-bit data word routed to the Message Encoding and Message Decoding functions.
Table II
______________________________________
TABLE OF CONTROL CODES
ADDRESS CODE
(OCTAL) (OCTAL)
FRAME 1 FRAME 2 REMARKS
______________________________________
00 00000 00000
00000 00000
CONTROL STOP
01 05712 14101
65315 66447
02 16136 24302
37526 33551
03 13624 30203
52633 55116
04 34274 50604
77254 67322
05 31566 44705
12141 01765
06 22342 74506
40772 54673
07 27450 60407
25467 32234
10 70571 21410
76531 56644
11 75263 35511
13624 30203
12 66447 05712
41017 65315
13 63355 11613
24302 03752
14 44705 71214
01765 31566
15 41017 65315
64470 57121
16 52633 55116
36243 02037
17 57121 41017
53156 64470
20 61362 43020
75263 35511
21 64470 57121
10176 53156
22 77254 67322
42745 06040
23 72546 73223
27450 60407
24 55116 13624
02037 52633
25 50604 07725
67322 34274
26 43020 37526
35511 61362
27 46732 23427
50604 07725
30 11613 62430
03752 63355
31 14101 76531
66447 05712
32 07725 46732
34274 50604
33 02037 52633
51161 36243
34 25467 32234
74506 04077
35 20375 26335
11613 62430
36 33551 16136
43020 37526
37 36243 02037
26335 51161
40 42745 06040
72546 73223
41 47057 12141
17653 15664
42 54673 22342
45060 40772
43 51161 36243
20375 26335
44 76531 56644
05712 14101
45 73223 42745
60407 72546
46 60407 72546
32234 27450
47 65315 66447
57121 41017
50 32234 27450
04077 25467
51 37526 33551
61362 43020
52 24302 03752
33551 16136
53 21410 17653
56644 70571
54 06040 77254
73223 42745
55 03752 63355
16136 24302
56 10176 53156
44705 71214
57 15664 47057
21410 17653
60 23427 45060
07725 46732
61 26335 51161
62430 20375
62 35511 61362
30203 75263
63 30203 75263
55116 13624
64 17653 15664
70571 21410
65 12141 01765
15664 47057
66 01765 31566
47057 12141
67 04077 25467
22342 74506
70 53156 64470
71214 10176
71 56644 70571
14101 76531
72 45060 40772
46732 23427
73 40772 54673
23427 45060
74 67322 34274
06040 77254
75 62430 20375
63355 11613
76 71214 10176
31566 44705
77 77777 77777
77777 77777
Picket Stop
100 74506 04077
54673 22342
Start
______________________________________
Message Encoding The input to the Message Encoding function is a 30-bit data word containing the information to be transmitted. The phase of each tone to be modulated is the phase of that tone in the previous frame, rotated by an odd multiple of 45.degree. C determined by the bit-pair assigned to each tone. The initial phase of each tone is a multiple of 45.degree., having the value of 0.degree., 45.degree., 90.degree., 135.degree., 180.degree., 225.degree., 270.degree., or 315.degree., and a rotation of an odd multiple of 45.degree. also produces one of these phases. The eight possible phases are represented by complex vectors with constant amplitude. The required inputs to this function, generated every 13.3 ms. (Fast) or 22 ms. (Slow) while transmitting data, are: a. A 30-bit data word from the EDAC Encoding or Control Code Generation function. b. A set of 16 complex values representing the reference phase of each tone in the last header frame, when input a. is the first data frame, from the Header Generation function. The real and imaginary parts of each complex value have an accuracy of at least 12 bits. This function translates 30-bits of data into 15 phases, one for each of the variable tones. A phase is also assigned to the constant Doppler tone. The phase rotation, .phi..sub.r, for each tone is defined as .phi..sub.r (k)=(1-2d.sub.(2k-1))(3-2d.sub.(2k-2)).times.45.degree.for k=1,2,3,...., 15 where d.sub.(2k-l) and d(.sub.2k-2) are odd/even bit pairs of the 30-bit data word. The transmitted phase, .phi..sub.t (k), for each tone is defined as .phi..sub.t (k)=.phi..sub.r (k)+.phi..sub.p (k) for k=1,2,3,...., 15 where .phi..sub.p are the transmitted phases from the previous frame or the reference phases from the Header Generation function. The complex phase representation of the variable tones, p(k) for k=1,2,2,...,15, are found from a table look-up of vectors for the eight possible phases. The phase of the 605 Hz Doppler tone, p(0), is always the same as the previous frame. The sixteen complex phase values are saved for the next execution of function. The output of this function, generated at the same rate as the input, is a set of sixteen complex values representing the phase values to be modulated and is routed to the Signal Modulation function. The real and imaginary parts of each complex value have an accuracy of at least 12-bits. Header Generation All transmissions, except in the Net Synchronization mode, are preceded by five preamble frames, a phase reference frame, and a two frame start code or address code sequence. The modulated amplitude values for preamble, phase reference, and start code frames are obtained from precalculated tables. When transmitting in the Net Synchronization mode, the continuous stream of preamble frames are also obtained from the precalculated tables. The tables are so arranged that all phases are zero at the beginning of the reference frame by selection of the starting point for the first preamble frame. The required inputs to this function, received from the Radio Set Input/Output function every 13.3 ms. (Fast) or 22 ms. (Slow), during header generation, are: a. A frame type value. b. The number of values to be generated. c. A frame indicator having the value FIRST, INTERMEDIATE or LAST. This function generates the required number of modulated amplitude values for a requested preamble, reference, or half of a start code frame. When the frame type has the value zero, one, two, three, or four the even preamble, odd preamble, phase reference, start code 1, or start code 2 columns of Table III are used, respectively. When the frame indicator has the value FIRST, the initial value retrieved from the table is from the entry for n=11 (Fast) or n=26 (Slow). When the frame indicator has the value INTERMEDIATE or LAST, the initial value retrieved from the table is from entry for n+1 (modulo 128) where n is the last entry retrieved in the previous frame. The number of values retrieved by each execution of this function is specified by input. Successive values of n (modulo 128) are used to obtain entries from the appropriate column of the table. The even preamble, odd preamble, and phase reference columns of the table each contain 33 entries starting with zero. For n between 0 and 32, the entry corresponding to n is used. For n between 33 and 64, the entry corresponding to 64-n, but with sign reversed, is used. For n between 65 and 96, the entry corresponding to n-64, but with sign reversed, is used. For n between 97 and 127, the entry corresponding to 128-n is used. The start code 1 and 2 columns of the table each contain 65 entries starting with zero. For n between 0 and 64, the entry corresponding to n is used. For n between 65 and 127, the entry corresponding to 128-n, but with sign reversed, is used. In this manner the specified number of values are obtained. The values represented in Table III have been computed to reflect a maximum signal amplitude (+2047) in the first value of the reference frame. When the frame indicator has the value LAST, a set of 16 reference phase is sent to the Message Encoding function to permit encoding of the first 30-bit data word. The last header frame generated, preceding a message sequence or address code, is always the phase reference frame or a start code 2 frame. When the phase reference frame is last, the reference phases are all zero. When the start code 2 is last, the reference phases represent the transmitted phases of this frame. The outputs of this function, generated at the same rate as the input, are: a. A set of 93 or 94 (Fast) real values or 154 or 155 (Slow) real values, as specified by input b., routed to the Radio Set Input/Output function. Each value has an accuracy of 12 bits, 11 bits plus sign. b. A set of 16 complex reference phases, when the frame indicator has the value LAST, routed to the Message Encoding function. The real and imaginary parts of each complex value have an accuracy of 12 bits, 11 bits plus sign.
Table III
______________________________________
PREAMBLE, REFERENCE FRAME
AND START CODE STORED VALUES
Odd Even
Preamble Preamble Ref-
Sample Frames Frames erence
Start Start
Number (P1,P3 & P5)
(P2 & P4)
Frame Frame 1
Frame 2
______________________________________
0 241 722 2047 -15 120
1 620 207 256 268 462
2 114 341 -1011 621 198
3 -35 -12 -216 370 -41
4 -134 -401 18 -790 198
5 -653 -218 -177 -603 -215
6 -240 -719 -73 -95 -894
7 -580 -193 129 -53 -535
8 -92 -276 -296 19 909
9 106 35 -4 411 262
10 153 458 150 169 -678
11 680 227 -84 -485 253
12 236 709 431 413 461
13 535 178 180 372 307
14 70 210 112 -230 80
15 -176 -59 109 229 -114
16 -170 -511 -255 -50 -255
17 -701 -234 -242 -353 -387
18 -230 -691 -352 -153 -118
19 -485 -162 -148 -1 -160
20 -47 -141 -122 -562 126
21 243 81 159 -325 59
22 186 558 321 926 158
23 715 238 129 624 452
24 222 667 399 19 -361
25 430 143 -9 -319 -15
26 24 71 -52 -142 577
27 -309 -103 -34 341 125
28 -200 -601 =344 -180 -286
29 -722 -241 -89 -368 -479
30 -212 -637 -202 -290 -390
31 -371 -124 -69 26 -210
32 0 0 0 85 482
33 371* 124* 69* -156 102
34 212* 637* 202* 300 -333
35 722* 241* 89* 306 603
36 200* 601* 344* 316 380
37 309* 103* 35* 93 49
38 -24* -71* 52* -288 49
39 -430* -143* 9* -282 -425
40 -222* -667* -399* -176 -637
41 -715* -238* -129* 498 -95
42 -186* -558* -321* -187 633
43 -243* -81* -159* -884 -138
44 47* 141* 122* 31 -393
45 485* 162* 148* 378 169
46 230* 691* 352* 226 66
47 701* 234* 242* 327 158
48 170* 511* 255* 652 255
49 176* 59* -109* -62 496
50 -70* -210* -112* -649 -58
51 -535* -178* -180* -255 -491
52 -236* -709* -431* -358 -61
53 -680* -227* 84* 293 -420
54 -153* -458* -150* 294 -356
55 -106* -35* 4* -524 3
56 92* 276* 296* -84 242
57 580* 193* -129* 356 470
58 240* 719* 73* 174 454
59 653* 218* 177* -36 153
60 134* 401* -18* 470 -671
61 35* 12* 216* 158 -96
62 -113* -341* 1011* -523 465
63 -620* -207* -256* 56 -31
______________________________________
*These values will not be stored but are shown here for clarity.
Signal Modulation The input to the Signal Modulation function is a set of sixteen complex values defining the phase to be modulated onto sixteen tones comprising the audio signal. All tones are odd harmonics of 55 Hz. Fifteen of the complex values have equal amplitude and the sixteenth, representing the Doppler correction tone, is adjusted to have twice the amplitude of the other tones. The Signal Modulation function converts these adjusted complex values into a sequential set of real values representing sample values of the audio signal. The algorithm for this conversion incorporates an Inverse Fast Fourier Transform (IFFT). The derivation of the algorithm is given below at the end of this section. An alternate method of effecting the phase shift modulation is to use a table look up approach instead of the IFFT. The signal modulation operation for Header frames is accomplished within the Header Generation function. The input to this function is a set of sixteen complex phase defining values every 13.3 ms. (Fast) or 22 ms. (Slow) while transmitting data from the Message Encoding function. The real and imaginary parts of each complex value have an accuracy of at least 12 bits. This function adjusts the amplitudes of sixteen complex values and converts them into 128 real values representing sample values of the audio signal. The input sixteen complex values may be expressed as H(m)=Ae.sup.i.phi..sbsp.t.sup.(2m+1) for m=5, 8 to 21, 26 where i=.sqroot.-1, .phi..sub.t are the transmitted phases at frequencies (2m+1) 55 Hz and the input amplitudes, A, are all equal. The amplitude of the Doppler correction tone (m=5) in the transmitted audio signal is to be twice the amplitude of the individual data tones. This is accomplished by multiplying H(5) by 2. The amplitudes of the sixteen complex values are adjusted so that the maximum output value (representing the case when all tones are of zero phase) uses the full range of the 12-bit digital-to-analog converter 26, i.e., a decimal number of 2047. For the "zero phase" condition, the amplitudes of the 16 F(m) values (15 of amplitude A, one of amplitude 2A) would add directly giving an output amplitude of 17A2.sup.-s where s is the scaling factor within the IFFT algorithm. The maximum output is limited to 2047 by multiplying the input values by B=2047/(17A2.sup.-s) The amplitude adjusted values, denoted by G(m), are ##EQU3## A base 4, N=64 IFFT algorithm is used to compute an inverse discrete Fourier transform defined as ##EQU4## where T(k)=the complex k.sup.th coefficient of the IFFT of the input array x(k)=real part of T(k) y(k)=imaginary part of T(k) s=scale factor G(j)=the j.sup.th complex value of the input array i=.sqroot.-1 The output array of the IFFT, T(k), is in scrambled order. The array is rearranged into natural order, G(k), as follows: G(k.sub.0, k.sub.1, k.sub.2)=T(k.sub.2, k.sub.1, k.sub.0) for k.sub.0, k.sub.1, k.sub.2 =0, 1, 2, 3 The 64 complex numbers obtained from the IFFT are used to compute 64 real output values g(k) by means of g(k) cos (2.pi.k/128)-y(k) sin (2.pi.k/128) k=0,1,. . .63 The other 64 real output values are obtained from g(k=i4)=-g(k) for k=0,1,. . .63 The output of this function is one set of 128 real values generated at the same rate as the input. The values represent sample values used to generate the audio signal. The values are scaled so that the maximum possible output for this function has a value of 2047 (significance of 12 bits). The output values are always routed to the Radio Set Input/Output function. The derivation of the algorithm used for converting the adjusted complex values into a sequential set of real values representing sample values of the audio signal will now be given. The algorithm is not restricted to the Ling-11 tone frequencies but it is restricted to tone frequencies which are odd harmonics of a common base frequency. Consider a function represented by N complex values of components in the frequency domain G(n)=X(n)+iY(n)=A(n)e.sup.i.phi.(n) n=0,1, . . .N-1 (1) where n=harmonic numbers of a common frequency f=1/T.sub.o i =.sqroot.-1 X=real part of G Y=imaginary part of G A=magnitude of G .phi.=phase of G Some of the G(n) may be zero. Sample values in the time domain may be represented by the inverse discrete Fourier transform ##EQU5## where the k samples are spaced at an interval of T.sub.o /N. This relation assumes a periodic extension outside the period T.sub.o =1/f and is discussed in detail in Brigham "The Fast Fourier Transform". In the case of interest, a 18.18 ms time period is to be represented by 128 samples spaced at 142 microsecond intervals. The indices n and k are to be interpreted modulo N so that G(-n)=G(N-n). Using this, equation (2) may be written as (for N=128). ##EQU6## For real time functions, the real part, X(n), of G(n) is even about n=0 (about N/2 in equation 2) and the imaginary part is odd about zero. Then G(-n)=A(n)e.sup.-i.phi.(n) (4) The sum of pairs of terms for .+-.n in the summation (3) is ##EQU7## The two unpaired terms in the summation (3) give ##EQU8## Using the identity for the cosine of the sum of two angles gives ##EQU9## Substituting (5A) and (6) into equation (3) gives ##EQU10## Use of the fact that only odd harmonics of 55 Hz are used in the Link-ll tone library eliminates the G(0) and G(-64) terms and leads to further simplification. Each tone has an odd number of cycles in 18.18 ms and an odd number of half cycles in 9.09 ms (64 samples) so that g(k+64)=-g(k) (8) Thus only 64 values need to be computed by means of a transform and the other 64 values determined from (8). Let n=2m+1 in (7) to give ##EQU11## Using the trigonometric expansions for the cosine and sine of two angles gives ##EQU12## which may be expressed more compactly as ##EQU13## where Re=real part of Since only 16 non-zero values of G are used to compute 64 time values, there may be possible simplifications in the IFFT algorithm. The steps in the modulation process are 1. Compute 64 point IFFT 2. Perform 128 real multiplications i.e. cos (2.pi.k/128) times 64 real components sin (2.pi.k/128) times 64 imaginary components to obtain 64 values of g(k) 3. Use g(k+64)=-g(k) for the remaining 64 values. Signal Demodulation The received data signal, which was redundantly transmitted in each sideband, is in the form of in-phase and quadrature components of the signal. Each pair of components is treated as a complex sample consisting of real and imaginary parts. The data signal is comprised of tones located at odd harmonics of 55 Hz. These tones are frequency shifted to locate the tones at harmonics of 110 Hz and to compensate for any Doppler correction required. The data signal is demodulated by the discrete complex Fast Fourier Transform (FFT) computation which converts from the time to the frequency domain. The required inputs to this function are: a. Either one or two sets of 32 complex values for the USB and/or LSB, representing the sampled data signal every 9.09 ms. for the Fast or Slow data rates before receive transition framing is established. The values are received from the Radio Set Input/Output function. The real and imaginary parts of each complex value have an accuracy of 12 bits. Or: b. One or two sets of 32 complex values, for the USB and/or LSB, representing the sampled data signal every 13.3 ms. for the Fast data rate after receive transition framing is established. The values are received from the Radio Set Input/Output function. The real and imaginary parts of each complex value have an accuracy of 12 bits. Or: c. One or two sets of 64 complex values for the USB and/or LSB, representing the sampled data signal every 22 ms. for the Slow data rate after receive transition framing is established. The values are received from the Radio Set Input/Output function. The real and imaginary parts of each complex value have an accuracy of 12 bits. d. One or two sets of 32 complex values, for the USB and/or LSB, representing frequency correction factors from the internally stored values before signal presence has been detected, or frequency and initial Doppler correction factors from the Signal Presence function, or frequency and refined Doppler correction factors from the Frame Synchronization function. The values are received at the same rate as inputs a, b, or c. The real and imaginary parts of each complex value have an accuracy of at least 12 bits. This function demodulates the received data signals into the desired frequency components and computes the amplitude of certain components. The processing performed by this function is applied to both sidebands when the SB SEL switch has the value DIV or AUTO and the data terminal is in the receive state. Otherwise only the selected sideband is processed. When either input a or b is received, the input data signal set D(k) is multiplied by the appropriate set of corrections factors to change the contained frequencies from odd multiples of 55 Hz to multiples of 110 Hz and to correct for Doppler shift, when the Doppler correction has been estimated. The corrected data signal set, S(k), is defined as S(k)=C(k) *D(k) for k=0,1,2, . . . ,31 where C(k) is the set of correction factors and * denotes the complex multiplication operator. When input c. is received, the first and second halves are coherently combined before being multiplied by the correction factors. The corrected data signal set, S(k), is now defined as S(k)=C(k) * ((D(k)+D(k+32))/2) for k=0,1,2, . . . ,31 where C(k) and * are as defined above and + denotes the complex addition operator. This discrete FFT is applied to the corrected data signal set to convert the time signal samples S(k) into complex frequency components F(m), and is defined as ##EQU14## where i=.sqroot.-1. A computational algorithm utilizing radix "4+4+2" symmetry can be used to reduce the number of complex additions and multiplications required to eliminate the need for trigonometric functions by using table look-up. This is further described in The Fast Fourier Transform by E. O. Brigham, Prentice Hall, Inc., 1974. The outputs of the FFT, complex frequency components, are in a bit reversed order. Since only 15 of the 32 components, m=8 through 21 and 26 need be retained, a minimum of rearranging is required. This is accomplished by placing the frequency components 4,12,20,28,6,14,22,30,1,9,17,25,3,11, and 21 sequentially into the array of the retained frequency components. The real amplitude of ten frequency components, computed as amplitudes squared to eliminate the need for a square root function, A(m), is defined as A(m)=F.sub.r.sup.2 (m)+F.sub.i.sup.2 (m) for m=4,5,6,14,15,16,23,25,26,27 where the subscripts r and i denote the real and imaginary parts of frequency component F(m). A measure of received signal quality is the ratio of A(5) to A(23). When both sidebands are present, the greater of the two quantities is sent to the Link Control function. When the value of the Receive Processing Index has just changed from a zero to a one (signal presence detected) a frame counter is initialized to the value zero. This value is incremented by one each time this function is subsequently executed while the RPI has the value one. When the RPI has the value two (frame synchronization achieved) at a Picket station during the Net Sync mode, the RPI is reset to the value one and the frame counter reset to the value zero, and incremented as described above, to continue the frame synchronization process. The destination and quantity of the outputs of this function are dependent upon the current value of the Receive Processing Index. All of the outputs are generated at the same rate as inputs a, b, or c. The real and imaginary parts of all complex values, and all real values, have an accuracy of at least 12 bits. a. RPI=0 (signal presence not detected). One of two sets of nine real amplitude squared values, for the USB and/or LSB, for m=4,5,6,14,15,16,25,26, and 27 are routed to the Signal Presence function. b. RPI=1 (signal presence detected). One or two sets of frequency components, for the USB and/or LSB, for m=5 and 26 and one or two sets of 32 complex corrected data signal values, for the USB and/or LSB, and the frame counter described previously. These values are routed to the Frame Synchronization function. c. RPI=2 (frame synchronization achieved). One or two sets of six real amplitude squared values, for the USB and/or LSB, for m=14,15,16,25,26, and 27 and one or two sets of 15 complex frequency components, for the USB and/or LSB, for m=8 through 21, and 26. These values are routed to the Phase Reference function. d. RPI.gtoreq.3 (after phase reference detected). One or two sets of 15 complex frequency components, for the USB and/or LSB, for m=8 through 21, and 26 are routed to the Message Decoding function. The measured signal quality value is routed to the Link Control function. Signal Presence While neither transmitting nor receiving a message the data terminal continually demodulates data samples from the Radio Set Interface hardware. Signal presence is detected by comparing the energy received within 110 Hz of the Doppler correction, frame synchronization, and data tones. The acceptance of a preamble frame permits an estimation of the Doppler shift if any, to be incorporated into the frequency shift correction operation performed by the Signal Demodulation function. The input to this function is one or two sets of 9 real amplitude squared values, for the USB and/or LSB, every 9.09 ms. from the Signal Demodulation function until signal presence is detected. Each value has an accuracy of at least 12 bits. This function determines whether or not the sampled demodulated signal contains a preamble frame, and if so, computes the apparent Doppler shift and a set of frequency and Doppler correction factors. A.sub.m for m=4,5,6,14,15,16,25,26, and 27 represents the amplitude squared value of the corresponding frequency component F.sub.m. If the sum of A.sub.4, A.sub.5, and A.sub.6 is greater than the sum of A.sub.25, A.sub.26, and A.sub.27, and four times greater than the sum of A.sub.14, A.sub.15, and A.sub.16, for either sideband, then signal presence has been detected. If the preceding condition is not met, then signal presence has not been detected and no further processing is performed by this function. When signal presence is detected the Receive Processing Index is set to the value one to indicate this condition. If the data terminal is in the transmit state, no further processing is performed. If the data terminal is in the receive state and the DOP COR switch has the value ON, a preliminary estimate of the Doppler shift is made. When A.sub.4 and A.sub.6 are very small, the Doppler shift is considered to be zero and no further processing is performed. The Doppler shift is positive for the USB and negative for the LSB when A.sub.6 is greater than A.sub.4. The Doppler shift is negative for the USB and positive for the LSB when A.sub.4 is greater than A.sub.6. The Doppler shift, d, is defined as ##EQU15## where j=6 for a positive shift on the USB or a negative shift on the LSB or j=4 for a negative shift on the USB or a positive shift on the LSB. The set of correction factors, C(k), incorporating frequency and Doppler shift, is defined as ##EQU16## for k=0,1,2, . . . ,31 where the subscripts r and i denote the real and imaginary parts of each complex value. One set of correction factors is computed for each sideband present. The output of this function is one or two sets of complex correction factors, for the USB and/or LSB, routed to the Signal Demodulation function. The real and imaginary parts of each complex value have an accuracy of at least 12 bits. Frame Synchronization After signal presence has been detected and the Doppler shift has been estimated, the following preamble frames are examined to determine the position of the frame boundary. Because the frame synchronization tone is phase shifted 180.degree. at each frame boundary, the demodulated output for the synchronization tone from a sample which straddles a frame boundary will result in partial cancellation. When the sample is exactly centered across a frame boundary, complete cancellation will result. By incrementally shifting the sample period one sample at a time the position of the frame boundary is determined. The algorithm used by the Signal Presence function for Doppler correction is quite sensitive to SNR. A more precise frequency correction is obtained from the differential phase of the tone m=5, after the preliminary correction has been made. The required inputs to this function are: a. One or two sets of two complex values, for the USB and/or LSB, representing frequency components m=5 and 26 from the Signal Demoulation function every 9.09 ms. The real and imaginary parts of each complex value have an accuracy of at least 12 bits. b. One or two sets of 32 complex values, for the USB and/or LSB, representing corrected data signal values from the Signal Demodulation function every 9.09 ms. The real and imaginary parts of each complex value have an accuracy of at least 12 bits. c. A frame counter, having the value 0,1, or 2 (Fast) of 0,1,2, or 3 (Slow) from the Signal Demodulation function every 9.09 ms. This function determines the position of the frame boundary within a sequence of preamble frames and computes a refined Doppler correction from the phase of the Doppler tone in successive frames. When the frame counter has the value zero and the data terminal is in the transmit state, the RPI is set to two to eliminate additional inputs to this function and no further processing is performed. When the data terminal is in the receive state, the frequency component for m=5 is saved as F.sub.5 (0), the frequency component for m=26 is saved as F.sub.26 (0), the corrected data signal values are saved as S(0) through S(31), and no further processing is performed for this input. When the frame counter has a value other than zero, the frequency component for m=5 is saved as F.sub.5 (j), the frequency component for m=26 is saved as F.sub.26 (j), and the corrected data signal values are saved as S(j) through S(j+31) where j is equal to 32 times the value of the frame counter. Thirty-two demodulated amplitude values for the synchronization tone m=26 are now computed. The intermediate values of F.sub.26 are defined, recursively, as F.sub.26 (j+n+1)=e.sup.i2.pi.26/32 {F.sub.26 (j+n)+2.sup.-s (S(j+n+32)-S(j+n))} for n=0 through 31 where s is a scaling factor and complex arithmetic is implied between complex values. The amplitude squared value, A.sub.26, of each computed value of F.sub.26 is defined as A.sub.26 (j+n)=real F.sub.26 (j+n).sup.2 +imaginary F.sub.26 (j+n).sup.2 for n=0 through 31. When the frame counter has the value two (Fast) or three (Slow) a sufficient number of amplitude squared values have been computed to insure that a shifted sample period is centered across a frame boundary. The value of l, corresponding to the A.sub.26 (l) having a minimum value, represents the frame transition boundary in relation to the first input values received. When both sidebands are being processed, the smallest value of A.sub.26 (l) is used. The RPI is set to the value two to indicate that frame synchronization has been completed. The value ON for the SYNC status indicator is sent to the Man/Machine function only at a Picket Station during Net Sync mode. When the frame counter has the value two (Fast) or three (Slow) a refined Doppler correction is computed only when the DOP CR switch on console 22 has the value ON. The estimated Doppler frequency shift, f.sub.d, in this case is defined as ##EQU17## where .phi..sub.5 is tan.sup.-1 (real F.sub.5 /imaginary F.sub.5), j=64 (Fast) or 96 (Slow) and T=2 (Fast) or 3 (Slow). A set of correction factors, C(k), reflecting frequency and refined Doppler shift, is defined as ##EQU18## for k=0,1,2,. . . ,31 where the subscripts r and i denote the real and imaginary parts. The outputs of this function are: a. A frame transition value to the Radio Set Input/Output function. b. One or two sets of 32 complex correction factors, for the USB and/or LSB, to the Signal Demodulation function. c. A status value for the SYNC status indicator to the Man/Machine function. Phase Reference After frame synchronization has been achieved, the center 32 complex sample values for the Fast data rate or the center 64 complex sample values for the Slow data rate will be demodulated into 32 complex frequency components. The received phase reference frame contains the reference phases for the tones of interest, m=8 through 21, and 26. The inputs to this function are: a. One or two sets of 6 real amplitude squared values, for the USB and/or LSB, from the Signal Demodulation function. Each value has an accuracy of at least 12 bits. b. One or two sets of 15 frequency components, for the USB and/or LSB, for m=8 through 21, and 26, from the Signal Demodulation function. The real and imaginary parts of each complex value have an accuracy of at least 12 bits. This function determines whether or not the samples demodulated signal contains a phase reference frame. A.sub.m for m=14,15,16,25,26, and 27 represents the amplitude squared value of the corresponding frequency component F.sub.m. If, for either sideband, the sum of A.sub.14, A.sub.15, and A.sub.16 is two times greater than the sum of A.sub.25, A.sub.26, and A.sub.27, a reference frame has been detected. If the preceding condition is not met, then a reference frame has not been detected. When a phase reference frame is detected, the Receive Processing Index is set to three (reference frame detected) and frequency components for m=8 through 21, and 26, the reference phases, are sent to the Message Decoding function to permit decoding of the first data frame. When the SB SEL console 22 switch has the value DIV or AUTO, the frequency components of the USB and LSB are coherently combined to form the reference phases of the diversity combination signal, R.sub.d, which is defined as R.sub.d (m)=(F.sub.u (m)+F.sub.l (m)/2 for m=8 through 21, and 26 where the subscripts u and l USB and LSB, and + implies the complex addition operator. The only output of this function is one (SB SEL=USB, LSB, or DIV) or three (SB SEL=AUTO) sets of 15 reference phase routed to the Message Decoding function. The real and imaginary parts of each complex value has an accuracy of at least 12 bits. Message Decoding The input to the Message Decoding function is in the form of complex frequency components for each data tone. To extract the data bit-pair contained in each tone, it is necessary to compute the phase difference between the phase of a tone in the current frame and the phase of that corresponding tone in the previous frame. When the computed phase difference is within 221/2.degree. of an odd multiple of 45.degree., both data bits are considered certain. When it is not, one of the data bits is considered uncertain. Fifteen data bit-pairs are computed for the upper, lower and diversity combination signals. Propagation anomolies, noise and interference are likely to produce a difference in the received signal for the two sidebands but a coherent combination of the two signals is expected to enhance the signal quality by partially cancelling the noise. To minimize the number of demodulation operations required, the diversity combination of the sidebands is formed after the demodulation of each of the separate sidebands when the SB SEL switch has the value DIV or AUTO. The inputs to this function are: a. One or two sets of 15 frequency components, for the USB and/or LSB, for m=8 through 21 and 26 from the Signal Demodulation function every 13.33 ms. (Fast) or 22 ms. (Slow) after header processing is complete. The real and imaginary parts of each complex value have an accuracy of at least 12 bits. b. One (SB SEL=USB, LSB, or DIV) or three (SB SEL=AUTO) sets of reference phases, for m=8 through 21 and 26 from the Phase Reference function only in the case of the first data frame. The real and imaginary parts of each complex value have an accuracy of at least 12 bits. c. A 30-bit data word from the EDAC Encoding or Control Code Generation function while the data terminal is in the transmit state. This function computes the data bit-pair information conveyed by each demodulated tone. It also computes certainty bit-pairs associated with each data bit-pair computed. When the SB SEL switch has the value DIV or AUTO, the two sets of frequency components received from the Signal Demodulation function are coherently combined to form the diversity combination signal, F.sub.d, which is defined as F.sub.d (k)=(F.sub.u (k)+F.sub.l (k))/2 for k=1,2,3,. . . ,15 where the subscripts u and l denote the USB and LSB, and + implies the complex addition operator. The complex phase difference P, for any sideband, is defined as P.sub.s (k)=F.sub.s (k)*G.sub.s (k) for k=1,2,3, . . . ,15 where s denotes the upper (u), lower (l), or diversity combination (d) sideband, F represents the input or computed frequency components, G represents the frequency components from the previous frame or reference phases for the first data frame, and * implies the complex conjugate multiplication operator. When the SB SEL switch has the value USB, only P.sub.u is computed. When the value is LSB, only P.sub.l is computed. When the value is DIV, only P.sub.d is computed. When the value is AUTO, P.sub.u, P.sub.l, and P.sub.d are computed. These values are saved for the next execution of this function. Two bits of data are decoded from each phase difference value. Data bits d.sub.s (2k-2) and d.sub.s (2k-1) are derived from P.sub.s (k) providing data bits d.sub.s (0) through d.sub.s (29) for k ranging from 1 through 15. For each tone the even numbered data bit, d.sub.s (2k-2), has the value 1 if the real part of the corresponding phase difference P.sub.s (k) is positive (angle between -90.degree. and +90.degree.) and has the value 0 if the real part is negative (angle between 90.degree. and 270.degree. ). The odd numbered data bit, d.sub.s (2k-1), has the value 0 if the imaginary part of P.sub.s (k) is positive. (angle between 180.degree. and 360.degree.) and has the value 0 if the imaginary part is negative (angle between 0.degree. and 180.degree.). This scheme is shown in Table IV. Data words, D.sub.u, D.sub.l, and D.sub.d are computed only when phase difference P.sub.u, P.sub.l, and P.sub.d, respectively, have been computed. When the data terminal is in the receive state, the decoded data words are sent to the Control Code Recognition function. When in the transmit state, the decoded data word is compared with the data word received from the EDAC Encoding or Control Code Generation function. If the two data words are identical, then there is no output from this function. If the data words disagree, a value of ON for the XMT DATA ERR status indicator is sent to the Man/Machine function as the only output of this function. The output of this function is one of the following: a. One (SB SEL=USB, LSB, or DIV) or three (SB SEL=AUTO) 30-bit data words to the Control Code Recognition function when in the receive state. b. A status value for the XMT DATA ERR indicator to the Man/Machine function and an error notification to the Built-In Test function when in the transmit state.
Table IV
______________________________________
Data Bit-Pair Assignments
Sign of
Imaginary Real Data bit
Part Part Odd Even
______________________________________
Positive Positive 0 1
Positive Negative 0 0
Negative Negative 1 0
Negative Positive 1 1
______________________________________
Control Code Recognition Control codes are transmitted in two frames, each of 30 bits. Control code frames do not contain data and are not Hamming decoded. Each received 30-bit data word is compared with the first frame of one of the stored codes if the previous data word was not accepted as the first frame of a control code. Otherwise the data word is compared with the second frame of the control code previously accepted. When two successive frames disagree with one of the stored control code sequences in no more than four bit positions, the received frame pair is considered to have conveyed the specific control code. The input to this function is one of the following: a. One (SB SEL=USB, LSB, or DIV) or three (SB SEL=AUTO) 30-bit data words from the Message Decoding function. b. A 60-bit ownship address code from the Man/Machine function. This function determines whether or not a data word is to be accepted as containing the first or second frame of an ownship address, start, control stop, or picket stop code sequence. When the 60-bit ownship address code is received, it is stored for subsequent use by this function until another value is received. The octal values of the pre-stored control codes are:
______________________________________
Control Code
First Frame Second Frame
______________________________________
Start 74506 04077 54673 22342
Control Stop
00000 00000 00000 00000
Picket Stop 77777 77777 77777 77777
______________________________________
These four control codes are referred to as the "stored control codes". When a data word is received, and the previous frame was accepted as the first frame of a control code, it is EXCLUSIVE ORed with the second frame of that stored control code. If the total number of bits set resulting from the EXCLUSIVE OR operation for this frame and the previous frame is less than or equal to four, the frame pair is accepted as the control code sequence. If the data word is not accepted as the second frame of a control code or if the previous data word was not accepted as the first frame of a control code, the data word is EXCLUSIVE ORed with the first frame of each stored control code. When the number of bits resulting from any EXCLUSIVE OR operation is less than or equal to four, the frame is accepted as the first frame of that control code. In this case, the number of bit disagreements and an indication of the control code is saved for testing the next frame. When the SB SEL switch has the value AUTO, the three data words are tested as above in the following order or priority: Diversity combination, USB, and LSB. The first pair of data words for the same sideband that meet the above tests is accepted as the control code sequence. When a phase reference frame has been detected in the previous frame (RPI=3), the next two data words are expected to contain a control code. If a control code is found, an accepted control code value is sent to the Link Control function. If none is found, a no control code value is sent. In either case the two data words are neither EDAC decoded nor sent to the NTDS Input/Output function. After a start code sequence has been accepted (RPI=4), the data word corresponding to an accepted control code first frame is not EDAC decoded but sent to the NTDS Input/Output function after bit positions 24 through 29 are set to zero. A data word that is not a control code first or second frame is sent to the EDAC Decoding function without alteration. When a stop code sequence has been accepted in the previous frame (RPI=5) at a Picket Station in Roll Call mode, the next two data words are expected to control an address code. If one is found, an accepted control code value is sent to the Link Control function. If one is not found, a no control code value is sent. In either case the two data words are neither EDAC decoded nor sent to the NTDS Input/Output function. When a control code sequence is accepted and there is at least a 1-bit disagreement with the stored control code, a value of ON for the CODE ERR status indicator is sent to the Man/Machine function and an error notification is sent to the Built-In Test function to display the appropriate error message. When in the Net Test mode at a Picket Station the pairs of data words following the start code sequence are successive 1-bit circular shifts of the 60-bit start code. If an error is detected, the value ON for the RCV DATA ERR status indicator is sent to the Man/Machine function and an error notification is sent to the Built-In Test function to display the appropriate error message. The output of this function is one of the following: a. One (SB SEL=USB, LSB, or DIV) or three (SB SEL=AUTO) 30-bit data words routed to the EDAC Decoding function. b. One 26-bit data word routed to the NTDS Input/Output function. c. A value representing an accepted/no control code sequence routed to the Link Control function. d. A status value and item indicator routed to the Man/Machine function and an error notification to the Built-In Test function. EDAC Decoding The 30-bit data word which is used to modulate the transmitted signal consists of the 24 information bits from the NTDS computer and six redundancy bits forming a (30,24) Hamming code for error detection and correction (EDAC). The received 30-bit data word can be inspected to determine if it is apparently error free, contains a correctable error, or contains uncorrectable errors. The only input to this function is one (SB SEL=USB, LSB, or DIV) or three (SB SEL=AUTO) 30-bit data words from the Control Code Recognition function. This function examines the 30-bit data words to determine if they are error free, contain a correctable error, or contain uncorrectable error. Correctable errors are corrected when in Correct mode. When in automatic sideband selection mode, a preferred signal is selected for output. If not in automatic sideband selection mode, the indicated sideband is processed. The EDAC decoding process uses the same 5-bit patterns as the EDAC encoding process. Each of the three data words (upper, lower, and diversity), if present, are logically ANDed with each of the five bit patterns to generate partial words. The parity of each partial word is established as a zero for even parity and a one for odd parity. The overall parity of each data word, without ANDing, is also determined. Designating the overall parity as F, and the parities of the groups containing bits 29, 28, 27, 26 and 25 as E,D,C,B, and A respectively, a 5-bit parity address EDCBA is formed for each data word. If the overall parity F is 1 (odd), and EDCBA=11111.sub.2, the received data word is assumed to be error free. If the overall parity F is 0 (even), and EDCBA is not 0 or 1, the received data word is assumed to have a correctable error. The binary parity address EDCBA is used to determine which bit could be changed to make all parities correct (odd). The 30 remaining values of EDCBA correspond to bit positions 0 through 29, and the bit position to be complemented is found by using EDCBA as an index to a table containing the desired bit position (see Table V). For all other combinations of F and EDCBA, the received data word is assumed to have uncorrectable errors. When a correctable error has been detected and the ERR CORR switch has the value C (detect and correct), error correction is effected by complementing the value of the bit whose position is found by indexing into the table. Corrections are not made when the ERR CORR switch has the value L (detect and label). The six redundancy bits in bits 24 through 29 of the data word are deleted and two error status bits in bits 24 and 25 are added. Bits 24 and 25 are both set to zero when no error has been detected, and are both set to one when a correctable error has been detected. Bit 24 is set to one and bit 25 to zero when F is even and EDCBA=0 or 1. Bit 24 is set to zero and bit 25 set to one when F is odd and EDCBA is not equal to 11111.sub.2. When the SB SEL switch has the value USB, LSB, or DIV, the decoded information word for that sideband is selected for output. When the SB SEL switch has the value AUTO, the three decoded information words are examined in the following order of priority: Diversity combination, USB, and LSB. First, a search is made for the first information word with no error. If one is found, that information word is selected for output. If none is found, then a search is made for the first information word with a correctable error. If one is found, that information word is elected for output. If neither of the above searches are successful, the diversity combination information word is selected for output. The output of this function is a 26-bit word, generated at the same rate as input and routed to the NTDS Input/Output function, consisting of: a. Twenty-four bits of information, and b. Two bits indicating that the selected information word is error free or contained either correctable or uncorrectable errors. Better error control may be achieved by expansion of the decoding process to utilize the certainty indicators, generated by the Message Decoding function, in conjunction with the error correction process.
Table V
______________________________________
HAMMING ERROR CORRECTION
Binary Value
Bit Binary Value Bit
of EDCBA Position of EDCBA Position
______________________________________
00010 23 10001 9
00011 22 10010 8
00100 21 10011 7
00101 20 10100 6
00110 19 10101 5
00111 18 10110 4
01000 17 10111 28
01001 16 11000 3
01010 15 11001 2
01011 14 11010 1
01100 13 11011 27
01101 12 11100 0
01110 11 11101 26
01111 29 11110 25
10000 10 11111 24
______________________________________
NTDS Input/Output The data terminal is connected to the NTDS computer either directly or through a cryptographic device. The interface is logically identical in either case, except that additional frames which the data terminal will treat as data are used by the cryptographic device 16. In the receive state, the input to this function is one of the following: a. A prepare to Receive, End of Receive, or Reset request from the Link Control function. b. A 26-bit data word from the EDAC Decoding or Control Code Recognition function. c. An output complete interrupt generated as the result of a data word being accepted by the NTDS computer 14. In the transmit state, the input to this function is one of the following: a. A Prepare to Transmit-Roll Call, Prepare to Transmit-Broadcast, or Reset request from the Link Control function. b. An input complete interrupt generated as the result of a data word being received from the NTDS computer. c. A next word request from the Link Control function indicating that the previous word has been processed. d. A timeout expired notification from the Executive function. This function initiates, manages, and terminates all data transfers between the digital processor and the NTDS computer. The processing performed by this function is in response to the particular input received and whether the data terminal is in the receive or transmit state. (1) In the receive state: When the Prepare to Receive request is received an External Function (Code 6) is sent to the NTDS computer. When the End of Receive request is received an External Function (Code 3) is sent to the NTDS computer. When the Reset request is received an External Function (Code 2) is sent to the NTDS computer. When a 26-bit data word is received and the previous output operation has completed, an output chain for one data word is initiated. If the previous output chain has not completed, output operations are halted and the error condition is reported to the Built-In Test function. When an output complete interrupt is generated, the output chain has completed. (2) In the transmit state: When the Prepare to Transmit-Roll Call or the Prepare to Transit-Broadcast request is received an External Function (Code 5 or 7, respectively) is sent to the NTDS computer 14 and a 10 ms. timeout requested. When the Reset request is received an External Function (Code 2) is sent to the NTDS computer 14. When the timeout expired notice is received and the External Function was accepted by the NTDS computer, an input chain for one data word is initiated and the data available indicator set to true. If the External Function was not accepted the error condition is reported to the Built-In Test function and the data available indicator set to false. When an input comlete interrupt is generated, the data available condition is set. When the next word request is received and data is available, an input chain for one data word is initiated, the data available indicator is set to true, and the received data word is routed to the EDAC Encoding function. When the next word request is received and data is not available, the data available indicator is set to false. In the receive state, the output of this function is one of the following: a. An External Function code to the NTDS computer 14. b. The initiation of an output chain for the NTDS channel. c. An output error notification to the Built-In Test function. In the transmit state, the output of this function is one of the following: a. An External Function code to the NTDS computer 14. b. The initiation of an input chain for the NTDS channel. c. A timeout request to the Executive function. d. A 24-bit data word to the EDAC Encoding function. e. A data available indicator, having the value true or false, to the Link Control function. f. An input error notification to the Built-In Test function. Radio Set Input/Output Timing for the PDTS is based upon a precise frequency standard in the Radio Set Interface hardware. A count is taken from the frequency standard every 1/7040 of a second. During transmission D/A conversions are coincident with these counts. During listening and reception complex A/D samples are obtained from both sidebands every alternate count. Thus D/A conversions are accomplished at 7040 Hz rate while A/D conversions are accomplished at a 3520 Hz rate. The transmit frame transition used by each Picket Station is based upon the received frame transitions detected during the Net synchronization transmission from the NCS, and is advanced by twice the propagation delay for the approximate distance to the NCS. Frame transitions should then be received at the NCS at the same time as its own transmit frame transitions. This synchronization is maintained until the next net synchronization transmission. Frame transitions detected during reception of other than net synchronizations pertain only to the message sequence being received. Receive frame transitions are used to synchronize the receiving station with the particular transmitting station during only that message sequence. The timing of output to the Radio Set Interface (transmit frame transitions) is indirectly derived from the frequency standard in the Radio Set Interface hardware and not from an internal clock in the CPU of the PDTS. The receive input complete interrupt serves as the means by which precise time intervals are used to effect the necessary timing for output. The data terminal operates in one of three states: idle, receive or transmit. This function is responsible only for the transition from the idle state to the receive state and the transition from either the receive or transmit states to the idle state. The transitions between the receive and transmit states, in response to link activity, are dictated by the Link Control function. While the data terminal is in the transmit state, the transmitted audio signal is monitored on one of the receive sidebands to detect any discrepancies between the data word provided to the data terminal for modulation and the actual transmission. A Doppler correction is not applied and frame synchronization is taken from transmit frame transitions. In the idle state, the input to this function is an initiate request from the Link Control function to begin input from the Radio Set Interface 18. In the receive state, the input to this function is one of the following: a. A frame transition value from the Frame Synchronization function indicating the position of a frame boundary. b. A RCV input complete interrupt generated internally as the result of a specified number of words being received from the Radio Set Interface 18 on the USB or LSB channel. c. A RCV missed data interrupt generated externally by the Radio Set Interface 18 indicating that the USB or LSB channel is not accepting data fast enough. d. A terminate request from the Link Control function to place the data terminal in the idle state. In the transmit state, the input to this function is one of the following: a. A heder type value from the Link Control function indicating the type of header to be generated. b. One set of 93 or 94 real values (Fast) or 154 or 155 real values (Slow) from the Header Generation function before transmitting data frames. Each value has an accuracy of 12 bits. c. One set of 128 real values from the Signal Modulation function while transmitting data frames. Each value has an accuracy of 12 bits. d. A XMT output complete interrupt generated internally as the result of a specified number of words being accepted by the Radio Set Interface 18 on the XMT channel. e. A RCV input complete interrupt generated internally as the result of a specified number of words being accepted by the Radio Set Interface 18 on the selected monitor channel. f. A RCV missed data interrupt generated externally by the Radio Set Interface 18 indicating that the selected monitor channel is not accepting data fast enough. g. A terminate request form the Link Control function to place the data terminal in the idle state. h. A XMT disable request form the Link Control function to disable the XMT channel. This function controls the flow of data between the Radio Set Inerface 18 and the receive and transmit procesing functions. The processing performed by this function is in response to the particular input received and the data terminal state (1) In the idle state: When an initiate request is received, an External Function code to disable both input channels (USB and LSB) and the output channel (XMT) is issued to the RSI 18. Input chains for the USB and/or LSB channels for thirty-two samples (2 words per sample) each are initiated to provide input buffers for the sampling process. An External Function code to enable the selected input channels is issued to the RSI to begin the sampling process which will continue until the data terminal reverts back to this state. (2) In the receive state: Two input buffers, one set for each sideband, are employed in a flip-flop manner to receive the incoming data samples from the RSI. Each buffer is 64 (Fast data rate) or 128 (Slow data rate) words in length. While one buffer is filling, the data in the other buffer is being processed. Whenever the filling process is completed, the roles of the two buffers are interchanged. Before frame synchronization is achieved the receipt of exactly 32 (Fast) or 64 (Slow) samples will complete the filling process. After frame synchronization is achieved and until the end of the message sequence is detected, the receipt of an average of 46 14/15 (Fast) or 77 11/25 (Slow) samples from the center of each frame are retained in the buffers. For the Fast data rate this average results if one frame contains 46 samples, the next 14 frames each contain 47 samples, and the cycle repeats. For the Slow data rate this average results if, out of a 25-frame cycle, frames 1,3,5,7,9,10,12,14,16,18,19,21,23, and 25 contain 77 samples each and frame 2,4,6,7,11,13,15,17,20,22 and 24 contain 78 samples each. Regardless of the state of frame synchronization, the receipt of every group of 32 (Fast) or 64 (Slow) samples from the RSI in an interrupt that is used for timing purposes. When a frame transition value is received and the data terminal is in the Net Sync mode, the position of the first XMT frame transition in relation to the next received 32 (Fast) or 64 (Slow) sample group is established. This occurs only at a Picket Station. When the data terminal is not in the Net Snyc mode, the position of the first RCV frame transition in relation to the next received 32 (Fast) or 64 (Slow) sample group is used to dalculate the positon of the last sample of the center 0.09 ms. (Fast) or 18.18 ms. (Slow) of each 13.3 ms. (Fast) or 22 ms. (Slow) frame interval. The position of the last center sample is established as the next RCV frame transition minus seven samples. This occurs at both the NCS and Picket Stations. When a RCV input complete interrupt occurs and frame synchronization has not been achieved (RCV Processing Index >2), the input buffers are switched, the one or two sets of thirty-two samples received are routed to the Signal Demodulation function, and input chains for the USB or LSB for thirty-two additional samples are initiated. For the Fast data rate, the position of the next XMT frame transition in relation to the next thirty-two sample group, at the average of 46 14/15 (Fast) or 77 11/25 (Slow) samples per frame, is calculated only if the current one was received in this input. For the Slow data rate, the position of the next XMT frame transition is calculated only if the current one was received in this input and this input represents the last thirty-two samples of a sixty-four sample group. When a RCV input complete interrupt occurs and frame synchronization has been achieved (RCV Processing Index >2), the processing criteria is based on whether the last sample input corresponds to the end of the buffer and/or corresponds to the position of the last center sample. When the condition is end of the buffer, the position of the next XMT frame transition in relation to the next received 32 (Fast) or 64 (Slow) sample group, is calculated only if the current one was received in this input. If the last center sample will be contained within the next received 32 (Fast) or 64 (Slow) sample group, input chains for the USB and/or LSB channels starting at the beginning of the buffers are initiated for samples up to and including the one that corresponds to the last center sample. Otherwise, input chains for the USB and/or LSB channels for 32 (Fast) or 64 (Slow) samples are initiated. When the condition is last center sample, the buffers are switched and input chains for the USB or LSB channels starting at the buffer position one past the last center sample that caused the interrupt are initiated for the samples remaining in the current 32 (Fast) or 64 (slow) sample group. The sets of 32 (Fast) or 64 (Slow) retained samples for one or both sidebands are routed to the Signal Demodulation function. The position of the last center sample in relation to the next received 32 (Fast) or 64 (Slow) sample group is also calculated. Whenever an input chain is initiated, a new timeout is requested for the channel and the previous one cancelled. The expiration of the timeout indicates a channel malfunction and is reported by the Executive function directly to the Built-In Test function. When a RCV missed data interrupt occurs, the input chain for the channel is halted, the channel disabled, and an error notification routed to the Built-In Test function. This function will continue to send samples to the Signal Demodulation function for this channel, coincident with the samples for the other channel, but they will all have zero value. When a terminate request is received all input/output chains are halted, both RCV and the XMT channels are disabled, and the data termimal is placed in the idle state. (3) In the transmit state: Two output buffers are employed in a flip-flop manner to transmit the outgoing real data values to the RSI. Each buffer is 128 l words in length. An average of 93 13/15 values per trasmitted frame, of the 128, are used for output in the Fast data rate. All 128 values are used at least once and some are used twice for output of an average of 154 22/25 values per transmitted frame in the Slow data rate. For the Fast data rate this average results if, out of a 15-frame cycle, frames 1 and 9 contain 93 values each and all other frames contain 94 values each. For the Slow data rate this average results if, out of a 25-frame cycle, frames 1,10, and 18 contain 154 values each and all other frames contain 155 values each. This averaging process is begun for each transmitted header sequence and maintained until the end of the message sequence. The header type input value specifies one of three header frame sequences generated from pre-stored tables: (1) A continuous series of alternating even and odd preamble frames for the Net Sync mode; (2) A six frame sequence consisting of five alternating even and odd preamble frames and a phase reference frame for a NCS Call-Up transmission; (3) An eight frame sequence consisting of five alternating even and odd preamble frames, a phase reference frame, and a two frame start code sequence for all other transmissions. The frame type value sent to the Header Generation function specifies which type of frame to generate; a value zero for an even preamble frame, a one for an odd preamble frame, a two for a phase reference frame, a three for the first start code frame, and a four for the last start code frame. The frame indicator indentifies the characteristic of the header frame; FIRST signifies initialization of the generation process, LAST signifies the generation of initial phase references for the message encoding process is required, and INTERMEDIATE signifies neither FIRST nor LAST. When a header type value is received, the averaging process of 93 13/15 (Fast) or 154 22/25 (Slow) values per transmitted frame as described above, is begun. Frame type has the value zero to generate an even preamble frame, the variable number of values is set to 93 (Fast) or 154 (Slow), and the frame indicator has the value FIRST. These values are sent to the Header Generation function to generate the values for the first header frame. The header type value is saved for generating the remainder of the header. The next step is to determine the time at which to issue notification to the RSI to begin its present delay, nominally 10 ms., after which it will begin transmitting values. At a Picket station, this time will be the next XMT frame transition minus the preset delay of the RSI. At the NCS during other than Net Sync mode, this time will be the next XMT frame transition minus the preset delay of the RSI. At the NCS during Net Sync mode, this time will be the receipt of the last sample of the next 32 (Fast) or 64 (Slow) sample group. This time will be advanced to the next XMT frame transition if there is insufficient time for the necessary delay. The last step is accomplished by generating an input chain for the monitor channel to interrupt at the desired time and then to complete its normal filling procedure. This action will be transparent to the RCV processing of the monitor channel. When a set of values is received from the Header Generation function, an output chain for the number of values received is prepared for the XMT channel but not issued at this time. If there are more header frames to be generated, the Header Generation function is requested to generate the next frame using the continuing average of 93 13/15 (Fast) or 154 22/25 (Slow) values per transmitted frame. If the last header frame was generated, a header complete notification is sent to the Link Control function. When a set of 128 values is received from the Signal Modulation function, the number of values output to the RSI will be at the continuing average of 93 13/15 (Fast) or 154 22/25 (Slow) values per transmitted frame. To maintain frame-to-frame coherence, the first value to be output from this set is taken as the value that is one past (modul 128 | ||||||
