SŁAWOMIR WIAK (redakcja)
|
|
- Kamil Smoliński
- 8 lat temu
- Przeglądów:
Transkrypt
1
2 SŁAWOMIR WIAK (redakcja) Akademicka Oficyna Wydawnicza EXIT
3 Recenzenci: Prof. Janusz Turowski Politechnika Łódzka Prof. Ewa Napieralska Juszczak University Lille Nord de France, LSEE, UA, Francja Autorzy rozdziałów: Prof. Piotr Ostalczyk (rozdz. 1, 2) Prof. Edward Jezierski (rozdz. 3) Dr hab. inż. Zbigniew Gmyrek (rozdz. 4) Dr hab. inż. Ryszard Szczerbanowski, prof. PŁ (rozdz. 5) Dr inż. Grzegorz Tosik (rozdz. 6) Prof. Zbigniew Lisik (rozdz. 6) Dr hab. inż. Jacek Gołębiowski, prof. PŁ (rozdz. 7) Dr hab. inż. Krzysztof Pacholski, prof. PŁ (rozdz. 8, 9) Prof. Krzysztof Gniotek (rozdz. 10) Dr hab. inż. Iwona Frydrych, prof. PŁ (rozdz. 10) Dr hab. Inż Ryszard Korycki, prof. PŁ (rozdz. 11) Dr inż. Grażyna Sobiczewska (rozdz. 12) Dr hab. Maria Dems, prof. PŁ (rozdz. 13, 15) Prof. Sławomir Wiak (rozdz. 13, 14, 15, 16, 17) Dr inż. Wojciech Rosiak (rozdz. 13, 15) Dr inż. Paweł Drzymała (rozdz. 14, 16, 17) Dr inż. Henryk Welfle (rozdz. 14, 16, 17) Dr inż. Ryszard Lasota (rozdz. 18) Dr inż. Marek Jan Glaba (rozdz. 19) Monografia przygotowana w ramach projektu "Innowacyjna dydaktyka bez ograniczeń - zintegrowany rozwój Politechniki Łódzkiej - zarządzanie Uczelnią, nowoczesna oferta edukacyjna i wzmacniania zdolności do zatrudniania, także osób niepełnosprawnych", współfinansowanego przez Unię Europejską w ramach europejskiego Funduszu Społecznego - Programu Operacyjnego Kapitał Ludzki "Priorytet IV, poddziałanie Wzmocnienie potencjału dydakty-cznego uczelni". Utwór w całości ani we fragmentach nie może być powielany ani rozpowszechniany za pomocą urządzeń elektronicznych, mechanicznych, kopiujących, nagrywających i innych, w tym również nie może być umieszczany ani rozpowszechniany w postaci cyfrowej zarówno w Internecie, jak i w sieciach lokalnych bez pisemnej zgody posiadacza praw autorskich. ISBN Copyright by EXIT, Politechnika Łódzka Łódź 2010
4 Grażyna Sobiczewska 12. Programowanie mikrokontrolerów 12.1 Informacje wstępne Mikrokontroler, zwany wcześniej mikrokomputerem jednoukładowym, to układ scalony zdolny do autonomicznej pracy, bo zawierający w pojedynczym elemencie procesor, pamięci i układy do komunikacji z otoczeniem. Spotykamy go w życiu codziennym jako element wbudowany różnych urządzeń, takich jak: sprzęt gospodarstwa domowego, pojazdy, układy kontrolno-pomiarowe, układy automatyki, sprzęt medyczny i telekomunikacyjny, urządzenia peryferyjne systemów komputerowych, zabawki itp., ponieważ służy do ich cyfrowego sterowania. Niewielkie rozmiary i cena powodują, że znajduje zastosowanie w coraz szerszej gamie urządzeń. Jako przodka mikrokontrolerów można uznać 4-bitowy układ Intel 4004 z 1971 roku, wraz z jego 8-bitowym następcą o numerze Pierwszym zasługującym w pełni na to miano, bo wyposażonym w wewnętrzną pamięć, był 8048, który pojawił się na rynku w 1976 roku. Jednakże standardem stał się model 8051 z roku prototyp wiodącej w klasie 8-bitowych kontrolerów (obok 68HC11 firmy Motorola) rodziny MCS-51. Producenci obecnie produkowanych modeli, rozbudowując ich zasoby wewnętrzne, często starają się, aby ich rozwiązania zachowywały kompatybilność wsteczną (zgodność programową) z tym typem. Produkcją mikrokontrolerów zajmuje się wiele firm: Analog Devices, Atmel, Dallas Semiconductor, FreeScale Semiconductor, Fujitsu, Hitachi, Infineon, Intel, NEC, Philips, Siemens, ST, Toshiba, Zilog i inne. Obecnie największą popularnością cieszą się produkty Intela, seria AVR Atmela i PIC firmy Microchip Technology. Aktualne tendencje rozwojowe oprócz wzrostu niezawodności, obejmują poprawę parametrów i rozszerzenie zasobów oraz możliwość zastosowania rozbudowanych układów peryferyjnych. Tym niemniej zapotrzebowanie na proste rozwiązania wciąż istnieje. Najbardziej udane rozwiązania sprzed lat są produkowane do dziś często w uproszczonych wersjach i dostępne w przystępnych cenach. 515
5 Rys Model mikrokontrolera firmy Atmel w obudowie DIP (ang. Dual In-line Package) Zasady programowania trudno jest przedstawić w sposób ogólny w oderwaniu od architektury oraz wyposażenia w urządzenia peryferyjne konkretnego typu mikrokontrolera. Wybór modelu użytego jako ilustracja wywodu jest trudny, bo nie ma takiego, który można by było uznać za reprezentatywny, a szczegółowy opis jego architektury i metod programowania mógłby czytelnikowi dać pogląd na całość zagadnienia. Wybór modelu W niniejszym opracowaniu wybrano jako przykładowy mikrokontroler popularnej na rynku krajowym firmy Atmel. Obecnie produkowane mikrokontrolery tej firmy z rdzeniem AVR można podzielić na rodziny: ATtiny przeznaczone do realizacji prostych zadań układy zamknięte w obudowach z małą ilością wyprowadzeń z niewielką ilością peryferii, stosowane głównie w układach zasilanych bateryjnie, ATmega układy z bogatym wyposażeniem m.in. wiele linii wejścia/wyjścia, wbudowane przetworniki A/C Architektura mikrokontrolerów Działanie mikrokontrolera wynika z realizacji rozkazów umieszczonych w jego pamięci. Przygotowanie zestawu rozkazów, czyli napisanie programu, wymaga od autora znajomości zasobów wybranego układu scalonego i ich organizacji. Omówienie architektury mikrokontrolerów jest jednak zadaniem trudnym, ze względu na szeroki wachlarz produkowanych modeli, a zatem również ich elementów składowych. Na rynku oferowanych jest kilkadziesiąt podstawowych typów z 8, 16- i 32-bitową szyną danych. Lista ich odmian różniących się parametrami 516
6 technicznymi liczy setki pozycji [4]. A zatem, aby zapoznać się z konkretnym rozwiązaniem należy sięgnąć do dokumentacji dostępnej najczęściej na stronach internetowych producenta. Jednakże pewne rozwiązania są wspólne i na nich skupimy się w niniejszym rozdziale. Na Rys przedstawiono w uproszczeniu podstawowe bloki funkcjonalne mikrokontrolera. Rezonator kwarcowy Reset zegar Jednostka centralna (CPU) Zasilanie Wewnętrzna szyna adresowa m Pamięć programu Pamięć danych Układy Sygnały wejściowe... we/wy... Sygnały wyj. i peryferyjne n Wewnętrzna szyna danych Rys Uproszczony schemat funkcjonalny mikrokontrolera [wg 4] Jednostka centralna (CPU ang. Central Procesor Unit) realizuje ciąg rozkazów zapisanych w pamięci programu na danych pochodzących z pamięci danych i/lub przekazywanych z urządzeń wejścia/wyjścia i jest układem sekwencyjnym synchronizowanym z zegara. Stan początkowy CPU jest inicjowany sygnałem Reset generowanym ręcznie, programowo lub pochodzącym z innego układu. Zerowanie układu występuje również po włączeniu zasilania albo w odpowiedzi na chwilowe spadki napięcia zasilania. Najważniejszym elementem układu wykonawczego CPU jest jednostka arytmetyczno-logiczna (ALU - ang. Arithmetic-Logic Unit), która wykonuje operacje należące do jej listy rozkazów (katalog dostępnych operacji zależny jest od modelu mikrokontrolera) na zawartości wyspecjalizowanych obszarów do dostarczania argumentów operacjom. W przypadku rozkazów jednoargumentowych wykorzystuje się akumulator, który po wykonaniu operacji zawiera również jej wynik, bo jego zawartość może być zarówno odczytywana, jak i wprowadzana na szynę danych. Operacje dwuargumentowe wymagają wykorzystania drugiego rejestru 517
7 zwanego często przejściowym, który różni się tym, że jego wartości nie można wystawić na szynie danych. Konieczność transmisji danych między akumulatorem a pamięcią, która to operacja jest relatywnie wolna ze względu na konieczność przygotowywania i wysyłania adresu pamięci, może być ograniczona przez zastosowanie tzw. rejestrów roboczych (ang. General Purpose Registers), które są strukturą pamięci dostępną bez określania adresów, poprzez nazwy symboliczne. Rejestry te są często wyspecjalizowane pod względem zastosowania, a ich ilość od kilku do kilkudziesięciu zależy od modelu mikrokontrolera. Charakterystyczną dla mikrokontrolerów cechą rejestrów jest często możliwość adresowania ich poszczególnych bitów. Jeśli chodzi o pamięci mikrokontrolera to mieszczą się we wnętrzu układu scalonego, a część może być przyłączona z zewnątrz. Pamięci wbudowane można podzielić na: RAM (ang. Random Access Memory) do zapisu i odczytu podtrzymywana tak długo, jak działa zasilanie układu realizowana jako dynamiczna (odświeżana cyklicznie) lub statyczna (nie wymaga odświeżania, często podtrzymywana bateryjnie), ROM (ang. Read Only Memory) służąca tylko do odczytu nieulotna pamięć zawierająca niezbędne do pracy oprogramowanie dostarczane z mikrokontrolerem, czyli opracowane fabrycznie (ang. Firmware) zawierające często program do ładowania, uruchamiania i nadzorowania programów użytkowych zwany monitorem, pamięć EPROM (ang. Erasable Programmable ROM) to nieulotna pamięć programowalna ograniczoną ilość razy po skasowaniu zawartości ultrafioletem, pamięć EEPROM (ang. Electrically EPROM) podobna do poprzedniej, ale ilość cykli zapisu ograniczona jest do ok.10 tys. razy, pamięć Flash jest w porównaniu do dwóch poprzednich szybsza i często zapewnia większą ilość cykli zapisu. Ten sam typ mikrokontrolera może być wyposażony w różne rodzaje pamięci o różnych pojemnościach. Istnieją rozwiązania, których pamięć programowana jest dopiero po zamontowaniu mikrokontrolera w urządzeniu docelowym (ISP ang. In System Programmable). Wewnętrzna n-bitowa szyna danych decyduje o zakresie liczb, na jakich mikrokontroler może wykonywać obliczenia (dla całkowitych bez znaku od 0 do 2 n 1). Szyna adresowa ogranicza zakres adresowalnego obszaru pamięci do 2 m adresów, a adresy dotyczą albo danych, albo rozkazów umieszczonych w pamięci programu. W najprostszych modelach stosuje się 8-bitowe adresowanie danych (256 bajtów) i 12-bitowe rozkazów (4 kb pamięci dla programu). Na rysunku 12.2 pominięto 518
8 zewnętrzną szynę adresową, która najczęściej jest 16-bitowa (w bardziej rozbudowanych układach 32- bitowa), co umożliwia wykorzystanie 64 kb pamięci zewnętrznej. Dla programisty ważne jest powiązanie poszczególnych rodzajów pamięci z przestrzenią adresową (ang. Memory Map). Stosowane rozwiązania to: jednolita przestrzeń adresowa dla wszystkich pamięci, rejestrów, układów we/wy (tzw. architektura von Neumanna), wykorzystanie oddzielnych szyn adresowych danych i rozkazów (ang. Harvard Architecture), a zatem rozdzielenie obszaru programu i danych, segmentacja pamięci stosowana zarówno do pamięci wbudowanych w układ scalony mikrokontrolera, jak i przyłączonych do niego z zewnątrz, a zapewniająca ochronę obszaru programu, danych i stosu przed wzajemnym przenikaniem, czyli ochronę przed niepowołanym dostępem ważną również w systemach wielozadaniowych; adres fizyczny w tym przypadku oblicza się, bazując na numerze segmentu i adresie wewnętrznym zwanym przesunięciem (ang. offset), stronicowanie stosowane w najbardziej rozbudowanych mikrokontrolerach. Sposobem na zwiększenie efektywności pracy mikrokontrolera jest wyposażenie CPU w większą liczbę arytmometrów często wyspecjalizowanych np. do operacji całkowitoliczbowych, zmiennopozycyjnych lub operacji na sygnałach DSP (ang. Digital Signal Processing). Taka architektura nosi nazwę superskalarnej (ang. Superscalar). Wykorzystanie możliwości takiego rozwiązania, czyli jednoczesne wykonywanie wielu instrukcji, wymaga zmiany koncepcji sterowania, bowiem z pamięci trzeba pobrać więcej niż jeden rozkaz i skierować je do współbieżnego wykonania przez poszczególne arytmometry. Pamięć typu FIFO (ang. First Input First Output) gromadzi kolejkę instrukcji, które są kierowane do wykonania, a takie rozwiązanie nosi nazwę przetwarzania potokowego (ang. Pipelining). Wspominając o architekturze harwardzkiej nie sposób nie wspomnieć o procesorach RISC (ang. Reduced Instruction Set Computer), które oprócz tego, że mogą w tym samym czasie współpracować z pamięcią danych i programu oraz wykorzystują zasady przetwarzania potokowego, korzystają z ograniczonego zestawu zunifikowanych (czyli przede wszystkim zajmujących w pamięci ten sam obszar) rozkazów, które operują na niewyspecjalizowanych rejestrach, stosując różne tryby adresowania argumentów. 519
9 Mikrokontrolery przeważnie wykorzystywane są do wykonywania operacji złożonych, program zatem bardzo rzadko ma postać jednolitej listy instrukcji. Układ przeważnie musi działać dynamicznie, czyli odpowiednie podprogramy muszą być wykonywane selektywnie w kolejności zależnej od stanu wewnętrznych modułów i dołączonych do mikrokontrolera zewnętrznych układów peryferyjnych i portów wejścia-wyjścia. Możliwość tą dają instrukcje warunkowe, które zależnie od ustalonego warunku przenoszą wykonywanie programu w wybrane miejsce. Innym mechanizmem stosowanym do współpracy z urządzeniami peryferyjnymi jest system przerwań, czyli zawieszenie realizacji aktualnie wykonywanego zadania i przejście do procedury obsługi przerwania w momencie pojawienia się żądania obsługi. Kolejność obsługi przerwań wynika dla większości współczesnych mikrokontrolerów z przypisanego do konkretnego urządzenia priorytetu, a nie tylko z kolejności zgłoszeń. Aby po zakończeniu obsługi przerwania kontynuować działanie, należy przed rozpoczęciem zapamiętać stan mikrokontrolera i adres instrukcji, od której należy wznowić program. Do tego celu stosuje się stos, czyli obszar RAM zarządzany zgodnie z zasadą LIFO (ang. Last Input First Output), który można rozbudowywać w stronę rosnących (najczęściej) lub malejących adresów. Ma on zastosowanie również do chwilowego zapisu zawartości rejestrów i zmiennych w programach użytkownika, Zestaw układów wejścia-wyjścia (I/O ang. Input/Output) i układów peryferyjnych zależy od konkretnego typu mikrokontrolera. Są to porty służące do równoległej lub szeregowej transmisji danych działające w trybie asynchronicznym (UART ang. Universal Asynchronous Receiver-Transmitter) lub częściej synchronicznym (USART ang. Universal Synchronous-Asynchronous Receiver-Transmitter). Najczęściej pracują w standardach opracowanych przez różne firmy: SIO (ang. Serial Input/Output), SCI i SCI+ (ang. Serial Communiation Interface), SPI (ang. Serial Peripherial Interface), CAN (ang. Controller Area Network), USB (ang. Universal Serial Bus), I 2 C (ang. Inter-Integrated Circuit Bus), 1-Wire, Microwire i inne. Typowymi układami peryferyjnymi mikrokontrolerów są również liczniki impulsów. Służą nie tylko do zliczania zdarzeń, ale przede wszystkim do odmierzania czasu (timery) i innych celów. Układ kontroli poprawności pracy WatchDog zapobiegający nieprzewidzianemu zawieszeniu lub zapętleniu programu to po prostu wyspecjalizowany licznik, którego przepełnienie generuje sygnał Reset, a zatem powinien być co pewien czas zerowany programowo, aby do tego nie doszło. Jest niezbędny przede wszystkim w układach pracujących długi czas bez nadzoru. Przetworniki analogowo-cyfrowe 8-, 10-, a nawet 12-bitowe (ADC ang. Analog to Digital Converter) i cyfrowo-analogowe (DAC ang. Digital to Analog Converter) występują w bardziej rozbudowanych układach. 520
10 W niektórych rozwiązaniach istnieje wyspecjalizowana jednostka FPU (Flow Point Unit) do wykonywania operacji na liczbach zmiennoprzecinkowych zapisywanych w postaci wykładniczej (cecha - mantysa). Mikrokontrolery są wyposażone w system zarządzania poborem mocy. Oprócz dwóch podstawowych stanów mikrokontrolera: pracy i obsługi przerwań, może on przejść do stanu obniżonego poboru mocy w trybie uśpienia (ang. Sleep Mode, Idle Mode),kiedy pracuje tylko zegar i niektóre urządzenia peryferyjne lub czuwania (ang. Stand By Mode), gdzie wyłączany jest nawet zegar, a podtrzymywana zawartość pamięci wewnętrznych i rejestrów. Dane zastosowanego mikrokontrolera Wybrany w niniejszym opracowaniu jako przykładowy mikrokontroler z rdzeniem AVR opiera się na architekturze RISC (ang. Reduced Instruction Set Computer), ale lista zawiera ponad 130 instrukcji, a redukcja dotyczy rozkazów operujących bezpośrednio na pamięci danych, ponieważ do tego celu przewidziano dużą ilość rejestrów roboczych, z których każdy może pełnić rolę akumulatora, co umożliwia szybszą pracę. Instrukcje wykonywane są w trakcie jednego cyklu zegarowego (tylko w układach ATmega operacja mnożenia wymaga 2 taktów zegarowych). W rdzeniu AVR konstruktorzy zastosowali mechanizm przetwarzania potokowego, polegający na jednoczesnym (zachodzącym w tym samym cyklu zegarowym) wykonywaniu bieżącej instrukcji oraz pobieraniu z pamięci programu kodu instrukcji następnej. Mikrokontrolery AVR są układami ośmiobitowymi, ale ich słowo rozkazowe ma długość 2 bajtów. Osiągana prędkość przetwarzania dochodzi do 1 MIPS (miliona operacji na sekundę) przypadających na każdy 1 MHz częstotliwości taktującego zegara. Układ ATmega16 to 8-bitowy mikrokontroler AVR o dużej wydajności i małym poborze mocy, który cechują następujące właściwości [1]: zaawansowana architektura Harvard ze zredukowaną liczbą instrukcji (RISC): dwubajtowych instrukcji, większość wykonywana w 1 cyklu zegara, - 32 rejestry 8-bitowe robocze ogólnego przeznaczenia, dostosowane do wymagań języków wysokiego poziomu, - całkowicie statyczna praca (od 0 Mhz), - wydajność do 16 MIPS przy taktowaniu zegarem 16 MHz, - wbudowany układ mnożący, operacja mnożenia wykonywana w 2 cyklach zegara. 521
11 522 Rys Rdzeń mikrokontrolerów AVR i typowe układy zewnętrzne [2] nieulotna pamięć programu i danych: - 16 kb pamięci programu typu Flash na program, programowanej poprzez SPI lub JTAG o wytrzymałości cykli kasowanie/zapis, - opcjonalny boot-loader z niezależnymi bitami zabezpieczającymi, bajów nieulotnej pamięci danych EEPROM o trwałości 100 tys. cykli kasowanie/zapis, która może być wykorzystana do zapamiętania ustawień systemu lub akwizycji danych, - 1 kb wewnętrznej statycznej pamięci danych RAM, na której realizowany jest również stos, - programowane zabezpieczenia programu przed odczytem. wbudowane urządzenia peryferyjne: - dwa 8-bitowe liczniki-czasomierze z osobnym preskalerem (dzielnik częstotliwości podstawowej mikrokontrolera ) i trybem porównania,
12 - jeden 16-bitowy licznik-czasomierz z osobnym preskalerem, trybem porównania i przechwytywania, - licznik czasu rzeczywistego z osobnym oscylatorem, - cztery kanały PWM, - 8-kanałowy, 10-bitowy przetwornik A/C z multiplekserem, który wykorzystuje następujące wyprowadzenia: AVCC (zasilanie części analogowej), AREF (wejście napięcia odniesienia) oraz wejścia sygnałów analogowych oznaczone ADC0 do ADC7, - interfejs szeregowy SPI w trybie master/slave, pozwalający na łączenie jednego układu nadrzędnego z wieloma podrzędnymi, a ponadto dodatkowo pełni funkcję szeregowego interfejsu programowania; umożliwiającego programowanie mikrokontrolera w urządzeniu docelowym (ISP), przez bezpośrednie (lub przez zabezpieczający układ 74HC244) przyłączenie do portu drukarki LPT; modułowi SPI zostały przyporządkowane cztery wyprowadzenia o dodatkowych oznaczeniach: MOSI (ang. Master Out, Slave In), MISO (ang. Master In, Slave Out), SCK (ang. Serial Clock) i SS (ang. Slave Select), - programowany interfejs szeregowy USART, służący do łączenia mikrokontrolerów ze sobą, a po zastosowaniu zewnętrznych konwerterów do obsługi interfejsu RS-232 lub RS-485; układ USART w trybie asynchronicznym wykorzystuje dwie linie mikrokontrolera, oznaczone TxD (tor danych nadawanych) i RxD (tor danych odbieranych); w trybie synchronicznym dodatkowo wykorzystywana jest linia taktująca oznaczona XCK, - programowany układ watchdog z osobnym wbudowanym oscylatorem, - wbudowany komparator analogowy; któremu przyporządkowane są dwa wyprowadzenia o dodatkowych oznaczeniach AIN0 (wejście nieodwracające) i AIN1 (wejście odwracające). specjalne cechy mikrokontrolera: - wbudowany układ Reset i programowany detektor spadku napięcia zasilania, - wbudowany kalibrowany oscylator RC, - wewnętrzne i zewnętrzne źródła przerwań, - sześć trybów oszczędzania energii: Idle, ADC Noise Reduction, Power-save, Power-down, Standby, Extended Standby. wejścia/wyjścia oraz dostępne obudowy układu: - porty wejścia/wyjścia (oznaczone PA, PB, PC i PD), z maksymalnie ośmioma liniami każdy (do każdej przypisana jest funkcja alternatywna), 523
13 - dostępne wersje obudowy: DIP do montażu przewlekanego, TQFP, PLCC, QFN/MLF do montażu powierzchniowego. napięcie zasilania: - od 2,7 do 5,5 V dla ATmega16L, - od 4,5 do 5,5 V dla ATmega16. częstotliwość taktowania: - od 0 do 8 MHz dla ATmega16L, - od 0 do 16 MHz dla ATmega16. Rys Różne obudowy oraz rozkład wyprowadzeń układu ATmega16 (wraz z funkcjami alternatywnymi) [1] pobór prądu przy taktowaniu 1 MHz, zasilaniu 3 V, temperaturze 25 C (ATmega16L): - stan aktywny 1,1 ma, - tryb oszczędzania energii Idle 0,35 ma, - tryb oszczędzania energii Power-down poniżej 1 μa. Na rysunku 12.4 przedstawione zostały dostępne warianty obudów układu ATmega16. Zostały na nim zaznaczone główne oraz alternatywne (w nawiasach) funkcje poszczególnych wyprowadzeń mikrokontrolera. 524
14 12.3 Realizacja projektu Projekt urządzenia, które będzie wykorzystywało mikrokontroler, wymaga opracowania zarówno części sprzętowej, jaki i programu. W pierwszym etapie należy zaprojektować i uruchomić sprzęt, stosując zasady takie, jak przy projektowaniu układów cyfrowych o wysokim stopniu integracji. Możliwe jest również wykorzystanie gotowych zestawów uruchomieniowych (Rys. 12.5). Rys Przykładowy zestaw uruchomieniowy [2] Podczas programowania należy uwzględnić przede wszystkim ograniczenia sprzętowe wybranego mikrokontrolera. Ponadto program jest przygotowywany na innym procesorze, niż będzie wykonywany, bo najczęściej na komputerach osobistych. A zatem do tworzenia programów stosuje się oprogramowanie zewnętrzne (ang. Cross-software): asemblery, makroasemblery, kompilatory różnych języków programowania, konsolidatory. Asemblery mogą tworzyć postać relokowalną, co wymaga stosowania konsolidatora lub od razu postać wynikową. Przygotowane oprogramowanie nie jest często wolne od błędów. Aby móc je przetestować przed załadowaniem do urządzenia docelowego wykorzystuje się symulatory, które umożliwiają śledzenie wykonania programu z jednoczesną obserwacją, a nawet modyfikacją stanu rejestrów procesora, czy zawartości pamięci w trybie krokowym po odpowiednim 525
15 ustawieniu pułapek. Niekiedy symulator stanowi całość z edytorem kodu, asemblerem czy kompilatorem, dając kompleksowe środowisko programistyczne. Symulatory jednak nie umożliwiają najczęściej pracy programu w czasie rzeczywistym oraz symulacji układów współpracujących z mikrokontrolerem. Do tego celu należałoby zastosować emulatory. Programatory układów ATmega Wybrane jako przykładowe w niniejszym opracowaniu układy rodziny ATmega mogą być programowane: przy pomocy wyspecjalizowanego drogiego i skomplikowanego programatora wykorzystującego interfejs równoległy, bezpośrednio w urządzeniu, w którym mikrokontroler ma pracować przy wykorzystaniu: - interfejsu uruchomieniowego JTAG (ang. Joint Test Action Group), który pozwala nie tylko na zaprogramowanie pamięci programu i ustawienie bitów sterujących, ale również na śledzenie wykonywania programu i badanie stanu mikrokontrolera; wykrywa również brak połączenia z obwodem drukowanym; wykorzystywane są cztery wyprowadzenia mikrokontrolera o nazwach: TMS (ang. Test Mode Select), TCK (ang. Test ClocK), TDO (ang. Test Data Out) i TDI (ang. Test Data In), które muszą być odpowiednio połączone, - jednoprzewodowego interfejsu DebugWire, bazującego na wyprowadzeniu Reset mikrokontrolera, który jest prosty, ale nie pozwala na wykorzystanie zewnętrznych sygnałów zerujących interfejsu programowania SPI; ponieważ dokumentacja tego interfejsu nie jest dostępna można go wykorzystać jedynie z oryginalnym urządzeniem JTAGICE firmy Atmel Środowiska programistyczne Początkowo programowanie mikrokontrolerów odbywało się w oparciu o język programowania zwany asemblerem oparty na zbiorze instrukcji odpowiadających liście rozkazów maszynowych procesora, czyli w języku niskiego poziomu. Wykorzystanie tej metody zapewnia pełną kontrolę programisty nad zachowaniem układu, ale pisanie programów jest pracochłonne. Jednak dziś jest stosowane rzadko tylko do pisania fragmentów wymagających bardzo wysokiej wydajności lub przy ograniczonej pamięci programu. 526
16 Obecnie programy źródłowe są zapisywane jako ciąg symbolicznych instrukcji w językach wysokiego poziomu tworzonym przy użyciu wyspecjalizowanych edytorów i zapisywanych w postaci pliku ASCII. W przypadku mikrokontrolerów rodziny AVR wśród języków wysokiego poziomu dominują kompilatory języka Basic oraz języka C. Najbardziej rozpowszechnionym kompilatorem języka Basic jest środowisko BASCOM-AVR. Oprogramowanie to łączy funkcje edytora, kompilatora, symulatora i programatora. Głównym powodem popularności tego pakietu jest prostota użytkowania i relatywnie niska cena. Natomiast jedyną wadą bezpłatnej wersji demonstracyjnej jest jedynie ograniczenie długości generowanego kodu wynikowego do 4 kb. BASCOM jest wyposażony w rozbudowane funkcje biblioteczne, które uwalniają programistę od konieczności dokładnego poznawania wykorzystywanych w aplikacjach interfejsów i urządzeń peryferyjnych. Daje mało optymalny kod wynikowy zarówno pod względem objętości, jak i szybkości działania (bardziej optymalny kod generuje inny pakiet programistyczny FastAvr). BASCOM nie jest też wolny od błędów, a dla bardziej zaawansowanych programistów uciążliwe są jego ograniczenia. Jeżeli chodzi o C, to stworzono wiele kompilatorów tego języka dla mikrokontrolerów serii AVR. Wśród środowisk komercyjnych najbardziej popularne są CodeVisionAVR i ImageCraft ICCAVR. Znacznie droższym narzędziem o większych możliwościach jest pakiet IAR Embedded Workbench. Bezpłatnie dostępny jest kompilator znany pod nazwą AVR-GCC, wyposażony w niezbędne biblioteki standardowe. Dostępne są jego kody źródłowe, obszerna dokumentacja, a jego możliwości można uznać za zadawalające. Kompilator ten jest wykorzystywany w darmowym pakiecie WinAVR. Jest to zbiór programów dla Windows, które nie ustępują w zakresie funkcjonalności komercyjnym środowiskom programistycznym. Chociaż za jego podstawową wadę można uznać dość skomplikowaną obsługę, to najnowsze wersje oferują bardziej funkcjonalny interfejs użytkownika. Po zainstalowaniu pakiet nie wymaga już specjalnych procedur konfiguracyjnych, a wygodny edytor standardowo jest przystosowany do współpracy z kompilatorem. Początkujących może zrazić konieczność tworzenia dla każdego projektu pliku Makefile, czyli zbioru reguł, według których ma przebiegać kompilacja. Dostarczono więc program, który automatycznie edytuje ten plik według nastaw dokonywanych przy pomocy rozwijanego menu. Problemem bywa czasami wybór poziomu optymalizacji zbyt wysoki powoduje czasami usuwanie pozornie niepotrzebnych fragmentów programu. Pakiet WinAVR nie został wyposażony w biblioteki dla typowych interfejsów i urządzeń peryferyjnych, ale potrzebne pliki można znaleźć w Internecie i dołączyć samodzielnie. Bardzo ciekawa i godna polecenia 527
17 jest biblioteka RKLibAVR, której funkcje wzorowane są na ich odpowiednikach w pakiecie BASCOM-AVR. Dla układów AVR stworzono również kompilatory języków mniej popularnych, np. języka Pascal (AVRco) oraz Ada (AVR-Ada). Pomimo spójności i jasności tych języków, sensowność ich wykorzystania stoi jednak pod znakiem zapytania, głównie ze względu na ich małą popularność, słabą przenośność i trudny dostęp do dodatkowych bibliotek funkcji Środowisko programistyczne BASCOM-AVR Środowisko programistyczne BASCOM-AVR zostało stworzone do pracy pod kontrolą dowolnego systemu operacyjnego Windows 95, 98, 98SE, Me, NT, 2000 lub XP. Charakteryzuje się następującymi właściwościami: posiada edytor z wyróżnianiem składni i systemem pomocy kontekstowej, ułatwiającym pisanie programów, zawiera kompilator języka BASIC o składni zbliżonej do Microsoft Visual Basic i Quick Basic, który generuje szybki kod maszynowy, daje możliwość kompilacji programów dla każdego mikrokontrolera AVR, który posiada wewnętrzną pamięć danych, zawiera zintegrowany symulator oraz emulator terminala, zawiera zintegrowany programator ISP obsługujący większość popularnych układów programatorów. Środowisko BASCOM-AVR w wersji demo jest dostępne w Internecie na stronach firmy MCS Electronics. Domyślnym folderem podczas instalacji tego oprogramowania jest C:\Program Files\MCS Electronics\BASCOM-AVR. Ze względu na ograniczenia występujące w systemach Windows NT, 2000 i XP, do pracy ze środowiskiem BASCOM należy wykorzystywać konto użytkownika z uprawnieniami administratora. W przeciwnym razie niemożliwe będzie wykorzystanie wbudowanego programatora ISP. Do poprawnej pracy programu konieczne jest zainstalowanie w systemie drukarki. Przy jej braku wystarczy zainstalować sterownik dowolnej drukarki. Podstawy obsługi środowiska BASCOM-AVR Po uruchomieniu programu i otwarciu pliku poleceniem File/Open, okno będzie wyglądać tak, jak pokazano na rysunku
18 Rys Główne okno programu BASCOM AVR z przykładowym programem W głównym oknie programu występują typowe elementy aplikacji systemu Windows (paski tytułu, menu, przycisków narzędziowych, a na dole stanu). Charakterystycznymi elementami interfejsu są: lista procedur i etykiet. Menu zawiera następujące grupy poleceń: File, które grupuje typowe polecenia operacji na plikach i drukowania, Edit, zawierającą operacje cofania, działania na zawartości schowka, wyszukiwania i zamiany łańcuchów znaków, ustawiania zakładek ułatwiających przemieszczanie kursora do wskazanych miejsc kodu, View sterującą wyświetlaniem paneli interfejsu, Program z poleceniami służącymi do sprawdzenia poprawności kodu i wyświetlania raportu o jego przebiegu, kompilacji programu, uruchomienia symulatora lub programatora przesyłającego kod do mikrokontrolera, Tools zawierającą dodatkowe narzędzią wspomagające programowanie, takie jak emulator terminala, program do projektowania własnych znaków wyświetlaczy LCD, program do tworzenia własnych bibliotek, zapis kodu w formacie RTF, konwerter plików BMP do formatu BGF, wykorzystywanego przez graficzne wyświetlacze LCD, analizator stosu, program testujący aplikacje wykorzystujące protokół TCP/IP, menadżer wtyczek rozszerzających możliwości programu, Options zawierającą polecenia umożliwiające zmianę konfiguracji pakietu BASCOM: kompilatora, emulatora, edytora kodu, symulatora, 529
MIKROKONTROLERY I MIKROPROCESORY
PLAN... work in progress 1. Mikrokontrolery i mikroprocesory - architektura systemów mikroprocesorów ( 8051, AVR, ARM) - pamięci - rejestry - tryby adresowania - repertuar instrukcji - urządzenia we/wy
Bardziej szczegółowo2. Architektura mikrokontrolerów PIC16F8x... 13
Spis treści 3 Spis treœci 1. Informacje wstępne... 9 2. Architektura mikrokontrolerów PIC16F8x... 13 2.1. Budowa wewnętrzna mikrokontrolerów PIC16F8x... 14 2.2. Napięcie zasilania... 17 2.3. Generator
Bardziej szczegółowoTechnika mikroprocesorowa. W. Daca, Politechnika Szczecińska, Wydział Elektryczny, 2007/08
Mikrokontrolery 8-bitowe Mikrokontrolery 8-bitowe stanowią wciąż najliczniejszą grupę mikrokontrolerów. Istniejące w chwili obecnej na rynku rodziny mikrokontrolerów opracowane zostały w latach 80-tych.
Bardziej szczegółowoWstęp...9. 1. Architektura... 13
Spis treści 3 Wstęp...9 1. Architektura... 13 1.1. Schemat blokowy...14 1.2. Pamięć programu...15 1.3. Cykl maszynowy...16 1.4. Licznik rozkazów...17 1.5. Stos...18 1.6. Modyfikowanie i odtwarzanie zawartości
Bardziej szczegółowo1. Wprowadzenie Programowanie mikrokontrolerów Sprzęt i oprogramowanie... 33
Spis treści 3 1. Wprowadzenie...11 1.1. Wstęp...12 1.2. Mikrokontrolery rodziny ARM...13 1.3. Architektura rdzenia ARM Cortex-M3...15 1.3.1. Najważniejsze cechy architektury Cortex-M3... 15 1.3.2. Rejestry
Bardziej szczegółowoKurs Elektroniki. Część 5 - Mikrokontrolery. www.knr.meil.pw.edu.pl 1/26
Kurs Elektroniki Część 5 - Mikrokontrolery. www.knr.meil.pw.edu.pl 1/26 Mikrokontroler - autonomiczny i użyteczny system mikroprocesorowy, który do swego działania wymaga minimalnej liczby elementów dodatkowych.
Bardziej szczegółowoWykład 4. Przegląd mikrokontrolerów 16-bit: - PIC24 - dspic - MSP430
Wykład 4 Przegląd mikrokontrolerów 16-bit: - PIC24 - dspic - MSP430 Mikrokontrolery PIC Mikrokontrolery PIC24 Mikrokontrolery PIC24 Rodzina 16-bitowych kontrolerów RISC Podział na dwie podrodziny: PIC24F
Bardziej szczegółowoWPROWADZENIE Mikrosterownik mikrokontrolery
WPROWADZENIE Mikrosterownik (cyfrowy) jest to moduł elektroniczny zawierający wszystkie środki niezbędne do realizacji wymaganych procedur sterowania przy pomocy metod komputerowych. Platformy budowy mikrosterowników:
Bardziej szczegółowoMikroprocesory i Mikrosterowniki
Mikroprocesory i Mikrosterowniki Wykład 1 Wydział Elektroniki Mikrosystemów i Fotoniki dr inż. Piotr Markowski Na prawach rękopisu. Na podstawie dokumentacji ATmega8535, www.atmel.com. Konsultacje Pn,
Bardziej szczegółowoAlgorytmika i Programowanie VBA 1 - podstawy
Algorytmika i Programowanie VBA 1 - podstawy Tomasz Sokół ZZI, IL, PW Czas START uruchamianie środowiska VBA w Excelu Alt-F11 lub Narzędzia / Makra / Edytor Visual Basic konfiguracja środowiska VBA przy
Bardziej szczegółowoProgramowanie mikrokontrolerów AVR
Programowanie mikrokontrolerów AVR Czym jest mikrokontroler? Mikrokontroler jest małym komputerem podłączanym do układów elektronicznych. Pamięć RAM/ROM CPU wykonuje program Układy I/O Komunikacje ze światem
Bardziej szczegółowoLEKCJA TEMAT: Zasada działania komputera.
LEKCJA TEMAT: Zasada działania komputera. 1. Ogólna budowa komputera Rys. Ogólna budowa komputera. 2. Komputer składa się z czterech głównych składników: procesor (jednostka centralna, CPU) steruje działaniem
Bardziej szczegółowo1.1 Co to jest USBasp?... 3 1.2 Parametry techniczne... 3 1.3 Obsługiwane procesory... 3 1.4 Zawartość zestawu... 4
2012 Programator AVR USBasp Instrukcja obsługi 2012-02-11 2 SPIS TREŚCI 1. WSTĘP... 3 1.1 Co to jest USBasp?... 3 1.2 Parametry techniczne... 3 1.3 Obsługiwane procesory... 3 1.4 Zawartość zestawu... 4
Bardziej szczegółowoSTM32Butterfly2. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107
Zestaw uruchomieniowy dla mikrokontrolerów STM32F107 STM32Butterfly2 Zestaw STM32Butterfly2 jest platformą sprzętową pozwalającą poznać i przetestować możliwości mikrokontrolerów z rodziny STM32 Connectivity
Bardziej szczegółowoSystemy wbudowane. Wprowadzenie. Struktura. Mikrokontrolery AVR. Wprowadzenie do programowania w C
Systemy wbudowane Mikrokontrolery AVR Wprowadzenie do programowania w C dr inż. Maciej Piechowiak Wprowadzenie język C jest językiem strukturalnym wysokiego poziomu, jednak działającym blisko sprzętu i
Bardziej szczegółowoElementy składowe systemu komputerowego
SWB - Systemy wbudowane - wprowadzenie - wykład 9 asz 1 Elementy składowe systemu komputerowego Podstawowe elementy składowe: procesor z ALU pamięć komputera (zawierająca dane i program) urządzenia wejścia/wyjścia
Bardziej szczegółowoSpis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne
Spis treści 5 Spis treœci Co to jest mikrokontroler? Wprowadzenie... 11 Budowa systemu komputerowego... 12 Wejścia systemu komputerowego... 12 Wyjścia systemu komputerowego... 13 Jednostka centralna (CPU)...
Bardziej szczegółowoMikrokontroler ATmega32. Język symboliczny
Mikrokontroler ATmega32 Język symboliczny 1 Język symboliczny (asembler) jest językiem niskiego poziomu - pozwala pisać programy złożone z instrukcji procesora. Kody instrukcji są reprezentowane nazwami
Bardziej szczegółowoSystemy operacyjne i sieci komputerowe Szymon Wilk Superkomputery 1
i sieci komputerowe Szymon Wilk Superkomputery 1 1. Superkomputery to komputery o bardzo dużej mocy obliczeniowej. Przeznaczone są do symulacji zjawisk fizycznych prowadzonych głównie w instytucjach badawczych:
Bardziej szczegółowo1 Podstawy c++ w pigułce.
1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,
Bardziej szczegółowoCharakterystyka mikrokontrolerów. Przygotowali: Łukasz Glapiński, Mateusz Kocur, Adam Kokot,
Charakterystyka mikrokontrolerów Przygotowali: Łukasz Glapiński, 171021 Mateusz Kocur, 171044 Adam Kokot, 171075 Plan prezentacji Co to jest mikrokontroler? Historia Budowa mikrokontrolera Wykorzystywane
Bardziej szczegółowoMikroprocesory i Mikrosterowniki
Mikroprocesory i Mikrosterowniki Wykład 1 Wydział Elektroniki Mikrosystemów i Fotoniki dr inż. Piotr Markowski Na prawach rękopisu. Na podstawie dokumentacji ATmega8535, www.atmel.com. Konsultacje Pn,
Bardziej szczegółowoSzkolenia specjalistyczne
Szkolenia specjalistyczne AGENDA Programowanie mikrokontrolerów w języku C na przykładzie STM32F103ZE z rdzeniem Cortex-M3 GRYFTEC Embedded Systems ul. Niedziałkowskiego 24 71-410 Szczecin info@gryftec.com
Bardziej szczegółowo1. Wstęp Różnice pomiędzy mikrokontrolerami ST7 a ST7LITE Rdzeń mikrokontrolerów ST7FLITE... 15
3 1. Wstęp... 9 2. Różnice pomiędzy mikrokontrolerami ST7 a ST7LITE... 11 3. Rdzeń mikrokontrolerów ST7FLITE... 15 3.1. Jednostka centralna...16 3.2. Organizacja i mapa pamięci...19 3.2.1. Pamięć RAM...20
Bardziej szczegółowoBudowa Mikrokomputera
Budowa Mikrokomputera Wykład z Podstaw Informatyki dla I roku BO Piotr Mika Podstawowe elementy komputera Procesor Pamięć Magistrala (2/16) Płyta główna (ang. mainboard, motherboard) płyta drukowana komputera,
Bardziej szczegółowoSystemy wbudowane Mikrokontrolery
Systemy wbudowane Mikrokontrolery Budowa i cechy mikrokontrolerów Architektura mikrokontrolerów rodziny AVR 1 Czym jest mikrokontroler? Mikrokontroler jest systemem komputerowym implementowanym w pojedynczym
Bardziej szczegółowoARCHITEKTURA PROCESORA,
ARCHITEKTURA PROCESORA, poza blokami funkcjonalnymi, to przede wszystkim: a. formaty rozkazów, b. lista rozkazów, c. rejestry dostępne programowo, d. sposoby adresowania pamięci, e. sposoby współpracy
Bardziej szczegółowo1.2. Architektura rdzenia ARM Cortex-M3...16
Od Autora... 10 1. Wprowadzenie... 11 1.1. Wstęp...12 1.1.1. Mikrokontrolery rodziny ARM... 14 1.2. Architektura rdzenia ARM Cortex-M3...16 1.2.1. Najważniejsze cechy architektury Cortex-M3... 16 1.2.2.
Bardziej szczegółowoSpis treúci. Księgarnia PWN: Krzysztof Wojtuszkiewicz - Urządzenia techniki komputerowej. Cz. 1. Przedmowa... 9. Wstęp... 11
Księgarnia PWN: Krzysztof Wojtuszkiewicz - Urządzenia techniki komputerowej. Cz. 1 Spis treúci Przedmowa... 9 Wstęp... 11 1. Komputer PC od zewnątrz... 13 1.1. Elementy zestawu komputerowego... 13 1.2.
Bardziej szczegółowoArchitektura mikroprocesorów TEO 2009/2010
Architektura mikroprocesorów TEO 2009/2010 Plan wykładów Wykład 1: - Wstęp. Klasyfikacje mikroprocesorów Wykład 2: - Mikrokontrolery 8-bit: AVR, PIC Wykład 3: - Mikrokontrolery 8-bit: 8051, ST7 Wykład
Bardziej szczegółowoWykład 2. Przegląd mikrokontrolerów 8-bit: -AVR -PIC
Wykład 2 Przegląd mikrokontrolerów 8-bit: -AVR -PIC Mikrokontrolery AVR Mikrokontrolery AVR ATTiny Główne cechy Procesory RISC mało instrukcji, duża częstotliwość zegara Procesory 8-bitowe o uproszczonej
Bardziej szczegółowoWykład Mikroprocesory i kontrolery
Wykład Mikroprocesory i kontrolery Cele wykładu: Poznanie podstaw budowy, zasad działania mikroprocesorów i układów z nimi współpracujących. Podstawowa wiedza potrzebna do dalszego kształcenia się w technice
Bardziej szczegółowoArchitektura komputerów
Architektura komputerów Wykład 3 Jan Kazimirski 1 Podstawowe elementy komputera. Procesor (CPU) 2 Plan wykładu Podstawowe komponenty komputera Procesor CPU Cykl rozkazowy Typy instrukcji Stos Tryby adresowania
Bardziej szczegółowoProgramowanie w języku Python. Grażyna Koba
Programowanie w języku Python Grażyna Koba Kilka definicji Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i
Bardziej szczegółowoWykład 2. Mikrokontrolery z rdzeniami ARM
Wykład 2 Źródło problemu 2 Wstęp Architektura ARM (Advanced RISC Machine, pierwotnie Acorn RISC Machine) jest 32-bitową architekturą (modelem programowym) procesorów typu RISC. Różne wersje procesorów
Bardziej szczegółowoMikrokontroler AVR ATmega32 - wykład 9
SWB - Mikrokontroler AVR ATmega32 - wykład 9 asz 1 Mikrokontroler AVR ATmega32 - wykład 9 Adam Szmigielski aszmigie@pjwstk.edu.pl SWB - Mikrokontroler AVR ATmega32 - wykład 9 asz 2 CechyµC ATmega32 1.
Bardziej szczegółowoTemat 1: Podstawowe pojęcia: program, kompilacja, kod
Temat 1: Podstawowe pojęcia: program, kompilacja, kod wynikowy. Przykłady najprostszych programów. Definiowanie zmiennych. Typy proste. Operatory: arytmetyczne, przypisania, inkrementacji, dekrementacji,
Bardziej szczegółowoZastosowanie procesorów AVR firmy ATMEL w cyfrowych pomiarach częstotliwości
Politechnika Lubelska Wydział Elektrotechniki i Informatyki PRACA DYPLOMOWA MAGISTERSKA Zastosowanie procesorów AVR firmy ATMEL w cyfrowych pomiarach częstotliwości Marcin Narel Promotor: dr inż. Eligiusz
Bardziej szczegółowoDodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych
Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych B.1. Dostęp do urządzeń komunikacyjnych Sterowniki urządzeń zewnętrznych widziane są przez procesor jako zestawy rejestrów
Bardziej szczegółowoICD Wprowadzenie. Wprowadzenie. Czym jest In-Circuit Debugger? 2. O poradniku 3. Gdzie szukać dodatkowych informacji? 4
ICD 2 Czym jest In-Circuit Debugger? 2 O poradniku 3 Gdzie szukać dodatkowych informacji? 4 ICD 1 ICD 25.08.2009 Czym jest In-Circuit Debugger? Większość procesorów dostarcza systemów debugowania (ang.
Bardziej szczegółowodokument DOK 02-05-12 wersja 1.0 www.arskam.com
ARS3-RA v.1.0 mikro kod sterownika 8 Linii I/O ze zdalną transmisją kanałem radiowym lub poprzez port UART. Kod przeznaczony dla sprzętu opartego o projekt referencyjny DOK 01-05-12. Opis programowania
Bardziej szczegółowoSystem mikroprocesorowy i peryferia. Dariusz Chaberski
System mikroprocesorowy i peryferia Dariusz Chaberski System mikroprocesorowy mikroprocesor pamięć kontroler przerwań układy wejścia wyjścia kontroler DMA 2 Pamięć rodzaje (podział ze względu na sposób
Bardziej szczegółowoStruktura i działanie jednostki centralnej
Struktura i działanie jednostki centralnej ALU Jednostka sterująca Rejestry Zadania procesora: Pobieranie rozkazów; Interpretowanie rozkazów; Pobieranie danych Przetwarzanie danych Zapisywanie danych magistrala
Bardziej szczegółowoĆwiczenie 5 Zegar czasu rzeczywistego na mikrokontrolerze AT90S8515
Laboratorium Techniki Mikroprocesorowej Informatyka studia dzienne Ćwiczenie 5 Zegar czasu rzeczywistego na mikrokontrolerze AT90S8515 Cel ćwiczenia Celem ćwiczenia jest poznanie możliwości nowoczesnych
Bardziej szczegółowoPrzykładowe pytania DSP 1
Przykładowe pytania SP Przykładowe pytania Systemy liczbowe. Przedstawić liczby; -, - w kodzie binarnym i hexadecymalnym uzupełnionym do dwóch (liczba 6 bitowa).. odać dwie liczby binarne w kodzie U +..
Bardziej szczegółowoUwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)
Uwagi dotyczące notacji kodu! Wyrazy drukiem prostym -- słowami języka VBA. Wyrazy drukiem pochyłym -- inne fragmenty kodu. Wyrazy w [nawiasach kwadratowych] opcjonalne fragmenty kodu (mogą być, ale nie
Bardziej szczegółowoo Instalacja środowiska programistycznego (18) o Blink (18) o Zasilanie (21) o Złącza zasilania (22) o Wejścia analogowe (22) o Złącza cyfrowe (22)
O autorze (9) Podziękowania (10) Wstęp (11) Pobieranie przykładów (12) Czego będę potrzebował? (12) Korzystanie z tej książki (12) Rozdział 1. Programowanie Arduino (15) Czym jest Arduino (15) Instalacja
Bardziej szczegółowoInkubator AVR Podstawy obsługi i programowania mikrokontrolerów rodziny. CZĘŚĆ I. Wprowadzenie i hardware Co na temat AVR każdy wiedzieć powinien? Producent: ATMEL (www.atmel.com) Instrukcje wykonywane
Bardziej szczegółowoProgramator AVR USBasp
2012 Programator AVR USBasp Instrukcja obsługi 2012-09-11 2 SPIS TREŚCI 1. WSTĘP... 3 1.1 Co to jest USBasp?... 3 1.2 Parametry techniczne... 3 1.3 Obsługiwane procesory... 3 1.4 Zawartośd zestawu... 4
Bardziej szczegółowoArduino dla początkujących. Kolejny krok Autor: Simon Monk. Spis treści
Arduino dla początkujących. Kolejny krok Autor: Simon Monk Spis treści O autorze Podziękowania Wstęp o Pobieranie przykładów o Czego będę potrzebował? o Korzystanie z tej książki Rozdział 1. Programowanie
Bardziej szczegółowoOpracował: Jan Front
Opracował: Jan Front Sterownik PLC PLC (Programowalny Sterownik Logiczny) (ang. Programmable Logic Controller) mikroprocesorowe urządzenie sterujące układami automatyki. PLC wykonuje w sposób cykliczny
Bardziej szczegółowoKomunikacja w mikrokontrolerach Laboratorium
Laboratorium Ćwiczenie 4 Magistrala SPI Program ćwiczenia: konfiguracja transmisji danych między mikrokontrolerem a cyfrowym czujnikiem oraz sterownikiem wyświetlaczy 7-segmentowych przy użyciu magistrali
Bardziej szczegółowoUkłady zegarowe w systemie mikroprocesorowym
Układy zegarowe w systemie mikroprocesorowym 1 Sygnał zegarowy, sygnał taktujący W każdym systemie mikroprocesorowym jest wymagane źródło sygnałów zegarowych. Wszystkie operacje wewnątrz jednostki centralnej
Bardziej szczegółowoOrganizacja pamięci VRAM monitora znakowego. 1. Tryb pracy automatycznej
Struktura stanowiska laboratoryjnego Na rysunku 1.1 pokazano strukturę stanowiska laboratoryjnego Z80 z interfejsem częstościomierza- czasomierz PFL 21/22. Rys.1.1. Struktura stanowiska. Interfejs częstościomierza
Bardziej szczegółowoADuCino 360. Zestaw uruchomieniowy dla mikrokontrolerów ADuCM360/361
Zestaw uruchomieniowy dla mikrokontrolerów ADuCM360/361 ADuCino 360 Zestaw ADuCino jest tanim zestawem uruchomieniowym dla mikrokontrolerów ADuCM360 i ADuCM361 firmy Analog Devices mechanicznie kompatybilnym
Bardziej szczegółowoSystemy uruchomieniowe
Systemy uruchomieniowe Przemysław ZAKRZEWSKI Systemy uruchomieniowe (1) 1 Środki wspomagające uruchamianie systemów mikroprocesorowych Symulator mikroprocesora Analizator stanów logicznych Systemy uruchomieniowe:
Bardziej szczegółowoTechnika mikroprocesorowa. Struktura programu użytkownika w systemie mikroprocesorowym
Struktura programu użytkownika w systemie mikroprocesorowym start inicjalizacja niekończaca się pętla zadania niekrytyczne czasowo przerwania zadania krytyczne czasowo 1 Znaczenie problematyki programowania
Bardziej szczegółowoBudowa komputera Komputer computer computare
11. Budowa komputera Komputer (z ang. computer od łac. computare obliczać) urządzenie elektroniczne służące do przetwarzania wszelkich informacji, które da się zapisać w formie ciągu cyfr albo sygnału
Bardziej szczegółowoJeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.
Języki C i C++ to bardzo uniwersalne platformy programistyczne o ogromnych możliwościach. Wykorzystywane są do tworzenia systemów operacyjnych i oprogramowania użytkowego. Dzięki niskiemu poziomowi abstrakcji
Bardziej szczegółowoOpis efektów kształcenia dla modułu zajęć
Nazwa modułu: Programowanie mikrokontroleroẃ i mikroprocesoroẃ Rok akademicki: 2017/2018 Kod: EIT-1-408-s Punkty ECTS: 4 Wydział: Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej Kierunek:
Bardziej szczegółowoLITEcompLPC1114. Zestaw ewaluacyjny z mikrokontrolerem LPC1114 (Cortex-M0) Sponsorzy:
LITEcompLPC1114 Zestaw ewaluacyjny z mikrokontrolerem LPC1114 (Cortex-M0) Bezpłatny zestaw dla Czytelników książki Mikrokontrolery LPC1100. Pierwsze kroki LITEcompLPC1114 jest doskonałą platformą mikrokontrolerową
Bardziej szczegółowoSystemy Wbudowane. Arduino, AVR. Arduino. Arduino. Arduino. Oprogramowanie. Mikrokontroler. Mikrokontroler Platforma Arduino. Arduino IDE: Arduino C:
Mikrokontroler Platforma Systemy Wbudowane IDE:, AVR mgr inż. Marek Wilkus Wydział Inżynierii Metali i Informatyki Przemysłowej AGH Kraków Mikrokontroler AVR Uno Środowisko Terminal Uruchamianie http://home.agh.edu.pl/~mwilkus
Bardziej szczegółowoZL8AVR. Płyta bazowa dla modułów dipavr
ZL8AVR Płyta bazowa dla modułów dipavr Zestaw ZL8AVR to płyta bazowa dla modułów dipavr (np. ZL7AVR z mikrokontrolerem ATmega128 lub ZL12AVR z mikrokontrolerem ATmega16. Wyposażono ją w wiele klasycznych
Bardziej szczegółowoTechnika mikroprocesorowa. W. Daca, Politechnika Szczecińska, Wydział Elektryczny, 2007/08
Pamięci Układy pamięci kontaktują się z otoczeniem poprzez szynę danych, szynę owa i szynę sterującą. Szerokość szyny danych określa liczbę bitów zapamiętywanych do pamięci lub czytanych z pamięci w trakcie
Bardziej szczegółowo1 Podstawy c++ w pigułce.
1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,
Bardziej szczegółowoSystemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski
Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej Systemy wbudowane Witold Kozłowski Zakład Fizyki i Technologii Struktur Nanometrowych 90-236 Łódź, Pomorska 149/153 https://std2.phys.uni.lodz.pl/mikroprocesory/
Bardziej szczegółowoWstęp do programowania
Wstęp do programowania wykład 2 Piotr Cybula Wydział Matematyki i Informatyki UŁ 2012/2013 http://www.math.uni.lodz.pl/~cybula Język programowania Każdy język ma swoją składnię: słowa kluczowe instrukcje
Bardziej szczegółowoPodstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści
Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści 1. Konfiguracja pinów2 2. ISP..2 3. I/O Ports..3 4. External Interrupts..4 5. Analog Comparator5 6. Analog-to-Digital Converter.6 7.
Bardziej szczegółowoGrzegorz Cygan. Wstęp do programowania mikrosterowników w języku C
Grzegorz Cygan Wstęp do programowania mikrosterowników w języku C Mikrosterownik Inne nazwy: Microcontroler (z języka angielskiego) Ta nazwa jest powszechnie używana w Polsce. Mikrokomputer jednoukładowy
Bardziej szczegółowoProgramowanie niskopoziomowe. dr inż. Paweł Pełczyński ppelczynski@swspiz.pl
Programowanie niskopoziomowe dr inż. Paweł Pełczyński ppelczynski@swspiz.pl 1 Literatura Randall Hyde: Asembler. Sztuka programowania, Helion, 2004. Eugeniusz Wróbel: Praktyczny kurs asemblera, Helion,
Bardziej szczegółowoSTM32 Butterfly. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107
Zestaw uruchomieniowy dla mikrokontrolerów STM32F107 STM32 Butterfly Zestaw STM32 Butterfly jest platformą sprzętową pozwalającą poznać i przetestować możliwości mikrokontrolerów z rodziny STM32 Connectivity
Bardziej szczegółowoTechniki mikroprocesorowe i systemy wbudowane
Techniki mikroprocesorowe i systemy wbudowane Wykład 1 Procesory rodziny AVR ATmega. Wstęp Wojciech Kordecki wojciech.kordecki@pwsz-legnica.eu Państwowa Wyższa Szkoła Zawodowa im. Witelona w Legnicy Wydział
Bardziej szczegółowoProgramowanie w języku C++ Grażyna Koba
Programowanie w języku C++ Grażyna Koba Kilka definicji: Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i zasad
Bardziej szczegółowoPLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),
PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 2. Przygotowanie środowiska pracy
Bardziej szczegółowoWprowadzenie do informatyki i użytkowania komputerów. Kodowanie informacji System komputerowy
1 Wprowadzenie do informatyki i użytkowania komputerów Kodowanie informacji System komputerowy Kodowanie informacji 2 Co to jest? bit, bajt, kod ASCII. Jak działa system komputerowy? Co to jest? pamięć
Bardziej szczegółowoArchitektura komputera. Cezary Bolek. Uniwersytet Łódzki. Wydział Zarządzania. Katedra Informatyki. System komputerowy
Wstęp do informatyki Architektura komputera Cezary Bolek cbolek@ki.uni.lodz.pl Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki System komputerowy systemowa (System Bus) Pamięć operacyjna ROM,
Bardziej szczegółowoUkład wykonawczy, instrukcje i adresowanie. Dariusz Chaberski
Układ wykonawczy, instrukcje i adresowanie Dariusz Chaberski System mikroprocesorowy mikroprocesor C A D A D pamięć programu C BIOS dekoder adresów A C 1 C 2 C 3 A D pamięć danych C pamięć operacyjna karta
Bardziej szczegółowoElżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki
Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki Turbo Pascal jest językiem wysokiego poziomu, czyli nie jest rozumiany bezpośrednio dla komputera, ale jednocześnie jest wygodny dla programisty,
Bardziej szczegółowoProgramowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat
Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie
Bardziej szczegółowoMikrokontrolery AVR techniczne aspekty programowania
Andrzej Pawluczuk Mikrokontrolery AVR techniczne aspekty programowania Białystok, 2004 Mikrokontrolery rodziny AVR integrują w swojej strukturze między innymi nieulotną pamięć przeznaczoną na program (pamięć
Bardziej szczegółowoMikroprocesory i mikrosterowniki
Mikroprocesory i mikrosterowniki Wykład 1 wstęp, budowa mikrokontrolera Wydział Elektroniki Mikrosystemów i Fotoniki Na prawach rękopisu. Na podstawie dokumentacji ATmega8535, www.atmel.com. Piotr Markowski
Bardziej szczegółowoSzkoła programisty PLC : sterowniki przemysłowe / Gilewski Tomasz. Gliwice, cop Spis treści
Szkoła programisty PLC : sterowniki przemysłowe / Gilewski Tomasz. Gliwice, cop. 2017 Spis treści O autorze 9 Wprowadzenie 11 Rozdział 1. Sterownik przemysłowy 15 Sterownik S7-1200 15 Budowa zewnętrzna
Bardziej szczegółowoZaliczenie Termin zaliczenia: Sala IE 415 Termin poprawkowy: > (informacja na stronie:
Zaliczenie Termin zaliczenia: 14.06.2007 Sala IE 415 Termin poprawkowy: >18.06.2007 (informacja na stronie: http://neo.dmcs.p.lodz.pl/tm/index.html) 1 Współpraca procesora z urządzeniami peryferyjnymi
Bardziej szczegółowoHardware mikrokontrolera X51
Hardware mikrokontrolera X51 Ryszard J. Barczyński, 2016 Politechnika Gdańska, Wydział FTiMS, Katedra Fizyki Ciała Stałego Materiały dydaktyczne do użytku wewnętrznego Hardware mikrokontrolera X51 (zegar)
Bardziej szczegółowoLEKCJA TEMAT: Współczesne procesory.
LEKCJA TEMAT: Współczesne procesory. 1. Wymagania dla ucznia: zna pojęcia: procesor, CPU, ALU, potrafi podać typowe rozkazy; potrafi omówić uproszczony i rozszerzony schemat mikroprocesora; potraf omówić
Bardziej szczegółowoPolitechnika Białostocka
Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki Kod przedmiotu: TS1C 622 388 Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: Elektronika samochodowa Temat: Programowanie
Bardziej szczegółowoOPTIMA PC v2.2.1. Program konfiguracyjny dla cyfrowych paneli domofonowy serii OPTIMA 255 2011 ELFON. Instrukcja obsługi. Rev 1
OPTIMA PC v2.2.1 Program konfiguracyjny dla cyfrowych paneli domofonowy serii OPTIMA 255 Instrukcja obsługi Rev 1 2011 ELFON Wprowadzenie OPTIMA PC jest programem, który w wygodny sposób umożliwia konfigurację
Bardziej szczegółowoZestaw uruchomieniowy z mikrokontrolerem LPC1114 i wbudowanym programatorem ISP
Zestaw uruchomieniowy z mikrokontrolerem LPC1114 i wbudowanym programatorem ISP ZL32ARM ZL32ARM z mikrokontrolerem LPC1114 (rdzeń Cotrex-M0) dzięki wbudowanemu programatorowi jest kompletnym zestawem uruchomieniowym.
Bardziej szczegółowoPRZETWORNIK ADC w mikrokontrolerach Atmega16-32
Zachodniopomorski Uniwersytet Technologiczny WYDZIAŁ ELEKTRYCZNY Katedra Inżynierii Systemów, Sygnałów i Elektroniki LABORATORIUM TECHNIKA MIKROPROCESOROWA PRZETWORNIK ADC w mikrokontrolerach Atmega16-32
Bardziej szczegółowoBudowa komputera. Magistrala. Procesor Pamięć Układy I/O
Budowa komputera Magistrala Procesor Pamięć Układy I/O 1 Procesor to CPU (Central Processing Unit) centralny układ elektroniczny realizujący przetwarzanie informacji Zmiana stanu tranzystorów wewnątrz
Bardziej szczegółowoPolitechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania
Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania Podstawowe kroki programowania zestawu uruchomieniowego ZL9AVR z systemem operacyjnym NutOS w środowisku
Bardziej szczegółowoRok akademicki: 2013/2014 Kod: EEL s Punkty ECTS: 2. Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne
Nazwa modułu: Technika mikroprocesorowa Rok akademicki: 2013/2014 Kod: EEL-1-616-s Punkty ECTS: 2 Wydział: Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej Kierunek: Elektrotechnika Specjalność:
Bardziej szczegółowoProgramowanie sterowników przemysłowych / Jerzy Kasprzyk. wyd. 2 1 dodr. (PWN). Warszawa, Spis treści
Programowanie sterowników przemysłowych / Jerzy Kasprzyk. wyd. 2 1 dodr. (PWN). Warszawa, 2017 Spis treści Przedmowa 11 ROZDZIAŁ 1 Wstęp 13 1.1. Rys historyczny 14 1.2. Norma IEC 61131 19 1.2.1. Cele i
Bardziej szczegółowo11.Mikrokomputeryjednoukładowe
Materiały do wykładu 11.Mikrokomputeryjednoukładowe Marcin Peczarski Instytut Informatyki Uniwersytet Warszawski 14maja2008 Podstawowe cechy(1) 11.1 Innenazwy mikrokontroler mikroprocesor do zastosowań
Bardziej szczegółowoSpis treści. Dzień 1. I Rozpoczęcie pracy ze sterownikiem (wersja 1707) II Bloki danych (wersja 1707) ZAAWANSOWANY TIA DLA S7-300/400
ZAAWANSOWANY TIA DLA S7-300/400 Spis treści Dzień 1 I Rozpoczęcie pracy ze sterownikiem (wersja 1707) I-3 Zadanie Konfiguracja i uruchomienie sterownika I-4 Etapy realizacji układu sterowania I-5 Tworzenie
Bardziej szczegółowoBudowa i zasada działania komputera. dr Artur Bartoszewski
Budowa i zasada działania komputera 1 dr Artur Bartoszewski Jednostka arytmetyczno-logiczna 2 Pojęcie systemu mikroprocesorowego Układ cyfrowy: Układy cyfrowe służą do przetwarzania informacji. Do układu
Bardziej szczegółowoPodstawy programowania w języku Visual Basic dla Aplikacji (VBA)
Podstawy programowania w języku Visual Basic dla Aplikacji (VBA) Instrukcje Język Basic został stworzony w 1964 roku przez J.G. Kemeny ego i T.F. Kurtza z Uniwersytetu w Darthmouth (USA). Nazwa Basic jest
Bardziej szczegółowoProgramowanie strukturalne. Opis ogólny programu w Turbo Pascalu
Programowanie strukturalne Opis ogólny programu w Turbo Pascalu STRUKTURA PROGRAMU W TURBO PASCALU Program nazwa; } nagłówek programu uses nazwy modułów; } blok deklaracji modułów const } blok deklaracji
Bardziej szczegółowoWykład 4. Środowisko programistyczne
Wykład 4 Dostępne kompilatory KEIL komercyjny GNU licencja GPL ARM komercyjny IAR komercyjny 2 Porównanie kompilatorów 3 Porównanie kompilatorów 4 Keil uvision Graficzny edytor Kompilator i linker Symulator
Bardziej szczegółowoAby w pełni przetestować układ o trzech wejściach IN_0, IN_1 i IN_2 chcemy wygenerować wszystkie możliwe kombinacje sygnałów wejściowych.
Generowanie sygnałów testowych VHDL Wariant współbieżny (bez procesu): sygnał
Bardziej szczegółowo