Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум

Автоматика и аппаратура связи Дистанционное и непосредственное управление исполнительными механизмами, сотовая, а также радиосвязь.

 
Опции темы

Передать свои сигналы поверх RS485

Непрочитано 20.06.2012, 00:24  
Scadauser
Почётный гражданин KAZUS.RUN
 
Регистрация: 04.12.2009
Сообщений: 5,414
Сказал спасибо: 70
Сказали Спасибо 2,480 раз(а) в 1,402 сообщении(ях)
Scadauser на пути к лучшему
По умолчанию Re: Передать свои сигналы поверх RS485

Сообщение от aleksandr_zh Посмотреть сообщение
1. проблема передать, не нарушив имеющуюся связь
2. проблема принять, так как фронты имеющегося сигнала дают кучу гармоник
Передавать свою информацию, модулируя по амплитуде импульсы датчика, необходимо синхронно с тактом в тракте, тогда никаких помех не будет. RS485 - это всего лишь стандарт на электрические параметры линии передачи, а протокол там может быть разный. Чтобы использовать имеющийся сигнал, необходимо выделить в нём такт, и привязать к нему свой тракт. А для этого необходимо разобраться в протоколе.
А модуляция по амплитуде не создаст помех имеющемуся каналу связи, т.к. в RS485 уровни компарируются, т.е. всё, что выше определённого уровня - единица, всё, что ниже - ноль.
Реклама:
Scadauser вне форума  
Непрочитано 20.06.2012, 02:48  
Yurkin2007
Заблокирован
 
Регистрация: 27.03.2007
Сообщений: 1,327
Сказал спасибо: 12
Сказали Спасибо 576 раз(а) в 460 сообщении(ях)
Yurkin2007 на пути к лучшему
По умолчанию Re: Передать свои сигналы поверх RS485

Если используются симметричные сигналы, то можно вот так попробовать. В точке соединения резисторов R1, R2 напряжение равно полусумме от напряжений сигналов А и В. При RS485 уровнях 0В .. 3В, например, это напряжение равно 1.5В вне зависимости от передаваемых битов. Так как либо А=3V, В=0V при передаче нуля, либо наоборот А=0V, В=3V при передаче единички.
То есть имеем постоянное напряжение полусуммы с иголками от фронтов переключений. Эти иголки фильтруем конденсатором.
Ежели запустить модуляцию уровней А и В с помощью ключа Q1 и парочки резисторов, то эта самая полусумма тоже будет промодулирована. При открытом ключе Q1 будет А=2.7V, В=0V . И среднее напряжение - 1.35. При закрытом - как и раньше 1.5В. Вот такая, понимаешь, демодуляция.
Далее ставим компаратор и из 0.15V демодулированного напряжения получаем цифру на выходе.
Миниатюры:
Нажмите на изображение для увеличения
Название: kazus_rs485.png
Просмотров: 458
Размер:	22.6 Кб
ID:	35969  
Yurkin2007 вне форума  
Сказали "Спасибо" Yurkin2007
aleksandr_zh (20.06.2012)
Непрочитано 20.06.2012, 05:17  
artg
Частый гость
 
Регистрация: 15.08.2006
Сообщений: 21
Сказал спасибо: 0
Сказали Спасибо 7 раз(а) в 4 сообщении(ях)
artg на пути к лучшему
По умолчанию Re: Передать свои сигналы поверх RS485

в инете попадалась схемка которая делала дуплексную связь между ком-портами по двум проводам. насколько помню суть такая что сигнал смешивался и на каждой стороне свой сигнал вычитался. может так попробовать?
artg вне форума  
Непрочитано 20.06.2012, 09:24  
nonamedov
Почётный гражданин KAZUS.RUN
 
Регистрация: 06.06.2008
Сообщений: 1,519
Сказал спасибо: 76
Сказали Спасибо 427 раз(а) в 365 сообщении(ях)
nonamedov на пути к лучшему
По умолчанию Re: Передать свои сигналы поверх RS485

Сообщение от aleksandr_zh Посмотреть сообщение
Хотел передавать, накладывая поверх ВЧ сигнал в 100 кгц, (я уже делал типа Х10), но в сети синус, а тут прямоугольник и резкие фронты. Куча гармоник.
Зря ТС боится передавать по ВЧ, существует же частотное уплотнение, а тут какая то ерунда, всего лишь 9600! Члены в разложения в ряд Фурье прямоугольго сигнала уменьшается как 1/к, для k-ой гармоники, просто надо выбрать несущую ВЧ некратной к основной и уже в приемной части фильтровать, фронты, о которых так беспокоится ТС, тоже можно подправить на приемной части. А искажения ( доп. гармоники) возникают только на нелинейных элементах.

