All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
Smart Card µCOS/II Driver
Smart Card

## Overview

## Data Structures

struct | rtos_smartcard_context_t
| Runtime RTOS smart card driver context. More...

## Macros

#define | RTOS_SMARTCARD_COMPLETE 0x1u
| Smart card RTOS transfer complete flag.
#define | RTOS_SMARTCARD_TIMEOUT 0x2u
| Smart card RTOS transfer time-out flag.
#define | SMARTCARD_Control(base, context, control, param) SMARTCARD_UART_Control(base, context, control, 0)
| Common Smart card driver API defines. More...
#define | SMARTCARD_Transfer(base, context, xfer) SMARTCARD_UART_TransferNonBlocking(base, context, xfer)
| Common Smart card API macro.
#define | SMARTCARD_Init(base, context, sourceClockHz) SMARTCARD_UART_Init(base, context, sourceClockHz)
| Common Smart card API macro.
#define | SMARTCARD_Deinit(base) SMARTCARD_UART_Deinit(base)
| Common Smart card API macro.
#define | SMARTCARD_GetTransferRemainingBytes(base, context) SMARTCARD_UART_GetTransferRemainingBytes(base, context)
| Common Smart card API macro.
#define | SMARTCARD_GetDefaultConfig(cardParams) SMARTCARD_UART_GetDefaultConfig(cardParams)
| Common Smart card API macro.
#define | SMARTCARD_PHY_Activate(base, context, resetType) SMARTCARD_PHY_GPIO_Activate(base, context, resetType)
| Common Smart card API macro.
#define | SMARTCARD_PHY_Deactivate(base, context) SMARTCARD_PHY_GPIO_Deactivate(base, context)
| Common Smart card API macro.
#define | SMARTCARD_PHY_Control(base, context, control, param) SMARTCARD_PHY_GPIO_Control(base, context, control, param)
| Common Smart card API macro.
#define | SMARTCARD_PHY_Init(base, config, sourceClockHz) SMARTCARD_PHY_GPIO_Init(base, config, sourceClockHz)
| Common Smart card API macro.
#define | SMARTCARD_PHY_Deinit(base, config) SMARTCARD_PHY_GPIO_Deinit(base, config)
| Common Smart card API macro.
#define | SMARTCARD_PHY_GetDefaultConfig(config) SMARTCARD_PHY_GPIO_GetDefaultConfig(config)
| Common Smart card API macro.

## Functions

int | SMARTCARD_RTOS_Init (void *base, rtos_smartcard_context_t *ctx, uint32_t sourceClockHz)
| Initializes an Smart card (EMVSIM/UART) peripheral for Smart card/ISO-7816 operation. More...
int | SMARTCARD_RTOS_Deinit (rtos_smartcard_context_t *ctx)
| This function disables the Smart card (EMVSIM/UART) interrupts, disables the transmitter and receiver, and flushes the FIFOs (for modules that support FIFOs) and gates Smart card clock in SIM. More...
int | SMARTCARD_RTOS_Transfer (rtos_smartcard_context_t *ctx, smartcard_xfer_t *xfer)
| Transfers data using interrupts. More...
int | SMARTCARD_RTOS_WaitForXevent (rtos_smartcard_context_t *ctx)
| Waits until transfer is finished. More...
int | SMARTCARD_RTOS_Control (rtos_smartcard_context_t *ctx, smartcard_control_t control, uint32_t param)
| Controls Smart card module as per different user request. More...
int | SMARTCARD_RTOS_PHY_Control (rtos_smartcard_context_t *ctx, smartcard_interface_control_t control, uint32_t param)
| Controls the Smart card module as per different user request. More...
int | SMARTCARD_RTOS_PHY_Activate (rtos_smartcard_context_t *ctx, smartcard_reset_type_t resetType)
| Activates the Smart card interface. More...
int | SMARTCARD_RTOS_PHY_Deactivate (rtos_smartcard_context_t *ctx)
| Deactivates the Smart card interface. More...

## Data Structure Documentation

