An embedded system is a master-slave architecture were there is a bus structure connecting certain masters and slaves with each other. The key to an embedded system is that it is embedded in a chip, ASIC or FPGA. Masters can be processors and DMA’s (transfer of data). For example an embedded processor can run code that reads and writes registers over the bus structure into the slaves register map. Peripherals are connected to the IO, the pins, of the chip. Let’s take a serial uart transmitter. The uart interfaces with the outside world via the UART transmit pin(TxD) but it also has a configuration and data interface internally connected to the embedded bus so that the embedded processor can setup the UART (example: baudrate) and write the data that need to be sent out. There are low speed peripherals, I2C, SPI, UART, … . But also high speed, USB3, PCIe, LVDS, … . Low speed peripherals are usually used to connect an ADC for example, where I2C or SPI is used to write the configuration and the status is read. High speed interfaces are usually hgh bandwith data channels to the outside world, for example a PC (host) connects to the USB (device) chip wherein the embedded system is located.
Hardware and software advisor for tech startups. ASIC, FPGA, RPi, Arduino, AI, robots, drones, blockchain, Machine learning, vision processing, IoT and 3D printers are my fields of expertise.