MACHINE READABLE CODE

Abstract: A machine readable code (10) in the form of a matrix array of dots arranged in rows and columns represents characters by respective columns of m dots. Each column contains a repeated n-bit pattern and is such that no block of n consecutive bit positions occurs in the column representing any other character, all the blocks of n consecutive bit positions within a given column being related by cyclic permutation. The code reader (16) Spans more than n bit positions but less than a full column.

Description: MACHINE READABLE CODE Technical Field This invention relates to machine readable codes of the kind including a plurality of areas, each area having a selected one of first and second charac¬ teristics to represent information, said areas being arranged in rows and columns extending in first and second directions to represent characters by respective patterns of said areas extending in said second di- rection. The invention also relates to record members provided with data encoded in a machine readable code of the kind specified. Background Art A machine readable code of the kind specified is known for example from the code employed with con¬ ventional punched tape wherein characters are repre¬ sented by holes punched in selected ones of a prede¬ termined number of tracks extending along the length of the tape. For example, it is common practice to utilize an 8-track code including seven data tracks plus a parity track. The tape is sensed by a stationary sensing device including a plurality of photodetectors as¬ sociated with respective tape tracks. The known code has the disadvantage of being unsuitable for sensing by a manually operable sensing device since misalignment between the tape tracks and the photodetectors will lead to errors in the recovered data. Disclosure of the Invention It is an object of the present invention to provide a machine readable code wherein the aforemen¬ tioned disadvantage is alleviated. Therefore, according to the present inven¬ tion, there is provided a machine readable code of the OMPI / ,_ VvIFO kind specified, characterized in that the patterns representing respective characters are repeated in the second direction whereby said code is adapted to be read with a field of reading which is smaller in said second direction than the extent of the columns in said second direction. According to another aspect of the present invention, there is provided a machine readable code of the kind specified characterized in that each of said sequences representing a given character is such that no block of n consecutive areas therein, where n is a predetermined number less than m, occurs in the se¬ quences representing any other character. According to a further aspect of the present invention, there is provided a record member carrying data encoded in a machine readable code according to either one of the preceding two paragraphs. A machine readable code according to the present invention has the advantage of being adapted to be printed by a conventional dot matrix printer such as a wire or needle matrix printer, a thermal printer or an ink jet printer. Another advantage is that the code is capable of providing an error detecting capability. Still another advantage is that the code provides a high density of encoded data in comparison with bar codes, such as the universal product (UPC) code, wherein ad¬ jacent bars which may be of different width are adapted for scanning along a path intersecting all the bars. Brief Description of the Drawings One embodiment of the present invention will now be described by way of example with reference to the accompanying drawings, in which;- Figs. 1A and IB represent a plan view of a matrix code with repeated patterns in a preferred em- bodiment of the present invention, together with a reader for reading the code; Figs. 2A and 2B represent a plan view of the matrix code shown in Figs. 1A and IB and depicting a particular application thereof, along with a reader for sensing the code; and Fig. 3 is the same view as Fig. 2A with the code shown in evenly spaced dot matrix manner. Best Mode for Carrying Out the Invention Prior to describing the several figures, it should be stated that in the preferred embodiment charac- ters are represented digitally by regularly and evenly spaced parallel columns of dots and binary information is conveyed by presence or absence of a dot at any specific location on the record medium or paper. The possible locations for dots will be spaced along the columns so that the minimum dot-to-dot distance in one column is the same as the distance between columns and the distance between rows of dots, although other column and row spacings may find useful application. Thus the possible locations for dots form a regular array, grid or matrix with the dot columns running vertically and the dot rows running horizontally. Detection of the dots is to be performed by an optical sensor or reader which has a similar, but possibly dimensionally different, grid structure, one axis of which is aligned with the code grid within a few degrees. As a special case, the grid structure of the optical sensor may be a single column of sense elements arrayed approximately in the vertical or Y direction. If the sensor is in a hand-held wand, the mechanical, electronic and digital systems must correct for or prevent errors arising from non-ideal orien¬ tation and motion of the wand. In such a wand or like hand-held reading device, accurate alignment is ex¬ tremely difficult or almost impossible to achieve and, generally, any one element of the sensor array scans a different part of each code pattern each and every time the device makes another sweep across the record medium. The system must be capable, within limits of course, of making sense of and identifying the data regardless of what part of the sensor array passes over any particular part of the character pattern. Additionally, dot matrix printers are not perfect in their certainty of laying down dots of required optical contrast and spurious "dots" may appear which are caused by dirt or by defects in the record medium or paper. The matrix code refers to the representation of one character by a single column of marks regularly spaced in a line, one class of mark representing binary one and a second class of mark representing binary zero. A black mark can represent binary one and a white mark or absence of black can represent binary zero, with the array of printed rows and columns of dots being a symbol and the overall invention being identified as a symbolic coding method. In an arrangement of vertical dot columns of code, angular tracking error or drift may be corrected by repeating the n bits of the code for one character once or several times in a single column having m bit positions (m > n). The vertical height of the sensor or reader in the plane of the paper will be such that at least one full n-bit code height is detected regardless of the position of the sensor along the column of m dots. Codes which can be converted into one another by cyclic permutation will be considered equivalent and will represent the same character or data. Cyclic permutation indicates or signifies that any bit may be the start bit when the code is arranged in an imaginary circle of exactly n bits around the circumference, such codes, which can be uniquely recognized without re¬ ference to a particular start bit, will be referred to as cyclic patterns or codes. Thus if the code is re- peated several times in a vertical column by joining start to end bits, the reader or sensor can select any n O bits from the vertical column of dots and uniquely identify the code. In this manner the sensor is nar¬ rower than the repeated vertical rows of dots and the code represents a redundant pattern. 5 Cyclic code patterns have inherent error de¬ tection capability of two types. First, since the machine will reject any code which is not a cyclic pattern and since the cyclic patterns are a small fraction of all possible patterns having the same number of bits, 10 errors consisting of unwanted marks on the medium or of missing dots have a low probability of changing a valid cyclic pattern into another acceptable pattern. Such errors will thua be detected and an alert can be given to the operator. Second, since the reader is larger in I ** -- 1 vertical extent than the length of one complete n-bit pattern, the machine can recognize more than one con¬ tiguous group of n dots and spaces to be decoded. All of these groups in any one column can be decoded during the reading period and must correspond to the same 2 * *- * character. If not, the machine will signal an error. Velocity error is corrected by including repeated rows of dots in a vertical direction in the printed symbol which are not recognized as code but as timing or fiduciary marks. As an example, a three-row 2 combination of all white, all black, and all white marks could easily be sensed by a sensor or wand. The rate of occurrence of such marks would be analyzed to give probe velocity and thus used to generate a data clock. Further, the inclination or skew of the probe 30 can be deduced from the sequence of times at which different sense elements of the probe pass over any one timing row. All of the data in the following codes would be corrected for the timing errors introduced by the slant or skew of the reader on the assumption that 5 the angle was changing slowly. As an example, if a code is represented by 11 dots on 0.38 mm. centers repeated four times in a vertical direction, the symbol is 16.7 mm. high and the sensor field needs to be approximately 5.1 mm. to see the 11 significant dots and have one or two guard dots on each end. The 11 cyclic dots can be arrayed in 188 unique ways and can represent a complete upper and lower case alpha font with numerics and symbols. It is possible to provide about 26 vertical columns of such dots per horizontal centimetre and if three columns of each set of 11 columns are used for timing marks, the symbol will represent about 19 charac¬ ters per horizontal centimetre. If the symbols are spaced on 2.54 cm. centers vertically and 17.8 cm. of the paper width is used, 178 cm. of symbol or 3360 characters per 21.6 cm. by 28 cm. page can be printed, which is about equal to the number of characters on a single spaced typewritten page of human readable print. In the preferred embodiment of the inven¬ tion, the reader or sensor field of view is less than the length of a repeated vertical column of dots. The column of dots may contain as many as 50 dots but any 11 dots in sequence can be decoded to represent the character in question regardless of which dot is taken as the first bit of the code. If, for example, the reader or sensor is wide enough to always detect 13 dots reliably, the logic can pick out a sequence of 11 dots and uniquely assign the proper character. In this manner, the operator of the sensor can drift from top to bottom or from bottom to top of the repeated symbol without making errors as the symbol is scanned from left to right or from right to left all within the capa¬ bilities of the system. There is an implication in all suggested code systems that allows for misalignment between sensor and code, which is that errors must not arise when the field of view of one sense element overlaps two pattern ele¬ ments. One solution is to use a fine "grained" sensor so that each pattern element will always encompass the full field of view of at least one sensor element. The system logic then decides which sensor elements are "pure" in that they convey the signal from only one pattern element, and which sensor elements are "mixed" and must either be corrected or ignored. It is believed that, when applied to the present invention, the center- to-center spacing of view fields of the sense elements must be less than or equal to one-half the minimum center-to-center spacing of printed dots. As mentioned previously, matrix printers selectively deposit dots on the record medium or paper at locations which specify a regularly spaced grid and the presence or absence of such dots at the spaced locations along one column of the grid represent the bits of an n-bit binary number or code. The binary data is repeated several times along each column and only those binary codes are used which can be uniquely recognized in any cyclic order without reference to most and least significant bits. The printed codes are read with the optical reader or sensor which has at least n optical elements arrayed in a line approxi¬ mately parallel (within the precision of hand align¬ ment) to the columns of the code. The sensor is moved in a direction approximately perpendicular to the code columns so as to detect the sequence of codes. Referring now to the several Figures of the drawing, Figs. 1A and IB illustrate a preferred em¬ bodiment of a dot matrix code 10 of the present inven¬ tion wherein such code comprises rows 12 of dots in the direction and columns 14 of dots in the Y direction. The particular code illustrated shows a combination of dots and spaces totaling nine and arranged in the Y direction to comprise a 9-bit code for each character. Reading or counting from the top of Fig. 1A and in the case of the letter "A", the code has eight vertical dots and a space, the letter "B" has seven vertical dots and two spaces and the letter "C" has four vertical dots, a / space, a single dot, a space and two dots. The code for letter "C" could equally well be considered to cover six dots, a space, a single dot and a space. The presence of dots or the absence of dots make up the matrix code for the respective letters and numerals. A 9-bit code g is usually taken to represent a maximum of 2 or 512 possible different characters. However, only 58 of these characters, excluding full and empty columns, are unique in cyclic form. it is readily seen from the dot matrix codes of Figs. 1A and IB that the 9-bit code for each letter or numeral is repeated once in the Y direction to form the redundant pattern. The spacing of the dots is arbitrary and is employed specifically for convenience in showing the dots separated from each other in the Y direction for ease of illustration and for permitting adequate space for showing the letters and numerals in the X direction. For example, the spacing or distance between dots, as represented by "a" and by "b" may be reduced to zero so that the adjacent dots are touching, as can be accomplished where the codes are printed by a dot matrix printer of any one of the several kinds as mentioned above. A common matrix printer may have almost any desired dot spacing in the X direction and with little modification any desired dot spacing in the Y direction. A reader 16 is shown at the left side of Fig. 1A for reading the dot matrix code, which reader, for example, may be a wand-type reader as manufactured by Caere Corporation, of Mountain View, California. The reader 16 has a field of view sufficiently wide to cover more than nine dots and/or spaces in the Y direction so as to always see a full 9-bit code, regardless of how the wand is positioned vertically within the code area. As long as the reader is moved along a path through the repeated dot matrix code, the character represented by the vertical column of dots and spaces is sensed or read OMP and retrieved for future use. The reader 16 can move in a slanted or skewed manner across the code pattern, as seen in Fig. IB, wherein it is well-known that a hand¬ held wand reader does not always travel along a precise line or plane when reading the code. In this respect, the logic of the control system is intended to correct for the skew of the reader. Figs. 2A and 2B illustrate a particular application of the redundant pattern code 40 in spel¬ ling out a "58-character alpha numeric dot code" to¬ gether with a reader 42. The single dot 48 is end of transmission and the column of dots 49 is a space or blank character of the symbol. Fig. 3 represents the identical code as Fig. 2A with the code shown in evenly spaced dot matrix manner. Fig. 2A illustrates the start of the symbol by use of a pair of fully-populated columns, a blank column, and another pair of fully-populated dot columns at the left side of the code for indicating start of code. The right side of the code, Fig. 2B, shows a single fully- populated dot column, a blank column and a pair of fully-populated columns for indicating finish of code. The repeated single dot 48 in Fig. 2B indicates the end of transmission and is printed prior to the symbol for end of code. The pattern of columns of dots for start and finish of the symbol may be v.aried to operate with the array of elements of the reader and also in timing sequence to allow for precise reading of the symbol. In the matter of error detection, it can be seen from Fig. 2A, for example, that the reader 42 is sufficiently wide to cover any combination of eleven dots and/or spaces to always see a full 9-bit code. In the case of the letter "C", the reader 42 is moved toward the right and detects a code pattern for such letter which includes a single dot, a space, six dots and a space, which includes a space, six dots, a space ■ ^ϋRE } and a single dot, and which includes six dots, a space, a single dot and a space. The several 9-bit groups are all detected and are complete patterns for the letter "C". If a different result is indicated for any one of these patterns, an error has occurred which may be caused by dirt, a missing dot, or an electronic failure of a sort. In any event, the operator would be alerted to sweep the wand across the code a second time. In this manner the error detection scheme works better whe the reader sees at least one full n-bit code and pre¬ ferably more than the minimum number of bits required t correctly identify a perfectly printed pattern. Variou methods exist which use the error detection method as a base to perform error correction. it is thus seen that herein shown and des¬ cribed is a high-density dot matrix code which has repeated patterns in one direction representing charac¬ ters to be read in a direction generally normal to the patterns. The code and the reading thereof enables the accomplishment of the objects and advantages mentioned above, and while a preferred embodiment of the inventio has been disclosed herein, other variations beyond thos herein mentioned may occur to those skilled in the art.

