Specifications
6.2. SOFTWARE
the buffer and compared to entries in an array of records with the data
components as outlined in table 6.1.
Size (bits) Name Contents
8 Status
Record State: Clear; Record timed out;
Requested RFID 0 or 1;
Tag moved in direction 0-1, or 1-0
16 Elapsed time Stores time elapsed since initial trigger
64 Data Stores the 8 ID bytes of the tag
Table 6.1: RFID co-ordinator: record storage
If the response was that of a successful tag read, this table is consulted
and a match sought for the tag ID. If no match is found, a new entry is
generated with the time elapsed set to zero and the status set to “requested
RFID 0” or “requested RFID 1”, depending on which module returned the
successful read (as given by the RFID reader request FSM). If, on the other
hand, a match was found in the table, the status byte for that record is
checked to see what action must be taken. There are three possibilities:
1. This is a duplicate read (the RFID reader which generated this read is
the same as the one which generated the record entry) — it is ignored
and no changes to the record is made.
2. The tag was previously read at the other RFID reader gate. In this
case, the direction is determined and the status byte changed to reflect
the direction.
3. This is a duplicate read (the RFID reader which caused the status byte
to be changed as mentioned in “2” has generated another read from
the same tag) — it is ignored and no changes to the record is made.
Care must be taken, however, to ensure that the table does not overflow
– only a finite number of records can be accommodated at a time. A counter
keeps track of the next record to be written-to. Records are entered in a FIFO
style into the next available slot. It is also possible that an animal will be
read successfully at one gate, but not the next. To prevent the system waiting
61