Forum: Mikrocontroller und Digitale Elektronik DALI Automatische Adressierung


von Hans (Gast)


Lesenswert?

Hallo

Ich habe DALI am Laufen mit einem Mega128. Läuft gut. Jetzt habe ich 
aber das Problem, dass ich ca. 60 Geräte am Bus habe. Alle Jungfräulich 
und ohne Adresse. Physikalische-und Einzeladressierung vor 
Inbetriebnahme jedes Gerätes geht nicht mehr. Ich möchte jetzt auch eine 
automatische Adressierung implementieren, so wie es Tridonic, Osram ect. 
auch machen.

Das geht über die DALI Spezial Commands. Habe ich gelesen aber nicht 
ganz verstanden.

Der Controller teilt den Ballasts mit, sie sollen sich eine Zufallszahl 
zwischen 0 und ca. 21 Mill. ausdenken (Seriennummer). Aufgeteilt in 3 
Bytes (high, middle,low adress). Dann sollen sie die Adressen mit der, 
die ihnen der Controller geschickt hat vergleichen. Jener Ballast der 
gleich oder niedriger ist, soll mit ja antworten. Die anderen sollen 
sich aus der Adresssierung heraushalten. Was ist aber, wenn 20 Ballasts 
eine niedrigere Seriennummer errechnet haben? Diese würden dann alle mit 
"ja" antworten...

Kann mir bitte jemand diese Adressvergabe näher erläutern?

Danke

von Oliver J. (skriptkiddy)


Lesenswert?

Hans schrieb:
> Das geht über die DALI Spezial Commands. Habe ich gelesen aber nicht
> ganz verstanden.

Hast du vielleicht einen Link zur Quelle?

Gruß Oliver

von Hans (Gast)


Lesenswert?

Ja habe ich:

http://www.archenergy.com/lrp/lightingperf_standards/DALI%20V1_13.pdf

Seite 36..

Hier ein Auszug:


5.4.4 Examples of Automatic Short Address Assignment
5.4.4.1 Controllers Installed in a System Using Random Addressing

The following commands can be sent as Broadcast or for selected Controls 
Type units by selecting the appropriate Address Byte.

I. Start the algorithm with command 27 “Extended Initialize” which 
enables the next addressing command for 15 minutes.

II. Send command 28 “Extended Randomize”. All controller that are 
specified in the Address Byte will create a binary random number (BRN) 
so that 0<_ BRN <_ +224-1.

III. The controller performing the addressing searches the controller 
with the lowest BRN by means of an algorithm which uses command 31 to 33 
(Extended SEARCHADDRH, Extended SEARCHADDRM, Extended SEARCHADDRL) and 
command 29 “Extended Compare”. The controller with the lowest BRN is 
found.

IV. The found controller will have assigned a unique short address with 
the command 34 “Extended Program short Address”.

V. Verify the assigned short address with command 36 “Extended Verify 
short address”

VI. The found controller shall be retracted from the search process by 
means of command 30 “Extended Withdraw”.

VII. If not all controller are found, repeat from step III on until no 
further unit can be found.

VIII. Stop the process by sending command 26 “Extended Terminate”.




Thanks..

von Martin T. (mthomas) (Moderator) Benutzerseite


Lesenswert?

Der "Trick" ist, den Adressbereich stetig zu halbieren. Antwortet 
zumindest ein Gerät auf COMPARE mit DALI-"YES", wird nach unten (hin zu 
kleinen Search-Adressen) halbiert, ansonsten nach oben (zu höheren 
Adressen), Bereichsgrenze per SEARCHADDRH/N/L schreiben (binäre Suche).
Nach ein paar Durchläufen bleibt dann noch ein Gerät übrig, das ist 
dasjenige mit der kleinesten Random-Address, dem noch keine Kurzadresse 
zugeweisen wurde. Diesem weist man dann die nächste freie short-address 
zu (programm short address) und verhindert, dass es weiter auf 
COMPARE-Anfragen antwortet (per WITHDRAW). Dies so lange wiederholen, 
bis kein Gerät mehr auf COMPARE antwortet, als alle WITHDRAWn sind und 
folglich eine Kurzadresse erhalten haben.

Eine einfache Suche bei der die Search-Address ab 0 einfach immer nur um 
eins erhöht wird, bis eine Gerät mit "Yes" antwortet würde auch 
funktionieren aber viel zu lange dauern.

Zur Ermittlung der noch freien Kurzadressen ist es von Vorteil vorher 
per Query mit Adressangabe die bereits belegten Kurzadressen 
auzuschliessen.

Möglicherweise war die Zufallsadresse bei mehreren Geräten gleich, dann 
haben diese auch die selbe Kurzadresse erhalten. Dann muss der Ablauf 
nur für diese Geräte nochmals wiederholt werden (INITIALISE mit 
Adressangabe).

von Hans (Gast)


