ghid pas cu pas pentru programarea microcontrolerului

acesta este un ghid pas cu pas pentru cei care doresc să înceapă cu programarea microcontrolerului. Articolul începe cu introducerea câtorva termeni de bază care vor fi utilizați în ghid, o listă de instrumente, limbaje de programare și, la sfârșit, un exemplu de cod descărcabil cu un ghid pas cu pas pe care l-ați putea folosi pentru a practica programarea microcontrolerului.

dar înainte de scufundări în programare microcontroler. Să definim primii doi termeni de bază: Hardware și Software.

Hardware-ul este format din componentele fizice din sistem, cum ar fi chips-uri, tastatură, mouse, monitor, memorii, dispozitive I/O. Hardware-ul este mai greu de dezvoltat în comparație cu software-ul, trebuie proiectat pentru aplicații foarte specifice și este o soluție foarte eficientă și perfectă în sistemele de mare viteză.

Software-ul este componentele non-fizice sau aplicațiile care rulează pe hardware, cum ar fi sistemele de operare, jocurile pe calculator și aplicațiile de rețea. Software-ul este extrem de configurabil, ușor și mai rapid de dezvoltat, de asemenea foarte ieftin în comparație cu hardware-ul.

ce este un microcontroler

pentru a înțelege ce este un microcontroler, trebuie să înțelegem mai întâi ce este un microprocesor sau un procesor (unitate centrală de procesare). Un procesor este o inimă a oricărui sistem informatic, este ca creierul uman atunci când îndeplinește o sarcină. Putem împărți practic în două părți esențiale:

unitate de Control: această unitate este utilizată pentru a prelua datele din memorie.

unitate de execuție: această unitate este utilizată pentru a executa sau rula datele.

tipuri de procesoare

există multe categorii de procesoare, cum ar fi procesoare de uz general, procesor de sistem specific aplicației și sistem multi-procesor. Procesor de uz General are mai multe tipuri:

microprocesor

microcontroler

Procesor încorporat

procesor de semnal digital

microprocesor este un dispozitiv semiconductor sau un computer pe un cip, dar nu un computer complet funcțional. Unitatea sa centrală de procesare conține

alu

contoare de programe

registre

alte circuite (timp de pontaj, întrerupere)

un microcontroler este un IC care conține un microprocesor și unele periferice pentru a fi un computer complet funcțional, periferice de exemplu, ADC, RAM, ROM, DAC.

istoria microcontroler

inițial, Intel corporation a fost prima fabricarea de microcontrolere. Primul microcontroler a fost produs în 1971 în SUA. A fost un microcontroler pe 4 biți cu numele i4004. În cele din urmă, Intel a produs modele mai sofisticate în acel moment cu un microcontroler pe 8 biți și după aceea un microcontroler pe 12 biți a fost dezvoltat de Toshiba.

aplicațiile microcontrolerelor

microcontrolerele au multe aplicații în multe industrii, de exemplu, automotive, medicale, automatizări industriale, aerospațiale, robotică.

în industria auto, de exemplu, mașinile moderne au în prezent peste 100 de microprocesoare pentru sisteme precum aer condiționat, ABS, EBD și, de asemenea, ADAS sau sisteme avansate de asistență la conducere, cum ar fi controlerul adaptiv curies și lane assist, următoarea este o imagine a unui ECU sau a unei unități de control electronice.

în domeniul medical, există dispozitive medicale care includ microcontrolere, cum ar fi un RMN, set de teste de glucoză, EKG portabil. Următoarea imagine, este un dispozitiv de testare a glucozei.

în industria aerospațială, majoritatea aeronavelor au fost proiectate cu noi sisteme avionice care utilizează microcontrolere. În plus, există sistem de control al zborului, sistem de control al traficului aerian, sisteme de navigație și vreme care se bazează pe microcontrolere.

microcontrolere populare

există multe tipuri și platforme de microcontrolere, dar selectarea unui microcontroler depinde de mulți factori:

▪ Aplicarea

▪ Buget

▪ Performanță

▪ Numărul de pini GPIO

▪ dimensiunea Memoriei

▪ Temperatura mediu de operare

▪ consumul de Energie

Microcontroler AVR

imaginea De mai jos conține o diagramă bloc a AVE12DA, una dintre cele mai populare microcontroler famlily — AVR microcontroller:

microcontrolere AVR este produs de Atmel corporation (azi: Microchip), Atmel are 6 familii de microcontrolere AVR, 4 familii ca microcontrolere de uz general și 2 ca microcontrolere cu scop specific. Microcontrolerele de uz General sunt:

8 biți – mega AVR

8 biți-la mici

▪ 8 & 16 bit – AVR Xmega

32 bit – AVR

microcontrolerele cu scop Specific sunt:

AVR auto

managementul bateriei

AVR auto, de la numele său, a fost dezvoltat pentru aplicații auto. Poate funcționa la temperaturi foarte ridicate de până la 150 Celsius și include sisteme de protecție pentru probleme de scurtcircuit.

