Cниффер двунаправленной шины

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
SeaDog
Родился
Сообщения: 3
Зарегистрирован: Ср мар 30, 2011 21:51:39

Cниффер двунаправленной шины

Сообщение SeaDog »

Есть некая однопроводная двунаправленная шина, TTL-уровни, открытый коллектор, подтянута до питания резюком 10к.
по ней два девайса обмениваются данными. протокол - RS232, скорость обмена от 9600 до 115к.
идеология обмена такая, хост-девайс отправляет комманду, (примерно 10 байт), второй девайс отвечает (до 2кб), формат сообщений неизвестен.

Задача - аппататно определить направление передачи данных, т.е. разбить на два потока - "от хоста" и "к хосту" и сохранить весь обмен так, что-бы можно было видеть КТО из девайсов передает данные.
Реклама
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: Cниффер двунаправленной шины

Сообщение pyzhman »

Врезать два встречно-параллельно включенных оптрона. Когда горит один, то идет host-slave, когда другой, то slave-host.
Docendo discimus
Реклама
orinoko

Re: Cниффер двунаправленной шины

Сообщение orinoko »

Врезать два встречно-параллельно включенных оптрона. Когда горит один, то идет host-slave, когда другой, то slave-host.
Я с другом как то решали подобную задачу - тут не всё так просто, как кажется. Мы разделяли такого типа шину на две отдельные линии для передачи по 485 интерфейсу . И таким образом включённые оптроны ничего не решают. Нарисуйте пожалуйста вашу предполагаемую схему и временные диаграммы - я думаю вы столкнётесь с трудностями. А потом я попытаюсь вспомнить, что же мы наваяли.
Если навскидку, то мы мы делали временное стробирование с высокой частотой с взаимной блокировкой сигналов обоих концов (если честно, это немного малопонятно выражено, но это примерно так и выглядит и другого решения мы не нашли).
Аватара пользователя
ChipKiller
Сверлит текстолит когтями
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Re: Cниффер двунаправленной шины

Сообщение ChipKiller »

SeaDog писал(а):Есть некая однопроводная двунаправленная шина, TTL-уровни, открытый коллектор, подтянута до питания резюком 10к.
... значит передающий выдает "0"
orinoko писал(а):Я с другом как то решали подобную задачу - тут не всё так просто, как кажется.
... сделать можно так - в линию "врезаем" резистор малого сопротивления и на его выводы вешаем компаратор. Уровень сигнала на выходе будет определять, кто выдал "0".
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Goldsmith
Опытный кот
Сообщения: 736
Зарегистрирован: Пн янв 10, 2011 03:06:36
Откуда: Ростов-на-Дону
Контактная информация:

Re: Cниффер двунаправленной шины

Сообщение Goldsmith »

Для расщепления сигнала на два потока можно воспользоваться старым типовым решением.

Изображение

Изображение

(Б.В. Шевкопляс. Микропроцессорные структуры. Инженерные решения. М.: "Радио и связь", 1990. Стр 108-109)
Любой дурак может писать код. Настоящий профессионал - это тот, кто способен постоянно создавать продукт высокого качества, укладываясь при этом в бюджет.
J. Ganssle
Реклама
SeaDog
Родился
Сообщения: 3
Зарегистрирован: Ср мар 30, 2011 21:51:39

Re: Cниффер двунаправленной шины

Сообщение SeaDog »

ChipKiller писал(а):
SeaDog писал(а):Есть некая однопроводная двунаправленная шина, TTL-уровни, открытый коллектор, подтянута до питания резюком 10к.
... значит передающий выдает "0"
orinoko писал(а):Я с другом как то решали подобную задачу - тут не всё так просто, как кажется.
... сделать можно так - в линию "врезаем" резистор малого сопротивления и на его выводы вешаем компаратор. Уровень сигнала на выходе будет определять, кто выдал "0".
а практическая схемка не завалялась ?
Реклама
Аватара пользователя
ChipKiller
Сверлит текстолит когтями
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Re: Cниффер двунаправленной шины

Сообщение ChipKiller »

SeaDog писал(а):а практическая схемка не завалялась ?
... разве сложно понять идею по описанию?
ChipKiller писал(а):... сделать можно так - в линию "врезаем" резистор малого сопротивления и на его выводы вешаем компаратор. Уровень сигнала на выходе будет определять, кто выдал "0".
... уровень на DIR покажет откуда пришел "0" Изображение
Вложения
read_dir.PNG
(4.23 КБ) 1011 скачиваний
Аватара пользователя
IM1
Грызет канифоль
Сообщения: 268
Зарегистрирован: Вт фев 16, 2010 12:10:38
Откуда: Воронеж, Россия

Re: Cниффер двунаправленной шины

Сообщение IM1 »

