This embedded USB host class driver controls Chip Card Interface Device (CCID) USB devices. The CCID protocol is used to connect Integrated Circuit Cards (ICCs) to a computer through an interface device (for example, a card reader) using a standard USB interface.

The module also supports the pcsc-lite Application Programming Interface (API) functions for communicating with smart cards and their readers. pcsc-lite implements the Personal Computer/Smart Card (PC/SC) specification.

Examples of ICCs are smart cards and Smart Digital (SD) cards. Examples of CCIDs are card readers, USB smart card reader keyboards that have a slot for accepting a smart card, and USB dongles that contain a Smart Digital (SD) or SIM card. The dongle allows a smart card to be used as a security token for authentication and data encryption.

Features
  • Conforms to the HCC Advanced Embedded Framework.
  • Designed for integration with both RTOS and non-RTOS based systems.
  • Compatible with all HCC USB host controllers.
  • Supports Chip Card Interface Device (CCID) USB devices.
  • Supports the pcsc-lite API functions that handle communications with smart card readers. These follow the Personal Computer/Smart Card (PC/SC) specification.
  • Supports multiple devices connected simultaneously.
Architecture
CCID USB host class driver

The lower layer interface is designed to use HCC Embedded’s USB Host Interface Layer. This layer is standard over different host controller implementations; this means that the code is unchanged, whichever HCC USB host controller it is interfaced to. For detailed information about this layer, see the HCC USB Host Base System User Guide that is shipped with the base system.

The lower layer interface is designed to use HCC Embedded’s USB Host Interface Layer. This layer is standard over different host controller implementations; this means that the code is unchanged, whichever HCC USB host controller it is interfaced to. For detailed information about this layer, see the HCC USB Host Base System User Guide that is shipped with the base system.

When a CCID is connected to a USB host, it may have an ICC “inserted” or not. The CCID identifies to the host its capabilities and requirements, and the host prepares to communicate with it. When the CCID at any time, detects the presence of an ICC, it tells the host. As soon as the host receives information about the inserted ICC, further communications may then take place between the host and the ICC through the CCID.

The CCID exchanges information through a host computer over USB by using CCID messages. These comprise a 10-byte header followed by message-specific data. The standard defines 14 commands that the host computer can use to send data or status and control information in messages. Each command requires at least one response message from the CCID. The term slot is used for a physical connection with an CCID.

This package provides two sets of API functions:

  • API functions for controlling access to a CCID.
  • the pcsc-lite API functions that handle communications with smart card readers.

Sample code provided shows:

  • how to initialize the system and perform data transfer.
  • how to use the pcsc-lite API functions.
Integration into your application

Interested in designing-in this software/component into an application? Use our Project Builder to describe your project in an easy way and get an idea whether this software fits your project.