| 
				   | 
				
| (149 intermediate revisions by 4 users not shown) | 
| Line 1: | 
Line 1: | 
 | Device crittografico tascabile
  |  | [[Category:Telecom]]  | 
 |  | [[File:Aardvark2 (PSF).png]]  | 
 |  | ''modem 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.  |  | modem piccolo, economico e a basso consumo per la comunicazione digitale a bassa velocita' su canali rumorosi half-duplex con banda passante da 1Hz a 5khz.  | 
 | 
  |  | 
  | 
 | i mezzi fisici usabili possono essere  
  |  | {{Special:PrefixIndex/{{FULLPAGENAME}}/}}  | 
 | * radio(pmr, cb, hf)  |  |    | 
 | * rame(linee PSTN, doppino, linea elettrica)  |  | == Caratteristiche del mezzo trasmissivo ==  | 
 | * ottico (su fibra o in aria http://ronja.twibright.com/)  |  |    | 
 |  | * sempre broadcast  | 
 |  | * banda 1 Hz - 5 kHz  | 
 |  | * puo avere SNR infimi  | 
 |  | * e' half-duplex   | 
 |  | * puo' avere tempi di commutazione R/T lunghi  | 
 |  | * non ha meccanismi di collision detect  | 
 |  | * puo' non essere possibile la rilevazione di canale occupato  | 
 |  | * puo' presentare condizioni di terminale nascosto  | 
 |  | * puo contenere uno o piu' canali  | 
 |  |    | 
 |  | esempi di mezzi fisici usabili possono essere:  | 
 |  | * radio(pmr, cb, vhf, hf)  | 
 |  | * rame  | 
 |  | ** RS485  | 
 |  | ** Powerline  | 
 |  | * ottico  | 
 |  | ** fibra  | 
 |  | ** in aria  | 
 | * acustico  |  | * acustico  | 
 | * idroacustico  |  | * idroacustico  | 
| Line 12: | 
Line 32: | 
 | * neutroni  |  | * neutroni  | 
 | * neutrini  |  | * neutrini  | 
 | * onde gravitazionali (http://astronomyonline.org/Astrobiology/SETIAlternatives.asp)  |  | * onde gravitazionali  | 
 | * piccioni  |  | * piccioni, topi, cani, blatte  | 
 |    |  | 
 | chi e' interessato a una parte se la prenoti!
  |  | 
 |    |  | 
 | * gnugo: FEC, interleaver, hardware
  |  | 
 | * ciaby: dds
  |  | 
 | * ema: aprs
  |  | 
 |    |  | 
 |    |  | 
 | ----
  |  | 
 |    |  | 
 |    |  | 
 | == Hardware ==
  |  | 
 |    |  | 
 | === PCB ===
  |  | 
 |    |  | 
 | il circuito stampato + componenti avra spessore minimo (6 mm), e dovrebbe essere abbastanza piccolo (8-10 cm2)
  |  | 
 |    |  | 
 | * http://www.pcbproject.it/
  |  | 
 |    |  | 
 | === Connessioni ===
  |  | 
 |    |  | 
 | sulla scheda si potrebbero mettere semplicemente i vari header
  |  | 
 |    |  | 
 |    |  | 
 | ==== Connettore GPIO ====
  |  | 
 |    |  | 
 | header 8 pin, ad uso generico (radiocomandi)
  |  | 
 |    |  | 
 | {|style="color:orange; background-color:#eeeeee;" cellpadding="10" cellspacing="0" border="1"
  |  | 
 | ||1||GPIO1||
  |  | 
 | |-
  |  | 
 | ||2||GPIO2||
  |  | 
 | |-
  |  | 
 | ||3||GPIO3||
  |  | 
 | |-
  |  | 
 | ||4||GPIO4||
  |  | 
 | |-
  |  | 
 | ||5||GPIO5||
  |  | 
 | |-
  |  | 
 | ||6||GPIO6||
  |  | 
 | |-
  |  | 
 | ||7||GPIO7||
  |  | 
 | |-
  |  | 
 | ||8||GPIO8||
  |  | 
 | |}
  |  | 
 |    |  | 
 | ==== Seriale ====
  |  | 
 |    |  | 
 | header 10 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 (tutte 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.
  |  | 
 |    |  | 
 |    |  | 
 | {|style="color:green; background-color:#eeeeee;" cellpadding="10" cellspacing="0" border="1"
  |  | 
 | ||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:
  |  | 
 |    |  | 
 | {|style="color:blue; background-color:#eeeeee;" cellpadding="10" cellspacing="0" border="1"
  |  | 
 | ||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:
  |  | 
 |    |  | 
 | {|style="color:blue; background-color:#eeeeee;" cellpadding="10" cellspacing="0" border="1"
  |  | 
 | ||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.
  |  | 
 |    |  | 
 | {| style="color:green; background-color:#ffffcc;" cellpadding="10" cellspacing="0" border="1"
  |  | 
 | !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
  |  | 
 |    |  | 
 | |}
  |  | 
 |    |  | 
 | ==== Connettore tastiera ====
  |  | 
 |    |  | 
 | {| style="color:green; background-color:#ffffcc;" cellpadding="10" cellspacing="0" border="1"
  |  | 
 | !Pin
  |  | 
 | !Funzione
  |  | 
 | !Nome
  |  | 
 | |-
  |  | 
 | |1||||KBD_ROW1
  |  | 
 | |-
  |  | 
 | |2||||KBD_ROW2
  |  | 
 | |-
  |  | 
 | |3||||KBD_ROW3
  |  | 
 | |-
  |  | 
 | |4||||KBD_ROW4
  |  | 
 | |-
  |  | 
 | |5||||KBD_COL1
  |  | 
 | |-
  |  | 
 | |6||||KBD_COL2
  |  | 
 | |-
  |  | 
 | |7||||KBD_COL3
  |  | 
 | |-
  |  | 
 | |8||||KBD_COL4
  |  | 
 | |}
  |  | 
 |    |  | 
 | === 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 ===
  |  | 
 |    |  | 
 | mappa pin dsPIC33FJ128GP804
  |  | 
 |    |  | 
 | * RAM: 16K
  |  | 
 | * Flash: 128K
  |  | 
 | * Timers: 5
  |  | 
 | * UART: 2
  |  | 
 |    |  | 
 | {|style="color:green; background-color:#ffffdd;" cellpadding="10" cellspacing="0" border="1"
  |  | 
 | !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|| || ||
  |  | 
 |    |  | 
 | |}
  |  | 
 |    |  | 
 |    |  | 
 |    |  | 
 | ----
  |  | 
 | ----
  |  | 
 |    |  | 
 | == 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: 
  |  | 
 | * https://en.wikipedia.org/wiki/Selective_calling
  |  | 
 |    |  | 
 |    |  | 
 |    |  | 
 | == Firmware ==
  |  | 
 | === voci di configurazione ===
  |  | 
 |    |  | 
 | # modulazione
  |  | 
 | ## tipo di modulazione
  |  | 
 | ### fsk
  |  | 
 | #### bw in Hz uint16
  |  | 
 | ### psk
  |  | 
 | ### frequenza centrale ''uint16''
  |  | 
 | ### dimensione costellazione ''uint8''
  |  | 
 | ### simboli per secondo ''uint8''
  |  | 
 | # ptt
  |  | 
 | ## manuale/automatico
  |  | 
 | ## tempo di guardia attacco in ms ''uint8''
  |  | 
 | ## tempo di guardia stacco in ms ''uint8''
  |  | 
 | # protocollo
  |  | 
 | ## arNet
  |  | 
 | ### indirizzo ''uint8''
  |  | 
 | ### alias ricezione ''uint8''
  |  | 
 | ### router ''bool''
  |  | 
 | #### priorita ''uint8''
  |  | 
 | #### ttl ''uint8''
  |  | 
 | ### chiave 256 bit
  |  | 
 | ## aprs
  |  | 
 | # interfaccia
  |  | 
 | ## auto power off
  |  | 
 | ## 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: 
  |  | 
 | * https://en.wikipedia.org/wiki/Time-based_One-time_Password_Algorithm
  |  | 
 | * https://otpd.googlecode.com/svn-history/r77/trunk/cardops/totp.c
  |  | 
 | * https://www.yubico.com/products/yubikey-hardware/yubikey/
  |  | 
 | * https://code.google.com/p/yubikey-personalization/
  |  | 
 |    |  | 
 | === 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 ===  |  | == Caratteristiche ==  | 
 |  | === Alimentazione ===  | 
 |  | 3.3v DC  | 
 | 
  |  | 
  | 
 | quando il device andra in sleep sara necessario un pin di 4 caratteri per risvegliarlo
  |  | === Porte audio ===  | 
 |  | input e output sbilanciati standard consumer line-level −10 dBV con impedenza 10kohm  | 
 | 
  |  | 
  | 
 | dopo 5 tentativi sbagliati, il device dimentica la chiave crittografica.
  |  | === Modulazione ===  | 
 | 
  |  | 
  | 
 |  | Implementa squalsiasi combinazione di ASK, PSK, e FSK, con costellazioni di dimensione da 2 a 16, frequenza massima 5khz (campionamento a 20khz).  | 
 | 
  |  | 
  | 
 | == Mezzi fisici ==
  |  | Il symbol rate va da 1 a 1200 baud/s  | 
 | 
  |  | 
  | 
 | === Powerline ===  |  | === UART ===  | 
 |  | 2 seriali UART 9600N1 con livelli TTL 3.3v  | 
 | 
  |  | 
  | 
 | * https://it.wikipedia.org/wiki/Powerline
  |  | === GPIO ===  | 
 | * https://it.wikipedia.org/wiki/LonWorks
  |  | 8 GPIO con acquisizione analogica e output PWM  | 
 | * https://en.wikipedia.org/wiki/KNX_%28standard%29
  |  | 
 | * https://en.wikipedia.org/wiki/G.hn
  |  | 
modem tascabile
modem piccolo, economico e a basso consumo per la comunicazione digitale a bassa velocita' su canali rumorosi half-duplex con banda passante da 1Hz a 5khz.
Caratteristiche del mezzo trasmissivo
- sempre broadcast
 
- banda 1 Hz - 5 kHz
 
- puo avere SNR infimi
 
- e' half-duplex
 
- puo' avere tempi di commutazione R/T lunghi
 
- non ha meccanismi di collision detect
 
- puo' non essere possibile la rilevazione di canale occupato
 
- puo' presentare condizioni di terminale nascosto
 
- puo contenere uno o piu' canali
 
esempi di mezzi fisici usabili possono essere:
- radio(pmr, cb, vhf, hf)
 
- rame
 
- ottico
 
- acustico
 
- idroacustico
 
- induzione magnetica
 
- neutroni
 
- neutrini
 
- onde gravitazionali
 
- piccioni, topi, cani, blatte
 
Caratteristiche
Alimentazione
3.3v DC
Porte audio
input e output sbilanciati standard consumer line-level −10 dBV con impedenza 10kohm
Modulazione
Implementa squalsiasi combinazione di ASK, PSK, e FSK, con costellazioni di dimensione da 2 a 16, frequenza massima 5khz (campionamento a 20khz).
Il symbol rate va da 1 a 1200 baud/s
UART
2 seriali UART 9600N1 con livelli TTL 3.3v
GPIO
8 GPIO con acquisizione analogica e output PWM