Muy buenas a los usuarios de este magnifico foro,
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.
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