El DataKey

 

DESCRIPCION

El DATAKEY es el dispositivo ideado por AIM Sports que permite  descargar los datos desde el My4 a una PC.  Es un componente básico en el conjunto del Mychron4, y deberia debería ser suministrado al adquirir un My4. Este es realmente el que permite desplegar todo el potencial del la adquisición de datos permitiendo el análisis a traves del programa RACE STUDIO.

Su funcionamiento es sencillo, conectamos el DATAKEY al CANBUS (o entrada PC del My4) y lo encendemos . Si hay datos nuevos el My4 transmitira al DATAKEY los datos almacenados en la memoria y al finalizar se apagara. El DATAKEY por su parte almacena en su memoria los datos recibidos. Retiramos el DATAKEY y lo conectamos a un puerto USB de nuestra PC o Notebook. A partir de este momento los datos estarán disponibles para ser descargados y/o manipulados desde el programa RACE STUDIO.

HARDWARE

Este dispositivo tiene dos conectores, una ficha binder 719 de 5 pines para conectarlo al CANBUS del My4 y un ficha USB para su conexión a una PC.  Para conocer mas acerca de este dispositivo, procedi a desarmar uno como se ve en las siguientes imágenes. Su desmontaje es sencillo ya que su cobertor plástico se encuentra unido a presión.

 

En su interior identificamos los siguientes integrados:

·         Una memoria SAMSUNG K9F5608U0D que corresponde a una memoria de 32mb x 8 bits nand flash que es idéntica a la que monta el My4 en su interior.

·         Un chip PDIUSBD12 que es un intefaz USB con bus paralelo

·         Un microcontrolador 3029 IFC idéntico o de la familia que monta el My4 en si mismo.

 

Como vemos el DATAKEY posee una memoria y un cerebro igual que el My4.

-------------------------------------------------------------------------------

Comunicacion del DataKey con la PC

De acuerdo a sus conectores podemos verlo desde dos puntos de vista distintos. Es decir su comunicación con la PC y su comunicación con el My4.

La conexión con la PC se hace a travez , como ya dijimos, mediante USB, es reconocido como un dispositivo con un Vendor ID=0x11CC y product ID=101. Esta comunicación es muy fácil de ver con un SNIFFER (un programa que intercepta y muestra la información enviada y recibida). Por el momento dire que no tiene demasiado interés para mi y por lo tanto no dedicare mucho tiempo a esto.

Desde el PC las operaciones “normales” que podemos identificar a priori son, la información de dispositivo o “Device Info”, mostrar directorio o lista de “runs” almacenados, descarga de “run” y borrado de llave de datos. La operación de información de dispositivo es precedida a cualquiera de las otras operaciones, es decir, por ejemplo antes de descargar un “run” primero se realiza una identificación de dispositivo.

La transmisión, según parece, se realiza en un forma bastante sencilla. Basta mirar los paquetes transmitidos y recibidos para identificar datos. Son muchos los paquetes transmitidos que seguramente forman parte de un protocolo (secreto) bien documentado por AIM, asi que la información que se da a continuación es de uno o mas paquetes recibidos en el intercambio durante la operación.

Operación de identificación de dispositivo:

Esta operación puede ser solicitada en forma independiente o precediendo a cualquiera de las otras. Como resultado de esta operación podemos ver datos como el numero de serie, la versión del firmware, la versión de loader, la fecha del firmware, entre otras.

Este es uno de los paquetes recibidos:

00 00 00 00 6F 00 00 00 19 01 20 06 00 00 02 11   ....o..... .....

 XX 30 06 00 30 01 20 14 00 00 33 50 33 00 16 00   †0..0. ...3P3...

 21 00 02 00 10 00 01 00 19 09 D7 07 00 02 00 00   !.........×.....

 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

