Tengo algunas ideas con las que quiero jugar en mi coche. En todo mi tiempo libre inexistente, estoy investigando un registrador CAN de Linux. ¿Alguien ha trabajado en esta área y tiene algo que compartir?
messex,Solo por curiosidad, ¿qué versión de Excel estás usando? Pensé que 2010 permitía más de 65k filas, pero podría estar equivocado.
Enviado desde la aplicación AutoGuide.com
Hola Jim,Así que la primera prueba no salió tan bien.
Aparentemente, la protección CAN y el programa que me dieron no funcionan con el Arduino Mega. La protección CAN tiene una ranura micro-SD para el registro, pero la configuración de los pines es diferente para la placa Mega.
Así que corrí a Radio Shack y compré un Arduino Uno por $29.99 y problemas resueltos... al menos con la tarjeta SD.
Estaba emocionado y corrí al coche para conectarlo y empezar a registrar. ¿Y adivinen qué? Los E60 Pre LCI no tienen señales CAN en el puerto OBD...
Así que, ahora hay que encontrar un lugar de fácil acceso para conectar el bus CAN. Hasta ahora, estoy pensando en el maletero en el módulo PDC. Incluso podría mover el módulo PDC fuera del hueco de la rueda de repuesto (suponiendo que esté allí en los Ms como en los no-Ms) como han hecho muchos chicos de bimmerforums para evitar la posibilidad de un derrame de líquido en el maletero que lo inunde.
Publicaré más cuando lo conecte y recopile algunos datos.
Remco, me alegro de que hayas intervenido aquí. Este fue un experimento que funcionó bien y mi objetivo final era tomar un módulo PDC de repuesto y reutilizarlo para "monitorear" el bus CAN como un módulo de "paso", por así decirlo. La ubicación en la parte trasera proporcionaría espacio para instalarlo y usar los datos del bus para señalar otras cosas como se desee en todo el automóvil. Una de las muchas ideas que parece que nunca tengo tiempo/prioridad para seguir.Hola Jim,
Cuando se conecte a CAN en cualquier lugar que no sea el OBD-II, asegúrese de utilizar la resistencia de terminación adecuada en su placa transceptor. Un bus CAN está diseñado como una "columna vertebral" a la que se conectan los participantes. Si es un punto final, debe terminar con 2 x 60 ohmios a tierra unidos a través de un condensador de 10 nF. Si está en el 'medio' del bus (donde normalmente debería estar apuntando), no termina. Por lo tanto, tenga en cuenta la posición de su bus e intente conectarse 'en el medio'. De lo contrario, causará reflexiones y puede tener problemas de calidad de la señal.
Ahora, en el bus CAN del actuador del acelerador y en los buses CAN del solenoide VANOS, debe conectarse sin terminación porque es un bus CAN de alta velocidad punto a punto. No hay medio: usted es con su sniffer. Estos son los interesantes en mi opinión :wink, especialmente si puede alinearlo en el tiempo con los datos de registro. Por cierto, estos transceptores en particular están fabricados por Infineon (TLE6250G) que funcionan a 1 Mbit/s. Por lo general, es mejor utilizar los mismos transceptores en modo de escucha para obtener la mejor fidelidad, pero bueno, también funcionará con un TJA1043 de NXP, lo apuesto. ¿Qué transceptor se utiliza en la configuración de Arduino?
No estoy seguro acerca de las otras redes CAN en nuestros automóviles y sus velocidades de datos exactas. Algunas redes de alta velocidad funcionan a 500 kbit/s. Entonces, tenga cuidado. Un osciloscopio barato es útil en tales asuntos. Tengo uno si es necesario.
El mejor software y hardware para el registro es este: CANalyzer
Pero es muy caro. Es lo que utilizan las empresas automotrices, ya que en muchos casos ejecutan su software en un Vector OS (basado en OSEK). Busqué en eBay, pero no apareció nada. Sorpresa sorpresa. No me esforcé mucho, debo decir. Sin embargo, diga la palabra y puedo ir con un juego de herramientas cuando las preguntas se pongan difíciles!
Cierto para todos los ArbIds en PT-CAN, K-CAN, ByteFlight, LLS-CAN y DK-CAN. Los ArbIds son únicos y se les asignan sus números por prioridad, por lo que tiene sentido mantener el orden consistente.Las RPM en bruto (no optimizadas para KOMBI) están integradas en la ID del mensaje K-CAN, bytes 4 y 5, como un entero sin signo de 16 bits. Las ID de mensaje K-CAN y PT-CAN son las mismas. Estos mensajes se transmiten aproximadamente a una velocidad de actualización promedio de 100 ms (mientras que en PT-CAN sería un promedio de 10 ms). Gracias BMW por hacerlo fácil.
Lo sé. Pero las suposiciones son para los débiles, así que tuve que comprobarlo. ¡LOL!Cierto para todos los ArbIds en PT-CAN, K-CAN, ByteFlight, LLS-CAN y DK-CAN. Los ArbIDs son únicos y se les asignan sus números por prioridad, por lo que tiene sentido mantener el orden consistente.
Publicación abreviada de Terra arriba para lo que creo que la mayoría busca aquí.Publiqué esto en bimmerforums, pero probablemente también lo encontraréis útil. Lo encontré mientras investigaba en tool32
Listado de para qué sirven un montón de ID de mensajes y de qué módulos se originan. Faltan algunos ID cuando compruebo con mi 535xi, por lo que la lista está incompleta, pero aún así es mucho mejor que volar completamente a ciegas.Code:0x399 Status M-Drive [2] Status M-Drive [2] 0x12 DME1
0xB5 Drehmomentanforderung EGS [9] Torque demand EGS [9] 0x18 EGS_MECH+NAVI/EGS_MECH
0xB8 Drehmomentanforderung DKG [2] Torque requirement DKG [2] 0x18 DKG
0xBA Getriebedaten [20] Transmission data [20] 0x18 SMG_M/SMG/EGS_MECH+NAVI/EGS_MECH/DKG
0xBD Drehmomentanforderung SSG [6] Torque demand SSG [6] 0x18 SMG_M/SMG
0x1A2 Getriebedaten 2 [6] Transmission data 2 [6] 0x18 EGS_MECH+NAVI/EGS_MECH/DKG
0x1A3 Rohdaten Längsbeschleunigung [3] Raw data longitudinal acceleration [3] 0x18 SMG_M
0x1D2 Anzeige Getriebedaten [22] Transmission data display [22] 0x18 SMG_M/SMG/EGS_MECH+NAVI/EGS_MECH/DKG
0x304 Status Gang [13] Status Status [13] 0x18 SMG_M/SMG/EGS_MECH+NAVI/EGS_MECH/DKG
0x3B1 Getriebedaten 3 [2] Transmission data 3 [2] 0x18 EGS_MECH/DKG
0x498 Netzwerkmanagement Network management 0x18 DKG/EGS_MECH/EGS_MECH+NAVI/SMG/SMG_M
0x598 Dienste services 0x18 DKG/EGS_MECH/EGS_MECH+NAVI/SMG/SMG_M
Estaba mirando eso anoche. Estoy configurando mi simulador de mensajes CAN. Hay múltiples opciones aquí. Estaba pensando en el byte 4, bits 5 y 4. Esta es la parte de la luz M del tablero del mensaje. Un 01 o un 10 en estos bits indicarán que la luz del tablero / HUD M-drive está ENCENDIDA. Un 00 significa APAGADO. De esta manera, es agnóstico de un estado ECU particular en el vehículo. Esto también coincide con el rastreo CAN que dejaste en algún lugar anterior en este hilo. Debes haber estado alternando el botón M en ese experimento, por lo que pude ver.Publicación abreviada de Terra arriba para lo que creo que la mayoría busca aquí.
Hex ArbID para M-Drive es 0x399. Específicamente, puedes activar desde el byte 1, bits 7-8.
View attachment 774593
Incluso si codificas el módulo del volante a un VO M5 (presumiblemente eso es todo lo que se necesita), el coche aún no sabrá nada sobre esos marcos CAN.@jcolley, ¿tienes alguna novedad sobre tu proyecto? Estoy intentando activar el botón del volante M en el modelo E60 que no es M, así que si tienes algún consejo útil para mí, te lo agradeceré.
Bueno, ya he activado la vista M en el HUD de mi E60 no M, así que me gustaría poder activar/desactivar esa vista en el HUD cuando presiono el botón M en el volante. Actualmente, solo puedo activar/desactivar esa vista desde la configuración de iDrive. Vi que hay una opción M drive en el módulo SZL, que eventualmente puedo activar con la codificación NSC Expert, pero no sé a qué más puede estar relacionada esa opción y no quiero causar ningún problema con ella. Estaba pensando que puedo obtener los mensajes que se envían en el bus CAN cuando se presiona el botón M y, después de recibirlos, enviar nuevos mensajes al CIC para activar la vista M en el HUD. ¿Tiene sentido?Incluso si codificas el módulo del volante a un VO M5 (presumiblemente eso es todo lo que se necesita), el coche aún no sabrá nada sobre esos marcos CAN.
K-can está configurado como un bus serie y cada módulo ve el tráfico e ignora las cosas que no le importan. No estropeará nada si codifica SZL para que comience a enviar los marcos m-mode-on (lo único que he visto que echa a perder las cosas es la duplicación de mensajes 0x380 con un número de vin diferente).Bueno, ya he activado la vista M en el HUD de mi E60 que no es M, así que me gustaría poder activar/desactivar esa vista en el HUD cuando presiono el botón M en el volante. Actualmente, solo puedo activar/desactivar esa vista desde la configuración de iDrive. Vi que hay una opción M drive en el módulo SZL, que eventualmente puedo activar con la codificación NSC Expert, pero no sé a qué más puede estar relacionada esa opción y no quiero causar ningún problema con ella. Estaba pensando que puedo obtener los mensajes que se envían en el bus CAN cuando se presiona el botón M y, después de recibirlos, enviar nuevos mensajes al CIC para activar la vista M en el HUD. ¿Tiene sentido?
Sí, sé cómo funciona el bus CAN. Probablemente no fui claro en mi publicación anterior. Me temo no romper nada, lo cual está funcionando bien en este momento. Por ejemplo, mi coche está equipado con el sistema de advertencia de salida de carril, que no existe en los modelos M. Ese sistema se puede activar/desactivar desde el botón, que se encuentra debajo del botón M. Si habilito el modo M en el SZL, puedo perder la capacidad de iniciar y detener ese sistema. Este es solo un ejemplo que puedo dar, pero probablemente pueda haber algunos otros casos en los que la habilitación del modo M en el SZL pueda conducir a un resultado negativo. Además, como usted mencionó, habilitar el modo M en el SZL puede no ser suficiente y es posible que deba habilitar otras opciones en otros módulos... sin embargo, puedo intentarlo fácilmente y si el resultado no es lo suficientemente bueno, puedo revertir esa configuración.K-can está configurado como un bus serie y cada módulo ve el tráfico e ignora las cosas que no le importan. No estropeará las cosas si codifica SZL para comenzar a enviar los marcos m-mode-on (lo único que he visto que echa a perder las cosas es duplicar los mensajes 0x380 con un número vin diferente).
Lo más probable es que CIC los ignore de todos modos, hasta que lo codifique para habilitar esa funcionalidad; no estoy seguro de si puede habilitarlo codificando para activar la funcionalidad, o recodificando todo el CIC con un VO que lo tenga. Probablemente lo primero, sin embargo, por mi experiencia, las cosas de VO no hacen mucho.
De cualquier manera, hacer eso debería ser más fácil que configurar un arduino como un tipo de intermediario.
Err, supongo que no veo cómo obligarás al SZL a enviar algún marco CAN desde el botón M, si esa función no está codificada. IIRC, la señalización entre los botones y el SZL se basa en la resistencia, por lo que poner un arduino entre eso sería un gran dolor de cabeza. Por otro lado, ejecutar un cable separado al botón m requeriría un resorte de reloj con más cables (¿tal vez uno con volante térmico? aunque es posible que esté SOL con la vibración de salida de carril en el volante)Sí, sé cómo funciona el bus CAN. Probablemente no fui claro en mi publicación anterior. Me temo no romper nada, lo cual está funcionando bien en este momento. Por ejemplo, mi coche está equipado con un sistema de advertencia de salida de carril, que no existe en los modelos M. Ese sistema se puede activar/desactivar desde el botón, que se encuentra debajo del botón M. Si habilito el modo M en el SZL, puedo perder la capacidad de iniciar y detener ese sistema. Este es solo un ejemplo, que puedo dar, pero probablemente pueda haber algunos otros casos en los que habilitar el modo M en el SZL puede conducir a un resultado negativo. Además, como usted mencionó, habilitar el modo M en el SZL puede no ser suficiente y es posible que deba habilitar otras opciones en otros módulos... sin embargo, puedo probar fácilmente y si el resultado no es lo suficientemente bueno, puedo revertir esa configuración.
Y, finalmente, si logro el resultado que quiero a través de la codificación, no será tan divertido como lograrlo con Arduino![]()
Sí, esa es la terminación adecuada para el K-can. Echa un vistazo al boceto de arduino aquí.Hola chicos, reviviendo un hilo antiguo - ¿alguien puede compartir su boceto de Arduino utilizado para oler los mensajes k can? Además, ¿alguien puede confirmar que se requerirían resistencias de terminación de 120 ohmios de H y L a tierra al conectar al k can en el PDC?