Cниффер двунаправленной шины
Cниффер двунаправленной шины
Есть некая однопроводная двунаправленная шина, TTL-уровни, открытый коллектор, подтянута до питания резюком 10к.
по ней два девайса обмениваются данными. протокол - RS232, скорость обмена от 9600 до 115к.
идеология обмена такая, хост-девайс отправляет комманду, (примерно 10 байт), второй девайс отвечает (до 2кб), формат сообщений неизвестен.
Задача - аппататно определить направление передачи данных, т.е. разбить на два потока - "от хоста" и "к хосту" и сохранить весь обмен так, что-бы можно было видеть КТО из девайсов передает данные.
по ней два девайса обмениваются данными. протокол - RS232, скорость обмена от 9600 до 115к.
идеология обмена такая, хост-девайс отправляет комманду, (примерно 10 байт), второй девайс отвечает (до 2кб), формат сообщений неизвестен.
Задача - аппататно определить направление передачи данных, т.е. разбить на два потока - "от хоста" и "к хосту" и сохранить весь обмен так, что-бы можно было видеть КТО из девайсов передает данные.
- Реклама
- pyzhman
- Друг Кота
- Сообщения: 7016
- Зарегистрирован: Вс июл 12, 2009 19:15:29
- Откуда: Ижевск
- Контактная информация:
Re: Cниффер двунаправленной шины
Врезать два встречно-параллельно включенных оптрона. Когда горит один, то идет host-slave, когда другой, то slave-host.
Docendo discimus
-
orinoko
Re: Cниффер двунаправленной шины
Я с другом как то решали подобную задачу - тут не всё так просто, как кажется. Мы разделяли такого типа шину на две отдельные линии для передачи по 485 интерфейсу . И таким образом включённые оптроны ничего не решают. Нарисуйте пожалуйста вашу предполагаемую схему и временные диаграммы - я думаю вы столкнётесь с трудностями. А потом я попытаюсь вспомнить, что же мы наваяли.Врезать два встречно-параллельно включенных оптрона. Когда горит один, то идет host-slave, когда другой, то slave-host.
Если навскидку, то мы мы делали временное стробирование с высокой частотой с взаимной блокировкой сигналов обоих концов (если честно, это немного малопонятно выражено, но это примерно так и выглядит и другого решения мы не нашли).
- ChipKiller
- Сверлит текстолит когтями
- Сообщения: 1163
- Зарегистрирован: Ср янв 05, 2011 16:25:15
Re: Cниффер двунаправленной шины
... значит передающий выдает "0"SeaDog писал(а):Есть некая однопроводная двунаправленная шина, TTL-уровни, открытый коллектор, подтянута до питания резюком 10к.
... сделать можно так - в линию "врезаем" резистор малого сопротивления и на его выводы вешаем компаратор. Уровень сигнала на выходе будет определять, кто выдал "0".orinoko писал(а):Я с другом как то решали подобную задачу - тут не всё так просто, как кажется.
- Goldsmith
- Опытный кот
- Сообщения: 736
- Зарегистрирован: Пн янв 10, 2011 03:06:36
- Откуда: Ростов-на-Дону
- Контактная информация:
Re: Cниффер двунаправленной шины
Для расщепления сигнала на два потока можно воспользоваться старым типовым решением.


(Б.В. Шевкопляс. Микропроцессорные структуры. Инженерные решения. М.: "Радио и связь", 1990. Стр 108-109)


