Instrument Control (GPIB, Serial, VISA, IVI)

cancel
Showing results for 
Search instead for 
Did you mean: 

Deterministic communication in Windows

Hi, we purchased a PCI 485/8 card to interface with an embedded processor at 300 Hz. However the Visual C++ timers are only getting us to 60 Hz. Any ideas on how to work around this? Are we better off going with LabVIEW?

Thanks,

Gary Willenbring
SAIC
0 Kudos
Message 1 of 8
(4,313 Views)
I'm not sure if I understand your question. By 300 Hz, are you sending packets of data 300 times/sec at a high baud rate, or are you sending at 300bits/sec? Are you looking to send a packet of data every 3.3ms?
Message 2 of 8
(4,313 Views)
Chris, we are looking to send an 8 bit message every 3.3 ms.
0 Kudos
Message 3 of 8
(4,313 Views)
What type of jitter is allowed? Also, what baud rate are you using?
0 Kudos
Message 4 of 8
(4,313 Views)
We are trying to minimize jitter as the communication is attempting to simulate a second embedded processor.

The baud rate is pretty high, I want to say 115k but not positive.
0 Kudos
Message 5 of 8
(4,313 Views)
In general Windows is not a very deterministic OS, and thus being able to guarentee timing at the ms level can be quite difficult. If moving to labVIEW RT is not an option, then perhaps you can use something like the queryperformancecounter (which returns the value of the high-performance counter) to control your timing loops.

Note that with a 1.2GHz system running windows, we see jitter on the order of 10ms - so you could have two successful writes at 3.3ms each, followed by a 13.3ms pause.

However with LabVIEW RT, timing is much more accurate, and we have timing on the order of 100us.
0 Kudos
Message 6 of 8
(4,313 Views)
Do you think using an external timer, such as a counter from a DAQ card, could be used to run a timing loop?
0 Kudos
Message 7 of 8
(4,313 Views)
Can you email me: chris.rake@ni.com.

Thanks!
0 Kudos
Message 8 of 8
(4,313 Views)