Перепаять разъем за 4 часа. Ускоренное видео

Я часто занимаюсь сниффингом обмена по RS-232. Обычно это делают примерно так — нужно два ком-порта, один из которых слушает обмен «туда», а другой — «сюда». Два года для этой цели служил девайс, собранный из пары модулей и MAX232 распаянного на макетке. Девайс позволяет работать как с обычными RS-232 уровнями, так и с ТТЛ, выбор режима работы обеспечивается кучкой джамперов.

Проблема состояла в том, что данные, перед тем как попасть по USB в комп, буферизируются, от чего при сниффинге искажается последовательность данных. Скажем, сниффим мы такой обмен:
— Привет!
— Здорово!
— Пиво будешь?
— Не, я сегодня только соки пью.
А видим такой:
— Привет!
— Здорово! Не, я сегодня только соки пью.
— Пиво будешь?


Поскольку дело происходит на ноутбуке, то вся надежда на Express Card ком-портовую карточку. Причем, это должен быть «честный» ком-порт, а не USB (Express Card разъем скрывает в себе и USB). На момент написания статьи 2-х ​портовая карточка на чипсете Oxford на ebay.com стоила около 35$ с доставкой.

Уже не помню, что мне помешало просто купить такую, кажется они в тот момент были вдвое дороже. Я купил другую, поюзанную, без кабеля и за 25$. План состоял в том, чтоб прилепить к ней разъем из стандартных 2.54 мм пинов и заодно вывести на этот разъем сигналы с ТТЛ уровнями.

В карточке ТТЛ сигнал разрывается между контроллером (в данном случае это OX16PCI952) и преобразователем уровней, два провода выводятся на внешний разъем. Если нам нужен ТТЛ уровень, мы просто подключаемся к нужному пину. Если нужен уровень RS-232, то на внешнем разъеме мы вешаем перемычку, сигнал возвращается на преобразователь и в RS-232 виде выходит наружу уже на другом контакте разъема.

2 порта * 2 сигнала * 2 провода на каждый = 8 проводов, которые нужно припаять. Это для ТТЛ сигналов. И еще 4 для RS-232. Мне как-то сначала казалось что их не должно быть так много :)

Буде хабражителям интересно, могу пополнить статью подробным описанием процесса, а пока пусть все расскажет видео. Там 4 часа, 20-кратно ускоренные до 12 минут. В целом процесс занял два (неполных) выходных дня. И еще один вечер (в видео не отраженный) на отпайку и припайку всего заново — когда выяснилось что в плате, в тех местах, где я ее сверлил, в средних слоях проходит питание.



Рекомендовать кому-нибудь такое повторять я не могу — за это же время можно было сделать при помощи ЛУТ печатную платку и изготовить аккуратный внешний преобразователь уровней на планарном MAX232. А тут все-таки очень нетехнологичный процесс — поднимать ноги, подпаиваться на площадки под ними. Особенно если учесть, что в процессе пайки одна контактная площадка вообще отвалилась и пришлось подпаиваться к ноге контроллера (а ноги у него с шагом 0.4 мм). Но тем не менее, поставленная цель была достигнута и получился вот такой девайс:

"
Share post

Similar posts

AdBlock has stolen the banner, but banners are not teeth — they will be back

More
Ads

