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.