Armando47: Difference between revisions
No edit summary |
No edit summary |
||
Line 5: | Line 5: | ||
---- | ---- | ||
<categorytree mode=pages>Armando47</categorytree> | <categorytree mode=pages>Armando47</categorytree> | ||
{{Special:PrefixIndex/{{FULLPAGENAME}}/}} | |||
== Livello fisico == | == Livello fisico == | ||
Revision as of 11:50, 11 June 2014
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.
Livello fisico
Caratteristiche del mezzo trasmissivo
- e' 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
- fibra
- in aria
- acustico
- idroacustico
- induzione magnetica
- neutroni
- neutrini
- onde gravitazionali
- piccioni, topi, cani, blatte
Caratteristiche elettriche
alimentazione: 3.3v DC
input e output sbilanciati standard consumer line-level −10 dBV con impedenza 10kohm
seriali UART con livelli TTL 3.3v
Modulazione
Implementa schemi di modulazione ASK, PSK, QAM o FSK , con costellazioni di dimensione da 2 a 64, frequenza massima 5khz (campionamento a 16khz).
Il symbol rate va da 1 a 1000 bps
FSK
Implementata con un accumulatore di fase.
http://cgit.brokenbydesign.org/cgit.cgi/armando.git/plain/dds.c
http://altivec.indivia.net/code/modulator.c (OOK, BFSK e BPSK)
La demodulazione è fattibile in linea di principio con:
- FFT: si prende un blocco di campioni, si fa la FFT e si misurano le energie nei bin corrispondenti alle frequenze di ciascun simbolo. Se il segnale ha però una banda stretta rispetto alla banda totale dei dati, calcolare tutti i bin è uno spreco inutile; inoltre la FFT deve avere una risoluzione sufficiente almeno a mappare le diverse frequenze in bin diversi, e questo richiede una quantità sufficiente di campioni. Se questa quantità supera di molto il numero di campioni per simbolo, questo sistema non funziona.
- Banco di filtri adattati: se ci sono N simboli (N frequenze) si costruiscono N filtri narrow-band centrati sulle frequenze corrispondenti. I dati vengono filtrati con ciascun filtro e si ottengono in uscita le N ampiezze, che formano un vettore che rappresenta il simbolo. Questo sistema dovrebbe andare bene se non ci aspettiamo portanti troppo ballerine; in particolare la fluttuazione della portante non deve portare una frequenza sopra al filtro di quella vicina. Schema a blocchi: Correzione automatica della soglia in presenza di fading selettivo: http://www.w7ay.net/site/Technical/Old/ATC/
- Misura della variazione di fase: si costruisce una portante e si demodula il segnale in modo che le frequenze dei simboli siano centrate sulla DC. Si moltiplica ciascun campione demodulato con il complesso coniugato del campione precedente. La fase di questo prodotto rappresenta la variazione della fase del segnale tra i due campioni, ovvero la frequenza del segnale, che quindi è direttamente mappabile nel simbolo corrispondente. Questo metodo dovrebbe essere computazionalmente banale e abbastanza robusto a derive della portante; se necessario, dovrebbe permettere un tracking semplice della portante stessa.
letture:
- http://www.w7ay.net/site/Technical/Old/ATC/
- http://www.cse.yorku.ca/course_archive/2010-11/F/3213/CSE3213_07_ShiftKeying_F2010.pdf
PLL
quando si e' riconosciuto il preambolo, un PLL deve sincronizzarsi con la portante del segnale. fatto questo l'oscillatore locale rimane fisso fino alla fine del pacchetto. praticamente lo smorzamento del loop e' basso durante il preambolo e diventa infinitamente alto durante il pacchetto.
letture:
- https://en.wikipedia.org/wiki/Phase-locked_loop#Implementing_a_digital_phase-locked_loop_in_software
- http://lists.canonical.org/pipermail/kragen-hacks/2012-February/000534.html una delle cose piu divertenti che abbia mai provato
- http://arachnoid.com/phase_locked_loop/
Possibili usi
Comunicazione sicura mobile
L'apparato in modalita' modem+microterminale e' connesso a un CB/PMR/LPD. Ogni terminale puo' mandare e ricevere informazioni in maniera sicura senza rischio di essere intercettati. Volendo si puo' stabilire una stazione fissa collegata a un pc dove si loggano tutti i messaggi e si possono mandare informazioni in broadcast/multicast, nonche' creari ponti radio a lunga distanza mediante internet/ponti radio wifi/etc. etc.
Dove:
- polizia comunitaria (Mexico)
- manifestazioni (ovunque)
- qualunque evento pubblico in cui si voglia coordinare su corto/medio raggio.
rete dati a banda stretta
Una serie di modem collegati a computer che utilizzano il protocollo ArNet per scambiarsi dati a bassa velocita'. Utilizzabile come rete primaria per comunicazione scritta, oppure come rete di backup in caso di spegnimento della rete internet. Dove: ovunque il governo abbia la possibilita' di censurare/spegnere le connessioni internet (Egitto, Siria, Libia, Turchia...).
data-logger, APRS
Il modem e' collegato direttamente a un altro dispositivo via UART, e manda/riceve dati a velocita' e intervallo costante. Se la UART non e' disponibile o troppo complessa, si possono i usare i GPIO.
Dove:
- data-logging scientifico
- APRS per mezzi e/o persone in movimento
- sistemi di soccorso.
radiocomando R/C
- TX: i gpio sono input analogici
- RX: i gpio sono output pwm in standard r/c
sintassi uart controllo
comandi configurazione
nome | valore | argomento | descrizione |
---|---|---|---|
NUL | 0x00 | Nullo | |
RGR | 0x01 | registro | Legge valore registro di configurazione |
RGW | 0x02 | registro+valore | Scrive valore nel registro |
TQA | 0x03 | dati | Appende dati nella coda TX |
TQF | 0x04 | Termina scrittura coda TX | |
RQR | 0x05 | n | Legge n bytes dalla coda RX |
RST | 0x06 | Resetta modem |
registri configurazione
nome | valore | dimensione (byte) | descrizione |
---|---|---|---|
SYF | 0x01 | 3 | 1 byte symbolo (00 - 15), 2 byte frequenza |
SYP | 0x02 | 3 | 1 byte symbolo (00 - 15), 2 byte fase |
SYA | 0x03 | 3 | 1 byte symbolo (00 - 15), 2 byte ampiezza |
MBS | 0x04 | 1 | Bit per simbolo |
MSR | 0x05 | 2 | Symbol rate |
TODO
- Decidere dove mettere il modem, il terminale, la chat
- In-band or out-of-band signalling? (Controllare lo standard Hayes/AT, Xmodem/Zmodem, escape characters)
- Come gestire la memoria: volatile (si perde tutto al riavvio) / non volatile (salvare lo stato nella flash)
- Bisogna scrivere il menu di configurazione
- Possibile out-of-band con il FT232*
- Uso automatico (modem, APRS) / Uso manuale (chat/sms)