Inleiding tot op ARM7 gebaseerde LPC2148 Microcontroller-architectuur

Probeer Ons Instrument Voor Het Oplossen Van Problemen





De ARM (Advanced RISC Machine) heeft verschillende processors gelanceerd die verschillende functies hebben, evenals de verschillende kernen voor een breed scala aan toepassingen. Het eerste ARM-architectuurontwerp heeft 26-bits processors, maar nu bereikt het 64-bits processors. De algemene uitbreiding van ARM-producten kan niet worden onderverdeeld in bepaalde informatie. Maar ARM-producten kunnen worden begrepen op basis van hun architectuur. De standaard ARM-serie processors die op de markt verkrijgbaar zijn, beginnen bij ARM7 tot ARM11. Deze processors hebben verschillende functies zoals cache, Data Tightly Coupled-geheugen, MPU, MMU, enz. Enkele van de algemeen bekende ARM-processorseries zijn ARM926EJ-S, ARM7TDMI en ARM11 MPCore. Dit artikel is met name bedoeld voor op ARM7 gebaseerde LPC2148 microcontrollerarchitectuuroverzicht dat u beknopte informatie geeft over de microcontroller architectuur.

ARM7 gebaseerde LPC2148 Microcontroller Architectuur

De ARM7 is een 32-bit voor algemeen gebruik microprocessor , en het biedt enkele van de functies, zoals een laag stroomverbruik en hoge prestaties. De architectuur van een ARM is afhankelijk van de principes van RISC ​Het bijbehorende decodeermechanisme, evenals de RISC-instructieset, zijn veel eenvoudig in vergelijking met microgeprogrammeerde CISC -Complex instructieset computers.




De Pipeline-methode wordt gebruikt voor het verwerken van alle blokken in de architectuur. Over het algemeen wordt een enkele instructieset uitgevoerd, waarna de afstammeling wordt vertaald, & a 3rd-instructie wordt verkregen uit het geheugen.

Een exclusief architectonisch plan van ARM7 heet Thumb, en het is perfect geschikt voor toepassingen met een hoog volume waar de compactheid van code een kwestie is. De ARM7 maakt ook gebruik van een exclusieve architectuur namelijk Thumb. Het maakt het perfect geschikt voor verschillende toepassingen door geheugenbeperkingen waarbij de dichtheid van code een kwestie is.



ARM7 gebaseerde microcontroller (LPC2148) architectuur

ARM7 gebaseerde microcontroller (LPC2148) architectuur

Bronnen onderbreken

Elk randapparaat bestaat uit een enkele interruptlijn die is gelieerd aan de VIC (vector interruptcontroller), hoewel er verschillende interruptvlaggen in kunnen zitten. Individuele interruptvlaggen kunnen ook een of meer interruptbronnen betekenen.


On-chip Flash-programmageheugen

De microcontroller LPC2141 / 42/44/46/48 bevat een flash-geheugen zoals respectievelijk 32 kilobytes, kilobytes, 128 kilobytes, 256 kilobytes. Dit flash-geheugen kan worden gebruikt voor zowel gegevensopslag als code. De programmering van het flashgeheugen kan in het systeem worden gedaan via de seriële poort.

De programma-applicatie kan ook worden gewist terwijl de applicatie van het programma draait, wat flexibiliteit mogelijk maakt bij het verbeteren van de gegevensopslagveldfirmware, enz. Vanwege de selectie van een architectonische oplossing voor een on-chip bootloader, is het beschikbare geheugen voor de microcontrollers LPC2141 / 42 / 44/46/48 is 32 kilobytes, kilobytes, 128 kilobytes, 256 kilobytes en 500 kilobytes. Het flash-geheugen van deze microcontrollers biedt 1, 00.000 wissen per cycli en gegevensbehoud voor vele jaren.

Pin Connect-blok

Dit blok maakt het mogelijk om pinnen van de op ARM7 gebaseerde LPC2148-microcontroller te kiezen voor het hebben van verschillende functies. De multiplexers kunnen worden bestuurd door de configuratieregisters om de verbinding tussen de pin en on-chip randapparatuur mogelijk te maken.

Randapparatuur moet worden gekoppeld met de geschikte pinnen voordat ze worden geactiveerd, en voordat eventuele aangesloten onderbrekingen worden toegestaan. De microcontrollerfunctionaliteit kan worden gedefinieerd door de pinbesturingsmodule door de pin-selectie van registers in een bepaalde hardware-omgeving.

Na het herschikken worden alle pinnen van poorten (poort 0 en poort 1) gerangschikt als i / p volgens de gegeven uitzonderingen. Als foutopsporing is toegestaan

Als debug is toegestaan, raden de pinnen van de JTAG de functionaliteit van JTAG. Als een tracering is toegestaan, raden de traceerpennen de functionaliteit van tracering aan. De pinnen die zijn aangesloten op de I2C0- en I2C1-pinnen zijn open afvoer.

