EMV stands for Europay, MasterCard and VISA, and is a global standard for inter-operation of integrated circuit cards (ICC) and ICC reader terminals (like point of sale (POS) terminals, automated teller machines (ATMs)) for authenticating credit and debit payment cards transactions.
Any IC card reader must be certified to be EMV compliant.
The EMV standard defines the interaction at the physical, electrical, data and application levels between the IC cards and IC card terminal.
For the contact smartcards it is based on standard ISO/IEC 7816.
Some of the i.MX embeds a Subscriber Identification Module (SIM) which was designed to facilitate the communication to a mobile phone SIM card.
It could be used to communicate indirectly with a banking smartcard due to the listed limitations in regards to the EMV requirements.
The POS terminal must support 1.8V, 3.3V, and 5V smartcards.
Depending on the i.MX, 1.8V or 3.3V could be supported but not both, and 5V is definitely out of
the range of the I/O supplies.
=> a level adapter component is required between the i.MX and the smartcard.
The communication between the IC card and the reader is asynchronous (almost a UART), but based on a common clock for synchronous operation.
The ISO7816 standard defines the following:
1 ETU = F / D * 1 / f
ETU is Elementary Time Unit, which is somehow the nominal time to transmit a bit (0 or 1).
F or Fi is the clock rate conversion integer.
D or Di is the baud rate adjustment integer.
f is the frequency of the communication clock used between the controller and the smartcard.
Below is a partial list of what the controller must support to pass the EMV certification, and the known limitations of the SIM controller:
- baud rate at x1 (Fi/Di=372/1) => default speed for all smart cards => supported.
- baud rate at x2 (Fi/Di=372/2 = 186/1) => a higher speed for some smart cards => not supported.
- baud rate at x4 (Fi/Di=372/4 93/1) => a higher speed for some smart cards => not supported.
- message length of 12ETU => specified for T=0 type smart card => supported.
- error of -0.2ETU on message length of 12ETU => 11.8ETU smart card => not supported.
- message length of 11ETU => specified for T=1 type smart card => supported.
- error of -0.2ETU on message length of 11ETU => 10.8ETU smart card => not supported.
For these reasons, the i.MX SIM controller does not allow to pass the EMV certification without the usage of an external controller that must care of all these missing features.
The SIM can still be used to communicate with that external controller such Atmel AT83C26, NXP TDA8023, Terridian, or On Semi.
Freescale does not have driver neither reference design to support that configuration.
This company has the expertise to work with EMV certification for the i.MX258 + a companion smartcard controller: