|
|
(138 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!
| | == Caratteristiche == |
| | | === Alimentazione === |
| * gnugo: FEC, interleaver, hardware
| | 3.3v DC |
| * 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 ===
| |
|
| |
|
| | === Porte audio === |
| input e output sbilanciati standard consumer line-level −10 dBV con impedenza 10kohm | | input e output sbilanciati standard consumer line-level −10 dBV con impedenza 10kohm |
|
| |
|
| |
|
| === Modulazione === | | === Modulazione === |
|
| |
|
| Implementa schemi di modulazione ASK, PSK, QAM o FSK , con costellazioni di dimensione da 2 a 32, frequenza massima 8khz. | | Implementa squalsiasi combinazione di ASK, PSK, e FSK, con costellazioni di dimensione da 2 a 16, frequenza massima 5khz (campionamento a 20khz). |
| | |
| == 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 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.
| |
| | |
| | |
| {|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
| |
| | |
| |}
| |
| | |
| === 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
| |
| | |
| {|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|| || ||
| |
| | |
| |}
| |
| | |
| | |
| mappa pin dsPIC33FJ128GP802
| |
| | |
| * 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|| || ||
| |
| |-
| |
| |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:
| |
| * 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 ===
| |
| | |
| 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 ==
| | 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