przewodnik krok po kroku do programowania mikrokontrolerów

jest to przewodnik krok po kroku dla tych, którzy chcą zacząć od programowania mikrokontrolerów. Artykuł zaczyna się od wprowadzenia kilku podstawowych pojęć, które będą używane w przewodniku, listy narzędzi, języków programowania i na końcu, przykład kodu do pobrania z przewodnikiem krok po kroku, który można wykorzystać do Ćwiczenia programowania mikrokontrolerów.

ale przed przejściem do programowania mikrokontrolerów. Zdefiniujmy pierwsze dwa podstawowe pojęcia: Sprzęt i oprogramowanie.

Sprzęt składa się z fizycznych komponentów systemu, takich jak Układy scalone, klawiatura, mysz, monitor, pamięci, urządzenia We/Wy. Sprzęt jest trudniejszy do opracowania w porównaniu z oprogramowaniem, musi być zaprojektowany do bardzo konkretnych zastosowań i jest bardzo wydajnym i doskonałym rozwiązaniem w szybkich systemach.

oprogramowanie to niefizyczne komponenty lub aplikacje działające na sprzęcie, takie jak systemy operacyjne, gry komputerowe i aplikacje sieciowe. Oprogramowanie jest wysoce konfigurowalne, łatwe i szybsze w opracowaniu, a także bardzo tanie w porównaniu do sprzętu.

czym jest mikrokontroler

aby zrozumieć, czym jest mikrokontroler, musimy najpierw zrozumieć, czym jest mikroprocesor lub procesor (jednostka centralna). Procesor jest sercem każdego systemu komputerowego, jest jak ludzki mózg podczas wykonywania zadania. Zasadniczo możemy podzielić go na dwie zasadnicze części:

Jednostka Sterująca: Ta jednostka służy do pobierania danych z pamięci.

Jednostka wykonania: Ta jednostka służy do wykonania lub uruchomienia danych.

rodzaje procesorów

istnieje wiele kategorii procesorów, takich jak procesory ogólnego przeznaczenia, procesor systemowy specyficzny dla aplikacji i system wieloprocesorowy. Procesor ogólnego przeznaczenia ma wiele typów:

Microp mikroprocesor

Microc mikrokontroler

Embedded procesor wbudowany

Digital Cyfrowy procesor sygnałowy

mikroprocesor jest urządzeniem półprzewodnikowym lub komputerem na chipie, ale nie w pełni funkcjonalnym komputerem. Jego centralna jednostka procesorowa zawiera

ALU ALU

▪ liczniki programów

▪ rejestry

Other inne układy (Taktowanie czasu, przerwanie)

mikrokontroler to układ scalony, który zawiera mikroprocesor i niektóre urządzenia peryferyjne, które mają być kompletnym funkcjonalnym komputerem, urządzeniami peryferyjnymi, np. ADC, RAM, ROM, DAC.

Historia mikrokontrolerów

pierwotnie firma Intel corporation była pierwszą produkcją mikrokontrolerów. Pierwszy mikrokontroler został wyprodukowany w 1971 roku w USA. Był to 4-bitowy mikrokontroler o nazwie i4004. Później Intel produkował bardziej wyrafinowane modele w tym czasie z mikrokontrolerem 8-bitowym, a następnie 12-bitowy mikrokontroler został opracowany przez Toshibę.

zastosowania mikrokontrolerów

mikrokontrolery mają wiele zastosowań w wielu branżach, np. motoryzacji, medycynie, automatyce przemysłowej, lotnictwie, robotyce.

na przykład w przemyśle motoryzacyjnym nowoczesne samochody mają obecnie ponad 100 mikroprocesorów do systemów takich jak klimatyzacja, ABS, EBD, a także ADAS lub zaawansowanych systemów wspomagania jazdy, takich jak adaptive curies controller i lane assist, poniżej znajduje się obraz ECU lub elektronicznej jednostki sterującej.

w dziedzinie medycyny istnieją urządzenia medyczne, które obejmują mikrokontrolery, takie jak MRI, zestaw testów glukozy, przenośne EKG. Poniższy obraz, jest urządzeniem do badania glukozy.

