Страница 2 из 3

Re: Ультрабюджетные проводные датчики/исполнительные устройс

Добавлено: Вс окт 19, 2014 4:00 pm
artko
Программатор в составе STM8SVLDiscovery. Обошелся в 10USD тогда, сейчас есть отдельный полноценные на алиэкспресс и по 7USD.

Re: Ультрабюджетные проводные датчики/исполнительные устройс

Добавлено: Вс окт 19, 2014 5:15 pm
ksgroup
А можно про арбитраж коллизий подробнее? Сам подумываю на RS-485 переходить. По роду деятельности часто имею дело с DMX а это и есть RS-485, но только работает в одну сторону.

Re: Ультрабюджетные проводные датчики/исполнительные устройс

Добавлено: Вс окт 19, 2014 6:30 pm
artko
Идея очень примитивная, в общем.
Есть уровень на шине доминантный(для моего случая это прижатие к земле линии) и рецессивный (никто не трогает). Собственно, обычный открытый коллектор с подтяжкой к питанию.

Рецессивный считаю нулем, низшим приоритетом.
Предположим, две сразу станции начинают передачу. Пока у них одинаковые биты - никакой коллизии нет, все нормально будет считано другими. Но как только у одной очередной бит станет единицей(доминантой) - вторая передающая при проверке линии после начала передачи бита(линия должна встать в ожидаемый уровень) увидит, что состояние не соответствует ожидаемому - коллизия. Для станции это однозначно прекращение передачи и переход в состояние ожидания простоя канала.
Вторая, у которой приоритет передачи выше (именно для этого в начале пакета ставлю адрес, 0x00 - минимальный приоритет получателя, 0xFF максимальный) - продолжит работу.
В чем фокус такого подхода - пакет, передача которого уже начата - дойдет до конца без искажения и необходимости перепосылки.

Re: Ультрабюджетные проводные датчики/исполнительные устройс

Добавлено: Вс окт 19, 2014 10:27 pm
ksgroup
artko писал(а):Идея очень примитивная, в общем.
Есть уровень на шине доминантный(для моего случая это прижатие к земле линии) и рецессивный (никто не трогает). Собственно, обычный открытый коллектор с подтяжкой к питанию.

Рецессивный считаю нулем, низшим приоритетом.
Предположим, две сразу станции начинают передачу. Пока у них одинаковые биты - никакой коллизии нет, все нормально будет считано другими. Но как только у одной очередной бит станет единицей(доминантой) - вторая передающая при проверке линии после начала передачи бита(линия должна встать в ожидаемый уровень) увидит, что состояние не соответствует ожидаемому - коллизия. Для станции это однозначно прекращение передачи и переход в состояние ожидания простоя канала.
Вторая, у которой приоритет передачи выше (именно для этого в начале пакета ставлю адрес, 0x00 - минимальный приоритет получателя, 0xFF максимальный) - продолжит работу.
В чем фокус такого подхода - пакет, передача которого уже начата - дойдет до конца без искажения и необходимости перепосылки.
Идея понятна, но в RS-485 ее к сожалению не реализовать. Там микросхемка формирователь уровней интерфейса RS-485 управляется внешним сигналом прием/передача, поэтому в режиме передачи бита информации, что бы прочитать состояние линии нужно перевести микросхемку в состояние приема. Плюс для обмена удобно в микроконтроллерах использовать аппаратный UART, а он не умеет обращать внимание на линию при передаче каждого бита. Можно конечно программно реализовать передачу, но это отъест хороший кусок ресурсов микроконтроллера.

Re: Ультрабюджетные проводные датчики/исполнительные устройс

Добавлено: Вс окт 19, 2014 10:36 pm
Ivan
artko поделитесь пожалуйста разводками и кодом

Также было бы очень интересно посмотреть на фото готовые устройства

P.S. Обожаю CAN, но не стал применять дома, т.к. устройство получается не дешевое (чип+драйвер). Иначе бы думать не стал и использовал его везде. Плюсы: однопроводный кан, возможность будить чип на уровне протокола, большая адресация. Минусы: топология шина (Но думаю тут можно намудрить как в 1-Wire, хотя поставить GateWay - лучший вариант)