struct rtos_smartcard_context_t

Runtime RTOS Smart card driver context.

### Data Fields

SemaphoreHandle_t | x_sem
| RTOS unique access assurance object.
EventGroupHandle_t | x_event
| RTOS synchronization object.
smartcard_context_t | x_context
| transactional layer state More...
OS_EVENT * | x_sem
| RTOS unique access assurance object.
OS_FLAG_GRP * | x_event
| RTOS synchronization object.
OS_SEM | x_sem
| RTOS unique access assurance object.
OS_FLAG_GRP | x_event
| RTOS synchronization object.

#### Field Documentation

smartcard_context_t rtos_smartcard_context_t::x_context

Transactional layer state.

## Macro Definition Documentation

#define SMARTCARD_Control | ( |  | base,
|  |  | context,
|  |  | control,
|  |  | param
| ) |  | SMARTCARD_UART_Control(base, context, control, 0)

Common Smart card API macro

## Function Documentation

int SMARTCARD_RTOS_Init | ( | void * | base,
|  | rtos_smartcard_context_t * | ctx,
|  | uint32_t | sourceClockHz
| ) |  |

Also initialize Smart card PHY interface .

This function ungates the Smart card clock, initializes the module to EMV default settings, configures the IRQ state structure, and enables the module-level interrupt to the core. Initialize RTOS synchronization objects and context.

Parameters

  base | The Smart card peripheral base address.
  ctx | The Smart card RTOS structure.
  sourceClockHz | Smart card clock generation module source clock.

Returns
  An zero in Success or error code.

int SMARTCARD_RTOS_Deinit | ( | rtos_smartcard_context_t * | ctx | ) |

Deactivates also Smart card PHY interface, stops Smart card clocks. Free all synchronization objects allocated in RTOS Smart card context.

Parameters

  ctx | The Smart card RTOS state.

Returns
  An zero in Success or error code.

int SMARTCARD_RTOS_Transfer | ( | rtos_smartcard_context_t * | ctx,
|  | smartcard_xfer_t * | xfer
| ) |  |

A blocking (also known as synchronous) function means that the function returns after the transfer is done. User can cancel this transfer by calling function AbortTransfer.

Parameters

  ctx | A pointer to the RTOS Smart card driver context.
  xfer | Smart card transfer structure.

Returns
  An zero in Success or error code.

int SMARTCARD_RTOS_WaitForXevent | ( | rtos_smartcard_context_t * | ctx | ) |

Task waits on the transfer finish event. Don't initialize transfer, just wait for transfer callback. Can be used while waiting on initial TS character.

Parameters

  ctx | A pointer to the RTOS Smart card driver context.

Returns
  An zero in Success or error code.

int SMARTCARD_RTOS_Control | ( | rtos_smartcard_context_t * | ctx,
|  | smartcard_control_t | control,
|  | uint32_t | param
| ) |  |

Parameters

  ctx | The Smart card RTOS context pointer.
  control | Control type
  param | Integer value of specific to control command.

Returns
  An zero in Success or error code.

int SMARTCARD_RTOS_PHY_Control | ( | rtos_smartcard_context_t * | ctx,
|  | smartcard_interface_control_t | control,
|  | uint32_t | param
| ) |  |

Parameters

  ctx | The Smart card RTOS context pointer.
  control | Control type
  param | Integer value of specific to control command.

Returns
  An zero in Success or error code.

int SMARTCARD_RTOS_PHY_Activate | ( | rtos_smartcard_context_t * | ctx,
|  | smartcard_reset_type_t | resetType
| ) |  |

Parameters

  ctx | The Smart card RTOS driver context structure.
  resetType | type of reset to be performed, possible values = kSmartcardColdReset, kSmartcardWarmReset

Returns
  An zero in Success or error code.

int SMARTCARD_RTOS_PHY_Deactivate | ( | rtos_smartcard_context_t * | ctx | ) |

Parameters

  ctx | The Smart card RTOS driver context structure.

Returns
  An zero in Success or error code.