Digital I/O

cancel
Showing results for 
Search instead for 
Did you mean: 

Does USB DIO supports RLP?

Hi there,
I have a question about USB Digital I/O 6507.
 
We proceeding some projects using digital I/O interface. I found your some USB product
and examined they are suitable for us or not.
Unfortunatly, speed is problem.
Speed what we need is approx. 2~4us per one write or read under Linux Kernel 2.6 version
but your NI-DAQmx 8.0 or NI-DAQBase 1.5 device driver rates 160us or more.
So, we consider register level programming for that. According to PCI-6509 showes
outstandable speed - write 0.6 us, read 6~7 us.
My senior engineer order me to find USB product which can supports RLP or suitable
speed digital I/O.
 
Speed means: interval time from Using output commands or function such like
                         "g_board->IOPort0Data.writeRegister( 0x0 );"
                         to real outputs from hard ware channel.
 
                               UserAPI              DeviceDriver                H/W                  Channel               
                         writeRegister()  ---> NI-DAQmxBase1.5 ----> NI-6507  ----> outputChannels ---> cable
                         |                                                                                                     |
                         |<------------------------------ elapsed time (we need 2~4 us) --------------------->|
 
                         Can you understand? :manhappy:
 
How can I found it? Please help me.
ps) I'm sorry for my short english skill.
 
 
 
0 Kudos
Message 1 of 6
(3,887 Views)
Hi Yundorri,

If I understand correctly, you want to initiate a Digital Write in software, and have that write occur within 4 microseconds. The time between the program communicating with the driver and the driver communicating with the hardware is much much greater than a few microseconds. Also, since your application will likely run in Windows, this is not a deterministic solution. Without knowing more about your overall application, it is hard to recommend alternatives, but if possible, a hardware-timed digital generation would give you much greater speed. Also, our Intelligent DAQ products allow you to program an FPGA to do Digital I/O.
--
Michael P
National Instruments
0 Kudos
Message 2 of 6
(3,864 Views)
Thank for your reply
 
What I wish is SIMPLE I/O using USB products.
Simple I/O means when I command such like writeRegister() under Linux RLP,
output channel states are change immediately.
 
Under Linux RLP, PCI-6509 or 6534 operates within 0.6~0.7 microseconds. But,
there is no RLP covering USB device 6507 or 6501 etc...
 
And we cannot interface with peripheral devices via general communication
such like handshaking mode.
 
Aren't there solutions for speed issue ?
I don't want to use PCI card. I want to use USB because there are not enough
free PCI slots. I want to use notebook computer to control my peripheral.
 
Please solve my problem.
0 Kudos
Message 3 of 6
(3,856 Views)
Hi Yundorri,

While it is correct that performing a digital output can be performed in one register write, this does not mean that you can get the kind of speed you are looking for. You are still dependent on the Operating System's process scheduler and the USB protocol to get the data to the output. Doing this on the order of microseconds is not feasible, regardless of how you program it.
--
Michael P
National Instruments
0 Kudos
Message 4 of 6
(3,846 Views)
The best performance you can hope for with the USB bus is 1-10 milliseconds per single point DAQmx Write. 
USB has pretty decent throughput (especially with high-speed USB 2.0), but the latency of the bus (the time it takes for a message to go from one point to another) is high.  This especially affects single point operations.
 
If you need response times of a few microseconds, your best bet for communication bus is PCI or PXI.  Using a PCI DAQmx device on an 8176 controller running LabVIEW real-time, you can expect latency of around 5 microseconds per read or write if you use single sample analog functions or the U32 port functions.  Using Windows XP, you can expect a latency of about 15-20 microseconds per read or write. 
 
Hope this helps.
 
0 Kudos
Message 5 of 6
(3,843 Views)
Thanks.

I decided to use PCI DIO Card.
I tested PCI-6509 RLP under Mandriva2006 yesterday and I found
outstanding results.
It takes 0.67 us per one register write. and 1.4 us per one register read.
Can you believe that? Isn't it surprising? ^^

But there are also some problem applying to our systems yet. Only mandriva can
support, super user only excutable etc...

Anyway, I'll study RLP under PCI.
Thanks everyone.
0 Kudos
Message 6 of 6
(3,833 Views)