Vai al contenuto
PLC Forum


Zigbee - Procedura per iniziare una comunicazione


iValeria

Messaggi consigliati

Ciao a tutti,

visto che l'ultima discussione sul protocollo radio ZigBee risale all'anno scorso, ne apro una nuova sull'argomento, sperando che qualcuno possa aiutarmi.

Sto lavorando con chip dell'AVR, sia micro che il transceiver, e dovrei implementare la comunicazione secondo lo standard IEEE 802.15.4.

Il mio dispositivo sarà un Full function Device ma non sarà un coordinatore. Da quello che ho potuto capire leggendo il manuale ufficiale dello standard, la procedura da utilizzare per poter individuare il coordinatore ed effettuare il join della rete creata consiste nell'inviare una beacon request alla quale verrà risposto con un frame contenente tutti i dati caratteristici della rete.

E' giusto quello che ho capito? Volendo partire da zero, sarebbe più semplice creare una comunicazione beacon enabled oppure nonbeacon enabled?

Vi ringrazio per la disponibilità.

Valeria

Link al commento
Condividi su altri siti


Non credo di aver capito la tua domanda, ma provo a ipotizzare una risposta.

I frame beacon o no-beacon non intervengono direttamente nel joining della rete.

Devi utilizzare le API che si interfacciano al MAC.

Non conosco Atmel (io uso Freescale), ma sicuramente c'e' una primitiva o piu' primitive che ti permettono di costruire e spedire un messaggio del tipo "request associate" (a te non deve interessare se usa o no frame beacon) e aspettare una "confirm associate" che suppongo ritorni un NULL (esito negativo) o un puntatore ad una struttura con le caratteristiche della rete.

In questo modo ti svincoli da tutto cio' che sta "sotto" e ti risparmi un bel po' di lavoro.

Se vuoi prendere confidenza con 802.15.4 parti con un RFD il piu' semplice possibile (senza beacon ad esempio).

Se vuoi essere "Zibee Compliant" (targhetta rossa) il tuo FFD deve avere funzionalità di coordinatore e di sicurezza.

Ciao.

Link al commento
Condividi su altri siti

Ciao kappa47,

grazie per la risposta.

In effetti non ho saputo farti una domanda ben precisa perchè sono alquanto confusa e non so bene da dove partire. comunque ti dò altre informazioni su come sta proseguendo il lavoro. Il coordinatore sarà una chiavetta commerciale compatibile con lo standard, quindi immagino che abbia i requisiti che tu hai nominato. Io invece dovrò implementare un end device. ho provato a metterlo in ricezione per ricevere (sul canale selezionato) almeno i pacchetti inviati dal coordinatore. Questi pacchetti li ho sniffati tramite un'altro dispositivo zigbee, quindi so cosa dovrei poter leggere. Ma non riesco nemmeno a rilevare un accenno di ricezione. Se invece programmo 2 dispositivi con il mio firmware, uno che trasmette e l'altro che riceve, allora lì riesco a vedere una comunicazione. Ora sto utilizzando un analizzatore di spettro per capire come viaggiano i pacchetti sui vari canali e che potenza hanno.

Tenendo conto che è la prima volta che uso un analizzatore di spettro, se qualcuno avesse delle dritte da darmi sempre relativamente ai segnali ZigBee...accetto volentieri!!!

Grazie

Valeira

Link al commento
Condividi su altri siti

Non capisco perche' parli di "canale" e di "potenza" (in antenna suppongo). Sono problemi che devi lasciare risolvere al PHY.

Se vuoi svilupparlo tu (il PHY) devi avere delle buoni basi di radiofrequanza, conoscere come funziona il modulo RF, saper gestire "energy detection", il "link quality indication", il "clear channel assigment" e altre diavolerie che io riesco a intuire dal nome a cosa possono servire, ma che mi guardo bene dal toccare.

I tuoi due moduli sono sicuro che funzionino, ma probabilmente hai fatto una rete peer-to-peer.

Prova con 3 o 4 moduli e ad indirizzare i messaggi tra di loro.

Una domanda: il coordinatore (PAN) lo hai sviluppato tu o e' di terze parti ?

Se e' di terze parti e rispetta le specifiche Zigbee, ma tu non ricevi vuol dire che non sei in rete.

Anch'io ho utilizzato uno sniffer, ma credimi non serve a molto: se trasmetti, ma non ricevi...

L'analizzatore di spettro indica frequenza e potenza in antenna, cose che servono al progettista radio.

Ciao.

Link al commento
Condividi su altri siti

Grazie ancora per aver risposto kappa.

Il coordinatore è una chiavetta commerciale dellla Telegesis. Con dei comandi specifici gli faccio creare una rete sulla quale vorrei collegarmi con il mio dispositivo in cui anche io eviterei di mettere mani, specialmente nella parte della trasmissione radio. comunque immagino che per far sì che il PHY provveda ad impostare correttamente il canale basterà settare per bene i registri del transceiver wallbash.gif

Ora, visto che secondo te non riesco ad essere in rete, quali potrebbero esserne le cause? Io ho provato a far comunicare due dispositivi progettati da noi fra loro e ho cercato di captarne la comunicazione con uno sniffer. Credevo fosse un approccio giusto vsto che con questo metodo riesco a vedere i pacchetti inviati dai dispositivi commerciali. Il risultato è che quelli con il mio firmware comunicano fra di loro ma non con gli altri.

Grazie per la disponiblità

Ciao

Valeria

Link al commento
Condividi su altri siti

I problemi per cui un dispositivo FFD o RFD non entra in rete:

1) il PAN coordinator non ti accetta; motivi piu' svariati; ad esempio perche' ha raggiunto il limite massimo dei dispositivi collegabili (memoria del micro limitata) o usa frame sicuri. Non e' il ns. caso.

2) errori nell'applicativo (utilizzo sbagliato delle API o callback non esaustive). Il problema e' sempre qui.

PAN Coordinator e' gia' acceso e attivo (futile precisazione, ma a me e' capitato di dimenticarlo)

Fai la scansione de canali (tramite le API del MAC: invio "request" e attesa "confirm").

Trovi uno o piu' canali attivi (ED e LQI con valori apprezzabili) (generalmente sono delle "define" di libreria) ?

Se si, (sempre tramite API del MAC) devi spedire un msg. che "chiede se su quel canale c'e' un PAN Coordinator" (potrebbe non esserci anche se il canale e' attivo, semplicemente perche' un'altro End Device tenta di entrare in rete) con il PAN id. uguale al tuo ?

Se si, devi spedire un msg. del tipo "posso associarmi ?"

La tecnica e' sempre invio "request" e attesa "confirm".

A questo punto hai anche il canale su cui trasmetti, ma a cosa ti serve ?

L'attesa delle "confirm" puoi farle con un "while msg != NULL" ma devi ricevere in interrupt oppure con le callback, ma qui dipende da te.

Dimentica di accedere direttamente ai registri del chip radio (a meno che tu non abbia problemi hardware).

Ciao.

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...