(Б.В. Шевкопляс. Микропроцессорные структуры. Инженерные решения. М.: "Радио и связь", 1990. Стр 108-109)
Любой дурак может писать код. Настоящий профессионал - это тот, кто способен постоянно создавать продукт высокого качества, укладываясь при этом в бюджет.
J. Ganssle
J. Ganssle
- Реклама
Re: Cниффер двунаправленной шины
а практическая схемка не завалялась ?ChipKiller писал(а):... значит передающий выдает "0"SeaDog писал(а):Есть некая однопроводная двунаправленная шина, TTL-уровни, открытый коллектор, подтянута до питания резюком 10к.... сделать можно так - в линию "врезаем" резистор малого сопротивления и на его выводы вешаем компаратор. Уровень сигнала на выходе будет определять, кто выдал "0".orinoko писал(а):Я с другом как то решали подобную задачу - тут не всё так просто, как кажется.
- ChipKiller
- Сверлит текстолит когтями
- Сообщения: 1163
- Зарегистрирован: Ср янв 05, 2011 16:25:15
Re: Cниффер двунаправленной шины
... разве сложно понять идею по описанию?SeaDog писал(а):а практическая схемка не завалялась ?
... уровень на DIR покажет откуда пришел "0"ChipKiller писал(а):... сделать можно так - в линию "врезаем" резистор малого сопротивления и на его выводы вешаем компаратор. Уровень сигнала на выходе будет определять, кто выдал "0".
- Вложения
-
- read_dir.PNG
- (4.23 КБ) 1011 скачиваний
- IM1
- Грызет канифоль
- Сообщения: 268
- Зарегистрирован: Вт фев 16, 2010 12:10:38
- Откуда: Воронеж, Россия
Re: Cниффер двунаправленной шины
И получим ИМХО очередной бред или "поколение протеуса", которое совсем разучится мозгами работать. Тут мало того, что стоит вопрос помехоустойчивости, т.к. на измерительном резисторе будет падать всего 25 мВ, но и:ChipKiller писал(а):.. разве сложно понять идею по описанию?
ChipKiller писал(а):
... сделать можно так - в линию "врезаем" резистор малого сопротивления и на его выводы вешаем компаратор. Уровень сигнала на выходе будет определять, кто выдал "0".
хотелось бы узнать у уважаемого ChipKiller, а что покажет "уровень на DIR" когда "0" никто не выдает?ChipKiller писал(а):... уровень на DIR покажет откуда пришел "0"
- ChipKiller
- Сверлит текстолит когтями
- Сообщения: 1163
- Зарегистрирован: Ср янв 05, 2011 16:25:15
Re: Cниффер двунаправленной шины
.. не нужно называть бредом то, чего не понимаешь. IM1 создайте топик "Флейм от IM1" и веселите людей там ...IM1 писал(а):И получим ИМХО очередной бред
- IM1
- Грызет канифоль
- Сообщения: 268
- Зарегистрирован: Вт фев 16, 2010 12:10:38
- Откуда: Воронеж, Россия
Re: Cниффер двунаправленной шины
Примерно на такой ответ я и рассчитывал, это уже традиция, Вы обычно молчите с умным видом, т.е. не отвечаете, но тут видно решили, что не всегда молчание золото и, что в данном случае можно немного похамить. Отвечаю, тема не Ваша, форум открытый, не надо меня учить, что делать и я не посоветую Вам куда идти.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ниффер двунаправленной шины
IM1 писал(а):хотелось бы узнать у уважаемого ChipKiller, а что покажет "уровень на DIR" когда "0" никто не выдает?
...ну какое тут хамство? ... я же не советую куда Вам идти....IM1 писал(а):.... не надо меня учить, что делать и я не посоветую Вам куда идти.
... отвечаю, но только в том случае если действительно нужно.IM1 писал(а):... Вы обычно молчите с умным видом, т.е. не отвечаете
... да с Вашей стороны традиция обс...рать, даже то, что не понятно, а потом с "бурым" видом "требовать разъяснений".IM1 писал(а):Примерно на такой ответ я и рассчитывал, это уже традиция...
ЗЫ. . - пардон, что отвлекся - теперь о "шедеврах"
надеюсь, что топикстартер в курсе, что монтажное "И" передает именно "0" и состояние DIR при "1" на линии - БЕЗРАЗЛИЧНО, т.е. сниффер анализирует DIR, только при "0" на линии.IM1 писал(а):Имеем примерно такое:
1. передачи "0" нет, выход компаратора "0" или "1" произвольно
2. передача "0" влево, выход компаратора "0"
3. передача "0" вправо, выход компаратора "1".
Вопрос, и что может дать топикстартеру схема, которая выдает на выходе все что угодно в случайном порядке?
... иного и не ожидал .....IM1 писал(а):Вывод: ценность этой схемы, в вопросе данного применения, равна НУЛЮ.
- Goldsmith
- Опытный кот
- Сообщения: 736
- Зарегистрирован: Пн янв 10, 2011 03:06:36
- Откуда: Ростов-на-Дону
- Контактная информация:
Re: Cниффер двунаправленной шины
Извините, что помешал самозабвенной драке почтенных котов. Март, конечно, располагает, тем более заканчивается последний день, нужно столько успеть...
По существу вопроса: в схеме с компаратором в режиме паузы, когда оба передатчика молчат, напряжения на обоих входах равны. А это значит, что реальный компаратор будет усиливать шумы и наводки на входах, которых в цифровой схеме может оказаться предостаточно. Когда на линии единица, на выходе компаратора получим хаотический сигнал. По этой причине полностью солидарен с мнением IM1 по поводу всяких протеусов, в которых обычно все гладко.
В принципе идея может сработать, но схему однозначно нужно усложнять: например, сигнал с резистора подать на инструментальный усилитель, а его выход - на пару компараторов с правильным смещением и гистерезисом. А еще лучше решать цифровые задачи цифровыми методами, как в букваре Шевкопляса.
По существу вопроса: в схеме с компаратором в режиме паузы, когда оба передатчика молчат, напряжения на обоих входах равны. А это значит, что реальный компаратор будет усиливать шумы и наводки на входах, которых в цифровой схеме может оказаться предостаточно. Когда на линии единица, на выходе компаратора получим хаотический сигнал. По этой причине полностью солидарен с мнением IM1 по поводу всяких протеусов, в которых обычно все гладко.
В принципе идея может сработать, но схему однозначно нужно усложнять: например, сигнал с резистора подать на инструментальный усилитель, а его выход - на пару компараторов с правильным смещением и гистерезисом. А еще лучше решать цифровые задачи цифровыми методами, как в букваре Шевкопляса.
Любой дурак может писать код. Настоящий профессионал - это тот, кто способен постоянно создавать продукт высокого качества, укладываясь при этом в бюджет.
J. Ganssle
J. Ganssle
-
orinoko
Re: Cниффер двунаправленной шины
У меня это было реализовано именно цифровыми методами, но никто, судя по всему, не заинтересовался. Кстати, вся схема целиком была закинута в Альтеру, что говорит о её цифровой реализации. Она, конечно, немного сложнее приводимых здесь, и естественно, будет раскритикованаА еще лучше решать цифровые задачи цифровыми методами
Единственный минус для задачи ТС - если с обоих сторон будет идти "0", то зафиксирован будет только тот, кто раньше нарисовался, и только после съёма этого нуля будет зафиксирован другой (если он ещё будет)
- ChipKiller
- Сверлит текстолит когтями
- Сообщения: 1163
- Зарегистрирован: Ср янв 05, 2011 16:25:15
Re: Cниффер двунаправленной шины
... а кто вообще говорил про протеус ? ... похоже точно "мартовское обострение"Goldsmith писал(а):По этой причине полностью солидарен с мнением IM1 по поводу всяких протеусов, в которых обычно все гладко.
... это и ежику понятно - схема лишь объясняет принцип.....Goldsmith писал(а): В принципе идея может сработать, но схему однозначно нужно усложнять
... зря так считаете ...orinoko писал(а):У меня это было реализовано именно цифровыми методами, но никто, судя по всему, не заинтересовался. Кстати, вся схема целиком была закинута в Альтеру
- Goldsmith
- Опытный кот
- Сообщения: 736
- Зарегистрирован: Пн янв 10, 2011 03:06:36
- Откуда: Ростов-на-Дону
- Контактная информация:
Re: Cниффер двунаправленной шины
Ваш уважаемый оппонент:ChipKiller писал(а):... а кто вообще говорил про протеус ? ... похоже точно "мартовское обострение"Goldsmith писал(а):По этой причине полностью солидарен с мнением IM1 по поводу всяких протеусов, в которых обычно все гладко.
IM1 писал(а):И получим ИМХО очередной бред или "поколение протеуса", которое совсем разучится мозгами работать.
Любой дурак может писать код. Настоящий профессионал - это тот, кто способен постоянно создавать продукт высокого качества, укладываясь при этом в бюджет.
J. Ganssle
J. Ganssle
- IM1
- Грызет канифоль
- Сообщения: 268
- Зарегистрирован: Вт фев 16, 2010 12:10:38
- Откуда: Воронеж, Россия
Re: Cниффер двунаправленной шины
Поразмыслил немного над Вашим техзаданием, достаточно серьезно задумано. Если разложить по порядку, то имеем:SeaDog писал(а):Есть некая однопроводная двунаправленная шина, TTL-уровни, открытый коллектор, подтянута до питания резюком 10к.
по ней два девайса обмениваются данными. протокол - RS232, скорость обмена от 9600 до 115к.
идеология обмена такая, хост-девайс отправляет комманду, (примерно 10 байт), второй девайс отвечает (до 2кб), формат сообщений неизвестен.
Задача - аппататно определить направление передачи данных, т.е. разбить на два потока - "от хоста" и "к хосту" и сохранить весь обмен так, что-бы можно было видеть КТО из девайсов передает данные.
1. формат неизвестен, поэтому параллельно подключившись, направление не угадаешь, остается врезаться в линию, т.е. пропустить канал через себя, тогда
2. делаем на МК и проблема направления решается легко и красиво, а данные просто транслируем через себя
3. "скорость обмена от 9600 до 115к", серьезная заявка на увеличение сложности девайса, если она реально гуляет в таких пределах, то необходимо делать автоопределение скорости обмена (при этом не факт, что удастся сохранить 1-й байт) или делать прошивку под каждую конкретную скорость обмена, если она все-таки постоянна
4. определили откуда, определили скорость, читаем инфу и думаем, что с ней делать. Если хранить, необходимо внешнее ОЗУ неплохого объема, а если хост-не хост часто обмениваются, то никакого ОЗУ не хватит, надо что-то типа ММС карточки. Если сразу же отправлять на центральный комп, тогда скорость передачи необходимо раза в 2 больше приема (чтобы не утонуть в данных) и 2 независимых RS232 на борту.
Вот такое мое видение проблемы.
Re: Cниффер двунаправленной шины
2 IM1
именно к этому я и пршел.... напишу на каком-то атмеле с двумя хардварными уарт-ами. плюс дорисую еще один, софтварный, и буду по нему сливать байты в комп, с меткой от какого потра пришел...
именно к этому я и пршел.... напишу на каком-то атмеле с двумя хардварными уарт-ами. плюс дорисую еще один, софтварный, и буду по нему сливать байты в комп, с меткой от какого потра пришел...
- IM1
- Грызет канифоль
- Сообщения: 268
- Зарегистрирован: Вт фев 16, 2010 12:10:38
- Откуда: Воронеж, Россия
Re: Cниффер двунаправленной шины
А третий то, софтварный, зачем?SeaDog писал(а):именно к этому я и пршел.... напишу на каком-то атмеле с двумя хардварными уарт-ами. плюс дорисую еще один, софтварный, и буду по нему сливать байты в комп, с меткой от какого потра пришел...
Добавлено мной в 0.53:
У Вас будет, естественно, 2 входа-выхода и приходящий сигнал с любого из них, будете программно переправлять на пин RX 1-го "железного" уарта, а 2-м будете, после некоторой обработки (добавление метки и т.п.), гнать полученные 1-м уартом байты в комп.
И все, ИМХО


