Autonomous peripheral operation

Last updated

In computing, autonomous peripheral operation is a hardware feature found in some microcontroller architectures to off-load certain tasks into embedded autonomous peripherals in order to minimize latencies and improve throughput in hard real-time applications as well as to save energy in ultra-low-power designs.

Contents

Overview

Forms of autonomous peripherals in microcontrollers were first introduced in the 1990s. Allowing embedded peripherals to work independently of the CPU and even interact with each other in certain pre-configurable ways off-loads event-driven communication into the peripherals to help improve the real-time performance due to lower latency and allows for potentially higher data throughput due to the added parallelism. Since 2009, the scheme has been improved in newer implementations to continue functioning in sleep modes as well, thereby allowing the CPU (and other unaffected peripheral blocks) to remain dormant for longer periods of time in order to save energy. This is partially driven by the emerging IoT market. [1]

Conceptually, autonomous peripheral operation can be seen as a generalization of and mixture between direct memory access (DMA) and hardware interrupts. Peripherals that issue event signals are called event generators or producers whereas target peripherals are called event users or consumers. In some implementations, peripherals can be configured to pre-process the incoming data and perform various peripheral-specific functions like comparing, windowing, filtering or averaging in hardware without having to pass the data through the CPU for processing.

Implementations

Known implementations include:

See also

Related Research Articles

<span class="mw-page-title-main">Microcontroller</span> Small computer on a single integrated circuit

A microcontroller or microcontroller unit (MCU) is a small computer on a single integrated circuit. A microcontroller contains one or more CPUs along with memory and programmable input/output peripherals. Program memory in the form of ferroelectric RAM, NOR flash or OTP ROM is also often included on chip, as well as a small amount of RAM. Microcontrollers are designed for embedded applications, in contrast to the microprocessors used in personal computers or other general purpose applications consisting of various discrete chips.

<span class="mw-page-title-main">AVR microcontrollers</span> Family of microcontrollers

AVR is a family of microcontrollers developed since 1996 by Atmel, acquired by Microchip Technology in 2016. These are modified Harvard architecture 8-bit RISC single-chip microcontrollers. AVR was one of the first microcontroller families to use on-chip flash memory for program storage, as opposed to one-time programmable ROM, EPROM, or EEPROM used by other microcontrollers at the time.

Atmel Corporation was a creator and manufacturer of semiconductors before being subsumed by Microchip Technology in 2016. Atmel was founded in 1984. The company focused on embedded systems built around microcontrollers. Its products included microcontrollers radio-frequency (RF) devices including Wi-Fi, EEPROM, and flash memory devices, symmetric and asymmetric security chips, touch sensors and controllers, and application-specific products. Atmel supplies its devices as standard products, application-specific integrated circuits (ASICs), or application-specific standard product (ASSPs) depending on the requirements of its customers.

<span class="mw-page-title-main">PIC microcontrollers</span> Line of single-chip microprocessors from Microchip Technology

PIC is a family of microcontrollers made by Microchip Technology, derived from the PIC1650 originally developed by General Instrument's Microelectronics Division. The name PIC initially referred to Peripheral Interface Controller, and is currently expanded as Programmable Intelligent Computer. The first parts of the family were available in 1976; by 2013 the company had shipped more than twelve billion individual parts, used in a wide variety of embedded systems.

Atmel ARM-based processors are microcontrollers and microprocessors integrated circuits, by Microchip Technology, that are based on various 32-bit ARM processor cores, with in-house designed peripherals and tool support.

<span class="mw-page-title-main">AVR32</span>

AVR32 is a 32-bit RISC microcontroller architecture produced by Atmel. The microcontroller architecture was designed by a handful of people educated at the Norwegian University of Science and Technology, including lead designer Øyvind Strøm and CPU architect Erik Renno in Atmel's Norwegian design center.

ARM9 is a group of 32-bit RISC ARM processor cores licensed by ARM Holdings for microcontroller use. The ARM9 core family consists of ARM9TDMI, ARM940T, ARM9E-S, ARM966E-S, ARM920T, ARM922T, ARM946E-S, ARM9EJ-S, ARM926EJ-S, ARM968E-S, ARM996HS. Since ARM9 cores were released from 1998 to 2006, they are no longer recommended for new IC designs, instead ARM Cortex-A, ARM Cortex-M, ARM Cortex-R cores are preferred.

