Wat is ARM-processor - ARM-architectuur en toepassingen (2024)

Wat is ARM-processor - ARM-architectuur en toepassingen (1)

ARM-processor

De ARM-microcontroller staat voor Advance RISC Machine; het is een van de uitgebreide en meest gelicentieerde processorkernen ter wereld. De eerste ARM-processor werd in 1978 ontwikkeld door Cambridge University en de eerste ARM RISC-processor werd geproduceerd door de Acorn Group of Computers in het jaar 1985. Deze processors worden specifiek gebruikt in draagbare apparaten zoals digitale camera's, mobiele telefoons, thuisnetwerken modules endraadloze communicatietechnologieënen andereingebedde systemenvanwege de voordelen, zoals een laag stroomverbruik, redelijke prestaties, enz. Dit artikel geeft een overzicht van de ARM-architectuur met het werkingsprincipe van elke module.

ARM-architectuur

De ARM-architectuurprocessor is een geavanceerde computercomputer [RISC] met gereduceerde instructieset en het is een 32-bits computermicrocontroller (RISC) met gereduceerde instructieset. Het werd geïntroduceerd door de computerorganisatie Acron in 1987. Deze ARM is een familie van microcontrollers die is ontwikkeld door makers als ST Microelectronics, Motorola, enzovoort. De ARM-architectuur wordt geleverd met totaal verschillende versies zoals ARMv1, ARMv2, enz., en elk heeft zijn eigen voor- en nadelen.

Wat is ARM-processor - ARM-architectuur en toepassingen (2)

ARM-architectuur

De ARM-cortex is een gecompliceerde microcontroller binnen de ARM-familie met een ARMv7-ontwerp. Er zijn 3 subfamilies binnen de ARM-cortexfamilie:

  • ARM Cortex Ax-serie
  • ARM-Cortex Rx-serie
  • ARM-Cortex Mx-serie

De ARM-architectuur

  • Rekenkundige logische eenheid
  • Booth-vermenigvuldiger
  • Barrel shifter
  • Besturingseenheid
  • Bestand registreren

Dit artikel behandelt de onderstaande componenten.

De ARM-processor heeft ook andere componenten, zoals het programmastatusregister, dat de processorvlaggen (Z, S, V en C) bevat. De modi-bits bestaan ​​gezamenlijk in het staande register van het programma, naast de bits voor het uitschakelen van onderbrekingen en snelle onderbrekingen; Enkele speciale registers: Sommige registers worden gebruikt, zoals de instructie, geheugengegevens lees- en schrijfregisters en geheugenadresregister.

Prioriteitsencoder: De encoder wordt gebruikt in de meervoudige laad- en opslaginstructie om aan te geven welk register in het registerbestand moet worden geladen of bewaard.

Multiplexers: meerdere multiplexers zijn gewend aan het beheer van de processorbussen. Vanwege de beperkte projecttijd hebben we de neiging om deze componenten in een zeer gedragsmodel te implementeren. Elk onderdeel wordt beschreven met een entiteit. Elke entiteit heeft zijn eigen architectuur, die kan worden geoptimaliseerd voor bepaalde behoeften, afhankelijk van de toepassing. Hierdoor wordt het ontwerp eenvoudiger te bouwen en te onderhouden.

Wat is ARM-processor - ARM-architectuur en toepassingen (3)

ARM-blokdiagram

Rekenkundige logische eenheid (ALU)

De ALU heeft twee 32-bits ingangen. De primaire komt uit het registerbestand, terwijl de andere uit de shifter komt. Status registreert vlaggen gewijzigd door de ALU-uitgangen. De V-bit-uitvoer gaat naar de V-vlag en de teller gaat naar de C-vlag. Terwijl het belangrijkste significante bit echt de S-vlag vertegenwoordigt, wordt de ALU-uitvoerbewerking uitgevoerd door NORed om de Z-vlag te krijgen. De ALU heeft een 4-bits functiebus waarmee maximaal 16 opcodes kunnen worden geïmplementeerd.

Booth-vermenigvuldigingsfactor

De vermenigvuldigingsfactor heeft 3 32-bits ingangen en de ingangen komen terug uit het registerbestand. De vermenigvuldigingsoutput is nauwelijks 32-minst significante bits van de koopwaar. De entiteitsweergave van de vermenigvuldigingsfactor wordt weergegeven in het bovenstaande blokschema. De vermenigvuldiging begint wanneer de eerste 04-ingang actief wordt. De vin van de uitvoer gaat hoog bij het afwerken.

