FreeCalypso > hg > fc-sim-sniff
comparison doc/Sniffer-FPGA-design @ 48:1068f9fd41d5
doc: project rename
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Thu, 21 Sep 2023 06:31:34 +0000 | 
| parents | 695ca51e1564 | 
| children | 
   comparison
  equal
  deleted
  inserted
  replaced
| 47:7c9bf72d460f | 48:1068f9fd41d5 | 
|---|---|
| 1 FPGA component of SIMtrace3 sniffer | 1 FPGA component of FreeCalypso SIMsniff | 
| 2 =================================== | 2 ====================================== | 
| 3 | 3 | 
| 4 The SIM interface sniffing apparatus of SIMtrace3 consists of a sniffer pod | 4 The present FreeCalypso solution for SIM interface sniffing consists of a | 
| 5 (hardware adapter with level shifters) and a Lattice Icestick FPGA board, loaded | 5 sniffer pod (hardware adapter with level shifters) and a Lattice Icestick FPGA | 
| 6 with the appropriate gateware image from the present project. This document | 6 board, loaded with the appropriate gateware image from the present project. | 
| 7 describes the design and operation of the FPGA component of this SIMtrace3 | 7 This document describes the design and operation of the FPGA component of | 
| 8 sniffing solution. | 8 FC SIMsniff. | 
| 9 | 9 | 
| 10 Hardware architecture and FPGA design principle | 10 Hardware architecture and FPGA design principle | 
| 11 =============================================== | 11 =============================================== | 
| 12 | 12 | 
| 13 The two principal components of the Icestick board are an iCE40HX1K FPGA and an | 13 The two principal components of the Icestick board are an iCE40HX1K FPGA and an | 
| 176 ===================================== | 176 ===================================== | 
| 177 | 177 | 
| 178 Only the card and not the interface device (ISO 7816-3 terminology) determines | 178 Only the card and not the interface device (ISO 7816-3 terminology) determines | 
| 179 which coding convention is used, direct or inverse. So far we (FreeCalypso) | 179 which coding convention is used, direct or inverse. So far we (FreeCalypso) | 
| 180 have not yet encountered a real-life SIM that uses the inverse convention, only | 180 have not yet encountered a real-life SIM that uses the inverse convention, only | 
| 181 the direct convention kind. In the sniffer function of SIMtrace-ice, we are | 181 the direct convention kind. The approach taken in FC SIMsniff is that the FPGA | 
| 182 going to keep our FPGA gateware simple in this regard and punt all inverse | 182 is mostly (except for the integrated PPS catcher) oblivious to the coding | 
| 183 convention handling to the software application on the host computer: the FPGA | 183 convention: it passes the 9 received bits (8 data bits and 1 parity bit) to the | 
| 184 passes the 9 received bits (8 data bits and 1 parity bit) to the 16-bit UART | 184 16-bit UART message as-is, without inverting or reordering them. The coding | 
| 185 message as-is, without inverting or reordering them. | 185 convention and the parity check are then handled in simsniff-dec host | 
| 186 application. | |
| 186 | 187 | 
| 187 Integrated PPS catcher | 188 Integrated PPS catcher | 
| 188 ====================== | 189 ====================== | 
| 189 | 190 | 
| 190 Our sniffer FPGA logic was developed incrementally. The first version, | 191 Our sniffer FPGA logic was developed incrementally. The first version, | 
| 227 | 228 | 
| 228 Designs that incorporate a local CPU core immediately adjacent to the ISO 7816-3 | 229 Designs that incorporate a local CPU core immediately adjacent to the ISO 7816-3 | 
| 229 receiver block, such as original Osmocom SIMtrace in which the local CPU core | 230 receiver block, such as original Osmocom SIMtrace in which the local CPU core | 
| 230 and the ISO 7816-3 receiver sit in the same AT91SAMx chip, don't suffer from | 231 and the ISO 7816-3 receiver sit in the same AT91SAMx chip, don't suffer from | 
| 231 this problem: with a local (dedicated, embedded) CPU so close, the firmware can | 232 this problem: with a local (dedicated, embedded) CPU so close, the firmware can | 
| 232 react and intervene in time. However, in the case of our SIMtrace3, the nearest | 233 react and intervene in time. However, in the case of FC SIMsniff, the nearest | 
| 233 CPU is the host computer separated by UART and USB links - not closely coupled | 234 CPU is the host computer separated by UART and USB links - not closely coupled | 
| 234 enough to provide the degree of real-time response that is needed here. Someone | 235 enough to provide the degree of real-time response that is needed here. Someone | 
| 235 could say that we should stick a soft CPU core with firmware into our FPGA - but | 236 could say that we should stick a soft CPU core with firmware into our FPGA - but | 
| 236 we've implemented a different solution: we have a specialized PPS catcher state | 237 we've implemented a different solution: we have a specialized PPS catcher state | 
| 237 machine instead. This gateware FSM follows the spec-defined structure of ATR, | 238 machine instead. This gateware FSM follows the spec-defined structure of ATR, | 
