Chapter 5: The SCSI Interface

History and Description

In the late 1970s, inspired by IBM's mainframe I/O channel architecture, Shugart Associates developed a device-independent parallel bus interface for its new line of hard disk drives. It was named the SASI (Shugart Associates System Interface).

In 1982 the ANSI X3T9.2 committee was formed and charged with the task of creating a non-proprietary version of SASI. The new standard was designated X3.131-1986 and called SCSI (Small Computer Systems Interface).

! SCSI is a high performance peripheral interface that distributes data among peripherals independently of the computer system's CPU.

! It's the computer industry's most successful universal peripheral interface.

! SCSI is supported on all computer architectures: from sub-notebooks through mammoth mainframes.

! SCSI peripherals are intelligent. The proprietary hardware specific routines on each SCSI peripheral are managed by its on-board controller.

! With few exceptions, SCSI peripherals are hardware platform and O/S independent.

! SCSI is the most popular means to interface new mass storage and scanning technologies into existing hardware platforms and operating systems.

The Physical and Logical Interface

A complete interface standard must define both a physical and a logical interface.

Physical Interface

! Cables, Connectors, and Terminators

! Voltage levels and relationships

! Bit rates and Signal timing

Logical Interface

! Communications protocol

! Bus sequences and phases

! Command set and Message system

The SCSI Host Adapter

! A SCSI Host Adapter is the electronic circuitry that provides the physical and logical interface between the host computer system and the SCSI bus.

! The host adapter manages the data traffic on the bus and passes high-level commands between the host's CUP and the specified peripheral.

! On conventional PCs the host adapter is a circuit card inserted into an expansion slot.

! On all MACs and RISC Workstations, and many PS/2s and Pentium PCs, the host adapter is integrated onto the system board.

! On notebook computers the SCSI host adapter may be integrated on the system board or implemented as a PCMCIA credit card adapter.

General SCSI Characteristics

! The maximum data transfer rate of 5-Mbytes/sec is faster than the PC's ISA-Bus and most SCSI peripherals.

! Each SCSI bus supports a maximum of eight devices, including the host adapter.

! The maximum number of SCSI host adapters and SCSI buses per computer is only limited by the number of available expansion slots, IRQs and DMA channels.

SCSI Handshaking Protocols

! Asynchronous protocol requires a handshake for every byte transferred. This is the default handshaking protocol. It yields a maximum of 2-Mbytes/sec data transfer rate.

! Synchronous protocol supports block transfers; it requires a handshake for each block of data. It yields a maximum of 5-Mbytes/sec data burst rate.

! Upon a bus reset, the host adapter establishes the handshaking protocol with each peripheral.

SCSI-2 (A logical upgrade non-extensible)

! The original SCSI specification contained many commands and features that were optional and or undefined.

! Consequently vendors created unique or proprietary commands through the undefined commands and features.

! Supports the CCS (Common Command Set) --a subset of 18 commands from the original SCSI command set.

! Adds control over device formatting and error recovery.

! Provides enhancements for CD-ROM drives, scanners, optical drives, and communications devices.

Fast SCSI (A physical upgrade)

! Doubles the synchronous data transfer rate to 10-Mbytes/sec by reducing the timing margins.

! Requires the highest-quality cables.

! Must be supported by both the host adapter and particular peripheral--usually a hard drive.

! Is backwards compatible with standard SCSI. May simultaneously support Asynchronous, Synchronous, and Fast-Synchronous peripherals.

Wide SCSI

! Supports a 16- or 32-bit data bus.

! Increases the Fast, Synchronous data transfer rate to 20- or 40-Mbytes/sec.

! Adds a second SCSI connector to support the additional data lines and handshake signals.

! Backwards compatible with 8-bit SCSI.

SCSI Electrical Line Drivers

! Single-Ended SCSI is the standard for desktop computers. It employs TTL logic levels (+5v and 0v) with a maximum daisy-chained cable length of 6 meters.

! Differential SCSI employs RS-485 differential drivers and receivers (-12v and +12v) and supports a maximum daisy-chained cable length of 25 meters. Used in large LAN servers, mainframes, and to provide the highest reliability for Fast, Wide, SCSI.

SCSI Connectors

Host adapters have two SCSI connector bus connectors:

Internal SCSI Connector

! Internal SCSI connector for the host adapter and peripherals is a 50-pin (two rows of 25 pins), male header.

! The internal SCSI bus is created with a 50 conductor, ribbon cable employing insulation displacement connectors.

! The ribbon cable may have several connectors to attach the host adapter and multiple internal SCSI peripherals.