Booth-algoritme

Booth-algoritme is een opmerkelijke algoritmische vermenigvuldigingsregel voor 2-complementnummers. Dit behandelt positieve en negatieve getallen uniform. Bovendien worden de reeksen nullen of enen binnen de vermenigvuldigingsfactor overgeslagen zonder dat er enige optelling of aftrekking wordt uitgevoerd, waardoor mogelijk een snellere vermenigvuldiging ontstaat. De figuur toont de simulatieresultaten voor de vermenigvuldigingstestbank. Het is duidelijk dat de vermenigvuldiging pas in 16 klokcycli eindigt.

Barrel-verschuiver

De barrel shifter is voorzien van een 32-bits input die verschoven kan worden. Deze invoer komt terug uit het registerbestand of het kunnen directe gegevens zijn. De shifter heeft verschillende besturingsingangen die terugkomen uit het instructieregister. Het Shift-veld binnen de instructie regelt de werking van de barrel shifter. Dit veld geeft het soort verschuiving aan dat moet worden uitgevoerd (logisch links of rechts, rekenkundig rechts of roteren rechts). De hoeveelheid waarmee het register moet worden verschoven, staat in een direct veld in de instructie of het kunnen de onderste 6 bits van een register in het registerbestand zijn.

De shift_val ingangsbus is 6-bits, waardoor een verschuiving tot 32 bits mogelijk is. Het shifttype geeft de benodigde shiftsoort aan van 00, 01, 10, 11 komen overeen met respectievelijk shift left, shift right, een rekenkundige shift right en rotate right. De barrel shifter is speciaal gemaakt met multiplexers.

Controle-eenheid

Voor elke microprocessor is de besturingseenheid het hart van het hele proces en verantwoordelijk voor de werking van het systeem, dus het ontwerp van de besturingseenheid is het belangrijkste onderdeel binnen het hele ontwerp. De besturingseenheid is soms een puur combinatorisch circuitontwerp. Hier wordt de besturingseenheid geïmplementeerd door een easy state machine. De processortiming is bovendien opgenomen in de besturingseenheid. Signalen van de besturingseenheid zijn verbonden met elk onderdeel binnen de processor om toezicht te houden op de werking ervan.

Raadpleeg deze link voor meer informatie overARM MCQ's

ARM7 Functioneel diagram

Het laatste dat moet worden uitgelegd, is hoe de ARM zal worden gebruikt en de manier waarop de chip verschijnt. De verschillende signalen die communiceren met de processor zijn invoer-, uitvoer- of supervisiesignalen die zullen worden gebruikt om de ARM-werking te besturen.

Wat is ARM-processor - ARM-architectuur en toepassingen (4)

ARM-functioneel diagram

ARM Microcontroller-registratiemodi

Een ARM-microcontroller is een load store-reducerende instructieset-computerarchitectuur, wat betekent dat de kern niet rechtstreeks met het geheugen kan werken. De gegevensbewerkingen moeten worden gedaan door de registers en de informatie wordt in het geheugen opgeslagen door een adres. De ARM-cortex-M3 bestaat uit 37 registersets, waarvan 31 algemene registers en 6 statusregisters. De ARM gebruikt zeven verwerkingsmodi om de gebruikerstaak uit te voeren.

  • Gebruikersmodus
  • FIQ-modus
  • IRQ-modus
  • SVC-modus
  • UNDEFINED-modus
  • AFBREKEN modus
  • Monitor-modus

Wat is ARM-processor - ARM-architectuur en toepassingen (5)

ARM Microcontroller-registratiemodi

Gebruikersmodus:De gebruikersmodus is een normale modus, die het minste aantal registers heeft. Het heeft geen SPSR en heeft beperkte toegang tot de CPSR.

FIQ en IRQ:De FIQ en IRQ zijn de twee door onderbrekingen veroorzaakte modi van de CPU. De FIQ verwerkt interrupt en IRQ is standaard interrupt. De FIQ-modus heeft vijf extra bankregisters om meer flexibiliteit en hoge prestaties te bieden bij het afhandelen van kritieke interrupts.

SVC-modus:De Supervisor-modus is de software-onderbrekingsmodus van de processor om op te starten of te resetten.

Ongedefinieerde modus:De ongedefinieerde modus houdt vast wanneer illegale instructies worden uitgevoerd. De ARM-kern bestaat uit een 32-bits databus en een snellere datastroom.

DUIM-modus:In de THUMB-modus worden 32-bits gegevens verdeeld in 16-bits en wordt de verwerkingssnelheid verhoogd.

