(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
* All data must be in '''base16 format''' (0-F) also called hexadecimal format
+
==Requirements for pre-programmed tags==
** In base10 format (or decimal format) it would be 0-15
+
  
==Tag data parts==
+
Tag data MUST consists of AT LEAST 1 numerical parts, '''competitor number'''.
  
Tag data consists 2 parts: '''prefix''' and '''postfix'''. Both of these are '''4 bytes''' in length.
+
* Competitor number MUST NOT be 0 because it is reserved to indicate to software an invalid tag being detected.
  
First part represents the '''competition identified''' and second part represents the '''competitor number'''.
+
==Requirements for re-programmable tags==
* For instance, competitor number 1 would be '''0x0000001''' and 73 would be '''0x00000049'''
+
* Same rule applies to competition identifier, which must be in number format as well
+
  
Competition identifier '''can be 0''' which tells the software not to separate tags per. competition.
+
Tag data MUST consists of AT LEAST 2 numerical parts, '''competition identifier''' and '''competitor number'''.
  
Competitor number '''can NOT be 0''' because it will also indicate a false tag being detected.
+
* Competition identifier MAY be 0 which should tell the software not to separate tags per. competition.
 +
* Competitor number MUST NOT be 0 because it is reserved to indicate to software an invalid tag being detected.
  
==EPC Gen2 tag data==
+
==Requirements for tag data serialization==
  
EPC Gen2 tags has EPC memory area size of '''12 bytes''' (or 96 bits). Other memory areas are TID and USER.
+
All data must be in '''base16 format''' (0-F) also called hexadecimal format.
 +
* Just as an example, in base10 format (or decimal format) it would be 0-15.
 +
* For instance, competitor number 1 would be <code>0x01</code> and 73 would be <code>0x49</code>.
  
So if you want to program a tag for '''competition 45''' and '''competitor 182''' it would go like this:
 
* Competition identifier: '''45'''
 
** '''0x0000002D''' --> prefix
 
* Competitor number: '''182'''
 
** '''0x000000B6''' --> postfix
 
  
* EPC memory area data: '''0x0000002D 00000000 000000B6'''
+
Limits of numerical space:
 +
* Competition identifier: 0 <code>0x00</code> - 999 999 999 <code>0x3B9AC9FF</code>
 +
* Competitor number: 1 <code>0x01</code> - 99 999 <code>0x1869F</code>
  
Notice also an empty space (4 bytes) between prefix and postfix. It is ok.
+
==EPC TDS==
  
==Limits==
+
GS1's EPC Tag Data Standard (TDS)
  
Largest number for both competition identifier and competitor number is '''4 294 967 295'''
+
https://www.gs1.org/standards/epcrfid-epcis-id-keys/epc-rfid-tds/
  
...but timekeeping software is limiting numbers as:
+
===EPC UHF Gen2===
* Competition identifier: 0 - 999 999 999
+
 
* Competitor number: 1 - 99 999
+
Gen2 tags has at least following memory areas; EPC, TID, and USER.
 +
 
 +
For timekeeping purposes, minimum requirements are:
 +
* For pre-programmed tags, TID is used as competitor number, EPC is not used
 +
* For re-programmable tags, EPC is used as competition identifier and competitor number, TID is not used
 +
** Minimum required EPC memory area size is '''12 bytes''' (or 96 bits)
 +
 
 +
====For re-programmable tags====
 +
 
 +
EPC memory map:
 +
* index 0-3, competition identifier, int-32 big-endian
 +
* index 4-7, reserved for future use
 +
* index 8-11, competitor number, int-32 big-endian
 +
 
 +
 
 +
Gen2 tags with over 12 bytes EPC memory area MUST NOT utilize it since index 12.
 +
 
 +
It is also encouraged to set tag's access password to a known one and set write-lock to tag's EPC memory area.
 +
 
 +
Example: Programming a tag for competition identifier '''45''' and competitor number '''182''' should lead to EPC memory data of <code>0x0000002D00000000000000B6</code>.

Latest revision as of 21:06, 22 February 2021

Requirements for pre-programmed tags

Tag data MUST consists of AT LEAST 1 numerical parts, competitor number.

  • Competitor number MUST NOT be 0 because it is reserved to indicate to software an invalid tag being detected.

Requirements for re-programmable tags

Tag data MUST consists of AT LEAST 2 numerical parts, competition identifier and competitor number.

  • Competition identifier MAY be 0 which should tell the software not to separate tags per. competition.
  • Competitor number MUST NOT be 0 because it is reserved to indicate to software an invalid tag being detected.

Requirements for tag data serialization

All data must be in base16 format (0-F) also called hexadecimal format.

  • Just as an example, in base10 format (or decimal format) it would be 0-15.
  • For instance, competitor number 1 would be 0x01 and 73 would be 0x49.


Limits of numerical space:

  • Competition identifier: 0 0x00 - 999 999 999 0x3B9AC9FF
  • Competitor number: 1 0x01 - 99 999 0x1869F

EPC TDS

GS1's EPC Tag Data Standard (TDS)

https://www.gs1.org/standards/epcrfid-epcis-id-keys/epc-rfid-tds/

EPC UHF Gen2

Gen2 tags has at least following memory areas; EPC, TID, and USER.

For timekeeping purposes, minimum requirements are:

  • For pre-programmed tags, TID is used as competitor number, EPC is not used
  • For re-programmable tags, EPC is used as competition identifier and competitor number, TID is not used
    • Minimum required EPC memory area size is 12 bytes (or 96 bits)

For re-programmable tags

EPC memory map:

  • index 0-3, competition identifier, int-32 big-endian
  • index 4-7, reserved for future use
  • index 8-11, competitor number, int-32 big-endian


Gen2 tags with over 12 bytes EPC memory area MUST NOT utilize it since index 12.

It is also encouraged to set tag's access password to a known one and set write-lock to tag's EPC memory area.

Example: Programming a tag for competition identifier 45 and competitor number 182 should lead to EPC memory data of 0x0000002D00000000000000B6.