4 votos

CANUSB SJA1000 Filtrado

Estoy usando un CANUSB adaptador conectado a mi coche intentando leer sólo PUEDE mensajes con 11 bits identificador de 0x1D6. Necesito hacer hardware de filtrado, ya que el software de filtrado es demasiado lento para mi aplicación.

El CANUSB descripción de protocolo (http://www.can232.com/docs/canusb_manual.pdf) se explica cómo configurar el filtrado, y se refiere a la SJA1000 hoja de datos (http://www.nxp.com/documents/data_sheet/SJA1000.pdf) para una descripción en los registros de hardware involucrados.

Para configurar la aceptación código escribo "MFFFFF3AC\r" en el puerto serie. Este debería ser el equivalente a la configuración de AC0=FF, AC1=FF, AC2=F3, AC3=AC en un SJA1000 controlador. Yo me vine con estos valores por el cambio de 1D6 a la izquierda un poco, ya que el último bit es utilizado para la RTR, que no me importa.

Para configurar la aceptación de la máscara escribo "mFFFFF001\r" en el puerto serie. Por lo que entiendo que esto debe establecer el SJA1000 el controlador de filtro utilizando sólo el 11 bits identificador especificado anteriormente.

Estos son los Identificadores que tengo con esta configuración:

0x0a8 0010101000
0x0aa 0010101010
0x0c0 0011000000
0x0c4 0011000100
0x0c8 0011001000
0x0d7 0011010111
0x2d5 1011010101
0x2fa 1011111010
0x31d 1100011101
0x328 1100101000
0x330 1100110000
0x349 1101001001
0x360 1101100000
0x364 1101100100
0x3b0 1110110000
0x3bd 1110111101

Como se puede ver, no hay signos de 0x1d6. Yo a ver si me reinicie el dispositivo sin necesidad de entrar en el filtrado de comandos.

Puede alguien familiarizado con SJA1000 filtrado de decirme qué estoy haciendo mal aquí?

2voto

WhatRoughBeast Puntos 20870

Sospecho que usted es la víctima de un profundamente, profundamente errónea manual. Me doy cuenta de la "r" y "R" de comandos, que uno pensaría que son los comandos de lectura, aparecen como los comandos de lectura, pero se describe como transmitir. Además, afirma que el 11-bits identificadores pueden ser seleccionados sobre la totalidad de 11 bits, pero no de 29 bits identificadores. Esta es una obvia garbling de la función de la SJA1000 en el modo básico, donde sólo el 8 msb de los 11 bits de identificador de campo pueden ser filtrados. Incluso permitiendo el inglés como una segunda lengua, esta no es una buena señal.

Usted no lo dijo, pero supongo que tienes que probar involucrados enganchar a una ya existente CANBus de autobuses y leer lo que hay en él. Además, sospecho que las unidades existentes, todos usan el estándar (no extendido) IDENTIFICACIÓN de campo con 11 bits, y está utilizando el "riii" comando para leer.

La primera cosa que usted necesita entender es que el manual no tiene sentido. Comparar Fig.9 y Fig.10 en el NJA100 manuales. Para las 11 de la licitación id el id de datos está contenida en ID 28-18,con máscara de registros 0 y 1 que se utiliza. Para el 29 de bits identificadores, el 11 lsbs son ID10-0, y la máscara de los registros correspondientes son el 3 y el 4. Parece que el manual es usando el comando R, y, a continuación, de alguna manera, pretendiendo que el id es el formato como si se tratara de leer con el comando r, si eso tiene sentido. La afirmación de que el uso de E0 en lugar de F0 para ocultar el bit RTR es la confirmación de esto.

Más de la confirmación viene de tu id de datos. Su máscara de instalación no discriminar en la alta bits, y me doy cuenta de que todos los 10 de identificación de bits se muestran han acivity, es decir, están respondiendo a lo que no le importa en la máscara.

Una de las cosas que he hecho a la derecha (creo) es la izquierda-el cambio de su máscara de bits, pero no a causa de la RTR consideraciones, pero en orden de izquierda-justificar el 11 bits id de la 12 a la izquierda-la mayoría de los bits de los registros.

Así que me gustaría probar M3ACFFFFF y m000FFFFF lugar. Si eso no funciona, pruebe varias combinaciones de bits en la AC0 y AC1 registros, y ver los identificadores de detectar.

2voto

John Burley Puntos 698

El CANUSB dispositivo permite que la SJA1000 en "doble filtro" modo de lo que quieren estar buscando en las figuras 11 o 12 (dependiendo de si su son el filtrado de 11 bits o de 29 bits Identificadores) de la SJA1000 manual.

Usted puede ver esta especificación, coinciden con el ejemplo dado en el CANUSB manual para el M y m (código y la máscara de comandos). Para la máscara, un poco de 1 significa "no me importa" y un poco de 0 significa "cuidado". Si usted no desea utilizar el filtro "1" parte (que no solo compara el ID, pero también el primer byte de datos en el mensaje, que establece el código y la máscara de bits que corresponden al filtro 1 a todos los 0s (de modo que sólo coincidirá con un ID y datos byte de 0, que no va a pasar).

Suponiendo que usted no se preocupe de la RTR bits que desea utilizar: M00003AC0 y m00000010

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X