Urządzenia wbudowane

Oprogramowanie (firmware) dla urządzeń wbudowanych stanowi specyficzną gałąź programowania narzucającą restrykcyjne ograniczenia na rozmiar, budowę oraz szybkość działania programu (oprogramowanie czasu rzeczywistego, tworzenie sterowników dla urządzeń oraz systemów operacyjnych dedykowanych dla konkretnych platform sprzętowych, przetwarzanie sygnałów – DSP). Wszystkie te wymogi traktujemy jako dodatkowe wyzwanie, a nie przeszkodę w tworzeniu szybkiego, bezbłędnego, a zarazem w pełni funkcjonalnego oprogramowania.

Firmware dla urządzeń medycznych

Otoemisja Akustyczna (OAE)

Stworzenie oprogramowania (firmware) dla przenośnego (bazującego na procesorach sygnałowych DSP AnalogDevices ADSP-2181/ADSP-2191) systemu do przesiewowego badania słuchu – otoemisja wywołana trzaskiem (TEOAE) oraz produkt zniekształceń nieliniowych (DPOAE).

Budowa klinicznego systemu do badania otoemisji akustycznej – generowanie stymulacji i zbieranie/uśrednianie odpowiedzi po stronie platformy DSP, wyświetlanie oraz analiza wyników po stronie PC. Komunikacja DSP/PC przy pomocy RS232 lub USB + drukowanie labelek poprzez IrDA.

Potencjały Wywołane Słuchowo (AEP)

Stworzenie systemu do przesiewowego badania słuchu – stymulacja oraz zbieranie/uśrednianie sygnałów poprzez platformę DSP AnalogDevices ADSP-2181/ADSP-2191, analiza wyników oraz ocena poziomu słyszenia na komputerze PC.

Kliniczny system AEP umożliwiający zarówno ocenę poziomu słyszenia (budowa audiogramów) jak również wykrywanie guzów we włóknach nerwowych słuchowym oraz innych schorzeń związanych z narządem słuchu – AEP, SABR, P300, CHAMP.

Elektrokardiografia (ECG)

Komunikacja pomiędzy urządzaniem ECG oraz stacją PC zgodna ze standardem EU EN 1064:2005+A1:2007. Zakres zadania obejmował stworzenie sterowników niskiego poziomu dla USB oraz RS232 zarówno po stronie urządzania ECG (Assembler/C) jak również PC (C++), przeprojektowanie firmware’u urządzenia, tak aby był zgodny ze standardem (zakres oraz sposób przesyłania danych do PC), oraz dostosowanie logiki działania aplikacji PC do standardu EN 1064.

Dodanie obsługi protokołu POCT do istniejącego urządzenia ECG.

Transport publiczny

Elektroniczne Systemy Biletowe dla Autobusów

Elektroniczny system sprzedaży biletów w autobusach. Urządzenie pracuje pod kontrolą systemu WinCE 5.0 i posiada wbudowane następujące komponenty: GPS – automatyczne wykrywanie przystanków i przełączanie taryf, czytnik kart ITSO wraz z wbudowanym wyświetlaczem dla pasażera, wydajna drukarka termiczna, WLAN (802.11 Wi-Fi), GPRS – alternatywa dla WLAN, kolorowy panel dotykowy dla operatora.

Przygotowanie BSP (Board Support Platform) dla platformy Windows CE. BSP stanowi zbiór oprogramowania dedykowanego dla konkretnej platformy sprzętowej i implementującego funkcjonalności systemu operacyjnego. Zadanie realizowane przez naszych specjalistów zawierało dostosowanie jądra istniejącego systemu Windows CE do specyficznych wymogów platformy, wykonanie dedykowanych sterowników dla urządzeń peryferyjnych oraz przygotowanie końcowej dystrybucji systemu operacyjnego.

Elektroniczne Systemy Biletowe dla Pociągów

