1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
DATA CODING
ISO 14443 A bit patterns PCD -> PICC direction:
Sequence X After time of 64/fC a "pause" shall occur
Sequence Y for the full bit duration (128/fC) no modulation shall occur
Sequence Z at the beginning of the bit duration a pause shall occur
logic 1 Sequence X
logic 0 Sequence Y with two exceptions:
- if there are two or more contiguous '0, Z used from the second on
- if the first bit after SOF is 0, sequence Z used for all contig. 0's
SOF Sequence Z
EOF Logic 0 followed by Sequence Y
No Inform At least two sequences Y
FRAME TYPES
During anti collision we have two frame types:
1) REQA/WUPA (short frame)
Short frame is seven bits with SOF/EOF "SOF 0 1 2 3 4 5 6 EOF"
REQA 0x26 S 0101010 E Z ZXYXYXY ZY
WUPA 0x52 S 0100101 E Z ZXYZXYX YY
REQA_t 0x35 S 1001110 E Z XYZXXXY ZY
2) ANTICOL/SELET (standard frame)
Standard frame: minimum "SOF byte parity EOF", e.g.
S 01234567 P 01234567 P 01234567 P E
Anticol frame: like standard frame, but
- frame splitted between PCD and PICC
- total bit length is 56
- length of PCD part: 16 data bits to 55 data bits
- length of PICC part: 1 data bit to 40 data bits
- split can occur at any bit position
- full byte: split after complete byte: Parity added after last PCD bit
- split byte: No Parity is added after last PCD bit
- each half of the split frame has its own SOF / EOF
BIT TIMING
One bit clock is fC/128, i.e. 105937.5 kHz, resulting in 9.43uS bit time
The "pause" has to be min. 2uS, or 21.2% of the bit duration.
SAMPLING
Given the pause is only 21.2%, four samples per bit clock are not really enough
to catch the pause under all circumstances.
Given four-times and eight-times oversampling, we get:
4-over 8-over
Sequence X 0010 00001000 (00000100)
Sequence Y 0000 00000000
Sequence Z 1000 10000000 (01000000)
Ideas:
- if we ignore final 'Y' sequence, DATLEN is 32 (8 clocks, four bits each), therefore
we can just configure SSC to sample one frame of 32 sample bits after the start condition
was met.
SAMPLING DURING STANDARD FRAMES
The maxiumum frame size is 256 data bytes. We have to add two bytes CRC (=258
bytes), plus parity (2064bits, plus 258 bits parity, equals 2322 data bits. Add
SOF / EOF with three bit clocks, and we have 2325 total data bits for a
maximum-sized frame. At four-times oversampling, this is 9300 sampled bits,
equals to 1162.5 bytes (eight-times oversampling consequently 2325 bytes).
BIT SYNCHRONOUS RESPONSE IN SPLIT FRAME
For some stupid reasons, the frame delay time for synchronous frames is not in
relation to the bit clock but in relation to the last rising edge of a
modulation pause.
Therefore we need some trickery. Every rising edge resets TC2 of the SAM7, which
is clocked by the carrier clock. Once RA compare is true, TIOA2 will see a
rising edge, which is connected to TF, the SSC Tx Framer.
On The Tx side we have to run the SSC always at 847.5kHz
thoughts:
falling edge of demodulated signal: counter reset, TIOB set
RB Compare: TIOB reset
|