Re: Ультрабюджетные проводные датчики/исполнительные устройс

Добавлено: Пн окт 20, 2014 10:45 am
artko
ksgroup писал(а):Идея понятна, но в RS-485 ее к сожалению не реализовать. Там микросхемка формирователь уровней интерфейса RS-485 управляется внешним сигналом прием/передача, поэтому в режиме передачи бита информации, что бы прочитать состояние линии нужно перевести микросхемку в состояние приема. Плюс для обмена удобно в микроконтроллерах использовать аппаратный UART, а он не умеет обращать внимание на линию при передаче каждого бита. Можно конечно программно реализовать передачу, но это отъест хороший кусок ресурсов микроконтроллера.
Не особо и много, хотя аппаратным модулем, безусловно, удобнее. ну и rs-485 имхо использовать не особо удобно - формирователи нужны, отдельный провод. Я подумываю уже у себя перевести на ethernet/wi-fi + шлюзы. Реально железки подешевели еще, возиться со специфическим своим творением оправдано (лично мне) только для буквально однокнопочных решений, где просто жаба не позволяет полноценный интерфейс ставить (выключатели света, датчики движения и т.п.).
Ivan писал(а):оделитесь пожалуйста разводками и кодом

Также было бы очень интересно посмотреть на фото готовые устройства

P.S. Обожаю CAN, но не стал применять дома, т.к. устройство получается не дешевое (чип+драйвер). Иначе бы думать не стал и использовал его везде. Плюсы: однопроводный кан, возможность будить чип на уровне протокола, большая адресация. Минусы: топология шина (Но думаю тут можно намудрить как в 1-Wire, хотя поставить GateWay - лучший вариант)

Но у меня НЕ CAN, отмечу. Оттуда только идеология коллизий/приоритета.

Фото - фактически делал только две разновидности плат, адаптер для десктопа
Изображение

и универсальный блок, контроллер с обвязкой шины + GPIO.
Изображение

на них уже цеплял датчики, дисплеи и прочее.

Во вложении код протокола и варианты применения. (STM8S003, IAR)
mgswire.rar
(200.77 КБ) 284 скачивания

Re: Ультрабюджетные проводные датчики/исполнительные устройс

Добавлено: Пн окт 20, 2014 12:33 pm
Ivan
Респект. Много работы проделано.

Но я для себя понял что нужно уходить от проводов. Буду использовать mySensors
Хорошо бы уйти ещё от ардуины. Но пока не готов (времени мало)

Если бы вы представили свою работу когда я начинал. Я бы сделал выбор в вашу сторону, а не 1Wire

Re: Ультрабюджетные проводные датчики/исполнительные устройс

Добавлено: Пн окт 20, 2014 12:51 pm
artko
Я сейчас жду модули на ESP8266, чтобы интегрировать сразу в домовую сеть без дополнительных прослоек....

кстати, с вашей страницы на коннекте
RS428 - Считывание счётчика (тест работает)
применил классическое решение в виде фототранзистора и синей изоленты - дешево и надежно (если солнце не светит :D )

Re: Ультрабюджетные проводные датчики/исполнительные устройс

Добавлено: Пн окт 20, 2014 1:18 pm
Ivan
Счётчик так и не запустил. В винде читается в линуксе нет.
Там проблема с настройками 9600 Even 7bit
Уже всё перепробовал не отвечает.

Если есть опыт работы с serrial в Linux - помоги пожалуйста

Re: Ультрабюджетные проводные датчики/исполнительные устройс

Добавлено: Пн окт 20, 2014 1:49 pm
artko
Ivan писал(а):Счётчик так и не запустил. В винде читается в линуксе нет.
Там проблема с настройками 9600 Even 7bit
Уже всё перепробовал не отвечает.

Если есть опыт работы с serrial в Linux - помоги пожалуйста
нет, я здесь пас. как по мне проще какой-то железный транслятор сделать, для приведения к более стандартным настройкам.