`
`OLYMPUS EX. 1006 -1l312
`
`OLYMPUS EX. 1006 - 1/312
`
`
`
`__.__..__.__.
`
`The
`
`SCSI Bus
`and
`IDE Interface
`
`
`
`0
`
`OLYMPUS EX. 1006 - 2/312
`
`
`
`The
`
`SCSIBus
`nda
`
`IDE Interface
`
`Protocols, Applications and Programming
`
`9
`
`Friedhelm §chmidt
`
`Translated by
`J. Michael Schultz
`TransTech Translations
`
`A V
`
`V
`ADDISON-WESLEY
`PUBLISHING
`COMPANY
`
`Wokingham, England 0 Reading. Massachusetts c Menlo Park‘, California - New York
`Don Mills, Ontario 0 Amsterdam - Bonn - Sydney - Singapore
`'
`Tokyo - Madrid 0 San Juan 0 Milan 0 Paris 0 Mexico City,- Seoul - Taipei
`
`
`
`OLYMPUS EX. 1006 - 3/312
`
`
`
`Tit Tats”
`-
`5932
`v.4 u.-
`"f “(ii
`flififilfi
`
`fM
`
`© 1995 Addison-Wesley Publishers Ltd.
`'© 1995 Addison-Wesley Publishing Company Inc,
`
`Translated from the German edition SCSI-Bus and IDE-Schnittstelle
`published by Addison-Wesley (Deutschland) GmbH.
`
`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,
`photoc0pying, recording or otherwise, without prior written permission of the
`publisher.
`
`The programs in this book have been included for their instructional value. They have
`been tested with care but are not guaranteed for any particular purpose. The publisher
`does not offer any warranties or representations nor does it accept any liabilities with
`respect to the programs.
`
`Many of the designations used by manufacturers and sellers 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 8: Partners, Oxford
`and printed by The Riverside Printing Co. (Reading) Ltd.
`Typeset by VAP Group, Kidlington, Oxon.
`‘
`Printed and bound in Great Britain at T.]. 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 IDE mterface/Friedhehn Schmidt; translated by
`Michael Schultz.
`
`p. cm.
`Includes index.
`ISBN 0-201-42284-0
`1._SCSI (Computer bus)
`_
`110895387836 1995
`004.. 6‘2—-dc20
`
`2. IDE (Standard)
`
`I. Title
`
`94-23813
`CIP
`
`
`
`
`
`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 of this book is to fill that void with a clear, con”
`cise description of both interfaces. The essential terminology is introduced,
`while the commands and protocols are broken dOWn in 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 interests. They will find the hardware
`descriptions, such as that of the physical organization of a disk drive, very helpful.
`This book is not meant to replace the ANSI documentation. On the other
`hand, those Specifications are not meant to explain the technology, rather to
`define it. It is very difficult to find your way around in 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 ANSI literature.
`Priedhelm Schmidt
`
`February 1993
`
`
`
`
`
`OLYMPUS EX. 1006 - 5/312
`
`
`
`
`
`Contents
`
`Preface
`
`Part I
`
`Introduction
`
`1 COmputers and peripherals
`1.1 Mass storage
`1.2
`Peripheral interfaces
`
`2. Traditional peripheral interfaces
`2.1
`The RS—232 serial interface
`
`The Centronics printer interface
`2.2
`2.3 Hard disks and their interfaces
`2.4
`ST506
`2.5
`ESDI
`
`3 Computer buses
`3.1
`Characteristics of buses
`
`3.2
`
`Specialized buses
`
`Part II The IDE interface
`
`4 Background
`4.1
`The origin of IDE
`4.2 Overview
`
`4.3 ' Outlook
`4.4 Documentation
`
`5 The physical IDE interface
`5.1
`The electrical interface
`
`5.2
`
`Timing specifications
`
`6
`
`IDE protocol
`6.1
`The register model of the IDE controller
`62 Command execution
`
`6.3
`
`Power~up or hardware reset
`
`.
`
`vi
`
`v
`
`1
`
`3
`4
`5
`
`'7
`7
`
`10
`13
`19
`23
`
`29
`30
`
`32
`
`35
`
`3'7
`37
`38
`
`40
`41
`
`44
`44
`
`47
`
`50
`50
`55
`
`58
`
`OLYMPUS EX. 1006 - 6/312
`
`
`
`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
`9.2 Overview
`9.3 Outlook
`9.4 Documentation
`
`10
`
`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 Synchronous transfers and Fast SCSI
`10.8 Wide SCSI
`
`11
`
`SCSI bus protocol
`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 event notification
`
`12
`
`SCSI commands
`
`12.1 The SCSI target model
`12.2 Command descriptor blocks
`12.3 Commands for all SCSI devices
`
`12.4 Mode parameter pages for all device classes
`
`Contents
`
`vii
`
`60
`60
`62
`63
`64
`
`66
`
`66
`70
`
`75
`
`77
`77
`79
`84
`85
`
`89
`89
`92
`96
`96
`100
`102
`113'
`116
`
`117
`117
`119
`122
`123
`124
`126
`127
`129
`129 -
`
`131
`131
`133
`138
`155
`
`
`
`OLYMPUS EX. 1006 - 7/312
`
`
`
` viii
`
`SCSI Bus and [DE Interface
`
`13
`
`14
`
`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 model of a SCSI tape drive
`14.2 Commands for tape devices
`14.3 Mode parameters for tape devices
`
`15
`
`Printers
`
`15.1 The model of a SCSI printer
`15.2 Printer commands
`
`15.3 Mode parameters for printers
`
`16
`
`Scanners
`
`16.1 The model of a SCSI scanner
`16.2 Scanner commands
`
`16.3 Mode parameters for scanners
`
`1'7
`
`Processor devices
`
`17.1 The model of a SCSI processor device
`17.2 Commands for processor devices
`
`18
`
`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 Commands for 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 SCSI medium-changer device
`21.2 Commands for medium-changers
`21.3 Mode parameter pages for medium-changers
`
`The SCSI monitor program
`
`19
`
`20
`
`21
`
`22
`
`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
`
`
`
`'23
`
`Software interfaces
`
`23.1 The concept of ASPI
`23.2 SCSI request blocks
`23.3 ASPI initialization and function calls
`
`24
`
`25
`
`Test equipment
`24.1 SCSI analyzers
`24.2 SCSI emulators
`
`24.3 Examples from industry
`
`SCSI protocol chips
`25.1 The NCR 5385
`
`25.2 Target applications: EMULEX ESPZOO
`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 SCANSCSI.PAS
`
`Glossary
`Index
`
`Contents
`
`ix
`
`247
`
`248
`248
`253
`
`257
`
`257
`258
`259
`
`262
`263
`264
`266
`
`269
`
`273
`
`276
`
`281
`
`283
`
`290
`295
`
`
`
`OLYMPUS EX. 1006 - 9/312
`
`
`
`
`
`
`
`
`
`UAWEI 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 - 12/312
`
`
`
`
`
`1 Computers and peripherals
`
`A computer can be broken down into a number of 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 mass storage. The data to be processed by the
`program comes either from mass storage or from an input device such as the
`keyboard. The CPU accesses memory at 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, above all, fast.
`
`Serlal
`Interlaca
`
`Parallel
`lnlerlaca
`
`
`
`controller
`
`Hard drive
`controller
`
`Tape drive
`
`Figure 1.1 Computer system with peripheral deviCes.
`
`In contrast to memory, I/O devices and mass storage are located further
`from the CPU, hence the name ’peripherals' (Figure 1.1). Access to such devices
`
`3
`
`OLYMPUS EX. 1006 - 13/312
`
`
`
`SCSI Bus and [DE 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.
`Among the different types of mass storage devices are hard disks, exchangeable
`medium drives, diskettes, optical disks and CD—ROM.
`
`Tape devices
`
`I/O 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.
`
`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 microphones used 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 mass storage 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.
`
` 4
`
`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 always clear, 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
`where all 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 lowest level 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 example of.
`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 command set 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 protocol level. 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 page is 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 command set. 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
`
`
`
`6
`
`SCSI Bus and [DE Interface
`
`Command set
`
`PostScript
`
`Device model
`
`Printer
`
`interface
`
`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 as it 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 uppermost layer 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 like to introduce in
`Chapter 2 a few classic examples of peripheral interfaces. For the most part their
`definitions contain only the lower layers 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
`
`
`
`
`
`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 one bit 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 uncommon situation with
`RS-232C and other serial 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.
`
`OLYMPUS EX. 1006 - 17/312
`
`
`
` 8
`
`SCSI Bus and IDE Interface
`
`The physical
`interface
`
`Mini—R3232 establishes a bidirectional point-to-point connection between
`equipment. Each direction has its own data signal and a single ground signal is
`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).
`
`(always 0)
`
`8 Data ibits
`
`
`
`Signal ground
`
`
`Transmil data Transmlt data“
`25
`Receive data
`Heoelve dale
`
`25
`
`Figure 2.1 Physical interface: mini-R9232.
`
`The connector chosen by the EIA standard is the 25-pin D325. Other con-
`nectors, however, are frequently employed, such as the DB9 for the IBM AT or
`the R111 telephone connector used in various mjnicomputers.
`On the signal lines, 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 O 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 down into bits, which are sent across the line one by one. On
`the other end, the receiver then assembles the bits back into characters. The
`number of bits per character lies between five and eight; eight is precisely what
`is needed to transfer one byte. The data bits are preceded by a start bit and fol-
`lowed by a stop bit. 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 though the data is sent and received
`relative to a clock. Among other serial interfaces the term ’synchronous’ is used
`whenever a clock is involved. For RS-232C, however, the transfer is referred to
`as asynchronous because the clocks 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
`
`
`
` The protocol
`
`Commands
`
`Traditional peripherai 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).
`When the fastest transfer rate possible is employed, namely 115 000 bits per sec-
`ond, the maximum throughput is approximately 11.5 I<bytes per second.
`
`Mini-R3232 has no protocol of its own. However, there is 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 XOFF byte, 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 corresponding to letters,
`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/XOFF protocol is unusable. For connecting monitors and printers, how—
`ever, the protocol is actually very practical.
`
`PC
`
`fllfllflfilfll
`
`fiEllIII
`
`XON
`
`Printer
`
`XOFF
`
`Figure 2.2 XON/XOFF protocol.
`
`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.
`
`There are no commands special to the R9232 interface. As RS—232 was devel-
`oped, commands were designed for specific devices apart from the interface.
`SCSI is among the first interfaces to define universal command sets for whole
`device classes.
`.
`
`Nevertheless, some command sets have been designed for use with RS-
`232. Examples are page formatting languages for printers, such as PostScript.
`
`OLYMPUS EX. 1006 - 19/312
`
`
`
`SCSI 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: RES-232 at
`9600 baud, 1 stop bit, no parity, XON/XOFF protocol, PostScript. If I were to
`change a parameter for 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 that it 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 been officially 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 command set, 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
`interface
`
`Centrorucs uses a shielded twisted-pair cable with 36 signals, of maximum
`length 5 meters (about 16 feet). A 36-pin amphenol connector is used on the
`printer end, which most people have come to refer to as a Centronics connector.
`The computer end of the cable has either a corresponding female Centronics or
`a female D325.
`
`Electrical
`
`specifications
`
`The signal voltages correspond to those for transistor—transistor logic (TTL). A D
`is recognized from 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 DATAl to DATAB.
`'
`
`Data transfer takes place in parallel across signals DATAI to DATAB. 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 belongs to the definition of the physical interface.
`
` 10
`
`OLYMPUS EX. 1006 - 20/312
`
`
`
` Request:l
`
`acknowledge
`handshake
`
`Traditional peripheral interfaces
`
`11
`
`Table 2.1 The signals of the Centronics interface.
`
`Pin
`(Cen)
`
`Pin
`(D325)
`
`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
`
`smosE
`DATA1
`DATAZ
`DATAs
`DATA4
`DATAS
`DATAé
`DATA?
`DATAS
`
`Indicates valid data on DATA1-«8
`Host
`Host Data bit 0
`Host Data bit 1
`Host Data bit 2
`Host Data bit 3
`Host Data bit 4
`Host Data bit 5
`Host Data bit 6
`Host Data bit 7
`
`ACKNLG
`BUSY
`PE
`SELECT
`
`Indicates printer has aCCepted DATA1—8
`Printer
`Indicates printer is not ready for new data
`Printer
`Printer Paper error
`Printer Printer is online
`
`The printer should add a carriage return to each line feed
`
`AUTOFEED Host
`SIGNAL
`GROUND
`CHASSIS
`GROUND
`
`18
`19—30
`
`18—25
`
`+5V
`SIGNAL
`GROUND
`
`Printer +5 V power (50 mA maximum)
`
`31
`32
`36
`
`16
`15
`17
`
`'
`
`IN'IT
`ERROR
`SLCT IN
`
`Initialize printer
`Host
`Printer General error
`Host
`Select printer
`
`DATA1 -8
`
`ACKNLG
`
`STHOBE
`
`BUSY
`
`Figure 2.3 Centronics interface timing.
`
`The transfer of a byte begins when the computer sets the 8 bits on signals DATA1
`to DATAs. 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 printer is 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
`
`
`
`SOS! Bus and IDE interface ‘
`
`data signals and send the next STROBE 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 amount of 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 need at least 4 microseconds (us) in total. If a printer
`were exceptionally fast, it could accept a byte in around 10 us. 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 us for the length of BUSY, which
`allows for a rate no faster than 10 Kbytes per second.
`
`The protocol
`
`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 AU'DOFEED, mm 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 we look at the SCSI bus.
`
`As in the case of RS-232, the Centronics interface itself contains neither a
`device model nor a command set. 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.
`
` 12
`
`OLYMPUS EX. 1006 - 22/312
`
`
`
`
`
`2.3 Hard disks and their interfaces
`
`Traditional peripheral :hterfaces
`
`13
`
`A little history
`
`This section and the following two sections on ST506 and ESDI delve more
`deeply into details than previous sections, because it is here that the foundation
`for understanding IDE and SCSI is 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.
`
`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 SMD interface.
`The name comes from the Storage Module Drives of the company, CDC. CDC
`has since sold its drive production to Seagate. During the late 19805, as a result
`of steady improvements, SMD became the favorite interface for 8 inch high per-
`formance drives. SMD-E, the final version, had a transfer rate of 24 MHz