Donde vemos que 19 01 20 06 en la primera línea es 19/01/2006 que es la fecha del Booter, en la misma línea 02 11 es la versión del booter 2.11. En la línea 2, XX 30 06 00 es la ID extraordinaria del Logger 405YY (los datos XX e YY son valores que borre ya que es el numero de serie del Datakey). A continuación los valores 30 01 20 14 es la fecha del firmware 30/01/2014. En la tercer línea vemos que el ID date es 25/09/2007 que corresponde a 19 09 D7 07

En la siguiente figura vemos estos datos desde el RaceStudio2

Es curioso como codifican algunos datos…..

 

Mostrar directorio de DataKey:

Esta operación se da al solicitar la descarga de datos en el programa Race Studio 2. Primero como ya dijimos se realiza la operación de identificación de dispositivo y luego la del directorio de información almacenada en el DataKey.  Este es el formato de paquete de una entrada de directorio de un “run”.

 

Campo

Desde

Hasta

Comentarios

PILOTO

18

49

Nombre del piloto

FCHA RUN

157

160

157 dia hex | 158 ?? | 159 mes hex | 160 año hex + 2000

VUELTAS

130

131

Cantidad de vueltas

CIRCUITO

50

81

Nombre de la pista

TIEMPO INICIO RUN

154

156

154 segundos hex | 155 minutos hex | 156 hora hex

TIPO LOGGER

 

 

14 y 15 ??  0x8D Gold, 0xCD extreme, 0x02 Normal

LOGGER ID

120

123

 

NUMERO DE RUN

0

1

Repite en 12-13

MEJOR TIEMPO DE VUELTA

8

11

Tiempo * 10

MAX RPM

82

83

(82 a 85 ???)

MAX VELOCIDAD

86

87

Depende de las unidades ??. (revisar)

MAX TEMP 1

92

93

 * 10

MAX TEMP 2

96

97

* 10

 

No pongo ningun paquete de datos de ejemplo ya que contienen informacion personal.

 

Bajada de datos:

Al solicitar la bajada de un “run”, se realiza la identificación de dispositivo y luego se transmiten los datos en forma cruda.

Esto es la primera parte del paquete de bajada de datos

