Camera Link Specification
Camera Link Specification
Camera Link Specification
Specifications of the Camera Link Interface Standard for Digital Cameras and Frame Grabbers
Camera Link Specifications
October 2000
Acknowledgements
Participating Companies
The following companies contributed to the development and definition of the Camera Link standard. Basler Cognex Coreco DALSA Data Translation Datacube EPIX Euresys Foresight Imaging Integral Technologies Matrox National Instruments PULNiX America
ii
iii
Contents
Acknowledgements
Participating Companies ................................................................................................ii Rights and Trademarks ..................................................................................................ii
iv
Contents
Appendix A Chipset Criteria Appendix B API Functions Appendix C Bit Assignments According to Configuration Appendix D Camera Link Cabling Information Figures
Figure 1-1. Figure 3-1. Figure 3-2. Figure 5-1. Figure D-1. Figure D-2. Channel Link Operation........................................................................ 1-2 Data Routing for Base, Medium, and Full Configurations ................... 3-2 Block Diagram of Base, Medium, and Full Configuration .................. 3-3 Camera Link Cable ............................................................................... 5-1 Dimensions of 3M Connector ............................................................... D-1 3M Part Number Ordering Information ................................................ D-3
Tables
Table 3-1. Table 4-1. Table A-1. Table C-1. Table C-2. Table C-3. Table D-1. Table D-2. Port Assignments According to Configuration..................................... 3-1 Camera Link Bit Assignment................................................................ 4-1 Compatible National Semiconductor Parts ........................................... A-1 Bit Assignments for Base Configuration .............................................. C-1 Bit Assignment for Medium Configuration .......................................... C-2 Bit Assignment for Full Configuration ................................................. C-4 Shell Options......................................................................................... D-3 3M Boardmount Receptacle Part Numbers .......................................... D-4
Camera Link
Introduction
Camera Link is a communication interface for vision applications. The interface extends the base technology of Channel Link to provide a specification more useful for vision applications. For years, the scientific and industrial digital video market has lacked a standard method of communication. Both frame grabbers and camera manufacturers developed products with different connectors, making cable production difficult for manufacturers and very confusing for consumers. A connectivity standard between digital cameras and frame grabbers is long overdue and will become even more necessary as data rates continue to increase. Increasingly diverse cameras and advanced signal and data transmissions have made a connectivity standard like Camera Link a necessity. The Camera Link interface will reduce support time, as well as the cost of that support. The standard cable will be able to handle the increased signal speeds, and the cable assembly will allow customers to reduce their costs through volume pricing.
1-1
Channel Link
National Semiconductor developed the Channel Link technology as a solution for flat panel displays, based on LVDS for the physical layer. The technology was then extended into a method for general purpose data transmission. Channel Link consists of a driver and receiver pair. The driver accepts 28 single-ended data signals and a single-ended clock. The data is serialized 7:1, and the four data streams and a dedicated clock are driven over five LVDS pairs. The receiver accepts the four LVDS data streams and LVDS clock, and then drives the 28 bits and a clock to the board. Figure 1-1 illustrates Channel Link operation.
Driver
100
Receiver
>1.6 Gbps
Driver
100
Receiver
Driver
Receiver
Driver
Receiver
Driver
Receiver
Driver
Clock (LDVS)
Receiver
Clock
1-2
Technology Benefits
Smaller Connectors and Cables
Channel Links transmission method requires fewer conductors to transfer data. Five pairs of wires can transmit up to 28 bits of data. These wires reduce the size of the connector, allowing smaller cameras to be manufactured.
1-3
This section provides definitions for the signals used in the Camera Link interface. The standard Camera Link cable provides camera control signals, serial communication, and video data.
Video Data
The Channel Link technology is integral to the transmission of video data. Image data and image enables are transmitted on the Channel Link bus. Four enable signals are defined as: FVALFrame Valid (FVAL) is defined HIGH for valid lines. LVALLine Valid (LVAL) is defined HIGH for valid pixels. DVALData Valid (DVAL) is defined HIGH when data is valid. Spare A spare has been defined for future use.
All four enables must be provided by the camera on each Channel Link chip. All unused data bits must be tied to a known value by the camera. For more information on image data bit allocations, see Section 3, Bit Assignments, and Appendix C, Bit Assignments According to Configuration.
2-1
Communication
Two LVDS pairs have been allocated for asynchronous serial communication to and from the camera and frame grabber. Cameras and frame grabbers should support at least 9600 baud. These signals are SerTFGDifferential pair with serial communications to the frame grabber. SerTCDifferential pair with serial communications to the camera.
The serial interface will have the following characteristics: one start bit, one stop bit, no parity, and no handshaking. It is recommended that frame grabber manufacturers supply both a user interface and a software application programmming interface (API) for using the asynchronous serial communication port. The user interface will consist of a terminal program with minimal capabilities of sending and receiving a character string and sending a file of bytes. The software API will provide functions to enumerate boards and send or receive a character string. See Appendix B, API Functions, for a suggested software application program interface (API).
Power
Power will not be provided on the Camera Link connector. The camera will receive power through a separate cable. Each camera manufacturer will define their own power connector, current, and voltage requirements.
2-2
Port Assignments
The Camera Link interface has three configurations. Since a single Channel Link chip is limited to 28 bits, some cameras may require several chips in order to transfer data efficiently. The naming conventions for the various configurations are: BaseSingle Channel Link chip, single cable connector. MediumTwo Channel Link chips, two cable connectors. FullThree Channel Link chips, two cable connectors.
Port Definition
A port is defined as an 8-bit word. The Least Significant Bit (LSB) is bit 0, and the Most Significant Bit (MSB) is bit 7. The Camera Link interface utilizes the 8 ports of A-H. The following table shows the port assignment for the Base, Medium, and Full Configurations.
Table 3-1. Port Assignments According to Configuration
Ports Supported A, B, C A, B, C, D, E, F A, B, C, D, E, F, G, H
Number of Chips 1 2 3
Number of Connectors 1 2 2
3-1
Port G
S4 S3
BYTE 7
Port F
BYTE 6
Port E
BYTE 5
Full
Port D
Medium
S2 S1
BYTE 4
BYTE 3
Base
Port B
BYTE 2
BYTE 1
Figure 3-1. Data Routing for Base, Medium, and Full Configurations
The block diagram shown in Figure 3 illustrates the Base, Medium, and Full Configurations.
3-2
Camera
LVAL, FVAL, DVAL, SP Port G, H
Z0 Z1
Z0 Z1
Frame Grabber
LVAL, FVAL, DVAL, SP PORT G, H
FULL
TxIN Z2 Z3
Z2 Z3 CLKZ
STRB G, H
90CR283
CLKZ
90CR284
STRB G, H
MEDIUM
Y0 Y1 Y2 Y3
Y0 Y1 Y2 Y3 CLKY
Port D, E, F
STRB D, E, F
90CR283
90CR284
STRB D, E, F
MDR26M
MDR26M
MDR26F
X0 X1 X2 X3
MDR26F
X0 X1 X2
BASE CONFIGURATION
X3 CLKX STRB A, B, C
STRB A, B, C
90CR283
CLKX
90CR284
Camera Control 1, 2, 3, 4
SerTFG SerTC
SerTFG SerTC
3-3
Bit Assignments
4
Table 4-1. Camera Link Bit Assignment
The following tables list the bit allocation for the Camera Link interface.
Note
Ports D and G, if present, have the same device pinouts as Port A. Ports E and H, if present, have the same pinout as Port B. Port F, if present, has the same pinout as Port C. Detailed bit assignments for popular camera configurations are located in Appendix C, Bit Assignments According to Configuration.
Tx Input Signal Name Strobe LVAL FVAL DVAL Spare Port A0, Port D0, Port G0 Port A1, Port D1, Port G1 Port A2, Port D2, Port G2 Port A3, Port D3, Port G3 Port A4, Port D4, Port G4 Port A5, Port D5, Port G5 Port A6, Port D6, Port G6 Port A7, Port D7, Port G7 Port B0, Port E0, Port H0 Port B1, Port E1, Port H1 Port B2, Port E2, Port H2
28-bit Solution Pin Name TxClk Out/TxClk In TX/RX 24 TX/RX 25 TX/RX 26 TX/RX 23 TX/RX 0 TX/RX 1 TX/RX 2 TX/RX 3 TX/RX 4 TX/RX 6 TX/RX 27 TX/RX 5 TX/RX 7 TX/RX 8 TX/RX 9
4-1
Tx Input Signal Name Port B3, Port E3, Port H3 Port B4, Port E4, Port H4 Port B5, Port E5, Port H5 Port B6, Port E6, Port H6 Port B7, Port E7, Port H7 Port C0, Port F0 Port C1, Port F1 Port C2, Port F2 Port C3, Port F3 Port C4, Port F4 Port C5, Port F5 Port C6, Port F6 Port C7, Port F7
28-bit Solution Pin Name TX/RX 12 TX/RX 13 TX/RX 14 TX/RX 10 TX/RX 11 TX/RX 15 TX/RX 18 TX/RX 19 TX/RX 20 TX/RX 21 TX/RX 22 TX/RX 16 TX/RX 17
4-2
5
26-Position High-Density Mini D Ribbon (MDR) Male Plug
The MDR 26-pin connector was selected for its robust design and reputation for success with the high-frequency transfer rates of Channel Link. During the past four years, 3M has worked very closely with National Semiconductor to test and define the performance of the high-speed MDR connector for use with the LVDS transmissions.
2X Thumbscrews
2X Thumbscrews
5-1
Medium and Full Configurations Camera Connector 1 14 2 15 3 16 4 17 5 18 6 19 7 20 8 21 9 22 10 23 Frame Grabber Connector 1 14 25 12 24 11 23 10 22 9 21 8 20 7 19 6 18 5 17 4 Channel Link Signal inner shield inner shield Y0Y0+ Y1Y1+ Y2Y2+ YclkYclk+ Y3Y3+ 100 terminated Z0Z0+ Z1Z1+ Z2Z2+ Cable Name Inner Shield Inner Shield PAIR1PAIR1+ PAIR2PAIR2+ PAIR3PAIR3+ PAIR4PAIR4+ PAIR5PAIR5+ PAIR6+ PAIR6PAIR7PAIR7+ PAIR8PAIR8+ PAIR9+ PAIR9-
Base Configuration (with Camera Control and Serial Communication) Camera Connector 1 14 2 15 3 16 4 17 5 18 6 19 7 20 8 21 9 22 10 23 Frame Grabber Connector 1 14 25 12 24 11 23 10 22 9 21 8 20 7 19 6 18 5 17 4 Channel Link Signal inner shield inner shield X0X0+ X1X1+ X2X2+ XclkXclk+ X3X3+ SerTC+ SerTCSerTFGSerTFG+ CC1CC1+ CC2+ CC2-
5-2
Medium and Full Configurations Camera Connector 23 11 24 12 25 13 26 Frame Grabber Connector 4 16 3 15 2 13 26 Channel Link Signal Z2+ ZclkZclk+ Z3Z3+ inner shield inner shield Cable Name PAIR9PAIR10PAIR10+ PAIR11+ PAIR11Inner Shield Inner Shield
Base Configuration (with Camera Control and Serial Communication) Camera Connector 23 11 24 12 25 13 26 Frame Grabber Connector 4 16 3 15 2 13 26 Channel Link Signal CC2CC3CC3+ CC4+ CC4inner shield inner shield
Shielding Recommendations
The outer shield of the cable is tied to the connector shell. It is recommended that the inner shell be tied to digital ground in cameras and tied through a resister to digital ground in the frame grabbers. It is recommended that a 0 resistor be installed in the factory. If necessary, that resistor can be removed in the field and replaced with a high-value resistor and parallel capacitor. Unused pairs should be terminated to 100 at their respective ends of the cable.
Note
All pairs are individually shielded with aluminum foil. Pair shields are wrapped aluminum out and are in contact with four internal drains (digital ground). Outer braid and foil (chassis ground) are isolated from inner drains (digital ground).
5-3
Chipset Criteria
A
Table A-1. Compatible National Semiconductor Parts
Camera Link uses 28-bit Channel Link chips manufactured by National Semiconductor. Because of potential interface issues, chips that use a similar technology, such as Flatlink by Texas Instruments and Panel Link by Silicon Image, may not be compatible with the Camera Link interface. Receivers and drivers with different operating frequencies will interoperate over the frequency range that both support. The following table lists some compatible National Semiconductor parts.
Product DS90CR281 DS90CR282 DS90CR283 DS90CR284 DS90CR285 DS90CR286 DS90CR286A DS90CR287 DS90CR288 DS90CR288A
Speed 40 MHz 40 MHz 66 MHz 66 MHz 66 MHz 66 MHz 66 MHz 85 MHz 75 MHz 85 MHz
The pinout of the MDR 26 connector was chosen for optimal PWB trace routing using an LVDS driver/receiver pair for camera control signals. The following are the recommended National Semiconductor parts for the pair: DS90LV047 DS90LV048 3.3 V 3.3 V transmitter receiver
A-1
API Functions
A consistent, known API for asynchronous serial reading and writing allows camera vendors to write a frame grabber-independent, camera-specific configuration utility. The following API offers a solution for camera vendors that is easy for frame grabber manufacturers to implement, regardless of the actual implementation methods used for asynchronous serial communication. All frame grabbers provide a .dll file named clser***.dll, where *** is specific to the frame grabber vendor. There are four functions within that .dll:
clSerialInitInitialize the serial communication for a specific board. clSerialReadRead bytes from the camera. clSerialWriteWrite bytes to the camera. clSerialCloseClose the serial communication.
B-1
clSerialInit
Format
int clSerialInit(unsigned long serialIndex, void** serialRefPtr)
Purpose
This function initializes the device referred to by serialIndex, and returns a pointer to an internal serial reference structure.
Parameters
Direction
Description A zero-based index value. For n serial devices in the system supported by this library, serialIndex has a range of 0 to (n-1). Points to a value that contains, on a successful call, a pointer to the vendor-specific reference to the current session.
serialRefPtr
output
Return Value
A vendor-specific error value that follows these conventions: A negative value indicates a fatal error. A zero value indicates success. A positive value indicates a warning.
B-2
clSerialRead
Format
int clSerialRead(void* serialRef, char* buffer,unsigned long* bufferSize unsigned long serialTimeout)
Purpose
This function reads the serial device referenced by serialRef.
Parameters
Direction
Description The value obtained from the clSerialInit function. Points to a user-allocated buffer. Upon a successful call, buffer contains the data read from the serial device. Contains the buffer size indicating the maximum number of bytes that the buffer can accommodate. Upon a successful call, bufferSize contains the number of bytes read successfully from the serial device. Indicates the timeout in milliseconds.
buffer
output
bufferSize
input/output
serialTimeout
input
Return Value
A vendor-specific error value that follows these conventions: A negative value indicates a fatal error. A zero value indicates success. A positive value indicates a warning.
B-3
clSerialWrite
Format
int clSerialWrite(void* serialRef, char* buffer,unsigned long* bufferSize unsigned long SerialTimeout)
Purpose
This function writes the data in the buffer to the serial device referenced by SerialRef.
Parameters
Direction
Description The value obtained from the clSerialInit function. Contains data to write to the serial port. Contains the buffer size indicating the maximum number of bytes that the buffer can accommodate. Upon a successful call, bufferSize contains the number of bytes read successfully from the serial device. Indicates the timeout in milliseconds.
buffer
input
bufferSize
input/output
serialTimeout
input
Return Value
A vendor-specific error value that follows these conventions: A negative value indicates a fatal error. A zero value indicates success. A positive value indicates a warning.
B-4
clSerialClose
Format
void clSerialClose(void* serialRef)
Purpose
This function closes the serial device and cleans up the resources associated with serialRef. Upon return, serialRef is no longer usable.
Parameters
Direction
Description The value obtained from the clSerialInit function for clean up.
Return Value
A vendor-specific error value that follows these conventions: A negative value indicates a fatal error. A zero value indicates success. A positive value indicates a warning.
B-5
Header File
The following is an example of an appropriate header file for this API:
#ifndef _CLSER____H_ #define _CLSER____H_ #ifndef CLSER___EXPORT #define CLSER___EXPORT __declspec(dllimport) #endif #ifndef CLSER___CC #define CLSER___CC __cdecl #endif #ifdef __cplusplus extern "C"{ #endif
CLSER___EXPORT int CLSER___CC clSerialInit(unsigned long serialIndex, void** serialRefPtr); CLSER___EXPORT int CLSER___CC clSerialRead(void* serialRef, char* buffer,unsigned long* bufferSize, unsigned long serialTimeout); CLSER___EXPORT int CLSER___CC clSerialWrite(void* serialRef, char* buffer, unsigned long* bufferSize, unsigned long serialTimeout); CLSER___EXPORT void CLSER___CC clSerialClose(void* serialRef); #ifdef __cplusplus } #endif #endif
B-6
Using a single .dll file prevents the user from accessing driver software from multiple vendors at the same time; therefore, camera vendors using this API must load all .dll files with the name clser*.dll on the system and then provide a method for the user to select the correct vendor for the board they are using. The camera vendor should use LoadLibrary and GetProcAddress to find these functions. The camera vendors should also provide a way for users to select a particular frame grabber, and then use clSerialRead and clSerialWrite to communicate with the camera attached to their board.
Note
B-7
C
16-bit x 1 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 nc nc 24-bit RGB R0 R1 R2 R3 R4 R5 R6 R7 G0 G1 G2 G3 G4 G5 G6 G7 B0 B1
Base Configuration Port/bit Port A0 Port A1 Port A2 Port A3 Port A4 Port A5 Port A6 Port A7 Port B0 Port B1 Port B2 Port B3 Port B4 Port B5 Port B6 Port B7 Port C0 Port C1 8-bit x 1~3* A0 A1 A2 A3 A4 A5 A6 A7 B0 B1 B2 B3 B4 B5 B6 B7 C0 C1 10-bit x 1~2 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 nc nc B8 B9 nc nc B0 B1 12-bit x 1~2 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 B8 B9 B10 B11 B0 B1 14-bit x 1 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 nc nc nc nc
C-1
Base Configuration Port/bit Port C2 Port C3 Port C4 Port C5 Port C6 Port C7 8-bit x 1~3* C2 C3 C4 C5 C6 C7 10-bit x 1~2 B2 B3 B4 B5 B6 B7 12-bit x 1~2 B2 B3 B4 B5 B6 B7 14-bit x 1 nc nc nc nc nc nc 16-bit x 1 nc nc nc nc nc nc 24-bit RGB B2 B3 B4 B5 B6 B7
* If only using a single channel, use Port A. If using two channels, use Port A and B.
Medium Configuration Port/bit Port A0 Port A1 Port A2 Port A3 Port A4 Port A5 Port A6 Port A7 Port B0 Port B1 Port B2 Port B3 Port B4 8-bit x 4 A0 A1 A2 A3 A4 A5 A6 A7 B0 B1 B2 B3 B4 10-bit x 3~4 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 nc nc B8 12-bit x 3~4 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 B8 30-bit RGB R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 nc nc B8 36-bit RGB R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 B8
C-2
Medium Configuration Port/bit Port B5 Port B6 Port B7 Port C0 Port C1 Port C2 Port C3 Port C4 Port C5 Port C6 Port C7 Port D0 Port D1 Port D2 Port D3 Port D4 Port D5 Port D6 Port D7 Port E0 Port E1 Port E2 Port E3 Port E4 Port E5 8-bit x 4 B5 B6 B7 C0 C1 C2 C3 C4 C5 C6 C7 D0 D1 D2 D3 D4 D5 D6 D7 nc nc nc nc nc nc 10-bit x 3~4 B9 nc nc B0 B1 B2 B3 B4 B5 B6 B7 D0 D1 D2 D3 D4 D5 D6 D7 C0 C1 C2 C3 C4 C5 12-bit x 3~4 B9 B10 B11 B0 B1 B2 B3 B4 B5 B6 B7 D0 D1 D2 D3 D4 D5 D6 D7 C0 C1 C2 C3 C4 C5 30-bit RGB B9 nc nc B0 B1 B2 B3 B4 B5 B6 B7 nc nc nc nc nc nc nc nc G0 G1 G2 G3 G4 G5 36-bit RGB B9 B10 B11 B0 B1 B2 B3 B4 B5 B6 B7 nc nc nc nc nc nc nc nc G0 G1 G2 G3 G4 G5
C-3
Medium Configuration Port/bit Port E6 Port E7 Port F0 Port F1 Port F2 Port F3 Port F4 Port F5 Port F6 Port F7 8-bit x 4 nc nc nc nc nc nc nc nc nc nc 10-bit x 3~4 C6 C7 C8 C9 nc nc D8 D9 nc nc 12-bit x 3~4 C6 C7 C8 C9 C10 C11 D8 D9 D10 D11 30-bit RGB G6 G7 G8 G9 nc nc nc nc nc nc 36-bit RGB G6 G7 G8 G9 G10 G11 nc nc nc nc
Full Configuration Port/bit Port A0 Port A1 Port A2 Port A3 Port A4 Port A5 Port A6 Port A7 Port B0 Port B1 Port B2 8-bit x 8 A0 A1 A2 A3 A4 A5 A6 A7 B0 B1 B2 Port/bit Port E0 Port E1 Port E2 Port E3 Port E4 Port E5 Port E6 Port E7 Port F0 Port F1 Port F2 8-bit x 8 E0 E1 E2 E3 E4 E5 E6 E7 F0 F1 F2
C-4
Full Configuration Port/bit Port B3 Port B4 Port B5 Port B6 Port B7 Port C0 Port C1 Port C2 Port C3 Port C4 Port C5 Port C6 Port C7 Port D0 Port D1 Port D2 Port D3 Port D4 Port D5 Port D6 Port D7 8-bit x 8 B3 B4 B5 B6 B7 C0 C1 C2 C3 C4 C5 C6 C7 D0 D1 D2 D3 D4 D5 D6 D7 Port/bit Port F3 Port F4 Port F5 Port F6 Port F7 Port G0 Port G1 Port G2 Port G3 Port G4 Port G5 Port G6 Port G7 Port H0 Port H1 Port H2 Port H3 Port H4 Port H5 Port H6 Port H7 8-bit x 8 F3 F4 F5 F6 F7 G0 G1 G2 G3 G4 G5 G6 G7 H0 H1 H2 H3 H4 H5 H6 H7
C-5
D
B
2 3 16 4 17 5 18 6 19 7 20 8 21 9 22 10 23 11 24 12 25 13
The Camera Link interface uses a cable assembly manufactured by 3M, with MDR-26 pin connectors on both ends, as shown in Figure D-1. .
1 14
C
15 26
Generic End Detail MDR 26 Position Plug (Both Ends) Note: Use 3M 3341-31 jacksocket for mounting receptacle to panel.
Cable Specifications
3Ms twin-axial shielded cable has been specifically designed to meet the stringent demands of reliable high-speed differential signaling applications.
Cable Assembly
The Camera Link cable assembly is available in two shell configurations, and various lengths. Table D-1 describes the specifications for the following options: Thumbscrew overmold shellThe inner IDC assembly is wrapped with a copper foil tape, which connects the outer chassis cable ground to the face of the MDR plug. A final overmolded shell is made from PVC material. Thumbscrew shell kitAn inner metal shroud connects the chassis ground from the cable to the face of the MDR plug. A plastic shell boot is slipped over the metal shrouds, providing the finished shell.
D-1
Ordering Information
Cable assemblies and boardmount receptacles are available from 3M. For more information on 3M products, see the 3M Web site at www.3M.com.
D-2
Type MDR 26 Right Angle MDR 26 Right Angle MDR 26 Vertical MDR 26 Right Angle MDR 26 Vertical
D-3