DUIM-2-modus:In de THUMB-2-modus kunnen de instructies 16-bits of 32-bits zijn en dit verhoogt de prestaties van de ARM-cortex –M3-microcontroller. De ARM cortex-m3-microcontroller gebruikt alleen THUMB-2-instructies.

Sommige registers zijn in elke modus gereserveerd voor het specifieke gebruik van de kern. De gereserveerde registers zijn

  • Stapelaanwijzer (SP).
  • Linkregister (LR).
  • Programmateller (pc).
  • Huidige programmastatusregister (CPSR).
  • Opgeslagen programmastatusregister (SPSR).

De gereserveerde registers worden gebruikt voor specifieke functies. De SPSR en CPSR bevatten de statuscontrolebits die worden gebruikt om de tijdelijke gegevens op te slaan. Het SPSR- en CPSR-register hebben enkele eigenschappen die gedefinieerde bedrijfsmodi zijn, vlaggen voor in- of uitschakelen van onderbrekingen en ALU-statusvlag. De ARM-kern werkt in twee toestanden: 32-bits toestand of THUMBS-toestand.

ARM-Cortex Microcontroller-programmering

Tegenwoordig bieden de leveranciers van microcontrollers 32-bits microcontrollers aan op basis van ARM cortex-m3-architectuur. Veelingebouwd systeemontwikkelaars beginnen deze 32-bit microcontrollers te gebruiken voor hun projecten. De ARM-microcontrollers ondersteunen zowel programmeertalen op laag niveau als op hoog niveau. Sommige van de traditionele microcontroller-architecturen zijn gemaakt met veel beperkingen en daarom is het moeilijk om de programmeertaal op hoog niveau te gebruiken.

Wat is ARM-processor - ARM-architectuur en toepassingen (6)

ARM-Cortex Microcontroller-programmering

De geheugengrootte is bijvoorbeeld beperkt en de prestaties zijn mogelijk niet voldoende. De ARM-microcontrollers werken op een frequentie van 100 MHz en presteren beter, daarom ondersteunt het de talen van een hoger niveau. De ARM-microcontroller is geprogrammeerd met verschillende IDES zoals keiluvision3, keiluvision4, coocox enzovoort. Een 8-bits microcontroller gebruikt 8-bits instructies en de ARM-cortex-M gebruikt 32 instructies.

Aanvullende toepassingen van de Cortex-processor

Het is een computercontroller met beperkte instructieset

  • 32-bits krachtige centrale verwerkingseenheid
  • 3-traps pijpleiding en compacte

Het heeft THUMB-2-technologie

  • Voegt optimaal samen met 16/32 bit instructies
  • Hoge performantie

Het ondersteunt tools en RTOS en de kern Sight debug en trace

  • JTAG of 2-pins seriële draad debugt verbinding
  • Ondersteuning voor meerdere processors

Energiezuinige modi

  • Het ondersteunt slaapstanden
  • Beheer het softwarepakket
  • Meerdere machtsdomeinen

Geneste vectoronderbrekingscontroller (NVIC)

  • Lage latentie, weinig ruis onderbreekt de respons
  • Assemblageprogrammering is niet nodig

Op ARM Cortex (STM32) gebaseerde straatverlichting op zonne-energie

Tegenwoordig maakt de zonnetechnologie vorderingen in vele toepassingen zoals woningen, industrieën, enz. Het hoofddoel van dit project is het besparen van elektrische energie: hier wordt een op een Arm-Cortex gebaseerde straatlantaarn op zonne-energie geïmplementeerd die werkt op zonne-energie. Over het algemeen worden straatlantaarns op zonne-energie gebruikt waar geen elektriciteit beschikbaar is.

Hardware onderdelen

  • STM32 met ARM-cortexbord
  • Witte LED's
  • MOSFET
  • Accu
  • Regelaar
  • Zonnepaneel

Software

  • Keil-compiler
  • Ingebedde C-taal

Dit project maakt gebruik van een ARM-Cortex-processor van de STM32-familie en een batterij voor stroomvoorziening. Dit project maakt gebruik van een zonnepaneel om de batterij op te laden, waarbij het laadregelaarcircuit het opladen van de batterij regelt. ARM-Cortex-processor is gekoppeld aan een set LED's met behulp van de MOSFET-schakelaar.