w lotnictwie większość samolotów została zaprojektowana z nowymi systemami awioniki wykorzystującymi mikrokontrolery. Dodatkowo, system sterowania lotem, system kontroli ruchu lotniczego, systemy nawigacji i pogody, które są oparte na mikrokontrolerach.

popularne mikrokontrolery

istnieje wiele typów i platform mikrokontrolerów, ale wybór mikrokontrolera zależy od wielu czynników:

Application zastosowanie

Budget budżet

Performance wydajność

Number Liczba pinów GPIO

size wielkość pamięci

Temperature Temperatura środowiska pracy

▪ Pobór mocy

mikrokontroler AVR

poniższy obrazek zawiera schemat blokowy Ave12da, jednego z najpopularniejszych mikrokontrolerów — mikrokontrolera AVR:

mikrokontrolery AVR produkowane są przez Atmel corporation (dziś: Microchip), Atmel ma 6 rodzin mikrokontrolerów AVR, 4 rodziny jako mikrokontrolery ogólnego przeznaczenia i 2 jako mikrokontrolery specjalnego przeznaczenia. Mikrokontrolery ogólnego przeznaczenia to:

▪ 8 bit – mega AVR

▪ 8 bit-AT Tiny

▪ 8 & 16 bit – AVR Xmega

▪ 32 bit – AVR

mikrokontrolery specjalnego przeznaczenia to:

Automotive Automotive AVR

Management Zarządzanie akumulatorami

Automotive AVR, od swojej nazwy, został opracowany do zastosowań motoryzacyjnych. Może pracować w bardzo wysokich temperaturach do 150 Stopni Celsjusza i zawiera systemy zabezpieczające przed zwarciem.

mikrokontroler zarządzania baterią został opracowany dla systemów zarządzania baterią w celu zabezpieczenia operacji ładowania i rozładowywania.

przykłady Platform AVR

AR Arduino Uno

Ad Adafruit Blue fruit Micro

Rasp Raspduino

Dig Digispark Pro

mikroprocesor/mikrokontroler ARM

mikroprocesor ARM jest najbardziej popularny procesor na świecie, zwłaszcza w aplikacjach konsumenckich. Możesz mieć urządzenie oparte na procesorze ARM,ale nie wiesz! ARM jest w większości kluczowym elementem wszystkich udanych 32-bitowych systemów wbudowanych. Pierwsze ramię zostało opracowane w 1985 roku.

technologia RISC

ARM jest używana technologia RISC, RISC oznacza zredukowany zestaw instrukcji komputer, jest to filozofia projektowania, aby dostarczyć proste instrukcje w ciągu jednego cyklu. Opiera się bardziej na oprogramowaniu. Z drugiej strony Technologia CISC polega bardziej na sprzęcie.

technologia RISC koncentruje się na zmniejszeniu zestawu instrukcji procesora. Z drugiej strony, procesor CISC ma niestandardowy numer zestawu instrukcji.

funkcje ARM

Arm ma wiele funkcji dla każdego projektanta systemów wbudowanych, np. niskie zużycie energii ze względu na kompaktowe rozmiary, również wysoka gęstość kodu to kolejna cecha ponieważ opracowujemy systemy wbudowane, w większości przypadków będziemy mieli ograniczone zasoby.

struktura wewnętrzna mikrokontrolera opartego na architekturze ARM

ten rysunek pokazuje wewnętrzną strukturę większości urządzeń opartych na architekturze ARM:

pola reprezentują funkcje, linie reprezentują autobusy. Porozmawiajmy więcej o każdym komponencie w szczegółach:

▪ procesor ARM jest głównym komponentem, który odpowiada za operacje przetwarzania

Controllers sterowniki służą do koordynowania funkcji systemu jako kontrolery pamięci i przerwań

Periph Urządzenia peryferyjne służą do dostarczania wejść i wyjść systemu

bus magistrala służy do wymiany danych między różnymi komponentami systemu

przykłady platform ARM

istnieje wiele urządzeń i platform wbudowanych, które mają mikroprocesor ARM np.

AR Arduino Due

Raspberry Raspberry Pi

St STM32F103C8T6

N NXP LPC1768

Inne mikrokontrolery i platformy

