Register-Level Programming

NI-IMAQdx

Register-Level Programming

All cameras communicate to the host computer through register maps. The register map reflects the system memory located on the camera. The register map allows the host computer to read and write information with minimal overhead.

The host computer sends asynchronous messages over the host bus to the connected camera. When the data is written into memory on the camera, the camera processes the incoming request. If possible, the camera responds immediately. Otherwise, a pending transaction message is returned. When the pending request is completed, the camera returns the results of the request.

The following image illustrates an example of a split transaction.


NI-IMAQdx supports the GigE Vision 1.0 specification and the IEEE 1394 Trade Association IIDC 1.31 register specification for industrial cameras. Most of the intricacies of register-level programming are abstracted by the driver. The driver is responsible for manipulating camera features and activating/deactivating the video data stream.

Some cameras implement additional registers that are not contained in the IIDC 1.31 or GigE Vision 1.0 specifications. These advanced camera features are not natively supported by the camera driver. To use these advanced features, you must use the low-level, register-level access tools to communicate with the camera.

GigE Vision cameras have all features defined in an XML file which may eliminate the need for direct register programming.