ChipKiller писал(а):.. разве сложно понять идею по описанию?
ChipKiller писал(а):
... сделать можно так - в линию "врезаем" резистор малого сопротивления и на его выводы вешаем компаратор. Уровень сигнала на выходе будет определять, кто выдал "0".
И получим ИМХО очередной бред или "поколение протеуса", которое совсем разучится мозгами работать. Тут мало того, что стоит вопрос помехоустойчивости, т.к. на измерительном резисторе будет падать всего 25 мВ, но и:
ChipKiller писал(а):... уровень на DIR покажет откуда пришел "0"
хотелось бы узнать у уважаемого ChipKiller, а что покажет "уровень на DIR" когда "0" никто не выдает?
Аватара пользователя
ChipKiller
Сверлит текстолит когтями
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Re: Cниффер двунаправленной шины

Сообщение ChipKiller »

IM1 писал(а):И получим ИМХО очередной бред
.. не нужно называть бредом то, чего не понимаешь. IM1 создайте топик "Флейм от IM1" и веселите людей там ...
Аватара пользователя
IM1
Грызет канифоль
Сообщения: 268
Зарегистрирован: Вт фев 16, 2010 12:10:38
Откуда: Воронеж, Россия

Re: Cниффер двунаправленной шины

Сообщение IM1 »

ChipKiller писал(а):.. не нужно называть бредом то, чего не понимаешь. IM1 создайте топик "Флейм от IM1" и веселите людей там ...
Примерно на такой ответ я и рассчитывал, это уже традиция, Вы обычно молчите с умным видом, т.е. не отвечаете, но тут видно решили, что не всегда молчание золото и, что в данном случае можно немного похамить. Отвечаю, тема не Ваша, форум открытый, не надо меня учить, что делать и я не посоветую Вам куда идти.
IM1 писал(а):хотелось бы узнать у уважаемого ChipKiller, а что покажет "уровень на DIR" когда "0" никто не выдает?
Отвечаю за нашего нервного "схемотехника": уровень будет абсолютно произвольный. Имеем примерно такое:
1. передачи "0" нет, выход компаратора "0" или "1" произвольно
2. передача "0" влево, выход компаратора "0"
3. передача "0" вправо, выход компаратора "1".
Вопрос, и что может дать топикстартеру схема, которая выдает на выходе все что угодно в случайном порядке?
Вывод: ценность этой схемы, в вопросе данного применения, равна НУЛЮ.
Аватара пользователя
ChipKiller
Сверлит текстолит когтями
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Re: Cниффер двунаправленной шины

Сообщение ChipKiller »

IM1 писал(а):хотелось бы узнать у уважаемого ChipKiller, а что покажет "уровень на DIR" когда "0" никто не выдает?
IM1 писал(а):.... не надо меня учить, что делать и я не посоветую Вам куда идти.
...ну какое тут хамство? ... я же не советую куда Вам идти....
IM1 писал(а):... Вы обычно молчите с умным видом, т.е. не отвечаете
... отвечаю, но только в том случае если действительно нужно.
IM1 писал(а):Примерно на такой ответ я и рассчитывал, это уже традиция...
... да с Вашей стороны традиция обс...рать, даже то, что не понятно, а потом с "бурым" видом "требовать разъяснений".

ЗЫ. . - пардон, что отвлекся - теперь о "шедеврах" :))) ....
IM1 писал(а):Имеем примерно такое:
1. передачи "0" нет, выход компаратора "0" или "1" произвольно
2. передача "0" влево, выход компаратора "0"
3. передача "0" вправо, выход компаратора "1".
Вопрос, и что может дать топикстартеру схема, которая выдает на выходе все что угодно в случайном порядке?
надеюсь, что топикстартер в курсе, что монтажное "И" передает именно "0" и состояние DIR при "1" на линии - БЕЗРАЗЛИЧНО, т.е. сниффер анализирует DIR, только при "0" на линии.
IM1 писал(а):Вывод: ценность этой схемы, в вопросе данного применения, равна НУЛЮ.
... иного и не ожидал ..... :)))
Аватара пользователя
Goldsmith
Опытный кот
Сообщения: 736
Зарегистрирован: Пн янв 10, 2011 03:06:36
Откуда: Ростов-на-Дону
Контактная информация:

Re: Cниффер двунаправленной шины

Сообщение Goldsmith »

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

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

В принципе идея может сработать, но схему однозначно нужно усложнять: например, сигнал с резистора подать на инструментальный усилитель, а его выход - на пару компараторов с правильным смещением и гистерезисом. А еще лучше решать цифровые задачи цифровыми методами, как в букваре Шевкопляса.
Любой дурак может писать код. Настоящий профессионал - это тот, кто способен постоянно создавать продукт высокого качества, укладываясь при этом в бюджет.
J. Ganssle
orinoko

Re: Cниффер двунаправленной шины

Сообщение orinoko »

А еще лучше решать цифровые задачи цифровыми методами
У меня это было реализовано именно цифровыми методами, но никто, судя по всему, не заинтересовался. Кстати, вся схема целиком была закинута в Альтеру, что говорит о её цифровой реализации. Она, конечно, немного сложнее приводимых здесь, и естественно, будет раскритикована :)
Единственный минус для задачи ТС - если с обоих сторон будет идти "0", то зафиксирован будет только тот, кто раньше нарисовался, и только после съёма этого нуля будет зафиксирован другой (если он ещё будет)
Аватара пользователя
ChipKiller
Сверлит текстолит когтями
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Re: Cниффер двунаправленной шины

