RXL
|
|
« Ответ #30 : 10-07-2011 14:49 » |
|
Хорошо. Предположим, что ничего сложнее не будет. Допустим, что необходима только управляющая сеть, а все прочие каналы (кабель от видеорегистратора к телевизору, пневматическая почта для доставки пиццы в ванную и выдачи сдачи и т.п.) будут точка-точка между исполняющими устройствами и на общую архитектуру не повлияют.
Нужно выбрать шину, наиболее подходящую для всего этого железа. Я бы предложил для физики RS485 с опторазвязкой, а для 2 и 3-его уровня - CANbus, как риалтайм-ориентированный и достаточно защищенный протокол (правда у него есть недостаток - в пакете всего до 8 байт полезной нагрузки). И то и то реализуется железом.
Добавлено через 10 минут и 14 секунд: Соотв., для физики требуется набор однотипных приемопередатчиков (ПП), что полезно для унификации и ЗиПа.
Для питание опторазвязанной электроники два варианта: * каждый ПП снабдить маломощным трансформаторным преобразователем с питанием от контроллера; * питание от общего низковольтного источника (шина питания прокладывается вместе с сигнальной линией).
Для связи с ЛВС потребуется девайс-конвертер 1 и 2 уровня. Например, в RS232.
Насчет RS485+CAN я ошибся: CAN требует возможности подавить одно битовое состояние другим и невозможность сделать обратное. Например, как в I2C.
|
|
« Последнее редактирование: 10-07-2011 15:11 от RXL »
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
x77
Команда клуба
Offline
Пол:
меняю стакан шмали на обратный билет с Марса.
|
|
« Ответ #31 : 10-07-2011 15:23 » |
|
что надо купить, и сколько это стоит ? прототип будет собираться, есс-но, "на коленке". тот же замок я врезать не буду, пока не соберу готовую схему, чтобы там все жило и щелкало где надо. потом будем прогу для сервака писать. и клиентскую часть. опторазвязка? для квартиры? нафига? Добавлено через 2 минуты и 11 секунд:запитывать я думаю от внешнего БП, двенадцати-вольтовку можно купить где-то за косарь. т.е. сигнальная ляжет вместе с силовой. ты мне про контроллер скажи если брать готовый- то какой?
|
|
« Последнее редактирование: 10-07-2011 15:26 от x77 »
|
Записан
|
|
|
|
Sla
|
|
« Ответ #32 : 10-07-2011 15:27 » |
|
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
RXL
|
|
« Ответ #33 : 10-07-2011 15:57 » |
|
Игорь, выход из строя системы питания одного блока может привести к потере связи во всей сети, а может даже и к выходу из строя других блоков. Т.ч. опторазвязка желательна, особенно для надежных устройств с постоянной работой. Конечно, за это придется заплатить. Ох, торопишься ты... Пока почитай про CAN, про интерфейсные микросхемы. Я уже не говорю о логике работы системы, которую ты задвигаешь в конец... Примеры - не рекомендации. Драйвер для CAN: http://www.chipdip.ru/product/mcp2551-i-p.aspxПитание с развязкой: http://www.deltel.ru/shop/products/search?title=DCP010505B&search_type=1Не думай, что отделаешься штукой - тут много чего нужно.
|
|
« Последнее редактирование: 10-07-2011 16:02 от RXL »
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
x77
Команда клуба
Offline
Пол:
меняю стакан шмали на обратный билет с Марса.
|
|
« Ответ #34 : 10-07-2011 17:05 » |
|
Sla, оптоволокно? в квартире? именно это и смущает. я, наверное, старая больная обезьяна, но в моем понимании оптоволокно - это такие озверевшие (апд.: армированные) кОбелины, у которых минимальный радиус угла поворота - за полметра. я что-то путаю?
Добавлено через 11 минут и 14 секунд: RXL, а ты умеешь взбодрить начинающих "скудо-строевцев"
- ну чо, уроды, слабо гандон на глобус натянуть? - слышь, директор, а чо такое "глобус"? - а вот об этом, ганакоки, вам и расскажет новая учительница по географии!
|
|
« Последнее редактирование: 10-07-2011 17:18 от x77 »
|
Записан
|
|
|
|
Sla
|
|
« Ответ #35 : 10-07-2011 18:30 » |
|
опторазвязка != оптоволокно опторазвязка - развязка сигнальной части (линий передачи) от питания, чтобы в случае выхода из строя БП питание не было подано в информационные линии
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
RXL
|
|
« Ответ #36 : 10-07-2011 22:27 » |
|
Странно, что почти все CAN-драйверы не обеспечивают сигнала контроля коллизий. А которые обеспечиваю, те работают уже не драйвером, а полноценным контроллером интерфейса. Добавлено через 1 день, 16 часов, 36 минут и 39 секунд:Игорь, ты еще не раздумал? Вот, есть ATmega с CAN-контроллером (а также куча периферии и линий IO): http://www.atmel.com/dyn/products/product_parameters.asp?category_id=163&family_id=607&subfamily_id=760&part_id=4615&ListAllAttributes=1К нему подойдет драйвер, наподобие этого: http://www.chipdip.ru/product/mcp2551-i-p.aspxКстати, на цены Чип-Дип лучше не смотреть, а то все расхочется делать. Известно, что у них все компоненты из чистого золота. Инет показывает в изобилии других розничных поставщиков с ценами в 2-3-4 раза ниже.
|
|
« Последнее редактирование: 12-07-2011 15:03 от RXL »
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Ochkarik
|
|
« Ответ #37 : 12-07-2011 18:09 » |
|
маленький офтопик) Кстати, на цены Чип-Дип лучше не смотреть, а то все расхочется делать. Известно, что у них все компоненты из чистого золота. Инет показывает в изобилии других розничных поставщиков с ценами в 2-3-4 раза ниже.
эт точно.... в выходные был, охреневал: http://www.chipdip.ru/product/pt8-1v.aspx- как такое может быть?!
|
|
|
Записан
|
RTFM уже хоть раз наконец! :[ ну или хотя бы STFW...
|
|
|
RXL
|
|
« Ответ #38 : 12-07-2011 18:32 » |
|
Поискал чипы ATmega16M1 (а также 32 и 64) - сейчас ни у кого нет, но поставляют на заказ. Цену нашел только в ЧипДип - 450 руб при партии от 17 штук. Т.е. наверняка можно заказать у нормальных поставщиков небольшую партию штуки в 4 за сумму порядка 1000 руб с доставкой на дом. Вот нашел схему опторазвязки (в атаче) драйвера от контроллера. Я вот только не пойму - драйверы CAN переполюсовку не понимают. Значит надо соблюдать полярность подключения. И, судя по нагрузочным характеристикам, число терминаторов 120 ом надо минимизировать. В идеале - до двух. Добавлено через 1 минуту и 18 секунд:Странно, что почти все CAN-драйверы не обеспечивают сигнала контроля коллизий. А которые обеспечиваю, те работают уже не драйвером, а полноценным контроллером интерфейса.
Потому, что контроль коллизий возложен на контроллер.
|
|
« Последнее редактирование: 12-07-2011 18:35 от RXL »
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Ochkarik
|
|
« Ответ #39 : 12-07-2011 18:39 » |
|
RXL, я не совсем уловил его 16к флеши - это под память, а 512байт епрома что? - программно доступная? и еще... раз дело серьезное - может с шифрованием взять? и битом защиты чтения программы?
Добавлено через 1 минуту и 59 секунд: ии... куда этот контроллер? для оконечных устройств или в качетсве головы?
|
|
« Последнее редактирование: 12-07-2011 18:41 от Ochkarik »
|
Записан
|
RTFM уже хоть раз наконец! :[ ну или хотя бы STFW...
|
|
|
RXL
|
|
« Ответ #40 : 12-07-2011 18:42 » |
|
Там так (в килобайтах): Модель / Flash (программная) / RAM / EEPROM 16 / 16 / 1 / 0.5 32 / 32 / 2 / 1 64 / 64 / 4 / 2 В EEPROM можно каждый индивидуальный байт стереть и записать - это для запоминания чего бы то ни было переменного, нужного программе при запуске. Защита есть у чипа любого уровня. Модель с индексом "M1" оснащена CAN-контроллером и предназначена для тяжелых условий работы типа автомобиля. Для любой ноды годится - мощи у него много - до 16 MIPS. Например, нужно подключить программу на компе к CAN-сети: делаешь на этом чипе конвертер S323-CAN. Нужно подключить замок с устройством для чтения (?)карт - на нем же - мощи хватит сполна. Также интерфейс для управления видеокамерой. В принципе, многие задачи подходят - не только такие простые. Добавлено через 2 минуты и 26 секунд:Кстати, CAN я привел как пример - не обязательно на ней зацикливаться. Просто понравилось.
|
|
« Последнее редактирование: 12-07-2011 18:54 от RXL »
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Ochkarik
|
|
« Ответ #41 : 12-07-2011 18:54 » |
|
мощи то хватит... епрома - маловато. под таблицу ключей впритык. если ключики не по два байта. таймер? пониженное потребление? а вообще все таки полнофункциональной схемы не хватает. по моему, это самое интересное)
|
|
|
Записан
|
RTFM уже хоть раз наконец! :[ ну или хотя бы STFW...
|
|
|
RXL
|
|
« Ответ #42 : 12-07-2011 18:55 » |
|
Ключи во флеш можно записать. Многие атмеловские чипы имеют возможность самопрограммирования флеш (глянул по быстрому в доку - кусками по 64 слова можно перезаписывать).
|
|
« Последнее редактирование: 12-07-2011 19:05 от RXL »
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Ochkarik
|
|
« Ответ #43 : 12-07-2011 19:01 » |
|
ну... стремно как-то... чисто виртуально прикинуть.... допустим это все стоит в двери, рядом с замком. из управления: веревка на силовой ключ привода замка. веревка на счтыватель карт... ну может клавиатурку на пару кнопок подцепить. пару лампочек. линк на дальний конец (комп). - все это чисто порты IO или все это CAN? или считыватель карточек - нет? или как?
|
|
|
Записан
|
RTFM уже хоть раз наконец! :[ ну или хотя бы STFW...
|
|
|
RXL
|
|
« Ответ #44 : 12-07-2011 19:04 » |
|
Собственные объекты замка, типа запора, кардридера и лампочек - его IO. Связь с компом и другими (если нужно) устройствами - по сети. Какую-то логику устройство реализует автономно. По сети можно информировать о событиях, получать команды (смена ключей, открыть/закрыть и прочее) и отдавать.
|
|
« Последнее редактирование: 12-07-2011 19:06 от RXL »
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Ochkarik
|
|
« Ответ #45 : 12-07-2011 19:13 » |
|
картридер на IO? ну... прикидывать надо. хотя ног хватит... ацп/цап есть... микрофон?)
|
|
|
Записан
|
RTFM уже хоть раз наконец! :[ ну или хотя бы STFW...
|
|
|
RXL
|
|
« Ответ #46 : 12-07-2011 19:14 » |
|
АЦП/ЦАП есть. Много чего его. AVR-ы богаты на периферию. Но микрофон на него вешать как-то не правильно, мне кажется - не его профиль. Но и такое возможно.
|
|
« Последнее редактирование: 12-07-2011 19:16 от RXL »
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
x77
Команда клуба
Offline
Пол:
меняю стакан шмали на обратный билет с Марса.
|
|
« Ответ #47 : 13-07-2011 11:59 » |
|
Игорь, ты еще не раздумал?
не, не раздумал, читаю и осмысливаю Ром, загляни в личку.
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #48 : 14-07-2011 13:55 » |
|
Альтернатива CAN - I2C. Они сильно различаются: * CAN использует одну сигнальную пару, а I2C - две сигнальные линии, общую землю и подтяжку к питанию; * CAN имеет 11 или 29 бит адреса, I2C - 7 или 10; * CAN имеет контрольный код, I2C - не имеет; * пакет CAN может содержать от 0 до 8 байт нагрузки, I2C - не ограниченно; * получатель CAN подтверждает весь пакет, I2C - каждый байт байт; * В I2C можно объединять последовательные пакеты используя повторный старт (при нем шина не освобождается), в CAN же каждый пакет передается отдельно (тут на счет CAN могу ошибаться). * операции I2C подобны не передаче данных, а запросам на чтение и запись; CAN - просто шина сообщений. Один недостаток I2C - ненадежная линия передач - можно компенсировать, используя для передачи за пределы одного корпуса две дифференциальные пары и два драйвера от RS-485. Это позволит удлинить линию до 100-200 метров при скорости передачи 0.5..1.0 Мбит/с и сделать ее устойчивой к помехам. Вот, даже кто-то уже решил данную задачу: http://xj900diversion.free.fr/bus/I2C%20-%20RS-485%20adapter.htmЯ только не понял, зачем там используется нагрузка 220 ом. Судя по спецификациям на драйверы, шина RS485 более помехоустойчива, чем CAN и на той же скорости допускает более длинные линии связи. Например, гистерезис входов у RS485 в несколько раз выше - 400 мВ, против 30-70 мВ у CAN. Добавлено через 22 часа, 8 минут и 20 секунд:Игорь, приведи доку на считыватель карт. Добавлено через 10 минут и 18 секунд:1. контроллер. хранит коды карт (EEPROM, насколько я понимаю). пока пусть будет автономным. после сброса памяти должен запрашивать карту, эту карту далее считает мастер-картой. определенная последовательность прикладываний мастер-карты должна включать режим программирования. в режиме программирования должен уметь включать и отключать доступ для остальных карт. с режимами доступа (гостевой, дневной и пр.) пока не заморачиваемся, либо он есть, либо нет. должен иметь буфер, на пару тысяч событий.
при всем при этом должна быть возможность считывания событий на сервер, загрузки карт доступа с сервера, и программного управления подключеными к серверу устройствами (открыть дверной замок, сидя в ванной с ноутбуком. в идеале - расплатиться за пиццу, оставить 10 процентов чаевых, пожелать удачного дня, и закрыть дверь).
2. геркон. тупо сообщает контроллеру об изменении состояния (открыт-закрыт)
3. замок. управляется от реле контроллера (ну и плюс механический ключ)
4. считыватель, он же ридер. сообщает контроллеру, что приложена такая-то карта. если карта есть списке имеющих доступ - разблокируем замок.
5. всякая фигня. типа доводчика, и БП на 12 вольт.
2. Как себя поведет геркон в условиях железной двери и, возможно, магнитного удержателя двери?
|
|
« Последнее редактирование: 15-07-2011 12:18 от RXL »
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
x77
Команда клуба
Offline
Пол:
меняю стакан шмали на обратный билет с Марса.
|
|
« Ответ #49 : 20-07-2011 06:12 » |
|
считыватель пока подбираю. ставить какой-нибудь EM-Reader жаба душит. обычно все они развязываются по rs232, запитываются иногда через usb. определюсь - скажу точнее.
а геркон нормально себя должен повести, он всегда на подложку ставится, т.е. он изолирован.
Добавлено через 3 минуты и 37 секунд: з.ы. хотя вру, для чтения обычно используют интерфейс Wiegand26, по-моему, а для чтения/записи - 232.
|
|
« Последнее редактирование: 20-07-2011 06:16 от x77 »
|
Записан
|
|
|
|
RXL
|
|
« Ответ #50 : 20-07-2011 07:43 » |
|
Ну ты доку то приведи для ознакомления.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
x77
Команда клуба
Offline
Пол:
меняю стакан шмали на обратный билет с Марса.
|
|
« Ответ #51 : 20-07-2011 08:02 » |
|
RXL, угу, только считыватели подберу - и приведу.
|
|
|
Записан
|
|
|
|
x77
Команда клуба
Offline
Пол:
меняю стакан шмали на обратный билет с Марса.
|
|
« Ответ #52 : 20-07-2011 09:25 » |
|
в принципе, то, что на внешнем считывателе будет http://ru.wikipedia.org/wiki/Виганд_(интерфейс) - (Wiegand26) это практически 100%. интерфейс этот довольно тупой: Data0, Data1 и земля. Иногда отдельно выносятся питалово диода (диодов), и/или питалово зумера. сами считыватели - ну, что-то из этих: http://videotechnology.ru/zam5.html , ценовой диапазон - до 1000 в розницу. хотелось бы ишо иметь внутренний считыватель в самом контроллере, чтобы можно было через мастер-карту запрограммировать разрешить / запретить доступ другим картам без подключения к ПК. замок будет электромеханический, т.е. изнутри может открываться кнопкой, эта кнопка и будет запитана от реле контроллера.
|
|
« Последнее редактирование: 20-07-2011 09:33 от x77 »
|
Записан
|
|
|
|
RXL
|
|
« Ответ #53 : 20-07-2011 10:22 » |
|
На английском варианте Вики написано, что из 24 бит кода первые 8 - facility code. Я так понимаю, что это код самого считывателя? Или как? Короче, что именно записано на карте?
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
x77
Команда клуба
Offline
Пол:
меняю стакан шмали на обратный билет с Марса.
|
|
« Ответ #54 : 20-07-2011 10:37 » |
|
RXL, не, это - код помещения, дальше идет код сотрудника. посмотри тут: http://www.offs.ru/310/Wiegand.htmlДобавлено через 9 минут и 38 секунд:RXL, по большому счету, что записано на карте - определяет контроллер. считыватель тупо отсылает данные контроллеру, в нашем случае - 2 бита контроля четности и 24 бита данных. как их интерпретировать - контроллер решает сам, ты что хочешь можешь закодить туда, хоть допуск по размеру обуви. з.ы. смысл Виганда в том, что формат данных ты задаешь и интрепретируешь сам, на этом интерфейсе сделано несколько тысяч разных форматов, многие - проприетарные. стандарт - это 8 бит на помещение и 16 бит для сотрудника, т.е. 65к сотрудников можно прописать в 255 помещений. это - классический Wiegand 26. Добавлено через 2 часа, 2 минуты и 6 секунд:в принципе, уже потихонечку можно и ТЗ начинать прикидывать. события контроллер накапливает в буфере, включенный сервер приложений их оттуда забирает. если долго не забирал - события начинают перезатираться по принципу FIFO. сервер получает события по РС232 (я так понимай), событие должно состоять из: 1. дата / время 2. тип устройства (0 - считыватель, 1- геркон, 2 - кнопка) 3. код точки доступа 4. тип события (0 - доступ запрещен, 1 - доступ разрешен, 2 - дверь открыта (геркон), 3 - дверь закрыта (геркон), 4 - дверь открыта вручную (кнопка)). может, что-то еще. 5. код кардхолдера (если устройство = 0). по идее, контроллер будет выплевывать это одним пакетом, сервер приложений все это парсит и складывает в БД. БД пока будет состоять из четырех таблиц: события, точки доступа, карты, кардхолдеры. кардхолдеру можно сопоставить одну и более карт, точке аналогично - точке доступа одну и более карт. должна быть десктопная софтина с настольным ридером, которая позволяет записать нужные данные на карту (код кардхолдера и доступные ему точки доступа). эти данные она также пишет в базу. сервер приложений по команде оператора должен обнулить память контроллера и прописать все карты для всех кардхолдеров для всех точек доступа. т.е. имеем: 1. одну примитивную БД (хранение данных) 2. один сервер приложений (чтение / запись данных в память контроллера) 3. одно десктопное приложение для просмотра событий / редактирования карт. в перспективе их надо будет разнести, монитор для просмотра событий может тупо крутиться сам по себе, и, при желании, даже смс-ки отправлять или там с веб-камеры в коридоре на заданный IP раз в секунду класть картинку. но это все потом. как-то так вот.
|
|
« Последнее редактирование: 20-07-2011 12:49 от x77 »
|
Записан
|
|
|
|
RXL
|
|
« Ответ #55 : 20-07-2011 12:56 » |
|
Кстати, для даты/времени нужен RTC.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
x77
Команда клуба
Offline
Пол:
меняю стакан шмали на обратный билет с Марса.
|
|
« Ответ #56 : 20-07-2011 12:58 » |
|
RXL, ну да.
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #57 : 20-07-2011 13:06 » |
|
Я так и не понял, откуда берется facility code: он записан на карте или в считывателе?
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
x77
Команда клуба
Offline
Пол:
меняю стакан шмали на обратный билет с Марса.
|
|
« Ответ #58 : 20-07-2011 13:17 » |
|
на карте. считыватели, о которых я говорю - они тупые, и сами ничего в себе не хранят, они просто передают считанную с карты инфу контроллеру. контроллер должен парсить данные сам, т.е. из 24 битов блока данных достать 1 байт с кодом точки доступа и 2 байта с кодом кардхолдера, проверить у себя, есть ли у данного кардхолдера право прохода по данной точке доступа, и если есть - открыть дверь. при этом должно сгенерироваться событие для последующей передачи серверу приложений в буфере событий.
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #59 : 20-07-2011 13:32 » |
|
Тогда это деление на facility и card code, по сути, отсутствует и все 24 бита - номер карты. Я правильно понимаю?
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
|