Hardware Level Communications
This section of the chapter describes in detail the structures used to communicate with the controller at the register
interface level. The information in this section is intended for advanced programmers with extensive knowledge of
ISA and PCI bus operation.
For main bi-directional communication, the DMC-1600 features a 512 character write FIFO buffer, and a 512
character read buffer. This permits sending commands at high speeds ahead of their actual processing by the DMC-
1600. The DMC-1600 also provides a secondary FIFO, for access to the data record.
Note:
This chapter provides an in-depth look at how the controller communicates over the PCI bus at the register
interface level. For most users, we recommend using the drivers supplied by Galil to provide the necessary tools for
communicating with the controller.
Determining the Base Address
The base address “N” is assigned its value by the BIOS and/or Operating System. The FIFO address N is referenced
in the PCI configuration space at BAR2 (offset 18H). The following PCI information (HEX) can be used to identity
the DMC-1600 controller:
PCI Device Identification
DEVICE ID
VENDOR ID
SUBSYSTEM ID
SUBSYSTEM VENDOR ID
9050H 10B5H 1640H
1079H
Read, Write, and Control Registers
The DMC-1600 provides four registers used for communication. The main communications FIFO register for
sending commands and receiving responses occupies address N. The control register used to monitor the main
communications status occupies address N+4. The reset register occupies address N+8 and is used for resetting the
controller and/or main read/write FIFO registers as well as retrieving the IRQ status byte. The secondary FIFO for
accessing the data record occupies address N+C.
Communication Registers
Register Address
Read/Write
Description
Main FIFO
N
Read / Write
Send commands and receive responses
CONTROL
N+4
Read / Write
For FIFO status control
IRQ / RESET
N+8
Read / Write
For IRQ status byte and controller reset
Secondary FIFO
N+C
Read only
For data record access
Simplified Communication Procedure
The simplest approach for communicating with the DMC-1800 is to check bits 0 and 2 of the
CONTROL register at address N+4. Bit 0 is for WRITE STATUS and bit 2 is for READ
STATUS.
Read Procedure
- To receive data from the DMC-1800, read the control register at address N+4
and check bit 2. If bit 2 is zero, the DMC-1600 has data to be read in the READ register at
address N. Bit 2 must be checked for every character read.
DMC-1600
Chapter 4 - Software Tools and Communications
•
57