A SpringCore device features one or more Host Interfaces.
To-date, 4 physical Host Interfaces -and their corresponding transport layers- are implemented by SpringCore devices:
- Serial: M519
- USB: PUCK (all variants), SpringPark, Crazy Ultra
- Bluetooth (BLE): PUCK (Blue and Point),
- Network (Ethernet): SpringPark, Crazy Ultra
Of course, the list of host interfaces that are actually available depends on the hardware. Please check the product characteristics to know which host interfaces are supported by every device.
Over a Host Interface, the communication between the device and the host goes through a Host Protocol.
The implementation uses a layered model which allows to operate the device virtually the same way from any Interface - provided that the security constraints are met.
The default communication protocol is SpringCore Direct Protocol. Depending on its configuration, the device may also support the CCID Protocol for PC/SC Operation, the HID protocol for RFID Scanner Operation, and possibly a legacy reader protocol for Smart Reader Operation (normally, Smart Reader Operation goes through the SpringCore Direct Protocol).
On startup, the following rules apply:
- The USB Host Interface has greatest priority. Once the device is enumerated and configured by the USB host, lowest priority interfaces are disabled. Powering the device by USB (i.e. pluging the device to an USB charger, not a host) does not disable the other host interfaces.
- The Network Host Interface comes next. If the device has a Network interface and the Ethernet link is up (i.e. if the device is actually connected to a switch or hub), lowest priority interfaces (Serial interface namely) are disabled.
- The Serial Host Interface has lowest priority. It is available only if the device is not enumerated on configured over USB, if the Ethernet link is down, and while no Bluetooth client is connected.
If the device is configured to accept host connections over the Bluetooth (BLE) link, connection of a Bluetooth client disables the USB and Serial interfaces. These interfaces are enabled again when the client disconnects. This behaviour is governed by register
02C3 “Mode switching USB / BLE”.
Except for the Bluetooth interface which is intrinsically designed to support connection/disconnection, the main Host Interface could not be changed while the device is running.
The following behaviours should be generally expected:
- When the device is plugged to a USB host or a charger while alive (either running on battery or on external power supply), the device resets immediately. It then probes the USB bus to detect whether this is a host or a charger.
- When the device is running over the Network (Ethernet link was up on startup) and the Ethernet link goes down, the device resets immediately. It then detects whether it shall switch to USB or wait for the Ethernet link to go up again.
An interruption of the Serial communication has no impact on the device.
The security constraints are configured in register
02F0 “Access Conditions” and onwards (see chapter Non-volatile memory : Security).
USB and Serial interfaces are considered to be “local”, i.e. may be used with less restrictions.
Bluetooth and Network interfaces are considered to be “remote” and are protected more strictly.