O design do Processador Cortex-M3 e seus periféricos

Esse é o segundo artigo de uma nova série escrita pelo engenheiro Ismael Lopes da Silva, exclusivamente para o Portal Embarcados. Nessa série focarei no Microcontrolador da STMicroelectronics, o MCU STM32F103C8T6, que é um ARM Cortex-M3. Os pré-requisitos para uma boa compreensão dos artigos é ter o domínio da Linguagem C Embedded e conceitos de eletrônica.

O design do Processador Cortex-M3 e seus periféricos

Processador Cortex-M3
Figura 1 – O core do Cortex-M3

O diagrama mostrado na figura 1, é o core do projeto de um processador Cortex-M3. Essa é a parte da propriedade intelectual da ARM, onde os fabricantes licenciados integram seus projetos. O processador Cortex-M3 é construído sobre um núcleo de processador de alto desempenho, com uma arquitetura Harvard de três estágios, tornando-o ideal para aplicativos embarcados exigentes. 

O processador oferece excepcional eficiência de energia por meio de um conjunto de instruções eficiente e design amplamente otimizado, fornecendo hardware de processamento de ponta, incluindo computação opcional de ponto flutuante de precisão única, uma faixa de ciclo único, recursos de multiplicação, multiplicação com capacidade de acumular, aritmética saturante e divisão de hardware dedicada.

Para facilitar o design de dispositivos sensíveis ao custo, o processador Cortex-M3 implementa componentes de sistema fortemente acoplados que reduzem a área do processador e melhoram significativamente recursos de manipulação de interrupção e depuração do sistema. O processador Cortex-M3 implementa uma versão do conjunto de instruções Thumb® com base na tecnologia Thumb-2, garantindo alta densidade de código e requisitos de memória de programa reduzidos.

Os recursos do core do Processador Cortex-M3

O núcleo do processador implementa a arquitetura ARMv7-M, com os seguintes recursos principais:

  • Arquitetura do processador Harvard, permitindo busca simultânea de instruções e dados;
  • Pipeline de três estágios;
  • Subconjunto Thumb-2 (ISA), composto por todas as instruções básicas Thumb-2, 16 bits e
  • 32 bits;
  • Multiplicação de ciclo único de 32 bits;
  • Divisão de hardware;
  • Estados de depuração;
  • Modos Handler e Thread;
  • Baixa latência as Rotinas de Serviços de Interrupção (ISR):
    • Economia (saving) e restauração do estado do processador, sem sobrecarga de instrução. O     vetor     de exceção é buscado da memória em paralelo com o estado de saving, habilitando     uma entrada mais rápida do ISR;
    • Suporte para interrupções atrasadas;
    • Interface firmemente acoplada para interromper o controlador, permitindo eficiência     processamento de interrupções atrasadas;
    • Encadeamento de interrupções, permitindo o processamento de interrupções consecutivas     sem a sobrecarga de economia e restauração do estado entre interrupções.
  • Instruções de interrupção-continuação LDM/STM e PUSH/POP;
  • Suporte ao estilo ARMv6 BE8/LE, que é a arquitetura anterior ao Cortex-M3.

Registradores

O processador Cortex-M3 contém:

  • 13 Registradores de propósito geral;
  • Um Registrador de Link (LR – Link Register);
  • Um Contador de Programa (PC – Program Counter);
  • Dois bancos de Registradores de Stack Pointer (SP – Stack Pointer);
  • Seis Registradores especiais: 
    • Status do Programa (xPSR – Program Status Register), PRIMASK, FAULTMASK, BASEPRI e o Registrador de CONTROLE (CONTROL Register).

Interface de Memória

O processador possui uma interface Harvard para permitir buscas simultâneas de instruções com carregamento/armazenamento de dados. Os acessos à memória são controlados por:

  • Uma LSU (Load Store Unit) separada que desacopla as operações de carregamento e armazenamento da Unidade Aritmética e Lógica (ALU);
  • E por uma unidade de pré-busca (PreFetch Unit – PFU), de três words.

NVIC - Nested Vectored Interrupt Controller (Controlador de Interrupção Vetorial Alinhado)

O NVIC está firmemente acoplado ao núcleo do processador. Isso facilita a exceção de baixa latência em processamento. Os principais recursos incluem:

  • Um número configurável de interrupções externas, de 1 a 240;
  • Um número configurável de bits de prioridade, de três a oito bits;
  • Suporte a interrupção de nível e pulso;
  • Repriorização dinâmica de interrupções;
  • Agrupamento de prioridade;
  • Suporte para encadeamento de interrupções;
  • Estado do processador salvo automaticamente na entrada de interrupção e restaurado no retorno da interrupção, sem sobrecarga de instrução.

Bus Matrix (Matriz de Barramento)

O Bus Matrix conecta o processador e a interface de depuração aos barramentos externos. A matriz do barramento faz interface com os seguintes barramentos externos:

  • Barramento ICode. É um barramento para instruções e busca de vetores no espaço de código. É um barramento AHB-Lite de 32 bits;
  • Barramento DCode. É um barramento para carregamento/armazenamento de dados e acesso à depuração no espaço de código. É um barramento AHB-Lite de 32 bits;
  • Barramento do Sistema (System Bus). É um barramento para busca de instruções e vetores, carregamento/armazenamento de dados e acesso à depuração no espaço do sistema. É um barramento AHB-Lite de 32 bits;
  • PPB (Private Peripheral Bus). É um barramento para carregamento/armazenamento de dados e acesso à depuração no espaço PPB. É um barramento APB (v2.0) de 32 bits.

