Construction and Application of a Computer Based Interface Card

Main Menu
Session 3547
Construction and Application of a Computer
Based Interface Card
Michael Combs
Telescope Operations Engineer
m.combs@morehead-st.edu
Morehead State University
Morehead, Kentucky
Ahmad Zargari, Ph.D., CSIT
Associate Professor
a.zargar@morehead-st.edu
Morehead State University
Morehead, Kentucky
Abstract
Automated control of manufacturing systems and research tasks are becoming more demanding
in today’s competitive market. Computer interface and control applications are common practice
not exceptions in the workplace. The knowledge of how to manage processes with computer
control can be developed by working with basic tools of microprocessor interfacing. An interface
card placed in a microcomputer can provide practitioners with the skills they need to be
competitive. The Intel 82C55A programmable peripheral interface IC can be used to interface
external hardware with a microcomputer.
The interface card being built and used at Morehead State University is based on the Intel
82C55A programmable peripheral I/O device. With minimal support circuitry the 82C55A can
be interfaced with a microcomputer. The 82C55A contains three 8-bit ports providing 24 lines of
digital I/O. Several circuits can be connected to the 82C55A making it more versatile.
Counter/timers, analog to digital converters, digital to analog converters, sensors, and several
other circuits can be connected to the interface card.
The card is used to control and monitor different processes through hardware and software
interfaces. Software used to program the interface card includes BASIC, Visual Basic, Visual
C++, and Labview. The software interfaces include simple to complex routines depending on the
application. Construction and application of the Intel 82C55A interface card help provide an
individual with the knowledge and skills of computer based control applications.
Introduction
Microcomputers have developed into a powerful and versatile tool in today’s industry and
research labs. Microcomputers are being used to control complex tasks and processes. It has
become necessary to have a basic understanding of how these control processes work in order to
be competitive.
In order to control a process by a microcomputer an interface must exist from the microcomputer
to the hardware being controlled. An interface can span from a simple to complex design.
“Proceedings of the 2002 American Society for Engineering Education Annual Conference & Exposition
Copyright © 2002, American Society for Engineering Education”
Main Menu
Main Menu
Usually the more complex interface designs are more versatile and difficult to troubleshoot. In
order to acquire an understanding of the theory and application of interfacing to a microcomputer
a more basic design may be used. A popular and low cost interfacing component is the Intel
82C55A programmable peripheral interface. Any compatible TTL I/O device may be interfaced
to the microprocessor using the 82C55A (Brey, 1997).
Intel 82C55A
The Intel 82C55A programmable peripheral interface component is used to interface hardware to
the microprocessor of a microcomputer. The 82C55A contains three 8-bit parallel ports for a
total of 24 lines of digital I/O. This allows for one to several devices to be connected to the
82C55A. The 8-bit ports are configured by sending a control word to the control register
(Rafiquzzaman, 1995). Figure 1 is a diagram describing the individual bits in the control register.
82C55A Control Register
D7 D6 D5 D4 D3 D2 D1 D0
Must be one to
configure ports
for I/O operation
0=output
00 (mode 0)
For simple I/O
Port A
1= input
0= ouput
Port C
Lower 4-bits
1= input,
0= ouput
Port B
1= input,
0= ouput
Port C
upper 4-bits
1= input
0= output
Must be 0 for
simple I/O
Figure 1. Diagram of the 82C55A control register bits (Rafiquzzaman, 1995).
The 82C55A can be configured to operate in three different modes. In mode 0 the three ports are
configured for basic I/O operation, two handshaking I/O ports for mode 1, and a bidirectional I/O
port with five handshaking signals for mode 2 (Uffenbeck, 1998). Throughout the paper the
82C55A will be configured for basic I/O operations in mode 0.
Interface Card
The interface card is based on Intel’s 8255A programmable peripheral interface (PPI) IC. The
8255A contains three 8-bit ports providing 24 lines of digital I/O. Support circuitry for the
8255A consists of a buffer and address decoder circuit. The buffer circuit buffers the signals
between the 8255A and the motherboard, and the address decoder circuit assigns the 8255A an
address on the address bus. The interface card is inserted into an open ISA slot in the personal
computer. Through the interface card external circuitry may be connected to a personal
computer. Figure 2 is a diagram of the schematic for the interface card.
“Proceedings of the 2002 American Society for Engineering Education Annual Conference & Exposition
Copyright © 2002, American Society for Engineering Education”
Main Menu
Main Menu
INTEL 8255
BD3
BD4
BD5
BD6
BD7
34 D0
33 D1
32 D2
D3
30 D4
D5
D6
27 D7
BA0
BA1
9
A0
8
A1
BD1
35
BRESET
DRV
2
3
4
5
6
7
8
9
[A9] D0
[A8] D1
[A7] D2
[A6] D3
[A5] D4
[A4] D5
[A3] D6
[A2] D7
19
IOA
1
2
BD0
BD1
BD2
BD3
BD4
BD5
BD6
BD7
U5
3
74LS32
3
[B14] IOR
[B13] IOW
[A31] A0
[A30] A1
[A29] A2
[A28] A3
[A27] A4
[A26] A5
U4
1
2
74LS244
18
X1
U2 Y1
X2
Y2 16
X3
Y3 14
X4
Y4 12
X5
Y5 9
X6
Y6 7
5
X7
Y7
3
X8
Y8
1 G1
19 G2
2
4
6
8
11
13
15
17
74LS244
2 X1
[A25] A6
Y1 18
4 X2 U 1 Y2 16
[A24] A7
6 X3
[A23] A8
Y3 14
8 X4
[A22] A9
Y4 12
11
9
[A11] AEN
X5
Y5
13
7
[B2] RESET DRV
X6
Y6
15
5
[B20] CLOCK
X7
Y7
3
17 X8
Y8
1 G1
19 G2
RESET
BIOR
BIOW
BA0
BA1
BA2
BA3
BA4
BA5
20
21
22
23
24
25
14
15
16
17
13
12
11
10
PC0
PC1
PC2
PC3
PC4
PC5
PC6
PC7
6 CS
74LS08
18
PB0
PB1
PB2
PB3
PB4
PB5
PB6
PB7
26 Vcc
7 GND
+5V
2
1
40
39
38
37
PA2
PA3
PA4
PA5
PA6
PA7
5 RD
36 W R
BIOW
74LS245
A1 U 3 B 1 18
A2
B 2 17
A3
B 3 16
A4
B 4 15
14
A5
B5
13
A6
B6
12
A7
B7
11
A8
B8
DIR 1
G
PA0
U6
74LS32
4
5
U4
6
9
10
U4
8
12
13
11
U4
E3
E2
E1
E0
74LS154
BA0
BA1
BA2
BA3
23 A
22 B
21 C
20 D
BA4
19
G2
18
BA6
BA7
BA8
BA9
BAEN
BRESET DRV
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
G1
1
74LS04
U8
2
1
3
4
5
6
7
8
9
10
11
13
14
15
16
17
74LS154
23
22
21
20
A
B
C
D
19 G2
18
BA5
BA6
BA7
BA8
BA9
BEAN
G1
2
4
6
8
11
13
15
17
U10
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
1
3
4
5
6
7
8
9
10
11
13
14
15
16
17
74LS688
3
P0 U 7 Q0
P1
Q1 5
P2
Q2 7
P3
Q3 9
P4
Q4 12
P5
Q5 14
P6
Q6 16
P7
Q7 18
1 G
P=Q 19
300
301
302
303
304
305
306
307
308
309
30A
30B
30C
30D
30E
30F
E0
E1
E2
E3
E4
E5
E6
E7
E8
E9
E10
E11
E12
E13
E14
E15
310
E16
311
E17
312
E18
313
E19
E20
315 E21
316
E22
317
E23
318
E24
319
E25
31A
E26
31B
E27
31C
E27
31D
E29
31E
E30
31F E31
+5 V
IOA
Figure 2. Schematic of the 8255A interface card.
The interface card is constructed using the wire wrap technique. This allows for easy
troubleshooting if so needed. Components are placed on the ISA prototype board in a logical
order to allow for neat wiring and ease of troubleshooting. A 25 pin connector is used to make
external connections to the interface card. Figures 3 and 4 show the top and bottom views of the
finished 82C55A interface card.
Figure 3. Top View of the finished 8255A Interface Card.
“Proceedings of the 2002 American Society for Engineering Education Annual Conference & Exposition
Copyright © 2002, American Society for Engineering Education”
Main Menu
Main Menu
Figure 4. Bottom view of the finished 8255A Interface Card.
Testing the Interface Card
Software routines are programmed to control the functionality of the interface card. BASIC,
Visual Basic, and Visual C++ have been used the program the interface card. Programs in the
National Instruments programming language Labview are also being developed. The following is
a sample program to test the interface card once construction is completed.
100 REM 8255 PPI Set Ports A,B,C to Output
101 REM USES PORT B TO DISPLAY COUNT FROM 0 TO 255
110 BASEADDR = 768: REM 300H
120 PORTB = BASEADDR + 1
130 CNTRL = BASEADDR + 3
140 OUT CNTRL, 128
150 FOR SGNAL = 0 TO 255
160 OUT PORTB, SGNAL: PRINT "DECIMAL = "; SGNAL
170 FOR DELAY = 1 TO 2000: NEXT DELAY
180 NEXT SGNAL
999 END
The program sets all three ports of the 8255A as output. A simple circuit of eight LEDs are
constructed to test the circuit. The program uses Port B to count from 0 to 255. If the card is
functioning properly the LEDs will light sequentially in binary until 255 is reached and all LEDs
are on. The 82C55A requires a control word be sent first to configure the ports for proper
operation. Once this is done the proper commands or data can be sent to the individual ports of
the 82C55A.
Applications
Once the interface card has been tested and proven to work properly other circuitry may be
added to the card. Depending on the application, simple to complex circuitry may be required. A
complex example may be the control of an assembly line process. A simple example may be the
individual circuit to control a motor in the assembly line process. Circuits may be connected in
“Proceedings of the 2002 American Society for Engineering Education Annual Conference & Exposition
Copyright © 2002, American Society for Engineering Education”
Main Menu
Main Menu
two different ways. Circuits may be added directly to the 82C55A or due to the design of the
address decoder circuit they may be added directly to the interface card. Figure 5 is the address
decoder portion of the interface card.
74LS154
BA0
BA1
BA2
BA3
23
22
21
20
BA4
19 G2
A
B
C
D
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
U9
18 G1
74LS04
1
U8
1
3
4
5
6
7
8
9
10
11
13
14
15
16
17
E0
E1
E2
E3
E4
E5
E6
E7
E8
E9
E10
E11
E12
E13
E14
E15
300
301
302
303
304
305
306
307
308
309
30A
30B
30C
30D
30E
30F
E16
E17
E18
E19
E20
E21
E22
E23
E24
E25
E26
E27
E27
E29
E30
E31
310
311
312
313
2
74LS154
23
22
21
20
A
B
C
D
19 G2
18 G1
BA5
BA6
BA7
BA8
BA9
BEAN
2
4
6
8
11
13
15
17
U10
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
74LS688
P0 U7 Q0
P1
Q1
P2
Q2
P3
Q3
P4
Q4
P5
Q5
P6
Q6
P7
Q7
1 G
1
3
4
5
6
7
8
9
10
11
13
14
15
16
17
3
5
7
9
12
14
16
18
P=Q 19
315
316
317
318
319
31A
31B
31C
31D
31E
31F
+5 V
IOA
Figure 5. Address decoder portion of the interface card.
The address decoder allows addresses 300 to 31F to be used. The 82C55A uses address 300 to
303. Address 300 is assigned to port A, 301 to port B, 302 to port C, and 303 to the control
register. Addresses 304 to 31F are open for future components to be connected.
Several different devices may be added to the interface card, examples are analog to digital
converters, digital to analog converters, timers/counters, relays, various sensors, keyboards,
displays, DC motors, and stepper motors. Depending on which device is to be added would
determine how it would be connected to the card. For instance a keyboard or control of a motor
would be added to the 82C55A portion of the interface card. An 82C54 programmable interval
timer would be added to the interface card address decoder circuitry and function separately from
the 82C55A. These are examples of the versatility and power of the interface card design.
Stepper Motor Control
A basic interface example is the control of a stepper motor system. A stepper motor is essentially
a digital motor. It is controlled to move in discrete steps to rotate 360º (Bateson, 1993; Brey,
1997). The stepper motor may be controlled by using a motor driver also called a translator. The
translator uses a digital TTL signal input to control the stepper motor.
“Proceedings of the 2002 American Society for Engineering Education Annual Conference & Exposition
Copyright © 2002, American Society for Engineering Education”
Main Menu
Main Menu
The translator being used in this application is the SLO-SYN Micro Series packaged 430-PT
translator manufactured by Superior Electric. The 430-PT is based on solid state electronics. The
translator allows for 3.5A max current per phase. The translator has three connector sections,
power input, motor connection, and signal I/O connector. Power input is used to supply 110V
source for the translator. The motor connection interfaces to the stepper motor. The signal I/O
connector is where the control lines from the 82C55A interface card will be connected (Oh,
1997).
The motor being used with the translator is the model number M093-FD07 SLO-SYN stepper
motor manufactured by Superior Electric. The stepper motor has a current rating of 3.5 amps,
and a step resolution of 200 steps for a complete rotation. Figure 6 is a picture of the SLO-SYN
430-PT translator. Figure 7 is a picture of the SLO-SYN stepper motor.
Figure 6. SLO-SYN 430-PT translator
manufactured by Superior Electric.
Figure7. Model M093-FD07 SLO-SYN
“Proceedings of the 2002 American Society for Engineering Education Annual Conference & Exposition
Copyright © 2002, American Society for Engineering Education”
Main Menu
Main Menu
motor manufactured by Superior Electric.
Interface Card and Translator Connections
Connections for the stepper motor control circuit are simple. The 82C55A interface card and
stepper motor connect to the translator. Figure 8 is a block diagram of the stepper motor control
circuit.
TRANSLATOR
CONTROL
COMPUTER
MOTOR
Figure 8. Block diagram for stepper motor control circuit.
Two control lines plus ground are needed for connection from the 82C55A interfa ce card to the
translator motor driver. Lines PA0 and PA1 are used from port A of the interface card. PA0 is
connected to the direction control input of the translator. The PA1 line is connected to the pulsein line to control the speed of the stepper motor by generating a variable pulse train. Table 1 lists
the connector pins for the signal I/O connector on the translator.
Pin
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Assignment
All Windings Off
CW/CCW
Pulse In
Not Used
Not Used
Not Used
Vo
Not Used
Half/Full
Opto Supply Out
Opto Supply In
Vo
Not Used
Not Used
Not Used
Table1. Pin assignments for the signal I/O connector of the
SLO-SYN 430-PT translator.
“Proceedings of the 2002 American Society for Engineering Education Annual Conference & Exposition
Copyright © 2002, American Society for Engineering Education”
Main Menu
Main Menu
The translator ha s a few options for control, the translator may be configured for half or full step
resolution. It may also be wired for turning the power off to the windings to allow for the motor
to move freely. For this application the stepper motor will move in full steps and the all windings
off is not wired. Pins 10 and 11 are wired together on the translator for it to use its internal opto
isolation. This helps to protect the control lines of the translator. Figure 9 is a connection
diagram from the 82C55A to the SLO-SYN translator.
430-PT Translator
INTEL 8255
PA0
BD3
BD4
BD5
BD6
BD7
34 D0
33 D1
32 D2
D3
30 D4
D5
D6
27 D7
PA2
PA3
PA4
PA5
PA6
PA7
2
1
40
39
38
37
BA0
BA1
9 A0
8 A1
PB0
PB1
PB2
PB3
PB4
PB5
PB6
PB7
18
PC0
PC1
PC2
PC3
PC4
PC5
PC6
PC7
14
15
16
17
13
12
11
10
BD1
5 RD
36 WR
BIOW
35 RESET
BRESET
DRV
+5V
26 Vcc
7 GND
6 CS
2
3
7
CW/CCW
GND
Signal I/O
Connector
20
21
22
23
24
25
74LS32
E0
E1
E2
E3
4
5
9
10
U4
6
12
13
U4
U4
11
Note: Address decoder
not shown.
8
Figure 9. Connection diagram of the interface
card to the SLO-SYN 430-PT Translator.
Translator and Motor Connections
The translator contains a twist- lock circular female AMP connector for motor connections. Table
2 lists the connections pins and their assignments.
PIN
1
2
3
4
5
6
7
8
Assignment
M4
M1
No Connection
Ground
No Connection
M5
No Connection
M3
Table 2. Pin assignments for the motor connector
of the SLO-SYN 430-PT translator.
“Proceedings of the 2002 American Society for Engineering Education Annual Conference & Exposition
Copyright © 2002, American Society for Engineering Education”
Main Menu
Main Menu
Using the proper cable for the translator and motor connections is essential. Superior Electric
suggest a shielded, twisted pair cable (Superior Electric, 1986). Figure 10 is a connection
diagram from the translator to the stepper motor.
TRANSLATOR
M4
M1
M5
M3
GROUND
WHITE/GREEN
STEPPER
MOTOR
GREEN
WHITE/RED
BLACK
Figure 10. Connection diagram for the 430-PT translator
and M093-FD07 SLO-SYN stepper motor.
Once all hardware connections are complete the software programming phase of the project may
begin. Simple software routines may be programmed quickly for testing.
Programming
The 82C55A is simple to program due to it containing only two internal command registers
(Brey, 1997). These registers are used to configure the 82C55A for operation by the user. The
following three programs are used to test the stepper motor interface application to insure proper
wiring and configuration. All of the following programs all ports are set as output and port A is
used to generate a pulse train to drive the stepper motor. The first program generates a pulse train
set by the user by entering a delay value. The duty cycle is set at 50%.
100 REM 8255 PPI Set Ports A,B,C to Output
101 REM USES PORT A AS A PULSE OUT
110 BASEADDR = 768: REM 300H
120 PORTB = BASEADDR + 1
130 CNTRL = BASEADDR + 3
140 OUT CNTRL, 128
145 PRINT "TYPE IN A DELAY LOOP AMOUNT"
146 INPUT D
150 SGNAL1 = 0
155 SGNAL2 = 1
160 OUT BASEADDR, SGNAL1
170 FOR DELAY = 1 TO D: NEXT DELAY
180 OUT BASEADDR, SGNAL2
185 FOR DELAY = 1 TO D: NEXT DELAY
190 GOTO 160
“Proceedings of the 2002 American Society for Engineering Education Annual Conference & Exposition
Copyright © 2002, American Society for Engineering Education”
Main Menu
Main Menu
The second program generates a pulse train and user defines the duty cycle by entering two
different delay values for the high and low states.
100 REM 8255 PPI Set Ports A,B,C to Output
101 REM USES PORT A AS A PULSE OUT
110 BASEADDR = 768: REM 300H
120 PORTB = BASEADDR + 1
130 CNTRL = BASEADDR + 3
140 OUT CNTRL, 128
145 PRINT "TYPE IN AMOUNT FOR LOW DELAY"
146 INPUT L
147 PRINT "TYPE IN AMOUNT FOR HIGH DELAY"
148 INPUT H
150 SGNAL1 = 0
155 SGNAL2 = 1
160 OUT BASEADDR, SGNAL1
170 FOR DELAY = 1 TO L: NEXT DELAY
180 OUT BASEADDR, SGNAL2
185 FOR DELAY = 1 TO H: NEXT DELAY
190 GOTO 160
The third program generates a ramping pulse train The duty cycle is set by the user by entering a
delay value for the high and low states as was in the second program .
100 REM 8255 PPI Set Ports A,B,C to Output
101 REM USES PORT A AS A PULSE OUT
110 BASEADDR = 768: REM 300H
120 PORTB = BASEADDR + 1
130 CNTRL = BASEADDR + 3
131 SGNAL1 = 0
132 SGNAL2 = 1
140 OUT CNTRL, 128
146 D = 5 + D
160 OUT BASEADDR, SGNAL1
170 FOR DELAY = 1 TO D: NEXT DELAY
180 OUT BASEADDR, SGNAL2
185 FOR DELAY = 1 TO D: NEXT DELAY
190 IF D < 700 THEN GOTO 146
195 IF D = 700 THEN GOTO 160
These three testing programs will help insure proper operation of the stepper motor control
circuit. Once testing is complete more elaborate programs may be written depending on the
application. The programs may be written in different languages also. Factors of the application
will determine what is needed.
“Proceedings of the 2002 American Society for Engineering Education Annual Conference & Exposition
Copyright © 2002, American Society for Engineering Education”
Main Menu
Main Menu
Future Applications
The interface card allows for many different applications, and has the potential to control most
anything with the proper support circuitry. Possible future interface projects could include
interfacing a keyboard to the 82C55A. Problems interfacing a keyboard include detecting a
single key stroke from a switch matrix, debouncing to keep from detecting several key strokes
from a single key stroke, and assigning values to the individual keys (Uffenbeck, 1998). An
8259A programmable interrupt controller could be added to the interface card. The 8259A could
be used to monitor input switches to control corresponding events (Goody, 1993). The 82C54
programmable interval timer can be used to generate pulse trains, time events or used as a
counter (Triebel, 1998).
References
Bateson, R. N. (1993). Introduction to control system technology (4th Ed). New York, NY:
Macmillan.
Brey, B. B. (1997). The Intel microprocessors 8086/8088, 80186, 80486, Pentium, and Pentium
Pro processor: Architecture, programming, and interfacing (4th Ed). Upper Saddle River,
NJ: Prentice Hall.
Goody, R. W. (1993). Intel microprocessors: Hardware, software and applications. New York,
NY: Glencoe
Oh, P. (1997). 8255 interface card applications manual. Philadelphia, PA: Boondog Automation
Rafiquzzaman, M. (1995). Microprocessors and microcomputer-based system design (2nd Ed).
New York, NY: CRC Press.
Superior Electric (1986). Instructions for SLO-SYN Micro Series packaged translators types
230-PT and 430-PT. Bristrol, CT: Superior Electric.
Triebel, W. A. (1998). The 80386, 80486, and Pentium processor: Hardware, software, and
interfacing. Upper Saddle River, NJ: Prentice Hall.
Uffenbeck, J. (1998). The 80X86 family: Design, programming, and interfacing (2nd Ed).
Upper Saddle River, NJ: Prentice Hall.
Biography
Michael Combs is the Telescope Operations Engineer of the Astrophysics Laboratory at
Morehead State University. He has been with the Astrophysics Laboratory since 1996, starting as
an undergraduate and is now employed full time. He develops and maintains the systems of the
Morehead Radio Telescope, which is a 13 meter Nike Hercules antenna converted for radio
astronomy work. Michael Combs also teaches electronics courses half time in the IET
Department.
Ahmad Zargari, Ph.D., CSIT. Research interests in Technology Graduate Programs, Job Market
for IT, Alumni and Employers Feedback, Microprocessors, Total Quality Management,
Statistical Process Control (SPC) and Design of Experiments (DOE). A senior member of
Society of Manufacturing Engineers, member of Epsilon Pi Tau, National Association of
Industrial and Technical Teacher Educators, International Technology Education Association
(ITEA) and member of the American Society for Engineering Education (ASEE).
“Proceedings of the 2002 American Society for Engineering Education Annual Conference & Exposition
Copyright © 2002, American Society for Engineering Education”
Main Menu