Sunday, August 31, 2014

Hard Disk Selector

In the last few years, the available range of operating systems for PCs has increased dramatically. Various free (!) operating systems have been added to the list, such as BeOS, OpenBSD and Linux. These systems are also available in different colours and flavours (versions and distributions). Windows is also no longer simply Windows, because there are now several different versions (Windows 95, 98, ME, NT, XP, Vista and 7). Computer users thus have a large variety of options with regard to the operating system to be used. One problem is that not all hardware works equally well under the various operating systems, and with regard to software, compatibility is far from being universal. In other words, it’s difficult to make a good choice.


Switching from one operating system to another - that’s a risky business, isn’t it? Although this may be a bit of an exaggeration, the safest approach is still to install two different operating systems on the same PC, so you can always easily use the ‘old’ operating system if the new one fails to meet your needs (or suit your taste). A software solution is often used for such a ‘dual system’. A program called a ‘boot manager’ can be used to allow the user to choose, during the start-up process, which hard disk will be used for starting up the computer. Unfortunately, this does not always work flawlessly, and in most cases this boot manager is replaced by the standard boot loader of the operating system when a new operating system is installed.

In many cases, the only remedy is to reinstall the software. The solution presented here does not suffer from this problem. It is a hardware solution that causes the primary and secondary hard disk drives to ‘swap places’ when the computer is started up, if so desired. From the perspective of the computer (and the software running on the computer), it appears as though these two hard disks have actually changed places. This trick is made possible by a feature of the IDE specification called ‘CableSelect’. Every IDE hard disk can be configured to use either Master/Slave or CableSelect. In the latter case, a signal on the IDE cable tells the hard disk whether it is to act as the master or slave device. For this reason, in every IDE cable one lead is interrupted between the connectors for the two disk drives, or the relevant pin is omitted from the connector.


This causes a low level to be present on the CS pin of one of the drives and a high level to be present on the CS pin of the other one (at the far end of the cable). The schema shown here is connected to the IDE bus of the motherboard via connector K1. Most of the signals are fed directly from K1 to the other connectors (K2 and K3). An IDE hard disk is connected to K2, and a second one is connected to K3. When the computer is switched on or reset, a pulse will appear on the RESET line of the IDE interface. This pulse clocks flip-flop IC1a, and depending on the state of switch S1, the Q output will go either high or low. The state on the Q output is naturally always the opposite of that on the Q output. If we assume that the switch is closed during start-up, a low level will be present on D input of IC1a, so the Q output will be low following the reset pulse.


This low level on the Q output will cause transistor T1 to conduct. The current flowing through T1 will cause LED D1 to light up and transistor T2 to conduct. The hard disk attached to connector K2 will thus see a low level on its CS pin, which will cause it to act as the master drive and thus appear to the computer as the C: drive. A high level will appear on the Q output following the reset pulse. This will prevent T3 and T4 from conducting, with the consequence that LED D2 will be extinguished and the hard disk attached to connector K3 will see a high level on its CS pin. For this disk, this indicates that it is to act as a slave drive (D: drive).


If S1 is open when the reset pulse occurs, the above situation is of course reversed, and the hard disk attached to connector K2 will act as the D: drive, while the hard disk attached to connector K3 will act as the C: drive. Flip-flop IC1a is included here to prevent the hard disks from swapping roles during use. This could have disastrous consequences for the data on the hard disks, and it would most likely cause the computer to crash. This means that you do not have to worry about affecting the operation of the computer if you change the switch setting while the computer is running. The state of the flip-flop, and thus the configuration of the hard disks, can only be changed during a reset.

The schema is powered from a power connector for a 3.5-inch drive. This advantage of using this connector is that it easily fits onto a standard 4-way header. However, you must observe the correct polarity when attaching the connector. The red lead must be connected to pin 1. Constructing the hard disk selector is easy if the illustrated printed schema board is used. You will need three IDE cables to connect the schema. The best idea is to use short cables with only two connectors, with all pins connected 1:1 (no interruption in the CS line). The IDE connector on the motherboard is connected to K1 using one cable. A cable then runs from K2 to first hard disk, and another cable runs from K3 to the second hard disk. This means that it is not possible to connect more than two hard disks to this schema. You must also ensure that the jumpers of both disk drives are configured for CableSelect. To find out how to do this, refer to the user manual(s) for the drives.

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.