2016-06-18 8 views
0

als Code gezeigt,Paritätsprüfung in Matlab und FPGA-Board

s = serial('COM3','BaudRate',115200, 'Parity', 'odd','DataBits',8,'StopBits',1); 
fopen(s); 

ich hinzufügen, die Paritätsprüfung Funktion in der Kommunikation über serielle Schnittstelle in Matlab. Ich erstelle den seriellen Port, um Daten an eine FPGA-Karte zu senden. In der FPGA-Karte schreibe ich einen Code, der die XOR-Operation an die 8-Bit-Daten anlegt und prüft, ob das Ergebnis für das Paritätsbit korrekt ist. Das Problem ist, wenn der Paritätsprüfungsfehler existiert, wie fordert das FPGA-Board den seriellen Port auf, die Daten erneut zu übertragen? Gibt es eine notwendige Einstellung für das FPGA?

+0

https://en.wikipedia.org/wiki/Kermit_(protocol) – Arnfinn

Antwort

0

Die Standard-UART-Kommunikation (wie von RS232 verwendet) verfügt nicht über interne ACK- (bestätigt) und NACK-Funktionen (nicht bestätigt). Wenn Sie möchten, dass der Sender Daten erneut sendet, müssten Sie das Protokoll selbst definieren und für Sender und Empfänger programmieren.

ABER, bevor Sie das tun, stellen Sie sicher, dass Sie wirklich Retransmit-Fähigkeit erfordern, da es ziemlich kompliziert sein kann, zu implementieren. Wenn Sie Ihre Bewerbung erläutern (was Sie zu tun versuchen und was das Setup ist), kann ich Sie weiter befragen. Fragen, die Sie sich stellen müssen:

  1. Physikalische Schicht: Warum erhalten Sie Fehler? Wie oft? Wenn Sie die Datenrate senken, erhalten Sie weniger Fehler?
  2. Datenverarbeitung: Müssen Sie alle Daten erhalten? Anstatt zu senden, ist es vielleicht besser, die Daten mehr als einmal zu senden und Mehrheit zu haben.
  3. Daten korrekt: Wie sicher müssen Sie sein, dass die Daten gültig sind? Die Paritätsprüfung ist nicht so gut, da "zwei Fehler ein Recht machen können". Abhängig von Ihrer Antwort müssen Sie möglicherweise einen höheren Mechanismus zur Fehlererkennung (+ Korrektheit) implementieren.
  4. Durchsatz und Latenz: Was sind die Anforderungen für Kanalnutzungen?

Auch finden Sie unter: https://electronics.stackexchange.com/questions/29134/handling-of-uart-errors

+0

thx Oron, der Zweck meiner Anwendung ist ein Bild in die FPGA-Board zu senden. Im Matlab partitioniere ich zuerst ein Bild in die R-, G-, B-Matrix und erstelle dann einen seriellen Port, um die drei Matrixdaten mit der fwrite-Anweisung zu übertragen. Im FPGA-Teil schreibe ich einen Code, um das Start-Bit zu erkennen und dann die 8-Bit-Daten zu holen. 1. Physikalische Schicht: Warum erhalten Sie Fehler? Wie oft? Wenn Sie die Datenrate senken, erhalten Sie weniger Fehler? –

+0

Was ist Ihre physische Verbindung zwischen Computer und Platine (welches Kabel und welche Stecker, wie lange ist das Kabel)? Woher weiß der Empfänger, dass Sie ein neues Bild erstellen? –