05.04.2014, 14:12
Beitrag #1
|
akr74000
LVF-Grünschnabel
Beiträge: 18
Registriert seit: Jan 2014
2012
2014
DE
|
IRQ wird überhaupt bestätigt?
hallo LV-Freunde,
kann jemand mir helfen? ich will nur wissen, wann die IRQ auftritt die 3 Bilder sind nützlich. Read/write laufen auf dem cRio und fpga auf dem fpga.
für eine Antwort wäre ich sehr dankbar.
gruß
|
|
|
05.04.2014, 16:31
Beitrag #2
|
cb
LVF-SeniorMod
Beiträge: 1.731
Registriert seit: Feb 2006
2018SP1
2001
EN
40xxx
Deutschland
|
RE: IRQ wird überhaupt bestätigt?
ein IRQ wird immer vom FPGA-VI gesendet und vom RT-VI bestätigt.
Man kann den IRQ auch dann auf dem RT-VI bestätigen wenn das FPGA-VI gar nicht auf eine Bestätigung wartet, das stört nicht, aber wenn das FPGA-VI auf eine Bestätigung wartet, dann MUSS man nach dem Eintreffen eines IRQs dieser auch vom RT-VI bestätigt werden, sonst hängt das FPGA-VI in einer endlos-Schleife und schickt keine weiteren IRQs mehr ...
Grüße
cb
|
|
|
12.04.2014, 21:02
(Dieser Beitrag wurde zuletzt bearbeitet: 12.04.2014 21:09 von akr74000.)
Beitrag #3
|
akr74000
LVF-Grünschnabel
Beiträge: 18
Registriert seit: Jan 2014
2012
2014
DE
|
RE: IRQ wird überhaupt bestätigt?
vielen Dank cb für diese Informationen.
gruß
akr74000
Guten Tag LV-Freunde,
ich habe noch eine zweite Frage, wie wird das letztes Bild (write-vi) theoretisch funktionieren? und warum wurde 2 fifos benutzt?
Danke im voraus
Gruß
akr74000
|
|
|
13.04.2014, 07:35
Beitrag #4
|
cb
LVF-SeniorMod
Beiträge: 1.731
Registriert seit: Feb 2006
2018SP1
2001
EN
40xxx
Deutschland
|
RE: IRQ wird überhaupt bestätigt?
(12.04.2014 21:02 )akr74000 schrieb: ich habe noch eine zweite Frage, wie wird das letztes Bild (write-vi) theoretisch funktionieren? und warum wurde 2 fifos benutzt?
Danke im voraus
vermutlich hat der Entwickler des FPGA-VIs eine Art State-Machine programmiert und er benutzt die 2 verschiedenen IRQs um festzulegen in welchem State das FPGA-VI ist
|
|
|
13.04.2014, 16:55
Beitrag #5
|
akr74000
LVF-Grünschnabel
Beiträge: 18
Registriert seit: Jan 2014
2012
2014
DE
|
RE: IRQ wird überhaupt bestätigt?
(13.04.2014 07:35 )cb schrieb: (12.04.2014 21:02 )akr74000 schrieb: ich habe noch eine zweite Frage, wie wird das letztes Bild (write-vi) theoretisch funktionieren? und warum wurde 2 fifos benutzt?
Danke im voraus
vermutlich hat der Entwickler des FPGA-VIs eine Art State-Machine programmiert und er benutzt die 2 verschiedenen IRQs um festzulegen in welchem State das FPGA-VI ist
hat nicht mit Fifo Kontrolle zu tun? Ich meinte, die 2 Fifos sind da, um die verbleibenden übertragenen Bytes zu überprüfen. das zweite Fifo wird kontrollieren, ob alle Byte erfolgreich von dem ersten fifo übertragen sind?
Oder liege ich total daneben ?
Danke cb für die Antwort nochmal.
Gruß
|
|
|
14.04.2014, 06:53
Beitrag #6
|
cb
LVF-SeniorMod
Beiträge: 1.731
Registriert seit: Feb 2006
2018SP1
2001
EN
40xxx
Deutschland
|
RE: IRQ wird überhaupt bestätigt?
(13.04.2014 16:55 )akr74000 schrieb: (13.04.2014 07:35 )cb schrieb: (12.04.2014 21:02 )akr74000 schrieb: ich habe noch eine zweite Frage, wie wird das letztes Bild (write-vi) theoretisch funktionieren? und warum wurde 2 fifos benutzt?
Danke im voraus
vermutlich hat der Entwickler des FPGA-VIs eine Art State-Machine programmiert und er benutzt die 2 verschiedenen IRQs um festzulegen in welchem State das FPGA-VI ist
hat nicht mit Fifo Kontrolle zu tun? Ich meinte, die 2 Fifos sind da, um die verbleibenden übertragenen Bytes zu überprüfen. das zweite Fifo wird kontrollieren, ob alle Byte erfolgreich von dem ersten fifo übertragen sind?
Oder liege ich total daneben ?
Danke cb für die Antwort nochmal.
Gruß
ja, sicher hat das was mit der Kontrolle der des FIFOs zu tun. Wenn ich jetzt raten müsste dann würde ich darauf tippen, dass das FPGA-VI (in einer Art State-Machine) bei leerem FIFO den IRQ 1 setzt der acknowledged werden muss, damit das VI weiter läuft. Bevor er den IRQ bestätigt schreibt er was in den Puffer, damit der auch voll ist wenn er durch das Bestätigen des IRQs "losgelassen" wird.
Ich vermute das FPGA-VI liest mit einer bestimmten "Sample-Rate" die Daten aus dem FIFO und macht irgendwas und irgendwann ist der FIFO wieder leer und schickt einen IRQ. Der wird aber nicht bestätigt => das FPGA-VI "hängt" beim IRQ. Dann will er vermutlich noch prüfen ob der FIFO auch wirklich leer ist, was aber meiner Ansicht nach Quatsch ist, weil er das ja höchstwahrscheinlich schon so programmiert hat dass der IRQ erst geschickt wird wenn der FIFO leer ist. Das ist also IMHO doppelt gemoppelt ...
Um die Glaskugel noch etwas mehr zu strapazieren: das ganze könnte eine Funktion sein um eine "arbitrary waveform" mit einem festgelegten Sample-Count auszugeben, die Synchronisierung mit dem RT-VI läuft über den IRQ. Die IRQ-Funktion im FPGA-VI wird IMHO dabei ein wenig missbraucht in dem er den Handshake "blind" absetzt ohne vorher tatsächlich auf den IRQ gewartet zu haben, müsste aber eigentlich funktionieren. Ich würd's aber nicht so machen - ich hätte da stilistische Bedenken
viele Grüße
cb
|
|
|
14.04.2014, 20:22
(Dieser Beitrag wurde zuletzt bearbeitet: 14.04.2014 20:51 von akr74000.)
Beitrag #7
|
akr74000
LVF-Grünschnabel
Beiträge: 18
Registriert seit: Jan 2014
2012
2014
DE
|
RE: IRQ wird überhaupt bestätigt?
hallo cb,
es war alles hilfreich, kannst du bitte einen blick auf FPGA Bild und einen anderen auf letztes Bild, das IRQ1 wurde gesetzt, nach FIFO Funktion wurde das IRQ1 bestätigt, was ich nicht verstanden haben , warum ist die Bestätigung nachdem ersten FIFO und nicht am Ende ?
wenn ich denke, kann man ohne IRQ synchronisieren und zwar durch DMA-FIFO.
Ich füge ein bild für das RT-VI ein, ich denke ist nötig.
vielen Dank
gruss
|
|
|
14.04.2014, 22:20
Beitrag #8
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
RE: IRQ wird überhaupt bestätigt?
(14.04.2014 20:22 )akr74000 schrieb: Ich füge ein bild für das RT-VI ein, ich denke ist nötig.
Noch besser wäre ein VI-Upload der VIs. Es fehlen in den Screenshot essentielle Teile für eine exakte Antwort.
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
Einführende Links zu LabVIEW, s. GerdWs Signatur.
|
|
|
15.04.2014, 06:24
Beitrag #9
|
cb
LVF-SeniorMod
Beiträge: 1.731
Registriert seit: Feb 2006
2018SP1
2001
EN
40xxx
Deutschland
|
RE: IRQ wird überhaupt bestätigt?
(14.04.2014 20:22 )akr74000 schrieb: wenn ich denke, kann man ohne IRQ synchronisieren und zwar durch DMA-FIFO.
man kann ohne IRQ synchronisieren, aber dann muss man den FIFO Status pollen und das erzeugt viel CPU-Last, deswegen benutzt man eigentlich immer einen IRQ um den RT-VI zu signalisieren, dass es neue Daten in den FIFO schieben soll oder dass der FIFO leer ist.
|
|
|
15.04.2014, 07:44
|
cb
LVF-SeniorMod
Beiträge: 1.731
Registriert seit: Feb 2006
2018SP1
2001
EN
40xxx
Deutschland
|
RE: IRQ wird überhaupt bestätigt?
ok, ich hab mir dann doch nochmal das 1. Bild (FPGA-VI-Source-Code) angeschaut.
Es ist genau so wie ich in meinem Beitrag #6 beschrieben habe. Im FPGA ist eine State-Machine, zumindest kann ich den State "write" sehen. Dieser State versucht eine festgelegte Anzahl von Bytes aus dem Puffer zu lesen und in eine andere Node zu schieben. Ich kann nicht erkennen was das für eine ist, aber ich vermute mal RS323 oder RS485. Wenn der FIFO leer ist, dann setzt er das "Timed Out" flag und geht weiter zum IRQ, der bestätigt werden muss.
Beim ersten Durchlauf der Schleife passiert folgendes: der FIFO ist leer, die For-Schleife geht nach dem ersten FIFO-Read in den Timeout, läuft für die eingestellte Anzahl Bytes - 1 ohne zu lesen und zu schreiben und geht anschließend zum IRQ-Wait. Dort wartet das FPGA-VI bis der IRQ-Ack kommt.
Wenn dann vom RT-VI der FIFO befüllt wird und der IRQ-Ack gesetzt wird startet die While-Loop die nächste Iteration und schreibt die Bytes aus dem FIFO auf den Port. Wenn die For-Loop die eingestellte Anzahl Iterationen durchlaufen hat (mit oder ohne Timeout) wird der 2. Sequenz-Schritt ausgeführt und das VI wartet wieder auf den IRQ-Ack ...
Wenn ich jetzt mal davon ausgehe dass es sich um RS485 handelt, dann ist das ganze einfach eine Methode um auf dem RT-VI eine Reihe von Bytes, die auf den Bus geschrieben werden soll, in einen Puffer zu packen und vom FPGA-VI ausgeben zu lassen.
viele Grüße
cb
|
|
|
| |