Real-Time Measurement and Control

cancel
Showing results for 
Search instead for 
Did you mean: 

Wie kann ich einen Burst Rechteckgenerator mit Labview und rio 7833R erstellen?

Ich möchte einen Burst Generator in LabView erstellen. Er soll Pakete von Rechteckimpulse mit Pausen dazwischen generieren und über die Karte Rio 7833R ausgegeben werden können. Ich habe noch nicht soviel Erfahrung mit solch einer Karte mit FPGA. Bitte helfen Sie mir weiter!

 Vielen Dank!

0 Kudos
Message 1 of 9
(3,457 Views)

Hallo,

 

solche Aufgaben lassen sich mit einer R-Serienkarte recht einfach umsetzen. Im einfachsten Fall könnte so ein VI wie folgt aussehen:

 

 

Das Beispiel erzeugt eine Rechteckfolge mit 1000 Flankenwechseln mit einem 100 kHz Takt, wartet 100µs und startet einen neuen Burst.

Ich hoffe das hilft. 

 

Mit freundlichen Grüßen,

Jochen Klier

National Instruments 

Message Edited by Jochen on 09-05-2008 09:47 AM
0 Kudos
Message 2 of 9
(3,445 Views)

Vielen Dank Jochen,

 

sowas dachte ich mir auch aber mein Problem ist, dass z.B. die Bursts genau mit 38kHz schwingen sollen und einmal z.b. 32*(1/38000Hz) lang sein sollen und ein anders Mal 16*(1/38000Hz) sein sollen. Sie müssen Zeitlich stimmen und da ist das Problem.

 

Martin

0 Kudos
Message 3 of 9
(3,440 Views)

Hi,

 

es sollen Infrarot-Codes von Fernedienungen simuliert werden. Wie z.B. folgende http://www.vishay.com/docs/80071/dataform.pdf.

 

Vielen Dank!

 

Martin

0 Kudos
Message 4 of 9
(3,438 Views)
Ich kann dabei kein all zu großes Problem erkennen. Der FPGA bietet eine zeitliche Auflösung von 25 ns. Damit lässt die gewünschte Frequenz zwar nicht zu 100% exakt, für die Ansprüche einer IR-Fernbedienung aber sicherlich mit ausreichender Genauigkeit realisieren. Der Rest ist sehr gradlinige LabVIEW-Programmierung.
0 Kudos
Message 5 of 9
(3,436 Views)

Ich sehe da aber das Problem, dass man nicht weiß wielange er braucht um die Danten übers Schieberegiester zu schieben. Es soll schon relativ geanu sein. Hast du vielleicht noch eine IDEE. Du bist ja schon gut in LabView eingearbeitet und würdest mir sehr den Einstieg erleichtern. Geht es das man z.B. über eine Schleife einen Ausgang vom FPGA genau auf eine bestimmte Zeit high setzt und durch eine zweite schleife genau auf low setzt? 

 

Danke!

 

Mar 

0 Kudos
Message 6 of 9
(3,434 Views)

Es gibt hier im Prinzip zwei Ansätze. Wie gesagt ist die FPGA-Programmierung mit LabVIEW im Prinzip sehr geradeaus gedacht und man muss sich nicht sonderlich mit gepufferten Operationen, Synchronisation usw. herumschlagen.

 

Ansatz 1:

Für die Ausgabe eine Schleife mit festem Takt (z. B. eine Timed Loop, die auf dem FPGA als sogenannte Single Cycle Timed Loop mit 40 MHz ausgeführt wird) benutzen und dann einfach mehrfach hintereinander Nullen und Einsen rausschreiben. In diesem Beispiel könnte man z. B. eine Frequenz von 100 kHz dadurch erschreiben, dass im Wechsel 200 mal der Wert Null und 200 mal der Wert eins ausgegeben wird.

 

Ansatz 2:

Eine andere Methode wäre es, eine Sequenz in eine normale Schleife zu setzen und im ersten Frame den DO auf Null zu setzen, die gewünschte Anzahl von Ticks zu warten und im nächsten Frame mit der gleichen Methode das Signal für eine definierte Zeit auf Eins zu setzen.

 

Unabhängig von der zu verwendenden Methode wirst Du wahrscheinlich eine Art Lookup-Table implementieren müssen, in dem die Timinginformationen für die Signalausgabe hinterlegt ist. 

 

Für weitere einführende Informationen empfehle ich unsere Web-Ressourcen:

 

 

 Jochen

 

 

Message Edited by Jochen on 09-05-2008 01:59 PM
0 Kudos
Message 7 of 9
(3,431 Views)

Hallo vielen Dank für die nette Hilfe.

 

Ich bin nun schon etwas weiter und habe einen Burstgenerator programmiert. Jetzt stehe ich vor einem neuen Problem. Ich möchte das Timing der Codes einstellen. Im Moment mal nur für den RC5-Code. Beim RC5 Code ist ein Datenwort genau 25 ms lang und danach kommt eine Pause mit 89ms., wie es die angehängten Diagramme zeigen. Wie kann ich so eine Message hinbekommen, wo im Daten Wort die bits übertragen werden und danach eine Pause kommt ohne das Timing zu verletzen. Bei mir stimmt immer das Timing nicht. Vielleicht kann mir jemand an dieser Stelle weiterhelfen. Der FPGA auf der Karte 7833r müsste das doch locker können.

 

Martin

 

 

Download All
0 Kudos
Message 8 of 9
(3,328 Views)

:smileyhappy: Sehr geehrte User,

 

ich bin nun ein großes Stück weiter als ich den Eintrag gestartet habe. Ich habe inzwischen einen neuen Burstgenerator programmiert. jetzt habe ich das Problem, wie schaffe ich es, dass ich unter N Burst die Anzahl der Burstpackete (Schwinungspakete) einstelle die vom Generator abgegeben werden. Es sollen z.B. 100 Pakete ausgegeben werden. Der Hintergrund ist eine Pulstreuemessung der zu testenden IR-Receiver. Ich dachte ich kann es über eine Schleife hinbekommen, aber meine Abruchbedingung stimmt jedes mal nicht. Es bricht zwar nach einigen Packeten aber die Paketanzahl stimmt so weit ich weis nicht. Es wäre schön, wenn mir jemand weiter helfen könnte.

 

 

Martin 

0 Kudos
Message 9 of 9
(3,215 Views)