Systemy wbudowane w układach sterowania Wykład 1 dr inż Systemy wbudowane w układach sterowania Wykład 1 dr inż. Andrzej Przybył Katedra Inżynierii Komputerowej Wydział Inżynierii Mechanicznej i Informatyki Politechnika Częstochowska Podstawowe pojęcia: System wbudowany (embedded), system mikroprocesorowy, mikrokontroler System On a Chip (SOC) Układ sterowania Architektura i elementy składowe typowego systemu mikroprocesorowego
Systemy wbudowane (ang. embedded systems) systemy mikroprocesorowe/mikrokomputerowe do zastosowań wbudowanych System wbudowany: Kompletny, kompaktowy system komputerowy zawarty na jednej płycie bazowej. Zawiera wszystkie niezbędne układy peryferyjne, niezbędne do pracy w dedykowanym obszarze zastosowań, zawarte na płytce elektronicznej. Wymaga tylko zasilania i ew. klawiatury, myszy i monitora, itp. Najczęściej pozbawiony jest gotowej obudowy – przeznaczony do wbudowania w sterowane urządzenie
Systemy wbudowane i ich oprogramowanie *) Systemy wbudowane to platformy sprzętowe i programowe dedykowane do wykonywania ściśle określonych zadań (ich przeciwieństwo stanowią komputery ogólnego zastosowania, np. klasy PC). Niektóre z nich muszą dodatkowo spełniać wymogi systemów czasu rzeczywistego, inne mogą mieć mniej restrykcyjne wymagania odnośnie wydajności, co ma przełożenie na prostotę konstrukcji i dalej koszt produkcji. 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). *) definicje znalezione, za pomocą wyszukiwarki google, na stronie internetowej http://www.codeconcept.pl/pl/Services_FW_Embedded.php Inne ciekawe informacje ze stron www: http://www.sterowniki.pl/index.php?option=Articles&task=viewarticle&artid=13 http://www.guru.com.pl/
Przykładowe systemy mikroprocesorowe do wbudowania
Przykładowy procesor sygnałowy wyposażony w liczne peryferia Przykładowy procesor sygnałowy wyposażony w liczne peryferia. ADSP21992 firmy Analog Devices
System On a Chip (SOC) Zawiera większość elementów niezbędnych do pracy systemu zawarte w strukturze krzemowej układu scalonego. W tym często układy o różnej technologii: cyfrowe + analogowe. Typowy obszar zastosowań to systemy wbudowane. CMOS Intelligent Vision System-on-Chip Full-frame CMOS active-pixel grey level image High dynamic range logarithmic response to light Non integrating continuos current reading pixels 320 x 256 pixel resolution, 8-µm pitch square pixels, array size 2.560 x 2.048 mm2 Źródło: www.neuricam.com
Przykładowe systemy wbudowane -Klawiatura i mysz komputera PC -Drukarka, skaner, dysk twardy ... -Telefon GSM, fax, magnetofon cyfrowy, odtwarzacz MP3, Procesory z rodziny ARM telefon UMTS z procesorem ARM 104MHz
-łączność z PC szeregowa synchroniczna (2+2przewody) Klawiatura PC 1 - mikroprzełączniki, 2 - mikroprocesor -łączność z PC szeregowa synchroniczna (2+2przewody)
-łączność z PC szeregowa asynchroniczna (2+2przewody) Mysz PC 1. Kulka pokryta gumą 2. Mikroprocesor odbierający impulsy z rolek 3. Rolki - mierzące ruch w pionie i w poziomie -łączność z PC szeregowa asynchroniczna (2+2przewody)
Dysk twardy, stacje dyskietek -sterowanie silnikami: napęd talerzy, przesuwanie głowicy przetwarzanie danych z głowicy, komunikacja z PC
Podstawowe elementy Systemu Komputerowego: sygnał zerujący (RESET) na przykładzie SAB80C537
Sygnał taktujący (zegar)
Pamięci - rodzaje Ulotne (volatile) – Pamięci RAM (Random Access Memories) statyczne/dynamiczne Nieulotne (nonvolatile) – wiele technologii, np.:FLASH, EPROM/EEPROM/FRAM, NVRAM Operacyjne/Masowe O dostępie równoległym/O dostępie szergowym Asynchroniczna FPM DRAM (Fast Page Mode), EDO RAM Synchroniczna – SDRAM – dominuje w PC Podwójnej wydajności – Dual Data Rate (DDR), DDR2/DDR3 - transmisja na obu zboczach zegara taktującego. Specjalne – np. dwuportowe, FIFO
Podłączenie pamięci do systemu komputerowego
Pamięć dynamiczna – Dynamic RAM (DRAM) tania i bardzo szybka - pamięć wymagająca cyklicznego odświeżania zawartości (poprzez odczytywanie), używana w „dużych” systemach, np. PC
Pamięć dynamiczna RAM
Pamięć dynamiczna RAM
Pamięć dynamiczna RAM
Przykładowy system komputerowy z podłączoną pamięcią dynamiczną (SDRAM) Widoczny jest sposób podłączenia kilku układów scalonych pamięci dynamicznej, w celu rozszerzenia słowa z 4 do 16 bitów Magistrala adresowa ma szerokość słowa 15-bitów (A14..0), co teoretycznie pozwala na zaadresowanie tylko 32768 lokacji (2^15). Jednak stosowany mechanizm adresowania RAS i CAS pozwala na adresowanie w obszarze 1GB (2^30 = 1 giga) Możliwe jest podłączenie 8 zamiast 4 układów scalonych w celu uzyskania słowa 32-bitowego. Procesor sterujący musi posiadać specjalną magistralę, z wszystkimi niezbędnymi mechanizmami do komunikacji z pamięcią synchroniczną dynamiczną.
Przykładowy cykl odczytu systemu ADSP21369 z pamięci dynamicznej Widoczne są kolejne synchroniczne cykle taktujące pamięć: Adresowanie ROW (RAS) Adresowanie COL (CAS) „puste” cykle oczekiwania (NOP) związane z szybkością pamięci Po sześciu cyklach od zainicjowania odczytu pamięć wystawia dane na magistralę danych
Przykładowy cykl zapisu systemu ADSP21369 do pamięci dynamicznej Widoczne są kolejne synchroniczne cykle taktujące pamięć: Adresowanie ROW (RAS) Adresowanie COL (CAS) „puste” cykle oczekiwania (NOP) związane z szybkością pamięci Po dwu cyklach od zainicjowania zapisu procesor musi wystawić dane na magistralę danych, aby pamięć mogła je zapisać w czasie kolejnych 4 cykli
Pamięć statyczna – Static RAM (sRAM) Szybka, dość droga – typowa pamięć używana jako pamięć operacyjna w „małych” systemach mikroprocesorowych, Służy też jako pamięć buforująca między dużą pamięcią operacyjną komputerów typu PC (zrealizowaną w postaci pamięci dynamicznej) i procesorem (tzw. pamięć cache - poziomu /level/ I, II, III) Rozsądną granicą stosowania pamięci statycznej jest zapotrzebowanie systemu komputerowego na pamięć poniżej jednego megabajta (MB) Rys. Budowa pojedynczego bitu pamięci statycznej
Pamięć statyczna RAM pamięć statyczna typu IS62C256 32K x 8 LOW POWER CMOS STATIC RAM, producent ISSI
Pamięć statyczna – magistrale
Cykl dostępu do pamięci statycznej – asynchronicznej odczyt pamięci (cykl odczytu) CS – CHIP SELECT (podobna nazwa CE = CHIP ENABLE) OE – OUTPUT ENABLE (podobna nazwa RD – READ) Brak cykli zegarowych znanych z pamięci synchronicznej – operacje dostępu muszą się odbywać w ściśle określonych przedziałach czasowych.
Cykl dostępu do pamięci statycznej – asynchronicznej zapis do pamięci (cykl zapisu) WE – WRITE ENABLE (lub WR)
Przykładowy system z procesorem DSP współpracujący z pamięciami StaticRAM i DynamicRAM
Pamięci RAM - moduły „Szeroka” magistrala danych = Symbol układu Pojemność pamięci 4164 64 K razy 1 bit 4464 64 K razy 4 bity 41128 128 K razy 1 bit 44128 128 K razy 4 bity 41256 256 K razy 1 bit 44256 256 K razy 4 bity 41000 1 M razy 1 bit 44000 1 M razy 4 bity „Szeroka” magistrala danych = duża szybkość + duża liczba wyprowadzeń (pinów)
Dysk twardy, stacje dyskietek -sterowanie silnikami: napęd talerzy, przesuwanie głowicy przetwarzanie danych z głowicy, komunikacja z PC
Wstępne wnioski Ze względu na bardzo różnorodne wymagania i funkcje systemów wbudowanych nie jest możliwe zbudowanie jednej uniwersalnej platformy sprzętowej dla wszystkich zastosowań Z technicznego punktu widzenia najlepszym rozwiązaniem jest zaprojektowanie dedykowanego sprzętu na potrzeby konkretnego zastosowania. Jednak w przypadku produkcji małoseryjnej nie jest to ekonomicznie uzasadnione. Dlatego, w takim przypadku dobrze jest zastosować gotowe platformy sprzętowe do zastosowań wbudowanych.
Określenie warunków jakie musi spełniać system sterowania Warunek konieczny w każdym systemie sterowania: zapewnienie determinizmu. Reakcja systemu za zdarzenie nie może zajść później niż w odgórnie określonym limicie czasu. Jest to tzw. system czasu rzeczywistego. Praktycznie każdy system sterowania musi być systemem czasu rzeczywistego. Istnieję tzw. miękkie i twarde systemy czasu rzeczywistego (Soft Real Time Systems i Hard Real Time Systems) różniące się tym jak rygorystyczne są warunki dotyczące determinizmu. W systemach Hard Real Time – rygor czasu rzeczywistego jest najwyższy, co często dyskwalifikuje możliwość użycia jakiegokolwiek systemu operacyjnego. Nawet tzw. Systemy Operacyjne Czasu Rzeczywistego (Real Time Operating Systems – RTOS) nie są w stanie często spełnić wymaganego reżimu czasowego. Użycie systemu operacyjnego ułatwia pracę programiście, gdyż udostępnia wiele gotowych i przydatnych funkcji, takich jak: konfiguracja startowa systemu (zainicjowanie urządzeń do pracy), obsługa pamięci masowej (system plików na dyskach), zarządzanie pamięcią wirtualną, obsługa urządzeń interfejsu użytkownika (ekran, mysz, klawiatura, dźwięk) itp.
Dobór platformy sprzętowej, do wykorzystania w systemach sterowania Określenie algorytmu i programu, jaki ma być używany w projektowanym systemie. W szczególności oszacowanie zapotrzebowania na: Konieczność stosowania systemu operacyjnego czasu rzeczywistego lub brak konieczności stosowania jakiegokolwiek systemu operacyjnego Pamięć operacyjna (pojemność) Pamięć nieulotna/masowa: pamięć flash, dysk twardy itp. Moc obliczeniową procesora Specyficzne właściwości procesora: DSP, specjalizowane koprocesory, jednostki FPGA, itp.. Określenie wymaganych interfejsów I/O (Input/Output) użytkownika: Ekran graficzny, alfanumeryczny, proste wyświetlacze LED, głośnik, klawiatura, mysz, joystick, dodatkowe przyciski i czujniki Określenie wymaganych interfejsów I/O do komunikacji z urządzeniem sterowanym oraz innymi elementami systemu: linie wejściowo-wyjściowe (tzw. porty) generatory czasowo-licznikowe, sterowniki impulsowe PWM wejścia lub wyjścia analogowe specjalizowane lub uniwersalne interfejsy komunikacyjne: Ethernet, RS 232/485, CAN, USB, Fire Wire, Bluetooth, WiFi, itp.
Przykładowe platformy sprzętowe Moduły komputerowe w postaci „kanapkowej” PC/104 oraz kilka przykładowych kart rozszerzeń
Przykładowe platformy sprzętowe Przykładowe komputery przemysłowe PC do zastosowań wbudowanych
Przykładowe platformy sprzętowe Moduły z mikrokontrolerami lub układami FPGA Zdjęcia modułu FPGA do serwonapędów (prawa strona slajdu) pobrano ze strony autora wykładu http://kik.pcz.czest.pl/~ap/projekt/index.php?option=com_content&task=view&id=106&Itemid=36
Przykładowe pytania testowe Czym różnią się od siebie pamięci statyczne i dynamiczne? Czym różni się praca synchroniczna i asynchroniczna pamięci operacyjnej? Co to są pamięci ulotne i nieulotne? Jak pod względem logicznym adresowana jest pamięć systemu komputerowego? (szerokość magistral adresowej i danych a dostępny dla programisty obszar pamięci)? Co dzieję się w systemie komputerowym po podaniu sygnału RESET? Do czego służy sygnał zegarowy w systemie komputerowym?