Quais são as propriedades de um microcontrolador de N bits?

8

Já ouvi falar de microcontroladores de 8 bits e microcontroladores de 16 bits. Eu até ouvi falar de microcontroladores de 7 bits e microcontroladores de 1 bit .

Quais são os atributos gerais desses grupos? Como escolho qual tipo usar para um projeto?

Jacob Harding
fonte
4
Eu nunca ouvi falar de um microcontrolador de 7 bits. Sinto muito se você ficou confuso com um comentário que publiquei em electronics.stackexchange.com/q/32097/4512 . Isso era para ser uma piada.
Olin Lathrop
4
Ótimo! Olin, eu queria avisar que essa pergunta era de se esperar! :
stevenvh

Respostas:

11

Existem também microcontroladores de 4 e 32 bits. Microprocessadores de 64 bits são usados ​​em PCs.

O número refere-se à largura do registro . Os registros estão no coração do microcontrolador. Muitas operações usam registradores, para mover dados ou executar operações aritmicas ou lógicas. Essas operações ocorrem na ULA , na Unidade Aritmética e Lógica.

insira a descrição da imagem aqui

Algumas operações usam apenas 1 argumento, como limpar um registro ou incrementá-lo. Muitos, no entanto, aceitam 2 argumentos, e isso leva à representação típica de calças de cabeça para baixo de uma ULA. e são os argumentos e a ALU produzirá um resultado base na operação atual. Uma operação de dois argumentos pode ser "adicione 15 ao registro R5 e armazene o resultado no endereço de memória 0x12AA". Isso requer que haja um roteamento entre a constante "15" (que vem da memória do programa), o arquivo de registro e a memória de dados. Esse roteamento ocorre através de um banco de dadosABC. Há um banco de dados interno conectando os registradores, a RAM interna e a ALU, e para microprocessadores e alguns microcontroladores, um banco de dados externo que se conecta à RAM externa. Com algumas exceções, o banco de dados tem a mesma largura que os registradores e a ULA, e juntos eles determinam que tipo de microcontrolador é. (Uma exceção foi o 8088, que possui internamente um barramento de 16 bits, mas externamente apenas 8 bits.)

Os controladores de 4 bits possuem registradores de 4 bits, que podem representar apenas 16 valores diferentes, de 0 a 0xF hexadecimal. Isso não é muito, mas é suficiente trabalhar com os dígitos de um relógio digital, e é um domínio em que eles são usados.

Os controladores de 8 bits são o cavalo de batalha da indústria há algumas décadas. Em 8 bits, você pode armazenar um número entre 0 e 255. Esses números também podem representar letras e outros caracteres. Então você pode trabalhar com texto. Às vezes, 2 registros podem ser combinados em um registro de 16 bits, o que permite números de até 65535. Em muitos controladores, porém, é necessário processar grandes números em software. Nesse caso, até números de 32 bits são possíveis.
A maioria dos controladores de 8 bits possui um contador de programa de 16 bits. Isso significa que ele pode endereçar no máximo 64kBytes de memória. Para muitos aplicativos incorporados basta, alguns precisam apenas de alguns kBytes.
Um monitor de estacionamento, por exemplo, onde é necessário manter a contagem do número de carros e exibi-lo em um LCD, é algo que você normalmente faria com um controlador de 8 bits. :-)

16 bits é o próximo passo. Por alguma razão, eles nunca tiveram o sucesso de 8 ou 32 bits. Lembro que a série Motorola HC12 era proibitivamente cara e não podia competir com controladores de 32 bits.

32 bits é a palavra do dia. Com um contador de programa de 32 bits, você pode endereçar 4GByte. O ARM é um popular controlador de 32 bits. Existem dezenas de fabricantes que oferecem ARMs de todos os tamanhos. São controladores poderosos, com muitas funções a bordo, como USB ou drivers completos para monitores LCD.
Os ARMs geralmente exigem pacotes grandes, para acomodar uma matriz grande com muito Flash, ou porque as diferentes funções exigem muitos pinos de E / S. Mas este pacote ilustra as possibilidades que o ARM oferece.

