Jump to content
Форум по продукции MOXA

Nport 5232 принимает с ошибками


Recommended Posts

итак есть связка Nport 5232 - устройство на atmel + ADM485 (на входе защитные резисторы и защитные диоды) (2х проводный RS485)

для обмена используется протокол WAKE, скорость 115kb/s, длина кабеля 10 - 20 метров

данные передаются на MK - 100% передается без ошибок

при передаче обратно половина пакетов приходит битая

пробовал отключать FIFO на Nport и драйвере

при подключении устройства к самодельному преобразователю на FT232BM + ADM485 все работает нормально

передаваемая/принимаемая последовательномть выглядит следующим образом

0xC0, 0x8A, 2, 40, '1','2','3','4','5','6','7','8','9','0','1','2','3','4','5','6','7','8','9','0','1','2','3','4','5','6','7','8','9','0','1','2','3','4','5','6','7','8','9','0',1

- может ли последовательность попадать в набор команд Nport ?

- что-то поменять в настройках длайвера / сменить драйвер ?

- нести Nport в ремонт ?

Link to comment
итак есть связка Nport 5232 - устройство на atmel + ADM485 (на входе защитные резисторы и защитные диоды) (2х проводный RS485)

для обмена используется протокол WAKE, скорость 115kb/s, длина кабеля 10 - 20 метров

данные передаются на MK - 100% передается без ошибок

при передаче обратно половина пакетов приходит битая

пробовал отключать FIFO на Nport и драйвере

при подключении устройства к самодельному преобразователю на FT232BM + ADM485 все работает нормально

передаваемая/принимаемая последовательномть выглядит следующим образом

0xC0, 0x8A, 2, 40, '1','2','3','4','5','6','7','8','9','0','1','2','3','4','5','6','7','8','9','0','1','2','3','4','5','6','7','8','9','0','1','2','3','4','5','6','7','8','9','0',1

- может ли последовательность попадать в набор команд Nport ?

- что-то поменять в настройках длайвера / сменить драйвер ?

- нести Nport в ремонт ?

Добрый день,

Указанная последовательность данных точно не попадает в список команд NPort. Устройство NPort получает команды исключительно по Ethernet, поэтому идущая по последовательному порту последовательность данных никак не влияет на успех передачи.

 

У меня предположения следующие. Возможны 2 варианта возникновения сбоя.

1. Программная настройка NPort.

Нужно понять, насколько "битым" приходит ответ от NPort. Некоторые символы искажаются? Или сообщение обрезается? Или что-то другое?

Дело в том, что передаваемое сообщение достаточно длинное, и NPort может передать его не одним TCP-сообщением, а несколькими (как правило, в одном TCP-пакете NPort передает не больше 10 байт). Это значит, что между TCP-пакетами могут возникать паузы. Если Ваше ПО чувствительно к межбайтовому интервалу, то программа может воспринять наличие задежрки как конец сообщения и, соответственно, не принять его полностью.

Выход - при настройке NPort в утилите NPort Administrator, вкладка Operating Mode поставьте параметр Force TX Timeout в значение 3 мсек. Это будет указанием для NPort, чтобы он не разрывал подряд идущие данные, а делал их одним пакетом.

 

2. Аппаратные особенности.

Возможно, передаваемый контроллером сигнал RS-485 плохо воспринимается приемником NPort. Пробовали ли Вы вешать терминальные резисторы 120 Ом на концы линии 485? Уточните, какая аппаратная версия NPort у Вас используется (она указана на белой этикетке с нижней стороны устройства)

Link to comment
  • 2 weeks later...
Нужно понять, насколько "битым" приходит ответ от NPort. Некоторые символы искажаются? Или сообщение обрезается? Или что-то другое?

Дело в том, что передаваемое сообщение достаточно длинное, и NPort может передать его не одним TCP-сообщением, а несколькими (как правило, в одном TCP-пакете NPort передает не больше 10 байт). Это значит, что между TCP-пакетами могут возникать паузы. Если Ваше ПО чувствительно к межбайтовому интервалу, то программа может воспринять наличие задежрки как конец сообщения и, соответственно, не принять его полностью.

Выход - при настройке NPort в утилите NPort Administrator, вкладка Operating Mode поставьте параметр Force TX Timeout в значение 3 мсек. Это будет указанием для NPort, чтобы он не разрывал подряд идущие данные, а делал их одним пакетом.

 

2. Аппаратные особенности.

Возможно, передаваемый контроллером сигнал RS-485 плохо воспринимается приемником NPort. Пробовали ли Вы вешать терминальные резисторы 120 Ом на концы линии 485? Уточните, какая аппаратная версия NPort у Вас используется (она указана на белой этикетке с нижней стороны устройства)

 

1. пакет принимается полностью (паузы, не превышающие 1сек на прием не влияют)

битые приходят нескольно первых байт

часто 1, 3, 5 байты искажается, дальше либо искажается гдето-каждый 10й, либо все нормально (вместо $C0 приходит 00 или $10 и т.д.)

(у меня такое было когда я поставил на МК приемника и передатчика кварцы с разными, но близкими частотами

еще вариант был - принимающий МК не имел аппаратного USART и был во время приема занят обработкой)

Force TX Timeout пробовал от 1 до 5

 

2.терминальные резисторы на ситуацию не влияют

версию дам чуть позже

Link to comment
1. пакет принимается полностью (паузы, не превышающие 1сек на прием не влияют)

битые приходят нескольно первых байт

часто 1, 3, 5 байты искажается, дальше либо искажается гдето-каждый 10й, либо все нормально (вместо $C0 приходит 00 или $10 и т.д.)

(у меня такое было когда я поставил на МК приемника и передатчика кварцы с разными, но близкими частотами

еще вариант был - принимающий МК не имел аппаратного USART и был во время приема занят обработкой)

Force TX Timeout пробовал от 1 до 5

 

2.терминальные резисторы на ситуацию не влияют

версию дам чуть позже

Похоже, дело действительно может быть в физических особенностях сигнала.

Уточните, пожалуйста, номер аппаратного релиза устройства NPort.

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...