Autor Tema: Mis experiencias con el BUS CAN  (Leído 892215 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7907
Re: Mis experiencias con el BUS CAN
« Respuesta #825 en: 20 de Agosto de 2010, 08:48:35 »
Los filtros son para la recepcion de mensajes, para filtrar mensajes en un bus complicado con mucha mensajeria.
En una aplicacion hasta 5 dispositivos es mejor filtrar por ID como estabas haciendo antes, ya que de otro modo es dificil que puedas hacer un buen debug de tu aplicacion (los mensajes que son filtrados ni siquiera se ven).
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado conilete

  • PIC10
  • *
  • Mensajes: 29
Comunicacion CANOpen
« Respuesta #826 en: 26 de Agosto de 2010, 07:36:11 »
Muy buenas a los usuarios de este magnifico foro,

Citar
Hola a todos.
Trabajo en un departamento de investigacion, y estamos trabanjando con un robot con una serie de sensores controlados mediante bus CAN.
Me han encargado realizar el siguiente trabajo:
Me han pasado una libreria de comunicaciones basada en CANOpen, y debo programar el controlador de una placa para controlar una serie de sensores. Estoy a la espera de que me den el PIC sobre el que se va a realizar el trabajo.
Dispongo de dos herramientas: el CAN Analyzer y el CAN Case XL.
No tengo experiencia en la programacion de PIC's, por lo que os pido consejo sobre cuales serian los primeros pasos que debo realizar y que documentacion debo ir mirando primero.
Segun he visto por Internet, es necesario usar el software CANOpen Design Tool y el CANOpen Device Manager...¿me equivoco?
Otro aspecto que me gustaria aclarar, es si el compilador que debo usar es el CCS.
Un saludo, y espero vuestra ayuda en forma de comentarios.
Muchas gracias


Este mensaje lo escribi hace un par de meses.

Citar
Hola
Ante todo, muchas gracias por contestar, he buscado mucho por internet, y sin duda este es el mejor foro (y casi puedo decir unico) que trata Bus CAN que he encontrado.

Bien, en estos dias he progresado bastante sobre la programacion de PIC's en C. Buscando tutoriales sobre programacion en C de PIC's y practicas resueltas, he conseguido avanzar bastante sobre el uso de los puertos, transmision serie (USART), interrupciones, etc
Hablando con mi profesor, me recomendo usar el CCS, por lo que creo que ya es un poco tarde para cambiar de compilador :S, sin embargo, espero que esto no sea una gran trava para conseguir el objetivo!!
Todos las practicas que he hecho para familiarizarme con los PIC's las he realizado en CCS y usando el simulador PROTEUS.
Pero aun veo bastante lejos el poder programar un protocolo de comunicaciones basado en CAN sobre la placa.

Bien, empiezo a contarte:
La libreria que tengo es una que se ha comprado a la empresa alemana PORT, y me ha comentado que vale una pasta, por lo que aunque a mi no me importaria, comprenderas que me es imposible pasarla.

El objetivo global de nuestro proyecto, es controlar todos los sensores mediante CAN de un robot autonomo que realiza las funciones de un camion de bomberos.
Actualmente ya hay implementado un protocolo sobre J1939, por lo que lo primero que he hecho ha sido pedir dicho programa, para ver aspectos comunes que puedan ser reutilizados. Ya tengo este programa en mis manos.

Lo siguiente ha sido pedir el diseño de la placa sobre la que va a ir montado CANOpen, en formato electronico, para poder realizar simulaciones con el PROTEUS, ya que la placa, fisicamente hablando aun no esta terminada. Aun estoy a la espera de que me lo pasen. El pic que se va a utilizar es un PIC 18f2680, que cumple con los requisitos que me indicastes.
La norma CANOPen ya me la he leido, fue lo primero que hice.

Pues bien, voy a seguir tus indicaciones, y en los proximos dias voy a mirarme los post que considero que pueden ser mas interesantes. En cuanto a la nota que me dices de Microchip, he estado buscando, pero no se muy bien a cual te refieres...si pudieses pasarme el enlace...

Este fue mi ultimo mensaje escrito en este foro.
Me fui de vacaciones, y la verdad que estaba bastante desanimado, pero he vuelto con energias renovadas.
Lo que me da rabia es que no puedo aprovechar al maximo las posibilidades que me da este foro, puesto que casi todos los proyectos que aqui aparecen se basan en librerias de CAN publicas, y la comunicacion se basa en el envio de mensajes a traves de mascaras y filtros.
En CANOpen, toda las comunicaciones se realizan a traves del diccionario de objetos, en el que se encuentran todos los nodos de la red, y los servicios asociados.
La herramienta que he encontrado para diseñar dicho diccionario de objetos es la CANOpen Design Tool. Yo tengo la version demo, que me descargado de la pagina de Port. Con esta version, se pueden crear 10 objetos. Si queremos ampliarlo, debemos hacerlo ya a mano.

¿Podriais ayudarme a crear un diccionario de objetos lo mas simple posible, unicamente para poder enviar una trama a traves de la red CANOpen?

Si quereis, puedo dejar el esquematico del nodo CAN que va a controlar los sensores de la red, que es el que dispongo.


Espero vuestros comentarios, y aver si entre todos avanzamos un poco en este protocolo.
Muchas gracias de antemano

Miguel Angel

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7907
Re: Mis experiencias con el BUS CAN
« Respuesta #827 en: 26 de Agosto de 2010, 08:09:30 »
El diccionario de objetos del cual hablas no es mas ni menos que un conjunto de parametros y valores a leer del dispositivo CanOpen que vas a crear.
Claro que lo que hace ese software es mapear esas variables a direcciones CanOpen validas, para que no tengas que leerte una parva de libros sobre CanOpen.

Respecto al uso de librerias, es dificil ayudarte sin conocer que cosas tiene.
Seguramente debe haber un ejemplo funcional junto a esa libreria, el sentido comun indica que arranques usando esos ejemplos hasta aprender como es la cosa...

El esquematico de la placa servira para aclararte si hay algun error de diseño en tu esclavo CanOpen.

Bienvenido de nuevo al foro... :mrgreen:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado conilete

  • PIC10
  • *
  • Mensajes: 29
Re: Mis experiencias con el BUS CAN
« Respuesta #828 en: 26 de Agosto de 2010, 08:32:38 »
Pero es que la comunicacion mediante CANOpen se basa en aspectos muy diferentes a los que se habla a lo largo de las 42 paginas de este foro.
El modelo de comunicaciones CANOpen define 4 tipos de mensajes (objetos de comunicacion):
- Objetos administrativos: mensajes para la configuracion de las distintas capas de la red asi como la inicializacion.
- Service Data Objetcts (SDO): leer o escribir cualquiera de las entradas del diccionario de objetos
- Process Data Object (PDO): para el intercambio de datos de proceso
- Mensajes predefinidos: de sincronizacion, de emergencia y de time stamp.

La placa de la que dispongo consta de un PIC18F2680, un transceiver MCP2551, la interfaz RS-232: MAX3232, un regulador de voltaje, etc
Tengo el diseño imprimido en una pagina, pero no en formato electronico...pero podria conseguirlo

Una pregunta...si mi placa es la que va a controlar los sensores y recoger la informacion que estos den, sera un master CANOpen, no un esclavo no?

Lo que quiero es empezar a programar algo ya, por lo tanto te pediria que me indicases por favor, que seria lo que haria falta para realizar una simple comunicacion CANOpen entre mi placa y el sensor, y entonces vemos las funciones de la libreria que serian necesarias.

Miguel Angel

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7907
Re: Mis experiencias con el BUS CAN
« Respuesta #829 en: 26 de Agosto de 2010, 08:51:40 »
Pero es que la comunicacion mediante CANOpen se basa en aspectos muy diferentes a los que se habla a lo largo de las 42 paginas de este foro.
El modelo de comunicaciones CANOpen define 4 tipos de mensajes (objetos de comunicacion):
- Objetos administrativos: mensajes para la configuracion de las distintas capas de la red asi como la inicializacion.
- Service Data Objetcts (SDO): leer o escribir cualquiera de las entradas del diccionario de objetos
- Process Data Object (PDO): para el intercambio de datos de proceso
- Mensajes predefinidos: de sincronizacion, de emergencia y de time stamp.

La placa de la que dispongo consta de un PIC18F2680, un transceiver MCP2551, la interfaz RS-232: MAX3232, un regulador de voltaje, etc
Tengo el diseño imprimido en una pagina, pero no en formato electronico...pero podria conseguirlo

Una pregunta...si mi placa es la que va a controlar los sensores y recoger la informacion que estos den, sera un master CANOpen, no un esclavo no?

Lo que quiero es empezar a programar algo ya, por lo tanto te pediria que me indicases por favor, que seria lo que haria falta para realizar una simple comunicacion CANOpen entre mi placa y el sensor, y entonces vemos las funciones de la libreria que serian necesarias.

Miguel Angel

Si ya lo se, el BUS CAN es solo el medio fisico de CanOpen, lo que hace CanOpen es encargarse de la capa de software del modelo ISO.

Si quieres puedes escanearlo y ponerlo aqui o subirlo a imageshack y aqui pegar el link marcado con direct link.
Para pegar la imagen usas el cuarto icono de la barra que ves arriba al escribir un mensaje, que sirve para pegar imagenes de otros sitios.

Respecto a si es Master, por supuesto sera un Master si va a comunicarse con un esclavo, y respecto al esclavo, no se que tipo de sensor sera en que tienes...
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado conilete

  • PIC10
  • *
  • Mensajes: 29
Re: Mis experiencias con el BUS CAN
« Respuesta #830 en: 30 de Agosto de 2010, 06:47:07 »
Aqui tienes el esquematico de mi placa:


El problema es que no dispongo del conexionado de los elementos de los que consta.

Te mando una foto de la placa en cuestion, para aclarar cualquier tipo de duda sobre los componentes.



Estoy ocupado ahora con generar un diccionario de objetos para la comunicacion.
Como te dije, uso el CANOpen Design Tool.
Para crear el diccionario de objetos, debemos rellenar los siguientes apartados:
- General Settings: sin problemas...
- General EDS/XDD Settings: tengo dudas...parece que son datos administrativos...
- Hardware comunications: referente al hardware implicado en la comunicacion, sin problemas...
Linea CAN:
- EDS/XDD Settings: ¿?
- Aditional Settings: Mirando ejemplos que se incluyen al instalar la demo, en todos aparece vacio
- Objetct Dictionary: Necesitaria algo de ayuda para rellenar todos los campos...

Asi pues, si pudieses ayudarme a crear un pequeño diccionario de objetos para unicamente comunicar mi nodo con un sensor, enviandole unicamente una trama de datos...seria fantastico.

Posteriormente, con la ayuda de la libreria, dispongo de funciones para la lectura y escritura de esos elementos del diccionario de objetos.

Bueno, espero vuestros comentarios

Muchas graciasss!!


Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7907
Re: Mis experiencias con el BUS CAN
« Respuesta #831 en: 30 de Agosto de 2010, 08:02:59 »
Ok, debere bajar nuevamente el software ya que la maquina que lo tiene magicamente le dejo de funcionar el monitor por lo que fue a reparacion, deberas tener un poco de paciencia, si?? :lol: :lol:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado conilete

  • PIC10
  • *
  • Mensajes: 29
Re: Mis experiencias con el BUS CAN
« Respuesta #832 en: 31 de Agosto de 2010, 06:41:57 »
Por supuesto Marcos...pero eso te pasa por comprar monitores tan baratos  :lol: :lol:

Te cuento, lo que buscamos es unicamente que nuestro nodo mande tramas de datos.
Dispongo de varias herramientas, el CANcaseXL y el CANAnalyzer para luego monitorizar esas tramas y ver si se esta haciendo de forma correcta.
Ya los tengo instalados en mi equipo.
Pero tengo una duda, el hardware que trae estas herramientas, tiene un conector con el mismo tipo de salida CANL y CANH que trae la placa. ¿Como lo conecto entonces para monitorizar las tramas que voy a estar mandando?

Te mando una foto de dicho hardware.



Como siempre, muchas gracias

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7907
Re: Mis experiencias con el BUS CAN
« Respuesta #833 en: 31 de Agosto de 2010, 08:10:09 »

Pero tengo una duda, el hardware que trae estas herramientas, tiene un conector con el mismo tipo de salida CANL y CANH que trae la placa. ¿Como lo conecto entonces para monitorizar las tramas que voy a estar mandando?


Es simple, siempre en el Bus se conecta CanH con CanH y CanL con CanL de cada dispositivo, los dos hilos (que deberian ser retorcidos para mantener su inmunidad electromagnetica) viajan solos en todo el recorrido.
Para pruebas y con cableados cortos no importa si el cable esta retorcido o no, ni siquiera molesta si estan o no puestas las resistencias de fin de linea, al menos cuando es una conexion punto a punto.
Para conexiones multipunto, aunque sean cortas, ya empieza a tomar todas las precauciones.... :mrgreen:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado conilete

  • PIC10
  • *
  • Mensajes: 29
Re: Mis experiencias con el BUS CAN
« Respuesta #834 en: 31 de Agosto de 2010, 08:16:26 »
No te he entendido bien Marcos...el conector no me permite unir CANH con CANH y CANL con CANL. Debo quitar el conector del hardware que te mostre anteriormente y retorcer los cables en las salidas del conector CAN de la placa??

No se muy bien lo que quieres decir....


Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7907
Re: Mis experiencias con el BUS CAN
« Respuesta #835 en: 31 de Agosto de 2010, 09:18:53 »
No te he entendido bien Marcos...el conector no me permite unir CANH con CANH y CANL con CANL. Debo quitar el conector del hardware que te mostre anteriormente y retorcer los cables en las salidas del conector CAN de la placa??

No se muy bien lo que quieres decir....



Esto:

Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado conilete

  • PIC10
  • *
  • Mensajes: 29
Re: Mis experiencias con el BUS CAN
« Respuesta #836 en: 31 de Agosto de 2010, 09:44:38 »
Lo he entendido, quitare el conector que trae el hardware de monitorizacion de tramas CAN para poder conectarlo a la salida CAN de mi placa.

En cuanto al diccionario de objetos para hacer el envio de una trama por parte de mi placa que te comente en mensajes pasados, he pensado en usar el ejemplo s1 que viene con el software CANOpen Design Tool.

http://www.gigasize.com/get.php?d=3yrm8751vmb

¿Que te parece? Pienso que podria valernos para empezar...

¿Has visto el diagrama electrico de los componentes de la placa y la foto de la placa en cuestion? ¿Que te parece?

Un saludo y gracias por la dedicacion.




Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7907
Re: Mis experiencias con el BUS CAN
« Respuesta #837 en: 31 de Agosto de 2010, 11:17:59 »
No hay forma, no lo puedo descargar de esa pagina, esta bloqueada en mi proxy...
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado conilete

  • PIC10
  • *
  • Mensajes: 29
Re: Mis experiencias con el BUS CAN
« Respuesta #838 en: 31 de Agosto de 2010, 12:05:40 »

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7907
Re: Mis experiencias con el BUS CAN
« Respuesta #839 en: 31 de Agosto de 2010, 12:08:58 »
Esta es la contestacion de Megaupload:

Citar
El archivo al que está intentando acceder está temporalmente desactivado.
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.