External SCSI Connectors

! 50-pin, Centronics: (Also called a SCSI-1 connector) It's similar to the Centronics 36-pin printer connector and is the oldest and currently, most common SCSI connector.

! DB-50, High-Density: (Also called a SCSI-2 or Mini-50). Much smaller than the Centronics SCSI connector and it's on most new SCSI peripherals.

! DB-25: Identical to the PC parallel printer port (LPT:) connector. Used on inexpensive host adapters, but very rare on SCSI peripherals.

! Adapter cables are used to convert between the different SCSI connectors and genders found on host adapters and various types of peripherals.

ASPI (Advanced SCSI Programming Interface)

The device drivers required a support a SCSI host adapter and peripherals are more complex than traditional non-BIOS supported adapter because:

! It manages a general purpose peripheral interface supporting unlimited types of peripherals.

! The host adapter's device driver doesn't have any knowledge of the specific types of peripherals that may be connected to the SCSI bus.

! In addition to the host adapter's driver, each different type of SCSI peripheral requires a device driver.

! This driver-to-driver communications causes incompatibility between the host adapter and various types of SCSI peripherals.

Adaptec is a leading manufacturer of host adapters. They solve this problem in the DOS/Windows platform by defining the ASPI (Advanced SCSI Programming Interface).

The ASPI provides a "black-box interface

in which programmers write device drivers and SCSI applications

without directly accessing the host adapter or SCSI peripherals.

Starting at the bottom of the ASPI diagram:

! SCSI peripherals are connected to the system-independent bus.

! The SCSI host adapter is installed in an expansion slot or integrated onto the system board.

! The ASPI Manager is an adapter-specific driver usually written by the manufacturer of the host adapter. It translates high-level, hardware independent ASPI commands into specific host adapter commands.

! In a multi-SCSI bus computer system, each different type of host adapter requires its own ASPI Manager. Identical host adapters may share a single ASPI manager.

! ASPI-compliant drivers provide the DOS/Windows interface for Hard drives, CD-ROMs, and any other on-line storage device which must be accessible via standard DOS function calls.

! Off-line mass storage, such as tape back-up, is supported by ASPI-compliant applications. These programs bypass DOS and directly communicate with the ASPI Manager.

! An auxiliary device, like a scanner, may be accessed by a variety of applications. This class of peripheral is supported by an ASPI-compliant driver which is called by an ASPI-compliant application program

The Microsoft Cd-ROM Extensions

The CD-ROM device driver can't communicate directly with DOS or Windows. It requires an extra layer of translation because CD-ROMs:

! Employ the non-DOS compatible ISO-9660 file format, an international standard which enables a CD-ROM to be accessed independently of hardware or O/S platform.

! Don't have a FAT and have a 2-Kbyte sector size.

MSCDEX is a DOS TSR which

assigns a DOS letter designation to a CD-ROM drive

and translates the High Sierra or ISO-9660 file system

into a DOS FAT compatible file system.

MSCDEX Command Line Options

MSCDEX /D:[DriverName] /L:[DriveLetter] /M:[Number] [/V /E /S /K]

/D:[DriverName] - Links the MSCDEX TSR with the internal name of a CD-ROM device driver as specified with the /D: option on the CD-ROM driver command line in CONFIG.SYS. Multiple CD-ROM drives are specified with unique /D: designations.

/L:[DriveLetter] - Specifies the logical DOS drive letter to assign to the first CD-ROM drive. By default, DOS only reserves the letters A-E for system drives. Additional drive letters are reserved with the LASTDRIVE command which is placed in CONFIG.SYS. Multiple CD-ROM drives receive subsequent drive letters.

/M:[Number] - Specifies the number of 2-Kbyte memory buffers with a default of 10. On slower, non-cached CD-ROM drives this setting may dramatically affect performance. (Reduce it to lower conventional memory.)

Some disk cache programs (including SmartDrive) can also cache CD-ROM drives. The best performance is provided by third-party CD-ROM drive caching programs.

/V - Verbose option instructs MSCDEX, to display the amount of memory consumed by buffers, resident data, and resident code.

/E - Instructs MSCDEX to use EMS memory to save about 16-Kbyte of conventional memory. An EMS driver such as EMM386 or QEMM must be loaded in CONFIG.SYS.

/S - Specifies that the CD-ROM drive is shared on a MS-Net or Windows for Workgroups LAN.

/K - Indicates that the media directory is written in Kanji.

Widely supported SCI quality host adapters and chip sets are manufactured by:

! Adaptec

! Trantor (owned by Adaptec)

! BusLogic

