Начало

Технологии и платформи

Езици за програмиране, хардуерни платформи, шини и инструменти — изборът следва изискванията на проекта.

Тази страница предлага компактен преглед на технологиите, с които работя. Списъкът не е изчерпателен.

Езици

1. Езици за програмиране и описание на хардуер

Изборът на език в зависимост от задачата: близък до хардуера и пестящ ресурси на C или асемблер, обектно ориентиран на C++.

  • C — основен език за фърмуер на микроконтролер
  • C++ — за по-сложни embedded приложения с обектно ориентирани структури
  • Асемблер — при екстремни гранични условия
  • VHDL — FPGA дизайни със силна структурна яснота
  • SystemVerilog — модерна FPGA разработка, testbench-ове, верификация
  • Verilog — класическо FPGA описание
  • Python — автоматизация на тестове, скриптове, анализ на данни
  • Kotlin — за Android приложения
  • JavaScript / HTML / CSS — уеб фронтенди
MCU

2. Микроконтролерни платформи

Опит с всички утвърдени микроконтролерни платформи на embedded пазара.

  • ARM Cortex-M — стандартна платформа за средно високи изисквания
  • ARM Cortex-A — когато се изисква Linux или повече изчислителна мощност
  • ESP32 — embedded приложения с Wi-Fi/Bluetooth
  • Atmel / Microchip AVR — например ATmega семейство
  • Arduino — бързо прототипиране, обучение и демонстрации
  • BeagleBone — ARM Cortex-A платформа с Linux
  • Микроконтролери с минимална памет — bare-metal, без RTOS
  • други платформи при запитване
FPGA

3. FPGA платформи

FPGA разработка от спецификация до верификация. Акцент върху Xilinx продукти.

  • Xilinx Artix-7 — рентабилен FPGA
  • Xilinx Zynq — комбинирана ARM+FPGA платформа
  • Vivado — инструментална верига
  • Icarus Verilog / Verilator — open-source симулатори
  • SystemVerilog testbench-ове — структурирана верификация
Шина

4. Шини и комуникационни протоколи

Опит с шините утвърдени в automotive, индустриални и embedded среди.

  • CAN / CAN FD — automotive и индустриален стандарт
  • MOST — infotainment шина
  • Ethernet / EtherCAT — индустриални комуникации
  • SPI / I²C / UART — стандартни интерфейси
  • UDS (ISO 14229) — диагностичен протокол
  • WebSocket / MQTT — за IoT и облачни връзки
RTOS

5. Операционни системи в реално време и framework-ове

Изборът на софтуерна архитектура в зависимост от изискването на проекта.

  • Bare-metal — когато паметта и детерминизмът са от значение
  • FreeRTOS — де факто стандарт за RTOS
  • Многоядрени архитектури — разпределение на задачи на няколко ядра
  • Embedded Linux — на платформи като BeagleBone
Инструменти

6. Инструменти, тестови framework-ове и IDE-та

Инструментите са средства. Работя с това, което подхожда на проекта.

  • Vector CANoe / CAPL — стандарт за automotive тестове
  • LabView — измервателен и управляващ софтуер
  • Robot Framework — end-to-end автоматизация на тестове
  • HIL setups — hardware-in-the-loop
  • Pulsonix — инструмент за схема и PCB разположение
  • Vivado — Xilinx FPGA инструментална верига
  • Git / GitLab — управление на версии и преглед на код
  • Wireshark — мрежов и шинен анализ
Web/App

7. Уеб и приложни технологии (съпътстващ софтуер)

Когато embedded устройства се нуждаят от конфигурационен интерфейс, табло или мобилно приложение, мога да доставя и съпътстващия софтуер.

  • JavaScript / HTML / CSS — уеб фронтенди
  • Chart.js — визуализация на данни в браузър
  • Python / Flask — уеб бекенди
  • Node.js — сървърни компоненти
  • Socket.IO / WebSocket / MQTT — предаване на данни в реално време
  • Kotlin — Android приложения за embedded устройства
  • REST API — стандартизирани интерфейси

Какво липсва в този списък

Тази страница изброява често използвани технологии — не е пълен каталог. В embedded разработката в края на сметка по-малко значение има коя конкретна инструментална верига владеете, а повече колко бързо можете да се запознаете с нова.

Цветова схема

Език