Automotive and Embedded Networks

cancel
Showing results for 
Search instead for 
Did you mean: 

RTR settings (data/remote frame)

hi,
 
I would like to know whether I can configure RTR bit (0 for Data frame and 1 for Remote frame) using Channel API (Can Set Property.vi) in Labview? If yes, please kindly provide me the necessary poly settings required when using vi above. If no, please advise the pathforward for setting this bit.
Thanks.
 
Regards,
Han Sien
0 Kudos
Message 1 of 9
(7,676 Views)

Hi Han Sien,

Unfortunately there is no way to use remote frames with channel api. The only chance is to use a second port running the frame api. Or you could use the frame api in general and use the virtual interface to have the channel api to deal with your database.

DirkW

Message 2 of 9
(7,666 Views)

hi,

Thanks for your prompt reply.

I would like to know how we can configure in Frame API the RTR bit to 'Remote Frame'. Which blocks should I use? Do you have any example how to configure this? Regarding your proposal 'Or you could use the frame api in general and use the virtual interface to have the channel api to deal with your database', could you send me some examples how to do this, since I am not so familiar how we can use virtual interface in Channel API?

By the way, just wonder why we don't have this RTR setting in 'Channel API'? Isn't this setting common in CAN?

Thank you very much for the zealous support.

Regards,

Han Sien

0 Kudos
Message 3 of 9
(7,648 Views)
Hi Han Sien,
 
To send a remote Frame, you have only to set the remote flag. See the attached example. A remote frame has allways zero (0) data bytes and requests a slave to send data.
Thats the reason why it is not implemented in the Channel API.
The Channel api allways deals with data. Every channel represents a specific position within the message data bytes. Thus it makes no sense to send a channel within a remote frame (0 data bytes ).
However you could use the virtual channel and the channel api to send a specific message ID as a remote frame. See the second example for this.
 
DirkW
0 Kudos
Message 4 of 9
(7,640 Views)
Hi everybody, I'm new on this forum and on the world of CAN bus for automotive.
my name's Matteo and I'm a young and inexpert electroni engineer.
I saw this thread about remote frame in CAN communication, so I tried to put my questions on it.
I read the ISO document 11898-1 15765-1-2-3-4 and 15031-5. I have some question about the remote frame.
I read that a remote frame is used to do a request from the external test equipment to the ecu and the ecu must reply witn a data frame with the same identifier.
the remote frame is identical to the data frame but there's not the data field.
On ISO 15031-5 I saw that a request must be with a functional identifier because I don't know the address of the ecu.
for the 11 bit identifier the functional request identifier is 7DF, and for the 29 bit identifier is 18 DB 33 F1.
Now the problem is: How can I indicate to the ecu wich data I want in the data frame of reply?
the request functional identifier is standard! where I don't understand the communication protocol?
How can implement a request data remote frame?
Is it possible make a data request with a data frame?
Why in those ISO document the diagnostic services are implemented on the data byte of the message if I don't have any data field on the remote request frame?
please help me!
Matteo
0 Kudos
Message 5 of 9
(7,280 Views)
Hello Wech,

The device receiving the remote frame should know what to data to reply.  This will be "device specific".  For example, a voltage sensor might simply reply with the voltage it is sensing.  Another sensor may reply will "time, temperature and speed" everytime you send it a remote frame. 

Similarly, you can do a data request using a data frame.  This will be also be device specific.  In the example above, the second sensor may only reply with temperature if you send it a specific data frame. 

A starting point to learn CAN is this online tutorial.
O. Proulx
National Instruments
www.ni.com/support
0 Kudos
Message 6 of 9
(7,234 Views)

Hi Olivier,
thanks for answering. so it's possible make a data request using a data frame. I have to improve a communication beteween the ECU and a very simple diagnostic tester. I need to ask much more than a single value to the Ecu and on the ISO document I don't see the possibility of making request with a data frame.
I guess that in this data frame I have to use a request identifier (functional or physical?)....
Matteo

0 Kudos
Message 7 of 9
(7,232 Views)
Hello again wech,

I think what you are refferring to is the arbitration ID (11 bits at the beginning of the frame).  The ECU will respond in a specific way to different arbitration IDs.  So, the ECU should recognize which arbitration ID the diagnostic tester and respond appropriately.  If the another device communicates on the bus with a lower arbitration ID, the ECU will respond to it first.
O. Proulx
National Instruments
www.ni.com/support
0 Kudos
Message 8 of 9
(7,204 Views)

Hi Olivier,

I know the arbitration mechanism and that's not my problem.

The thing that I misunderstood was how to make a data request to the Ecu, because I read that the only way to do this, was trough a remote frame.

But now that you explained to me what a kind of request I can do with a remote frame and what a kind with a data frame, I understood the difference between the two in requesting data. This difference of use isn't mentioned on the ISO document. they only talk about the difference in bit field.

thank you

Wech

0 Kudos
Message 9 of 9
(7,193 Views)