D0 0D FF CF 6D 09 05 05 D0 0D FF CF 73 0E FF CF   Ð.ÿÏm...Ð.ÿÏs.ÿÏ

 E6 0B FF CF 95 0F FF CF F9 11 FF CF AC 10 FF CF   æ.ÿÏ•.ÿÏù.ÿϬ.ÿÏ

 AC 10 FF CF 46 0F FF CF 38 0E FF CF 79 D0 31 0D   ¬.ÿÏF.ÿÏ8.ÿÏyÐ1.

 FF CF 6D 09 08 05 8C 0F FF CF 8B 16 FF CF DC 17   ÿÏm...Œ.ÿÏ‹.ÿÏÜ.

 FF CF DC 17 FF CF 7B 17 FF CF 7D 15 FF CF 5B 11   ÿÏÜ.ÿÏ{.ÿÏ}.ÿÏ[.

 FF CF 46 10 FF CF 47 10 FF CF 2C D0 84 16 FF CF   ÿÏF.ÿÏG.ÿÏ,Є.ÿÏ

 6D 09 08 05 93 18 FF CF 93 18 FF CF CA 17 FF CF   m...“.ÿÏ“.ÿÏÊ.ÿÏ

 01 16 FF CF A7 12 FF CF 71 12 FF CF EB 0F FF CF   ..ÿϧ.ÿÏq.ÿÏë.ÿÏ

 E7 0E FF CF E7 0E FF CF 97 D0 02 0F FF CF 6C 09   ç.ÿÏç.ÿÏ—Ð..ÿÏl.

 08 05 21 0E FF CF 43 0D FF CF 00 00 FF CF 00 00   ..!.ÿÏC.ÿÏ..ÿÏ..

 FF CF 00 00 FF CF 00 00 FF CF 00 00 FF CF 00 00   ÿÏ..ÿÏ..ÿÏ..ÿÏ..

 FF CF 00 00 FF CF 1E D0 00 00 FF CF 6C 09 05 05   ÿÏ..ÿÏ.Ð..ÿÏl...

 00 00 FF CF 00 00 FF CF 00 00 FF CF 00 00 FF CF   ..ÿÏ..ÿÏ..ÿÏ..ÿÏ

 00 00 FF CF 00 00 FF CF 00 00 FF CF 00 00 FF CF   ..ÿÏ..ÿÏ..ÿÏ..ÿÏ

 00 00 FF CF 8B D0 00 00 FF CF 6D 09 05 05 00 00   ..ÿÏ‹Ð..ÿÏm.....

 

Este run corresponde a un Mychron4 solo sin ningún dispositivo. Por lo que los canales registrados son:

                Engine (RPM)

                Temperatura (Temperatura del conector del My4)

                Datalogger Temp (temperatura del My4)

                Bateria (voltaje de la pila del My4)

Conociendo los datos vemos que podemos interpretar los datos de la siguiente manera, teniendo en cuenta que los 2 primeros tienen una frequencia de 10Hz y los 2 ultimos 1Hz.

D0 0D FF CF 6D 09 05 05  -> RPM=3536 , Temp=n/d, Datalogger Temp=, Volt.=

 D0 0D FF CF -> RPM=3536 , Temp=Sin sensor conectado

 73 0E FF CF -> RPM= 3699, Temp=Sin sensor conectado

 E6 0B FF CF -> RPM= 3046, Temp=Sin sensor conectado

 95 0F FF CF -> RPM= 3989, Temp=Sin sensor conectado

 F9 11 FF CF -> RPM= 4601, Temp=Sin sensor conectado

 AC 10 FF CF -> RPM= 4268, Temp=Sin sensor conectado

 AC 10 FF CF -> RPM= 4268, Temp=Sin sensor conectado

 46 0F FF CF -> RPM= 3910, Temp=Sin sensor conectado

 38 0E FF CF 79 D0  -> RPM= 3640, Temp=Sin sensor conectado

El la primera línea vemos que los 2 primeros bytes corresponden a las RPM, los dos siguientes a la temperatura (no había sensor conectado, el valor de default es FF CF). Los siguientes dos estimo que corresponden a la temperatura del logger y los últimos 2 al voltaje de la batería del logger. Esos dos últimos pares  no se como se encuentran codificados (quizá algo de unidades).

De las frecuencias sabemos que cada grupo es la adquisición de cada 0.1 segundos (rpm y temperatura) y que cada segundo se informa la temperatura del logger y su voltaje. Ademas vemos que en decimo grupo existen dos bytes extras, los cuales puedo hacer muchas suposiciones sobre su significado pero no voy a aventurar ninguna por ahora.

Un tema no menor es la determinación de cuales son los canales registrados. Esta es una información propia del “run”. Tampoco tengo una respuesta a esta pregunta, pero sospecho que lo indica en algún mensaje antes del la descarga de los datos logeados o a partir de la capacidades o características del logger usado en el “run” se desprende cuales son los canales. Creo que es la primera opción pero sin confirmacion, esto es debido a que los canales analógicos de en un ebox o un expansión se les puede asignar un significado y por lo tanto en que canal registran.

Otro ejemplo:

El comienzo de los datos son

C2 0F 61 09 51 05 00 00 FE CF 00 00 32 02 E4 00   Â.a.Q...þÏ..2.ä.

 00 00 08 10 00 00 FE CF 00 00 32 02 E4 00 00 00   ......þÏ..2.ä...

 41 10 00 00 FE CF 00 00 32 02 E4 00 00 00 55 10   A...þÏ..2.ä...U.

 00 00 FE CF 00 00 32 02 E4 00 00 00 65 10 00 00   ..þÏ..2.ä...e...

 FE CF 00 00 32 02 E4 00 00 00 7C 10 00 00 FE CF   þÏ..2.ä...|...þÏ

 FE FF 32 02 E4 00 00 00 85 10 00 00 FE CF 00 00   þÿ2.ä...…...þÏ..

 32 02 E4 00 00 00 8F 10 00 00 FE CF 00 00 32 02   2.ä......þÏ..2.

 E4 00 00 00 95 10 00 00 FE CF 00 00 32 02 E4 00   ä...•...þÏ..2.ä.

 00 00 A8 10 00 00 FE CF 00 00 32 02 E4 00 00 00   ..¨...þÏ..2.ä...

 E0 D0 B5 10 61 09 52 05 00 00 FE CF 00 00 32 02   àе.a.R...þÏ..2.

 E4 00 00 00 C4 10 00 00 FE CF 00 00 32 02 E4 00   ä...Ä...þÏ..2.ä.

 00 00 C3 10 00 00 FE CF 00 00 32 02 E4 00 00 00   ..Ã...þÏ..2.ä...

Corresponde a un My4 con un ebox extreme y con 2 sensores de temperatura conectados a el. Por lo tanto determinamos que los canales loggeados son (datos obtenidos del Race Studio):

Engine (RPM) -> 10Hz

Datalogger Temp -> 1Hz

Battery -> 1Hz

Speed -> 10Hz

Calculated Gear -> 10Hz

LatAcc -> 10Hz

Ebox temp1 -> 10Hz

Ebox temp2 -> 10Hz

Gas -> 10Hz

Entonces la informacion agrupada seria:

C2 0F 61 09 51 05 00 00 FE CF 00 00 32 02 E4 00 00 00

 08 10 00 00 FE CF 00 00 32 02 E4 00 00 00

 41 10 00 00 FE CF 00 00 32 02 E4 00 00 00

 55 10 00 00 FE CF 00 00 32 02 E4 00 00 00

 65 10 00 00 FE CF 00 00 32 02 E4 00 00 00

 7C 10 00 00 FE CF FE FF 32 02 E4 00 00 00

 85 10 00 00 FE CF 00 00 32 02 E4 00 00 00

 8F 10 00 00 FE CF 00 00 32 02 E4 00 00 00

 95 10 00 00 FE CF 00 00 32 02 E4 00 00 00

 A8 10 00 00 FE CF 00 00 32 02 E4 00 00 00 E0 D0

 B5 10 61 09 52 05 00 00 FE CF 00 00 32 02 E4 00 00 00

 C4 10 00 00 FE CF 00 00 32 02 E4 00

 00 00 C3 10 00 00 FE CF 00 00 32 02

 E4 00 00 00

Donde vemos que:

En el primer grupo vemos que, C2 0F corresponde a las 4034 rpm, 61 09 51 05 son los de datalogger temp y battery, 00 00 corresponde a velocidad o speed, FE CF es Calculated_gear (valor por defecto) ,00 00 es de LatAcc, 32 02 corresponden a EboxTemp1 que es 56.2, E4 00 corresponde a EboxTemp2 que es de 22.8 y los últimos 00 00 a Gas.

El grupo siguiente vemos 08 10 = 4104rpm, 00 00= velocidad 0, FE CF =calculated gear 00 00 es LatAcc 0, 32 02 = EboxTemp1 22.8, E4 00 = EboxTemp2 22.8, y 00 00 % de gas o acelerador.

En este “run” observamos que de los canales analógicos del ebox extreme solo hay configurado uno que corresponde a “gas” o acelerador, los otros 2 estan en none y por lo tanto no son registrados.

bueno... esto es lo que he observado sobre la comunicacion del DataKey y la PC... como ya dije, no encuentro ninguna motivacion, ni utilidad en continuar con este aspecto del DataKey. Si a alguien le interesa el tema y quiere continuarlo con gusto lo ayudare y dare alguna informacion extra que tengo.