Простое надежное исправление ошибок для передачи ascii через последовательный порт (RS485) - PullRequest
0 голосов
/ 15 июля 2010

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

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

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

Идеи

Ответы [ 3 ]

1 голос
/ 02 сентября 2010

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

1 голос
/ 15 июля 2010

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

0 голосов
/ 24 сентября 2010

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

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

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

...