FREQUENCY HOPPING TIME-DIVERSITY COMMUNICATIONS SYSTEMS AND TRANSCEIVERS FOR LOCAL AREA NETWORKS

Abstract: A system utilizing adaptive frequency-hopped spread spectrum modulation to communicate over noisy communications channels is described. Individual packets of data are transmitted with FSK modulation using two frequencies chosen from a larger set. An error coding system is used in which data on the quality of reception at each network transceiver is used to alter the gain of the receiver, the bit rate of the transmission, and the specific frequencies employed by the network for the purpose of optimizing communicatioin error rate. A Master transceiver, controlling network management, transmits channel control information to other transceivers on the network, enabling system synchronization, acquisition of an existing network by new subscribers. Each transceiver comprises a frequency controlled carrier generator, a pair of digital detectors each having a frequency controlled bandpass filter microprocessors for control and broad band coupling networks for coupling the transceiver to a communications channel.

Description: FREQUENCY HOPPING TIME-DIVERSITY COMMUNICATIONS SYSTEMS AND TRANSCEIVERS FOR LOCAL AREA NETWORKS RELATED APPLICATIONS This application is a Continuation-in-Part of United States Application No. 07/333,336, filed April 5, 1989 which application was a Continuation-in-Part of United States Application No. 07/309,272, filed February 10, 1989, which application was a Continuation-in-Part of United States Application No. 07/115,245, filed October 30, 1987, which application was a Continuation-in- Part of Application No. 06/846,924 of April 1, 1986, now aban¬ doned, which application was a Divisional Application of United States Application No. 06/586,863 of March 6, 1984, now United States Patent No. 4,597,082, issued June 24, 1986; the above applications and patent are incorporated herein by reference. TECHNICAL FIELD This invention relates to spread spectrum-time diversity communications systems and transceivers for multidrop local area networks. Such transceivers may be used for communication over power lines, twisted pairs, over wires lain along the path of guided vehicles, or the like. The invention further relates to the transmission of digital data in industrial environments over transmission channels having noise characteristics influenced by the industrial environment. BACKGROUND ART In the above-identified United States Patent No. 4,597,082, there is disclosed a transceiver for multidrop local area net¬ works for transmission over AC transmission lines, private wire, or other less noiβy transmission channels that provides error free transmissions at very high data rates in noisy industrial environments at low cost. In the above-identified application, Serial No. 07/115,245, there is disclosed a transceiver system for communication over wire laid along the path of guided vehicles, where in the trans¬ mission channel, is the typical floor loop used to guide such vehicles. In Serial No. 07/309,272, filed February 10, 1989, entitled Transmission Line Termination of Guide-Communications Wire For Guided Vehicles, the problem of null positions in such floor loops, at which the strength of signals sent from the host modem, is ao low or non-βxisttsnt that communications is impos¬ sible with the guided vehicle and one solution to that problem are discussed. The present invention is directed to eliminating such multi- path problems in wire guided vehicle applications and to com¬ bating periodic impulse and slowly time varying continuous wave noise typical of wire guided vehicles, power line carrier trans¬ mission systems and other transmission channels in an industrial environment. While, according to the prior art, spread spectrum (fre¬ quency hopping) systems and time diversity techniques have been utilized to overcome transmission problems caused by random noise, which may be natural or caused by jamming, such techniques have not been utilized in low cost systems, which are oriented towards adaptive avoidance of inadvertent man-made noise, such as in the industrial environment. Such noise is time varying, but not truly random. 4/03002 r ^ -4- DISCLOSURE OF THE INVENTION The transceivers of the present invention use adaptive frequency hopping to eliminate! tho effects of multipath and standing βvas and to avoid time-varying continuous wave noise. The transcoiv- eta altio utilise error correction coding to combat impulse noise. In one embodiment of the invention, 8 frequencies are utilized in a frequency band from 20 kHz to 90 kHz. These frequencies are chosen, such that the side bands of the frequencies, when modu¬ lated as described heroin, do not overlap. Manchester encoding of the digital bit stream is employed, wherein α transition botwoon carrier frequencies occurs once per bit. 03002 -5- Each information byte of consists of eight information bit.s plus one parity bit providing limited error detection. The entire prtuket. la alecs prubetited by a 27 bit error detection code. The transceiver according to the invention is provided wi'- a protocol program and on l/o program, which may operate on rate microprocoEsβorβ or through time- enuring on n (tingle proαββ- sor. In the transmit mode, the I/O program transmits a frequency code to a digital counter which changes its counting modulus so as to produce the correct frequency for transmission, which is than anted and weve-mhnpad under control or data βupplled by tha physicol I/O program. During reception, the I/O program provides a frequency code to a pair of frequency controlled filters which pass the appropriate frequency to the digital filters, which use the appropriate clock signals derived from the clock logic to receive the transmitted frequencies. According to the invention, detection of an uncorrectable error ntt«r the βprond npeαtrum tranβmiββlσn or a data block will cause the receiver to transmit an error mαβsags to tha Bonding trans¬ ceiver, which wiJl retransmit the data block. When a block is rocelvαd with such an uncorrectable error in one or more bytes, the correct b ten are Btored in n buffer, so that when the re¬ pented transmission is received, it is only necessary that those 03002 -6- bytcs having errors the first time be received correctly the second time. In such a case, the final 27 bit error detection code is used to verify that the combination of multiple partially received Lr«ιiMinItti-JOMM haw oeourrβcl correctly. Thus, it is possible for the receiver to correctly receive a block, even though that block is never received without errors. Moans arc provided Tor initializing the system so that all trans¬ ceiver * - nre. operating on the β-imα pair of £roquetιalaa at the same time, Means arc provided for measuring the raw bit error rate; Receiver gain la adjunfcαd based upon tha measured error rate performance. In the event that gain adjustment does not produce an acceptable error rate, the data rate in use is reduced. If, after reduction to the lowest implemented data rate, the error rate is still unsatisfactory, a different transmission frequency will be em¬ ployed. Similarly, good error performance will result in an increase in data rate. Information on bit rate and frequency is conveyed to all subscribers on the network through the channel control field in the message packet. The data packets transmitted contain a master address field, which may bo uaod to provldo for multiple, f equβnoy-ϋiviβion multiplexed networks functioning concurrently on the same physical transmission medium. Means is provided in the frequency shifting algorithm to treat transmissions with a different master address in the same wny as noise, resulting in automatic switching to a differ- - * 002 -7- nnt frequency. The hardware to implement this invention consists of five ele¬ ments, shown in simplified block diagram form in Figure 1. A schematic of the actual circuitry is shown in Figure 2 through 5. •The major elements of the design are: T e control microprocessor, which implements the channel control algorithms described above, controls external inter¬ faces, and implements physical, link, and network layer protocols. The digital subsystem, which includes hardware for the exter¬ nal interfaces, timing and clock generation logic, transmit signal generation logic, and the digital portion of the rπceivor, including digital filtering and data recovery. The analog subsystem, including a broad-band, high-gain front end with digital control of the gain in multiple steps, an Analog to digital converter for the signal, and analog cir¬ cuitry to feed and control the transmit power ampiifiαr. Ex e al components, including host interface circuitry, coupling to tlia ΛC pσwor lino, imp iβo protection circuitry, and the transmit power amplifier. OBJECTS OF THE INVENTION It is therefore an object of the invention to provide im¬ proved communications in an environment of slowly time varying continuous wave noise and constant frequency impulse noise. Another object of the invention, is to provide such communi¬ cations utilizing spread spectrum and time diversity techniques. A further object of the invention, is to provide for such communications in industrial environments over power lines, dedi¬ cated pairs, automated guided vehicle floor loops, and similar noisy transmission channels. Another object of the invention, is to increase the data rates in such communications. A still further object of the invention, is to reduce error rates in such communications. Another object of the invention is to provide a technique for data communication and ranging which can be implemented in inexpensive integrated circuit form and which will exhibit very high resistance to impulsive and continuous-wave noise inter¬ ference. A further object of the invention is to provide a reliable means of communication over AC power lines, which exhibit such noise characteristics. Other objects of the invention, will in part be obvious and will in part appear hereinafter. The invention accordingly comprises the features of con¬ struction, several elements, the arrangements of parts, and the choice of functions and signals, which will be exemplified in the construction of the systems hereinafter set forth. The scope of the invention is indicated in the claims. S BRIEF DESCRIPTION OF THE DRAWINGS For a fuller understanding of the nature and objects of the invention, reference should be had to the following detailed description, taken in connection with the accompanying drawings, in which: FIGURE 1 is a block diagram of a spread spectrum ti e-di- versity communication system transceivers according to the inven¬ tion; FIGURE 2 is a schematic circuit diagram of the chip set of Figure 1 connected for parallel communication with the host of Figure 1; FIGURE 3 is a schematic circuit diagram of the chip set of Figure 1 connected for serial communication with the host of Figure 1; FIGURE 4 is a schematic circuit diagram of the power line coupler of Figure 1; FIGURE 5 is a schematic circuit diagram of configuring switches and light emitting diode indicators connected to the chip set of Figure 1; FIGURE 6 is a detailed block diagram of the digital chip and digital subsystem of Figure 1; FIGURE 7 is a detailed block diagram of the analog chip of Figure 1; FIGURE 8A is a conceptual block diagram of the gain setting logic of the invention; FIGURE 8B is a conceptual block diagram of the bit rate and frequency choosing logic of the invention; FIGURE 9 is a flow chart of the gain control logic of the Bystem shown in Figure 1; FIGURE 10 is a graph of error rate versus gain illustrating operation of the gain control logic; FIGURE 11 is flow chart of the bit rate logic of the system of Figure 1; FIGURE 12 is a flow chart of the frequency hopping logic of the system of Figure 1; FIGURE 13 is a flow chart of the slave network acquisition logic of the system of Figure 1; * - FIGURE 14 is a flow chart of the master network acquisition logic of the system of Figure 1; FIGURE 15 is a flow chart of the packet overlay logic of the system of Figure 1; and FIGURE 16 is a diagram of the packet format used in the system of Figure 1. The same reference characters refer to the same elements throughout the several views of the drawings. SUBSTITUTESHEET 02 -11- nπs MOΠΠ FOR CARRYING OUT THE INVENTION This section describes the specific desi gn of the system in detail . The hardware is first diorjuαβ ** d in detail with reference to a ohlpolβvui floliMit il-iti, *nϋ tht-h in woteβ detail , referring to the internals of the chips . The operation of the software algorithms controlling operation of the system are then described, first in general terms and then in detail with reference to specific routines. HARDWARE SYSTEM DESCRIPTION This section describes major hardware elements of the system. Figures 2 through 5 comprise a schematic of the system, and partition it into the functional blocks shown in Figure 1. CONTROL MICROPROCESSOR Λ National COP-seriee mieroproceaeor, U6 of pi« re a, i« em¬ ployed . It interfaces primarily to the digital chip, U7 of figure 8 , but in addition there are several pins connecting to the host interface . Host interface pins are :SER/PΛR, NET/TRΛNS, which are strapped by 02 -12- the uc-or to indiont- * unit oonfiguration; RXRDY, TXRDY, which relate to an 8-bit parallel interface to the user; RTS/COMMAND, CTS/STATUS, RCD, and TXD, which comprise a serial interface to the user with bidirectional flow control. interfaces to the digital chip include a RESET; SO, SI, and SK nrn used in fcho Mtonrlπtr- * Miorowiro e-βrinl iiitβrϋαeα configuration described by National Semiconductor; RAW DATA, received data ptrler bo MαnβhoMbβr rjααodln-j, tiCD end LTXD olαokβ for fβαβive and transmit, PTT to control direction (receive or transmit); and WDT, a watch dog timer which shuts the system down in the event of certain failures. Other information related to bit rate and freguencies is trans¬ ferred to the digital chip via the microwire interface. DIGITAL SUD5SYSTEM I'lm digital cihlp In nhu n n Uiβυk di«yt-*-r- ttifiti in figure β. The πystem is driven by an external 16 MHz crystal. The crystal clock feeds a pair of binary rate multipliers, whose output freguencies are controlled by data written into their counters by the control microprocessor. The output of the binary rate multi pliers feeds n timer chain which generates two designated carrier frequoncies, aβ well ββ their this?. * , fltfch, ana seventh hormonics Thoπ-i h-irmoniαn nr« Bddod together with the fundamental e i-rlβr, appropriately weighted, in the analog chip to produce a nearly sinusoidal carrier. In addition, several clocks are derived for data reception and decoding: for each of the two designated SUBSTITUTESHEET 02 -13- freqυencies, both in-phase and quadrature clocks are developed; and clocks for the low pass filters and for the bandpass filters ore gnnorπtβd, heoe rrequeney la determined by the bit rate commanded by the microprocessor. Tremrnnlti iαH la oonUrαlltJiJ by the mieroproeeasor, through PTT (push- to- alk) pin which enables output, end through t e dβt-t pin whiβh controls th© output of one or zero. Data provided by the microproc¬ essor is anchester-encodedbythe microcontroller, which outputs the appropriate carrier sequence together with its harmonics. The received signal enters the digital chip as a 3-bit digitized nignnl, plus overflow from tho analog chi 'a Λ/D aonvel-ter. This data is run in parallel through four mixers, for in-phase and quadrature compσnøhti * of tandh of the two designated frequencies. Those are implemented by exclusive-OR of the input with the clocks. The I and Q components are then run in parallel through four low- pass filters, to generate magnitude signals for each. The results ore fe to α syistem of comparators, which compares the sum of I and Q energy on each of the two frequencies, and outputs α signal corresponding to the frequency with higher c-nc-r-jy. Thin in n representation of manchester-encoded data; it is decoded and output n.-i data to tho microprocessor (manchester-encoded data i~ also available to the microprocessor, but is not currently used). Dit synchronization is obtained through a bandpass filter feed- 002 -14 - back loop, which uses an initial synchronization pattern at the beginning of each packet to lock onto the fO-fl transitions in tho rocoivod signal, and synchronizes the integrate-and dump function in the comparator and the Manchester decoding accord¬ ingly. ANALOG SUBSYSTEM Figure 7 is a block diagram of the analog chip. It shows the receive fj.ter broadband oporational amplifiers, which arc con¬ nected through external resistors and capacitors as shown in Figure 3. The broadband filtering is accomplished through series low pass and high pass elements. Inputs CO through C2 switch dle-Mii-αiie-* valuαn βt foodbaek reαlt.torn into the gain pat , permitting gain to be set in o db βfcepβ from 3 to eo db. Thin signal is then fed to the Λ/D converter, an conventional flash converter design clocked at 1 Mhz. (Its digital portion is in the digital chip. On the transmit side, FSQWV, 3F, 5F and 7F clocks are combined in the wave-shaper, which adds them together with appropriate rela¬ tive gain to a proximate a βine aVe of frαquonαy of I-OQWV, *hie is asse through an additional filter stage, and then to the driver which interface * } to the enter «l powe βmpliriβr drivβr stage. TRΛN.-;MTT CΛRRTFR POWF.R • ΛMPΓ.TFJΓ.R This section amplifies the output of the transmit carrier genera- 002 -15- tion logic and applies it to the ΛC line coupling network . It consists primarily of QI through Q4 shown on Figure 4 , and is straightforward . AC LINE COUPLING NETWORK This passive network provides coupling to the ΛC line . It is designed t« provide relatively little voltage drop and phase distortion when presented with the power line' s impedance at 20 to 90 KHz . It is shown in Figure 5. For input signals from the ΛC lino, the coupler is designed to attenua te 00 Hie by t least lou db , provide reasonably f lat frequency response, across tha operating range of 9 - 90 KHz , present a high impedance to the line in the operating frequency ran ego , and avoid ringing in fesponse to high energy impulse noise . Protection is provided by MOVl , Dl , D2 , D3 . SUPPORT*NO llΛRbWΛnK The board version of the system includes a power supply, and various LEDs and dip switαhota intended to rααilitαtβ installa¬ tion. Those are detailed in Figures . SUBSTITUTESHEET 002 -16- l-IIYOiCΛ LAYlilt OPERATION I NETWORK CONTROL SYSTEM This section describes the processes involved in control of physical layer communications. The proceoaos ϋlβcuBsed are? Frequency hopping control Gain optimization ϋit rate optimisation Frequency optimization Synchronization and network acquisition Error coding and time diversity Together, these processes comprise a feedback control system which causes communications to operate in that portion of the available πpoctrum which will permit the greatest data rate to bσ used with acceptable error rate. The general structure of the fβedbacklσops is shown conceptually in Figure 8. FRRQUENCy MOPPING CONTROL (BIT LEVEL) This section describes the spectrum allocation , the coding of information bits , and the processing required for system manage- 002 -17- ent at the bit level. Spectrum Allocation Consistentwith the CENELECproposed standard, the systemwill operate within the band of 9 - 90 KHz, Another consideration in the choice of freguencies is that they be so spaced that the principal harmonics of one do not lie cloeα to -mother, so that distortion in the transmitted waveform of one carrier will not cause interference with another frequency chan¬ nel. At the same time, it is necessary that these be generated from π common hlgh-βpaαd clock with diffe ent diviβom, in order to maintain reasonable simplicity in the timing logic. Definition of Tunes Each bit is encoded as a combination of two frequencies, together comprising a manchester-encoded bit of information. Xt iα desirable to net up tha ahunnelti to be contiguous but nahavorlappiftg, to take cull advantage of the available spectrum without making two adjacent channels vulnerable to the same singj e- requoncy noise source. This leads to the following frequency al, . antion: 002 -18- Tune Control The microprocessor will load a code for each of the two frequen¬ cies of the current tune. AUTOMATIC OΛ1N COHTItOti The gain associated with each frequency is adjustable, based on bit error rate as measures over a small number of packets. This πeαtion dctααribon tho proαoβr*. In the master, this loop is fast compared to the bit rate and frequency change loop; that lβ, changes to gain ore made more readily than changes to bit rate and frequency, to avoid thrash¬ ing between the two dimensions of the system. Upon reset, prior to network acquisition, the gain is set at its middle value. It is than adjusted baaotl on tha oaauftrence of byteπ received in error, as determined by the parity bit. λ 3002 -19- change is made to the gain after each four packets received. Since a gain setting either too high or too low will produce inferior performance, a two-step peak-finding algorithm is used! l. measure error rate at current gain value 2. change gain and measure error rate 3. if error rate is better, change gain again in same direc¬ tion; if error rate is worse, return to previous setting (peak found) 4. when a peak is found, stay at same setting for 16 packets, then repeat process. This process is described in groater detail in Figure 9, a flow chart for the gain control algorithm, and Figure 10, a chart showing the sequence of gains which would be chosen with a hypo¬ thetical but typical relationship between gain and error rate. The curve in Figure 11 indicates an optimum gain between gain = 2 and gain = 3, with worse performance at either higher or lower values of gain. This is typical of actual performance, since too high a gain will saturate tha i-eaeiver with noise, while too low a gain will place the signal below the receiver's threshold. Tho numbers in circles on both figures indicate the sequence of events: The system starts operating at a gain of 4, and measures the error min Tor four successive received packets (1). Upon ini¬ tialization, tho variable "bit error rate" was set to zero, so 002 -20- whcn the new measurement is compared to tho previous bit error rate, it will be worse (2). This causes the variable "direction" to be reversed in sign, it is then +1. Thus, tho gain is incrc- m- itod to a value or s, (3) and error rate is measured for anoth¬ er four packets (4). In our example, a worse measurement is obtained, eautslng direction to be again reversed to -1, (6) and gain set to 4, (7). The next measurement (β) produces another improvement in error rate (9), so gain is again decremented (10) to 3. The next ιn-tιt-urement (11) again improves gain (12), and gain is again decremented (13) to 2. Now the optimum has been passed, the next measurement (14) is worse than the preceding one, so gain in inaremarifced inϋteatt of deoremented, no to α value of 3, (16). The system, having found the peak, now stays nt thio value r gain for lo packets, instead of four, and then repeats the entire process. This longer sample time after a peak is found improves the systems performance, because less time is spent at the sub-optimal gain values surrounding the peak. The length of the on-peak sample time is limited, however, by the need to make the system responsive to frequent changes in tho ambient noise environment, and in received signal strength. BIT RATE OPTIMIZATION The slave controls its gain autonomously, but changes bit rate and frequency only in response to a command from the maκtor, or during network acquisition, if it loses the network or has just been powered on. The following discussion thus applies only to the nsLcr. The master starts at tho highest bit rate. A figure of merit for 02 -21- network performance is maintained as follows, and is updated oaeh time a packet iβ receive * -1 BRCNT(N) = BRCNT(N-l) + 1 if packet retry occurs = BRCNT(N-l)/2 if packet received without retry DRCNT iβ an n bit number, if DKCNT βxoeeda α upper threshold, then the bit rate is decreased, unless the lowest bit rate is nlrααdy in uαq. In thin αααp, frs>guβnoy if» ehdnyαdi If UftCNT drops bolow n lower thrβuheld, then bit rate is increased. If bit rate is maximum, only the first threshold applies. This is illustrated as a flow chart in Figure 1] . Each time a packet is received, a change is made to the BRCNT variable. The effect of a correct packet iβ βtrongαr than tha offoct of an incorrect packet; it reduces the count by a factor of two (see (2) on l'igure 11). he new value of the DRCNT variable is com¬ pared with a threshold, and bit rate inαrnαiiαil, tt'αiH n'rnneiy maximum, when the threshold is reached (3). Similarly, a series of bad packets will increase DRCNT (4), and produce a decrease in bit rate when an upper threshold is reached (5). If the logic calls for a lower than the lowest bit rαtα, then the frequency channel change algorithm is invoked (6). FREQUENCY OPTIMIZATION (TUNE SELECTION) The master starts the network at the highest frequency channel 3002 -22- not occupied by another master address. It will drop to another frequency channel is the system is currently operating on the lowest bit rate, and a figure of merit, FHCNT, exceeds a thresh¬ old. FHCNT is calculated similarly to DRCNT, as a function of packet retries. The master will rotate through available fre- guency channels; collision with existing networks with other master addresses will be treated in the same way as unacceptable FIICNT, resulting in shift to another frequency channel. Tho logic is shown in Figure 12. DIT RATE AND TUNE CIIAMαt. COMMUNICATION ¥0 SLAVES The current bit rate and frequency aro designated in each packet. When a change is requested by the master, it transmits four packets with the new code on the old bit rate and frequency, and then changes to the new set. Those slaves hearing the packets change immediately; those that do not lose the network, and enter the network acquisition routine. nVNOIIUONIBA ION AND MU WOtlK AOqUtat'i-toN UV α tVϋ..- This section describes the process through which a network is initialized, and through which additional subscribers join the network. Slave Initialization Upon initialization, a slave must search for and find tho tuno and bit rate currently in use. It proceeds as described below, and illustrated in Figure 13. SUBSTITUTESHEET 002 -23- Λll tunes are searched, starting with the highest. Within each tune search, bit rate is searched, starting with the highoβt. Within each bit rote, gain is searched highest to lowest. If a valid (error code checks correct) sequence is obtained during this process, then the slave knows the tun * * and switches to it, entering run mode. τc not, the sieve proceeds to search the tunes bit rates and gains, remaining on each combination for four packet times. This process is repeated until a valid packet is received. Master Initialization The master starts by performing the slave initialization sequence to see if a network with the same network address already exists. If so, it is internally disabled. Thin iβ intended to prevent seizure of n network by a master in malevolent hands. If the: mαtator cannot rind a slave with ita own network address, it will proceed to the next frequency channel, and repeat the process. This is shown in Figure 14. Network Runtime Operation In σrde-r to kt»op fchr- wyetom gain and tun * ) πclac ion optimal, the network will always be active. In network mode, the master runs internal tost (Boftwπro loopbnok) whπnavαr thorn i« no host traffic required. 3002 -24- Software loopback or test mode will operate as follows: For the first cycle, the master will attempt to access all 255 slave addressees. Subsequently it will scan only up to the highest address which responded. Every TDD cycles, it will search the full βot. (it ie required that the umer pack addreββes contigu¬ ously upward from 1 for efficient operation). Each time it accesses a slave, it will send a packet of test data which the slave will echo. The master will process to the next slave ad¬ dress upon correct receipt of the echo. Once a network is established with one or more slaves, the tune control will be performed as described above. ERROR CODING ΛND TIME DIVERSITY In addition to frequency-dependent noise which will be combated by the adaptive frequency hopping described above, power lines are characterized by impulsive noise, which by definition occu- ploa all froquonσy hnndα for relatively βhort pariode, often leaβ than one bit time. This noise, tends to be 100 or 120 Hz syn¬ chronous, due to its origin. In network mode and in the software loopback function of trans¬ parent mode, two techniques are employed to reduce sensitivity to .impulse noise: error detection coding, and saving those bytes of α block which were not corrupted, so that on a subsequent retry a 3002 -25- coniploto moBβαgo will exiβt at the receiver unless the same portion is hit on successive tries. The timing of successive tries is arbitrary due to variable block length, and it is likely that 100 or 120 hz synchronous disturbance will not hit the same message portion on successive attempts. Error Correction Λ 27 bit error code is employed, consisting of three bytes plus byte parity. They oonwiBt of a cumulative XOR of the bytes in tho packet, followed by an XOR of the bytes in the packet with a ono-byte left rotate after each byte is added, followed by an XOR of the bytes in the packet with a right rotate after each XOR. This allows implementa ion in software in real time, and provides good performance with the overlay technique. In implementations with π more powerful processor, a stronger code will be appropri¬ ate. Overlay of Retries If a given byte of a packet can not bo corrαcted, the receiver will continue to collect data for the remainder of the packet, πnd will store those bytes subject to successful error correction in the receive burfer. However, if the first byte, which con¬ tains tho packet length, iε corrupted, tho packet must bα aban¬ doned. ) on t-ubsequcnt rβtriea, if a byte is in error, it will not be 03002 r ^ -26- written to the receive buffer, but the byte already stored from the previous retry will be incorporated in the running checksum. At the end of the packet, if the checksum is found to be valid, then a complete valid paαket has been assembled from' two or mare transmissions, and it will be processed as such. This logic is shown in detail in Figure 15. This approach allows the system to communicate successfully even in a noise environment which precludes a packet from ever being received with only correctable errors, OH long as each byte gets through once. 3002 -27- LINK LEVEL OPERATION This section describes the operation of the link layer of the ■ye ern, separately for transparent mode and network mode. TRANSPARENT MODE Transparent mode is extremely simple: Data transmitted into the master by its hoβt is transferred to the network as α modulated bit stream, which is decoded by all slaves which can hear it and output as serial data to their hosts, similarly, data transmit¬ ted into a slave by its host is transferred across the network and comes out all other units. There is no addressing function, error detection or correction, or bus access control implemented in the system in this mode; these must be supplied by the user. One restriction is imposed on the host network: all transmis¬ sions must be initiated by the master. The reason for this is to allow the system to use idle periods for network optimization. This process consists of polling each slave in succession, ob¬ taining a loopback of data, and reports of channel quality from each slave. This information is used by the physical layer rou¬ tines to control gain and tune selection. 94/03002 -28- NETWORK MODE Network mode implements a polled, master slave system capable of both cyclic polling operation and of a point-to-point connection. Error free logical links are provided in both cases. Protocol syntax Data is transferred in packets. Each packet is comprised of four bytes plus 0 to 17 data bytes, with the quantity variable. Each byte is supplemented by a parity bit. This is illustrated in Figure 16. The field-- nrei sync pattern (4 bytes) B αrt of frame (SOI", 1 byte) control^ (CWI, 1 byte) controi_2 (CW2, l byte) slave address (1 byte) data (0-17 bytes) block error detection code (3 bytes) The control_l byte is further subdivided as follows: bits 0 - 3 data byte count (0 - 19 decimal) bit 4 ack/nak bi t 5 sequence SUBSTITUTE SHEET 002 -29- bit e new_address bit 7 test_mσde Packets are of variable length, and the length (in terms of data bytos) is the lower nibble of the control byte. The ack/nak bit is used to command retransmission of a destroyed block. The sequence bit allows the system to avoid confusing retries with new data. The now_address bit is 1 on the first block being sent to a slave in a particular link process; it signals to the slave that this is a new link. The slave address field is used by the slave to match messages intended for it. It ignores messages not bearing its own ad¬ dress, with the exception of address 0. Address 0 is used for broadcast: All slaves accept a message with this addreπr-, but nonα respond to it. The controi-.a byte it* organ!Bed AS follow * }I bits 0 - 1 tune code (master); noise level (slave) bit 2 - 3 bit rate code bit * flow control nak SUBSTITUTESHEET -30- bit 5 master originating bits 6 - 7 master address The tune code is a 2-bit code denoting the tune currently in use by the network, xt ia tollowed by a another 2-bit code for bit rat*. The next bit is used by the slave to indicate that although the link is good, the slave's host is not accepting data as fast as it is being delivered, due to flow control or a difference in data rates, and that the master should therefore send no new data, although it may keep the link active. Tha I'βNb bit indidttbβa origin of the rrtβaaagβi 1 Cor meater, and zero for slave. The top 3 bitα of this byte apβαify one of 0 master (or network) addresses . These are used to allow concurrent operation of multiple, independent networks on tho same physical channel without confuaion, either for store-and-forward purposes or to allow inoreaβed uso of the bandwidth . In instal lations where there is only one network , it is also possible to use it as a key to enable content-oriented address¬ ing . 03002 rL1 u -31- Tho error code is appended at the end of the packet, and is used to verify validity of the whole packet. Different words of the packet may have been delivered on different retires of the packet in a noisy environment. PROTOCOL, SEMANTICS The protocol implements the various link commands described below. These allow creation of three types of links: network test polling cycle Continuous link Network test can be viewed as a special case of a polling cycle, in which data is not transferred to the host device. Polling is in turn a special case of the continuous link, in which the link is discontinued automatically after receipt of one valid packet from the slave, and the next slave in tho specified range is then connected. It shares the same routines for circuit establishment and error control. These routines are essentially the same as those described in Patent 4,597,082. HOST COMMAND SYNTAX Additional detail follows on the structure of commands which may 3002 -32- bo isGUod to tho master by the master's host. The master distin¬ guished the commands from data by the status of the control/data line. In addition to tho command responses noted, the systemwill assert its ERROR pin (or BREAK if in serial mode) if an illegal command or syntax is received. The slave does not accept or act on commands except for STATUS and EXTERNAL FM. If its control/data line is in control state, it treats data received as a destination address to bo included in subsequent packets. If itn internal buffer (lα bytes) is filled, subsequent data will be ignored, and additional writes to the chip will produce an error. Nαtwork Tost This mode sends a packet to each slave within the specified range; the slave performs a software loopback to the master; the master checks for errors and reports error rate. The same bioαk- ahcad acknowledgment protocol will be used as in the case of polling and transparent link communications. The primary purpose of thin tnodo in to provide αurront data a upootrum portormnnσβ HO the FH algorithms will remain optimized in periods of low useage. It al execute until another command received. Command response: <statusxaddressxdata> SUBSTITUTE SHEET 03002 -33- < *~ tatus><addre: ~ s><d-ita ~* .. <E0F markπr> Status shows success or faiiuro to communicate with indicated address. Data from slave follows address is successful; otherwise subsequent slave's report follows. <data> denotes data which the designated slave has received since the last time it was polled, up to one full pα execute recoived. command rnπpσnπni <sLatUBxaddroBBXdata> .. <status><addrcsaxdata> .. <E0F marker> Status shows success or failure to communicate with indicated nd rrss. Data from slave follows address is successful; otherwise subsequent slave's report follows. <data> denotes data which the designated slave has received since the last time it was polled, up to one full packet size Trnncψaront point-to-point Link Thin command o.-i .-iblif. os n point-to-point, error-freo, positively ncl'.now]n α'" Jink to n πinrjlo slαvo. oncα it in ntαbllβhod, dntπ entered jn tho data port of cither master or slave comes out tho other. Command syntax: <op σodc> <addreos> SUBSTITUTE SHEET 002 -34- Com and response: <address> <link εtatus> Link status is success or failure in establishing the link. If a link is broken after it has been establsihed, the ERROR pin will be asserted (parallel mode) or a BREAK character will be output (serial mode). Link remains in effect until another valid command is received. The unit oontainβ is bytes of buffering. If the input data rate is such that this buffer is filled, the TRANSMIT BUFFER AVAILABLE line will not be asserted, providing flow control. Droa cnst This command is identical to the transparent link, except that no acknowledgment is expected or received from slaves. The broadcast address is 00. Any unit receiving data addressed to 00 will output it to its host, if it is free if errors after error correction. Command syntax: <op code> <address> Command response; <address> <linK Stflttl5> <Link status > is always OK. Initialization command Upon power-up or hardware reset, the system must receive an ini¬ tialization sequence or it will do nothing. This sequence tells it whether it is a master or slave. If a slave, it also tell it its address, and an address filter (applied to the destination address field in received packets) to be used in passing network data bearing other addressed to its host. if it is α master, it is told the address range over which the system is working. If initialized as a slave, the only commands accepted are ini¬ tialization and status request. command syntax to slave: <op codex aster/slavexown ad- dressxdestination address filter> command syntax to master: <op codexmaster/slavexlow ad- dresεxdestination address filter> commend response: none Status Request Two status requests are available: chip status and link status. 002 -36- Chip status indicates the current state of the chip, and may be uned by the host to obtain additional information whon the EKROH pin (or serial DREΛK) lα asserted. command syntax: <op code> command response <link typexflow control statusxerrσr codes to be determined> The link status command, valid for both master and slave, causes output of current Fll tune, and rαlativa error rate data on the froquoncios of the tune, each expressed as a two-byte number. command πyntax: <σp code> command response: <own addressxdestination address filter> <FH tun-i id> <fl error ratexf2 error rαtoxfα error rato> External FH Command This command , allows external setting of the frequency set in use . It over-rides the internal FH algorithms , for test and debug purposes , and to allow operation of the system on a fixed- frequency basis for compatibility with possible future , fiκed- frtjqucncy nodes . Command syn tax : <op codexf requ ency to us e> SUBSTITUTE SHEET 3002 -37- if "0" is entered in the frequency field, the internal FH algorithms will be re-enabled. command response: none External Bit Rate Command This command, allows external setting of the bit rate set in use. It over-rides the internal FH algorithms, for test and debug purposes, and to allow operation of tho system on a fixed-fre¬ quency basis for compatibility with possible future, fixed-fre¬ quency nodes. Command syntax: <op codexbit rate to use> if "0" in entered in tho bit rate field, tho internal 1 * 11 algorithms will bo re-enabled. command response: none SUBSTITUTE SHEET The IC/SSTM chip set comprising the IC/SSTM analog chip M TM TM TM ICSS u 1003, IC/SS ■ digital chip ICSS 1002, and the IC/SS TM controller chip ICSS 1001 are manufactured by National Semicon-- ductor Corporation of Santa Clara, California. The ICSS TM 1001 chip is a programmed National Semiconductor COP884EG microcon¬ troller that controls the adaptive gain setting, bit rate set¬ ting, frequency hopping, host interface, and link layer proto¬ cols. The features of the invention could also be realized in hard logic or by other computer means. It will thus be seen that the objects set forth above, among those made apparent from the preceding description are effi¬ ciently attained and since certain changes may be made in the above systems and constructions without departing from the scope of the invention, it is intended that all matter contained in the above description or shown in the accompanying drawings shall be interpreted as illustrative and not in a limiting sense. It is also understood that the following claims are intended to cover all of the generic and specific features of the inven¬ tion herein described, and all statements of the scope of the invention which, as a matter of language, might be said to fall therebetween. Having described my invention, what I claim as new and de¬ sire to secure by Letters Patent is:

Claims: CLAIMS 1. A communications system comprising at least one re¬ ceiver employing automatic gain control for receiving binary coded parity checked information in successive packets; said receiver comprising: A) means for determining the bit error rate occurring in received packets over a predetermined sample period; and storing said rate; B) means for comparing said bit error rate with the bit error rate in the prior sample period; and C) means for changing the gain of the receiver in the same direction that it was changed previously if the current bit error rate is less than the pre¬ viously measured bit error rate and for changing the gain in the opposite direction if the current bit error rate ise greater than the previously measured bit error rate. 2. The eyeten. defined in claim 1 and D) means for keeping the gain at the same setting for a predetermined number of said sample periods after changing the gain in said opposite direc¬ tion. 3. The system defined in claim 2 wherein said sample pe¬ riod is a number of packets received. 4. The system defined in claim 1 wherein said sample pe¬ riod is a number of packets received. SUB S TITUTESHEET 5. A communciations system comprising a transmitter and receiver wherein binary coded information packets including error codes are transmitted from a transmitter to a receiver on at least one of a plurality of modulated frequencies and the re¬ ceiver transmits to the transmitter an error signal if the re¬ ceiver determine* that β packet WAR received with an error; nctid transmitter comprising: A) means for setting the transmission bit rate at one of a plurality of bit rates; B) means for maintaining a BRCNT having upper and lower limits updated as follows - BRCNT(N) = BRCNT(N-l) + 1 if a packet was received with an error BRCN (N) = BRCN (N-l) /2 if a packet was received without an error and for decrementing the setting of eaid bit error rate when the BRCNT reaches said upper limit and for incrementing the setting of said bit rate when said BRCNT reaches said lower limit; and C) means for changing at least one frequency used in the next packet transmission when the BRCNT reaches said upper limit and the bit rate used in the error containing packet was the lowest bit rate available. 6. A communication system as defined in claim 5 wherein said receivers utilize integrate and dump bit detection. 7. A communication system comprising a plurality of slave modems each connected to a host comprising: A) means for receiving binary coded information pack¬ ets on a plurality of communication channels; B) means for searching said channels for packets containing one of a plurality master addresses and for only transmitting to its host packets con¬ taining said master address. SUBSTITUTESHEET 8. A communication system as defined in claim 7; and, C) means for searching said channels until packets are received containing said one master address. 9. A ooπununioa ion system as defined in claim 7 wherein said channels comprise frequency channels. 10. A communication system as defined in claim 1 and D) a master modem having a specific master address and comprising a) means for searching said channels for and, disabling itself when, a packet is received containing its master address from another master. 11. A communciations system as defined in claim 1 further comprising a transmitter and wherein binary coded information packets including error codes are transmitted from the trans¬ mitter to the receiver on at least one of a plurality of modu¬ lated frequencies and the receiver transmits to the transmitter an error signal if the receiver determines that a packet v/as received with an error; said transmitter comprising: A) means for setting the transmission bit rate at one of a plurality of bit rates; B) means for maintaining a BRCNT having upper and lower limits updated as follows - BRCNT(N) = BRCNT(N-l) + 1 if a packet was received with an error «■ BRCNT(N-l) /2 if a paokot was received without an error and for decrementing the setting of said bit error rate when the BRCNT reaches said upper limit and for incrementing the setting of said bit rate when said BRCNT reaches said lower limit; and C) means for changing at least one frequency used in the next packet transmission when the BRCNT reaches said upper limit and the bit rate used in the error containing packet was the lowest bit rate available. 12. A communication system as defined in claim 11 com¬ prising a plurality of slave modems each connected to a host comprising: A) means for receiving binary coded information packets on a plurality of communication channels; B) means for searching said channels for packets containing one of a plurality master addresses and for only transmitting to its host packets con¬ taining said master address. 13. A communication system as defined in claim 12 and D) a master modem having a specific master address and comprising a) means for searching said channels for and, disabling itself when, a packet is received containing its master address from another master. 14. A communication system as defined in claim 1 comprising a plurality of slave modems each connected to a host comprising: A) means for receiving binary coded information packets on a plurality of communication channels; B) means for searching said channels for packets containing one of a plurality master addresses and for only transmitting to its host packets con¬ taining said master address. SUBSTITUTE SHEET

Inventors: HILL LAWRENCE WOODBRIDGE, HILL, LAWRENCE, WOODBRIDGE
Applicants: COMSOURCE SYSTEMS CORP, HILL LAWRENCE WOODBRIDGE, COMSOURCE SYSTEMS CORPORATION
Application year: 1993
Main classification: H04J13
IPC codes: G06F11, H03G3, H04B1, H04B3, H04J13