Different industrial cameras provide different programming interfaces (SDK). Although different interfaces have different programming interfaces between cameras, their actual API structure and programming model are very similar. It is very simple to understand these and program industrial cameras.
DMA is a high-speed data transmission operation that allows direct reading and writing of data between external devices and memory without CPU intervention. The whole data transmission operation is carried out under the control of a so-called "DMA controller".
CPU can do other work in the process of data transmission besides doing a little processing at the beginning and end of data transmission. In this way, CPU and I/O are operated in parallel for most of the time. Therefore, the efficiency of the whole computer system is greatly improved.
For industrial cameras, when CMOS or CCD chips are exposed and the data is transferred to the camera cache, DMA will be responsible for saving the data in the cache to a designated location on the hard disk, which just meets the needs of high-speed and large data transmission. In general, DMA is used to complete real-time data acquisition and storage.
Most of the time, the DMA controller has various interfaces in the image acquisition card, including 1394/GigE/USB/Camera Link, etc. These acquisition cards have their own time control unit to synchronize with camera exposure and control the access behavior of DMA.