Sei sulla pagina 1di 60

Pagina 1 Waspmote ZigBee Networking Guide Page 2 -2 v0.3 Versione del documento: v0.

3 - 03/2010 Comunicaciones Libelium Distribuidas SL INDEX 1. Considerazioni generali ................................................ .................................................. ....................................... 6 1.1. Biblioteche Waspmote ................................................ .................................................. .................................................. ....................................... 0,6 1.1.1. File XBee Waspmote ............................................... .................................................. .................................................. ..................... 0,6 1.1.2. Costruttore ................................................. .................................................. .................................................. ..................................... 0,6 1.2. Funzioni API ................................................ .................................................. .................................................. .................................................. .. 0,6 1.3. API di estensione ................................................ .................................................. .................................................. .................................................. .. 0,7 1.4. Waspmote riavvio ................................................ .................................................. .................................................. ........................................... 0,7 1.5. Le costanti definite pre .............................................. .................................................. .................................................. .................................... 0,7 2. Inizializzazione ................................................. .................................................. .................................................. ...... 8 2.1. Inizializzazione ................................................. .................................................. .................................................. .................................................. ....... 0,8 2.2. Impostazione ON ................................................ .................................................. .................................................. .................................................. ....... 0,8 3. Parametri Nodo ................................................ .................................................. ................................................. 9 3.1. MAC Address ................................................ .................................................. .................................................. .................................................. .. 0,9 3.2. Indirizzo di rete ................................................ .................................................. .................................................. ............................................. 0,9 3.3. Estesa PAN ID ............................................... .................................................. .................................................. .............................................. 0,9 3.4. Di estensione PAN ID .............................................. .................................................. .................................................. ....................... . 10 3.5. Operativi PAN ID ............................................... .................................................. .................................................. .......................................... . 10 3.6. Node Identifier ................................................ .................................................. .................................................. .............................................. . 10 3.7. Canale ................................................. .................................................. .................................................. .................................................. ....... .. 11

3.8. Device Identifier Type ............................................... .................................................. .................................................. .................................. . 12 3.9. Indirizzo po 'Importanza di 16 ............................................. .................................................. .................................................. ......................... . 12 3.10. Tipi di nodo ................................................ .................................................. .................................................. .................................................. . 12 4. Parametri Packet ................................................ .................................................. ............................................. 14 4.1. Struttura utilizzata in pacchetti .............................................. .................................................. .................................................. ........................... . 14 4.2. carico utile ................................................ .................................................. .................................................. ..................................... . 16 4.2.1. Carico utile massimo ................................................ .................................................. .................................................. ...................... . 17 5. Guadagno di potenza e sentimento .............................................. .................................................. ................................. 18 5.1. Livello di Potenza ................................................ .................................................. .................................................. .................................................. .. . 18 5.2. Power Mode ................................................ .................................................. .................................................. .................................................. . . 19 5.3. Received Signal Strength Indicator .............................................. .................................................. .................................................. ......... . 19 6. Canali Radio di ................................................ .................................................. .................................................. 20 6.1. Canali di scansione ................................................ .................................................. .................................................. ............................................... . 20 6.2. Durata scansione ................................................ .................................................. .................................................. ................................................ . 20 7. Connettivit ................................................. .................................................. .................................................. .... 21 7.1. Topologie ................................................. .................................................. .................................................. .................................................. ... . 21 7.2. ZigBee Architettura ................................................ .................................................. .................................................. .................................... . 22 7.2.1. Oggetti dispositivi ZigBee ............................................... .................................................. .................................................. ............... . 22 Indice Pagina 3 -3 v0.3 7.2.2. ZDO Plane Management ............................................... .................................................. .................................................. ........... . 22 7.2.3. Application Support Sub-strato (APS ).......................................... .................................................. ........................................... . 22 7.2.4. Livello di rete ................................................ .................................................. .................................................. .............................. . 22

7.2.5. Piano di sicurezza ................................................ .................................................. .................................................. ............................... . 23 7.2.6. Application Framework ................................................ .................................................. .................................................. ............ . 23 7.2.7. Punti di Servizio di accesso ............................................... .................................................. .................................................. .................. . 23 7.2.8. Endpoint applicazione ................................................ .................................................. .................................................. .............. . 23 7.2.9. Profili di applicazione ................................................ .................................................. .................................................. .................... . 23 7.2.10. Attributi ................................................. .................................................. .................................................. ................................... . 23 7.2.11. Cluster ................................................. .................................................. .................................................. ........................................ . 24 7.2.12. Binding ................................................. .................................................. .................................................. ........................................ . 24 7.2.13. Waspmote livello di applicazione ............................................... .................................................. .................................................. . 24 7.3. ZigBee Affrontare ................................................ .................................................. .................................................. ...................................... . 25 7.3.1. Dispositivo di indirizzamento ................................................ .................................................. .................................................. ...................... . 25 7.3.2. Application Layer Affrontare ............................................... .................................................. .................................................. . . 25 7.4. Connessioni ................................................. .................................................. .................................................. .................................................. . 25 7.4.1. Broadcast ................................................. .................................................. .................................................. ...................................... . 25 7.4.2. Unicast ................................................. .................................................. .................................................. ........................................... . 25 7.4.3. Molti a uno ............................................... .................................................. .................................................. ................................... . 26 7.4.4. Parametri coinvolti ................................................ .................................................. .................................................. .................. . 26 7.5. Scoperta e ricerca Nodi .............................................. .................................................. .................................................. .......... . 27 7.5.1. Struttura utilizzata nei Discovery .............................................. .................................................. .................................................. ...... . 27 7.5.2. Ricerca nodi ................................................ .................................................. .................................................. .......................... . 28 7.5.3. Nodo scoperta di un nodo specifico ............................................ .................................................. .............................................. . 29 7.6. Invio di dati ................................................ .................................................. .................................................. ................................................. . 29 7.6.1. API Struttura Frame ............................................... .................................................. .................................................. .................... . 29 7.6.2. Application Header ................................................ .................................................. .................................................. .................... . 29 7.6.3. Frammentazione ................................................. .................................................. .................................................. ............................ . 30

7.6.4. Struttura packetXBee ................................................ .................................................. .................................................. ................ . 30 7.6.5. Esempi ................................................. .................................................. .................................................. ....................................... . 30 7.7. Ricezione di dati ................................................ .................................................. .................................................. .............................................. . 34 7.7.1. Esempi ................................................. .................................................. .................................................. ....................................... . 35 8. Avvio di una rete ............................................... .................................................. ............................................. 38 8.1. Coordinatore ................................................ avvio .................................................. .................................................. .................................... . 38 8.2. Coordinatore scia fino processo da Reset ............................................ .................................................. ................................................. . 38 8.3. Parametri relativi ................................................ .................................................. .................................................. ..................................... . 39 8.3.1. Nodo Join Time ............................................... .................................................. .................................................. ............................. . 39 8.3.2. Stack ZigBee ............................................... profilo .................................................. .................................................. ..................... . 39 8.4. Esempi ................................................. .................................................. .................................................. .................................................. ...... . 39 8.4.1. Coordinatore del processo di avvio. Random Extended PAN ID. Tutti i canali per la scansione .............................................. .......... 39 8.4.2. Coordinatore del processo di avvio. Selezione ampliata PAN ID. Solo alcuni canali per la scansione ........................................ 40 9. Unire una rete esistente .............................................. .................................................. ............................... 41 9.1. Partecipare a un router di rete .............................................. .................................................. .................................................. ........................... . 41 9.1.1. Esempio ................................................. .................................................. .................................................. ......................................... . 41 Indice Pagina 4 -4 v0.3 9.2. End Device Entrare in una rete ............................................. .................................................. .................................................. ................... . 41 9.2.1. Esempio ................................................. .................................................. .................................................. ......................................... . 42 9.3. Router / End Device sveglia dal processo di reimpostazione ......................................... .................................................. .................................... . 43 9.4. Canale di verifica ................................................ .................................................. .................................................. .................................... . 43 9.4.1. Router di verifica Canale ............................................... .................................................. .................................................. ..... . 43 9.4.2. Fine dispositivo di verifica della Manica .............................................. .................................................. ............................................... . 43

9.5. Parametri relativi ................................................ .................................................. .................................................. ..................................... . 43 9.5.1. Associazione Indicazione ................................................ .................................................. .................................................. ............... . 43 9.5.2. Numero di figli rimasti .............................................. .................................................. ................................................ . 44 9.5.3. Canale di verifica ................................................ .................................................. .................................................. ................... . 44 9.5.4. Iscriviti Notifica ................................................ .................................................. .................................................. .......................... . 44 9.6. Nodo Discovery ................................................ .................................................. .................................................. ............................................ . 45 9.6.1. Nodo Discovery ................................................ .................................................. .................................................. ........................... . 45 9.6.2. Nodo Time Discovery ............................................... .................................................. .................................................. .................. . 45 9.6.3. Opzioni Discovery Nodo ............................................... .................................................. .................................................. ........... . 46 10. Riavvio di una rete ............................................... .................................................. ....................................... 47 10.1. Network Reset ................................................ .................................................. .................................................. ............................................ . 47 11. Opzioni Sleep ................................................ .................................................. .................................................. . 48 11.1. Modalit Sleep ................................................ .................................................. .................................................. ................................................ . 48 11.1.1. Pin Sleep ................................................ .................................................. .................................................. ...................................... . 48 11.1.2. Ciclico Sleep ................................................ .................................................. .................................................. ................................. . 48 11.2. Parametri Sleep ................................................ .................................................. .................................................. ....................................... . 48 11.2.1. Sleep Mode ................................................ .................................................. .................................................. ................................. . 48 11.2.2. Sleep Periodo ................................................ .................................................. .................................................. ............................... . 48 11.2.3. Ora prima di dormire ............................................... .................................................. .................................................. ...................... . 49 11.2.4. Numero di periodi di sonno .............................................. .................................................. .................................................. ......... . 49 11.2.5. Opzioni Sleep ................................................ .................................................. .................................................. ............................ . 49 11.3. ON / OFF .............................................. .................................................. .................................................. ............................................... . 50 12. Sincronizzazione della rete ............................................... .................................................. ............................. 51 12.1. Fine funzionamento del dispositivo ............................................... .................................................. .................................................. ............................... . 51

12.2. Operazione genitore ................................................ .................................................. .................................................. ....................................... . 51 12.3. Ciclico di funzionamento Sleep ............................................... .................................................. .................................................. ............................. . 52 13. Sicurezza e crittografia dei dati .............................................. .................................................. ........................... 53 13.1. ZigBee la sicurezza e la crittografia dei dati Panoramica ............................................ .................................................. .................................. . 53 13.2. Sicurezza nelle librerie API .............................................. .................................................. .................................................. .............................. . 54 13.2.1. Abilitare la crittografia ................................................ .................................................. .................................................. .................... . 54 13.2.2. Opzioni di crittografia ................................................ .................................................. .................................................. ................. . 54 13.2.3. Encryption Key ................................................ .................................................. .................................................. .......................... . 54 13.2.4. Link chiave ................................................ .................................................. .................................................. ........................................ . 54 13.2.5. Applicazione del livello di sicurezza ............................................... .................................................. .................................................. ..... . 55 13.3. Sicurezza in rete .............................................. .................................................. .................................................. ............................. . 55 13.3.1. Trust Center ................................................ .................................................. .................................................. ................................ . 55 13.3.2. Gestione delle chiavi di sicurezza ............................................... .................................................. .................................................. .......... . 55 Indice Pagina 5 -5 v0.3 13.4. Esempi ................................................. .................................................. .................................................. .................................................. ... . 56 13.4.1. Configurare una rete utilizzando la protezione senza un Trust Center ......................................... ............................................. 56 13.4.2. Configurare una rete utilizzando la protezione e il coordinatore come un Trust Center ...................................... .................. 56 14. esempi di codice e informazioni estese ............................................. .................................................. ...... 57 Indice Pagina 6 -6 v0.3 Considerazioni generali 1. Considerazioni generali 1.1. Waspmote Biblioteche 1.1.1. XBee Waspmote Files WaspXBeeCore.h; WaspXBeeCore.cpp, WaspXBeeZB.h, WaspXBeeZB.cpp