De intensiteitsregeling van de LED-lampen is mogelijk door de duty cycle van een DC-bron te variëren. Een geprogrammeerde ARM-Cortex-microcontrollereenheid wordt ingeschakeld om verschillende intensiteiten op verschillende tijdstippen van de nacht mogelijk te maken door gebruik te maken van de Pulse Width Modulation-techniek. Het laadregelaarcircuit wordt gebruikt om de batterij te beschermen tegen diepe ontlading en overbelasting.

De ARM Microcontroller Assemblage Programmeren:

De ARM-cortex-microcontroller is een 32-bits microcontroller, daarom zijn alle instructies 32-bits lang en worden ze in een enkele cyclus uitgevoerd. Het bestaat uit een instructieset om de rekenkundige, logische enbooleaanse bewerkingen. De ARM is een load-store-architectuur, waarna instructies voorwaardelijk worden uitgevoerd.

Syntaxis: Laad een // a heeft de waarde verkregen van de plaats die a // wordt genoemd
ADD12 // 12 wordt toegevoegd aan de belastingswaarde a //
Store a // definitieve waarde wordt opgeslagen in de variabele a//

De assembleertaalprogrammering is ontwikkeld door de ezelsbruggetjes zoals ADD, SUB, MUL enzovoort, maar voor ARM-programmering zijn enkele extra instructies toegevoegd zoals ADCNES en SWINE, enz.

BIJV.: 1. ORG 0000h
MOV r1, #10
MOVr2, #15
ADD r3, r2, r1 // r3=r2+r1 en de uiteindelijke waarde opgeslagen in r3 register//

2.ORG 0000u
MOV r1, #10
MOVr2, #15
SUB r3, r2, r1 // r3=r2-r1 en de uiteindelijke waarde opgeslagen in r3 register//

De ARM Coretex-M3 Microcontroller Embedded C Level Programmering:

WAP om de enkele LED te schakelen via Embedded C-taal met behulp van de ARM-cortex-microcontroller.

#include "stm32f10x_gpio.h"
#include "stm32f10x_rcc.h"

GPIO_InitTypeDef GPIO_InitStructure;
int ik;
#define LED_PORT GPIOB
Void binky();
ongeldig hoofd()
{
Void binky();
}

leegte binky (leegte)
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, INSCHAKELEN); // schakel de PORTB-pinnen in //
GPIO_InitStructure.GPIO_Speed ​​= GPIO_Speed_50MHz; // stel de poortfrequentie in //
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; // stel de PORTB in uitvoer in //
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All; //alle PORTB-pinnen ingeschakeld//
GPIO_Init(GPIOB, &GPIO_InitStructuur); // initialiseer de PORTB-pinnen //

terwijl(1){
GPIO_WriteBit(LED_PORT,GPIO_Pin_8,Bit_SET);
voor (i=0;i<1000000;i++);
GPIO_WriteBit(LED_PORT,GPIO_Pin_8,Bit_RESET);
voor (i=0;i<1000000;i++);

GPIO_WriteBit(LED_PORT,GPIO_Pin_9,Bit_SET);
voor (i=0;i<1000000;i++);
GPIO_WriteBit(LED_PORT,GPIO_Pin_9,Bit_RESET);
voor (i=0;i<1000000;i++);

GPIO_WriteBit(LED_PORT,GPIO_Pin_10,Bit_SET);
voor (i=0;i<1000000;i++);
GPIO_WriteBit(LED_PORT,GPIO_Pin_10,Bit_RESET);
voor (i=0;i<1000000;i++);
}

}

Raadpleeg deze link voor meer informatie over.

Daarom gaat dit allemaal over ARM-architectuur met een applicatie. Bovendien, alle vragen over dit artikel, kunt u ons schrijven voor het praktisch ontwikkelen en programmeren van deze projecten en voor enkele meer recente op armprocessor gebaseerde projecten.

Foto Credits:

Wat is ARM-processor - ARM-architectuur en toepassingen (2024)
Top Articles
Latest Posts
Article information

Author: Ray Christiansen

Last Updated:

Views: 6440

Rating: 4.9 / 5 (69 voted)

Reviews: 84% of readers found this page helpful

Author information

Name: Ray Christiansen

Birthday: 1998-05-04

Address: Apt. 814 34339 Sauer Islands, Hirtheville, GA 02446-8771

Phone: +337636892828

Job: Lead Hospitality Designer

Hobby: Urban exploration, Tai chi, Lockpicking, Fashion, Gunsmithing, Pottery, Geocaching

Introduction: My name is Ray Christiansen, I am a fair, good, cute, gentle, vast, glamorous, excited person who loves writing and wants to share my knowledge and understanding with you.