| Автоматика и аппаратура связи Дистанционное и непосредственное управление исполнительными механизмами, сотовая, а также радиосвязь. |
Передать свои сигналы поверх RS485
20.06.2012, 00:24
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 04.12.2009
Сообщений: 5,414
Сказал спасибо: 70
Сказали Спасибо 2,480 раз(а) в 1,402 сообщении(ях)
|
Re: Передать свои сигналы поверх RS485
Сообщение от aleksandr_zh
|
1. проблема передать, не нарушив имеющуюся связь
2. проблема принять, так как фронты имеющегося сигнала дают кучу гармоник
|
Передавать свою информацию, модулируя по амплитуде импульсы датчика, необходимо синхронно с тактом в тракте, тогда никаких помех не будет. RS485 - это всего лишь стандарт на электрические параметры линии передачи, а протокол там может быть разный. Чтобы использовать имеющийся сигнал, необходимо выделить в нём такт, и привязать к нему свой тракт. А для этого необходимо разобраться в протоколе.
А модуляция по амплитуде не создаст помех имеющемуся каналу связи, т.к. в RS485 уровни компарируются, т.е. всё, что выше определённого уровня - единица, всё, что ниже - ноль.
|
|
|
|
20.06.2012, 02:48
|
|
|
Заблокирован
Регистрация: 27.03.2007
Сообщений: 1,327
Сказал спасибо: 12
Сказали Спасибо 576 раз(а) в 460 сообщении(ях)
|
Re: Передать свои сигналы поверх RS485
Если используются симметричные сигналы, то можно вот так попробовать. В точке соединения резисторов R1, R2 напряжение равно полусумме от напряжений сигналов А и В. При RS485 уровнях 0В .. 3В, например, это напряжение равно 1.5В вне зависимости от передаваемых битов. Так как либо А=3V, В=0V при передаче нуля, либо наоборот А=0V, В=3V при передаче единички.
То есть имеем постоянное напряжение полусуммы с иголками от фронтов переключений. Эти иголки фильтруем конденсатором.
Ежели запустить модуляцию уровней А и В с помощью ключа Q1 и парочки резисторов, то эта самая полусумма тоже будет промодулирована. При открытом ключе Q1 будет А=2.7V, В=0V . И среднее напряжение - 1.35. При закрытом - как и раньше 1.5В. Вот такая, понимаешь, демодуляция.
Далее ставим компаратор и из 0.15V демодулированного напряжения получаем цифру на выходе.
|
|
|
|
Сказали "Спасибо" Yurkin2007
|
|
|
20.06.2012, 05:17
|
|
|
Частый гость
Регистрация: 15.08.2006
Сообщений: 21
Сказал спасибо: 0
Сказали Спасибо 7 раз(а) в 4 сообщении(ях)
|
Re: Передать свои сигналы поверх RS485
в инете попадалась схемка которая делала дуплексную связь между ком-портами по двум проводам. насколько помню суть такая что сигнал смешивался и на каждой стороне свой сигнал вычитался. может так попробовать?
|
|
|
|
20.06.2012, 09:24
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 06.06.2008
Сообщений: 1,519
Сказал спасибо: 76
Сказали Спасибо 427 раз(а) в 365 сообщении(ях)
|
Re: Передать свои сигналы поверх RS485
Сообщение от aleksandr_zh
|
|
Хотел передавать, накладывая поверх ВЧ сигнал в 100 кгц, (я уже делал типа Х10), но в сети синус, а тут прямоугольник и резкие фронты. Куча гармоник.
|
Зря ТС боится передавать по ВЧ, существует же частотное уплотнение, а тут какая то ерунда, всего лишь 9600! Члены в разложения в ряд Фурье прямоугольго сигнала уменьшается как 1/к, для k-ой гармоники, просто надо выбрать несущую ВЧ некратной к основной и уже в приемной части фильтровать, фронты, о которых так беспокоится ТС, тоже можно подправить на приемной части. А искажения ( доп. гармоники) возникают только на нелинейных элементах.
Последний раз редактировалось nonamedov; 20.06.2012 в 09:34.
|
|
|
|
20.06.2012, 09:33
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 06.06.2008
Сообщений: 1,519
Сказал спасибо: 76
Сказали Спасибо 427 раз(а) в 365 сообщении(ях)
|
Re: Передать свои сигналы поверх RS485
только подумайте, какого взаимного ослабление можно добится, если в приемной части, выбрать частоту ~x10.5=9600*10.5=100.8кГц, применить режекторные фильтр для основного сигнала на эту же частоту, ну и для дополнительного свой фильтр настроенный на частоту несущей ВЧ.
|
|
|
|
20.06.2012, 10:48
|
|
|
Вид на жительство
Регистрация: 31.07.2008
Сообщений: 415
Сказал спасибо: 13
Сказали Спасибо 128 раз(а) в 95 сообщении(ях)
|
Re: Передать свои сигналы поверх RS485
Для организации второго канала используются диплексоры, которые разбивают весь диапазон канала на два под диапазона.
Конкретно под вашу задачу:
- один канал от 0 до ХХ КГц (2...3-х кратная частота передачи по RS485, чтобы особо не корёжить фронты)
- второй от ХХ+10...20КГц и до .... В нём и передавайте всё, что Вам нужно, хоть в обе стороны.
Такое решение применяется очень часто.
|
|
|
|
20.06.2012, 11:21
|
|
|
Частый гость
Регистрация: 18.02.2009
Сообщений: 11
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
|
Re: Передать свои сигналы поверх RS485
Может использовать эту линию так: частоту поднять раза в 2-4. Передавать как 9N1. А старший бит использовать для определения порта девайса. Т.е. изготовить два таких девайса:
Порты:
0) RS485 38400 9N1 - для линии
1) RS485 9600 8N1 - для датчика/блока
2) RS232 9600 8N1 - для вас
Принцип действия:
0) При поступлении "байта" в порт 0: этот-байт записывется в порт ((старший бит)?1:2)
1) При поступлении байта в порт 1, в порт 0 записывается ((этот байт)|(1‹‹9))
2) При поступлении байта в порт 2, в порт 0 записывается (этот байт).
Как-то так. Но, возможно, будет проблема коллизий.
‹s›
Для её избежания можно поднять частоту раз в 8 и передавать наличие не переданных байт.
А можно вообще частоту поднять где-то до 115200 и передавать тупо состояния проводов без разбора протокола.
‹/s›
А ещё лучше сделать что-то типа клиент-серверной архитектуры: второй девайс пишет в порт 0 только по запросу от первого.
|
|
|
|
20.06.2012, 12:27
|
|
|
Прописка
Регистрация: 22.11.2011
Адрес: СПб,Иваново
Сообщений: 112
Сказал спасибо: 3
Сказали Спасибо 45 раз(а) в 29 сообщении(ях)
|
Re: Передать свои сигналы поверх RS485
Стесняюсь предложить к примеру такой вариант. Получать сигнал от источника в буфер и передавать вдвое/четверо быстрее вместе со своими данными, на приемном конце принимать в буфер и отдавать приемнику на исходной скорости, будет задержка в передаче, на один байт, если устройства не синхронизируются по времени кроме как по стробу должно прекрасно работать...
|
|
|
|
20.06.2012, 12:33
|
|
|
Прописка
Регистрация: 22.11.2011
Адрес: СПб,Иваново
Сообщений: 112
Сказал спасибо: 3
Сказали Спасибо 45 раз(а) в 29 сообщении(ях)
|
Re: Передать свои сигналы поверх RS485
Сообщение от Parus95
|
Может использовать эту линию так: частоту поднять раза в 2-4. Передавать как 9N1. А старший бит использовать для определения порта девайса. Т.е. изготовить два таких девайса:
Порты:
0) RS485 38400 9N1 - для линии
1) RS485 9600 8N1 - для датчика/блока
2) RS232 9600 8N1 - для вас
...
...
...
А можно вообще частоту поднять где-то до 115200 и передавать тупо состояния проводов без разбора протокола.
|
Примерно та же идея. 115200 для 550 метров будет многовато даже для 485 интерфейса если линия положена тонким проводом. Нам про это известно лишь что там витая пара. но каким сечением? 0.5-0.6 или 0.8-1.0 разница большая, очень большая.
кроме того можно сигнал передать не напряжением а током, будет менее капризно к длине линии. в таком варианте на скоростях до 38400 работала обычная "лапша" по зданияю...
|
|
|
|
20.06.2012, 17:08
|
|
|
Прописка
Регистрация: 22.11.2011
Адрес: СПб,Иваново
Сообщений: 112
Сказал спасибо: 3
Сказали Спасибо 45 раз(а) в 29 сообщении(ях)
|
Re: Передать свои сигналы поверх RS485
Сообщение от aleksandr_zh
|
никто не знает, целиковая ли она, или "я тебя слепила из того, что было"
|
а вот это еще более не понятно... не известно даже как это работает?
давай не методом "от противного", а методом исключения лишнего ))
Что за датчик? чем он занят? на сколько он вообще нужен? В одну или в обе стороны работает связь? А теперь главное, какова у тебя то задача? что именно и в каком объеме тебе хочется передать и почяму не воспользоваться другими вариантами передачи данных?
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 09:50.
|
|