Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Transponder Protocol Open Standard rec.pets-2005a

259 views
Skip to first unread message

Andy Kluck

unread,
Dec 12, 2005, 10:35:37 PM12/12/05
to
Many of the pet identification microchips/transponders commonly used in
the U.S. have been difficult to build a reader for, largely because
there has been no open standard describing a protocol to be used in
reading them. But anybody can write an open standard, and I wrote one.
It has a couple of calculation examples in it, but if these prove
inadequate, I may post some illustrative material later, at
http://andykluck.com/readchips/ on the web. Here is my Standard:

Transponder Protocol Open Standard rec.pets-2005a

1. Purpose. The Open Standard to be known as rec.pets-2005a is
designed to describe a method for reading transponders of a certain
class, and for formatting a represention of the information received,
for uses such as transmitting to a pet registry database. The class of
transponders readable by the standard is not intended to be identical
to the class of transponders in use, the so-called "encrypted
microchip" type. Rather, the standard's goal is that the transponders
it supports are a superset of that type. Or the goal is for the
"encrypted microchip" type to be a subset of the class readable under
this standard.

2. Options. There are several options available to be made in the
implementation of the standard.

2a. First of all, an error checking method for preventing invalid
readings due to noise is needed. No redundancy features in the
transmitted message are available for this, so only the repeating
nature of the message can be used. The exact criteria, (such as
matching 3 in a row or 4 out of 8 messages) are a choice for the reader
designer, as is the choice of where in the processing flow path the
error checking is made.

2b. The Second option is that the excitation frequency is specified
only as an approximation. It is left to the discretion of the reader
designer how much variation from this frequency is appropriate, such as
in the case of a multi-standard reader.

2c. Thirdly, this standard describes two different ways to give the
results when a transponder is successfully read. There is the primary
display form, which may be 17 or 20 printable characters in length,
possibly including digits and letters. And there is a long form,
always 96 printable characters in length, where each of the 96 is
either an "H" or an "L". Providing of the primary form is required,
but printing the long form is optional. It is however highly
recommended to give at least a user option to print the long form if
the output device can support it easily. Other output forms may be
added of course; some users doing code analysis may prefer a variant of
the long form coded with "1" and "0" digits instead of the letters.

2d. Fourthly, it is possible that certain defined classes of
transponders known to the reader designer may also be readable under
this standard. In a multi-standard reader, it is permissible to block
reporting of a transponder as a rec.pets-2005a class member if the
reader reports the transponder's value under some other protocol. For
example, some transponders of the types sometimes referred to as
"FECAVA", "Unencrypted 125KHz", and possibly others may be reportable
as 20 character readings under this standard unless the reader designer
exercises the option to block them.

2e. For the fifth option, the preferred method of punctuation of the
results is to use a space character after each 4 printable characters
in the primary form, and a space character after each 8 printable
characters in the long form. But Punctuation may be changed or omitted
if desired.

2f. For the sixth and final option, the reader designer may choose to
make a full implementation or a subset implementation of the standard.
In a full implementation, any transponder which meets the basic
requirements of modulation type, period of message repetition, and the
minimum number of transitions in its message, is readable. Such
transponders fall into two subclasses: those that produce a 17
character primary form result, and those that give a 20 character
primary form result. It has been hypothesized that all of the members
of the common so-called "encrypted microchip" type will fall within the
set of transponders which produces a 17 character primary form result.
If the reader designer has reason to believe that this hypothesis is
true, support for reading of transponders which produce a 20 character
primary form result may be omitted. But caution is advised before
departing from the full implementation, because no number of specimen
transponders analyzed can give a proof of the hypothesis. Other
rule-based subsets may also be justified by more specific knowledge
available to the reader designer. In any case, a subset implementation
is to be fully documented as to the subset supported.

3. Reading the Long Form. The Long Form is to be obtained first, by
this procedure:

3a. Reading a transponder is accomplished by applying an excitation
field of approximately 125 KHz. Envelope amplitude demodulation or
equivalent is to be used on the received signal, and the result of this
is to be Frequency-Shift-Key demodulated assuming a detection frequency
pair of one eighth of the excitation frequency for high tone, and one
tenth of the excitation frequency for low tone, and a symbol interval
of fifty times the excitation field period. An excerpt string of 96
characters is to be created from a sampling of 96 consecutive
demodulated symbols, coding with letter "H" for high tone and "L" for
low tone. Ideally, the demodulator should be designed to place no
arbitrary limit on the number of consecutive "H" or "L" symbols between
transitions. If an excerpt string shows four or fewer transitions
(total number of occurrences of "HL" and "LH") it is to be discarded;
otherwise, it becomes the source for calculation of the Long Form
representation.