insira a descrição da imagem aqui

Este é um braço de 16 pinos em um pacote de apenas 2,17 mm x 2,32 mm.

stevenvh
fonte
E microcontroladores de 64 bits também. uk.computers.toshiba-europe.com/innovation/jsp/…
Telaclavo
1
Houve todos os tipos de larguras no passado. O PDP-8 era de 12 bits e um CDC 6600 era de 60 bits com bytes de 6 bits, se bem me lembro. Atualmente, vemos praticamente 4 (2 ^ N) larguras de bits.
Olin Lathrop
Qual é o número de peça dessa CPU ARM?
Rocketmagnet
@Rocketmagnet parece ser talvez um NXP LPC1102UK: nxp.com/products/microcontrollers/cortex_m0/miniature_package/…
Craig
5

A resposta simples: um microcontrolador N-Bit possui um caminho de dados e ALU que pode processar dados em blocos N-Bit.

Resposta longa: a resposta curta está correta 95% do tempo. A resposta longa fica confusa. Algumas CPU / MPUs têm partes que são principalmente N-Bits, mas algumas são M-Bits. Por exemplo, pode ser uma CPU de 8 bits com um multiplicador inteiro que funciona em dados de 16 bits. A série de CPUs Intel (8088 até o atual i7) costumava combinar vários registros de 8 e 16 bits para obter 16 ou 32 bits. Em seguida, o pessoal de marketing obtém esses números e decide usá-los em seus itens de marketing e você acaba com MPUs de 8 bits chamados 16 bits, etc.

Fica ainda mais estranho do que isso. Algumas pessoas de marketing promovem o tamanho das instruções da MPU. Os PICs do Microchip são um bom exemplo disso. Se você não for cuidadoso, poderá confundir isso com o número de bits no caminho dos dados.


fonte
Os processadores de linha de base e de médio alcance do Microchip possuem uma palavra de instrução de 12 ou 14 bits, respectivamente. Ambos são classificados como processadores de 8 bits, no entanto, porque o barramento de dados é de 8 bits. Uma empresa chinesa (ELAN Microelectronics) fez uma variação dos PICs de 14 bits com uma palavra de instrução de 13 bits chamada EM78. Para tudo isso, os dados são endereçados em bytes, enquanto a memória do programa é endereçada em palavras - mas às vezes a memória do programa é anunciada como tendo muitos bytes, o que fornece um valor inflado do número real de instruções que podem ser programadas!
Tcrosley 17/05
4

O que significa "N-Bit"?

Desculpe se este primeiro parágrafo é um pouco baixo demais, mas é oferecido na esperança de ajudar futuros leitores: Um número, representado por N dígitos na base M, só pode ser tão grande quanto MN. Por exemplo, com 9 dígitos decimais (base 10), você pode escrever apenas números de até 10 ^ 9 ou zero a 999.999.999. Com 8 dígitos binários (base 2) (um "dígito binário" é um 'bit'), você pode armazenar 2 ^ 8 = 256 números.

Um microcontrolador ou processador é chamado de 'N-bit' porque controladores e processadores têm uma largura de dados fundamental. Cada registro pode ser N bits, cada instrução pode ser N bits, o barramento de dados pode ser N bits, a memória pode ser endereçada com N bits. Especialmente no nível mais baixo, há exceções a esta regra: por exemplo, um controlador de 8 bits pode ter um barramento de memória de 12 bits, mas como você pode imaginar, é difícil trabalhar com isso quando seus registros contêm apenas 8 bits. No entanto, todos os processadores têm uma largura de tipo de dados nativa fundamental. Considere o seguinte código:

uint32_t x,y,z;  // Declare 3 32-bit variables
z=x + y;         // Add two of them to store in the third

