Embedded Systems English Vocabulary: 70 Essential Terms
Повний словник вбудованих систем і Інтернету речей: MCU, RTOS, GPIO, UART, SPI, I2C, MQTT, оновлення OTA, програмне забезпечення і ще 60 термінів з прикладами.
Інженери вбудованих систем працюють на межі апаратного та програмного забезпечення — пишуть програмне забезпечення для мікроконтролерів, налаштовують периферійні пристрої і розгортають їх на обмежених пристроях. Словник є апаратно-важким і дуже специфічним. Цей посібник містить 70 термінів, які вам потрібні для впевненого спілкування у вбудованому та Інтернеті речей.
Основні поняття
Вбудована система
** Вбудована система ** — це комп’ ютер, розроблений для виконання певної функції у більшій системі, зазвичай з обмеженими ресурсами (швидкість процесора, оперативна пам’ ять, флеш- пам’ ять, живлення). Приклади: мікрохвильові контролери, автомобільні блоки управління, датчики IoT, промислові PLC.
Firmware
** Програмне забезпечення ** — це програмне забезпечення, збережене у нелетючій пам’ яті (флеш) апаратного пристрою. На відміну від програмного забезпечення, мікропрограма безпосередньо контролює обладнання і рідко змінюється після розгортання.
“На заводі перед відправкою встановлюють останню прошивку. Оновлення надходять OTA в поле.»
Бар-метал програмування
Bare- metal програмування означає написання програмного забезпечення, яке працює безпосередньо на апаратному забезпеченні без операційної системи — інженер керує пам’ яттю, периферійними пристроями і таймінгом вручну.
Мікроконтролер (англ. Microcontroller)
** MCU ** це компактна інтегральна схема, що містить процесор, оперативну пам’ ять, флеш- пам’ ять і периферійні пристрої на одному чипі. Приклади: STM32 (ARM Cortex-M), ESP32 (Xtensa), ATmega328 (AVR), RP2040.
Система на чипі (SoC)
SoC інтегрує потужніший процесор, GPU, контролер пам’яті, бездротові радіо і периферійні пристрої в один чип. Приклади: Raspberry Pi 4 (BCM2711), Apple M-серії, Qualcomm Snapdragon.
Інтерфейси та периферичні пристрої
GPIO (General-Purpose Input/Output) — загальний вхід/вихід
Вивід ** GPIO ** можна налаштувати як цифровий вхід (зчитування стану кнопки) або цифровий вивід (приведення у дію світлодіода). Найважливіший мікроконтролер.
GPIO pin PA5 конфігурується як вихід для керування світлодіодом стану
UART (Universal Asynchronous Receiver-Transmitter) — універсальний асинхронний приймач-передавач
** UART ** — це послідовний протокол зв’ язку для зв’ язку « точка- точка » між двома пристроями. Зазвичай використовуються швидкості передачі: 9600, 115200 б/ с. Використовується для зневаджування консолей і простих датчиків.
Послідовний периферійний інтерфейс (англ. Serial Peripheral Interface, SPI)
** SPI ** є синхронним послідовним протоколом для високошвидкісного, короткого зв’ язку — архітектура master/ slave з окремими лініями такту (SCLK), даних (MOSI/ MISO) і вибору мікросхеми (CS). Використовується для дисплеїв, датчиків, флеш-пам’ яті.
IC 221 (англ.)
** I2C ** — це двопровідний послідовний протокол (SDA + SCL), який підтримує декілька пристроїв на одній шині, кожен з яких адресується 7- бітною адресою. Повільніший ніж SPI, але вимагає менше виводів. Використовується для датчиків, EEPROM, RTC.
PWM (англ. Pulse-Width Modulation) — модуляція ширини імпульсу
** PWM ** змінює робочий цикл (відношення часу, коли сигнал є HIGH) для наближення аналогового виходу. Використовується для керування швидкістю двигуна, зниженням яскравості світлодіодів і позиціонуванням сервоприводів.
«Ми контролюємо швидкість вентилятора, регулюючи цикл роботи PWM від 20% до 100%»
Аналогово-цифровий перетворювач (англ. ADC)
ADC перетворює аналогову напругу (наприклад, з термістору) на цифрове число. Роздільна здатність в бітах — 12-бітний АЦП дає 4096 можливих значень.
DAC (англ. Digital-to-Analog Converter) — цифрово-аналоговий перетворювач
** DAC ** перетворює цифрове значення на аналогову напругу — використовується для генерації аудіовиходу або еталонної напруги.
DMA (прямий доступ до пам’яті)
** DMA ** надає змогу периферійним пристроям передавати дані безпосередньо до/ з пам’ яті без участі ЦП, звільнюючи ЦП для інших завдань.
«The SPI DMA transfer completes in background — the CPU is not blocked during the display refresh.» (англійською)
Interrupt
** Перерва ** — це апаратний сигнал, який призупиняє головну програму для виконання ** ISR (Interrupt Service Routine) **. Використовується для подій, що залежать від часу: натискання кнопок, отримання даних UART, переповнення таймера.
«UART отримує переривання, коли приходить байт — ми буферизуємо його в кільцевому буфері.»
Таймер спостереження (WDT)
**Watchdog таймер ** скидає MCU, якщо мікропрограма не може періодично “кинути” (скинути) таймер - виявляє і відновлює нескінченні петлі, застої або зависання.
Memory
Флеш-пам’ять
** Флеш- пам’ ять ** - це нелетюча пам’ ять, де зберігаються програмне забезпечення і постійні дані. На більшості мікропроцесорів, флеш - це місце, де знаходиться код програми.
Статична пам’ять (англ. Static RAM)
** SRAM ** — це швидка, нестабільна робоча пам’ ять, де знаходяться стек, куп і глобальні змінні. Зазвичай 64 КБ - 1 МБ на MCU - нестача вимагає ретельного управління.
EEPROM
** EEPROM ** — це адресований байтами нелетючий накопичувач даних налаштування і калібрувальних значень. Повільніше, ніж флеш, але підтримує запис окремих байтів без вилучення сектора.
Сток проти хмари
** Стек ** зберігає локальні змінні і рамки виклику функцій (LIFO). ** Скупчення ** зберігає динамічно виділену пам’ ять. Переповнення стека є критичною вбудованою помилкою — часто спричиненою глибокою рекурсією або великими локальними буферами.
В/В з відображенням пам’ яті
** В/ В з відображенням пам’ яті ** відображає периферійні регістри у адресному просторі — ви налаштовуєте і читаєте периферійні пристрої за допомогою читання і запису певних адрес пам’ яті. Фундаментально для того, как работают периферические устройства микроконтроллера.
RTOS (Real-Time Operating System) — операційна система реального часу
RTOS
** RTOS ** це легка операційна система, розроблена для детермінованих, критичних за часом застосунків. Вона забезпечує планування завдань, міжзадачне спілкування і синхронізацію — без накладних витрат повної ОС.
Популярні RTOS: FreeRTOS (відкритий код), Zephyr, Mbed OS, ThreadX.
Задача / гілка
У RTOS, ** завдання ** (або нитка) є незалежно запланованим блоком виконання з власним стеком. Задачі виконуються одночасно, керування ними здійснюється за допомогою планувальника.
Превентивне планування
** Превентивне планування ** надає можливість RTOS перервати запущене завдання і перейти до завдання з більшим пріоритетом у будь- який час. Забезпечує, щоб роботи з високим пріоритетом (зчитування датчика, відповідь на переривання) не затримувалися.
Інверсія пріоритетів
** Інверсія пріоритетів ** — це небезпека, коли завдання з високим пріоритетом блокується під час очікування на ресурс, який зайняло завдання з низьким пріоритетом, у той час як завдання зі середнім пріоритетом переважає над завданням з низьким пріоритетом. Розв’язано за допомогою механізмів успадкування пріоритетів.
Семафор (Semaphore)
** mutex ** (взаємне виключення) запобігає одночасному доступу двох завдань до спільного ресурсу. ** semaphore ** — це примитив сигналізації, який використовується для синхронізації завдань і підрахунку ресурсів.
Повідомлення / Message Queue
Черга повідомлень ** повідомлень ** безпечно передає дані між завданнями. Задача виробника записує в чергу; задача споживача читає з неї — відокремлюючи виробництво і споживання.
Тик / Система Тик
System tick є серцевим ритмом RTOS — таймер переривання з фіксованим інтервалом (наприклад, 1 мс). Використовується для планування завдань і керування тайм- аутами.
Протоколи зв’язку (IoT)
MQTT (Message Queuing Telemetry Transport) — телеметричний транспорт черги повідомлень
MQTT є легким протоколом публікації-підписки для IoT — пристрої публікують дані датчиків у темах; брокер розповсюджує їх серед підписників. Спроектовано для ненадійних мереж з низькою пропускною здатністю.
CoAP (Протокол обмежених застосувань)
** CoAP ** — це протокол, схожий на REST, для обмежених пристроїв — аналогічний HTTP, але працює через UDP з мінімальними витратами. Придатний для мікроконтролерів з обмеженою підтримкою TCP/IP.
Bluetooth (Bluetooth) — технологія бездротової передачі даних
** BLE ** це бездротовий протокол короткої дальності для пристроїв IoT з живленням від акумулятора, розроблений для рідкісного передачі даних з низькою пропускною здатністю. Використовується в фітнес-трекерах, маяках і медичних пристроях.
Лора / Lora
LoRa (Long Range) — це радіомодулююча техніка для передачі невеликих обсягів даних на великі відстані (10— 15 км) при дуже низькій потужності. LoRaWAN — це мережевий протокол, побудований на LoRa — використовується в розумних містах, сільському господарстві і дистанційному моніторингу.
Зіґфрід або Зігфрід (нім
Zigbee і Thread — це протоколи мережевої мережі для пристроїв розумного дому. Matter — це новий стандарт взаємодії (підтримується Apple, Google, Amazon), який абстрагується від Wi-Fi, Thread і Bluetooth.
OTA (Over-the-Air) — надзвукове оновлення
** OTA update ** забезпечує оновлення мікропрограми на розгорнутих пристроях бездротовим способом — без фізичного доступу. Критична функція для управління флотом IoT-пристроїв. Вимагає безпечної перевірки пакунка оновлення.
«Ми відправили OTA-оновлення до 50 000 пристроїв — це включає патч безпеки для уразливості автентифікації Bluetooth»
Збирання і зневадження
Toolchain
** toolchain ** — це набір інструментів компілятора, посилання, зневаджувача і збирання для цільової архітектури. Поширені ланцюжки інструментів: GNU Arm Embedded, Clang/LLVM, IAR Embedded Workbench.
Крос-компіляція
** Крос-компіляція ** означає компіляцію коду на машині розробки (наприклад, x86 Linux) для запуску на іншій цільовій архітектурі (наприклад, ARM Cortex-M). Всі вбудовані розробки кросс-компілюють.
Євгенія / І
** JTAG ** і ** SWD ** (Serial Wire Debug) — це апаратні інтерфейси зневадження. Зневаджувальний зонд (J- Link, ST- Link) з’ єднується з цими виводами для запуску мікропрограми і встановлення точок зупинки.
Точка зупинки / Watchpoint
** точка зупинки ** призупиняє виконання на певному рядку коду. ** watchpoint ** призупиняє виконання, коли певна адреса пам’ яті буде прочитана або записана — це корисно для виявлення пошкоджень пам’ яті.
Логічний аналізатор / осцилоскоп
** логічний аналізатор ** захоплює цифровий сигнал часу на декількох каналах — необхідний для зневадження UART, SPI і I2C зв’ язку. Осциллоскоп захоплює аналогові форми хвиль.
Безпека та енергетика
Безпека критична
** Критична система безпеки ** це така, де несправність може призвести до травми або смерті - автомобільна, аерокосмічна, медична. Вимагає відповідності стандартам: IEC 61508, ISO 26262, DO- 178C.
Функціональна безпека
** Функціональна безпека ** забезпечує правильну реакцію системи на вхідні дані, навіть у разі несправностей апаратного забезпечення. Визначено ISO 26262 (автомобільний) і IEC 61508 (загальний промисловий).
Режим низької потужності / режим сну
Вбудовані пристрої зберігають енергію за допомогою переходу у ** режим сну ** під час неактивності — вимикання процесора і периферійних пристроїв, зберігаючи активним лише таймер або джерело переривання для пробудження. Критично важливо для пристроїв, що живляться від батарей.
Електроенергія
** Бюджет енергоспоживання ** оцінює загальне споживання енергії у всіх режимах (активний, сплячий, радіопередача/ прийом) для прогнозування часу роботи акумулятора.
“Активний струм 15 мА, спокійний струм 5 мкА. З 2000 мАг акумулятором і 99% робочим циклом у стані сну, очікуваний термін служби становить 4 роки»
Корисні фрази
** У апаратному підключенні: **
-
- “Датчик I2C не відповідає — я проаналізую лінії SDA і SCL за допомогою логічного аналізатора, щоб перевірити цілісність сигналу.” *
- “Показники АЦП шумні — нам потрібно додати конденсатор роз’ єднання і перевірити еталонну напругу.”
** В оглядах прошивки: **
-
- « Цей ISR занадто довгий — пересунути обробку до завдання і просто встановити прапорець у ISR. » *
- “Watchdog вимкнено у цих налаштуваннях — його завжди слід вмикати у виробничому мікропрограму.”
** Під час зневадження: **
- “Переповнення стека спричинено рекурсивним аналізатором — нам потрібно переробити його ітеративно і статично виділити буфер.”
- “Перетвірка MQTT працює без відключення — якщо з’ єднання буде втрачено, то за кілька хвилин батарея буде розряджена.”
Practice
Перевірте ваш словниковий запас з вбудованих систем і Інтернету речей за допомогою ** Набір вправ для вбудованих систем та Інтернету речей ** — 5 вправ, що охоплюють концепції мікроконтролерів, RTOS і протоколів зв’ язку.
Досліджуйте повний ** Вбудований шлях навчання & IoT ** для вправ, підготовки до інтерв’ ю і технічної документації.