The C166 family is a 16-bit microcontroller architecture from Infineon in cooperation with STMicroelectronics. It was first released in 1990 and is a controller for measurement and control tasks. It uses the well-established RISC architecture, but features some microcontroller-specific extensions such as bit-addressable memory and an interrupt system optimized for low-latency. When this architecture was introduced the main focus was to replace 8051 controllers.

EFM32 Gecko MCUs are a family of mixed-signal 32-bit microcontroller integrated circuits from Energy Micro based on ARM Cortex-M CPUs, including the Cortex-M0+, Cortex-M3 and Cortex-M4.

<span class="mw-page-title-main">ARM Cortex-M</span> Group of 32-bit RISC processor cores

The ARM Cortex-M is a group of 32-bit RISC ARM processor cores licensed by ARM Limited. These cores are optimized for low-cost and energy-efficient integrated circuits, which have been embedded in tens of billions of consumer devices. Though they are most often the main component of microcontroller chips, sometimes they are embedded inside other types of chips too. The Cortex-M family consists of Cortex-M0, Cortex-M0+, Cortex-M1, Cortex-M3, Cortex-M4, Cortex-M7, Cortex-M23, Cortex-M33, Cortex-M35P, Cortex-M52, Cortex-M55, Cortex-M85. A floating-point unit (FPU) option is available for Cortex-M4 / M7 / M33 / M35P / M52 / M55 / M85 cores, and when included in the silicon these cores are sometimes known as "Cortex-MxF", where 'x' is the core variant.

DAVE (Infineon) Digital Application Virtual Engineer (DAVE) is a software development and code generation tool for microcontroller applications created in C/C++. DAVE is a standalone system with automatic code generation modules. It is suited for the development of software drivers for Infineon microcontrollers and aids the developer with automatically created C-level templates and user-desired functionalities.

<span class="mw-page-title-main">STM32</span> ARM Cortex-M based Microcontrollers by STMicroelectronics

STM32 is a family of 32-bit microcontroller integrated circuits by STMicroelectronics. The STM32 chips are grouped into related series that are based around the same 32-bit ARM processor core: Cortex-M0, Cortex-M0+, Cortex-M3, Cortex-M4, Cortex-M7, Cortex-M33. Internally, each microcontroller consists of ARM processor core(s), flash memory, static RAM, debugging interface, and various peripherals.

XMC is a family of microcontroller ICs by Infineon. The XMC microcontrollers use the 32-bit RISC ARM processor cores from ARM Holdings, such as Cortex-M4F and Cortex-M0. XMC stands for "cross-market microcontrollers", meaning that this family can cover due to compatibility and configuration options, a wide range in industrial applications. The family supports three essential trends in the industry: It increases the energy efficiency of the systems, supports a variety of communication standards and reduces software complexity in the development of the application's software environment with the parallel released eclipse-based software tool DAVE.

<span class="mw-page-title-main">NXP LPC</span> Family of 32-bit microcontroller integrated circuits

LPC is a family of 32-bit microcontroller integrated circuits by NXP Semiconductors. The LPC chips are grouped into related series that are based around the same 32-bit ARM processor core, such as the Cortex-M4F, Cortex-M3, Cortex-M0+, or Cortex-M0. Internally, each microcontroller consists of the processor core, static RAM memory, flash memory, debugging interface, and various peripherals. The earliest LPC series were based on the Intel 8-bit 80C51 core. As of February 2011, NXP had shipped over one billion ARM processor-based chips.

<span class="mw-page-title-main">ATtiny microcontroller comparison chart</span> Subfamily of 8-bit AVR microcontrollers

ATtiny is a subfamily of the popular 8-bit AVR microcontrollers, which typically has fewer features, fewer I/O pins, and less memory than other AVR series chips. The first members of this family were released in 1999 by Atmel.

<span class="mw-page-title-main">ATmega328</span> 8-bit microcontroller

The ATmega328 is a single-chip microcontroller created by Atmel in the megaAVR family. It has a modified Harvard architecture 8-bit RISC processor core.

<span class="mw-page-title-main">Arduino Uno</span> Microcontroller board

The Arduino Uno is an open-source microcontroller board based on the Microchip ATmega328P microcontroller (MCU) and developed by Arduino.cc and initially released in 2010. The microcontroller board is equipped with sets of digital and analog input/output (I/O) pins that may be interfaced to various expansion boards (shields) and other circuits. The board has 14 digital I/O pins, 6 analog I/O pins, and is programmable with the Arduino IDE, via a type B USB cable. It can be powered by a USB cable or a barrel connector that accepts voltages between 7 and 20 volts, such as a rectangular 9-volt battery. It has the same microcontroller as the Arduino Nano board, and the same headers as the Leonardo board. The hardware reference design is distributed under a Creative Commons Attribution Share-Alike 2.5 license and is available on the Arduino website. Layout and production files for some versions of the hardware are also available.

