Host Interfaces Serial
March 13, 2024 at 7:41 AMSerial host interface
This chapter covers only SpringCore devices featuring a Serial interface.
Overview
Available Serial protocols
Depending on the operating mode selected in its configuration, a SpringCore Serial device implements one of the following protocols:
- CCID (chip card interface device): this is the standard USB protocol for smartcard readers. It is the foundation for PC/SC Operation. SpringCard’s devices supports a “CCID-like” implementation of the protocol on top of a Serial link.
- SpringCore Direct: this is a SpringCard-specific protocol, that allows a SpringCore device to be driven easily and in an abstract way from SpringCard Companion, whatever its configured operating mode and communication interface. The protocol is also optimized to give the highest throughput, which is a key feature for the Smart Reader Operation.
- RDR TLV: a complete and efficient protocol to implement Smart Reader Operation over UDP and TCP raw channels.
- $SCRDR: this is a lightweight string-based, easy-to-implement protocol, that is ideal to support Smart Reader Operation in virtually no time.
- JSON: an higher-level string-based protocol, that is ideal to support Smart Reader Operation from any high end programming languages that support JSON (JavaScript Object Notation).
- RDR MK1: a very basic, protocol coming from the IWM2 firmware; it can be used Smart Reader Operation with legacy systems.
- SpringProx: this is the Legacy protocol used by earlier SpringCard devices, such as K531, K632, K663, CSB4, etc. The implementation makes it possible for a customer to migrates an existing application, but is not recommended for new developments, and, therefore, will not be fully documented.
Coexistence of SpringCore Direct with other protocols
In some configurations, a SpringCore device is able to listen for both the SpringCore Direct protocol and another, and the host application is free to switch between the two protocols anytime. This makes it possible to operate the device over the protocol that is the most adapted to the use-case, while having the ability to configure it or flash it in the-field over the SpringCore Direct protocol.
These possible configurations are:
- CCID + SpringCore Direct
- $SCRDR + SpringCore Direct
- JSON + SpringCore Direct
- RDR MK1 + SpringCore Direct
Bitrate and parameters
On startup, the Serial communication parameters are:
- Bitrate: 38400bps
- Format: 8 data bits, 1 stop bit, no parity, no flow control
- /WAKEUP pin (if present) is not used.
The host application may change these parameters at runtime, using the SET_SERIAL_PARAMETERS instruction of the PROTOCOL Class in the SpringCore Direct protocol. If only the CCID protocol is used, this instruction has to be encapsulated in a SCardControl call.