In my mind, GenICam has truly revolutionized how I expect a machine vision system to work. GenICam defines user-friendly camera features through an XML file, so I don’t need to dig into a camera user manual or to memorize cryptic commands to configure my camera. This elegance is clearly visible when you use a GigE Vision product as it is the first camera standard to make use of GenICam (actually, GenICam and GigE Vision were developed hand-in-hand by the same group of people). Fortunately, this ease-of-use has now been extended to Camera Link.
By definition, the Camera Link standard defines an API to access a serial port that is mapped on top of the Camera Link physical interface. It is a good first step, but it does not enable product interoperability since each camera manufacturer provides its own proprietary control protocol, either binary or ASCII. So if you need to access camera features, you’ll need a user manual to do so. In a best case scenario, a camera vendor will provide a graphical tool which will allow you to configure camera parameters.
To address this interoperability issue, GenICam introduced the CLProtocol (or Camera Link Protocol, as you correctly guessed!). The CLProtocol extends the Camera Link serial port by exporting a standard API to provide feature access through the vendor’s proprietary serial protocol. You can think of this as a set of ReadFeature and WriteFeature functions. Though it does bring GenICam to Camera Link, it requires the camera vendor to provide a DLL (dynamic link library) with its camera to make this translation from the GenICam domain to the camera vendor serial protocol. Not bad, as long as your system works under Microsoft Windows.
This is where the upcoming GenCP module of GenICam comes to the rescue. GenCP stands for “Generic Control Protocol”. It is derived from the GigE Vision Control Protocol (GVCP) and defines the sequence of bits and bytes (i.e. the packets) that are sent on the serial port. By doing this, GenCP eliminates the need for a proprietary DLL: it is Operating System independent! GenCP can even be supported on a transmission medium different than the serial port. This is why it has been adopted by Camera Link HS and will soon be by USB3 Vision. The frame grabber vendor can directly implement GenCP in its library and does not need to rely on software provided by the camera vendor: the apex of modularity! Everything is defined on the wire connecting the camera to the frame grabber.
Teledyne DALSA is constantly looking to improve the ease of use of its products. GenCP is clearly the way to go to offer GenICam over Camera Link. We opted for CLProtocol for our existing products to maintain backward compatibility with our ASCII protocol. Our next generation products (Falcon2 as an example) embrace GenCP. This is reflected in our frame grabber products and will be more prevalent as we transition to Camera Link HS. GenCP will be a key enabler to facilitate the synchronization of the camera to frame grabber configuration, as you will see in an upcoming post.
Author’s Note: The CLProtocol is available to download here: http://www.emva.org/cms/upload/Standards/GenICam_Downloads/GenICam_CLProtocol_Standard.pdf.