Why use half duplex at all?
I know what full and half duplex is, but in all respects full duplex has more advantages, so why use half duplex at all, in other words: In full duplex connection , the bandwidth doubles and collision does not occur, so why is there half duplex at all and it has not disappeared?
Full duplex requires more than half duplex.
Typically full duplex is achieved by having two separate data paths. That means two sets of wires, separate sets of transmission and receiving electronics and a controller that has both input and output buffers and electronics.
Half duplex is simpler, has lower requirements and just needs you to have some form of protocol to handle or avoid collisions. If all the transfers are mostly in one direction then full duplex offers very little benefit over half-duplex and has a higher cost. Also if the majority of transfers are tiny (mice, keyboards, etc) then again full duplex is a waste.
USB1 and USB2 is half duplex. It has only one bidirectional signal pair. While we have connected hard disks and USB sticks to them the hard drives are the only time we came close to saturating the connection. USB sticks typically had 5-15MB/s transfer speeds that left enough bandwidth for other devices. It is only recently that more typical high speed devices have become more common.
USB3 has separate TX and RX pairs and is intended for far faster transfers hence it makes more sense to integrate full duplex control. We use it for multi-gigibit data transfers and displays and other devices. At higher speeds collisions cost more downtime and requires larger and larger buffers in the event that transaction need to be retransmitted so it makes more sense to integrate full duplex.
In general the question you need to ask isn't "why doesn't everyone use full duplex?" But "Do I need full duplex and the extra cost of design, extra electronics, cable with more wires in it and so on?"
With the exception of some networking connections (e.g., router to internet, server to local network), most usage - whether older serial or parallel, USB, ethernet or almost anything else is mostly one direction either all the time or most of the time. Some examples, in both low and high (relatively) speed connections:
- Keyboard, mouse, other user input - almost entirely from device to host computer, with very little (e.g., some configuration, set keyboard lights) in the other direction
- Cameras - still or video - almost everything device to host computer
- Printers - almost everything host computer to device
- Scanners - almost everything device to host computer
- Multi-function printer/scanner - in almost all cases, only one function is really going on at any time - either printing (host to device) or scanning (device to host)
- Network - with some exceptions, most ordinary user computer network usage is mostly in one direction at any point in time - e.g., streaming video from router/internet to computer, upload files from computer to router/internet. There is some overlap particularly if there is heavy usage of shared files or any kind of server (web server, file server, etc.) and those are situations that truly benefit from a full duplex connection.
There is some more routine usage these days that is more symmetric - Zoom and other video conferencing that has both a video stream going out and a video stream coming in. But typical usage is a couple of megabits in each direction, which even a 100 Meg. half-duplex connection should be able to handle with plenty of room to spare.
End result: For competitive reasons with every penny counting on the small stuff (USB devices) and every dollar on the big stuff (computers), manufacturers will use half-duplex connections when they can, provided it has no noticeable impact on usability.
Some protocols are inherently send-and-wait, these include USB 2 (and below), Modbus, and 1-wire protocol. In these protocols, there is one controller, and several devices. The Controller interrogates a Device, and waits for a reply. Until the Device replies (or is timed out), the Controller can't interrogate another device. With these protocols there is little advantage to having a different reply path.
Half duplex is almost always more efficient and faster.
For any data channel you have limited bandwidth, declaring something "full duplex" doesn't change that. Your DSL line has to allocate different parts of its bandwidth to uploading vs downloading. Wifi signals can only transmit so much before they start interfering. Generally if you allocate more bandwidth to upload, you have less for download and vice versa. This is true of pretty much every media.
You can route two wires to get full duplex to somewhere, but then only half your full bandwidth is used for each direction because you could have had both wires transmitting the same direction if one side was more chatty.
Unless you are expecting exactly the same constant amount of data in both directions always, full duplex doesn't make much sense. It makes much more sense to utilize your full bandwidth for whomever needs to talk at a given time so they can finish what they have to say quickly and let someone else talk. If you remember modems and the speed jump that happend with the V.92 standard, it was due to being able to switch from a full duplex to a half duplex mode that allowed that happen. so it could dedicate the full bandwidth to downloading rather than constantly reserve some for uploading. Half duplex made things significantly faster.
Additionally it is a whole lot harder to do multi-drop protocols full duplex. When you have a dozen devices connected to the same I2C, CAN-BUS, RS485 or whatnot line then who is the full duplex connection between? everyone hears what everyone is saying.
There are some times where full duplex does make sense in a limited situation, sometimes you actually have the extra bandwidth so are okay wasting some on the unused channel because the improvement in throughput is worth it or the characteristics of what it is used for makes full duplex more natural. short distance mass storage interfaces come to mind, like SATA. where you expect a large amount of traffic in both directions and the cost of idle copper isn't that big a deal when it only needs to go a few feet.