microcontrolador vs. Sistema no chip

24

Estou começando a programar microcontroladores e estava lendo alguma documentação e livros didáticos. Estou um pouco confuso quanto à diferença entre um microcontrolador e um sistema no chip?

Alguma documentação usa esses dois termos de forma intercambiável. No entanto, a maioria dos livros aponta que o uso interativo dos dois termos NÃO é correto, portanto deve haver uma diferença notável ...

Obrigado!

rrazd
fonte
4
Obrigado por aceitar minha resposta, mas eu realmente recomendo que você espere mais na próxima vez antes de aceitar. Outros provavelmente têm visões e idéias diferentes, mas muitas vezes podem deixar passar uma pergunta que já tem uma resposta aceita - eu sei que sim. Você deseja reservar um tempo para coletar um consenso, especialmente para uma pergunta que aborda uma área cinzenta.
Olin Lathrop
@ Olin Cool, manterá isso em mente na próxima vez!
rrazd

Respostas:

27

Um microcontrolador é um processador que possui seu programa e memória de dados incorporados. Esses chips destinam-se a pequenas aplicações de controle embutidas; portanto, deixar os pinos para E / S e não exigir um barramento de memória externo é muito útil. Alguns microcontroladores têm apenas 6 pinos e podem fazer coisas úteis. Compare isso com um processador de computação de uso geral destinado a um PC. Essas coisas têm centenas de pinos em uma matriz e requerem extensos circuitos externos.

Quanto ao sistema em um chip, esse é um termo menos bem definido. Chipre chama algumas de suas partes de PSOC (Programmable System on Chip). Estes são basicamente um microcontrolador com pequeno FPGA no mesmo chip. Em vez de ter construído em periféricos, você pode fazer o que quiser dentro dos recursos disponíveis do FPGA.

Em geral, acho que um sistema em um chip é um microcontrolador com alguma lógica supostamente integrada no nível do sistema. É claro que quanto mais você tentar acessar o sistema, menos provável será que um conjunto de hardware extra seja útil, portanto, algum tipo de configuração é muito útil. No entanto, por enquanto "sistema no chip" é mais um termo de marketing do que algo real.

Olin Lathrop
fonte
20

System On a Chip (ou SoC) é uma frase genérica que o pessoal de marketing usa e realmente não significa muito. Também existem muitas variações, como:

PSoC: Sistema programável em um chip, da Cypress Semiconductor.

SOPC: Sistema em um Chip Programável, da Altera

Em essência, um SOC é um único chip que faz tudo o que costumava ocupar vários chips. Não há nada que diga que deve incluir uma CPU ou RAM. Portanto, devido ao fato de podermos obter mais transistores em um chip e estarmos obtendo cada vez mais funcionalidade em nossos chips - quase tudo pode ser chamado de SoC quando comparado ao que estávamos fazendo há 10 ou 20 anos !

Para piorar a situação: existem muitos exemplos de coisas chamadas de SoC que ainda exigem vários chips para serem úteis. Muitas vezes, você tem algum tipo de CPU + periféricos que ainda exigem Flash externo, RAM e energia. Portanto, mesmo o nome do SoC é enganoso.

Um MCU é provavelmente o exemplo mais conciso do que um SoC deve ser - mas é um exemplo muito limitado.


fonte
@ David-kesner +1 para o SoC como uma frase de marketing.
Frank
12

Em geral, um microcontrolador é considerado um dispositivo incorporado programado internamente para executar uma tarefa específica. Há interação mínima do usuário e pouca ou nenhuma flexibilidade. Um microcontrolador normalmente possui pouca energia, com apenas pequenas quantidades de memória e ROM (flash).

Por outro lado, um System-on-Chip é o outro extremo do espectro. É mais voltado para flexibilidade completa e interação do usuário. Geralmente, inclui drivers de E / S para hardware maior (como discos rígidos, etc.) e até algumas vezes um adaptador gráfico. Um System-on-Chip é mais como um sistema de computador completo, sim, em um chip.

Existe uma grande quantidade de crossover entre os dois - quando ele deixa de ser um microcontrolador e começa a ser um System-on-Chip? É daí que vem grande parte da confusão.

Basicamente, se ele pode fazer o que um computador pode fazer, é um sistema no chip. Se ele é voltado para, por exemplo, sentado dentro de um telefone de mesa, gerenciando sua lista de contatos, ou em um sistema de entrada de teclado ou executando os motores em uma máquina CNC, então é um microcontrolador.

ps, não me cite sobre isso - como eu digo, há muito crossover entre os dois.

Majenko
fonte
5

