Instrument Control (GPIB, Serial, VISA, IVI)

cancel
Showing results for 
Search instead for 
Did you mean: 

Does NI's Instrument Driver works more efficiently than the drivers written by other tools?

I wrote drivers using DriverStudio and Windows DDK before,they are very complex,I think.Now I try to use LabVIEW to write my drivers and find it easy and friendly,but I am not familiar to it.I wonder does NI's Instrument Driver can work more efficiently than or equally as  the drivers written by other tools?Can someone help me?
Thanks.
0 Kudos
Message 1 of 8
(3,963 Views)
In most driver applications, there is no noticeable difference in execution speed between a LabVIEW driver and a driver written in a text language. That's because the majority of the execution time is usually spent on data transfer and that's a function of the GPIB bus speed. I happen to think that driver development in LabVIEW can be done more quickly.
0 Kudos
Message 2 of 8
(3,948 Views)
Driver Studio and the DDK is for creating kernel mode drivers. To the best of my knowledge LabView can't create kernel mode drivers. Dennis is talking about LV and creating instrument drivers.
0 Kudos
Message 3 of 8
(3,932 Views)

There is somewhat of an exception to your statement, cymrieg.

VISA can be used to do the "kernel mode" portion of driver development and basically make a driver for, say, a PCI or USB device possible in user mode only.  All the things that need to be done at the kernel level are handled by VISA.  Since LabVIEW has VISA VI's, you can then do almost all of your driver stuff in LabVIEW.   Is this the most efficient and flexible way to make a device driver for a PCI device?  Nope, but it sure is easy.  There are limitations to what VISA can do, but for basic device drivers, you can develop them in hours rather than days.

Scott B.
GPIB Software
National Instruments

0 Kudos
Message 4 of 8
(3,921 Views)
I didn't pick up on the device driver statement in the original post and did assume that the subject was instrument drivers and not a kernel but I'm not too sure I would change my answer all that much. We recently developed some PXI and USB boards in-house. The majority of the driver code is VISA reads and writes and it was very easy to write and debug as Scott mentions. There are other departments interested in using the boards for other reasons than manufacturing test and we will not be developing new drivers for them as it just doesn't seem worth it for the slight improvements that we would get.
Message 5 of 8
(3,913 Views)
Thank you very much!
These days I wrote a simple application-driver using LabVIEW's VISA VI.I would rather call it  application-driver :).Yet I also need to process interrupts,but I can't find such function VI.Instead,I find some VISA functions in help documents,but they can be used in text-based  language only.Should I creat a CIN node, use C language to do my process? I searched through NI's web,but what they provided are not very helpful for me.Where can I get more details about  LabVIEW's VISA ?Maybe I need some examples.:(
 
0 Kudos
Message 6 of 8
(3,869 Views)
" but for basic device drivers, you can develop them in hours rather than days."
Agree to it.I think and hope NI will do better in future than now.
0 Kudos
Message 7 of 8
(3,865 Views)
What function calls are you interested that cannot be accessed in LabVIEW?  Have you tried using the VISA Driver Development Wizard?  This utility allows you to create a PXI, PCI, USB, or Firewire device driver using VISA. You can read and write to registers and service interrupts.  It allows you to create a Windows setup (.INF) file, as well as easily set up how NI-VISA will handle interrupts from your device. 

You may want to take a look at the follow documentation as a reference, if you haven't had the chance yet:

Using the VISA Driver Development Wizard and NI-VISA to Register-Level Program a PXI/PCI Device under Windows

http://zone.ni.com/devzone/conceptd.nsf/webmain/ADF3152837E2B4A486256B5600642AC7?opendocument

NI-VISA User Manual
http://www.ni.com/pdf/manuals/370423a.pdf

VXI/VME devices can communicate asynchronous status and events through VXI/VME interrupt events (VI_EVENT_VXI_VME_INTR) or by using specificmessages called signals (VI_EVENT_VXI_SIGP).


Mark
National Instruments

0 Kudos
Message 8 of 8
(3,839 Views)