Encoding RFID tags with ASCII values vs. hexadecimal values: What's the difference?

Discussion in 'Tags' started by Fahim Ali, Dec 29, 2014.

  1. Fahim Ali

    Fahim Ali Administrator Staff Member

    An RFID tag can be encoded with two different encoding systems: ASCII and hexadecimal. ASCII is a character encoding standard that is used to display text in digital equipment, including computers and mobile devices. It has the capability to display the full English alphabet, the numbers 0 – 9, and some basic punctuation symbols. Because of this capability, ASCII can be used to encode human-readable RFID tags; when the tag is read and decoded by a capable RFID reader, it will show up as plain text. Each ASCII character is encoded as a single byte: a unit of measurement for computer data. A byte is capable of representing 256 different numerical values. Internally, the standard ASCII encoding is represented by the first 128 numbers of a byte. For example, the letter ‘A’ has a numerical value of 65, while the letter ‘z’ has a numerical value of 122. There is an extended ASCII encoding that uses the other 128 numbers of a byte, but that is highly dependent on the computing environment and does not need to be discussed here.

    Hexadecimal (hex) is a number system that is popularly used in many computing applications. It is a base-16 number system, meaning that there are 16 possible numerical values for every one hex value. Theoretically, hexadecimal can be used to represent numbers up to infinity, but most RFID tag encoding systems will limit you to 24 hex characters. However, 24 hex characters still allows for a very large number of potential tag identifiers. A byte can represent two hex characters: if each hex character is 16 unique values, with two hex characters we have a possible range of 256 numerical values, which can be nicely represented by a byte, which supports a possible range of 256 numerical values.

    RFID tag identifiers are always WRITTEN as hexadecimal values, but they can be ENCODED as ASCII values or hexadecimal values. If encoded as ASCII values, every ASCII character will be converted to a byte, which will be written as two hex characters. Because of the 24 hex character limit discussed above, this means that an ASCII encoded RFID tag can only contain 12 characters. If encoded as hex values, the number of possible tag identifiers far exceeds what is possible when encoding in ASCII. Because of this, it is very easily possible to encode values above and beyond 256: the upper limit of the ASCII encoding standard. A device that is configured to decode an ASCII encoding does not know how to decode anything beyond this limit, since the ASCII encoding standard is represented by those 256 values. That is why if you try to decode an RFID tag not specifically encoded in ASCII into ASCII characters, it is very possible you will get characters that cannot be represented in ASCII, which the decoding system does not know what to do with. These characters are referred to as “garbage” characters since they don’t have any significance, are not human-readable and are not easily identifiable.

    So what should you choose? If you need human-readable tag IDs, make sure to encode your tags in ASCII mode. However, be aware of the limit of unique IDs that is possible in this mode. If you don’t need human-readable tags, use hexadecimal. This ensures enough unique IDs for any realistic situation.
    Last edited: Jan 5, 2015
  2. Joseph Kraebel

    Joseph Kraebel Administrator Staff Member

    The above post is referring to the encode of an RFID Tag's EPC memory bank.

    You can also encode an RFID Tag's User memory bank with additional information about the item being tagged. Available on most RFID tags, the User memory bank typically supports 512 bits of memory which equates to 64 Hex characters or 32 ASCII characters.

    ClearStream RFID supports the reading of both EPC and User memory banks.

Share This Page