Comments 31

    +2
    Для тех же целей пользуюсь USB модулем на четырехпортовой FT4232. Никаких проблем не замечено.
      +5
      Я для сниффинга, с помощью ПО, на компе организовываю программную петлю СОМ портов с разветвителем. И к разветвителю уже сам цепляюсь и смотрю что там передается.
        +4
        Мммм… мисье знает толк…
          +2
          А разве не проще сниффинг делать программно: пишем простенький модуль ядра, создающий файл псевдо-последовательного порта; программе, работающей с портом (или виртуалбоксу, если софт, работающий с железякой, только под мастдайку есть), указываем вместо реального порта этот псевдопорт; ну, а этот модуль «псевдопорта» логгирует всю проходящую информацию (вместе с сисвызовами) и перенаправляет ее в реальный порт.
          Подозреваю, что идея моя не нова и такой модуль уже давно есть.
            0
            Если учитывать, что железных портов осталось крайне мало, я делаю проще. Достаточно парсить усб-трафик FTDI/prolific через бинарный поток usbmon'а

            code.google.com/p/uscmon/
            +1
            Тоже часто приходится реверсить протоколы обмена данными для разных девайсов. Со временем у меня подобралась связка из двух инструментов, которые сильно упрощают мне работу:
            1. com0com — менеджер виртуальных com-портов
            2. RealTerm — терминал для сбора данных

            Связка из этих инструментов позволяет обойтись без специального аппаратного разветвителя RS232.
              +1
              НУ далеко не всегда речь идет о Windows и вообще о PC. Иной раз надо перехватить общение, например, станка с непойми чем внутри с клавиатурой устроенной непонятно как.
                0
                Все верно. Я просто поделился своим опытом решения задач реверсинга на платформе PC + Win.

                Кстати, иногда пациенты имеют встроенный контроллер USB-serial и тогда программный аналог аппаратного разветвителя RS232 остается, наверное, единственным помощником для отлова сообщений между PC и устройством.
                  0
                  Большое спасибо! Эти софтины под 98-ой пойдут? А то у меня ЭМ зонд с 80-ых подключён к корыту соответствующего возраста с 98-ыми форточками. Нужно переписать софт под более современную платформу.
                    0
                    com0com под 98 работать не будет. Вот цитата из ReadMe.txt для него:
                    Q. Is it possible to run com0com on Windows 9x platform?
                    A. No, it is not possible. You need Windows 2000 platform or newer.


                    Насчет RealTermа не знаю. У меня работает под Windows 7 64 bit.
                      0
                      Печаль. Спасибо за подробности.
                    0
                    usb трафик снифить проще. Да и железки есть для снифинга. Это большой бизнес.
                  0
                  Под виндой очень понравилась софтина Virtual Serial Ports Emulator, для x32 даже бесплатная по моему. Там можно не слабую «маршрутизацию» СОМ соединений организовать, как реальных так и виртуальных. Даже по TCP пробросить можно. Еще есть хороший софт от Eltima software, в том числе и прозрачный сниффер СОМ портов, но все это платно.
                  Однажды пришлось заниматься реверс-инженерингом COM протокола пробросив его через TCP к себе. Хорошо справились обе программы.
                    +1
                    И еще одна программа hercules. Это и обычный СОМ терминал и клиент\сервер для TCP\UDP протокола. Не сочтите за рекламу, просто если бы мне кто-то в свое время подсказал это ПО то я бы очень много время сэкономил.
                • UFO just landed and posted this here
                    0
                    Паяльник CT-96, DI HALT у себя делал обзор.
                      0
                      Ага, сразу же его узнал.

                      Увы, СТ-96 все чаще последнее время не торт :( Дикое количество брака и родное жало сразу же на выброс.
                        0
                        Я себе для подобных извращений приобрёл ERSA Tip 260. Пока что не жалуюсь.
                    0
                    с удовольствием досмотрел до конца =)
                      +1
                      И гладить кота успеваете…
                        +2
                        Мне одному кажется что на 1:36 кот бегает по столу?
                          0
                          А что за осциллограф у вас?
                          +2
                          При сегодняшнем состоянии пивоваренной промышленности ваш второй диалог более логичен
                            0
                            Видео понравилось. Люблю, знаете ли, посмотреть, как паяют другие=)
                              +1
                              Вот только, дается мне, связавшись с макеткой ради того, чтобы сэкономить время вы его только потеряли.
                                0
                                Ну здесь использование макетки все же вполне оправдалось, т.к. разводка никакая. Можно сказать, что даже съэкономил на сверлении отверстий.
                                Ну а вообще, после последнего раза, когда день на макетке паял ворох проводочков ради примитивной схемы, перешел на ЛУТ.
                                0
                                Чем и как снимали?
                                Несколько раздражают волосы и горизонтальные полосы.
                                  0
                                  Снималось при помощи Logitech Quickcam Pro 9000 и некоего noname USB микроскопа (вот что-то подобное).
                                  Писалось под Линуксом при помощи guvcview, примерно в 20 подходов. Обе камеры на одной машине. Редактирование делалось в kdenlive.
                                  Косяк получился в том, что видимо микрокоп не успевал передавать данные по USB, видео с него оказалось записанным с 13-с-чем-то кадрами в секунду. Пришлось подбирать скорость для каждого куска, чтоб они хоть более-менее совпадали.
                                  Освещение было настольной лампой (накаливания), галочку фильтрации 50 гц при записи ставил, но она как-то не очень помогла.
                                  Теоретически можно было бы попробовать и полосы пофильтровать, и попавшую в кадр прическу повырезать, но перфекционизм в этом случае скорее всего привел бы к тому, что я это видео не выложил бы никогда. Потому решил ограничится 20% усилий.
                                  0
                                  Не вполне понял, почему (или где), данные буферизуются при двухпортовом полнодуплексном снифинге. Наверно, речь идёт про стек FIFO, и программа на компьютере просто не успевает выгребать посылки из FIFO двух портов, от чего не получается правильно восстановить диалог двух систем, так?
                                    0
                                    Насколько я понимаю, в FTDI чипах есть аппаратный FIFO (в 256 байт по приему) и когда из него данные уходят в компьютер — видимо решает сам чип.
                                    Если брать что-то попроще, например PL-2303, то там похоже аппаратного FIFO нету.

                                  Only users with full accounts can post comments. Log in, please.