Frage

Ich habe einen sehr niedrigen Geschwindigkeitsdatenanschluss über seriell (RS485): 9600 Baud. Die tatsächliche Datenübertragungsrate beträgt etwa 25% davon.

Die serielle Linie geht durch einen Bereich von extrem hoher EMR.Spitzenschwankungen können 3000 kV erreichen.

Ich bin nicht in der Position (noch), um eine Änderung des physischen Mediums zu erzwingen, konnte aber leicht anbieten, in ein einfaches robustes Forwor-Fehlerkorrekturschema einzulegen.Das System muss auf einer MICRO von PIC18-Serie leicht umgesetzt werden.

Ideen?

War es hilfreich?

Lösung

Diese Seite behauptet, Reed-Solomon auf dem PIC18 umzusetzen.Ich habe es nie selbst benutzt, aber vielleicht könnte es eine hilfreiche Referenz sein?

Andere Tipps

Suche nach CRC-Algorithmus, der in Modbus ASCII-Protokoll verwendet wird.

Ich entwickle mit PIC18-Geräten und verwenden Sie derzeit die Compiler von MCC18- und PICC18-Compilern. Ich habe vor einigen Wochen bemerkt, dass die Peripherie-Header für Picc18 das MACRO BEUCHTIG2USAST () MACRO anstelle des TRMT2-Bits falsch auf das TRMT-Bit karten. Dies führte mir für kurze Zeit wichtige Kopfschmerzen, bevor ich das Problem entdeckte. Beispiel, eine einfache Übertragung:

generasacodicetagpre.

Wenn das MACRO MACRO falsch mit dem TrMT-Bit zugeordnet wurde, wartete ich nie auf Bytes, um das Schieberegister, weil ich das falsche Bit überwacht habe. Bevor ich die ungenaue Header-Datei erkannte, sollte ich nur ein Byte über 485 erfolgreich übertragen, um 1 Ms zwischen Bytes zu warten. Meine Baudrate betrug 91912 und die Verzögerungen zwischen Bytes töteten meinen Durchsatz. Ich empfehle auch, ein Mittel zur Kollisionserkennung und -prüfungen umzusetzen. Die Prüfsumme sind auch auf einem Pic18 billig. Wenn Sie in der Lage sind, Ihre eigenen Übertragungen anhören zu können, können Sie also Kollisionen bewusst sein, die sich aus doppelten Adressen auf derselben Schleife und falschen Timings ergeben können.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top