gotchaMinor
Difference between an a microcontroller and a system on a chip?
Viewed 0 times
microcontrollersystemchipdifferencebetweenand
Problem
I pulled this right from Wikipedia to compare, staring with an SoC:
A system on a chip or system on chip (SoC or SOC) is an integrated circuit (IC) that integrates all components of a computer or other electronic system into a single chip.
And to compare, here's the microcontroller:
A microcontroller (sometimes abbreviated µC, uC or MCU) is a small computer on a single integrated circuit containing a processor core, memory, and programmable input/output peripherals.
What is the difference? If they are both small computers that integrate all components on a single integrated circuit, and are limited, why are they regarded as different concepts or terms? A microcontroller has everything an SoC has, so why are they claimed to be different?
To elaborate further, what draws any tangible line here on any noteworthy differences?
They both are in the area of embedded systems, but aside from minimal differences, they are both seemingly exact in almost every way.
A system on a chip or system on chip (SoC or SOC) is an integrated circuit (IC) that integrates all components of a computer or other electronic system into a single chip.
And to compare, here's the microcontroller:
A microcontroller (sometimes abbreviated µC, uC or MCU) is a small computer on a single integrated circuit containing a processor core, memory, and programmable input/output peripherals.
What is the difference? If they are both small computers that integrate all components on a single integrated circuit, and are limited, why are they regarded as different concepts or terms? A microcontroller has everything an SoC has, so why are they claimed to be different?
To elaborate further, what draws any tangible line here on any noteworthy differences?
They both are in the area of embedded systems, but aside from minimal differences, they are both seemingly exact in almost every way.
Solution
The microcontroller definition is, at best, poorly worded. The distinction between an SoC and a microcontoller may be a bit fuzzy, but not that fuzzy. A microcontroller might be included as one element of an SoC, but it is not an SoC.
SoC means (approximately) "single chip solution." The SoC in a cell phone might have a 32-bit ARM processor running Linux (Android) and any apps that the user has installed. In addition it would have a GPU, the wireless transceiver and modem, the video and audio decoders for streaming video, GPS, controllers for the accelerometer, controllers for battery management, and who knows what else. There might be many microcontrollers in a SoC.
The "peripherals" included on the microcontroller itself are going to be a lot less specific. They are really registers for communicating with the off-chip devices (or at least off-module, if the microcontroller is embedded in an SoC) that you are controlling with the microcontroller. The peripherals might include some analog-to-digital or digital-to-analog converters, and/or a USB controller and/or I2C bus controller.
More often than not the microcontroller will be running a single program (no operating system, no apps), and that program will be stored in a read-only-memory (Flash). (Usually the flash memory is included in the same chip as the microprocessor.)
As an example. Here's the specs for the Microchip PIC16F77:
This powerful (200 nanosecond instruction execution) yet easy-to-program (only 35 single word instructions) CMOS FLASH-based 8-bit microcontroller packs Microchip's powerful PIC® architecture into an 40- or 44-pin package and is upwards compatible with the PIC16C5X, PIC12CXXX and PIC16C7X devices. The PIC16F77 features 8 channels of 8-bit Analog-to-Digital (A/D) converter with 2 additional timers, 2 capture/compare/PWM functions and the synchronous serial port can be configured as either 3-wire Serial Peripheral Interface (SPI™) or the 2-wire Inter-Integrated Circuit (I²C™) bus and a Universal Asynchronous Receiver Transmitter (USART). All of these features make it ideal for more advanced level A/D applications in automotive, industrial, appliances and consumer applications.
It also has 14KB of flash to store the program and 368 bytes of RAM. (Yes you read that right, bytes.)
SoC means (approximately) "single chip solution." The SoC in a cell phone might have a 32-bit ARM processor running Linux (Android) and any apps that the user has installed. In addition it would have a GPU, the wireless transceiver and modem, the video and audio decoders for streaming video, GPS, controllers for the accelerometer, controllers for battery management, and who knows what else. There might be many microcontrollers in a SoC.
The "peripherals" included on the microcontroller itself are going to be a lot less specific. They are really registers for communicating with the off-chip devices (or at least off-module, if the microcontroller is embedded in an SoC) that you are controlling with the microcontroller. The peripherals might include some analog-to-digital or digital-to-analog converters, and/or a USB controller and/or I2C bus controller.
More often than not the microcontroller will be running a single program (no operating system, no apps), and that program will be stored in a read-only-memory (Flash). (Usually the flash memory is included in the same chip as the microprocessor.)
As an example. Here's the specs for the Microchip PIC16F77:
This powerful (200 nanosecond instruction execution) yet easy-to-program (only 35 single word instructions) CMOS FLASH-based 8-bit microcontroller packs Microchip's powerful PIC® architecture into an 40- or 44-pin package and is upwards compatible with the PIC16C5X, PIC12CXXX and PIC16C7X devices. The PIC16F77 features 8 channels of 8-bit Analog-to-Digital (A/D) converter with 2 additional timers, 2 capture/compare/PWM functions and the synchronous serial port can be configured as either 3-wire Serial Peripheral Interface (SPI™) or the 2-wire Inter-Integrated Circuit (I²C™) bus and a Universal Asynchronous Receiver Transmitter (USART). All of these features make it ideal for more advanced level A/D applications in automotive, industrial, appliances and consumer applications.
It also has 14KB of flash to store the program and 368 bytes of RAM. (Yes you read that right, bytes.)
Context
StackExchange Computer Science Q#12798, answer score: 8
Revisions (0)
No revisions yet.