Introdução ao microcontrolador ARM Cortex M3

Esse é o primeiro 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.

Os recursos que utilizaremos são Windows 10, Ferramenta de desenvolvimento da ST que é STM32CubeIDE, um adaptador de programação que é o ST-Link V2 e um MCU STM32F103C8T6. Usaremos a placa Blue Pill, apenas por ser um projeto pronto e funcional para interagir com o MCU STM32F103C8T6.

ARM Cortex M3
Figura 1 – Recursos que utilizaremos

Inicialmente as referências bibliográficas que utilizaremos são:

As bibliografias de referências foram obtidas nos seguintes sites:

Uma Breve História e o Papel da ARM

A ARM foi formada em 1990 como Advanced RISC Machines Ltd., uma joint venture da Apple Computer, Acorn Computer Group e VLSI Technology. Em 1991, a ARM introduziu a família de processadores ARM6 e o VLSI se tornou o licenciado inicial. Posteriormente, empresas adicionais, incluindo Texas Instruments, NEC, Sharp e ST Microelectronics, licenciaram os designs dos processadores ARM, estendendo os aplicativos dos processadores ARM para telefones celulares, discos rígidos de computadores, assistentes digitais pessoais (PDAs), sistemas de entretenimento doméstico e muitos outros produtos de consumo.

Atualmente, os parceiros ARM vendem bilhões de processadores ARM a cada ano. Ao contrário de muitas empresas de semicondutores, a ARM não fabrica processadores ou vende os chips diretamente. Em vez disso, a ARM licencia os designs dos processadores para parceiros de negócios, incluindo a maioria das principais empresas de semicondutores do mundo. Com base nos projetos de processadores ARM de baixo custo e economia de energia, esses parceiros criam seus processadores, microcontroladores e soluções de sistema no chip. Esse modelo de negócios é chamado de licenciamento de propriedade intelectual (IP). Além dos designs de processador, o ARM também licencia IPs em nível de sistema e vários IPs de software. Para dar suporte a esses produtos, a ARM desenvolveu uma base sólida de ferramentas de desenvolvimento, hardware e produtos de software para permitir que os parceiros desenvolvam seus próprios produtos.

