Automotive and Embedded Networks

cancel
Showing results for 
Search instead for 
Did you mean: 

777357-02

Solved!
Go to solution
Hi,

I am very inserting in your product (777357-02)

I am not using realtime S/W, but still wish to get realtime performance... my bus bit rate is 1Mbit/s, i assume that not more than 500 bytes per second will be transmitted on this bus.
my questions:
1. I need to send "sync" message every 0.1 sec, is it possible to configure the card to send the message periodically without trig it from SW? what will be the timing accuracy of this message?
2. Can I configure the card in such way that it will send message ONLY 46 millisecond after the sync? - I will send it to the card (ncWrite)10-25 millisecond after the sync.
3. how big is the buffer on the card?
4. I read that the PCI bus (which the card connect to) transmit a 33.333MHz clock, Is it enough in order to get timing accuracy of 1 microsecond without using the rtsi?

thanks,
ofir.
0 Kudos
Message 1 of 4
(7,170 Views)

osasson,

 

The maximum bus rate is 1 Mbit/s and so I want to clarify that 500 Mbytes cannot be transmitted on the bus, but 500 Mbits can.

 

1.  You could possibly configure this to happen using the Channel API.  This would be fairly accurate after calling CAN Write as long as the input arrary had data in it.  Once CAN Write was called a second time, the timing would be off.

 

2. You could configure this with a fair ammount of accuracy the first time that the CAN write runs, however on subsequent calls the timing would be off again.

 

3.  More information on the CAN buffers can be found here.  The buffer depends on the API used.

 

4. No, this is not possible using a non-deterministic (non-RT) OS.

 

From your application description, it sounds like you need to use a Real-Time OS in order to get the performance that you desire.  The non-deterministic nature of Windows, Linux, etc will make this application very difficult to get to reliably function as desired.

 

Regards,

Ben

National Instruments
Certified LabVIEW Associate Developer
Certified TestStand Developer
0 Kudos
Message 2 of 4
(7,154 Views)

10ex.

A. Please note that I wrote 500 bytes (not 500Mbytes), this is the reason that I assumed that i will be able to get "pseudo RT" performance.

B. So actually the can card is a slave of the S/W, it is not autonomous

C. Are you familiar with any other (NI or other) product that supports "card configuration" (sending messages only 46milisec after "sync message", sending "sync message" periodically...)?

Regards,

Ofir 

0 Kudos
Message 3 of 4
(7,149 Views)
Solution
Accepted by topic author osasson

Ofir,

 

It is possible to program the application you described in the Windows environment, it will usually be accurate, but there is no guarantee that it will happen.

 

1. I see the difference now for the 500 bytes vs. 1 Mbits.  My misunderstanding came from 500 Mbits/s being a common CAN baud rate.

2. The card is software timed.

3. You might be interested in CompactRIO using the NI 985x C-Series CAN modules.  Using the CompactRIO, you could program precise timing parameters and have them execute in real time.  These C-Series modules support the Frame API.

 

NI CompactRIO

http://www.ni.com/compactrio/

 

Regards,

Ben

National Instruments
Certified LabVIEW Associate Developer
Certified TestStand Developer
0 Kudos
Message 4 of 4
(7,127 Views)