Se você puder adicionar apenas números de 8 bits, como você executaria essa operação? Você precisaria dividir cada variável em 4 números de 8 bits, fazer as adições e os carregamentos individualmente e depois mesclá-los para obter o resultado. Isso levaria pelo menos 16 instruções! No entanto, em um processador de 32 bits, é uma única instrução tão simples quanto mul r0, r1, r2. Como você pode ver neste exemplo simples, larguras de bits de processador maiores podem lidar com mais dados mais rapidamente.

Notas históricas

A tendência ao longo da história foi de larguras de bits menores para maiores. No início dos anos 1970, a Intel lançou o 4004, o primeiro controlador de chip único. Era um processador de 4 bits. Como os transistores eram grandes e consumiam muita energia, e porque o design era revolucionário e complicado, era tudo o que podia ser espremido no chip. Pouco tempo depois, eles lançaram o 8008, um processador de 8 bits. Ainda existem poucos processadores de 4 bits em uso, mas existem muitos controladores de 8 bits, o PIC e o AVR são exemplos contemporâneos ainda em uso comum. Mais processadores de 8 bits foram fabricados do que qualquer outro tipo! Eles ainda são os controladores mais populares para tarefas pequenas, simples e sensíveis a custos. A próxima transição óbvia foi para controladores de 16 bits, mas estes não tiveram o alcance de seus irmãos de 8 ou 32 bits. Em vez de, houve um salto para os processadores de 32 bits, como os projetados pela ARM e projetados para as CPUs dos PCs de alguns anos atrás. Não tenho microcontroladores de 64 bits significativos, mas agora eles são proeminentes nos PCs.

8 bits vs. 32 bits

De longe, os tipos mais populares são os processadores de 8 e 32 bits. Os processadores de 32 bits estão se tornando cada vez mais populares. Todo ano, mais ou menos, alguma revista especializada publica um artigo com o título "8-bit dead?" Os processadores de 32 bits estão se tornando mais populares, mais poderosos e mais baratos, deixando apenas três razões para escolher um processador de 8 bits:

  1. Inércia - Se você possui código e experiência com um processador de 8 bits, pode não obter um ROI suficiente convertendo tudo em uma arquitetura de 32 bits.
  2. Baixo consumo de energia - Cada transistor em um controlador dissipa energia e, embora o tamanho não seja mais um problema, os processadores de 32 bits têm mais transistores e, portanto, dissipam mais corrente em seu estado desligado. Esse é apenas um problema em projetos extremos movidos a célula de moeda.
  3. Baixo custo - Se você precisar de apenas algumas dezenas de instruções de montagem e 2 pinos de E / S, mesmo um processador de 8 bits provavelmente será um exagero. Na extremidade baixa, os controladores de 8 bits mais baratos custam menos de US $ 0,40 a granel, mas os processadores de 32 bits mais baratos ainda têm US $ 0,80 ou mais, mas são muito mais poderosos do que as alternativas de 8 bits. Se você está tentando construir um brinquedo com um único LED piscando para o próximo milhão de refeições felizes, essa é uma quebra de preço convincente, se não, não faz realmente diferença.

Os processadores de 32 bits estão se tornando cada vez mais onipresentes, mas há poucos sinais de que o processador de 8 bits desapareça como os antigos processadores de 4 bits por esses três motivos.

Arduino como exemplo

Considere um aplicativo como o Arduino .

O Arduino usa um controlador Atmel, um ATmega32 de 8 bits . O ATmega é executado em 20 MHz, possui 4k de RAM, possui comunicações SPI, I2C e UART, algumas interrupções de hardware e 8 ADCs de 10 bits. Esse chip custa US $ 3,90 em quantidades de 100.

