What is the SCSI protocol

What is SCSI and how did it come about ..

SCSI is short for S.mall C.omputer S.ystem I.nterface and is a device-independent I / O subsystem that allows various types of peripherals to be connected. The development of SCSI began in 1979 with SASI, a specification that was supposed to fix certain problems with disk drives that were 'then'. It should remove the hard disk subdivision of cylinders, blocks and sectors and instead introduce logical addressing. Furthermore, user data should no longer be transmitted serially but byte by byte (8 bits in parallel).
After a few developments, the ANSI working group X3T9.2 started the SCSI project in 1982 and then introduced it as an industry standard in 1986 by ANSI. Small startup problems then led to today's SCSI-3 via CSS, SCSI-1, SCSI-2.

Technology, concept

SCSI is actually just a protocol, but a distinction is also made on a physical level. The type of transmission can be parallel or serial, and the transmission medium can be of different types. For example, at ATAPTI, the physik. runs on the ATA-BUS, a shortened SCSI protocol is used. So we come to the most important point about SCSI, it is 'device independent'. This means that a programmer does not have to have any special knowledge of the internal structure of a device, but the SCSI has a mechanism with which you can query all the necessary parameters from the device itself, while the entire intelligence resides in the SCSI device itself Formatting a hard drive mentioned, it can be triggered with just one command to the HD. The programmer does not need to be interested in what happens 'in' the device. This is also made easier by the logical addressing of the device; cylinders, blocks and sectors are not used, but a memory area is created for the user.
Furthermore, the SCSI protocol is always backwards compatible, so SCSI-1/2/3 devices can be operated on one bus.
Several devices can request data to the SCSI bus at the same time, whereby one device that triggers an action on the bus is the initiator and the device that then executes the action is the target (computer -> hard disk), which then has priority rules (SCSI ID ) Get access to the bus.
The SCSI host adapter is used to connect the computer to the SCSI bus, not the controller - a controller is used to connect the peripherals to the SCSI bus. In a 'normal' PC system, the host adapter is available in the form of an ISA / PCI card and the SCSI controller is integrated in the respective periphery.

... a picture should make the section clearer ...

The parallel SCSI bus (interface)

The parallel SCSI bus can be 8 or 16 bits wide and up to 8-15 (32-SCSI-3) devices can be addressed. Each SCSI device has its own one-time Assigned SCSI ID. The 8-bit bus is called Narrow-SCSI and the 16-bit bus is called Wide-SCSI. The bus must be terminated at each physical end, which is done with terminators. Physically means at each end of the cable. Furthermore, the bus must not contain any branches.
A 50-pin cable is used for narrow SCSI and a 68-pin cable is required for wide SCSI.

A SCSI device can be divided into 8 separate logical units (LUN, Logical Units), but this happens less often .. who has a CD changer;) ..

... again a small picture for clarification ...

A terminator sets a defined level of the signals in the idle state and prevents signal reflections at the cable ends.
On the SCSI bus, the commands are generally transmitted asynchronously with 8 bits, which corresponds to the slowest operating mode. The bus can be about 6m long, but only transfer 3MB / sec.
How the user data is then transferred is later negotiated among the SCSI devices. This means that you don't have to accept any loss of speed if you mix older devices with newer devices on the SCSI bus (exception - Ultra-2-Wide).

Here is a small table of the transfer rates ...
StandardMB / secCable length (single-ended)
Ultra Wide 2 SCSI80 with LVDwith LVD up to 12m
Ultra-2-SCSI, Ultra-Wide-SCSI403m
1.5m for more than 4 devices
Ultra-SCSI, Fast-Wide-SCSI, SCSI-320"
Fast SCSI, SCSI-2103m
Synchronous SCSI, SCSI-156m
Asynchronous SCSI, SCSI-136m

With SCSI-2, only two devices can communicate with each other on the bus. However, as soon as a command has been transmitted, SCSI devices release the bus again and report again when the command has been processed. There is also a priority if two devices want to access the bus at the same time, the device with the highest SCSI ID has priority. However, that hardly matters.

