Manual de uso para la librería

Publicado el marzo 30th, 2009 en General.

Ya tengo lista la primera versión del Manual de uso para la librería de ArCan. En ella se detalla el uso de todas los métodos públicos de la clase ArCan.

Descárgalo desde la forja del proyecto o directamente.

Si tenéis alguna duda, ya sabéis donde encontrarme ;).



16 Comentarios »

  1. Creo que tienes una errata en el manual de uso. En la función mode_normal() cuando pones el ejemplo pones mode_loopback() cuando debería ser mode_normal() no? Es una chorrada pero bueno.

    Y una pregunta que quería hacerte. Yo la verdad es que no entiendo apenas de electrónica y no entiendo muy bien como va el tema de las placas que has montado. La cosa es si me serviría tu placa para leer los mensajes que van por el CAN Bus en un coche? Supongo que sí. Pero… como se supone que se conectaría tu placa a los pines del coche?

    Gracias por responder, un saludo y que sigas con el proyecto que es la ostia!

    Comment by Juan — 31 marzo 2009 @ 13:01

  2. Tienes toda la razón! Espero que a lo largo del día pueda sacar una nueva revisión.

    Con lo de si se puede conectar al coche, la respuesta es, sí. CAN es un protocolo estandarizado, por tanto todo lo que “hable” CAN se entiende sin problemas, al menos en teoría. La forma de conectarlo depende el tipo de clavija que tenga el coche, existen varios formatos, pero sin duda todas, tendrán los pines CAN-H, CAN-L y GND.

    La verdad es que todavía no he tenido tiempo para conectarlo al coche, pero sin duda es uno de los próximos objetivos del proyecto.

    Adelantar que ya he hablado con gente interesada en este tema y es posible que pronto trabajemos juntos, ya os daré la noticia.

    Un saludo y gracias por el comentario 🙂

    Comment by Raúl Milla — 31 marzo 2009 @ 13:16

  3. Vale, ya voy pillando como va el tema. He estado buscando por Internet y lo que habría que hacer para conectarlo al coche sería hacer el cable este: http://scantool.imechatronics.com/obd_cable_drawing.png no?

    Y luego en el cable serie habría que conectar el CAN-H, CAN-L y GND al ArCan? Y GND cúal sería? el Chassis Ground o el Signal Ground?

    Una vez conectados esos pines al ArCan, se deberían poner leer los mensajes verdad?
    Y los demás pines no sirven para nada en el protocolo CAN-BUS?

    Gracias por todo, un saludo.

    PD: Siento si molesto con tanta pregunta, pero es que me interesa el tema y no entiendo apenas de electrónica.

    Comment by Juan — 1 abril 2009 @ 10:38

  4. Realmente el GND no habría que conectarlo 🙂 solo el CAN-H y el CAN-L. En este post tienes explicado la capa física, http://www.arcan.es/?p=134.

    En resumidas cuentas, la información solo viaja por esos cables, si añades GND lo único que te aseguras es que el sistema sea más robusto, porque CAN especifica que si alguna de las lineas CAN-X fallán, la comunicación se realizará entre CAN-Y(la que sigue viva) y GND.

    Si no lo entiendes pregunta sin miedo :D.

    Un saludo.

    Comment by Raúl Milla — 1 abril 2009 @ 12:19

  5. Gracias de verdad. Ya voy entendiendo un poco más como va la cosa. Lo suyo entonces sería hacer una especie de cable que vaya del de 16 pines del coche a 3 pines para enchufarlo al ArCan.
    A ver si más adelante tengo tiempo libre y te compro una placa para probarlo en el coche.

    Comment by Juan — 2 abril 2009 @ 10:36

  6. El amigo Juan parece q tiene en mente el mismo proyecto que yo, usar tu ArCan para la comunicarse con la ECU de un vehiculo, una solucion realmente economica si la comparamos con los conocidos cables actuales basados en el integrado ELM327, propongo que le eches un ojo a esto compañero Juan http://code.google.com/p/opengauge/wiki/OBDuinoInterface
    En cuanto al gran trabajo de Raul, mi mas sincera enhorabuena y felicitacion.

    Comment by Koopah — 2 abril 2009 @ 17:02

  7. Al parecer este es el tema que más interesa a la gente que entra al blog, inicialmente quería usar CAN en entornos domóticos, algo sin duda innovador, pero creo que esta idea “no vende”. Es muy posible que de un timonazo al proyecto y termine dedicando mis esfuerzos a un sistema de diagnosis para el automóvil.

    Comment by Raúl Milla — 2 abril 2009 @ 18:45

  8. Gracias Koopah, he estado leyendo el enlace y es exactamente lo que yo preguntaba.

    Ahora la cosa es que he estado buscando, y por lo visto los coches tienen varias subredes CAN, que van a distintas velocidades (una para cosas del motor, otra para cosas de confort,…). Así que ya ahí si que me pierdo del todo.

    Se puede configurar de alguna manera la velocidad en ArCan? Y como es que hay varias subredes CAN si desde el enchufe OBD2 solo están accesible los 3 pines de una red CAN únicamente? Se mezclarían los distintos mensajes no?

    Bueno, aquí os dejo mi batería de preguntas diaría jejeje

    Comment by Juan — 3 abril 2009 @ 21:08

  9. Te recomiendo Juan que sin ir mas lejos leas el documento creado por Raul https://forja.rediris.es/docman/view.php/443/846/Manual%20Hardware_A5_v4.pdf o eches un ojo a la wikipedia, puede que te ayude a comprender un poco mejor el funcionamiento del protocolo. Si aun asi puedes tener alguna cuestion mas especifica intentare al menos por mi parte ayudarte en lo posible.

    Comment by Koopah — 3 abril 2009 @ 21:32

  10. Hola Juan,

    La velocidad de ArCan es configurable, aunque ahora mismo en la librería está fija. Voy a intentar hacer las modificaciones necesarias a lo largo de la semana, pero no aseguro nada que estoy saturado de curro.

    Por otro lado, es importante saber que ArCan aún no tiene ninguna capa de aplicación definida. Existen varias capas, CANopen, DeviceNet, J1939 y algunas más. J1939 creo que es la que está especialmente definida para automoción. Así que uno de los posibles caminos que podría tomar el Proyecto ArCan sería la implementación de una librería para la capa de aplicación j1939 sobre ArCan.

    Como vemos son mucho los caminos que podría tomar el Proyecto ArCan, porque existe muchas capas de aplicación, todas ellas soportadas, en principio, por ArCan, pero es necesaria su implementación.

    Toda la gente que esté interesada en ayudar que me escriba para intentar coordinarnos. Como veis, aún tenemos mucho que hacer 🙂

    Comment by Raúl Milla — 6 abril 2009 @ 12:58

  11. Koopah gracias de nuevo por los enlaces. He estado leyéndo y sigo sin comprender como se hace para tener varias redes CAN, cada una a una velocidad diferente, sobre el mismo bus CAN. Porque al ser de distintas velocidades, el tiempo de bit cambiará no? como se sincroniza el CAN Controller al bus sino hay ningún reloj? o sea, quién le dice a un nodo que los bits duran X microsegundos, para que los pueda leer uno a uno?.

    Por cierto Raúl, a mi me encantaría ayudarte en todo lo posible en este proyecto. Te he mandado un correo para que te puedas poner en contacto conmigo si quieres.

    Comment by Juan — 6 abril 2009 @ 15:13

  12. No soy experto en el tema y mis conocimientos electronicos se reducen a poca cosa la verdad, pero como siempre se ha dicho “querer es poder”, tiendo la mano yo tb para ayudar en la medida de lo posible 🙂

    En respuesta al señor Raul, creo que la “capa” que mas se ciñe al proposito es el estandard SAE J1979.

    Juan no se de donde has leido el tema de varias redes CAN, no digo que yo tenga la razon pero creo q te equivocas en las supuestas subredes. Solo hay una red a la que tu tienes acceso desde el conector OBD de tu vehiculo, el mensaje que inyectas al vehiculo es leido por uno u otro dependiendo de varios identificadores o PID´s. Como se explica basicamente en el manual de Raul acerca del CAN-BUS el mensaje se acepta o se desecha por cada uno de los componentes de la red. Por ejemplo, imaginemos que llegas a conectar tu hard al obd de tu coche y tal, en mi caso es un ford, y le envio el siguiente “mensaje”:

    E4 10 F1 01 0C 17

    E4 10 F1 es la cabecera del mensaje
    01 0C es el PID de las revoluciones
    17 fin de mensaje o algo asi…

    Si todo ha ido bien ese PID sera desechado por todos los componentes de la trama del bus excepto por el encargado de devolverme las revoluciones, que aceptara el mensaje y me devolvera otro mensaje con el valor que sea
    o puede devolverme un eco del mensaje que yo he enviado , para decirme que algo ha ido mal o vete tu a saber.

    La lista de PID´s para J1979 se puede ver aqui
    http://en.wikipedia.org/wiki/OBD-II_PIDs
    pero aparte cada constructor o fabricante lo extiende a su gusto.

    No se si tendre razon pero bueno es con lo q me he quedado y una parte de las cosas q he conseguido indagar en el mundillo, a ver si esto sigue palante y depaso aprendemos todos un poco mas! THX

    Comment by Koopah — 6 abril 2009 @ 20:14

  13. Estupenda respuesta Koopah!!!

    Tienes toda la razón. Aclarar que J1939 corresponde a una de las normas de la Sociedad de Ingeniería Automotriz SAE para el envío de datos por CAN bus en “vehículos pesados”.

    SAE J1979 es donde está definido el estándar OBD, que para nosotros sería un buen punto de partida 🙂

    A ver si dando una buscada conseguimos la norma completa, a ver qué se puede hacer…

    Gracias a todos!!! es muy reconfortante ver que la gente quiere participar en el proyecto. En cuanto coja un poco de tiempo enchufo ArCan al coche XD

    Comment by Raúl Milla — 6 abril 2009 @ 20:38

  14. Por cierto!!!

    Koopah no me digas “señor Raúl” 🙂 que hace una semana cumplí años y me deprimes 🙂

    Comment by Raúl Milla — 6 abril 2009 @ 20:40

  15. En elektor plantearon algo parecido: http://www.elektor.es/revistas/2008/septiembre/comunicarse-con-can.645698.lynkx.

    Saludos y ánimo.

    Comment by zas — 19 abril 2009 @ 23:50

  16. buenas compañeros!
    bueno, lo primero decir que yo voy un poco perdido en este mundo todavia. me apasiona la robotica, y asta hace poco solo trabajaba con lego mindstroms, asta que me decidí a comprarme el arduino mega, con el cual tengo muchos quebraderos de cabeza y muchas preguntas.

    bueno, os comento mi asunto.
    estoi instalando un car pc en el coche, y viendo las ventajas de arduino, me decidí a trabajar con el en este proyecto.
    la cuestion es que me gustaria que desde el ordenador yo pudiera bajar las ventanillas o subirlas, hacer saltar la alarma, hacer consulta del estado del tanque del gasoil, o cosas asin, pero utilizando el can- bus del coche
    mi coche es un seat leon de los nuevos, y tengo un programa llamado vag-com desde el cual yo me meto en los modulos y puedo hacer lo que quiera, como por ejemplo lo de los cristales.
    mi pregunta es la siguiente: esto se puede hacer con mi arduino mega y esta placa? y como puedo aberiguar que codigos enviarle para ejecutar dichas ordenes?
    perdonar por el tocho y muchas gracias por la paciencia!

    Comment by Kjordi69 — 18 enero 2010 @ 20:06

RSS feed for comments on this post. TrackBack URL

Dejar un comentario

Disculpa, debes iniciar sesión para escribir un comentario.