![]() |
AvrIO
1.4.5
Bibliothèque C modulaire pour ATMEL AVR
|
Le logiciel iDwaRF-Net permet de porter le protocole WirelessUSB de Cypress sur le microcontrôleur AVR ATmega168. Le module iDwaRF-168, programmable à volonté, assume avec une égale facilité le rôle de concentrateur ou de capteur dans un réseau radio N:1 de capteurs. Il est facile d'inclure des fonctions propres à l'utilisateur.
WirelessUSB fonctionne dans la bande ISM 2,4 GHz. Chaque réseau radio WirelessUSB dispose d'un choix de 79 canaux.
Le protocole trouve toujours un canal libre, même avec un grand nombre d'appareils WirelessUSB utilisés simultanément. La transmission repose sur un processus DSSS (Direct Sequence Spread Spectrum) robuste, de sorte que la réception des données est encore assurée avec un taux d'erreur de 10%. Le protocole change automatiquement de canal en cas de perturbations récurrentes.
Semblable en cela à Bluetooth, WirelessUSB existe en version pour zone locale (LS) jusqu'à 10 m et en version à longue portée (LR) atteignant 50 m.
Le module iDwaRF-168 est basé sur cette dernière version.
![]() |
Modules | |
Capteur WirelessUSB iDwaRF | |
Hub WirelessUSB iDwaRF | |
Structures de données | |
union | _MID |
Fonctions | |
void | avrSleep (void) |
Endormir le microcontrôleur pendant une tranche de temps de 125 ms. Cette fonction peut être appelée afin de placer le microcontrôleur en veille (mode Power-down) pendant une tranche de temps de 125 ms. Le réveil est provoqué par une interruption du chien de grade. | |
void | rfInit (void) |
Initialise toutes les ressources utilisées par le firmware iDwaRF. Plus de détails... | |
void | rfProcessAll (void) |
Effectue toutes les tâches du firmware. Plus de détails... | |
Macros | |
#define | IDWARF_BACKDATA_SIZE 16 |
Nombre d'octets nécessaires pour stocker les informations d'un capteur. Plus de détails... | |
#define | IDWARF_PAYLOAD_SIZE (IDWARF_BACKDATA_SIZE - 7) |
Nombre maximum d'octets pouvant être transmis dans une trame WirelessUSB. Plus de détails... | |
#define | IDWARF_SLEEP_TIME(__sec) (U16)((__sec) / 125E-3) |
Convertir un temps en seconde en nombre de tranches de temps. Plus de détails... | |
Définitions de type | |
typedef int16_t | I16 |
Entier de 16 bits signé | |
typedef int32_t | I32 |
Entier de 32 bits signé | |
typedef int8_t | I8 |
Entier de 8 bits signé (octet) | |
typedef union _MID | MID |
Identifiant fabricant d'une puce RF. | |
typedef uint16_t | U16 |
Entier de 16 bits non signé | |
typedef uint32_t | U32 |
Entier de 32 bits signé | |
typedef uint8_t | U8 |
Entier de 8 bits non signé (octet) | |
Énumérations | |
enum | PACKET_TYPES { BIND_REQUEST_PACKET = 0x00, BIND_RESPONSE_PACKET = 0x01, PING_PACKET = 0x02, ACK_PACKET = 0x03, FIXED_DATA_PACKET = 0x04, VARIABLE_DATA_PACKET = 0x05, NO_PACKET = 0xFF } |
Type de paquets transmis sur le réseau. Plus de détails... | |
enum | PROTOCOL_STATUS { TX_SYNC_DATA = 0x01, BIND_ACK = 0x02, AUTO_BIND = 0x04, SEEDED_BIND = 0x08, NODE_BOUND = 0x10, BIND_ENABLED = 0x20, BIND_INIT = 0x40, BINDING = 0x80 } |
Drapeaux d'état du réseau. | |
#define IDWARF_BACKDATA_SIZE 16 |
Nombre d'octets nécessaires pour stocker les informations d'un capteur.
Ne pas être modifié < > car l'implémentation du DVK CYPRESS utilise le décalage de 4 rangs vers la droite ou la gauche au lieu de faire des divisions ou des multiplications par cette valeur.
#define IDWARF_PAYLOAD_SIZE (IDWARF_BACKDATA_SIZE - 7) |
Nombre maximum d'octets pouvant être transmis dans une trame WirelessUSB.
7 octets sont nécessaires pour la gestion du capteur :
#define IDWARF_SLEEP_TIME | ( | __sec | ) | (U16)((__sec) / 125E-3) |
enum PACKET_TYPES |
Type de paquets transmis sur le réseau.
Valeurs énumérées | |
---|---|
FIXED_DATA_PACKET |
Data packet of fixed length as defined by SIZE_OF_FIXED_DATA_PACKET |
VARIABLE_DATA_PACKET |
Data packet of variable length |
Définition à la ligne 67 du fichier iprotocol.h.
void rfInit | ( | void | ) |
Initialise toutes les ressources utilisées par le firmware iDwaRF.
Dans la version ATmega168/328 (iDwaRF Node), les ressources utilisées sont les suivantes :
Broche | Fonction | Sens |
---|---|---|
INT0 | IRQ | In |
PC0 | /PD | Out |
PC1 | /RESET | Out |
PB2 | /SS | Out |
PB3 | MOSI | Out |
PB4 | MISO | In |
PB5 | SCK | Out |
void rfProcessAll | ( | void | ) |
Effectue toutes les tâches du firmware.
Cette fonction effectue toutes les tâches nécessaires au fonctionnement du firmware.
Pour le hub :
Pour le capteur :
Cette fonction doit être appellée à chaque itération de la boucle infinie du programme principal.