3b. Transponders readable by this Standard give a 96 symbol repeating
pattern; the method described above makes a 96 symbol excerpt string
with a random arbitrary phase orientation.

3c. The first step in converting the excerpt to a Long Form
rec.pets-2005a representation is to make a 191 character "padded
excerpt" string by combining two copies of the excerpt consecutively
and removing the final character from this combination. This string
contains 96 Candidate Substrings of length 96 characters each, each of
which can be considered an equivalently valid rotated expression of the
repeating pattern, but only one of which will be the Long Form Result.

3d. If exactly one of the 96 Candidate Substrings starts with the
string "HLHLLLLLLHHHHHH", that Candidate Substring is the Long Form
Result.

3e. If more than one of the 96 Candidate Substrings starts with the
string "HLHLLLLLLHHHHHH", the Candidate Substring value that ranks last
in an alphabetical sort, of all the Candidate Substrings that start
with the string "HLHLLLLLLHHHHHH", is the Long Form Result.

3f. If none of the 96 Candidate Substrings starts with the string
"HLHLLLLLLHHHHHH", the Candidate Substring value that ranks last in an
alphabetical sort, of all 96 Candidate Substrings, is the Long Form
Result.

3g. Here is an example, made for illustrative purposes and not
indicating an actual observed transponder specimen: Suppose after
demodulating, a 96 character excerpt string is built out to make a 191
character "padded excerpt" string which happens to start out like this:
"LLHLHLLLLLLHHHHHHLLLHLHLLLLLLHHHHHHH". The searched-for string
"HLHLLLLLLHHHHHH" appears at the beginning of at least two of the 96
Candidate Substrings. In particular, it appears at the beginning of
the third Candidate Substring and at the beginning of the twenty-first
Candidate Substring. If there are no more matches found in searching
all 96 Candidate Substrings, the third Candidate Substring will be the
Long Form Result because it starts with "HLHLLLLLLHHHHHHL" which comes
after "HLHLLLLLLHHHHHHH" alphabetically.

4. Calculating the Primary Form. The Primary Display Form is to be
calculated from the Long Form, by this procedure:

4a. To make the primary form, the first step is to make a copy of the
long form result without punctuation, and in the copy, replace each "H"
with digit "1" and each "L" with digit "0". Then, if the transponder's
long form result starts with the string "HLHLLLLLLHHHHHH", replace the
first 15 characters of the copy with digit "0".

4b. A special character string "23456789BDFGHJKLMNPQRSTVWXYZ" is to be
defined for use as an ordered list of digits to be used in "base-28"
conversion in the next step. The characters in the string have been
chosen to limit the possibility of undesirable words appearing in the
coded result.

4c. The next step is to split the string of 96 characters into four
strings of 24 characters each. Taking each of these four strings as a
24 digit binary or base-two representation of a number, replace it with
a five-digit base-28 representation of the same number, using the
predefined string for the digit set. Then combine the four base-28
representations in order, making a string of 20 characters.

4d. The final step for making the primary form rec.pets-2005a
representation is, if the long form result starts with
"HLHLLLLLLHHHHHH", replace the 20 character string with a 17 character
string made by removing its first three characters.

4e. When expressed with the preferred punctuation, the rec.pets-2005a
primary form representation of a transponder reading is a 17 or 20
printable character string with spacing for readability. There are no
"0" or "1" digits. The 17 printable character case is distinctive for
its lone final character.

4f. Here is an example of the conversion from the Long Form to the
primary Form for a real specimen transponder. If the long form is

"HLHLLLLL LHHHHHHL HLHLHHLL
HLHLHHLH HHHHLLLH HLLLLLLL
LHLLHLHL HLHLLHHL LLHLHLHH
LLLLHLHH HHHHHHHH LHHHLHHL",

then the four quarter pieces made after clearing out the first 15
characters would be:

000000000000000010101100 = 172 decimal = 22286 in special base 28
101011011111000110000000 = 11399552 decimal = PLB8W in special base 28
010010101010011000101011 = 4892203 decimal = 9YW3L in special base 28
000010111111111101110110 = 786294 decimal = 39TXY in special base 28

Putting them together gives "22286PLB8W9YW3L39TXY", so the primary
form, after discarding the first three characters according to the
Rule, and adding spaces, would be "86PL B8W9 YW3L 39TX Y".

(End of Posting.)

0 new messages