As of SCSI-3, other interface alternatives such as SSA, fiber channel and fire wire are also provided. But I always refer to the parallel interface and in this case only to the single-ended interface. The differential interface is used to overcome cable lengths of up to 25m and is incompatible with single-ended (and hardly available).
The LVD (low-voltage-differential) interface is used with Ultra-2-Wide. It allows cable lengths of up to 12m, but it is also incompatible with single-ended. Mixed operation is possible, but the SCSI devices do not switch to LVD mode but to single-ended mode. With LVD, ALL devices must be able to use the LVD interface. (If you are interested, the driver modules work with a different performance.)

The host adapter

I mentioned above that the host adapter actually has a very simple task, the data exchange of commands and user data between the main memory of the computer and the SCSI bus. Nowadays, this task is usually packed into just one chip, plus a few active terminator chips and a Flash PROM for a BIOS with which you can boot from SCSI devices and set other parameters. They usually have two internal and one external connection, whereby only two can be used, otherwise an unauthorized branch would be created.
The terminators on the host adapter usually automatically recognize whether they have to be switched on, but if you want to be on the safe side, you should set them correctly manually using a jumper - see below.

You can usually access the SCSI BIOS like the normal PC BIOS (DEL, CTRL + A, etc.). Some BIOS settings follow ...
SCSI ID.. the unique ID of the host adapter is specified here. If you use narrow and wide devices, the adapter must have the 7, otherwise the narrow devices cannot recognize the adapter.
Termination.. should the host adapter terminate automatically or it will be set manually.
SCAM.. seldom, with this protocol the assignment of SCSI-ID can be automated.
SCSI parity.. should be switched on, as it is the only way to detect transmission errors.
SCSI disconnect.. here devices can enable the SCSI bus for other devices while they are still processing a command - also switch it on.
START delay.. some SCSI devices need a short time to start up, which is given here.
Synchronous transfer.. if you don't want to stop at 3MB / sec data rate, you should switch this on (AUTO).

Several such host adapters can also be installed in a computer, in which case a separate closed bus (domain) is formed in each case - so that the same SCSI IDs can be assigned (e.g. 2HD with ID 1).

SCSI devices

There isn't really much to say about SCSI devices. You set the desired SCSI ID, possibly terminate (from Ultra-2-Wide only external) and whoever has more than two hard drives should also set the SCSI delay so that not all devices start up at once and the power supply is in the knees wink.
There are also devices that offer settings similar to those of the host adapter (parity, disconnect), so the same applies as above.
In order to want to boot from a device, it is usually necessary to set this to SCSI ID 0/1. I recommend placing the first internal HD on ID 1, so that you then have the option of booting from an external device without having to open the computer.

SCSI cable

With internal devices a 50-pin for Narrow-SCSI. Ribbon cable and for wide SCSI a 68pol. Ribbon cable prevailed. The 50-pin makes an exception in that sockets are attached to the cable, while the 68-pin cable uses plugs again.
In the case of external devices, it usually does not look that orderly, many connections are not standardized or the connection socket plugs are equipped with clips or screws or both.
In general, the host adapter and housing have sockets and the cables have plugs.

In the next table I would like to give a brief overview ..

The termination

In principle, one only needs to remember that a terminator must be attached to each physical end. This refers to the entire bus, i.e. external and internal devices are connected to the same bus.
What does such a TERMINATOR actually do ...
A terminator puts the signals on the quiescent level and at the same time prevents signal reflections at the ends, which would lead to signal overlap.
This termination can be done with two different TERMINATORS ...
With SCSI-1/2 a pair of resistors is provided for this, 220 ohms to + 5V and 330 ohms to ground (so the quiescent level is 3V). This is called passive termination.
As of SCSI-2, active termination was introduced, which creates the defined quiescent level with the help of voltage regulators. This termination is better suited to maintain the line impedance of 100 and 132 ohms and significantly reduces the susceptibility to interference.

These terminators are available to plug into a free slot of the SCSI cable, if the slots are scarce there are intermediate adapters which are then inserted in front of the last device. Terminator chips are often already built into the devices (from Ultra-2-Wide no longer), which can then be switched with jumpers. Make sure that only the last device on the SCSI bus is switched on.

The next table shows terminators, as end pieces and as intermediate adapters ...

It will continue soon ...