Um chip de 32 bits semelhante poderia ser outra parte do Atmel, um AT-SAM3 de 32 bits usando o núcleo compartilhado do ARM Cortex-M3. Esse chip roda a 64 MHz (3x mais rápido, mas lembre-se de que o ATmega precisa de 16 instruções para fazer uma única adição de 32 bits). Possui 16k de RAM, 4 vezes mais que o ATmega. Possui periféricos I²C, MMC, SPI, SSC, UART e até USB. Possui DMA (acesso direto à memória, também o torna mais rápido e eficiente), um conjunto de interrupções poderoso e flexível, 10 ADCs de 12 bits e 2 DACs. Simplesmente supera o ATmega em todas as categorias. Tentei encontrar um controlador de 32 bits com um conjunto de recursos comparáveis ​​e isso foi o melhor que pude fazer. Quanto custa esse chip? São US $ 2,34 em quantidades de 100: você obtém mais desempenho por menos dinheiro. Deve ser uma decisão fácil.

E o seu exemplo?

Para o seu exemplo de situação aqui ,

O número de carros entrando e saindo de um estacionamento deve ser contado e o número exibido na tela LCD. São permitidos no máximo dez carros no estacionamento.

você tem uma matemática muito simples com números pequenos e uma exibição simples em um LCD (ou, na verdade, uma placa grande feita de números iluminados por LED de 7 segmentos seria mais visível e mais barata). Um controlador de 8 bits provavelmente é perfeitamente adequado para esta tarefa. No entanto, se você realmente não quer um LCD? O controlador de 8 bits se esforça para controlar até mesmo um monitor VGA de baixa resolução, enquanto você pode facilmente obter placas de desenvolvimento para controladores de 32 bits com saídas HDMI. E se você quiser exibi-lo em uma tela por enquanto, mas depois quiser conectá-lo a um cabo Ethernet na LAN da sua empresa e exibir os resultados no computador do supervisor no escritório do parque? Você pode facilmente obter controladores de 32 bits com barramentos de comunicação Ethernet integrados; não é possível fazer isso com um controlador de 8 bits.Xport , mas que contém um processador de 32 bits dentro dele.

Para projetos pontuais, eu recomendaria um controlador de 32 bits sempre. Seu tempo é simplesmente mais valioso do que a diferença de preço entre controladores de 8 e 32 bits.


Com relação aos processadores de 7 bits que você mencionou, provavelmente nunca houve e nunca haverá tais máquinas. Do ponto de vista arquitetônico, é mais sensato usar larguras de bits com potências de 2.

Kevin Vermeer
fonte
Na comparação entre 8 bits e 32 bits: embora os controladores de 32 bits sejam mais baratos (preço unitário) e possuam mais recursos do que os controladores de 8 bits, eles são mais caros em termos de bens imóveis para PCB.
shimofuri 27/07/2012
1

O tamanho do bit de uma CPU está relacionado a algumas características que geralmente caminham juntas:

  1. O maior tamanho de operando no qual a maior parte do conjunto de instruções pode operar
  2. O tamanho da maioria se seus registros de uso geral
  3. O tamanho do maior barramento disponível que pode mover dados entre registros de uso geral e memória
  4. O tamanho do maior barramento disponível que pode mover dados entre registros de uso geral
  5. O tamanho da ALU usada para computação de dados de uso geral

Para alguns processadores, todas essas quantidades têm o mesmo valor. Para outros, eles podem ter valores diferentes. O Z80, embora inclua alguns registros de 16 bits, usa registradores de 8 bits para a maior parte de seu conjunto de instruções e requer ciclos extras para quase todas as instruções que operam em quantidades de 16 bits (a única exceção é EX DE, HL); é uma CPU de 8 bits. Algo como o 68008, no entanto, não pode ser muito bem descrito usando apenas um N: ele possui um conjunto de instruções que pode operar principalmente em quantidades de 32 bits e pode IIRC mover dados entre registradores 32 bits por vez, mas sua ALU primária é apenas 16 bits e seu barramento de memória é de apenas 8 bits. Dependendo do que se está medindo, ele pode ser considerado como uma CPU de 32 bits, 16 bits ou 8 bits.

supercat
fonte