Explain Data Routing -- A Digital Design Method

In this post, I try to use digital logic to explain the basic concept of data routing.

Data Routing

As we can see, in the circuit above, there are two transmitters 1&2 and two receivers 1&2. Relationship’s as follows.

1
2
Transmitter_1 -- Receiver_1
Transmitter_2 -- Receiver_2

Because there are four bits outputs for each transmmiter, we need at least 8-bit lines when connect them seperately.

But if we use MUX(74HC157) and Decoder(74HC139) to connect them, we just need 4-bit lines. (Here we can ignore all the controlling bus, such as the lines from the decoder, because we can do that when the amount of transmitters and receivers increases to a huge number.) The two Transceiver Pairs will share the outputs of the MUX, if we can handle the sequence of the clock well.

Of couse we also need a DEMUX to distribute the datas to the right destination. Unlike the MUX in the circuit, which is hardware, I use External Inerrupt(INT0) of Arduino UNO to respond to the controlling signal of the Decoder. I call it a soft demux.(I can’t find a proper 74 series demux which has double four-bit outputs.)

The Virtual Serial Port Pairs Map is:

1
2
COM1--COM5
COM2--COM6

COM1: Port of Transmitter_1

COM2: Port of Transmitter_2

COM5: Port of Arduino IDE Serial Monitor_1

COM6: Port of Arduino IDE Serial Monitor_2

tip: only four serial port supported in Proteus

Finally, the concepts of switching, routing, multiplexing and demultiplexing, whatever you name them, SPDT is their prototype in my opinion.

spdt

routing

Author: Epiapoq
Link: http://epiapoq.github.io/2021/04/04/mux-demux/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.