2008-12-11 07:00:17     CAN Communication

Document created by Aaronwu Employee on Aug 9, 2013
Version 1Show Document
  • View in full screen mode

2008-12-11 07:00:17     CAN Communication

ivan ucles (GERMANY)

Message: 66631   




i've written two functions to send and receive can messages on the bf537.


Now, i'd like to execute automatically the receive function in the first board when  the second board sends a message.


What would be the best way to do that?






2008-12-11 15:21:57     Re: CAN Communication

Mike Frysinger (UNITED STATES)

Message: 66644   


sorry, but what exactly do you want to do ?  your code is running in userspace, so tell it to do whatever you want ...




2008-12-12 04:03:52     Re: CAN Communication

ivan ucles (GERMANY)

Message: 66648   


I want the reception of messages to be automated.


For this purpose do i have to implement an interruption connectig for example CANTX of one board


to a GPIO of the other board?


or it is possible to do it just connecting CAN HIGH and LOW?




2008-12-12 15:03:42     Re: CAN Communication

Miquel Soler i Mir (SPAIN)

Message: 66667   




I'm sorry but I don't understand 100 % your question. I'm working with a project that uses CAN bus.


First of all, are you using the driver can4linux ?


Have you a file called can0 in /dev folder ?


Im my case, I'm openning this file with different parameters (Blocking read, non blocking...).


If you have a compiled program working to read and write CAN messages, you can add in the kernel and start using the rc file.


I hope that  this can help you.


Miquel Soler i Mir




2008-12-13 10:20:12     Re: CAN Communication

ivan ucles (GERMANY)

Message: 66693   


Hola Miquel,


gracias por tu respuesta.


El programa ya lo tengo compilado y añadido al kernel, y funciona:


puedo enviar y recibir mensajes de una placa a otra.


Lo que quería ahora es que cuando desde una de las dos placas


se envia un mensaje, en la otra se ejecute el programa para recibir, sin


necesidad de que yo lo llame.


Por eso preguntaba si tengo que programar una intrerrupción conectando


CANTX (que genera un pulso en la placa que envia el mensaje) con un GPIO de


la placa que recibe el mensaje. O si, por lo contrario, podria hacer esto


simplemente conectando las placas como hasta ahora con CAN+ y CAN-.


Me he explicado ahora mejor?


A lo mejor tú me puedes dar alguna sugerencia