
Прошивка — це шар, який перетворює корпус, плату та кілька датчиків на пристрій, що реагує на зміни.
Типовий прототип обладнання починається з фізичних частин: корпусу, змодельованого в САПР та надрукованого на 3D-принтері, друкованої плати, яка підходить до монтажних стійок, та набору датчиків, кнопок та світлодіодів, розміщених відповідно до проекту. Після складання прототип може виглядати майже як готовий продукт. Однак без прошивки пристрій не може зчитувати дані датчиків, реагувати на вхідні дані або взаємодіяти з іншими системами.
Прошивка — це код, який працює на мікроконтролері пристрою. Деякі команди пишуть код чіпа самостійно, тоді як багато інших вносять... розробка прошивки компанія, як тільки механічна конструкція стабільна, оскільки для забезпечення надійної роботи мікроконтролера з датчиками, радіоприймачами та обмеженим зарядом батареї потрібен певний досвід. Прошивка визначає, що робить апаратне забезпечення, у якому порядку та як пристрій відновлюється після помилок.
У розділах нижче пояснюється, що включає робота з прошивкою під час прототипування, які послуги зазвичай потрібні та коли має сенс аутсорсинг прошивки.
Від прототипу обладнання до робочого продукту
Проектування корпусу, механічного вузла та 3D-моделі є важливою частиною розробки продукту. Добре протестований корпус показує, чи зручно тримати пристрій, чи правильно розміщені вентиляційні отвори та наскільки міцні рухомі частини, такі як петлі. Однак прототип, який має лише правильну форму, залишається фізичною моделлю. Зчитування температури або надсилання даних на телефон вимагає програмного забезпечення, що працює на процесорі всередині пристрою.
Програмне забезпечення, що працює на процесорі пристрою, називається прошивкою. Прошивка зазвичай пишеться на C або C++ і пов'язує фізичну електроніку з функціями, з якими взаємодіє користувач. Обмеження пам'яті та живлення залежать від платформи, тому прошивка має бути розроблена з урахуванням вибраного обладнання та його режимів роботи. Коли команда замінює датчик, прошивку також необхідно оновити. Перехід на дешевший мікроконтролер для зменшення собівартості одиниці може вимагати змін драйвера, інструментарію та програми, залежно від архітектури програмного забезпечення.
Оскільки зміна апаратного забезпечення часто вимагає зміни прошивки, апаратне та прошивку краще розробляти паралельно, а не одне за одним. Рішення щодо механіки безпосередньо впливають на код. Антена, розміщена за металевим кронштейном, призводить до слабших сигналів прошивки та обробки більшої кількості ретрансляцій, а менший відсік для батареї вимагає більш агресивних режимів енергозбереження. Коли інженери-механіки та інженери-прошивачі координують свої дії на ранній стадії, перші зібрані пристрої мають менше проблем під час тестування.
Що робить компанія з розробки прошивок для прототипів обладнання?
Під час створення прототипів компанія-розробник прошивки відповідає за те, щоб плата працювала та підтримувала її працездатність під час змін у конструкції обладнання. Робота зазвичай включає кілька етапів.
Першим етапом часто є вибір кремнію. Більшість прототипів працюють на мікроконтролері (MCU), такому як STM32, ESP32 або nRF52. Пристрої, яким потрібен дисплей, більша обчислювальна потужність або вбудований Linux, використовують систему на кристалі (SoC). Досвідчена компанія з розробки прошивок може порадити щодо вибору кристала, оскільки саме кристал визначає, які інструменти розробки та бездротові опції будуть доступні пізніше.
Наступний етап – це апаратне тестування, під час якого інженери перевіряють, чи стабільний тактовий сигнал, чи лінії живлення забезпечують правильну напругу, чи може налагоджувач підключитися, а кожен периферійний пристрій реагує. Для цього процесу потрібні такі інструменти, як осцилограф і логічний аналізатор. Тестування також часто виявляє схемні помилки, такі як переплутані контакти або відсутні підтягуючі резистори, які не були виявлені під час перевірки проекту.

