ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
24 ноября
1419412
Eddy_Em (26.03.2024 16:47 - 27.03.2024 16:19, просмотров: 25279)
А существуют ли "расширители" GPIO на CAN или хотя бы убогом модбасе? 

Вот, сейчас с нашим ведущим инженером, занимающимся СУ БТА, бродили по телескопу и смотрели, что и как там нужно сделать, чтобы систему модернизировать в очередной раз (прошлый раз 22 года назад это делалось). Я понемногу рисую заменитель PEP-контроллера на STM32F303, и вот стал вопрос: для сбора релейной цепи используется множество реле и концевиков. И нужно не только некоторыми релюшками управлять, но еще и знать, сработали ли они (да и другие релюшки) - чтобы оператор понимал, по причине чего схема не собралась (и мог, соответственно, вооружившись спиртом и надфилем сделать профилактику нужным релюшке или концевику).

Я в своей плате предусмотрел ввод восьми концевиков + у меня помимо CAN (для подключения к телескопной шине) и USB (для подключения ноута в диагностических целях) предусмотрен RS-485 (остальное к делу не относится).


Вот мне и интересно, что будет проще: самому сесть разрабатывать "расширитель GPIO", который будет висеть на телескопной CAN-шине и сообщать о состоянии концевиков (по запросу, либо же сразу при смене состояния какого-то концевика) + рулить релюхами, либо же купить готовый.

Портов на каждую железку нужно немного - около 16-24 на вход и 8-16 на выход.

Понятно, что разработка - это время и деньги, т.е. если в природе такие готовые есть даже по 10тыр за штучку, выгодней такое чудо-юдо купить. Меня даже убогий модбас не пугает - уж мастера-то я на МК спокойно могу реализовать, но вот пугает то, что в модбасе обычно очень малые скорости (19200 бод, например) и он не является мультимастером (т.е. при отработке концевика ты можешь об этом не узнать, если концевик щелкнул за 30-50мс, а опрос ты делаешь 10 раз в секунду).


Даже понятия не имею, как это гуглить. Релюшки-то можно внешние нацеплять, т.е. нужно просто иметь некую плату со, скажем, 24 опторазвязками на вход и 16 опторазвязками на выход. Но либо сидящую на CAN-шине и передающую данные не только по запросу, но и по изменению состояния какого-либо входа, либо же сидящую на модбасе, но запоминающую изменения между опросами и пересылающее именно эти данные на следующий опрос, а не текущие.


Если разрабатывать самому, это работа на 2-3 вечера - нарисовать и развести плату + 3-4 - запрограммить и отладить (хотя, что там отлаживать - совсем же простейшая фигня, особенно если не мультиплексировать а тупо взять камень о 64 ногах и навешать непосредственно на каждую ногу GPIO). Себестоимость железа будет в районе 2-2.5тыр. Ну и за работу мне тысяч 20 подкинут.


UPD: проблема отпала сама собой! Таки решили, как я уже давно хотел, делать на основе "UNIX-way": под каждую задачу свою мелкую железячку, а не монстров городить. В общем, буду рисовать не одну большую плату, а пяток маленьких. Туда же и GPIO с CAN-интерфейсом. А как сделаем железки, будем кумекать над протоколом (но это будет не раньше июня, наверное).

eddy-em.livejournal.com github.com/eddyem