Professional Documents
Culture Documents
APINote
& GUI Description
Application
Table of Contents:
1
2
2.1
2.1.1
2.1.2
2.1.3
2.1.4
2.1.5
2.2
2.3
2.4
2.5
2.6
3
3.1
3.2
3.2.1
3.2.2
3.3
3.3.1
3.3.2
3.4
4
Introduction .................................................................................................. 4
Firmware Architecture .................................................................................. 4
Application Layer....................................................................................................... 6
USB Report-Frame..................................................................................................... 6
USB Reports............................................................................................................... 6
Reader Related USB Reports ..................................................................................... 7
Tag Related USB Reports ........................................................................................ 13
Error Byte................................................................................................................. 19
Protocol Layer - Gen2 .............................................................................................. 21
Protocol Layer - ISO6B............................................................................................ 25
Protocol Layer - AS399x_public.............................................................................. 25
Device Specific Functions........................................................................................ 26
Interface Layer ......................................................................................................... 26
Host Software .............................................................................................27
Installation................................................................................................................ 27
Main Window........................................................................................................... 28
Main Window Menu Entries.................................................................................... 28
Main Window Controls............................................................................................ 31
Reader Configuration: .............................................................................................. 32
Settings Tab:............................................................................................................. 34
Diagnostics Tab........................................................................................................ 36
Regiser Map ............................................................................................................. 38
Disclaimer ...................................................................................................44
www.austriamicrosystems.com/RFID
Rev 2.0
1 - 44
List of Tables:
Table 1 - Firmware Architecture................................................................................................ 5
Table 2: Report Frame ............................................................................................................ 6
Table 3: USB Reports Overview ............................................................................................. 6
Table 4- callSendFirmwareHardwareID - outgoing................................................................... 7
Table 5- callSendFirmwareHardwareID - incoming.................................................................. 7
Table 6 callAntennaPower - outgoing...................................................................................... 7
Table 7 - callAntennaPower - incoming .................................................................................... 7
Table 8 - writeRegister outgoing............................................................................................. 8
Table 9 - writeRegister incoming............................................................................................ 8
Table 10 - callReadRegister - outgoing...................................................................................... 8
Table 11 - callReadRegister - incoming..................................................................................... 8
Table 12 - callReadRegisters - outgoing .................................................................................... 8
Table 13 - callReadRegisters - incoming ................................................................................... 8
Table 14 - callChangeFreq - Get RSSI Level - outgoing........................................................... 9
Table 15 - callChangeFreq - Get RSSI Level - incoming .......................................................... 9
Table 16 - callChangeFreq - Get Reflected Power Level - outgoing......................................... 9
Table 17 - callChangeFreq - Get Reflected Power Level - incoming........................................ 9
Table 18 - callChangeFreq Add frequency to hopping list - outgoing.................................... 9
Table 19 - callChangeFreq Add frequency to hopping list - incoming................................... 9
Table 20 Clear frequency hopping list - outgoing.................................................................... 9
Table 21 - Clear frequency hopping list incoming.................................................................. 9
Table 22 Set frequency hopping parameters - outgoing ....................................................... 10
Table 23 - Set frequency hopping parameters - incoming ....................................................... 10
Table 24 - Get frequency hopping parameters outgoing....................................................... 10
Table 25 - Get frequency hopping parameters incoming ...................................................... 10
Table 26 - Continuous modulation test outgoing .................................................................. 10
Table 27 - Continuous modulation test incoming ................................................................. 10
Table 28 configGen2 - outgoing ........................................................................................... 11
Table 29 configGen2 - incoming .......................................................................................... 11
Table 30 - configGen2 - parameter settings ............................................................................. 11
Table 31 - callEnableBootloader outgoing............................................................................ 12
Table 32 - callEnableBootloader incoming........................................................................... 12
Table 33 - callStartStop - outgoing .......................................................................................... 12
Table 34 - callStartStop - incoming ......................................................................................... 12
Table 35 - callInventory - outgoing.......................................................................................... 13
Table 36 - callInventory - incoming......................................................................................... 13
Table 37 - callInventoryRSSIInternal - outgoing..................................................................... 13
Table 38 - callInventoryRSSIInternal incoming ................................................................... 13
Table 39 - callInventory6B outgoing .................................................................................... 14
Table 40 - callInventory6B incoming ................................................................................... 14
Table 41 - callSelectTag - outgoing ......................................................................................... 15
Table 42 - callSelectTag - incoming ........................................................................................ 15
Table 43 - callWriteToTag - outgoing ..................................................................................... 15
Table 44 - callWriteToTag incoming.................................................................................... 15
Table 45 - writeToTag6B - outgoing ....................................................................................... 16
Table 46 - writeToTag6B incoming...................................................................................... 16
www.austriamicrosystems.com/RFID
Rev 2.0
2 - 44
List of Figures:
Picture 1 - Firmware Program Flow........................................................................................... 5
Picture 2 - Gen2 Tag Singulation............................................................................................. 15
Picture 3 - Error Handling - Read Procedure ........................................................................... 20
Picture 4 - Error Handling - Write Procedure .......................................................................... 20
Picture 5 - Error Handling - Kill Operation ............................................................................. 20
Picture 6 - Error Handling - Unlock Operation........................................................................ 20
Picture 7 - Gen2 - State Diagram ............................................................................................. 22
Picture 8 - Gen2 - State Diagram (no password set) ................................................................ 22
Picture 9: Gen2 Anti Collision State Diagram ...................................................................... 24
Picture 10 - ISO6B - State Diagram......................................................................................... 25
Picture 11: Starting AS399x Reader Suite Setup ..................................................................... 27
Picture 12: AS399x Reader Suite Main Window .................................................................. 28
Picture 13: Entering Reader Settings and Diagnostics ........................................................... 32
Picture 14 - Advanced Reader Settings Dialog........................................................................ 33
Picture 15: Sensitivity Adjustment ........................................................................................... 34
Picture 16 - RSSI Sweep .......................................................................................................... 36
Picture 17 - Reflected Power Sweep ........................................................................................ 37
Picture 18 - Reflected Power Rader Screen ............................................................................. 37
Picture 19: Entering the Register Map ..................................................................................... 38
Picture 20: Reader Register Map............................................................................................. 38
Picture 21: Entering Tag Settings............................................................................................ 39
Picture 22: Tag Settings Window............................................................................................. 39
Picture 23: Tag Action ............................................................................................................. 40
Picture 24: Advanced Tag Settings Window ............................................................................ 40
Picture 25: Set New EPC ......................................................................................................... 41
Picture 26: Set Tag Password.................................................................................................. 41
www.austriamicrosystems.com/RFID
Rev 2.0
3 - 44
1 Introduction
This document describes the architecture of the firmware and important functions. For a
complete reference of implemented functions please refer to the Doxygen documentation.
2 Firmware Architecture
The firmware is written in a way that it should be possible to port this code to another MCU
with minimal effort. The code is organized in layers to maintain a clear structure and to
simplify modifications.
In order to port the firmware to another MCU only the layer directly using the hardware needs
to be modified. All hardware initialization functions as well as all functions directly using ports
or registers need to be changed and the definitions in the header files (*.h) should be
adapted.
The USB driver should be programmed in such a way, that the usb_commands.c and .h files
may be used. If UART is the desired communication interface the definitions of uart.h, the
initialization and interrupt function in the uart.c file needs to be changed. 8051 based
microcontrollers have the ability to set a Port pin with a single assembler command. Since
that ability is special to 8051 based controllers, firmware programmers need to adapt these
sequences for other micro controllers.
NOTE:
8051 MCUs deactivate pull-ups by writing 0xFF to its port, other controller may deactivate
the pull-ups by writing 0x00.
NOTE:
Keeping the (weak) pull-ups activated during the reading of AS399x registes, could cause
that the STOP-condition is being triggerd (rising edge on IO7 during CLK = low). As a
consequence, the AS399x chip will be disables during the data transfer. For that reason it is
recommended to disable all pull-ups by firmware.
www.austriamicrosystems.com/RFID
Rev 2.0
4 - 44
usbCommands()
initialization
selftest
no
usbCommands()
callSendFirmwareHardwareID;
callSendDeviceInfo;
ccallResetCPU;
callAntennaPower;
callWriteRegister;
callReadRegister;
callInventory;
callSelectTag;
callWriteToTag;
callReadFromTag;
callLockUnlock;
callKillTag;
callNXPCommands;
callInventory6B;
callChangeFreq;
callInventoryRSSI;
end
Within the main.c the programs starts initialization of timer, USB descriptors, UARTs and
performs a self test. The operational tasks are polled with in the usbCommands() procedure.
The usbCommands() procedure scan for one of the USB-OUT Packages that came from the
Host system.
www.austriamicrosystems.com/RFID
Rev 2.0
5 - 44
Byte 2
Variable length
Report ID
Frame Length
Payload
Report ID outgoing
Report ID incoming
0x10
0x18
0x1A
0x1C
0x57
0x41
0x59
0x55
0x5D
0x31
0x43
0x3F
0x33
0x35
0x47
0x37
0x49
0x3B
0x3D
0x45
0x11
0x19
0x1B
0x1D
0x58
0x42
0x5A
0x56
0x5E
0x32
0x44
0x40
0x34
0x36
0x48
0x38
0x50
0x3c
0x3E
0x46
callSendFirmwareHardwareID
callAntennaPower
writeRegister
callReadRegister
callReadRegisters
callChangeFreq
configGen2
callEnableBootloader
callStartStop
callInventory
callInventoryRSSIInternal
callInventory6B
callSelectTag
callWriteToTag
writeToTag6B
callReadFromTag
readFromTag6B
callLockUnlock
callKillTag
callNXPCommands
It is recommended to send the reports always with the maximal report length of 64 bytes.
Most reports are already defined in the descriptor with the maximal length. The others may
change in future. Windows truncates longer reports and discards shorter reports!
www.austriamicrosystems.com/RFID
Rev 2.0
6 - 44
Content
0x10(ID)
3(length)
Payload
Payload:
0x00Firmware
0x01Hardware
Byte
2 .. 47
Content
0x11(ID)
length
2.1.3.2 callAntennaPower
Content
0x18(ID)
3(length)
Table 6 callAntennaPower - outgoing
Payload
Payload:
0x00RF-Power OFF
0x01RF-Power ON
Byte
Content
0x19(ID)
3(length)
Table 7 - callAntennaPower - incoming
www.austriamicrosystems.com/RFID
Rev 2.0
0 on success
7 - 44
2.1.3.3 writeRegister
This function writes one register of the AS399x.
Byte
Content
0x1A(ID)
5(length)
reg_number
val_0
Table 8 - writeRegister outgoing
val_1
val_2
val_1 and val_2 are used only if reg_number is a deep register (e.g.: Modulator Control
Register).
If reg_number 0x80 a direct command is executed.
Byte
Content
0x1B(ID)
3(length)
Table 9 - writeRegister incoming
0 on success
2.1.3.4 callReadRegister
This function reads one register from the AS399x
Byte
0x1C(ID)
2(length)
Table 10 - callReadRegister - outgoing
Content
reg_number
If a 3-bytes deep register is selected the controller sends back 3 data bytes.
Byte
Content
0x1D(ID)
6(length)
0x00 on success
val0
Table 11 - callReadRegister - incoming
val1
val2
2.1.3.5 callReadRegisters
This function reads all register in one bulk from AS399x.
Byte
Content
Byte
Content
0x58(ID)
0x57(ID)
Table 12 - callReadRegisters - outgoing
45(length)
reg 0x00
Table 13 - callReadRegisters - incoming
www.austriamicrosystems.com/RFID
Rev 2.0
1(length)
44
reg 0x1F
8 - 44
2.1.3.6 callChangeFreq
This report sets, modifies or measures frequency related properties.
freq comprises 3 bytes and is transmitted in kHz. E.g.: 868000 means 868 MHz.
2.1.3.6.1 Get RSSI Level
Byte
3 .. 5
0x41(ID)
length
0x01
Table 14 - callChangeFreq - Get RSSI Level - outgoing
Content
Byte
freq
0x42(ID)
64(length)
I-channel
Table 15 - callChangeFreq - Get RSSI Level - incoming
Content
Q-channel
3 .. 5
0x41(ID)
length
0x02
Table 16 - callChangeFreq - Get Reflected Power Level - outgoing
Content
Byte
freq
0x42(ID)
64(length)
I-channel
Table 17 - callChangeFreq - Get Reflected Power Level - incoming
Content
Q-channel
Byte
3 .. 5
length
0x04
freq
rssi_threshhold(dBm)
Content 0x41(ID)
Table 18 - callChangeFreq Add frequency to hopping list - outgoing
Byte
Content
profile_id
0x42(ID)
64(length)
0xFC on success
0xFF on success
Table 19 - callChangeFreq Add frequency to hopping list - incoming
0x41(ID)
length
Table 20 Clear frequency hopping list - outgoing
Content
Byte
Content
0x42(ID)
64(length)
0xFC on success
Table 21 - Clear frequency hopping list incoming
www.austriamicrosystems.com/RFID
Rev 2.0
0x08
3
0xFF on success
9 - 44
Content 0x41(ID)
3 .. 4
5 .. 6
7 .. 8
length
0x10
listeningTime
maxSendingTime
Table 22 Set frequency hopping parameters - outgoing
Byte
Content
0x42(ID)
idleTime
64(length)
0xFC on success
0xFF on success
Table 23 - Set frequency hopping parameters - incoming
0x41(ID)
length
Table 24 - Get frequency hopping parameters outgoing
Content
0x11
Byte
5 .. 6
7 .. 8
Content
0x42(ID)
64(length)
0xfe
0xff
profile_id
listening_time
max_sending_time
9 .. 10
11 .. 13
14 .. 16
17
18
19
idle_time
gui_min_freq
gui_max_freq
gui_num_freqs
rssi_threshold
act_num_freqs
Starts continuous modulation of the RF field for given duration. If duration is set to 0
continuous modulation is active until the next report is received from GUI.
Byte
Content
0x41(ID)
Byte
Content
3 .. 5
6 .. 7
length
32
don't care
Table 26 - Continuous modulation test outgoing
0x42(ID)
64(length)
0xfe
Table 27 - Continuous modulation test incoming
www.austriamicrosystems.com/RFID
Rev 2.0
duration in ms
3
0xff
10 - 44
2.1.3.7 configGen2
This function sets and reads various gen2 related settings.
The values are only being set if the proper set_ value is set to 1.
Byte
Content
0x59(ID)
length
set_lf
lf
set_coding
coding
set_session
session
10
11
12
13
set_trext
trext
set_qbegin
qbegin
set_sensitivity
sensitivity
1
2
3
4
5
6
0x40(length) reserved(0) lf reserved(0) coding reserved(0)
10
11
12
13
reserved(0) qbegin
reserved(0)
sensitivity
7
session
coding
session
trext
qbegin
sensitivity
values
0 = 40 kHz,
3 = 80 kHz (not available for AS3992),
6 = 160 kHz,
8 = 213 kHz,
9 = 256 kHz,
12 = 320 kHz,
15 = 640 kHz
0 = FM0,
1 = Miller2,
2 = Miller4,
3 = Miller8
0 = S0,
1 = S1,
2 = S2,
3 = SL
0 = short preamble, pilot tone,
1 = long preamble, pilot tone
0 .. 15. Initial gen2 round is 2^qbegin long
-128 .. 127 (dBm)
www.austriamicrosystems.com/RFID
Rev 2.0
11 - 44
2.1.3.8 callEnableBootloader
This function erases the programmed firmware but does not affect the bootloader. The
firmware of the device needs to be reprogrammed afterwards.
Byte
Content
0
0x55(ID)
1
4(length)
2
dont_care
3
dont_care
0
0x56(ID)
1
3(length)
2
1 on success
2.1.3.9 callStartStop
This function starts/stops the automatic scanning procedure.
Byte
Content
0
0x5D(ID)
1
6(length)
2
update
3
start
2
current start value
Content
0x5E(ID)
3(length)
www.austriamicrosystems.com/RFID
Rev 2.0
12 - 44
0
0x31(ID)
1
3(length)
2
start
0
0x32(ID)
1
length
2
tags_left
3
epclen+pclen
4
pc[0]
5
pc[1]
6 .. 6 + epclen
epc
With byte 2 the controller reports how many tags are found by the inventory command. After
issuing the first inventory report and with start-byte = 2 the controller reports back the count
of tags not inventoried yet. This information is used to inform the host how often he has to
call the inventory command in order to inventory all available tags. The tag information is
kept in the microcontroller's tag list. No tag information is deleted.
2.1.4.2 callInventoryRSSIInternal
This function performs a gen2 protocol inventory round according to parameters given by
configGen2().
Byte
Content
0
0x43(ID)
1
3(length)
2
start
0
0x44(ID)
9
pc[1]
1
2
3
length
tags_left
RSSI_value
10 .. 10 + epclen
epc
4 .. 6
base_freq
7
epclen+pclen
www.austriamicrosystems.com/RFID
Rev 2.0
13 - 44
With byte 2 the controller reports how many tags are found by the inventory command. After
issuing the first inventory report and with start-byte = 2 the controller reports back the count
of tags not inventoried yet. This information is used to inform the host how often he has to
call the inventory command in order to inventory all available tags. The tag information is
kept in the microcontroller's tag list. No tag information is deleted.
2.1.4.3 callInventory6B
This function performs one inventory round using ISO18000-6b protocol. Reading or writing
to the tag will not succeed without sending this report first.
Byte
Content
0
0x3F(ID)
1
12(length)
2
start
3
mask
4 .. 11
word_data
12
start_address
Byte
Content
0
0x40(ID)
1
13(length)
2
tags_left
3
rssi(planned)
4
8(epclen)
5 .. 12
uid
13 .. 15
used freq
With byte 2 the controller reports how many tags are found by the inventory command. After
issuing the first inventory report and with start-byte = 2 the controller reports back the count
of tags not inventoried yet. This information is used to inform the host how often he has to
call the inventory command in order to inventory all available tags. The tag information is
kept in the microcontroller's tag list. No tag information is deleted.
2.1.4.4 callSelectTag
Prior to communicate with one tag the host must isolate one of the found tags. The host needs
to send always all EPC bytes to the controller regardless how long the EPC mask is specified.
The complete report length is 64 bytes and needs to be taken into account by the host
The correct sequence to operate that command is shown below:
www.austriamicrosystems.com/RFID
Rev 2.0
14 - 44
This function singulates a Gen2 tag using the given mask for subsequent operations like
read/write
Byte
Content
0
0x33(ID)
1
length
2
mask_length
3 .. 3 + mask_length
mask
0
0x34(ID)
1
3(length)
2
status (Error Byte)
2.1.4.5 callWriteToTag
This function writes to a previously selected Gen2 tag.
Byte
0
1
2
Content 0x35(ID) length mem_type
3
address
4 .. 7
acces_pw
8
data_len
9 .. 9 + 2 * data_len
data
In case larger memory banks need to be adressed it is necessary to send consecutive USB
reports with the start and stop adress set accordingly.
Byte
Content
0
0x36(ID)
1
3(length)
2
status (Error Byte)
3
num_words_written
www.austriamicrosystems.com/RFID
Rev 2.0
15 - 44
2.1.4.6 writeToTag6B
This function writes data to a tag using ISO18000-6b protocol command WRITE.
Byte
Content
0
0x47(ID)
1
length
2 .. 9
uid
10
addr
11
length_to_write
12 .. 12+length_to_write
data
Byte
Content
0
0x48(ID)
1
3(length)
2
0 for success
2.1.4.7 callReadFromTag
This function reads from a previously selected gen2 tag.
Byte
Content
0
0x37(ID)
1
length
2
mem_type
3
address
4
data_len
mem_type:
o 0:reserved membank
o 1:EPC membank
o 2:TID membank
o 3:USER membank
data_len: data length to read in 16-bit words
In case larger memory banks need to be adressed it is necessary to send consecutive USB
reports with the start and stop adress set accordingly.
Byte
Content
0
0x38(ID)
1
length
2
Status (Error Byte)
3
num_words_read
2.1.4.8 readFromTag6B
This function reads from a tag using ISO18000-6b protocol command READ_VARIABLE.
Byte
Content
0
0x49(ID)
1
12(length)
2 .. 9
uid
10
addr
11
length_to_read
0
0x50(ID)
1
64(length)
2
0 for success
3
length of data
4 .. 4+length_to_read
data
www.austriamicrosystems.com/RFID
Rev 2.0
16 - 44
2.1.4.9 callLockUnlock
This report locks a gen2 tag.
Byte
Content
0
0x3B(ID)
1
8(length)
2
lock_unlock
3
memory_space
4 .. 7
access password
lock_unlock:
0 Unlock
1 Lock
2 Permalock
3 Lock & Permalock
memory_space:
0 Kill password
1 Access password
2 EPC
3 TID
Byte
Content
0
0x3C(ID)
1
3(length)
2
Status (Error Byte)
2.1.4.10
callKillTag
Byte
Content
0
0x3D(ID)
1
7(length)
2 .. 5
kill password
6
recom
recom: see GEN2 standard: table on "XPC_W1 LSBs and a Tag's recomissioned status"
Byte
Content
0
0x3E(ID)
1
3(length)
2
Status (Error Byte)
www.austriamicrosystems.com/RFID
Rev 2.0
17 - 44
2.1.4.11
callNXPCommands
0
0x45(ID)
1
10(length)
2
1
3
eas_on
4 .. 7
access pw
0
0x45(ID)
1
10(length)
2
2
3
set_protect
4 .. 7
access pw
2.1.4.11.3 Calibrate
Byte
Content
0
0x45(ID)
1
10(length)
2
8
3
not_used
4 .. 7
access pw
0
0x45(ID)
1
10(length)
2
9
3
not_used
4 .. 7
access pw
8..9
config
0
0x46(ID)
1
5(length)
2
Status (Error Byte)
3 .. 4
config word (only change config)
www.austriamicrosystems.com/RFID
Rev 2.0
18 - 44
Description
0x00 GEN2_OK
No Error
0x01 GEN2_ERR_REQRN
0x02 GEN2_ERR_ACCESS
0x03 GEN2_ERR_KILL
0x04 GEN2_ERR_NOREPLY
0x05 GEN2_ERR_LOCK
0x06 GEN2_ERR_BLOCKWRITE
Error Blockwrite.
0x07 GEN2_ERR_BLOCKERASE
Error Blockerase.
0x08 GEN2_ERR_READ
Error Reading.
0x09 GEN2_ERR_SELECT
0xFF
www.austriamicrosystems.com/RFID
Rev 2.0
19 - 44
Rev 2.0
20 - 44
2.2
Data
Type
Function
bool(*cbContinueScanning)(void))
Before calling any of the functions the AS399x chip needs to be initialized using
as399xInitialize().
Next the function gen2Open needs to be called for opening a session.
gen2SearchForTags() should be called to identify the tags in reach. Typically tag
singulation is done next.
In order to do so gen2SearchForTags() is called again provided a proper mask to
singulate (select) a tag.
In this case only one tag is returned by gen2SearchForTags().
This tag is then in the Open/Secured state and may be accessed using the other Gen2
functions (gen2WriteWordToTag(), gen2ReadFromTag(), ...).
When finished with gen2 operations this session should be closed using gen2Close().
State Diagram:
www.austriamicrosystems.com/RFID
Rev 2.0
21 - 44
www.austriamicrosystems.com/RFID
Rev 2.0
22 - 44
Typical Use-Case:
Tag tags[16];
struct gen2Config config = {GEN2_LF_160, GEN2_COD_MILLER2, GEN2_IINV_S0,
1};
unsigned n;
u8 buf[4];
...
as399xInitialize(912000);
gen2Open(&config);
n = gen2SearchForTags(tags,16,0,0,4);
if ( n == 0) return;
//Pick one of the tags based on the contents of tags. Here we use the
very first tag
if (gen2ReadFromTag(tags+0, MEM_USER, 0, 2, buf))
return;
buf[0] ^= 0xff; buf[1]^= 0x55; // change the data
buf))
//...
gen2Close();
www.austriamicrosystems.com/RFID
Rev 2.0
23 - 44
One of the more complex flowcharts is the Inventory algorithm in which the 6c anti-collision
is executed.
Start
Send select
Wait for Tx
complete
TX complete Interrupt
Wait for Rx
response
No RX Interrupt
Send query or
query rep
Wait for Tx
complete
Slots left
TX complete Interrupt
No Rx Interrupt
Rx Interrupt
Wait for
response
Send ACK
No Rx Interrupt
Wait for Tx
Complete
Check slots
no slots left
Tx complete IRQ
No Rx Interrupt
Provide
Inventory List
Wait for
response
Rx Interrupt
Get EPC from FIFO
request handle
Restart slots
Wait for Tx
Complete
Tx complete IRQ
Wait for
response
Rx Interrupt
Read Handle
www.austriamicrosystems.com/RFID
Rev 2.0
24 - 44
2.3
Before calling any of the functions herein the AS399X chip needs to be initialized using
as399xInitialize(). Thereafter the function iso6bOpen() needs to be called for opening a
session.
The following graph shows several states of an ISO 6B tag as well as their transitions based
on iso6b* commands:
2.4
Data Type
u16
unsigned char
void
void
void
void
void
void
void
void
s8
s8
u16
void
Function
www.austriamicrosystems.com/RFID
Rev 2.0
25 - 44
2.5
Data
Type
void
void
void
u8
void
void
void
void
u8
u8
void
void
void
void
2.6
Function
Interface Layer
Data
Type
initInterface (void)
writeReadAS399x (const u8 *wbuf, u8 wlen, u8 *rbuf, u8 rlen, u8 stopMode, u8 doStart)
setPortDirect ()
setPortNormal ()
Table 64 - Interface Layer Functions
void
void
void
void
Function
www.austriamicrosystems.com/RFID
Rev 2.0
26 - 44
3 Host Software
3.1
Installation
To install the AS399x Reader Suite software click on AS399x Reader Suite Setup x.x.exe.
A software wizard guides through the installation process:
After accepting the license agreement and choosing an installation directory the installation of
the AS399x Reader Suite will begin. The host software uses HID drivers from the Windows
operating system and therefore no additional driver installation is required.
To start the AS399x Reader Suite run the AS399xReaderSuite.exe from the chosen
installation directory or run from windows start menu.
www.austriamicrosystems.com/RFID
Rev 2.0
27 - 44
3.2
Main Window
After launching the AS399x Reader Suite starts with the main window:
www.austriamicrosystems.com/RFID
Rev 2.0
28 - 44
Settings: Opens a dialog in order to change the AS399x Reader Suite configuration.
3.2.1.2.1 Settings
Display Settings:
Use Time To Live: Activate/Deactivate the timing definitions for tags list displayed in
the main window.
o Show tag inactive after: Time after which the tag is considered to be inactive.
Tag EPC number is marked with a gray bar.
o Show tag out of range after: Time after which the tag is considered to be out
of the reader field. Tag EPC number is grayed-out.
o Delete tag after: Time after which the tag is deleted from the tag list in the
main window.
Show alias name if exists: Use a user defined alias name instead of the EPC number.
Trace:
Scan Options:
Multiplex Reader: Incase multiple readers are connected to one host system the
reader may be set to interleaving operation.
Read Time: Defines the slot duration of the multiplexed readers.
www.austriamicrosystems.com/RFID
Rev 2.0
29 - 44
Advanced Read Information: Displays additional information about reader and tag
counts.
Show Alias Names: Display the user defined alias name instead of the EPC number.
Use Time To Live: Use the timing information in the tag list of the main window.
Trace Browser: Display the tag browser.
Tag List: Display the tag list.
3.2.1.4 Help
About Reader Tool: Displays the GUI version and austriamicrosystems contact
information.
www.austriamicrosystems.com/RFID
Rev 2.0
30 - 44
Reader Tabs
Reader Entry
Tag Entry
Control
www.austriamicrosystems.com/RFID
Rev 2.0
31 - 44
With a right click on the reader entry the Reader Settings Diagnostics dialog and the Register
Map may be opened.
3.3
Handle Actions: Activate/Deactivate tag actions if associated. The user may associate
a certain action if a tag has been successfully read. For example: Play a sound if a
certain tag has been read.
Clear Tags: To instantly clear the list of tags in the main window.
Clear Offline Readers: To instantaneously remove each reader from the list which is
in an offline state.
Reader Configuration:
By right-clicking the reader entry a pop-up menu is displayed. Click on Reader Settings and
Diagnostics to enter the reader configuration:
www.austriamicrosystems.com/RFID
Rev 2.0
32 - 44
www.austriamicrosystems.com/RFID
Rev 2.0
33 - 44
Tag Mode: With this pull- down menu the air interface protocol may be changed.
Options are:
Gen 2 (ISO 18000-6c) for fast tag reading
Gen 2 + RSSI
ISO 18000-6b
To apply changes press the Set button.
Output level: The Output level slider changes the ouput power (register 0x15, bit 4:0). The
output power may be changed by 1 dB per step (nominal).
Sensitivity: The sensitivity slider adjusts the sensitivity of the receiver. The sensitivity slider
affects register 0x05, bit 7 and register 0x0A, bit 7:6 and bit 1:0.
www.austriamicrosystems.com/RFID
Rev 2.0
34 - 44
Profile: The Profile pull- down menu offers various UHF RFID frequency band allocations.
By changing the frequency profile all other entries in the Frequencies section are preset
accordingly.
Profile options are shown in the following table:
Profile
Europe
Japan
USA
China
920.625
China
840.125
Korea
[MHz]
0.6
1.2
0.5
RSSI
Threshold.
[dBm]
-40
-87
-40
Listen
time
[ms]
1
10
1
Idle
time
[ms]
0
100
0
924.375
0.75
-40
10000
840.125
844.875
0.25
-40
10000
917.3
920.3
0.6
-40
10000
Start freq
End freq
Increment
[MHz]
865.7
952.4
902.75
[MHz]
867.5
953.6
927.25
920.625
Max. allocation
[ms]
10000
4000
400
The existing frequency profiles are defined in a CSV (Comma Separated Values) file within
the installation directory (e.g. C:\Program Files\AS399x Reader Suite 1.3.0). The
profiles.csv file may be modified per user needs or in order to add a new frequency profile.
The syntax for adding a new profile is defined as follows:
Name,StartFreq,StopFreq,Increment,dBm,listenTime,IdleTime,maxAllocationTime
For example the European frequency profile is defined as:
Europe,865.7,867.5,0.6,-40,1,0,10000
Besides changing the frequency profile it is possible to change each Tag response related
parameter individually. To apply changes press the Set button.
www.austriamicrosystems.com/RFID
Rev 2.0
35 - 44
Q_begin: Defines the initial number of available anti-collision slots according the function 2Q.
By default the interrogator adds a post singulation to identify Tags that have not been
detectected in the first round. Depending on the number of detected collisions the post
singulation may either increase or decrease the Q value. Q may be entered either directly or
by using the up/down arrows. To apply changes press the Set button.
Pilot tone: Disables/Enables the pilot tone. To apply changes press the Set button.
www.austriamicrosystems.com/RFID
Rev 2.0
36 - 44
In the Frequency Diagnosis section Continuous Modulation is activated. In this mode the
reader transmitts a NAK command continuously. Enter the desired transmit frequency in
MHz and a transmit duration in ms. The frequency selected here is independent from
frequency settings in the Settings tab.
The Frequency Diagnosis section also contains the Reflected Power Radar.
The reflected power radar displays the reflected power with the full phase information and
the magnitude by the length of the blue pointer.
The frequency may be adjusted for which the measurement should be done. The frequency
set here is not affected by the frequency set in the Settings tab.
The I and Q values are internal register values.
www.austriamicrosystems.com/RFID
Rev 2.0
37 - 44
Direct Commands: A selection menu from which direct commands may be selected and
transmitted.
Please note that there is limited used for some commands if additional parameters are needed.
3.4
Regiser Map
Right click the reader entry which displays a pop-up menu from which the Register Map can
be opened:
On a click-and-toggle basis the register content can be modified. Gray register contents are
read- only. A tool tip text with a description of the bit and it purpose is displayed upon
pointing with the mouse over the respective bit.
www.austriamicrosystems.com/RFID
Rev 2.0
38 - 44
Tag Configuration
By right-clicking a tag entry the Tag Setting window may be opened.
Within the Tags Settings window the user may assign an alias name and/or an action to a
tag. The action may either be that a tag is represented by a picture or an application start.
The duration of the activation time can be specified in the range of 1sec to 30min.
In order to display the tag in the main window by its alias name the option Show Alias Name
in the View menu or in the Settings window from the Edit menu should be selected.
To activate the assigned tag action the button Handle Actions should be pressed down.
www.austriamicrosystems.com/RFID
Rev 2.0
39 - 44
By right-clicking a tag entry the Advanced Tag Settings window may be opened.
This screen allows you to view tag details and to individually change the tag properties.
SET EPC: The user may set a new tag EPC.
www.austriamicrosystems.com/RFID
Rev 2.0
40 - 44
Set Password: The user may assign a password for a tag. The types of passwords are:
Access
Kill
Lock Tag: The user may perform certain security actions like locking and unlocking certain
memory spaces of a tag. Options are:
Kill password
Access password
EPC
TID
User
The security actions are:
Unlock (Associated memory bank is writeable from either the open or secured states)
Lock (Associated memory bank is writeable from the secured state but not from the
open state)
Permalock (Associated memory bank is permanently writeable from either the open or
secured states and may never be locked)
Lock & Permalock (Associated memory bank is not writeable from any state)
www.austriamicrosystems.com/RFID
Rev 2.0
41 - 44
KILL: The user may kill a tag by entering the Kill Password.
Additional to the Gen2 protocol specific functions NXP commands are also available.
Options are:
Set Read Protect
Unset Read Protect
Change EAS ON
Change EAS OFF
Calibrate
www.austriamicrosystems.com/RFID
Rev 2.0
42 - 44
The user may read or set various memory banks of a tag. The Read from Bank pull- down
menu offers following memory banks to be selected:
Reserved
EPC
TID
User
By pressing the Read button the contents of the memory bank is displayed. The Memory Size
field shows the size of the respective memory bank in bytes.
The User memory bank may be changed by the user (if proper security settings are set) by
entering the desired data into the memory table and pressing Set button.
www.austriamicrosystems.com/RFID
Rev 2.0
43 - 44
4 Disclaimer
Devices sold by austriamicrosystems AG are covered by the warranty and patent identification
provisions appearing in its Term of Sale. austriamicrosystems AG makes no warranty, express,
statutory, implied, or by description regarding the information set forth herein or regarding the freedom
of the described devices from patent infringement. austriamicrosystems AG reserves the right to
change specifications and prices at any time and without notice. Therefore, prior to designing this
product into a system, it is necessary to check with austriamicrosystems AG for current information.
This product is intended for use in normal commercial applications. Applications requiring extended
temperature range, unusual environmental requirements, or high reliability applications, such as
military, medical life-support or life-sustaining equipment are specifically not recommended without
additional processing by austriamicrosystems AG for each application.
The information furnished here by austriamicrosystems AG is believed to be correct and accurate.
However, austriamicrosystems AG shall not be liable to recipient or any third party for any damages,
including but not limited to personal injury, property damage, loss of profits, loss of use, interruption of
business or indirect, special, incidental or consequential damages, of any kind, in connection with or
arising out of the furnishing, performance or use of the technical data herein. No obligation or liability
to recipient or any third party shall arise or flow out of austriamicrosystems AG rendering of technical
or other services.
www.austriamicrosystems.com/RFID
Rev 2.0
44 - 44