Armando47

From ciapini
Jump to navigation Jump to search

Device crittografico tascabile

modem piccolo, economico e a basso consumo per lo scambio a bassa velocita' di dati cifrati su canali rumorosi half-duplex con banda passante da 1Hz a 5khz.

i mezzi fisici usabili possono essere

chi e' interessato a una parte se la prenoti!

  • gnugo: FEC, interleaver, hardware
  • ciaby: dds
  • ema: aprs



Livello fisico

Caratteristiche del mezzo trasmissivo

  • e' sempre broadcast
  • e' sempre half-duplex
  • senza meccanismi di collision detect
  • puo' avere rilevazione di canale occupato
  • puo' presentare condizioni di terminale nascosto

Caratteristiche elettriche

input e output sbilanciati standard consumer line-level −10 dBV con impedenza 10kohm


Modulazione

Implementa schemi di modulazione ASK, PSK, QAM o FSK , con costellazioni di dimensione da 2 a 32, frequenza massima 8khz.

Hardware

PCB

il circuito stampato + componenti avra spessore minimo (6 mm), e dovrebbe essere abbastanza piccolo (8-10 cm2)

Connessioni

sulla scheda si potrebbero mettere semplicemente i vari header


Connettore GPIO

header 8 pin, ad uso generico (radiocomandi)

1 GPIO1
2 GPIO2
3 GPIO3
4 GPIO4
5 GPIO5
6 GPIO6
7 GPIO7
8 GPIO8

Seriale

header 2x5 pin

si possono esporre una o due UART.

una potrebbe essere per l'in-band (cioe solo ed esclusivamente i dati trasmessi e ricevuti) e l'altra per out-of-band (tutta la gestione, i menu ecc).

per astrarre l'interfaccia e permettere l'uso di terminali piu avanzati, tutta la roba lato lcd e tastiera dovrebbe essere accessibile via seriale (una specie di tty).

se l'alimentazione fosse via usb, verrebbe da se... mettere un ft232 ed esporre una seriale via usb. un ft232rl e' un ssop28 e costa circa due euri. fornisce anche una 3.3v regolata di 50mA, che puo essere ok per alimentare il device dall'esterno.


1 U1_CTS UART1 clear to send.
2 U1_RTS UART1 ready to send.
3 U1_RX UART1 receive.
4 U1_TX UART1 transmit.
5 U1_GND Ground
6 U2_CTS UART2 clear to send.
7 U2_RTS UART2 ready to send.
8 U2_RX UART2 receive.
9 U2_TX UART2 transmit.
10 U2_GND Ground

Connettore modulazione

espone i simboli in maniera digitale

output:

1 OSB0 Out Symbol Bit 0
2 OSB1 Out Symbol Bit 1
3 OSB2 Out Symbol Bit 2
4 OSB3 Out Symbol Bit 3

input:

1 ISB0 Input Symbol Bit 0
2 ISB1 Input Symbol Bit 1
3 ISB2 Input Symbol Bit 2
4 ISB3 Input Symbol Bit 3


Connettore programmazione

Serve per poter programmare il pic una volta installato. Vanno ai rispettivi pin sul uC.

Pin Funzione Nome
1 Abilitazione programmazione ICSP_MCLR
2 Positivo. Dev'essere interrompibile con jumper VDD
3 Negativo VSS
4 Dati programmazione ICSP_DATA
5 Clock programmazione ICSP_CLOCK
6 Non usato Aux

Componenti interni

  • processore: dspic33fj128gp802 oppure dsPIC33FJ128GP804 se i piedini non ci bastano
  • 2 regolatori 3.3v
  • quarzo 8mhz
  • quarzo 32khz
  • op-amp filtro antialias 4khz
  • op amp uscita
  • condensatori di livellamento vari
  • condensatore tampone per cambio pile
  • FET di controllo carica batterie


uC

deve avere:

  • DSP
  • ADC 12bit
  • DAC 16bit
  • UART

candidati:

  • dsPIC33FJ128GP802 esiste anche in case non-smd
  • dsPIC33FJ128GP804 ha piu piedini

mappa pin dsPIC33FJ128GP804

  • RAM: 16K
  • Flash: 128K
  • Timers: 5
  • UART: 2
