For a fuller understanding of the nature and advantages of the present invention, as well as the preferred mode of use, reference should be made to the following detailed description read in conjunction with the accompanying drawings.
The following description is the best embodiment presently contemplated for carrying out the present invention. This description is made for the purpose of illustrating the general principles of the present invention and is not meant to limit the inventive concepts claimed herein.
The invention according to one embodiment is a method of distributing information in an RFID tag code that allows a decrease in the tag code length and, at the same time, retains all the information required by longer hierarchical code specifications, such as the ePC code and G-tag code specifications. In another embodiment, the invention is a method of mapping information from a shorter tag code to a longer computer searchable hierarchical code with full data compatibility of the tag code data with the hierarchical code fields. In a further embodiment, the invention is a method of mapping a hierarchical code to a shorter tag code without loss of any information.
The invention supports many types of RF tags. Although the needs of different applications and cost requirements may be met by one type of tag and not another, the different types of tags work together seamlessly. All tag types also may include a standardized wired I/O interface to sensors, clocks, displays and other devices.
Four illustrative types of tags are classified as follows:
Type 1 tags tend to be low cost. The type 1 tag code may be either all wafer-level programmed ROM or a hybrid ROM +36-bit EEPROM combination.
Type 2 is a passive tag with up to 65 Kbytes of embedded ROM and/or EEPROM. Some class-2 tags will be compatible with the 128-bit & 256 -bit G-tag specification.
Type 3 is a semi-passive tag with up to 65 Kbytes of embedded ROM and/or EEPROM and a built-in battery or other energy source to support increased read range and other functions. Type 4 is a “modem-like” active tag that can communicate with each other and/or other devices.
Other types of tags may also be supported by the invention. In fact, the system herein disclosed is intended for use with a number of international and proprietary codes and is hence generic and nearly universal.
The antenna uses radio frequency waves to transmit a signal that activates a tag 106. When activated, the tag 106 transmits data back to the antenna. High and low-frequency systems may be used in any of the embodiments described herein. Illustrative low-frequency RFID systems (30 KHz to 16 MHz) have short transmission ranges (generally less than six feet). Illustrative high-frequency RFID systems (850 MHz to 950 MHz and 2.4 GHz to 2.5 GHz) offer longer transmission ranges (more than 90 feet). The reader 102 communicates with the server 108 via a wide area network 112 such as the Internet.
The schematic in
The domain space 200 can be divided into small blocks (i.e. 32-bit hybrid strings) 202 and large blocks (i.e. 44-bit hybrid strings) 204, as an example. Each of the lines in a small block 202 has the same instruction string. A large block contains 256 sequential instruction strings, with each line of those 256 instruction strings containing one of 2̂36 (70 billion) hybrid strings (a total of 17 trillion tag codes). One can view an 8-bit block as a grouping of 256 sequential small blocks. It is convenient to parse each instruction string in an 8-bit block into a 20 bit instruction and an 8 bit address or extender. This extender is also referred to as field extender C (see
Also illustrated in
Also illustrated in
Mapping
The reader communicates with a tag that is encoded with a re-mapped and compressed 64-bit tag code that is derived from the fields of the 96-bit ePC code (8-bit Header, 28-bit manufacturer, 24-bit product, 36-bit serial), the 128-bit ePC code, the 256-bit ePC code or the 128-bit or 256 -bit G-tag codes. The mapping back and forth between the 96-bit ePC code and the 64-bit compressed tag code is shown in
Each reader or group of readers has a memory driven “mapper” to either expand the 64-bit tag code into the fields of a 96-bit ePC code (or other code) or to compress the fields of 96-bit codes (or other codes) back into 64-bit tag codes.
Referring to
The mapping code 306 comprises a manufacturer field 402 that is the same as the manufacturer field 452 in the greater bit code (the ePC code in the illustration), two optional incremental fields 404, 406, and a mapping command 408. The mapping command 408 is used to map the manufacturer field 402, field extender A 404 and field extender B 406 from the mapping command 408, and field extender C and the bits of the hybrid string 304 from the tag 106 to fields 452, 454, 456 in the hierarchical code 440.
The incremental field extenders 404, 406 permit a manufacturer to use more than one instruction string 302 and to allocate bits of the hybrid string 304 for mapping to a product field 454 or a serial field 456 in accordance with the needs of the particular manufacturer. For example, if a manufacturer is allowed to use two different Instruction fields 302 such as 000 . . . 0001 and 000 . . . 110, the two Instruction fields 302 will correspond to the same manufacturer field 402 but will have different data fields, such as, for example, 00000000 and 00000001.
In this example, the number of mapping commands 408 is limited to 256. Seven of these mapping commands 408 are used to map to and from a 64 bit tag 106 and the 96 bit ePC code 440. Other mapping commands 408 can be used for mapping between a 64 bit tag 106 and other hierarchical codes, such as a 128 bit G-tag code or a 128 bit ePC code.
The mapping illustrated in
Big Block Mapping Commands:
Small Block Mapping Commands:
In the Big tag code structure, the 28 bit instruction string comprises a 20 bit instruction and an 8 bit extender (field extender C).
A reader uses the instruction string of a tag as a database address to fetch a corresponding mapping code 306. The mapping code contains a 28 bit manufacturer field that is the same as the 28 bit manufacturer field of the 96 bit ePC code, a mapping command that is recognized as corresponding to a 96 bit ePC code and hence determines the header of the 96 bit ePC code, an 8 bit product incremental field extender (field extender A) and an 8 bit serial incremental field extender (field extender B).
In mapping from a 64 bit tag code to a 96 bit ePC code, the preferred minimum ePC serial field is twelve bits long, which is achieved by mapping field G from the hybrid string into the 12 bit field of the serial field of the 96 bit ePC code. As illustrated in
As illustrated in
When a manufacturer has the right to use more than one instruction string, incremental field extender B is used to augment the number of possible serial field combinations in the ePC code and incremental field extender A is used to augment the number of possible product field combinations in the ePC code.
Note that the mapping of this invention can be used in a system in which all readers interface to the system using either the 96-bit ePC code or the 128-bit G-tag code. The invention also supports the future use of 128-bit ePC codes, 256 -bit ePC codes, and 256 -bit G-tag codes, and other international and proprietary codes.
Domain Space Allocation
The mapper described above allows allocation of individual blocks in the tag code space. The 64-bit tag codes are assigned in a sequential contiguous manner but may contain non-contiguous blocks of codes that were assigned to the same manufacturer at different times. In order to be compatible with the field codes, these non-contiguous tag code blocks must be mapped into the fields of hierarchical codes before performing any web-based search operations. In tag code space, the assignments do not need to be contiguous. When mapped into the hierarchical field code space, the blocks become contiguous or at least semi-contiguous (i.e. there may be unused codes or “gaps” within such hierarchical and otherwise contiguous code space).
Preferably, an 8-bit prefix “11111111” triggers that this information will be read as an 8-bit Branch Header, and is used to branch to an alternate domain space.
In one embodiment, up to 1,000,000 “large 44-bit manufacturing blocks” are assigned in descending order based on their dates of assignment. Multiple assignments to the same manufacturer are allowed and may be made at different times resulting in non-contiguous tag code assignments to a single manufacturer. However, the 256 Instruction codes within each large manufacturing block must be in a single contiguous block and an 8-bit code corresponding to each of these 256 one-bit blocks of Instruction codes will be mapped into a field of an ePC code as field extender “C”.
Up to 255,000,000 “small 36-bit manufacturing blocks” are assigned in ascending order. Multiple assignments to the same manufacturer are allowed and may be made at different times resulting in non-contiguous tag code assignments to a single manufacturer
Up to 256 large or small blocks may be assigned to a single manufacturer if needed.
Within each small block, three 8-bit Extender Blocks of addresses may be assigned (under control of the mapping command) to either the ePC product field or the ePC serial field depending on the needs of that particular manufacturer.
The mapper may contain an EEPROM memory with up to a 28-bit memory address. 52 bits of data are stored at each memory location including: a 28-bit manufacturer field, an 8-bit mapping command, an 8-bit product incremental field extender (field extender “A”), and an 8-bit serial incremental field extender (field extender “B”).
A different 8-bit mapping command may be assigned to each of the 260 million 28-bit prefixes (instruction fields). This information is stored in the reader EEPROM or other location accessible to the reader and is updated regularly.
The 28-bit instruction string is used in the EEPROM to map between non-contiguous code blocks in the 64-bit tag code space and the hierarchical and contiguous code blocks required by the 96-bit ePC code world-wide-web protocol.
To map back easily from the 96-bit field code to the 64-bit tag code, the 28-bit instruction string, and the 8-bit mapping command are appended to the 96-bit hierarchical code (increasing its total length to 132 bits).
A 28-bit tag code instruction string supports up to 268,435,456 separate manufacturers. However, since domain needs will vary greatly from one manufacturer to another, up to 16,777,216 instruction strings can be assigned to a single manufacturer if needed. Even though these instruction strings may be non-contiguous in the tag code space, the instruction strings are used to fetch a corresponding mapping code that includes a 28-bit manufacturer field that is then mapped into the 28-bit manufacturer field in the 96-bit ePC code. The hybrid extender fields are flexibly allocated by the manufacturer between product fields and serial fields as described above with variable mixtures of short and long serial fields to meet the needs of even the largest multi-national manufacturers. Since a manufacturer is not required to actually use every code assigned, there may be unused codes or “gaps” within the contiguous domain code space.
In order to discourage wasting of the domain space, it is preferable that a manufacturer purchases the blocks it needs and that the pricing be such that a manufacturer is discouraged from purchasing blocks that it does not need.
In meeting these objectives, the domain space is preferably divided into small blocks and large 8-bit blocks, as shown in
The domain fee per tag is smaller than the tag cost, which is, in turn, much smaller than the total available domain space cost. The small blocks are sold for a reasonable price, for example $1,000. And, the 8-bit blocks are sold at a discounted price relative to the purchase of the equivalent space in 256 small blocks, for example $100,000.
Manufacturers are encouraged to purchase the number and size of blocks sufficient for their needs. However, the system recognizes that the needs of a manufacturer may change over the course of time. Accordingly, a manufacturer may purchase additional small and/or large blocks when needed, up to a total of the equivalent of 65,000 small blocks.
Simple calculations show that the means of purchase allocation disclosed in this invention would cost no more than $1,000 for 70 billion tags or 687,194 tags for a single penny. At the same time the cost of purchasing the entire domain space would cost at least $104,857,600,000 and as much as $268,435,456,000. Accordingly, the fees are not burdensome for any legitimate use of the codes by a manufacturer. At the same time, if someone were to attempt to abuse or control the domain space, the cost should be prohibitive.
Note that blocks may also be sold at a flat fee per block.
While various embodiments have been described above, it should be understood that they have been presented by way of example only, and not limitation. Thus, the breadth and scope of a preferred embodiment should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.
This application claims priority from U.S. Provisional Patent Application entitled “Compressed Tag Codes and Mapping,” filed on May 31, 2001 under Ser. No. 60/294,951, and which is herein incorporated by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
60294951 | May 2001 | US |