← Strona główna
Od koncepcji do prototypu — samodzielny rozwój produktu
Kompleksowy rozwój urządzeń elektronicznych: schemat, layout płytki, oprogramowanie układowe, projekt FPGA, symulacja i weryfikacja. Specyfikacja, kod, test, dostawa — wszystko z jednej ręki.
Urządzenia embedded rzadko powstają z jednej dyscypliny. Nowy pomysł wymaga schematu, schemat wymaga layoutu płytki, layout płytki wymaga oprogramowania układowego lub projektu FPGA, a wszystko to wymaga w końcu weryfikacji i dokumentacji. Rozdzielenie tej współpracy na wielu dostawców oznacza kupowanie interfejsów — a interfejsy są najczęstszym źródłem błędów.
Samodzielny rozwój kompleksowy oznacza: jeden rozmówca, odpowiedzialność end-to-end, spójny stan dokumentacji. Państwo oszczędzają na koordynacji, ja mogę decydować bez konsultowania łańcucha dostawców.
Jak przebiega typowy projekt kompleksowy
Choć każdy projekt jest inny, przebieg podąża rozpoznawalnym wzorcem:
- Zrozumienie zadania. Pierwsza rozmowa wyjaśnia, co urządzenie ma robić, jakie warunki brzegowe obowiązują (wolumen, koszty, rozmiar, zużycie, wymagania normatywne) i jakie interfejsy istnieją do systemów istniejących.
- Koncepcja i specyfikacja. Na podstawie zadania szkicowana jest koncepcja techniczna: która platforma mikrokontrolera lub FPGA pasuje, jakie magistrale, jakie sygnały analogowe i cyfrowe, jaka architektura oprogramowania. Rezultatem jest dokument specyfikacji, który stanowi podstawę dla całej reszty.
- Projektowanie schematu. Sporządzenie schematu z wybranymi komponentami, wymiarowanie krytycznych komponentów, symulacja w decydujących punktach.
- Layout płytki. Wielowarstwowy projekt PCB z uwzględnieniem sygnałów wysokiej prędkości, EMC, odprowadzania ciepła i wykonalności produkcji. Wybór producenta płytki i nadzór nad produkcją.
- Oprogramowanie układowe lub projekt FPGA. Implementacja logiki sterowania lub przetwarzania sygnałów w C/C++ dla mikrokontrolerów, w VHDL/SystemVerilog dla FPGA — lub w kombinacji. Bare-metal na małych mikrokontrolerach, FreeRTOS lub równoważny RTOS na większych systemach.
- Weryfikacja i test. Symulacja obwodu w punktach krytycznych, testbenche dla projektów FPGA, testy sprzętowe na prototypie, w razie potrzeby stanowisko HIL dla oprogramowania.
- Dostawa i dokumentacja. Pełny kod źródłowy, schemat, dane layoutu, lista materiałów, dokumentacja podejścia i decyzji projektowych. Na życzenie transfer wiedzy do zespołu klienta.
W razie potrzeby przejmuję także koordynację z producentem seryjnym, który dostarczy żądaną jakość — jak w projekcie Audi (zob. referencje), gdzie ręcznie lutowany prototyp stał się płytką produkowaną maszynowo w jakości przemysłowej.
Trzy dyscypliny — z jednej ręki
Następujące trzy dyscypliny spotykają się w projekcie kompleksowym:
Sprzęt
Rozwój sprzętu
Projektowanie i realizacja sprzętu elektronicznego — od schematu przez layout płytki do koordynacji produkcji seryjnej. Specjalności: systemy oparte na mikrokontrolerze, płytki FPGA i mieszane obwody analogowo-cyfrowe.
- Systemy oparte na mikrokontrolerze (ARM Cortex-M, ESP32, Atmel/Microchip)
- Projektowanie i integracja FPGA (Xilinx Artix-7, Zynq)
- Obwody analogowe i cyfrowe
- Projektowanie PCB (Pulsonix, wielowarstwowe, wysokiej prędkości, EMC)
- Wymiarowanie obwodów i wybór komponentów
- Nadzór nad produkcją PCB i koordynacja z partnerami przemysłowymi
- Uruchomienie i bring-up sprzętu
Oprogramowanie
Rozwój oprogramowania
Implementacja oprogramowania embedded na rozwijanym sprzęcie — od programowania bare-metal bliskiego sprzętowi do wielordzeniowych systemów operacyjnych czasu rzeczywistego. Języki, platformy i protokoły są wybierane według wymagań projektu, a nie preferencji.
- Oprogramowanie embedded (C, C++, asembler)
- Programowanie FPGA (VHDL, Verilog, SystemVerilog)
- Systemy czasu rzeczywistego (FreeRTOS, bare-metal, wielordzeniowe)
- Protokoły komunikacyjne (CAN, CAN FD, Ethernet, EtherCAT, I²C, SPI, MOST)
- Rozwój sterowników do interfejsów bliskich sprzętowi
- Bootloader, watchdog, mechanizmy aktualizacji oprogramowania układowego
- Algorytmy do przetwarzania sygnałów i regulacji
Weryfikacja
Symulacja i weryfikacja
Systematyczna walidacja rozwiniętego rozwiązania — na poziomie obwodu, na poziomie FPGA, na poziomie systemu. Weryfikacja nie jest dodanym później krokiem, lecz integralną częścią rozwoju.
- Symulacja obwodu w dziedzinie czasu i częstotliwości
- Analiza Monte Carlo i badania najgorszego przypadku
- Weryfikacja FPGA z testbenchami w SystemVerilog
- Symulacja HDL (Vivado, Icarus Verilog, Verilator)
- Diagram Bodego, analiza Nyquista, badania stabilności
- Testy hardware-in-the-loop dla systemów zintegrowanych
Co odróżnia rozwój kompleksowy od «zwykłego kodowania»
Gdy klient szuka dziś «programisty embedded», myśli najczęściej o kimś, kto wykona zadanie cząstkowe: moduł C, komponent FPGA, sterownik. Do tego jest wielu dostawców.
Rozwój kompleksowy to coś innego. Wymaga kogoś, kto potrafi decydować — o architekturze, o doborze komponentów, o interfejsach, o kompromisach między kosztami a funkcjonalnością. Tej kompetencji decyzyjnej nie ma w każdym CV i nie zastępuje jej dodawanie specjalistów.
Przejmuję rozwój kompleksowy tam, gdzie klient nie chce utrzymywać własnego działu embedded — i gdzie wynikający z tego nakład pracy i odpowiedzialność może ekonomicznie spoczywać na jednej osobie.
Formy współpracy
Projekty kompleksowe są z reguły realizowane jako umowa ze stałą ceną z twardym zobowiązaniem do dostawy. Nakład pracy jest szacowany przed rozpoczęciem projektu, cena jest gwarantowana. Do prac eksploracyjnych bez wyraźnego punktu końcowego alternatywą jest kontyngent godzinowy. Szczegóły na stronie Zlecenie.