22.07.2011, 10:26
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
[attachment=34800] [attachment=34801]
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
[attachment=34800] [attachment=34801]