<span class="mw-page-title-main">Arduino Nano</span> Single-board microcontroller

The Arduino Nano is an open-source breadboard-friendly microcontroller board based on the Microchip ATmega328P microcontroller (MCU) and developed by Arduino.cc and initially released in 2008. It offers the same connectivity and specs of the Arduino Uno board in a smaller form factor.

References

  1. Pitcher, Graham (2014-01-28). "Things worthy of consideration - The Internet of Things is pushing microcontroller developers to move in unexpected directions". New Electronics. pp. 22–23. Archived from the original on 2018-05-10. Retrieved 2018-05-10.
  2. Wolf, Axel (March 1994). "Connecting the C166 architecture to CAN (I)" (PDF). Components. Applications Microcontrollers. Vol. XXIX, no. 4. Siemens Aktiengesellschaft. pp. 42–44. Archived (PDF) from the original on 2021-12-02. Retrieved 2021-12-02. (3 pages) (NB. Mentions the term "autonomous peripherals" in conjunction with the Siemens/Infineon SAB 80C166 in 1994 already. Part II of the article: )
  3. User's Manual - C167CR Derivatives - 16-Bit Single-Chip Microcontroller (PDF). 3.1 (2000-03 ed.). Munich, Germany: Infineon Technologies AG. March 2000 [2000-02, 1999-03, 1996-03, 1994-08, 1992-07]. Archived (PDF) from the original on 2020-10-27. Retrieved 2021-12-02.{{cite book}}: |work= ignored (help) (NB. Discusses an autonomously operating built-in CAN controller and a "Peripheral Event Controller" (PEC).)
  4. CAN Connecting C166 and C500 Microcontroller to CAN (PDF). 1.0. Infineon Technologies AG. February 2004. Application Note AP29000. Archived (PDF) from the original on 2020-10-22. Retrieved 2021-12-02.{{cite book}}: |work= ignored (help)
  5. Irber, Alfred (Summer 2018) [2016-02-25, 2009-09-25]. Embedded Systems SS2018 (PDF). 2.0 (in German). Munich, Germany: FH München - Hochschule für angewandte Wissenschaften, Fakultät für Elektrotechnik und Informationstechnik. pp. 1, 17, 28, 37–40. ES. Archived (PDF) from the original on 2021-12-02. Retrieved 2021-12-02.
  6. "XC800 Product Presentation - Capture Compare Unit CC6" (PDF). Infineon. May 2006. XC886 CC6 V1. Archived (PDF) from the original on 2018-05-10. Retrieved 2018-05-10. […] Drives need realtime performance – control loop must run faster than 2-4 PWM periods (e.g. 100-200us) – CPU performance is valuable and must be saved for key tasks – Question: How to offload the CPU? –Answer: Build intelligent and autonomous peripherals! […] CC6 in a Drive application: – generate PWM patterns for all kind of motors – operate always in a safe state – even in an error condition – interact with ADC for sensorless control of motors […] CC6 is used intensively – the more it works autonomous the more CPU load can be saved for control algorithms […]
  7. Faure, Philippe (2008-02-26). "Atmel's AVR XMEGA Redefines System Performance for 8/16-bit Microcontrollers" (Press announcement). Atmel. Archived from the original on 2018-05-01. Retrieved 2018-05-01.
  8. Bjørnerud, Rune André (2009). "Event System Implementations for Microcontroller Circuits". NTNU Open (thesis). Institutt for elektronikk og telekommunikasjon. hdl:11250/2370969. Archived from the original on 2018-04-30. Retrieved 2018-04-29.
  9. 1 2 Andersen, Michael P.; Culler, David Ethan (2014-08-25). "System Design Trade-Offs in a Next-Generation Embedded Wireless Platform" (PDF) (Technical Report). Electrical Engineering and Computer Sciences, University of California at Berkeley. No. UCB/EECS-2014-162. Archived (PDF) from the original on 2018-04-30. Retrieved 2018-04-30.
  10. Perlegos, Helen (2009-06-22). "Atmel Introduces AVR32 Microcontroller Which Lowers Industry's Best Power Consumption by 63%" (Press announcement). Atmel. Archived from the original on 2018-04-30. Retrieved 2018-04-30.
  11. Eieland, Andreas; Krangnes, Espen (2012-10-28). "Improve Cortex M4 MCU interrupt responses with an intelligent Peripheral Event System". Atmel Corp. Archived from the original on 2018-04-30. Retrieved 2018-04-30.
  12. 1 2 3 "Raising Performance Without Breaking the Power Budget". Digikey. 2013-07-10. Archived from the original on 2018-05-02. Retrieved 2018-05-01.
  13. Bush, Steve (2009-07-08). "Energy Micro reveals more details on power efficient ARM MCU". Electronics Weekly. Archived from the original on 2018-04-30. Retrieved 2018-04-30.
  14. Bush, Steve (2009-10-21). "Energy Micro details its ARM Cortex M3-based EFM32G range". Electronics Weekly. Archived from the original on 2018-04-30. Retrieved 2018-04-29.
  15. "ZILOG Releases New 16-Bit MCU System On A Chip For Motor Control Applications". BusinessWire. 2011-01-06. Archived from the original on 2018-05-02. Retrieved 2018-05-01.
  16. Coulson, Dave (2011-10-12). "The Need for Autonomous Peripheral Interoperation in Sensorless BLDC Applications". Convergence Promotions LLC. WP002003-0111. Archived from the original on 2018-05-01. Retrieved 2018-05-01.
  17. Elahi, Junaid; Rusten, Joar Olai; Olsen, Lasse; Sundell, Lars (2011-12-12). "Programmable peripheral interconnect". Nordic Semiconductor ASA. US patent US9087051B2. Retrieved 2018-04-29.
  18. Bauer, Peter; Schäfer, Peter; Zizala, Stephan (2012-01-23). "One microcontroller platform. Countless solutions. XMC4000" (PDF) (Presentation). International Press Conference, Am Campeon, Munich, Germany: Infineon. Archived (PDF) from the original on 2018-05-10. Retrieved 2018-05-10.
  19. Manners, David (2012-10-03). "Lowest power 32-bit MCUs from Si Labs". Electronics Weekly. Archived from the original on 2018-05-02. Retrieved 2018-05-01.
  20. Silicon Laboratories. "Low Power Technology: Microcontroller Peripherals Push the Boundaries of Ultra-Low-Power". Archived from the original on 2018-05-01. Retrieved 2018-05-01.
  21. Kragnes, Espen; Eieland, Andreas (2012). "Redefining the Power Benchmark" (PDF) (White Paper). Atmel. Archived (PDF) from the original on 2018-05-01. Retrieved 2018-05-01.
  22. "Freescale Energy-Efficient Solutions: Kinetis L Series MCUs" (PDF) (White paper). Freescale. 2012. Archived (PDF) from the original on 2018-05-03. Retrieved 2018-05-03.
  23. Riemenschneider, Frank [in German] (2013-06-18). "Mikrocontroller: Neue Cortex-M0+-Familie von Atmel" (in German). elektroniknet.de. Archived from the original on 2018-04-30. Retrieved 2018-04-29.
  24. "A closer look at Atmel's Peripheral Event System". Archived from the original on 2018-05-01. Retrieved 2018-05-01.
  25. Quinnell, Rich (2015-07-28). "8-bit Fights Back with Autonomous Peripherals". Santa Clara, USA: EETimes. Archived from the original on 2018-04-30. Retrieved 2018-04-30.
  26. Bush, Steve (2016-10-31). "Autonomous peripherals for PIC18F MCUs". Electronics Weekly. Archived from the original on 2018-04-30. Retrieved 2018-04-29.
  27. Stroh, Iris (2016-11-10). "Microchip Technology: 8-Bit-Offensive: AVR" (in German). elektroniknet.de. Archived from the original on 2018-04-30. Retrieved 2018-04-29.
  28. Di Jasio, Lucio (2015-05-05). "There is nothing left to be invented in embedded control, Part 1". Archived from the original on 2018-05-01. Retrieved 2018-05-01.
  29. Di Jasio, Lucio (2015-05-12). "There is nothing left to be invented in embedded control, Part 2". Archived from the original on 2018-05-01. Retrieved 2018-05-01.
  30. "Peripherals interconnections on ST M32F405/7xx, STM32F415/7xx, STM32F42xxx, STM32F43xxx, STM32F446xx and STM32F469/479xx" (PDF) (Application note). STMicroelectronics. AN4640. Archived (PDF) from the original on 2018-05-01. Retrieved 2018-05-01.
  31. "Introducing STM32U5, the flagship of ultra-low-power MCUs" (PDF). STMicroelectronics International NV. 2021. Archived (PDF) from the original on 2022-12-17. Retrieved 2024-01-29.