1.1.2. Costruttore Per iniziare a utilizzare Waspmote libreria XBee, un oggetto dalla classe 'WaspXBeeZB'must essere creato. Questo oggetto, chiamato 'xbeeZB', si crea all'interno XBee libreria Waspmote ed pubblico per tutte le librerie. E 'utilizzato attraverso la guida di mostrare come la XBee Waspmote libreria funziona. Durante la creazione di questo costruttore, alcune variabili sono definite con un valore di default. 1.2. Funzioni API Attraverso la guida ci sono molti esempi di utilizzo dei parametri. In questi esempi, le funzioni API sono chiamati ad eseguire il comandi, la memorizzazione nella loro variabili legate al valore del parametro in ogni caso. Esempio di utilizzo ^ % = JHW2ZQ0DF/RZ ehh [* HWORZHUELWVRI0 $ & $ GGUHVV % = JHW2ZQ0DF ehh [LJK HWXSSHUELWVRI0 + * $ & $ GGUHVV ' Variabili correlate xbeeZB.sourceMacHigh [0-3] memorizza i 32 bit superiore di MAC address xbeeZB.sourceMacLow [0-3] memorizza i 32 bit pi bassi di MAC address Quando ritorno da 'xbeeZB.getOwnMacLow' la variabile legata 'xbeeZB.sourceMacLow' sar riempito con l'appropriata valori. Prima di chiamare la funzione, la variabile legata viene creato ma vuoto. Quasi ogni funzione ha una variabile legata, e sar indicato quando la funzione stata spiegata. Ci sono tre bandiere di errore che vengono riempite quando la funzione eseguita: error_AT: memorizza se qualche errore durante l'esecuzione di un comando AT funzione error_RX: memorizza se qualche errore durante la ricezione di un pacchetto error_TX: memorizza se qualche errore si verificato durante la trasmissione di un pacchetto Tutte le funzioni restituiscono un flag per sapere se la funzione chiamata ha avuto successo o meno. I valori disponibili per questa bandiera: 0: Successo. La funzione stata eseguita senza errori e la variabile stata riempita. 1: Error. La funzione stata eseguita, ma verificato un errore durante l'esecuzione. 2: Non eseguito. verificato un errore prima di eseguire la funzione. -1: Non consentito in funzione di questo modulo. Per memorizzare le modifiche dei parametri dopo cicli di potenza, necessario eseguire il writeValues funzione. Esempio di utilizzo ^ Ehh [=% ZULWH9DOXHV.HHSYDOXHVDIWHUUHERRWLQJ ' Pagina 7 -7 v0.3 Considerazioni generali 1.3. API di estensione Tutte le funzioni rilevanti e utili sono state incluse nelle API Waspmote, anche se tutti i comandi possono essere inviati XBee direttamente al ricetrasmettitore. Esempio di utilizzo ^

Ehh [=% VHQG & RPPDQG 7 $ 7 $ &+([ HFXWHVFRPPDQG & + ' Variabili correlate xbeeZB.commandAT [0-100] memorizza la risposta data dal modulo fino a 100 byte 1.4. Waspmote reboot Quando Waspmote si riavvia o si sveglia da uno stato di sonno profondo (batteria scollegata) il codice di applicazione avr inizio ancora una volta, la creazione di tutte le variabili e gli oggetti fin dall'inizio. 1.5. Costanti predefinite Ci sono alcune costanti predefinite in un file chiamato 'WaspXBeeConstants.h'. Queste costanti definiscono alcuni parametri come la dimensione di ogni frammento o la dimensione massima dei dati. Il pi importante costanti sono spiegate prossimo: MAX_DATA: definisce la dimensione massima disponibile per un pacchetto di dati. Questa costante deve essere uguale o pi grande di dati inviato su ogni pacchetto. Questa dimensione non deve essere pi grande di 1500. DATA_MATRIX: definisce le dimensioni dei dati per ogni frammento. Poich il carico utile massimo 100bytes, non c' ragione di fare pi grande. MAX_PARSE: definisce i dati di massima che si riceve in ogni chiamata a 'treatData'. Se pi dati vengono ricevuti, essi essere memorizzati nel buffer UART fino alla chiamata successiva a 'treatData'. Tuttavia, se il buffer UART pieno, i seguenti dati saranno scritto sul buffer, quindi state attenti a questo problema. MAX_BROTHERS: definisce il numero massimo di fratelli che possono essere memorizzati. MAX_FRAG_PACKETS: definisce il numero massimo di frammenti che possono essere ricevuti da un pacchetto globale. Se un pacchetto diviso in pi frammenti, quando viene rilevato tutti i frammenti saranno cancellati e il pacchetto verr scartato. MAX_FINISH_PACKETS: definisce il numero massimo di pacchetti finiti che possono essere memorizzati. DATA_OFFSET: utilizzato come parametro di input in 'setDestinationParams'. Si precisa che i dati riportati come parametro deve essere aggiunto alla fine del pacchetto. Esso consente la generazione di un pacchetto da diverse chiamate a 'setDestinationParams'with diversi tipi di dati. DATA_ABSOLUTE: utilizzato come parametro di input in 'setDestinationParams'. Si precisa che i dati come parametro sono i dati da inviare. Essa definisce anche gli indirizzi per il pacchetto. XBEE_LIFO: specifica la politica di sostituzione LIFO. Se un pacchetto viene ricevuto e finito matrice pacchetti piena, questa politica libero arbitrio il pacchetto ricevuto in precedenza e sar memorizzare i dati dal pacchetto precedente. XBEE_FIFO: specifica la politica di sostituzione FIFO. Se un pacchetto viene ricevuto e finito matrice pacchetti piena, questa politica libero arbitrio il primo pacchetto ricevuto e lo memorizza i dati dal pacchetto precedente. XBEE_OUT: specifica la sostituzione politica OUT. Se un pacchetto viene ricevuto e finito matrice pacchetti piena, questa politica scarter questo pacchetto. Pagina 8

-8 v0.3 Inizializzazione 2. Inizializzazione Prima di iniziare a utilizzare un modulo, deve essere inizializzato. Durante questo processo, il UART per comunicare con il modulo l'apertura e il passaggio XBee deve essere attivato. 2.1. Inizializzazione Inizializza tutte le variabili globali che verranno utilizzati in seguito. Esso restituisce nulla. Le variabili inizializzate sono: Protocollo: specifica il protocollo utilizzato (802.15.4 in questo caso). freq: specifica la frequenza utilizzata (2,4 GHz in questo caso). modello: specifica il modello utilizzato. Ci sono due modelli possibili: Normal (2mW) o PRO (50mW). totalFragmentsReceived: specifica il numero di frammenti attesi da un pacchetto pendingPackets: specifica i pacchetti in attesa di frammenti da completare POS: specifica la posizione da utilizzare in pacchetti ricevuti discoveryOptions: specifica le opzioni nel nodo Discovery awakeTime: specifica il tempo di essere sveglio prima di andare a letto sleepTime: specifica il tempo di dormire scanChannels: specifica i canali per la scansione scanTime: specifica il tempo per la scansione ogni canale timeEnergyChannel: specifica il tempo i canali verranno scansionati encryptMode: specifica se la modalit attivata la crittografia powerLevel: specifica il livello di trasmissione di potenza timeRSSI: specifica il tempo di LED RSSI sono su sleepOptions: specifica le opzioni per dormire parentNA: specifica l'indirizzo della capogruppo deviceType: specifica il tipo di dispositivo extendedPAN: specifica il estesa PAN ID maxUnicastHops: specifica il numero massimo di luppolo in una trasmissione Unicast maxBroadcastHops: specifica il numero massimo di luppolo in una trasmissione broadcast stackProfile: specifica lo stack di protocollo ZigBee usato joinTime: specifica il tempo il Coordinatore permette nodi di far parte della rete channelVerification: specifica se il router ha bisogno di un coordinatore per mantenere nella rete joinNotification: specifica un messaggio viene inviato quando un nodo si collega alla rete aggregateNotification: specifica il tempo che intercorre tra il percorso di trasmissione di aggregazione messaggi consecutivi encryptOptions: specifica le opzioni per la modalit di crittografia networkKey: specifica la chiave di rete powerMode: specifica la modalit di alimentazione utilizzato Esempio di utilizzo ^ LQLW% = [ehh =,*%(() 5 (4 B * 1250 $ /] HVWKHYDULDEOHV LQLWLDOL ' 2.2. Impostazione ON Si apre la UART e commuta la XBee ON. La velocit di trasmissione utilizzato per aprire la UART viene definito in libreria (da 38400bps di default). Esempio di utilizzo

^ Ehh [=% 212SHQVWKH8 $ 57DQGVZLWFKHVWKH;% HH21 ' Pagina 9 -9 v0.3 Nodo Parametri 3. Nodo Parametri Quando si configura un nodo, necessario impostare alcuni parametri che verranno utilizzati recentemente nella rete, ed alcuni parametri necessarie per utilizzare le funzioni API. 3.1. Indirizzo MAC 64-bit del modulo RF IEEE indirizzo univoco. E 'diviso in due gruppi di 32 bit (alta e bassa). Si identifica in modo univoco un nodo all'interno di una rete a causa di essa non pu essere modificato ed dato dal produttore. A causa di ZigBee usa-bit gli indirizzi da 16 a inviare i pacchetti all'interno di una rete, l'indirizzo MAC non tanto importante quanto in 802.15.4 moduli. Esempio di utilizzo ^ % = JHW2ZQ0DF/RZ ehh [* HWORZHUELWVRI0 $ & $ GGUHVV % = JHW2ZQ0DF ehh [LJK HWXSSHUELWVRI0 + * $ & $ GGUHVV ' Variabili correlate xbeeZB.sourceMacHigh [0-3] memorizza i 32 bit superiore di MAC address xbeeZB.sourceMacLow [0-3] memorizza i 32 bit pi bassi di MAC address 3.2. Indirizzo di rete po Network Address 16. Quando un nodo si collega alla rete, il Coordinatore assegna un indirizzo di 16 bit che non pu essere modificato fino al il nodo lascia il PAN o il coordinatore decida di cambiarlo. ZigBee utilizza indirizzi a 16 bit per inviare i pacchetti all'interno della di rete per ridurre il sovraccarico. Se l'indirizzo 16 bit del nodo di destinazione non noto, un processo chiamato 'Indirizzo Discovery'will essere eseguito. Questo processo trasparente per l'utente. Esempio di utilizzo ^ % = JHW2ZQ1HW ehh [$ GGUHVV * HW1HWZRUN $ GGUHVV ' Variabili correlate xbeeZB.sourceNA [0-1] memorizza i bit della rete 16 Indirizzo 3.3. Extended PAN ID 64-bit numero che identifica la rete. Essa deve essere univoco per differenziare una rete. Tutti i nodi della stessa rete dovrebbero avere la stessa PAN ID. Il coordinatore sceglie un casuale esteso PAN ID quando la rete iniziato il estesa PAN ID impostato nel modulo. Quando un nodo si unisce una rete, durante il processo di adesione. In caso di proroga PAN ID impostato a '0 'prima di iniziare una rete, il Coordinatore selezioner un casuale PAN ID, ma se un Extended PAN ID impostata prima di iniziare una rete, questo ID PAN sar impostato. Se un nodo che unisce ha impostato il suo Extended PAN ID, si limita a una rete con tale ID PAN.

Esempio di utilizzo ^ SDQLG ^ 'DUUD \ FRQWDLQLQJWKH3 $ 1,' Ehh [=% VHW3 1SDQLG6HW3 $ $ 1, ' Ehh [=% JHW3 HW3 $ 1 * $ 1, ' ' Pagina 10 -10 v0.3 Nodo Parametri Variabili correlate xbeeZB.PAN_ID [0-7] negozi a 64-bit Extended PAN ID NOTA: 'Extended PAN ID'is utilizzato quando un ID specifico vuole essere utilizzato, impostando questo parametro ad un valore diverso da zero si rendere il modulo sceglie solo questo ID. Se impostato a zero, qualsiasi identit sar scelto. 3.4. Di estensione PAN ID 64-bit che specifica il numero di estensione PAN ID utilizzato nella rete. In caso di proroga PAN ID impostato a '0 ', in funzione Extended PAN ID sar impostato il selezionati casualmente PAN ID (vedi sotto). In caso di proroga PAN ID impostato su un valore diverso di '0 ', Di estensione PAN ID verr impostato su tale valore. Esempio di utilizzo: ^ % = JHW ehh [([WHQGHG3 $ 1 * HW2SHUDWLQJ ([WHQGHG3 $ 1, ' ' Variabili correlate xbeeZB.extendedPAN [0-7] memorizza i bit Extended operativi a 64 PAN ID NOTA: 'operativa estesa PAN corrente ID'is l'ID del modulo sta lavorando su. Se 'estesa PAN ID'is impostato su un valore diverso da zero, entrambi avranno lo stesso valore. Se 'estesa PAN ID'is set a zero, il modulo si selezionano in modo casuale un valore da utilizzare come PAN ID. 3.5. Operativi PAN ID 16-bit che specifica il numero di esercizio PAN ID utilizzato nella rete. Essa riflette il funzionamento a 16-bit PAN ID il modulo in esecuzione. Esempio di utilizzo ^ Ehh [=% JHW2SHUDWLQJ3 HW2SHUDWLQJ3 $ 1 * $ 1, ' ' Variabili correlate xbeeZB.operatingPAN [0-1] memorizza i 16-bit di funzionamento PAN ID NOTA: 'esercizio corrente PAN ID'is l'ID del modulo sta lavorando su, ma ha precisato solo con 16 bit invece di utilizzare 64 bit. Si tratta di utilizzati per ridurre le spese generali su attivit di livello applicativo. 3.6. Node Identifier A max-stringa di caratteri ASCII 20 che identifica il nodo di una rete. E 'usato per identificare un nodo nel livello di applicazione. E 'anche usato per cercare un nodo utilizzando la sua NI. Esempio di utilizzo ^

% = VHW1RGH ehh [, GHQWLHU IRUUHVWQRGH6HW IRUUHVWQRGH DV1, JHW1RGH% = [ehh, GHQWLHU * HW1, '

Pagina 1 -11 v0.3 Nodo Parametri Variabili correlate xbeeZB.nodeID [0-19] memorizza la stringa di byte max-20 Node Identifier 3.7. Canale Questo parametro definisce il canale di frequenza utilizzata dal modulo per trasmettere e ricevere. ZigBee opera nella banda a 2,4 GHz, con 16 canali. Il canale selezionato dal Coordinatore quando si avvia la rete, e pu non sono modificabili. Figura 3.1: Bande di frequenza di funzionamento Figura 3.2: Canale Frequenza Numeri Esempio di utilizzo: ^ % = JHW ehh [& HW * KDQQHO & KDQQHO ' Variabili correlate xbeeZB.channel memorizza il canale operativo Numero di Canale Frequenza Supportato da 0x0B - Canale 11 2.400 - 2.405 GHz Normale / PRO 0x0C - Canale 12 2.405 - 2.410 GHz Normale / PRO 0x0D - Canale 13 2.410 - 2.415 GHz Normale / PRO 0x0E - canale 14 2.415 - 2.420 GHz Normale / PRO 0x0F - Canale 15 2.420 - 2.425 GHz Normale / PRO 0x10 - canale 16 2.425 - 2.430 GHz Normale / PRO 0x11 - Canale 17 2.430 - 2.435 GHz Normale / PRO 0x12 - canale 18 2.435 - 2.440 GHz Normale / PRO 0x13 - canale 19 2.440 - 2.445 GHz Normale / PRO 0x14 - Canale 20 2.445 - 2.450 GHz

Normale / PRO 0x15 - canale 21 2.450 - 2.455 GHz Normale / PRO 0x16 - Canale 22 2.455 - 2.460 GHz Normale / PRO 0x17 - canale 23 2.460 - 2.465 GHz Normale / PRO 0x18 - canale 24 2.465 - 2.470 GHz Normale / PRO 0x19 - Canale 25 2.470 - 2.475 GHz Normale 0x1A - Canale 26 2.475 - 2.480 GHz Normale Page 2 -12 v0.3 Nodo Parametri 3.8. Tipo di dispositivo Identifier Dispositivo tipo di valore. Questo valore pu essere utilizzato per differenziare i diversi prodotti a base di XBee. Esempio di utilizzo ^ XLQWBWGHYLFHW \> SH @ ^''HYLFH7 SH \, GHQWLHU Ehh [=% VHW'HYLFH7 \ SHGHYLFHW \ SH6HW'HYLFH7 \ SH, GHQWLHU Ehh [=% JHW'HYLFH7 \ SH * HW'HYLFH7 \ SH, GHQWLHU ' Variabili correlate xbeeZB.deviceType [0-3] memorizza l'identificatore del tipo di dispositivo 3.9. Indirizzo po 'Importanza di 16 reti ZigBee sono chiamati personal area network o padelle. Ogni rete definito con un identificatore univoco PAN. Moduli supportano sia 64-bit (estesa) PAN ID e 16-bit PAN ID. Il 16-bit PAN ID viene utilizzato in tutte le trasmissioni di dati, mentre la 64-bit PAN ID viene utilizzato durante la giunzione e di risolvere a 16 bit PAN ID conflitti che possono verificarsi. I moduli possono essere identificati con i loro 64-bit indirizzi unici o di un utente-configurabile identificatore di stringa ASCII. ZigBee utilizza 16-bit indirizzi per ridurre il sovraccarico in pacchetti, per cui gli indirizzi a 16 bit sono necessari per inviare i pacchetti all'interno di una rete ZigBee. Se l'indirizzo 16 bit di un modulo noto, specificato nel pacchetto e la trasmissione avr inizio una volta che il percorso stato scoperto. Se l'indirizzo 16 bit di un modulo non noto, un processo chiamato 'Indirizzo Discovery'will essere eseguiti per scoprire i suoi 16-bit di indirizzo.

ZigBee indirizzamento spiegato nel capitolo 6 con maggiore dettaglio. 3.10. Tipi di nodo ZigBee definisce tre diversi tipi di periferica: coordinatore, il router e dispositivi finali. Un esempio di una possibile rete mostrata qui di seguito: Figura 3.2: topologia ad albero Coordinatore Il coordinatore ha le seguenti caratteristiche: Si seleziona il canale e del PAN ID (entrambi a 64 bit e 16-bit) per avviare la rete. Pagina 3 -13 v0.3 Nodo Parametri Si pu consentire router e dispositivi finali per unirsi alla rete. Si pu assistere in routing dei dati. Non si pu dormire. Deve essere sempre sveglio. Router Un router ha le seguenti caratteristiche: Si deve a una rete ZigBee prima di poter trasmettere, ricevere o dati di percorso. Dopo l'adesione, pu consentire router e dispositivi finali per unirsi alla rete. Dopo l'adesione, possibile instradare i dati. Non si pu dormire. Deve essere sempre sveglio. End Device Un dispositivo finale ha le seguenti caratteristiche: Si deve a una rete ZigBee prima di poter trasmettere o ricevere dati. Non si pu consentire ai dispositivi di collegarsi alla rete. Deve sempre trasmettere e ricevere dati tramite RF suo genitore. Non pu percorso dei dati. Si pu dormire. Nelle reti ZigBee, il coordinatore deve selezionare un ID PAN (64-bit e 16-bit) e il canale per avviare una rete. Dopo di che, si comporta essenzialmente come un router. Il coordinatore e router possono consentire ad altri dispositivi ad aderire alla rete e dati di percorso. Dopo un dispositivo finale si unisce ad un router o un coordinatore, deve essere in grado di trasmettere o ricevere dati tramite RF che router o coordinatore. Il router o il coordinatore che ha permesso al dispositivo finale di unirsi diventa il suo genitore. Poich il dispositivo finale riesce a dormire, il genitore deve essere in grado di buffer o mantenere in vigore i pacchetti di dati in ingresso destinati al dispositivo finale fino a quando non in grado di svegliarsi e di ricevere il dati. Pagina 4 -14 v0.3 Packet Parametri 4. Packet Parametri 4.1. Struttura utilizzata in pacchetti I pacchetti sono strutturati in librerie API utilizzando una struttura definita chiamato 'packetXBee'. Questa struttura ha molti campi da compilare a cura l'utente o l'applicazione:

/************ IN ***********/ uint8_t [macDL 4]; / / 32b Bassa MAC di destinazione uint8_t macDH [4]; / / 32b Mac Destinazione Superiore Modalit uint8_t; / / 0 = unicast; 1 = broadcast; 2 = grappolo; 3 = sincronizzazione uint8_t address_type / / 0 = 16B, 64B 1 = uint8_t nad [2]; / / 16b Destination Network Address char dati [MAX_DATA]; / / Dati del messaggio inviato. Tutti i dati qui, anche se> Payload uint16_t data_length / / Dati inviati lunghezza. Real usato dimensioni dei dati vettoriali [MAX_DATA] uint16_t frag_length / / lunghezza del frammento. Utilizzato per inviare ogni frammento di un pacchetto di grande uint8_t SD; / / Fonte Endpoint DE uint8_t; / / Destinazione Endpoint uint8_t CID [2]; / / Cluster Identifier uint8_t PID [2]; / / Identifier profilo MY_known uint8_t; / / 0 = net Indirizzo sconosciuto; 1 = indirizzo noto netto uint8_t opt; / / Opzioni: trasmissione Multicast = 0x08 *******/ /******** APPLICAZIONE uint8_t packetID; / / ID per il pacchetto uint8_t [macSL 4]; / / 32b Mac Fonte Bassa uint8_t macSH [4]; / / 32b Mac Higher Source uint8_t NAS [2]; / / 16b Network Address Source uint8_t [macOL 4]; / / 32b Mac sorgente la Bassa uint8_t macOH [4]; / / 32b Mac Fonte origine superiore uint8_t nao [2]; / / 16b Indirizzo di rete origine nio char [20]; / / Identificatore del nodo di origine. Per utilizzare in trasmissione, deve finire "#". uint8_t RSSI; / / Ricezione della potenza del segnale address_typeS uint8_t / / 0 = 16B, 64B 1 = uint8_t typeSourceID / / 0 = NAS; 1 = macSource; 2 = NI uint8_t numFragment; / / Numero di frammento di ordinare il pacchetto globale uint8_t endFragment / / Specifica se questo frammento l'ultimo frammento di un pacchetto globale uint8_t tempo;

/ / Specifica il tempo in cui il primo frammento stato ricevuto /******** OUT **************/ deliv_status uint8_t / / Lo stato della spedizione discov_status uint8_t / / Discovery Stato uint8_t true_naD [2], / / indirizzo di rete il pacchetto stato veramente inviato a tentativi uint8_t; / / Tentativi necessari per inviare il pacchetto macDL & macDH po indirizzo di destinazione 64. Viene utilizzato per specificare l'indirizzo MAC del nodo di destinazione. modo Modalit di trasmissione scelto di trasmettere quel pacchetto. I valori disponibili: 0: la trasmissione unicast 1: Broadcast trasmissione 2: richiesta di trasmissione vincolante, utilizzando i cluster e gli endpoint 3: pacchetto di sincronizzazione address_type Indirizzo del tipo scelto, tra i 16-bit e 64-bit gli indirizzi. Sempre impostato a '1 'in ZigBee. 0: 16-bit indirizzo 1: 64-bit indirizzo Pagina 5 -15 v0.3 Packet Parametri nad 16-bit Destinazione indirizzo di rete. E 'utilizzato nelle trasmissioni di dati. dati Dati da inviare nel pacchetto. E 'utilizzato per memorizzare i dati da inviare in modalit unicast o trasmissioni broadcast ad altri nodi. Tutti i dati da inviare devono essere conservati in questo campo. La funzione API responsabile per l'invio di dati si prender cura di frammentare il pacchetto se supera il carico utile massimo. La sua dimensione massima definito da 'MAX_DATA', una costante definita nelle librerie API. data_length Dati davvero inviata nel pacchetto. Grazie a 'data'field un array di dimensioni max definito, ogni pacchetto potrebbe avere un formato differente. frag_length Frammento dati di lunghezza. E 'utilizzato dalla funzione API responsabile per l'invio dei dati nel processo interno di frammentare pacchetti. SD Fonte endpoint. DE Endpoint di destinazione. CID Cluster ID. PID Profilo ID. MY_known Si specifica se l'indirizzo 16 bit noto prima di inviare il pacchetto. I valori disponibili sono:

0: bit indirizzo sconosciuto-16 1: 16-bit indirizzo conosciuto optare Opzioni per il pacchetto trasmesso. Le opzioni disponibili in ZigBee sono: 0x08: consente la trasmissione multicast. packetID ID utilizzato nel livello di applicazione per identificare il pacchetto. Si riempito dal trasmettitore e viene utilizzato dal ricevitore per la gestione il pacchetto ricevuto e dei frammenti in sospeso. macSL & macSH 64-bit indirizzo MAC sorgente. Si riempito dal ricevitore, e specifica l'indirizzo del nodo che ha consegnato il messaggio. E 'utile in reti multi-hop per sapere quale nodo ha recapitato il messaggio. nas 16-bit Source indirizzo di rete. Si riempito dal ricevitore, e specifica l'indirizzo del nodo che ha consegnato il messaggio. E 'utile in reti multi-hop per sapere quale nodo ha recapitato il messaggio. macOL & macOH po 'di origine MAC Address-64. Si riempito dal ricevitore, e specifica l'indirizzo del nodo che ha inviato in origine la pacchetto. E 'utile in reti multi-hop per sapere quale nodo ha creato e inviato il messaggio. nao 16-bit Origine indirizzo di rete. Si riempito dal ricevitore, e specifica l'indirizzo del nodo che ha inviato in origine il pacchetto. E 'utile in reti multi-hop per sapere quale nodo ha creato e inviato il messaggio. nio Origine Node Identifier. Si riempito dal ricevitore, e specifica l'identificatore di nodo del nodo che ha inviato in origine la pacchetto. E 'utile in reti multi-hop per sapere quale nodo ha creato e inviato il messaggio. Pagina 6 -16 v0.3 Packet Parametri RSSI Received Signal Strength Indicator. Si precisa in dBm il RSSI del pacchetto ricevuto ultimo via RF. In un pacchetto frammentato, contiene la media di tutti i frammenti ricevuti RSSI. address_typeS Indirizzo del tipo usato per inviare il pacchetto dal trasmettitore. ZigBee In, sempre impostato a '1 '. 0: a 16 bit di trasmissione 1: 64-bit di trasmissione typeSourceID Fonte ID del tipo utilizzato per inviare il pacchetto. Si riempito dal trasmettitore e si specifica l'ID a livello applicativo. 0: a 16-bit Network Address ID 1: 64-bit Indirizzo MAC ID 2: Identifier ID Nodo numFragment

Numero del frammento che indica la posizione nel pacchetto frammentato. Si riempito dal trasmettitore per indicare se il mandato frammento il primo, o ultimo secondo. endFragment Specifica se il frammento inviato l'ultimo frammento di un pacchetto. Si riempito dal trasmettitore. tempo Specifica il tempo in cui il primo frammento stato ricevuto. deliv_status sullo stato del recapito restituito durante la trasmissione di un pacchetto. Essa specifica il successo o il fallimento della ragione l'ultimo pacchetto inviato: 0x00: Successo 0x02: insufficienza CCA 0x15: Endpoint di destinazione non valido 0x21: Rete fallimento ACK 0x22: Non riunite alla Rete 0x23: Self-destinatari 0x24: Indirizzo non trovato 0x25: Percorso non trovato discov_status Discovery stats restituito durante la trasmissione di un pacchetto. Essa specifica i processi eseguiti per trovare il nodo di destinazione: 0x00: No Discovery Overhead 0x01: Discovery Indirizzo 0x02: Discovery Route 0x03: Indirizzo e Discovery Route true_naD 16-bit Indirizzo di rete il pacchetto stato consegnato (se di successo). Se non successo, questo indirizzo corrisponde ad indirizzare 16 bit fornite nel pacchetto di trasmissione. tentativi Il numero di tentativi di trasmissione applicazione che ha avuto luogo. 4.2. Massimo carico utile A seconda del modo di trasmissione, un carico utile massimo di dati definita: Figura 4.1: Portata massima dimensione Unicast Trasmissione Encrypted 66Bytes 84Bytes Un-crittografato 74Bytes 92Bytes Pagina 7 -17 v0.3 Packet Parametri 4.2.1. Carico utile massimo Se il carico utile massimo non noto quando si opera in una domanda, pu essere scoperto in tempo reale.

Esempio di utilizzo ^ Ehh [=% JHW3D \% ORDG WHV \ * [HW0D LPXP3D \ \ ORDG WHV% ' Variabili correlate xbeeZB.maxPayloadBytes [0-1] memorizza il carico utile massimo disponibile al momento Pagina 8 -18 v0.3 Guadagno di potenza e sentimento 5. Guadagno di potenza e sentimento Quando si configura un nodo e una rete, un parametro importante correlato con guadagno di potenza e sensibilit. 5.1. Livello di Potenza livello di potenza (dBm) alla quale il modulo RF trasmette condotto di alimentazione. I suoi possibili valori sono: Figura 5.1: Livelli di Potenza di uscita NOTA: XBee-PRO valore massimo 17 dBm e XBee-PRO (Internazionale) +10 dBm NOTA2: dBm una unit standard per misurare il livello di potenza prendendo come riferimento un segnale di 1 mW. Valori espressi in dBm pu essere facilmente convertito in mW utilizzando la formula seguente: MW = 10 ^ (valore dBm/10) Grafica su potenza di trasmissione sono esposti accanto: Figura 5.2: Livello di Potenza di uscita XBee Esempio di utilizzo ^ Ehh [=% VHW3RZHU/HYHO6HW3RZHU2XWSXW/HYHOWRWKHPLQLPXPYDOXH JHW3RZHU/HYHO% = [ehh * HW3RZHU2XWSXW/HYHO ' Variabili correlate xbeeZB.powerLevel memorizza il livello di potenza di uscita selezionata Parametro XBee 0 -8dBm 1 -4dBm 2 -2dBm 3 0dBm 4 2 dBm 0,16 0,4 0,63 1 1,58 -10 -8

-6 -4 -2 0 2 4 XBee Potenza d'uscita mW d Bm Pagina 9 -19 v0.3 Guadagno di potenza e sentimento 5.2. Power Mode Attiva o disattiva la modalit boost. Questa modalit migliora la sensibilit del ricevitore di 1 dB e aumenta la potenza di trasmissione in 2dB. Esempio di utilizzo ^ Ehh [= VHW3RZHU0RGH6HW3RZHU0RGHWRGLVDEOH RRVW0RGH%% % = JHW3RZHU0RGH ehh [* HW3RZHU0RGH ' Variabili correlate xbeeZB.powerMode negozi fischi se la modalit abilitata o disabilitata Figura 5.3: XBee Potenza di uscita di livello (Boost Mode ON) 5.3. Received Signal Strength Indicator Si segnala il Received Signal Strength degli ultimi RF ricevuto dati a pacchetto. Esso indica solo la potenza del segnale della hop scorso, in modo esso non fornisce una misurazione precisa della qualit di un link multihop. Esempio di utilizzo ^ Ehh [=% JHW566, * HWWKH5HFHLYH6LJQDO6WUHQJWK, QGLFDWRU ' Variabili correlate xbeeZB.valueRSSI negozi il RSSI del pacchetto ricevuto l'ultima L'ideale modalit di lavoro sempre la massima copertura con il livello di potenza minima. In tal modo, un compromesso fra la potenza livello e la copertura appare. Ciascuno scenario applicativo sar bisogno di qualche test per trovare la migliore combinazione di entrambi i parametri. 0,25 0,63 1 1,58 2,51 -8 -6 -4 -2 0 2

4 6 XBee Potenza d'uscita mW d Bm Pagina 10 -20 v0.3 Canali Radio 6. Canali Radio XBee modulo ZigBee opera nella banda a 2,4 GHz, quindi ci sono 16 canali che possono essere utilizzati. Questi canali sono spiegate nel capitolo 2. Quando si avvia una rete, il Coordinatore esegue una scansione di energia per trovare il canale con meno energia. Quando si unisce una rete, il router o alla fine dispositivo esegue una scansione per trovare qualsiasi attivo coordinatore o router disponibili ad aderire. Ci sono alcuni parametri coinvolti in questa elezione canale. 6.1. La scansione dei canali Elenco dei canali per la scansione. Se si tratta di un coordinatore, l'elenco dei canali da scegliere prima di iniziare la rete. Se proprio un router / fine dispositivo, l'elenco dei canali per la scansione per trovare un Coordinatore / Router ad aderire alla rete. L'impostazione di questo parametro per 0xFFFF, tutte le canali saranno scansionate. Esempio di utilizzo ^ % = VHW6FDQQLQJ ehh [& KDQQHOV [))[)) 6HWDOOFKDQQHOVWRVFDQ % = JHW6FDQQLQJ ehh [& HWVFDQQHGFKDQQHOOLVW KDQQHOV * ' Variabili correlate xbeeZB.scanChannels [0-1] memorizza l'elenco dei canali per la scansione 6.2. Durata Scan Scansione durata esponente. Se si tratta di un coordinatore, la durata del principio attivo e scansioni energia (per ogni canale) che sono utilizzati per stabilire un canale accettabile e PAN ID per il coordinatore di avvio su. Se un / Router dispositivo finale, la durata di Active Scan (su ogni canale) utilizzato per individuare un coordinatore disponibile / Router di aderire nel corso di associazione. tempo di scansione misurata come segue: (i canali per la scansione) * (2 ^ SD) * 15,36 ms. Esempio di utilizzo: ^ % = VHW'XUDWLRQ ehh [(QHUJLD & KDQQHOV6HWH FKDQQHOVPV SRQHQWVFDQWLPH [ % = JHW'XUDWLRQ ehh [(QHUJLD & KDQQHOV * SRQHQW [HWH ' Variabili correlate xbeeZB.timeEnergyChannel memorizza l'esponente

Pagina 1 -21 v0.3 Connettivit 7. Connettivit 7.1. Topologie ZigBee prevede diverse topologie di creare una rete: Star: una rete a stella un nodo centrale, che collegato a tutti gli altri nodi della rete. Tutti i messaggi viaggio attraverso la centrale nodo. Figura 7.1:-Multipunto topologia punto Albero: una rete albero ha un nodo in alto con un ramo / foglia struttura sottostante. Per raggiungere la sua destinazione, un messaggio viaggia il albero (per quanto necessario) e poi gi l'albero. Figura 7.2: Topologia Tree ZigBee volto a lavorare su stella o albero. Peer-to-Peer topologie non ha senso solo dalla fine del I dispositivi possono dormire. Maglia topologie possono essere trovati interessanti, ma a causa della fine solo dispositivi possono dormire, una maglia reale pu non essere fatto. Per lavorare su un puro (P2P) topologia di rete si consiglia di scegliere un altro protocollo come DigiMesh. Page 2 -22 v0.3 Connettivit 7.2. ZigBee Architettura Ci sono alcuni concetti che vi aiuteranno a comprendere l'architettura ZigBee. Figura 7.4: Stack ZigBee 7.2.1. Oggetti dispositivo ZigBee ZigBee Device Object (ZDO), un protocollo nel protocollo ZigBee, responsabile della gestione dei dispositivi generale, e la sicurezza chiavi e politiche. Il ZDO come un oggetto di apposita domanda che residente su tutti i nodi ZigBee. ZDO ha il suo profilo, nota come Device Profile ZigBee (ZDP), dove alla fine i punti di applicazione e di altri nodi ZigBee pu accedere. ZDO rappresenta il tipo di nodo ZigBee del dispositivo e ha una serie di ruoli di inizializzazione e di comunicazione. 7.2.2. ZDO Management Plane Questo piano si estende l'Application Support Sub-strato (APS) e gli strati NWK, e permette di comunicare con ZDO questi strati Nell'esercizio delle sue funzioni interne. Esso consente inoltre agli ZDO a trattare le richieste da applicazioni di accesso alla rete e la sicurezza funzioni utilizzando messaggi ZDP. 7.2.3. Application Support Sub-strato (APS) La SPA responsabile di comunicare con relativa domanda utilizzando le informazioni endpoint del messaggio. Il messaggio passato attraverso il Punto di accesso Service (SAP) che esiste tra il livello di APS e di ogni applicazione. E 'anche responsabile di mantenere le tabelle vincolanti. 7.2.4. Livello di rete Gestisce l'indirizzamento di rete e routing invocando azioni nel livello MAC. controllato utilizzando le funzioni API come getOwnMac (),

setOwnNetAddress () o getOwnNetAddress () (si veda il capitolo 3 per ulteriori informazioni). Pagina 3 -23 v0.3 Connettivit 7.2.5. Piano di sicurezza Inoltre, un aereo si estende la sicurezza e interagisce con l'APS e strati NWK. Ci fornisce servizi di sicurezza - per esempio, gestione delle chiavi di sicurezza, crittografia dei dati e flusso di decifratura. Si pu utilizzare le funzioni hardware fornite nel nodo di svolgere le funzioni di codificare e decodificare in modo efficiente. controllato utilizzando le funzioni API come encryptionMode (), setLinkKey (), setNetworkKaey () o setEncryptionOptions () (si veda il Capitolo 12 per maggiori informazioni). 7.2.6. Application Framework Il quadro di applicazione (AF) contiene gli oggetti applicazione e facilita l'interazione tra le applicazioni e le APS livello. Un oggetto applicazione interagisce con il livello di APS attraverso un'interfaccia conosciuto come un Service Access Point (SAP). 7.2.7. Service Access Points Un Service Access Point (SAP) implementa una serie di operazioni per passare le informazioni e comandi tra gli strati. 7.2.8. Applicazione degli endpoint Un nodo pu avere diverse applicazioni in esecuzione su di essa (pi sensori), ciascuno dei quali una domanda. Queste istanze domanda su un nodo si dice che siano gli endpoint, dove i messaggi possono avere origine e terminare. Al fine di instradare i messaggi che arrivano al nodo per l'applicazione del caso, ogni applicazione, per il nodo deve essere univocamente identificati e viene dato un indirizzo endpoint. Endpoint indirizzi per le applicazioni utente sono numerate da 1 a 240. Pertanto, per identificare un caso particolare applicazione in una rete ZigBee, l'indirizzo di rete in questione e l'indirizzo endpoint sulla nodo sono necessari da fornire. indirizzo endpoint 255 pu essere utilizzato per trasmettere un messaggio a tutti gli endpoint utente su un nodo. Endpoint indirizzo 0 riservato per una applicazione speciale chiamato ZDO (Oggetti dispositivi ZigBee). 7.2.9. Applicazione profili Un profilo applicativo associato a un particolare profilo di stack e affronti le esigenze di una specifica applicazione o mercato - Per esempio, il ZigBee Alliance ha definito la Casa Controls-Lighting (HCL) profilo applicativo. Essa definisce una serie di dispositivi e funzioni che sono necessarie o utili per il controllo di illuminazione domestica, come gli interruttori, dimmer, occupazione sensori e controllori di carico (che controllano le fonti di luce). La ZigBee in una particolare rete utilizzer la pertinente 'Profile'from Stack ZigBee Alliance. Lo stack profilo determina tipo, forma e caratteristiche della rete, e dipende dal campo di applicazione, ad esempio, il profilo di controlli interni. Pi in particolare, di ogni profilo di applicazione una serie di descrizioni dei dispositivi sono definite, descrivendo i tipi di dispositivi la

supporta profilo. Per il profilo HCL, dispositivi come switch di controllo remoto (un interruttore), sensore di luce monocromatico, Dimmer Telecomando, Occupazione Sensor, commutazione di carico Controller e Dimming Load Controller sono disponibili. Ogni dispositivo in un L'applicazione ha un profilo Device Identifier ad esso associati. Oltre a definire i tipi di dispositivi supportati, il profilo di applicazione specifica anche le informazioni che un dispositivo in grado di generare sulla produzione e pu essere usato come input, insieme con il formato di queste informazioni richiede. I singoli pezzi di informazioni sono chiamati attributi, e le loro possibili valori e il formato o il tipo sono definiti come parte del le descrizioni della periferica nel profilo. Gli attributi sono raggruppati in cluster per il dispositivo, che pu essere sia ingressi o alla resa. 7.2.10. Attributi Ogni elemento di dati che passa tra i dispositivi di una rete ZigBee chiamato un attributo. Ogni attributo ha un proprio unico identificatore. Ad esempio, un dispositivo di commutazione pu avere un attributo con identificatore 'OnOff' il cui valore rappresenta l'azione da effettuate: On (0xFF), Off (0x00), Toggle (0xF0). Pagina 4 -24 v0.3 Connettivit 7.2.11. Cluster Un certo numero di attributi sono raggruppati in un cluster, dove ogni grappolo ha il suo identificatore univoco proprio. Ad esempio, per uno switch HCL Remote Control (SRC) del dispositivo, vi un cluster con il nome identificativo 'OnOffSRC' contenente il attributo OnOff. I cluster possono essere obbligatori o facoltativi per un dispositivo di sostegno. Un profilo applicativo pu avere diversi cluster associato. Ad esempio, l'Home-Lighting Controls (HCL) comprende il profilo OnOffSRC'and 'cluster' ProgramSRC'for un dispositivo di SRC. Il profilo di applicazione definisce quali cluster sono obbligatori e quali cluster sono facoltative per il dispositivo. Gli ammassi supportate da una periferica determinare gli altri dispositivi a cui si pu comunicare. Ad esempio, per i due dispositivi che operano nonch nel monitoraggio e controllo della temperatura, hanno entrambi l'obbligo di supportare cluster compatibile interessati con la temperatura. Il dispositivo sensore deve avere un cluster di output contenente la temperatura controllato ed il controllore deve sostenere un ingresso cluster che pu utilizzare una temperatura di prendere decisioni di controllo. 7.2.12. Obbligatorio A un livello elevato, vincolante il processo di stabilire una relazione tra i nodi che possono comunicare in modo significativo, per esempio, gli interruttori di collegamento con le luci. Si determina quindi la funzionalit complessiva della rete. Le informazioni vengono scambiate come cluster - al fine di vincolata due applicazioni, esse devono essere compatibili con i cluster. Per esempio,

per due applicazioni in diversi nodi per il controllo della temperatura, si deve essere in grado di generare un cluster di output relativi alla temperatura, e l'altro deve essere in grado di consumare come un cluster di ingresso. Il legame tra due applicazioni specificato da: L'indirizzo sorgente di reti ed endpoint della domanda di cui il cluster generata L'indirizzo di destinazione di rete ed endpoint dell'applicazione ricevente Il cluster ID del cluster di essere inviato tra di loro Associazioni sono memorizzati in una tabella vincolante. Questo elenca gli ID di cluster, gli indirizzi di rete e gli endpoint domanda per ciascun associazione. I tipi di legame che possono essere raggiunti sono uno-a-uno, uno-a-molti, molti-auno e molti-a-molti: One-to-one: un legame in cui legato un punto finale a uno (e uno solo) endpoint. Uno-a-molti: un legame in cui vincolato endpoint una fonte a pi di un endpoint di destinazione. Molti-a-uno: un legame in cui pi di una fonte endpoint associato a un endpoint singola destinazione. Molti-a-molti: un legame in cui una fonte endpoint associato pi che a pi di un endpoint di destinazione. Associazioni (le voci della tabella vincolante) possono essere memorizzate sia sulla rete Coordinatore (legame indiretto) o localmente sul nodo la fonte di generazione di cluster di uscita (diretta vincolante). 7.2.13. Waspmote Application Level I concetti sopra illustrato sono usati in un particolare tipo di trasmissione chiamata 'Application Level Affrontare'. Questo tipo di trasmissione utilizzato per inviare dati tra due dispositivi che utilizzano gli endpoint e cluster. Per poter inviare i dati, questa trasmissione utilizza un pacchetto che un po 'diversa dal solito. E si spiega con un esempio in capitolo 7.6, che mostra come inserire le informazioni nel pacchetto inviato come Destinazione Endpoint, Cluster e profili. Per ricevere un pacchetto di questo tipo, un parametro di opzione dovrebbe essere impostata per segnalare al modulo dello speciale pacchetto in arrivo. A attivare questa opzione: Esempio di utilizzo: ^ % = VHW ehh [$ 3, [RSWLRQV6HWH SOLFLWIUDPHXVHGLQ SSOLFDWLRQ $ / $ HYHO GGUHVVLQJ ' Pagina 5 -25 v0.3 Connettivit 7.3. Affrontare ZigBee ZigBee dispositivo supporta l'indirizzamento e livello di applicazione di indirizzamento. Dispositivo di indirizzamento di specificare l'indirizzo di destinazione il dispositivo di un pacchetto destinato a. livello di applicazione indirizzamento indica una domanda destinatario particolare, noto come ZigBee endpoint, insieme a un campo di tipo di messaggio chiamato ID Cluster. 7.3.1. Dispositivo di indirizzamento protocollo ZigBee specifica due tipi di indirizzo: 16-bit e 64-bit gli indirizzi.

16-bit Network Address: A 16-bit Network Address assegnato ad un nodo quando si entra in una rete. L'indirizzo di rete univoco a ogni nodo della rete, ma pu cambiare. ZigBee richiede che i dati da inviare al bit di indirizzi di rete-16 di la destinazione del dispositivo. Ci richiede l'indirizzo di rete bit-16 da scoprire prima di trasmettere i dati, di esecuzione un processo chiamato 'Indirizzo Discovery'. 64-bit Indirizzo: Ogni nodo contiene un 64-bit indirizzo univoco. L'indirizzo a 64 bit, identifica in modo univoco un nodo ed quindi permanente. E 'assegnato dal produttore e non pu essere modificato. 7.3.2. Application Layer Indirizzamento Gli strati di applicazioni ZigBee definire endpoint e identificatori cluster (cluster ID) che sono usati per affrontare i singoli servizi o applicazioni su un dispositivo. Un endpoint un compito o di un'applicazione che viene eseguita su un dispositivo ZigBee, simile a una porta TCP. Ogni ZigBee dispositivo pu supportare uno o pi endpoint. Cluster ID definire una particolare funzione o azione su un dispositivo. Per esempio: nel ZigBee casa controlla l'illuminazione profilo, Cluster ID dovrebbe includere azioni come "TurnLightOn", "TurnLightOff", "DimLight", ecc 7.4. Connessioni Tutti i pacchetti di dati vengono affrontate utilizzando sia a livello di applicazione e dispositivo di indirizzamento campi. I dati possono essere inviati in una trasmissione, o unicast trasmissione. 7.4.1. Trasmissione trasmissioni radio, nelle protocollo ZigBee sono destinate ad essere propagato su tutta la rete in modo che tutti nodi di ricevere la trasmissione. Per fare questo, tutti i dispositivi che ricevono una trasmissione broadcast ritrasmetter il pacchetto 3 volte. Ogni nodo che trasmette la trasmissione creer anche una voce in una tavola di trasmissione broadcast locale. Questa voce utilizzata per mantenere traccia di ogni pacchetto broadcast ricevuti per garantire che i pacchetti non sono continuamente trasmessi. Per ogni trasmissione broadcast, il ZigBee deve riservare lo spazio per un buffer di copia dei dati a pacchetto. Dal momento che le trasmissioni broadcast sono ritrasmessi da ogni dispositivo in rete, i messaggi broadcast deve essere usato con parsimonia. trasmissioni broadcast sono trasmesse mediante un indirizzo di bit 64 di 0x0000FFFF. Ogni modulo RF del PAN accetter un pacchetto che contiene una trasmissione di indirizzo. Quando configurato per operare in modalit broadcast, ricevendo i moduli non inviare ACK (Ringraziamenti). Vedere esempi nel capitolo 7.6 per ulteriori informazioni. 7.4.2. Unicast Trasmissioni unicast ZigBee sono sempre rivolta al fatto che l'indirizzo bit 16 del dispositivo di destinazione. Tuttavia, solo il 64-bit indirizzo di un dispositivo permanente dovuta al bit indirizzo 16 pu cambiare. Di conseguenza, i dispositivi ZigBee possono impiegare rete scoperta indirizzo per identificare il 16-bit attuale indirizzo che corrisponde a un 64-bit indirizzo conosciuto, e la scoperta di rotta stabilire una rotta. Vedere esempi nel capitolo 7.6 per ulteriori informazioni. Indirizzo di rete Discovery

Pagina 6 -26 v0.3 Connettivit Le trasmissioni di dati sono sempre inviati al po 'di indirizzi di rete-16 del dispositivo di destinazione. Tuttavia, poich il 64-bit indirizzo unico per ogni dispositivo ed generalmente noto, i dispositivi ZigBee deve scoprire l'indirizzo di rete che stata assegnato a un particolare dispositivo quando si iscritto al PAN prima di poter trasmettere dati. Per fare questo, il dispositivo che avvia un trasmissione invia un indirizzo di rete di trasmissione broadcast scoperta tutta la rete. Questo pacchetto contiene il 64-bit indirizzo del dispositivo l'iniziatore deve inviare i dati. I dispositivi che ricevono questo controllo di trasmissione di programmi di vedere se il loro indirizzo bit 64 partite l'indirizzo a 64-bit oggetto della trasmissione broadcast. Se gli indirizzi corrispondono, il dispositivo invia un pacchetto di risposta al iniziatore, fornendo l'indirizzo di rete del dispositivo con l'abbinamento a 64-bit indirizzo. Quando questa risposta viene ricevuta, il promotore pu quindi trasmettere i dati. Discovery Route ZigBee impiega maglia di routing per stabilire un percorso tra la sorgente e il dispositivo di destinazione. Mesh permette di routing pacchetti di dati di attraversare pi nodi (hop) in una rete per instradare i dati dalla sorgente alla destinazione. Router e coordinatori possono partecipare nella creazione di rotte tra la sorgente ei dispositivi di destinazione utilizzando un processo chiamato percorso scoperta. Il processo di scoperta percorso basato sulla AODV (Ad-hoc On demand Distance Vector Routing) protocollo. Tentativi e ACK ZigBee include pacchetti di riconoscimento sia a Mac e Application Support (APS) strati. Quando i dati vengono trasmessi a un dispositivo remoto, pu pi attraversare il luppolo per raggiungere la destinazione. Poich i dati vengono trasmessi da un nodo al suo prossimo, un pacchetto di riconoscimento (ACK) trasmessa nella direzione opposta per indicare che la trasmissione era ricevuto correttamente. Se l'ACK non viene ricevuto, il dispositivo che trasmette ritrasmetter i dati fino a 4 volte. Questo ACK chiamato il riconoscimento livello MAC. Inoltre, il dispositivo che ha originato la trasmissione si aspetta di ricevere un pacchetto di riconoscimento (ACK) dal destinazione del dispositivo. Questo ACK attraverser la stessa strada che i dati attraversato, ma in senso opposto. Se la cedente non riesce a ricevere questo ACK, sar ritrasmettere i dati, fino a 2 volte fino a quando viene ricevuto un ACK. Questo ACK chiamato il ZigBee APS strato di riconoscimento. 7.4.3. Molti a uno Dal momento che le trasmissioni unicast ZigBee pu richiedere una certa combinazione di scoperta indirizzo di rete di trasmissione e / o della via scoperta, con un numero elevato di dispositivi unicasting dati a un singolo gateway o il raccoglitore dispositivo potrebbe non essere la soluzione migliore

per reti di grandi dimensioni. Per ovviare a questo potenziale problema, ZigBee, contiene disposizioni per supportare molti-a-uno delle trasmissioni, in cui molti dispositivi in una rete possono trasmettere i dati ad un gateway centrale o collettore dispositivo senza creare una marea di scoperte percorso. A ottenere questo risultato, il dispositivo invia un collezionista di trasmissione di periodico che si identifica come un dispositivo di raccolta. Tutti gli altri dispositivi che ricevono questa trasmissione broadcast creare una voce di tabella di routing inverso torna al collettore. Quando il telecomando dispositivi di trasmissione dei dati al collettore, in primo luogo trasmettere un frame record di percorso (che registra l'intero percorso dal telecomando a il collettore) prima di trasmettere i dati. Il telaio record itinerario prevede il collettore con tutto il percorso di ciascuno a distanza riceve i dati. Il collettore pu utilizzare le informazioni nel record frame rotta per memorizzare percorsi di ritorno. Questo processo in modo efficace stabilisce le rotte tra il collettore e tutti i dispositivi della rete utilizzando una singola trasmissione broadcast invece di molti percorso scoperte. 7.4.4. Parametri coinvolti Ci sono alcuni parametri coinvolti in queste connessioni ha spiegato Unicast massima Luppolo Imposta la unicast limite massimo di luppolo e il timeout unicast. Il timeout calcolato come: (50 * NH) 100 ms. Il valore predefinito di 0x1E (1,6 secondi) sufficiente a percorrere circa 8 luppolo. Esempio di utilizzo: ^ Ehh [=% VHW0D [+ 8QLFDVW RSV [6HWPD [XQLFDVWKRSVOLPLW Ehh [=% JHW0D [8QLFDVW + * RSV HWPD [XQLFDVWKRSVOLPLW ' Pagina 7 -27 v0.3 Connettivit Variabili correlate xbeeZB.maxUnicastHops memorizza l'unicast limite max luppolo Broadcast massima Luppolo Essa fissa il numero massimo di luppolo per ogni trasmissione di dati trasmessi. Esempio di utilizzo: ^ Ehh [=% VHW0D [URDGFDVW% [RSV + 6HWPD [EURDGFDVWKRSVOLPLW Ehh [=% JHW0D [% URDGFDVW + * RSV HWPD [EURDGFDVWKRSVOLPLW ' Variabili correlate xbeeZB.maxBroadcastHops memorizza la trasmissione max luppolo limite Notifica di aggregazione Routing (molti a uno) Tempo tra via broadcast aggregato messaggi consecutivi. Utilizzando questo parametro, in un unico trasmissione sar abilitato. Esempio di utilizzo: ^

% = VHW ehh [$ JJUHJDWH1RWLFDWLRQ [6HWWLPHEHWZHHQDJJUHJDWHPHVVDJHV % = JHW ehh [$ JJUHJDWH1RWLFDWLRQ * HWWLPHEHWZHHQDJJUHJDWHPHVVDJHV ' Variabili correlate xbeeZB.aggregateNotification magazzini i tempi tra i messaggi consecutivi 7.5. Scoperta e ricerca Nodi Scoperta funzione nodi usato per scoprire e segnalare tutti i moduli del proprio canale di corrente di funzionamento e PAN ID. 7.5.1. Struttura utilizzata nei Discovery Una struttura chiamata "nodo" stato creato per memorizzare le informazioni comunicate dagli altri nodi, una struttura chiamata 'nodo' ha stato creato. Questa struttura ha dei campi successiva: uint8_t MY [2]; / / 16b Network Address uint8_t SH [4]; / / 32b Mac Fonte Bassa uint8_t SL [4]; / / 32b Mac Higher Source NI char [20]; / / Nodo Identifier uint8_t PMY [2]; / / 16b Parent Network Address DT uint8_t; / / Tipo di dispositivo: 0 End = 1 = 2 = Router Coord ST uint8_t; / / Stato: Riservato uint8_t PID [2]; / / Profilo ID uint8_t MID [2], / / ID Produttore uint8_t RSSI; / / Ricezione della potenza del segnale MY 16-bit Network Address del modulo riportato. SH & SL 64-bit MAC Address Fonte del modulo riportato. Pagina 8 -28 v0.3 Connettivit NI Nodo Identificatore del modulo, PMY Parent po 'di indirizzi di rete-16. Essa specifica l'indirizzo di rete bit-16 del suo genitore. DT Tipo di dispositivo. Si specifica se il nodo un coordinatore, router o dispositivo finale. ST Status. Riservato da xbeeZB. PID Profilo ID. Profilo ID utilizzato per affrontare a livello di applicazione. MID

Produttore ID. ID stabiliti dal costruttore per identificare il modulo. RSSI Non torn in ZigBee. Per memorizzare i nodi trovati, un array chiamato 'scannedBrothers'has stato creato. Si tratta di una matrice di strutture 'nodo'. Una chiamata costante 'MAX_BROTHERS definito per specificare il numero massimo di fratelli trovati. Una variabile chiamata 'totalScannedBrothers' definito per indicare il numero di fratelli scoperto. Utilizzando questa variabile come l'indice in 'scannedBrothers'array le permette di leggere le informazioni scoperte su ciascun nodo. Esempio di utilizzo: ^ Ehh [=% VFDQ1HWZRUN'LVFRYHU QRGHV \ ' variabili relative xbeeZB.totalScannedBrothers memorizza il numero di fratelli scoperto. xbeeZB.scannedBrothers Node'structure array ' negozi, che in ogni posizione le informazioni correlate a trovare ogni nodo. Per esempio, xbeeZB.scannedBrothers [0]. DT dovrebbe lasciare il dispositivo del primo tipo nodo trovato. 7.5.2. Ricerca nodi Un'altra possibilit di scoprire un nodo alla ricerca di un nodo specifico. Questa ricerca si basa sull'utilizzo della identificatore di nodo. NI del nodo di scoprire viene usato come input nella funzione API responsabile di questa ricerca. 16bit e 64 bit gli indirizzi delle nodo cercato saranno memorizzati nel pacchetto invia come input. Esempio di utilizzo ^ SDFNHW; HHSDTBVHQW% Ehh [=% QRGH6HDUFK IRUUHVW1RGHSDTBVHQW LVWKHOHQJWKRIWKHVWULQJ ' variabili relative paq_sent Memorizza il 16-bit e 64 bit gli indirizzi delle ricerche. Per esempio paq_sent-> MY [0] & paq_sent-> MY [1] memorizza i bit NA 16 del nodo cercato. Pagina 9 -29 v0.3 Connettivit 7.5.3. Nodo scoperta di un nodo specifico Quando si esegue un nodo Discovery tutti i nodi rispondere. Se solo un nodo voluto rispondere, c' un'altra possibilit per trovarlo. Se il nodo Identifier noto, una scoperta nodo utilizzando la sua NI come input pu essere eseguito. Esempio di utilizzo ^ Ehh [= VFDQ1HWZRUN% IRUUHVW1RGH3HUIRUPVD1'WRWKDWVSHFLFQRGH ' variabili relative

xbeeZB.totalScannedBrothers memorizza il numero di fratelli scoperto. In questo caso il suo valore sar '1 ' xbeeZB.scannedBrothers Node'structure array ' che memorizza in ogni posizione le informazioni relative a fondare ogni nodo. Questo immagazziner nella prima posizione della matrice delle informazioni relative al fratello trovati 7.6. Invio di dati L'invio di dati un processo complesso che ha bisogno di strutture specifiche e le funzioni da svolgere. A causa del limite massimo carichi utili (vedi capitolo 3) un pacchetto di solito ha bisogno di essere frammentato. Per gestire questo processo, un colpo di testa di applicazione si stato creato. Questa intestazione richiesta viene inviata all'interno di RF dati, seguendo le API Frame Structure. 7.6.1. API struttura del frame La struttura utilizzata per trasmettere i pacchetti via radiofrequenza viene specificato dai moduli utilizzati. L'intestazione domanda stata aggiunta a quella definito strutturato come illustrato di seguito: Figura 7.6: Struttura Frame API 7.6.2. Application Header Questa intestazione domanda sia occupato dal trasmettitore (di funzionamento interno, API) e viene utilizzato dal ricevitore per trattare il pacchetto o frammento. E 'inviato nel campo di dati, quindi il carico utile massimo ridotto a una lunghezza variabile (a seconda del tipo di sorgente ID scelta). Figura 7.7: Header Application Pagina 10 -30 v0.3 Connettivit Per aggiungere un certo livello funzionalit dell'applicazione per il ricevitore, alcuni campi sono stati aggiunti come ID applicazione o sorgente ID. Fonte ID identifica il nodo di origine, che ha creato il pacchetto. E 'utile in reti multi-hop, per identificare il nodo origine ad una risposta. Per identificare questo nodo, tre gli ID di origine possono essere scelti: MAC Address: 64-bit Source MAC Address Indirizzo di rete: Network Address bit-16 Node Identifier: byte max stringa-20 NI I diversi settori di questa intestazione e la sua struttura all'interno della cornice API struttura sono: ID applicazione: si specifica l'ID a livello applicativo. Esso consente di identificare un pacchetto unico fra diversi pacchetti in ricevitore. Frammento Numero: specifica la posizione del frammento nel suo pacchetto. Il primo frammento indica il numero totale di frammenti del pacchetto. Primo Frammento Indicatore [#]: campo opzionale che incluso nel primo frammento per indicare che il primo frammento. Fonte tipo ID: specifica la fonte ID tipo scelto. Le possibilit sono MAC, 16-bit o NI. Fonte ID: specifica la fonte ID del nodo di origine. Esso legato al campo precedente. Dati: memorizza i dati inviati in ogni frammento o pacchetto. 7.6.3. Frammentazione

Quando la lunghezza dei dati di un pacchetto supera il carico utile massimo, il pacchetto deve essere frammentato per raggiungere la destinazione. Se il pacchetto non frammentato, il modulo lo scarto prima della trasmissione. NOTA: a causa di memoria limitata in Waspmote, la massima raccomandata di dati in un pacchetto di 1500 byte (da frammentato). 7.6.4. Struttura packetXBee E 'la struttura utilizzata per il pacchetto da inviare. stato spiegato nel capitolo 3. Il processo di inviare un pacchetto spiegato successiva: 1. struttura 'packetXBee'is Un creata per contenere il pacchetto da inviare. 2. Tale struttura viene riempita con i dati corretti nei campi corrispondenti. 3. La funzione API responsabile di invio dei dati viene chiamata, utilizzando la struttura creata in precedenza come input. La funzione API si prende cura di tutto il resto del processo, restituendo un successo o il fallimento del processo. 7.6.5. Esempi Per semplificare gli esempi e le rende facili da leggere, ci sono alcune linee che non funzionano esattamente in C / C + +. L'invio di un byte di dati a pacchetto-50. Unicast. 16-bit Network Address Unknown. Fonte po NA 16-Type ID. ^ SDFNHW; HHSDTBVHQWFUHDWHSDFNHWWRVHQG% FKDUGDWD SDTBVHQW SDFNHW; HHFDOORFVL HRISDFNHW]%; HH% SDTBVHQW! PRGH 81, & $ 67VHW8QLFDVWPRGH SDTBVHQW! 0 <BNQRZQ VHWELW1 $ XQNQRZQ SDTBVHQW! SDFNHW, '[VHW,' DSSOLFDWLRQOHYHO SDTBVHQW! RSW [VHWRSWLRQV1RRSWLRQVHOHFWHG IRULQWF FF6HWWKHGDWD ^ GDWL> F @ $ ' % = VHW2ULJLQ3DUDPVSDTBVHQW ehh [ 0 <B7 <3 ( % = VHW'HVWLQDWLRQ3DUDPVSDTBVHQW ehh [ $) GDWL 0 $ & B7 <3 ( '$ 7 $ B $ 62 / 87% ( Ehh% = VHQG [VWDWH; HHSDTBVHQW% & DOOIXQFWLRQUHVSRQVLEOHWRVHQGGDWD LIVWDWH ^

Pagina 1 -31 v0.3 Connettivit GHOLYHU \ SDTBVHQW BVWDWXV! GHOLYBVWDWXV GLVFRYHU \ SDTBVHQW BVWDWXV! GLVFRYBVWDWXV SDTBVHQW GHOLYHUHGBDGGUHVV! WUXHBQD ' UHWULHV SDTBVHQW! UHWULHV ' IUHHSDTBVHQW SDTBVHQW 18 / / ' Il campo di dati nel frame API generato dalla funzione 'sendXBee'is: Figura 7.8: Header Application API L'invio di un byte di dati a pacchetto-50. Unicast. 16-bit di rete indirizzo noto. 64-bit MAC sorgente tipo ID. ^ SDFNHW; HHSDTBVHQWFUHDWHSDFNHWWRVHQG% FKDUGDWD SDTBVHQW SDFNHW; HHFDOORFVL HRISDFNHW]%; HH% SDTBVHQW! PRGH 81, & $ 67VHW8QLFDVWPRGH SDTBVHQW! 0 <BNQRZQ VHWELW1 $ NQRZQ SDTBVHQW! SDFNHW, '[VHW,' DSSOLFDWLRQOHYHO SDTBVHQW! RSW [VHWRSWLRQV1RRSWLRQVHOHFWHG IRULQWF FF6HWWKHGDWD ^ GDWL> F @ $ ' % = VHW2ULJLQ3DUDPVSDTBVHQW ehh [ $) $ 0 $ & B7 <3 ( % = VHW'HVWLQDWLRQ3DUDPVSDTBVHQW ehh [ GDWD0 <B7 <3 ( % = VHW'HVWLQDWLRQ3DUDPVSDTBVHQW ehh [ $) GDWD0 $ & B7 <3 ('$ 7 $ B $ 62 / 87% ( Ehh% = VHQG [VWDWH; HHSDTBVHQW% & DOOIXQFWLRQUHVSRQVLEOHWRVHQGGDWD LIVWDWH ^ GHOLYHU \ SDTBVHQW BVWDWXV! GHOLYBVWDWXV GLVFRYHU \ SDTBVHQW BVWDWXV! GLVFRYBVWDWXV SDTBVHQW GHOLYHUHGBDGGUHVV! WUXHBQD ' UHWULHV SDTBVHQW! UHWULHV ' IUHHSDTBVHQW SDTBVHQW 18 / / ' Il campo di dati nel frame API generato dalla funzione 'sendXBee'will essere: Figura 7.9: Header Application API L'invio di un byte di dati a pacchetto-50. Broadcast. Nodo di origine identificatore di tipo ID. ^ SDFNHW; HHSDTBVHQWFUHDWHSDFNHWWRVHQG% FKDUGDWD

SDTBVHQW SDFNHW; HHFDOORFVL HRISDFNHW]%; HH% SDTBVHQW! PRGH% 52 $ '& $% 67VHW URDGFDVWPRGH SDTBVHQW! 0 <BNQRZQ VHWELW1 $ XQNQRZQ SDTBVHQW! SDFNHW, '[VHW,' DSSOLFDWLRQOHYHO SDTBVHQW! RSW [VHWRSWLRQV1RRSWLRQVHOHFWHG Page 2 -32 v0.3 Connettivit IRULQWF FF6HWWKHGDWD ^ GDWL> F @ $ ' Ehh [=% VHW2ULJLQ3DUDPVSDTBVHQW IRUUHVW1RGH1, B7 <3 ( Ehh [=% VHW'HVWLQDWLRQ3DUDPVSDTBVHQW )))) GDWD0 $ & B7 <3 ('$ 7 $% B 62 / 87 $ ( Ehh% = VHQG [VWDWH; HHSDTBVHQW% & DOOIXQFWLRQUHVSRQVLEOHWRVHQGGDWD LIVWDWH ^ GHOLYHU \ SDTBVHQW BVWDWXV! GHOLYBVWDWXV GLVFRYHU \ SDTBVHQW BVWDWXV! GLVFRYBVWDWXV SDTBVHQW GHOLYHUHGBDGGUHVV! WUXHBQD ' UHWULHV SDTBVHQW! UHWULHV ' IUHHSDTBVHQW SDTBVHQW 18 / / ' Il campo di dati nel frame API generato dalla funzione 'sendXBee'will essere: Figura 7,10: Header Application API L'invio di un byte di dati a pacchetto-200. Unicast 16-bit Network Address Unknown. 16-bit Tipo origine ID. ^ SDFNHW; HHSDTBVHQWFUHDWHSDFNHWWRVHQG% FKDUGDWD SDTBVHQW SDFNHW; HHFDOORFVL HRISDFNHW]%; HH% SDTBVHQW! PRGH 81, & $ 67VHW8QLFDVWPRGH SDTBVHQW! 0 <BNQRZQ VHWELW1 $ XQNQRZQ SDTBVHQW! SDFNHW, '[VHW,' DSSOLFDWLRQOHYHO SDTBVHQW! RSW [VHWRSWLRQV1RRSWLRQVHOHFWHG IRULQWF FF6HWWKHGDWD ^ GDWL> F @ $ ' % = VHW2ULJLQ3DUDPVSDTBVHQW ehh [ 0 <B7 <3 ( % = VHW'HVWLQDWLRQ3DUDPVSDTBVHQW ehh [ $) GDWD0 $ & B7 <3 ('$ 7 $ B $ 62 / 87% ( Ehh% = VHQG [VWDWH; HHSDTBVHQW% & DOOIXQFWLRQUHVSRQVLEOHWRVHQGGDWD LIVWDWH

^ GHOLYHU \ SDTBVHQW BVWDWXV! GHOLYBVWDWXV GLVFRYHU \ SDTBVHQW BVWDWXV! GLVFRYBVWDWXV SDTBVHQW GHOLYHUHGBDGGUHVV! WUXHBQD ' UHWULHV SDTBVHQW! UHWULHV ' IUHHSDTBVHQW SDTBVHQW 18 / / ' A causa della grande quantit di dati, il pacchetto deve essere frammentato prima di essere inviati. Il carico utile massimo di dati 74Bytes (Vedi capitolo 3) e l'intestazione applicazione occuper un massimo di 6 byte (nel primo frammento), quindi ci saranno tre frammenti, inviando 68Bytes (dati) nel primo frammento, 69Bytes (dati) nel secondo frammento e 63Bytes (dati) nel terzo frammento. Pagina 3 -33 v0.3 Connettivit Figura 7.11: Header Application API L'invio di un byte di dati a pacchetto-50. Application Layer Indirizzi. 64-bit Tipo origine ID Figura 7.12: Frame API Struttura estesa Quando un'applicazione che utilizza il livello di indirizzamento, i moduli di utilizzare la struttura sopra di inviare i pacchetti. intestazione delle applicazioni I dati inseriti in campo RF come dispositivo di indirizzamento esempi. ^ SDFNHW; HHSDTBVHQWFUHDWHSDFNHWWRVHQG% FKDUGDWD SDTBVHQW SDFNHW; HHFDOORFVL HRISDFNHW]%; HH% SDTBVHQW! PRGH & / 867 ($ 5VHW SSOLFDWLRQ / D \ HU $ GGUHVVLQJ SDTBVHQW! 6 'VHWVRXUFHHQGSRLQW [ SDTBVHQW! '([VHWGHVWLQDWLRQHQGSRLQW SDTBVHQW! &, '^ [' VHW [& OXVWHU, GHQWLHU SDTBVHQW! 3, '^ [' VHW3UROH [, ' SDTBVHQW! 0 <BNQRZQ VHWELW1 $ NQRZQ SDTBVHQW! SDFNHW, '[VHW,' DSSOLFDWLRQOHYHO SDTBVHQW! RSW [VHWRSWLRQV1RRSWLRQVHOHFWHG IRULQWF FF6HWWKHGDWD ^ GDWL> F @ $ ' % = VHW2ULJLQ3DUDPVSDTBVHQW ehh [ $) $ 0 $ & B7 <3 ( % = VHW'HVWLQDWLRQ3DUDPVSDTBVHQW ehh [ GDWD0 <B7 <3 ('$ 7 $% B 62 / 87 $ ( % = VHW'HVWLQDWLRQ3DUDPVSDTBVHQW ehh [ $) GDWD0 $ & B7 <3 ('$ 7 $ B $ 62 / 87% ( Ehh% = VHQG [VWDWH; HHSDTBVHQW% & DOOIXQFWLRQUHVSRQVLEOHWRVHQGGDWD LIVWDWH ^

GHOLYHU \ SDTBVHQW BVWDWXV! GHOLYBVWDWXV GLVFRYHU \ SDTBVHQW BVWDWXV! GLVFRYBVWDWXV SDTBVHQW GHOLYHUHGBDGGUHVV! WUXHBQD ' UHWULHV SDTBVHQW! UHWULHV ' Pagina 4 -34 v0.3 Connettivit IUHHSDTBVHQW SDTBVHQW 18 / / ' & RGH6LPSOLFDWLRQ $ Uud \ VPXVWEHOOHGRQHE \ RQH Quando un'applicazione che utilizza il livello di indirizzamento, sia l'indirizzo di destinazione (MAC & NA) e l'indirizzo dell'applicazione (SD, DE, CID, PID) dovrebbe essere impostato nel pacchetto. Un indirizzamento esplicito frame viene inviato quando si utilizza a livello di applicazione indirizzamento che un po 'diverso da trasmettere normale telaio e comprende tutti i campi di cui sopra. Il campo di dati nel frame API generato dalla funzione 'sendXBee'will essere: Figura 7.13: Header Application API 7.7. Ricezione di dati Ricezione di dati un processo complesso che necessita di alcune strutture speciali da realizzare. Queste operazioni sono trasparenti per il utente API, quindi sta per essere spiegato le informazioni necessarie per essere in grado di leggere correttamente un pacchetto ricevuto. Prima di ogni pacchetto stato ricevuto, un array multidimensionale di 'Matrix' puntatori strutture, una serie di 'indice' strutture una serie di 'packetXBee' strutture puntatori e puntatori sono creati. La dimensione di queste matrici definito da alcune costanti in compilazione tempo, quindi necessario un adeguato il suo valore per ogni scenario prima di compilare il codice: MAX_FINISH_PACKETS: massimo numero di pacchetti finiti in attesa del trattamento. Essa specifica la dimensione della matrice di prodotti finiti pacchetti. MAX_FRAG_PACKETS: numero massimo di frammenti per pacchetto. Essa specifica il numero di colonne nel multidimensionale serie di frammenti pendenti. Il numero di righe specificato da MAX_FINISH_PACKETS. Quando un pacchetto o di un frammento viene ricevuto, l'algoritmo utilizzato in funzione API reception : 1. Controlla se il frammento un nuovo pacchetto o appartiene a un pacchetto esistente. Se si tratta di un nuovo pacchetto, una struttura 'index'is creato e collegati l'indice dell'array creato in precedenza. Le informazioni di livello applicativo memorizzato in tale struttura. Se si appartiene a un pacchetto esistente, non memorizza alcuna informazione. 2. 'Crea una struttura di matrice' e link per la posizione corrispondente nella matrice array multidimensionali. La posizione calcolato sulla base delle informazioni memorizzate nel 'index'array. 3. Conservare i dati nella posizione corrispondente della matrice.

4. Controllare se il pacchetto completa. Se il pacchetto completo, un 'packetXBee'structure viene creato e collegato al corrispondente posizione nella matrice di pacchetti finito. I frammenti sono classificati in ordine diverso e copiato tale struttura, come l'applicazione livello di informazione. Il 'index' e la riga di 'Matrix', sono liberati, per liberare memoria. Se il pacchetto non completo, va alla prossima passo. 5. Uscire dalla funzione. Quando un pacchetto viene ricevuto via RF, il modulo invier i dati tramite UART, quindi si consiglia di verificare periodicamente se i dati disponibile. La funzione API responsabile della lettura dei pacchetti in grado di leggere pi di un frammento, ma il modulo XBee pu il suo buffer overflow, per cui si consiglia di leggere i pacchetti uno per uno. Quando un pacchetto completato, sar memorizzato in un array pacchetti finito chiamato 'packet_finished'. Questa matrice deve essere utilizzato dal applicazione per leggere il pacchetto ricevuto. Una variabile chiamata 'pos'is utilizzato per sapere che ci sono in attesa di pacchetti ricevuti se: se' pos '= 0, non ci sono pacchetti disponibili; se 'pos'> 0, ci saranno tanti pacchetti in attesa di come il suo valore (pos = 3, 3 pacchetti in corso). Pagina 5 -35 v0.3 Connettivit 7.7.1. Esempi Ricevuto addii dati a pacchetto-50. Unicast. Fonte po NA 16-Type ID ^ Ehh% = WUHDW'DWD5HDGDSDFNHWZKHQ [VWDWH; HHKDVQRWLFHGLWWRXV% Ehh% = SRV [LI! ^ $ YDLODEOHLQIRWKHUHDUHPRUHDYDLODEOHLQIRUPDWLRQ QHWZRUNBDGGUHVV> @ SDFNHWBQLVKHG [ehh> = SRV% @! QD6> @ QHWZRUNBDGGUHVV> @ SDFNHWBQLVKHG [ehh> = SRV% @! QD6> @ ' ' Informazioni disponibili packet_finished [xbeeZB.pos-1] -> NAS: memorizza i bit di rete indirizzo-16 del mittente. packet_finished [xbeeZB.pos-1] -> macSH: memorizza i 32 bit superiore del mittente MAC. packet_finished [xbeeZB.pos-1] - macSL>: memorizza i 32 bit pi bassi del mittente MAC. packet_finished [xbeeZB.pos-1] -> Nao: memorizza i bit di indirizzi di rete-16 del mittente origine. packet_finished [xbeeZB.pos-1] -> Mode: memorizza il tipo di trasmissione. Unicast in questo caso. packet_finished [xbeeZB.pos-1] -> dati: memorizza i dati ricevuti. Dimensione massima 'MAX_DATA'. packet_finished [xbeeZB.pos-1] -> packetID: memorizza il pacchetto ID del messaggio ricevuto. 0x52 in questo caso. packet_finished [xbeeZB.pos-1] -> typeSourceID: memorizza l'ID del tipo di fonte utilizzata nel messaggio. Dopo aver ricevuto il pacchetto, a causa vi un solo frammento, sar completata, cosi 'variabile pos'will essere maggiore di zero. Questo

variabile utilizzato per indicizzare l'array in cui memorizzato il pacchetto ricevuto. Le informazioni che stata conservata indicato nel esempio. Ricevuto byte di dati a pacchetto-50. Unicast. 64-bit indirizzo MAC sorgente tipo ID ^ Ehh% = WUHDW'DWD5HDGDSDFNHWZKHQ [VWDWH; HHKDVQRWLFHGLWWRXV% Ehh% = SRV [LI! ^ $ YDLODEOHLQIRWKHUHDUHPRUHDYDLODEOHLQIRUPDWLRQ VRXUFHBDGGUHVV> @ SDFNHWBQLVKHG [ehh> = SRV% @! PDF6 +> @ VRXUFHBDGGUHVV> @ SDFNHWBQLVKHG [ehh> = SRV% @! PDF6 +> @ ' ' Informazioni disponibili packet_finished [xbeeZB.pos-1] -> NAS: memorizza i bit di rete indirizzo-16 del mittente. packet_finished [xbeeZB.pos-1] -> macSH: memorizza i 32 bit superiore del mittente MAC. packet_finished [xbeeZB.pos-1] - macSL>: memorizza i 32 bit pi bassi del mittente MAC. packet_finished [xbeeZB.pos-1] -> macOH: memorizza i 32 bit superiore del mittente origine MAC. packet_finished [xbeeZB.pos-1] - macOL>: memorizza i 32 bit pi bassi del mittente origine MAC. packet_finished [xbeeZB.pos-1] -> Mode: memorizza il tipo di trasmissione. Unicast in questo caso. packet_finished [xbeeZB.pos-1] -> dati: memorizza i dati ricevuti. Dimensione massima 'MAX_DATA'. packet_finished [xbeeZB.pos-1] -> packetID: memorizza il pacchetto ID del messaggio ricevuto. 0x52 in questo caso. packet_finished [xbeeZB.pos-1] -> typeSourceID: memorizza l'ID del tipo di fonte utilizzata nel messaggio. Dopo aver ricevuto il pacchetto, a causa vi un solo frammento, sar completata, cosi 'variabile pos'will essere maggiore di zero. Questo variabile utilizzato per indicizzare l'array in cui memorizzato il pacchetto ricevuto. Le informazioni che stata conservata indicato nel esempio. Pagina 6 -36 v0.3 Connettivit Ricevuto byte di dati a pacchetto-50. Broadcast. Nodo di origine identificatore di tipo ID ^ Ehh% = WUHDW'DWD5HDGDSDFNHWZKHQ [VWDWH; HHKDVQRWLFHGLWWRXV% Ehh% = SRV [LI! ^ $ YDLODEOHLQIRWKHUHDUHPRUHDYDLODEOHLQIRUPDWLRQ VRXUFHBDGGUHVV> @ SDFNHWBQLVKHG [ehh> = SRV% @! PDF6 +> @ VRXUFHBDGGUHVV> @ SDFNHWBQLVKHG [ehh> = SRV% @! PDF6 +> @ ' ' Informazioni disponibili packet_finished [xbeeZB.pos-1] -> NAS: memorizza i bit di rete indirizzo-16 del mittente.

packet_finished [xbeeZB.pos-1] -> macSH: memorizza i 32 bit superiore del mittente MAC. packet_finished [xbeeZB.pos-1] - macSL>: memorizza i 32 bit pi bassi del mittente MAC. packet_finished [xbeeZB.pos-1] -> nio: negozi di byte max stringa-20 usato per Node Identifier del mittente origine packet_finished [xbeeZB.pos-1] -> Mode: memorizza il tipo di trasmissione. Unicast in questo caso. packet_finished [xbeeZB.pos-1] -> dati: memorizza i dati ricevuti. Dimensione massima 'MAX_DATA'. packet_finished [xbeeZB.pos-1] -> packetID: memorizza il pacchetto ID del messaggio ricevuto. 0x52 in questo caso. packet_finished [xbeeZB.pos-1] -> typeSourceID: memorizza l'ID del tipo di fonte utilizzata nel messaggio. Dopo aver ricevuto il pacchetto, a causa vi un solo frammento, sar completata, cosi 'variabile pos'will essere maggiore di zero. Questo variabile utilizzato per indicizzare l'array in cui memorizzato il pacchetto ricevuto. Le informazioni che stata conservata indicato nel esempio. Ricevuto byte di dati a pacchetto-200. Unicast. Fonte po NA 16-Type ID ^ Ehh% = WUHDW'DWD5HDGDSDFNHWZKHQ [VWDWH; HHKDVQRWLFHGLWWRXV% Ehh% = SRV [LI! ^ $ YDLODEOHLQIRWKHUHDUHPRUHDYDLODEOHLQIRUPDWLRQ QHWZRUNBDGGUHVV> @ SDFNHWBQLVKHG [ehh> = SRV% @! QD6> @ QHWZRUNBDGGUHVV> @ SDFNHWBQLVKHG [ehh> = SRV% @! QD6> @ ' ' Informazioni disponibili packet_finished [xbeeZB.pos-1] -> NAS: memorizza i bit di rete indirizzo-16 del mittente. packet_finished [xbeeZB.pos-1] -> macSH: memorizza i 32 bit superiore del mittente MAC. packet_finished [xbeeZB.pos-1] - macSL>: memorizza i 32 bit pi bassi del mittente MAC. packet_finished [xbeeZB.pos-1] -> Nao: memorizza i bit di rete indirizzo-16 del mittente origine. packet_finished [xbeeZB.pos-1] -> Mode: memorizza il tipo di trasmissione. Unicast in questo caso. packet_finished [xbeeZB.pos-1] -> dati: memorizza i dati ricevuti. Dimensione massima 'MAX_DATA'. packet_finished [xbeeZB.pos-1] -> packetID: memorizza il pacchetto ID del messaggio ricevuto. 0x52 in questo caso. packet_finished [xbeeZB.pos-1] -> typeSourceID: memorizza l'ID del tipo di fonte utilizzata nel messaggio. Dopo aver ricevuto il primo pacchetto, a causa vi sono tre frammenti, non sar completato, cosi 'pos variabile' sar pari a zero. Si tratta di raccomanda di impostare un ritardo nel trasmettitore, per il ricevitore non riceve pi di un pacchetto alla volta. Quando il tre frammenti sono stati ricevuti, 'POS variabile' cambier il suo valore e nella 'packet_finished' array le informazioni essere disponibili. NOTA: a causa di restrizioni di memoria, consigliabile quando un pacchetto in attesa di trattamento e non necessario conservarla qualsiasi di pi, di rilasciare questo puntatore. Se non, la memoria potrebbe overflow e crash l'applicazione. Non possibile avere pi di

2700Bytes in un nodo ricevente. Si parla di un grande pacchetto unico o molti pacchetti pi piccoli in parallelo. Pagina 7 -37 v0.3 Connettivit Ricevuto byte di dati a pacchetto-50. Application Layer Indirizzi. 64-bit Tipo origine ID ^ Ehh% = WUHDW'DWD5HDGDSDFNHWZKHQ [VWDWH; HHKDVQRWLFHGLWWRXV% Ehh% = SRV [LI! ^ $ YDLODEOHLQIRWKHUHDUHPRUHDYDLODEOHLQIRUPDWLRQ VRXUFHBDGGUHVV> @ SDFNHWBQLVKHG [ehh> = SRV% @! PDF6 +> @ VRXUFHBDGGUHVV> @ SDFNHWBQLVKHG [ehh> = SRV% @! PDF6 +> @ ' ' Informazioni disponibili packet_finished [xbeeZB.pos-1] -> NAS: memorizza i bit di rete indirizzo-16 del mittente. packet_finished [xbeeZB.pos-1] -> macSH: memorizza i 32 bit superiore del mittente MAC. packet_finished [xbeeZB.pos-1] - macSL>: memorizza i 32 bit pi bassi del mittente MAC. packet_finished [xbeeZB.pos-1] -> macOH: memorizza i 32 bit superiore del mittente origine MAC. packet_finished [xbeeZB.pos-1] - macOL>: memorizza i 32 bit pi bassi del mittente origine MAC. packet_finished [xbeeZB.pos-1] -> SD: memorizza i Endpoint Fonte del mittente origine packet_finished [xbeeZB.pos-1] -> DE: memorizza i Endpoint di destinazione packet_finished [xbeeZB.pos-1] -> CID: memorizza i Cluster Identifier packet_finished [xbeeZB.pos-1] -> PID: memorizza il profilo Identifier packet_finished [xbeeZB.pos-1] -> Mode: memorizza il tipo di trasmissione. Unicast in questo caso. packet_finished [xbeeZB.pos-1] -> dati: memorizza i dati ricevuti. Dimensione massima 'MAX_DATA'. packet_finished [xbeeZB.pos-1] -> packetID: memorizza il pacchetto ID del messaggio ricevuto. 0x52 in questo caso. packet_finished [xbeeZB.pos-1] -> typeSourceID: memorizza l'ID del tipo di fonte utilizzata nel messaggio. Dopo aver ricevuto il pacchetto, a causa vi un solo frammento, sar completata, cosi 'variabile pos'will essere maggiore di zero. Questo variabile utilizzato per indicizzare l'array in cui memorizzato il pacchetto ricevuto. Le informazioni che stata conservata indicato nel esempio. Quando un'applicazione che utilizza il livello di indirizzamento, una cornice speciale viene restituito dal modulo chiamato esplicito cornice di indirizzamento. Per consentire il modulo per ricevere a livello di applicazione indirizzamento dei pacchetti, le opzioni di API dovrebbe essere cambiato. Questo telaio indirizzamento esplicito restituisce le informazioni relative al punto finale, cluster e profilo utilizzato nella comunicazione a livello di applicazione. Pagina 8 -38 -

v0.3 Avvio di una rete 8. Avvio di una rete 8.1. Coordinatore di avvio Per creare una rete ZigBee, un coordinatore deve essere avviato su un canale e PAN ID (64-bit e 16-bit). Una volta che il coordinatore ha iniziato, router e dispositivi terminali possono collegarsi alla rete. Alcuni parametri precedentemente spiegato in capitoli come 'Extended PAN ID', 'Scan Channels'and' Scan Duration'are utilizzati in rete avvio. Per selezionare un canale corretto e PAN ID, il coordinatore esegue un esame dell'energia e Pan Scan. 'Scan Channels' e 'Scan Duration'are utilizzato per determinare la durata e l'elenco dei canali per la scansione. 'Extended PAN ID'is usato per selezionare un diverso ID da zero. Dopo aver completato l'energia e la PAN scansioni, il coordinatore utilizza i risultati per selezionare il canale con meno energia e un ID PAN non utilizzati in altri paesi ". Se la sicurezza deve essere impostato in fase di avvio, vedere Capitolo 12. Dopo che il coordinatore ha avviato con successo, si comporta simile ad un router - pu consentire ai dispositivi di aderire alla rete, e pu trasmettere, via e ricevere dati. Il coordinatore salva il canale selezionato e le impostazioni di PAN-ID nella memoria non volatile in modo queste informazioni saranno persistere attraverso cicli di potenza. Se un coordinatore ha avviato con successo una padella e coordinatore di altri alimentato, ci saranno due pentole. Esso deve svolgere il scansioni spiegato e sceglier un canale e PAN ID su cui lavorare. Il coordinatore non pu essere parte di una rete, se un altro coordinatore esiste gi. Figura 8.1: Avvio Coordinatore 8.2. Coordinatore scia fino processo di Reset Quando un coordinatore, si risveglia da un ciclo di reset o di potenza, il suo controllo il proprio canale operativo e PAN ID contro 'la scansione dei canali' e 'estesa PAN ID'parameters. Si verifica anche la politica di sicurezza. Se alcuni parametri di configurazione non corrisponde salvato canale, PAN ID o di sicurezza, lascer il PAN ed inizia in altri PAN soddisfano i parametri di configurazione. Figura 8.2: Wake Up Coordinatore di processo Pagina 9 -39 v0.3 Avvio di una rete 8.3. Parametri correlati Ci sono alcuni parametri coinvolti in un punto di partenza di un processo di rete. 8.3.1. Nodo Join Time Essa specifica il tempo di un coordinatore o un nodo Router consente di aderire alla rete. Questo valore pu essere modificato in fase di esecuzione senza che richiedono un coordinatore o router per riavviare. Questa volta parte una volta che il coordinatore o router ha risvegliato. Il timer viene reimpostato su Ciclo di alimentazione o quando 'Nodo Join Time'changes.

Esempio di utilizzo: ^ Ehh [=%-RLQ7LPH [VHW)) 6HW-RLQ7LPHDOZD \ VDOORZVMRLQLQJ Ehh [=% JHW-RLQ7LPH * HW-RLQ7LPH ' Variabili correlate xbeeZB.joinTime negozi il join di tempo selezionato 8.3.2. Stack ZigBee profilo Si specifica il valore dello stack profilo. Essa deve essere la stessa in tutti i dispositivi che possono collegarsi alla rete. I valori disponibili sono: 0: rete privata. 1: ZigBee 2006. 2: ZigBee Pro 2007 Esempio di utilizzo: ^ % = VHW6WDFN3UROH6HW ehh [=% HHVWDFNSUROHWR LJ =% % = JHW6WDFN3UROH ehh [* HW = LJ% HHVWDFNSUROH ' Variabili correlate xbeeZB.stackProfile memorizza il profilo di ZigBee 8.4. Esempi 8.4.1. Coordinatore del processo di avvio. Random Extended PAN ID. Tutti i canali per la scansione ^ SDQLG ^ ' = Ehh% VHW3 1SDQLG6HW3 $ $ 1, 'WR [ RRUGLQDWRUZLOOVHOHFWDUDQGRP3 & $ 1,' VFDQ% = [ehh & KDQQHOV [))[)) 6HW/LVWRI & KDQQHOVWRVFDQ % = VHW'XUDWLRQ ehh [(QHUJLD & KDQQHOV6HWH [SRQHQWRIVFDQFKDQQHOGXUDWLRQ JHW% = [$ VVRFLDWLRQ ehh, QGLFDWLRQ & KHFNLIFUHDWLQJSURFHVVVXFFHVV Ehh% = DVVRFLDWLRQ LI [, QGLFDWLRQ ^ $ VVRFLDWLRQ6XFFHVVIXO ' ' Una volta che questi parametri di configurazione sono stati impostati, il coordinatore di scansione per selezionare il canale e del PAN ID. Quando il Coordinatore termina il processo, 'cambiamento associationIndication'will x00 a '0'. Pagina 10 -40 v0.3 Avvio di una rete Informazioni disponibili xbeeZB.associationIndication memorizza lo stato della creazione di un processo di ultima rete xbeeZB.extendedPAN negozi a 64-bit Extended operativo PAN ID xbeeZB.operatingPAN memorizza i 16-bit di funzionamento PAN ID xbeeZB.channel memorizza il canale selezionato 8.4.2. Coordinatore del processo di avvio. Selezione ampliata PAN ID. Solo alcuni canali

scansione ^ SDQLG ^[[[[[[[[' Ehh [=% VHW3 1SDQLG6HW3 $ $ 1, 'WRWKHVHOHFWHG & RRUGLQDWRUZLOOVHOHFWWKLV3 $ 1,' % = VFDQ ehh [& KDQQHOV [[)) 6HW/LVWRI & KDQQHOVWRVFDQ % = VHW'XUDWLRQ ehh [(QHUJLD & KDQQHOV6HWH [SRQHQWRIVFDQFKDQQHOGXUDWLRQ JHW% = [$ VVRFLDWLRQ ehh, QGLFDWLRQ & KHFNLIFUHDWLQJSURFHVVVXFFHVV Ehh% = DVVRFLDWLRQ LI [, QGLFDWLRQ ^ $ VVRFLDWLRQ6XFFHVVIXO ' ' Una volta che questi parametri di configurazione sono stati impostati, il coordinatore di scansione per selezionare il canale e del PAN ID. Quando il Coordinatore termina il processo, 'cambiamento associationIndication'will x00 a '0'. Informazioni disponibili xbeeZB.associationIndication memorizza lo stato della creazione di un processo di ultima rete xbeeZB.extendedPAN negozi a 64-bit Extended operativo PAN ID xbeeZB.operatingPAN memorizza i 16-bit di funzionamento PAN ID xbeeZB.channel memorizza il canale selezionato

Pagina 1 -41 v0.3 Unire una rete esistente 9. Unire una rete esistente Prima di un router o un fine dispositivo pu partecipare a una rete ZigBee, si deve individuare un coordinatore nelle vicinanze o un altro router che ha gi si iscritto a unirsi attraverso di esso. 9.1. Partecipare a un router di rete Se un router non entrato in rete, esegue una scansione di PAN in tutti i canali specificati nella lista 'la scansione dei canali', alla ricerca di un coordinatore operativo o router con un valido PAN ID che sta permettendo che si unisce. Il router deve trovare un dispositivo che soddisfi i seguenti parametri: Il 'Extended PAN ID'of il dispositivo valido a seconda del router' Extended PAN ID '. Se il router 'estesa PAN ID'is impostato zero, qualsiasi valore sar valido. In caso contrario, sar lo stesso di essere un valore valido. L'apparecchio scoperto che permette join. Parametro 'Nodo Join Time'has non sia scaduto. Il dispositivo scoperto che operano in uno dei 'Channels'channels Scan. Il dispositivo scoperto che operano con lo stesso stack ZigBee profilo. La polizia di sicurezza la stessa in entrambi i dispositivi. Se un dispositivo viene individuato durante il Pan Scan e soddisfa tutti i requisiti di cui sopra, il dispositivo che unisce invier una richiesta di join al dispositivo e cercare di unirsi al PAN. Se il dispositivo che unisce un join riceve risposta, allora il dispositivo considerato unito a il PAN. Lo status degli ultimi Pan Scan e unirsi tentativo registrato nel 'Associazione Indication'parameter. 9.1.1. Esempio ^ SDQLG ^[[[[[[[[' Ehh [=% VHW3 1SDQLG6HW3 $ $ 1, 'WR 5RXWHUZLOOMRLQDQ \ 3 $ 1,' % = VFDQ ehh [& KDQQHOV [))[)) 6HW/LVWRI & KDQQHOVWRVFDQ $ OOFKDQQHOVVFDQQHG % = VHW'XUDWLRQ ehh [(QHUJLD & KDQQHOV6HWH [SRQHQWRIVFDQFKDQQHOGXUDWLRQ JHW% = [$ VVRFLDWLRQ ehh, QGLFDWLRQ & KHFNLIFUHDWLQJSURFHVVVXFFHVV Ehh% = DVVRFLDWLRQ LI [, QGLFDWLRQ ^ $ VVRFLDWLRQ6XFFHVVIXO ' ' Una volta che questi parametri di configurazione sono stati impostati, il Router inizier scansioni di trovare un valido PAN. Informazioni disponibili xbeeZB.associationIndication memorizza lo stato della creazione di un processo di ultima rete xbeeZB.extendedPAN negozi a 64-bit Extended operativo PAN ID xbeeZB.operatingPAN memorizza i 16-bit di funzionamento PAN ID xbeeZB.channel memorizza il canale selezionato 9.2. End Device Entrare in una rete

Se un dispositivo finale non entrato in rete, esegue una scansione di PAN in tutti i canali specificati nella lista 'la scansione dei canali', cercando di un coordinatore o un router che operano in un valido PAN ID che sta permettendo che si unisce. Il dispositivo finale deve trovare un dispositivo che soddisfi i i seguenti parametri: Il 'Extended PAN ID'of il dispositivo valido a seconda del router' Extended PAN ID '. Se il router 'estesa PAN ID'is impostato zero, qualsiasi valore sar valido. In caso contrario, sar lo stesso di essere un valore valido. Il dispositivo scoperto che permette join. Parametro 'Nodo Join Time'has non sia scaduto. Il dispositivo scoperto ha spazio per almeno un altro nodo. 'Numero di Children'parameter rimanente. Il dispositivo scoperto che operano in uno dei 'Channels'channels Scan. Page 2 -42 v0.3 Unire una rete esistente Il dispositivo scoperto che operano con lo stesso stack ZigBee profilo. La polizia di sicurezza la stessa in entrambi i dispositivi. Se un dispositivo viene individuato durante il Pan Scan soddisfa tutti i requisiti di cui sopra, il dispositivo che unisce invier una richiesta di join il dispositivo e il tentativo di aderire alla PAN. Se il dispositivo che unisce un join riceve risposta, allora il dispositivo considerato unito a il PAN. Lo status degli ultimi Pan Scan e unirsi tentativo registrato nel 'Associazione Indication'parameter. 9.2.1. Esempio ^ SDQLG ^[[[[[[[[' Ehh [=% VHW3 1SDQLG6HW3 $ 1 $, '(QG'HYLFHZLOORQO \ MRLQD3 1ZLWKWKDW3 $ $ 1,' % = VFDQ ehh [& KDQQHOV [[)) 6HW/LVWRI & KDQQHOVWRVFDQ % = VHW'XUDWLRQ ehh [(QHUJLD & KDQQHOV6HWH [SRQHQWRIVFDQFKDQQHOGXUDWLRQ JHW% = [$ VVRFLDWLRQ ehh, QGLFDWLRQ & KHFNLIFUHDWLQJSURFHVVVXFFHVV Ehh% = DVVRFLDWLRQ LI [, QGLFDWLRQ ^ $ VVRFLDWLRQ6XFFHVVIXO ' ' Una volta che questi parametri di configurazione sono stati impostati, dispositivo finale inizier scansioni di trovare un valido PAN. Informazioni disponibili xbeeZB.associationIndication memorizza lo stato della creazione di un processo di ultima rete xbeeZB.extendedPAN negozi a 64-bit Extended operativo PAN ID xbeeZB.operatingPAN memorizza i 16-bit di funzionamento PAN ID xbeeZB.channel memorizza il canale selezionato Figura 9.1: Router / dispositivo finale del processo di giunzione Pagina 3

-43 v0.3 Unire una rete esistente 9.3. Router / End Device sveglia dal processo di reimpostazione Una volta che un router o dispositivo finale si unito un documento di identit PAN e canali, ma che conserva informazioni attraverso il ciclo di alimentazione o eventi reset. Quando il router o dispositivo finale si sveglia da un reset o spegnere e riaccendere, controlla il suo canale operativo e PAN ID contro il comandi di configurazione di rete 'Scan Channels'and' Extended PAN ID '. Si verifica anche la politica di sicurezza applicate nei confronti del configurazione di sicurezza. Se il dispositivo di funzionamento del canale, PAN ID, o la politica di sicurezza non corrisponde i comandi di configurazione, lascer il suo canale attuale e PAN ID e tenta di aggiungere una nuova rete in base alla sua 'la scansione dei canali', 'Extended PAN ID'and valori dei parametri di sicurezza. Figura 9.2: Router / dispositivo finale che sale da Reset 9.4. Canale di verifica comportamento di verifica Channel supportata per entrambi i router e dispositivi terminali attraverso la 'verifica' parametro Channel. Se verifica canale abilitato, router comunica con il coordinatore e dispositivi finali monitorer le loro comunicazioni con il genitore per determinare se sono in un canale valido. 9.4.1. Router Canale di verifica Quando un router si sveglia da un ciclo di alimentazione, se 'Canale Verification'is attivato, il router invier un indirizzo a 64-bit scoperta trasmissione al coordinatore per scoprire il suo indirizzo a 64-bit. Se il coordinatore non risponde dopo 3 tentativi di richiesta, la router lascer la rete attuale e tentare di partecipare a una nuova rete basata su parametri di configurazione di rete i suoi. 9.4.2. Fine dispositivo di verifica della Manica Se 'Canale Verification'is abilitato, il dispositivo finale tiene traccia dello stato delle sue richieste sondaggio con i suoi genitori. Se il dispositivo finale genitore non invia una conferma per 3 richieste sondaggio consecutivo, il dispositivo fine lascer il suo canale attuale e PAN e tentativo di partecipare a una rete basata su parametri di configurazione di rete i suoi. 9.5. Parametri correlati Ci sono alcuni parametri relativi ad un processo di aderire ad una rete. 9.5.1. Associazione Indicazione Specifica lo stato degli ultimi Pan Scan e unirsi tentativo del modulo. status possibili sono: 0x00: successo. Coordinatore iniziato o Router / dispositivo finale si iscritto con un genitore. 0xAB: Ha tentato di entrare in un dispositivo non ha risposto. 0xAC: Secure aderire errore. chiave di sicurezza di rete ricevuto non garantiti. 0xAD: Secure aderire errore. chiave di sicurezza di rete non ricevuto. 0xAF: Secure aderire errore. Partecipare dispositivo non ha il tasto preconfigurato link a destra. 0x21: scansione non ha trovato pentole. 0x22: scansione non ha trovato PAN valido sulla base delle attuali 'Scan Channels'and' Extended PAN ID '. 0x23: Valido Coordinator o Router trovati, ma non sono che permette di giunzione. 0x27: tentativo di entrare nodo fallito. 0x2A: Start Coordinatore tentativo non riuscito.

Pagina 4 -44 v0.3 Unire una rete esistente 0xFF: Scansione di un genitore. 0x2B: Controllo di un coordinatore esistente. Esempio di utilizzo: ^ % = JHW ehh [$ VVRFLDWLRQ, QGLFDWLRQ HW * $ VVRFLDWLRQ, QGLFDWLRQ6WDWXV ' Variabili correlate xbeeZB.associationIndication memorizza l'associazione indicazione dello stato 9.5.2. Numero di figli rimasti Specifica il numero di dispositivi finali che possono aderire ad un coordinatore o un router. Il suo valore massimo per i coordinatori di 10 e 12 per un Rotte. Quando un router si unisce, lo doesnt conta come i bambini, cos come molti router come voleva possibile partecipare a una rete. Esempio di utilizzo: ^ % = JHW5HPDLQLQJ ehh [& HWWKHQXPEHURIUHPDLQLQJFKLOGUHQDYDLODEOH * KLOGUHQ ' Variabili correlate xbeeZB.remainingChildren memorizza il numero di bambini che rimangono disponibili 9.5.3. Canale di verifica Specifica se Canale verifica attivato o disattivato. Verifica se il canale attivato, router e dispositivi finali si comporter come spiegato in precedenza. Se disabilitato, i router continuer a lavorare anche se il coordinatore non rilevato. Esempio di utilizzo: ^ VHW% = [ehh & KDQQHO9HULFDWLRQ (QDEOH & KDQQHO9HULFDWLRQ % = JHW ehh [& KDQQHO9HULFDWLRQ * HWLI & KDQQHO9HULFDWLRQLVHQDEOHGRUGLVDEOHG ' Variabili correlate xbeeZB.channelVerification negozi verifica se il canale abilitato o disabilitato 9.5.4. Iscriviti Notifica Specifica se un nodo deve inviare un messaggio broadcast quando svegliarsi o di aderire ad una rete. Questo messaggio un'identificazione messaggio in modo da gli altri nodi pu sapere se in funzione nella stessa rete. Si consiglia di non abilitare questo parametro in grandi reti di prevenire la trasmissione di messaggi eccessivo. Esempio di utilizzo: ^ Ehh [= VHW%-RLQ1RWLFDWLRQ (QDEOH-RLQ1RWLFDWLRQ Ehh [=% JHW-RLQ1RWLFDWLRQ * HWLIRLQ1RWLFDWLRQLVHQDEOHGRUGLVDEOHG '

Pagina 5 -45 v0.3 Unire una rete esistente Variabili correlate xbeeZB.joinNotification negozi se Join Notification abilitato o disabilitato 9.6. Nodo Discovery Una volta che questi parametri sono stati fissati, il nodo una parte della rete, in modo che il primo compito quello di scoprire gli altri nodi della rete. NOTA: Il nodo processo di individuazione non pu essere eseguito in dispositivi finali. Nessun errore si verificher, ma nessuna risposta sar ricevuto. Alcuni parametri sono coinvolti in un processo di scoperta nodo. 9.6.1. Nodo Discovery Esegue una scoperta nodo di ritorno i fratelli si trovano in rete memorizzati in un array di strutture che contengono informazioni circa i nodi. Esempio di utilizzo: ^ Ehh [=% VFDQ1HWZRUN'LVFRYHU QRGHV \ LI ehh [= WRWDO6FDQQHG URWKHUV%%! ^ $ YDLODEOHLQIR7KHUHDUHPRUHDYDLODEOHLQIRUPDWLRQ QHWZRUNBDGGUHVV> @ URWKHUV% VFDQQHG> WRWDO6FDQQHG% URWKHUV @ 0 <> @ QHWZRUNBDGGUHVV> @ URWKHUV% VFDQQHG> WRWDO6FDQQHG% URWKHUV @ 0 <> @ ' ' Informazioni disponibili scannedBrothers [totalScannedBrothers-1]. miei negozi NA 16-bit di ciascun modulo scannedBrothers [totalScannedBrothers-1]. SH negozi i 32 bit superiore di MAC address scannedBrothers [totalScannedBrothers-1]. SL negozi i 32 bit pi bassi di MAC address scannedBrothers [totalScannedBrothers-1]. NI negozi l'identificatore di nodo scannedBrothers [totalScannedBrothers-1]. PMY negozi il bit NA 16 del suo genitore scannedBrothers [totalScannedBrothers-1]. DT memorizza il tipo di dispositivo (C, R o E) scannedBrothers [totalScannedBrothers-1]. ST negozi lo stato. Riservato dal modulo. scannedBrothers [totalScannedBrothers-1]. MID memorizza i bit produttore 16 ID scannedBrothers [totalScannedBrothers-1]. PID memorizza i 16-bit Profilo ID 9.6.2. Nodo Discovery Time la quantit di tempo un nodo attender risposte da altri nodi nello svolgimento di una ND. Esempio di utilizzo: ^ XLQWBWWLPH> @ Q = ^[[', LJ \ HHLVRQO% XVHGUVWDUUD \ SRVLWLRQ Ehh [=% VHW6FDQQLQJ7LPHWLPH6HW6FDQQLQJ7LPHLQ1 ' % = JHW6FDQQLQJ7LPH ehh [* HW6FDQQLQJ7LPHLQ1 ' ' Informazioni disponibili xbeeZB.scanTime magazzini i tempi di un nodo aspetter risposte. Pagina 6

-46 v0.3 Unire una rete esistente 9.6.3. Nodo Discovery Opzioni Seleziona il nodo Opzioni Discovery. Le opzioni disponibili sono: 0x01: Aggiungere valore alle risposte DD ND. 0x02: dispositivo locale invia frame di risposta ND ND quando viene rilasciato. Esempio di utilizzo: ^ Ehh [= VHW'LVFRYHU% \ 2SWLRQV6HW'LVFRYHU \ 2SWLRQVIRU1 ' \ JHW'LVFRYHU 2SWLRQV% = HW'LVFRYHU * \ [ehh 2SWLRQVIRU1 ' ' Informazioni disponibili xbeeZB.discoveryOptions memorizza le opzioni selezionate per ND NOTA: Se il nodo Discovery tempo un tempo lungo, la funzione API possono uscire prima di ricevere una risposta, ma il modulo aspetta per esso, il blocco del codice. Se questo tempo troppo breve, possibile, i moduli non rispondono. Dopo aver testato pi volte, il migliore i valori sono 1-2 secondi per impostare la funzione API correttamente. Quando un nodo viene eseguito Discovery, a causa di essa un messaggio broadcast, ma saranno solo raggiungere il maggior numero luppolo come l'insieme in 'Broadcast Max Hops'parameter. Quindi, l'impostazione dei parametri che, una scoperta nodo pu raggiungere solo i nodi vicini o possono raggiungere l'intera rete. Si consiglia di provare lo scenario finale per trovare il miglior valore per questo parametro. Pagina 7 -47 v0.3 Riavvio di una rete 10. Riavvio di una rete 10.1. Network Reset Reimposta parametri di rete di livello su uno o pi moduli all'interno del PAN. I valori possibili sono: 0: Ripristina i parametri di livello di rete sul nodo che rilascia il reset 1: Ripristina livello di parametri di rete su tutta la rete. Invia un messaggio broadcast a tutti i nodi di reset. Quando un nodo si resetta, lascia il PAN e avvia il processo di trovare un PAN di aderire. Quando un nodo reimposta la rete, invia una trasmissione broadcast a tutti i nodi all'interno del PAN. Quando il Coordinatore riceve il messaggio lascia il PAN e inizia una nuova PAN. Il resto dei nodi lasciare il PAN troppo, e avviare un processo di aderendo ad un PAN. Il tempo per ripristinare la rete dipende dal luppolo il messaggio per la reimpostazione broadcast deve raggiungere la sua destinazione. I nostri test per una rete con 3 salti scoperto che il tempo stato di circa 3-4 secondi. Esempio di utilizzo: ^ Ehh [=% UHVHW1HWZRUN5HVHWLWVHOI Ehh [=% UHVHW1HWZRUN5HVHWWKHHQWLUHQHWZRUN ' Figura 10.1: processo Network Reset

Pagina 8 -48 v0.3 Sleep Opzioni 11. Sleep Opzioni 11.1. Modalit Sleep Coordinatori e router non sono in grado di dormire, solo i dispositivi finali possono entrare in un potere statale basso alla batteria e sicuro svegliano quando necessario per trasmettere o ricevere dati. Ci sono due modi di sonno: il sonno e il sonno pin ciclico. 11.1.1. Pin Sleep Questa modalit utilizzata per svegliarsi e dormire il modulo utilizzando un perno hardware. Se il modulo entrato in rete, quando si dorme pin stato affermato, dopo la fine ogni trasmissione o la ricezione in corso. Se il modulo non entrato in rete, sar il sonno dopo aderire ad una rete. Quando un dispositivo finale si iscritto si sveglia da un sonno pin, invia una richiesta di sondaggio a suo padre per vedere se il genitore ha tamponato dati per il dispositivo fine. Il dispositivo di fine continueranno a inviare le richieste di polling ogni 100 ms, mentre resta sveglio. 11.1.2. Ciclico Sleep sonno ciclico permette ai moduli di svegliare periodicamente per verificare la presenza di dati RF e dormire quando inattivo. Nella modalit sleep ciclico, se seriale o RF ricezione dei dati, il modulo inizier un timer di inattivit e rimanere sveglio fino a quando questo timer scade. Mentre il modulo sveglio, continuer ad inviare trasmissioni richiesta sondaggio a sua madre per verificare i dati nel buffer ogni 100ms. Il timer verr riavviato RF di serie o dati in qualsiasi momento ricevuto. Il modulo riprender dormire quando il timer scade. 11.2. Parametri di sonno Ci sono alcuni parametri legati fissazione di un dispositivo finale a dormire. 11.2.1. Sleep Mode Imposta la modalit di sospensione per un modulo. I suoi valori disponibili sono: 0: Sleep disabili. Quando si utilizza questa modalit, il modulo funziona come un router. 1: dormire Pin abilitato. 4: ciclico Sleep abilitato. 5: ciclico Veglia con il Pin sveglio abilitato. Quando 'Mode'changes Sleep ad un valore diverso da zero, il nodo lascia il PAN e si ricongiunge come un dispositivo finale. Esempio di utilizzo: ^ Ehh [=% VHW6OHHS0RGH6HW6OHHS0RGHWR3LQ6OHHS Ehh [= *% JHW6OHHS0RGH HWWKH6OHHS0RGHXVHG ' Variabili correlate xbeeZB.sleepMode memorizza il modo di dormire in un modulo 11.2.2. Periodo di sonno Determina per quanto tempo un nodo dormire continuamente con un massimo di 28 secondi. Il genitore determina per quanto tempo sar buffer un messaggio per il dispositivo di dormire. Si deve essere impostato almeno pari al valore dormire pi a lungo di eventuali figli.

Pagina 9 -49 v0.3 Sleep Opzioni Esempio di utilizzo: ^ XLQWBWDVOHHS> @ ^[$)[[' Ehh [=% VHW6OHHS7LPHDVOHHS6HW6OHHSSHULRGWRVHFRQGV ' Variabili correlate xbeeZB.sleepTime memorizza il periodo di sonno il modulo sar letto 11.2.3. Ora prima di dormire Si determina il tempo di un modulo sar sveglio attesa prima di dormire. Si azzera ogni volta che viene dati ricevuti via RF o seriale. Una volta il timer scade, il dispositivo entrer in basso-potere dello Stato. Esempio di utilizzo: ^ XLQWBWDZDNH> @ ^[[[' % = VHW ehh [$ ZDNH7LPHDZDNH6HWWLPHWKHPRGXOHUHPDLQVDZDNH ' Variabili correlate xbeeZB.awakeTime magazzini i tempi il modulo rimane sveglio 11.2.4. Numero di periodi di sonno Esso determina il numero dei periodi di sonno a far valere la non accensione / Sleep pin sul wakeup se nessun dato RF in attesa del dispositivo finale. Esempio di utilizzo: ^ XLQWBWSHULRGV> @ ^ [[' Ehh [=% VHW3HULRG6OHHSSHULRGV6HWQXPEHURIVOHHSSHULRGV ' Variabili correlate xbeeZB.periodSleep memorizza il numero di periodi di sonno 11.2.5. Sleep Opzioni Si configura le opzioni per dormire modi. I valori possibili sono: 0x02: sempre sveglio per 'Time Prima Sleep'time. 0x04: Sleep intero 'numero di periodi di' * Sleep 'Sleep Period'time. Esempio di utilizzo: ^ Ehh [=% [VHW6OHHS2SWLRQV 6HWDOZD \ VDZDNHGXULQJ% 7LPH HIRUH6OHHS WLPH ' Variabili correlate xbeeZB.sleepOptions memorizza l'opzione prescelta sonno Pagina 10 -50 v0.3 Sleep Opzioni 11.3. ON / OFF

Oltre alla modalit sleep XBee la, Waspmote fornisce la funzione di controllare lo stato di alimentazione con un interruttore digitale. Questo significa che usare una funzione inclusa nel Waspmote API, qualsiasi modulo XBee pu essere acceso o verso il basso (0uA). Esempio di utilizzo: ^ ; EHHVHW0RGH;% ((B213RZHUV; HHXS% ; HHVHW0RGH%% ((B2)) 3RZHUV; HHGRZQ% '

Pagina 1 -51 v0.3 Sincronizzazione della rete 12. Sincronizzazione della rete 12.1. End Device Operation Dispositivi finali contare su un genitore (router o coordinatore) di rimanere sveglio e ricevere pacchetti di dati a loro rivolte. Quando il dispositivo finale si sveglia dal sonno, invia una trasmissione (richiesta sondaggio) al suo genitore che chiede se il genitore ha ricevuto alcuna dati RF indirizzata al dispositivo finale. Il genitore, al momento del ricevimento della richiesta sondaggio, invier una risposta RF e il buffer dati (se presente). Se il genitore non ha dati per il dispositivo finale, il dispositivo finale pu tornare a dormire, a seconda della modalit sleep impostazioni di configurazione. Se il dispositivo finale sveglio, verranno inviate le richieste polling ogni 100ms per garantire che riceve qualsiasi RF nuovi dati dal padre. Quando dati RF viene inviato a un dispositivo finale del sonno, la sua controllante buffer di dati fino a quando il dispositivo sondaggi di fine per i dati o si verifica un timeout. Figura 12.1: I dati RF invio a fine dispositivo Sleeping 12.2. Operazione Parent Quando un dispositivo finale si unisce ad una rete, diventa un bambino del dispositivo ha aderito a, e il dispositivo che ha permesso il join diventa il dispositivo finale genitore. Successivamente, la madre gestisce i dati RF pacchetti per il dispositivo fine. Il tempo di immagazzinamento calcolato come ('Sleep Periodo * 2.5), non superiore a 30 secondi. Se i dispositivi fine attuare sonno ciclici, 'Sleep Period'should essere impostato lo stesso su un genitore in quanto sul loro dispositivo finale bambini che dormono. Nel caso di sonno pin, in cui i dati RF potrebbero essere ricevute, il dispositivo finale dovrebbe svegliare nel 'periodo' di tempo per garantire la Veglia di dati in entrata RF non perso. Il genitore pu memorizzare solo una trasmissione a pacchetto (il pi recente ricevuta) per il suo dispositivo finale i bambini. Se il genitore riceve un pacchetto RF indirizzata al dispositivo fine, memorizzer i pacchetti di dati fino a quando uno dei seguenti eventi: Il genitore si esaurisce lo spazio di archiviazione e non pu memorizzare un nuovo pacchetto. Un pacchetto stato immagazzinato per un lungo periodo di tempo (timeout). Il dispositivo di destinazione bambino fine invia una richiesta di trasmissione sondaggio a richiesta il pacchetto dati. Quando i negozi madre un pacchetto indirizzato ad un bambino dispositivo finale, memorizza il pacchetto per un tempo massimo fissato dal 'Sleep Period'parameter. Il genitore anche responsabile per l'esecuzione di qualsiasi percorso o indirizzo scoperte di presentare dati inviati da dispositivo finale suoi bambini nella rete mesh. Figura 12.2: Determinazione Sleeping Indirizzo dispositivo finale e la Route Page 2 -52 v0.3 Sincronizzazione della rete 12.3. Ciclico Sleep Operazione

Nel sonno ciclico, il tempo dorme il modulo dipende da vari parametri di configurazione come 'Sleep Period', 'Numero di sonno Periods'or 'Opzioni Sleep'. Un genitore pu solo buffer di dati for30 secondi ed un dispositivo di fine pu solo dormire un massimo di 28 secondi. Quando si sveglia, si invia una richiesta di sondaggio per verificare se vi sono dati disponibili. Questa modalit di lavoro garantiscono dati non perso, anche se un dispositivo finale dormito il tempo massimo. In molti casi, l'On / Sleep pin pu essere usato per svegliare un microprocessore esterno o un dispositivo periferico quando il modulo si sveglia dal sonno. Se il dispositivo finale si sveglia e scopre che il suo genitore non ha dati, non ci sar alcun bisogno di svegliare il dispositivo esterno. Il 'Numero di sonno Periods'parameter un moltiplicatore di' Sleep Period'parameter che determina la frequenza per impostare l'accensione / Sleep pin quando veglia. In alcune applicazioni, il dispositivo finale pu trasmettere dati a una velocit molto lenta (una volta ogni ora, una volta al giorno, ecc) e ricever solo dati in risposta alla sua trasmissione. In tali casi, il 'Sleep Options'parameter pu essere utilizzato per provocare un dispositivo finale letto per l'intero ',' * 'Periodo Numero Sleep of Sleep Periods'time. Dal momento che un genitore pu solo buffer di dati per 30 secondi, un dispositivo fine non dovrebbe dormire pi di 30 secondi a meno che esso non ha per ricevere tutti i dati. Pagina 3 -53 v0.3 Sicurezza e crittografia dei dati 13. Sicurezza e crittografia dei dati 13.1. ZigBee la sicurezza e la crittografia dei dati Panoramica ZigBee di sicurezza e crittografia dei dati basata su di sicurezza definite nella 802.15.4 protocollo. L'algoritmo di cifratura utilizzato in ZigBee AES (Advanced Encryption Standard) con una chiave a lunghezza 128B (16 byte). L'algoritmo AES non solo utilizzata per crittografare il informazioni, ma per convalidare i dati che vengono inviati. Questo concetto si chiama l'integrit dei dati ed realizzato tramite un messaggio Integrity Code (MIC) anche nominato come Message Authentication Code (MAC), che allegata al messaggio. Questo codice assicura integrit dei dati di intestazione MAC e payload allegati. Si creato crittografare parti del MAC frame IEEE utilizzando la chiave della rete, quindi se si riceve un messaggio da un non attendibile nodo vedremo che il MAC generati per il messaggio inviato non corrisponde a quello che sarebbe stato generato con il messaggio con la chiave corrente segreto, in modo che possiamo scartare questo messaggio. Il MAC possono avere dimensioni diverse: 32, 64, 128 bit, tuttavia sempre creato utilizzando il algoritmo AES 128B. La sua dimensione solo la lunghezza di bit che si allega ad ogni fotogramma. Il pi grande il pi sicuro (anche se meno payload del messaggio pu assumere). Sicurezza dei dati viene eseguita la crittografia dei dati campo di carico utile con il 128B Key. Figura 13.1: IEEE 802.15.4 Frame

La modalit utilizzata per cifrare le informazioni sono AES-CTR. In questo modo tutti i dati vengono cifrati usando la chiave e definito 128B l'algoritmo AES. Il contafotogrammi imposta l'unico ID del messaggio, e la Controriforma (tasto sottocampo Control) viene utilizzato dal livello di applicazione Se il contatore Frame valore massimo raggiunto. Figura 13.2: la crittografia AES-CTR Frame ZigBee implementa due strati di sicurezza aggiuntivi in cima alla 802.15.4 uno: la rete e dei livelli di sicurezza delle applicazioni. Tutte le politiche di sicurezza invocare l'algoritmo di crittografia AES 128B cos l'architettura hardware precedentemente distribuito per il collegamento a livello (Livello MAC) ancora valida. Ci sono tre tipi di chiavi: master, link e di rete. Chiavi master: Sono pre-installati in ogni nodo. La loro funzione quella di mantenere riservate le chiavi di collegamento scambio tra due nodi nella Procedura Key Establishment (SKKE). Tasti Link: Sono unici tra ogni coppia di nodi. Queste chiavi sono gestiti dal livello di applicazione. Sono utilizzate per crittografare tutti i dati tra ogni due dispositivi, per questo motivo pi risorse di memoria sono necessari in ogni dispositivo. Chiave di rete: E 'un 128B chiave unica condivisa tra tutti i dispositivi della rete. Si generato dal Centro protezione e rigenerati a intervalli diversi. Ogni nodo ha per ottenere la chiave di rete al fine di partecipare alla rete. Una volta che il centro di fiducia decide di cambiare la chiave di rete, la nuova si diffonde attraverso la rete utilizzando la vecchia chiave di rete. Una volta che questo nuovo Pagina 4 -54 v0.3 Sicurezza e crittografia dei dati chiave aggiornato in un dispositivo, la sua cornice Counter inizializzato a zero. Questo Centro protezione di norma il Coordinatore, tuttavia, pu essere un dispositivo dedicato. Essa ha per autenticare e validare ogni dispositivo che tenta di collegarsi alla rete. 13.2. Sicurezza in librerie API Come spiegato in precedenza, ZigBee offre comunicazioni sicure all'interno di una rete che utilizza la crittografia AES a 128bit. L'API funzioni permettono utilizzando la protezione e la crittografia dei dati. 13.2.1. Abilitare la crittografia Attiva la crittografia AES 128bit nei moduli. Esempio di utilizzo: ^ HQFU% = [ehh \ SWLRQ0RGH (QDEOHHQFU \ SWLRQPRGH ' Variabili correlate xbeeZB.encryptMode negozi se la sicurezza abilitato o meno 13.2.2. Opzioni di crittografia Consente di configurare le opzioni per la crittografia. I valori disponibili sono: 0x01: Invia il codice di sicurezza non garantita over the air durante unisce 0x02: Centro Usa Trust Esempio di utilizzo: ^

% = VHW ehh [(QFU \ SWLRQ2SWLRQV [8VH7UXVW & HQWHU % = JHW ehh [(QFU \ SWLRQ2SWLRQV * HWRSWLRQVIRUHQFU SWLRQV \ ' Variabili correlate xbeeZB.encryptOptions memorizza le opzioni per la sicurezza 13.2.3. Encryption Key Imposta la 128bit AES Encryption Key. Se questa chiave impostata a zero, una chiave casuale scelto. Esempio di utilizzo ^ FKDU. (<: DVSPRWH / \ LQN.H % = VHW ehh [/ \ LQN.H. (<6HW (\ SWLRQ.H \ QFU ' Variabili correlate xbeeZB.linkKey memorizza la chiave che stata impostata nella rete 13.2.4. Link Key Imposta la AES 128bit Link Key. Se 'Link Key'is set a zero, il coordinatore invier la chiave di rete in chiaro a dispositivi di congiungimento. Pagina 5 -55 v0.3 Sicurezza e crittografia dei dati Esempio di utilizzo ^ FKDU. (<: \ DVSPRWH1HWZ.H Ehh [=% \ VHW1HWZRUN.H. (6HW/LQN.H \ < ' Variabili correlate xbeeZB.networkKey memorizza la chiave che stata impostata nella rete 13.2.5. Application Level Security Impostare il livello di sicurezza dell'applicazione. Questa funzione riduce il carico utile di 4 byte. Esempio di utilizzo ^ % = VHW ehh [36HQFU $ \ SWLRQ;% ((B21 (QDEOHV 36HQFU $ \ SWLRQ % = VHW ehh [36HQFU $ \ SWLRQ;% ((B2)) 'LVDEOHV 36HQFU $ \ SWLRQ ' 13.3. Sicurezza in rete Se attivata la crittografia nel coordinatore, si applicher una politica di sicurezza alla rete quando si crea. L'attivazione di sicurezza in un rete aggiunge un passo di autenticazione per il processo di adesione. Ad esempio, dopo un router entra a far parte di una rete, si deve quindi ottenere il chiave di sicurezza di rete per diventare autenticato. Se il dispositivo non pu ottenere la chiave di sicurezza di rete, l'autenticazione non riesce, e il dispositivo esce dalla rete in quanto non pu comunicare con chiunque in rete. 13.3.1. Trust Center Un centro di fiducia un unico dispositivo che responsabile della definizione, che possono aderire alla rete. Se un centro di fiducia attivata, il Centro protezione deve approvare tutti i dispositivi prima di unirsi alla rete. Se un router consente a un nuovo dispositivo di aderire alla rete, il router

invia una notifica al centro di fiducia che si verificato un join. Il centro di fiducia indica al router di autenticare sia il nuova adesione dispositivo o negarlo. Un centro di fiducia necessario per alcune ZigBee profili pubblici. Per utilizzare un centro di fiducia in una rete ZigBee, il coordinatore dovrebbe impostare il "centro di fiducia l'uso" corretto po 'nel' opzioni di crittografia ' parametro prima di avviare una rete. Solo il coordinatore pu servire come Centro protezione. 13.3.2. Gestione delle chiavi di sicurezza Moduli di definire una chiave di rete e una chiave di collegamento (link fiducia tasto centrale). Entrambe le chiavi sono a 128 bit e sono utilizzati per applicare la crittografia AES ai pacchetti RF. Il coordinatore sceglie una chiave di sicurezza di rete che utilizza il 'Encryption Key'parameter. Allo stesso modo, il coordinatore deve anche specificare una chiave di collegamento con il 'Link Key'parameter. Quando un dispositivo si unisce una rete sicura, deve ottenere la chiave di rete da parte del coordinatore. Il coordinatore sia trasmettere la chiave di rete utilizzando un collegamento installato chiave-pre. Se la 'crittografia Options'bit impostato per trasmettere la chiave di rete in chiaro, o se il 'Link Key'parameter impostato su 0 per il coordinatore (selezionare un collegamento chiave casuale), il coordinatore trasmetter la chiave di rete in chiaro. In caso contrario, se la 'crittografia Options'bit non impostata e' Link Key'is> 0, il coordinatore crittografare la rete chiave con la chiave di collegamento. Se un dispositivo che unisce non ha il tasto preconfigurato link a destra, e la chiave di rete viene inviato crittografato, l'unione dispositivo non sar in grado di collegarsi alla rete. sicurezza della rete richiede una cornice 32bit banco gestito da ogni dispositivo. Questo telaio contatore viene incrementato dopo ogni trasmissione e non pu avvolgere a 0. Se un vicino di casa riceve una trasmissione con un contatore di frame che inferiore o uguale al ultimo frame ricevuto contatore, il pacchetto verr scartato. Pagina 6 -56 v0.3 Sicurezza e crittografia dei dati Per prevenire un eventuale blocco del frame in cui il contatore su un dispositivo raggiunge 0xFFFFFFFF, la chiave di rete devono essere periodicamente aggiornato (modificato) su tutti i dispositivi in rete. Per aggiornare la chiave di rete nella rete, il coordinatore dovrebbe rilasciare il 'Key'parameter crittografia con una chiave di sicurezza. Ci costituir una trasmissione broadcast su tutta la rete causa il Contatori telaio su tutti i dispositivi per reimpostare a 0, e provocando i dispositivi per iniziare a usare la rete di nuova chiave. Tutti i dispositivi saranno anche conservare la chiave precedente per un breve periodo di tempo fino a quando ognuno di noi ha commutato la nuova chiave. 13.4. Esempi 13.4.1. Configurare una rete utilizzando la protezione senza un Centro protezione Questo il modo pi semplice per la cifra di comunicazione in una padella. E 'necessario impostare una valida' Network Key'and il link 'Key'in il

coordinatore e il resto dei nodi a zero. In questo caso, quando i nodi aderire alla rete, coordinatore invier 'chiave di rete' in chiaro e che memorizzer la chiave per comunicare all'interno della rete. Coordinatore ^ (7. (<: DVSPRWH1HWZ.H \ FKDU1 FKDU /, 1 .. (< HQFU% = [ehh \ SWLRQ0RGH (QDEOH (QFU \ SWLRQ % = VHW ehh [/ LQN.H \ 1 (7. (6HW1HWZRUN.H \ < Ehh [=% VHW1HWZRUN.H \ /, 1 .. (\ 6HW/LQN.H < ' Dispositivi di congiungimento ^ FKDU /, 1 .. (< HQFU% = [ehh \ SWLRQ0RGH (QDEOH (QFU \ SWLRQ Ehh [=% VHW1HWZRUN.H \ /, 1 .. (\ 6HW/LQN.H < ' 13.4.2. Configurare una rete utilizzando la protezione e il coordinatore in Centro protezione Questo il modo pi sicuro per proteggere una rete. In questo caso, 'Network Key'unsecured di invio evitato e una comunicazione sicura all'interno della rete assicurata. Quando un nodo si unisce alla rete, il 'Network Key'is inviato dal Centro protezione cifrata con la 'Key Link'. e 'Link Coordinatore:' Network chiave 'Key' deve essere impostato a quelli selezionati. 'Opzioni di crittografia' deve essere impostato per consentire Trust Center. Dispositivi di congiungimento: 'Link Key'must essere identico a quello di coordinatore e Trust Center deve essere abilitato in' opzioni di crittografia '. Coordinatore ^ (7. (<: DVSPRWH1HWZ.H \ FKDU1 FKDU /, 1 .. (<: DVSPRWH / \ LQN.H HQFU% = [ehh \ SWLRQ0RGH (QDEOH (QFU \ SWLRQ % = VHW ehh [(QFU \ [SWLRQ2SWLRQV (QDEOH7UXVW & HQWHU % = VHW ehh [/ LQN.H \ 1 (7. (6HW1HWZRUN.H \ < Ehh [=% VHW1HWZRUN.H \ /, 1 .. (\ 6HW/LQN.H < ' Dispositivi di congiungimento ^ FKDU /, 1 .. (<: DVSPRWH / \ LQN.H HQFU% = [ehh \ SWLRQ0RGH (QDEOH (QFU \ SWLRQ % = VHW ehh [(QFU \ [SWLRQ2SWLRQV (QDEOH7UXVW & HQWHU Ehh [=% VHW1HWZRUN.H \ /, 1 .. (\ 6HW/LQN.H < ' Pagina 7 -57 v0.3 14. esempi di codice e le informazioni estese Per ulteriori informazioni sulla piattaforma hardware Waspmote vai a: http://www.libelium.com/waspmote

http://www.libelium.com/support/waspmote http://www.libelium.com/development/waspmote esempi di codice e le informazioni estese