Простая прочная коррекция ошибок для передачи ASCII через серийный (RS485)

StackOverflow https://stackoverflow.com/questions/3257238

Вопрос

У меня очень низкоскоростное соединение данных по сериалу (RS485): 9600 бод Фактическая скорость передачи данных составляет около 25% от этого.

Последовательная линия проходит через область чрезвычайно высокого EMR.Пиковые флуктуации могут достигать 3000 кВ.

Я не нахожусь в положении (пока), чтобы заставить изменение физической среды, но могло легко предложить в прочную надежную простую схему коррекции ошибок.Схема должна быть легкой в реализации на микросе серии PIC18.

идеи?

Это было полезно?

Решение

Этот сайт претендует на реализацию Reed-Solomon на PIC18.Я никогда не использовал это сам, но, возможно, это может быть полезным справочником?

Другие советы

Поиск алгоритма CRC, используемый в протоколе Modbus ASCII.

Я разрабатываю с устройствами PIC18 и в настоящее время использую компиляторы MCC18 и PICC18. Я заметил несколько недель назад, что периферические заголовки для PICC18 неправильно сопоставьте MACRO MACHRO ANDICESART () в бит TRMT вместо бита TRMT2. Это заставило меня большие головные боли на короткое время, прежде чем я обнаружил проблему. Пример, простая передача:

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

Когда макрос Busy2usArt () был неправильно сопоставлен с битом TRMT, я никогда не ждал байтов, чтобы покинуть реестр сдвига, потому что я контролировал неправильный бит. Прежде чем я реализовал файл неточного заголовка, единственный способ успешно передавать байт более 485, должен был подождать 1 мс между байтами. Уровень моей передачи составил 91912, а задержки между байтами убили мою пропускную способность. Я также предлагаю реализовать средства обнаружения столкновений и контрольных мостов. Контрольные суммы дешевые, даже на Pic18. Если вы можете слушать свои собственные передачи, сделайте это, это позволит вам знать о столкновениях, которые могут возникнуть в результате дубликатов адресов на одном цикле и неправильном времени.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top