Hello world sl015b_3
Click here to load reader
-
Upload
gmeneses23 -
Category
Technology
-
view
122 -
download
1
Transcript of Hello world sl015b_3
Veamos como se da la comunicación:
034E
EJEMPLO 1
Por ejemplo le envío un comando para que prenda el led: BA04400100FF (este es el comando que
trae el txt que viene con el debug tool)
En este caso se trata de un mensaje del HOST (que en este caso es el PC, al reader que es el lector)
El preámbulo siempre será BA para este tipo de comunicación, el siguiente campo es “Len” el cual
es un byte que indica el número de bytes que comprenden los campos desde “Command” hasta
“Checksum”.
En este caso es “Len” es 0x04 (i.e 4 bytes)
Luego viene el campo de “command” que también es de un byte, en este caso es 0x40, según la
tabla 3 de la hoja de datos es
El campo data es en este caso es de 2 bytes (en general es de longitud variable dependiendo del
tipo de comando). Para este ejemplo los datos son: 0x0100
Finalmente la XOR de 1byte para hacer el checksum es en este caso: 0xFF
La respuesta obtenida fue
BD034000FE
Este se debe analizar desde el formato de Reader to Host
El preámbulo (Preamble) es siempre 0xBD
Len es de 1 byte, en este caso es: 0x03 (es el número de bytes desde Command hasta Checksum)
Command es de 1 byte, en este caso es 0x40 que según la tabla 3 es:
Status es de 1 byte, en este caso es 0x00 que según la tabla 4 es:
En este caso no hay Data
Y el checksum es:
0xFE
EJEMPLO 2
Por ejemplo le envío un comando para obtener la información del TAG: BA023189 (este es el
comando que trae el txt que viene con el debug tool)
En este caso se trata de un mensaje del HOST (que en este caso es el PC, al reader que es el lector)
El preámbulo siempre será BA para este tipo de comunicación, el siguiente campo es “Len” el cual
es un byte que indica el número de bytes que comprenden los campos desde “Command” hasta
“Checksum”.
En este caso es “Len” es 0x02 (i.e 2 bytes)
Luego viene el campo de “command” que también es de un byte, en este caso es 0x31, según la
tabla 3 de la hoja de datos es
El campo data es en este caso es de 0 bytes (en general es de longitud variable dependiendo del
tipo de comando).
Finalmente la XOR de 1byte para hacer el checksum es en este caso: 0x89
La respuesta obtenida fue
BD0331018E
Este se debe analizar desde el formato de Reader to Host
El preámbulo (Preamble) es siempre 0xBD
Len es de 1 byte, en este caso es: 0x03 (es el número de bytes desde Command hasta Checksum)
Command es de 1 byte, en este caso es 0x31 que según la tabla 3 es:
Status es de 1 byte, en este caso es 0x01 que según la tabla 4 es:
En este caso no hay Data
Y el checksum es:
0x8E
Jueves 15 de marzo Ahora si se consiguió una Etiqueta compatible (SLB01 I.CODE SLI) y la respuesta obtenida fue esta
BD0E3100 09 Recordemos que el preámbulo siempre 0xBD
Len es de 1 byte, en este caso es: 0x0E (es el número de bytes desde Command hasta Checksum, incluyendo estos dos campos) en este caso 14 bytes Command es de 1 byte, en este caso es 0x31 que según la tabla 3 es:
Status es de 1 byte, en este caso es 0x00 que según la tabla 4 es:
KOOL!
Data es de longitud variable (en este caso son 11 bytes)
D7DC6D3A000104E0000032
Analicemos estos datos
Según lo que aporta el manual del módulo Lector/Escritor SL015B-3, el identificador único de 8
bytes es:
0XD7DC6D3A000104E0
El AFI (Identificador de Familia de Aplicación) que es 1 byte es: 0x00
El DSFID (Identificador de Formato de Almacenamiento de Datos) que es de 1 byte es: 0x00
El tipo como vemos concuerda 0x32 que es para las etiquetas RFID de tipo I.CODE SLI
Finalmente, El checksum es 0x09
_______________________________________________________________________
Después de varios intentos fue posible leer el otro TAG
BD0E31004AFE6D3A000104E0000032B6
PART III
Ahora estamos escribiendo las etiquetas (labels) RFID. Es importante anotar que no todos los
comandos que aparecen en el archivo CommandList.txt son válidos para nuestro caso:
El comando para leer los bloques de memoria desde el 0 hasta el 14 es BA0433000F82 (Read
block0 - block14).
El comando para escribir tiene este formato:
Veamos un ejemplo, con la instrucción BA073401A1A2A3A48C se escriben los datos (A1A2A3A4)
en el bloque de memoria #1. En la respuesta que se obtiene en la consola slcomv10 se puede
verificar esto al leer todos los bloque de memoria de la etiqueta RFID.
Ahora vamos a proceder a escribir los datos BBCCDDEE en el bloque de memoria #0, la instrucción
sería entonces:
BA073400BBCCDDEECD
Inicialmente se había enviado un checksum erróneo y no se pudo escribir el dato en la etiqueta RFID.
Luego se envío el checksum correcto en la instrucción y se observo una respuesta favorable.
Nota:
El checksum se realiza mediante operaciones XOR (simbolizadas como ) sucesivas entre todos
lo bytes desde el preámbulo hasta los datos (incluyendo a estos). Por ejemplo el checksum de
BA073400BBCCDDEE se obtiene así (todo está representado en hexadecimal).
BA 07 = BD 34 = 89 00= 89 BB=32 CC=FE DD=23 EE=CD
Al leer todos los bloques de memoria se observan los datos ya grabados.