AMBA (Advanced Microcontroller Bus Architecture) is an on-chip bus introduced by ARM. The AMBA specification mainly includes: AHB (Advanced High-performance Bus) system bus and APB (Advanced Peripheral Bus) peripheral bus. Among them, the interconnection of AHB adopts the traditional shared bus with master module and slave module, and the interface and interconnection functions are separated, which is of great significance for the interconnection between modules on the chip. AMBA is not only a bus, but also an interconnection system with interface modules.
AMBA-based System-on-Chip
A typical system block diagram based on AMBA bus is shown in Figure 3.
Most modules (including processors) on the bus are functional modules with a single attribute: master or slave. The master module is the module that issues read and write operations to the slave module, such as the CPU, DSP, etc. The slave module is the module that receives commands and responds, such as the on-chip RAM, AHB/APB bridge, etc. In addition, some modules have both attributes. For example, direct memory access (DMA) is a slave module when it is programmed, but it must be a master module when the system reads and transmits data. If there are multiple master modules on the bus, an arbitrator is needed to decide how to control the access of various master modules to the bus. Although the arbitration specification is part of the AMBA bus specification, the specific algorithm used is determined by the RTL design engineer. The two most commonly used algorithms are the fixed priority algorithm and the round-robin algorithm. There can be up to 16 master modules and any number of slave modules on the AHB bus. If the number of master modules is greater than 16, an additional layer of structure is required (see the Multi-layer AHB specification launched by ARM for details). The APB bridge is both the only master module on the APB bus and a slave module on the AHB system bus. Its main function is to latch the address, data and control signals from the AHB system bus, and provide secondary decoding to generate selection signals for APB peripheral devices, thereby realizing the conversion from AHB protocol to APB protocol.
About AHB
AHB is mainly used for the connection between high-performance modules (such as CPU, DMA and DSP, etc.). As the on-chip system bus of SoC, it includes the following features: single clock edge operation; non-three-state implementation; support burst transmission; support segmented transmission; support multiple master controllers; configurable 32-bit to 128-bit bus width; support byte, half-byte and word transmission. The AHB system consists of three parts: master module, slave module and infrastructure. The transmission on the entire AHB bus is issued by the master module and responded by the slave module. The infrastructure consists of an arbiter, a multiplexer from the master module to the slave module, a multiplexer from the slave module to the master module, a decoder, a dummy slave module, and a dummy master module. Its interconnection structure is shown in Figure 1.
APB Introduction
APB is mainly used for the connection between low-bandwidth peripherals, such as UART, 1284, etc. Its bus architecture does not support multiple master modules like AHB. The only master module in APB is the APB bridge. Its features include: two clock cycle transmission; no waiting cycle and response signal; simple control logic, only four control signals. The transmission on APB can be explained by the state diagram shown in Figure 2.
1) The system is initialized to IDLE state. There is no transmission operation and no slave module is selected.
2) When there is a transmission to be carried out, PSELx = 1, PENABLE = 0, the system enters the SETUP state, and will only stay in the SETUP state for one cycle. When the next rising edge of PCLK arrives, the system enters the ENABLE state.
3) When the system enters the ENABLE state, the PADDR, PSEL, and PWRITE in the SETUP state are maintained unchanged, and PENABLE is set to 1. The transmission will only be maintained in the ENABLE state for one cycle, and it will be completed after passing through the SETUP and ENABLE states. If there is no transmission to be performed afterwards, it will enter the IDLE state to wait; if there is continuous transmission, it will enter the SETUP state.
In STM32, the devices connected to APB1 (low-speed peripherals) are: power interface, backup interface, CAN, USB, I2C1, I2C2, UART2, UART3, SPI2, window watchdog, Timer2, Timer3, Timer4. The devices connected to APB2 (high-speed peripherals) are: GPIO_A-E, USART1, ADC1, ADC2, ADC3, TIM1, TIM8, SPI1, ALL.
Previous article:STM32F429 serial communication_initialization
Next article:STM32 Learning - AD single channel and multi-channel conversion (DMA)
Recommended ReadingLatest update time:2024-11-16 13:54
Professor at Beihang University, dedicated to promoting microcontrollers and embedded systems for over 20 years.
- Innolux's intelligent steer-by-wire solution makes cars smarter and safer
- 8051 MCU - Parity Check
- How to efficiently balance the sensitivity of tactile sensing interfaces
- What should I do if the servo motor shakes? What causes the servo motor to shake quickly?
- 【Brushless Motor】Analysis of three-phase BLDC motor and sharing of two popular development boards
- Midea Industrial Technology's subsidiaries Clou Electronics and Hekang New Energy jointly appeared at the Munich Battery Energy Storage Exhibition and Solar Energy Exhibition
- Guoxin Sichen | Application of ferroelectric memory PB85RS2MC in power battery management, with a capacity of 2M
- Analysis of common faults of frequency converter
- In a head-on competition with Qualcomm, what kind of cockpit products has Intel come up with?
- Dalian Rongke's all-vanadium liquid flow battery energy storage equipment industrialization project has entered the sprint stage before production
- Allegro MicroSystems Introduces Advanced Magnetic and Inductive Position Sensing Solutions at Electronica 2024
- Car key in the left hand, liveness detection radar in the right hand, UWB is imperative for cars!
- After a decade of rapid development, domestic CIS has entered the market
- Aegis Dagger Battery + Thor EM-i Super Hybrid, Geely New Energy has thrown out two "king bombs"
- A brief discussion on functional safety - fault, error, and failure
- In the smart car 2.0 cycle, these core industry chains are facing major opportunities!
- The United States and Japan are developing new batteries. CATL faces challenges? How should China's new energy battery industry respond?
- Murata launches high-precision 6-axis inertial sensor for automobiles
- Ford patents pre-charge alarm to help save costs and respond to emergencies
- New real-time microcontroller system from Texas Instruments enables smarter processing in automotive and industrial applications
- 8 DDR3 surface-to-bottom mounting solution
- Where are the options for PCB material/PCB copper thickness/PCB spray color/milling edge in the Gerber file of Altium Designer?
- Basic knowledge of SCI serial port programming of TMS320F28035
- 【BLE 5.3 wireless MCU CH582】14. BLE serial port transparent transmission test
- Use 1117 solar panels
- Implementation of asynchronous serial port.zip
- 【Badminton Training Monitor Project】-- Additional function test of badminton training monitoring module
- In the 28035EPWM module up-down counting mode, how can I generate ADC trigger pulses at CMPA when both increasing and decreasing?
- DSP startup loading principle
- Based on the problem that the BlueNRG-lp example project given on the ST official website cannot be compiled