Domanda

Ho una connessione dati molto bassa di velocità sul seriale (RS485): 9600 Baud. La velocità effettiva di trasmissione dei dati è di circa il 25% di ciò.

La linea seriale sta attraversando un'area di EMR estremamente elevato.Le fluttuazioni di picco possono raggiungere 3000 kv.

Non sono ancora nella posizione (ancora) per forzare un cambiamento nel mezzo fisico, ma potrebbe facilmente offrire di inserire un semplice schema di correzione errori errori robusto.Lo schema deve essere facile da implementare su una serie PIC18 Micro.

Idee?

È stato utile?

Soluzione

Questo sito afferma di implementare Reed-Salomone sulla PIC18.Non l'ho mai usato da solo, ma forse potrebbe essere un riferimento utile?

Altri suggerimenti

Ricerca di algoritmo CRC utilizzato nel protocollo Modbus ASCII.

Sviluppo con i dispositivi PIC18 e attualmente utilizza i compilatori MCC18 e PICC18. Ho notato alcune settimane fa che le intestazioni periferiche per PICC18 mappano in modo errato la macro BUD2USArt () al bit TRMT invece del Bit TRMT2. Questo mi ha causato importanti mal di testa per brevi tempo prima di scoprire il problema. Esempio, una semplice trasmissione:

putc2USART(*p_value++);
while Busy2USART();
putc2USART(*p_value);
.

Quando la macro BUD2USArt () è stata mappata in modo errato al bit TMT, non stavo mai aspettando i byte di lasciare il registro del cambio perché stavo monitorando il bit sbagliato. Prima di realizzare il file di intestazione inaccurato, l'unico modo in cui sono stato in grado di trasmettere con successo un byte oltre 485 era di attendere 1 ms tra byte. La mia velocità di trasmissione era 91912 e i ritardi tra i byte hanno ucciso il mio throughput. Suggerisco anche l'attuazione di un mezzo di rilevamento e checksum di collisione. I checksum sono economici, anche su una foto18. Se sei in grado di ascoltare le tue trasmissioni, farlo, ti permetterà di essere a conoscenza delle collisioni che potrebbero derivare da indirizzi duplicati sullo stesso loop e dei tempi errati.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top