GPIO- Parallelle invoer / uitvoer voor algemeen gebruik

GPIO-registers besturen de apparaatpinnen die niet zijn gekoppeld aan een bepaalde perifere functie. De apparaatpinnen kunnen worden gerangschikt als i / p [s of o / ps. Individuele registers maken het mogelijk om een ​​willekeurig aantal o / p's tegelijkertijd te wissen. De waarde van het uitvoerregister kan worden teruggelezen, en de huidige toestand van de poortpinnen. Deze microcontrollers beginnen een versnelde functie op LPC200-apparaten.

Invoer- / uitvoerregisters voor algemene doeleinden worden verplaatst naar de processorbus die wordt gebruikt voor de meest waarschijnlijke I / O-tijd.

  • Deze registers zijn adresseerbare bytes.
  • De totale waarde van een poort kan zijn
  • De volledige waarde van de poort kan in de enige instructie worden geschreven

10-bit ADC (analoog naar digitaal converter)

De microcontrollers zoals LPC2141 of 42 bevatten er twee ADC-converters , en deze zijn slechts 10-bits met één en de LPC2144 / 46/48 hebben twee ADC's, en dit zijn slechts 10-bits directe benadering ADC's. Hoewel ADC0 6 kanalen bevat en ADC1 8 kanalen heeft. Het aantal toegankelijke ADC i / ps voor LPC2141 of 42 is dus 6 & 14 voor LPC2141 of 42.

10-bit DAC (digitaal naar analoog converter)

De DAC stelt deze microcontrollers in staat om een ​​veranderlijke analoge o / p en V te producerenREFis de grootste output van een digitaal naar analoog Spanning.

Apparaatcontroller-USB 2.0

De universele seriële bus bestaat uit 4-draads, en die ondersteunt de communicatie tussen een aantal randapparatuur en hosts. Deze controller maakt de bandbreedte van USB mogelijk om apparaten aan te sluiten met behulp van een protocol dat is gebaseerd op het token.

De bus ondersteunt het loskoppelen van hot-plugging en dynamische verzameling van de apparaten. Elke communicatie wordt gestart via de host-controller. Deze microcontrollers zijn ontworpen met een universele seriële busapparaatcontroller waarmee 12 Mbit / sec gegevens kunnen worden vervangen door een hostcontroller van USB.

UARTs

Deze microcontrollers bevatten twee UART's voor standaard transmit & get datalijnen. In tegenstelling tot eerdere microcontrollers (LPC2000), initiëren UART's in microcontrollers LPC2141 / LPC2142 / LPC2144 / LPC2146 / LPC2148 een gedeeltelijke baudrate-generator die wordt gebruikt voor beide UART's, waardoor dit soort microcontrollers typische baudrates zoals 115200 kan bereiken bij elke kristalfrequentie boven 2 MHz . Daarnaast worden de besturingsfuncties zoals CTS / RTS volledig in hardware uitgevoerd.

Seriële I / O Controller van I2C-bus

Elke microcontroller van LPC2141 / LPC2142 / LPC2144 / LPC2146 / LPC2148 bevat twee I2C buscontrollers, en dit is bidirectioneel. De inter-IC-besturing kan worden gedaan met behulp van twee draden, namelijk een SCL en SDA. Hier zijn de SDA & SCL de seriële kloklijn en de seriële datalijn

Elk apparaat wordt geïdentificeerd door een individueel adres. Hier kunnen zenders en ontvangers in twee modi werken, zoals master-modus / slave-modus. Dit is een multi-masterbus en deze kan worden beheerd door een of meer daaraan gekoppelde busmasters. Deze microcontrollers ondersteunen bitsnelheden tot 400 kbit / s.

SPI seriële ingangs- / uitgangscontroller

Deze microcontrollers bevatten een enkele SPI-controller en zijn bedoeld om talloze masters en slaves te verwerken die zijn gekoppeld aan een specifieke bus.

Gewoon een meester en een slaaf kunnen tijdens de gespecificeerde gegevensoverdracht via de interface praten. Gedurende dit verzendt de master constant een byte-of-data naar de slave, en de slave verzendt constant gegevens naar de master.

SSP seriële ingangs- / uitgangscontroller

Deze microcontrollers bevatten een enkele SSP en deze controller kan worden verwerkt op een SPI, Microwire-bus of 4-draads SSI. Het kan communiceren met de bus van verschillende meesters en ook met slaven

Maar eenvoudigweg een bepaalde master, evenals een slaaf, kan tijdens een gespecificeerde datatransmissie op de bus converseren. Deze microcontroller ondersteunt full-duplex overdrachten, door 4-16 bits dataframes die worden gebruikt voor de datastroom van zowel de master- de slave als de slave-de master.

Timers / tellers

Timers en tellers zijn ontworpen voor het tellen van de PCLK-cycli (perifere klok) en produceren optioneel interrupts op basis van registers met 4 overeenkomsten.

En het bevat vier capture i / ps om de waarde van een timer op te vangen wanneer een i / p-signaal verandert. Er kunnen meerdere pinnen worden gekozen om een ​​bepaalde opname uit te voeren. Deze microcontrollers kunnen externe gebeurtenissen berekenen op de ingangen van de opname als de minste externe puls equivalent is. In deze opstelling kunnen inactieve capture-lijnen worden gekozen als gebruikelijke timer capture i / ps.

Watchdog Timer

De watchdog-timer wordt gebruikt om de microcontroller in een redelijke tijd te resetten. Als het is toegestaan, zal de timer een systeemreset produceren als het consumentenprogramma er niet in slaagt de timer opnieuw te laden in een vaste som van de tijd.

RTC-realtime klok

De RTC is bedoeld om tellers te leveren om de tijd te berekenen wanneer de inactieve of normale bedieningsmethode wordt gekozen. De RTC gebruikt een kleine hoeveelheid stroom en is ontworpen voor geschikte op batterijen werkende systemen waarbij de centrale verwerkingseenheid niet constant functioneert

Vermogensregeling

Deze microcontrollers ondersteunen twee gecondenseerde vermogensmodi, zoals power-down-modus en inactieve modus. In de inactieve modus wordt de uitvoering van instructies gebalanceerd totdat er een interrupt of RST optreedt. De functies van randapparatuur behouden de werking tijdens de inactieve modus en kunnen onderbrekingen produceren waardoor de CPU opnieuw begint met afwerken. Inactieve modus verwijdert het vermogen dat wordt gebruikt door de CPU, controllers, geheugensystemen en binnenbussen.

In de power-down-modus is de oscillator gedeactiveerd en krijgt de IC geen interne klokken. De perifere registers, processorconditie met registers, innerlijke SRAM-waarden blijven behouden tijdens de uitschakelmodus en de uitgangspennen van de chiplogica-niveaus blijven vast.

Deze modus kan worden beëindigd en het gewone proces kan opnieuw worden gestart door specifieke interrupts die kunnen werken zonder klokken. Omdat de werking van de chip gebalanceerd is, verlaagt de uitschakelmodus het stroomverbruik van de chip tot bijna nul.

PWM -Pulsbreedtemodulator

De PWM's zijn gebaseerd op het normale timerblok en komen ook voor in alle functies, hoewel de pulsbreedtemodulatorfunctie eenvoudig is vastgelegd op de microcontrollers zoals LPC2141 / 42/44/46/48.

De timer is bedoeld om PCLK-cycli (perifere klok) te berekenen en optioneel interrupts te produceren wanneer bepaalde timerwaarden ontstaan ​​op basis van 7-match-registers, en de PWM-functie hangt ook af van match-register-events.

Door de mogelijkheid individuele stijgende en dalende grensposities te regelen, kan de pulsbreedtemodulatie voor verschillende toepassingen worden gebruikt. De typische motorbesturing met meerfase gebruikt bijvoorbeeld 3 niet-overlappende uitgangen van PWM door afzonderlijke besturing van elke pulsbreedte en posities.

VPB Bus

De VPB-verdeler lost de associatie op tussen de CCLK (processorklok) en de PCLK (klok die wordt gebruikt door randapparatuur). Deze verdeler wordt voor twee doeleinden gebruikt. Het eerste gebruik is om randapparatuur te leveren via de PCLK die de voorkeur heeft met behulp van de VPB-bus, zodat ze kunnen werken met de geselecteerde snelheid van de ARM-processor. Om dit te bereiken, kan deze bussnelheid de kloksnelheid van de processor worden verlaagd van 1⁄ 2 -1⁄ 4.

Omdat deze bus nauwkeurig moet werken bij het opstarten, en de standaardstatus bij RST (reset) is dat de bus werkt op 1⁄4 van de kloksnelheid van de processor. Het tweede gebruik hiervan is om energie te besparen wanneer een applicatie geen randapparatuur nodig heeft om op de volledige processorsnelheid te werken. Aangezien de VPB-verdeler is geassocieerd met de output van PLL, blijft deze actief gedurende een inactieve modus.

Emulatie en foutopsporing

De microcontroller (LPC2141 / 42/44/46/48) bevat emulatie en foutopsporing via seriële poort-JTAG. Een trace-poort maakt het mogelijk om de uitvoering van het programma te traceren. Traceerfuncties en foutopsporingsconcepten worden gemultiplexed met poort1 en GPIO's.

Code beveiliging

Het codebeveiligingskenmerk van deze microcontrollers LPC2141 / 42/44/46/48 maakt een functie mogelijk om te controleren of deze kan worden beschermd tegen of gedebugd tegen inspectie.

Dit gaat dus allemaal over de ARM7-gebaseerde LPC2148-microcontroller-architectuur. Uit het bovenstaande artikel kunnen we tot slot concluderen dat ARM een architectuur is die wordt gebruikt in tal van processors en in microcontrollers. Hier is een vraag voor jou, wat is de architectuur van een ARM-processor?