Simuler un lecteur Wiegand

Simuler un lecteur Wiegand

Nous vous avons montré dans un précédent article comment utiliser un Yocto-Serial pour décoder des messages Wiegand par USB, par exemple pour interfacer un lecteur RFID. Et comme nous pouvions nous y attendre, nous avons reçu un peu plus tard la demande inverse: peut-on aussi envoyer des messages Wiegand avec la même interface USB? La réponse est oui, c'est désormais aussi possible. Voyons comment...



Revenons à la base pour comprendre comment brancher correctement le Yocto-Serial en mode Wiegand. Comme nous vous l'avions expliqué dans le premier article, une ligne de communication Wiegand comporte deux fils, plus le fil de terre. Mais contrairement à une ligne série habituelle, il ne s'agit pas d'un fil pour envoyer et l'autre pour recevoir, mais d'un fil pour envoyer les "1" et l'autre fil pour envoyer les "0". Les deux fils sont maintenus vers 5V au repos, et l'émetteur d'un message tire en alternance l'un ou l'autre vers la terre pour envoyer chaque bit, en respectant des délais spécifiés.

En réalité, même si en général il n'y a qu'un seul émetteur de messages Wiegand et un seul récepteur, une ligne de communication Wiegand pourrait parfaitement travailler comme un bus: il peut y avoir autant de noeuds qui écoutent les messages qu'on le désire, et tous les messages ne viennent pas forcément du même noeud. Il suffit donc de mettre en parallèle tous les noeuds sur les fils D0 et D1. Voici par exemple comment on pourrait rajouter un Yocto-Serial sur une ligne Wiegand entre un lecteur RFID et une serrure électronique:

Raccordement d'un Yocto-Serial à un bus Wiegand
Raccordement d'un Yocto-Serial à un bus Wiegand


Jusqu'à présent, dans cette configuration, vous pouviez déjà enregistrer tous les messages (identifiants de badge) envoyés par le lecteur RFID à la serrure électronique. Mais désormais, si vous mettez à jour le firmware de votre Yocto-Serial, la même configuration vous permettra aussi d'envoyer des messages Wiegand sur le bus, pour actionner la serrure. Cela peut vous permettre par exemple d'utiliser d'autres moyens de contrôle d'accès, comme des QR-code à usage unique ou une identification par une méthode NFC plus moderne, sans devoir retoucher l'infrastructure de la serrure elle-même: le Yocto-Serial se contentera d'émuler la présence d'un simple badge RFID correspondant à la personne identifiée.

Extension d'un système Wiegand par une passerelle
Extension d'un système Wiegand par une passerelle



Comme pour la réception, le Yocto-Serial vous permet de choisir entre un mode Wiegand ASCII où vous envoyez directement une chaîne de "0" et de "1" correspondant au message Wiegand désiré, utilisable quelle que soit la convention d'encodage de votre système, et deux formats standards Wiegand-26 et Wiegand-34 permettant l'envoi de trois respectivement quatre octets, qui seront automatiquement convertis en binaire, en rajoutant les bits de parité au début et à la fin du message.

// Récupération du Yocto-Serial utilisé pour le contrôle d'accès
YSerialPort wiegand = YSerialPort.FindSerialPort("myAccessSystem");

// Envoi du badge F0137F (parité calculée automatiquement)
wiegand.setProtocol("Wiegand-26");
wiegand.writeHex("F0137F");

// Envoi équivalent, sous forme de code binaire libre
wiegand.setProtocol("Wiegand-ASCII");
wiegand.writeStr("11111000000010011011111110");



Au passage, vous aurez remarqué l'absence totale de cryptographie ou de signature dans les messages Wiegand. De ce fait, la sécurité de l'installation repose entièrement sur la sécurisation de la ligne de communication physique. Si quelqu'un d'autre a la possibilité de brancher un Yocto-Serial sur votre ligne Wiegand, il pourra y faire tout ce qu'il voudra. Donc ne laissez aucun câble apparent...

Commenter aucun commentaire Retour au blog












Yoctopuce, get your stuff connected.