jak powiedzieliśmy przed wyborem mikrokontrolera lub platformy zależy od wielu czynników (budżet, Liczba pinów itp.…). Istnieją również inne mikrokontrolery i platformy np.

Microc mikrokontrolery PIC

▪ 8051

▪ ESP32

Motorola mikrokontrolery Motorola

oprogramowanie i narzędzia sprzętowe mikrokontrolera

od czasu utworzenia mikrokontrolera istnieje wiele rodzajów narzędzi programistycznych i sprzętowych. Oczywiście niektóre narzędzia mogą być używane w różnych typach mikrokontrolerów, ale niektóre są bardzo specyficzne dla mikrokontrolera. Przed rozpoczęciem programowania mikrokontrolerów warto zapoznać się z narzędziami do programowania mikrokontrolerów i, co nie mniej ważne, z procesem programowania.

używając wbudowanych narzędzi programistycznych, możemy potrzebować następujących narzędzi:

Assembler

jest to narzędzie programowe, które konwertuje Twój kod źródłowy w assemblerze na kod maszynowy, na przykład (GNU assembler).

kompilator

jest to program, który przykrywa kod źródłowy w języku programowania wysokiego poziomu do języka assembly lub kodu maszynowego. Kompilacja może być:

Native natywny: oznacza to, że uruchamiasz kompilator i wygenerowany kod na tej samej maszynie

Cross Cross: oznacza to, że uruchamiasz kompilator na maszynie, a wygenerowany kod działa na innej maszynie (architektura procesora).

Linker i lokalizator

linker to program, który zbiera i łączy Kompilacje i montuje operacje i tworzy pojedynczy exe.

Lokalizator jest narzędziem programu, które może być użyte do zmiany mapy pamięci wyjścia łącznika.

symulator

jest to program, który imituje rzeczywisty scenariusz, wytwarza przybliżenie systemów czasu rzeczywistego. Symulator jest używany:

if jeśli prawdziwy sprzęt nie jest dostępny

in w niebezpiecznych środowiskach testowych i scenariuszach

Debugger

to program i urządzenie sprzętowe, które mogą być podłączone do mojego komputera do mojego osadzonego celu. Używany jest debugger:

set ustawianie punktów przerwania

to śledzenie wykonania

dump zrzut pamięci

debuger sprzętowy może być

in debuger w obwodzie

DEB debugowanie oprogramowania agenta na pokładzie

Flash loader

jest to program i urządzenie sprzętowe, które można wykorzystać do:

Program Program ROM/Flash

Watch Watch variables

Erase Erase ROM/Flash

Profiler

Profiler to narzędzie do monitorowania wydajności kodu oprogramowania

zintegrowane środowisko programistyczne

jest to program, który ma większość narzędzi w jeden. Może zawierać

editors edytory tekstu

Comp Kompilatory

Deb debuggery

Prof Profilery

Sim symulatory

Sim Linkery

języki oprogramowania mikrokontrolerów

możemy klasyfikować dzielą się na dwa rodzaje:

wysoki poziom

▪ C/C++

Java Java

Ada Ada

użycie tego typu zapewni abstrakcję z poziomu sprzętu

niski poziom

kod maszynowy

It jest to 0 i 1s i trudne do napisania przez ludzi, ale łatwe do zrozumienia dla komputerów

montaż

jest to kod mnemoniczny i pseudo instrukcje poprawiające czytelność

przykłady:

Instrukcja składa się z mnemonicznego (opcode) + operandów

Opcode jest operacją wykonywaną przez procesor maszyny

operandów jest ostatecznym celem; opcode musi podjąć operację.

język Assembly jest bardziej czytelny i zrozumiały niż kod maszynowy, ale trzeba go używać na określonym procesorze i mieć wiedzę na temat jego architektury.

języki programowania C/C++

języki wysokiego poziomu mają następujące cechy

Easy łatwe do pisania

Flexible elastyczne

independent niezależne od procesora

High wysoka wydajność

przykład programowania mikrokontrolerów przy użyciu AVR ATMEGA16

atmega 16 posiada następujące funkcje:

▪ 16 Kb wewnętrznej programowalnej pamięci flash

5 512 bajtów EEPROM

