BALTECH SDK wrapper functions reference
iso15.h File Reference

The ISO 15693 command group contains commands for communication with labels compatible to the ISO 15693 standard. More...

#include "../typedefs.h"

Go to the source code of this file.

Data Structures

struct  brp_Iso15_SetParam_t
 
struct  brp_Iso15_GetParam_t
 
struct  brp_Iso15_GetUIDList_t
 
struct  brp_Iso15_SetMode_t
 
struct  brp_Iso15_StayQuiet_t
 
struct  brp_Iso15_LockBlock_t
 
struct  brp_Iso15_ResetToReady_t
 
struct  brp_Iso15_WriteAFI_t
 
struct  brp_Iso15_LockAFI_t
 
struct  brp_Iso15_WriteDSFID_t
 
struct  brp_Iso15_LockDSFID_t
 
struct  brp_Iso15_GetSystemInformation_t
 
struct  brp_Iso15_GetSecurityStatus_t
 
struct  brp_Iso15_CustomCommand_t
 
struct  brp_Iso15_ReadSingleBlock_t
 
struct  brp_Iso15_WriteSingleBlock_t
 
struct  brp_Iso15_WriteMultipleBlocks_t
 
struct  brp_Iso15_ReadMultipleBlocks_t
 
struct  brp_Iso15_TransparentCmd_t
 

Macros

#define BRP_Iso15_ErrNoTag   BRP_ERR_STATUS(0x2100, 0x01)
 No label in field of antenna. More...
 
#define BRP_Iso15_ErrCollision   BRP_ERR_STATUS(0x2100, 0x02)
 This status code is triggered by two events: More...
 
#define BRP_Iso15_ErrHf   BRP_ERR_STATUS(0x2100, 0x04)
 General HF Error. More...
 
#define BRP_Iso15_ErrLabel   BRP_ERR_STATUS(0x2100, 0x05)
 Label status error. More...
 
#define BRP_Iso15_ErrCom   BRP_ERR_STATUS(0x2100, 0x10)
 Error in communication to reader chip. More...
 
#define BRP_Iso15_ErrParamNotSupported   BRP_ERR_STATUS(0x2100, 0x23)
 Reader chip does not support label type parameters. More...
 
#define BRP_Iso15_ErrMem   BRP_ERR_STATUS(0x2100, 0x24)
 Either internal list of labels or response buffer full. More...
 
#define BRP_Iso15_ErrLabelBlocksize   BRP_ERR_STATUS(0x2100, 0x25)
 The blocks requested are not equal in size (Read multiple blocks). More...
 

Functions

brp_errcode brp_Iso15_SetParam (brp_Iso15_SetParam_t params)
 This command configures the reader chip. More...
 
brp_errcode brp_Iso15_GetParam (brp_Iso15_GetParam_t params)
 This command reads the configuration of the reader chip. More...
 
brp_errcode brp_Iso15_GetUIDList (brp_Iso15_GetUIDList_t params)
 This command scans for ISO 15693 labels which are in the field of the readers antenna and which are not in quiet-state. More...
 
brp_errcode brp_Iso15_SetMode (brp_Iso15_SetMode_t params)
 This command configures the mode to address a label. More...
 
brp_errcode brp_Iso15_StayQuiet (brp_Iso15_StayQuiet_t params)
 This command puts a label into the quiet-state. More...
 
brp_errcode brp_Iso15_LockBlock (brp_Iso15_LockBlock_t params)
 This command permanently locks the block with ID BlockID. More...
 
brp_errcode brp_Iso15_ResetToReady (brp_Iso15_ResetToReady_t params)
 This command puts a label into ready-state , according to the VICC state transition diagram from the ISO 15693-3 specification. More...
 
brp_errcode brp_Iso15_WriteAFI (brp_Iso15_WriteAFI_t params)
 This commands writes the AFI value into the label's memory. More...
 
brp_errcode brp_Iso15_LockAFI (brp_Iso15_LockAFI_t params)
 This command locks the AFI value permanently into the reader's memory. More...
 
brp_errcode brp_Iso15_WriteDSFID (brp_Iso15_WriteDSFID_t params)
 This commands writes the DSFID value into the label's memory. More...
 