A distinção é, em certo sentido, mais relacionada ao marketing do que técnica, mas eu sugeriria que, em geral, a parte "programável" de um microcontrolador é limitada a um único "fluxo de consciência" relativamente pequeno. Essencialmente, a qualquer momento, a próxima operação relativamente pequena do microcontrolador será determinada pela forma como ele é programado, mas todas as outras lógicas do sistema são conectadas com fio e terão desempenho conforme forem construídas. Algumas coisas, como temporizadores, podem fornecer algumas opções de configuração (por exemplo, contagem a taxa fixa versus contagem de pulsos em uma entrada), mas em geral a fiação do sistema será corrigida. Se desejar que algum sinal de saída seja alterado em resposta a algum sinal de entrada e não exista hardware explícito para isso, o programa precisará examinar periodicamente o sinal de entrada e, se ele tiver sido alterado, alternar o sinal de saída. Se desejar que a tensão analógica de saída seja alterada em resposta a uma tensão analógica de entrada, o processador poderá amostrar a tensão de entrada, calcular a resposta desejada e solicitar a tensão de saída desejada. Praticamente o tipo de estímulo / resposta desejado pode ser produzido com o processador olhando para entradas e saídas de computação, mas os tempos de resposta geralmente são ordens de magnitude mais lentas do que as produzidas com hardware dedicado.

A idéia geral de um sistema no chip é permitir fornecer circuitos com multiplexadores e outras facilidades de roteamento suficientes, de modo que os sinais possam ser roteados através dos circuitos para produzir muitos tipos úteis de padrões de estímulo / resposta sem intervenção do processador. Tais circuitos não podem produzir padrões de estímulo / resposta que sejam quase tão rápidos quanto o que um processador poderia produzir, mas em muitos casos podem ser ordens de magnitude mais rápidas do que qualquer coisa que um processador possa fazer.

supercat
fonte
2

Na minha opinião, SoC é o termo com muitas definições que, de fato, continuarão mudando com o tempo. Por outro lado, o microcontrolador será definido da mesma maneira após uma década como é agora. Quando você diz um microcontrolador, ele vem com algumas coisas básicas em um único chip, como memória, portas IO, temporizadores e contadores e assim por diante ... Mas quando você diz um SoC, ele não tem nenhum padrão específico sobre o que tipo de circuito que deve conter. Por exemplo, o aplicativo principal no qual eles estão tentando trazer o SoC é o Smartphone. No cenário atual, um smartphone deve conter algumas coisas básicas a bordo, como,

  1. NFC
  2. GPS
  3. Acelerômetro e Giroscópio
  4. Wi-fi
  5. Uma CPU e uma GPU

Na situação atual, se eu quiser fabricar um smartphone, tenho que pegar uma CPU e uma GPU e fazer a interface de tudo. Mas o SoC é baseado no conceito de chip único que terá todas as opções acima e poderá evoluir (embora de uma maneira muito básica). Além disso, eu disse que o SoC tem uma definição em constante mudança porque os requisitos básicos para um smartphone, um computador ou qualquer dispositivo eletrônico aumentam dia a dia e a definição do SoC muda com esses requisitos.

krushna ratnaparkhi
fonte
0

Sim, SoC é basicamente um termo de marketing usado com mais frequência. Existe terminologia de dispositivo e host. São os grandes fabricantes de PCs como Dell, HP, IBM etc. Eles usaram a CPU dentro deles geralmente fabricada pela Intel, AMD etc. basicamente fornece CPU ou SoC na placa-mãe (chamada CPU), alguns também fornecem CPU + SoC (com um objetivo específico de descarregar a atividade dos periféricos - como sensores ou dispositivo GPS, que de outra forma teriam muita energia. Às vezes, o SOC também é chamado de co-processador cujo trabalho é o mesmo que escrevi anteriormente. Agora, as placas-mãe estão conectadas a vários periféricos (conectados basicamente à CPU ou SoC); esses periféricos são basicamente conectados diretamente a eles (SOC ou CPU) por meio de um barramento de soma - i2c, SPI, USB ou geralmente são conectados aos MicroControllers . fabricantes de controladores), bem como os fabricantes de PCs, à medida que obtêm os melhores dispositivos (periférico + microcontrolador). Portanto, o ponto principal é o termo microcontrolador que você verá com mais frequência no lado do dispositivo (aquele que está sendo conectado com o SoC (agora você sabe o que é um SOC? Não sabe)) e SoC no lado do host (no lado do PC Você pode dizer que a CPU é o pai que delegou parte do seu trabalho ao SoC para obter melhores recursos de energia dos dispositivos (periféricos Micro +). Os SOCs têm basicamente mais memórias para hospedar um Microcontrolador sem SO que possa, no máximo, suportar os RTOs.

Raulp
fonte
11
UAU ! Realmente gosto do voto negativo quando as pessoas fazem isso sem apresentar muitos comentários necessários!
Raulp 30/07/2015
3
É muito claro. Não posso entrar e sair dessa corrente de consciência.
ivan_pozdeev
0

Resuma o acima, parece-me:

Um MCU fornece muita memória, interfaces como VGA e recursos como GPU usando vários chips diferentes que fornecem coisas diferentes.

Um MCU encaixa tudo em um único chip, fornecendo apenas memória, interfaces, etc.

Um SoC encaixa tudo em um único chip, ultrapassando os limites do que pode ser feito em um único chip.

As MCUs fornecem valor minimizando o custo, os SoCs fornecem valor maximizando a funcionalidade, ambos em um único chip. Se ele compete com a lógica da TLL, provavelmente é um MCU. Se concorre com microprocessadores (AMD, Intel), provavelmente é um SoC.

Ray Morris
fonte