DALI - Kasimashi/Systemes-embarques GitHub Wiki
DALI (Digital Addressable Lighting Interface)
DALI a été développé dans les années 2000. Il est dédié à l’éclairage. L’objectif premier de ce protocole est de pouvoir contrôler et configurer des ballasts fluorescents pour remplacer l’utilisation du 0-10V.
Dans le bâtiment, l’éclairage est reconnu pour avoir un impact conséquent sur l’environnement : dans le tertiaire, il peut représenter 30 à 40 % des consommations électriques
Pourtant, jusqu’à 60 % de ces consommations pourraient être économisées grâce à des technologies simples et économiques qui répondent aux contraintes de la gestion d'éclairage, en combinant la commande et le réglage de celui-ci en fonction de l’intensité de la lumière naturelle, de la présence de personnes, des horaires...
Le protocole DALI entre un contrôleur et des luminaires est une de ces technologies. Il permet une gestion optimale de l’éclairage par l'intermédiaire d'un bus appelé ligne DALI. L’allumage, l’extinction et la variation de l’éclairage sont commandés via cette ligne
DALI (Digital Addressable Lighting Interface) est un protocole ouvert et standard (IEC 62386) développé et soutenu par différents constructeurs(PHILIPS LIGHTING, SANDER , SEMTEC, etc ...) de ballasts électroniques, qui permet de gérer une installation d'éclairage par l'intermédiaire d'un bus de communication à deux fils.
L'association DALIAG (Digital Addressable Lighting Interface Activity Group) est chargée de la promotion et de la coordination des activités. Maintenant il s'agit de de DALI Alliance La norme DALI garantit l'interchangeabilité des produits des différents constructeurs
La technologie numérique utilisée par DALI permet :
- de contrôler individuellement 64 luminaires adressables, pouvant être regroupés pour constituer jusqu’à 16 groupes
- de commander précisément l’intensité lumineuse (gradation de 0,1% à 100% du flux lumineux par courbe logarithmique)
- de mémoriser 16 ambiances d’éclairement (scénarios de commande et de gestion)
- de connaître l’état de l’installation : remontées individuelles d’état des lampes
Zhaga est un consortium créé en février 2010. Il regroupe plus de 190 entreprises dans le domaine de l’éclairage. Objectif : créer un standard afin de permettre l’interchangeabilité entre les produits conçus par différents fabricants. Le D4i est une extension du programme de certification DALI 2. Zhaga s’est associé à DiiA (Digital Illumination Interface Alliance) pour créer une certification unique : le D4i dédiée aux luminaires intelligents et l’IoT (Internet of Things) afin de garantir une interopérabilité des luminaires, des capteurs, et des nœuds de communication de marques différentes. Ainsi, les drivers compatibles D4i ont la capacité de stocker et de récupérer des données des luminaires, d’énergie et de diagnostic. Le tout dans un format standardisé.
Par exemple, il permet à un fabricant d’intégrer des données sur le luminaire et lorsque celui-ci est installé. Les données sont facilement accessibles au réseau de contrôle de l’éclairage afin de superviser cet appareil. Aujourd’hui cette standardisation D4i est surtout appliquée aux luminaires extérieurs. Les applications intérieures étant un travail encore en cours.
Glossaire
Command | Description |
---|---|
Control Device | A device that transmits commands to other devices connected to the same bus. A control device can also receive commands and backward frames. |
Control Gear | A device that receives commands in order to control its output. |
Ballast | An electronic device that regulates current and voltage to the lamp. |
Frame | A packet of information consisting of a Start bit, command/data byte(s), and a Stop condition. |
Forward Frame | The frame sent by the control device to the control gear. A forward frame consists of a Start bit, an address byte, up to two data bytes, and a Stop condition. |
Backward Frame | The frame sent back to the control device from a responding control gear. The backward frame consists of a Start bit, one data byte, and a Stop condition. |
Command | A specific instruction intended to cause a reaction in a receiver. |
Short Address | The address of an individual control gear within the system. |
Group Address | The address of a group of control gears within the system. |
Broadcast | The address used to communicate with all control gears within the system. |
Arc Power | Power supplied to the lighting source. |
Direct Arc Power Control (DAPC) | A method that immediately sets an individual or multiple control gears to a specific power level. |
Scene | A configurable preset lighting level. |
Building Management System (BMS) | A computer-based control system installed in buildings that controls and monitors the mechanical and electrical equipment of a building. |
Spécification électrique
Le bus DALI fonctionne sur une plage de tension nominale comprise entre 0 V et 20,5 V et une plage de tension maximale absolue entre -6,5 V et 22,5 V. La chute de tension maximale autorisée aux bornes du bus est de 2 V. Le courant maximum du bus DALI est de 250 mA, chaque unité du bus étant limitée à une consommation de courant maximale de 2 mA.
Le niveau logique « haut » d'un dispositif de contrôle se situe entre 10 V et 22,5 V. Un niveau logique « bas » se situe entre 0 V et 4,5 V. La région de tension seuil (non définie) se situe entre 4,5 V et 10 V (voir la figure ci-dessous).
Branchement "type"
L'installation DALI est reliée par 3 fils pour l'alimentation :
- Le fil de phase qui permet de fournir l'alimentation
- Le fil du neutre
- Le fil de terre pour les fuites de courant pour la protection des utilisateurs. et d'un bus de donnée DALI constitué de 2 fils
- DALI +
- DALI - (signaux différentiels)
Le câblage peut se faire suivant une topologie de type bus ou de type étoile ou de type mixte (association des deux types).
La chute de tension maximale entre un contrôleur DALI et le ballast le plus éloigné ne doit pas dépasser 2V
La tension du bus DALI est continue, de l'ordre de 16 V La polarité est indifférente lors du raccordement (limitation des erreurs de câblage)
La section minimale des câbles à utiliser dépend de la longueur du réseau Avec une section de câble de 2,5 mm², il est possible d'atteindre une longueur de 300*2,5/1,5 = 500 mètres
Les groupes DALI
Les groupes permettent de regrouper plusieurs appareils DALI sur la même ligne, ce qui permet aux appareils d'effectuer une action ensemble.
Chaque appareil DALI peut être affecté à un ou plusieurs groupes. Ce regroupement permet d'envoyer des commandes en groupes, tous les membres du groupe réagissant à une commande de groupe individuelle. Si un appareil ne fait pas partie du groupe, il sera ignoré.
Les scènes DALI
Une scène est un "niveau d'arc" configurable qui peut être appliqué à un équipement de commande électronique (ECG). Un ECG peut avoir jusqu'à 12 valeurs de scène. Les scènes peuvent recevoir une étiquette pour chaque scène de chaque groupe DALI. Lorsqu'une commande de scène est envoyée via la ligne DALI, chaque appareil DALI reçoit la commande et vérifie sa mémoire. S'il a une action stockée, le dispositif DALI exécutera l'action, sinon il ignorera la commande.
Le protocole DALI
La spécification DALI basé sur IEC62386 est payante : DALI Specification
On retrouve plusieurs types de spécification comme par exemple :
- Part 101 : System
- Part 102 : Control gear
- Part 103 : Control devices
- Part 105 : Firmware update (etc ...)
Les échanges d'information se font sous forme de trames à la vitesse de 1200 bit/s. Les bits sont codés en biphasé (codage de type Manchester), le 0 logique correspond à une transition négative, le 1 logique, à une transition positive. Chaque période de bit dure 833,33 µs et chaque demi-bit dure 416,67 µs qu'on appellera TE par la suite. Les temps de période d'un demi-bit sont importants puisque le codage Manchester nécessite des transitions de deux bits pour chaque bit de données logiques. Le bit de poids fort(MSB) est envoyé en premier.
DALI 1
Forward frame
Une trame forward DALI 1.0 contient le bit de start, suivi de l'octet d'adresse, d'un octet de données et de deux bits de stop.
Backward frame
La réponse contient 11 bits : 1 bit de start + 1 octet de donnée + 2 bits de stop.
DALI 2
Forward Frame
Une trame forward DALI 2.0 contient le bit de start, suivi de l'octet d'adresse, jusqu'à deux octets de données et une condition d'arrêt (voir Figure 2). DALI 2.0 est une trame de 24 bits, y compris les bits de start et de stop, cette dernière dure 23,2 ms, soit environ 56 périodes d'un demi-bit, tandis que la trame forward de 16 bits dure 16,2 ms, soit 39 périodes d'un demi-bit.
Le contrôleur envoie une requête vers le ballast, puis reçoit une réponse de celui-ci. La requête contient 19 bits : 1 bit de start + 1 octet d'adresse + 1 octet de donnée + 2 bits de stop.
Exemple :
Backward Frame
La réponse contient 11 bits : 1 bit de start + 1 octet de donnée + 2 bits de stop.
Une trame Backward est le paquet de réponse transmis de l'équipement de contrôle au dispositif de contrôle. Une trame backward se compose du bit de start, d'un octet de données et d'une condition d'arrêt (voir la figure ci-dessus). Une trame backward, comprenant les bits de start et de stop, dure 9,95 ms (environ 24 périodes d'un demi-bit). L'octet de données peut avoir n'importe quelle valeur, en fonction de la commande émise par le dispositif de contrôle. Si l'octet de données d'une trame arrière est 0xFF, la réponse est considérée comme un « oui ». Si une réponse est attendue et que le bus reste inactif, la réponse est considérée comme un « non ».
Exemple :
Timing
Une fois que le dispositif de contrôle a terminé la transmission de la trame, l'appareillage de commande doit commencer à transmettre la trame vers l'arrière au plus tôt 5,5 ms (environ 14 demi-bits) et au plus tard 10,5 ms (environ 25 demi-bits). Une fois la trame arrière reçue dans son intégralité, l'appareil de contrôle doit attendre un minimum de 2,4 ms (environ six périodes d'un demi-bit) avant de transmettre la trame forward suivante.
Part 102 : Control GEAR
Quelques informations sur le part 102 :
Commandes DALI
Command | Opcode | Description |
---|---|---|
OFF | 0x00 | Switches off lamp(s) |
UP | 0x01 | Increases lamp(s) illumination level |
DOWN | 0x02 | Decreases lamp(s) illumination level |
STEP UP | 0x03 | Increases the target illumination level by 1 |
STEP DOWN | 0x04 | Decreases the target illumination level by 1 |
RECALL MAX LEVEL | 0x05 | Changes the current light output to the maximum level |
RECALL MIN LEVEL | 0x06 | Changes the current light output to the minimum level |
STEP DOWN AND OFF | 0x07 | If the target level is zero, lamp(s) are turned off; if the target level is between the min. and max. levels, decrease the target level by one; if the target level is max., lamp(s) are turned off |
ON AND STEP UP | 0x08 | If the target level is zero, lamp(s) are set to minimum level; if target level is between min. and max. levels, increase the target level by one |
ENABLE DAPC SEQUENCE | 0x09 | Indicates the start of DAPC (level) commands |
GO TO LAST ACTIVE LEVEL(1) | 0x0A | Sets the target level to the last active output level |
GO TO SCENE | 0x10 | Sets a group of lamps to a predefined scene |
CONFIGURATION INSTRUCTIONS | ||
DALI RESET | 0x20 | Configures all variables back to their Reset state |
STORE ACTUAL LEVEL IN DTR0 | 0x21 | Stores the actual level value into Data Transfer Register 0 (DTR0) |
SAVE PERSISTENT VARIABLES(1) | 0x22 | Stores all variables into Nonvolatile Memory (NVM) |
SET OPERATING MODE DTR0(1) | 0x23 | Sets the operating mode to the value listed in DTR0 |
RESET MEMORY BANK DTR0(1) | 0x24 | Resets the memory bank identified by DTR0 (memory bank must be implemented and unlocked) |
IDENTIFY DEVICE(1) | 0x25 | Instructs a control gear to run an identification procedure |
SET MAX LEVEL DTR0 | 0x2A | Configures the control gear's maximum output level to the value stored in DTR0 |
SET MIN LEVEL DTR0 | 0x2B | Configures the control gear's minimum output level to the value stored in DTR0 |
SET SYSTEM FAILURE LEVEL DTR0 | 0x2C | Sets the control gear's output level in the event of a system failure to the value stored in DTR0 |
SET POWER ON LEVEL DTR0 | 0x2D | Configures the output level upon power-up based on the value of DTR0 |
SET FADE TIME DTR0 | 0x2E | Sets the fade time based on the value of DTR0 |
SET FADE RATE DTR0 | 0x2F | Sets the fade rate based on the value of DTR0 |
SET EXTENDED FADE TIME DTR0(1) | 0x30 | Sets the extended fade rate based on the value of DTR0; used when fade time = 0 |
SET SCENE | 0x40 | Configures scene 'x' based on the value of DTR0 |
REMOVE FROM SCENE | 0x50 | Removes one of the control gears from a scene |
ADD TO GROUP | 0x60 | Adds a control gear to a group |
REMOVE FROM GROUP | 0x70 | Removes a control gear from a group |
SET SHORT ADDRESS DTR0 | 0x80 | Sets a control gear's short address to the value of DTR0 |
ENABLE WRITE MEMORY | 0x81 | Allows writing into memory banks |
QUERY INSTRUCTIONS | ||
QUERY STATUS | 0x90 | Determines the control gear's status based on a combination of gear properties |
QUERY CONTROL GEAR PRESENT | 0x91 | Determines if a control gear is present |
QUERY LAMP FAILURE | 0x92 | Determines if a lamp has failed |
QUERY LAMP POWER ON | 0x93 | Determines if a lamp is On |
QUERY LIMIT ERROR | 0x94 | Determines if the requested target level has been modified due to max. or min. level limitations |
QUERY RESET STATE | 0x95 | Determines if all NVM variables are in their Reset state |
QUERY MISSING SHORT ADDRESS | 0x96 | Determines if a control gear's address is equal to 0xFF |
QUERY VERSION NUMBER | 0x97 | Returns the device's version number located in memory bank 0, location 0x16 |
QUERY CONTENT DTR0 | 0x98 | Returns the value of DTR0 |
QUERY DEVICE TYPE | 0x99 | Determines the device type supported by the control gear |
QUERY PHYSICAL MINIMUM | 0x9A | Returns the minimum light output that the control gear can operate at |
QUERY POWER FAILURE | 0x9B | Determines if an external power cycle occurred |
QUERY CONTENT DTR1 | 0x9C | Returns the value of DTR1 |
QUERY CONTENT DTR2 | 0x9D | Returns the value of DTR2 |
QUERY OPERATING MODE(1) | 0x9E | Determines the control gear's operating mode |
QUERY LIGHT SOURCE TYPE(1) | 0x9F | Returns the control gear's type of light source |
QUERY ACTUAL LEVEL | 0xA0 | Returns the control gear's actual power output level |
QUERY MAX LEVEL | 0xA1 | Returns the control gear's maximum output setting |
QUERY MIN LEVEL | 0xA2 | Returns the control gear's minimum output setting |
QUERY POWER ON LEVEL | 0xA3 | Returns the value of the intensity level upon power-up |
QUERY SYSTEM FAILURE LEVEL | 0xA4 | Returns the value of the intensity level due to a system failure |
QUERY FADE TIME FADE RATE | 0xA5 | Returns a byte in which the upper nibble is equal to the fade time value and the lower nibble is the fade rate value |
QUERY MANUFACTURER SPECIFIC MODE(1) | 0xA6 | Returns a 'YES' when the operating mode is within the range of 0x80 - 0xFF |
QUERY NEXT DEVICE TYPE(1) | 0xA7 | Determines if the control gear has more than one feature, and if so, return the first/next device type or feature |
QUERY EXTENDED FADE TIME(1) | 0xA8 | Returns a byte in which bits 6-4 is the value of the extended fade time multiplier and the lower nibble is the extended fade time base |
QUERY CONTROL GEAR FAILURE(1) | 0xAA | Determines if a control gear has failed |
QUERY SCENE LEVEL | 0xB0 | Returns the level value of scene 'x' |
QUERY GROUPS 0-7 | 0xC0 | Returns a byte in which each bit represents a member of a group. A '1' represents a member of the group |
QUERY GROUPS 8-15 | 0xC1 | Returns a byte in which each bit represents a member of a group. A '1' represents a member of the group |
QUERY RANDOM ADDRESS H | 0xC2 | Returns the upper byte of a randomly generated address |
QUERY RANDOM ADDRESS M | 0xC3 | Returns the high byte of a randomly generated address |
QUERY RANDOM ADDRESS L | 0xC4 | Returns the low byte of a randomly generated address |
READ MEMORY LOCATION | 0xC5 | Returns the content of the memory location stored in DTR0 that is located within the memory bank listed in DTR1 |
QUERY EXTENDED VERSION NUMBER | 0xFF | Returns the version number belonging to the device type or feature |
SPECIAL COMMANDS | ||
TERMINATE | 0xA1 | Stops the control gear's initilization |
DTR0 DATA | 0xA3 | Loads a data byte into DTR0 |
INITIALISE | 0xA5 | Initializes a control gear, command must be issued twice |
RANDOMIZE | 0xA7 | Generates a random address value, command must be issued twice |
COMPARE | 0xA9 | Compares the random address variable to the search address variable |
WITHDRAW | 0xAB | Changes the initialization state to reflect that a control gear had been identified but remains in the initialization state |
PING(1) | 0xAD | Used by control devices to indicate theirm presence on the bus |
SEARCH ADDRH | 0xB1 | Determines if an address is present on the bus |
SEARCH ADDRM | 0xB3 | Determines if an address is present on the bus |
SEARCH ADDRL | 0xB5 | Determines if an address is present on the bus |
PROGRAM SHORT ADDRESS | 0xB7 | Programs a control gear's short address |
VERIFY SHORT ADDRESS | 0xB9 | Verifies if a control gear's short address is correct |
QUERY SHORT ADDRESS | 0xBB | Queries a control gear's short address |
ENABLE DEVICE TYPE | 0xC1 | Enables a control gear's device type function |
DTR1 DATA | 0xC3 | Loads a data byte into DTR1 |
DTR2 DATA | 0xC5 | Loads a data byte into DTR2 |
WRITE MEMORY LOCATION | 0xC7 | Writes data into a specific memory location and returns the value of the data written |
WRITE MEMORY LOCATION NO REPLY(1) | 0xC9 | Writes data into a specific memory location but does not return a response |
Exemple
La salle de réunion ci-dessous est divisée en 4 groupes fonctionnels de luminaires
Suivant la fonction de la salle à un instant donné, un ou plusieurs groupes de lampes sont mis en service
Le système DALI permet, par l'intermédiaire d'un contrôleur, la mise en marche, l'arrêt, le réglage du niveau d'éclairement, le traitement des défauts éventuels...
Le BALLAST
Le ballast permet de fournir la haute tension nécessaire à l'amorçage du tube fluorescent puis de limiter la tension lorsque le tube est allumé Le ballast-ferromagnétique est progressivement remplacé par le ballast électronique qui fonctionne à une fréquence de l'ordre de 20 kHz et qui assure un meilleur rendement de l'ensemble tube-ballast Le ballast électronique peut disposer d'une ligne DALI comme dans l'exemple ci-dessous.
Les ballasts sauvegardent dans leur propre mémoire les adresses, les groupes et les scènes
Ex: Circuit d'un ballast (AN 809)
Ex: Diagramme de fonctionnement d'un ballast (AN809)