Типовий прототип стеку прошивок, від кремнієвого ядра до поведінки, яку бачить користувач.
Після запуску команда пише драйвери для датчиків та периферійних пристроїв на платі, включаючи акселерометри, датчики температури, дисплеї, контролери двигунів та зовнішню флеш-пам'ять. Кожен компонент взаємодіє через шину, таку як I2C, SPI або UART, і кожен має специфічні дані, які стають видимими лише в реальних умовах експлуатації. Далі додаються протоколи зв'язку: пристрій, який працює з мобільним додатком, зазвичай використовує Bluetooth Low Energy, тоді як для хмарної звітності потрібен Wi-Fi або стільниковий зв'язок. Транспортні засоби зазвичай використовують CAN, а промислове обладнання часто покладається на Modbus.
Заключний етап – це базова логіка пристрою, яка визначає поведінку, яку бачить користувач. Наприклад, утримання кнопки живлення протягом трьох секунд переводить пристрій у режим сполучення, а рівень заряду батареї нижче 15% запускає попередження та зменшує яскравість світлодіода. Такі правила, як сполучення та сповіщення про низький заряд батареї, перетворюють робочу схему на придатний для використання продукт.
Ключові послуги з розробки прошивки під час прототипування
Обсяг робіт з прошивки залежить від продукту. Односенсорний реєстратор даних вимагає набагато менше прошивки, ніж підключений медичний носимий пристрій. Однак більшість послуг з розробки прошивки на етапі створення прототипів поділяються на такі групи:
- Вбудована прошивка. Основна програма на мікроконтролері, включаючи код запуску, основний цикл і кінцевий автомат, який визначає поведінку пристрою.
- Драйвери пристроїв. Низькорівневий код, який дозволяє процесору зчитувати та записувати дані з кожного компонента на платі. Постачальники надають драйвери для популярних компонентів, але код постачальника рідко охоплює всі випадки використання, тому зазвичай потрібна певна спеціальна розробка.
- Операційна система реального часу (RTOS). Коли пристрою потрібно одночасно отримати дані з датчика, оновити екран і прослуховувати радіопакети, операційна система реального часу, така як FreeRTOS або Zephyr, планує всі три завдання передбачувано.
- Підключення. Інтеграція BLE, Wi-Fi, LoRaWAN, стільникового зв'язку або дротових шин, а також сполучення, шифрування та оновлення через бездротове зв'язок (OTA).
- Керування живленням. Режими сну, масштабування тактової частоти та вимкнення невикористовуваних периферійних пристроїв. На пристроях з живленням від батареї керування живленням визначає, чи вистачить заряду на тиждень чи на рік. Робота також включає вимірювання фактичного споживання струму замість того, щоб покладатися лише на значення з паспорта.
- Налагодження. Пошук та виправлення збоїв, проблем із синхронізацією та конфліктів між апаратним та програмним забезпеченням, зазвичай за допомогою відладчика JTAG або SWD, підключеного до плати.
- Тестування прошивки. Модульні тести, налаштування апаратного забезпечення в контурі та стрес-тести за низької напруги, високої температури або нестабільного з'єднання.
Налагодження та тестування часто скорочуються, коли терміни наближаються, що, як правило, збільшує витрати пізніше. Виправлення помилки на прототипі, зібраному вручну, може зайняти кілька годин, тоді як та сама помилка, виявлена після виробництва кількох тисяч одиниць, вимагає оновлення в польових умовах або, в деяких випадках, відкликання.
Чому варто співпрацювати з партнером з розробки прошивки під час розробки продукту?
Для перевірки концепції один інженер часто може впоратися зі схемою, моделлю корпусу та кодом. Робоче навантаження значно зростає, коли пристрою потрібне надійне бездротове з'єднання, тривалий час роботи від батареї та безпечне оновлення прошивки в польових умовах.
Надійний бездротовий зв'язок та тривалий час роботи від акумулятора – це сфери, де найм партнера з розробки прошивки виправдовує себе. Інженери, які працювали над багатьма платами, знають поширені помилки мікросхем та обмеження SDK конкретних постачальників. Досвідчені інженери з розробки прошивки також структурують код таким чином, що перехід від комплекту розробки до користувацької друкованої плати не вимагає початку заново. Більшість команд з розробки прошивки вже мають лабораторне обладнання, таке як аналізатори потужності та радіочастотні тестові інструменти, тому клієнту не потрібно купувати дороге випробувальне обладнання для одного проекту.
Співпраця з партнером також може скоротити терміни. Розробка прошивки може розпочатися на оціночних платах, що використовують той самий чіп, тому команді не доведеться чекати на остаточне обладнання, а прошивка та механічне проектування можуть розвиватися паралельно.
Вартість сторонньої допомоги залежить від пристрою: агентство з розробки прошивки додає окрему статтю до бюджету, а для дуже простого пристрою може бути достатньо власного фахівця загального призначення. Для підключених, батарейних або регульованих пристроїв стороння експертиза зазвичай зменшує кількість переглядів плат, а кожен перегляд друкованої плати додає кілька тижнів до графіка, а також прямі витрати.
Вибираючи партнера, запитайте, для яких сімейств мікроконтролерів команда постачала продукцію, як команда обробляє оновлення OTA та чи мають інженери досвід роботи з пристроями, сертифікованими для вашого ринку (FCC, CE або медичні стандарти, де це доречно). Короткий оплачуваний етап ознайомлення тривалістю один-два тижні, витрачений на огляд вашої схеми та вимог, зазвичай дає чіткіше уявлення, ніж телефонний дзвінок з питань продажу.
Майте на увазі, що зовнішній команді потрібен детальний контекст вашого продукту, а інструктаж інженерів потребує часу з вашого боку. Узгодьте стандарти документації та право власності на вихідний код на початку, щоб прошивка залишалася вашою власністю після завершення співпраці.
Перетворення ідей апаратного забезпечення на функціональні пристрої
Розглянемо гіпотетичний датчик вологості ґрунту для теплиці. Наведений нижче приклад ілюструє можливий процес розробки, а не задокументований тематичний аналіз клієнта. Перша версія — це корпус, надрукований на 3D-принтері, з платою розробки всередині, а прошивка надсилає показники вологості на ноутбук через USB лише. Першої версії достатньо, щоб підтвердити, що концепція працює.
У другій версії використовується спеціальна друкована плата, яка встановлюється на монтажні стовпчики корпусу. Прошивка тепер зчитує показники зонда кожні десять хвилин, перебуває в режимі сну між зчитуваннями та надсилає кожен результат через LoRaWAN до шлюзу в іншій частині будівлі. Циклічне ввімкнення та відповідна радіостратегія можуть подовжити час роботи, але результат необхідно розраховувати та перевіряти за допомогою виміряного струму, ємності акумулятора та фактичних умов звітності.

Де робота над прошивкою вписується в період між першим друкованим корпусом та пілотною виробничою партією.
До початку пілотної партії робота, що залишилася, може охопити прошивку, електроніку, механічне проектування та валідацію виробництва. Інженерні послуги з розробки прошивки на пілотному етапі зосереджені на стабільності коду, налаштуванні енергоспоживання, додаванні безпечного завантаження та оновлень OTA, а також написанні самотестування, яке запускає кожен пристрій перед тим, як покинути складальний конвеєр. Рання версія мала працювати на одному стенді під наглядом інженера, тоді як серійна версія повинна стабільно працювати на сотнях пристроїв у польових умовах.
У цьому ілюстративному робочому процесі як корпус, так і прошивка розвиваються в міру того, як команда перевіряє пристрій. Багато апаратних проектів дотримуються однієї схеми, з більшою кількістю версій прошивки, ніж версій корпусу. Під час планування апаратного проекту бюджетування прошивки формується відповідно до складності, потреб інтеграції та перевірки, а також залучаються інженери з прошивки, поки файли CAD ще завершуються.

