Перейти к содержанию
    

Windows7: прием байтов через COM-порт без потерь

О! Уже RS485 появился :rolleyes: Может дело в стыке RS485 <-> RS232? У RS485 half duplex, а у RS232 - full duplex. И конвертор переключает направление на прием/передачу по RS485 по неким своим законам. Они точно согласуются с реальным потоком данных по RS485? Ибо неверный момент переключения как раз и даст те самые пропущенные байты.

Так вроде поток односторонний. Преобразователь RS485-RS232 будет только на прием работать со стороны RS485. Или мы чего-то не знаем опять?

ТС говорит, что до разъема PC все байты доходят. В любом случае, надо дождаться проверки "эталонным потоком", непосредственно в порт.

Нужно локализовать ошибку, прежде чем гипотезы строить.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ТС говорит, что до разъема PC все байты доходят.

Давайте начнём с того, что ТС не выдаёт полной картины, а рубит хвост кусками.

Что уж говорить про "нюансы реализации", которые обходятся за три-девять земель.

 

зы. я даже не удивлюсь, если своей помощью мы ему сейчас на работе могилу копаем.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Давайте начнём с того, что ТС не выдаёт полной картины, а рубит хвост кусками.

Что уж говорить про "нюансы реализации", которые обходятся за три-девять земель.

 

зы. я даже не удивлюсь, если своей помощью мы ему сейчас на работе могилу копаем.

Да ну прям. Все нормально у меня, только вот времени не хватает ни на что. :)

Начальство в курсе, что задача не определена по времени решения, договорились что как смогу-так и возьмусь. Сам затягивать не хочу, а то получится- завтра в отпуск, а сегодня вечером клиент прибежал с вопросам про.

Вам действительно нужна поможет полная картина вплоть до цвета стен в комнате где оборудование стоит? Вряд ли. Я потому и не даю полную картину, чтоб не начали сыпать советами стены в другой цвет перекрасить. Проблема локализована участком "на входном разъеме компьютера логический анализатор байты видит, а сниффер в компьютере уже не видит". И зачем множить сущности, рассказывая про симплексы и дуплексы?.

Понимаю, что случаи разные бывают, я за свой уже довольно длительный экспириенс тоже много чего видел и еще больше слышал, но пока что буду копать в данном куске, вот только не знаю когда.

 

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

 

Уважаемые форумчане, не обижайтесь пожалуйста, если кажется что я из вредножадности что-то скрываю от вас, не так это.

 

Upd: а как красиво все начиналось, неправильно параметры между тредами передаю, эх, прям прослезиться тянет насколько зеленый был... Интересно, что я через неделю буду думать про сегодняшнее положение вещей...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Upd: а как красиво все начиналось, неправильно параметры между тредами передаю, эх, прям прослезиться тянет насколько зеленый был... Интересно, что я через неделю буду думать про сегодняшнее положение вещей...

:) Расслабьтесь. Все нормально. Через неделю найдете у себя какую-нибудь глупую, дурацкую ошибку в самом неожиданном месте...

Тут методика поиска ошибок должна рулить. Как поймать тигра в пустыне - поделить ее пополам, и посмотреть в какой половине тигр.

Далее повторить операцию нужное число раз. А когда поймаете - тигр уже не так страшен... :biggrin:

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проблема локализована участком "на входном разъеме компьютера логический анализатор байты видит, а сниффер в компьютере уже не видит".
Вы в этом уверены? У вас потери были '10-20 байт в сутки'. Логическим анализатором тоже сутки смотрели?

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы в этом уверены? У вас потери были '10-20 байт в сутки'. Логическим анализатором тоже сутки смотрели?

(тяжело вздыхая) шутите, как можно быть хоть в чем-то полностью уверенным?

 

Мне достаточно того, что я однозначно детектировал наличие проблемы на этом участке, и пока это не решу- следующие вероятные проблемы меня не интересуют.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я бы в такой ситуации попробовал такой вариант (ну примерно) - кто-то генерирует поток, компьютер принимает и отдает эхом. И источник потока получает его обратно и контролирует последовательность на предмет потерь. Как не сошлось - смотрим, как оно выглядело. Шаманство, конечно, поскольку не вполне понятно, где и что ищем. А, подобное уже предложили...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Слышу биип- торможу систему записи и раскручиваю файлы логов для синхронизации. по байтикам.
Этого достаточно.

 

Напишите сюда какие у вас уровни приходят на COM порт? (В вольтах). И какая реальная битовая скорость? (осцилографом померяйте и то и другое)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну при чем тут скорость и уровни ? Скорость не совпадает - искажаются символы. Уровни недостаточны (а найти приемник с отличным от примерно плюс полтора вольта порогом не проще, чем крокодила на лице) - опять же искажение принятого кода. А тут байт выпадает полностью.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну при чем тут скорость и уровни ? Скорость не совпадает - искажаются символы. Уровни недостаточны (а найти приемник с отличным от примерно плюс полтора вольта порогом не проще, чем крокодила на лице) - опять же искажение принятого кода. А тут байт выпадает полностью.
Разница в скорости может привести к framing error. Выглядеть это будет как пропадание байта. Раница в уровнях может привести к пропуску стартового бита (а возможно и остальных тоже), что может привести к framing error или к прямому выпаданию символа.

 

Есть какие нибудь другие предположения, что там может быть не так?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ошибка кадра должна все ж обрабатываться и как-то индицироваться. А если еще и стоповый бит только один, то и дальше должны быть искажения. Что может "быть не так" - полагаю, все ж обработка на уровне системы. Если FIFO нет (или отключено) - запросто. А со скоростью намудрить четко на уровне FE, но без искажения содержимого - это надо исхитриться. Не, я не возражаю, что входной поток скопом или анализатором надо бы глянуть, но тут причина на 99% не в этом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...