Lesenswert?

Vielen Dank für die kompetente Antwort!

Leider blicke ich noch nicht ganz durch :-(

Kannst du bitte noch ein Beispiel wie solch eine Suchaktion ablaufen 
könnte posten?
ZB mit 5 Teilnehmern mit Adressen 1101,2201,3301,4401,5005?



schöne Grüße Hans

von Choleriker (Gast)


Lesenswert?

Guckst du..

Kennst du das kalt, warm heiß Spiel...?  ;-)

Ich könnte mir vorstellen, dass das so funktioniert:


ZB ID des Ballasts: 9340

Master beginnt mit 100000.
Antwort: yes

Master: 50000
Antwort:yes

Master: 25000
Antwort:yes

Master: 12500
Antwort:yes

Master: 6250
Antwort:nix

Master: 9375 (6250 +  6250/2)
Antwort:yes


Master: 7812  (9375 -(6250/4))
Antwort:nix


Müßte jetzt schon reichen für eine Short Adress Zuweisung bei ZB 100000
Adress-Möglichkeiten (nur 7 Abfragen bei 100T mögl.Adressen). Es ist 
noch ein unbestimmter Adressbereich von 1563 offen. Wenn jeman Lust hat, 
kann er ja etwas C Code reinstellen. Finde ich eine ganz gute 
Möglichkeit, automatische Adressierungen durchzuführen (für jedes 
Bussystem).

Bei DALI funktioniert das eigentlich ganz gut. Hier machen das sogar die
GR Tastsensoren von alleine (auf Wunsch). Das ist sehr angenehm für 
kleine Beleuchtungsprojekte. Bei EIB/KNX brauchst dafür ein paar K€ und 
einen Hochschulabsolventen um einen Taster zu programmieren ;-)




Schöne Grüße

von Hans (Gast)


Lesenswert?

Vielen Dank an alle!




Schöne Grüße Hans

von Andreas B. (lawert)


Lesenswert?

Hallo Hans,

ich suche gerade (für mein Häusle) GENAU nach dem was du schon umgesetzt 
hast (Dali auf Atmel)  - würde mich sehr freuen wenn du mir "Starthilfe" 
geben könntest.

Vielleicht kannst du dich ja bei mir melden: s_andreas_@hotmail.com


Grüße: Andreas

von Klaus L. (keyel80)


Lesenswert?

Falls dies noch jemand interessiert:

ich bin gerade dabei, mir für mein Haus ein DALI-System zu stricken. Der 
finnische Hersteller "HASSEB" vertreibt für 75€ incl. Versand einen USB 
DALI Master mit eingebauter Bus-Stromversorgung. Schaltplan und Software 
sind offen gelegt: http://www.hasseb.fi/dali/hasseb_dali_master.zip

Sowohl Hardware als auch die PC-Software ähneln sehr (;-)) dem 
LPC1343-DALI-Master von NXP 
(http://www.lpcware.com/content/nxpfile/an11174-and-an11175-lpc11xxlpc13xx-dali-release-20). 
Aus den Sourcen der PC-Software geht sehr schön hervor, wie das 
Commissioning bei DALI funktioniert.

Vorsicht: Nach dem zweiten Blick auf den Schaltplan erkenne ich, dass 
die für Dali notwendige Strombegrenzung in der Schaltung fehlt. Ich 
frage mich echt, ob und wie das funktioniert.

Mein Ziel ist es, mit dem DALI CLICK und dem STM32F4-discovery einen 
preiswerten modularen DALI-Master aufzubauen, der mit bereits 
verfügbarer freier Commissioning-Software zusammen arbeitet. Falls 
jemand an den bisherigen Ergebnissen interessiert ist -> bitte melden!

Viele Grüße
Klaus

: Bearbeitet durch User
von Gerd E. (robberknight)


Lesenswert?

Klaus L. schrieb:
> Vorsicht: Nach dem zweiten Blick auf den Schaltplan erkenne ich, dass
> die für Dali notwendige Strombegrenzung in der Schaltung fehlt. Ich
> frage mich echt, ob und wie das funktioniert.

Du sprichst von der Hasseb-Schaltung die Du verlinkt hast?

Bitte schau Dir die nochmal ganz genau an. Ich sehe sogar 2 Elemente die 
da den Strom begrenzen.

von Klaus L. (keyel80)


Lesenswert?

Danke (mal wieder) Gerd! Richtig, es hängen dann ja noch T1 und R3 im 
Strompfad und können so den Stromfluss begrenzen!

Leider kann ich meinen Beitrag nicht mehr korrigieren.

Viele Grüße

Klaus

von Gerd E. (robberknight)


Lesenswert?

Klaus L. schrieb:
> T1

richtig.

> und R3

naja, der macht den Kohl nicht wirklich fett.

Ich dachte eher an den LM317 und seinen Übertemperaturschutz.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.