O Bus Matrix também controla o seguinte:

  • Acessos não alinhados. A matriz do barramento converte acessos desalinhados do processador em acessos alinhados;
  • Bit-banding. A matriz de barramento converte acessos de bit-band alias em acessos para dentro da região de bit-band. Ele executa: extração de campo de bits para cargas de bit-band, e leitura-modificação-escrita atômica para armazenamento de bit-band.
  • Buffer de escrita. A matriz de barramento contém um buffer de escrita de uma entrada para desacoplar barramentos do núcleo do processador.

FPB (Flash Patch and Breakpoint)

A unidade FPB implementa pontos de interrupção de hardware e prove os caminhos de acessos do espaço de código para o espaço do sistema. O FPB possui oito comparadores, como segue:

  • Você pode configurar seis comparadores de instruções individualmente para remapear a instrução busca do espaço de código para o espaço do sistema, ou executa um ponto de interrupção de hardware;
  • Dois comparadores literais que podem remapear acessos literais do espaço de código para o espaço do sistema.

DWT (Data WatchPoint and Trace)

A unidade DWT incorpora a seguinte funcionalidade de depuração:

  • Quatro comparadores que você pode configurar como watchpoint de hardware, um gatilho ETM (Embedded Trace Macrocell), gatilho de evento do PC (Program Counter) ou gatilho de evento de endereço de dados;
  • Vários contadores ou um gatilho de evento de correspondência de dados para criação de perfil de desempenho;
  • Configurável para emitir amostras de PC (Program Counter) em intervalos definidos e emitir evento de interrupção de informação.

ITM (Instrumentation Trace Macrocell)

O ITM é uma fonte de rastreamento orientada a aplicativos que suporta rastreamento de eventos de aplicativos e depuração no estilo printf. O ITM fornece as seguintes fontes de informações de rastreamento:

  • Rastreamento de software. O software pode escrever diretamente nos Registradores de estímulo do ITM. Isso causa pacotes a serem emitidos;
  • Rastreamento de hardware. Esses pacotes são gerados pelo DWT e emitidos pelo ITM;
  • Carimbo de data e hora (Timestamps). Os carimbos de data e hora são emitidos em relação aos pacotes.

MPU (Memory Protection Unit)

Uma MPU opcional está disponível para o processador para fornecer proteção de memória. A MPU verifica permissões de acesso e atributos de memória. Ela contém oito regiões e uma região de plano de fundo opcional que implementa os atributos padrão do mapa de memória.

ETM (Embedded Trace Macrocell)

O ETM é uma macrocélula de rastreamento de baixo custo que suporta apenas o rastreamento de instruções.

TPIU (Trace Port Interface Unit)

A TPIU atua como uma ponte entre os dados de rastreamento Cortex-M3 do ITM, um ETM se presente e um analisador de porta de rastreamento sem chip. Você pode configurar a TPIU para suportar rastreamento de pinos em série para depuração de baixo custo ou rastreamento de vários pinos para rastreamento de largura de banda mais alta. A TPIU é compatível com CoreSight.

SW-DP/SWJ-DP (Serial-Wire Debug Port/Serial-Wire JTAG Debug Port)

Você pode configurar o processador para ter interfaces de porta de depuração SW-DP ou SWJ-DP. A porta de depuração fornece acesso de depuração a todos os registradores e memória no sistema, incluindo os registradores do processador.

O Datasheet do MCU STM32F103x8/ STM32F103xB

Processador Cortex-M3
    Figura 2 – Diagrama de bloco do MCU STM32F103xx

Como focaremos no MCU STM32F103C8T6, então, a figura 2 mostra o diagrama de blocos completo desse MCU. A parte em destaque, no canto superior esquerdo, é o projeto de propriedade intelectual da ARM, e os demais periféricos é a integração do projeto completo da STMicroelectronics no Cortex-M3.

Esse datasheet do MCU STM32F103x8 e STM32F103xB, referencia alguns MCUs. Como nesse artigo veremos o STM32F103C8T6, então, os periféricos específicos e algumas características são:

Figura 3 – Periféricos do STM32F103C8T6

Detalhamento completo do MCU STM32F103C8T6

    Figura 4 – Informação completa do MCU STM32F103C8T6

Saiba Mais

Conheça a placa Blue Pill (STM32F103C8T6)

Convertendo o STM32 Blue Pill em uma Black Magic Probe

Outros artigos da série

<< Introdução ao microcontrolador ARM Cortex M3Usando o STM32CubeIDE criaremos nosso projeto Hello World >>
Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Notícias » O design do Processador Cortex-M3 e seus periféricos
Comentários:
Notificações
Notificar
guest
0 Comentários
Inline Feedbacks
View all comments
Talvez você goste:

Nenhum resultado encontrado.

Séries



Outros da Série

Menu

WEBINAR
 
Sensores e soluções para aplicações em indústria inteligente

Data: 13/08 às 15:00h - Apoio: STMicroelectronics
 
INSCREVA-SE AGORA »



 
close-link