Drive Smart Cards With A Low-Cost MCU's UART

March 29, 2007
The growing need for security and enhanced functionality in the banking, identification, and telecom markets has increased the use of smart cards worldwide, to the detriment of the low-security magnetic-stripe cards. However, the development of th

The growing need for security and enhanced functionality in the banking, identification, and telecom markets has increased the use of smart cards worldwide, to the detriment of the low-security magnetic-stripe cards.

However, the development of the hardware and firmware needed for proper communications in a system based on a smart card poses new challenges to designers. Unfortunately, only some high-end microcontrollers have a dedicated UART (universal asynchronous receiver/transmitter) that can drive smart cards directly. The design described here, though, lets you drive a smart card using just the standard UART on a low-end 8-bit microcontroller, in this case an Atmel AVR ATmega 168.

Smart cards have just one communication path, labeled I/O, with the outside world, so it's used as a bidirectional signal to input and output data. This signal must line up with the UART's unidirectional reception and transmission signals RxD and TxD, respectively. Because RxD is an input signal and TxD is an output signal, a 1-kΩ resistor must be used to connect them to the smartcard I/O line to avoid line contention (see the figure).

On the firmware side, the design must implement a specific procedure for the reception and transmission of data to and from the smart card ( see the code listing). On the one hand, to receive a byte from the smart card, the system must disable the UART's transmitter unit—again, to avoid line contention.

On the other hand, to transmit a byte to the smart card, the firmware must disable the UART's reception unit to avoid the reception of an echo character. Then it must wait until the end of the byte transmission to avoid false byte receptions. In this way, you can exchange information back and forth with the smart card using the T=0 protocol described in section 3 of the Smart Card Standard, ISO 7816-3, Electronic Signals and Transmission Protocols.

As an improvement—and to fully comply with the standard describing the smart-card communication protocols—the design must implement the parity error detection and re-transmission scheme defined in the ISO 7816-3 standard.

Sponsored Recommendations

Near- and Far-Field Measurements

April 16, 2024
In this comprehensive application note, we delve into the methods of measuring the transmission (or reception) pattern, a key determinant of antenna gain, using a vector network...

DigiKey Factory Tomorrow Season 3: Sustainable Manufacturing

April 16, 2024
Industry 4.0 is helping manufacturers develop and integrate technologies such as AI, edge computing and connectivity for the factories of tomorrow. Learn more at DigiKey today...

Connectivity – The Backbone of Sustainable Automation

April 16, 2024
Advanced interfaces for signals, data, and electrical power are essential. They help save resources and costs when networking production equipment.

Empowered by Cutting-Edge Automation Technology: The Sustainable Journey

April 16, 2024
Advanced automation is key to efficient production and is a powerful tool for optimizing infrastructure and processes in terms of sustainability.

Comments

To join the conversation, and become an exclusive member of Electronic Design, create an account today!