Armando47: Difference between revisions

From ciapini
Jump to navigation Jump to search
No edit summary
 
(144 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
 
|}
 
=== 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 ===
== 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

Latest revision as of 19:41, 28 September 2016

Aardvark2 (PSF).png 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
    • RS485
    • Powerline
  • ottico
    • fibra
    • in aria
  • 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