0
\$\begingroup\$

I have a fairly general problem in understanding, I guess, "bus systems": Take the following scenario: We aim to create a motherboard-type of board, it shall use some kind of CPU that is able (assuming the right software is supplied) to control (write) and sense (read) from several periphery devices like sensors (thermo sensors etc.) and actuators (like stepper motors).

Obviously we cannot wire each component directly to the CPU. Instead we use a system bus to connect things together. We can use Encoding and Decoding (Multiplexing) to address certain devices and send data to them or read a certain register value.

But how does the electronic implementation detail look like? Decoding and Encoding should require some sort of additional processor that en-/decodes data according to the bus specification including timing requirements, right? But this in turn means that we simply connect several processors together using a common interface language, i.e. protocol. Moreover, in the end, each periphery device class has a dedicated processor, for example a USB serializer.

Glad for any hints and clarifications! Thanks!

\$\endgroup\$
2
  • 1
    \$\begingroup\$ Decoding and Encoding should require some sort of additional processor - no. \$\endgroup\$
    – Andy aka
    Jun 3, 2020 at 12:00
  • \$\begingroup\$ Different buses handle these issues in different ways, which makes this a very broad question. A proper answer would be a book, or several. \$\endgroup\$ Jun 3, 2020 at 14:36

1 Answer 1

2
\$\begingroup\$

Most microprocessors/microcontrollers have on-board bus systems like CAN, I2C, and SPI, OWI, RS485 (via USART/UART) etc that don't require a separate processor for bus control (although you may need a transceiver in the case of CAN or RS485 and some others). These are bus-specific protocols, and you would pick one (or more) that fit the types of devices you have on the bus.

The actual architecture depends on the type of bus you select. I2C has 2 wires (data and clock) and SPI has 4 wires (MOSI, MISO, CS, clock). Each bus has particular timing requirements, maximum lengths, maximum devices, addressing schemes, speeds, etc. Much of the bus protocol is abstracted away in the MCU/MPU interfaces and communication libraries, so you only have to worry about actual data transmission rather than what the wire is doing.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.