microcontrolerul de gestionare a bateriei este dezvoltat pentru sistemele de gestionare a bateriei pentru a asigura operațiunile de încărcare și descărcare.

Exemple de platforme AVR

Arduino Uno

microprocesor/microcontroler Arm

Arm Raspduino

Arm Digispark Pro

microprocesor / microcontroler Arm

ARM este cel mai popular procesor din lume, în special, în aplicațiile de consum. Este posibil să aveți un dispozitiv bazat pe procesor ARM, dar nu știți! ARM este în mare parte o componentă cheie a oricărui sistem încorporat de succes pe 32 de biți. Primul braț a fost dezvoltat în 1985.

RISC Technology

ARM este folosit tehnologia RISC, RISC standuri pentru redus calculator set de instrucțiuni, este o filozofie de proiectare pentru a oferi instrucțiuni simple într-un singur ciclu. Se bazează mai mult pe software. Pe de altă parte, tehnologia CISC se bazează mai mult pe hardware.

tehnologia RISC se concentrează pe reducerea setului de instrucțiuni al procesorului. Pe de altă parte, procesorul CISC are un număr non-fix al setului de instrucțiuni.

caracteristici ARM

Arm are multe caracteristici pentru fiecare proiectant de sistem încorporat pe care îl caută, de exemplu, consum redus de energie datorită dimensiunii sale compacte, de asemenea, densitatea mare a codului este o altă caracteristică, deoarece dezvoltăm sisteme încorporate, vom avea resurse limitate în majoritatea cazurilor.

structura internă a microcontrolerului bazat pe ARM

această figură arată structura internă a majorității dispozitivelor bazate pe ARM:

casetele reprezintă funcții, liniile reprezintă autobuze. Să vorbim mai multe despre fiecare componentă în detalii:

XV procesorul ARM este componenta de bază care este responsabil pentru operațiunile de procesare

controlerele de la ARM sunt utilizate pentru a coordona funcțiile sistemului ca controlere de memorie și de întrerupere

perifericele de la ARM sunt utilizate pentru a furniza intrările și ieșirile sistemului

un bus este utilizat pentru schimbul de date între diferitele componente ale sistemului

Exemple de platforme ARM

există multe dispozitive și platforme încorporate care au microprocesor ARM, de ex.

Arduino din cauza

Raspberry Pi

stm32f103c8t6

NXP LPC1768

alte microcontroler și platforme

așa cum am spus înainte de a selecta un microcontroler sau o platformă depinde de mulți factori (buget, număr de pini etc.…). Există, de asemenea, alte microcontrolere și platforme, de ex.

microcontrolere pic

▪ 8051

▪ ESP32

microcontrolere Motorola

software microcontroler și instrumente Hardware

de la crearea microcontrolerului, au existat multe tipuri de instrumente de dezvoltare software și hardware. Desigur, unele dintre instrumente pot fi utilizate în diferite tipuri de microcontrolere, dar unele sunt foarte specifice pentru fiecare microcontroler. Înainte de a începe cu programarea microcontrolerului, poate doriți să vă familiarizați cu instrumentele de programare a microcontrolerului și, nu în ultimul rând, cu procesul de dezvoltare.

folosind instrumente de dezvoltare încorporate, este posibil să avem nevoie de instrumente după cum urmează:

Assembler

este un instrument software care convertește codul sursă în asamblare în cod mașină, de exemplu (GNU assembler).

compilator

este un program software care acoperă codul sursă într-un limbaj de programare la nivel înalt în limbaj de asamblare sau cod mașină. Compilația poate fi:

nativ: acest lucru înseamnă că rulați compilatorul și codul generat pe aceeași mașină

cruce: aceasta înseamnă că rulați compilatorul pe o mașină și codul generat rulează pe o mașină diferită (arhitectura procesorului).

Linker și Locator

un linker este un program care colectează și leagă compilațiile și asamblează operațiunile și produce un singur exe.

un locator este un instrument de program care poate fi folosit pentru a schimba harta de memorie a ieșirii linker.

Simulator

este un program care imită scenariul real, produce o aproximare a sistemelor în timp real. Un simulator este folosit:

Irak în cazul în care hardware-ul real nu este disponibil

Irak în medii de testare periculoase și scenarii

Debugger

este un program software și dispozitiv hardware care poate fi interfațat la PC-ul meu la ținta mea încorporat. Se utilizează un depanator:

pentru a seta punctele de întrerupere

pentru a urmări execuția

pentru a descărca memoria

depanatorul Hardware poate fi

depanatorul în circuit

software-ul agentului de depanare la bord

Încărcător Flash

este un program și un dispozitiv hardware care poate fi utilizat pentru:

programul Rom/Flash

variabile de ceas

Erase Rom/Flash

Profiler

Profiler este un instrument pentru a monitoriza performanța codului software

mediu de dezvoltare integrat

este un program software care are cele mai multe instrumente toate în unu. Acesta poate include

▪ editoare de Text

▪ Compilatoare

▪ Debugger-ele

▪ Profileri

▪ Simulatoare

▪ Linkeri

Microcontroler Software Limbi

le putem clasifica în două tipuri:

