|
Description  |
|
|
AUTHORIZATION PURSUANT TO THE COMMISSIONER'S NOTICE OF MAR. 20, 1987 (1077
OG 22)
A portion of the disclosure of this patent document contains material which
is subject to copyright protection. The copyright owner has no objection
to the facsimile reproduction by anyone of the patent document or the
patent disclosure, as it appears in the Patent and Trademark Office patent
file or records, but otherwise reserves all copyright rights whatsoever.
BACKGROUND OF THE INVENTION
The present invention relates to a communication system suitable for the
transmission of messages from a large number of secondary units to a
primary unit, and in a presently preferred implementation relates to
improvements in radio data communication systems wherein a number of
mobile transceiver units are to transmit data to a base station under a
wide range of operating conditions. The invention is preferably to be
applicable as an upgrade of an existing data capture system wherein a
number of hand-held transceiver units of an earlier design are already in
the field representing a substantial economic investment in comparison to
the cost of a base station.
In communication systems, various approaches have been taken to allocating
use of a communications link among a large number of terminals. In a
sequential polling technique, each of the terminals may be polled in
sequence. Each terminal may be required to wait its turn when it has a
message to send, and many terminals may be polled which have no messages
to send. In a time slot type system, a general poll is sent, and terminals
with messages to send respond in random ones of a series of time slots
following the general poll. It is conceived that a more efficient and
adaptable communication system would result from a fusion of these
seemingly incompatible polling techniques.
SUMMARY OF THE INVENTION
An important object of the invention is to provide a multiterminal system
and method having increased throughput efficiency in comparison to a
system based on either the sequential polling approach or the slotted
polling technique as heretofore practiced.
Another important object is to provide such a multiterminal system and
method which is automatically dynamically adaptable to varying numbers of
active terminals and/or other changing parameters during a given operating
time period.
A more specific object of the invention resides in improving the data
throughput of low-cost FM or FSK data communications equipment used on
existing narrowband channels.
Further objects reside in the provision of a radio data communication
system which provides a reliable and efficient communication system which
is dynamically adaptable to a wide range of operating conditions.
Other objects, features and advantages of the present invention will be
apparent from the following detailed description taken in connection with
the accompanying drawings, and from the respective features of the
appended claims taken individually and in cooperative combinations.
DESCRIPTION OF THE DRAWINGS
FIG. 1 is a diagrammatic illustration of an existing prior art radio data
system which may be upgraded to incorporate features of the present
invention;
FIG. 2 is a diagrammatic illustration of the sequential polling procedure
which is utilized with the prior art system of FIG. 1;
FIG. 3 is a diagram illustrating the system timing for the prior art system
of FIGS. 1 and 2;
FIG. 4 is a diagram similar to FIG. 3 and illustrating system timing for a
prior art system having nearly twice the polling speed of the system of
FIGS. 1-3;
FIG. 5 is a diagram similar to FIG. 2 but illustrating a basic protocol in
accordance with an aspect of the present invention, and which is to be
utilized with a high performance type of mobile terminal unit representing
the next generation in comparison to the system represented in FIG. 4;
FIG. 6 is a diagrammatic illustration of an embodiment of multiterminal
communication system in accordance with the present invention, applied to
the field of mobile radio data communication; and
FIG. 7 is a diagram useful in explaining the logic structure and
information flow in a communications system such as represented by the
embodiment of FIG. 6.
DETAILED DESCRIPTION
Description of FlGS. 1-4
FIG. 1 shows an existing radio frequency data transmission system 10
wherein a base station transceiver means 11 has a number of mobile
transceiver units such as 12A, 12B, . . . , 12N in radio communication
therewith.
By way of example, the base station may be comprised of a radio base unit
14 such as the model RB1212 of Norand Corporation, Cedar Rapids, Iowa
which forms part of a product family known as the RT1200 system. In this
case, the radio base 14 may receive data from the respective mobile RF
terminals, e.g. of type RT1210, and transmit the received data via a
multiplexor 15, e.g. type RM1211, and a communications link 16 (e.g.
utilizing an RS--232 format) to a host computer 17.
The data capture terminals 12A, 12B, . . . , 12N may each be provided with
a keyboard such as 18, a display as at 19, and a bar code scanning
capability, e.g. via an instant bar code reader such as shown in U.S. Pat.
No. 4,766,300 issued Aug. 23, 1988 and known commercially as the 20/20
High Performance Bar Code Reader of Norand Corporation.
The RT1200 system utilizes time division multiplexing on a single frequency
channel (e.g. in the 450 megahertz band) to provide access to the
respective terminals. The RT1200 communications protocol is based on a
sequential polling method that transmits a query addressed to each
portable terminal in succession, and allows a specified amount of time for
the addressed terminal to respond in case a data message is ready for
transmission.
A transmitted message consists of an initialization sequence, unit address,
message identifier and system information, message data and/or control
commands, error control, and end of message indication.
The basic sequential polling procedure of a base station such as the RB1212
is illustrated in FIG. 2 wherein level TX represents transmit mode of the
base station, and level RX represents receive mode. In FIG. 2, solid line
21 represents a transmit time interval wherein the base station transmits
a polling signal for a mobile unit of a first address, e.g. #0, at a
predetermined data rate e.g. 4800 baud. The base station then allows a
specified amount of time represented as time interval 22 for the addressed
terminal to respond if communication activity is required. The intervals
at 23 and 24 apply to a second terminal address, e.g. #1, the intervals 25
and 26 apply to a third terminal address, e.g. #2, the time intervals 27
and 28 represent the operation of a fourth terminal, e.g. #3, and so on.
The sequential polling process is timed by the multiplexor 15, FIG. 1, of
the RT1200 system such that if a response is not received from the
addressed mobile terminal within the allotted time such as indicated at
22, a poll is issued to the next terminal in the sequence, e.g. as
indicated at 23. In the RT1200 system, if the designated mobile unit has
some information to send to the host computer 17, that information is
immediately transmitted to the host as the response, in which case the
base station remains in reception mode. In effect, for the RT1200 system,
any of the reception intervals 22, 24, 26, etc. will be extended so as to
receive complete messages from the respective addressed terminals where
such messages are ready to be sent in response to the respective polling
transmissions 21, 23, 25, 27, etc. In FIG. 2, it is assumed that mobile
unit #3 is the first unit with a message to send. In this case, the base
station while in receive mode as indicated at 28, will actually receive a
transmission from mobile unit #3 indicating that a message will follow.
The base station in response to the transmission from mobile unit #3
(which is signified by a second line 28A in FIG. 2) remains in receive
mode for the duration of the message from unit #3. The message itself from
unit #3 may occur over a time interval as represented by dot-dash line
28B, and may be followed by an end of message transmission from unit #3 as
indicated by a second line at 28C. In response to the end of message
signal at 28C, the base station switches to transmit mode and transmits an
acknowledgement message as indicated at 29 for advising unit #3 that the
message was properly received.
The base station then resumes polling, e.g. transmitting a polling signal
at 30 addressed to a mobile unit #4 and switching to receive mode for an
interval 31, and so on. In order to minimize channel capacity that is
wasted polling inactive terminals, activity time-outs may be employed so
that units that have not transmitted are dropped from the polling sequence
and placed in a contention queue. The assumption would be that inactive
units are either not being used at all or that the operator is busy at
some other activity for significant amounts of time.
FIG. 3 illustrates standard system timing (in milliseconds) for the RT1200
system as represented in FIGS. 1 and 2. As indicated, a polling sequence
such as indicated at 21 and 22 in FIG. 2 may occupy an overall time
interval of 127 milliseconds, with a poll interval corresponding to
interval 21 in FIG. 2 requiring twenty-two milliseconds, a
transmit/receive turnaround interval such as represented at 33 in FIG. 2
requiring forty-five milliseconds, and a receive interval such as
indicated at 22 in FIG. 2 being allotted fifteen milliseconds.
FIG. 4 illustrates the corresponding standard system timing (in
milliseconds) for a second product family known as the RT2200 system of
Norand Corporation. In this case, a standard cycle corresponding to the
intervals 21, 33, 22 and 34 in FIG. 3 requires a total of sixty-seven
milliseconds, polling intervals such as 35 and 36 requiring twenty-two
milliseconds, and intervals 37, 38 and 39 each requiring fifteen
milliseconds. The shorter transmit to receive and receive to transmit
times offered by the RT2200 system result in nearly twice the polling
speed in comparison to the RT1200 system. The modulation method and
communication bit rates are identical in the two system families so that
it is possible for the components of the RT1200 and RT2200 systems to be
mixed subject to some limitations. For example, any mix of terminals or
bases that includes an RT1211 multiplexor or an RT1212 base requires that
the forty-five millisecond intervals such as 33 and 34 be included during
communication involving these components. More particularly, if either the
RT1212 base station or RT1211 multiplexor is used with a mixture of RT1210
and RT2210 terminals, all terminals must respond using the slower (45ms)
delay. If these units are replaced with both the RB2212 base, and RM2216
multiplexor, the system has the capability of adjusting the delay to match
the particular terminals in use. For example, if units #1, #5, and #7 are
RT2210's, and units #2, #3, #4, and #6 are RT1210's, the former three will
be polled using the 15ms delay, the latter four will be polled using the
45ms delay.
Description of FIG. 5
In a more recent commercial development, a type of mobile terminal unit is
to be utilized that includes a high performance 16-bit microprocessor and
a memory capacity that allows large and complex application programs to
reside and be executed within the terminal. With the introduction of this
terminal, which is identified as the RT2210 Radio Data Terminal of Norand
Corporation, it is particularly convenient to load the basic terminal with
programming so that the resultant programmed terminal will operate as part
of an embodiment of a communication system in accordance with the present
invention. Such a programmed terminal may interact with a primary
communications controller according to a sequence of events such as
illustrated in FIG. 5. Implementation of this embodiment of the invention
may be effected by means of a new read only memory (firmware) to be loaded
into the RT2210 basic terminal, for example.
As shown in FIG. 5 a multiterminal polling message such as indicated at 40
is transmitted to all terminals in the system, and the terminals are
allowed to respond in random "time slots" such as indicated at 41-44 to
indicate to the controller that communication activity is desired by the
terminal. The example in FIG. 5 provides four time slots 41-44 in which
the terminals may respond to the poll. In practice, the number of time
slots are varied depending on the traffic load and other conditions. Each
terminal may respond to the poll 40 in any of the desired time slots with
its address and some positive acknowledgement. The particular time slot in
which the terminal chooses to communicate is selected at random by the
terminal. In the event that several terminals--potentially more than the
number of time slots available, desire communications, a good probability
may remain that at least one of the terminals will transmit its response
in a time slot which is free of other responses. Under light loading
conditions, it is likely that more than one slot will contain an
intelligible response message, which further improves the efficiency of
the polling procedure. An additional efficiency improvement may be
realized because of a "capture" phenomenon of radio frequency modulation
that allows recovery of a relatively strong signal in the presence of a
relatively weak interfering signal.
Referring to FIG. 5, it may be that a terminal unit with an address of #3
responded during the first time slot 41, and that a terminal unit #0
responded in time slot 43. Several terminal units may have simultaneously
responded in time slot 42 such that none was identified by the base
station. In such a case, the base station after elapse of time intervals
41-44, may first transmit a polling signal 51 addressed to terminal unit
#3, and then receive a message from unit #3 as indicated at 52. As in FIG.
2, the message received at 52 may include a preamble indicated at 52A, a
message proper 52B, and an end of message signal 52C. The base station may
then transmit an acknowledgement message as represented at 53, and
thereafter proceed during time interval 54 to poll the next terminal unit,
e.g #0, which successfully responded to the general poll at 40. The
message from terminal unit #0 may include message components such as
described for message 52. After each successfully responding mobile
terminal has been polled and its respective message received, the
procedure may be repeated with a further multiterminal polling cycle as at
40-44. The technique illustrated in FIG. 5 is herein termed slotted
reservation-access polling since secondary terminal units with a message
to communicate issue responses in randomly selected slots which merely
seek entry to a queue of secondary units desiring to transmit, (that is,
the responding secondary units seek to reserve a future time allocation
from the primary unit, at which future time each successful secondary unit
will be granted access to the primary unit in accordance with its
reservation).
Description of FIG. 6
FIG. 6 shows an exemplary multiterminal communications system in accordance
with the present invention. In this embodiment a type RC2250 network
controller of Norand Corporation is programmed according to a protocol
embodiment known as the RTC protocol so as to provide a programmed network
controller means 6-10. In this particular embodiment which is in
successful operation, a base transceiver 6-11 is in a separate housing
from the controller means 6-10 and utilizes an existing product of Norand
Corporation known as the Model RB2212 base station transceiver.
In the specific example of FIG. 6, the network controller means 6-10
manages all communication and processing of data between a group of radio
terminals such as indicated at 6-12A, 6-12B, . . . ,6-12X, . . . 6-12N,
and a host computer 6-14. Each radio terminal may be a separate hand-held
or vehicle-mounted unit comprised of a model RT2210 commercial product of
Norand Corporation with firmware programming so as to coact with the
controller system 6-10 according to a protocol embodiment known as the RTC
protocol.
Description of FIG. 7
In APPENDIX A to the present specification, a detailed document covering
the RTC protocol embodiment is reproduced. This document presents the
information required to readily implement the embodiment of FIG. 6.
For the sake of an introduction to descriptive terminology, the following
discussion in relation to FIG. 7 is presented. While the present
discussion includes aspects dependent on the particular example of FIG. 6,
the application of the teachings herein e.g. to a local area network
without radio links, will be apparent to those skilled in the art from the
present disclosure.
Referring to Section 2.0 COMMAND LINE of APPENDIX A, an exemplary command
for the system of FIG. 6 might appear as follows: run rtc
-d90(H)-iF0(H)-q3 where the symbol (H) simply indicates that the preceding
two characters are in hexadecimal notation for purposes of the present
description. Referring to APPENDIX A, the command line indicates that the
address of the data port is 90(H), the interrupt number to use is F0(H),
and the queue number to use for the queue indicated at 7-15 is three. It
will be noted that for the present implementation the data packet size may
have a value of 128 bytes while the number of secondary terminal units
such as 7-12A, 7-12B, . . . , 7-12X . . . , 7-12N may be any number up to
128. Where the symbol (H) is omitted, ordinary decimal notation is
intended in the present text.
Referring to Section 3.0 RTC PROGRAM INTERFACE of APPENDIX A, the system of
FIG. 7 uses two queues 7-14, 7-15 for communication with a higher layer,
termed host means 7-10. The queue 7-14 is used to pass messages into the
RTC task means 7-11 from host means 7-10, and queue 7-15 is used to pass
messages to the host means 7-10.
The messages are passed in control structures called buffers as defined in
Section 3.0. (All Section numbers herein refer to APPENDIX A.) For queues
7-14 and 7-15 a chain of buffers according to the present example are to
be on successive entries in the queue.
Section 3.1 enumerates the types of messages which may be supplied to task
means 7-11 via queue 7-14. Such messages may of course originate at a host
computer such as indicated at 6-14, FIGS. 6 and 7. Referring to Section
3.1.1, data for a given terminal unit such as 7-12B may be supplied by
task means 7-11 to a corresponding terminal queue such as the queue
indicated at 7-20B, and will thereafter be transmitted in its turn e.g. on
a first-in, first-out basis.
In Section 3.1.3, the version inquiry may be used to identify the
particular version number of programming in a selected terminal where
different terminals may have different versions of the basic RTC
programming.
In Section 3.1.7, the RTC MUX may be implemented by programming of the
processor of network controller means 6-10. Such processor may be a type
80186 microprocessor in this particular embodiment. In this way a separate
multiplexer unit (such as the RM 1211 multiplexer of FIG. 1) is not
required. The function of a multiplexer is represented at 7-21 in FIG. 7.
As indicated in Section 3.1.8, the slot configuration as represented at
41-44 in FIG. 5 may be changed during system operation, e.g. by changing
the specification as to the numbers of slots which may be randomly
selected by the secondary terminal units. The number of slots of a given
duration may be specified as part of each multiterminal message such as
40, FIG. 5, but an initial slot or an initial set of slots may be made
unavailable by selecting as the initial slot value a slot position such as
42 (initial slot value equals e.g. two) or such as 43 (initial slot value
equals three). The effect is to introduce added delay between the
multiterminal poll e.g. at 40 and the first time slot which may be
selected by a responding terminal or responding terminals. The system may
automatically and dynamically select the number of available slots e.g. as
registered at slot size means 7-25, beginning with the initial slot value
e.g. as registered at initial slot value means 7-28. Such number of
available slots may be automatically adjusted, e.g. for each multiterminal
poll, within the limits specified by the minimum and maximum slot values
registered at 7-26 and 7-27.
Referring to Section 3.2 of APPENDIX A, the RTC task means 7-11, places
messages as enumerated in the Section in queue 7-15 for supply via host
means 7-10 e.g. to host computer 6-14. The host means 7-10 may be viewed
as including a router means indicated at 7-30 for determining the
disposition to be made of messages received from the queue 7-15. For
example, referring to Section 3.2 1, the host means 7-10 may decide if
terminal data received from queue 7-15 should be sent to the host or not.
Section 4.0 of APPENDIX A uses the terminology RTC Primary State Machine
and Section 5.0 refers to a RTC Secondary State Machine. These sections
discuss the programming and data structures employed in primary task means
or primary processor means 7-11, and in secondary task means or secondary
processor means 7-12A, 7-12B, . . . ,7-12X, . . . , 7-12N (and
collectively designated 7-12), respectively.
The primary finite state machine of primary processor means 7-11 includes
an UP send routine which is represented at 7-31 (SEND UP), and individual
unit finite state machines collectively designated by reference numeral
7-41, and individually indicated at 41A, 41B, . . . , 41X, . . . , 41N.
The routine represented as SEND UP means 7-31 is designated in the
programming of the primary finite state machine with the notation
rtc.sub.13 send.sub.-- up and functions to send an UP command via link
means 7-22 to the respective secondary finite state machines or secondary
units 7-12A, 7-12B, . . . , 7-12X, . . . , 7-12N. In response thereto, the
secondary units may randomly select time slots according to respective
slot parameters from slot parameter tables as indicated e.g. at 7-32A and
7-33A for secondary unit 7-12A.
For example, if the initial slot value is three, and slot size is twenty, a
maximum of twenty units may succeed in sending response bursts in time
slots such as 43,44, FIG. 5, which are correctly received by the primary
processor means 7-11. A list of the addresses or identification means
(such as 7-1201, 7-1202, . . . , 7-12FF) of the secondary units which
transmit valid responses are then entered in an UP QUEUE means 7-50
(designated UP.sub.-- queue in Section 4.0). The primary processor means
under the control of the send.sub.-- UP routine given by way of example in
Section 4.0 may first send its slot size parameter at 7-25 to all
secondary units, e.g. as part of a poll message. The secondary units then
may select response time slots according to this transmitted slot size as
stored at 7-33A, etc., and initial slot values as already stored at 7-32A,
etc. The primary processor means 7-11 may count the number of secondary
units represented in the UP QUEUE means 7-50 (termed up.sub.-- q.sub.--
count in Section 4.0), and if this number is greater than zero, a new slot
size value may be entered into slot size means 7-25, equal to the value
stored at minimum slot value means 7-27, e.g. ten.
For the illustrated embodiment, the link 7-22 can be simultaneously
accessed by more than one secondary unit, the result being a garbled
message burst at the receiver of 7-21. Such garbled messages will be
recognized as invalid (using any suitable validity check such as the
CRC-16 check value of Section 6.1), and will be counted as a collision by
collision sense means of 7-21. As represented in Section 4.0, the
send.sub.-- UP routine may respond to the presence of collisions in a
selected number of available time slots to increase the slot value at slot
size means 7-25 by an increment (slot.sub.-- inc, Section 4.0) which may
be selected at start up of the system. As indicated in Section 4.0, if the
new value of slot size is greater than the maximum value at 7-27
(max.sub.-- slot.sub.-- size, Section 4.0) then the contents of known
queue means 7-51 is transferred to UP queue means 7-50.
Referring to Section 6.2.1, the primary processor means 7-11 may send a
multiterminal polling message such as the following to all secondary
terminal units: <FF(H)><FF(H)><8A(H)>. This is termed in Section 6.2.1 an
UNNUMBERED POLL, and may also be referred to as a multiterminal poll to
distinguish it from a poll directed to a specific secondary terminal (as
at 51, FIG. 5). The first segment of the multiterminal polling message is
the broadcast address (Section 6.2.1) or multiterminal address. The second
segment is the RTC command byte (Section 6.2.1) which may represent the UP
command (see Section 6.2). The third segment of the multiterminal polling
message may represent the number of response time slots available for the
response, e.g. ten such slots of forty milliseconds each.
The multiterminal polling message may include a fourth segment giving the
addresses of terminals for which messages are pending e.g. at TXQ means
such as 7-20B of primary processor means 7-11.
If a secondary terminal which receives the multiterminal message notes its
address in the fourth segment, or itself has a message to send, such
secondary terminal will randomly select which of the specified time slots
to answer in. The secondary terminal will respond with the basic RTC frame
(Section 6.1) inserting its address, e.g. 02(H) for terminal 7-12B, in the
address field, and the UP command FF(H) in the command field. Such a
response burst is of duration less than that of a time slot.
The timeout means 7-52 may control various timeout functions such as the
waiting time of the primary processing means 7-11 after transmission of a
multiterminal polling message in the absence of response bursts from the
secondary terminals or before sending poll messages directed to specific
terminals. The TIMEOUT interval may be based on the values in initial slot
value means 7-28 and the slot size value in means 7-25 (which will reflect
any new slot size specified in the multiterminal polling message). For
example, where the initial value is three and the slot size is ten,
timeout means 7-52 may effect a corresponding timing cycle (e.g. 520
milliseconds) before sending further messages.
Where a terminal such as 7-12B has successfully responded to a
multiterminal poll, the primary processing means (before the timeout means
7-52 has provided a timeout interrupt), may be advised that the temporary
buffer means 7-54 has received a valid response, termed "receive" in the
polling procedure of Section 4.0. Thereupon the primary processor means
may establish the event "process buffer" (event=process buffer, Section
4.0) whereupon the UP queue means 7-50 will be advised that terminal 7-12B
is active, and the individual unit means 7-41B will be updated to show
that terminal 7-12B is ready to be polled for its message.
If another secondary terminal 7-12X (e.g. with address 112, or 70
Hexadecimal) has a message at its TRFCB means 7-57X, and enters its
address at another time slot in response to the multiterminal polling
message, then the primary processor means will process this response also
and revise the corresponding individual unit means 7-41X for this address.
When the timeout means 7-52 shows the expiration of the unnumbered or
multiterminal polling cycle time, the primary processing means may utilize
the POLLx frame (Section 6.2.2) to poll specific secondary units such as
7-12X for data. Where there is data as at 7-20B to send, the primary
processor means may proceed to send the data using the DATA FRAME of
Section 6.2.3.
Where data is to be received from a terminal such as 7-12X, the terminal
responds to the POLLx command (with the NO DATA bit not set, Section
6.2.3) by sending a data frame based on data stored at 7-57X. The primary
processor means acknowledges receipt with a suitable POLLx frame (Section
6.2.2, item 2), and will store the data at RXQ means 7-58X of individual
unit means 7-41X.
SUMMARY OF EXEMPLARY FEATURES
In accordance with an aspect of the present invention, the primary
processor means may have a list of known secondary units (e.g. at 7-60)
and a list of currently active secondary units (e.g. at 7-50). A count of
currently active secondary units (e.g. at 7-61) may be m | | |