Changes between Version 2 and Version 3 of S6350serialcom


Ignore:
Timestamp:
10/27/08 10:52:46 (16 years ago)
Author:
pinwc4
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • S6350serialcom

    v2 v3  
    22 
    33In order to use the [wiki:S6350 TI reader] within RealBasic we had to implement some of the serial protocol ourselves.  In order to use the TI Reader with the [wiki:ISO15693] protocol you must first generate a command encapsulated in the TI protocol and have the payload of the command be the [wiki:ISO15693] command.  Only 3 of the [wiki:ISO15693] commands are necessary, Inventory All Slots, Inventory 1 Slot and Silence.   
     4 
     5= Collisions = 
     6 
     7The [wiki:ISO15693] protocol allows for 16 time slots for communicating with an RFID reader.  A collision occurs when 2 or more tags use the same time slot.  By default each tag will use the 1st time slot unless a collision occurs.  In the event of a collision the tags will randomly move to a different time slot.   
     8 
     9The Inventory All Slots command can handle this as it checks each of the 16 slots for a RFID.  Unfortunately doing this operation is slow, it takes about .3 seconds, far too long for a lap counter to get accurate lap times.   
     10 
     11The solution is to use the Inventory 1 slot command during races.  This command will just check the 1st time slot for a tag.  To prevent collisions you must silence the tag immediately after it is detected.  If a tag is silences it will not transmit again until it leaves and reenters the antenna loop. 
     12 
     13 
     14= Inventory All Slots = 
     15 
     16This sends an ISO15693 inventory command for the TI S6350 reader.  Does an inventory of all time slots, this supports anti-collision but is too slow to use during a race as it takes about .3 seconds to return results.  This command is used to scan in racers before a race starts.  By using the inventory all slots command everyone can line up on the finish line and one inventory done to add them to the race. 
     17 
     18The breakdown of the command is as follows:  
     19Byte 1 is the Start of Frame, always 01 
     20Byte 2 and 3 is the length of the command including the 2 byte check sum that is added to the end, Least Significant Byte first 
     21Byte 4 and 5 is the node address, leave at 00 as we do not reference nodes 
     22Byte 6 is the command flags, no flags present 
     23Byte 7 is the command, &h60 means it is an ISO15693 command which will be in the data portion of the packet 
     24Byte 8 is the config byte for the reader, &h11 means 100% modulation and 1/4 data mode 
     25Byte 9 is the ISO15693 command flags, &h07 means 2 sub carriers, high data rate, inventory_flag set, nb_slots_flag set to all 16 slots 
     26Byte 10 is the ISO15693 command, &h01 means inventory 
     27Byte 11 is the optional mask that is not set 
     28Bytes 12 and 13 are the checksum 
     29 
     30The resulting command could look like this: 
     31chrB(&h01) + chrB(&h0D) + chrB(&h00) + chrB(&h00) + chrB(&h00) + chrB(&h00) + chrB(&h60) + chrB(&h11) + chrB(&h07) + chrB(&h01) + chrB(&h00) + chrB(&h7B) + chrB(&h84) 
     32 
     33 
     34= Inventory 1 slot = 
     35 
     36This sends an ISO15693 inventory command for the TI S6350 reader. This does an inventory of just the first time slot, which allows for a faster inventory responses but can not handle collisions.  A collision is when two tags or more tags are in the field at the same time.  To minimize collisions silence the tag after it is detected. 
     37   
     38  
     39Byte 1 is the Start of Frame, always 01 
     40Byte 2 and 3 is the length of the command including the 2 byte check sum that is added to the end, Least Significant Byte first 
     41Byte 4 and 5 is the node address, leave at 00 as we do not reference nodes 
     42Byte 6 is the command flags, no flags present 
     43Byte 7 is the command, &h60 means it is an ISO15693 command which will be in the data portion of the packet 
     44Byte 8 is the config byte for the reader, &h11 means 100% modulation and 1/4 data mode 
     45Byte 9 is the ISO15693 command flags, &h27 means 2 sub carriers, high data rate, inventory_flag set, nb_slots_flag set to 1 slot 
     46Byte 10 is the ISO15693 command, &h01 means inventory 
     47Byte 11 is the optional mask that is not set 
     48Bytes 12 and 13 are the checksum 
     49 
     50The resulting command could look like this: 
     51ChrB(&h01) + ChrB(&h0D) + ChrB(&h00) + ChrB(&h00) + ChrB(&h00) + ChrB(&h00) + ChrB(&h60) + ChrB(&h11) + ChrB(&h27) + ChrB(&h01) + ChrB(&h00) + ChrB(&h5B) + ChrB(&hA4)