This article explains the main differences between the Ixxat ECI and Socket CAN drivers available for the Ixxat CAN interfaces.
APPLICABLE PRODUCTS
Ixxat CAN interfaces
What is the difference between the Ixxat ECI and the SocketCAN driver?
ECI Driver
The proprietary driver for Ixxat CAN interfaces is called ECI (Embedded Card Interface). It is available for different operating systems like GNU/Linux, VxWorks, RTX, INtime and QNX. ECI supports the LIN bus found on some Ixxat CAN interfaces as well.
The ECI driver supports the complete set of functions that come with the Ixxat CAN hardware. You'll need to compile a kernel module which accesses the binary ECI driver.
SocketCAN
The SocketCAN concept, on the other hand, is a vendor-independant API including a network layer which is part of the GNU/Linux kernel. The open source Ixxat SocketCAN drivers make Ixxat CAN interfaces compatible to that API.
Ixxat SocketCAN drivers are compiled towards different target architectures like x86, x64, ARM, ARM64 etc. The result are kernel modules that can be loaded dynamically into memory.
Another advantage is that your SocketCAN based application will run on all CAN interfaces supporting SocketCAN.
Additionally, several applications may access the CAN hardware concurrently, similar to how network applications use sockets to exchange data via the Ethernet interface.
However, the LIN functionality of some Ixxat CAN interfaces is not supported, since SocketCAN has not been designed for the LIN bus.
ADDITIONAL INFO
ECI / SocketCAN compatibility matrix for Ixxat CAN interfacesWikipedia article on SocketCAN