Claims: CLAIMS : 1. A machine readable code (10) including a plurality of areas, each area having a selected one of first and second characteristics to represent in¬ formation, said areas being arranged in rows and columns extending in first and second directions to represent characters by respective patterns of said areas ex¬ tending in said second direction, characterized in that the patterns representing respective characters are repeated in the second direction whereby said code is adapted to be read with a field of reading which is smaller in said second direction than the extent of the columns in said second direction. 2. A record member according to claim 1, characterized in that said first and second charac¬ teristics are formed by the respective presence and absence of a dot in said areas. 3. A machine readable code according to claim 2, characterized in that the start and finish of coded data are represented by respective start and finish symbols each containing at least one column (44) consisting entirely of dots and at least one empty column (46) . 4. A machine readable code according to claim 1, characterized in that said areas are equally spaced in parallel rows and columns. 5. A machine readable code (10) including a plurality of areas, each area having a selected one of first and second characteristics to represent in¬ formation, said areas being arranged in rows and columns extending in first and second directions to represent characters by sequences of m areas extending in said ^TSREJT GMPI ( 5 . ( concluded ) second direction, characterized in that each of said sequences representing a given character is such that no block of n consecutive areas therein, where n is a predetermined number less than m, occurs in the se¬ quences representing any other character. 6. A machine readable code according to claim 5, characterized in that all of said blocks of n consecutive areas within any of said sequences repre¬ senting a given character are related by cyclic per¬ mutation. 7. A machine readable code according to claim 6, characterized in that the field of reading (42) covers more than n but less than m consecutive areas. 8. A machine readable code according to claim 7, characterized in that the field of reading (42) is adapted to move relative to the code in said second direction. 9. A record member carrying data encoded in a machine readable code according to any one of the preceding claims.

Inventors: THOMAS J
Applicants: NCR CO, NCR CORP
Application year: 1980
Main classification: G06K7
IPC codes: G06K7, G06K19