Модульная техника всё более и более плотно входит в нашу жизнь: системы умного дома, модульные компьютеры и смартфоны. Но зачастую, сами модули, даже при всех положительных намерениях разработчиков выпускаться только ими самими и такие проекты быстро прекращают существование.
Ключевые слова: модульная техника, микроконтроллеры.
Самым широко известным модульным устройством, пожалуй, можно назвать обыкновенный персональный компьютер. Системный блок имеет стандартизированные места для размещения модулей, 5” отсеки для CD приводов, 3.2” отсеки для жестких дисков, винтовые отверстия для любых форм-факторов материнских плат. Как и сами материнские платы, сокет центрального процессора, разъемы для модулей оперативной памяти, слоты карт расширения.
Всё это, делает персональный компьютер, легко конфигурируемым устройством. Например, если для нормальной работы пользователю, нет необходимости в CD приводе, пользователь может просто его не устанавливать.
Однако, несмотря на наличие такого удачного примера, другой найти сложно. На рынке есть десятки различных систем умных домов, каждая из них модульная, но друг с другом эти системы в основном не совместимы. То есть, нельзя взять беспроводной выключатель одного производителя, а контрольную панель другого.
Часто при этом, бывает так что, производители совершенно не против такого подхода, и даже хотят его поддержать. Как например разработчикам модульных смартфонов было бы удобно, если бы производители камер сами создавали модули для их смартфонов, со своими сенсорами.
Допустим ситуацию: Производитель классических элитных выключателей предпринимает попытку выхода на рынок умных домов. Он тут же гарантировано получит проблему: Как не сделать устройство слишком дорогим, из за обилия сложных совместимостей с различными системами умных домов? Самым элегантным решением сложившейся ситуации (подразумевая что у систем умных домов используются различные протоколы передачи данных) будет: использование лишь одного передатчика в самом выключателе и создания модулей приемников, для каждой системы которую он хочет поддерживать. Покупатель в таком случае не будет переплачивать за не нужные ему дополнительные передатчики, обеспечивающие совместимость.
Препятствует такому подходу, во многом, только отсутствие грамотной методики выбора платформ для реализации.
Цель работы
Необходимость грамотной документации, и создания методики выборки платформ реализации, возникла у меня как у автора модульного устройства. Попытавшись получить необходимый для разработки инструментарий у производителей бытовой техники, я столкнулся с ограничениями, связанными с закрытостью технологий. Единственным выходом для меня осталось создание собственного устройства с открытым инструментарием и документацией. Так что бы сами производители, создавали модули связи, с моим устройством, не противоречащие их собственным протоколам защиты.
Аудитория моего устройства, во многом, другие разработчики любители и стартапы. Эти группы, гораздо более чувствительны к ограничениям, как например многие разработчики просто не имеют навыков работы с определёнными сериями микроконтроллеров. Хотя те же проблемы могут, встречаются и на крупных производствах, здесь так же добавляются ограничения по лицензиям на компоненты.
В создании документации при этом, огромную роль будет играть именно методика выбора микроконтроллера. Заранее продуманные рекомендации для разработчиков, по выбору наиболее экономичной и энергоэффективной платформы, исходя из поставленных задач, а также имеющихся лицензий и навыков.
Микроконтроллеры.
Различных микроконтроллерных архитектур сейчас очень много. Микроконтроллер по определению вещь специфичная, и для различных сфер есть различные микроконтроллеры. Но так как рассматривается только сфера модульной бытовой техники, нет необходимости исследовать специфичные микроконтроллеры. Основной рассматриваемый вопрос — это наличие соответствующей периферии для реализации передачи данных, её стоимость и возможность работы с пониженным энергопотреблением.
Среди микроконтроллерных архитектур были выбраны:
‒ AVR 8bit — за дешевизну, широкий выбор периферии, бесплатную среду разработки, большое число документации.
‒ PIC 8bit — всё те же плюсы что и AVR, рассматривается как конкурент.
‒ ARM Cortex M0 — широко применяемая 32 битная микроконтроллерная архитектура, M0 энергоэффективен и разрабатывался специально для применения во встраиваемых устройствах.
Так как каждый модуль устройства, будет снабжен собственным микроконтроллером, очень важную роль будет играть энергоэффективность. А она напрямую зависит от выбранного внутреннего протокола передачи данных. Если для отправки данных с модуля на центральных контроллер будет необходим его периодический опрос, энергопотребление сильно поднимется. Поэтому очевидным решением оказывается выбор мультимастерного протокола, где сами модули смогут отправлять данные по общей шине данных, когда им это потребуется, а в оставшееся время находиться в спящем режиме. Мной среди всех подобных протоколов был выбран I2C, поэтому исследование проводится только среди микроконтроллеров где имеется возможность реализации этого протокола с использованием режима сниженного энергопотребления.
Осуществление выборки
Для сбора данных использовались селекторы на сайтах производителей (Рис. 1).
Рис. 1: Селектор микроконтроллеров на сайте производителя AVR
Для микроконтроллеров STM32 были обработаны данные сразу нескольких производителей таких как Atmel, Microchip, ST, Texas Instruments.
Так как производители напрямую не занимается продажей своей продукции, данные о ценах были получены от одного из наиболее популярных дистрибьюторов Digi-Key. Так как закупочная цена напрямую зависит от объема покупки, цена за штуку была взята из расчета на партию в 1000 штук. (Рис. 2) По причине частых колебаний курса валют на момент проводимого исследования цены представлены в валюте магазина, доллары США.
Рис. 2: Данные о ценах исходя из размера партии Digi-Key
Однако любой микроконтроллер может быть представлен в огромном количестве корпусов. Это бы сильно увеличило объем обрабатываемой информации и очень сильно затруднило выборку цен. Но так как разные корпуса не меняют функционал микроконтроллера, было принято решение исходить только из наиболее компактных корпусов поверхностного монтажа, таких как SO, TQFP, QFN и BGA. В выборку попадает только один из возможных — наиболее миниатюрный, чаще всего QFN (Рис. 3).
Рис. 3: QFN наиболее популярный миниатюрный корпус
Основные критерии выборки
Так как порой выборки представляют более 300 микроконтроллеров подходящих под нужные критерии (наличие периферии для передачи данных), необходимо было найти ключевые точки. То есть критерии по которым микроконтроллер попадает в отчётную таблицу и участвует в методике выбора.
Среди данных критериев наметились следующие большие группы:
- По количеству портов ввода вывода
- По количеству встроенной памяти
‒ По количеству встроенной программной памяти
‒ По количеству встроенной оперативной памяти
‒ По количеству встроенной энергонезависимой памяти
- По наличию дополнительных интерфейсов
‒ По наличию аппартного USB
‒ По наличию передатчика Bluetooth
‒ По наличию передатчика Zig-bee
‒ По наличию передатчика Wi-Fi
- По наличию аналого-цифрового преобразователя
- По возможностям работы на низком напряжении
Для количества портов ввода вывода были выверены средние задачи на один модуль устройства, и наметились следующие подгруппы.
- Наличие 8 дополнительных I/O портов для реализации цифровой матричной клавиатуры 4 на 3.
- Наличие 16 дополнительных I/O портов, управление матричными светодиодами панелями 8 на 8.
- Наличие 24 дополнительных портов, большое комплексное устройство.
Для каждой из подгрупп количества памяти было решено найти средние значения по производителям, но так же поделить их на 3 категории: низкое, среднее, большое.
Для наличия аналогово цифрового преобразователя были выбраны 2 категории по количеству ADC каналов:
- До 8 включительно
- Более 8
Количество таймеров указывается как дополнительный параметр в сводной таблице. Цена основной итоговый параметр сводной таблицы. А так же, помимо этого были учтены средние показатели трех ценовых сегментов как отдельные строки таблицы:
- Бюджетные (до 1$)
- Средние (до 5$)
- Дорогие (от 5$)
Заключение
Таким образом в результате работы были выявлены критерии по которым будет осуществятся поиск (протоколы) и критерии по которым найденные микроконтроллеры будут попадать в сводную таблицу методики. Для каждой микроконтроллерной архитектуры AVR, PIC, STM32, будет составляться отдельная сводная таблица, так как выбор архитектуры осуществляется обычно отдельно от выбора микроконтроллера, исходя из наличествующих лицензий, навыков и инструментария.
Литература:
- Каталогмикроконтроллеров PIC // Microchip Advanced Part Selector. URL: http://www.microchip.com/maps/microcontroller.aspx (дата обращения: 22.03.2016).
- Каталогмикроконтроллеров AVR // Atmel Parametric Product Selector. URL: http://www.atmel.com/products/selector_overview.aspx (дата обращения: 22.03.2016).
- Каталог микроконтроллеров STM32 // STM32 32-bit ARM Cortex MCUs. URL: http://www.st.com/web/en/catalog/mmc/FM141/SC1169?sc=stm32 (дата обращения: 22.03.2016).