SCSI interface information
(C) 1997-2010 André Fachat
SCSI Standard
CSI means "Small Computer System Interface". It is an interface that connectes computers with peripheral devices, like disks, scanners, CD-ROMs etc. As such it is very flexible.
The first SCSI interfaces were using asynchronous I/O mode. Each transfered byte was requested and acknowledged with a special handshake. Nowadays synchronous modes with up to 80 or more MByte/s are supported. Yet, all devices still know the asynchronous mode and can be used with this interface (at least I did not encounter one, but I also did not test that many).
The SCSI-II standard defines a number of command sets for a variety of devices. Disks are accessed as "direct access devices", and commands for CD-ROM devices, Printers, coprocessors etc are defined. The commands are transferred in a standard way, which makes the transport level flexible. And once you know how to send one command, you can easily send any other. To send a command you can have a look at the software from this site, that includes SCSI drivers for the 6502 in the GeckOS operating system.
The SCSI-II standard is refered to as ANSI X3.131-1990 Small Computer Systems Interface-2 (SCSI-II). The SCSI-I standard is X3.131-1986. The SCSI-III standard still specifies the asynchronous mode for parallel cable transfer, which is used in my current designs. In the resources section below are links to the standards and to a very good article on SCSI.
A good source (although a bit hard to read) is the linux kernel source
code. Recommended reading are the comments at the beginning of
drivers/scsi/aha152x.c, the defines in include/scsi/*,
especially the SCSI command opcodes. greping for them in the code
will give you an idea
how to use them. One example is the function scan_scsis_single()
in drivers/scsi/scsi.c.
All code references relative to the main source directory, usually under
/usr/src/linux/, of linux kernel version 2.0.36 (although
the linux version should not matter that much here).
Resources
The SCSI standard is now managed by the Technical Committee T10, that unfortunately have decided to give access to the standards only after registration as I understand. Here are some links anyway.
- The SCSI Standards The T10 web site
- SCSI introduction A very good IBM developerworks article on SCSI
- Wikipedia on SCSI
Return to Homepage