▪ 1 Kbyte wewnętrznej pamięci SRAM

Lock Blokada programująca dla bezpieczeństwa

funkcje peryferyjne

▪ licznik czasu rzeczywistego z osobnym oscylatorem

Programm programowalny serial USART

Four cztery kanały PWM

8 8-Kanałowy, 10-bitowy ADC

oscill oscylator on-chip

detection wykrywanie spoczynkowe i Brown-out zasilania

Internal wewnętrzny oscylator RC i źródła przerwań

Vol napięcia (od 2,7 V do 5.5V)

przykład programu migania LED z wykorzystaniem ATmeg16 i Proteus

program migania LED w systemach wbudowanych, takich jak program „hello world” w tworzeniu aplikacji. W poniższym przykładzie nauczysz się i użyjesz symulatora Proteus do uruchomienia pierwszego programu. Aby pobrać pliki źródłowe, przejdź do tego folderu.

napisz swój program za pomocą Atmel studio

po pobraniu IDE,

programowanie mikrokontrolerów AVR

otwórz go i wybierz nowy projekt i wybierz lokalizację pliku szesnastkowego jak na poniższym obrazku

programowanie mikrokontrolerów AVR

następnym krokiem jest wybór rodziny mikrokontrolerów

programowanie mikrokontrolerów AVR

po tym pojawi się następujące okno z kodem startowym

programowanie mikrokontrolera AVR

i teraz proszę napisać poniższy kod

programowanie mikrokontrolera AVR

następnym krokiem jest zbudowanie programu przez naciśnięcie F7

programowanie mikrokontrolera AVR

po tym znajdziesz plik hex w wybranej lokalizacji

programowanie mikrokontrolerów AVR

następnym krokiem jest użycie symulatora Proteus

a teraz Utwórz schemat z wybranego szablonu

 programowanie mikrokontrolera AVR

i wybierz Nie twórz układu PCB

programowanie mikrokontrolerów AVR

w końcu skończyliśmy, ale musimy dodać plik hex jak na poniższym obrazku

programowanie mikrokontrolerów AVR

teraz edytuj Bezpieczniki CKSEL

programowanie mikrokontrolerów AVR

Zapisz i kliknij Odtwórz

, a zobaczysz, że dioda LED jest wyłączona dla 500ms (po lewej stronie) i włączona dla 500ms (po prawej stronie)

Wyjaśnienie programu linia po linii

aby pobrać pliki źródłowe, przejdź do tego folderu.

#define f_CPU 100000ul/ / aby utworzyć stałą i wybrać prędkość procesora

#include <avr / io.h>/ / aby przywołać niektóre pliki dla wejść i wyjść

#include < avr / delay.H> // recall this file to use delay functions

int main(void){ // the starting function and the main program

DDRA = 0B0000001; // to configure the pin a as an output / direction

While(1){ // to loop forever

PORTA = 0b00000001; // aby PA0 = 1 i wyjście 5V (dioda LED jest włączona)

_delay_ms(500); // opóźnienie o pół sekundy

PORTA = 0B0000000; // aby PA0 = 0 i wyjście 0V (DIODA LED jest wyłączona)

_delay_ms (500); //opóźnienie o pół sekundy

}

return 0;

} //koniec programu

wniosek

obecnie systemy wbudowane są używane w ważnych produktach i mogą być używane do zabezpieczenia i uratowania wielu ludzi, podobnie jak w dziedzinie medycyny i innych aplikacjach. Powinieneś kontynuować naukę po uzyskaniu przeglądu i wprowadzenia na temat programowania mikrokontrolerów. Następnym krokiem powinna być nauka projektowania oprogramowania wbudowanego i systemów uruchamianych w czasie rzeczywistym.

https://www.faa.gov/regulations_policies/handbooks_manuals/aviation/phak/

AVR micro controller and Embedded Systems: Pearson New International Edition: Using Assembly and C, Muhammad Ali Mazidi, DeVry University

arm System Developer ’ s Guide Designing and Optimizing System Software a volume in the Morgan Kaufmann Series in Computer Architecture and Design Book • 2004

Leave a Reply

Twój adres e-mail nie zostanie opublikowany.