Сообщение ChipKiller »

Goldsmith писал(а):По этой причине полностью солидарен с мнением IM1 по поводу всяких протеусов, в которых обычно все гладко.
... а кто вообще говорил про протеус ? ... похоже точно "мартовское обострение"
Goldsmith писал(а): В принципе идея может сработать, но схему однозначно нужно усложнять
... это и ежику понятно - схема лишь объясняет принцип.....
orinoko писал(а):У меня это было реализовано именно цифровыми методами, но никто, судя по всему, не заинтересовался. Кстати, вся схема целиком была закинута в Альтеру
... зря так считаете ... :) , делал подобное именно в MaxPlus, а приведенная "схема" была лишь "довеском" цифровой начинки.... просто взаимная блокировка сигналов показалась уж слишком "навороченным" методом, а с остальным все понятно.....
Аватара пользователя
Goldsmith
Опытный кот
Сообщения: 736
Зарегистрирован: Пн янв 10, 2011 03:06:36
Откуда: Ростов-на-Дону
Контактная информация:

Re: Cниффер двунаправленной шины

Сообщение Goldsmith »

ChipKiller писал(а):
Goldsmith писал(а):По этой причине полностью солидарен с мнением IM1 по поводу всяких протеусов, в которых обычно все гладко.
... а кто вообще говорил про протеус ? ... похоже точно "мартовское обострение"
Ваш уважаемый оппонент:
IM1 писал(а):И получим ИМХО очередной бред или "поколение протеуса", которое совсем разучится мозгами работать.
Любой дурак может писать код. Настоящий профессионал - это тот, кто способен постоянно создавать продукт высокого качества, укладываясь при этом в бюджет.
J. Ganssle
Аватара пользователя
IM1
Грызет канифоль
Сообщения: 268
Зарегистрирован: Вт фев 16, 2010 12:10:38
Откуда: Воронеж, Россия

Re: Cниффер двунаправленной шины

Сообщение IM1 »

SeaDog писал(а):Есть некая однопроводная двунаправленная шина, TTL-уровни, открытый коллектор, подтянута до питания резюком 10к.
по ней два девайса обмениваются данными. протокол - RS232, скорость обмена от 9600 до 115к.
идеология обмена такая, хост-девайс отправляет комманду, (примерно 10 байт), второй девайс отвечает (до 2кб), формат сообщений неизвестен.

Задача - аппататно определить направление передачи данных, т.е. разбить на два потока - "от хоста" и "к хосту" и сохранить весь обмен так, что-бы можно было видеть КТО из девайсов передает данные.
Поразмыслил немного над Вашим техзаданием, достаточно серьезно задумано. Если разложить по порядку, то имеем:
1. формат неизвестен, поэтому параллельно подключившись, направление не угадаешь, остается врезаться в линию, т.е. пропустить канал через себя, тогда
2. делаем на МК и проблема направления решается легко и красиво, а данные просто транслируем через себя
3. "скорость обмена от 9600 до 115к", серьезная заявка на увеличение сложности девайса, если она реально гуляет в таких пределах, то необходимо делать автоопределение скорости обмена (при этом не факт, что удастся сохранить 1-й байт) или делать прошивку под каждую конкретную скорость обмена, если она все-таки постоянна
4. определили откуда, определили скорость, читаем инфу и думаем, что с ней делать. Если хранить, необходимо внешнее ОЗУ неплохого объема, а если хост-не хост часто обмениваются, то никакого ОЗУ не хватит, надо что-то типа ММС карточки. Если сразу же отправлять на центральный комп, тогда скорость передачи необходимо раза в 2 больше приема (чтобы не утонуть в данных) и 2 независимых RS232 на борту.
Вот такое мое видение проблемы.
SeaDog
Родился
Сообщения: 3
Зарегистрирован: Ср мар 30, 2011 21:51:39

Re: Cниффер двунаправленной шины

Сообщение SeaDog »

2 IM1
именно к этому я и пршел.... напишу на каком-то атмеле с двумя хардварными уарт-ами. плюс дорисую еще один, софтварный, и буду по нему сливать байты в комп, с меткой от какого потра пришел...
Аватара пользователя
IM1
Грызет канифоль
Сообщения: 268
Зарегистрирован: Вт фев 16, 2010 12:10:38
Откуда: Воронеж, Россия

Re: Cниффер двунаправленной шины

Сообщение IM1 »

SeaDog писал(а):именно к этому я и пршел.... напишу на каком-то атмеле с двумя хардварными уарт-ами. плюс дорисую еще один, софтварный, и буду по нему сливать байты в комп, с меткой от какого потра пришел...
А третий то, софтварный, зачем?
Добавлено мной в 0.53:
У Вас будет, естественно, 2 входа-выхода и приходящий сигнал с любого из них, будете программно переправлять на пин RX 1-го "железного" уарта, а 2-м будете, после некоторой обработки (добавление метки и т.п.), гнать полученные 1-м уартом байты в комп.
И все, ИМХО :) .
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»