|
Description  |
|
|
This invention relates to coded records and methods of and apparatus for
encoding and decoding these records, and, more particularly, to
improvements in such records, methods, and apparatus using width modulated
code areas.
The need for acquiring data at, for example, a point of sale is well
recognized, and many attempts have been made in the past to provide
records, tags, or labels and reading and interpreting systems that are
capable of being used in retail stores at the point of sale and for
inventory. In this application, the records must be easily and
economically made and must be such that, for example, handling by
customers does not deface the coding or render the code incapable of
accurate reading. The record should be such that it can be read either by
a portable manually manipulated reader or a stationary machine reader of
low cost, and the code used should be easily checked for errors with low
error probability. Further, when the record or label is to be read by a
manual reader, it should be such that the record interpretation is as
independent of speed of reading as is possible.
Prior approaches to this problem have used sequential areas or bars of
different light reflecting characteristics in which bit value is
determined by color. These records are expensive to produce and require
somewhat more elaborate reading systems than desirable. Other techniques
provide codes in bar or stylized character form with magnetic or light
reflecting recordings in which absolute values in a dimension such as
width are assigned to the different binary weights or values. These codes
can be read serially or in parallel. The parallel codes require plural
transducers which cannot be easily accommodated in a portable reader, and
the magnetic recordings are also not easily read with manual or portable
readers. The sequential bars of varying widths are easily read using a
single transducer in a portable unit but generally use level detection
equipment or individual width timers in the interpreting system which are
not easily compensated for variations in the manually controlled speed of
relative movement between the reader and the record. These bar codes are
easily printed on paper or card stock by inexpensive equipment, and a
sytem shown in a copending application Ser. No. 199,231, filed Nov. 16,
1971 compares widths of pairs of bars or pairs of spaces to reduce errors
arising from printing ink changes.
Accordingly, one object of the present invention is to provide a new and
improved method of and apparatus for interpreting a coded record.
Another object is to provide a coded record and code capable of
interpretation with a low rate of undetected error.
Another object is to provide a new and improved method of interpreting a
coded record in which the size of each code area is assigned a binary
value and in which each given area is decoded by comparing its size with
two reference values based on multiplying and dividing another code area
size by a constant.
Another object is to provide a method of and apparatus for interpreting or
translating records binary coded in areas of different widths by comparing
the widths of individual areas with two reference values established
during translating by multiplying and dividing different area widths by a
constant. Decoding is accomplished by establishing a greater than, less
than, or equality relation between each set of reference values and
different code area size values.
A further object is to provide an apparatus for reading records wherein
each character is encoded by a combination of areas in two ranges of wide
and narrow widths and which includes registers for storing scanned width
values, a pair of registers in which are sequentially stored the product
and quotient of a constant and the width of each area, and a means for
decoding code values by determining the relation between each stored width
and the two reference values based on another area.
Another object is to provide a method of and system for decoding area size
coded records in which a determination that a code area is greater or less
than a reference value results in immediate code value establishment while
an equality determination defers code value establishment and makes it
dependent on a subsequent or prior greater or less than determination.
A further object is to provide a width modulated bar and space coded record
and parity check means for separately checking bar and space parity.
In accordance with these and many other objects, an embodiment of the
present invention comprises a record, tag, or label made, for example, of
a member having a light reflective surface on which are recorded a
plurality of nonreflecting bars. The widths of the nonreflecting bars and
the reflecting spaces disposed between and defined by the nonreflecting
bars are modulated in width so that a binary "1" is represented by one
width, i.e., a value in a range of wide widths, and a binary "0" is
represented by another different width, i.e., a value in a range of narrow
widths. In one embodiment, each character is represented by a seven bit
binary code formed by four black or nonreflective bars and the three white
bars or spaces separating the four black bars. Five bits define the
character, and the remaining two bits are separate parity bits for space
and bar encoded data. A low error code of this type uses only one space
encoded "1" and one bar encoded "1".
These records can be easily produced using nothing more than conventional
paper or card stock and simple coding elements either individual or in
sequence for applying ink or other nonreflective material to the record.
The record making apparatus can be such as to sequentially or concurrently
record a plural character message, each character comprising a plurality
of bits. The message can be preceded and followed by start or control
codes coded in the same manner as the characters of the message.
This record is interpreted by a manually held light pen or reader
including, for example, a light source for directing light onto the record
and a light responsive element providing a varying output in dependence on
the quantity of reflected light received from the record, although this
reading assembly could as well be incorporated into a stationary record
reading mechanism. The record is read by producing relative movement
between the reader and the record requiring only that the reader pass
across the entire coded message along a line intersecting all of the bars
and spaces. The analog signal developed by the photoresponsive unit in the
reader is digitized and used to sequentially gate clock signals into a
series of counting registers to sequentially store the values of the sizes
of different bars and spaces. Through the use of clock signal dividers
gated by the digitized signal, the products and quotients of a constant
and each of the bar and space widths are stored in sequence in a pair of
reference value registers. The reference values stored for any given bar
(space) are compared with the value of the size of a preceding bar (space)
to determine whether the preceding bar (space) is greater than, less than,
or approximately equal to the given bar (space).
The results of the comparison control logic circuits to store binary "0"s
and "1"s in a storage unit when a greater than or less than relation or
status is found. A determination of a condition of equality for an area
defers the establishment of a binary value and makes it dependent on a
prior or a subsequent greater than or less than relation. In one
embodiment, the storage means is a plural stage shift register having an
input stage and intermediate stages in which immediately and delayed
determined bits are entered. In another embodiment, a pair of shift
registers store the comparison results, which shift registers control a
read-only-memory (ROM) that decodes the comparison results into a
character.
To increase the probability that only correctly decoded characters are
provided, the system includes a parity checking circuit that independently
checks for parity the decoded space and bar binary bits. In the seven bit
character codes used in the present system and with the permissable
character codes selected to include only those containing two binary "1"
bits (a 2-7 character code), the probability of error can be reduced to
0.00001%. Comparable results can be obtained using a seven bit code with
three binary "1"s (a 3-7 character code).
By using as reference values for comparison with the stored bit widths
values based on arithmetic operations on a code area measured during the
reading of the stored widths, variations in reading speed, for instance,
cause like and proportionate changes in the reference values and the code
area widths, and velocity errors are reduced or eliminated.
Many other objects and advantages of the present invention will become
apparent from considering the following detailed description in
conjunction with the drawings in which:
FIG. 1 illustrates a record in conjunction with a reader and interpreting
circuit which embodies the present invention and which is shown in
simplified block diagram form;
FIG. 2 is a schematic illustration of one three bar character code in a set
of codes capable of interpretation according to the present invention
shown in conjunction with certain signal waveforms used in decoding the
character code;
FIG. 3 illustrates one 2-7 character code of a set using four bars which
can be translated using the system shown in FIG. 1, the code being
illustrated in conjunction with a digitized scanning signal, decoding
control signals, and a shift register used in decoding;
FIG. 4 is a circuit diagram in logic form illustrating certain control
components of the system of FIG. 1;
FIG. 5 is another logic circuit diagram illustrating code area size
registers, reference value registers, and comparators forming a part of
the system shown in FIG. 1;
FIG. 6 is a logic circuit diagram illustrating certain control and decoding
logic components of the system of FIG. 1;
FIG. 7 illustrates in block diagram form another form of decoding circuit
useful with the system of FIG. 1; and
FIGS. 8 and 9 illustrate certain timing and control signals used in the
record reading circuit of the present invention.
Referring now more specifically to FIG. 1 of the drawings, therein is
illustrated a system indicated generally as 10 for interpreting a bar
coded record 12. In the coding used on the record 12, the widths of the
bars and spaces vary in accordance with the bit value to be encoded so
that when relative movement is produced between the record 12 and an
optical reader 14, the apparent width varies in dependence on the speed of
relative movement. In accordance with the present invention, the system 10
includes means for establishing reference values during the actual
scanning of the record 12 by the reader 14 against which the widths of the
bars and spaces can be compared so that the true binary significance of
the encoded data can be accurately determined substantially independent of
reading speed and without requiring additional indicia over and above the
usual bar code on the record 12. Codes used in the present invention are
such that undetectable errors are almost impossible.
The code used in preparing the record 12 can be one of a general type known
in the art, and FIG. 2 of the drawings illustrates one character code
"00111" that can be used in carrying out the present invention. The
illustrated code is a five bit code whose bits are defined by three bars
or areas 16A, 16B, and 16C of one characteristic and two intervening bars
or spaces 18A and 18B of a different characteristic. In a preferred
embodiment, the bars 16A-16C are formed by printing a substantially
nonreflective material, such as black ink, on the reflective surface of
the record 12 so that the areas, bars, or spaces 18A and 18B comprise the
light reflective surface of the record. The different characteristics of
the bars 16A-16C and 18A and 18B could also be defined by the use of
different materials, such as the presence or absence of magnetic material
or materials of sufficiently different light reflecting characteristics.
The encoding technique used in the code illustrated in FIG. 2 is to assign
a wide width to the bars or areas 16, 18 to represent a binary "1" and to
assign a narrow width to the bar or area 16, 18 to represent a binary "0".
The relative sizes of the wide and narrow width should be optimized to
insure adequate differentiation on interpretation, and in general this is
accomplished by maximizing the difference between the wide and narrow
widths within the constraints that the narrow bar must be large enough to
insure a proper width value entry on interpretation, and the wide width
must not be so large as to provide an overflow condition on entering a
width value. The wide and narrow widths can extend over a range of values
limited by the factor noted above, printing tolerances, and factors noted
below. Another factor to be considered is that an increase in the
differentiation between widths generally results in an accompanying loss
of bit density or packing on the record, while a reduction in width
difference can be used to increase bit density. In one embodiment of the
present invention, the narrow width representing a binary "0" was selected
to be in the range of six to fifteen mils, nominal, while the wide width
was set to fall within the range of seventeen to thirty-four mils,
nominal.
A further factor to be considered with regard to the selection of widths
for the bars is the printing tolerances which must be maintained to insure
accurate record interpretation. Using the values set forth above, accurate
differentiation with single bit parity error detection can be obtained
with width tolerances of minus two to plus five mils. A change in bar size
of from minus fourteen to plus fourteen mils can result in an undetected
error using a single bit parity check.
To illustrate one possible width coding technique using true binary, one
code in a code set assigned, for example, to the numerical character three
with an odd parity check on binary "1"s (FIG. 2) is "00111". Considered
from left to right, these binary bits represent the binary weights "8",
"4", "2", "1", and parity, respectively. The binary values "1" in the
third and fourth bit positions are denoted by the wide widths assigned to
the bar 16B and the space 18B. The binary values "0" in the first and
second bit positions are represented by the narrow widths assigned to the
black bar 16A and the white bar 18A. The bar 16C is assigned a wide width
to provide a parity bit for the odd parity check. Other codes in this set
including the remaining character codes and possible control codes are
shown in the following table together with the bar and space width
assignments expressed in mils.
______________________________________
Character 16A 18A 16B 18B 16C
______________________________________
00001 11.4 14.0 11.4 14.0 29.2
00010 12.2 15.3 12.2 34.5 6
00100 11.4 14.0 29.2 14.0 11.4
00111 6 11.2 24.5 22.1 16.8
01000 6 34.5 12.2 15.3 12.2
01011 6 25.5 6 25.5 17.9
01101 6 22.8 20.6 9 20.6
01110 6 25.5 17.9 25.5 6
10000 29.2 14.0 11.4 14.0 11.4
10011 23.9 10.9 6 22.7 16.5
10101 20.6 9 20.6 9 20.6
10110 20.6 9 20.6 22.8 6
11001 16.5 22.7 6 10.9 23.9
11010 17.9 25.5 6 25.5 6
11100 16.8 22.1 24.5 11.2 6
______________________________________
When these codes are read in forward or reverse direction, the binary
significance of the bars and spaces is unchanged, but the order of
presentation of the character code is reversed. Certain additional codes
used for start or stop codes can be provided which are distinct when read
in forward or reverse direction. This permits reverse read codes to be
changed in order to correct codes. Such an arrangement of start and stop
codes is shown and described in a copending application Ser. No. 157,870,
filed June 29, 1971, and assigned to the same assignee as the present
application.
FIG. 2 of the drawings also illustrates, in addition to the fragmentary
showing of one three bar character code, a digitized representative
waveform resulting from the reading of this code by the reader 14 in which
a high level signal represents a black bar 16 and a low level signal
represents a white bar or space 18. In this digitized signal, the widths
of the bars 16, 18 are represented by the time intervals t.sub.1 -
t.sub.5. In accordance with the present invention, the binary significance
or value to be attributed to the various widths signified by the times
t.sub.1 - t.sub.5 is established in dependence on the relationship between
the width of a given area or bar and the quotient and product of a
constant K and another area or bar, either adjacent or spaced therefrom
where the constant K is a number greater than one.
To illustrate the novel method of decoding the record 12 wherein the
relationship of adjacent bars or areas is used, the algorithm for decoding
can be stated as follows:
(1) Relation A implies t.sub.n-1 <t.sub.n (1/K)
(2) relation B implies t.sub.n-1 >t.sub.n (K)
(3) relation C implies t.sub.n (K)>t.sub.n-1 >t.sub.n (1/K)
in statement (1) the establishment of relation A indicates that the binary
significance of the width t.sub.n-1 is a binary "0" because the width of
the area t.sub.n-1 is less than the quotient of the width of the following
area and the constant K. In statement (2) the establishment of relation B
implies that the binary significance to be attributed to the width
t.sub.n-1 is a binary "1" because the width t.sub.n-1 is greater than the
product of the constant and the width of the adjacent area t.sub.n. The
establishment of relation C in statement (3) implies that binary
significance cannot be attributed. This is true because the width of the
area or bar under examination t.sub.n-1 is less than the product of the
constant and the width t.sub.n of the adjacent area and greater than the
quotient of the constant K and the width t.sub.n of the adjacent area.
In a system for carrying out the method of decoding using the algorithm
embodied in statements (1)-(3) above, the system includes a register for
storing a value proportional to the time t.sub.1 representing the width of
the bar 16A as the record 12 is read. As the reader 14 then enters the
first white bar or space 18A, a value corresponding to the width of this
area t.sub.2 is stored, and a pair of reference registers are provided
with values representing the product and quotient of the constant K and
the width t.sub.2 of the bar 18A. When all of these values are in storage,
the system develops a first sampling strobe signal (#1) which enables
logic circuits such as comparators to compare the value t.sub.1 with a
product and quotient reference values based on the width t.sub.2. By
reference to the statements (1)-(3), it will be seen that only statement
(3) is satisfied because the value t.sub.1 is less than the value of the
product of t.sub.2 and K and greater than the value of the quotient of
t.sub.2 and K. This establishment of condition C implies that binary
significance cannot be attributed to the width t.sub.1 at this time. A
representation of the established condition or relation C is stored.
The system then discards the width t.sub.1 and stores both the width
t.sub.3 and the product and quotient of the constant K and the width
t.sub.3. When the next sampling strobe (#2) is developed by the system,
the value t.sub.2 is compared with the values based on the product and
quotient of the constant K and the width t.sub.3. By reference to
statements (1)-(3), condition A is established because the width t.sub.2
is less than the quotient of the constant K and the width t.sub.3. At this
time, two options exist with regard to the translation or interpretation
of the coded record. The logic circuit can be such as to assign binary
significance to all three of the areas 16A, 18A, and 16B at this time, or
the condition A can be stored until the completion of the scanning of the
characters shown in FIG. 2, at which time binary significance can be
assigned to each of the width modulated areas. Assuming that binary
significance is to be established upon establishing the condition A, the
establishment of this condition states that the width t.sub.2 is less than
the width t.sub.3 so that the width t.sub.2 is probably a binary "0" and
the width t.sub.3 is probably a binary "1". In view of the previously
established condition C arising from the first comparison and since the
width t.sub.2 is a binary "0," the width t.sub.1 is also probably a binary
"0."
The system then establishes the product and quotient reference values for
the width t.sub.4 which are compared with the stored width t.sub.3 on the
third sampling pulse (#3) resulting in the establishment of condition C.
Using sequential decoding, the establishment of condition C does not
establish binary significance and requires reference back to the next
adjacent determinative condition, i.e., a relation A or B. Since the
closest adjacent established condition is relation A, the relation C
established on the third sampling strobe signal indicates that a binary
"1" is to be assigned to width t.sub.4. On the next or fourth sampling
strobe signal (#4), the product and quotient reference values based on the
width t.sub.5 are compared with the stored width t.sub.4 to again result
in the establishment of relation or condition C. In the sequential
decoding arrangement, the establishment of this equality condition or
relation C again requires reference back to the most recently established
determinative condition, i.e., the relation A established on the second
sampling strobe, with the result that a binary "1" significance is
attributed to the width t.sub.5. In this connection, it is noted that the
width t.sub.5 is never actually measured by the system and that the binary
significance to be attributed to the bar 16C is established on the basis
of the relation between the product and quotient reference values based on
the width t.sub.5 and the measured width of the preceding area t.sub.4.
In the alternative method of interpreting a character code such as the
illustrative code shown in FIG. 2, storage means are provided for storing
representations of the sequentially established relation, i.e., CACC, and
a translating means such as a read-only-memory (ROM) translates the
pattern of sequentially established relation into binary code
corresponding to the width modulated bars.
To facilitate an understanding of and the application of the interpreting
method of the present invention based on prior statements (1)-(3), there
is set forth below a set of correlative statements defining the binary
implications of various sequences of the three relations defined in
statements (1)-(3):
(4) A followed by C implies 011.
(5) C followed by A implies 001.
(6) B followed by C implies 100.
(7) C followed by B implies 110.
(8) A followed by B implies 010.
(9) B followed by A implies 101.
(10) C followed by C followed by A implies 0001.
(11) C followed by C followed by B implies 1110.
(12) A followed by C followed by C implies 0111.
(13) B followed by C followed by C implies 1000.
By reference to the statements above and FIG. 2 of the drawings, statement
(5) defines the first three bits "001" formed by the bars 16A, 18A, and
16B of the representative code. Considered alternatively, the bits defined
by the bars 18A, 16B, and 18B are established by statement (4). Considered
from another viewpoint, the last four bits represented by bars 18A, 16B,
18B, and 16C, respectively, are defined by statement (12). By reference to
statements (4)-(13), the relations established during the reading of a
character can be examined in sequence or concurrently to determine the
binary significance to be attributed to the various areas or bars of a
character code set.
Under certain conditions involving printing tolerances and selection of
extreme limiting values for widths, either broad or narrow, in the
establishment of the character code set, it is possible that two other
sequences of the relations A and B may be established which are set forth
below in statements (14) and (15):
(14) A followed by A implies 001.
(15) B followed by B implies 100.
As an example, using the character code set in which, for example, a first
"0" representing bar has a nominal printing width of six mils, a following
first space has a nominal width of eleven mils also representing a binary
"0", and the second bar representing a binary "1" has a nominal width of
twenty-four mils, all in the ranges set forth above, it is possible that
the comparator logic would interpret the successive widths of six mils,
eleven mils, and twenty-four mils as a pair of successive A relations,
rather than a C relation followed by an A relation. This condition is
covered by statement (14) which implies that the binary significance is
"001", the same as if the code had been interpreted as in statement (5)
above. An opposite condition with respect to the relative widths of the
successive areas would result in the sequential establishment of condition
B's which would be interpreted as "100" by statement (15) and would reach
the same result as if interpreted in accordance with statement (6) above.
The decoding technique set forth above can be used with codes using a
greater or lesser number of bars with the consequent change in the number
of intervening white bars or spaces, and can also be used in interpreting
codes in which the spaces are without significance and intelligence is
width modulated in only the printed bars, and vice versa. By width
modulating only printed bars and having bars either narrow or wide printed
on uniform centers, the code is adaptable for use with high speed serial
printers of the type used as computer output units. As an example, a BCD
character with a parity bit can be encoded in five bars, and an error that
cannot be detected by usual parity checking circuitry requires the
inversion of both a narrow bar and a wide bar with a consequent reversal
in binary significance of the encoded bit. As an example, using nine mil
centers between bars and assigning narrow bars a nominal width of six mils
and large bars a nominal width of twelve mils, each of the fifteen
character odd parity character set can be recorded in an eighty mil
character width or ten characters per inch. This type of code font can be
recorded with a Model 104 printing unit manufactured by Monarch Marking
Systems, Inc. of Dayton, Ohio.
Based on experience with three bar systems and conventional parity checking
techniques, past operating experience has demonstrated that a one percent
error rate can be anticipated.
As noted above, the primary source of undetected errors results from an
inversion in the binary significance to be attributed to a width modulated
area. In a record in which black or nonreflective bars are printed on
reflective record material with either or both of the black and white bars
being modulated in width, the inversion in binary significance of a bar or
area arises from printing smears which extend a black bar or width with a
corresponding reduction in the adjacent white bar width or from printing
voids in which the apparent width of the black bar is reduced with a
corresponding increase in the width of the adjacent white bar. Printing
smears normally result from heavy or intense application of ink to the
record, whereas voids result from a light application of ink. In
accordance with the present invention, there is provided an encoded
record, a method of encoding the record, and a method of error checking
the record decoding by which the experienced error rate of around one
percent is reduced to an error rate approaching 0.00001 percent.
More specifically, one character code from a character set embodying the
invention is illustrated in FIG. 3 of the drawings and is defined by four
black bars B1-B4 and three intervening white spaces S1-S3. The character
is defined by width modulating the first five bits formed by the bars
B1-B3 and the spaces S1 and S2. The space S3 provides a parity check bit
for the bits defined by the spaces S1 and S2, and the bar B4 provides a
parity check bit for the black bars B1-B3. The bars B1-B3 and the spaces
S1-S2 can be checked for either odd or even parity, but in the illustrated
code are checked for odd parity. In addition, the entire seven bit code is
checked for the presence of only a single space S1-S3 providing a binary
"1" and a single bar B1-B4 defining a binary "1". With such a code the
only possible character inversion resulting in an undetected error
requires two print faults, and these print faults must be a large void in
a bar and a large smear on a bar. Since these faults normally arise from
contradictory printing error conditions, i.e., light printing and dark
printing, the error probabilities reach the low level referred to above.
This character set is referred to as a 2-7 code set. It has also been
determined that the expected improvement in error rate can be achieved
using two 3-7 code sets in which bars and spaces are separately checked
for parity, and a correct code includes three binary "1"s, either two "1"s
defined by bars in one set or two "1"s defined by spaces in the other set,
with the remaining binary "1" being defined by a space or a bar,
respectively.
There is listed below a table setting forth a 2-7 code set adapted for use
in accordance with the present invention and illustrating typical width
assignments for the various bars B1-B4 and spaces S1-S3. This 2-7
character set includes twelve discrete character codes, and in the
following table the widths are expressed in mils:
______________________________________
Characters B1 S1 B2 S2 B3 S3 B4
______________________________________
0000011 7 9 7 9 7 23 17.9
0000110 7 9 7 9 17.9 23 7
0001001 7 9 7 23 7 9 17.9
0001100 7 9 7 23 17.9 9 7
0010010 7 9 17.9 9 7 23 7
0011000 7 9 17.9 23 7 9 7
0100001 7 23 7 9 7 9 17.9
0100100 7 23 7 9 17.9 9 7
0110000 7 23 17.9 9 7 9 7
1001000 17.9 9 7 23 7 9 7
1100000 17.9 23 7 9 7 9 7
1000010 17.9 9 7 9 7 23 7
______________________________________
This character set is designed for recording, for example, by using the
Model 104 printer provided by Monarch Marking Systems, Inc. of Dayton,
Ohio. With the nominal widths shown in the table above, ten character
codes per inch can be recorded on the record 12.
Another possible source of error in interpreting printed codes wherein both
the bars and spaces are modulated arises from more or less uniform
increases or decreases in the apparent widths of the bars and an opposite
effect on the intervening spaces due to light and heavy printing. Errors
in interpretation of a coded record arising from this effect can be
obviated by separating comparing bars with bars and spaces with spaces
because of the correlated changes in areas of like characteristics. Such a
system is shown and described in a copending application Ser. No. 199,231,
filed Nov. 16, 1971, and assigned to the same assignee as the present
invention.
FIG. 3 of the drawings illustrates in addition to a representative
character code from the character set shown in the table above certain
waveforms and circuits for interpreting the character code using the
technique or algorithm and statements set forth above in conjunction with
the description of the code shown in FIG. 2 of the drawings. The method
illustrated in FIG. 3 is designed to compare pairs of bars B1-B4 and to
compare pairs of spaces S1-S3. Accordingly, statements (1)-(3) must be
restated as statements (16)-(18) below:
(16) Relation A implies t.sub.n-2 <t.sub.n (1/K).
(17) relation B implies t.sub.n-2 >t.sub.n (K).
(18) relation C implies t.sub.n (K)>t.sub.n-2 >t.sub.n (1/K).
A comparison of statements (1)-(3) with statements (16)-(18) indicates
their identity except that conditions A, B, and C arise in dependence on
the relationship between a given area and not the adjacent area, but an
area spaced by two in the sequence. Thus, bars are compared with bars and
spaces are compared with spaces.
In FIG. 3 of the drawings, there is illustrated a shift register indicated
generally as 20 formed of seven stages Q1-Q7 for serially interpreting a
2-7 character set of the present invention. The shift pulse inputs are
connected in common to an advance or shift pulse line 22 which receives an
advance or shift signal on each bar-space or space-bar transition, as
illustrated in FIG. 3. The inputs to the stages Q1-Q7 are connected in
series with the input to the input stage Q1 being strapped to ground or a
reference potential to enter a binary "0" into the stage Q1 on each
advance signal. Priming or preset inputs are provided for the stages Q1,
Q3, and Q5 as shown in FIG. 3. The application of a more positive signal
to one of these preset inputs enters a binary "1" into the stage.
The logic equationsfor decoding a character code in the 2-7 character set
using the relations A, B, and C determined in accordance with statements
(16)-(18) are set forth below in statements (19)-(21). Since a binary "0"
is continuously entered into the input stage Q1 of the shift register 20
on each advance signal, the logic equations (19)-(21) set forth the
condition for presetting "1"s into the stages Q1, Q3, and Q5 in dependence
on the relation A, B, or C established in accordance with statements
(16)-(18) and the data standing in the shift register 20 at any given
time. In the following equations, SS represents any sampling strobe, and
#3, #4, and #5 represent the third, fourth, and fifth sampling strobes:
(19) Preset Q1 = (SS) .multidot. A + (SS) .multidot. C .multidot. Q3.
(20) preset Q3 = (SS) .multidot. B.
(21) preset Q5 = (#3 + #4 + #5) .multidot. B .multidot. Q3 .multidot. Q4.
The necessary logic implementation required for dynamic decoding in the
shift register 20 as expressed in statements (19)-(21) is relatively
simple and arises from the fact that the 2-7 code set includes no more
than two binary "1"s in the seven bits and that these binary "1"s can only
occupy a small finite number of different positions within the seven bit
code.
In general, the first term of statement (19) supplies a binary "1" to the
input stage Q1 whenever relation A is established. Relation A states that
the bit whose width is being compared is smaller than the last bit
scanned, and by implication states that the last bit scanned is larger and
thus represents a binary "1". Since the shift register 20 is always three
steps in advance of the first comparison or sampling strobe due to the
three advance signals preceding the first sample strobe (see FIG. 3), the
stage Q1 is the proper stage in which to preset the binary "1". With
respect to the second term in statement (19), if stage Q3 is set
indicating a binary "1" and a condition C arises implying equality, Q1
must also be "1", and Q1 is preset to a binary "1" setting.
With regard to the presetting of Q3 under the conditions expressed in
statement (20), the establishment of relationship B indicates that the
stored width being compared, i.e., t.sub.n-2, is greater in width than the
like area just scanned, i.e., t.sub.n. Since, again, the setting of the
shift register 20 is three steps ahead of the current comparison, the
established binary "1" for the area t.sub.n-2 should be primed into stage
Q3, the shift register stage in the sequence in which this code bit
belongs.
Statement (21) takes care of a special condition in one of the character
codes in the set shown above in which the binary "1"s appear in the first
two spaces. This will initially result in the establishment of a condition
of equality on the first sample. Accordingly, the decision on the value to
be entered must be delayed. As set forth in statement (21), when the
greater than relationship B is established and binary "1"s are not stored
in stages Q3 and Q4, Q5 can be preset to a "1" condition during the third,
fourth, and fifth sampling strobes.
The sequence of decoding the character shown in FIG. 3 is illustrated in
the following table with "X" denoting bits of unknown or arbitrary value:
______________________________________
Q1 Q2 Q3 Q4 Q5 Q6 Q7
______________________________________
Advance #1 0 X X X X X X
No Strobe
Advance #2 0 0 X X X X X
No Strobe
Advance #3 0 0 0 X X X X
Sample #1 - C
0 0 0 X X X X
Advance #4 0 0 0 0 X X X
Sample #2 - A
1 0 0 0 X X X
Advance #5 0 1 0 | | |