Oprogramowanie (firmware) dla przenośnego systemu sprzedaży biletów; obsługa kart MIFARE (przygotowanie sterownika czytnika kart), drukowanie biletów papierowych z wykorzystaniem przenośnych drukarek Zebra (implementacja niskopoziomowego protokołu radiowego dla komunikacji urządzenie-drukarka), komunikacja ze stacją PC z wykorzystaniem IrDA.

Przygotowanie BSP (Board Support Platform) dla w/w platformy WinCE 5.0.

Systemy pomiarowe

Rejestratory Zakłóceń Elektrycznych

Przeniesienie oprogramowania urządzania wbudowanego (firmware) z platformy Siemens SAB80C166M na ARM9 (prace niskopoziomowe z wykorzystaniem języka Assembler).

Dodanie do w/w oprogramowania zaawansowanych mechanizmów oceny jakości prądu (cyfrowe przetwarzanie sygnałów w środowisku czasu rzeczywistego).

Stworzenie sterownika USB po stronie urządzenia wbudowanego. Rozszerzenie funkcjonalności urządzenia o komunikację USB ze stacją PC (aplikacja zarządzająca urządzeniem).

Moduł komunikacji dla systemów pomiarowych

Sterownik USB Host – komunikacja z urządzeniem klasy CDC dla ASIC bazującego na następujących procesorach Atmel: AT91SAM7XC256 (ARM7TDMI) oraz AT91SAM9260 (ARM9).

Kontroler USB Host zgodny z Open HCI 1.0a.

Stos sterowników USB obsługujących podłączanie dowolnych urządzeń USB (ASIC).

Komponenty programowe (firmware) stworzone dla kompleksowych systemów embedded

System czasu rzeczywistego (RTOS)

Szyte na miarę, pseudo-systemy operacyjne czasu rzeczywistego dla platform opartych o procesory sygnałowe

Pre-loadery

Loadery

Dostęp do pamięci

SRAM

FLASH

Power Management

Managing energy consumption

Controlling battery charging process

Sterowniki komunikacyjne

USB: urządzenia różnych klas (HID, CDC, Mass Storage), kontrolery dedykowane oraz zgodne ze specyfikacją OHCI realizowane w oparciu o różnoraki sprzęt

RS232

1-wire

I2C

SPI

GUI/Drukowanie

Niskopoziomowe sterowniki wyświetlaczy alfanumerycznych, graficznych, paneli dotykowych

Kompleksowe rozwiązania graficznych interfejsów użytkownika (GUI) zbliżonych wyglądem oraz sposobem obsługi do tych znanych z komputerów klasy PC (okna, pola tekstowe, listy wyboru, przyciski, pola zaznaczeń, etc.)

Sterowniki drukarek: drukarki tekstowe, drukarki graficzne (generowanie obrazu wydruku z użyciem wielu czcionek oraz grafik)

Wsparcie dla manipulatorów umiejscowionych na obudowach

A/D i D/A

Zarządzanie przetwornikami A/D D/A (zgodnymi z AC97)

Sterowanie układami wzmacniaczy analogowych (w tym analogowe filtry dolno i górnoprzepustowe)

Przetwarzanie zebranych danych (wzmocnienie, filtrowanie, maskowanie, uśrednianie, FFT, analiza EEG/OAE/EKG)

Kolekcjonowanie sygnałów elektrycznych oraz akustycznych

Budowanie wzorców sygnałów oraz generowanie stymulacji (akustycznej, pneumatycznej, etc…)

Platformy sprzętowe

  • Analog Device DSP (ADSP-2181, ADSP-219x),
  • Blackfin,
  • ARM7, ARM9, ARM11,
  • xScale,
  • Cortex,
  • Texas Instruments OMAP (architektura dwurdzeniowa),
  • AVR, AVR32,
  • V850,
  • SAB-80C

Języki programowania

  • Assembler
  • C
  • C++
  • C#
  • Java