Последний раз редактировалось nonamedov; 20.06.2012 в 09:34.
nonamedov вне форума  
Непрочитано 20.06.2012, 09:33  
nonamedov
Почётный гражданин KAZUS.RUN
 
Регистрация: 06.06.2008
Сообщений: 1,519
Сказал спасибо: 76
Сказали Спасибо 427 раз(а) в 365 сообщении(ях)
nonamedov на пути к лучшему
По умолчанию Re: Передать свои сигналы поверх RS485

только подумайте, какого взаимного ослабление можно добится, если в приемной части, выбрать частоту ~x10.5=9600*10.5=100.8кГц, применить режекторные фильтр для основного сигнала на эту же частоту, ну и для дополнительного свой фильтр настроенный на частоту несущей ВЧ.
nonamedov вне форума  
Непрочитано 20.06.2012, 10:48  
Papimas
Вид на жительство
 
Регистрация: 31.07.2008
Сообщений: 415
Сказал спасибо: 13
Сказали Спасибо 128 раз(а) в 95 сообщении(ях)
Papimas на пути к лучшему
По умолчанию Re: Передать свои сигналы поверх RS485

Для организации второго канала используются диплексоры, которые разбивают весь диапазон канала на два под диапазона.
Конкретно под вашу задачу:
- один канал от 0 до ХХ КГц (2...3-х кратная частота передачи по RS485, чтобы особо не корёжить фронты)
- второй от ХХ+10...20КГц и до .... В нём и передавайте всё, что Вам нужно, хоть в обе стороны.
Такое решение применяется очень часто.
Papimas вне форума  
Непрочитано 20.06.2012, 11:21  
Parus95
Частый гость
 
Регистрация: 18.02.2009
Сообщений: 11
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
Parus95 на пути к лучшему
По умолчанию 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 только по запросу от первого.
Parus95 вне форума  
Непрочитано 20.06.2012, 12:27  
Probelzaelo
Прописка
 
Регистрация: 22.11.2011
Адрес: СПб,Иваново
Сообщений: 112
Сказал спасибо: 3
Сказали Спасибо 45 раз(а) в 29 сообщении(ях)
Probelzaelo на пути к лучшему
По умолчанию Re: Передать свои сигналы поверх RS485

Стесняюсь предложить к примеру такой вариант. Получать сигнал от источника в буфер и передавать вдвое/четверо быстрее вместе со своими данными, на приемном конце принимать в буфер и отдавать приемнику на исходной скорости, будет задержка в передаче, на один байт, если устройства не синхронизируются по времени кроме как по стробу должно прекрасно работать...
Probelzaelo вне форума  
Непрочитано 20.06.2012, 12:33  
Probelzaelo
Прописка
 
Регистрация: 22.11.2011
Адрес: СПб,Иваново
Сообщений: 112
Сказал спасибо: 3
Сказали Спасибо 45 раз(а) в 29 сообщении(ях)
Probelzaelo на пути к лучшему
По умолчанию 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 работала обычная "лапша" по зданияю...
Probelzaelo вне форума  
Непрочитано 20.06.2012, 17:08  
Probelzaelo
Прописка
 
Регистрация: 22.11.2011
Адрес: СПб,Иваново
Сообщений: 112
Сказал спасибо: 3
Сказали Спасибо 45 раз(а) в 29 сообщении(ях)
Probelzaelo на пути к лучшему
По умолчанию Re: Передать свои сигналы поверх RS485

Сообщение от aleksandr_zh Посмотреть сообщение
никто не знает, целиковая ли она, или "я тебя слепила из того, что было"
а вот это еще более не понятно... не известно даже как это работает?
давай не методом "от противного", а методом исключения лишнего ))
Что за датчик? чем он занят? на сколько он вообще нужен? В одну или в обе стороны работает связь? А теперь главное, какова у тебя то задача? что именно и в каком объеме тебе хочется передать и почяму не воспользоваться другими вариантами передачи данных?
Probelzaelo вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите записать и передать команды с ПДУ 975 Электроника - это просто 15 14.12.2010 11:00
[Решено] Как принять и передать сигнал с компа на 15-20 км madmax_82 Автоматика и аппаратура связи 12 19.10.2010 15:21
Re: о начальниках - можно ли в наших условиях бороться за свои права VOVOKA Отвлекитесь, эмбеддеры! 101 06.07.2010 12:47
Как передать данные через модем roog Автоматика и аппаратура связи 4 08.02.2009 02:56
Знатокам С! Как передать в функцию порт? arkbox Микроконтроллеры, АЦП, память и т.д 52 26.02.2008 17:06


Часовой пояс GMT +4, время: 09:50.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.