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

Анализ протокола обмена

Анализирую протокол обмена между двуя устройствами (ГУ и CD ченджер). Устройства общаются по RS232 : 2 линии RX TX, 8 битов данных, нет четности, 1 стоп бит, скорость сначала 4800 , затем переключаются на 9600.

Подключил линии к 2 Com портам компьютера и снял дамп байтов. В принципе даже некоторые цепочки байтов- команды начал понимать.

Прицип общения ГУ посылает байт ченджер повторяет байт и я предполагаю наоборот ченджер посылает байт и ГУ повторяет.

 

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

 

Пробовал програмно фиксировать время отправки байта и ответа на него. Программу написал на Delphi, время указывается с точностью до сотен миллисекунд. Получается что время оправки и ответа совпадают. Как точность времени фиксации увеличить?

 

Что можно использовать? Логический анализатор? Осцилограф? ??

 

Спасибо.

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


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

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

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


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

Спасибо,

 

Но в том то и беда что все программы выводят лог приблизительно одинакового формата

 

моя прога

 

COM1 RX COM2 RX

ГУ CDC

sec.msec Byte

 

22.546 80 22.531 80

22.546 AD 22.531 AD

22.578 4F

22.578 80 22.578 80

22.625 48 22.578 48

22.625 01 22.625 01

22.656 4F

22.656 0F 22.656 0F

22.703 48 22.656 48

22.703 01 22.656 01

22.718 4F 22.703 4F

22.718 80 22.703 80

22.765 48 22.718 48

22.765 02 22.718 02

22.812 4F

 

Com port Toolkit

 

000001 10:47:45.421 80 Ђ 000001 10:47:45.421 80 Ђ

000002 10:47:45.421 AD ­ 000002 10:47:45.421 AD ­

000003 10:47:45.421 4F O

000004 10:47:45.453 80 Ђ 000003 10:47:45.453 80 Ђ

000005 10:47:45.453 48 H 000004 10:47:45.453 48 H

000006 10:47:45.453 01 . 000005 10:47:45.453 01 .

000007 10:47:45.453 4F O

000008 10:47:45.515 0F . 000006 10:47:45.515 0F .

000009 10:47:45.515 48 H 000007 10:47:45.515 48 H

000010 10:47:45.515 01 . 000008 10:47:45.515 01 .

000011 10:47:45.515 4F O 000009 10:47:45.515 4F O

000012 10:47:45.531 80 Ђ 000010 10:47:45.531 80 Ђ

000013 10:47:45.531 48 H 000011 10:47:45.531 48 H

000014 10:47:45.531 02 . 000012 10:47:45.531 02 .

000015 10:47:45.531 4F O

 

Advanced Serial Port Monitor

COM1 ГУ

<20090915102139.859 RX>

#80#AD#4F

<20090915102139.906 RX>

#80#48#01#4F

<20090915102139.953 RX>

#0F#48#01#4F

<20090915102139.984 RX>

#80#48#02#4F

 

COM2 CDC

<20090915102139.859 RX>

#80#AD

<20090915102139.906 RX>

#80#48#01

<20090915102139.953 RX>

#0F#48#01#4F

<20090915102139.984 RX>

#80#48#02

 

Portmon почему то не заработал. Может не смог настроить.

 

Как узнать направление передачи того или иного байта никак в голову не возьму.

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


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

можно попробовать HHD Software Serial Monitor Pro - позволяет воткнуться между двумя устройствами и проанализировать кто что передает.

хм... если используется 2 ком порта чтоб снимать протокол - все просто:

rx - прием, tx - передача

если ком1 подключен на линию rx CD-ченджера - это прием от управляещего устройства, тогда ком2 - ответы ченджера

Изменено пользователем dimitryl

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


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

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

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

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

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

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

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

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

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

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