nivel înalt

c/c++

java

Ada

utilizarea acestui tip va oferi o abstracție de la nivelul hardware

nivel scăzut

cod mașină

acesta este 0 și 1s și greu să fie scris de oameni, dar ușor pentru calculatoare pentru a înțelege

asamblare

este un cod mnemonic și instrucțiuni pseudo pentru a îmbunătăți lizibilitatea

Exemple:

o instrucțiune este format din mnemonic (opcode) + operanzi

Opcode este o operație luată de un procesor mașină

operanzi este ținta finală; opcode trebuie să ia o operație pentru.

limbajul de asamblare este lizibil și ușor de înțeles mai mult decât codul mașinii, dar trebuie să îl utilizați pe un procesor specific și să aveți cunoștințe despre arhitectura acestuia.

C/C++ limbaje de programare

limbaje de nivel înalt au următoarele caracteristici

ușor de scris

flexibil

procesor independent

productivitate ridicată

exemplu de programare microcontroler folosind AVR ATMEGA16

atmega 16 are următoarele caracteristici:

▪ 16 Kb de În-sistem de Auto-programabil cu memorie flash

▪ 512 Bytes EEPROM

▪ 1 Kbyte Internă SRAM

▪ Programare de Blocare pentru securitate

Periferice Caracteristici

▪ Contor în Timp Real cu Oscilator Separat

▪ Programabile Seriale USART

▪ Patru Canale PWM

▪ 8-canal, 10-bit ADC

▪ On-chip Oscilator

▪ Putere-pe Restul si Maro-Detectarea

▪ Interne Oscilator RC și Întrerupe Surse

▪ Tensiuni (de la 2,7 v la 5.5v)

LED clipește exemplu de Program folosind ATmeg16 și Proteus

LED clipește program în sisteme încorporate, cum ar fi programul „hello world” în dezvoltarea de aplicații. În exemplul următor, veți învăța și utiliza simulatorul Proteus pentru a rula primul program. Pentru a descărca fișierele sursă, accesați acest folder.

scrie programul folosind Atmel studio

după descărcarea IDE,

programare microcontroler AVR

deschideți-l și alegeți proiect nou și alegeți locația fișierului hex ca în imaginea următoare

programare microcontroler AVR

următorul pas este să alegeți familia microcontroler

programare microcontroler AVR

după aceea veți primi următoarea fereastră cu cod de pornire

programare microcontroler AVR

și acum vă rugăm să scrieți următorul cod

microcontroler programare AVR

următorul pas este construirea programul apăsând F7

microcontroler programare AVR

după care veți găsi fișierul hex pe locația aleasă

programare microcontroler AVR

următorul pas este utilizarea simulatorului Proteus

și acum a crea o schemă de selectat un șablon

 microcontroler programare AVR

și alegeți nu creați un aspect PCB

programare microcontroler AVR

în cele din urmă, am terminat, dar avem nevoie pentru a adăuga fișierul hex ca în următoarea imagine

programare microcontroler AVR

acum edita siguranțe CKSEL

microcontroler programare AVR

salvați și faceți clic pe redare

și puteți vedea că LED-ul este oprit pentru 500ms (partea stângă) și pentru 500ms (partea dreaptă)

explicație program linie cu linie

pentru a descărca fișierele sursă, vă rugăm să mergeți la acest dosar.

#define f_CPU 100000UL // pentru a crea o constantă și alegeți viteza procesorului

#include < avr/io.h > / / pentru a reaminti unele fișiere pentru intrări și ieșiri

#includ <avr/întârziere.h> // rechemați acest fișier pentru a utiliza funcțiile de întârziere

int main(void){ // funcția de pornire și programul principal

DDRA = 0b0000001; // pentru a configura pinul a ca ieșire / direcție

în timp ce(1){ // pentru a bucla pentru totdeauna

PORTA = 0b00000001; // pentru a face PA0 = 1 și ieșire 5V (LED-ul este pornit)

_delay_ms(500); // întârziere pentru o jumătate de secundă

PORTA = 0B0000000; / / pentru a face PA0 = 0 și ieșire 0v (LED-ul este oprit)

_delay_ms (500); / / întârziere pentru o jumătate de secundă

}

întoarcere 0;

} //sfârșitul programului

concluzie

în prezent, sistemele încorporate sunt utilizate în produse vitale și pot fi utilizate pentru a asigura și salva o mulțime de oameni, ca și în domeniul medical și alte aplicații. Ar trebui să continuați să învățați după ce ați obținut o imagine de ansamblu și o introducere despre programarea microcontrolerului. Următorul pas ar trebui să fie învățarea designului Software încorporat și a sistemelor declanșate în timp real.

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

AVR microcontroler și sisteme integrate: Pearson New International Edition: utilizarea de asamblare și C, Muhammad Ali Mazidi, DeVry University

Arm system Developer ‘ s Guide proiectarea și optimizarea software-ului de sistem un volum în seria Morgan Kaufmann în arhitectura de calculator și Design carte • 2004

Leave a Reply

Adresa ta de email nu va fi publicată.