! Future Domain

! UltraStor

! CD Blitz

Parallel Port SCSI Adapters

! Converts a LPT: parallel port into a SCSI host adapter.

! Uses a DB-25 connector and usually provides a Centronics or DB-50 converter cable.

! Usually shipped with an ASPI manager.

! Poor performance with standard parallel ports (output-only, unidirectional mode).

! Slightly better performance with bi-directional parallel ports. Ensure that vendor provides a driver to exploit bi-directional and EPS parallel ports.

Corel SCSI: Version 2

Corel SCSI-Version 2 is a popular ASPI-compliant peripheral driver and applications package. It's bundled with many host adapters and is available off-the-shelf for about $65.00.

! Requires that the SCSI host adapter has an ASPI Manager.

! Supports DOS, Windows, and OS/2.

! Provides ASPI-compliant drivers for virtually any SCSI device: Hard drives, Floptical drives, CD-ROM drives, WORM drives, Optical R/W drives, Scanners, QIC Tape, DAT Tape, 8-mm Tape, and Printers.

! Has several Windows applications including: SCSI Tools, CorelBook Viewer, Back-up, Playing audio CDs, recording WAV files, PhotoCD Lab for Kodak Photo-CD images.

! CorelCDX is an alternative to MSCDEX. It supports separate path table, directory, and data caches for improved performance. (Don't need ASPI in Win95.)

Creating the Physical Bus

The requirements of creating a SCSI bus are:

! Install a properly configured host adapter into the host system.

! Set a unique ID for each SCSI device, including the host adapter.

! Daisy-chain the internal devices, host adapter, and external devices with the appropriate cables.

! Terminate the two devices at the ends of the SCSI bus, and remove or disable terminators from the other SCSI devices.

Set a SCSI ID for each Device

The SCSI address consists of three parts:

HAN:SCSI ID:LUN

! HAN (host adapter number) - each host adapter is assigned a number (starting with 0) based on the order in which the ASPI manager is loaded.

! SCSI ID (SCSI device ID) - uniquely identifies each device on a specific bus. ID-7 is the highest priority and usually reserved for the host adapter.

! LUN (Logical Unit Number) - a rarely used secondary Target ID which defaults to LUN0. An example of the use of the LUN is a CD-ROM Jukebox. The Jukebox peripheral device is identified with a single SCSI ID number and each D_ROM in the array has a unique LUN.

In the typical PC single-host, single-bus SCSI system setting a SCSI ID entails:

! Set each SCSI device to a unique address.

! When assigning addresses the order of priority is: Hard drives, R/W optical drives, CD-ROMs, Scanners, and Tape-Backup.

! The SCSI ID for an internal device is set via Berg jumpers or DIP switches. The 3-bit binary address has the range of 000 (0) -11 (7).

! The SCSI ID for an external device is sill set via a push button switch, rotary switch, or DIP switches.

Daisy-Chain the SCSI Devices

! Interconnect the internal SCSI devices to the host adapter with a 50-conductor ribbon cable.

! When installing a single internal SCSI device the middle connector on the cable can be used to minimize the overall bus length.

! Anticipate any type of external adapter cables that will be required to complete the bus.

! The total length of the internal and external cables may not exceed six meters. Less if a long ribbon cable is employed.

Terminate the Bus

! Electrically, the host adapter, internal devices, and external devices reside on a single bus.

! An improperly terminated SCSI bus may not function at all, function intermittently, and may also corrupt hard drive data.

! The terminator on a host adapter is controlled by jumpers, dip switches, or removable resistor packs.

! The terminator on an external SCSI device may be implemented by inserting a terminator into second SCSI-Out port, controlled by a Dip switch, or sometimes, set by software.

! External SCSI enclosures have has two ports: Either can be used for SCSI-In, SCSI-Out, or a terminator plug.

! In the event of intermittent hang-ups, first verify the cables, connectors, and terminators.

! If all else fails: consider un-terminating one end of the bus, or re-terminating the host adapter. Sometimes trail-and-error is the only way to fix SCSI termination problems. However, ensure that there is a maximum of two terminators.

SCSI Hard Drive Boot and Device Driver Requirements

! Listing a conventional hard drive in the CMOS Configuration RAM makes the system BIOS aware of its presence and geometry.

! SCSI hard drives are not listed in the CMOS Configuration RAM because they are not supported by the system BIOS.

! DOS supports a maximum of two floppy drives and two hard drives.

! The default system boot devices are floppy drive A: and hard drive C:. The first hard drive listed in the Configuration RAM is designated as drive C:

! If a system has both a BIOS-supported hard drive and a SCSI hard drive, the BIOS-supported hard drive is automatically designated as drive C:-the system boot device.

The PCMCIA Standard

(Personal Computer Memory Card International Association)

Notebook computer hardware has always been proprietary. Expanding the memory of a notebook computer usually required proprietary credit card style memory cards. The PCMCIA was established to enable manufactures to produce memory expansion and FLash-RAM which are compatible with any notebook computer that has a PCMCIA slot. These products have been expanded to include modems, NICs, SCSI host adapters, sound/Midi, and disk drives.

Currently there are three standard height slots:

Type-1 The original 2-mm high slot designed for SRAM and Flash-RAM.

Type-2 4-mm high slot which supports modems, NICs, and SCSI host adapters.

Type-3 10.5-mm high slot designed to support disk drives. Currently Type-3 drives are available with capacities up to 105-Mbytes. They meet the ATA register set standard.

Type-4 16-mm high slot created by Toshiba. Not yet an official PCMCIA standard. The largest Type-4 drive has a capacity of 215-Mbytes.

Dock-it

Socket Installs in an ISA expansion slot. It enables Type-3 drives to be moved between notebook and desktop computers.

! Many notebook computers have one PCMCIA socket that supports a single Type-1 through Type-3 card.

! Some Type-3 slots are designed to simultaneously support one Type-3 or two, Type-2 cards.

! Newer notebook computers have two separate, Type-3 slots.

Card and Socket Services

Card and Socket Services support is required by cards that fully conform to the PCMCIA standard. These services enable the hot insertion and automatic configuration of PCMCIA cards. The Card and Socket Service drivers are provided by either the manufacturer of the notebook computer or they are bundled with many PCMCIA cards.

Card Services

! Are implemented as several device drivers.

! Employs Socket Services to control multiple cards and multiple slots.

! Provides PCMCIA with power and flexibility to support card recognition and hot insertion.

! Are used by the client driver (a specific PCMCIA adapter device driver) to configure the cards.

! When a PCMCIA card is inserted, the Card Services reads the card ID and looks for its associated client driver.

! It then notifies the client driver that its card has been inserted and configured.

! The client driver can then directly control the card's operation.

! It also notifies the client driver when a card is ejected.

Socket Services

! Driver is proprietary to a specific PCMCIA chip set on the notebook computer. Popular chip sets are manufactured by Intel 82365SL, Vadem, Motorola, and the DataBook TCIC-2/N.

! Isolates the specific socket hardware from higher-level software.

! Provides a hardware independent method of controlling PCMCIA card slots.

! The appropriate Socket Services driver enables the PCMCIA interface to work uniformly with all application programs.

! Cooperates with power management systems to control power to the socket to save battery power and increase the life of the card.

SCSI Desktop Lab:

Objective:

To understand how a SCSI host adapter and hard drive interacts with a DOS-based PC. To determine how the SCSI BIOS ROM, ASPI driver, and hard drive driver is used to support INT13 and INT-19 disk services. To examine a group of ASPI Windows-Based SCSI diagnostics and utilities.

Loaded Software:

DOS versions 5.0 or 6.2

Windows 3.1 or 3.11

1522 ASPI Driver and optional ASPI hard disk driver.

EZ-SCSI for DOS and Windows

Procedures:

1. Boot the system and pause the display after the SCSI BIOS ROM has initialized the host adapter. What does it say about INT-13. In this system configuration does the SCSI drive need a device driver to be recognized by DOS/Windows? Why not? How does this relate to the SCSI Hard Drive Boot Sequence Flow Chart? When would you need a SCSI ASPI hard disk device driver?

2. Run Windows.

a. pen the Adaptec SCSI Group.

b. Double-Click the Adaptec SCSI Interrogator Icon.

c. Double-Click the Hard Drive Icon and examine the SCSI inquiry information. Click OK to close the disk drive inquiry window.

d. Double-Click the Host Adapter Icon and examine the information. Of special interest is the DOS and Windows ASPI managed drivers. Click OK to close the host adapter inquiry window.

e. Close the Adaptec SCSI Interrogator window.

f. Double-Click the AHA-1520/1522 Setup Utility Icon and examine the host adapter jumper settings. It's important to know that this is a dumb utility--it doesn't go out and read the current configuration of the host adapter. The host adapter was installed with the default settings with two exceptions: The floppy controller is disabled and the internal terminators have been removed and replaced with an external terminator. Close the Setup Utility Window.

g. Double-Click the SCSI Tutor Icon and test your knowledge of setting up SCSI devices. Close the SCSI Tutor window.

h. Double-Click the EZ-SCSI File List Icon.

j. What is the name of the 1522 ASPI driver?

i. What is the name of the disk drive driver? What types of R/W disks does it support? Given your current system configuration: IDE C: drive and SCSI D: drive, does this driver need to be installed? Why? What if the BIOS ROM on the Host Adapter was disabled?

ii. What is the name of the CD-ROM driver? What does the /D:{name} option designate? This name is used to link the CD-ROM driver with what other program?

iii. What is AFDISK? When would you need to use it?

iv. What program is used to perform a low-level format on a SCSI drive?

v What files link the DOS ASPI driver to Windows?

vi. Close the EZ-SCSI File List window.

vii Close the Adaptec SCSI Group and Exit Windows.

3. Booting From the Internal SCSI Drive

a. Execute FDISK. Examine the partitions on Drive 1 and Drive 2. Exist FDISK.

b. Use your choice of programs to ensure that the D: drive has the three DOS boot files: IO.SYS, MSDOS.SYS, and COMMAND.COM.

c. Make the SCSI drive the system boot drive without opening the system unit or destroying any data on the IDE drive. For hints refer to the SCSI Hard Drive Boot Sequence flow chart. Remember that your Rescue Diskette has a copy FDISK and DiskEdit if needed!

d. Return your system to the original state, e.g. booting from the IDE drive.

SCSI Notebook Lab

Objective:

Understand how a PCMCIA SCSI Host Adapter, Card and Socket Services, and ASPI driver function. Also examine the drivers and applications provided by Core1SCSI 2.

Loaded Software:

DOS versions 5.0 or 6.2, Windows 3.1 or 3.11

Card and Socket Services and Bus Toaster or Slim SCSI ASPI Driver

Corel SCSI Version 2 for DOS and Windows

Procedure:

1.. Run DOS Edit to examine the Card and Socket drivers in CONFIG.SYS.

2. The PCMCIA slot is on the right side of the Notebook computer near the back. It can be accessed through a small or large hinged door.

3. There are two types of PCMCIA SCSI adapters in use in these notebook computers. The only functional difference between the two are the proprietary connectors; both types of cables terminate in a Centronics 50-pin connector.

4. The New Media Bus Toast SCSI host adapter uses a black cable with a small, keyed connector. Open the small, hinged door to the PCMCIA slot. Gently connect the proprietary Bus Toaster cable to the host adapter with The New Media Corp. Logo on top.

5. The Adaptec Slim SCSI adapter uses a white cable with a large, non-keyed connector. To make room for the large connector pop-up both legs on the bottom of the notebook computer. Open the large, hinged door to the PCMCIA slot and connect the Slim SCSI cable in the orientation that best suits your set-up.

6. Connect the Centronics end of the SCSI cable to the external SCSI drive. Ensure that a terminator is connected to the other SCSI port on the disk drive and apply power.

7. Can a notebook computer boot from the PCMCIA SCSI disk drive? Why Not? Boot the system and run DOS Edit. Remove the REM statements preceding the host adapter ASPI manager and the Corel Universal R/W Drive driver for the hard disk drive. Save the changes and exit the Editor.

8. Reboot the system. Did the ASPI manager detect a SCSI Host Adapter? If not, what are the possible reasons? Fix this problem before proceeding.

9. Did the ASPI manager SCSI bus reset operation detect the Direct Access Drive? If not, what are the possible reasons? Fix this problem before proceeding.

10. Did the universal R/W driver detect the SCSI hard disk drive with non-removable media? If not, what are the possible reasons? Fix this problem before proceeding.

11. Open the File Manager. Verify that your system has two hard drives. Exit File Manager.

12. Open the CorelSCSI 2 Group and note the variety of applications.

13. Double-Click the SCSI Config Icon. As an alternative to command line arguments, Corel employs an INI file. CRLSCSI.INI provides the values to be used with the Corel drivers and applications. How would you increase the number of cache buffers for the Corel CD Extension driver? How would you set the option to force a low-level format whenever a SCSI hard drive is DOS formatted? Close the SCSI Config windows.

14. Double-Click the SCSI Tools Icon. What are the names and SCSI IDs of the devices on the SCSI bus? Is the hard drive a SCSI 1 or SCSI 2 device?

15. Run diagnostics on the hard drive. How would you low-level format the drive? How would you partition the drive? Close the SCSI Tools window and Exit Windows.

16. Run DOS Edit and replace the two REM statements preceding the Bus Toaster ASPI driver and the Corel ASPI hard drive driver. Save the changes and exit the Editor.