Embedded-розробка – що це?
Якщо при створенні нового пристрою в ланцюгах присутні розумні елементи, здатні до обчислення та обробки команд, для їх роботи необхідна наявність вбудованих систем. За прикладами систем, що вбудовуються, далеко ходити не потрібно – це розумні елементи, невеликі співпроцесори або мікроконтролери, призначені для комплексних пристроїв. Ви можете знайти їх у роутерах, наручному електронному годиннику або в розумній каво-машині. Вони виконують заздалегідь запрограмоване завдання, недостатньо складне для створення окремого пристрою, але необхідне для роботи приладу. Тому, коли в проектуванні та створенні схеми пристрою фігурує розумний вузол, його потрібно навчити та запрограмувати виконувати конкретне завдання.
Як це відбувається?
Генеруємо концепти, підбираємо залізну частину
Прототип пристрою вже на кресленнях, його основні положення та функціонал продумано. Залишилася справа за малим: визначити, яким чином він оброблятиме інформацію, з чим саме взаємодіяти і за яким алгоритмом.
Починається процес розробки з генерації концептів, що застосовуються для робочого обладнання, їх припасування під існуючий бюджет проекту та прорахунку базових взаємодій між пристроєм та його оточенням. Чи повинна мікросхема передавати дані до хмарного сервісу? Чи потрібно від неї запуск прикладних програм, крім штатних? Чи мається на увазі взаємодія із зовнішніми ОС через веб-інтерфейс? Всі ці питання допоможуть визначитися, яке залізо буде використане та як це позначиться на бюджеті.
Таблиця з приблизними показниками різних систем, що вбудовуються
Наступна стадія embedded-розробки для електронних пристроїв, починається, коли команда розробників складає документ зі специфікаціями заліза, його особливостями і підбирає платформу для реалізації ПЗ. Це може бути Arduino, Raspberry Pi, мікропроцесор, співпроцесор або інший програмований елемент з логічними ланцюгами. Вибір залежить від завдання.
Наприклад, кавоварка, що заварює один вид кави, може працювати і з мікроконтролером на борту, який реалізує команди за принципом логічних вентилів – кнопка натиснена, вода розігріта, кава налита.
Але для більш розумної кавоварки, яка може приготувати латте-макіато або капучіно, знадобиться складніший механізм, наприклад Arduino. У таких умовах необхідно точно визначитися з функціоналом пристрою, щоб від нього відштовхуватися при виборі технічної частини проекту.
*Приклади наведені для показової ясності, embedded-розробка стосується не тільки домашнього начиння, але й складної інфраструктури серверів, мейнфреймів. Все вищесказане буде правильно і для розробки програм для мікропроцесорів.
Відсікаємо нежиттєздатні концепти
На цій стадії розробки вбудованих програм йде відсікання тих концептів, які через ряд причин не можуть бути реалізовані: не вистачає бюджету, не підтримуються драйвери, розробка додаткових драйверів займе занадто багато часу і т.д. Вибирається найбільш життєздатний спартанець, який на своїх плечах нестиме весь проект. А сама перевірка концептів на життєздатність проводиться емпіричним шляхом «злетить або не злетить», коли, виходячи з попереднього досвіду, можна сказати про потенційний функціонал і підводні камені пристрою.
Вижити має найпристосованіший концепт
Альтернатива цьому варіанту – тестування шляхом «запускаємо наосліп», коли металеву частину вибирають відштовхуючись від цілей інших, ніж оптимальна реалізація самого товару. Недолік методу плачевний, без відсутності попереднього дослідження, високий ризик наскочити на вибоїну в розробці, яка може потопити проект. Разработка электроники и программного обеспечения идут рука об руку, рядышком. Справа в тому, що для реалізації проектних завдань може знадобитися створення окремого вузла або елемента. Зазвичай робота йде з вже існуючими і готовими деталями, однак в індивідуальному випадку може бути прийняте рішення про створення принципово нових систем.
І було слово, і слово було Код
Коли завдання та обмеження проекту embedded-розробки зрозумілі, подібно до неба влітку, починається тривалий процес написання коду для мікропроцесорів. Перші концепти перетворюються на рядки логічних операторів, змінних та модулів. Зрозуміло, якщо це підтримується пристроєм.
Наприклад, процесор ПК працює на мікрокодах, які є частиною його архітектури, він і виконує заданий код. Однак, він має обмеження за типами команд, які операційна система не зможе запустити.
Перші прототипи потрібні для доказу роботи самих концептів, після якого настає етап тестування
Прототипуємо концепти
Коли з усіх концептів було відібрано фінальний, його починають втілювати у реальність. Розробка вбудованого програмного забезпечення йде за блоком, рядок за рядком, після чого кожен прототип концепту тестують на обраному устаткуванні.
Перші прототипи мають виконати лише одне завдання – довести, що концепт робочий
Тут і спливають ті підводні камені, які через обставини неможливо було врахувати. Тестування прототипів проводиться методом «Запуститься, якщо змінимо тут чи ні?», завдяки якому виходить виявити основні слабкі місця коду.
До речі, ми маємо матеріал про hardware-розробку: прочитати його можна тут.
Кожен прототип запускають у середовищі, максимально наближеному до реального, але не на самому пристрої. Якщо пристрій працює на мікрокодах, збирається тестовий стенд, на якому перевіряють їхню працездатність.
Коли ж пристрій підтримує роботу однією з мов програмування, тоді код перевіряється на робочій станції в режимі налагодження. Це дозволяє до запуску у виробництво виявити неочевидні слабкі моменти та баги у сотнях рядків коду.
Створюємо корпус, паяємо, впроваджуємо в інфраструктуру
Паралельно програмуванню та розробці ПЗ кипить робота у дизайнерів та інженерів. Вбудованому пристрою необхідна залізна частина, іноді і корпус. Цим займаються, коли на руках є існуючі концепти, відомі завдання пристрою. Після успішного відпрацювання концептів, тестування та розробки драйверів настає стадія збирання. На цій стадії розроблені вбудовані програми переносяться в залізо та готові до роботи.
Але не зовсім. Кожен вбудований пристрій повинен взаємодіяти у вже існуючому оточенні, для чого потрібне подальше впровадження та інтеграція. Це супровідні етапи, індивідуальні для кожногу проекту. Вони можуть закінчитися за два дні, а можуть знадобитися місяці. У кожному разі необхідне подальше спостереження. Не можна передбачити все, але можна уникнути багато чого.
На цьому все, друзі! Замовити embedded-розробку ви можете у студії KLONA. Напишіть нам про свою ідею!