← Etusivu
Teknologiat ja alustat
Ohjelmointikielet, laitteistoalustat, väylät ja työkalut — valinta noudattaa projektin vaatimuksia, ei mieltymyksiäni.
Tämä sivu antaa kompaktin yleiskatsauksen teknologioista, joilla työskentelen. Luettelo ei ole tyhjentävä — siinä mainitaan ne alustat, kielet ja työkalut, joita esiintyy usein projekteissani tai joita pidän erityisen merkityksellisinä sulautetun kehityksen kannalta. Jos erityinen alustasi ei ole tässä, se ei välttämättä tarkoita kokemuksen puutetta; sulautetuissa projekteissa konseptit siirtyvät usein muille alustoille heti, kun tehtävä on selvä.
Kielet
1. Ohjelmointi- ja laitteistokuvauskielet
Kielen valinta tehtävän mukaan: laitteistoläheinen ja resurssitehokas C tai assembleri, olio-ohjelmointi C++:ssa, FPGA-logiikka VHDL:ssä ja SystemVerilogissa, työkalut ja analyysi Pythonissa.
- C — pääkieli mikro-ohjaimen laiteohjelmistolle, bare-metalista FreeRTOS:iin
- C++ — monimutkaisempiin sulautettuihin sovelluksiin oliorakenteilla, MISRA-yhdenmukainen tarvittaessa
- Assembleri — äärimmäisten reunaehtojen alla, laitteistoajureille, käynnistyskoodille ja käänteismallinnukseen
- VHDL — FPGA-suunnittelut vahvalla rakenteellisella selkeydellä
- SystemVerilog — moderni FPGA-kehitys, testipenkit, verifiointi
- Verilog — klassinen FPGA-kuvaus
- Python — testiautomaatio, skriptit, datan analyysi, web-taustajärjestelmät
- Kotlin — Android-sovelluksiin sulautettujen laitteiden saatteena
- JavaScript / HTML / CSS — web-käyttöliittymät ja konfiguraatiokäyttöliittymät
MCU
2. Mikro-ohjainalustat
Kokemus kaikista sulautettujen markkinoiden vakiintuneista mikro-ohjainalustoista — suorituskykyisestä ARM Cortexista kustannustehokkaisiin Atmel-piireihin, paljaina mikro-ohjaimina tai levyalustoina kuten Arduino tai BeagleBone.
- ARM Cortex-M — vakioalusta keskimääräisille vaatimuksille
- ARM Cortex-A — kun Linuxia tai enemmän laskentatehoa tarvitaan
- ESP32 — sulautetut sovellukset Wi-Fi/Bluetooth-yhteydellä
- Atmel / Microchip AVR — esim. ATmega-perhe hintaherkkiin projekteihin
- Arduino — nopea prototyypitys, opetus ja esitykset
- BeagleBone — ARM Cortex-A-alusta Linuxilla vaativampiin sovelluksiin
- Mikro-ohjaimet vähäisellä muistilla — bare-metal, ilman RTOS:ää (Stihl-projekti esimerkkinä, ks. referenssit)
- lisää alustoja pyynnöstä
FPGA
3. FPGA-alustat
FPGA-kehitys määrittelystä verifiointiin. Painopiste Xilinx-tuotteissa, tunnen modernit työkaluketjut ja verifiointimenetelmät.
- Xilinx Artix-7 — kustannustehokkaat FPGA:t ohjaus- ja signaalinkäsittelytehtäviin
- Xilinx Zynq — yhdistetty ARM+FPGA-alusta monimutkaisille järjestelmille
- Vivado — työkaluketju synteesiin, toteutukseen ja ohjelmointiin
- Icarus Verilog / Verilator — avoimen lähdekoodin simulaattorit nopeaan iteraatioon
- SystemVerilog-testipenkit — FPGA-suunnitteluiden jäsennelty verifiointi
Väylä
4. Väylät ja viestintäprotokollat
Kokemus autoteollisuus-, teollisuus- ja sulautetuissa ympäristöissä vakiintuneista väylistä — laitteistoläheisestä toteutuksesta diagnostiikkaan.
- CAN / CAN FD — autoteollisuus- ja teollisuusstandardi
- MOST — infotainment-väylä Audi-projektin kokemuksella (ks. referenssit)
- Ethernet / EtherCAT — reaaliaikakelpuinen teollisuusviestintä
- SPI / I²C / UART — vakiorajapinnat antureille ja oheislaitteille
- UDS (ISO 14229) — diagnostiikkaprotokolla ohjainlaitteille
- WebSocket / MQTT — IoT- ja pilviliitäntöihin
RTOS
5. Reaaliaikakäyttöjärjestelmät ja kehykset
Ohjelmistoarkkitehtuurin valinta projektin vaatimusten mukaan — bare-metalista pienissä mikro-ohjaimissa täydellisiin monisydämisiin reaaliaikakäyttöjärjestelmiin.
- Bare-metal — kun muisti ja determinismi merkitsevät
- FreeRTOS — de facto -standardi mikro-ohjaimen RTOS:ille
- Monisydämiset arkkitehtuurit — tehtävien jakaminen useille ytimille
- Sulautettu Linux — alustoilla kuten BeagleBone, kun sovellukset hyötyvät siitä
Työkalut
6. Työkalut, testikehykset ja IDE:t
Työkalut ovat välineitä. Työskentelen sillä, mikä projektiin sopii — ja perehdyn nopeasti tuntemattomiin työkaluketjuihin, jos ne ovat projektin kannalta merkityksellisiä.
- Vector CANoe / CAPL — vakio autoteollisuustestaukseen ja väyläsimulointiin
- LabView — mittaus- ja ohjausohjelmisto
- Robot Framework — päästä päähän -testiautomaatio
- HIL-asetelmat — hardware-in-the-loop integroituihin järjestelmätesteihin
- Pulsonix — kytkentäkaavio- ja PCB-vetotyökalu
- Vivado — Xilinxin FPGA-työkaluketju
- Git / GitLab — versionhallinta ja koodikatselmus
- Wireshark — verkko- ja väyläanalyysi
Web/App
7. Web- ja sovellusteknologiat (saatteleva ohjelmisto)
Kun sulautetut laitteet vaativat konfiguraatiokäyttöliittymän, koontinäytön tai mobiilisovelluksen, voin toimittaa myös saattelevan ohjelmiston.
- JavaScript / HTML / CSS — web-käyttöliittymät
- Chart.js — datan visualisointi selaimessa
- Python / Flask — web-taustajärjestelmät
- Node.js — palvelinkomponentit
- Socket.IO / WebSocket / MQTT — reaaliaikainen datansiirto
- Kotlin — Android-sovellukset sulautetuille laitteille
- REST-API:t — standardoidut rajapinnat sulautetun ja pilven välillä
Mitä tästä luettelosta puuttuu
Tämä sivu nimeää usein käytetyt teknologiat — se ei ole täydellinen luettelo. Jos alustasi, kielesi tai työkalusi ei ole tässä, projektista kannattaa silti keskustella. Sulautetussa kehityksessä lopulta merkitsee vähemmän, mitä konkreettista työkaluketjua tunnetaan, ja enemmän se, miten nopeasti uuteen työkaluketjuun voi perehtyä ja miten syvällisesti taustalla olevat konseptit on ymmärretty.