No site embarcados.com.br, o autor Fernando Deluno Garcia, postou um artigo interessante sobre a história da ARM, então, confira esse artigo para entender um pouco da história da ARM (https://www.embarcados.com.br/breve-historico-da-arm/).

A Família de Processadores Cortex-M

Os processadores Cortex-M3 são produtos da família de processadores ARM Cortex-M. Toda a família de processadores Cortex-M é mostrada na figura a seguir:

ARM Cortex M3
Figura 2 – Família de processadores Cortex-M

Os processadores Cortex-M3 e Cortex-M4 são baseados na arquitetura ARMv7-M. Ambos são processadores de alto desempenho projetados para microcontroladores. Os processadores Cortex-M0, Cortex-M0+ e Cortex-M1 são baseados no ARMv6-M, que possui um conjunto de instruções menor. Tanto o Cortex-M0 quanto o Cortex-M0+ são de tamanho muito pequeno em termos de contagem de portas numa configuração mínima, e são ideais para produtos de microcontroladores de baixo custo. 

O processador Cortex-M1 foi projetado especificamente para aplicativos FPGA. Possui recursos de memória firmemente acoplada (TCM - Tightly Coupled Memory) que podem ser implementados usando memórias dentro do FPGA, e o design permite operações de alta frequência de clock em FPGA avançado.

Para tarefas gerais de processamento de dados e controle de E/S, os processadores Cortex-M0 e Cortex-M0+ têm excelente eficiência energética devido ao projeto de baixa contagem de portas. Mas para aplicativos com requisitos complexos de processamento de dados, eles podem receber mais instruções e ciclos de clock. Nesse caso, o processador Cortex-M3 ou Cortex-M4 seria mais adequado, porque as instruções adicionais disponíveis nesses processadores permitem que o processamento seja realizado com menos instruções em comparação com a arquitetura ARMv6-M. Como resultado, precisamos de processadores diferentes para aplicativos diferentes.

Vale a pena notar que os processadores Cortex-M não são os únicos processadores ARM a serem usados em produtos genéricos de microcontroladores. O venerável processador ARM7 tem sido muito bem-sucedido nesse mercado, com empresas como NXP (antiga Philips Semiconductor), Texas Instruments, Atmel, OKI e muitos outros fornecedores fornecendo microcontroladores baseados em ARM usando processadores ARM clássicos como ARM7TDMI. Também existem amplas faixas de microcontroladores projetados com processadores ARM9. O processador ARM7 é o processador embarcado de 32 bits mais usado na história, com mais de 2 bilhões de processadores produzidos a cada ano em uma enorme variedade de produtos eletrônicos, de telefones celulares a sistemas automotivos.

Procesador ARM Cortex M3

O Cortex-M3 é um processador projetado pela ARM. O processador Cortex-M3 foi o primeiro da geração de processadores Cortex, lançado pela ARM em 2005, e produtos lançados em 2006. Os processadores Cortex-M3 usam uma arquitetura de 32 bits. Registradores internos com banco de registradores, o caminho dos dados e as interfaces de barramento têm 32 bits de largura. A arquitetura do conjunto de instruções (ISA) nos processadores Cortex-M é chamada de Thumb ISA e é baseada na tecnologia Thumb-2, que suporta uma mistura de instruções de 16 e 32 bits.

Os processadores Cortex-M3 têm:

  • Projeto de pipeline de três estágios;
  • Arquitetura de barramento Harvard com espaço de memória unificado, onde instruções e dados usam o mesmo espaço de endereço;
  • Endereçamento de 32 bits, suportando 4 GB de espaço em memória;
  • Interfaces de barramento no chip baseadas na tecnologia ARM AMBA (Advanced Microcontroller Bus Architecture), que permite operações de barramento em pipeline para maior produtividade;
  • Um controlador de interrupção chamado NVIC (Nested Vectored Interrupt Controller) que suporta até 240 solicitações de interrupção e de 8 a 256 níveis de prioridade de interrupção, dependendo da implementação real do dispositivo;
  • Suporte para vários recursos para implementação para Sistema Operacional, como o temporizador do sistema (system tick timer) e ponteiro de pilha sombreado;
  • Suporte ao modo de suspensão e vários recursos para baixo consumo de energia;
  • Suporte para uma MPU (unidade de proteção de memória) opcional para fornecer recursos de proteção de memória, como memória programável ou controle de permissão de acesso;
  • Suporte para acessos de dados de bits em duas regiões específicas da memória usando um recurso chamado Bit Band;
  • A opção de ser usado em projetos de processador único ou multiprocessador.

O ISA usado nos processadores Cortex-M3 fornece uma ampla variedade de instruções:

  • Processamento geral de dados, incluindo instruções de divisão de hardware;
  • Instruções de acesso à memória que suportam dados de 8 bits, 16 bits, 32 bits e 64 bits, bem como instruções para transferir vários dados de 32 bits;
  • Instruções para processamento de campo de bits;
  • Instruções de multiplicação acumulada (MAC) e saturação;
  • Instruções para ramificações, ramificações condicionais e chamadas de função;
  • Instruções para controle do sistema, suporte a Sistema Operacional, etc.

Os processadores Cortex-M3 são amplamente utilizados em produtos modernos de microcontroladores, bem como em outros projetos especializados, como System on Chips (SoC) e Application Specific Standard Products (ASSP).

Em geral, os processadores ARM Cortex-M são considerados processadores RISC (Reduced Instruction Set Computing). Alguns podem argumentar que certas características dos processadores Cortex-M3, como o rico conjunto de instruções e tamanhos mistos de instruções, estão mais próximos do CISC (Complex Instruction Set Computing). Mas à medida que as tecnologias de processador avançam, os conjuntos de instruções da maioria dos processadores RISC também estão se tornando mais complexos, tanto que essa fronteira tradicional entre a definição de processador RISC e CISC não pode mais ser aplicada.

A Diferença Entre Processador ARM e Microcontrolador

A ARM não produz microcontroladores. A ARM projeta processadores e vários componentes e licencia esses designs para vários tipos de empresas de design de silício, incluindo fornecedores de microcontroladores. Normalmente isso é chamado de “Propriedade intelectual” e o modelo de negócios é chamado de licenciamento de Propriedade Intelectual (licenciamento IP).

Em um projeto típico de microcontrolador, o processador ocupa apenas uma pequena parte da área de silício. As outras áreas são ocupadas por memórias, geração de clock, barramento do sistema e periféricos. Embora muitos fornecedores de microcontroladores usem os processadores ARM Cortex-M como escolha da CPU, sistema de memória, mapa de memória, periféricos e características de operação, por exemplo, velocidade e tensão do clock podem ser concluídas de maneira diferente de um produto para outro. Isso permite que os fabricantes de microcontroladores adicionem recursos adicionais em seus produtos e diferencie-os de outros no mercado.

Nesse artigo focaremos nos processadores Cortex-M3, então, para detalhes do projeto completo do sistema de microcontrolador, como detalhes periféricos, memória mapa e designações de pinos de E/S, você ainda precisa ler os manuais de referência fornecidos pelo fornecedor do microcontrolador, que em nosso caso será ST Microelectronics.

A ARM e os Fabricantes de Microcontroladores

Atualmente, existem mais de quinze fornecedores de silício usando processadores ARM Cortex-M3 ou Cortex-M4 em produtos de microcontroladores. Também existem outras empresas que usam Cortex-M3 ou Cortex-M4 para projetos de SoC, outras empresas que usam apenas processadores Cortex-M0 ou Cortex-M0+.

Depois que uma empresa licencia o design do processador Cortex-M, o ARM fornece o código-fonte do design em um idioma chamado Verilog-HDL (Hardware Description Language). Os engenheiros de design dessas empresas adicionam seus próprios blocos de design, como periféricos e memórias, e usam várias ferramentas de EDA para converter todo o design do Verilog-HDL e várias outras formas para dentro de um layout de chip em nível de transistor.

O ARM também fornece outros produtos de Propriedade Intelectual (IP), e alguns podem ser usados por essas empresas em seus produtos de microcontrolador, como:

  • Design das bibliotecas de células, como portas lógicas e memórias (ARM Physical IP);
  • Periféricos e componentes de infraestrutura AMBA (CMSDK - Cortex-M System Design Kit, produtos ARM CoreLink IP);
  • Componentes de depuração adicionais para vincular sistemas de depuração no design de vários processadores (produtos ARM CoreSight IP).

Por exemplo, a ARM fornece um produto chamado CMSDK (Cortex-M System Design Kit), um kit de design para processador Cortex-M com componentes de infraestrutura AMBA, periféricos de linha de base, sistemas de exemplo e software de exemplo. Isso permite que os projetistas de chips comecem a usar os processadores Cortex-M rapidamente e reduz o esforço total de desenvolvimento de chips com IP reutilizável.

Mas, é claro que ainda há muito trabalho para os projetistas de chips de microcontroladores. Todas essas empresas de microcontroladores estão trabalhando duro para desenvolver melhores periféricos, diminuir a memória de energia e adicionar suas próprias receitas secretas para tentar tornar seus produtos melhores do que outros. Além disso, eles também precisam desenvolver exemplos de software e materiais de suporte para facilitar o uso dos chips pelos projetistas de produtos embarcados.

No lado do software, a ARM possui várias plataformas de desenvolvimento de software, como o Kit de Desenvolvimento de Microcontrolador Keil (MDK-ARM) e o ARM Development Studio 5 (DS-5). Esses conjuntos de desenvolvimento de software contêm compiladores, depuradores e simuladores de conjuntos de instruções. Os designers também podem usar outras ferramentas de desenvolvimento de software de terceiros, se preferirem.

Como todos os microcontroladores Cortex-M possuem os mesmos núcleos de processador, os designers de produtos embarcados podem usar o mesmo conjunto de desenvolvimento para uma enorme variedade de microcontroladores de diferentes fornecedores.

Aplicação dos Processadores ARM Cortex M3

Com sua ampla variedade de recursos poderosos, os processadores ARM Cortex-M3 são ideais para uma ampla variedade de aplicações:

Na área de Microcontroladores

A família de processadores Cortex-M3 é ideal para produtos de microcontroladores. Isso inclui microcontroladores de baixo custo com tamanhos pequenos de memória e microcontroladores de alto desempenho com altas velocidades de operação. Esses microcontroladores podem ser usados em produtos de consumo, de brinquedos a eletrodomésticos, ou mesmo produtos especializados para sistemas de tecnologia da informação (TI), industriais ou mesmo médicos.

Na área automotiva

Outra aplicação para os processadores Cortex-M3 está na indústria automotiva. Como esses processadores oferecem excelente desempenho, eficiência energética muito alta e baixa latência de interrupção, são ideais para muitos sistemas de controle em tempo real. Além disso, a flexibilidade do design do processador, por exemplo, ele suporta até 240 fontes de interrupção, MPU opcional, o torna ideal para ASSPs (Produtos Padrão Específicos de Aplicação) altamente integrados para a indústria automotiva. O recurso MPU também fornece proteção robusta de memória, necessária em alguns desses aplicativos.

Na área de comunicação de dados

A baixa potência e alta eficiência do processador, combinado as instruções Thumb-2 para manipulação de campo de bits, tornam os processadores Cortex-M3 ideais para muitos aplicativos de comunicação, como Bluetooth e ZigBee.

Na área de controle industrial

Em aplicações de controle industrial, simplicidade, resposta rápida e confiabilidade são fatores-chave. Novamente, os recursos de suporte a interrupção nos processadores Cortex-M3, incluindo comportamento determinístico, manipulação automática de interrupções aninhadas, MPU e manipulação aprimorada de falhas, os tornam candidatos fortes nessa área.

Na área de produtos de consumo

Em muitos produtos de consumo, é usado um microprocessador de alto desempenho, ou vários. Os processadores Cortex-M3, por serem pequenos, são altamente eficientes e com baixo consumo de energia e, ao mesmo tempo, fornecem o desempenho necessário para lidar com GUIs complexas em painéis LCD e vários protocolos de comunicação.

System on Chip (SoC)

Em alguns projetos de processadores de aplicativos de última geração, os processadores Cortex-M3 são usados em vários subsistemas, como mecanismos de processamento de áudio, sistemas de gerenciamento de energia, substituição FSM (Finite State Machine), tarefa de controle de E/S, etc.

Na área de projetos de sinais mistos

No mundo do design de circuitos integrados, os projetos digitais e analógicos estão convergindo. Embora os microcontroladores contenham cada vez mais componentes analógicos, por exemplo, ADC, DAC, alguns ICs analógicos, como sensores, PMIC (Power Management IC) e MEMS (Microelectromechanical Systems), agora também incluem processadores para fornecer inteligência adicional. A capacidade de baixa potência e as pequenas características de contagem de portas dos processadores Cortex-M permitem que eles sejam integrados no design de circuitos integrados de sinal misto.

Outros artigos da série

O design do Processador Cortex-M3 e seus periféricos >>
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.

Hardware » Introdução ao microcontrolador ARM Cortex M3
Comentários:
Notificações
Notificar
guest
4 Comentários
recentes
antigos mais votados
Inline Feedbacks
View all comments
Fabiano Fruett
Fabiano Fruett
27/07/2020 13:26

Parabéns, recente revisão.

Carlos Antônio Paz
Carlos Antônio Paz
27/07/2020 11:22

Meus parabens pelo excelente trabalho,me ajudou bastante a entende-los.

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