Pin Funzione Nome porta sul uC
1 RB9
2 RC6
3 RC7
4 RC8
5 RC9
6 Negativo digitale VSS
7 VCAP
8 RB10
9 RB11
10 Uscita + DAC R DAC1RP DAC1RP
11 Uscita - DAC R DAC1RN DAC1RN
12 RA10
13 RA7
14 Uscita + DAC L DAC1LP DAC1LP
15 Uscita - DAC L DAC1LN DAC1LN
16 Negativo analogico AVSS
17 Positivo analogico AVDD
18 Pin di programmazione MCLR
19 Ingresso audio L AUDIO_L_IN AN0
20 Ingresso audio R AUDIO_R_IN AN1
21 Dati ICSP PGED1
22 Clock ICSP PGEC1
23 Tensione Batteria V_BATT_IN AN4
24 RB3
25 Uscita 0 DAC R DAC1RM DAC1RM
26 Uscita 0 DAC L DAC1LM DAC1LM
27
28 Positivo digitale VDD
29 Negativo digitale VSS
30 Quarzo 8MHz OSC1
31 Quarzo 8MHz OSC2
32
33
34
35
36
37
38
39 Negativo digitale VSS
40 Positivo digitale VDD
41
42
43 INT0
44


mappa pin dsPIC33FJ128GP802

  • RAM: 16K
  • Flash: 128K
  • Timers: 5
  • UART: 2
Pin Funzione Nome porta sul uC
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


Protocolli

armando e' in grado di parlare differenti protocolli


APRS

Automatic Packet Reporting System, e' un sistema di localizzazione a pacchetti che usa un protocollo AX.25 in modalita senza connessione su una modulazione afsk Bell 202 a 1200 bps

sarebbero utili 3 modalita APRS

  • client, che riceve dalla UART stringhe NMEA e le trasmette in aprs
  • digipeater, che ritrasmette i messaggi APRS ricevuti
  • gateway, che manda via UART i messaggi APRS ricevuti

Qui c'è vita morte e miracoli dell'aprs, con relative specifiche:

http://www.aprs.org/

la prima reference: ftp://ftp.tapr.org/aprssig/aprsspec/spec/aprs101/APRS101.pdf

sw da cui è possibile attingere: http://info.aprs.net/index.php?title=Software

Per fortuna ci sono delle bellissime librerie in c++

http://sourceforge.net/projects/libaprs/

http://sourceforge.net/projects/ax25/

https://code.google.com/p/trackuino/ (solo invio) c'e' una versione in gcc-C, progetto vivo

  • nei file trackuino-firmware-1.4/trackuino/ax25.cpp e trackuino-firmware-1.4/trackuino/aprs.cpp sembra esserci quel che serve


https://sites.google.com/site/ki4mcw/Home/arduino-tnc (solo ricezione)

http://aprsdroid.org/ (invia e riceve, codice utilizzabile?) AGH! e' scritto in SCALA.. mi sa di no

arNet

Il protocollo di comunicazione specifico di armando e' ArNet

ANI

client e server Push-To-Talk ID e selective calling.

tipi di ANI

  • Motorola’s MDC-1200
  • Kenwood’s FleetSync
  • Harris’ G-Star (aka GE-Star)
  • DTMF
  • 5-Tone

letture:


Firmware

voci di configurazione

  1. modulazione
    1. tipo di modulazione
      1. fsk
        1. bw in Hz uint16
      2. psk
      3. frequenza centrale uint16
      4. dimensione costellazione uint8
      5. simboli per secondo uint8
  2. ptt
    1. manuale/automatico
    2. tempo di guardia attacco in ms uint8
    3. tempo di guardia stacco in ms uint8
  3. protocollo
    1. arNet
      1. indirizzo uint8
      2. alias ricezione uint8
      3. router bool
        1. priorita uint8
        2. ttl uint8
      4. chiave 256 bit
    2. aprs
  4. interfaccia
    1. auto power off
    2. backlight



generatore OTP

dato che abbiamo un rtc l'apparato potrebbe fare da one time password generator. usiamo la chiave come seme? che implementazioni ci sono?

letteratura:

stringa di configurazione

la configurazione dell'apparato deovrebbe essere importabile ed esportabile come una stringa esadecimale

anche la chiave crittografica sara una stringa di 16 caratteri esadecimali

PIN/PUC

quando il device andra in sleep sara necessario un pin di 4 caratteri per risvegliarlo

dopo 5 tentativi sbagliati, il device dimentica la chiave crittografica.


Mezzi fisici

Powerline