stap voor stap handleiding voor Microcontroller Programming
Dit is een stap voor stap handleiding voor degenen die willen beginnen met Microcontroller Programming. Het artikel begint met de introductie van een paar basistermen die in de gids zullen worden gebruikt, een lijst van tools, programmeertalen en aan het einde, een voorbeeld van een downloadbare code met een stap voor stap handleiding die je zou kunnen gebruiken om microcontroller programmeren te oefenen.
maar voordat we in Microcontrollerprogramma ‘ s duiken. Laten we de eerste twee basistermen definiëren: Hardware en Software.
Hardware bestaat uit de fysieke componenten van het systeem, zoals chips, toetsenbord, muis, monitor, geheugen, I/O-apparaten. Hardware is moeilijker te ontwikkelen in vergelijking met software, het moet worden ontworpen voor zeer specifieke toepassingen, en het is een zeer efficiënte en perfecte oplossing in high-speed systemen.
Software is de niet-fysieke componenten of de toepassingen die op de hardware draaien, zoals besturingssystemen, computerspellen en netwerktoepassingen. Software is zeer configureerbaar, eenvoudig en sneller te ontwikkelen, ook zeer goedkoop in vergelijking met hardware.
Wat is een Microcontroller
om te begrijpen wat een microcontroller is, moeten we eerst begrijpen wat een microprocessor of een CPU is (Central Processing Unit). Een CPU is een hart van elk computersysteem, het is als het menselijk brein bij het uitvoeren van een taak. We kunnen het in principe verdelen in twee essentiële delen:
besturingseenheid: deze eenheid wordt gebruikt om de gegevens uit het geheugen op te halen.
uitvoeringseenheid: deze eenheid wordt gebruikt om de gegevens uit te voeren of uit te voeren.
typen processoren
er zijn vele categorieën processoren zoals processoren voor algemene doeleinden, toepassingsspecifieke systeemprocessors en multi-processorsystemen. Processor voor algemeen gebruik heeft vele typen:
▪ Microprocessor
Micro Microcontroller
Embedded Embedded processor
▪ digitale signaalprocessor
Microprocessor is een halfgeleiderapparaat of een computer op een chip, maar geen volledig functionele computer. De centrale processor bevat
ALU ALU
▪ Programmatellers
Registers Registers
Other andere circuits (kloktijd, interrupt)
een microcontroller is een IC die een microprocessor en enkele randapparatuur bevat om een complete functionele computer te zijn, randapparatuur zoals ADC, RAM, ROM, DAC.
geschiedenis van Microcontroller
oorspronkelijk was Intel corporation de eerste fabrikant van microcontrollers. De eerste microcontroller werd in 1971 in de VS geproduceerd. Het was een 4-bit microcontroller met de naam i4004. Intel produceerde in die tijd meer geavanceerde modellen met een 8-bit microcontroller en daarna werd een 12-bit microcontroller ontwikkeld door Toshiba.
toepassingen van Microcontrollers
Microcontrollers hebben vele toepassingen in vele industrieën, zoals de automobiel -, medische, industriële automatisering, lucht-en ruimtevaart, robotica.In de auto-industrie hebben moderne auto ‘ s tegenwoordig bijvoorbeeld meer dan 100 microprocessoren voor systemen zoals airconditioning, ABS, EBD en ook ADAS of geavanceerde rijhulpsystemen zoals adaptive curies controller en lane assist.
in het medische domein zijn er medische hulpmiddelen die microcontrollers omvatten, zoals een MRI, glucose test set, Draagbare ECG. De volgende afbeelding is een glucosetestapparaat.
in de lucht-en ruimtevaart zijn de meeste vliegtuigen ontworpen met nieuwe avionica-systemen met behulp van microcontrollers. Daarnaast zijn er flight control system, air traffic control system, navigatie en weer systemen die allemaal zijn gebaseerd op microcontrollers.
populaire Microcontrollers
er zijn veel typen en platforms van microcontrollers, maar het selecteren van een microcontroller hangt van vele factoren af:
▪ Toepassing
▪ Budget
▪ Prestaties
▪ Aantal GPIO pins
▪ grootte van het Geheugen
▪ de Temperatuur van de werkomgeving
▪ energieverbruik
AVR Microcontroller
De volgende afbeelding ziet u een blokschema van AVE12DA, een van de meest populaire microcontroller famlily — de AVR microcontroller:
AVR microcontrollers is geproduceerd door Atmel corporation (vandaag: Microchip), heeft Atmel 6 families AVR microcontrollers, 4 families als general-purpose microcontrollers en 2 als specific purpose microcontrollers. Microcontrollers voor algemeen gebruik zijn:
8 8 bit-mega AVR
8 8 bit-AT Tiny
▪ 8 & 16 bit-AVR Xmega
32 32 bit-AVR
microcontrollers voor specifieke doeleinden zijn:
Automotive Automotive AVR
Battery batterijbeheer
Automotive AVR. Het kan werken onder zeer hoge temperaturen tot 150 Celsius, en het omvat beveiligingssystemen voor kortsluitingsproblemen.
batterijbeheer microcontroller is ontwikkeld voor batterijbeheersystemen om Laad-en ontlaadwerkzaamheden te beveiligen.
Voorbeelden van AVR Platforms
▪ Arduino UNO
▪ Adafruit Blauw fruit Micro
▪ Raspduino
▪ Digispark Pro
ARM Microprocessor/Microcontroller
ARM microprocessor is de meest populaire processor in de wereld, met name in de consumentenmarkt. Je hebt misschien een ARM processor-gebaseerd apparaat, maar je weet het niet! ARM is meestal een belangrijk onderdeel van een succesvolle 32-bit embedded systemen. De eerste ARM werd ontwikkeld in 1985.
RISC-technologie
ARM wordt gebruikt RISC-technologie, RISC staat voor reduced instruction set computer, het is een ontwerpfilosofie om eenvoudige instructies binnen een enkele cyclus te leveren. Het vertrouwt meer op de software. Aan de andere kant vertrouwt de CISC-technologie meer op de hardware.
RISC-technologie richt zich op het verminderen van de instructieset van de processor. Aan de andere kant heeft de CISC processor een niet-vast nummer van de instructieset.
ARM Features
Arm heeft vele functies voor elke embedded systeem ontwerper is op zoek naar, bijvoorbeeld laag energieverbruik door zijn compacte formaat, ook hoge code dichtheid is een andere functie omdat we embedded systemen te ontwikkelen, zullen we beperkte middelen in de meeste gevallen.
interne structuur van ARM-gebaseerde Microcontroller
deze figuur toont de interne structuur van de meeste ARM-gebaseerde apparaten:
de dozen staan voor functies, de lijnen staan voor bussen. Laten we praten meer over elk onderdeel in detail:
▪ De ARM-processor is de core component is verantwoordelijk voor de verwerking
▪ Controllers worden gebruikt voor het coördineren van de functies van het systeem zoals het geheugen en de interrupt-controllers
▪ Randapparatuur worden gebruikt om het systeem in-en uitgangen
▪ Een bus wordt gebruikt voor het uitwisselen van gegevens tussen de verschillende componenten in het systeem
Voorbeelden van ARM-platforms
Er zijn veel apparaten en embedded platforms die arm microprocessor bijv.
▪ Arduino Due
▪ Raspberry Pi
▪ STM32F103C8T6
▪ NXP LPC1768
Andere Microcontroller en Platforms
Zoals we al eerder zeiden het selecteren van een microcontroller of een platform hangt af van vele factoren (budget, aantal pennen, etc.…). Er zijn ook andere microcontrollers en platforms, bijv.
▪ PIC-Microcontrollers
▪ 8051
▪ ESP32
▪ Motorola Microcontrollers
Microcontroller Software en Hardware Tools
sinds de oprichting van de microcontroller zijn er vele soorten software en hardware development tools. Natuurlijk, kunnen sommige van de hulpmiddelen over diverse microcontroller types worden gebruikt maar sommige zijn zeer specifiek per microcontroller. Voordat u begint met microcontroller Programmering, Wilt u misschien vertrouwd raken met de microcontroller programming tools en, last but not least, het ontwikkelingsproces.
met behulp van embedded development tools hebben we mogelijk de volgende tools nodig:
Assembler
het is een software tool die uw broncode in assembly omzet in machine code, bijvoorbeeld (GNU assembler).
Compiler
het is een softwareprogramma dat uw broncode bedekt in een programmeertaal op hoog niveau in assembler of machinecode. Compilatie kan zijn:
Native Native: dit betekent dat u de compiler en de gegenereerde code op dezelfde machine
Cross Cross: dit betekent dat u de compiler op een machine uitvoert en de gegenereerde code op een andere machine (processorarchitectuur).
Linker en Locator
een linker is een programma dat de compilaties verzamelt en koppelt, bewerkingen assembleert en één exe produceert.
een locator is een programmaprogramma dat kan worden gebruikt om de geheugenkaart van de linker-uitvoer te wijzigen.
Simulator
het is een programma dat het reële scenario imiteert, het produceert een benadering van de real-time systemen. Een simulator wordt gebruikt:
▪ als de echte hardware niet beschikbaar is
▪ in gevaarlijke testomgevingen en scenario ‘ s
Debugger
het is een softwareprogramma en een hardwareapparaat dat kan worden gekoppeld aan mijn PC met mijn ingesloten doel. Er wordt een debugger gebruikt:
▪ breekpunten
▪ trace-uitvoering
▪ dump-geheugen
Hardware debugger kan
▪ debug-agentsoftware aan boord
Flashlader
het is een programma en hardwareapparaat dat kan worden gebruikt om:
Program programma ROM/Flash
▪ Watch variables
Erase Erase ROM / Flash
Profiler
Profiler is een hulpmiddel om de prestaties van de softwarecode
geïntegreerde ontwikkelomgeving
het is een softwareprogramma dat de meeste gereedschappen allemaal in één heeft. Het kan zijn
▪ tekstverwerkers
▪ Compilers
▪ Debuggers
▪ Profilers
▪ Simulatoren
▪ Linkers
Microcontroller Software-Talen
We kunnen ze indelen in twee soorten:
High-level
▪ C/C++
▪ Java
▪ Ada
het Gebruik van dit type levert een abstractie van de hardware-niveau
Low-level
Machine code
Het is 0 en 1s en hard te worden geschreven door de mens, maar voor computers gemakkelijk te begrijpen
Montage
Het is een mnemonic code en pseudo-instructies om de leesbaarheid te verbeteren
Voorbeelden:
een instructie bestaat uit mnemonisch (opcode) + operanden
Opcode is een bewerking die wordt uitgevoerd door een machineprocessor
operanden is het uiteindelijke doel; de opcode moet een bewerking aannemen.
Assembly language is meer leesbaar en begrijpelijk dan machine code, maar je moet het gebruiken op een specifieke processor en kennis hebben van de architectuur.
C / C++ programmeertalen
talen op hoog niveau hebben de volgende functies
▪ gemakkelijk te schrijven
Flexible flexibel
Processor Processoronafhankelijk
High hoge productiviteit
Microcontroller Programmeervoorbeeld met behulp van AVR ATMEGA16
ATmega 16 heeft de volgende functies:
▪ 16 Kb van In-systeem Zelf programmeerbare flash-geheugen
▪ 512 Bytes EEPROM
▪ 1 Kbyte Interne SRAM
▪ Programmering Slot voor beveiliging
Perifere Functies
▪ Real-Time Teller met Aparte Oscillator
▪ Programmeerbare Seriële USART
▪ Vier PWM Kanalen
▪ 8-kanaal, 10-bit ADC
▪ On-chip Oscillator
▪ Power-op Rust-en Brown-out Detectie
▪ Interne RC Oscillator en Interrupt Bronnen
▪ Spanningen (van 2,7 v-5).5v)
LED-Knipperprogramma voorbeeld gebruikmakend van ATmeg16 en Proteus
LED-knipperprogramma in ingebedde systemen zoals het “hello world” – programma in applicatie-ontwikkeling. In het volgende voorbeeld leer je en gebruik je de Proteus simulator om je eerste programma uit te voeren. Ga naar deze map om de bronbestanden te downloaden.
Schrijf uw programma met behulp van Atmel studio
Na het downloaden van uw IDE,
openen en kies nieuw project aan en kies de locatie van de hex-bestand, zoals in de volgende afbeelding
De volgende stap is het kiezen van de microcontroller familie
daarna krijg je het volgende venster met starter code
En nu schrijf de volgende code
De volgende stap is het bouwen van uw programma door te drukken op F7
Na dat u de hex file op de gekozen locatie
De volgende stap is het gebruik van de Proteus simulator
En maak nu een schematische weergave van de geselecteerde sjabloon
En kies niet het maken van een PCB lay-out
tot slot, we zijn gedaan, maar moeten we de hex-bestand, zoals in de volgende afbeelding
bewerken CKSEL Zekeringen
Opslaan en klik op afspelen
En je kunt zien dat de LED uit is voor 500ms (linker kant) en voor 500ms (rechterkant)
Programma Uitleg per regel
downloaden van de bron-bestanden, gaat u naar deze map.
# definieer f_CPU 100000UL / / om een constante te maken en kies de processorsnelheid
# include <avr / io.h>//om enkele bestanden voor in-en uitgangen
#op te roepen, moet <avr/delay worden opgenomen.h> // recall this file to use delay functions
int main(void){ // the start function and the main program
DDRA = 0b0000001; // to configure the pin a as an output / direction
While(1){ // to loop forever
PORTA = 0b00000001; // to make the PA0 = 1 and output 5v (LED is on)
_vertraging(500); // vertraging van een halve seconde
PORTA = 0b0000000; // voor het maken van de PA0 = 0 en uitgang 0v (LED uit)
_delay_ms (500); //delay voor de helft een tweede
}
terug 0;
} //einde van het programma
Conclusie
Tegenwoordig embedded systemen worden gebruikt in vitale producten en kan worden gebruikt voor het beveiligen en het opslaan van een heleboel mensen, als in het medische domein en andere toepassingen. Je moet blijven leren na het krijgen van een overzicht en introductie over microcontroller programmering. Uw volgende stap zou moeten zijn het leren van embedded software ontwerp en real-time triggered systemen.
https://www.faa.gov/regulations_policies/handbooks_manuals/aviation/phak/
AVR Microcontroller 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