brp_errcode brp_Iso15_LockDSFID (brp_Iso15_LockDSFID_t params)
 This command locks the DSFID value permanently into the reader's memory. More...
 
brp_errcode brp_Iso15_GetSystemInformation (brp_Iso15_GetSystemInformation_t params)
 This command gets the system information of a VICC. More...
 
brp_errcode brp_Iso15_GetSecurityStatus (brp_Iso15_GetSecurityStatus_t params)
 This command retrieves the block security status of a label. More...
 
brp_errcode brp_Iso15_CustomCommand (brp_Iso15_CustomCommand_t params)
 This command executes any ISO 15693 manufacturer proprietary commands, so-called custom-commands. More...
 
brp_errcode brp_Iso15_ReadSingleBlock (brp_Iso15_ReadSingleBlock_t params)
 This command reads a single block from a label. More...
 
brp_errcode brp_Iso15_WriteSingleBlock (brp_Iso15_WriteSingleBlock_t params)
 This command writes a single block to a label. More...
 
brp_errcode brp_Iso15_WriteMultipleBlocks (brp_Iso15_WriteMultipleBlocks_t params)
 Sends the "WriteMultipleBlocks" to the card to store the data passed in WriteBlocks to the data blocks of the presented card starting at block with id Blockid. More...
 
brp_errcode brp_Iso15_ReadMultipleBlocks (brp_Iso15_ReadMultipleBlocks_t params)
 This command reads one or multiple blocks from a label. More...
 
brp_errcode brp_Iso15_TransparentCmd (brp_Iso15_TransparentCmd_t params)
 This command sends a data stream to a label and returns the communication status and the received label data stream to the host. More...
 

Detailed Description

The ISO 15693 command group contains commands for communication with labels compatible to the ISO 15693 standard.

This document does not replace the official ISO 15693 specification. It is rather meant to be used in combination with it.

The Baltech reader understands the so-called mandatory and optional commands as well as custom commands for some label types. However, custom commands are not documented in this page.

In order to communicate with an ISO 15693 compatible label, it is necessary to know its UID. Every command sent to the reader uses the UID to address the label. This is very important to guarantee that only one label reacts to the command. A command may also be executed without specifying a UID if it is certain that only one label is present in the reader's HF field. However, it is most of the time difficult to know how many labels are present within the antenna's field at a given time. Thus, it is advisable to execute the brp_Iso15_GetUIDList() command before starting to communicate with the label. This command returns a list of available labels along with their UIDs.

The brp_Iso15_StayQuiet() command may be used to set a certain label to quiet-state , i.e. to keep the label from answering to subsequent calls of the brp_Iso15_GetUIDList() command. This may be useful when a label has been fully processed and the application wants to scan for other labels that may also be available in the reader's HF field at the same time. The opposite command which sets a label back to ready-state is brp_Iso15_ResetToReady(). The addressed label will then answer again to subsequent calls of brp_Iso15_GetUIDList().

Once the UID of a specific label is known (e.g. by executing brp_Iso15_GetUIDList()), there are three options to communicate with this label. The communication mode needs to be chosen using the brp_Iso15_SetMode() command. All subsequent commands performing communication with the label will then use this mode. If a different label must be addressed, brp_Iso15_SetMode() has to be called again. The three possible communication modes are:

  • Addressed mode : The 8 byte UID of the label is used to address a distinct label. In this mode, the UID is included in each command frame sent to the label.
  • Selected mode : A label in selected mode responds to commands received from the reader without the need to transfer the UID in each command. Attention: This mode is optional and not supported by all types of ISO 15693 labels.
  • Unaddressed mode : If it is sure that only one label is in the field of the antennas you may execute commands in the unaddressed mode as well. Attention: All labels currently in the reader's antenna field will respond to commands when using this mode.

The memory of labels compliant to ISO 15693 is organized as a sequence of blocks where the block-size is fixed for a certain type of label. The default length of a block is four byte. Each block can be directly accessed and the available commands for data exchange, mainly brp_Iso15_ReadBlock() and brp_Iso15_WriteBlock(), are generally designed to handle one block per call. brp_Iso15_GetSystemInformation() retrieves general information about a specific label.

Definition in file iso15.h.