• Aucun résultat trouvé

CHAPITRE 5 MODULE DE RÉVEIL ASYNCHRONE

5.1 Présentation Générale

5.3.3 Circuit proposé

Dans ce contexte, nous proposons de concevoir un module de réveil ayant les particularités d’être conçu en logique asynchrone et sur FPGA. Avant de discuter des avantages d’un tel circuit par rapport à un traitement synchrone dans la sous-partie 5.6.2, nous présentons ici son fonctionnement ainsi que son architecture générale.

5.3.3.1 Fonctionnement

Ayant présenté la démodulation analogique du signal, on supposera dans cette partie que le signal arrivant en entrée de la partie numérique considérée a été ramené en bande de base et à un niveau logique suffisant pour être détecté. L’objectif du circuit à concevoir est alors le suivant :

Vérifier que le message reçu correspond à un message de réveil et qu’il concerne l’animat sur lequel est embarqué le module de réveil. Si tel est le cas, générer un signal d’interruption.

La reconnaissance du type de message de réveil est évaluée à partir de l’entête et du respect de l’espace entre deux trames. La vérification du nœud de destination se fait par comparaison de chaque symbole reçu avec ceux de trois adresses de références. Ces adresses peuvent être modifiées par l’utilisateur via un protocole SPI simplifié. La simplification réside dans le fait que le module conçu ne peut être utilisé que comme esclave de ce protocole et qu’il ne met pas à jour certains registres d’états. De plus, seule l’écriture est possible. Sur les trois adresses de références

deux contiennent 16 bits et la dernière en contient 64. L’utilisation suggérée est d’utiliser l’adresse de 64 bits pour l’adresse MAC du nœud porteur de ce module de réveil et une des adresses de 16 bits pour son adresse réseau. La troisième adresse a été ajoutée dans le but de permettre un réveil collectif ou de cibler certains groupes.

À chaque symbole reçu, une comparaison est effectuée avec le symbole correspondant des trois adresses de références et le résultat généré est combiné aux résultats des comparaisons des symboles antérieurs du message. Si à la fin de la réception, il y a une concordance avec au moins une des adresses de référence, alors une interruption est générée.

5.3.3.2 Architecture Générale

L’architecture générale se décompose en trois sous-parties internes notées Front-End,

Comparateur et Communication SPI. En plus de la partie analogique de démodulation, ce circuit

requiert une partie externe lui permettant de fournir une base de temps afin de retrouver l’information codée avec la modulation OOK. Cette partie peut-être constituée de ligne à délais (et par conséquent être éventuellement conçue à l’intérieur du chip) ou des circuits de types RC. L’architecture générale est alors représentée sur la Figure 5-12.

Front-End :

Ce premier bloc a deux principales fonctions : recevoir les signaux du monde extérieur et les convertir en représentation sur deux fils, ainsi que de décoder l’information temporelle contenue dans chacun des signaux d’entrée. Cela comprend notamment la gestion de la charge/décharge des lignes à délais. La Figure 5-13 résume sous-forme de logigramme le fonctionnement de la partie décodage.

Comparateur :

Ce second bloc reçoit les informations décodées du module précédent et par un jeu de pointeur compare chaque symbole reçu avec le symbole correspondant pour les trois adresses de référence en parallèle. Le résultat de ces comparaisons est alors accumulé dans des fonctions ET à mémoire de telle manière qu’à la fin de la réception la seule possibilité pour qu’au moins une des sorties de ces trois portes soit active est qu’il y ait eu une correspondance entre le message reçu et au moins une des trois adresses de référence.

Figure 5-12. Architecture générale du module de réveil

On remarquera que tout comme l’adresse de 64 bits, les adresses de 16 bits sont configurables par l’utilisateur. Par conséquent, il n’est pas impossible que ces deux soient identiques conduisant ainsi à deux résultats de correspondance actifs à la fin de la réception. La porte OU récupérant les résultats de comparaison est inhibée par un signal provenant du module précédent et qui reste inactif tant que la fin du message n’a pas été reçue. Cela permet d’éviter les interruptions avant la fin de la totalité de la comparaison.

Communication SPI :

Finalement, ce dernier bloc permet à l’utilisateur, via un microcontrôleur par exemple, de configurer les trois adresses de référence. On notera que, bien que le protocole SPI requiert une horloge, celle-ci sera fournie par le microcontrôleur à l’initialisation et normalement plus jamais après. De ce fait, nous pouvons considérer en régime permanent que ce module est aussi asynchrone. Pour le reste, le fonctionnement de ce module est relativement simple. Lorsque la pin

est désactivée le module écoute les informations provenant de l’extérieur sur sa pin lorsque des fronts d’horloge sur la pin sont détectés. Sur les deux premiers fronts d’horloge, les valeurs de permettent de déterminer le champ à écrire comme exprimé dans le Tableau 5.2. Par ailleurs, les 8, 16 ou 64 valeurs suivantes seront placées dans des registres NCL correspondant et converties en représentation sur deux fils à la volée. On notera que tant que les trois adresses de référence et le préambule ne sont pas initialisés, le reste du circuit est placé dans un mode inactif.

Tableau 5.2. Code d'opérations du module de communication SPI

Code Registre modifié

00 Préambule

01 Adresse réseau 16 bits 10 Adresse de groupe 16 bits