INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Datenerfassung von SPI Bus



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

28.04.2016, 22:29
Beitrag #1

LazyCompany Offline
LVF-Grünschnabel
*


Beiträge: 17
Registriert seit: Apr 2016

2014
-
EN

70771
Deutschland
Datenerfassung von SPI Bus
Hallo Leute! Smile
Ich bin genau das, was viele vor mir (oder iwie fast alle außer Chuck Norris) auch waren: blutiger Anfänger und das ärgert mich Ahrg1
Aber erst einmal Hallo an alle und ich freue mich endlich hier dabei zu seinSmile
Ich bin Student und arbeite seit fünf Wochen im Rahmen meiner Abschlussarbeit mit LabVIEW. Soviel zum Stand meiner Erkenntnis.

Nun zu meinem Problem:
Ich habe einen Beagle Protocol Analyzer der Firma Totalphase
http://www.totalphase.com/products/beagle-i2cspi/
in mein VI eingebunden um den SPI Bus lesen zu können.
Das funktioniert auch - zumindest das Lesen.
Ich bekomme über den SPI Bus seriell 3000 Samples pro Sekunde von verschiedenen Kanälen (aufsteigend) rein, jede Message hat eine eigene Kanalkennung und die Daten können unterschiedlich lang sein.
Ich möchte die ankommenden Daten nun in einem Array zwischenspeichern, um sie später als seperate Kanäle in einem .wav File zur Weiterverabeitung mit Audacity verwenden zu können und danach auch graphisch auszugeben.

Leider habe ich keine Ahnung wie ich ein solches Array aufbauen soll damit ich für alle 3000 Samples die Daten der N-Kanäle zur Verfügung habe. Sad Im Array soll also Stehen:

(Kanal=1 Byte / Daten = 1 Byte)

Kanal1-Daten-Daten-Daten-Daten
Kanal2-Daten-Daten-Daten-Daten
...
Kanal n-Daten-Daten-Daten-Daten

Die zweite Stufe des Problems besteht darin, das die ankommenden Daten nicht immer 3000 SPS haben, sondern auch mal 1500 oder 750 - wie kann ich das dann lösen? Ich weiß zwar das ich z.Bsp. bei 1500 einfach interpoliere indem ich die Werte *2 nehme - nur an der Umsetzung in LabVIEW happert's, bzw. am WIE.

Habt ihr Ideen wie ich das aufbauen kann?

Das VI habe ich bisher als State-Machine aufgebaut. Ich habe heute schon ein 3-Dimensionales-Array aufgebaut - weiss aber nicht wie ich dann das Array daran hindere nach 3000 Samples aufzuhören - er zählt immer weiter bis das der Ram und scheidet und ob das so wie ich es gemacht habe überhaupt nen Sinn macht.

Mein VI kommt morgen! - Das habe ich jetzt nicht parat.

Über viele Anregungen, am besten in Form einer VI, freue ich mich wie auch auf meinen Lernerfolg....auf das ich in zwei bis drei Jahren diesen Post lesen möge und dabei denke: "OMG!" So long...

Grüße, LazyCompany Blush
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
28.04.2016, 22:42
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Datenerfassung von SPI Bus
Hallo Lazy,

herzlich willkommen im Forum!

Zitat: Ich habe heute schon ein 3-Dimensionales-Array aufgebaut
Warum 3D?
Bei n Kanälen mit m Samples benötigst du ein 2D-Array (wenn alle Kanäle gleich viele Samples haben) oder ein 1D-Array of Cluster of 1D-Array (wenn die Kanäle unterschiedlich viele Samples haben)…

Zitat:weiss aber nicht wie ich dann das Array daran hindere nach 3000 Samples aufzuhören
Indem du das Array eben nicht unbegrenzt anwachsen lässt!?

Zitat:Ich weiß zwar das ich z.Bsp. bei 1500 einfach interpoliere indem ich die Werte *2 nehme - nur an der Umsetzung in LabVIEW happert's, bzw. am WIE.
LabVIEW hat auch Interpolationsfunktionen…

Es wird wohl besser sein, wenn du mal dein VI anhängst! Big Grin

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.04.2016, 07:41
Beitrag #3

LazyCompany Offline
LVF-Grünschnabel
*


Beiträge: 17
Registriert seit: Apr 2016

2014
-
EN

70771
Deutschland
RE: Datenerfassung von SPI Bus
Guten Morgen!
Anbei mal mein VI.
Bitte nicht so arg wundern über Sinnlosigkeit, ich bin noch ein Anfänger.
Gedacht war das ganze so:
Ich initialiesiere meine State Machine und Öffne mein .wav File zum Beschreiben,
lese die Daten ein und speichere sie zwischen, speichere sie dann ab und stelle sie dar (Kanal kann optional ausgewählt werden).
Die leeren Zustände sind als Platzhalter zu verstehen, einen Write to .wav File hatte ich, habe ihn aber derzeit mal aussen vor,
da dass Handling und das Zwischenspeichern der Daten erst einmal Vorrang hat. Blush

Gruß, Lazy


Angehängte Datei(en)
14.0 .vi  zustandsautomat_6.vi (Größe: 46,04 KB / Downloads: 170)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.04.2016, 09:48
Beitrag #4

LazyCompany Offline
LVF-Grünschnabel
*


Beiträge: 17
Registriert seit: Apr 2016

2014
-
EN

70771
Deutschland
RE: Datenerfassung von SPI Bus
Update: Habe gerade mit einem alten Azubikollegen gesprochen, selber langjähriger Anwender von LabVIEW und Softwareentwickler - Danke hier nochmal! Smile
Habe ihm mein Problem geschildert und seine Antwort war: FIFO Smile

Werde also nun nochmal als FIFO aufbauen - Meine Probleme werden deswegen nicht weniger oO
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Datenerfassung cDAQ + NI9203 keine synchrone Datenerfassung dieseldunst 5 6.564 24.06.2016 14:49
Letzter Beitrag: jg

Gehe zu: