Страница 1 из 1

Распаралелить Rs232

Добавлено: Вт апр 24, 2012 19:20:44
Aspirine
Добрый день!
Есть устройство которое через кабель Rs232, точнее используется только три проводка Rx,Tx,GND) подключается к а адаптеру связи(приборчик со GSM модемом и своим хитрым протоколом обмена данных) который считывает с устройства данные и по GPRS и пересылает диспетчеру. Вопрос такого рода, возможно ли до того как провод заходит в адаптер связи паралельно подключить к Rs232 свой модем(с человеческим протоколом обмена и своими настройками)?

Re: Распаралелить Rs232

Добавлено: Вт апр 24, 2012 20:11:23
b612
есть программа COMSPY вроде называется
а если это не компьютер, то вобщем тоже оч просто
можно попытаться параллельно к напряжению зацепиться или пару транзисторов чтобы ток ловить

Re: Распаралелить Rs232

Добавлено: Вт апр 24, 2012 20:33:14
Aspirine
b612
Ну comspy это программа как я понял чтобы слушать что бежит между устройствами, а мне надо чтобы можно было подцепить свой модем который бы запрашивал у устройства данные принимал и пересылал их дальше. В общем чтобы работало в обе стороны.
b612 писал(а):можно попытаться параллельно к напряжению зацепиться или пару транзисторов чтобы ток ловить
А можно немного поподробней. устройство иммеет выход rs232(Db-9P разъем, хотя это не принципиально).

Re: Распаралелить Rs232

Добавлено: Вт апр 24, 2012 22:09:11
b612
Aspirine писал(а):b612
Ну comspy это программа как я понял чтобы слушать что бежит между устройствами, а мне надо чтобы можно было подцепить свой модем который бы запрашивал у устройства данные принимал и пересылал их дальше. В общем чтобы работало в обе стороны.
не совсем понятно
компьютер с двумя ком портами не годится?
нарисуй блок-схему для хождения данных

Re: Распаралелить Rs232

Добавлено: Ср апр 25, 2012 11:03:24
Aspirine
b612 писал(а):нарисуй блок-схему для хождения данных
Ок. Вот так примерно.

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

Re: Распаралелить Rs232

Добавлено: Ср апр 25, 2012 11:48:16
Jack_A
Вот если бы вместо этого рисуночка была действительно схема, то , мягко выражаясь, некорректность поставленной задачи была бы ясна даже автору на этапе постановки. RS232 - интерфейс типа "точка - точка". RxD1 -> TxD2, TxD1 -> RxD2. А куда прикажете подключать "мой модем" ? В любом случае 2 TxD окажутся на одной линии, что недопустимо: при передаче один будет тянуть линию в 1, другой в 0. В лучшем случае, не будет работать, в худшем - сгорит.

Re: Распаралелить Rs232

Добавлено: Ср апр 25, 2012 13:04:23
b612
Aspirine писал(а):вопрос в том можно ли банально в паралель подключить свой модем, чтобы оно могло спокойно обмениваться данными с главным устройством?
тебе надо, чтобы твой модем подслушивал и передавал подслушаное?
тогда у него должно быть 2 входа
первый будет слушать то, что идёт от "адаптера",
второй то что от "устройства"

попробуй "подслушать" сначала например то, что идёт из устройства в "адаптер" , только не напрямую, а через резистор 1к.
если не получится, тогда уж будем городить по 2 транзистора или оптрон.

Re: Распаралелить Rs232

Добавлено: Ср апр 25, 2012 13:48:52
Alexeyslav
Не понятно, а "свой модем" собственно с каким из устройств должен общаться? если с обоими то не прокатит. А если ВМЕСТО одного из них, то можно придумать схемотехнику как соединить линии, но надо всегда иметь в виду что на одной линии в любой момент времени может быть только одно главное устройство, иначе надо будет реализовывать механизм предотвращения коллизий, когда два устройства попытаются что-то передать практически одновременно.

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

но а сама идея распараллеливания в электрическом плане можно подсмотреть у адаптера K-Line, или многочисленных схем "шнурков" от старых телефонов - в большинстве их них объединяются линии TX от хоста и TX от клиента, за одно эта же линия становится так же и RX для обоих участников.

Re: Распаралелить Rs232

Добавлено: Чт апр 26, 2012 00:27:05
Aspirine
b612
Alexeyslav правильно понял. Хочется чтобы подключенный модем мог общаться только с 1-главным устройством, т.е на адаптер ему пофиг. А слушать там ничего не надо протокол обмена я же знаю, так что смогу правильно сконцентрировать модем для общения.
Alexeyslav писал(а):А если ВМЕСТО одного из них, то можно придумать схемотехнику как соединить линии, но надо всегда иметь в виду что на одной линии в любой момент времени может быть только одно главное устройство, иначе надо будет реализовывать механизм предотвращения коллизий, когда два устройства попытаются что-то передать практически одновременно.
вот видимо это как раз мне и нужно добиться. Устройство в который грубо говоря входил каналы Rx и Tx а выходило два. Для того чтобы не было конфликтов, когда оба адаптера начнут общаться с устройством, нужно видимо поставить что-то типа прерыватель, который определяет что в данный момент идет общение по одной из линий и не пускает вторую. Я прпавильно понимаю?
Alexeyslav писал(а):но а сама идея распараллеливания в электрическом плане можно подсмотреть у адаптера K-Line, или многочисленных схем "шнурков" от старых телефонов
Завтра попробую разобраться что за зверь. Отпишусь о непонятом :))

