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 

Dieses Thema hat akzeptierte Lösungen:

Software UART Stream



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!

22.07.2011, 10:26 (Dieser Beitrag wurde zuletzt bearbeitet: 25.07.2011 12:41 von M4Z.)
Beitrag #1

M4Z Offline
LVF-Grünschnabel
*


Beiträge: 27
Registriert seit: Nov 2009

2009
2008
kA

4813
Schweiz
Software UART Stream
Hallo,
Ich versuche zur Zeit die Daten, die mir eine IMU über eine UART-Schnittstelle schickt, auszulesen.
Das Problem dabei ist, dass ich ein sbRIO9632 verwende und die serielle Schnittstelle darauf bereits belegt ist. Ich muss also mit den DIOs des FPGA eine Software UART emulieren.
Dafür gibts eine Art Toolbox "FPGA IP (IPNet)- Digital Buses and Protocols (SPI, I2C and Serial)" wobei ich die VIs für die Serielle Schnittstelle verwende.
Leider funktioniert das Auslesen nicht. Ich bekomme zwar Datensalat, der aber nicht den Telegrammen entspricht, die der Sensor sendet (überprüft mit KO)
Ich vermute das Problem liegt darin, dass der Sensor die Daten quasi streamt, also 280 Werte pro Sekunde auf die Schnittstelle schiebt und die UART das Startbit nicht korrekt erkennt.

Hat zufällig jemand von euch einen Lösungsansatz, um das Startbit am Anfang eines Telegramms korrekt zu erkennen?
Weitere Infos:
Baudrate 115200
8 Datenbits
Keine Parity
1 StopBit

Telegrammlänge 18 oder 20 Zeichen bzw. Bytes

lDie kleine While-Schlaufe vor der Read-Schlaufe ist von mir und soll die (lange) Pause zwischen zwei Telegrammen detektieren und erst dann das Startbit suchen. Der Rest des Codes ist im Originalzustand, wie er heruntergeladen wurde.
Beide VIs laufen auf dem FPGA

Danke für die Unterstützung

Lv09_img2

2009 .vi  LV FPGA Serial Read Write edit.vi (Größe: 191,07 KB / Downloads: 401)

2009 .vi  LV FPGA Serial Calc Timing Values.vi (Größe: 8,31 KB / Downloads: 321)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
25.07.2011, 20:41 (Dieser Beitrag wurde zuletzt bearbeitet: 27.07.2011 09:56 von M4Z.)
Beitrag #2

M4Z Offline
LVF-Grünschnabel
*


Beiträge: 27
Registriert seit: Nov 2009

2009
2008
kA

4813
Schweiz
RE: Software UART Stream
hat keiner eine Idee?

nach vielen Versuchen, andere Ansätze zu prüfen, hab ich jetzt versucht herauszufinden, ob die Erkennung der fallenden Flanke des Startbits funktioniert, indem ich direkt nach Erkennung der Flanke einen anderen Pin kurz High setze.
auf dem KO mit einer Sonde am Stream und einer am Testpin sehe ich nun, dass von 20Bytes im Telegramm höchstens bei 4 oder 5 Startbits die Triggerung auslöst.
Hat vielleicht dafür jemand eine Erklärung?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.08.2011, 09:39
Beitrag #3

M4Z Offline
LVF-Grünschnabel
*


Beiträge: 27
Registriert seit: Nov 2009

2009
2008
kA

4813
Schweiz
RE: Software UART Stream

Akzeptierte Lösung

Das Problem lag nicht an der Erkennung des Startbits, sondern in der Weitergabe der Bytes an den Realtime Controller des RIO über einen FIFO - egal wie schnell der ausgelesen wurde, er lief immer sofort voll - ob mit 100 oder 10000 Elementen.

Die Lösung war, das Zusammenstellen der Telegramme auf das FPGA herunter zu nehmen und nur komplette Telegramme zum Realtime zu senden -> FIFO fällt weg.
Läuft jetzt zuverlässig mit den erwähnten Einstellungen.
Schreiben funktioniert ähnlich, ganzes Telegramm wird als Array ans FPGA übermittelt und dann byteweise gesendet.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.09.2011, 11:50
Beitrag #4

weze Offline
LVF-Neueinsteiger


Beiträge: 2
Registriert seit: Sep 2011

2010
2011
DE



RE: Software UART Stream
Hallo

Deiner Beschreibung nach verwendest du offensichtlich auch die IMU von chrobotics (chr6d oder Nachfolger). Ich habe nämlich das selbe Problem mit der in FPGA implementierten RS232. Vielleicht könntest du mir deine Lösung des FPGA-VI zukommen lassen, würde mir viel Arbeit sparen. Danke!

Werner
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.09.2011, 10:56
Beitrag #5

M4Z Offline
LVF-Grünschnabel
*


Beiträge: 27
Registriert seit: Nov 2009

2009
2008
kA

4813
Schweiz
RE: Software UART Stream
Im Anhang findet Ihr mein FPGA-File, mit dem es schliesslich funktioniert hat. die PID Regler und die PWM Erzeugung werden nicht benötigt, es werden 2 UART Schnittstellen emuliert

Lv09_img2


Angehängte Datei(en)
9.0 .vi  FPGA Main.vi (Größe: 511,29 KB / Downloads: 315)

9.0 .vi  LV FPGA Serial Calc Timing Values.vi (Größe: 8,63 KB / Downloads: 278)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.09.2011, 15:25
Beitrag #6

weze Offline
LVF-Neueinsteiger


Beiträge: 2
Registriert seit: Sep 2011

2010
2011
DE



RE: Software UART Stream
Danke für die rasche Hilfe!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: