Question

J'ai une connexion de données très basse vitesse via la série (RS485): 9600 bauds Le taux de transmission de données réel est d'environ 25% de cela.

La ligne de série traverse une zone d'EMR extrêmement élevée.Les fluctuations maximales peuvent atteindre 3000 kV.

Je ne suis pas dans la position (encore) pour forcer une modification du support physique, mais pourrait facilement proposer de mettre dans un simple schéma de correction d'erreur en avant robuste.Le système doit être facile à mettre en œuvre sur une série PIC18 Micro.

Idées?

Était-ce utile?

La solution

Ce site prétend mettre en œuvre Reed-Solomon sur la PIC18.Je ne l'ai jamais utilisé moi-même, mais peut-être que cela pourrait être une référence utile?

Autres conseils

Recherche d'algorithme CRC utilisé dans le protocole Modbus ASCII.

Je développe avec des appareils PIC18 et utilisez actuellement les compilateurs MCC18 et PICC18. J'ai remarqué il y a quelques semaines que les en-têtes périphériques pour Picc18 mappent de manière incorrecte la macro animé2USART () au bit TRMT au lieu du bit TRMT2. Cela m'a causé des maux de tête majeurs pour peu de temps avant de découvrir le problème. Exemple, une simple transmission:

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

Lorsque la macro Occupé2USART () a été malheureusement mappée sur le bit TRMT, je n'attendais jamais que les octets quittent le registre de travail car je surveillais le mauvais bit. Avant de réaliser le fichier d'en-tête inexact, le seul moyen que j'ai pu transmettre avec succès un octet sur 485 était d'attendre 1 ms entre les octets. Mon taux de bauds était 91912 et les retards entre les octets ont tué mon débit. Je suggère également de mettre en œuvre un moyen de détection de collision et de checksums. Les checksums sont bon marché, même sur une photo18. Si vous êtes capable d'écouter vos propres transmissions, faites-le, cela vous permettra de connaître des collisions pouvant résulter d'adresses en double sur la même boucle et des horaires incorrects.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top