|
INTRODUCTION
The PCI bus 8255
adapter is a 32 bits PCI bus adapter with Plug and Play (PnP) features,
it is a programmable I/O interface for PC/486, Pentium or compatible
computers. The PnP features let hardware configuration for IRQ and I/O
address is detected by BIOS automatically, you don¡¦t need
set switch and jumper.
The PCI bus 8255
adapter provides total 6 digital I/O ports, each I/O port contains 8
I/O lines, and can be set either input or output by the
user¡¦s program. The signal assignments of PCI bus 8255
adapter is designed as a standard configurations, so that it can be
used to connect to the 8255 terminator board for several applications.
The features of
the PCI bus 8255 adapter are:
*32 bits PCI bus
with Plug and Play (PnP) features.
*Programmable I/O
control functions.
*Up to 48 I/O lines.
*Maximum of 10 MHZ
counter rate.
*Support several
operating modes that are programmable.
*Provides DII device
driver for PnP features.
UNPACKING INFORMATION
Check that your
PCI bus 8255 package includes the following items:
*PCI bus 8255
adapter.
*Demo Program.
*Data Capture
Software Manual with CD.
*8255 terminator
board (option).
*Two expansion flat
cables (option).
*DII device driver.
*User manual.
*Warranty form.
HARDWARE INSTALLATION
Your PCI bus 8255
adapter is designed to be inserted in any available PCI slot in your
PC/486, Pentium or compatibles. In order to gain access to the
expansion slots, follow the steps listed below:
1.Turn off all power
to your computer and all peripheral devices before installing your 8255
adapter.
2.Remove the cover
of the computer.
3.Insert the 8255
adapter into any available PCI slot. Make sure the adapter is firmly
seated in the chosen slot.
4.Replace the cover
of the computer.
5.Connects the
expansion cables.
6.Turn on the power
of your computer, the PnP features will recognize the 8255 adapter.
HARDWARE CONFIGURATION
4.1 I/O Port Address
Base + 0 : Port 1A
input/output buffer.
Base + 1 : Port 1B
input/output buffer.
Base + 2 : Port 1C
input/output buffer.
Base + 3 : Port 1
control register.
Base + 4 : Port 2A
input/output buffer.
Base + 5 : Port 2B
input/output buffer.
Base + 6 : Port 2C
input/output buffer.
Base + 7 : Port 2
control register.
Base + 8 : Counter 0 input/output buffer.
Base + 9 : Counter 1 input/output buffer.
Base + A : Counter 2 input/output buffer.
Base + B : Counter control register.
4.2 DIP Switch
The switch is used
to identify card number, default setting is card 1. There are two
methods to set the card number:
A.PnP mode
Just plug in PCI bus adapter into PCI slot, the PCI BIOS will
allocate I/O address to each adapter automatically and assign card
number start from 0 to each adapter. However, if you plug in more than
one adapter, please set whole adapters to card number 1 (default
setting), then use software tools to distinguish port id.
B.Manual mode
Set card number by card identifier switch, the PCI BIOS will assign
pre-allocated I/O address to each adapter. Please set different card
number to each adapter (do not duplicate card number setting).
4.3 Pin
Assignments
1. Pin
Assignments for CN1 Connector
| Pin |
Function |
Pin |
Function |
|
1
|
GND
|
2
|
GND
|
|
3
|
GND
|
4
|
P1A3
|
|
5
|
P1A1
|
6
|
P1A2
|
|
7
|
CLK0
|
8
|
P1A0
|
|
9
|
GATE0
|
10
|
OUT0
|
|
11
|
OUT2
|
12
|
CLK2
|
|
13
|
CLK1
|
14
|
GATE2
|
|
15
|
OUT1
|
16
|
GATE1
|
|
17
|
P1A5
|
18
|
P1A4
|
|
19
|
P1A7
|
20
|
P1A6
|
|
21
|
P1C6
|
22
|
P1C7
|
|
23
|
P1C4
|
24
|
P1C5
|
|
25
|
P1C1
|
26
|
P1C0
|
|
27
|
P1B7
|
28
|
P1C2
|
|
29
|
P1B6
|
30
|
P1C3
|
|
31
|
P1B5
|
32
|
P1B0
|
|
33
|
P1B4
|
34
|
P1B1
|
|
35
|
P1B3
|
36
|
P1B2
|
|
37
|
+5V
|
38
|
-5V
|
|
39
|
+12V
|
40
|
-12V
|
.2. Pin
Assignments for CN2 Connector
| Pin |
Function |
Pin |
Function |
|
1
|
GND
|
2
|
GND
|
|
3
|
GND
|
4
|
GND
|
|
5
|
GND
|
6
|
GND
|
|
7
|
GND
|
8
|
GND
|
|
9
|
GND
|
10
|
GND
|
|
11
|
GND
|
12
|
GND
|
|
13
|
P2A0
|
14
|
P2A1
|
|
15
|
P2A2
|
16
|
P2A3
|
|
17
|
P2A4
|
18
|
P2A5
|
|
19
|
P2A6
|
20
|
P2A7
|
|
21
|
P2C7
|
22
|
P2C6
|
|
23
|
P2C5
|
24
|
P2C4
|
|
25
|
P2C0
|
26
|
P2C1
|
|
27
|
P2C2
|
28
|
P2B7
|
|
29
|
P2C3
|
30
|
P2B6
|
|
31
|
P2B0
|
32
|
P2B5
|
|
33
|
P2B1
|
34
|
P2B4
|
|
35
|
P2B2
|
36
|
P2B3
|
|
37
|
+5V
|
38
|
-5V
|
|
39
|
+12V
|
40
|
-12V
|
DII DEVICE DRIVER
To install DII
(Decision Industrial Interface) for Windows 95 and Windows NT, you may
start the installation by running SETUP.EXE supplied on this
distribution CD. During installation, the Setup application will
install an icon into a new program group in your start menu (default
name: "Decision Industrial Interface"). After DII is installed, please
select ¡§Start¡¨ menu, then
¡§Settings¡¨, then ¡§Control
Panel¡¨, then ¡§Add New Hardware¡¨ menu,
then select PCI 8255 card on the ¡§Industrial I/O
Devices¡¨ hardware group.
The DII provides
DLL, OCX, ... etc. components for further programming. For more
details, please refer DII manual.
DIAGNOSTIC
6.1 BASIC
Programming
100 REM 8255 I/O
CARD TESTING PROGRAM
110 SCREEN 0,0,0:
WIDTH 80,25: KEY OFF: CLS
120 LOCATE 10,10:
PRINT "8255 I/O CARD TESTING"
130 LOCATE 12,10:
PRINT "TWO 8255 PORT A,B,C OUTPUT SQUARE WAVE"
140 LOCATE 14,10:
PRINT "8253 COUNTER 0 DIVIDE BY 2"
150 LOCATE 16,10:
PRINT " COUNTER 1 DIVIDE BY 50"
160 LOCATE 18,10:
PRINT " COUNTER 2 DIVIDE BY 100"
250 REM 8253 TESTING
255 PORT = &H1B0
260 OUT
PORT+11,&H36
270 OUT
PORT+11,&H76
280 OUT
PORT+11,&HB6
290 OUT
PORT+8,&H2: OUT PORT+8,&H0
300 OUT
PORT+9,&H32: OUT PORT+9,&H0
310 OUT
PORT+10,&H64: OUT PORT+10,&H0
320 PORT=&H1B0
330 OUT
PORT+3,&H80
340 A=0: GOSUB 500
345 FOR K= 0 TO
1000: NEXT K
350 A=&HFF:
GOSUB 500
360 PORT=PORT+4
370 OUT
PORT+3,&H80
380 A=0: GOSUB 500
385 FOR K=0 TO 1000:
NEXT K
390 A=&HFF:
GOSUB 500
400 GOTO 320
500 FOR I=0 TO 2
510 OUT PORT+I,A
520 NEXT I
530 RETURN
6.2 PASCAL
Programming
program
diagnostic(input, output);
uses Crt;
var a, i, test :
integer;
procedure subtest;
begin
for i := 0 to 2 do
port[test+i] := a;
end;
begin
{ 8255 I/O Card
Testing Program }
clrscr;
gotoxy(10, 10);
writeln('8255 I/O
CARD TESTING');
gotoxy(10, 12);
writeln('TWO 8255
PORT A,B,C OUTPUT SQUARE WAVE');
gotoxy(10, 14);
writeln('8253
COUNTER 0 DIVIDE BY 2');
gotoxy(10, 16);
writeln(' COUNTER 1
DIVIDE BY 50');
gotoxy(10, 18);
writeln(' COUNTER 2
DIVIDE BY 100');
{ 8253 Testing }
test := $1B0;
port[test+11] :=
$36;
port[test+11] :=
$76;
port[test+11] :=
$B6;
port[test+ 8] :=
$02; port[test+ 8] := $0;
port[test+ 9] :=
$32; port[test+ 9] := $0;
port[test+10] :=
$64; port[test+10] := $0;
repeat
test := $1B0;
port[test+3] :=
$80;
a := 0; subtest;
for i := 0 to 1000
do;
a := $ff; subtest;
test := test + 4;
port[test+3] :=
$80;
a := 0; subtest;
for i := 0 to 1000
do;
a := $ff; subtest
until keypressed;
end.
6.3 C Programming
#include
<stdio.h>
#include
<conio.h>
int test,i,a;
void subtest()
{
for(i=0;i<=2;i++) outportb(test+i,a);
}
main()
{
clrscr();
gotoxy(10,10);
puts("8255 I/O CARD
TESTING");
gotoxy(10,12);
puts("TWO 8255 PORT
A,B,C OUTPUT SQUARE WAVE");
gotoxy(10,14);
puts("8253 COUNTER
0 DIVIDE BY 2");
gotoxy(10,16);
puts("8253 COUNTER
1 DIVIDE BY 50");
gotoxy(10,18);
puts("8253 COUNTER
2 DIVIDE BY 100");
test = 0x1b0;
outportb(test+11,0x36);
outportb(test+11,0x76);
outportb(test+11,0xb6);
outportb(test+
8,0x02);
outportb(test+
8,0x00);
outportb(test+
9,0x32);
outportb(test+
9,0x00);
outportb(test+10,0x64);
outportb(test+10,0x00);
do {
test = 0x1b0;
outportb(test+3,0x80);
a = 0;
subtest();
for(i=0;i<=1000;i++);
a = 0xff;
subtest();
} while(!kbhit());
}
APPENDIX A
TERMINATOR BOARD
The 8255 terminator
board provides expansion signal connection for convenience purpose.
When power control on the normal condition, the LED will light. To
connect 8255 adapter to terminator board, please plug in CN1 connector
(at 8255 adapter) to J1 (at terminator board). The similar method will
be used to connect CN2 to J2. The signal assignment is shown in the
follows.
1. TB1
| PORT
1 |
PA0
|
| PORT
1 |
PA1 |
| PORT
1 |
PA2 |
| PORT
1 |
PA3 |
| PORT
1 |
PA4 |
| PORT
1 |
PA5 |
| PORT
1 |
PA6 |
| PORT
1 |
PA7 |
| PORT
1 |
PB0
|
| PORT
1 |
PB1 |
| PORT
1 |
PB2 |
| PORT
1 |
PB3 |
| PORT
1 |
PB4 |
| PORT
1 |
PB5 |
| PORT
1 |
PB6 |
| PORT
1 |
PB7 |
2 TB2
| PORT
1 |
PC0
|
| PORT
1 |
PC1 |
| PORT
1 |
PC2 |
| PORT
1 |
PC3 |
| PORT
1 |
PC4 |
| PORT
1 |
PC5 |
| PORT
1 |
PC6 |
| PORT
1 |
PC7 |
| PORT
1 |
PA0
|
| PORT
1 |
PA1 |
| PORT
1 |
PA2 |
| PORT
1 |
PA3 |
| PORT
1 |
PA4 |
| PORT
1 |
PA5 |
| PORT
1 |
PA6 |
| PORT
1 |
PA7 |
3 TB3
| PORT
2 |
PB0
|
| PORT
2 |
PB1 |
| PORT
2 |
PB2 |
| PORT
2 |
PB3 |
| PORT
2 |
PB4 |
| PORT
2 |
PB5 |
| PORT
2 |
PB6 |
| PORT
2 |
PB7 |
| PORT
2 |
PC0
|
| PORT
2 |
PC1 |
| PORT
2 |
PC2 |
| PORT
2 |
PC3 |
| PORT
2 |
PC4 |
| PORT
2 |
PC5 |
| PORT
2 |
PC6 |
| PORT
2 |
PC7 |
4 TB4
| CLK0 |
| GATE0 |
| OUT0 |
| CLK1 |
| GATE1 |
| OUT1 |
| CLK2 |
| GATE2 |
| OUT2 |
| GND1 |
| GND2 |
| +5V
|
| -5V |
| GND1 |
| GND1 |
| GND2 |
PCI8255 EXTENSION CARD
PCI 8255/8254 B-MODULE (DCI 2K29B0)

1. PORT A/B
Pin Assignments for J8 Connector
| Pin |
Function |
Pin |
Function |
1
|
GND
|
14
|
+5V
|
2
|
P1A0
|
15
|
GND
|
3
|
P1A1 |
16
|
GND |
4
|
P1A2 |
17
|
GND |
5
|
P1A3 |
18
|
GND |
6
|
P1A4 |
19
|
GND |
7
|
P1A5 |
20
|
P1B3 |
8
|
P1A6 |
21
|
P1B4 |
9
|
P1A7
|
22
|
P1B5 |
10
|
P1B0 |
23
|
P1B6 |
11
|
P1B1 |
24
|
P1B7 |
12
|
P1B2 |
25
|
+5V
|
13
|
GND
|
|
|
2. 8254
Pin Assignments for J9 Connector
| Pin |
Function |
Pin |
Function |
1
|
GND
|
9
|
GND
|
2
|
CLK0
|
10
|
+12V
|
3
|
GATE0
|
11
|
CLK2
|
4
|
OUT0
|
12
|
GATE2
|
5
|
CLK1
|
13
|
OUT2
|
| 6
|
GATE1
|
14
|
-12V
|
7
|
OUT1
|
15
|
-5V
|
8
|
+5V
|
|
|
3. Pin Assignments for CHANNEL 1 Connector
| Pin |
Function |
Pin |
Function |
|
1
|
GND
|
2
|
GND
|
|
3
|
GND
|
4
|
P1A3
|
|
5
|
P1A1
|
6
|
P1A2
|
|
7
|
CLK0
|
8
|
P1A0
|
|
9
|
GATE0
|
10
|
OUT0
|
|
11
|
OUT2
|
12
|
CKL2
|
|
13
|
CKL1
|
14
|
GATE2
|
|
15
|
OUT1
|
16
|
GATE1
|
|
17
|
P1A5
|
18
|
P1A4
|
|
19
|
P1A7
|
20
|
P1A6
|
|
21
|
P1C6
|
22
|
P1C7
|
|
23
|
P1C4
|
24
|
P1C5
|
|
25
|
P1C1
|
26
|
P1C0
|
|
27
|
P1B7
|
28
|
P1C2
|
|
29
|
P1B6
|
30
|
P1C3
|
|
31
|
P1B5
|
32
|
P1B0
|
|
33
|
P1B4
|
34
|
P1B1
|
|
35
|
P1B3
|
36
|
P1B2
|
|
37
|
+5V
|
38
|
-5V
|
|
39
|
+12V
|
40
|
-12V
|
PCI 8255/8254 B-MODULE (DCI 2K29A0)

1. PORT A/B
Pin Assignments for J11 Connector
| Pin |
Function |
Pin |
Function |
1
|
GND
|
14
|
+5V
|
2
|
P2A0
|
15
|
GND
|
3
|
P2A1 |
16
|
GND |
4
|
P2A2 |
17
|
GND |
5
|
P2A3 |
18
|
GND |
6
|
P2A4 |
19
|
GND |
7
|
P2A5 |
20
|
P2B3 |
8
|
P2A6 |
21
|
P2B4 |
9
|
P2A7
|
22
|
P2B5 |
10
|
P2B0 |
23
|
P2B6 |
11
|
P2B1 |
24
|
P2B7 |
12
|
P2B2 |
25
|
+5V
|
13
|
GND
|
|
|
2. POWER SOURCE
Pin Assignments for J12 Connector
| Pin |
Function |
Pin |
Function |
1
|
GND
|
9
|
GND
|
2
|
|
10
|
+12V
|
3
|
|
11
|
|
4
|
|
12
|
|
5
|
|
13
|
|
| 6
|
|
14
|
-12V
|
7
|
|
15
|
-5V
|
8
|
+5V
|
|
|
3. Pin Assignments for CHANNEL 2 Connector
| Pin |
Function |
Pin |
Function |
|
1
|
GND
|
2
|
GND
|
|
3
|
GND
|
4
|
GND
| 5
|
GND | 6
|
GND
| 7
|
GND | 8
|
GND
| 9
|
GND | 10
|
GND
| 11
|
GND | 12
|
GND
| 13
|
P2A0 | 14
|
P2A1 | 15
|
P2A2 | 16
|
P2A3 | 17
|
P2A4 | 18
|
P2A5 | 19
|
P2A6 | 20
|
P2A7 | 21
|
P2C7 | 22
|
P2C6 | 23
|
P2C5 | 24
|
P2C4 | 25
|
P2C0 | 26
|
P2C1 | 27
|
P2C2 | 28
|
P2B7 | 29
|
P2C3 | 30
|
P2B6 | 31
|
P2B0 | 32
|
P2B5 | 33
|
P2B1 | 34
|
P2B4 | 35
|
P2B2 | 36
|
P2B3 | 37
|
+5V
|
38
|
-5V
|
|
39
|
+12V
|
40
|
-12V
|
POCKET 8 CHANNEL PHOTO-INPUT SSR OUTPUT BOARD

DCI 96022601
1.Pin Assignment of T1
| Pin |
Function |
Pin |
Function |
1
|
GND
|
14
|
+5V
|
2
|
DI0
|
15
|
GND
|
3
|
DI1 |
16
|
GND |
4
|
DI2 |
17
|
GND |
5
|
DI3 |
18
|
GND |
6
|
DI4 |
19
|
GND |
7
|
DI5 |
20
|
DO3 |
8
|
DI6 |
21
|
DO4 |
9
|
DI7 |
22
|
DO5 |
10
|
DO0
|
23
|
DO6 |
11
|
DO1 |
24
|
DO7 |
12
|
DO2 |
25
|
+5V
|
13
|
GND
|
|
|
2.Pin Assignment of TB1 (Photo Isolator)
| Pin |
Function |
|
1
|
I0H
|
2
|
I0L
|
3
|
I1H
|
4
|
I1L
|
5
|
I2H |
6
|
I2L |
7
|
I3H |
8
|
I3L |
9
|
I4H |
10
|
I4L |
11
|
I5H |
12
|
I5L |
13
|
I6H |
14
|
I6L |
15
|
I7H |
16
|
I7L |
3.Pin Assignment of TB2 (Relay Output)
| Pin |
Function |
|
1
|
COM0
|
2
|
OTO0
|
3
|
COM1 |
4
|
OTO1 |
5
|
COM2 |
6
|
OTO2 |
7
|
COM3 |
8
|
OTO3 |
9
|
COM4 |
10
|
OTO4 |
11
|
COM5 |
12
|
OTO5 |
13
|
COM6 |
14
|
OTO6 |
15
|
COM7 |
16
|
OTO7 |
|