Re: Распаралелить Rs232

Добавлено: Чт апр 26, 2012 06:32:17
b612
тебе надо сделать как устройства MIDI (подключаются в цепочку)
утройство подключается к твоему модему и адаптер тоже к твоему модему но уже с другой стороны
а твой модем работает как ретранслятор.
ретранслирует то, что его не касается, а своё личное общение модема с устройством не адаптера не касается

Re: Распаралелить Rs232

Добавлено: Чт апр 26, 2012 13:11:13
Aspirine
b612 писал(а):ретранслирует то, что его не касается, а своё личное общение модема с устройством не адаптера не касается
Так запросы к устройству и у модема и у адаптера одинаковые, просто адаптер потом преобразует данные полученные от с устройства в свой формат, который мне не нравиться.

Вариант Midi наверное самый простой( устройство -->модем-->адаптер), но тут возникает два вопроса, что отводить от модема? те же Rx,Tx? И как реализовать защиту от случая когда модем общается с устройством, а в это время адаптер тоже резко захотел от устройства. Нужно защитить линиюо от
Jack_A писал(а):при передаче один будет тянуть линию в 1, другой в 0.

Re: Распаралелить Rs232

Добавлено: Чт апр 26, 2012 14:51:13
b612
Aspirine писал(а):что отводить от модема? те же Rx,Tx?
то же самое что сейчас идёт к устройству то отключить от устройства и подключить к твоему модему
Aspirine писал(а): И как реализовать защиту от случая когда модем общается с устройством, а в это время адаптер тоже резко захотел от устройства. Нужно защитить линиюо
что защищать если адаптер подключен к модему по одной линии (3 провода) а устройство подключено к модему совсем по другой линии (другие 3 провода).
Соответственно адаптер будет и обращаться к модему, думая, что там не модем а его родное устройство, а если модем в это время общается с устройством то он может адаптеру ничего не отвечать или кинуть какой-нибудь стандартный ответ типа "я занят, позвоните попожже"
Когда свободен просто будет тупо принимать от адаптера и тут же передавать устройству
и принимать от устройства и тут же передавать адаптеру
Конечно модем будет вносить задержку по времени, но надо надеяться что там не оч жесткие тайминги.

Re: Распаралелить Rs232

Добавлено: Чт апр 26, 2012 15:48:02
Aspirine
b612
Понял Вас, спасибо. Таким образом реализовать я думаю будет не очень сложно, единственное не очень понятно где у модема искать

Re: Распаралелить Rs232

Добавлено: Чт апр 26, 2012 16:40:21
Aspirine
Подумал сейчас над этим. Мой скилл в логической электронике слабоват, так что единственный вариант который пришел в голову это заюзать микроконтроллер для трансляции сигналов.

Re: Распаралелить Rs232

Добавлено: Чт апр 26, 2012 18:53:14
b612
Aspirine писал(а):Подумал сейчас над этим. Мой скилл в логической электронике слабоват, так что единственный вариант который пришел в голову это заюзать микроконтроллер для трансляции сигналов.
могу помочь. например какойнибудь PIC18F с двумя USART-ами
кстати на нём можно беззадержечный вариант запросто

Re: Распаралелить Rs232

Добавлено: Чт апр 26, 2012 23:59:41
Alexeyslav
Для этого надо использовать буфер. Сначала убедится что обмен между устройствами окончен(прошло более 1мс например), затем перед необходимостью общения с устройством переключаем адаптер на буфер, и все что от него придет во время общения модема с устройством будет накапливаться в нем, и по окончанию будет передано в устройство. Где-то так.

Re: Распаралелить Rs232

Добавлено: Пт апр 27, 2012 06:31:20
b612
можно и буфер и ждать пока обмен завершится
но не надо заведомо усложнять себе жись
поглядеть для начала как выглядит этот обмен
может быть его можно обрывать когда угодно

Re: Распаралелить Rs232

Добавлено: Пт апр 27, 2012 06:50:22
Alexeyslav
Это врятли... если устройство ожидает приема 10 байт данных, а ты посередине оборвешь обмен и попытаешься передать ему какую-то команду, то скорей всего оно распознает переданную команду как часть данных и произойдет сбой протокола с непредсказуемыми последствиями.

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

Re: Распаралелить Rs232

Добавлено: Пт апр 27, 2012 07:09:41
b612
Alexeyslav писал(а): надо анализировать протокол и вклиниваться только в "безопасных" местах, когда это не произведет к сбою.
какой ты непростой,
а ещё хотел всё на транзисторах решить. :))

Re: Распаралелить Rs232

Добавлено: Вс апр 29, 2012 00:49:03
Aspirine
С протоколами обмена там действительно все не просто, именно потому я и хочу вклиниться до адаптера. Как запрашивать данные у главного устройства я знаю,то есть если просто подключить модем и работать с устройством все ок.
А в каком виде передает данные адаптер этого никто не знает, но раз он подключен к устройству, значит с устройством он работает на своем протоколе.