APPLICATION DOMOTIQUE UTILISANT LE BUS CAN
Cette page décrit la réalisation d'une application domotique utilisant le bus CAN. Le bus CAN a été choisi car il est très robuste, il gère automatiquement les conflits de protocole et les erreurs de communication, il limite le passage de cables puisqu'il nécessite seulement 2 conducteurs (+ 2 pour l'alimentation) du type cable téléphonique et il est très rapide.
Cette application domotique est installée dans un maison individuelle, elle permet de :
Le schema synoptique ci dessous montre les differents composants de ce systeme domotique. Les modules 1 a 4 sont répartits dans l'habitation pour collecter l'état des capteurs les plus proches, le module 5 et la console sont proches des entrées de l'habitation pour offrir un clavier de saisie du code de déverrouillage de l'alarme. La console est munie d'un afficheur LCD permettant le parametrage du systeme. La centrale étant depourvue de clavier et d'afficheur, elle se contente d'analyser et de gerer l'ensemble du systeme.
Les modules 1 a 4 sont identiques, ils collectent l'etat des capteurs IR, contact issues, température et état des luminaires et envoient l'information sur le bus CAN. Ces modules utilisent un circuit Philips SLIO ne necessitant pas de microcontroleur, ils sont totalement autonomes, répondent aux trames contenant leur identifiant (different a chaque module. Le champ Data de la trame retournée contient un état des capteurs.
Le module 5 est plus particulier car il contient un petit clavier de saisie.
La console est plus complexe car elle permet l'interface entre l'utilisateur et la centrale. Un microcontroleur est necessaire pour piloter un afficheur LCD 2X16 caracteres et un clavier 16 touches. l'interface avec le bus CAN est assurée par le circuit Philips 82C200. Le logiciel en C embarqué dans la mémoire pilote le micro 80C31 : 5 trames CAN differentes sont gerees par la console, chaque trame a un identifiant different. 4 trames sont utilisées pour l'afficheur LCD (une trame transporte 8 octets de données, soit 4X8 = 32 caracteres de l'afficheur), la 5eme trame est utilisé pour retourner le code de la touche clavier appuyée.
La centrale est beaucoup plus complexe, elle utilise un microcontroleur Philips 80C592 incluant l'interface CAN avec acces par DMA interne. Une horloge temps reel permet d'avoir une gestion fiable du calendrier sans se prendre la tête, et en plus contient une RAM sauvegardée pour le stockage des parametres systemes. La memoire RAM permet de sauvegarder l'historique de tous les évenements (erreur systeme, activation/ declenchement/desactivation de l'alarme). Le logiciel embarqué est en C avec un "semblant" de noyau multitaches. Je dis bien "semblant" car il est loin de gerer toutes les fonctionnalités d'un multitache : il gere une tache principale qui est le programme principal. Par contre, toutes les operations de dialogue bus CAN, resynchro des SLIO, collect de l'horloge RTC, affichage LED,.. sont gerées par un jonglage entre routines d'interuption.
Ce système fonctionne depuis 2000 sans souci. La robustesse du bus CAN est impressionnante, les erreurs de dialogue sont automatiquement corrigées sans intervention externe. Les WatchDog connectés sur les microcontroleurs sont très efficaces, ils permettent le redémarrage du CPU en cas d'anomalies ou plantages. Je reste a votre disposition pour toutes questions sur cette application.
Eric DELAUNAY
aaaaaaaaaaaa@ifrance.com
Afin de limiter le spam, merci de remplacer aaaaaaaaaaaa par ericdelaunay
Mentions légales & Copyright : l'ensemble des documents et informations mis à votre disposition sont libres d'utilisation à des fins personnelles mais en aucun cas ils ne peuvent être reproduits sans accord ou être détournés à des fins commerciales. L'utilisation à des fins pédagogiques est permise à la condition expresse de prévenir le webmaster de ce site, d'une part, et d'informer l'existence de ce site de référence, d'autre part.