Host Protocols Direct Protocol DFU class
April 13, 2023 at 2:39 AMSpringCore Direct CONTROL class
The DFU (Device Firmware Upgrade) class is used to flash a new firmware into the SpringCore device.
CLA value
The DFU class uses CLA=5D
.
Message format
SpringCore Direct over USB, SpringCore Direct over BLE
The commands and the responses use the same format.
Field | Length | Description / remark |
---|---|---|
Header | 4 or 6 bytes | CLA = 5D , LEN = length of Data |
INS / STA | 1 byte | Command: opcode of the INStruction Response: STAtus |
Data | 0 or more bytes | Command data Response data |
SpringCore Direct over UART
The commands and the responses use the same format. This mode is only available on specific SpringCore devices.
Field | Length | Description / remark |
---|---|---|
Sync byte | 1 byte | 16 |
Header | 4 bytes | CLA = 5D , LEN = length of Data (only!) |
INS / STA | 1 byte | Command: opcode of the INStruction Response: STAtus |
Data | 0 or more bytes | Command data Response data |
LRC | 1 byte | XOR of bytes 1-N (all the preceding bytes but Sync byte). |
Encapsulation in CCID Escape / SCardControl
Commands
Field | Length | Description / remark |
---|---|---|
CLA | 1 byte | 5D |
INS | 1 byte | Opcode of the INStruction |
Data | 0 or more bytes | Command data |
Note
The length of the Command is not transmitted, as it can be deduced from the CCID header.
Responses
Item | Length | Description / remark |
---|---|---|
STA | 1 byte | STAtus |
Data | 0 or more bytes | Response data |
Note
The length of the Response is not transmitted, as it can be deduced from the CCID header.
The CLA byte is not transmitted.
Encapsulation in SCardTransmit
Encapsulation within an APDU is possible. Pay attention that CLA and INS have a different meaning from the APDU definition (ISO/IEC 7816-4 standard) and from the SpringCore Direct point-of-view.
See CONTROL instruction within the PC/SC APDU interpreter for details.
Commands
Field | Length | Description / remark |
---|---|---|
CLA | 1 byte | FF |
INS | 1 byte | F0 |
P1 | 1 byte | 5D |
P2 | 1 byte | Opcode of the INStruction |
Data | 0 or more bytes | Command data |
Note
The length of the Command is not transmitted, as it can be deduced from the APDU header.
Responses
Item | Length | Description / remark |
---|---|---|
Data | 0 or more bytes | Response data |
90 |
1 byte | SW1 denoting success |
STA | 1 byte | Actual STAtus |
Note
The length of the Response is not transmitted, as it can be deduced from the CCID header.
Pay attention that if even if an error occurs, SW1 is 90
, not 6x
.
The CLA byte is not transmitted.