Documentation for ATAID (AT Attachemnt Identification) Program Table of contents 1. History 3 2. Connectors 3 2.1. Power connector 3 2.2. Interface Connector 3 2.3. I/O cable 3 3. Signal descriptions 4 3.1. Connections 4 3.2. CS0- (CHIP SELECT 0) 5 3.3. CS1- (CHIP SELECT 1) 5 3.4. DA2, DA1, and DA0 (DEVICE ADDRESS BUS) 5 3.5. DASP- (DRIVE ACTIVE, SLAVE (DRIVE 1) PRESENT) 5 3.6. DD0-DD15 (Drive data bus) 5 3.7. DIOR- (Drive I/O read) 5 3.8. DIOW- (Drive I/O write) 5 3.9. DMACK- (DMA acknowledge) (Optional) 5 3.10.DMARQ (DMA request) (Optional) 5 3.11.INTRQ (Drive interrupt) 6 3.12.IOCS16- (Drive 16-bit I/O) 6 3.13.IORDY (I/O channel ready) (Optional) 6 3.14.PDIAG- (Passed diagnostics) 6 3.15.RESET- (Drive reset) 6 3.16.SPSYNC:CSEL (Spindle synchronization/cable select)Optional) 6 4. Drive Addressing 7 1. History When the IBM PC-AT was introduced it's key to good performance was the inclusion of a hard disk. The PC AT Bus interface is a widely used and implemented interface for which a variety of peripherals have been manufactured. in order to reduce size and cost, a the controller was eventually embedded in the drive. Because of their compatibility with existing AT hardware and software this interface quickly became a de facto industry standard. While the AT Attachment Interface has its roots in the PC AT Bus, its use has extended to many other systems. The interface in use became widespread and as with all good electronics devices, need room to change. Laptop makers wanted to change the physical connector design, system builders wanted to reduce cost through integration. Everyone wanted better perfromance, and additional devices such as CD-ROM and tape drives became more popular, so a number of revisoins were made, are are being proposed for future enhancements. The standard defines an integrated bus which interfaces between disk drives and/or other types of devices and host processors. It provides a common point of attachment for systems manufacturers, system integrators, and suppliers of intelligent peripherals. 2. Connectors 2.1. Power connector Power line designation Pin number +12V 1-01 +12V Return 1-02 +5V Return 1-03 +5V 1-04 Recommended part numbers for the mating connector to 18 AWG cable are shown below, but equivalent parts may be used. Connector (4 pin) AMP 1-480424-0 or equivalent. Contacts (loose piece) AMP 60619-4 or equivalent. Contacts (strip) AMP 61117-4 or equivalent. 2.2. Interface Connector +-----------------------+ | 1| |40 20 2| ======= Circuit board ======= ==-==== Circuit board ====-== | 1| |40 20 2| +-----------------------+ Figure 2 - 40-Pin Connector Mounting Recommended part numbers for the mating connector are shown below, but equivalent parts may be used. Connector (40 pin) 3M 3417-7000 or equivalent. Strain relief 3M 3448-2040 or equivalent. 2.3. I/O cable The cable specifications affect system integrity and the maximum length that can be supported in any application. Flat cable (stranded 28 AWG) 3M 3365-40 or equivalent. Flat cable (stranded 28 AWG) 3M 3517-40 (shielded) or equivalent. Cable length of 0,46m (18 inches). This distance may be exceeded in circumstances where the characteristics of both ends of the cable can be controlled. Cable capacitance shall not exceed 35 pF. 3. Signal descriptions 3.1. Connections the electrical interface is uses TTL compatable tramitters/recievers and a 40 conductor ribbon cable. the pin numbers are shown below: +========================+=============+====+===========+ | Description | Source |Pin | Acronym | +------------------------+-------------+----+-----------+ | Reset | Host | 1 | RESET- | | | n/a | 2 | Ground | | Data bus bit 7 | Host/Device | 3 | DD7 | | Data bus bit 8 | Host/Device | 4 | DD8 | | Data bus bit 6 | Host/Device | 5 | DD6 | | Data bus bit 9 | Host/Device | 6 | DD9 | | Data bus bit 5 | Host/Device | 7 | DD5 | | Data bus bit 10 | Host/Device | 8 | DD10 | | Data bus bit 4 | Host/Device | 9 | DD4 | | Data bus bit 11 | Host/Device | 10 | DD11 | | Data bus bit 3 | Host/Device | 11 | DD3 | | Data bus bit 12 | Host/Device | 12 | DD12 | | Data bus bit 2 | Host/Device | 13 | DD2 | | Data bus bit 13 | Host/Device | 14 | DD13 | | Data bus bit 1 | Host/Device | 15 | DD1 | | Data bus bit 14 | Host/Device | 16 | DD14 | | Data bus bit 0 | Host/Device | 17 | DD0 | | Data bus bit 15 | Host/Device | 18 | DD15 | | Ground | n/a | 19 | Ground | | (keypin) | n/a | 20 | Reserved | | DMA Request | Device | 21 | DMARQ | | Ground | n/a | 22 | Ground | | I/O Write | Host | 23 | DIOW- | | Ground | n/a | 24 | Ground | | I/O Read | Host | 25 | DIOR- | | Ground | n/a | 26 | Ground | | I/O Ready | Device | 27 | IORDY | | Spindle Sync or | (note 1) | 28 | SPSYNC: | | Cable Select | | | CSEL | | DMA Acknowledge | Host | 29 | DMACK- | | Ground | n/a | 30 | Ground | | Interrupt Request | Device | 31 | INTRQ | | 16 Bit I/O | Device | 32 | IOCS16- | | Device Address Bit 1 | Host | 33 | DA1 | | PASSED DIAGNOSTICS | (note 1) | 34 | PDIAG- | | Device Address Bit 0 | Host | 35 | DAO | | Device Address Bit 2 | Host | 36 | DA2 | | Chip Select 0 | Host | 37 | CS0- | | Chip Select 1 | Host | 38 | CS1- | | Drive Active or | (note 1) | 39 | DASP- | | Slave(Drive 1) Present| | | | | Ground | n/a | 40 | Ground | +------------------------+-------------+----+-----------+ 3.2. CS0- (CHIP SELECT 0) This is the chip select signal from the host used to select the Command Block Registers. 3.3. CS1- (CHIP SELECT 1) This is the chip select signal from the host used to select the Control Block Registers. Note: This signal has also been known in the industry as CS3FX-. 3.4. DA2, DA1, and DA0 (DEVICE ADDRESS BUS) This is the 3-bit binary coded address asserted by the host to access a register or data port in the drive. 3.5. DASP- (DRIVE ACTIVE, SLAVE (DRIVE 1) PRESENT) This signal is not TTL compatible.It is an open collector output and each drive pulls it up with a 10 K ohm resistor. This is a time-multiplexed signal which indicates that a drive is active, or that Drive 1 is present. During power on initialization or after RESET- is negated, DASP- shall be deasserted by both Drive 0 and Drive 1 within 1 msec, and then Drive 1 shall assert DASP- within 400 msec to indicate that Drive 1 is present. Drive 0 shall allow up to 450 msec for Drive 1 to assert DASP-. If Drive 1 is not present, Drive 0 may assert DASP- to drive an activity LED. DASP- shall be negated following acceptance of the first valid command by Drive 1 or after 31 seconds, whichever comes first. Any time after negation of DASP-, either drive may assert DASP- to indicate that a drive is active. NOTE 1 Prior to the development of this standard, products were introduced which did not time multiplex DASP-. Some used two jumpers to indicate to Drive 0 whether Drive 1 was present. If such a drive is jumpered to indicate Drive 1 is present it should work successfully with a Drive 1 which complies with this standard. If installed as Drive 1, such a drive may or may not work successfully because it may not assert DASP- for a long enough period to be recognized. However, it would assert DASP-to indicate that the drive is active. 3.6. DD0-DD15 (Drive data bus) This is an 8- or 16-bit bi-directional data bus between the host and the drive. The lower 8 bits are used for 8-bit transfers (e.g. registers, ECC bytes) and, if the drive supports the Features register capability to enable 8-bit-only data transfers. 3.7. DIOR- (Drive I/O read) This is the Read strobe signal. The falling edge of DIOR- enables data from a register or the data port of the drive onto the host data bus, DD0-DD7 or DD0- DD15. The rising edge of DIOR- latches data at the host. 3.8. DIOW- (Drive I/O write) This is the Write strobe signal. The rising edge of DIOW- clocks data from the host data bus, DD0-DD7 or DD0-DD15, into a register or the data port of the drive. 3.9. DMACK- (DMA acknowledge) (Optional) This signal shall be used by the host in response to DMARQ to either acknowledge that data has been accepted, or that data is available. 3.10.DMARQ (DMA request) (Optional) This signal, used for DMA data transfers between host and drive, shall be asserted by the drive when it is ready to transfer data to or from the host. The direction of data transfer is controlled by DIOR- and DIOW-. This signal is used in a handshake manner with DMACK- i.e. the drive shall wait until the host asserts DMACK- before negating DMARQ, and re-asserting DMARQ if there is more data to transfer. When a DMA operation is enabled, IOCS16-, CS0- and CS1- shall not be asserted and transfers shall be 16-bits wide. 3.11.INTRQ (Drive interrupt) This signal is used to interrupt the host system. INTRQ is asserted only when the drive has a pending interrupt, the drive is selected, and the host has cleared nIEN in the Device Control register. If nIEN=1, or the drive is not selected, this output is in a high impedance state, regardless of the presence or absence of a pending interrupt. INTRQ shall be negated by: - assertion of RESET- or - the setting of SRST of the Device Control register, or - the host writing the Command register or - the host reading the Status register 3.12.IOCS16- (Drive 16-bit I/O) Except for DMA transfers, IOCS16- indicates to the host system that the 16-bit data port has been addressed and that the drive is prepared to send or receive a 16-bit data word. This shall be an open collector output. * When transferring in PIO mode, if IOCS16- is not asserted, transfers shall be 8-bit using DD0-7. * When transferring in PIO mode, if IOCS16- is asserted, transfers shall be 16-bit using DD0-15. * When transferring in DMA mode, the host shall use a 16-bit DMA channel and IOCS16- shall not be asserted. 3.13.IORDY (I/O channel ready) (Optional) This signal is negated to extend the host transfer cycle of any host register access (Read or Write) when the drive is not ready to respond to a data transfer request. When IORDY is not negated, IORDY shall be in a high impedance state. 3.14.PDIAG- (Passed diagnostics) This signal shall be asserted by Drive 1 to indicate to Drive 0 that it has completed diagnostics. A 10K ohm pull-up resistor shall be used on this signal by each drive. 3.15.RESET- (Drive reset) This signal from the host system shall be asserted for at least 25 usec after voltage levels have stabilized during power on and negated thereafter unless some event requires that the drive(s) be reset following power on. 3.16.SPSYNC:CSEL (Spindle synchronization/cable select) (Optional) This signal shall have a 10K ohm pull-up resistor. This is a dual purpose signal and either or both functions may be implemented. If both functions are implemented then they cannot be active concurrently: the choice as to which is active is made by a vendor-defined switch. All drives connected to the same cable should have the same function active at the same time. If SPSYNC and CSEL are mixed on the same cable, then drive behavior is undefined. Prior to the introduction of this standard, this signal was defined as DALE (Drive Address Latch Enable), and used for an address valid indication from the host system. If used, the host address and chip selects, DAO through DA2, CS0-, and CS1- were valid at the negation of this signal and remained valid while DALE was negated, therefore, the drive did not need to latch these signals with DALE. 3.16.1.SPSYNC (Spindle synchronization) (Optional) This signal may be either input or output to the drive depending on a vendor- defined switch. If a drive is set to Drive 0 the signal is output, and if a drive is set to slave the signal is input. There is no requirement that each drive implementation be plug-compatible to the extent that a multiple vendor drive subsystem be operable. Mix and match of different manufacturers drives is unlikely because rpm, sync fields, sync bytes etc. need to be virtually identical. However, if drives are designed to match the following recommendation, controllers can operate drives with a single implementation. There can only be one Drive 0 drive at a time in a configuration. The host or the drive designated as Drive 0 can generate SPSYNC at least once per rotation, but may be at a higher frequency. SPSYNC received by a drive is used as the synchronization signal to lock the spindles in step. The time to achieve synchronization varies, and is indicated by the drive setting DRDY i.e. if the drive is capable of spindle synchronization and if it is set to acquire synchronization from another SPSYNC source, but does not achieve synchronization following power on or a reset, it shall not set DRDY. Driver 0 or the host generates SPSYNC and transmits it. Drive 1 does not generate SPSYNC and is responsible to synchronize its index to SPSYNC. If a drive does not support synchronization, it shall ignore SPSYNC. In the event that a drive previously synchronized loses synchronization, but is otherwise operational, it does not clear DRDY. 3.16.2.CSEL (Cable select) (Optional) The drive is configured as either Drive 0 or Drive 1 depending upon the value of CSEL: * If CSEL is grounded then the drive address is 0 * If CSEL is open then the drive address is 1 Special cabling can be used by the system manufacturer to selectively ground CSEL e.g. CSEL of Drive 0 is connected to the CSEL conductor in the cable, and is grounded, thus allowing the drive to recognize itself as Drive 0. CSEL of Drive 1 is not connected to CSEL because the conductor is removed, thus the drive can recognize itself as Drive 1. 4. Drive Addressing A drive can operate in either of two addressing modes, CHS or LBA, on a command by command basis. A drive which can support LBA mode indicates this in the Identify Drive Information. If the host selects LBA mode in the Drive/Head register, Sector Number register, Cylinder Low register, Cylinder High register and HS3-HS0 of the Drive/Head register contains the zero based-LBA. In LBA mode, the sectors on the drive are assumed to be linearly mapped with an Initial definition of: LBA 0 = (cylinder 0, head 0, sector 1). Irrespective of translate mode geometry set by the host, the LBA address of a given sector does not change: LBA = ((cylinder * heads_per_cylinder + heads) * sectors_per_track) + sector - 1