`
`ADDISON-WESLEY
`
`OLYMPUS EX.1006 - 1/312
`
`OLYMPUS EX. 1006 - 1/312
`
`
`
`—_—_— @ ———_-
`
`The
`SCSIBus
`IDE Interface
`
`OLYMPUS EX.1006 - 2/312
`
`OLYMPUS EX. 1006 - 2/312
`
`
`
`The
`SCSI Bus
`and
`IDE Interface
`Protocols, Applications and Programming
`
`4
`
`Friedhelm Schmidt
`
`Transtated by
`J. Michael Schultz
`TransTech Translations
`
`yX
`vv
`ADDISON-WESLEY
`PUBLISHING
`COMPANY
`
`Wokingham, England « Reading, Massachusetis « Menio Park, California « New York
`Don Mills, Ontario * Amsterdam * Bonn « Sydney © Singapore
`Tokyo Madrid * San Juan Milan e Paris « Mexico City. Seoul © Taipet
`OLYMPUS EX.1006 - 3/312
`
`OLYMPUS EX. 1006 - 3/312
`
`
`
`© 1995 Addison-Wesley Publishers Ltd.
`© 1995 Addison-Wesley Publishing CompanyInc.
`Translated from the German edition SCSL-Bus und IDE-Schnittstelle
`published by Addison-Wesley (Deutschland) GmbH.
`
`TK TEIS
`,eee2
`PiokeCER
`
`All rights reserved. No part of this publication may be reproduced, stored in a retrieval
`system, or transmitted in any form or by any means,electronic, mechanical,
`photocopying, recording or otherwise, without prior written permission of the
`publisher.
`
`The programsin this book have been included for their instructional value. They have
`been tested with care but are not guaranteed for anyparticular purpose. The publisher
`does not offer any warranties or representations nor does it accept any liabilities with
`respect to the programs.
`Manyof the designations used by manufacturers andsellers to distinguish their
`products are claimed as trademarks. Addison-Wesley has made every attempt to
`supply trademark information about manufacturers and their products mentioned in
`
`this book.
`
`Cover designed by Designers & Partners, Oxford
`and printed by The Riverside Printing Co. (Reading) Ltd.
`Typeset by VAP Group, Kidlington, Oxon.
`Printed and boundin GreatBritain at T.J. Press (Padstow) Ltd, Padstow, Cornwall
`
`First printed 1995
`
`ISBN 0-201-42284-0
`
`British Library Cataloguing in Publication Data
`A catalogue record for this book is available from the British Library.
`
`Library of Congress Cataloging-in-Publication Data
`Schmidt. Friedhelm
`(SCSI-Bus und IDE-Schnittstelle. English)
`The SCSI bus and IDEinterface/Friedhelm Schmidt; translated by
`Michael Schultz.
`p. cm.
`Includes index.
`ISBN 0-201-42284-0
`1. SCSI (Computer bus)
`TK7895.B87S36 1995
`004. 6'2--de20
`
`2. IDE (Standard)
`
`I.Title
`
`94-23813
`CIP
`
`OF Cow
`
`
`he, vfLean 5
`neaf
`FEB 1 93 1995
`
`
`"
`cory __
`
`OLYMPUS EX.1006 - 4/312
`
`OLYMPUS EX. 1006 - 4/312
`
`
`
`Preface
`
`The SCSI bus and IDE interface are without question the two most important
`interfaces for computer peripherals in use today. The IDE hard disk interface is
`found almost exclusively in the world of IBM PC compatibles. The SCSI bus, on
`the other hand, is designed not only for hard drives but also for tape drives, CD-
`ROM,scanners, and printers. Almost all modern computers, from PCs to work-
`stations to mainframes, are equipped with a SCSI interface.
`Both SCSI and IDE are ANSI standards. However, aside from the actual
`ANSI documentation, there exists almost no additional reference material to
`either specification. The purpose ofthis bookisto fill that void with a clear, con-
`cise description of both interfaces. The essential terminology is introduced,
`while the commands and protocols are broken downin full. In the interest of
`economy the less important details and options have been omitted in certain
`cases. Often a specific section in the ANSI documentation will be cited for easy |
`cross-referencing. After reading this book you should be in the position to easily
`understand relevant technical documentation, including the ANSI specifications
`themselves.
`First and foremost, a thorough introduction to the terminology is in
`order. Especially with respect to SCSI, there is a deluge of terms and definitions —
`that are used nowhere else or are used differently than in other computer
`domains. These keywords, which include signal names and interface com-
`mands, are typeset in small capital letters, for example FORMAT UNIT.
`This book is intended for readers with a broad range of technical back-
`grounds and interests. Those working on the design of mass storage devices, for
`example, will find the protocol descriptions extremely useful. Readers writing soft-
`ware or device drivers may have other interesis. They will find the hardware
`descriptions, such as that of the physical organization of a disk drive, very helpful.
`This book is not meantto replace the ANSI documentation. On the other
`hand, those specifications are not meant to explain the technology, rather to
`defineit. It is very difficult to find your way aroundin the original documenta-
`tion without an understanding of the subject matter. The book’s thorough, in-
`depth descriptions, along with index and glossary, make it the perfect tutor for
`IDE and SCSI, as well as a helpful guide to the ANSIliterature.
`Friedhelm Schmidt
`February 1993
`
`
`
`
`
`OLYMPUS EX.1006 - 5/312
`
`OLYMPUS EX. 1006 - 5/312
`
`
`
`Contents
`
`Preface
`
`Part I
`
`Introduction
`
`Computers and peripherals
`1.1. Mass storage
`1.2
`Peripheral interfaces
`
`Traditional peripheral interfaces
`2.1
`The RS-232 serial interface
`2.2
`The Centronics printer interface
`2.3 Hard disks and their interfaces
`2.4
`ST506
`2.5
` ESDI
`
`Computer buses
`3.1
`Characteristics of buses
`3.2
`Specialized buses
`
`PartII
`
`The IDE interface
`
`Background
`The origin of IDE
`4.2 Overview
`4.3. Quilook
`4.4 Documentation
`
`The physical IDE interface
`5.1
`Theelectrical interface
`5.2
`Timing specifications
`
`IDE protocol
`6.1
`The register model of the IDE controller
`6.2 Command execution
`6.3
`Power-up or hardware reset
`
`;
`
`G1&GW
`
`10
`13
`19
`23
`
`29
`
`30
`32
`
`35
`
`37
`
`38
`40
`41
`
`47
`
`50
`
`55
`
`58
`
`vi
`
`OLYMPUS EX.1006 - 6/312
`
`OLYMPUS EX. 1006 - 6/312
`
`
`
`77
`77
`79
`84
`85
`
`89
`
`92
`96
`
`100
`102
`113°
`116
`
`w17
`
`7 1
`
`19
`122
`123
`124
`126
`127
`129
`129 -
`
`131
`131
`133
`138
`155
`
`Contenis
`
`The model of an IDE disk drive
`7.1 Organization of the medium
`7.2 Defect management
`7.3
`The sector buffer
`7.4
`Power conditions
`
`IDE commands
`8.1 Mandatory commands
`8.2 Optional commands
`
`Part III
`
`The SCSI bus
`
`Background
`9.1
`The evolution of SCSI
`92 Overview
`9.3 Outlook
`9.4 Documentation
`
`10
`
`11
`
`12
`
`SCSI hardware
`10.1 SCSI configurations
`10.2 SCSI signals
`10.3 Cables and connectors
`10.4 Single-ended SCSI
`10.5 Differential SCSI
`10.6 SCSI bus phases
`10.7 Synchronoustransfers and Fast SCSI
`10.8 Wide SCSI
`
`SCSI busprotocol
`11.1 The message system
`11.2
`I/O processes
`11.3 SCSI pointers
`11.4 Disconnect-reconnect: freeing the bus
`11.5 Transfer options
`11.6 Tagged queues
`11.7 Termination of I/O processes
`11.8 Error handling in the message system
`11.9 Asynchronous eventnotification
`
`SCSI commands
`12.1 The SCSI target model
`12.2. Commanddescriptor blocks
`12.3 Commandsfor all SCSI devices
`12.4 Mode parameter pagesfor all device classes
`
`OLYMPUS EX
`
`. 1006 - 7/312
`
`OLYMPUS EX. 1006 - 7/312
`
`
`
`viii
`
`SCS! Bus and IDE Interface
`
`13
`
`14
`
`15
`
`16
`
`17
`
`18
`
`19
`
`20
`
`21
`
`Direct access devices
`13.1 The model of a SCSI disk drive
`13.2. Hard disk commands -
`13.3. Mode parameter pages for disk drives
`
`Tape drives
`14.1 The modelof a SCSI tape drive
`14.2 Commandsfor tape devices
`14.3 Mode parameters for tape devices
`
`Printers
`15.1 The model of a SCSI printer
`15.2 Printer commands
`15.3 Mode parametersfor printers
`
`Scanners
`16.1 The model of a SCSI scanner
`16.2 Scanner commands
`16.3 Mode parameters for scanners
`
`Processor devices
`17.1 The model of a SCSI processor device
`17.2. Commands for processor devices
`
`Communications devices
`18.1 The model of a SCSI communications device
`18.2 Commands for SCSI communications devices
`18.3. Mode parameter pages for communications devices
`
`Optical storage and WORM drives
`19.1 The SCSI model of optical storage
`19.2 Commandsfor optical storage and WORM drives
`19.3 Mode parameters for optical storage
`
`CD-ROM
`20.1 The model of a SCSI CD-ROM drive
`20.2. Commands for CD-ROM
`20.3 Audio commands for CD-ROM
`20.4 Mode parameters for CD-ROMs
`
`Medium-changer devices
`21.1 The model of a SCS! medium-changer device
`21.2 Commands for medium-changers
`21.3 Mode parameter pages for medium-changers
`
`22
`
`The SCSI monitor program
`
`158
`158
`165
`
`173
`
`180
`180
`184
`190
`
`193
`
`193
`194
`197
`
`200
`
`200
`202
`204
`
`206
`206
`207
`
`210
`210
`211
`213
`
`214
`214
`215
`220
`
`222
`222.
`224
`227
`229
`
`233
`
`233
`235
`237
`
`240
`
`OLYMPUS EX
`
`. 1006 - 8/312
`
`OLYMPUS EX. 1006 - 8/312
`
`
`
`23
`
`«Software interfaces
`23.1 The concept of ASPI
`23.2 SCSI request blocks
`23.3 ASPI initialization and function calls
`
`Contents
`
`ix
`
`247
`248
`248
`253
`
`24=Test equipment 257
`
`24.1 SCSI analyzers
`257
`24.2 SCSI emulators
`258
`24.3 Examples from industry
`259
`
`25
`
`SCSI protocol chips
`25.1 The NCR 5385
`25.2 Target applications: EMULEX ESP200
`25.3. PC host adapters: FUTURE DOMAIN TMC-950
`
`Appendix A SCSI commands(by opcode)
`
`Appendix B
`
`SCSI commands(alphabetically)
`
`Appendix C
`
`SCSI sense codes
`
`Appendix D The SCSI bulletin board
`
`Appendix E
`
`Source code for SCANSCSLPAS
`
`Glossary
`Index
`
`262
`263
`264
`266
`
`269
`
`273
`
`276
`
`281
`
`283
`
`290
`295
`
`OLYMPUS EX.1006 - 9/312
`
`OLYMPUS EX. 1006 - 9/312
`
`
`
`
`
`
`
`
`
`UAWEI EX. 1006 - 10/312
`
`OLYMPUS EX. 1006 - 10/312
`
`OLYMPUS EX. 1006 - 10/312
`
`
`
`Part I
`Introduction
`
`1 Computers and peripherals
`2
`‘Traditional peripheral interfaces
`3 Computer buses
`
`OLYMPUS EX. 1006 - 11/312
`
`OLYMPUS EX. 1006 - 11/312
`
`
`
`OLYMPUSEX.1006 - 12/312
`
`OLYMPUS EX. 1006 - 12/312
`
`
`
`1 Computers and peripherals
`
`A computer can be broken down into a numberof interdependent functional
`blocks. The most important of these are the central processing unit (CPU), main
`memory,
`input/output (I/O) and mass storage. The CPU executes the
`instructions of a program, which, along with the necessary data, must reside in
`main memory at execution time. Therefore, before a program can be run it must
`be loaded into main memory from massstorage. The data to be processed by the
`program comeseither from mass storage or from an input device such as the
`keyboard. The CPU accesses memoryat least once for each program step in order
`to read the corresponding machine instructions. In fact, several accesses are
`usually necessary to read and write data. For this reason the CPU and memory
`are very tightly coupled: access is uncomplicated and, aboveall, fast.
`
`Parallel
`interlace
`
`
`
`controller
`
`Hard drive
`controller
`
`Tape drive
`
`Figure 1.1 Computer system with peripheral devices.
`
`In contrast to memory, I/O devices and massstorage are located further
`from the CPU, hence the name‘peripherals’ (Figure 1.1). Access to such devices
`
`3
`
`OLYMPUS EX.1006 - 13/312
`
`OLYMPUS EX. 1006 - 13/312
`
`
`
`4
`
`SCS! Bus and IDE Interface
`
`is slower and more complicated. Communication with the peripherals is
`accomplished using an interface such as SCSI or IDE. On the other end of the
`interface is a controller, which in turn communicates with the CPU and memory.
`
`1.1 Mass storage
`
`A mass storage device is capable of storing data many times the size of main
`memory. In addition, information stored here is nonvolatile: when the device is
`turned off the data remains intact.
`
`Hard disks Disk drives or hard disks store information by writing it onto rotating disks. The
`information is divided up into blocks of fixed length, each of which can be
`accessed relatively quickly, typically around 30 milliseconds (ms). For this
`reason hard disks are also referred to as random access mass storage devices.
`Amongthe different types of mass storage devices are hard disks, exchangeable
`medium drives, diskettes, optical disks and CD-ROM.
`
`Tape devices
`
`In contrast to hard disks, tape devices (or tape drives) write data sequentially
`onto magnetic tape. The length of time needed to access a specific block of
`information depends on which position is presently underneath the read/write
`head.If it is necessary to rewind or fast forward the tape a very long distance, a
`tape access can take as long as several minutes. Tape drives are also known as
`sequential mass storage devices. Among these are the traditional reel-to-reel
`drives, cassette drives, drives that use video cassettes for recording and 4mm
`digital audio tape (DAT) drives.
`
`I/O devices Under the heading I/O devices are the monitor and keyboard used for
`communication between the user and the computer. Further examples of output
`devices are printers, plotters and even speakers used for outputting speech.
`Among the many input devices are mice, analog to digital converters, scanners
`and microphonesused in speech recognition.
`Network connections also fall into this category. This is especially so
`today where mass storage is often replaced by a file server across a network.
`Computers with no massstorage of their own are called diskless workstations.
`
`Miscellaneous
`devices
`
`There are many more devices that exchange data with computers, although one
`hardly refers to a computer controlled lathe or a music synthesizer as a
`computer peripheral. Nevertheless,
`they function as peripherals and
`communicate with the computer using I/O.
`
`OLYMPUS EX. 1006 - 14/312
`
`OLYMPUS EX. 1006 - 14/312
`
`
`
`1.2 Peripheral interfaces
`
`Computers and peripherals
`
`5
`
`Peripheral devices are connected to computer systems via interfaces. The
`abstract model of a peripheral interface is made up of many layers,
`the
`boundaries of which are not alwaysclear, especially for older interfaces.It is also
`true that some layers are omitted in certain interface definitions. In this book I
`adhere to a model with four layers for the SCSI interface, as was agreed upon by
`the American National Standards Institute (ANSI) committee for the first time
`for SCSI-3. The strata of layers are designed bottom up. All low level layers are
`mandatory for the implementation of an interface. An uppermost layer,
`however, can be omitted in some cases. A high level interface refers to the case
`whereall possible levels have been implemented.
`Among those things defined in the lowest level are cable and connector
`types. Also defined are the signal voltages and the current requirements of the
`drivers. Finally, the timing and coordination of all of the signals of the bus are
`described here. This lowestlevel is referred to as the physical interface.
`Directly above the physical layer resides the protocol layer. The protocol
`of an interface contains, for example, information about the difference between
`data bytes and command bytes and about the exchange of messages between
`devices. If corrupted data is to be corrected through the use of error correction,
`this is described in the interface protocol.
`On top of the protocol layer lies the peripheral device model. Here the
`behavior of devices to be connected to the interface is described. These
`descriptions can be very detailed and precise. The SCSI bus is an exampleof.
`such a detailed model, where in addition to the characteristics of general
`purpose SCSI devices, those of hard disks, tape drives, printers and so on are
`defined.
`Finally, some interfaces go so far as to define which commands must be
`understood by the interface devices. The commandset builds upon the device
`model and represents the fourth layer of the interface.
`The term ‘interface’ always refers to all implemented layers in their
`entirety. There are distinct peripheral interfaces defined using the same physical
`level but a unique protocollevel. It is also possible for a single interface to allow
`for different options in the physical level.
`The interface used for printers is a good example of a four-layer
`interface. Figure 1.2 makes the relationships among the layers clear. The two
`lower levels are covered by the Centronics interface. This parallel interface
`contains the definition of the physical and protocol layers. The particular printer
`model in Figure 1.2 is a page printer. This means that the printer constructs an
`entire page in internal memory before printing it. In contrast to line printers, the
`lines of a page can be sent in any order as long as a page boundary is not crossed.
`However, once a pageis printed it is impossible to retrieve it in order to make
`changes.
`The page description language PostScript is an excellent example of a
`large and complex commandset. It is built upon the page printer model and
`makes it possible to output text as well as various graphic elements. These
`elements can be positioned freely on the current page. Naturally, there are other
`
`OLYMPUS EX. 1006 - 15/312
`
`OLYMPUS EX. 1006 - 15/312
`
`
`
`6
`
`SCS! Bus and IDE Interface
`
`interface
`
`Command set
`
`PostScript
`
`Device mode!
`
`Printer
`
`Protocol
`
`Physical
`
`- + Centronics...
`
`Figure 1,2 Layers of a printer interface.
`
`such page formatting languages written for the page printer model. This makes
`the division between device and language very intuitive.
`As you can see, this interface is complete in that it contains all four
`interface layers. If you purchase a printer with such an interface, it makes no.
`difference which brand name you choose. As long asit is true to the interface
`specification it will work with any computer also equipped with the printer
`interface. However, if you were to omit even only the uppermostlayer of the
`specification, then the interface description would be incomplete. It would still
`be possible to connect up. the printer, but whether it would function properly
`would be a matter of luck.
`The IDE interface and the SCSI bus are likewise complete interface
`definitions. Before getting. to these, however, I would liketo introduce in
`Chapter 2 a few classic examples of peripheral interfaces. For the most part their
`definitions contain only the lowerlayers of the interface model. This chapter will
`help to underscore the difference between traditional interfaces on the one hand
`and the complete IDE and SCSI interfaces on the other.
`
`OLYMPUS EX. 1006 - 16/312
`
`OLYMPUS EX. 1006 - 16/312
`
`
`
`2 Traditional peripheral
`interfaces
`
`This chapter will help to familiarize you with several classic peripheral inter-
`faces of the computer industry. As with the printer interface outlined in Chapter
`1, these will be described within the framework of the layered interface model.
`These descriptions are by no means comprehensive; complete specifications
`would turn this book into several volumes.
`I have two goals in mind in presenting these interfaces. First of all, the
`interfaces are very simple; they will allow you to become acquainted with inter-
`face characteristics that are valid for all interfaces, including computer buses.
`Secondly, to a certain degree these specifications are the forerunners of competi-
`tion to the IDE and SCSI bus interfaces. A background in the more traditional
`interfaces will make it much easier to evaluate and understand their modern
`descendants, the main topic of this book.
`
`2.1 The RS-232 serial interface
`
`RS-232C is the most widely used serial interface. ‘Serial’ means that the data is
`transferred onebit at a time across a single connection. RS-232C is used mainly
`for the connection of computer terminals and printers. Nonetheless,it is also
`appropriate for the exchange of data between computers. Machine tools and
`measurement instruments are frequently connected to computers using RS-
`232C, Understandably, it is not a device specific interface. RS-232C is the respon-
`sibility of the Electronic Industries Association (EIA).
`The specification for RS-232C contains the physical layer and hardware
`protocol. In addition, there are software protocols, of which only a few build on
`top of the RS-232 hardware protocol. This leads to an uncommonsituation with
`RS-232C and otherserial interfaces — not all applications use all of the signals.
`Frequently cables are used that conduct only a few of the defined signals,a sit-
`uation that would be unthinkable for IDE or SCSI. I concentrate here on a varia-
`tion of the interface using only three signals, which I call mini-RS-232.
`
`7
`
`OLYMPUS EX. 1006 - 17/312
`
`OLYMPUS EX. 1006 - 17/312
`
`
`
`8
`
`SCS! Bus and IDE Interface
`
`The physical Mini-RS-232 establishes a bidirectional point-to-point connection between
`interface
`equipment. Each direction has its own data signal and a single groundsignalis
`shared. The data signals are called TD (transmit data) and RD (receive data).
`When two devices are coupled to each other, these signals are crossed such that
`the TD of one device connects to the RD of the other (Figure 2.1).
`
`o5
`
`Start bit
`{always 0)
`
`8 Data bits
`
`Stop bit
`(always 1)
`
`Signal ground
`
`Receive data
`
`Receive dala
`
`Figure 2.1 Physical interface: mini-RS-232.
`
`The connector chosen by the EIA standardis the 25-pin DB25. Other con-
`nectors, however, are frequently employed, such as the DB9 for the IBM AT or
`the RJ11 telephone connector used in various minicomputers.
`Onthe signallines, a logical 1 is represented by a voltage between +5 V
`and +15 V, and the receiver recognizes anything above +3 V as such, Likewise,
`logical 0 is represented by a signal voltage between —5 V and —15 V. Again, the
`receiver recognizes any signal below —3 V as such.
`Data transfer takes place serially, character by character. The characters
`are further broken downinto bits, which are sent across the line one by one. On
`the other end, the receiver then assembles the bits back into characters. The
`numberof bits per character lies between five and eight; eight is precisely what
`is needed to transfer one byte. The data bits are preceded byastart bit and fol-
`lowed bya stopbit. In addition, a parity bit may be sent for error detection. The
`transfer rate-can range between 75 and 115 000 bits per second (baud), and a
`cable alone cannot compensate for different transfer rates; the devices must be
`set at the same speed otherwise no exchange of data can take place.
`Now comes a rather confusing point: this method of transfer over the
`serial interface is called asynchronous even thoughthe data is sent and received
`relative to a clock. Amongotherserial interfaces the term ‘synchronous’is used
`whenevera clock is involved. For RS-232C, however, the transfer is referred to
`as asynchronous because theclocks are not tied to each other. The RS-232C spec-
`ification includes signals that allow the sender and the receiver to use the same
`clock for data transfer. When these signals are employed the data transfer is
`&
`
`OLYMPUS EX. 1006 - 18/312
`
`OLYMPUS EX. 1006 - 18/312
`
`
`
`Traditional peripheral interfaces
`
`9
`
`referred to as synchronous. True asynchronous transfer uses control signals to
`exchange data. This point, among others, will be made clear in Section 2.2.
`As a rule of thumb, when thinking about data throughput you can con-
`sider a byte or character to be 10 bits (one stop, one start and eight data bits).
`Whenthefastest transfer rate possible is employed, namely 115 000 bits per sec-
`ond, the maximum throughputis approximately 11.5 Kbytes per second.
`
`The protocol Mini-RS-232 has no protocolof its own. However, thereis a protocol that is often
`used with the interface, called the XON/XOFF protocol (Figure 2.2). It works in
`the following way. When the receiving device is no longer able to take on data
`from the sender, it sends a special character, an XOFFbyte, to indicate this, Later,
`when it is ready to continue receiving data, it sends an XON byte to tell the
`sender to proceed. This protocol is in no way error proof — characters are some-
`times lost. In addition, the protocol cannot be used for bidirectional transfer of
`binary data. The reason for this restriction is simple: for text data only a subset
`of the possible bytes is sent over the interface, those correspondingtoletters,
`numbers, and symbols. This leaves room for a number of special characters, of
`which XON and XOFF are examples. When, on the other hand, binary data is
`transferred, the data is not restricted to certain characters; any binary pattern
`may occur. In this situation there is no room for the special characters and the
`XON/XOFFprotocol is unusable. For connecting monitors and printers, how-
`ever, the protocol is actually very practical.
`
`po
`
`Srfnfifstfils}fal|
`
`Tlefsieyft
`
`/
`
`XON
`
`Printer
`
`XOFF
`
`Figure 2.2, XON/XOFFprotocol.
`
`An example of a higher level protocol for the transfer of binary data(file
`transfer) is Kermit. This public domain program can be used at no cost for non-
`commercial purposes. A number of computer manufacturers have also devel-
`oped their own internal protocols built on top of RS-232.
`
`Commands
`
`There are no commandsspecial to the RS-232 interface. As RS-232 was devel-
`oped, commands were designed for specific devices apart from the interface.
`SCSI is amongthe first interfaces to define universal command sets for whole
`device classes.
`Nevertheless, some commandsets have been designed for use with RS-
`232. Examples are page formatting languages for printers, such as PostScript.
`
`OLYMPUS EX. 1006 - 19/312
`
`OLYMPUS EX. 1006 - 19/312
`
`
`
`10
`
`SCS! Bus and IDE interface
`
`Summary As you can see, an interface that builds on top of RS-232 has many possible vari-
`ations. The complete description of-my printer-PC interface would be: RS-232 at
`9600 baud, 1 stop bit, no parity, XON/XOFF protocol, PostScript. If I were to
`change a parameterfor only the printer or only the PC, for example by not send-
`ing PostScript or starting to use a parity bit, nothing would print. Although
`mini-RS-232 appears to be simple (only three wires), there are almost an
`uncountable number of ways in which the connection can fail. What is missing
`is a protocol that allows the devices to agree upon the available options.
`Although RS-232 has given a good portion of frustration to just about everyone
`who has worked with it, it nonetheless has the decided advantage thatit exists
`on every computer and is also device independent.
`
`2.2 The Centronics printer interface
`
`The Centronics interface is a parallel interface developed for printers. It is an
`industry standard that, to my knowledge, has never beenofficially approved. As
`a result there are many variations. This is especially so with respect to the status
`signals that reflect the printer’s current state. Centronics defines the physical
`interface and the protocol. As a commandset, either PostScript or another print-
`er language is used.
`Originally developed as a unidirectional interface, the parallel printer
`link for PCs can also be used bidirectionally. This extension is not our concern
`here. We are interested in Centronics mostly as another example of the various
`computer interfaces. However,it is also a good idea to know this interface in
`order to understand the difference from SCSI printers (see Figure 2.3).
`
`The physical Centronics uses a shielded twisted-pair cable with 36 signals, of maximum
`interface
`length 5 meters (about 16 feet). A 36-pin amphenol connector is used on the
`printer end, which most people have cometo refer to as a Centronics connector.
`The computer end of the cable has either a corresponding female Centronics or
`a female DB25.
`
`Electrical
`specifications
`
`The signal voltages correspond to thosefor transistor—transistor logic (TTL). A 0
`is recognizedfrom 0 V to +0.8 V, a 1 from +2.4 V to +5.0 V. Table 2.1 lists the sig-
`nals of the Centronics interface. Note that I have described the data signals start-
`ing with 0; that is, using the logical names. The actual signal names, however,
`are DATA1 tO DATAS.
`Data transfer takes place in parallel across signals DaTA1 to DaATA8. The
`signals STROBE, BUSY and ACKNLG control the sequencing, which is shown in
`Figure 2.3. The term ‘protocol’ does not apply completely here. Relative to our
`layer model, this timing belongsto the definition of the physical interface.
`
`OLYMPUS EX.1006 - 20/312
`
`OLYMPUS EX. 1006 - 20/312
`
`
`
`Traditional peripheral interfaces
`
`11
`
`Table 2.1 The signals of the Centronics interface.
`
`Pin
`(Cen)
`
`Pin
`(DB25)
`
`Signal
`
`Source
`
`Description
`
`1
`2
`3
`4
`5
`6
`7
`8
`9
`10
`11
`12
`13
`14
`
`1
`2
`3
`4
`5
`6
`7
`7
`9
`10
`11
`12
`13
`14
`16
`
`17
`
`18
`19-30 18-25
`
`31
`32
`36
`
`*
`
`16
`15
`17
`
`Host
`STROBE
`Host
`DATA1
`Host
`DATA2
`Host
`DATA3
`Host
`DATA4
`Host
`DATA5
`Host
`DATA6
`Host
`-DATAY
`Host
`DATAS
`Printer
`ACKNLG
`Printer
`BUSY
`Printer
`PE
`Printer
`SELECT
`AUTOFEED Host
`SIGNAL
`GROUND
`CHASSIS
`GROUND
`+5V
`SIGNAL
`GROUND
`INIT
`ERROR
`SLCT IN
`
`Host
`Printer
`Host
`
`Printer
`
`Indicates valid data on DATA1-8
`Data bit 0
`Data bit 1
`Data bit 2
`Data bit 3
`Data bit 4
`Data bit 5
`Data bit 6
`Data bit 7
`Indicates printer has accepted DATA1-8
`Indicates printer is not ready for new data
`Papererror
`Printer is online
`Theprinter should add a carriage return to each line feed
`
`+5 V power (50 mA maximum)
`
`Initialize printer
`General error
`Select printer
`
`DATA1-8
`
`STROBE
`
`
`
`BUSY
`
`ACKNLG
`
`Figure 2.3 Centronics interface timing.
`
`Request/
`acknowledge
`handshake
`
`Thetransfer of a byte begins when the computersets the 8 bits on signals DATA1
`to paTas. After waiting for at least a microsecond,it then activates a pulse across
`STROBE, which indicates that there is valid data on the data lines. In response, the
`printer sets BUSY and reads the data byte. As soon as the byte has been success-
`fully read and the printeris ready to receive the next byte, it clears the BUSY sig-
`nal and sends a pulse across the ACKNLG line. Now the computer may change the
`
`OLYMPUS EX. 1006 - 21/312
`
`OLYMPUS EX. 1006 - 21/312
`
`
`
`12
`
`SCS! Bus and IDEinterface —
`
`data signals and send the next sTrosE for the next byte. This method of data
`transfer, where a signal is used to indicate a request (here STROBE) and another to
`acknowledge that request (here ACKNLG), is called asynchronous. The mecha-
`nism itself is termed request/acknowledge handshake.
`
`Throughput
`
`Throughput, or the amountof data transferred per second, is dependent upon
`how long the printer leaves its Busy signal active for each byte. The other signals
`involved in the handshake needat least 4 microseconds(ps) in total. If a printer
`were exceptionally fast, it could accept a byte in around 10 ys. This would cor-
`respond to a data rate of 100 Kbytes per second. The handbook for my laser
`printer reports a value of approximately 100 ys for the length of Busy, which
`allowsfor a rate no faster than 10 Kbytes per second.
`
`The protecol
`
`The Centronics interface protocol is very simple. The flow of data is solely the
`responsibility of the physical layer. When the printer is not able to receive data
`it simply holds Busy active. There are, however, a couple of status signals that
`reflect the printer’s status. These fall under the category of message exchange,
`which places them in the protocol layer. These signals are PE, SELECT, and ERROR.
`In addition to these are the control signals AUTOFEED, INIT, and SLCT IN. All of
`these signals are described in Table 2.1.
`
`Summary
`
`The Centronics printer interface is our first example of a device specific inter-
`face. The method of data transfer is very similar to many parallel interfaces.
`Nevertheless, the status signals for end of paper and carriage return pertain
`strictly to printers. Although this is the case, devices have been developed that
`use Centronics as a general purpose parallel interface simply by ignoring the
`printer specific signals. Examples of these include network adapters and disk
`drives.
`
`The data transfer is parallel and asynchronous, controlled by the hand-
`shaking signals STROBE/ACKNLG. The transfer rate is dependent on the speed of
`the printer: the faster the printer is able to activate its ACKNLG signal, the higher
`the transfer rate. This characteristic of asynchronous transfer will appear again
`when welook at the SCSI bus.
`As in the case of RS-232, the Centronics interface itself contains neither a
`device model nor a commandset. As shown in Figure 1.2, all components are
`necessary in order to define a complete printer interface. On the other hand, the
`interface as it stands is flexible. There are even tape back-up devices that take
`advantage of this very adaptable interface.
`Centronics, like RS-232, establishes a point-to-point connection between
`devices. This means that only a single printer can be used for each interface
`because the ability to address different devices is lacking. This new feature
`belongs to the next interface we will discuss.
`
`OLYMPUS EX.1006 - 22/312
`
`OLYMPUS EX. 1006 - 22/312
`
`
`
`Traditional peripheral interfaces
`
`13
`
`2.3 Hard disks and their interfaces
`
`This section and the following two sections on ST506 and ESDI delve more
`deeply into details than previous sections, becauseit is here that the foundation
`for understanding IDE and SCSIis laid. If you are not well acquainted with the
`internals and workings of hard disks, you will find this section especially inter-
`esting. Here, you will learn the terminology of the disk drive domain.
`
`A little history Disk drive interfaces were standardized early on. Beginning in 1975, drives with
`a diameter of 14 inches and then 8 inches were shipped with the SMDinterface.
`The name comes from the Storage Module Drives of the company, CDC. CDC
`has since sold its drive