1989_231658_Intel_Microcommunications_Handbook 1989 231658 Intel Microcommunications Handbook
User Manual: 1989_231658_Intel_Microcommunications_Handbook
Open the PDF directly: View PDF
.
Page Count: 1443
| Download | |
| Open PDF In Browser | View PDF |
LITERATURE
To order Intel Literature or obtain literature pricing information in the U.S. and Canada call or write Intel
Literature Sales. In Europe and other international locations, please contact your local sales office or
distributor.
INTEL LITERATURE SALES
P.O. BOX 58130
SANTA CLARA, CA 95052-8130
In the U.S. and Canada
call toll free
(800) 548-4725
CURRENT HANDBOOKS
Product line handbooks contain data sheets, application notes, article reprints and other design information.
TITLE
LITERATURE
ORDER NUMBER
COMPLETE SET OF HANDBOOKS
231003
(Available in U.S. and Canada only)
AUTOMOTIVE PRODUCTS HANDBOOK
231792
(Not Included in handbook set)
COMPONENTS QUALITY IRELIABILITY HANDBOOK
EMBEDDED CONTROL APPLICATIONS HANDBOOK
a·BIT EMBEDDED CONTROLLER HANDBOOK
16-BIT EMBEDDED CONTROLLER HANDBOOK
32·BIT EMBEDDED CONTROLLER HANDBOOK
MEMORY COMPONENTS HANDBOOK
MICROCOMMUNICATIONS HANDBOOK
MICROCOMPUTER PROGRAMMABLE LOGIC HANDBOOK
MICROPROCESSOR AND PERIPHERAL HANDBOOK
(2 volume set)
MILITARY PRODUCTS HANDBOOK
(2 volume set. Not Included in handbook set)
OEM BOARDS AND SYSTEMS HANDBOOK
PRODUCT GUIDE
210997
270648
270645
270646
270647
210830
231658
296083
230843
210461
280407
210846
(Overview of Intel's complete product lines)
SYSTEMS QUALITY IRELIABILITY HANDBOOK
INTEL PACKAGING OUTLINES AND DIMENSIONS
(Packaging types, number of leads, etc.)
LITERATURE PRICE LIST (U.S. and Canada)
(Comprehensive list of current Intel Literature)
INTERNATIONAL LITERATURE GUIDE
231762
231369
210620
E00029
CG/LiT/l00188
About Our Cover:
Intel is committed to providing microcommunications solutions for local and wide area networking at all
levels of integration. Our technology gives simple wires the astounding ability for elaborate communications.
Today, complex thoughts and ideas are easily exchanged, many of which were made possible by Intel's
advanced solutions.
U.S. and CANADA LITERATURE ORDER FORM
NAME: _______________________________________________________
COMPANY: _________________________________________________
ADDRESS: ___________________________________________________
CITY: _____________________________ STATE: _______ ZIP: _______
COUNTRY: ___________________________________________________
PHONE
NO.: . .\.(____. . l -_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __
ORDER NO.
TITLE
QTY.
PRICE
TOTAL
__X __=
__X __=
__X __=
__ x
_,_X _ _ =
___ X _ _ =
__ x
__X __=
__ x
__X __=
Subtotal
,I
Must Add Your
Local Sales Tax
Postage: add 10% of subtotal
~
Postage
Total _ _ __
Pay by check, money order, or include company purchase order with this form ($100 minimum).we also
accept VISA, MasterCard or American Express. Make payment to Intel Literature Sales. Allow 2-4 weeks
for delivery.
Cl VISA Cl MasterCard Cl American Express Expiration Date _ _ _ _ _ _ __
Account No. _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __
Signature _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __
Mall To: Intel Literature Sales
P.O. Box 58130
Santa Clara, CA 95052-8130
International Customers outside the U.S. and Canada
should use the International order form or contact their local
Sales Office or Distributor.
For phone orders In the U.S. and Canada
Call Toll Free: (800) 548-4725
Prices gOOd until 12/31/89.
Source HB
INTERNATIONAL LITERATURE ORDER FORM.
NAME: __________________________________________________________
COMPANY: ______________________________________________
~
____
ADDRESS: _____________________________________________________
CITY: ________________~___________ STATE: _____ ZIP: _ _ __
COUNTRY: ____________________________________________________
PHONE NO.: ...i(____- ' -_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _---'-'-_ _
ORDER NO.
TITLE
QTY.
PRICE
TOTAL
_ _ X ___ =
__ X
__ X __=
___ X _ _ =
__ X __=
__ X __ =
__ X
__ X __ =
__ X __=
__ X __ =
Subtotal
Must Add Your
Local Sales Tax
Total
PAYMENT
Cheques should be made payable to your local Intel Sales Office (see inside back cover.)
Other forms of payment may be available in your country. Please contact the Literature Coordinator at your
local Intel Sales Office for details.
The completed form should be marked to the attention of the LITERATURE COORDINATOR and returned
to your local Intel Sales Office.
.
.
Intel the Microcomputer Company:
When Intel invented the microprocessor in 1971, it created the era of
microcomputers. Whether used as microcontrol/ers in automobiles or microwave
ovens, or as personal computers or supercomputers, Intel's microcomputers
have always offered leading-edge technology. In the second half of the 1980s, Intel
architectures have held at least a 75% market share of microprocessors at 16 bits and above.
Intel continues to strive for the highest standards in memory, microcomputer components,
modules, and systems to give its customers the best possible competitive advantages.
MICROCOMMUNICATIONS
HANDBOOK
1989
in,tJ;
'",
+~
•"
','., '
Intel' Corpo~ation m~k&S no w~rrE\ntY'f~t t/;le use'of itg.,produ~tS'and assumes no responsibility for any errors
whiph. may appe!l/', in this dQcument nor does it make a commitment to update the information contained
~e~filn.
; ; ' ':, '
Intel retains the right to make changes ,to these specifications at any time, without notice.
Contact your local sales office to obtain the latest specifications before placing your order.
The following are trademarks of Intel Corporation and may only be used to
iden~ify
Intel Products:
Above, BITBUS, COMMputer, CREDIT, Data Pipeline, ETOX,
,FASTPATH, Genius, i, t ICE, iCEL, iCS, iDBP, iDIS, 12 1CE, iLBX,
im, iMDDX, iMMX, Inboard, Insite, Intel, intel, Inte1376, Inte1386, Inte1486,
intelBOS, Intel Certified, Intelevision, inteligent Identifier, inteligent
Programming, Intellec, Intellink, iOSP, iPDS, iPSC, iRMK, iRMX, iSBC,
iSBX, iSDM, iSXM, KEPROM, Library Manager, MAPNET, MCS,
Megachassis, MICROMAINFRAME, MULTIBUS, MULTICHANNEL,
MULTIMODULE, ONCE, OpenNET, OTP, PC BUBBLE, Plug-A-Bubble,
PROMPT, Promware, QUEST, QueX, Quick-Erase, Quick-Pulse
Programming, Ripplemode, RMX/80, RUPI, Seamless, SLD, SugarCube,
UPI, and VLSiCEL, and the combination of ICE, iCS, iRMX, iSBC, iSBX,
iSXM, MCS, or UPI and a numerical suffix, 4-SITE, 376, 386, 486.
MDS is an ordering code only and is not used as a product name or trademark. MDS@ is a registered
trademark of Mohawk Data Sciences Corporation.
·MULTIBUS is a patented Intel bus.
Additional copies of this manual or other Intel literature may be obtained from:
Intel Corporation
Literature Sales
P.O. Box 58130
Santa Clara, CA 95052-8130
@ INTEL CORPORATION 1988
CUSTOMER SUPPORT
INTEL'S COMPLETE SUPPORT SOLUTION WORLDWIDE
Customer Support is Intel's complete support service that provides Intel customers with hardware support, software
support, customer training, consulting services and network management services. For detai'led information contact
your local sales offices.
After a customer purchases any system hardware or software product, service and support become major factors in
determining whether that product ,will continue to meet a customer's expectations. Such support requires an international support organization and a breadth of programs to meet a variety of customer needs. As,you might expect,
Intel's customer support is quite extensive. It can start with assistance during your development effort to network
management. 100 Intel sales and service offices are located worldwide - in the U.S., Canada, Europe and the Far
East. So wherever you're using Intel technology, our professional staff is within close reach.
HARDW ARE SUPPORT SERVICES
Intel's hardware maintenance service, starting with complete on-site installation will boost your productivity from
the start and keep you running at maximum efficiency. Support for system or board level products can be tailored
to match your needs, from complete on-site repair and maintenance support economical carry-in or ma,il-in factory
'
.
service.
Intel can provide support service for not only Intel systems and emulators, but also support for -equipment in your
development lab or provide service on your product to your end-user/customer.
SOFTW ARE SUPPORT SERVICES
Software products are supported by our Technical Information Phone Service (TIPS) that has a special toll free
number to provide you with direct, ready information on known, documented problems and defi!;:lencies, as well as
work-arounds, patches and other solutions.
Intel's software support consists of two levels of contracts. Standard support includes TIPS (Technica.l, Information
Phone Service), updates and subscription service (product-specific tr!lubleshooting guides and; 'COMMENTS
Magazine). Basic support consists of updates and the subscription service. Contracts are sold in environments which
'
represent product groupings (e.g., iRMX@ environment).
CONSULTING SERVICES
Intel provides field system engineering consulting services for any phase of your development or application effort.
You can use our system engineers' in a variety of ways ranging from a~sistance in' using a new product, developing
an application, personalizing training and customizing an Intel product to providing technical and management
consulting. Systems Engineers are well versed in technical areas'such as microcommunications, real-time applications, embedded microcontrollers, and network services. You know your application needs; we know our products.
Working together we can help you get a successful product.to market in the least possible time.
CUSTOMER TRAINING
Intel offers a wide range of instructional programs covering various aspects of system design and implementation.
In just three to ten days a limited number of individuals learn more in a single workshop than in weeks of self-study.
For optimum convenience, workshops are scheduled regularly at Training Centers worldwide or we can take our
workshops to you for on-site instruction. Covering a wide variety of topics, Intel's major course categories include:
architecture and assembly language, programming and operating systems, BITBUSTM and LAN a~plications.
NETWORK MANAGEMENT SERVICES
Today's networking products are powerful and extremely flexible. The return they can provide on your :investment
via increased productivity and reduced costs can be very substantial.
Intel offers complete network support, from definition of your, network's physical and functional design" to implementation, installation and maintenance. Whether installing your first network or adding to an existing one, Intel's
Networking Specialists can optimize network performance for you.
CG/CUST/l00188
Table of Contents
Alphanumeric Index
Microcommunications Overvi~w AP-302 .... ~ . .. .. .. . .. . . . . .. . . . . . . . . . . . .. .. .
xi
SECTION ONE-DATA COMMUNICATIONS COMPONENTS
CHAPTER 1
Local Area Networks
CSMA/CD Access Method
DATA SHEETS
82586 Local Area Network Coprocessor .....................................
82C501 Ethernet Serial Interface ............... ; .........•.. " . . . . . . . . . • . . . .
Twisted Pair Ethernet Chip Set. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
82560 Host Interface and Memory Controller .... ;............................
82590 Advanced CSMAlCD LAN Controller with 8-Bit Data Path ... . . . . . . . . . . . . .
82592 Advanced CSMAlCD LAN Controller with 16-Bit Data Path . . . . . . . . . . . . . ..
82588 High Integration LAN Controller ........................ '. . . . . . . . .. . . . ..
APPLICATION NOTES
An 82586 Data Link Driver AP-235 ..........................................
Implementing Ethernet/Cheapernet with the Intel 82586 AP-274 ................
Implementing StarLAN with the Intel 82588 AP-236 . . . . . . . . . . . . . . . . . . . . . . . . . . ..
Using the Intel 82592 to Integrate a Low-Cost Ethernet Solution into a PC
Motherboard AP-320 ..............•.....................................
CSMAlCD ACCESS METHOD EVALUATION TOOLS
PC586E CSMAlCD LAN Evaluation Board ...................................
1-1
1-38
1-54
1-56
1-86
1-103
1-120
1-176
1-256
1-345
1-419
1-464
CHAPTER 2
Wide 'Area Networks
DATA SHEETS
8251A Programmable Communication Interface...............................
82050 Asynchronous Communications Controller .............................
82510 Asynchronous Serial Controller
................... '. . . . . . . .. . . . . .
8273 Programmable HDLC/SDLC Protocol Controller. . . . . . . . . . . . . . . . . .. . • . . . . .
8274 Multi-Protocol Serial Controller (MPSC) .................................
82530/82530-6 Serial Communications Controller (SCC) . . . . . . . . . . . . . . . . . . . . . ..
APPLICATION NOTES
Designing with the 82510 Asynchronous Serial Controller AP-401 .;.............
High Performance Driver for 8251 0 AP-31 0 : . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . ..
Using the 8273 SDLC/HDLC Protocol Controller AP-36 ........................
Asynchronous Communication with the 8274 Multiple Protocol Serial Controller
AP-134 ' ......................... '........................ :.. . . . . . . . .. . . ..
Synchronous Communication with the 8274 Multiple Protocol Serial Controller
AP-145 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..
Asynchronous and SDLC Communications with the 82530 AP-222 . . . . . . . . . . . . . ..
2-1
2-26
2-40
2-80
2-112
,2-150
2-182
,2:~
{2-293 j
"~-'-'
2-345
2-383
2-421
CHAPTER 3
Other Components,
DATA SHEETS,
8291A GPIB Talker/Listener .... , ..... , .................................... .
8292 GPIB Controller ...................................................... .
8294A Data Encryption/Decryption Unit .................•....................
APPLICATION NOTES
Using the 8291A GPIB Talker/Listener AP-166................................
Using the 8292 GPIB Controller AP-66 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3-1
3-33
3-52
3-65
3-95
Table of Contents (Continued)
SECTION TWO-TELECOMMUNICATION COMPONENTS
CHAPTER 4
Modem Products
DATA SHEETS
890242400 BPS Intelligent Modem Chip Set.................................
89C024XE High Performance 2400 BPS Intelligent Modem Chip Set. . . . . . . . . . . . .
MNP Application Package
MNP Class 5 Software for the 89C024XE Modem Chip Set .....................
EVALUATION KITS
89024 MEKPC. PC Card Modem Evaluation Kit for 89024 ......................
89024 MEK2. 89024 Enhanced Modem Evaluation Kit .. . . . . . . . . . . . . . . . . . . . . . . .
MEK3 Modem Evaluation Kit ...............................................
4-1
4-22
4-44
4-46
4-48
4-50
CHAPTER 5
IATC Advanced Telecommunications Components for Analog and ISDN
Applications
SLD Interface Specification. . . . . . . . . . . . . . . . . . . . . . . • . . . . . . . . . . . . . . . . . . . . . . . . .
DATA SHEETS
iATC 29C48 Feature Control Combo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
iATC 29C53AA Digital Loop Controller . . .. . . . .. .. . . .. .. .. .. .. . . . . .. . . .. .. .. ..
89151 T-Link Communications Controller. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ISP188 ISDN'Software Package for the 80188 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PC53 ISDN Board. . . . . . . . . . . . . . . . • . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10K 29C53 ISDN Development Kit for 29C53 .................................
LEK 29C53 Line Card Evaluation Kit .. . . .. .. . . . .. .. .. .. .. . . . . . . . . . .. .. .. . . . . .
TEK 29C53 Terminal Evaluation Kit..........................................
APPLICATION NOTES
29C53 Transceiver Line Interfacing AP-282. .. . . .. .. . ... . .. . . .. . . . . . .. . .. . . .. .
ISDN Applications with 29C53 and 80188 AP-400 ........•....................
5-1
5-5
5-25
5-50
5-53
5-59
5-67
5-73
5-75
5-78
5-92
CHAPTER 6
PCM Codec/Fliter and Combo
DATA SHEETS
2910A PCM Codec-JA. Law8-Bit Companded AID and D/A Converter............
2911 A-1 PCM Codec-A Law 8-Bit Companded AID and 01 A Converter ..........
2912A PCM Transmit/Receive Filter.........................................
2913 and 2914 Combined Single-Chip PCM Codec and Filter ...................
2916/2917 HMOS Combined Single-Chip PCM Codec and Filter .. . . . . . . . . . . . . . .
APPLICATION NOTES
Applications Information 291 OAl2911 A/2912A .................•.............
Designing Second-Generation Digital Telephony Systems Using the Intel
2913/2914 Codec/Filter Combochip AP-142 ..........•....................
6-1
6-19
6-34
6-46
6-67
6-85
6-88
SECTION THREE-SYSTEM PRODUCTS
CHAPTER 7
Local Area Networking Boards and Software
OpenNETTM Local Area Network Family ................ :....................
7-1
CHAPTER 8
Serial Communication Boards
iSBC~ 88/45 Advanced Data Communications Processor Board . . . . . . • . . . . . . . . .
iSBC~ 188/56 Advanced Communicating Computer .........•...............•
iSBC~ 534 Four Channel Communications Expansion Board. • . . . . . . . . . . . . . . . . . .
iSBC~ 544 Intelligent Communications Controller ........................... '. .
8-1
8-10
8-19
8-24
Table of Contents, (Continued)
iSBC® 548/549 Terminal Controll~rs ........................................
iSBC® 561 SOEMI Controller Board .........................................
iSBXTM 351 Serial 110 MULTIMODULETM Board. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
iSBXTM 354 Dual Channel Serial 1/0 MULTIMODULETM Board. . . . . . . . ... . . . . . . . .
iSBC® 186/41 OMULTIBUS® II Serial Communications Computer ........... : . . .
8-33
8-37
8-42
8·48
8-53
Alphanumeric Index
2910A PCM Codec-p. Law 8-Bit Companded AID and 0/ A Converter. , ............. ',' ..
2911A-1 PCM Codec-A Law 8-Bit Companded AID and 0/ A Converter ................ .
2912A PCM Transmit/Receive Filter .....................•.................... .' ... .
2913 and 2914 Combined Single-Chip PCM Codec and Filter ............. : ........... .
2916/2917 HMOS Combined Single-Chip PCM Codec and Filter ............ : ......... .
29C53 Transceiver Line Interfacing AP-282 ........................................ .
82050 Asynchronous Communications Controller ................................... .
825.1 0 Asynchronous Serial Controller (SCC) ....................................... .
8251A Programmable Communication Interface .................................... .
82530/82530-6 Serial Communications Controller (SCC) ............................. .
82560 Host Interface and Memory Controller ....................................... .
82586 Local Area Network Coprocessor .......................... : ................ .
82588 High Integration LAN Control ............................................... .
82590 Advanced CSMAlCD LAN Controller with 8-Bit Data Path ...................... .
82592 Advanced CSMAlCD LAN Controller with 16-Bit Data Path ..................... .
8273 Programmable HDLC/SDLC Protocol Controller ............................... .
8274 Multi-Protocol Serial Controller (MPSC) ....................................... .
8291A GPIB Talker/Listener ..................................................... .
8292 GPIB Controller ............................................................ .
8294A Data Encryption/Decryption Unit ........................................... .
82C501 Ethernet Serial Interface ................................................. .
890242400 BPS Intelligent Modem Chip Set ....................................... .
89024 MEK2, 89024 Enhanced Modem Evaluation Kit ............................... .
89024 MEKPC, PC Card Modem Evaluation Kit for 89024 ............................ .
89151 T-Link Communications Controller .......................................... .
89C024XE High Performance 2400 BPS Intelligent Modem Chip Set ................... .
An 82586 Data Link Driver AP-235 ................................................ .
Applications Information 291 OAl2911 Al2912A ........................•.............
Asynchronous and SDLC Communications with the 82530 AP-222 .................... .
Asynchronous Communication with the 8274 Multiple Protocol Serial Controller AP-134 .. .
DeSigning Second-Generation Digital Telephony Systems Using the Intel 2913/2914
Codec/Filter Combochip AP-142 ............................................... .
Designing with the 82510 Asynchronous Serial Controller AP-401 ..................... .
High Performance Driver for 82510 AP-31 O......................................... .
iATC 29C48 Feature Control Combo .............................................. .
iATC 29C53AA Digital Loop Controller ............................................. .
10K 29C53 ISDN Development Kitfor 29C53 ....................................... .
Implementing Ethernet/Cheapernet with the Intel 82586 AP-274 ...................... .
Implementing StarLAN with the Intel 82588 AP-236 ................................. .
iSBC® 186/410 MULTIBUS® II Serial Communications Computer ..................... .
iSBC® 188/56 Advanced Communicating Computer ................................ .
iSBC® 534 Four Channel Communications Expansion Board ......................... .
iSBC® 544 Intelligent Communications Controller ................................... .
iSBC® 548/549 Terminal Controllers .............................................. .
iSBC® 561 SOEMI Controller Board ............................................... .
iSBC® 88/45 Advanced Data Communications Processor Board ...................... .
iSBXTM 351 Serial I/O MULTIMODULETM Board .................................... .
iSBXTM 354 Dual Channel Serial I/O MULTIMODULETM Board ....................... .
ISDN Applications with 29C53 and 80188 AP-400 ................................... .
ISP188 ISDN Software Package for the 80188 ...................................... .
LEK 29C53 Line Card Evaluation Kit ............................................... .
MEK3 Modem Evaluation Kit ..................................................... .
MNP Application Package ....................................................... .
MNP Class 5 Software for the 89C024XE Modem Chip Set ........................... .
6-1
6-19
6-34
6-46
6-67
5-78.
2-26
2-40
2-1
2-150
1-56
1-1
1~120
1-86
1-103
2-80
2-112
3-1
3-33
3-52
1-38
4-1
4-48
4-46
5-50
4-22
1-176
6-85
2-421
2-345
6-88
2-182
2-262
5-5
5-25
5-67
1-256
1-345
8-53
8-10
8-19
8-24
8-33
8-37
8-1
8-42
8-48
5-92
5-53
5-73
4-50
4-44
4-44
Alphanumeric Index (Continued)
OpenNETTM Local Area Network Family
PC53 ISDN Board
~
PC586E CSMAICO LAN Evaluation Board
SLO Interface Specification
Synchronous Communication with the 8274 Multiple Protocol Serial Controller Ap·145
TEK29C53 Terminal Evaluation Kit ...............
o.
Twisted Pair Ethernet Chip Set ..
Using the 8273 SOLC/HOLC Protocol Controller Ap·36 .
Using the 8291A GPIB Talker/Listener Ap·166 .
Using the 8292 GPIB Controller AP·66 ....
Using the Intel 82592 to Integrate a Low·Cost Ethernet Solution into a PC Motherboard
Ap·320 ..
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
00000
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
00
0
0
000000000000000000000000.
0
•••••••••
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
00
0
0
•••
0
0
0
0
0
0
0
0
0
0
0
'0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
00
0
•••
0
••
0
."0.0.000000
0
0
0
••
0
0
0
0
0
•••
0
•••
0
••
0
•••
•••••
0
0
•••
0
0
0
••
0.
0
••
0
•••••
••
0
o •••••••
0
0
••••••••••••••
0
•••
0
•
0
••••••••
0
••
0
0
.,
0
••••
0
0
••
•••••••••••••
00
••••
•
0
0
7·1
5·59
,1·464
5·1
2·383
5·75
1·54
2·293
.3·65
'3·95
00000000000000000000000000000000000000'
0
0
0
0
••
0
0
0"
•••
•••••••
0
••
0
•
0
•••
0
o ••
0
••
••••••
0
•
•
•••
0
••••
00
••••
0
••
.....
0
:
••
0
0
0
•
0
•••
0
••••••••
••••••••
0
0
•••••
•••••••
0
0
0
0
•
•
0
0
o.
•
•
•
0
0
1·419
Intel Corporation
Product Cod.. /
Part Numbers
SBC28616
SBC300
SBC301
SBC302
SBC304
SBC307
SBC314
SBC322
SBC324
SBC337
SBC341
SBC386
SBC386116
SBC386120
SBC38621
SBC38622
SBC38624
SBC38628
SBC38631
SBC38632
SBC38634
SBC38638
SBC428
SBC464
SBCS17
SBCS19
SBC534
SBC548
SBC550
SBC5S0
SBCS50
SBC5S2
SBC5S6
SBC569
SBC589
SBC604
SBC608
SBC614
SBC618
SBC655
SBC66lt
SBC8010
SBC80204
SBC8024
SBC8030
SBC8605
SBC8612
SBC8614
SBC8630
SBC8635
SBC86C38
SBC8825
SBC8840
SBC8845
SBC90S
SBCLNKOOI
Intel, Puerto RIco, lac.
Intel Puerto RIco II, Inc.
Product Codea/
Part Numbers
pSBC28616
pSBC300
pSBC301
pSBC302
pSBC304
pSBC307
pSBC314
pSBC322
pSBC324
pSBC337
pSBC341
pSBC386
pSBC386116
pSBC386120
pSBC38621
pSBC38622
pSBC38624
pSBC38628
pSBC38631
pSBC38632
pSBC38634
pSBC38638
pSBC428
pSBC464
pSBCS17
pSBCS19
pSBCS34
pSBCS48
TSBC550
pSBC550
pSBCSSO
pSBCS52
pSBC5S6
pSBCS69
pSBCS89
pSBC604
pSBC608
pSBC614
pSBC618
pSBC6SS
pSBC66lt
pSBC8010
pSBC80204
pSBC8024
pSBC8030
pSBC860S
pSBC8612
pSBC8614
pSBC8630
pSBC8635
pSBC882S
pSBC8840
pSBC884S
pSBC90S
pSBCLNKOOl
Intel S1"",pore, Ltd.
Product Cod../
Part Numbers
sSBC386
sSBC428
sSBCS19
sSBC534
sSBC556
sSBC8024
sSBC8605
sSBC8630
sSBC863S
sSBC86C38
sSBC8825
sSBC8845
Intel Corporatina
Product Cod.. /
Part Numbers
SBCMEM310
SBCMEM312
SBCMEM320
SBCMEM340
SBE96
SBX217
SBX218
SBX270
SBX3lt
SBX328
SBX331
SBX344
SBX3S0
SBX3S1
SBX3S4
SBX488
SBXS86
SCHEMAIJPLD
SCOM
SDKSI
SDK8S
SDK86
SXM217
SXM28612
SXM386
SXMS44
SXMSS2
SXM951
SXM9S5
SYP120
SYP301
SYP302
SYP31090
SYP3lt
SYP3847
SYR286
SYR86
SYS120
SYS310
SYS3lt
T60
TA096
TA252
TA4S2
W140
W280
W40
W80
XNX286DOC
XNX286DOCB
XNXIBASE
XNXIDB
XNXIDESK
XNXIPLAN
XNXIWORD
Intel Puerto RIco, Inc.
Intel Puerto RIco II, I...
Produet Codea/
Part Numbers
Ietel Sinppore, Ltd.
Product Codea/
Part Numbers
pSBCMEM310
pSBCMEM312
pSBCMEM320
pSBCMEM340
pSBE96
pSBX217
pSBX218
pSBX270
pSBX3lt
pSBX328
pSBX33I
pSBX344
pSBX3S0
pSBX3S1
pSBX3S4
pSBX488
sSBXS86
pSCHEMAIIPLD
pSCOM
pSDKSl
pSDK8S
pSDK86
pSXM217
pSXM28612
pSXM386
pSXMS44
pSXMS52
pSXM951
pSXM95S
pSYP120
pSYP301
pSYP302
pSYP31090
pSYP3lt
pSYP3847
pSYR286
pSYR86
pSYS120
pSYS310
pSYS3lt
pT60
pTA096
pTA252
pTA452
pW140
pW280
pW40
pW80
pXNX286DOC
pXNX286DOCB
pXNXIBASE
pXNXIDB
pXNXIDESK
pXNXIPLAN
pXNXIWORD
CG/PCPN/l02488
Any of the following products may appear in this publication. If so, it must be noted that
such products have counterparts manufactured by Intel Puerto Ricp, Inc.', Intel Puerto
Rico II; Inc., and/or Intel Singapore,. Ltd. The Pnxiuct codes/part numbers of, these
counterpart produ,cts are listed 'below next to the corresponding Intel C~poration product
codes/part numbers.
Inte! Corporatioo
Product Codes/
PutNumben
376SKIT
903
904
913
914
923
924
952
953
954
ADAICE
B386M1
B386M2
B386M4
B386M8
C044KIT
C2S2KIT
C28
C32
C4S2KIT
D86ASM
D86C86
D86EDI
DCM91ll
DOSNET
F1
GUPILOGICIID
H4
1044
12S2KIT
14S2KIT
I86ASM
ICE386
III010
III086
III086
I111ll
III 186
111186
III 198
I11212
111286
I11286
IIISIS
IIIS20
IIIS20
111531
IIIS32
IIIS33
I11621
I11707
I11707
111815
INA961
IPAT86
KAS
KC
KH
KM1
late! Puerto RIeo, Inc.
late! Puerto Rico II, I...
Product Codes/
PartNumben
p376SKIT
p903
p904
p913
p914
p923
p924
p9S2
p9S3
p9S4
pADAICE
pB386M1
pB386M2
pB386M4
pB386M8
pC044KIT
pC2S2KIT
pC28
pC32
pC4S2KIT
pD86ASM
pD86C86
pD86EDI
pDCM9111
pDOSNET
pFI
pGUPlLOGICIID
pH4
pl044
pl2S2KIT
pl4S2KIT
pl86ASM
plCE386
pIIIOlO
pIII086
TIII086
pIIIlll
pIII186
TIll 186
pIII198
pIll212
pIll286
TIII286
pIIIS1S
TIIIS20
pIIIS20
pIIIS31
pIIIS32
pIIIS33
pIll621
pIll707
TIII707
pIll81 5
plNA961
plPAT86
pKAS
pKC
pKH
pKMI
late! SIngapore, ~;
Product Codes/
PutN_ben
late! CorporadOll
Product Codes/
PartN_ben
KM2
KM4
KM8
KNLAN
KT60
KWI40
KW40
KW80
M1
M2
M4
M8
MDS610
MDX301S
MDX301S
MDX3016
MDX3016
MDX4S7
MDX4S7
MDX4S8
MDX4S8
MSA96
NLAN
PCLINK
PCX344A
R286ASM
R286EDI
R286PLM
R286SSC
R86FOR
RCB4410
RCX920
RMX286
RMXNET
S301
S386
SBC010
SBC012
SBC020
SBC028
SBC040
SBCOS6
SBC108
SBC1l6
SBC18603
SBC186410
SBC186S1
SBC186S30
SBC18678
SBC18848
SBC188S6
SBC208
SBC214
SBC21S
SBC220
SBC221
SBC28610
SBC28612
SBC28614
Iatel Puerto Rico, I...
Intel Puerto IUco II, Inc.
Product Codes/
Part Numben
I.tel Singapore, Ltd.
Product Codes/
Part Numben
pKM2
pKM4
pKM8
pKNLAN
pKT60
pKW140
pKW40
pKW80
pM1
pM2
pM4
pM8
pMDS610
pMDX30lS
pMDX301S
pMDX3016
pMDX3016
pMDX4S7
pMDX4S7
pMDX4S8
pMDX4S8
pMSA96
pNLAN
.PCLINK
pPCX344A
pR286ASM
pR286EDI
pR286PLM
pR286SSC
pR86FOR
.RCB44lO
pRCX920
pRMX286
pRMXNET
pS301
pS386
pSBC010
pSBC012
pSBC020
pSBC028
pSBC040
pSBCOS6
pSBC108
pSBC1l6
pSBCI8603
pSBCI86410
pSBC186S1
pSBC186S30
pSBC18678
pSBC18848
pSBC188S6
pSBC208
pSBC214
pSBC21S
pSBC220
pSBC221
pSBC28610
pSBC28612
pSBC28614
.SBCOI2
sSBC18603
sSBCI86S1
.SBC18848
sSBC188S6
.SBC208
.SBC220
.SBC286lO
intJ
Ap·302
OVERVIEW
Imagine for a moment a world where all electronic
communications were instantaneous. A world where
voice, data, and graphics could all be transported via
telephone lines to a variety of computers and receiving
systems. A world where the touch of a finger could
summon information ranging from stock reports to
classical literature and bring it into environments as
diverse as offices and labs, factories and living rooms.
Unfortunately, these promises of the Information Age
still remain largely unfulfilled. While computer technology has accelerated rapidly over the last twenty
years, the communications methods used to tie the wide
variety of electronic systems in the world together have,
by comparison, failed to keep pace. Faced with a tangle
of proprietary offerings, high 'costs, evolving standards,
and incomplete technologies, the world is still waiting
for networks that are truly all-encompassing, the missing links to today's communications puzzle.
Enter microcommunications-microchip-based digital
communications products and services. A migration of
the key electronics communications functions into silicon is now taking place, providing the vital interfaces
that have been lacking among the various networks
now employed throughout the world. Through the evolution ofVLSI (Very Large Scale Integration) technology, microcommunications now can offer the performance required to effect these communications interfaces
at affordable costs, spanning the globe with silicon to
eradicate the troublesome bottleneck that has plagued
information transfer during recent years.
"There are three parts to the communications puzzle,"
says Gordon Moore, Intel Chairman and CEO. "The
first incorporates the actual systems that communicate
with each other, and the second is the physical means
to connect them--such as cables, microwave technology, or fiber optics. It is the third area, the interfaces
between the systems and the physical links, where silicon will act as the linchpin. That, in essence, is what
microcommunications is all about."
THE COMMUNICATIONS
BOTTLENECK
Visions of global networks are not new. Perhaps one of
the most noteworthy of these has been espoused by Dr.
Koji Kobayashi, chairman of NEC Corporation. His
view of the future, developed over the nearly fifty years
of his association with NEC, is known as C&C (Computers and Communications). It defines the marriage of
passive communications systems and computers as
processors and manipulators of information, providing
the foundation for a discipline that is changing the basic character of modern society.
Kobayashi's macro vision hints at the obstacles confronting the future of C&C. When taken to the micro
level, to silicon itself, one begins to understand the
complexities that are involved. When Intel invented the
microprocessor fifteen years ago, the fmt seeds of the
personal computer revolution were sown , marking an
era that over the last decade has dramatically influenced the way people work and live. PCs now proliferate in the office, in factories, and throughout laboratory
environments. And their "intimidation" factor has lessened" t() where they are also becoming more and more
prevalent in the home, beginning to penetrate a market
that to date has remained relatively untapped.
Thanks· to semiconductor technology, the personal
computer has raised the level of productivity in our
society. But most of that productivity has been gained
by individuals at isolated workstations. Group productivity, meanwhile. still leaves much to be desired. The
collective productivity of organizations can only be enhanced through more sophisticated networking
technology. We are now faced with isolated "islands
of automation" that must somehow be developed
into networks of productivity.
.
But no amount of computing can meet these challenges
if the. ,corresponding communications technology is not
sufficiently in step. The Information Age can only grow
as fast as the lowest common denominator-which in
this case is the aggregate communications bandwidth
that continues to lag behind our increased computing
power. Such is the nature of the communications bottleneck, where the growing amounts ofinformation we
are capable of generating can only flow as fast as the
limited and incompatible communications capabilities
now in place. Clearly, a crisis is at hand.
BREAKING UP THE BOTTLENECK
Three factors have contributed to this logjam: lack of
industry standards, an insufficient cost/performance
ratio, and the incomplete status of available communications technology to date.
• Standards-One look at the tangle of proprietary
, systems now populating office, factory, and laboratory envirorimerits gives a good indication of the
inherent difficulty in hooking these diverse systems
together. And 'these systeIlls do not merely feature
different architectures-they also represent completely different levels of computing, ranging from
giant mainframes' at o,ne end of the scale down to
individual microcontrollers on' the other.
Tbe ~ket has simply grown too fast to effectively
accommodate the changes that have occurred. Sup,
pliers face the dilemma of meshing product differentiation issues with industry-wide compatibility as
Ap..302
they develop their strategies; opting for one in the
past often meant forsaking the other. And while
some standards have coalesced; the industry· still
faces a technological Tower of Babel, with many
proprietary solutions vying to be recognized in leadership positions.
•
Cost/Performance Ratio-While various communications technologies struggle toward maturity,
the industry has had to cope with tremendous costs
associated with ·intereonnectivity and interoperation. Before the shift to microelectronic interfaces
began to occur, these connections often were prohibitively expensive.
Says Ron Whittier, Intel Viqe President and Director of Marketing: "Mainframes offer significant
computing and communications power. but at a
price that limits the number of usen. What is needed is cost-effective communications solutions to
hook together the roughly 16 million installed PCs
in the market, as well as the soon-to-exist voice/
data terminals. That's the role of microcommunications-bringing cost-effective communications solutions to the microcomputer world."·
•
Incomplete Technology-Different suppliers have
developed many networking schemes, but virtually
all have been fragmented and unable to meet the
wide range of needs in the marketplace. Some of
these approaches have only served to create additional problems, making OEMs and systems houses
loathe to commit to suppliers who they fear cannot
provide answers at all of the levels of communications that are now funneled into the bottleneck.
THE NETWORK TRINITY
Three principal types of networks now comprise the
electronic communications marketplace: Wide Area
Networks (WANs), Local Area Networks (LANs), and
Small Area Networks (SANs). Each in its own fashion
is turning to microcommunications for answers to its
networking problems.
WANs-known by .some as Global Area Networks
(GANs)-are most commonly associated with the
worldwide analog tFIephone system. The category also
includes a number of other segments, such as satellite
and microwave communications, traditional networks
(like mainframe-to-mainframe connections), modems,
statistical I;Ilultiplexers, and front-end commv.nications
processors. The lion's share. of nodes-electronic network connections-in the WAN arena, however, resides in the telecommunications segment. This is where
the emerging ISDN. (Integrated Services Digital Network) standard comes· into focus as the ·most visible
portion of the WAN marketplace.
.
The distances over which information may be transmitted via a WAN are essentially unlimited. The goal of
ISDN islo take what is largely an analog global system
and transform it into a digital network by defining the
standard interfaces that will provide connections at
each node.
These interfaces will allow basic digital communications to occur via the existing twisted pair of wires that
comprise the telephone lines in place today. This would
bypass the unfeasible alternative of installing completely new lines, which would be at cross purposes with the
charter of ISDN: to reduce costs and boost performance through realization oran all-digital network.
The second category, Local Area Networks, represents
the most talked-about link provided by microcommunications; In their most common form, LANs are comprised of-but not limited to-PC-to-PCconnections.
They incorporate information exchange over limited
distances, usually not exceeding five kilometers, which
often takes place within the same building or between
adjacent/work areas. The whole phenomenon surrounding LAN development, personal computing, and distributed processing essentially owes its existence to microcomputer technology, so it is not surprising that this
segment of networking has garnered the attention it has
in microelectronic circles.
Because of that, progress is being made in this area.
The most prominent standard-which also applies to
WANs and SANs-is the seven-layer Open Systems Interconnection (OSI) Model, established by the International Standards Organization (ISO). The model provides the foundation to which all LAN configurations
must adhere if they hope to have any success in the
marketplace. Interconnection protocols determining
how systems are tied together are defined in the first
five layers. Interoperation concepts are covered in the
upper two layers, defining how systems can communicate with each other once they are tied together.
In the LAN marketplace, a large number of networking
products and philosophies are available today, offering
solutions at various price/performance points. Diverse
approaches such as StarLAN, Token Bus and Token
Ring, Ethernet, and PC-NET, to name a few of the
more popular office LAN architectures, point to many
choices for OEMs and end users.
A similar situation exists in the factory. While the
Manufacturing Automation Protocol (MAP) standard
is coalescing around the leadership of General Motors,
Boeing, and others, a variety of proprietary solutions
also abound. The challenge is for a complete set of interfaces to emerge that can potentially tie all of these
networks' together in--and among-the office, factory,
and lab environments.
The fmal third of the network trinity is the Small Area
Network (SAN). This category is concerned with communications over very short distances, usually not exceeding 100 meters. SANs most often deal with chip-tochip or chip-to-system transfer of information; they are
optimized to deal with real-time applications generally
managed by microcontrollers, such as those that take
place on the factory floor, among robots at various
workstations.
SANs incorporate communications functions that are
undertaken via serial backplanes in microelectronic
equipment. While they represent a relatively small market in 1986 when compared to WANs and LANs, a
tenfold increase is expected through 1990. SANs will
have the greatest number of nodes among network applications by the next decade, thanks to their preponderance in many consumer products.
While factory applications will make up a large part of
the SAN marketplace probably the greatest contributor
to growth will be in automotive applications. Microcontrollers are now used in many dashboards to control
a variety of engine tasks electronically, but they do not
yet work together in organized and efficient networks.
As Intel's Gordon Moore commented earlier this year
to the New York Society of Security Analysts, when
this technology shifts into full gear during the next decade, the total automobile electronics market will be
larger than the entire semiconductor market was in
1985.
MARKET OPPORTUNITIES
Such growth is also mirrored in the projections for the
WAN and LAN segments, which, when combined with
SANs, make up the microcommunications market pie.
According to Intel analysts, the total silicon microcommunications market in 1985 amounted to $522 million.
By 1989, Intel predicts this figure will have expanded to
$1290 million, representing a compounded annual
growth rate of 25%.
And although the WAN market will continue to grow
at a comfortable rate, the SAN and LAN pieces of the
pie will increase the most dramatically. Whereas SANs
represented only about 12.5% ($65 million) in 1985,
they could explode to 22.5% ($290 million) of the larger pie by 1989. This growth is paralleled by increases in
the LAN segment, which should grow from 34.5% of
the total silicon microcommunications market in 1985
to 44.5% of the expanded pie in 1989.
Opportunities abound for microcommunications suppliers as the migration to silicon continues. And
perhaps no VLSI supplier is as well-positioned in this
marketplace as Intel, which predicts that 50% of its
products will be microcommunications-related by 1990.
The key here is the corporation's ability to bridge the
three issues that contribute to the communications bottleneck: standards, cost-performance considerations,
and the completeness of microcomputer and microcommunications product offerings.
INTEL AND VLSI: THE
MICROCOMMUNICATIONS MATCH
Intel innovations helped make the microcomputer revolution possible. Such industry "firsts" include the
microprocessor, the EPROM, the E2PROM, the
microcontroller, development systems, and single board
computers. Given this legacy, it is not surprising that
the corporation should come to the microcommunications marketplace already equipped with a potent arsenal of tools and capabilities.
The first area centers on industry standards. As a VLSI
microelectronic leader, Intel has been responsible for
driving many of the standards that are accepted by the
industry today. And when not actually initiating these
standards, Intel has supported other existing and
emerging standards through its longtime "open systems" philosophy. This approach protects substantial
customer investments and ensures easy upgradability
by observing compatibility with previous architectures
and industry-leading standards.
Such a position is accentuated by Intel's technology relationships and alliances with many significant names
in the microcommunications field. Giants like AT&T
in the ISDN arena, General Motors in factory networking, and IBM in office automation all are working
closely with Intel to further the standardization of the
communications interfaces that are so vital to the
world's networking future.
Cost/performance considerations also point to Intel's
strengths. As a pioneer in VLSI technology, Intel has
been at the forefront of achieving greater circuit densities and performance on single pieces of silicon: witness
the 275,000 transistors housed on the 32-bit 80386, the
highest performance commercial microprocessor ever
built. As integration has increased, cost-per-bit has decreased steadily, marking a trend that remains consistent in the semiconductor industry. And one thing is
intJ
AP-302
certain: microcommunications has a healthy appetite
for transistors, placing it squarely in the center of the
VLSI explosion.
But it is in the final area-completeness of technology
and products-where Intel is perhaps the strongest. No
other microelectronic vendor can point to as wide an
array of products positioned across the various segments that comprise the microelectronic marketplace.
Whether it be leadership in the WAN marketplace as
the number·one supplier of merchant telecommunications components, strength in SANs with world leadership in microcontrollers, or overall pr,*nce in the
LAN arena with complete solutions in components,
boards, software, and systems, Intel is a vital presence
in the growing microcommunications arena.
That leadership extends beyond products. Along with
its own application software, Intel is promoting exparision through partnerships with many different independent software vendors (ISVs), ensuring that the necessary application programs will be in place to fuel the
gains provided by the silicon "engines" residing at the
interface level. And finally, the corporation's commitment to technical support training, service, and its
strong fotce of field applications engineers guarantees
that it will back up its position and serve the needs that
will continue to spring up as the microcommunications
evolution becomes a'rea1ity.
Together, all the market segment alluded to in this article comprise the world of microcommunications, a
world coming closer together every day as the web of
networking solutions expands-all thanks to the technological ties that bind, reaching out to span the globe
with silicon.
Local Area Networks
1
intJ
82586
LOCAL AREA NETWORK COPROCESSOR
• Supports Minimum Component
Systems
- Shared Bus Configuration
-Interface to iAPX 186 and 188
Microprocessors without Glue
• Performs Complete CSMA/CD Medium
Access Control Functions
Independently of CPU
- High Level Command Interface
• Supports Established and Emerging
LAN Standards
-IEEE 802.3/Ethernet (10BASE5)
-IEEE 802.3/Cheapernet (10BASE2)
-IBM PC Network
-IEEE 802.3/StarLAN (1BASE5)
- Proprietary CSMA/CD Networks up
to 10 Mbps
• Supports High Performance Systems
- Bus Master, with On-Chip DMA
- 5 MBytes/Sec Bus Bandwidth
- Compatible with Dual Port Memory
- Back to Back Frame Reception at 10
Mbps
• Network Management
- CRC Error Tally
- Alignment Error Tally
- Location of Cable Faults
• On-Chip Memory Management
- Automatic Buffer Chaining
- Buffer Reclaim After Receipt of Bad
Frames
- Save Bad Frames, Optionally
• Self-Test Diagnostics
-Internal Loopback
- External Loopback
-Internal Register Dump
- Backoff Timer Check
• Interfaces to 8-blt and 16-bit
Microprocessors
• 48 Pin DIP and 68 Pin PLCC
(see "Intel Packaging" Document, Order Number: 231369-001)
l'llTEM INTERFACE
ITSTEM CLOCK
AND CONTROL SIGNALS
COMMAND
UNIT
IUS
INTERFACE
UNIT
MICROINSTRUCTION
ROM
RECEIVE
UNIT
DMA
CDNTROL
It CHANNELS)
MDST IIGNIFICANT
ADDRESSIA,.-A,,)
SERIAL INTERFACE
I'
~
RXD
lIE
TXD
TiC
1m
l:'I'S
231246-1
Figure 1. 82586 Functional Block Diagram
"IBM is a trademark of International Business Machines Corp.
1-1
March 1988
Order Number: 231246-006
inter
82586
,r;-'-'4i"
A2.
A19/56 [ 2
Al. ~ 3
47
..8
Vee
A21
.22
CAD)
(WR)
A17' [ ..
45
A23
A1' ~ 5
.4
SHE
AD15 ~ •
43
HOLD
42
••
HLDA
AD,.
AD.3
AD.2
AD11
"010
~ 1
[ •
( 9
(.0
; 11
III (DTfll)
.. J SO (DEli)
38 J READY (ALE)
31
INT
?
P Vee
Yss ( 12
37 ~ "RDY/SADY
Aot [ '3
ADa [ ••
AD7 [ .5
ADO'.
ADS
17
AD.
l'
AD3
11
AD2
20
AD'
2'
ADO [ 22
3.
35
P CA
.. pRESET
P
33
MN/MX
32 ~ eLK
31 ~ CRS
30 ~ COT
2.
CfI
21 RTS
27
TID
P
P
P
RXC[232.pm
Yss'"
"pRID
231246-2
NOTE:
The symbols in parentheses correspond to minimum mode.
Plastic Leaded Chip Carrier
Top
Bottom
NC
AD5
AD6
AD7
AD8
AD9
Vss
Vss
N82586
68l Plee
Vss
(TOP VIEW)
Vss
AD10
NC
NC
AD11
AD12
AD13
NC
51
.1
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
~i~!5!!~~~~ijll~a~
:c
~ ~
231246-41
Figure 2. 82586 Pinout Diagrams
1-2
intJ
82586
The 82586 provides two independent 16 byte FIFOs,
one for receiving and one for transmitting. The
threshold for block transfer to/from memory is programmable, enabling the user to optimize bus overhead for a given worst case bus latency.
The 82586 is an intelligent, high performance Local
Area Network coprocessor, implementing the
CSMAlCD access method (Carrier Sense Multiple
Access with Collision Detection). It performs all timecritical functions independently of the host processor, which maximizes performance and network
efficiency.
The 82586 provides a rich set of diagnostic and network management functions including: internal and
external loopbacks, exception condition tallies,
channel activity indicators, optional capture of all
frames regardless of destination address, optional
capture of errored or collided frames, and time domain reflectometry for locating faults in the cable.
The 82586 performs the full set of IEEE 802.3
CSMAlCD media access control and channel interface functions including: framing, preamble generation and stripping, source address generation,
destination address checking, CRC generation and
checking, short frame detection. Any data rate up to
10 Mb/s can be used.
The 82586 can be used in either baseband or broadband networks. It can be configured for maximum
network efficiency (minimum contention overhead)
for any length network operating at any data rate up
to 10 Mbps. The controller supports address field
lengths of 1, 2, 3, 4, 5, or 6 bytes. It can be configured for either the IEEE 802.3/Ethernet or HDLC
method of frame delineation. Both 16-bit and 32-bit
CRC are supported.
The 82586 features a powerful host system interface. It automatically manages memory structures
with command chaining and bidirectional data chaining. An on-chip DMA controller manages 4 channels
transparently to the user. Buffers containing errored
or collided frames can be automatically recovered.
The 82586 can be configured for 8-bit or 16-bit data
path, with maximum burst transfer rate of 2 or 4
Mbyte/sec. respectively. Memory address space is
16 Mbyte maximum.
The 82586 is fabricated in Intel's reliable HMOS II
5V technology and is available in a 48 pin DIP or
68 pin PLCC package.
Table 1.82586 Pin Description
Symbol
48 Pin DIP 68 Pin PLCC
Pin No.
Pin No.
Type
Level
Name and Function
+ 5V Power Supply.
Vcc,Vcc
48,36
8,9,10,11,
61,62
System Po~er:
Vss, Vss
12,24
26,27,41,
42,43,44
System Ground.
RESET
34
13
I
TTL
RESET is an active HIGH internally synchronized signal,
causing the 82586 to terminate present activity
immediately. The signal must be HIGH for at least four
clock cycles. The 82586 will execute RESET within ten
system clock cycles starting from RESET HIGH. When
RESET returns LOW, the 82586 waits for the first CA to
begin the initialization sequence.
TxD
27
22
0
TTL
Transmitted Serial Data output Signal. This signal is HIGH
when not transmitting.
TxC
26
23
I
Transmit Data Clock. This signal provides timing
information to the internal serial logic, depending upon the
mode of data transfer. For NRZ mode of operation, data is
transferred to the TxD pin on the HIGH to LOW clock
transition.
RxD
25
24
RxC
23
28
. .
'See D.C. Characteristics.
•
I
TTL
I
•
Received Data Input Signal.
Received Data Clock. This signal provides timing
information to the internal shifting logic depending upon the
mode of data transfer. For NRZ data, the state of the RxD
pin is sampled on the HIGH to LOW clock transition.
1-3
inter
82586
Table 1. 82586 Pin Description (Continued)
48 Pin DIP 68 Pin PLCC
Pin No.
Pin No.
Symbol
RTS
Type
Level
28
21
0
TTL
Request To Send Signal. When LOW, notifies an external
interface that the 82586 has data to transmit. It is forced
HIGH after a Reset and while the Transmit Serial Unit is
not sending data.
29
20
I
TTL
Active LOW Clear To Send input enables the 82586
transmitter to actually send data. It is normally used as an
interface handshake to RTS. This signal going inactive
stops transmission. It is internally synchronized. If
goes inactive, meeting the setup time to 'iXC negative
edge, transmission is stopped and Ri"S goes inactive
within, at most, two TxC cycles.
.'
CTS
Name and Function
rn
CRS
31
18
I
TTL
Active LOW Carrier Sense input used to notify the 82586
that there is traffic on the serial link. It is used only if the
82586 is configured for external Carrier Sense. When so
configured, external circuitry is required for detecting serial
link traffic. It is internally synchronized. To be accepted,
the signal must stay active for at least two serial clock
cycles.
COT
30·
19
I
TTL
Active LOW Collision Detect input is used to notify the
82586 that a collision has occurred. It is used only if the
82586 is configured for external Collision Detect. External
circuitry is required for detecting the collision. It is internally
synchronized. To be accepted, the signal must stay active
for at least two serial clock cycles. During transmission, the
82586 is able to recognize a collision one bit time after
preamble transmission has begun.
INT
38
6
0
TTL
Active HIGH Interrupt request signal.
CLK
32
15
I
MOS
The system clock input from the 80186 or another
symmetrical clock generator.
MN/MX
33
14
I
TTL
When HIGH, MN/MX selects FID, WR, ALE DEN, DTIA"
(Minimum Mode). When LOW, MN/MX selects A22, A23,
READY, SO, S1 (Maximum Mode). Note: This pin should be
static during 82586 operation.
ADO-AD15
6-11,
13-22
29-33,3640,45,48,
49,50,53,
54
I/O
TTL
These lines form the time multiplexed memory address (t1)
and data (t2, t3, tW, t4) bus. When operating with an 8-bit
bus, the high byte will output the address only during T1.
ADO-AD15 are floated after a RESET or when the bus is
not acquired.
A16-A18
A20-A23
1,3-5
45-47
55-57,59,
63-65
Q
These lines constitute 7 out of 8 most significant address
bits for memory operation. They switch during t1 and stay
valid during the entire memory cycle. The lines are floated
after RESET or when the bus is not acquired. Address
lines A22 and A23 are not available for use in minimum
mode.
2
58
A19/S6
TTL
0
TTL
During t1 it forms line 19 of the memory address. During t2
t4 it is used as a status indicating that this is a
Master peripheral cycle, and is HIGH. Its timing is identical
to that .of ADO-AD15 during write operation.
t~rough
1-4
inter
82586
Table 1.82586 Pin Description (Continued)
Symbol
HOLD
48 Pin DIP 68 Pin PLCC Type
Pin No.
Pin No.
Level
43
67
0
TTL
Name and Function
HOLD is an active HIGH Signal used by the 82586 to
request local bus mastership at the end of the current
CPU bus transfer cycle, or at the end of the current DMA
burst transfer cycle. In normal operation, HOLD goes
inactive before HLDA. The 82586 can be forced off the
bus by HLDA going inactive. In this case, HOLD goes
inactive within four clock cycles in word mode and eight
clock cycles in byte mode.
HLDA
42
68
I
TTL
HLDA is an active HIGH Hold Acknowledge signal
indicating that the CPU has received the HOLD request
and that bus control has been relinquished to the 82586. It
is internally synchronized. After HOLD is detected as
LOW, the processor drives HLDA LOW. Note,
CONNECTING Vee TO HLDA IS NOT ALLOWED
because it will cause a deadlock. Users wanting to give
permanent bus access to the 82586 should connect
HLDA with HOLD.
CA
35
12
I
TTL
The CA pin is a Channel Attention input used by the CPU
to initiate the 82586 execution of memory resident
Command Blocks. The CA signal is synchronized
internally. The signal must be HIGH for at least one
system clock period. It is latched internally on HIGH to
LOW edge and then detected by the 82586.
BHE
44
66
0
The Bus High Enable signal (BHE) is used to enable data
onto the most significant half of the data bus. Its timing is
identical to that of A16-A23. With a 16-bit bus it is LOW
and with an 8-bit bus it is HIGH. Note: after RESET; the
82586 is configured to 8-bit bus.
TTL
READY
39
5
I
TTL
This active HIGH signal is the acknowledgement from the
addressed memory that the transfer cycle can be
completed. While LOW, it causes wait states to be
inserted. This signal must be externally synchronized with
the system clock. The Ready signal internal to the 82586
is a logical OR between READY and SRDY / ARDY.
ARDY/SRDY
37
7
I
TTL
This active HIGH signal performs the same function as
READY. If it is programmed at configure time to SRDY, it
is identical to READY. If it is programmed to ARDY, the
positive edge of the Ready signal is internally
synchronized. Note, the negative edge must still meet
setup and hold time specifications, when in ARDY mode.
The ARDY signal must be active for at least one system
clock HIGH period for proper strobing. The Ready signal
internal to the 82586 is a logical OR between READY (in
Maximum Mode only) and SRDY / ARDY. Note that
following RESET, this pin assumes ARDY mode.
1-5
intJ
82586
Table 1.82586 Pin Description (Continued)
48 Pin DIP
Pin No.
68 Pin PLCC
Pin No.
Type
Level
40,41
4,3
0
TTL
Maximum mode only. These status pins define the type of
DMA transfer during the current memory cycle. They are
encoded as follows:
S1
SO
Not Used
0
0
0
1
Read Memory
1
0
Write Memory
1
1
Passive
Status is active from the middle of t4 to the end of t2. They
. return to the passive state during t3 or during tW when
READY or ARDY is HIGH. These signals can Qe used by
the 8288 Bus Controller to generate all memory control and
timing Signals.' Any change from the passive state, signals
the 8288 to start the next t1 to t4 bus cycle. These pins are
pulled HIGH and floated after a system RESET and when
the bus is not acquired.
RD
46
64
0
TTL
Used-in minimum mode only. The read strobe indicates that
the 82586 is performing a memory read cycle. RD is active·
LOW during t2, t3 and tW of any read cycle. This signal is
pulled HIGH and floated after a RESET and when the bus is
not acquired.
WR
45
65
0
TTL
Used in minimum mode only. The write strobe indicates that
the 82586 is performing a write memory cycle. WR is active
LOW during t2, t3 and tW of any write cycle. It is pulled
HIGH and floats after RESET and when the bus is not
acquired.
ALE
39
5
0
TTL
Used in minimum mode only. Address Latch Enable is
provided by the 82586 to latch the address into the
8282/8283 address latch. It is a HIGH pulse, during t1
('clock low') of any bus cycle. Note that ALE is never
floated.
DEN
40
4
0
TTL
Used in minimum mode only. Data ENable is provided as
output enable for the 8286/8287 transceivers in a standalone (no 8288) system. DEN is active LOW during each
memory access. For a read cycle, it is active from the
middle oft2 until the beginning of t4. For a write cycle, it is
active from the beginning of t2 until the middle of t4. It is
pulled HIGH and floats after a system RESET or when the
bus is not acquired.
DT/R
41
3
0
TTL
Used in minimum mode only. DT IR is used in non-8288
systems using an 8286/8287 data bus transceiver. It
controls the di~ction of data flow through the Transceiver.
Logically,. DT IR is equivalent to S1.lt becomes valid in the
t4 preceding a bus cycle and remains valid until the final t4
of the cycle. This signal is pulled HIGH and floated after a
RESET or when the bus is not acquired.
Symbol
SO,S1
Name.and Function
NOTE:
*8288 does not support 10 MHz operation.
1-6
inter
82586
Command List, and Receive Frame Area (RFA) (see
Figure 4).
82586/HOST CPU INTERACTION
Communication between the 82586 and the host is
carried out via shared memory. The 82586's on-chip
DMA capability allows autonomous transfer of data
blocks (buffers, frames) and relieves the CPU of
byte transfer overhead. The 82586 is optimized to
interface the iAPX 186, but due to the small number
of hardware signals between the 82586 and the
CPU, the 82586 can operate easily with other processors. The 82586/host interaction is explained
separately in terms of the logical interface and the
hardware bus interface.
The Initialization Root is at a predetermined location
in the memory space, (OFFFFF6H), known to both
the host CPU and the 82586. The root is accessed
at initialization and points to the System Control
Block.
The System Control Block (SCB) functions as a bidirectional mail drop between the host CPU, CU and
RU. It is the central element through which the CPU
and the 82586 exchange control and status information. The SCB consists of two parts, the first of
which entails instructions from the CPU to the
82586. These include: control of the CU and RU
(START, ABORT, SUSPEND, RESUME), a pointer
to the list of commands for the CU, a pointer to the
receive frame area, and a set of Interrupt acknowledge bits. The second entails status information
keyed by the 82586 to the CPU, including: state of
the CU and RU (e.g. IDLE, ACTIVE READY, SUSPENDED, NO RECEIVE RESOURCES), interrupts
bits (command completed, frame received, CU not
ready, RU not ready), and statistics (see Figure 4).
The 82586 consists of two independent units: Command Unit (CU) and Receive Unit (RU). The CU executes commands from shared memory. The RU
handles all activities related to frame reception. The
CU and RU enable the 82586 to engage in the two
types of activities simultaneously: the CU may be
fetching and executing commands out of memory,
and the RU may be storing received frames in memory. CPU intervention is only required after the CU
executes a sequence of commands or the RU stores
a sequence of frames.
The only hardware signals that connect the CPU and
the 82586 are INTERRUPT and CHANNEL ATTENTION (see Figure 3). Interrupt is used by the 82586
to draw the CPU's attention to a change in the contents of the SCB. Channel Attention is used by the
CPU to draw the 82586's attention.
The Command List serves as a program for the CU.
Individual commands are placed in memory units
called a Command Block, or CB. CB's contain command specific parameters and command specific
statuses. Specifically, these high level commands
are called Action Commands (e.g. Transmit, Configure).
82586 SYSTEM MEMORY
STRUCTURE
A specific command, Transmit, causes transmission
of a frame by the 82586. The Transmit command
block includes Destination Address, Length Field,
and a pointer to a list of linked buffers that holds the
frame to be constructed from several buffers scattered in memory. The Command Unit performs with-
The Shared Memory structure consists of four parts:
Initialization Root, System Control Block (SCB) ,
CHANNEL ATTENTION
INTERRUPT
SHARED MEMORV
INITIALIZATION
ROOT
231246-3
Figure 3. 82586/Host CPU Interaction
1-7
inter
82586
INITIALIZATION ROOT
~OM~ LISTJ£!L)
COMMAND
COMMAND LIST
POINTER
RECEIVE FRAME
POI,NTER
STATISTICS
-,
--------~I'D~E~=~~~~~E'RI
I
.
(FO)
.IN)
231246-4
Figure 4. 82586 Shared Memory Structure
out the CPU intervention, the DMA of each buffer
and the, prefetching of references to new buffers in
parallel. The CPU is notified only after successful
transmission or retransmission.
Receive buffer chaining (i.e. storing incoming frames
in a linked list of buffers) improves memory utilization significantly. Without buffer chaining, the user
must allocate consecutive blocks of the maximum
frame size (1518 bytes in Ethernet) for each frame.
Taking into account that a typical frame size may be
about 100 bytes, this practice is very inefficient. With
buffer chaining, the user can allocate small buffers
and the 82586 uses only as many as needed.
The Receive Frame Area is a list of Free Frame De·
scriptors (Descriptors not yet used) and a list of buffers prepared by the user. It is conceptually distinct
from the Command List. Frames arrive without being
solicited by the 82586. The 82586 must be prepared
to receive them even if it is engaged in other activities and to store them in the Free Frame Area. The
Receive Unit fills the buffers upon frame reception
and reformats the Free Buffer List into received
frame structures. The frame structure is virtually
identical to the format of the frame to be transmitted.
The first frame descriptor is referenced by SCB. A
Frame Descriptor and the associated Buffer Descriptor wasted upon receiving a Bad Frame (CRC
or Alignment errored, Receive DMA overrun errored,
or Collision fragmented frame) are automatically reclaimed and returned to the Free Buffer List, unless
the chip is configured to Save Bad Frames.
In the past, the drawback of buffer chaining was the
CPU proceSSing overhead and the time involved in
the buffer switching (especially at 10 Mb/s). The
82586 overcomes this drawback by performing buffer management on its own for both transmission and
reception (completely transparent to the user).
The 82586 has a 22-bit memory address range in
minimum mode and 24-bit memory address range in
maximum, mode. All memory structures, the System
Control Block, Command List, Receive Descriptor
List, and all buffer descriptors must reside within one
64K-bytememory segment. The Data Buffers can
be located anywhere in the memory space.
1-8
82586
TRANSMITTING FRAMES
TRANSMIT (BD)
The 82586 executes high level action commands
from the Command List in external memory. Action
commands are fetched and executed in parallel with
the host CPU's operation, thereby significantly improving system performance. The general action
commands format is shown in Figure 5.
CONTROL
FIELDS
I
I
ACTUAL COUNT
~NElCT.UF FER DESCRIPTOR
LINK FIELD
DB ADDRESS
(24 BITS)
+-
DATA
BUFFER (OB)
COMMAND STATUS
COMMAND
LlNKAELD
(POINTER TO NEXT COMMAND)
-
231246-6
NEXT
COMMAND
Figure 6. Data Buffer Descriptor
and Data Buffer Structure
PARAMETER FIELD
(COMMAND·SPECIFIC
MRAMETEAS)
buffers pointed to by the Transmit command, and
computes and appends the CRC at the end of the
frame. See Figure 7.
231246-5
Figure 5. Action Command Format
The 82586 can be configured to generate either the
Ethernet or HDLC start and end frame delimiters. In
the Ethernet mode, the start frame delimiter is
10101011 and the end frame delimiter indicated by
the lack of a signal after transmitting the last bit of
the frame check sequence field. When in the HDLC
mode, the 82586 will generate the 01111110 'flag'
for the start and end frame delimiters and perform
the standard 'bit stuffing/stripping'. In addition, the
82586 will optionally pad frames that are shorter
than the specified minimum frame length by appending the appropriate number of flags to the end of the
frame.
Message transmission is accomplished by using the
Transmit command. A single Transmit command
contains, as part of the command-specific parameters, the destination address and length field for the
transmitted frame along with a pointer to a buffer
area in memory containing the data portion of the
frame. (See Figure 15.) The data field is contained in
a memory data structure consisting of a Buffer Descriptor (Bo) and Data Buffer (or a linked list of buffer descriptors and buffers) as shown in Figure 6. The
Bo contains a Link Field which pOints to the next BD
on the list and a 24-bit address pointing to the Data
Buffer itself. The length of the Data Buffer is specified by the Actual Count field of the BD.
In the event of a collision (or collisions), the 82586
manages the entire jam, random wait and retry process, reinitializing DMA pointers without CPU intervention. Multiple frames can be sent by linking the
appropriate number of Transmit commands together. This is particularly useful when transmitting a
message that is larger than the maximum frame size
(1518 bytes for Ethernet).
Using the BD's and Data Buffers, multiple Data Buffers can be 'chained' together. Thus, a frame with a
long Data Field can be transmitted using multiple
(shorter) Data buffers chained together. This chaining technique allows the system designer to develop
efficient buffer management poliCies.
The 82586 automatically generates the preamble
(alternating 1's and O's) and start frame delimiter,
fetches the destination address and length field from
the Transmit command, inserts its unique address
as the source address, fetches the data field from
PREAMBLE
START
FRAME
DELIMITER
DEST
AoDR
RECEIVING FRAMES
In order to minimize CPU overhead, the 82586 is
designed to receive frames without CPU supervision. The host CPU first sets aside an adequate
SOURCE
AD DR
LENGTH
FIELD
Figure 7. Frame Format
1-9
DATA
FIELD
FRAME
END
"FRAME
CHECK
SEQUENCE DELIMITER
inter
82586
.
SYSTEM
CONTROL
BLOCK
.1-
r -
- -
-
-- -----
DESC:I~~~(RFD) ~ f---
FD
•
"1
.. t-
ro
FREE BUFFER LIST(FBL)
RECEIVE
BUFFER
~DESCRIP:-OR (RBD)
RBD
DATA
BUFFER (DB)
"1-.••
-
RBD
•
•
1
1
DB
DB
, 231246-7
Figure 8. Receive Frame Area Diagram
amount of receive buffer space and then enables
the 82586's Receive Unit. Once enabled, the RU
'watches' for any of its frames which it automatically
stores in the Receive Frame Area (RFA). The RFA
consists of a Receive Descriptor List (RDl) and a Jist
of free buffers called the Free Buffer List (FBl) as
shown in Figure 8. The individual Receive Frame
Descriptors that make up the RDl are used by the
82586 to store the destination and source address,
length field and status of each frame that is received., (Figure 9.)
RECEIVE FRAME STATUS
LINK FIELD
BUFFER DESCRIPTOR
LINK FIELD
'1--
NEXT RECEIVE
FRAME DESCRIPTOR
'1--
BUFFER DESCRIPTOR
DESTINATION ADDRESS
The 82586, once enabled, checks each passing
frame for an address match. The 82586 will recognize its own unique address, one or more multicast
addresses or the broadcast address. If a match occurs, it stores the destination and source address
and length field in the next available RFD. It then
begins filling the next free Data Buffer on the FBl
(which is pointed to by the current RFD) with the
data portion of the incoming frame. As one DB is
filled, the 82586 automatically fetches the next DB
on the FBl until the entire frame is received. This
buffer chaining technique is particularly memory effi·
cient because it allows the system designer to set
aside buffers that fit a frame size that may be much
shorter than the maximum allowable frame.
SOURCE ADDRESS
LENGTH FIELD
231246-8
Figure 9. Receive Frame Descriptor
Once the entire frame is received without error, the
82586 performs the following housekeeping tasks:
• Updates the Actual Count field of the last Buffer
Descriptor used to hold the frame just received
with the number of bytes stored in its associated
Data Buffer.
1-10
inter
82586
• Fetches the address of the next free Receive
Frame Descriptor.
NETWORK PLANNING AND
MAINTENANCE
• Writes the address of the next free Buffer Descriptor into the next free Receive Frame Descriptor.
To perform proper planning, operation, and maintenance of a communication network, the network
management entity must accumulate information on
network behavior. The 82586 provides a rich set of
network-wide diagnostics that can serve as the basis for a network management entity.
• Posts a 'Frame Received' interrupt status bit in
the SCB.
• Interrupts the CPU.
In the event of a frame error, such as a CRC error,
the 82586 automatically reinitializes its OMA pointers and reclaims any data buffers containing the bad
frame. As long as Receive Frame Descriptors and
data buffers are available, the 82586 will continue to
receive frames without further CPU help.
Network Activity information is provided in the status
of each frame transmitted. The activity indicators
are:
• Number of collisions: number of collisions the
82586 experienced in attempting to transmit this
frame.
• Deferred transmission: indicates if the 82586 had
to defer to traffic on the link during the first transmission attempt.
82586 NETWORK MANAGEMENT AND
DIAGNOSTIC FUNCTIONS
Statistics registers are updated after each received
frame that passes the address filtering, and is longer
than the Minimum Frame Length configuration parameter.
The behavior of data communication networks is
typically very complex due to their distributed and
asynchronous nature. It is particularly difficult to pinpoint a failure when it occurs. The 82586 was designed in anticipation of these problems and
includes a set of features for improving reliability and
testability.
• CRC errors: number of frames that experienced a
GRC error and were properly aligned.
• Alignment errors: number of frames that experienced a CRC error and were misaligned.
The 82586 reports on the following events after
each frame transmitted:
•
•
•
•
• No-resources: number of correct frames lost due
to lack of memory resources.
Transmission successful.
Transmission unsuccessful; lost Carrier Sense.
Transmission unsuccessful; lost Clear-to-Send.
Transmission unsuccessful; DMA underrun because the system bus did not keep up with the
transmission.
• Overrun errors: number of frame sequences lost
due to DMA overrun.
The 82586 can be configured to Promiscuous Mode.
In this mode it captures all frames transmitted on the
Network without checking the Destination Address.
This is useful in implementing a monitoring station to
capture all frames for analysis.
• Transmission unsuccessful; number of collisions
exceeded the maximum allowed.
The 82586 is capable of determining if there is a
short or open circuit anywhere in the Network using
the built in Time Domain Reflectometer (TOR) mechanism.
The 82586 checks each incoming frame and reports
on the following errors, (if configured to 'Save Bad
Frame'):
• CRC error: incorrect CRC in a well aligned frame.
• Alignment error: incorrect CRC in a misaligned
frame.
STATION DIAGNOSTICS
• Frame too short: the frame is shorter than the
configured value for minimum frame length.
The chip can be configured to External Loopback.
The transmitter to receiver interconnection can be
placed anywhere between the 82586 and the link to
locate faults, for example: the 82586 output pins, the
Serial Interface Unit, the Transceiver cable, or in the
Transceiver.
• Overrun: the frame was not completely placed in
memory because the system bus did not keep up
with incoming data.
• Out of buffers: no memory resources to store the
frame, so part of the frame was discarded.
1-11
intJ
82586
The CU can be modeled as a logical machine that
takes, at any given time, one of the following states:
• IDLE-CU is not executing a command and is not
associated with a CB on the list. This is the initial
state.
• ' SUSPENDED-CU is not executing a command
but (different from IDLE) is associated with,a CB
on the list.
• ACTIVE-CU is currently executing an Action
Command, and pOints to its CB.
The 82586 has a mechanism recognizing the transceiver 'heart beat' signal 'for verifying the correct operation of the Transceiver's collision detection circuitry.
82586 SELF TESTING
The 82586 can be configured to Internal Loopback.
It disconnects itself from the Serial Interface Unit,
and any frame transmitted is received immediately.
The 82586 connects the Transmit Data to the Receive Data signal and the Transmit Clock to the Receive Clock.
The CPU may affect the CU operation in two ways:
issuing a CU control Command or setting bits in the
COMMAND word of the Action Command.
The Dump Command causes the chip to write over
100 bytes of its internal registers to memory.
THE RECEIVE UNIT (RU)
The Diagnose command checks the exponential
Backoff random number generator internal to, the
82586.
The Receive Unit is the logical unit that receives
frames and stores them in memory.
The RU is modeled as a logical machine that takes,
at any given time, one of the following states:
CONTROLLING THE 82586
• IDLE-RU has no memory resources and is discarding incoming frame~. This is the initial RU
state.
• NO-RESOURCES-RU has no memory resources and is discarding incoming frames. This state
differs from the IDLE state in that RU accumulates statistics on the number of frames it had to
discard.
The CPU controls operation of the 82586's Command Unit (CU) and Receive Unit (RU) of the 82586
via the System Control Block.
THE COMMAND UNIT (CU)
The Command Unit is the logical unit that executes
Action Commands from a list of commands very
similar to a CPU program. A Command Block (CB) is
associated with each Action Command.
• SUSPENDED-RU has free memory resources
to store incoming frames but discard them anyway.
EVEN BYTE
15 'ODDBYTE
STAT
ACK
I
0
0
cus
0
RUS
CUC
R
E
S
RUC
0
I
\\' \\\\\\\\\'
0
CBLOFFSET
0
0
0
SCB
(STATUS)
SCB+2
(COMMAND)
SCB+4
RFAOFFSET
SCB+8
CRCERRS
SCB+8
ALNERRS
SCB+10
, RSCERRS
SCB+ 12
OVRNERRS
SCB+ 14
231246-9
Figure 10. System Control Block (SeB) Format
1-12
inter
82586
• READY-RU has free memory resources and
stores incoming frames.
The CPU may affect RU operation in three ways:
issuing an RU Control Command, setting bits in
Frame Descriptor, FD, COMMAND word of the
frame currently being received, or setting EL bit of
Buffer Descriptor, BD, of the buffer currently being
filled.
SYSTEM CONTROL BLOCK (SCB)
The System Control Block is the communication
mail-box between the 82586 and the host CPU. The
SCB format is shown in Figure 10.
COMMAND word: Specifies the actioni,to be performed as a result of the CA. This word is set by the
CPU and cleared by the 82586. Defined bits are:
ACK-CX
(Bit 15)
ACK-FR
(Bit 14)
ACK-CNA (Bit 13)
ACK-RNR (Bit 12)
CUC
(Bits 8-10)
0
The host CPU issues Control Commands to the
82586 via the SCB. These commands may appear
at any time during routine operation, as determined
by the host CPU. After the required Control Command is setup, the CPU sends a CA signal to the
82586.
1
SCB is also used by the 82586 to return status information to the host CPU. After inserting the required
status bits into SCB, the 82586 issues an Interrupt to
the CPU.
2
The format. is as follows:
3
STATUS word: Indicates the status of the 82586.
This word is modified only by the 82586. Defined bits
are:
CX
(Bit 15)
FR
CNR
(Bit 14)
(Bit 13)
RNR
(Bit 12)
CUS
(Bits 8-10)
RUS
(Bits 4-6)
• A command in the CBl
having its 'I' (interrupt) bit
set has been executed.
• A frame has been received.
• The Command Unit left the
Active state.
• The Receive Unit left the
Ready state.
• (3 bits) this field contains
the status of the Command
Unit.
Valid values are:
0
-Idle
1
-Suspended
2
-Active
3-7 - Not Used
• (3 bits) this field .contains
the status of the Receive
Unit. Valid values are:
0
-Idle
1
-Suspended
2
- No Resources ..
3
-Not Used
4
-Ready
5-7 - Not Used
4
RUC
5-7
(Bits 4-6)
0
1
2
3
4
RESET
5-7
(Bit 7)
• Acknowledges the
command executed event.
• Acknowledges the frame
received event.
• Acknowledes that the
Command Unit becamf3 not
ready.
• Acknowledges that the
Receive Unit became not
ready.
• (3 bits) this field contains
the command to the
Command Unit.
• NOP (dOesn't affect current
state of the unit).
• Start execution of the first
command on the CBL. If a
command is in execution,
then complete it before
st",rting the new CBL. The
beginning of the CBl is in
CBLOFFSET;
• Resume the operation of
the command unit by
executing the next .
command. This operation
assumes that the
command unit has been
previously suspended.
• Suspend execution of
commands on CBl after
current command is
complete.
• Abort execution of
commands immediately.
• Reserved, illegal f9r use.
• (3 bits) This field contains
the command to the
receive unit. Valid values
are:
• NCP (does not alter current
state of unit).
• Start reception offrames. If
a frame is being received.
then complete reception
before starting. The
beginning of the RFA is
contained in the RFA
OFFSET.
• Resume frame receiving
(only when in suspended
state.)
• Suspend frame receiving. If
a frame is being received,
then complete its reception
before suspending.
• Abort receiver operation
immediately.
• Reserved, illegal for use.
• Reset chip (logically the
same as hardware
RESET).
82586
CBL'()FFSET:
.,
Gives the 16-b1t· offset address of the first command
(Action Command) in the command list to. be executed following CU-8TART. Thus, the 82566 reads-this·
word only if the CUC field contained a CU-8TART
Control Command.
Figure 5, each command contains the command
field, status and control fields,.link to the next action
command in the CL, and any command-specific parameters. This command format is called the Command Block.
The 82586 has a repertoire of 8 commands:
NOP
Setup Individual Address
Configure
Setup Multicast Address
Transmit
TOR
.
Diagnose
Dump
RFA-oFFSET:
Poin~ to the firSt Receive Frame Descriptor in the
Receive Frame Area.
CACERRS:
CRC Errors -' contains the number of properly
aligned fl1!.mes. received with a CRC error.
NOP
Alignment ErrorS - contains. the number of misaligned frames reCeived with a CRC error.
This command results in no action by the 82586,
except as performed .In normal command processing. It is present to aid in Command Ust manipulation.
RSCERRS:
NOP command inCludes the following fields:
ReSource Errors - records the number of correct incomiAg frames discarded due to lack of memory
resources (buffer space or received frame descriptors).
STATUS word (wrItten b:JY 82586):
(Bit 15)
C
- Command Completed .
(Bit 14)
• Busy Executing Command
B
OK
(Bit 13)
- Error Free Compl!lltion
OVRNEARS:
Overrun' Errors ~ counts the number of received
frame sequences lost because the memory bus was
not available in time to transfer them.
COMMAND word:
(Bit 15)
EL
(Bit 14)
S
(Bit 13)
I
CMD (Bits 0-2)
ACTION COMMANDS
LINK OFFSET: Address of next Command Block
ALNEARS:
- End of Command Ust
- Suspend After Completion
- Interrupt After Completion
-NOP';' b
The 82586 executes a 'program' that is made up of
action commands In the Command Usl As shown in
EVENBYTE
15 ODD BYTE
C
B
EL
S
0
o
(STATUS)
CK
CMD=O
2
~~__~__~~~~~~~~~~~~~~~~~~~__~~__,(~ND)
LINK OFFSET
4
231246-10
Figure 11. The NOP Command .BIOCk,·
1-14
inter
82586
ognition of Destination Address during reception and
insertion of Source Address during transmission.
lA-SETUP
This command loads the 82586 with the Individual
Address. This address is used by the 82586 for rec-
15 ODD BYTE
C
B
OK
EL
S
I
A
The lA-SETUP command includes the following
fields:
EVEN BYTE
I
o
ZEROS
(STATUS)
I
CMD=l
I
I
I
I
INDIVIDUAL ADDRESS
I
I
I
I
----NTH BYTE
2
(COMMAND)
4
LINK OFFSET
2ND BYTE
0
1ST BYTE
6
8
---
10
231246-11
Figure 12. The lA-SETUP Command Block
STATUS word (written by 82586)
C
B
OK
A
(Bit 15)
(Bit 14)
(Bit 13)
(Bit 12)
•
•
•
•
The CONFIGURE command includes the following
fields:
Command Completed
Busy Executing Command
Error Free Completion
Command Aborted
STATUS word (written by 82586):
C
B
OK
A
COMMAND word·
EL
S
I
CMD
(Bit 15)
(Bit 14)
(Bit 13)
(Bits 0-2)
•
•
•
•
End of Command List
Suspend After Completion
Interrupt After Completion
lA-SETUP = 1
(Bit 15)
(Bit 14)
(Bit 13)
(Bit 12)
•
•
•
•
Command Completed
Busy Executing Command
Error Free Completion
Command Aborted
COMMAND word:
EL
S
I
CMD
LINK OFFSET: Address of next Command Block
INDIVIDUAL ADDRESS: Individual Address parameter
The least significant bit of the Individual Address parameter must be zero for IEEE 802.3/Ethernet.
However, no enforcement of 0 is provided by the
82586. Thus, an Individual Address with least significant bit 1, is possible.
(Bit 15)
(Bit 14)
(Bit 13)
(Bits 0-2)
•
•
•
•
End of Command List
Suspend After Completion
Interrupt After Completion
Configure = 2
LINK OFFSET: Address of next Command Block
Byte 6-7:
BYTECNT (Bits 0-3) • Byte Count, Number of
bytes including this one,
holding the parameters to
be configured. A number
smaller than 4 is
interpreted as 4. A
number greater than 12 is
interpreted as 12.
CONFIGURE
The CONFIGURE command is used to update the
82586 operating parameters.
1-15
82586
15
0
EVEN BYTE
OODBYTE
C
B
OK
EL
S
I
00
ZEROS
A
1
02
CMD=2
04
LINK OFFSET
I
FIFO LIM
EXT
LP
BCK
INT
LP
BCK
PREAM
LEN
AL
LDC
AODR LEN
INTERFRAME SPACING
RETRY NUM
COT
SRC
COTF
SAY
BF
SRo1
08
AROY
BOF
MET
CRSF
JJ
ACR
SLT TM (H)
CRS
SRC
UNPRID
SLOT TIME (l)
PAO
06
BYTE eNT
1
BT
STF
~
CRC
16 INCRtoN?1
INS CRS NR
MIN
FRM
LEN
I
BC
DIS
OA
r
RM
OC
OE
10
231246-13
Figure 13. The CONFIGURE Command Block
1
• Value of FIFO
Threshold.
Byte 8-9:
SRDY/ARDY (Bit 6)
0
1
SAV-BF
ADD-LEN
AL-LOC
• SRDYI ARDY pin
operates as ARDY
(internal
synchronization).
• SRDY/ARDYpin
operates as SRDY
(external
synchronization).
PREAMLEN
(Bit 7)
0
• Received bad
frames are not saved
in memory.
1
• Received bad
frames are saved in
memory.
(Bits 8-10) • Number of address
byes. NOTE: 7 is
interpreted as O.
(Bit 11)
0
• Address and Length
Fields separated
from data and
associated with
Transmit Command
Block or Receive
Frame Descriptor.
For transmitted
Frame, Source
Address is inserted
by the 82586.
(Bits
12-13)
INT-LPBCK (Bit 14)
EXT-LPBCK (Bit 15)
• Address and Length
Fields are part of the
Transmit/Receive data
buffers, inclu~ing
Source Address (which
is not inserted by the
82586).
• Preamble Length
including Beginning of
Frame indicator:
00 - 2 bytes
01 - 4 bytes
10 - 8 bytes
11 - 1.6 bytes
• Internal Loopback
• External Loopback.
NOTE: Bits 14 and 15
configured to 1, cause
Internal Loopback.
Byte 10-11:
L1N-PRIO
ACR
BOF-MET
1-16
(Bits 0-2) • Linear Priority
(Bits 4-6) • Accelerated Contention
Resolution (Exponential
Priority)
(Bit 7)
• Exponential Backoff
Method
o- IEEE 802.3/Ethernet
1 - Alternate Method
inter
INTER
FRAME
SPACING
82586
(Bits 8-15)
CDTF
• Number indicating
the Interframe
Spacing in TxC
period units.
CDT-SRC
0
1
Byte 12-13:
(Bits 0-7)
SLOTTIME (L)
SLT-TM (H) (Bits 8-10)
RETRYNUM
(Bits
12-15)
• Slot Time Number,
Low Byte
• Slot Time Number,
High Bits
• Maximum Number of
Transmission Retries
on Collisions
(Bit 0)
(Bit 1)
(Bit 2)
0
1
TONO-CRS (Bit 3)
NCRC-INS
CRC-16
BT-STF
PAD
CRSF
CRS-SRC
•
•
•
•
•
•
•
0
•
1
•
(Bit 4)
(Bit 5)
0
•
•
•
1
•
(Bit 6)
0
•
•
1
•
(Bit 7)
0
1
•
•
•
. (Bits 8-9)
•
(Bit 11)
•
0
1
•
•
• Collision Detect
Filter in Bit Times
• COllision Detect
Source
• External
• Internal
• Minimum Number of
Bytes in a Frame
C.ONFIGURATION DEFAULTS
Byte 14-15:
PRM
BC-DIS
MANCH/
NRZ
(Bits
12-14
(Bit 15)
The default values of the configuration parameters
are compatible with the IEEE 802.3/Ethernet Standards. RESET configures the 82586 according to
the defaults shown in Table 2.
Promiscuous Mode
Broadcast Disable
Manchester or NRZ
Encoding/Decoding
NRZ
Manchester
Transmit on No
Carrier Sense
Cease Transmission
if CAS Goes Inactive
During Frame
Transmission
Continue
Transmission Even if
no Carrier Sense
No CRC Insertion
CRCType:
32 bit Autodin II CRC
Polynomial
16 bit CCITT CRC
Polynomial
Bitstuffing:
End of Carrier Mode
(Ethernet)
HDLC like Bitstuffing
Mode
Padding
No Padding
Perform Padding by
Transmitting Flags
for Remainder of
Slot Time
Carrier Sense Filter·
in Bit Times
Carrier Sense
Source
External
Internal
Table 2. 82586 Default Values
Preamble Length (Bytes)
Address Length (Bytes)
Broadcast Disable
CRC-16/CRC-32
No CRC Insertion .
Bitstuffing/EOC
Padding
Min-Frame-Length (Bytes)
Interframe Spacing (Bits)
Slot Time (Bits)
Number of Retries
Li near Priority
Accelerated Contention Resolution
Exponential Backoff Method
Manchester/NRZ
Internal CRS
CRS Filter
Internal COT
COT Filter
Transmit On No CRS
FIFO THRESHOLD
SRDY/ARDY
Save Bad Frame
Address/Length Location
INT Loopback
EXT Loopback
Promiscuous Mode
1-17
8
6
0
0
0
0
0
64
96
512
15
0
0
0
0
0
0
0
0
0
8
0
0
0
0
0
0
inter
15,
82586
EVEN BYTE
ODD BYTE
C
B'
EL
S
0
o
OK
(STATUS)
2
(COMMAND)
LINK OFFSET
4
6
MC·CNT
MCLlST
2ND BYTE
1ST BYTE
I
MC-ID
NTH BYTE
ADDITIONAL MC·ID'S
231246-14
Figure 14. The MC-SETUP Command Block
Issuing a MC·SETUP command with MC·CNT=O
.disables reception of any incoming frame with a Mul·
ticast Address.
Me-SETUP
This command sets up the 82586 with a set of Multi·
cast Addresses. Subsequently, incoming' frames
with Destination Addresses from this set are accept·
ed.
MC-LlST: A list of Multicast Addresses to be accept·
ed by the 82586. Note that the most significant byte
of an address is followed immediately by the least
significant byte of the next address. Note also that
the least significant bit of each Multicast AddreSS in
the set must be a one.
The MC·SETUP command includes the following
fields:
STATUS word (written by 82586):
C
B
(Bit 15)
(Bit 14)
OK
A
(Bit 13)
(Bit 12)
The Transmit·Byte·Machine maintains a 64-bit
HASH table used for checking Multicast Addresses
during reception.
• Command Completed
• Busy Executing
Command
• Error Free Completion
• Command Aborted
An incoming frame is accepted if it has a Destination
Address whose least significant bit is a one, and af·
ter hashing paints to a bit in the HASH table whose
value is one. The hash function is selecting bits 2 to
7 of the CRC register. RESET causes the HASH tao
ble to become all zeros.
COMMAND word:
EL
S
(Bit 15)
(Bit 14)
I
(Bit 13)
CMD
(Bits 0-2)
• End of Command List
• Suspend After
Completion
• Interrupt After
Completion
• MC·SETUP = 3
After the Transmit~Byte·Machine reads a MC-SET·
UP command from TX·FIFO, it clears the HASH tao
ble and reads the bytes in groups whose length is
determined by the ADDRESS length. Each group is
hashed using CRC logic and the bit in the HASH
table to which bits 2-7 of the CRG register point is
set to one. A group that is not complete has no ef·
fect on the HASH table. Transmit·Byte·Machine noti·
fies CU after completion.
LINK OFFSET: Address of next Command Block
MC-CNT: A 14-bit field indicating the number of
bytes in the MC·LlST field. MC·CNT is truncated to
the nearest multiple of Address Length (in bytes).
1-18
inter
15
82586
ODD BYTE
C
B
EVEN BYTE
OK
0
MAXCOLL
LINK OFFSET
4
NEXT BD OFFSET
~------------------'-----------------'---1
2ND BYTE
I
1ST BYTE
8
I
DESTINATION ADDRESS
A
I
~
I ____________________________-1C
__~N~TH~BY~T~E~__________________~
~_______________________________________________ E
LENGTH FIELD
231246:"15
Figure 15. The Transmit Command Block
TRANSMIT
S6
(Bit 6)
SS
(Bit S)
MAXCOll
(Bits 3-0)
The TRANSMIT command causes transmission
(and if necessary retransmission) of a frame.
TRANSMIT CB includes the following fields:
STATUS word (written by 82586):
C
B
(Bit 1S)
(Bit 14)
OK
A
S10
(Bit 13)
(Bit 12)
(Bit 10)
S9
S8
S7
(Bit 9)
(Bit 8)
(Bit 7)
• Command Completed
• Busy Executing
Command
• Error Free Completion
• Command Aborted
• No Carrier Sense signal
during transmission
(between beginning of
Destination Address and
end of Frame Check
Sequence).
• Transmission
unsuccessful (stopped)
due to loss of Clear-toSend signal.
• Transmission
unsuccessful (stopped)
due to DMA underrun,
(i.e. data not supplied
from the sytem for
transmission).
• Transmission had to
Defer to traffic on the link.
• Heart Beat, indicates that
during Interframe
Spacing period after the
previous transmission, a
pulse was detected on
the Collision Detect pin.
• Transmission attempt
stopped due to number of
collisions exceeding the
maximum number of
retries.
• Number of Collisions
experienced by this
frame. SS = 1 and MAXCOll = 0 indicates that
there were 16 collisions.
COMMAND word:
El
S
(Bit 1S)
(Bit 14)
I
(Bit 13)
CMD
(Bits 0-2)
• End of Command List
• Suspend After
Completion
• Interrupt After
Completion
• TRANSMIT = 4
LINK OFFSET: Address of next Command Block
TBD OFFSET: Address of list of buffers holding the
information field. TOO-OFFSET = OFFFFH indicates that there is no Information field.
DESTINATION ADDRESS: Destination Address of
the frame.
LENGTH FIELD: Length field of the frame.
1-19
82586
er measures the time elapsed from transmission
start until 'echo' is obtained. 'Echo' is indicated by
Collision Detect going active' or Carrier Sense signal
drop.
.
STATUS word:
EOF
• Indicates that this is the
Buffer Descriptor of the
last buffer Qf this frame's
Information Field.
• Actual number of data
bytes in buffer (can be
even or odd).
(Bits 0-13)
ACT·
COUNT
TOR command includes the following fields:
STATUS word (written by 82586):
"
C
B
. OK
NEXT BD OFFSET: points to next Buffer Descriptor
in list. If EOF is set, this field is meaningless.
BUFFER ADDRESS: 24-bit absolute address of
buffer.
(Bit 15)
(Bit 14)
(Bit 13)
• Command Completed
• Busy Executing Command
• Error Free Completion
COMMAND word:
EL
S
TIME DOMAIN REFLECTOMETER TOR
I
CMD
(Bit 15)
(Bit 14)
(Bit 13)
(Bits 0-2)
• End of Command List
• Suspend After Completion
• Interrupt After Completion
.TDR = 5
This command performs a Time Domain Reflectometer test on the serial link. By performing the bom- .
mand, the user is able to identify shorts or opens
and their lOCatioI'). Along with transmission of 'All
Ones: the 82586 triggers an internal timer. The timEVEN BYTE
eOF
0
ACT COUNT
NEXT BD OFFSET
r-------------------------------------------------------~2
BUFFER ADDRESS
231246-16
Figure 16. The Transmit Buffer
, Description
.
EVEN BYTE
ODD BYTE
15
C
B
EL
S
0
o
OK
~~~-4~~~~~~~_r~~rT~rT~~~~~_rT7~--~~~_4(S~TUS)
CMD=5
2
~~~~--~~~~~~~~~~~~~~~~~~~~--~~~~(COMMAND)
LINK OFFSET
~~~~---r--,-~~------~------------------------------_44
LNK
TIME
OK
~~~~__- L__~~L-~__~--~----~----------------------~6
231246-17
Figure 17. The TOR Command Block
1-20
i~
82586
LINK OFFSET: Address of next Command Block
STATUS word (written by 82586):
C
B
OK
RESULT word:
LNK-OK
(Bit 15)
• No Link Problem
Identified
XCVR-PRB (Bit 14)
• Transceiver Cable
Problem identified (valid
only in the case of a
Transceiver that does not
return Carrier Sense
during transmission).
(Bit 13)
ET-OPN
• Open on the link
identified (valid only in
the case of a Transceiver
that returns Carrier Sense
during transmission).
(Bit 12)
ET-SRT
• Short on the link
identified (valid only in
the case of a Transceiver
that returns Carrier Sense
during transmission).
TIME
(Bits 0-10) • Specifying the distance to
a problem on the link (if
one exists) in transmit
clock cycles.
(Bit 15)
(Bit 14)
(Bit 13)
• Command Completed
• Busy Executing Command
• Error Free Completion
COMMAND word:
EL
S
I
CMD
(Bit 15)
(Bit 14)
(Bit 13)
(Bits 0-2)
•
•
•
•
End of Command List
Suspend After Completion
Interrupt After Completion
DUMP = 6
LINK OFFSET: Address of next Command Block
BUFFER OFFSET: This word specifies the offset
portion of the memory address which points to the
top of the buffer allocated for the dumped registers
contents. The length of the buffer is 170 bytes.
DUMP AREA FORMAT
Figure 18 shows the format of the DUMP area. The
fields are as follows:
Bytes OOH to OAH: These bytes correspond to the
82586 CONFIGURE command field.
DUMP
Bytes OCH to 11H: The Individual Address Register
content. IARO is the Individual Address least significant byte.
This command causes the contents of over a hundred bytes of internal registers to be placed in memory. It is supplied as a self diagnostic tool, as well as
to supply registers of interest to the user.
Bytes 12H to 13H: Status word of last command
block (only bits 0-13).
DUMP command includes the following fields:
o
15
c
B
o
OK
l----lr---+-+-:::o.L.:::---::?--:::-'::?'-:::::-7""-:::O--::'7'""-:::::>'--:::-'::?'-:::::,,---r--r--I (STATUS)
EL
2
CMD=6
I--~~~_-L~~~~~~~~~~~~~~~~~~~-L--~-I(COMMAND)
~
~
LINK
______________
_ OFFSET
______________
~4
BUFFER
OFFSET
_________________
___
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~6
231246-18
Figure 18. The DUMP Command Block
1-21
82586
Bytes 14H to 17H: Content of the Transmit CRC
generator. TXCRCRO is the' least significant byte.
The contents are dependent on the activity before
the DUMP cbmmand:
15 14
13 12
11 10
•
•
7
6
'LLLlLLLLLLLLLL
2
1
0
42
CUR"AB SIZE
46
After MC-SETUP commahd - GenEi'rated CRC value
of the last MC address, On MC-L1ST.
'0'Q<;l
NOTE:
For 16-bft CRC only TXCRCRO and TXCRCR1 are
valid.
3
44
After successful transmission - 'All Zeros'.
After unsuccessful transrnission, depends on where
it stopped.
..
NXT AS ADA (LOW)
E~
After RESET - 'All Ones.'
5
NXT All ADA (HIGH)
LA ABO ADA
48
NXT'A80AOA
4.
CUAABOADA
4C
CUA RB ESC
4£
NXT FD ADA
SO
CUA FD ADA
52
TEMPORARY
54
NXTTB CNT
56
SUF AOR
58
NXl T8 ADR
5.
NXTTBDADR
5C
5.
LA TBD ADA
£l
S
i
JIilllllll.llllI I I Illl
~~~: <~~~
NXt'CB AOR
15 14
13
12
X
XiXI~
~.
~'.
11 10
•
•
FIFO LIM
co,
s.c
1
,
JsLT TM
fU
COTF
1
,
1
5
•
1
0
0
6~
..
0'
lOAD
, I'l'
MIN
0
0
oI 0
I0
I'co:l ii
FRM
PAlO
:,~INM
04
0
0
0
0
•
06
0
0
0
0
0
oa
0
0
0
0
0
0
•
0
0
0
010
LEN
fAR 0
OC
OE
IAR 4 .
10 '
~$'
elll$
UT
CTI
URN
J:,
salT
~~~
'COLLNUM
O·
12
0
0
0
O.
I"""
I~
14
rXCReR 3
TXCRCR 2
16
AICACR 1
RICACR 0
18
AXCACR 3
RICRCR 2
110
TEMPR 1
reUPR 0
lC
reMPA 3
TEMPA 2
1£
0
20
>
rEMPR 4
CAe
""~ ...
II'"
fAA
0
u ....
S"1ff "0
'''111 lOP
1
1
1
1
1
HASHA 1
HASHRO
20
HASHA 3
HASHA 2
26
HASHR'S
HASHR 4
28
HASHR6
210
El
~ X XIX
IX X X X IX X X X X X
0
0
0
0
0' 0
0
0
0
0
0
0
0
0
0
0
30
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
32
0
0
Q
0
0
0
0
0
0
0
0
0
0
0
0
0
30
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
36
1
1
lX
0
0
0
0
0
0
0
XX X X
0
0
ELX
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
!X X 'X X X X X X
0
0
0
0
0
0
NXTRB SIZE
0
0
0
0
~
0
0
0
0
0
CX FA
0
0
0
0
0
0
0
0
0
SA
0
0
0
0
0
0
0
0
6C
0
0
0
•
•
0
0
0
0
0
0
0
0
0
0
0
0
C/lrtA
•
0
0
°
0
0
FIFO
LIM
••
•
0[2<
0
0
°
•
0
0
0
•
0
0
0
0
0
0
0
~A
~A
0
0
0
•
• •
IX
I""" X X X X XA A A IX IX
X'". :i: t6c
•
;:, X )'D< o~ !~' :~~ "'
• •
'N'
• '"
•
J2<: IL'• • •
•
•
0
0
0
0
0
0
o.
0
0
\-;1
.u
1
<0'
AOY
."
,,~
•• c
RU
sus
0
0
0
0
0
0
0
0
0
0
0
0
~IX
0
0
0
0
0
0
0
0
0
0
0
0
310
X
3C
ADRLEN
3£
70
72
74
76
78
7.
IC
7E
80
82
ao
86
88
~
0
0
•
)< )<
8C
~
0
0
0
8E
0
aUF ADR PTR '(HIGH)
0
aUf ,lOR
90
.2
PRT (LOW)
RCVDMA8C
OJ 0
1•
01 0
94
•
ADA. H
SA·8UF
10 1°1.
Rev OMA ADA H
98
,.
RCV OMA ADR l
•••
•
• •
•
•
•
, • • • •
•
••
•
0
38
0
o.
8A
2£
~
X
0
.~
0
0
0
,;
2C
,
1
0
22
1
1
1
0
0
66
68
A ~ A A AA A A
X X 12< LX 1.616 II'- A
X
XX XIX
rlCReR 0
1
IL\
•
•
A~
rlCAeR 1
rEUPR 5
AlA
SCBAOA
02
tAR 2
0
IX. X X.
00
tAR 1
'0
62
••
C~CilADR
IAR 3
_... s.," X IX X X
....
1
LIN
::,IC~CI~:c
HASHR 7
'N'
0'
2
SLOT TIME (LOW)
IAR 5,
<0.
3
, , , ,
,
1~1
ioCR
IHI
CRSF
,
tv,.
r:;
INTERFRAME SPACING
NUM
•
000010
~~~. IL~IADOA LEN
RETRY
7
60
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
40
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
•
0
0
0
0
• •
•
0
0
9C
0
0
9E
0
0
AO
0
0
0
'2
0
0
o
'01(>'
0
0
0
0
A6
0
0
0
0
'8
0
0
.... ••
231246-20
231246-19
Figure 19. The DUMP Area
1"22
inter
82586
CUR-RB-EBC: Current' Receive Buffer Empty Byte
Count Let N be the currently used Receive Buffer.
Then CUR-RB·EBC indicates the Empty part of the
buffer, i.e. the ACT·COUNT of buffer N is given by
the difference between its SIZE and the CUR·RBEBC.
Bytes 18H to 1BH: Contents of Receive CRC
Checker. RXCRCRO is the least significant byte.
The contents are dependent on the activity per·
formed before the DUMP command:
After RESET· 'All Ones.'
NXT-fD-ADR: Next Frame Descriptor Address. De·
fine N as the last Receive Frame Descriptor with bits
C = 1 and B = 0, then NXT·FD·ADR is the address
of N + 2 Receive Frame Descriptor (with B = C =
0) and is equal to the LlNK·ADDRESSfield, in N + 1
~eceive Frame Descriptor.
After good frame reception1. For CRC·CCln • OIDOFH
2. For CRC-Autodin~1I • C704DD7BH
After Bad Frame reception • corresponds to the reo
ceived information.
CUR-fD-ADR: Current Frame Descrip~or Address.
Similar to next NXT-FD-ADR but refers to N + 1
Receive Frame Descriptor (with B = 1, C = 0).
After reception attempt, i.e. unsuccessful check for
address match, corresponds to the CRC performed
on the frame address.
Bytes 54H to 55H: Temporary regi$ter.
NOTE:
Any frame on the serial link modifies this register
contents.
NXT-TB-CNT: Next Transmit Buffer Count. Let N be
the last transmitted buffer of the TRANSMIT com·
mand executed recently. the NXT·TB·CNT is the
ACT·COUNT field in the Nth Transmit Buffer Descriptor. EOF • Corresponds to the EOF bit of the
Nth Transmit Buffer Descriptor. EOF = '1 indicates
that the last buffer accessed by the 82586 during
Transmit was the last Transmit Buffer in the data
buffer chain associated with the Transmit Com·
mand.
Bytes 1CH to 21H: Temporary Registers.
Bytes 22H to 23H: Receive Status Register. Bits 6,
7,8,10,11 and 13, assume the same meaning as
corresponding bits in the Receive Frame Descriptor
Status field.
Bytes 24H to 2BH: HASH TABLE.
BUF-ADR: Buffer Address. The BUF·PTR field in the
DUMp·STATUS Command Block.
Bytes 2CH to 2DH: Status bits of the last time TOR
command that was performed.
NXT-TB·AD-L: Next Transmit Buffer Address Low.
Let N be the last Transmit Buffer in the transmit buff·
er chain of the TRANSMIT Command performed
recently, then NXT·TB·AD·L are the two least signifi·
cant bytes of the Nth buffer address.
NXT-RB-SIZE: Let N be the last buffer of the last
received frame, then NXT·RB·SIZE is the number of
bytes of available. in the N + 1 buffer. EL· The EL
bit of the Receive Buffer Descriptor.
LA-TB-ADR: Look Ahead Transmit Buffer Descrip·
tor Address. Let N be the last Transmit Buffer in the
transmit buffer chain of the TRANSMIT Command
performed recently, then LA·TBD·ADR is the NEXT·
BD·ADDRESS field of the Nth Buffer Descriptor.
NXT-RB-ADR: Let N be the last Receive Buffer,
used, then NXT·RB·ADR is the BUFFER·ADDRESS
field in the N + 1 Receive·Buffer Descriptor, i.e. the
pointer to the N + 1 Receive Buffer.
CUR-!:IB-5IZE: The number of bytes in the last buff·
er of the last received frame. EL • The EL bit of the
last buffer in the last received frame.
NXT-TBD-ADR: Next Transmit Buffer Descriptor
Address. Similar in function to LA-TBD·ADR but. reo
lated to Transmit Buffer Descriptor N·1. Actually, it is
the address of Transmit Buffer Descriptor N..
.
LA-RBD-ADR: Look Ahead Buffer Descriptor, i.e.
the pointer to N + 2 Receiver Buffer DeSCriptor.
Bytes 60H, 61H: This is a copy of the 2nd wotd in
the DUMP·STATUS command presently executing.
NXT-RBD-ADR: Next Receive BiJffer Descriptor Ad·
dress. Similar to LA·RBD·ADR but points to N + 1
Receive Buffer Descriptor:'
NXT-CB-ADR: Next Command Block Address. -The
LINK·ADDRESS field in the DUMP, Command Block
p~esently executing. Points to the 'next command.
CUR-RBD-ADR: Current Receive Buffer Descriptor
Address. Similar to LA·RBD·ADR, but point to Nth
Receive Buffer Descriptor.
CUR-CB-ADR: Current Command Block Address.
The address of the DUMP Command Block currently
executing.
1·23
82586
SCB·ADR: Offset of the System Control Block
(SCB).
Bytes 7EH. 7FH:
RU·SUS·RQ (Bit 4) • Receive Unit Suspend Re·
quest.
Bytes 80H, 81H:
CU·SUS·RQ (Bit 4) • Command Unit Suspend Re·
quest.
'
,
END·OF·CBL (Bit 5) • End of Command Block List. If
"1" indicates that DUMp·STATUS is the last com·
mand in the command chain.
ABRT·IN·PROG (Bit 6) • Command Unit Abort Re·
quest.
1. If AL·LOCation = 0 then RCV·DMA·BC = (2
tImes ADDR·LEN plus 2) if the next Receive
Frame Descriptor has already been fetched.
2. If AL·LOCation = 1 thEm it contains the size of
the next Receive Buffer.
BR+BUF-PTR+96H· Sum of Base Address plus
BUF - PTR field and 96H.
RCV·DMA·ADR • Receive DMA ab~oh;lte Address.
This is the next RCV·DMA start address. The value
depends on AL.LOCation configuration bit.
1. If AL·LOCation = 0, then RCV·DMA·ADR is the
Destination Address field located in the next Re·
ceive Frame Descriptor.
2. If AL·LOCation = 1, then RCV·DMA·ADR is the
next Receive Data Buffer Address.
The following nomenclature has been used in the
DUMP table:
'
RU·SUS·FD (Bit 12) • Receive Unit Suspend Frame
Descriptor Bit. Assume N is the Receive Frame,De·
scriptor used recently, then RU·SUS·FD is equiva·
lent to the S bit of N + 1 Receive Frame Descriptor.
o
• The 82586 writes zero in this location.
1
X
• The 82586 writes one in this location.
• The 82586 writes zero or one in this
location.
• The '82586 copies this location from the
corresponding position in the memory
structure.
III
Bytes 82H, 83H:
RU·SUS (Bit 4) • Receive Unit in SUSPENDED state.
RU·NRSRC (Bit 5) • Receive Unit in NO RESOURC·
ES state.
DIAGNOSE
RU·RDY (Bit 6) • Receive Unit in READY state.
The DIAGNOSE Command triggers an internal self
test procedure of backoff related registers and coun·
ters.
RU·IDL (Bit 7) • Receive Unit in IDLE state.
RNR (Bit 12) • RNR Interrupt in Service bit.
CNA (Bit 13) • CNA Interrupt iri Service bit.
The DIAGNOSE command includes the following:'
STATUS word (written by 82586):
C
B
FR (Bit 14) • FR Interrupt in Service bit.
CX (Bit 15) • CX Interrupt in Service bit.
OK
'FAIL
(Bit 15)
(Bit 14)
(Bit 13)
(Bit 11)
Bytes 90H to 93H:
BUF·ADR·PTR • Buffer pointer is the absolute ad·
dress of the bytes following the DUMP Command
block.
• Command Completed
• Busy Executing
Command
• Error Free Completion
• Indicates that the Self
Test Procedured Failed
COMMAND word:
Bytes 94H to 95H:
RCV·DMA·BC • Receive DMA Byte Count. This field
contains number of bytes to be transferred during
the next Receive DMA operation. The value de·
pends on AL·LOCation configuration bit.
EL
S
(Bit 15)
(Bit 14)
I
(Bit 13)
CMD
(Blts 0-2)
• End of Command List
• Suspend After
'Completion
• Interrupt After
Completion
• DIAGNOSE = 7
LINK OFFSET: Address of next Command Block.
1·24
inter
82586
15
C
B
o
OK
1--t-+-+--7~".,...o;'?'""-:7"-::::O'"'"'::""'-:'?'""-:7"-::::o'"'"':::r--:7"-::::O'"'"'::""'-"'--'--; (STATUS)
EL
CMD=7
S
~
.....::......::;.....:::;.......:::.....::::.-.::;..&_-L_...L.-I (COMMAND)
1---'_-L.._.Jo::::.....::::.-.:::....::::;.......::~::......::;,.....:;;
LINK OFFSET
231246-21
Figure 20. The DIAGNOSE Command Block
TO
COMMAND
BLOCK
LIST
h
RECEIVE FRAME AREA
RECEIVE
FRAME
DESCRIPTORS
RECEIVE
BUFFER
DESCRIPTORS
RECEIVE
BUFFERS
BUFFER 1
•-
BUFFER 2
RECEIVE FRAME LIST
I
BUFFER 4
BUFFER 3
•
-.11••- - -
BUFFER 5
FREE FRAME LIST
I
231246-22
Figure 21. The Receive Frame Are.a
RECEIVE FRAME AREA (RFA)
FRAME DESCRIPTOR (FD) FORMAT
The Receive Frame Area, RFA, is prepared by the
host CPU, data is placed into the RFA by the 82586
as frames are received. ~FA consists of a list o,f
Receive Frame Descriptors (FD), eacl:'l of which is
associated with a frame. RFA-OFFSJ;:T field of SCB
points to the first FD of the chain; the last FD is
identified by the End-of-Listing flag (EL). See Figure
21.
.
The FD includes the following fields:
STATUS word (set by the 82586):
1-25
C
(Bit 15)
B
(Bit 14)
• Completed Storing
Frame.
• FD. was Consumed by
RU.
inter
82586
LINK OFFSET
RBD-OFFSET
2ND BVTE
1ST BYTE
DESTINATION ADDRESS
MC
8
10
NTH BVTE
12
2ND BVTE
1ST BVTE
14
SOURCE ADDRESS
16
NTH BVTE
18
2ND BVTE
LENGTH FIELD
1ST BYTE
20
231246-23
Figure 22. The frame Descriptor (FD) Format
OK
(Bit 13)
511
(Bit 11)
510
(Bit 10)
59
(Bit 9)
58
57
56
• Frame received
successfully. If this bit is
set, then all others ,will be
reset; if it is reset, then
the other bits will indicate
the nature of the error.
• Received F.rame
Experienced CRC Error.
• Received Frame
Experienced an
Alignment Error.
• RU ran out of resources
during reception of this
frame.
• RCV-DMA Overrun.
• Received frame had
fewer bits than
configured Minimum
Frame Length.
• No EOF flag <;Ietected
(only when configured to
(Bit 8)
(Bit 7)
(Bit 6)
Bits~uffing).
COMMAND word:
EL
5
(Bit 15)
(Bit 14)
""
; Last FD in the Ust.,
• RU should be suspended
after receiving this frame.
LINK OfFSET: Address of next FD in list.
RBD-OFFSET: (initially prepared by the CPU and lat-,
er may be updated by 82586): Address of the first,
RBD that represents the Information Field. RBDOFFSET = OFFFFH means there is no Information'
Field.
DESTINATION ADDRESS (written by 82586):
Contains Destination Address of received frame.
The length in bytes, it is determined by the Address'
Length configuration parameter.
SOURCE ADDRESS (written by 82586): Contains
Source Address of received frame. Its length is the
. same as DESTINATION ADDRESS.
LENGTH FIELD (written by 82586): Contains the 2
byte Length or Type Field of received frame.
RECEIVE BUFFER DESCAI'PTOR
FORMAT
The Receive Buffer' DeSCriptor (RBD) holds information about a buffer; size and location, and the means
for forming a chain of RBDs', (forward pointar and
e'nd-of-frame indication).
The Buffer Descriptor contains the following fields.
inter
82586
lS
o
•
EOF
o
ACT COUNT
-L----I.--'---1 (STATUS)
NEXT BD OFFSET
BUFFER ADDRESS
4
A23
SIZE
231;146-24
Figure 23. The Receive Buffer Descriptor (RBD) Format
BUFFER ADDRESS: 24-bit absolute address of
buffer.
STATUS word (written by the 82586).
EOF
(Bit 15)
F
(Bit 14)
ACT
(Bits 0-13)
COUNT
• Last buffer in received
frame.
• ACT COUNT field is valid.
• Number of bytes in the
buffer that are actually
occupied.
EL/SIZE:
EL
SIZE
NEXT RBD OFFSET: Address of next BO in list of
BO's.
1-27
(BIT 15)
(Bits 0-13)
• Last BO in list.
• Number of bytes the
buffer is capable of
holding.
inter
82586
·Notice: Stresses above those listed under ':4bsolute Maximum Ratings" may cause perma(lent damage to the device. This is a stress rating only and
.functional operation of ,the device at these or any
other conditions above those indicated in the opera. 'tiona! sections of this specification is not implied. Exposure to absolute maximum rating conditions for
extended periods may affect device reliability.
ABSOLUTE MAXIMUM RATINGS·
Ambient Temperature Under Bias ....•. O"C to 70·C
Storage Temperature ....... '...... -65·C to 150'C
Voltage on Any Pin with .
Respect to Ground .............. -1.0V to + 7V
Power Dissipation ...................... 3.0 Watts
D.C. CHARACTERISTICS
TA = O·C to 70·C, Te = O·C to 105·C, Vee = 5V ±10%, CLK has MOS levels (See VMIL, VMIH, VMOL,
VMOH). TxO and RXO' have 82C501 compatible levels (YMIL, VTIH, VRIH). All other signals have TTL levels (see
VIL, VIH, VOL, OH)·
Symbol
Parameter
' Min
Max
Units
Test Conditions
VIL
Input Low Voltage (TTL)
-0.5
+0.8
V
VIH
Input High Voltage (TTL)
2.0
Vee + 0.5
V
VOL
Output Low Voltage (TTL)
0.45
V
IOL
VOH
Output High Voltage (TTL)
2.4
V
IOH - 400 p.A
VMIL
Input Low Voltage (MOS)
-0.5
0.6
V
VMIH
Input Hig\l Voltage (MOS)
3.9
Vee + 0.5
V
VTIH
Input High Voltage ~)
3.3
Vee + 0.5
V
VRIH
Input High Voltage (Axe)
3.0
Vee + 0.5
V
VMOL
Output Low Voltage (MOS)
0.45
V
IOL2.5mA
VMOH
Output High Voltage (MOS)
V
IOH - 400 p.A
Vee - 0.5
= 2.5~A
ILl
Input Leakage Current
±10
jJ.A
o S; VIN S; Vee
ILO
Output Leakage Current
±10
p.A
0.45
= 1 MHz
= 1 MHz
TA = O·C
TA = 70·C
CIN
Capacitance of Input Buffer
10
pF
COUT
Capacitance of Output Buffer
20
pF
Icc
Power Supply Current
550
450
mA
1-28
FC
FC
S;
VOUT
S;
Vee
82586
SYSTEM INTERFACE A.C. TIMING CHARACTERISTICS
T A = DoC to 70°C, Te = DoC to 105°C, Vee = 5V ± 10%. Figures 24 and
25 define how the measurements
should be done.
INPUT AND OUTPUT WAVEFORMS FOR A.C. TESTS
Z . 4 = X :1.5 - - TEST POINTS - - 1 . 5
0.45
x==
231246-25
AC Testing Inputs are Driven at 2.4V for a Logic 1 and 0.45 for a Logic O. Timing measurements are made at 1.5V for both a Logic 1 and 0
Figure 24. TTL Input/Output Voltage Levels for Timing Measurements
231246-26
MOS I/O measurements are taken at 0.1 and 0.9 of the voltage swing
Figure 25. System Clock CMOS Input Voltage Levels for Timing Measurements
1-29
82586
INPUT TIMING REQUIREMENTS'
Symbol
Parameter
82586-6
(6 MHz)
82586
(8 MHz)
82586-10
(10 MHz)
Comments
Min
Max
Min
Max
Min
T1
ClK Cycle Period
166
2000
125
2000
100
200
T2
ClK low Time at 1.5V
73
1000
55
1000
44
1000
T3
ClK low Time at 0.9V
42.5
1000
42.5
1000
T4
ClK High Time at i.5V
T5
ClK High Time at 3.6V
T6
ClK Rise Time
15
15
12
Note 1
T7
ClKFaliTime
15
15
12
Note 2
T8
Data in Setup Time
73
20
55
44
42.5
42.5,
20
15
Max
T9
Data in Hold Time
10
10
10
T10
Async ROY Active Setup Time
20
20
15
Note 3
T11
Async ROY Inactive Setup Time
35
35
25
Note 3
T12
Async ROY Hold Time
15
15
15
Note 3
T13
Synchronous Ready/Active Setup
35
35
35
T14
Synchronous Ready Hold Time
0
0
0
T15
HlDA Setup Time
20
20
20
Note 3
T16
HlDA Hold Time
10
10
5
Note 3
Ti7
Reset Setup Time
20
20
20
Note 3
TiS
Reset Hold Time
10
10
10
Note 3
T19
CA Pulse Width
1 T1
1 T1
1 T1
T20
CA Setup Time
20
20
20
Note 3
T21
CAHoldTime
10
10
10
Note 3
OUTPUT TIMINGS"
Symbol
Parameter
Min
Max
Min
Max
Min
Max
44
T22
DT fR Valid Delay
0
60
0
60
0
T23
WR, DEN Active Delay
0
70
0
70
0
56
T24
WR, DEN Inactive D'elay
10
65
10
65
10
45
Comments
T25
Int. Active Delay
0
85
0
85
0
70
Note 4
T26
Int. Inactive Delay
0
85
0
85
0
70
Note 4
T27
Hold Active Delay
0
85
0
85
0
70
Note 4
T28
Hold Inactive Delay
0
85
0
85
0
70
Note 4
T29
Address Valid Delay
0
55
0
55
0
50
T30
Address Float Delay
0
50
0
50
12
50
T3i
Data Valid Delay
0
55
0
55
0
50
T32
Data Hold Time
0
T33
Status Active Delay
10
0
1·30
60
10
0
60
10
45
Note 7
82588
OUTPUT TIMINGS·· (Continued)
Symbol
82582-6
(6 MHz)
Parameter
Min
82586-10
(10 MHz)
82586
(8 MHz)
Max
Min
Max
Min
Comments
Max
T34
Status Inactive Delay
10
70
10
70
10
50
Note 8
T35
ALE Active Delay
0
45
0
45
0
35
Note 5
T36
ALE Inactive Delay
0
45
0
45
0
37
Note 5
T37
ALE Width
T38
. T2-10
T2-10
T2-10
Address Valid to ALE Low
T2-40
T2-30
T2-25
T39
Address Hold to ALE Inactive
T4-10
T4-10
T4-10
T40
RD Active Delay
10
95
10
95
10
95
T41
RD Inactive Delay
10
70
10
70
10
70
T42
RDWidth
2T1-50
2T1-50
2T1-46
T43
Address Float to RD Active
10
10
0
T44
RD Inactive to Address Active
T1-40
T1-40
T1-34
T45
WRWidth
2T1-40
2T1-40
2T1-34
T46
Data Hold After WR
T2-25
T47
Control Inactive After Reset
0
T2-25
60
Note 5
T2-25
0
60
0
60
Note 6
• All units are In ns.
··CL on all outputs is 20-200 pF unless otherwise specified.
NOTES:
1. 1.0V to 3.5V
2. 3.5V to 1.0V
3. To guarantee recognition at next clock
4.CL = 50pF
5. CL = 100 pF
6. Affects:
MIN MODE: Rl5, iNA. DTIA. DEN
MAX MODE: SO, S1
7. High address lines (A16-A24, BHE) become valid one
clock before T1 only on first memory cycle after the 82586
aC
3.3V ..;
3.0V . -
/
\
G.IIV,....-
a.lv
~-~
I--T52 ....
T.......
-
---- -
1\
-T51--
----
I~
---
~ T50
231246-35
Figure 34. TxC Input Voltage Levels for Timing Measurements
3.GY
~
HIGH LEVELS MAY VARY
WITH Vee
1 - - - - T84 ---o-t
,----"\
1- ___ -1.
I
,-
I-
,
2.7V -
Tee
231246-36
Figure 35. RxC Input Voltage Levels for Timing Measurements
1-36
82586
1m
~----~+-t-+-------+i--------~+-
231246-37
m-----
eTa--------- h.,4
eJI!-----"""
T76
-~------
231246-38
Figure 36. Transmit and Control and Data Timing
RoD
231246-39
Figure 37. RxD Timing Relative to RxC
231246-40
Figure 38. CRS Timing Relative to RxC
1-37
·nter
~OO~1l0IMJOOO~
I
82C501AD ETHERNET SERIAL INTERFACE
...... .
Rep!acement for Intel 82C501,
10
Transmit Clock Generator
• CHMOS
• Drlves/Recelves,802.3"AUI
82501 or SEEQ 8023A
• Defeatable ,Watchdog TimerCables
Conforms to IEEE 802.3 10BASE5
Circuit to
• (Ethernet)
and 10BASE2 (Cheapernat)
•
Prevent Cont,huous '
Specifications
. Diagnostic Loopback for Network Node
Direct Interface to the Intel LAN
•
Fault Detection and Isolation
• Controller
and the Attachment Unit
Replaces 8 to 12 MSI Components
Interface (Transceiver) Cable
•
10 Mbps Operation
• Manchester
and
• Receive ClockEncoding/Decoding
Recovery
MH~
The 82C501AD Ethernet Serial Interface (ESI) chip is designed to work directly with the Intel LAN Controller in
IEEE 802.3 (10BASE5 and 10BASE2), 10 Mbps, Local Area Network applications. The major functions of the
82C501AD are to generate the 10 MHz transmit clock for the Intel LAN Controller, perform Manchester
encoding/decoding of the transmitted/received frames, and provide the electrical interface to the Ethernet
transceiver cable (AUI). Diagnostic loopback control enables the 82C501AD to route the signal to be transmitted from the Intel LAN Controller through its Manchester encoding and decoding circuitry and back to the Intel
LAN Controller. The combined loopback capabilities of the Intel LAN Controller and 82C501AD result in highly
effective fault detection and isolation through sequential testing of the communications interface. A (defeatable) on-chip watchdog timer circuit prevents the station from locking up in a continuous transmit mode. The
82C501AD is pin compatible with the 82C501 and functionally compatible with the 82501 and SEEa 8023A.
Vee
GND
r
COWSlO....
PAUENCE
_RATION
INmI.
L
--
,,
,,
\
XCVRCABLE
INTERFACe.
NOISE FIUER
-,
,CLIIN
,,
,_/
"
CARRIER-PRESENCE GENERATION
I
IWICIIESfElI
DECODER AND
CLOCk
RXD
~' INTERFACE
lO:YIICAeLE
AND
,,RCY
,
(
NOtSEFIlJ'ER
RECOVERY •
I
/'-"",
',-/
-lcoutmR
CLOCk
GENERATION
MANCHESTER
ENCOOIR
TAANlCEtVER
CABLE DRIVER
~ tJi:
CRYSTAL
X,
, --, ,TRMT
,,
TXD
t-----
\,
r~
WATCHDOG TIMER
-- ,I
ENffii
NOOii
LPBK/WDTD
RCV
Rev
CRS
vee
TRMT
TRMT
TXD
TXC
TEN
XI
3
8
RXC
X2
RXD
GND
CLSN
CLIN
11
231926-2
Figure 2. Pin Configuration
I
231926-1
Figure 1. 82C501AD Functional Block Diagram
1-38
November 1988
Order Number: 231928-004
inter
82C501AD ETHERNET
Table 1. Pin Description
Symbol
Pin
No.
Type
Name and Function
ENETV1
1
I
ETHERNET VERSION 1.0: An active low, MOS-Ievel input. When ENETV1 is
asserted, the TRMTITRMT pair remains at high differential voltage at the
and of transmission, This operation is compatible with the Ethernet Version
1.0 specification. If the ENETV1 pin is left floating, an internal pull-up resistor
biases the input inactive high. When ENETV1 is high, the TRMTITRMT
differential voltage gradually approaches OV at the end of transmission.
NOOR
2
I
CRS 'OR': An active low, MOS-level inpu When ~ is low, only the
presence of a valid signal on the RCV IR V pair will force CRS active. If the
NOOR pin is floating, an internal pull-up resistor biases the input inactive
high. When NOOR is in active high, either the presence of a valid signal on
CLSN/CLSN or on RCV IRCV will force CRS active.
LPBKI
WDTD
3
I
LOOPBACK/WATCHDOG TIMER DISABLE: An active low, TTL-level
control signal that enables the loopback mode. In loopback mode serial data
on the TXD input is routed through the 82C501AD internal circuits and back
to the RXD output without driving the TRMT ITRMT output pair to the
transceiver cable. During loopback CDT is asserted at the end"of each
transmission to simulate the SQE test.
WATCHDOG TIMER DISABLE: An input voltage of 10V to 16V through a
1 KO resistor will disable the on-chip watchdog timer.
RCV
RCV
4
5
I
I
RECEIVE PAIR: A differentially driven input pair which is tied to the receive
pair' of the Ethernet transceiver cable. The first transition on RCV will be
negative-going to indicate the beginning of a frame. The last transition should
. be positive-going to indicate the end of the frame. The received bit stream is
assumed to be Manchester encoded.
CRS
6
0
CARRIER SENSE: An active low, MOS-Ievel output to notify the Intel LAN
Controller that there is activi~ the coaxial cable. The signal is asserted
when a valid signal on RCV IRCV is present. If the NOOR input is inactive
high, then CRS is also asserted when a valid Signal on CLSN/CLSN is
present. It is deasserted at the end of a frame: or when the end of the
collision-presence signal is detected, synchronous to RXC. After
transmission, once deasserted, CRS will not be reasserted again for a period
of 5 ""S minimum or 7 ""S maximum, regardless of any activity on the collisionpresence signal (CLSN/CLSN) and RCV/RCV inputs.
CDT
7
0
COLLISION DETECT: An active-low, MOS-Ievel signal which drives the CDT
input of the Intel LAN Controller. It is asserted as long as there is activity on
the collision pair (CLSN/CLSN), and during SQE (heartbeat) test in loopback.
RXC
8
0
RECEIVE CLOCK: A 10M Hz MOS level clock output with 5 ns rise and fall
times. This output is connected to the Intel LAN Controller receive clock
input RXC. There is a maximum 1.4 ""s delay at the beginning of a frame
reception before the clock recovery circuit gains lock. During idle (no
incoming frames) RXC is forced low.
.
RXD
9
0
RECEIVE OATA: A MOS-Ievel output tied directly to the RXD input of the
Intel LAN Controller and sampled by the Intel LAN Controller at the negative
edge of RXC. The bit stream received from the transceiver cable is
Manchester decoded prior to being transferred to the controller. This output
remains high during idle.
,
a
1·39
82C501AD ETHERNET
Table 1. Pin Description (Continued)
Symbol
Pin
No.
GND
10
CLSN
CLSN
12
11
I
I
COLLISION PAIR: .i\differentially driven input pair tied to the collisionpresence pair of the Ethernet transceiver cable. The collision-presence
signal is a 10 MHz square wave. The first transition at CLSN is negativegoing to indicate the beginning of the signal; the last transition is positivegoing to indicate the end of the signal.
X1
X2
14
13
I
I
CLOCK CRYSTAL: 20 MHz crystal inputs. When X2 is floated, X1 can be
used as an external MOS level input clock.
TEN
15
I
TRANSMIT ENABLE: An active low, TIL level signal synchronous to TXC
that enables data transmission to the transceiver cable and starts the
watchdog timer. TEN can be driven by the RTS from the Intel LAN Controller.
TXC
16
0
TRANSMIT CLOCK: A 10 MHz MOS level clock output with 5 ns rise and fall
times. This clock is connected directly to the TXC input of the Intel LAN
Controller.
TXD
17
I
TRANSMIT DATA: A TTL-level input signal that is directly connected to the
serial data output, TXD, of the Intel LAN Controller.
TRMT
TRMT
19
18
0
0
TRANSMIT PAIR: A differential output driver pair that drives the transmit pair
of the transceiver cable. The output bit stream is Manchester encoded.
Following the. last transmission, which is always positive at TRMT, the
differential voltage is slowly reduced to zero volts in a series of steps. If
ENETV1 is asserted this voltage stepp.ing is disabled.
Vee
20
Type
Name and Function
GROUND: Reference.
POWER: 5V ± 10%.
2. Crystek Corporation
100 Crystal Drive
Ft Myers, FL 33907
FUNCTIONAL DESCRIPTION
Clock Generation
For best operation, the total crystal load capacitance
should not exceed 20 pF. The total length of the line
on each side of the crystal (between X1 and X2, the
crystal, and the capacitor) should be less than
2.5 cm.
A 20 MHz parallel resonant crystal is used to control
the clock generation oscillator which provides the
basic 20 MHz clock source. An internal divide-bytwo counter generates the 10 MHz ± 0.01 % clock
required by the IEEE 802.3 specification.
An external, 20 MHz, MOS-Ievel clock may be applied to pin X1 while pin X2 is left floating.
It is recommended that a crystal meeting the foll()wing specifications be used:
• Quartz Crystal
• 20.00 MHz ± 0.002%
@
TRANSMIT SECTION
25°C
• Accuracy ± 0.005% Over Full Operating Temperature, 0 to 70°C
Manchester Encoder and Transceiver
Cable Driver
• Parallel resonant with 20 pF Load Fundamental
Mode
The 20 MHz clock is used to Manchester encode
data on the TXD input line. The clock is also divided
by two to produce the 10 MHz clock required by the
Several vendors have these crystals available; either
off the shelf or custom made. Two possible vendors
are:
1. M-Tron Industries, Inc
Yankton, SD 57078
1-40
82C501AD ETHERNET
20 MHz INTERNAL CLOCK
"0"
TXD
-_. __ ..',
"0"
"1"
"0"
TRMT
(MANCHESTER-ENCODED DATA)
231926-3
Figure 3. Start of Transmission and Manchester Encoding
If an active signal is present at the ENETV1 input at
the end of transmission, the TRMTITRMT pair output will remain a high differential Voltage. As a result
there will be a positive differential voltage during the
entire transmit idle time. This mode of operation is
compatible with the Ethernet Version 1.0 specification.
Intel LAN Controller for synchronizing its RTS and
TXD signals. See Figure 3. (Note that the 82586
RTS is tied to the 82C501AD TEN input as shown in
Figure 4.)
Data encoding and transmission begins with TEN
going low. Since the first bit is a '1', the first transition on the transmit output TRMT is always negative. Transmission ends with the TEN going high.
The last transition is always poisitve at TRMT and
may occUr at the center of the bit cell (last b.it = 1)
or at the boundary of the bit cell (last bit = 0). A
1.5-bit delay is introduced by the 82C501 AD between its TXD input and TRMTITRMT output as
shown in Figure 3. If the signal applied to the
ENETV1 input is inactive high, the TRMT differential
output is kept at high differential for 200 ns, then it is
gradually reduced. The TRMTITRMT differential
voltage will become less than 40 mV within 8 ,...s
after the last data transition. The undershoot for return to idle is less than 100 mV differentially. This
mode of operation is compatible with the IEEE 802.3
transceiver specifications. See Figure 4.
Immediately after the end of a transmission all signals on the receive pair are inhibited for 5 ,...S minimum to 7 ,...s maximum. This dead time is required
for proper operation of the SOE (heartbeat) test.
An internal watchdog timer is started when TEN is
asserted low at the beginning of the frame. The duration of the watchdog timer is 25 ms ± 15%. If the
transmission terminates (by deasserting the TEN)
before the timer expires, the timer is reset (and
ready for the next transmission). If the timer expires
before the transmission ends the frame is aborted.
The frame is aborted by disabling the output driver
for the TRMT ITRMT pair. RXD and RXC are not
affected. The watchdog timer is reset only when the
TEN is deasserted.
1-41
82C501AD ETHERNET
The cable driver is a differential circuit requiring external pulldown resistors of 2400 ± 5%. In addition,
high-voltage protection of + 10V maximum, and
short circuit protection to ground is provided. .
RECEIVE SECTION
Cable Interface
To provide additional high voltage protection if the
cable is shorted, an isolation transformer can be
used to isolate the TRMT and TRMT outputs from
the transceiver cable. Transmit circuit inductance
(including the IEEE .802.3 transceiver transformers) "
should be a minimum of 27
We recommend that
the transformer at the 82C501 AD end have a minimum inductance of 75 ,...H for Ethernet applications.
,...H.
The 82C501 AD input circuits' can be driven directly.
from the Ethernet transceiver cable receive pair. In
this case the cable is terminated with a resistor of
780 ± 6% for proper impedance match.ing. See Figure 4.
The,signal received on the RCV/ReV pair from the
transceiver defines both the RXC and RXD outputs
to the Intel LAN Controller. The RXC and RXD signals are recovered from the encoded RCV /RCV ,pair
signal by Manchester decode circuitry.
+5V OV
_vee GND
TXC
TXC
RTS
TXD
'mi'
TRt.lT
·TXD
ENETVI
CTS
NOoR
RxC
CRS
RxD
COT
TRt.lT
240.0.
19
18
240.0.
RxC
CRS
9
RxD
7 Cfj'f
RCV
T
r
a
4
n
s
c
INTEL
t
•
•I a
v
c
• •
LAN
82C501
ESI
CONTROLLER
I
II
78.0.
LOOP B A C K - - - - -......
INPUT FROt.l PROCESSOR
20t.lHZ
Cl~
COLLISION PAIR
C2~
231926-4
NOTE:
Cl = C2 = 20 pF ±10%
Figure 4. LAN Controller/82C501AD/Transcelver Interface
1-42
inter
82C501AD ETHERNET
jitter. Slow phase variations, such as those caused
by small differences between the data frequency
and the clock frequency, are passed unfiltered by
the low-pass filter.
The input circuits can also be driven with ECl voltage levels. In either case, the input common mode
voltage must be in the range of O-Vee volts to allow
for wide driver supply variation at the transceiver. To
provide additional high voltage protection, if the cable is shorted, an isolation transformer can be used
to isolate the RCV and RCV inputs from the cable.
The AXe generator digitally sets the phases of the
two transitions to respectively lead and lag the bitcenter transition by 1/4 bit time. RxC is used to recover RxD by sampling the incoming data with an
edge-triggered flip-flop.
Manchester Decoder and Clock
Recovery
The Frame_Detect signal informs the decoder that
the first valid negative transition of a new frame has
been detected. This signal is used to initiate the
lock-on sequence of the decoder. lock is achieved
by reducing the time constant of the digital filter to
zero at the start of a new frame. With a time constant of zero, the filter immediately outputs the
phase of the second bit-center transition. Any uncertainty in the bit-center phase of the first transition
that is caused· by jitter is subsequently removed by
gradually increasing the filter time constant during
the following preamble. By that time, the exact
phase of the bit center is output by the filter, and the
lock is achieved. lock is achieved within the first 14
bit times as seen by the RCV /RCV inputs. The maximum bit-cell timing distortion Qitter) tolerated by the
Manchester Decoder Circuitry is ± 12 ns for the preamble and ± 18 ns for the data.
The Manchester-encoded data stream is decoded to
separate the Receive Clock (RxC) and the Receive
Data (RxD) from the stream. The 82C501 AD uses
an advanced digital technique to perform the decoding function. The use of digital circuitry instead of
analog circuitry (e.g., a phase-lock loop) to perform
the decoding ensures that the decoding function is
less sensitive to variations in operating conditions.
A simplified diagram of the decoder appears in Figure 5. A high-resolution phase reference is used to
digitize the phase of the incoming data bit-center
transition. The digitizer has a phase resolution of
1/32 bit time.
The digitized phase is filtered by a digital low-pass
filter to remove rapid phase variations; Le., phase
10 MHz
HIGH RESOLUTION
D~C::::LO~C::.:K___~
PHASE
REFERENCE
1---------,
MANCHESTER .._..z._-,
ENCODED
DATA
Q
RXD
~----------+-----r~D
FRAME
DETECT-----------t-------J
231926-11
Figure 5. Manchester Decoder
1-43
inter
82C501AD ETHERNET
COLLISION·PRESENCE SECTION
Internal Loopback
The CLSN/CLSN input signal is a 10 MHz ± 15%
square-wave generated by the transceiver whenever
two or more data frames are superimposed on the
coaxial cable. The maximum asymmetry in the
CLSN/CLSN signal is 60/40% for low-to-high or
high-to-Iow levels.
When asserted, LPBKcauses the 82C501 AD to
route serial data from its TXD input through its transmit logic (retiming and Manchester encoding); returning It through the receive logic (Manchester decoding and receive clock generation) to AXD output.
The internal routing prevents the data from paSSing
through the output drivers and onto the transmit output pair TRMTITRMT. When in loopback mode all of
the transmit and receive circuits, are tested except
for the transceiver cable output driver and input receivers. Also, at the end of each frame transmitted
in loopback mode the 82C501AD generates the
SQE test (heartbeat) signal within 1 /ks after the end
of the frame. Thus, the colision Circuits, are also
tested in loopback mode.
The common-mode voltage and external termination
are identical to the RCV /RCV input. (See Figure 4.)
A valid collision presence' signal will assert the
82C501 AD COT output, which can be directly tied to
the COT input of the Intel LAN Controller. During
normal operation the 82C501 AD logically "ORs" the
collision presence signal with an internal signal, indicating valid data reception on the RCV /RCV pair to
generate CRS output. If, however, the NOOR input
is asserted low, this "OR" function is removed and
CRS is only asserted by the presence of valid data
on the RCV/ReV pair. This mode of operation is
required for repeater design.
During the time that valid cOllis~ntresence transitions are present on the CLSN/ L N input, invalid
data transitions maybe present on the receive data
pair due to the superposition of signals from two or
more stations transmitting simultaneously. It is possible for RCVIRCV to lose transitions for a few bit
times due to perfect cancellation of the signals; this
may cause the 82C501 AD to abort the reception.
The watchdog timer remains enabled in loopback
mode, terminating test frames that exceed its timeout period. The watchdog can be inhibited by connecting LPBK to a 1 kn resistor connected to 10 to
16 Volts. The loopback feature can still be used to
test the integrity of the 82C501 AD by using the circuit shown in Figure 6.
10VlO lev
82C501AD
lK
L:Pii
=>
OJ
I\)
en
0.
""
en
0
!!!I
0
<
O'o-Ilt
DATA
/
/s
()
;II;'
CJ
iii
;;
+
DACKO/llACK
LOCAL BUS
DACK!/EDP
cs
INTERFACE
I"",
DRQO
...
ORO!
CD
N
I
IORO/UWR
DMA MACHINE
KlWR.
3
......... INT
GND
/
I
I
I
'«~
10
Vee
...--.
L..~
CPU INTERFACE
ill
(
~
INTERRUPT
UNIT
.--------------------------~-----------------
il
~
~I
I
lOCAL BUS CONTROL
_____ w_____________________
I
I :
I
I
l _____ J__________ !
I~I
IIOE
CSL
CSR
~
t§l
~
~
©>
IiiiiI
I~
~
;ijJ
~\,
@
2j
290180-1
~
~
~
@
~
82560
Table
1. 82560 Pin Description
,
"
Symbol
Pin No.
' Type
Name and Function
+ 5V power supply.
Vee
5,23,57
I
Vss
ClK
10,29,43,63
I
GROUND: Ground connection.
11
I
CLOCK INPUT: This is the system clock input for the 82560. It
controls the internal operations of the 8?5~0 and its cycle timing.
RESET
42
I
RESET: Active high. When active it resets the 82560 to a known
passive state.
00-0 7
40,41,44-49
I/O
Ao-A12
26-39
I
ADDRESS LINES: The 13 address lines select either an 82560
register, or an address in the local Memory.
HFO, HF1
25,24
I
HOST FUNCTION SELECT: These two inputs indicate the type of
access requested by the host. These signals are generated by
external decode logic and are completely asynchronous to the
82560 system clock. The proper combinations for each access
type are shown below:
HOST FUNCTION,
H'F1
HFO Access Type
Idle (No Access Being Requested)
1
1
1
Request to Access Shared:Portion of local
0
Memory
Request to Access 82560 Registers or the Slave
0
1
Controller (SCS}
0
0
~esest to Access External PROMs or latches
: POWER: Co"nected to
82560 DATA BUS: Tri-state bus. Used for programmatic access to
the 82560 registers. They are also used in the tightly coupled
interface (TCI) mode.
(
)
RO
17
I
READ: Active low. This signal is used to' indicate the direction of
the host transfer. When active, data is being read from the
destination (RAM, 560, or GCS port).
HROY
20
0
HOST READY: Active high. This Signal from the 82560 is activated
when the device on the local Bus of the LAN adapter is ready to
accept data (write cycle) or to output data (read cycle). When no
access is being requested by the host (I.e., both, HFO and HF1 are
high), this signal is tri-stated in the normal mode, ~nd is driven high
in the pipeline mode.
,
XCV1
22
0
TRANSCEIVER ENABLE 1: Enables the transceiver that connects
the lower byte of the host and local data buses. In pipeline mode it
enables the transceiver during non-memory host cydles.
XCV2/PCS
21
0
TRANSCEIVER ENABLE 2: Enables tl:Je transceiver that connects
the upper,byteof the host and local data buses. In pipeline mode it
enables the latch during memory host cycles.
.
.
INT
50
0,
INTERRUPT OUT: This signal is a I~cal OR of all enabled
interrupt requests. When active it indi'ates an interrupt request to
the CPU. This signal is tristated after reset.
GCS
59
0
GENERAL CHIP SELECT: Active low. This Signal is asserted by
the 82560 when the host requests access:to external ROMs or
"
latches.
1-58
82560
Table 1. 82560 Pin Description (Continued)
Symbol
Pin No.
Type
Name and Function
BEO
18
I
BYTE ENABLE: Active low. This signal is asserted in 16- or 32-bit·
wide host memory cycles to select the lower memory bank. It may be
connected to the processor's Ao pin.
BE1
19
I
~YTE ENABLE 1: Active low. This signal is asserted in 16· or 32-bitwide host memory cycles to select the upper memory bank. It may
be connected to the processor's BHE signal. These two signals are
connected as follows:
H08tBu8
8-Bit
!;I-Bit,
16-Bit
16-Bit
32·Bit*
iEO
LocalBu8
8-Bit
16-Bit
16-Bit
32-Bit
32-Blt
0
SAO
SAO
SA1
BEO
+ BE1
BE1
0
1
SHBE
SA1
BE2 + BE3
*80386 address pins
+ stands for logical OR
DROO
54
I
DMA REQUEST CHANNEL 0: Active high. This is an input from the
LAN controller or other peripherals, it requests DMA service. The
DMA cycles are run on an on-demand basis, and are prioritized
between themselves (two channels) and with the host cycles on an
alternating basis. In 82590 Tightly Coupled mode this signal is
sampled by the 82560 at the last clock of the Read or Write signal
along with DACK1/EOP to determine the state of the transmit or
receive process (see Tightly Coupled Interface for mote details).
DRQ1
52
I
DMA REQUEST CHANNEL 1: Active high. This is an input from the
LAN controller or other peripherals, requesting DMA service. The
DMA cycles are run on an on.demand basis, and are prioritized
between-themselves (two channels) and with the host cycles on an
alternating basis. In Tightly Coupled mode this signal is sampled by
the 82560 at the last clock of the Read or Write signal (see Tightly
Coupled Interface for more details).
DACKO/DACK
55
0
Dual Function: This is a dual function pin which serves as DACKO,
DMA acknowledge for Channel 0, in all modes exceptthe Tightly,
Coupled Interface mode. It serves as DACK, DMA acknowledge for
both channels, in Tightly Coupled Interface mode.
DMA ACKNOWLEDGEO: Active low. Acknowledge DMA requests
on channel O. During special chip select cycles, this signal is
controlled by the CPU.
DMA ACKNOWLEDGE: Active low. Acknowledge DMA requests on
either channel 0, channel 1. It operates in this mode only when
programmed for Tightly Coupled Interface with the 82590 or 82592.
This pin can be directly,qonnected to the DACKO/DACK pin of the
8259q or 82592 LAN i::o~troller:s.
or
DACK1/EOP
53
1/0
Dual Function: This ,is a dual fl,inction, bidirectional pin which serve,s
as DACK1, DMA acknoWledge for channel 1, in all modes except
8259X Tightly Coupled Interface mode. It serves as EOP, End of
Process indicator, an input, during this Tightly Cc;>upled Interface
mode.
DMA ACKNOWLEDGE1: Output. Active low. DMA acknowledge for
channel 1. During Special Chip Select (SCS) cycles this signal is
controlled by the CPU and can be used for accessing the 8259X port
1. The output level is determined by the address of the SCS.
1-59
82560
Table 1.82560 Pin Description (Continued)
Symbol
Pin No.
Type
DAOO/EOP
53
1/0
END.OF PROCESS: Input. In the Tightly Coupled Interface mode,
this input, along with the DRQ pin, is sampled by the 82560 at the
last clock of the Read or Write signal. The combination of the two
pins indicates the status of ~he Transmit.or Receive process. When
low, the EOP signal indicates that the active DMA service should be
terminated. .
Name and Function
IOWR
56
0
I/O WRITE. Active low. This is the write strobe to the LAN controller
or 1/0 device. It is asserted when data is being written to the LAN
controller by either the Host CPU or the 82560 internal DMA. During
pipeline read transfers it is the write control signal to the buffer.
TOFiD/MWR
58
0
Dual Function: Active low. This signal is used for two different
operations. It is a control signal during read cycles from the LAN
controller or another 1/0 device. It is a write strobe during write
cycles to the local memory.
I/O READ: Active,low. It is asserted when data is being read from
the LAN controller by either the host CPU or the 82560 internal DMA.
During pipeline write transfers it is the read control signal to the
buffer.
MEMORY WRITE: Active low. It is asserted when data is being
written to. local.memory.
.
INTR
51
I
INTERRUPT REQUEST: This Signal when active indicates an
interrupt request. It is usually connected to the interrupt output of the
LAN controller..It may be programmed as active high or low, level or
edge triggered, and it can also be masked.
9-1,68
0
MEMORY AD.DRESS 0-12: These 13 address lines can support two
8-kilobyte or 8-kiloword banks of static memory.
esc
62
0
CSH
61
0
RAM CHIP SELECT (HIGH BANK): Active low. This signal is
activated during Odd-bYte accesses in 16-bit mode or odd-word
accesses in 32-bit mode.
MOE
60
Q
MEMORY OUTPU.T ENABLE: Active low. This Signal is used to
, enable the memory array's output buffers during memory read
cycles.
.
.
GPI
16
I
GENERAL PURPOSE: Input. This is a general purpose input pin, its
state may be read by,theCPU.
CS
12
0
CHIP SELECT: Active low. This pin is normally connected to the
Chip Sele~t input of the LAN controller or other peripherals. It is
activated during nOn-DMA accesses to the LAN controller. The CPU
activates this signal when it accesses addresses 0, 1,2, or 3 in the
Special Chip Select address space of the 82560.
13,14
I
These pins are reserve~ ~mj should be tied to Vee.
MAO-12
RSV1, RSV2
RAM CHIP SELECT (LOW BA,NK): Active low. This Signal is
activated during all static-RAM accesses in 8-bit mode, even-byte
. accesses in 16-bitmode, and even-word accesses in 32-bit mode.
1-60
intJ
82560
v••
MOE
CLK
GCS
cs
IORO/MWR
RSVI
Vee
RSV2
IOWR
NC
OACKO/OACK
GPI
OROO
Rii
OACKI/EOP
BEO
OROI
BEl
INTR
HROY
INT
XCV2/PCS
07
XCVI
06
Vee
05
HFI
04
HFO
03
AO
02
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
Sg
c
~ ~
'"
290180-2
Figure 2. 82560 PLCC Pinout
."
A
<
'I
(I)
~
'"
Q
Q
'"
I!:
Z
8
,.---- ------
:I
I
I
I
I
I
I
I
I
I
I
I
Host Bus
....
0
Host Interfoce and
Oecode Logic
1
'
....0
'"0
!z
U
I
. 1 Arbitration
1 Logic
Boot
BOM
I
I
Addre••
ROM
I.
~
Q
Q
'"
Local Bu.
._----------------------I.
1
----~
Data. Add,..... and Control
--------- ----.. --
....
0
I!:
Z
(I)
~
~
8
Q
'"
)
~
<§
Local Buffer
LAN
Controller
Memory
(82590.
82592,
82588)
0=
I
(I)
I
I
I
I
I
Physical
Interlace
Transceiver I
II<
(
I
~
------------------~
OMA
Controlier
(8 to 32 kB)
Integrated In 82560
290180-3
Figure 3. Nonintelligent, Buffered Adapter Architecture
1-61
82560
time-critical processes such as retransmission, buffer reclamation, and continuous back-to-back frame
reception without host CPU intervention. This improves the overall data throughput in the network;
and, consequently, system performance. The following discussion describes the 82560 interface to the
PC/XT 1AT bus, its support of locally buffered memory, and the operation of DMA and the Tightly Coupled Interface (including the buffer management
scheme).
FUNCTIONAL OVERVIEW
The 82560 is a dual-port memory controller using
interrupt logic and DMA to implement a noninteOigent, buffered LAN adapter for the IBM PC/XT/AT
bus.' This type of adapter uses on-board memory as
a buffer to store frames during transmission and reception. It also uses on-board DMA to transfer data
between its local memory and the LAN controller. A
block diagram of the buffered, nonintelligent LAN
adapter is shown in Figure 3. The architecture is
termed nonintelligent because it does not use an onboard CPU to process the transmit or receive
frames. The host CPU processes the frames and
programs the DMA and LAN controllers. The host
interface logic, arbitration logic, and the bus transceivers connect the host bus to the adapter's local
bus. They also control all host accesses to the local
bus. The local memory is shared by the host and the
LAN controller. It stores information that the host
wishes to transfer to the LAN controller, and information received by the LAN controller which should
be read by the host. The memory can be shared in
two ways-mapping into the host memory space, or
mapping into the host 1/0 space. The DMA controller transfers data between the local buffer memory
and the LAN controller. The host CPU may use either string move instructions or a system DMA channel to move data into the buffer memory. The host
also accesses the LAN controller registers, the DMA
controller registers the boot ROM, and the address
ROM through the local bus.
HOST INTERFACE
The host interface port connects the 82560 to the
PC-bus through external decode logic and bus transceivers. The external decode logic generates the
HFO and HF1 signals indicating the kind of access
the host desires. When the request is detected by
the 82560 (non-pipeline mode) it deasserts the
HRDY signal, thereby suspending the host cycle.
HRDY is reactivated when the local device being accessed by the host is ready to accept (Write cycle)
or output (Read cycle) data. HRDY reactivation time
is programmable as mentioned in the register section; it is described in detail in the 82560 Reference
Manual The request undergoes arbitration, and, if
granted, the 82560 activates the XCV1 and XCV2
signals. The XCV signals control the transceiver(s)
which interfaces the host data bus to the local data
bus. By using one or both transceiver control signals
the 82560 can support an 8-, 16-, or 32-bit-wide bus.
Once the arbiter grants the host access, the 82560
begins the local bus cycle by generating the appropriate address and control signals.
The 82560 integrates the host interface, arbitration
logic, memory control logic, interrupt logic, and DMA
into one component. It replaces 20-30 MSI and SSI
components (see Figure 1). It also provides a Tightly
Coupled Interface to the 82588, 82590, and 82592
LAN controllers, and an efficient buffer management
scheme, which allows the 82588/82560, 825901
82560, and 82592/82560 combinations to handle
The host CPU can access the internal registers of
the 82560, the local memory controlled by the
82560, or other devices-such as Boot ROM or external Latch-that share the same bus as the 82560.
Table 2 lists the various access types that can be
requested by the host.
Table 2. Host Access Types
HF1
HFO
Add.ress
Cycle Status Indications
82560 Registers
0
1
Between 8h and 3Fh
HRDY
Local Memory Access
1
0
User Defined
HRDY, Memory Control
Signals, XCV Signals
GCS Access (Boot ROM)
(General Chip Select)
0
0
User Defined
HRDY, ITCS, 10WR,
10RD/MWR
Special Chip Select
0
1
Less Than 8h
HRDY, DACK Lines, CS,
10WR, 10RD/MWR
Access Type
1-62
inter
82560
The 82560 provides eight semaphore ports to resolve contention in a shared resource system. Only
the most significant bit of these ports is used. The
CPU writes all O's to the port to clear it. When the
port is read, its current value is reported and the
most significant bit becomes a 1 at the end of the
cycle. The 82560 also supports devices on the local
bus other than memory and the LAN controller.
These devices can be accessed in two ways: by using the General Chip Select (GCS) signal, or by using the Special Chip Select (SCS) addresses in the
82560 register space. The first method typically supports EPROMs, external latches, and similar devices. The second method is used for accessing the
registers of controllers which use the 82560 DMA
channels; e.g., the 82590, 82592, or 82588. Each
address in the SCS port provides a unique combination of the DACKO-, DACK1-, and CS-pin output
states. The CPU activates the chip select of the device being accessed by asserting or deasserting the
appropriate Signals.
In I/O-mapped Access mode the memory is mapped
into the host I/O address space. Data is transferred
between host and local memory using host DMA or
string I/O instructions. The 82560 can be programmed to support memory accesses through a
single I/O port. The I/O port is defined by an address programmed into an 82560 register. The
82560 maintains the current address, which is updated each time a memory cycle is run. The host
does not directly access the local memory. It outputs
the I/O address onto the AO-A12 address lines,
with the HF lines indicating a memory access. If the
I/O address matches the address programmed into
the 82560, then the 82560 executes the local memory cycle by outputting the current address onto the
memory address lines MAO-12.
The 82560 can be configured to interface with the
host in a pipeline mode. In this mode, transparent or
edge-trigged latches are needed to isolate the host
and local bus during memory cycles. Data is written
to the latch (from the host bus) and copied (from the
latch) to the local memory. In the host read cycles,
data is copied from the latch to the host bus. In anticipation of the next host memory request (sequential), the 82560 then copies the next byte or word
from local memory to the latch. Thus the host CPU
can operate with 0 wait states by reading from and
writing to the latch.
The host CPU can access the 82560 registers and
other devices on the local bus at any time. However,
local memory can only be accessed by the host after
the 82560 memory control registers are initialized.
The host accesses local memory in two ways: Page
Access or Sequential (I/O mapped or pipeline) Access. After reset, the memory access is I/O-mapped
mode but host access to local memory is disabled.
The 82560 must be configured for the appropriate
memory access mode before local memory can be
accessed by the host.
.
ARBITER
All requests for access to devices on the local bus,
whether by the host or by the 82560 DMA, undergo
arbitration. The host requests are indicated on the
HF lines; the DMA requests are indicated on the
ORO lines. Figure 4 shows the basic arbitration cycle of the 82560. Arbitration for the local bus is pipelined. It can take place at any time when the 82560
is idle, or one clock before the end of the current
local bus cycle. All requests are sampled on the failing edge of the 82560 clock. Arbitration is completed
within one clock cycle. The resultant local bus cycle
is started on the falling edge of the next clock. If
more than one request is active, arbitration is resolved on an alternating priority basis.
The 82560 memory control logic provides the signals required to interface to static memory. The
82560 can address up to 32 kB of local memory.
Each memory address can refer to a byte, a word, or
a double word of local memory. Thus the 82560 with
its two memory chip selects (low to high bank) and
its MOE and MWR outputs, can support 8-, 16-, or
32-bit-wide local buses.
In Page Access mode the local memory is mapped
into the host memory space. In this mode the host
can directly access local. memory through a fixed
size window which can be moved around in local
memory space. This window is referred to as a
"page". Figure 5 shows the paging scheme. The
page size can vary from 1 kilobyte to 8. kilowords,
and can be located anywhere in local memory. The
exact location of the page in the local memory is
defined by a page register. By reprogramming the
page register the user can relocate the page in local
memory.
The 82560 deactivates its HRDY line when a host
request is detected; the request is synchronized and
then arbitrated. If the 'request is granted, the appropriate local bus cycle begins.. After a programmable
number of clock cycles HRDY will be reactivated,
and the handsl;take with the host will be complete.
DMA requests are synchronized and acknowledged
once DMA has been granted access to the local
bus. The acknowledge lines are kept inactive until
the DMA is granted access to the local bus.
1-63
intJ
82560
To
To
To
To
OMA~
(ORO)
><. .__ .,.><. .__
CYCLE ===IO=LE===:><....__HO_S_T__
D_MA__
HO_S_T__~
290180-4
This Diagram Assumes:
The default priority bit to be 1 (bit 7 of the master mode)
I/O or MEM wait states to be 1 clock (Tw = 1)
Non-Pipeline Mode
In the case of host read cycles (in any mode) or host write cycles (in pipeline mode only), "Twh" cycles
will be asserted in addition to "Tw", between "T1" and "T2" of the host cycles
Figure 4. 82560 Arbitration Cycles
Shored
.' Memory
Page
Adopter's
Locol
Memory
Space
® =, Logical OR
290180-5
Figure 5. Page Mechanism
ister. The current address register (CAR) IS Incremented after every DMA transfer except when in
double ,host bus mode~ The lower-limit register
points to the beginning of the ring buffer; the upperlimit register points to the end of the ring buffer. The
82560 performs the wraparound (lower limit, to
CAR), each time the CAR equals the upper limit.
When the contents of the CAR equal those of the
stop register, DMA transfer stops and the 82560
generates an interrupt to the, CPU. When the double
host bus mode is invoked, the DMA machine will
alternately activate low and high banks of memory
and will increment the address after each high-bank
transfer.
DMA MACHINE
The 82560 provides two DMA channels. Each channel can access 16 kb of memory address, and has
request and acknowledge lines and address registers. The DMA normally operates in the Demand
mode, and becomes active in response to a DMA
request being granted. The requests come in on the
DRO lines and, if granted, are acknowledged by the
DACK lines becoming active. Each channel has a
control register that includes an enable bit, a direction bit, and output enable bits (CS, DACKO, and
DACK1 are active low signals that can be enabled/
disabled during DMA cycles). Each channel also has
a base, current, stop, lower-limit, and upper-limit reg1-64
intJ
82560
Table 3. DMA Handshake Encoding
LOOSELY COUPLED MODE
The 82560 performs flyby DMA transfers (read from
slave and write to memory or vice versa). The operation continues until the' current address register
equals the stop register or until the ORO is removed.
When the stop register is reached, the 82560 generates an interrupt.
DRQ
EOP
0
0'
1
1
0
1
0
1
E~ent
Status
Operation Done
Idle
Retry Request
New DMA Transfer Request
If both ORO and E<5P are sampled high, the Current
Address Register' of the channel is incremented and
another DMA cycle begins. If a frame is transmitted
or received without errors, both ORO and EOP are
low at the end of the DMA cycle and the 82560 will
generate an interrupt. If ORO is high and EOP is low,
a collision occured during transmission, or an error
occurred during reception. In this case the Current
Address Register will be reloaded with the value in
the Base Address Register; and, once again, it will
point to the beginning of the frame structure in memory.
82590 TIGHTLY COUPLED MODE
The Tightly Coupled Interface is a hardware interface between the 82560 and the 82590. This interface allows transmission and reception events to be
processed without CPU intervention. It allows the
implementation of the time-critical CSMA/CD processes: automatic retransmission, buffer reclamation, and continuous frame reception and transmission. The basic interface is a two-signal DMA handshake between the 82560 and the 82590; this occurs over the ORO and EOP pins. The 82590 provides the status of the current transmit or receive
process, or requests another DMA cycle at the end
of each DMA cycle. When configured for the Tightly
Coupled Interface, the 82560 and the 82590 use a
specific interrupt scheme to minimize CPU overhead
and to improve data throughput. The 82590 will not
generate interrupts when events occur that can be
handled by the 82560 without CPU intervention. Figure 5 illustrates the Tightly Coupled Interface mechanism. Table 3 lists the various combination of the
ORO and EOP signals, and the events they represent.
The DACK1/CS1.EOP pin of the 82590 is multiplexed and requires external logic to derive the EOP
and CS1 signals (see 82590 data sheet). Because
the 82560 integrates this logic, its DACK1/EOP pin
can be connected (with a pullup resistor) directly to
the DACK1 ICS1 IEOP pin of the 82590, and its
DACKO/DACK pin can be connected directly to the
DACK pin of the 82590. For more details, see the
8259X Users Manual.
OROn
OACKn
---~S'r--'"'\.
----\5 '1----+--,.
82560 SAMPLES
ORO AND EOP
290180-6
Figure 6. 82560, 82590 DMA Handshake
1-65
82560
collision (provided that the maximum number of collisions is not reached). In this case the current address register is reloaded with the value of the base
address register, and the DMA transfer is resumed
without CPU involvement. If the maximum number of
collisions has been reached, or if transmit failed for
any other reason, the 82560 will need CPU .intervention. Thus it will generate an interrupt to the CPU. At
the end of transmission of each frame, the 82560
updates the status byte (indicating the number of
collisions) in the memory.
Transmit
The 82590 can transmit consecutive frames without
using the CPU.to.issue the Transmit command each'
time. This improves data throughput during transmission and eliminates CPU overhead. The CPU can
place multiple transmit frames in memory, with each
frame separated from the next by a Transmit Command byte. (For further information see 82590 and
82592 user manuals.) The. 82560 supports transmit
chaining. It also supports automatic retransmit on
LOWER
LIMIT
I_";';;';';';~",I
UPPER
LIMIT
»
r
..,
'"»'" »'"
~
iii:
...
DATA
04
'"z
»
'"z
!'
:j
"
(I)
'"'"
STATUS
BYTE COUNT LOW
BYTE COUNT HIGH
DATA
"+
290180-7
Figure 7. Example of a 4-kB Transmit Ring Buffer
1-66
82560
frame and the 82560 generates an interrupt to the
CPU. If no error occurs, the last two bytes received
(which are always stored in 82560 internal registers)
are copied back to the first two bytes of the frame.
These are the byte counts. If the 82590 generates
an interrupt on each frame reception the 82560 will
relay that interrupt to the CPU. At this time the value
of the CAR will be copied into BAR, FF will be written into the next two bytes, and CAR will be incremented as before to point to the new frame reception area.
Receive
Immediately after a channel is enabled for receive,
the 82560 will write FFh into the first two bytes of the
frame (pointed to by the base register). The current
address register is loaded with the contents of the
base register and is incremented twice (past the two
reserved bytes). If an error occurs during reception,
and the save bad frame bit is 0, the CAR is reloaded
with the content of the BAR and incremented past
the two reserved bytes; however, if the save bad
frame bit is set, the CAR is incremented for the next
CPU HAS PROCESSED
THIS PART OF THE
RECEIVE BUFFER
\--_ _ _ _-' (FROW 82590)
DATA
STATUS BYTE ,
STATUS BYTE 2
290180-8
Figure 8. Example of a 4-kB Receive Ring Buffer
1-67
inter
82560
Table 4. Address Map
. RESERVED
.
3Fh
2Fh
HOST MODE REGISTER
2Eh
2Dh
2Ch
2Bh
STOP 0
RESERVED
2Ah
29h
28h
UPPER LIMIT REGISTER 0
RECEIVE TEMP. REGISTERS
27h
26h
25h
24h
23h
LOWER LIMIT REGISTER 0
DMA CONTROL REGISTER 0
BASE
ADDRESS
REGISTER O·
Base Current
Bit = 1
CURRENT
ADDRESS
REGISTEROt
Base
Bit = 0
22h
21h
20h
22h
21h
20h
3Eh
3Dh
3Ch
STQP1
3Bh
3Ah
39h
38h
37h
UPPER LIMIT REGISTER 1
36h
35h
34h
33h
LOWER LIMIT REGISTER 1
DMA CONTROL REGISTER 1
BASE
ADDRESS
REGISTER 1
32h
31h
30h
32h
31h
30h
Basel
Current
Bit = 1
CURRENT
. Base
ADDRESS
Bit = 0
REGISTER 1t
DMA MODE REGISTER
1Fh
HOST
ADDRESS
REGISTER H
SELECT
REGISTER
1Eh
1Dh
1Ch
• Base/Current bit refers to the read cycles
only. When writing, both base and current
are updated.
1Bh
1Ah
t 0 refers to DMA channel O.
RESERVED
19h
18h
t 1 refers to DMA channel 1.
INT MASK REGISTER
INT CONTROL/STATUS REGISTER
17h
16h
§ In the 8259X, address 03h and 05h are
82588 STATUS 2 REGISTER
82588 STATUS 1 REGISTER
15h
RESERVED
13h
12h
11 h
used for accessing Port 0 and Port 1
respectively.
14h
CONTROL REGISTER
IDENTIFICATION REGISTER
MASTER MODE REGISTER
,
10h
OFh
i
SEMAPHORES
08h
CS
1
1
SCSPORTS§
1
1
0
0
0
0
DACK1
DACKO
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
07h
06h
05h
04h
03h
02h
01h
OOh
NOTE:
When writing to 3-byte registers, the most significant byte (higher address) should be written last. The value written into the
most significant bytes should be O. The third bytes are reserved for possible future use.
1-68
82560
82588 TIGHTLY COUPLED MORE
PROGRAMMING
The 82560 supports a Tightly Coupled Interface
(TCI) with the 82588. This interface allows transmit
and receive events to be processed without CPU
intervention. It allows the combination of the 82588
and 82560 to implement time-critical, CSMAlCD
events: automatic retransmission, buffer reclamation, and continuous frame reception (see 82588
Reference Manual). When configured for the 82588
TCI mode, the 82560 uses the 82588 INT pin to determine if an event has occurred. The 82560 then
reads the 82588 status'register(s) to determine the
cause of the interrupt. If the interrupt is d,ue to a
collision during transmission, a good frame reception, or errors during frame reception then the 82560
will update its DMA address registers and issue the
82588 the commands necessary for minimizing CPU
intervention. The 82560 will regenerate all 82588 interrupts except those generated when a collision occurs during transmission (with the maximum retry
count not exceeded). Because transmit and receive
interrupts are time-critical processes the 82560 automatically acknowledges such interrupts to reduce
dependency on the CPU. It will regenerate the interrupt on its INTOUT pin unless the interrupt is due to
a transmit collision.
The 82560 registers may be logically grouped into
Device Configuration registers, Status registers and
DMA address registers. Table 4 shows all of the
82560 registers and their addresses. All registers except receive temporary registers, 82588 status 1
and 2 registers, and the identification register, which
are read only, are read/write registers.
The registers can be accessed by the host CPU. The
RD signal indicates the direction of data transfer between the 82560 and the CPU. The actual data
transfer takes place over the 82560's 8-bit data bus
lines (Dy-Oo). The address of the register being accessed is taken from the address lines A5-AO.
Since the 82560's data bus is 8-bits wide, all access
to its registers is on a byte basis. If a register is
longer than 1 byte, each byte has to be accessed
individually through its unique address in the 82560
register space.
On power-up or reset, the 82560 registers are set to
a default configuration. The user must initialize the
82560 for the proper system configuration.
The SCS ports occupy eight addresses in the 82560
register space. The SCS ports should not be thought
of as registers. They are merely addresses in the
register space which, when addressed, activate a
combination of the DACKO, DACK1 or CS pins. The
particular combination of these pins signal levels depends on the SCS port address being accessed.
The semaphore ports allow resource sharing in a
dual processor (intelligent adapter) environment.
Each port can be used as a semaphore to implement mutual exclusion.
If the 82588 issues an interrupt due to a collision
during transmission, and the maximum retry count
has not been exceeded, the 82560 will automatically
reload the Current Address Register with the value
in the Base Address Register, acknowledge the interrupt, and issue a retransmit command to the
82588. If the interrupt is due to the reception of a
good frame, the 82560 will update its Base and Current Address Registers and prepare for a new incoming frame. If the interrupt is due to a receive
frame error, the 82560 will reclaim the buffer by resetting the Current Address Register to the beginning of the frame buffer.
CONFIGURATION REGISTERS
By programming these registers, the 82560 can be
tailored to support different PCs, slaves and memories. The memory access mode (I/O or memory
mapped) and the type of OMA support (Ioosly or
tightly coupled) can also be programmed.
If the 82588 is unable to transmit due to having exceeded the maximum retry count or a Lost-CTS condition or a Lost-CRS condition, an interrupt is generated; the 82560 will not update its DMA address registers. It will, however, acknowledge the 82588 interrupt and regenerate the interrupt on its INOUT pin.
1-69
inter
82560
MASTER MODE REGISTER (10h)
1071°'1051°41°31°10dool
"
I I
Holt bus Interface
• 00 equal data bus width
• 01 double data bus width·
• 01 double data bus width·
with special recetve
• 10 reserved
Reserved
Base/Current select (1/0)
HRDY delay
.00 no delay
• 01 0.5 clock delay
• 10 1.5 clock delay
• 11 2.5 clock delay
Reserved
Host/DMA Idle priority (lor 0)
• IN SOME VERSIONS OF" 82560, THIS MODE IS NOT TESTED.
290180-9
CONTROL REGISTER (12h)
I/O access delay (0 to 3)
Early/Late write option (1/0)
L..._......_ _ _ _ _ _ _.. Memory access delay (0 to 3)
L.-.....&_-+
L.-_ _ _ _- .
.....- . . . -"'------------+
Reserved
290180-10
HOST MODE REGISTER (2Fh)
Enable/Disable pipeline mode (1/0)
....._ -..... Pipeline direction read/write (1/0)
....- .....- .....-"'--.....-----+
.....---------------+
1·70
Reserved
General purpose Input
290180-11
intJ
82560
INTERRUPT MASK REGISTER (17h)
ID71 D61 Dsl D41 D31 D21 D11 DO I
I I I I I I I I
~-"'--"""-"'--"""-"""-"""-"""-+ low byte of the host-selected address
(I/O-mapped memory access)
290160-12
SELECT REGISTER, HIGH BYTE (1Bh)
~-......-
......-
.......-
.......- . High bits of the host-selected address
~-----------+ HRDY delay reference source
~-------------+ Memory or I/O mapped (1/0)
+
L-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Enable/Disable memory access (1/0)
290180-13
DMA MODE REGISTER (1Fh)
Reserved
Save/Discard bod frame (1/0)
DMA Mode
• 00 loosely coupled (regular)
• 10 8259X Tightly Coupled Interfaced
• 01 82588 TCI
• 11 reserved
290180-14
1-71
inter
82560
INTERRUPT MASK REGISTER (17h)
Level/Edge sensitive (1/0)
' - - - - . - High/Low true assert (1/0)
'--.....- - - - - + .
00 no change-
• 01 enable slave Interrupt
• 10 disable slave Interrupt
• 11 reserved
' - -.....- - - - - - - - - - . Reserved
' - - - - - - - - - - - - - - - - . Disable/Enable Tx chain (1/0)
' - - - - - - - - - - - - - - - - - . Enable/Disable Interrupt trl-state (1/0)
290180-15
'Whenever one of these bits is "1" while writing to this register, other bits are not affected.
Host Address Registers
Contain the initial memory address when the host accesses memory in I/O mapped or pipeline mode.
Identification/Software Reset Register
Writing to this address will reset the chip. Reading from. it will provide the user with 82560 stepping information.
MASTER MODE REGISTER (10h) DMA Control Register" (23h or 33h)
1D71 D61 Dsl D41 D31 D21 D1 1DO 1
L
Disable/Enable DACKO during
DMA cycles (1/0)
7iE"'O;;;P during
Disable/Enable, "DA"C"'K"lj
I)MA cycles (1/0)
Disable CS during DMA cycles (1/0)
Direction bit: memory read/write (1/0)
Enable/Disable DMA channel '(1/0)
Receive/Execution channel (1/0)t
Reserved
290180-16
05
03
OMA Channel Function
0
0
1
1
0
1
0
1
Transmit
Dump (588 or 590/592)
Reserved (Do Not Use)
Receive
'Each DMA channel has its own control register.
tThe following table shows the encoding of bits 3 and 5:
1-72
82560
• Transmission failed because of a collision, and
the maximum number of Transmit retries is
reached.
• Transmission failed for a reason other than collision; e.g., lost CRS/CTS.
INTERRUPTS
In the non-tightly coupled mOde, the 82560 will generate an interrupt when the Current Address register
equals the Stop register or when the interrupt input
pin is active.
• Reception failed, and the Save Bad Frame bit is
set.
In the tightly coupled modes, the conditions for generating Stop register interrupts are the same however, the 82560 will generate 82590 interrupts only if
its source was one of the following.
• Transmission of every frame, or last frame, in the
, chain is completed (progra'mmable).
• Reception completed.
The interrupt control register is read by the interrupt
routines to determine the exact source of the interrupt.
INTERRUPT STATUS READ REGISTER (16h)
External Interrupt
......---+ Reserved
L-_ _ _ _ _• Dt.lA channel-O-dane Interrupt
L-_ _ _ _ _ _ _+ Dt.lA channel-O-stap Interrupt
.....---------+
Dt.lA channel-I-done Interrupt
+ Dt.lA channel-I-stop Interrupt
.....- ......--------------+ Reserved
L-~
__________
290180-17
NOTE: "
The interrupt control register is written to acknowledge and reset the interrupt.
INTERRUPT CONTROL WRITE REGISTER (16h)
107IoI051°41°3Iolodool
L..
rest/ACK external Interrupt
Reserved
rest/ACK Dt.lA channel-O-done Interrupt
rest/ACK Dt.lA channel-O-stop Interrupt
rest/ACK Dt.lA channel-I-done Interrupt
rest/ACK Dt.lA channel-I-stop Interrupt
Reserved
rest/ACK Interrupt control register
290180-18
1-73
inter
82560
SYSTEM INTERACTION
82560 MACHINE CYCLE
A typical 82560 system interaction is described below.
The 82560 'machine cycle can be broken down into
three basic cycles: Idle (TIDLE), Arbitration (TA) and
Transfer (TTSF). The machine cyqle. I:!egins when a
request (HF or ORO) becomes active and the 82560
is in the idle state (TIDLE). The requests are synchronized and then undergo arbitration (TA). Once arbitration is completed, the transfer cycle (TTSF) begins.
1. The CPU configures the 82560 by writing to configuration registers.
2. The CPU accesses the local memory (through the
82560) and prepares a block of transmit frames.
3. The CPU writes the proper addresses into the
82560's OMA address registers, (base, current, lower limit upper limit and stop).
Synchronization (T S) is completed on the falling
edge of the clock. If the previous cyqle was non-idle,
arbitration begins and is completed within one clock
period (by the next falling edge of the clock).
4. The CPU writes to the 82560's OMA control registers to configure and enable the channels.
5. The CPU issues a transmit command to the
82590.
The Transfer cycle consists of the following sequential states: the first transfer state (T 1)' memory or 1/0
wait ,states (Tw), and the second transfer state (T2).
There may be another transfer state, Twh (wait host),
during host read or pipeline cycles. When no requests are pending, and the 82560 is not in the
transfer or arbitration cycle, it is said to be in the idle
state (TIDLE). If the previous cycle was non-idle, the
arbitration period (TA and T 2 of the previous cycle
will be done in parallel. (See Figure 4.)
6. The 82560 responds to the 82590's OMA request
by transferring data from memory to the 82590. '
7. Upon completion of transmission, the 82560
sends an interrupt to the CPU.
8. The CPU reads the 82560 interrupt control register to find the source of the interrupt.
9. The CPU issues a command to the 82590 to clear
its interrupt. (If the source of the interrupt was the
82590.)
Tw is the programmable portion of the transfer cycle. It can be zero to three clocks long depending on
the programmed memory or 1/0 access delays. If
the programmed delay is zero, then there will be no
Tw; the first state of the transfer cycle will be T 1.
During T2 the transfer cycle is completed unless the
cycle is a host read cycle. In that case the cycle will
be extended by inserting Twho Trw 82560 will remain
in Twh until the HF lines are deasserted. Once HF
lines are deasserted, T2 will begin and one clock
period later the bus cycle is complete.
10. The CPU acknowledges the 82560 interrupt by
writing a "1" into the corresponding interrupt control
register bit(s).
APPLICATIONS
Figure 9 shows a buffered, nonintelligent Star LAN
adapter for the IBM PC bus (using the 82560 and the
82590). Figure 10 shows a buffered, nonintelligent
Ethernet adapter for the IBM PC bus (using the
82560, 82592, 82C501 and the 82502).
1-74
1/1
'"
I "
.--+I TRANSCEIVER~
13
!
c
;;
!"
en
~
%
~
':I'
....
L..+-_-I HRDY
I
OSCILLATOR I
10MHz 1
r----
.!.i
UI
I>:
~:c
10
IL
RESET 10
...
~
~
I~
b
CLK
.1
DECODER 1
"
_
CS
k---1~---IDATA
'"
82560
'"
Q
II>:
3:
:z
';3-
+5V
\13
t:L
ILIO~ ... ~OII>:IQ
I 0f.l0~I>:03:1>:
.!:!.
'"
~
...J
CI
~
...J
'- f-t
4
CLK
m
Q
I~
CD
I~
82590
~
RESET
en
U)
-
CD
N
g:
"....
t:L
L..________________-....I
VI
•
~
SRAM
;:)
III
III
OE
cs
WE
8
~
0
DATA
ADDRESS
I
i
i
ROM
L,;,,;~_ _ _ _ _-J
GCS ...._ _ _ _ _ _ _ _ _...._ _...J
\8
\8
DO - 07
MOE
CSO
.&
ADDRESS
;-----+ OE
XCVI
IVI I~ I!: g g I; I~ MAO-MA12
I~QOO~QQQQ
.:..
~
CD
CO
\2
- - - -...........l.........-.LQ-I~O~--...,
"'1'1
~
l
~
~
I>:
II!!I>:
~
f
~
Q
0
I
""
g
07 - DO
~
8
\Ql
~
~
@
IiiiiI
c::o
Front-End Interface
~
~
• .1_J ___ 1._.1.
I~
~
.~
"iii!
@
a2J
~
~I
tA---r-:P
TO PHONE JACK
290180-19
~
.~
@
~
PC
~
I/o
....,.
CHANNEL
"III
l
13
~2
"II
US·
...CD
c
91
m
v
...::::ICD
....
CD
t.
N
:;;:
I-
~
L-I-_-II HRDY
I ,I
~IClK
82!,",n
.uv
_
I·
~IRESETI8
I
I~
~
:::-
~
~
~
I'" I'" I'" e:
0
0
!:; ..
...
+5v~11111
-
uo
I'15:5
" I~
~ ~
-
~
"tI
CD
I'~"
I~
a.
I»
l>
I~
I~
I
T
ADDRESS
-I DECODER I
I~
I
:~:~I
G~
\8
~
181~1~
......
0
~
C»
C»
II.)
(")
-
~ ClK
L-__~"I RESET
fi
~
l'i
I~
DATA (DO - 7)
~
MOE
CSL
cs
.
I
CSH
MAO-MA12
I
13
I
I
ox
0x
I'"
'"
'"
II.)
01
0
~
ADDRESS
WE
C»
g:
16
I~
015-00
I-
a.
1
1I
SRAM
I\)
82592
0
C»
8
o
~~TA(D8-15)
1 1·1 -::::1--+1
4
I»
::::I
01
ROM
II
00
~
II.)
01
CD
~N
~
I ;::::J~~TA
DO - 07
.:" CD
<»
I
I! 1
82C501
I~
\16
\
..
L...
ADDRESS
SRAM
~
~----~'I~W_E__________
l-
*
I
·wwW·
t~
__ 1
CNET XCVR
19J
~
~
©
~
IiiiiI
~
"
"iiil
@
aeJ
~
RG-58 COAX
~
BNC
T - CONNECTOR
C:lJ
290180-20
c:::o
@
~
intJ
82560
*Notice: Stresses above those listed under '~bso
lute Maximum Ratings" may cause permanent damage to the device. This is a stress rating only and
functional operation of the device at these or any
other conditions above those indicated in the operational sections of this specification is not implied. Exposure to absolute maximum rating conditions for
extended periods may affect device reliability.
ABSOLUTE MAXIMUM RATINGS*
Case Temperature (TC)
under Bias ...................... O·C to + 85·C
Storage Temperature .......... - 65·C to + 150·C
Voltage on any Pin with
Respect to Ground ....... -0.5V to Vee + 0.5V
NOTICE· Specifications contained within the
following tables are subject to change.
D.C. CHARACTERISTICS TC = O·Cto + 85·C. Vee = +5V ±10%
ClK pin has MaS levels (see VMIL. VMIH) All other signals have TTL levels (see VIL. VIH. VOL. VOH).
Symbol
Min
Max
Units
Input low Voltage (TTl)
-0.5
+0.8
V
VIH
Input High Voltage (TTL)
2.0
Vee + 0.5
V
VOL
Output low Voltage (TTL)
0.45
V
IOL
VOH
Output High Voltage (TTL)
2.4
Vee
V
IOH
VMIL
Input low Voltage (MaS)
-0.5
0.6
V
VMIH
Input High Voltage (MaS)
III
Input leakage Current
±10
p.A
ILO
1/0 leakage Current
+10
p.A
CIN
Capacitance of Input Buffer
10
pF
COUT
Capacitance of Input/Output Buffer
20
pF
== Vee -0.45
0.45 == VOUT = Vee -0.45
FC = t MHz
FC = 1 MHz
lec
Power Supply Current
50
mA
10MHz
VIL
Parameter
Vee - 0.6 Vee + 0.5
Test Conditions
= 3.2mA
= -400 p.A
V
o=
VIN
A.C. CHARACTERISTICS CL on all outputs is 50 pF. The user should add 0.2 ns/pF up to 100 pF
Symbol
Parameter
Min
Max
Test Conditions
SYSTEM CLOCK INPUT PARAMETERS
100
(Note 1)
ClKlowTime
45
(Note 1)
ClK High Time
45
(Note 1)
T1
ClK Cycle Period
T2
T3
T4
ClK Rise Time
5
. (Note 2)
T5
ClKFaliTime
5.
(Note 3)
HOST ACCESS CYCLE-NON PIPELINE MODE PARAMETERS
T6
HF or DREQ Setup Time
T7
HF Active Time (low)
T8
HF Inactive Time (High)
T9
HF to HRDY Low
T10
HF Active to HDRY High
T11
HRDY High to HF Inactive
10
(Note 5)
2*T1 + 10
T1 +10
50
2*T1 +50
0
1-77
(Note 4)
(Note 9)
(Note 5)
82560
A.C. CHARACTERISTICS
CL on all outputs is 50 pF. The user should add 0.2 ns/pF up to 100 pF (Continued)
Symbol
Parameter
Min
Max
Test Conditions
HOST ACCESS CYCLE-NON PIPELINE MODE PARAMETERS (Continued)
T12
HF Inactive to HRDY Float
T13
HF Active to XCVR Lines Low
T1 +T2
T14
HF Inactive to XCVR Lines High
(Note 7)
T15
HF Active to RD Low
T16
RD Hold after HF Inactive
T17
HF Active to Input Add. Valid
T18
Address Hold after HF Inactive
T19
HF Active to 82560 Data Valid
T20
Data Hold after HF Inactive
T21
HF Active to 82560 Add Valid (MAn).
T22
Add Valid or Chip Select Active Time
T23
H F Active to CS Active
T24
CS Enveloping Controls
T25
Control Active Time
T26
HF to Data Valid
T27
Data Hold after HRDY High
75
2*T1 +T2+75
(Note 6)
75
T1 +T2+ 10
0
-20
(Note 8)
0
3*T1 +80
(Note 9)
2*T1 +T2+75
(Note 9)
T1+T2
2*T1
(Note 10)
2*"1 +T2+50
(Note 9)"
20
(Note 11)
(Note 11)
3*T1-30
(Note 12)
HOST ACCESS CYCLE-PIPELINE MODE PARAMETERS
T28
HF Active Time·
T29
HF Active to Port CS Active
T1 +10
(Note 13)
(Note 9)
2*T1 +75
(Note 6)
T30
HF Inactive to HRDY Low
75
T31
HRDY Low to HRDY High
(Note 14)
T32
Port CS Active Time
T33
HF Inactive to Buffer Write
T34
Write Active Time
2*T1
(Note 14)
10
T1-10
T1 +10
DMA PARAMETERS
T35
DRQn High or INTR to Clock
Low Setup Time
T36
DRQn Low to Clock Low, Hold Time
10
T37
EOP Pulse Width
T·1
D~lay
(Note 15)
50
T38
Address
T39
CS, CSn, DAKn Delay Time
T40
CSn Delay Time (Slave to SRAM Flyby)
50
T41
IORD_MWR, IOWR Delay Time
45
T42
IORD_MWR, IOWR Active Time
Time
T2+75
T2+50
(Note 16)
1-78
(Note 16)
inter
82560
A.C. CHARACTERISTICS
CL on all outputs is 50 pF. The user should add 0.2 ns/pF up to 100 pF (Continued)
Symbol
I
Parameter
I
Min
I
Max
I
I
I
75
I
I
Test Conditions
INTERRUPT PARAMETERS
T43
T44
I
I
Interrupt Delay Time
Interrupt Gap
I
I
3*T1-10
RESET PARAMETERS
T45
T46
I
I
Reset Setup Time
Reset Active Time (High)
I
I
50
4*T1
I
I
I
I
'For pin HRDY 4 mAo
NOTES:
1. Measured at Vcc/2.
2. 3.2V to 1.8V.
3. 1.8V to 3.2V.
4. The following configuration affect the HRDY output going active (high).
Legend:
TID-The configuration of HRDY delay (master mode register, TID = 0,.5,1.5,2.5).
TIO-The configuration of 1/0 access delay (Control register,
TIO = 0,1,2,3 ).
TMEM-The configuration of MEM access delay (Control register, TMEM = 0,1,2,3).
"If bit 5 of Register at Address 1BH then (TID + 2)'T1 + 75
else [TID+TIO(or TMEM)+2)'T1 +75"
5. The user should not that the XCVR lines goes inactive immediately after HF inactivation.
6. Provided that the HOST wins arbitration.
7. In the case of HOST write cycle the XCVR lines will go high at the end of the 82560 cycle even if HF lines are still active.
In the case of HOST read cycles, the 82560 will terminate the local cycle after HF lines are inactivated.
8. Address lines are latched at the end of T1 of 82560 HOST bus cycles.
9. The maximum time specified assumes that the HOST wins the arbitration. If the HOST loses the arbitration to a DMA
request two possible scenerios are:
a) Arbitration lost to a single DMA cycle. In this case [(greater of TIO and TMEM) + 2)'T1 should be added to the
max. time.
b) Arbitration lost to a DMA cycle which is followed by four locked OMA cycles. In this case [(greater of TIO and
TMEM)'5 + 10)'T1 should be added to the max. time. This might happen in the rare case when the HOST request
coincides with the last receive or transmit transfer, in the TCI mode.
10. [TIO(or TMEM)+2)'T1+ 10. .
In the case of long (HF) HOST memory read requests, it would be extended until the request is removed.
11. Min = [TIO(or TMEM)+ 1)"T1-10, Max = [TIO(or TMEM) + 1)'T1+ 10.
12. This parameter depends on T10. In terms of machine states, data remains valid until the end of the cycle (end of state
T2).
13. (TMEM + 2)'T1+75+ Tsystem.
Tsystem = delay from HROY to HF inactive.
This maximum time refers to a second memory request immediately following a first one, assuming that the first one
was not delayed by a OMA cycle.
14. [TIO(or TMEM) + 2)"T1 + 75.
15. This is an asynchronous signal (OROn only in its leading edge). It is internally synchronized. Meeting this parameter,
assures recognition on the next clock.
16. Min = [(greater of TIO and TMEM) + 1)'T1 + T2 + 10
Max = [(greater of TIO and TMEM)+ 1)"T1 +T2+ 10
1-79
82560
A.C. TESTING INPUT & OUTPUT WAVEFORM
2.4
0.45
=x:
1.5 -TEST POINTS -
1.5
SYSTEM CLOCK TIMING
x=
vee- 0.6
0.6
290180-21
A.C. Testing Inputs are Driven at 2.4V for a Logic "1"
and 0.45V for a Logic "0". Timing Measurements are
made at 1.5V for both a Logic" 1" and "0".
I---n--'-'-......
·' '
290180-22
WAVEFORMS
HOST READ CYCLE-NON PIPELINE MODE
eLK
-...
T.
To
n
~~~
-T6 I-
I--n ......
T7
---
T9HRDY
n3-
Tw
T2
TI
TI
~~ ~
H
I-oT3.
T8-
H,
--- r-- n1
,..I- ~12
no
f.1--T14
H
I
1
~~17j~
1-
AO-A12, BMn
Data Valid
i
-0
15-1
T16
I
1+
T181
VALID,
I
HOST READ FROM 82560
T---t1
I
I
I
I+r-T20-
H
'
HOST READ FROM I/O or SRAM
I
+-T21
y2
MAO-12,eSn
--T23
A2
-
f-T24
T24
r---T25-
T2j f-
r---
-T24
.....
T42- I--
I
290180-23
1·80
inter
82560
WAVEFORMS (Continued)
HOST WRITE CYCLE-NON PIPELINE MODE
ClK
~
~
Ta
T1
~ -~
-T6IT1T7
~
T2
-,..
T10
HRDY
T8-
-1
"-
~ T11
I- ~12
~+-T14
I-
T13 ....
TI
I-cT3~
I-
T6-
I--
T9-
n
~ u-" ~
H
I
~1171
AD-A12, BMn
.. T181
VALID
I
X
HOST WRITE TO 82560
Data Valid
i
T2
j-1 I
~-T27-
:1
~OST WRI~E TO I/o or SRAM
I
-t--T21
y2
MAO-12
-t--T23
CSn,GCS,Cs,DACKn
A2
-
--T24
T24
-1
I-
25 290180-24
1-81
82560
WAVEFORMS (Continued)
HOST READ CYCLE-PIPELINE MODE
eLK
-.,
Ts
To
T1
~ ~~
-
T6-I+--T28
T2
Ti
n
Lr ~ ~ WT8
I
\.
I- ~301HRDY
H
II
I
\.
4T1
8Mn
-T31-
\.
I
~Tl1--1
VALID
I
I- f--T21
T22
--
I- r-T23
T22
--
I+- r-T29
T32--
MAO-12,
...
--T24
-
-T24
.. T33 ~T3y.
~"i 4-T25[:I
--T42
I
-r
4
II
290180-25
1-82
inter
82560
WAVEFORMS (Continued)
HOST WRITE CYCLE-PIPELINE MODE
-- 30~
r T32-i-rT31-1
HRDY
--~~~-,++~~
r--+---~--~
r-i 1
17
8Mn
MAO-12
XCV2/PCS
CSn
IORD/MWR
VALID
I
_+--+f4-+-~'T::;21~::JI-T22
r---------H__+-_~
_+-~f4-+-::::.!:·T2;';'9+=::rI-T32
r--------- H--+--~
~T23 r------+---~---~~~--~~I
T"j24 Y
i
T24
_~_~_-+____~--T4T2~r
I
~-----I----!
290180-26
DMA FLYBY CYCLE-SLAVE TO SRAM
Ts
To
T1
TW
T2
TI
TI
ClK
FOP -+---~---~--~--~-1l~
MAO-12
IORD/MWR
__~
-+---+--H_-I-_-+__~J~---!
--+---+--~~~~-+----r-~
290180-27
1-83
82560
WAVEFORMS (Continued)
DMA FLYBY CYCLE-SRAM TO SLAVE
Ts
T1
TW
n
T2
TI
elK
ORO" -":'--;-+--+---+--I--f-~
l'-r-....-+--i
rop -+----+----+----+----I-~+_--~
MAO-12
T39
290180-28
1-84
intJ
82560
WAVEFORMS (Continued)
INTERRUPT
ClK
INT
INTR
-01---1--..11
290180-29
RESET
CLK
RESET
11W¥Rillrn=
-+---+-...
290180-30
1·85
I.e."
I~·n+'~'r
•
'82590
ADVANCED CSMA/CD LAN CONTROLLER
WITH 8-BIT DATA PATH
Supports Industry Standard LANs
- Ethernet and Cheapernet (IEEE 802.3
'
10BASE5 and 10BASE2),
- StarLAN (IEEE 802.3 1BASES)
-IBMTM PC Networ!<-Baseband and
Broadband
•
•
Efficient Memory Use via Buffer and
' Frame Chaining
Physical and Data Link
• Integrates
Layers of OSI Model
•
- Complete CSMA/CD Medl~m Access.
Control (MAC) Functions '
- Manchester, 'Differential Manchester,
or NRZI Encoding/Decoding
- On-Chip, Logic-Based Collision
Detection
-IEEE 802.3 or HDLC Frame Delimiting
- Broadband E,thernet (IEEE 802.3
10BROAD36,.
Two Modes of Operation
- Bit Rates up to 4 Mb/s with On-Chip
Encoder/Decoder (!:Iigh-Integratlon - ,
Mode)
-Bit-Rates up to 20 Mb/s with
External Encoder/Decoder (HighSpeed Mode)
High-Performance System Interface
• -16-MHz
Clock, 2 Clocks per Transfer
- 64 Bytes of Conflgurable FIFO
DMA Interface for Retransmission and
Continuous Reception without CPU
, Intervention
- EOP Signal Generation for 8237 and
82380
- Tightly Coupled Interface to 82560
Host Interface and Memory Manager
• 82588 Pln- and Software-Compatible
Mode
Local and Remote Power-Down Modes
Deterministic Collision Resolution
24-Blt General Purpose Timer
On-Chip Jabber Inhibit Function
~etwork Management and Diagnostics
- Monitor Mode
- CR~, Aligoment,' and Short Frame
Error Detection
- Three 16-Blt Event Counters
- Short or Open Circuit Localization
- Self-Test Diagnostics
-Internal and External Loopback
Operation
-Internal Register Dump
•
•
•
•
•
•
High-Speed CHMOS III Technology
-Brr
Figure 1.82590 Block Diagram
290147-1
·IBM, PC, PCAT, PCXT are trademarks of International Business Machines,
1·86
October 1988
Order Number: 290147-1103
inter
82590
DACKO/OACK
CSo
WR
CLK
RD
vee
DACK1/CSI/EOP
INT
RESET
TCLK/CRS
07
COT
06
CTS/LPBK
05
RTS
04
TxO
07
RxO
06
N82590
ORQl
05
ORQO
04
4<4LPLCC
(TOP VIEW)
•
NC
NC
NC
RxC/x2
TxC/xl
TCLK;CRs
COT
CTS/LPBK
RTS
T.O
RxO
NC
NC
290147-2
Figure 2. 82590,Pln Configuration (DIP)
The 82590 is a second·generation, 8-bit data path
CSMAlCD controller. Its system interface enables
efficient operation with a wide variety of Intel microprocessors (such as iAPX 188, 186, 286, or 386) and
industry standard buses (such as the IBM PC I/O
channel or PersOnal System/2™ Micro ChanneI™).
The 82590 can be configured to support a wide variety of industry standard networks, including StarLAN
and EthernetlCheapernet.
290147-3
Figure 3. 82590 Pin C~nflguratlon (PLCC)
CSMAlCD LAN adapters oriented t~ the IBM PC environment. The 82590 fully conforms to existing
IEEE 802.3 standards (1 BASE5, 10BASE5,
10BASE2, and 10BROAD36). Intel also offers the
82592, a 16-bit data path version of the 82590, for,
higher performance applications.
The 82590 provides a natural upgrade path for existing 82588 applications, since it is pin and software
compatible with its predecessor. Its rich incremental
functionality compared to the 82588 can be utilized
by selectively modifying existing software drivers.
The 82590 is available in a 28-pin Plastic DIP or a
44-pin PLCC package. It is fabricated with Intel's reliable CHMOS III technology.
Together with the 82560 (Host Interface and Memory Manager) the 82590 offers a complete solution for
1-87
82590
Table 1.82590 Pin Description
Pin No.
(DIP)
Pin No.
(PLCC)
D7
D6
D5
D4
D3
D2
D1
DO
6
7
8
9
10
11
12
13
AD
Symbol
Type
Name and Function
10
11
12
13
14
18
19
20
1/0
DATA BUS-The Data Bus lines are bidirectional, three-state lines
connected to the CPU's Data Bus for transfers of data, commands,
status, and parameters.
5
9
I
READ-Together with CSO, CS1, DACKO, or DACK1, Read controls
data or status transfers out of the 82590.
WR
3
4
I
WRITE-Together with CSO, CS1, DACKO, or DAGK1, Write
controls data or command transfers into the 82590.
~
2
3
I
CHIP SELECT (PORT O)-When lOW, the 82590 is selected by
the CPU for command or status transfer through PORT o.
RESET
25
40
I
RESET-A HIGH signal on this pin causes the 82590 to terminate
current activity. This signal is internally synchronized and must be
held HIGH for at least four Clock (ClK) cycles.
When the Clock signal is provided internally (ClKSRC is strapped
HIGH), the RESET Signal must be held HIGH for at least 50 /ks.
(PLCC version only.)
INT
26
41
0
INTERRUPT-A HIGH signal on this pin notifies the CPU that the
82590 is requesting an interrupt.
DROO.
17
26
0
DMA REQUEST (CHANNEL 0)-This pin is used by the 82590 to
request DMA transfer. DROO remains HIGH as long as the 82590
requires DMA transfers. Burst transfers are thus possible.
When the 82590 is programmed for Tightly Coupled Interface, the
82590 notifies the DMA controller of the status of transmission or
reception, using this pin together with EOP.
DR01
18
27
0
DMA REQUEST (CHANNEL 1)-This pin is used by the 82590 to
request DMA transfer. DR01 remains HIGH as long as the 82590
requires DMA transfers. Burst transfers are thus possible.
When the 82590 is programmed for Tightly Coupled Interface, the
82590 notifies the DMA controller of the status of transmission or
reception, using this pin together with EOP.
1
2
I
DMA ACKNOWLEDGE (CHANNEL O)-When lOW, this input
signal from the DMA controller notifies the 82590 that the requested
DMA cycle is in progress. This signal acts Similarly to Chip Select for
data and parameter transfers, using DMA channel o.
DMA ACKNOWLEDGE (CHANNELS 0 AND 1)-When the
DACK1/CS1/EOP pin is programmed to CS1/EOP, this pin
provides a DMA acknowledge for both channels 0 and 1. Two DMA
acknowledge signals from the DMA controller, DACKO and DACK1,
must be externally ANDed in this mode of operation.
DACKO
DACK
1·88
82590
Table 1.82590 Pin De8Crlption (Continued)
Symbol
~
Pin No. Pin No.
(DIP) (PLCC) Type
27
42
This is a multifunction, bidirectional pin which can be programmed to
DACK1 or,CS1IEOP during configuration. When it is configured for EOP, it
. provides an open-drain output.
DMA ACKNOWLEDGE (CHANNEL 1)-When lOW, this input signal from
the DMA controller notifies the 82590 that the requested DMA cycle is in
progress.· This signal acts similarly to Chip Select for data and parameter
transfers, using DMA channel 1.
1/0 CHIP SELECT (PORT 1)-When lOW, the 82590 is selected by the CPU
for command or status transfer through PORT 1.
END OF PROC~A lOW output signal requests the DMA controller to
.
terminate the active OMA serVice.
4
5
CLOCK-In the 28·pin DIP, this is only an input pin. A TTl·compatible
clock input to this pin provides the timing for the 82590 parallel
subsystem.
1/0 In the 44·pin PlCC, this pin can' be a clock input or output, depending on
the state of. ClKSRC, If ClKSRC is strapped lOW, this pin is a clock input
which provides timing for the 82590 parallel subsystem. If ClKSRC is
strapped HIGH, the clock for .the 82590 parallel subsystem is generated
from the internal clock generator. The ClK pin is then a clock output and
provides a clock signal whose frequency can ~ one·half of or identical to,
the frequenCy of the Internally generated parallel subsystem clock, .
depending on the state of FREQ. Note that the maximum frequency of the
clock Signal supplied by tfieCLI( pin is 8 MHz.
CSf/EOP
ClK
Name and Function :
CLKSRC FREQI--..........___
C_L_K_ _-i
Type
Signal
Clock for the
Parallel Subsystem
o (lOW)
Don't
Care
t
Clock·
Clock as Provided on the ClK Pin
1 (HIGH)
1
o
Internal
parallel
Subsystem
Clock Divided
by Two .
Prescaled Clock Generated from
the Internal Clock Generator
o
o
Internal'
Parallel .
Su.b&!ystem
Clock.
Prescaled Clock Generated from
the Internal Clock Generator
-
,
ClKSRC
NA
.. 6
I
CLOCK SOURCE-When st~ped lOW, a clock signal on the ClK pin
provic[8$ timing for the parallel subsystem. When strapped HIGH, timing
for the parallel subsystem js internally generated from the clock generator
provided in t~e serial subsystElI!'. The internal prescaler is programmed
during col1figura,ion to deter~ine tpe frequency of the clock for the
parallel subsystem..
" .
FREQ
NA
7
I
FREQUENCY-:-When str~pped lOW, CL.K has an output frequency equal
to that of the internal parallel subsystem clock. When strapped HIGH, ClK
has an output frequency one·half that of the internal parallel subsystem
clock. The state of this pin is relevant only when ClKSRC is strapped
HIGH.
1·89
82590
Table 1. '82590 Pin Description (Continued)
.,
Pin No. PlnNo,
Type:
(DIP) (PLeC)
Symbol
I
15/16 ' 24/25
X1/X2
;=xc
15
24
I
RXC
16
25
I'
24
36
I
,
'i'CCJ<1
5
I
GP
4
r/c
I
o
2
3
EVENT
STATUS 0
TlfolER/COUNTER STATUS
STATUS 1
TIMER/COUNTER CONFIGURATION
STATUS 2
PORT 1 COMMAND
STATUS
I
TIMER/COUNTER
CONFlG\JRATION
STATUS 3
290147-9
Timer/Counter Events
(T/C = 1)
Timer Expired
BitO
Counter 1 Expired
Bit 1
Counter 2 Expired
Bit2
Counter 3 Expired
Bit3
REM-PWR-UP
1-95
=1
=1
=1
=1
General Purpose Event
Value"
(GP = 1)
(Status 0)
"The 82590 may have more than one EVENT bit set by the time the CPU reads the status register.
Figure 8. Port 1 Status Registers
Value"
(Status 0)
9
inter·
. 82590
290147-10
Figure 9. 82590/Host CPU Interaction
Table 2. Data Bus Control Signals and ·Functions
Pin Name
CSO
CS1*
RD
WR
1
X
0
1
X
1
Function
No Transfer To/From
Command/Status
0
0
0
Illegal
0
0
1
Read from Status
Register
0
1
0
Write to Command
Register
DACKO
DACK1*
RD
WR
1
X
X
0
1
1
To initiate an operation such as Transmit or Config·
ure (see Figure 5), the command from the CPU must
first be written to the 82590. Any parameters or data
associated with the command are transferred from
memory to the 82590 using DMA. Upon completion
of the operation, the 82590 updates the appropriate
status registers and sends an interrupt to the CPU.
FRAME TRANSMISSION
To transmit a frame, the CPU prepares a Transmit
Data Block in memory as shown in Figure 10. Its first
two bytes specify the length of the rest of the block.
The next few bytes (up to six) contain the destination
address of the station the frame is being sent to.
The rest of the block is the data field. The CPU pro·
grams the DMA controller with the start address of
the block, length of the block, and other control information and then issues a Transmit command to
the 82590. Upon receiving this command, the 82590
fetches the first two bytes of the block to determine
its length. If the link is free and the first data byte
was fetched, the 82590 begins transmitting the preamble' and concurrently fetches more bytes from the
Transmit Data Block and loads them into the transmit FIFO to keep them ready for transmission.
. No DMA Transfer
0
0
0
Illegal
0
0
1
Data Read from DMA
Channel 0 (or 1)
0
1
0
Data Write to DMA
Channel 0 (or 1)
'Only one of CSO, CS1, DACKO, or DACK1 may be active
at any time.
1-96
82590
PREAMBLE
sm (BOF
BLOCK BYTE COUNT
FLAG)
DESTINATION ADDRESS
DESTINATION ADDRESS
DATA FIELD
SOURCE ADDRESS
CPU GENERATED
DATA STRUCTURE IN MEMORY
(TRANSMIT DATA BLOCK)
LENGTH FIELD
[
}
GENERATED BY 82590
FROM 82590
~ INDIVIDUAL
ADDRESS
INFORMATION FIELD
PADDING (OPTIONAL)
FRAME CHECK SEQUENCE
EOF FLAG (OPTIONAL)
PADDING (OPTIONAL)
GENERATED BY 82590
1
290147-11
Figure 10. The 82590 Frame Structure and Location of Data Element in System Memory
Tightly Coupled Interface, retransmission is performed without CPU intervention.
The destination address is transmitted after the preamble. This is followed by the source or the station
individual address, which was previously stored in
the 82590 by the lA-Setup command. After this, the
entire information field is transmitted, followed by a
CRC field calculated by the 82590. If a collision is
encountered during transmission of the frame, then
the transmission is aborted after a jam pattern is
sent. If the collision is detected during preamble or
SFD (Start Frame Delimiter) transmission, the 82590
transmits the jam pattern after the SFD is transmitted. An interrupt is then generated to inform the CPU
of the unsuccessful transmission due to a collision.
The CPU reinitializes the DMA controller and issues
a Retransmit command to the 82590. Retransmission is done by the CPU exactly as the Transmit
command is done, except the Retransmit command
keeps track of the number of collisions encountered.
When the 82590 gets the Retransmit command and
the backoff timer is expired, it transmits the frame
again. Retransmission is repeated until the attempt
is successful, or until the preprogrammed retry number expires.
FRAME RECEPTION
The 82590 can receive frames when its receiver has
been enabled. The 82590 checks for an address
match for an Individual address, a Multicast address,
or a Broadcast address. In the Promiscuous mode
the 82590 receives all frames. When the address
match is successful, the 82590 transfers the frame
to memory using the DMA controller. Before enabling the receiver, it is the CPU's responsibility to
make a memory buffer area available to the receiver
and to properly program the starting address of the
DMA controller. The received frame is· transferred to
the memory buffer in the format shown in Figure 11.
This method of reception is called Single Buffer reception; the entire frame is contained in one continuous buffer. Upon completion of reception, the status
of the· reception is appended at the end of the received frame in the memory buffer, and the total
number of bytes transferred to the memory buffer is
loaded into the internal status registers 1 and 2. An
interrupt is then generated to inform the CPU of the
frame reception.
If the 82590 is programmed to generate the EOP
signal to the 8237 or 82380 DMA controller, or if it is
used with a DMA controller which implements the
1-97
82590
BLOCK
LENGTH
BLOCK LENGTH
BL
DESTINATION
ADDRESS
DESTINATION
ADDRESS
SOURCE
ADDRESS
INFORMATION
I""U
DATA BLOCK IN MEMORY FOR
TRANSMISSION
INFORMATION
FRAME STATUS
SINGLE BUFFER RECEPTION
290147-12
Figure 11. Single Buffer Reception
If the frame size is unknown, memory usage can be
optimized by using Multiple Buffer reception. In this
mode of operation, the CPU and DMA Controller can
dynamically allocate memory space as it receives
frames. This method requires both DMA channels to
receive the frame alternately. As frame reception begins, the 82590 interrupts the CPU and automatically
requests assignment of the next available buffer.
The CPU does this and loads the second DMA
channel with the next buffers information so the
82590 can immediately switch to the other channel
when the current buffer is full. When the 82590
switches from the first to the second buffer it again
interrupts the CPU and requests another buffer to be
allocated on the previous channel: This process
continues until the entire frame is received. The received frame is spread over multiple memory buffers. The link between the buffers is easily maintained by the CPU, using a buffer chain descriptor
structure in memory as shown in Figure 12. This dynamic allocation of memory buffers results in efficient use of available storage when handling frames
of widely differing sizes.
more advanced data structures for the buffer area
can significantly improve system performance.
EOP SIGNAL TO THE DMA
CONTROLLER
The 82590 can be programmed to assert the EOP
signal to the 8237 or 82380 DMA controller when
one or more of the following occurs:
• A collision during transmission
• An error (CRC or alignment) during reception
• A good frame reception
If the 8237 or 82380 is programmed for Auto-initialize mode and if the 82590 is programmed to assert
the EOP signal on a collision during transmission,
the retransmission following a collision is done automatically by the 8237 and the 82590. The 8237 will
reinitialize itself automatically and the 82590 will retransmit the same frame from the same memory
area without CPU intervention. When the 82590 is
programmed for this mode it does not interrupt the
CPU upon a collision, and the CPU does not need to
issue a Retransmit command to the 82590. The CPU
is interrupted only after a successful transmission or
retransmission, or after a transmission failure, such
as DMA underrun.
If the 82590 is programmed to generate the EOP
signal to, the 8237 or 82380 DMA controller, or if it is
used with a DMA controller which implements the
Tightly Coupled Interface, buffer reclamatior) and
1-98
inter
82590
@
BUFFER 1
@
BUFFER 2
••
•
@
BUFFER # 2
BUFFER N
••
•
BUFFER CHAIN DESCRIPTION
(MANAGED BY CPU)
t - - - - - - 1 BUFFER #N
STATUS
290147-13
Figure 12. Multiple Buffer Reception
ble 3. As long as the 82590 generates J2£1O t:!!9!1
and EOP Floating at the rising edge of RD or WR,
the DMA controller repeats DMA transfers. If the
transmission is completed without collisions or if the
reception is good (no collision, no CRC, or no Alignment error), then DRO and EOP both become Low
at the end of a DMA transfer which follows the last
DMA data transfer. If the transmission encountered
a collision or if the reception had an error, DRO becomes High and EOP becomes Low. The DMA controller must decode these signals appropriately and
must reinitialize the DMA channel so it can retransmit the same frame or reclaim the otherwise wasted
buffer. It is the DMA controller's responsibility to reo
program itself for the next appropriate operation.
If the 82590 is programmed to assert the EOP signal
when an error occurs during reception, the 8237 or
the 82380 in Auto·initialize mode will be able to reo
claim the memory area which would otherwise be
wasted for the errored frame reception. If the 82590
is programmed to assert EOP at the end of a frame
reception, automatic buffer switching can be accom·
plished by alternating the DMA channels with the
8237 or the 82380. When the 82380 is used, the
buffer switching can be done with only one DMA
channel.
The EOP signal must be derived from the DACK1 I
CS1/EOP pin using external logic (see Figure 13).
82590/82560 TIGHTLY COUPLED
INTERFACE
The 82560 fully implements the Tightly Coupled Interface and provides very high-performance DMA
services for the 82590 with minimal CPU involve·
ment.
The 82590 has a mode of operation called "Tightly
Coupled Interface.". In this mode the 82590 provides
a tightly coupled interface to a DMA controller in or·
der to execute some of the time,critical processes of
the CSMAlCD protocol without any CPU interven·
tion. By using the 82590's companion chip, the
82560, or by implementing the Tightly Coupled Inter·
face in a DMA controller, operations such as auto·
matic . retransmission; . continuous back·to-back
frame reception,andtransmit andlor receive buffer
chaining can be accomplished.
NETWORK MANAGEMENT AND
DIAGNOSTICS
The 82590 provides a large set of diagnostic and
network management functions.including: internal
and external loopback, monitor mode, optional capture of all frames regardless of destination address
(Promiscuous mode), and time domain reflectometry
for locating fault points in the network cable. The
82590 Dump command ensures software reliabili.ty
by dumping the contents of the 82590 internal registers into the system memory.
The 82590 provides the status of the current active
transmission or reception to the DMA controller by
using the DRO and EOP signals at the end of every
DMA cycle. The status is encoded according to Ta-
1-99
inter
82.590
5V .
EOP
82590
CS1
DACK1/CS1/EOP
DACKO
DACK1
DACKO
DRQO
DRQO
DRQ1
DRQ1
Ri5
Ri5
WR
ViR
CSO
CSO
·290147-14
Figure 13. Demultiplexlng DACK/CS1/EOP Pin
Table 3 Transmit/Receive Status Encoding on DRQ and EOP
DRQ
EOP
0
Hi-Z
Status Information
..
Idle
1
Hi-Z
0
0
Transmission or Reception Terminated OK
1
0
Transmission or Reception Aborted
DMA Transfer
OTHER ENHANCEMENTS
Compared to the 82588 the 82590 has a number of
functional and performance enhancements. This
section lists some of these enhancements which are
not covered in other sections.
@
82590
CRC Transfer to Memory-The 82590 can
be programmed to transfer the CRC field of a
received frame into memory.
Loopback Signal to the 82C501-The 82590
can be programmed to provide an active High
loopback signal to the 82C501 (see Figure 14).
StarLAN-The 82590 can be configured to
recognize the IEEE 802.3 1BASE5 Collision
Presence Signal (CPS). In this mode it also delays deactivation of the RTS signal at the end
of a frame transmission in order to insert an
end-of-frame marker according to the standard.
If the desired network requires determinism, the
82590's Deterministic Collision Resolution (OCR)
method can be used.
Figure 15 shows a block diagram of an
82590/82560 High Integration adapter board. The
82560 provides the following functions: DMA for the
82590 with Tightly Coupled Interface and dual-port
memory control for the static RAM. The 82590 is
configured to High-Integration mode to minimize the
serial interface logic.
82590
APPLICATIONS
82C501
74HCT04
The 82590 can be used in a variety of applications.
When it is used in High-Integration Mode, it implements most of the Data Link and Physical Layer
functions required by the IEEE 802.3 1BASE5 (StarLAN) and the IBM PC Network-Baseband and
Broadband. When it is used in High-Speed Mode, it
can work with the 82C501 and a standard transceiver for IEEE 802.3 10BASE5 (Ethernet) and
10BASE2 (Cheapernet) implementations.
1-101
3
CTS/LPBK
I,PBK
!> 10k.Q
-
L..
290147-15
Figure 14. Loopback Output to tile 82C501
-
l
1/'
t
~
r---+I TRANSCEIVER~
13
1
~
c
;
... 1
!"
CD
0SCIlLATOR I
10 IAHz 1
ClK
~
en
CD
0
RESET
......
I\)
I'"~
Ig;
...
:,
...:
82560
I~
I'"
~
Q
~
::::-
.1
..
~~I
-
~
::IE
I\)
en
CD
0
+5V
::E:
ii!i
ADDRESS
k----I~---1DATA
GCS
ROM
~ OE
a.;;.;;...._ _ _ _ _ _...J
1----------....---'
\ 8
00-07
\ 8
DATA (00-07)
OE
IAOE
cs
~O
I'" I~ ~ ~ ~ I~ I~ t.IAQ-t.lAl2
I ~QUO~QQQQ
CD
.
\2
_---I_L-..lNt--I~Q-I.zo;....--.....
'-+-_---1 HRDY
~:;;:
'"
~
XCVI
I\)
....0
~
I
\13
SRAM
ADDRESS
WE
8
(II)
' -_ _ _ _ _ _ _---1
C)
S'
III
I II
'-
=::!:
0
:::I
-...
Q,
::>
1 ~IOI"'1-50FF
8~~~~~~'"
...1\1
CO
1\1
en
CD
T
»
N
L-
f-i
ClK
i....tI
RESET
Q
I U~
'I~
m
~
Q
(,)
0
~
82590
8
07 - DO ...--....l,~---
......
'tJ
I II
I
Q
x
Q
X
I'"
I-
'"
'"
l-
! f J.
"@J
a:eJ
IiiiiJ
Front-end Interface
R
~
• .1.J •• _L.l.
I~
~,
'f'""')
l"!'l'
,~
F
~
t.T-,---r-T·
TO PHONE JACK
290147-16
~
~
~
~
intJ
82592
ADVANCEDCSMA/CD LAN CONTROLLER
WITH 16·BIT DATA PATH
Efficient Memory Use via Buffer and
Industry Standard LANs
• -Supports
• Frame
Chaining
Ethernet and Cheapernet (IEEE 802.3
10BASE5 and 10BASE2)
DMA Interface for Retransmission and
•
- Broadband Ethernet (IEEE 802.3
Contlnuoul5 Reception Without CPU
10BROAD36)
•
•
•
- StarLAN (IEEE 802.3 1BASE5)
-IBM* PC Network-Baseband and
Broadband
Integrates Physical and Data Link
Layers of OSI Model
- Complete CSMA/CD Medium Access
Control (MAC) Functions
- Manchester, Differential Manchester,
or NRZI Encoding/Decoding
- On-Chip, Logic-Based Collision
Detection
-IEEE 802.3 or HDLC Frame Delimiting
Two Modes of Operation
- Bit Rates Up to 4 Mb/s with On-Chip
Encoder/Decoder (High-Integration
Mode)
- Bit Ra~es Up to 20 Mb/s with
External Encoder/Decoder
(High-Speed Mode)
High-Performance System Interface
- 16-MHz Clock, 2 Clocks per Transfer
- 64 Bytes of Configurable FIFO
8-or1 -
•
•
•
•
Intervention
- EOP Signal Generation for 8237 and
82380
- Tightly Coupled Interface to 82560
Host Interface and Memory Manager
Supports 8- or 16-Blt DMA Transfers
Local and Remote Power-Down Modes
Deterministic Collision Resolution
24-Bit General Purpose Timer
On-Chip Jabber Inhibit Function
ill Network Management and Diagnostics
- Monitor Mode
- CRC, Alignment, and Short Frame
Error Detection
- Three 16-Blt Event Counters
- Short or Open Circuit Localization
- Self-Test Diagnostics
- Internal and External Loopback
Operation
-Internal Register Dump
High-Speed CHMOS III Technology
•
•
BUS
FIfO
Subsystem
290146-1
Figure 1.82592 Block Diagram
'IBM is a trademark of International Business Machines Corporation.
1-103
October 1988
Order Number: 290146-003
inter
82592
07
06
05
04
03
02
FREQ
01
WR
DO
CSO
•
012
013
014
011
¥SS
OACKO!OACK
¥SS
¥SS
TxC/Xl
010
015
¥CC
09
08
44L PLCC
¥CC
07
(TOP VIEW)
¥ce
OACK1/CSIjEOP
06
05
TxO
ORao
INT
04
R~O
ORal
RESET
03
NC
RxC/X2
N82592
TCLK/CRS
COT
CTS/LPBK
RTS
012
013
014
015
290146-3
TC~K/CRS
Figure 3. 82592 Pin Configuration (PLCC)
290146-2
Figure 2. 82592 Pin Configuration (DIP)
The 82592 is a second-generation, 16-bit data path
CSMA/CD controller. Its system interface enables
efficient operation with a wide variety of Intel microprocessors (e.g., 80186, 80286, or 80386) and industry standard buses (such as the IBM PC I/O
channel or Personal System/2 Micro Channel). The
82592 can be configured to support a wide variety of
industry standard networks, including StarLAN, IBM
PC Network, and EthernetiCheapernet.
The 82592 is ideal for integrated LAN on motherboard solutions. The 82592 architecture offers low
cost, high performance and minimal real estate requirements. The 82592's Tightly Coupled Interface
mode allows it to use host DMA without local buffering. An integrated 82592 Ethernet motherboard LAN
will occupy less than. five percent of the total motherboard area. The CHMOS 82592 can be used in
low power or no-fan systems such as diskless workstations and laptop PCs. The 82592 provides two
power-down modes for these environments.
Together with the 82560 (Host Interface and Memory Manager) the 82592 offers a complete solution for
CSMA/CD LAN adapters oriented to the IBM PC environment. The 82592 fully conforms to existing
IEEE 802.3 standards (1 BASE5, 10BASE5,
10BASE2, and 10BROAD36). Intel also offers the
82590 an 8-bit data path version of the 82592. The
82590' is pin and software compatible with the
82588.
The 82592 is available in a 40-pin Plastic DIP or a
44-pin PLCC package. It is fabricated with Intel's reliable CHMOS III technology.
1-104
82592
Table 1. Pin Description
Pin No.
(DIP)
Pin No.
(PLCC)
015
014
013
012
011
010
09
08
07
06
05
04
03
02
01
00
22
23
24
25
37
38
39
40
1
2
3
4
5
6
7
8
36
37
38
39
9
10
11
12
13
14
15
16
17
18
19
20
1/0
DATA BUS: The Oata Bus lines are bidirectional, three-state lines
connected to the CPU's Oata Bus for transfers of data, commands,
status, and parameters.
RO
36
8
I
READ: Together with CSO, CS1, OACKO, or OACK1, Read controls
data or status transfers out of the 82592.
WR
34
4
I
WRITE: Together with CSO, CS1, OACKO, or OACK1, Write controls
data or command transfers into the 82592.
CSO
33
3
I
CHIP SELECT (PORT 0): When lOW, the 82592 is selected by the
CPU for command or status transfer through PORT O.
RESET
26
40
I
RESET: A HIGH signal on this pin causes the 82592 to terminate
current activity. This signal is internally synchronized and must be held
HIGH for at least four Clock (ClK) cycles.
When the Clock signal is provided internally (ClKSRC is strapped
HIGH), the RESET signal must be held HIGH for at least 50 /Ls. (PlCC
version only.)
INT
27
41
0
INTERRUPT: A HIGH signal on this pin notifies the CPU that the
82592 is requesting an interrupt.
OROO
14
27
0
DMA REQUEST (CHANNEL 0): This pin is used by the 82592 to
request OMA transfer. DROO remains HIGH as long as the 82592
requires OMA transfers. Burst transfers are thus possible.
When the 82592 is programmed for Tightly Coupled OMA Interface,
the 82592 notifies the OMA controller of the status of transmission or
reception, using this pin together with EOP.
OR01
15
28
0
DMA REQUEST (CHANNEL 1): This pin is used by the 82592 to
request DMA transfer. OR01 remains HIGH as long as the 82592
requires OMA transfers. Burst transfers are thus possible.
When the 82592 is programmed for Tightly Coupled OMA Interface,
the 82592 notifies the OMA controller of the status of transmission or
reception, using this pin together with EOP.
Symbol
Type
Name and Function
1-105
~OO~n..D!iVAlDOO~OOW
82592
oi'
'
Table 1. Pin Description (Continued)
Symbol
Pin No. Pin No.
Type
(DIP) (PLCC)
Name and Function
DACKOI
DACK
32
2
I
DMA ACKNOWLEDGE (CHANNEL 0): When lOW, this input signal
from the DMA controller notifies the 82592 that the requested DMA cycle
is in progress: This. signal acts similarly to Chip Select for data and
parameter transfers, using DMA channel O.
DMA ACKNOWLEDGE (CHANNELS 0 AND 1): When the DACK1 ICS1 I
EOP pin is programmed to CS1/EOP, this pin provides a DMA
.
acknowledge for both channels 0 and 1. Two DMA acknoWledge signals
from the DMA controller, DACKO and DACK1, must be externally ANDed
in this mode of operation.
DACK1
CS1/EOP
28
42
I
This is a multifunction, bidirectional pin which can be programmed to
DACK1 or CS1 IEOP during configuration. When it is configured for EOP,
it provides an open-drain output.
DMA ACKNOWLEDGE (CHANNEL 1): When lOW, this input signal
from the DMA controller notifies the 82592 that the requested DMA cycle
is in progress. This signal acts similarly to Chip Select for data and
parameter transfers, using DMA
channel 1.
CHIP SELECT (PORT 1): When lOW, the 82592 is selected by the CPU
for command or status transfer through PORT 1.
END OF PROCESS: A lOW output signal requests the DMA controller to
terminate the active DMA service.
1/0
ClK
35
5
I
1/0
CLOCK:1n the 40-pin DIP, this is only an input pin. A TTL-compatible
clock input to this pin provides the timing for the 82592 parallel.
subsystem.
In the 44-pin PlCC, this pin can be a clock input or output, depending on
the state of ClKSRC. If ClKSRC is strapped lOW, this pin is a clock
input which provides timing for the 82592 parallel subsystem. If ClKSRC
is strapped HIGH, the clock for the 82592 parallel subsystem is
generated from the internal clock generator. The ClK pin is then a clock
output and provides a clock signal whose frequency can be one-half of,
or identical to, the frequency of the internally generated parallel
subsystem clock, depending on the state of FREQ.
Note that the maximum frequency of the clock signal supplied by the
ClK pin is 8 MHz.
CLKSRC
o (lOW)
ClKSRC
NA
6
I
CLK
FREQ
Don't
. Care
Type
Signal
I
Clock
1 (HIGH)
1
0
. Internal Parallel
Subsystem
Clock Divided
by Two
1
0
0
Internal Parallel
Subsystem
Clock
Clock for the
Parallel Subsystem
Clock as provided on
the ClK pin.
Prescaled clock
generated from the
internal clock
generator.
Prescaled clock
generated from the
internal clock generator
CLOCK SOURCE: When strapped lOW, a clock signal on the ClK pin
provides timing for the parallel subsystem. When strapped HIGH, timing
for the parallel subsystem is internally generated from the clock
generator provided in the serial subsystem. The internal prescaler is
programmed during configuration to determine the frequency of the
clock for the parallel subsystem.
1-106
82592
The 82592 consists of a parallel subsystem, a serial
subsystem, and a FIFO subsystem (see Figure 1).
The 82592's CSMA/CD unit is highly flexible in implementing the CSMAlCD protocol. It can operate in
a variety of IEEE 802.3 and other CSMAlCD LAN
environments,
including
1BASE5
(StarLAN),
10BASE5 (Ethernet), 10BASE2 (Cheapernet), and
the IBM PC Network (Baseband and Broadband).
The programmable parameters include:
PARALLEL SUBSYSTEM
• Framing (IEEE 802.3 Framing or HDLC Framing)
• Address Field Length
.
FUNCTIONAL DESCRIPTION
Internal Architecture
• Station Priority
The parallel subsystem consists of a bus interface
unit (BIU), command and status registers, a 24-bit
general purpose timer, and three 16-bit event counters.
The BIU provides an 8- andlor 16-bit interface to the
external system bus. It handles all data transfers to
and from memory (at speeds up to 16 Mbytes/sec.),
accepts commands from the CPU, and provides
status to the CPU. There are two separate 8-bit 1/0
ports, Port 0 and Port 1; and two separate 8- or 16bit DMA channels, Channel 0 and Channel 1. The 8bit 1/0 ports are interfaced to the CPU via the data
lines Do-D7. The DMA channels can I:)e configured
for an 8- or 16-bit data path during initialization, and
are typically interfaced to an external DMA controller. When the 82592 is reset by hardware or software, the DMA channels are initialized for an 8-bit
data path. The CPU can then configure the 82592
for a 16-bit data path if desired. Once the DMA
channels are configured for a 16-bit data path all
subsequent DMA transfers are performed on the
data lines Do-D15. The two DMA channels are independent and can be used for high-performance operations such as simultaneous transmission and reception.
The 24-bit timer consists of a 24-bit maximum count
register, a 24-bit count register, and associated control bits in the command registers. Its clock source
can be the transmit clock or the parallel subsystem
clock. The timer can be programmed to halt or continue on a terminal count with or without causing an
interrupt.
The three 16-bit event counters can be programmed
to count valid frames, collided frames, and errored
(CRC or Alignment) frames. When these event
counters are used in Monitor mode, the 82592 is
capable of maintaining the network statistics by itself; i.e., without requesting DMA services or causing
interrupts to the CPU.
SERIAL SUBSYSTEM
The serial subsystem consists of a CSMAlCD unit, a
data encoder and decoder, collision detect and carrier sense logic, and a clock generator.
• Interframe Spacing
• Slot Time
• CRC-32 or CRC-16
Th~ C~MAlCD unit also has a mode of operation
which Implements deterministic collision resolution
(DCR). The DCR algorithm is fully compatible with
the MULTIBUSTM II Serial System Bus (SSB) specifications.
The encoder and decoder in the serial subsystem is
capable of NRZI, Manchester, and Differential Manchester encoding and decoding at bit rates up to 4
Mb/s in High-Integration Mode, and Manchester encoding at bit rates up to 20 Mb/s in High-Speed
Mo~e. A digital phase-lock loop is used in High-Integratl?n MOde to decode the receive data and to generate the synchronous receive clock.
The collision detect and carrier sense logic generate
the internal collision detect and carrier sense signals
for the CSMAlCD unit.
The 82592 implements several different internal,
logic-based collision detect mechanisms. Two of
these, Code V,iolation and Bit Comparison, are also
implemented in the 82588 (8-bit NMOS High Integration LAN Controller), and have been used in a variety of applications. The Code Violation method defines a collision where a transition edge occurs outside the area of normal transitions (as specified by
the data encoding method). For example, if there are
no mid-bit cell transitions in the Manchester encoded data, this method interprets that condition as a
collision. The Bit Comparison method compares the
signature of the transmitted frame to the signature of
the received frame. If the signatures are different, a
collision is assumed to have occurred. Two other
internal collision detect methods are Source Address Comparison and StarLAN CPS (Collision Presence Signal) Recognition. The Source Address
Comparison compares the source address field of
the transmitted frame to the source address field of
the receiVed frame. If the source addresses are different, it assumes that a collision has occurred resulting in data corruption in the source address field.
The StarLAN CPS Recognition method looks for the
specific collision presence signal defined by the
1-108
82592
Table 1. Pin Description (Continued)
Pin No. Pin No.
Type
Symbol
Name and Function
(DIP) (PLCC)
FREQ
NA
7
I
FREQUENCY: When strapped LOW, CLK has an output freqency
equal to that of the parallel subsystem clock. When strapped HIGH,
CLK has an output frequency one-half that of the parallel subsyst$m
clock, The state of this pin is relevant only when CLKSRC is strapped
HIGH.
X1/X2
12/13 25/26
I
HI.GH INTEGRATION MODE OSCILLATOR INPUTS: These inputs
may be used to connect a quartz crystal which controls the internal
clock generator for the serial subsystem. When CLKSRC is strapped
HIGH, the clock generator also provides a clock for the parallel
subsystem.
X1 may also be driven by a MOS-Ievel clock whose freqency is 8,10,
16, or 18 times the bit rate of Transmit/Receive data. X2 must be left
floating if X1 is connected to an external MOS clock.
12
I
HIGH SPEED MODE TRANSMIT CLOCK: This Signal provides the
25
T~
fundamental timing for the serial subsystem. The clock is also used to
transmit data synchronously on the TxD pin. For NRZ encoding, data is
transferred to the TxD pin on the HIGH to LOW clock transition. For
Manchester encoding, the transmitted bit center is aligned with the
LOW to HIGH transition.
Axe
13
26
I
RECEIVE CLOCK: This clock is used to synchronously sample data
on the RxD pin. Only NRZ data format is supported for reception. The
state of the RxD pin is sampled on the HIGH to LOW transition.
TCLK/CRS
I
CARRIER SENSE: In High-Speed Mode this pin is Carrier Sense, CRS,
21
35
and is used to notify the 82592 that the serial link is active.
0 TRANSMIT CLOCK: In High-Integration Mode this pin is Transmit
Clock, TCLK.
COT
34
I
COLLISION DETECT: This input notifies the 82592 that a collision has
20
occurred. In High-Speed Mode a collision is sensed by this pin only
when the 82592 is configured for external Collision Detect (external
means are then required for collision detection):ln High-Integration
Mode collisions are sensed by this pin regardless of the internal or
external Collision Detect configuration of the 82592.
RECEIVE DATA: This pin receives serial data. It must be HIGH when
RxD
16
30
I
not receiving.
TxD
17
31
0 TRANSMIT DATA: This pin transmits data to the serial link. It is HIGH
when not transmitting.
RTS
18
32
0 REQUEST TO SEND: When this signal is LOW the 82592 notifies the
channel that it has data to transmit. It is forced HIGH after a reset or
when transmission is stopped.
CTS/LPBK
19
I/O CLEAR TO SEND: An active LOW signal which enables the 82592 to
33
start transmitting data. Asserting this Signal HIGH stops the
transmission.
LOOPBACK: This pin, il) conjunction with a pull-down resistor, can be
programmed to provide an active HIGH loopback signal to the external
interface device.
1
POWER: + 5V ± 10%.
29
Vee
30
43
31
44
GROUND:OV.
9
21
Vss
10
22
11
~3
1-107
82592
IEEE 802.3 1 BASE5 standard. Other abnormal circumstances, such as no carrier for more than onehalf slot time in the receive channel during transmission, are interpreted as collisions by the 82592.
while in Port 0, the port logically becomes Port 1.
Software overhead associated with port switching is
eliminated if two chip select signals are supplied in
hardware.
In addition to these internal, logic-based collision detection methods, an external means of collision detection can be used in parallel by using the CDT
input pin.
The 82592 can be configured to have 4 or 6 bytes of
status registers in Port 0 (see Figures 4 and 7).
When configured to 4 bytes of status registers the
first three status registers (STATUS 0 through 2)
contain the information about the last command executed or the last frame received. The last status
register, STATUS 3, contains the state of the 82592.
When the 82592 is configured to 6 bytes of status
registers, the two additional bytes are used to report
a more complete status of the most recently received frame.
The clock generator in the serial subsystem is available only in High-Integration Mode and provides timing for the serial subsystem. The clock signal can
also be routed to the parallel subsystem, if so desired. The oscillator circuit is designed for use with
an external, parallel resonant, fundamental mode
crystal. The crystal frequency should be selected at
8X, 10X, 16X, or 18X the required serial bit rate.
The status of the timer and event counters is available in the Port 1 status registers as shown in Figure
8.
FIFO SUBSYSTEM
The FIFO subsystem is located between the parallel
subsystem and the serial subsystem. It consists of a
transmit FIFO, a receive FIFO, and FIFO control logic. The transmit and receive FIFOs are independent
of each other and individually provide. optiinal interfaces between the two subsystems which may have
different speeds. There is a total of 64 bytes that can
be used for the two separate FIFOs. During configuration these 64 bytes can be divided into ,one of four
possible combinations: 16 and 16 bytes, 16 and 48
bytes, 32 and 32 bytes, or 48 and 16 bytes for the
transmit and receive FIFO respectively. The FIFO
threshold is also programmed during configuration.
Programming Model-Register .
Overview
Figure 4 shows the 82592 internal registers that are
directly accessible through the 8-bit I/O ports: Port 0
and Port 1.
Figure 5 shows the Port 0 commands, and Figure 6
shows the Port 1 commands. The two separate I/O'
ports can be accessed at two different addresses
selecte~ CSO and CS1, or at one address.selected by CSO. When the hardware does not support
two chip select signals, port switch commands are
used to access both ports alternately at one ad, dress. If the SWT-TO-PORT-1 command is executed
82592 and Host Interaction
The CPU interacts with the 82592 through the system's memory and the 82592's on-chip registers.
The CPU creates a data structure in memory, programs the external DMA controller with the start address and byte count of the memory block, and issues a command to the 82592.
The chip select and interrupt lines are used to communicate between the 82592 and the CPU as shown
in Figure 9. The interrupt signal is used by the 82592
to attract the CPU's attention. The chip select Signal
is used by the CPU to attract the 82592's attention.
Note that the 82592 does not have any address
lines.
There are two kinds of transfers over the bus: command/ status and data transfers. The 8-bit command/status transfers are always performed by the
CPU. The 8- or 16-bit data transfers are requested
by the 82592, and are usually performed by a DMA
, controller. Table 2 shows the command/status and
data-transfer control signals. The CPU writes commands to the 82592 using the CSO (or CS1) and iNA
signals; and reads status using the CSO (or ~)
and RD signals. When data transfers are performed,
DACKO or DACK1 must be asserted by the DMA
controller instead of the Chip Select.
1-109
82592
PORT 0 COMMAND (WRITE ONLY)
7
0
COMMAND
Port 0 status (Read Only)
7
0
STATUS" 0
STATUS 0
STATUS 1-0
STATUS 1
STATUS 1-1
STATUS 2-0
60r4]
[ Bytes
St!rtus
of
STATUS 2
" Registers
STATUS 3
STATUS 2-1
PORT 1 COMMAND (WRITE ONLY)
7
0
STATUS 3
COMMAND
PARAMETER 0
PARAMETER 1
PARAMETER 2
Port 1 Status (Read Only)
7
0
STATUS 0
STATUS 1
STATUS 2
STATUS 2
Port 1 TImer/Counter Count Registers (Read Only)
23
16 15
I
8 7
0
TIMER
COU~ ~ER
1
COU~
ER 2
COU~
ER 3
Port 1 Timer/Counter Maximum Count "Registers (Read Only)
23
I
16 15
8 7
0
TIMER
COU~ ITER
1
COU~
ER 2
COU~
ER 3
290146-4
Figure 4. Programming Model-Directly Accessiblei=leglsters
(Accessible Through a-Bit 1/0 Port[sl)
1-110
82592
Port 0 Command
76543210
~r-'l
OPCODE
NOP
SWT-TOPORT -1
IA- SETUP
CONFIGURE
MC-SETUP
TRANSMIT
TOR
DUMP
DIAGNOSE
RETRANSMIT
ABORT
RCV - ENABLE,
ASSIGN-ALT-BUF
RCV -DISABLE
STOP- RCV
FIX-PTR
RLS-PTR
RESET
....- - - - - + C H N L ( CHANNEL 0
CHANNEL 1
STATUS 0
'--------+ PTR { ~~:~~; ~
STATUS 3
..______-+ IN -
0 (CHNL = 0)
O(CHNL=1)
1
2
3
4
5
6
7
12
13
8'
9
10
11
15 (CHNL =1)
15 (CHNL=O)
14
o
1
00
01
10
11
ACK { NO ACKNOWLEDGE 0
ACKNOWLEDGE
1
290146-5
Figure 5. Port 0 Commands
Port 1 Command
76543210
TC/GP { GENERAL PURPOSE
TIMER/COUNTERS
NOP
SWT-TO-PORT-O
SET-TS
RST-TS
LCL - PWR - OWN
RMT - PWR - OWN
FIX-PTR
RLS- PTR
RESET
SEL- RST
~OPCODE
(TC/GP=O)
(TC/GP
NOP
START
STOP
RESUME
LD.!cSTART
ACK-INT
COUNT
START- ALL- COUNTERS
SET-VAL
SET-CONF
RO-MAX-COUNT-VAL
RD-COUNT-VAL
RESET
=1)
STATUSO
L.._ _ _ _ _ _~ PTR { STATUS1
~~~~~~~
(TC/GP =0)
(TC/GP = 1)
{
-
1
5
7
8
9
12
13
14
15
0
1
2
3
5
7
8
9
10
11
12
13
14
00
01
10
11
00
gg~~~:~
01
10
11
ACK { NO ACKNOWLEDGE
ACKNOWLEDGE
Figure 6. Port 1 Commands
1-111
1
o
TIMER
COUNTER3
..______-+ IN -
o
o
1
290146-6
82592
7
6
5
INT I RCV I EXEC I CHNL I
EVENT
STATUS 0
~-L__~-J__~__~~__~~
RESULT 1
STATUS1.()
RESULT 2
STATUS 1·1
~----------------------~
RECEIVE BYTE COUNT (LOW)/FRAME
INT
STATUS2.()
COUNTER
CHNL I
RCV
I
EXEC
I
CHNL
I
o
EVENT
STATUS 0
RESULT 1
~_,-_,-RE_CE_I"TVE_B_YT--rE_COU_NT-r-(H_IG_H.:.,),....-_r--iSTATUS 2·1
RCV I RCVSTATE
I
I
BUF.CHAIN'GI EXEC I
EXEC
No. OF BUF. I CHNL I
STATE
~------------------------~
RCV
STATUS 3
I
RCVSTATE
CHNL I
Status Reglsters-6 Bytes
I
RESULT 2
BUF.CHAIN'G I EXEC I
EXEC
No. OF BUF. I CHNL I
STATE
Status Reglsters-4 Bytes
Value
(Status 0)
Events
o (CHNL =
CMOS·
1)
IA-Setup-Done
Configure-Done
2
MC-Setup-Done
3
Transmit-Done
4
TOR-Done
5
Dump-Done
6
Diagnose-Passed
7
End-of-Frame
8
Request-Next-Buffer
9
Reception-Abortl;ld
10
R~transmit-Done
12
Execution-Aborted
13
Diagnose-Failed
15
'Available only after Hardware or Software Reset.
Figure 7. Port 0 Status Registers
1-112
STATUS 1
STATUS 2
STATUS 3
inter
82592
7
6
5
INT
C>---------------t
82592
CSl
C~------_t
OACK1/CS1/EOP
OACKOD---t
OACK1D--L
l-_~-----I
OACKO
ORQO
<:l------------------_t ORQO
ORQl
<:1-----------------"1 ORQl
~~~----------------_t~
WR c:~----------------; WR
CSOC:~----------------~ CSO
290146-12
Figure 13. Demultiplexing DACK/CSlIEOP Pin
Table 3. Transmit/Receive Status Encoding on
DRQandEOP
DRQ
EOP
0
Hi-Z
Idle
1
Hi-Z
DMA Transfer
0
0
Transmission or Reception
Terminated OK
1
0
Transmission or
Reception Aborted
Status Information
4.
Other Enhancements
5.
Compared to the previous generation LAN controllers such as the 82588, the 82592 has many functional and performance enhancements. This section
lists some of these enhancements which are not
covered in other sections.
1. Multi-lA-The 82592 implements multiple-individual address (Multi-IA) filtering. It can receive more
than one IA frame in this mode.
2. Power Down Modes-Two power down modes,
Local Power Down and Remote Power Down, are
available. When the 82592 is in Remote Power
Down mode, it can be powered up remotely by
sending a special frame to it.
3. Automatic Padding and IEEE 802.3 Length
Field-If a frame to be transmitted is shorter than
6.
7.
8.
1-117
the configured Slot Time, the 82592 automatically
appends pad bytes up to the shortest frame greater than the Slot Time. If the data field of a received frame is longer than the byte count indicated in the Length field, the extra bytes are stripped
automatically according to the Length field. Erroneous conditions are detected and, reported by
the 82592. An example of such conditions is reception of a frame which is shorter than the byte
count indicated in the Length field.
Automatic Retransmission on Collision During
Preamble-The 82592 can be programmed to retransmit automatically if it detects a collision during transmission of the preamble.
On-Chip Jabber Inhibit Function-The 82592
can be programmed to provide an on-chip jabber
inhibit function.
CRC Transfer to Memory-The 82592 can be
programmed to transfer the CRC field of a received frame into memory.
Loopback Signal to the 82C501-The 82592
can be programmed to provide an active High
loopback Signal to the 82C501 (see Figure 14).
StarLAN-The 82592 can be configured to recognize the IEEE 802.3 1BASE5 Collision Presence Signal (CPS). In this mode it also delays deactivation of the RTS signal at the end of a frame
transmission in order to insert an end-of-frame
marker as required by the standard.
inter .
82592
APPLICATIONS
The 82592 can be used in a variety of applications.
When it is used in High-Integration Mode it implements most of the' Data Link and Physical Layer
functions required by the IEEE 802.3 1BASE5
(StarLAN) and the IBM PC Network (Baseband and
Broadband). When it is used in High-Speed Mode it
can work with the 82C501 and the 82502 for IEEE
802.3 10BASE5 (Ethernet) and 10BASE2
(Cheapernet) implementations.
for the 82592 and dual-port memory control for the
static RAM. The 82592 is interfaced to the 82C501
to provide the Ethernet channel and then to the
transceiver to provide the Cheapernet channel. Due
to the CMOS process used for these chips, such a
board uses much less power than a board based on
NMOS or bipolar chips.
82C501
82592
74HCT04
If the desired network requires determinism, the
82592's Deterministic Collision Resolution (OCR)
method can be used.
CTS/lPBK
Figure 15 shows a block ' diagram of, an
82592/82560 Cheapernet adapter board. The
82560 provides the Tightly Coupled DMA Interface
290146-13
Figure 14. Loopback Output to the 82C501
1-118
PC I/O CHANNEL
13
2
N
l-
::!!
.....
IC
C
CD
-z
HRDY
I
OSCilLATOR I
10MHz I
I
!II
...:
Is'-
82560
I~'-
r
en
CD
I'"
'" s
I~ I~
~
l<'~ l<' 0
I~,CII~:=
ooo~
Q)
I\)
I~
0
ClK
RESET
I~
I~
:;;:
~
~
0
00
2i~
DECODER
I
~CS
ROM
XCVI
XCV2
GCS
\8
00-07
\8
DATA (00-7)
or
MOE
CSl
CS
-
CSH
MAO-MAI2
13
SRAM
ADDRESS
WE
.....
Q)
I\)
Q)
..... en
.....
0
<0
ADDRESS
DATA
~ OE
I\)
.
l
..
~rt
"l1li
CD
N
+5V
0
::r
1"-S~~~~g
lOll<' I- (; °
CD
III
..
'-
'tI
CD
-..
liii~
:::s
CD
l>
~
III
N
\8
0
i.....:........
015-00
DATA (DB-IS)
or
CS
ADDRESS
82592
8
1<§
ClK
CL
'tI
CD
0
~
16
I~ I~
16
RESET
WE
0
x
I-
I
0
X
'"
I~
! T!
82C501
I
~ t.A.1 t.A.1 t.A.1 ~
~
~
SRAM
j
r
~
aID
~~-!
IiiiiI
IF'
c:::::J
~
CNET XCVR
RG-58 COAX
~
BNC
T - CONNECTOR
~
290146-14
2a
~
inter
82588
High Integration LAN Controller·
• Integrates ISO Layers 1 and 2
-CSMA/CD Medium Access Control
(MAC)
- On-Chip Manchester, NRZI
Encoding/Decoding
- On-Chip Logic Based Collision
Detect and Carrier Sense
• 2 Clocks per Data Transfer
• User Configurable
- Up to 2 Mb/s Bit Rates with On-Chip
Encoder/Decoder (High Integration
Mode)
- Up to 5 Mb/s with External Encoder/
Decoder (High Speed Mode)
• Supports Mid-Range Industry Standard
LANs
- StarLAN (IEEE 802.3 1BASE5)
- IBM/PC Network-Baseband and
Broadband
• No TTL Glue Required with iAPX 186
and 188 Microprocessors
• Network Management and Diagnostics
- Short or Open Circuit Localization
- Station Diagnostics (External
Loopback)
- Self Test Diagnostics
Internal Loopback
User Readable Registers
• High Level Command Interface
Offloads the CPU
• Efficient Memory Use Via Multiple
Buffer Reception
The 82588 is a highly integrated CSMAlCD controller designed for cost sensitive, mid-range Local Area
Network (LAN) applications, such as personal computer networks.
At data rates of up to 2 Mb/s, the 82588 provides a highly integrated interface and performs: CSMAlCD Data
Link Control, Manchester, Differential Manchester or NRZI encoding/decoding, clock recovery; Carrier Sense,
and Collision Detection. This mode is called "High Integration Mode." In the 82588 "High Speed Mode", the
user can transfer data at a rate of up to 5 Mb/s. In this mode the physical link functions are done external to
the 82588.
The 82588 is available in a 28 pin DIP and 44 lead PLCC package and fabricated in Intel's reliable HMOS II 5
volt technology.
..".
"
Wii
.
~
t~K
II
IIIMT
II
CDi
~
iii)
. '"
" '"'
CSMA/CD
iiielu
11
11 Tloon
' - -_ _...J
231161-2
MAC
Figure 2. 82588 Pin
Configuration (DIP)
CONTROLLER
" ,
"
"" "
" "
SYSTEM INTERFACE
,." "
,."
DATA LINK
SERIAL INTERFACE
231161-1
"
" "
" "
" "
"
"
"
"
"
"
"
'""
"
38
N82588
(TOP VIEW)
1819:1.02122232"25262728
'"
"
NC
El!§jTCiJ(
""
'"'"
n
!!
~
£=>
.
ii1
GND
--,.
LOCAL BUS
DACKI/EOP
--,.
I
I
INTERFACE
T
~
I
I
DMA MACHINE
T
cs--,.
DROO
OROI
CD
N
en
0)
CI
IORD/WWR
--,.
IOWR
\lOt
3
INT
Vee
DACKO/DACK
v
10
(
INTERRUPT
~
l§!
UNIT
~
.--------------------------~-----------------
©
~
i'"
~
i
I~I
IiiiiI
I~
~
,
290180-1
'iiiJ
@
2.eJ
~
~
~
<=
@
~
inter
82560
Table 1.82560 Pin Description
Symbol
Pin No.
Type
Name and Function
Vee
5,23,57
I
POWER: Connected to
Vss
10,29,43,63
I
GROUND: Ground connection.
ClK
11
I
CLOCK INPUT: This is the system clock input for the 82560. It
controls the internal operations of the 82560 and its cycle timing.
RESET
42
I
RESET: Active high. When active it resets the 82560 to a known
passive state.
00- 07
40, 41, 44-49
1/0
Ao-A12
26-39
I
ADDRESS LINES: The 13 address lines select either an 82560
register, or an address in the local Memory.
HFO, HF1
25,24
I
HOST FUNCTION SELEOT: These two inputs indicate the type of
access requested by the host. These signals are generated by
external decode logic and are completely asynchronous to the
825,60 system clock. The proper combinations for each access
type are shown below:
HOST FUNCTION
HF1
HFO Access Type
1
1
Idle (No. Access 'Being Requested)
Request to Access Shared Portion of local
1
0
Memory
Request to Access 82560 Registers or the Slave
0
1
Controller (SCS)
Reguest to Access External PROMs or latches
0
0
(GCS)
RD
17
I
READ: Active low. This signal is used to indicate the direction of
the host transfer. When active, data is being read from the
destination (RAM, 560, or GCS port).
HROY
20
0
HOST READY: Active high. This Signal from the 82560 is activated
when the device on the local B~s of the LAN adapter is ready to
accept data (write cycle) or to output data (read cycle). When no
access is being requested by the host (i.e., both HFO and HF1 are
high), this signal is tri-stated in the normal mode, and is driven high
in the pipeline mode.
XCV1
22
0
TRANSCEIVER ENABLE 1:. Enables the transceiver that connects
the lower byte of the host and local data buses. In pipeline mode it
enables the transceiver during non-memory host cycles.
XCV2/PCS
21
0
TRANSCEIVER ENABLE 2: Enables the transceiver that connects
the upper byte of the host and local data buses. In pipeline mode it
enables the latch during memory host cycles.
INT
50
0
INTERRUPT OUT: This signal is a logical pR of all enabled
interrupt requests. When active it indicates an interrupt request to
the CPU. This signal is tristated after reset.
GCS
59
0
GENERAL CHIP SELECT: Active low. This signal is asserted by
the 82560 when the host requests access to external ROMs or
latches.
+- 5V power supply.
82560 DATA BUS: Tri-state bus. Used for programmatic access to
the 82560 registers. They are also used in the tightly coupled
interface (TCI) mode.
1-148
inter
82560
Table 1.82560 Pin Description (Continued)
Pin No.
Type
Name and Function
BEO
18
I
BYTE ENABLE: Active low. This signal is asserted in 16- or 32-bitwide host memory cycles to select the lower memory bank. It may be
connected to the processor's Ao pin.
BE1
19
I
BYTE ENABLE 1: Active low. This signal is asserted in 16- or 32-bitwide host memory cycles to select the upper memory bank. It may
be connected to the processor's SHE Signal. These two signals are
connected as follows:
Symbol
Host Bus
8-Bit
8-Bit
16-Bit
16-Bit
32-Bit"
Local Bus
8-Bit
16-Bit
16-Bit
32-Bit
32-Bit
BEO
0
SAO
SAO
SA1
BEO
+
BE1
BE1
0
1
SHBE
SA1
BE2 + BE3
"80386 address pins
+ stands for logical OR
DRQO
54
I
DMA REQUEST CHANNEL 0: Active high. This is an input from the
LAN controller or other peripherals, it requests DMA service. The
DMA cycles are run on an on-demand basis, and are prioritized
between themselves (two channels) and with the host cycles on an
alternating basis. In 82590 Tightly Coupled mode this signal is
sampled by the ~2560 at the last clock of the Read or Write signal
along with DAC 1IEOP to determine the state of the transmit or
receive process (see Tightly Coupled Interface for more details).
DRQ1
52
I
DMA REQUEST CHANNEL 1: Active high. This is an input from the
LAN controller or other peripherals, requesting DMA service. The
DMA cycles are run on an on-demand basis, and are prioritized
between themselves (two channels) and with the host cycles on an
alternating basis. In Tightly Coupled mode this signal is sampled by
the 82560 at the last clock of the Read or Write signal (see Tightly
Coupled Interface for more details).
DACKO/DACK
55
0
Dual Function: This is a dual function pin which serves as DACKO,
DMA acknowledge for Channel 0, in all modes except the Tightly
Coupled Interface mode. It serves as DACK, DMA acknowledge for
both channels, in Tightly Coupled Interface mode.
DMA ACKNOWLEDGEO: Active low. Acknowledge DMA requests
on channel O. During special chip select cycles, this signal is
controlled by the CPU.
DMA ACKNOWLEDGE: Active low. Acknowledge DMA requests on
either channel 0, or channel 1. It operates in this mode only when
programmed for Tightly Coupled Interface with the 82590 or 82592.
This pin can be directly connected to the DACKO/DACK pin of the
82590 or 82592 tA~ controllers.
DACK1/EOP
53
1/0
Dual Functi9n: This is a di.J?1 function, bidirectional pin which serves
as DACK1, DMA acknowledge for channel 1, in all modes except
8259X Tightly Coupled Interface mode. It serves as EOP, End of
Process indicator, an input, during this Tightly Coupled Interface
mode.
DMA ACKNOWLEDGE1: Output. Active low. DMA acknowledge for
channel 1. During Special Chip Select (SCS) cycles this signal is
controlled by the CPU and can be used for accessing the 8259X port
1. The output level is determined by the address of the SCS.
1-149
inter
82560
Table 1.82560 Pin Description (Continued)
Symbol
Pin No.
Type
DACK1/EOP
53
110
END OF PROCESS: Input. In the Tightly Coupled Interface mode,
this input, along with the DRQ pin, is sampled by the 82560 at the
last clock of the Read or Write signal. The combination of the two
pins indicates the status of the Transmit or Receive process. When
low, the EOP signal Indicates that the active DMA service should be
terminated.
10WR
56
0
I/O WRITE. Active low. This is the write strobe to the LAN controller
or 110 device. It is asserted when data is being written to the LAN
controller by either the Host CPU or the 82560 internal DMA. During
pipeline read transfers it is the write control signal to the buffer.
IqRD/MWR
58
0
Dual Function: Active low. This signal is used for two different
operations. It is a control signal during read cycles from the LAN
controller or another 110 device. It is a write strobe during write
cycles to the local memory.
I/O READ: Active low. It is asserted when data is being read from
the LAN controller by either the host CPU or the 82560 internal DMA.
During pipeline write transfers it is the read control signal to the
buffer.
MEMORY WRITE: Active low. It is asserted when data is being
written to local memory.
INTR
51
I
INTERRUPT REQUEST: This signal when active indicates an
interrupt request. It is usually connected to the interrupt output of the
LAN controller. It may be programmed as active high or low, level or
edge triggered, and it can also be masked.
9-1,68
0
MI;:MORY ADDRESS 0-12: These 13 address lines can support two
8·kilobyte or 8·kiloword banks of static memory.
CSL
62
0
RAM CHIP SELECT (LOW BANK): Active low. This Signal is
activated during all static· RAM accesses in 8·bit mode, even·byte
accesses in 16·bit mode, and even·word accesses in 32-bit mode.
CSH
61
0
RAM CHIP SELECT (HIGH BANK): Active low. This signal is
activated during odd-byte accesses in 16-bit mode or odd-word
accesses in 32-bit mode.
MOE
60
0
MEMORY OUTPUT ENABLE: Active low. This signal is used to
enable the memory array's output buffers during memory read
cycles.
GPI
16
I
GENERAL PURPOSE: Input. This is a general purpose input pin, its
state may be read by the CPU.
CS
12
0
CHIP SELECT: Active low. This pin is normally connected to the
Chip Select input of the LAN controller or other peripherals. It is
activated during non-DMA accesses to the LAN controller. The CPU
activates this signal when it accesses addresses 0, 1, 2, or 3 in the
Special ChipSelect address space of the 82560.
13,14
I
These pins are reserved and should be tied to Vee.
MAO-12
RSV1, RSV2
Name and Function
1-150
inter
82560
v..
MOE
CLK
GCS
~
10RO/MWR
RSVI
Vee
RSV2
IOWR
NC
OACKO/OACK
GPI
OROO
Rii
OACKI/EOP
BEO
OROI
BEl
INTR
HROY
INT
XCV2/PCS
07
XCVI
06
Vee
05
HFI
04
HFO
03
M
~
c
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 8 0
§~
II<
290180-2
Figure 2. 82560 PLCC Pinout
.
A
<
Host Bus
~
-'
III
III
z~
'"0
II<
4(
l
Host Interface and
Decode Logic
I.
"'
J
I Arbitration
L Logic
III
III
...J
0
'"0
....
Z
II<
0
0
4(
<. .__
CYCLE _ _IO_LE_ _
X . . __
HO_S_T_ _
><. .__ ><;
O_MA
_ _....
H_OS_T_ _
290180-4
This Diagram Assumes:
The default priority bit to be 1 (bit 7 of the master mode)
1/0 or MEM wait states to be 1 clock (Tw = 1)
Non-Pipeline Mode
In the case of host read cycles (in any mode) or host writE! cycles (in pipeline mode only), "Twh" cycles
will be asserted in addition to "Tw", between "T1" and "T2" of the host cycles
Figure 4. 82560 Arbitration Cycles
,Sh and
Transfer (TTSF). The·machine cycle, begins when. a
request (HF or ORO) becomes active and the 82560
is in the idle state (TIDLE>. The requests are synchronized and then undergo arbitration (TA). Once arbitration is completed, the transfer cycle (TTSF) begins.
1. The CPU configures the 82560 by writing to configuration registers.
2. The CPU accesses the local memory (through the
82560) and prepares a block of transmit frames.
3. The CPU writes the proper addresses into the
82560's OMA address registers, (base, current, lower limit upper limit and stop).
4. The CPU writes to the 82560's OMA control registers to configure and enable the channels.
5. The CPU issues a transmit command to the
82590.
6. The 82560 responds to the 82590's OMA request
by transferring data from memory to the 82590.
7. Upon completion of transmission, the 82560
sends an interrupt to the CPU.
8. The CPU reads the 82560 interrupt control register to find the source of the interrupt.
9. The CPU issues a command to the 82590 to clear
its interrupt. (If the source of the interrupt was the
82590.)
10. The CPU acknowledges the 82560 interrupt by
writing a "1" into the corresponding interrupt control
register bit(s).
APPLICATIONS
Figure 9 shows a buffered, non intelligent StarLAN
adapter for the IBM PC bus (using the 82560 and the
82590). Figure 10 shows a buffered, nonintelligent,
Ethernet adapter for the IBM PC bus (using the
82560, 82592, 82C501 and the 82502).
Synchronization (TS) is completed on the falling
edge of the clock. If the previous cycle was non-idle,
arbitration begins and is completed within one clock
period (by the next falling edge of the clock).
The Transfer cycle consists of the following sequential states: the first transfer state (Tl), memory or 110
wait ,states (Tw), and the second transfer state (T2).
There may be another transfer state, Twh (wait host),
during host read or pipeline cycles. When no re, quests are pending, and the 82560 is not in the
transfer or arbitration cycle, It is said to be in the idle
state (TIDLE). If the previous cycle was non-idle, the
arbitration period (TA and T2 of the previous cycle
will be done in parallel. (See Figure 4.)
Tw is the programmable portion of the transfer cycle. It can be zero to three clocks long depending on
the programmed memory or 110 access delays. If
the programmed delay is zero, then there will be no
Tw; the first state of the transfer cycle will be T 1.
Ouring T2 the transfer cycle is completed unless the
cycle is a host read cycle. In that case the cycle will
be 'extended by inserting TwHo The 82560 will remain
in Twh until the HF lines are deasserted. Once HF
Unes are deasserted, T2 will begin and one clock
period later the bus cycle is complete. '
1-164
PC I/O CHANNEl
I"
"'II
.--+I TRANSCEIVER I
~3
\ 2
DECODER
I
cs
ADDRESS
"--~----~DATA
~
c
;
!"
L...+-_~ HRDY
I
OSCilLATOR I
10tolHz I
~:c
1010
""!I:
~""
'I~
t_
..
CLK
01
~
8
::z;
'" '82560
I~
RESETls
~
~
~
I~
~
~u
IU) I~ I!: ~ ~ I~ I~
Io
uzooQQ
~
5'
......, iiii....
o·
XCV1
GCS
ROM
~OE
a..;;.;;...._ _ _ _ _ _.1
1----------....
--...1
\8
DO-D7
\8
tolOE
CSO
MAQ-t.lA12
+5V
.
DATA
OE
cs
13
I
SRAM
ADDRESS
WE
8
.....______________--1
I:
1/1
~
~
II
0
!a.
m
...J
C
.~ua-o~
~
.....
~
ClK
4
RESET
~
-
I~
82590
o
01
~
:::>
~IO~t-;OI""IO
1 oU)
z""o~""
"Ii
CiI
C»
CD
II)
C»
01
l
~
r
~
D7-oo
~
l§!
\8
~
~
I~
"" ""
©
!. t !.
Front-End Interfoce~
~ ___ L_~_
~I
_l_J
I~
IiiiiI
c:;;;;o
~
~~
"liil
@
~I
'1'!'l
£"!"l'
·T-,---r-T·
:?2J
TO PHONE JACK
290180-19
~
~
c:J
@
~
PC I/O CHANNEL
....L
~
~
l
13
ADDRESS
i 2
JDECODERJ
:!!
14 I
fa
C
Cil
!='
.n
:::T
I
..
•..
'!l
'0
CD
::s
!.
a.
.........
t
....
<»
<»
! ~
L-+-_-II HRDY
I~
~
I~
.:
-----":":"'1~t-t--~ ClK
~
:.:
82560
r-+-"'-~ RESETII>.
I~
. 1! ~
L
I!:i:
I'l"
la; ; 111 I~a°~ -~ °~ I~'" I~~
++T
1'1
+5V~
X~1
X~2
GCS
00 - 07
MOE
CSL
8
8
CSH~
I I
II~A
DATA (00-7)
OE
CS
I~
t.IAO-MA12
ROM
J
i
13
' 1 .11
l
SRAM
ADDRESS
WE
I I I I I' I 1
I
CD
N
°1:.: . . (;
QI
1>.
0·
OU
1,!:!,uC§-o:!i
1 lUZ.",O
~
I'"
16
10
.
~'"
~.
CD
I\)
QI
CQ
IBc§
CD
1 ~CLK
n
L-.....iRESET
.!"
I\)
~
..&....
110
I\)
QI
0
~
82592
015-0014
,16
\
.I' II:]C-:.
I
~____~'~IW_E________~
o
~
~
II!!
'" '"
!~iJ~.
i~
_ _1
;::!
c§
~
l§l
~
~
@
.,
IiiiiI
c::>
~
9iiI
@
CNETX~R
5eJ
~
RG-58.COAX
~
BNC
T - CONNECTOR
290180-20
c::::J
'@
~
82560
*Notice: Stresses above those listed under "Absolute Maximum Ratings" may cause permanent damage to the device. This is a stress rating only and
functional operation of the device at these or any
other conditions above those indicated in the operational sections of this specification is not implied. Exposure to absolute maximum rating conditions for
extended periods may affect device reliability.
ABSOLUTE MAXIMUM RATINGS·
Case Temperature (TC)
under Bias ...................... O·C to + 85·C
Storage Temperature .......... - 65·C to + 150·C
Voltage on any Pin with
Respect to Ground ....... - 0.5V to Vee + 0.5V
NOTICE: Specifications contained within the
fol/owing tables are subject to change.
D.C. CHARACTERISTICS TC = O·Cto + 85°C. Vee = +5V ±10%
ClK pin has MOS levels (see VMll. VMIH) All other signals have TTL levels (see Vil. VIH. VOL. VOH).
Symbol
Parameter
Min
Max
Units
V
Test Conditions
Vil
Input low Voltage (TTl)
-0.5
+0.8
VIH
Input High Voltage (TTl)
2.0
Vee + 0.5
V
IOl
IOH
= 3.2 rnA
= -400,...A
VOL
Output low Voltage (TTl)
0.45
V
VOH
Output High Voltage (TTl)
2.4
Vee
V
VMll
Input low Voltage (MOS)
-0.5
0.6
V
VMIH
Input High Voltage (MOS)
III
Input leakage Current
±10
,...A
o=
ILO
I/O leakage Current
=F10
,...A
0.45
CIN
Capacitance of Input Buffer
10
pF
COUT
Capacitance of Input/Output Buffer
20
pF
= Vee -0.45
= VOUT = Vee -0.45
FC = 1 MHz
FC = 1 MHz
Icc
Power Supply Current
50
rnA
tOMHz
A.C. CHARACTERISTICS
Symbol
Vee - 0.6 Vee + 0.5
V
VIN
Cl on all outputs is 50 pF. The user should add 0.2 ns/pF up to 100 pF
Parameter
Min
Max
Test Conditions
SYSTEM CLOCK INPUT PARAMETERS
T1
ClK Cycle Period
100
(Note 1)
T2
ClKlowTime
45
. (Note 1)
45
(Note 1)
T3
ClK High Time
T4
ClK Rise Time
5
(Note 2)
T5
ClK Fall Time
5
(Note 3)
HOST ACCESS CYCLE-NON PIPELINE MODE PARAMETERS
T6
HF or DREQ Setup Time
T7
HF Active Time (low)
T8
HF Inactive Time (High)
T9
HF to HRDY low
T10
HF Active to HDRY High
T11
HRDY High to HF Inactive
10
(Note 5)
2*T1 + 10
T1 +10
50
2*T1 +50
0
1-167
(Note 4)
(Note 9)
(Note 5)
inter
82560
A.C. CHARACTERiSTICS
CL on all outputs is 50 pF. The user should add 0.2 ns/pF up to 100 pF (Continued)
Symbol
Parameter
Min
Max
Test Conditions
HOST ACCESS CYCLE-NON PIPELINE MODE PARAMETERS (Continued)
T12
HF Inactive to HRDY Float
T13
HF Active to XCVR Lines Low
T1+T2
T14
HF Inactive to XCVR Lines High
(Note 7)
T15
HF Active to RD Low
T16
RD Hold after HF Inactive
T17
HF Active to Input Add. Valid
T18
Address Hold after HF Inactive
T19
HF Active to 82560 Data Valid
75
2"T1 +T2+75
(Note 6)
75
T1 +T2+10
0
-20
(Note 8)
0
"
T20
Data Hold after HF Inactive
T21
HF Active to 82560 Add Valid (MAn).
T22
Add Valid or Chip Select Active Time
T23
HF Active to CS Active
T24
CS Enveloping Controls
T25
Control Active Time
T26
HF to Data Valid
T27
Data Hold after HRDY High
3*T1 +80
(Note 9)
2*T1 +T2+75
(Note 9)
T1 +T2
2*T1
(Note 10)
2*T1 +T2+50
(Note 9)"
20
(Note 11)
(Note 11)
3*T1-30
(Note 12)
HOST ACCESS CYCLE-PIPELINE MODE PARAMETERS
(Note 9)
2*T1 +75
(Note 6)
HF Active Time
T29
HF Active to Port CSActive
T30
HF Inactive to HRDY Low
75
T31
HRDY Low to HRDY High
(Ncite 14)
T32
Port CS Active Time
T33
HF Inactive to Buffer Write
T34
Write Active Time
T1 +10
(Note 13)
T28
2*T1
(Note 14)
10
T1-10
T1 +10
DMA PARAMETERS
T35
DR an High or INTR to Clock
Lqw Setup Time
(Note 15)
50
T36
DROn Low to Clock Low, Hold Time
10
T37
EOP Pulse Width
T1
T38
Address Delay Time
T2+75
T39
CS, CSn, DAKn Delay Time
T2+50
T40
CSn Delay Time (Slave to SRAMFlyby)
50
T41
IORD_MWR, IOWR Delay Time
45
T42
IORD_MWR, IOWR Active Time
(Note 16) ,
1-168
(Note 16)
inter
82560
A.C. CHARACTERISTICS
CL on all outputs is 50 pF. The user should add 0.2 ns/pF up to 100 pF (Continued)
Symbol
I
Parameter
I
Min
I
Max
I
I
I
75
I
I
Test Conditions
INTERRUPT PARAMETERS
T43
T44
I
I
Interrupt Delay Time
Interrupt Gap
I
I
3'T1-10
RESET PARAMETERS
T45
T46
I
I
Reset Setup Time
Reset Active Time (High)
I
I
"For pin HRDY 4 mA.
50
4'T1
I
l
I
I
NOTES:
1.
2.
3.
4.
Measured at Vcc/2.
3.2V to 1.BV.
1.BV to 3.2V.
The following configuration affect the HRDY output going active (high).
Legend:
TID-The configuration of HRDY delay (master mode register, TID = 0,.5,1.5,2.5).
TIO-The configuration of I/O access delay (Control register,
TIO = 0,1,2,3 ).
TMEM-The configuration of MEM access delay (Control register, TMEM = 0,1,2,3).
"If bit 5 of Register at Address 1BH then (TID + 2)"Tl + 75
else [TID + TIO(or TMEM) + 2)"Tl + 75"
5. The user should not that the XCVR lines goes inactive immediately after HF inactivation.
6. Provided that the HOST wins arbitration.
7. In the case of HOST write cycle the XCVR lines will go high at the end of the B2560 cycle even if HF lines are still active.
In the case of HOST read cycles, the B2560 will terminate the local cycle after HF lines are inactivated.
B. Address lines are latched at the end of Tl of 82560 HOST bus cycles.
9. The maximum time specified assumes that the HOST wins the arbitration. If the HOST loses the arbitration to a DMA
request two possible scenerios are:
a) Arbitration lost to a single DMA cycle. In this case [(greater of TIO and TMEM) + 2)*T1 should be added to the
max. time.
b) Arbitration lost to a DMA cycle which is followed by four locked DMA cycles. In this case [(greater of TIO and
TMEM)"5 + 10)*Tl should be added to the max. time. This might happen in the rare case when the HOST request
coincides with the last receive or transmit transfer, in the TCI mode.
10. [TIO(or TMEM) + 2)"T1+ 10.
In the case of long (HF) HOST memory read requests, it would be extended until the request is removed.
11. Min = [TI0(orTMEM)+I)*Tl-l0, Max = [T10(orTMEM)+I)"Tl+10.
12. This parameter depends on Tl0. In terms of machine states, data remains valid until the end of the cycle (end of state
T2).
13. (TMEM + 2)"Tl +75+ Tsystem.
Tsystem = delay from HRDY to HF inactive.
This maximum time refers to a second memory request immediately following a first one, assuming that the first one
was not delayed by a DMA cycle.
14. [TIO(or TMEM)+2)"Tl +75.
15. This is an asynchronous signal (DROn only in its leading edge). It is internally synchronized. Meeting this parameter,
assures recognition on the next clock.
16. Min = [(greater of TIO and TMEM) + 1)*Tl + T2 + 10
Max = [(greatefof TIO and TMEM) + 1)'Tl + T2 + 10
1-169
inter
82560
A.C. TESTING INPUT & OUTPUT WAVEFORM
2.4
0.45
=x
1.5 -TEST POINTS -
1.5
SYSTEM CLOCK TIMING
x=
vee- 0.6
0.6
290180-21
A.C. Testing Inputs are Driven at 2.4V for a Logic "1"
and 0.45V for a Logic "0". Timing Measurements are
made at 1.5V for both a Logic "1" and "0".
i+---T1---1
290180-22
WAVEFORMS
HOST READ CYCLE-NON PIPELINE MODE
eLK
--,
T.
To
T1
w-" w-'
~
-Tl-.
-T6
-
T7
Tw
T2
Ti
Ti
~~
~
I-oT3~
H
T8-
-1
'\
---
I--
T9 ---
f4- TIl
f. K'12
TlO
,..~
HRDY
I--
Tl3---
f4-r---Tl4
-I
I
r
.....
I- 15-1
~~171l.
AO-A12. BMn
I
tTl 6
I
~ Tl8l
I
VALID
HOST READ FROM 82560
~Tl19--T1
Data Valid
~1-T20-
t:1
H~ST REA~ FROM I/O or SRAM
I
l- r-T21
TI2
~ f--T23
A2
MAO-12,eSn
-T21
I
f4--T24
T24
f4--
I---T25T24 f4--
f4-I---
T42-
-
290180-23
1-170
inter
82560
WAVEFORMS (Continued)
HOST WRITE CYCLE-NON PIPELINE MODE
Ts
elK
~
Ta
--TS
-
!--Tl--T7
-
Tg ...
Tw
Tl
~ Lr ~
~
TS ...
...
TI
~ ~ \..J
j....T3~
TS-
l-
H
\.
f4
Tll
f,o
TlO
,..1- K12
HRDY
Tl3 ....
n
T2
f4 r--Tl4
4-
H
I
AO-A12, eMn
"Tl
... TlS--1
I
I
VALID
HOST WRITE TO 825S0
Data Valid
r-
T2
I
j-1 I
I
"'-T27-
j
_I
HOST WRITE TO I/O or SRAM
I
I-I--T21
Tj2
i-I--T23
A2
MAO-12
...
T24
i'--T24
,
10RDjMWR,IOWR
I-
1
1---
25 290180-24
1-171
inter
82560
WAVEFORMS (Continued).
HOST READ CYCLE-PIPELINE MODE
eLK
.....,
ls
To
T1
T2
Ti
Ti
Ti
u--" ~ w-' ~ ~ ~
~
..... T6r---T28
T8
I
"-
..... 30if-T31HRDY
"-
·V 1
7
8M"
.I.
T1
1-1
VALID
.I.
-
1
I
"-
ro--r-T21
T22
r--
~+--T23
T22
r----
~-T29
T32-
MAO-12,
I--T24
I.....
I .....
I--T24
1
"'T33 I---T34
~, ~T2~!~
I--T42
I
I
I--r
4
II
290180-25
1-172
82560
WAVEFORMS (Continued)
HOST WRITE CYCLE-PIPELINE MODE
ClK
.....,
~ 0- ~
~
.... 0T6i-t-T28
T8
r
~T~I
I,
3~~ r-T31-"1
....
T32-
HROY
8Mn
u-0-
,
-T1j-1
VALID
I
I
i-r-T21
T22
r---
I-~T29
T32
I----
MAO-12
~-T23
r----
r. .
I
~
H
!-" T24
~T4i-
I
290180-26
DMA FLYBY CYCLE-SLAVE TO SRAM
T.
To
T1
TW
T2
TI
TI
ClK
OROn
...-.l.-""'-+__!-_+_--1_+..I...{
i'-I---~~__t
FOP --+---+--!--+---1-~+-
__~
MAO-12
~CKn --+---r--~~+-_-+__+-~
290180-27
1-173
inter
82560
WAVEFORMS (Continued)
DMA FLYBY CYCLE-SRAM TO SLAVE
Ts
To
T1
TW
T2
TI
, TI
elK
OROn
t.lAO-12
T39
IOWR ---+----+----~+-~
--+---1"1
290180-28
1-174
inter
82560
WAVEFORMS (Continued)
INTERRUPT
eLK
INT
INTR
_+-_-+---"
290180-29
RESET
290180-30
1-175
APPLICATION
NOTE
AP-235
November 1986
An 82586 Data Link Driver
CHARLES YAGER
Order Number: 231421-002
1-176
inter
AP-235
INTRODUCTION
This application note describes a design example of an
IEEE 802.2/802.3 compatible Data Link Driver using
the 82586 LAN Coprocessor. The design example is
based on the "Design Model" illustrated in "Programming the 82586". It is recommended that before reading this application note, the reader clearly understands
the 82586 data structures and the Design Model given
in "Programming the 82586".
"Programming the 82586" discusses two basic issues in
the design of the 82586 data link driver. The first is
how the 82586 handler fits into the operating system.
One approach is that the 82586 handler is treated as a
"special kind of interface" rather than a standard I/O
interface. The special interface means a special driver
that has the advantage of utilizing the 82586 features to
enhance performance. However the performance enhancement is at the expense of device dependent upper
layer software which precludes the use of a standard
I/O interface.
The second issue "Programming the 82586" discusses
is which algorithms to choose for the CPU to control
the 82586. The algorithms used in this data link design
are taken directly from "Programming the 82586".
Command processing uses a linear static list, while receive processing uses a linear dynamic list.
The application example is written in C and uses the
Intel C compiler. The target hardware for the Data
Link Driver is the iSBC 186/51 COMMputer, however
a version of the software is also available to run on the
LANHIB Demo board.
1.0 FITTING THE SOFTWARE INTO
THE OSI MODEL
The application example consists of four software modules:
OSI REFERENCE
MODEL LAYERS
~-----..
" ,
PRESENTATION
MAC
,
TRANSPORT
NETWORK
DATA LINK
PHYSICAL
,
,
,,
,,
The Data Link Layer, as. defined in the IEEE 802 standard documents, is divided into two sublayers: the Logical Link Control (LLC) and the Medium Access Control (MAC) sublayers. The Medium Access Control
sublayer is further divided into the 82586 Coprocessor
plus the 82586 Handler. On top of the MAC is the LLC
software module which provides IEEE 802.2 compatibility. The LLC software module implements the Station Component responses, dynamic addition and deletion of Service Access Points (SAPs), and a class I level
of service. (For more information on the LLC sublayer,
refer to IEEE 802.2 Logical Link Control Draft Standard.) The class I level of service provides a connectionless datagram interface as opposed to the class 2
level of service which provides a connection oriented
level of service similar to HDLC Asynchronous Balanced Mode.
On top of the Data Link Layer is the Upper Layer
Communications Software (ULCS). This contains the
Network, Transport, Session, and Presentation Layers.
These layers are not included in the design example,
therefore the application layer of this ap note interfaces
directly to the Data Link layer.
,,
,
,,
,,
",
USER APPLICAnON
UPPER LAYER ODMMUNICAnON SOFTWARE
LLC MODULE ~ LOGICAL LINK ODNTROL
OLD. MODULE
,
SESSION
,,
Figure I illustrates how these software modules combined with the 82586, 82501 and 82502 complete the
first two layers of the OSI model. The 82502 implements an IEEE 802.3 compatible transceiver, while the
82501 completes the Physical layer by performing the
serial interface encode/decode function.
·~~UA~P~.ULCS
M~0~D~U~LE9;::==i
_•• , •••• -'
..---
...... ··>LL·-c-f
•• '
,
APPLICATION
• Data Link Driver (DLD): drives the 82586, also
known as the 82586 Handler.
• Logical Link Control (LLC): implements the IEEE
802.2 standard.
• User Application (UAP): exercises the other software modules and runs a specific application.
• C hardware support: written in assembly language,
supports the Intel C compiler for I/O, interrupts,
and run time initialization for target hardware.
82586
82586 HANDLER
DATA LINK COPROCESSOR
ENCOOE/DECODE (ESI)
TRANSCEIVER CABLE
CL..- HARDWARE ODNNECTOR
231421-1
Figure 1. Data Link Driver's Relationship to OSI Reference Mode 1
1-177
inter
AP-235
} APPLICATION
DATA LINK
TERMINAL EMULATOR
AND
STATION MONITOR
PHYSICAL
231421-2
Figure 2. Block Diagram of the Hardware and Software
The application layer is implemented in the User Application (UAP) software module. The UAP module operates in one of three modes: Terminal Mode, Monitor
Mode, and High Speed Transmit Mode. The software
initially enters a menu driven interface which allows
the program to modify several network parameters or
enter one of the three modes.
The Terminal Mode implements a virtual terminal with
datagram capability (connectionless "class I" service).
This mode can also be thought of as an async to IEEE
802.3/802.2 protocol converter.
The Monitor Mode provides a dynamic update on the
terminal of 6 station related parameters. While in the
monitor mode, any size frame can be repeatedly transmitted to the cable in a software loop.
High Speed Transmit Mode transmits frames to the cableas fast as the software possib~y can. This mode demonstrates the throughput performance of the Data Link
Driver.
The UAP gathers network statistics in all three modes
as well as when it is in the menu. In addition, the UAP
module provides the capability to alter MAC and LLC
addresses and re-initialize the data link. (Figure 2
shows a combined software and hardware block diagram.)
The C_Assy_Support module has a run time start otT
function which loads the DLD data segment into a
global variable SEGMT_. This data segment is used
by the 82586 Handler for address translation purposes.
The 82586 uses a flat address while the 80186 uses a
segmented address. Any time a conversion between
82586 and 80186 addresses are needed the SEGMT_
variable is used.
Pointers for the 80186 in the large model are 32 bits,
segment and otTset. All the 82586 link pointers are 16
bit otTsets. Therefore when trading pointers between the
82586 and the 80186, two functions are called:
Offset (ptr), and Build_Ptr (otTset). OtTset (ptr) takes a
32 bit 80186 pointer and returns just the otTset portion
for the 82586 link pointer. While Build_Ptr (otTset)
takes an 82586 link pointer and returns a 32 bit 80186
pointer, with the segment part being the SEGMT_
variable. OtTset () and BuildJtr() are simple functions written in assembly language included in the C_
Assy_Support module.
In the small model, OtTset ( ) and Build_Ptr( ) are not
needed, but the variable SEGMT_ is still needed for
determining the SCB pointer in the ISCP, and in the
Transmit and Receive ButTer Descriptors.
3.0 THE 82586 HANDLER
2.0 LARGE MODEL COMPILATION
3.1 The Buffer Model
All the modules in this design example are compiled
under the Large Model option. This has the advantages
of using the entire 1 Mbyte address space, and allowing
the string constants to be stored in ROM. In the Large
Model it is important to consider that the 82586's data
structures, SCB, CB, TBD, FD, and RBD, must reside
within the same data segment. This data segment is
determined at locate time.
The butTer model chosen for the 82586 Handler is the
"Design Model" as described in "Programming the
82586". This is based on the 82586 driver as a special
driver rather than as a standard driver. Using this approach the ULCS directly accesses the 82586's Transmit and Receive ButTers, ButTer Descriptors and Frame
Descriptors. This eliminates butTer copying. Transmit
and receiver butTer passing is done entirely through
pointers.
1-178
inter
AP-235
The only hardware dependencies between the Data
Link and ULCS interface are the buffer structures. The
ULCS does not handle the 82586's CBs, SCB or initialization structures. To isolate the data link interface from
any hardware dependencies while still u,sing the design
model, another level of buffer copying must be introduced. For example, when the ULCS transmits a frame
it would have to pass its own buffers to the data link.
The data link then copies the data from ULCS buffers
into 82586 buffers. When a frame is received, the data
link copies the data from the 82586's buffers into the
ULCS buffers. The more copying that is done the slower the throughput. However, this may be the only way
to fit the data link into the operating system. The 82586
Handler can be made hardware independent by adding
a receive and transmit function to perform the buffer
copying.
The 82586 Handler allocates buffers from two pools of
memory: the Transmit pool, and the Receive pool as
ill\lstrated in Figure 3. The Transmit pool contains
Transmit Buffer Descriptors (TBDs) and Transmit
Buffers (TBs). The Receive pool contains Frame Descriptors (FDs), Receive Buffer Descriptors (RBDs),
and Receive Buffers (RBs).
I
RECEIVE
&-'01 0",..)
POOL
~
TB
3.2 The Handler Interface
The handler interface provides the following basic functions:
•
•
•
•
•
initialization
sending and receiving frames
adding and deleting multicast addresses
getting transmit buffers
returning receive buffers
Figure 4 lists the Handler Interface functions.
On power up, the initialization function is called. This
function initializes the 82586, and performs diagnostics.
After initialization, the handler is ready to transmit and
receive frames, and add and delete multicast addresses.
To send a frame, the ULCS gets one or more transmit
buffers from the handler, fills them with data, and calls
the send function. When a frame is received, the handler calls a receive function in the ULCS. The ULCS
receive function removes the information it needs and
returns the receive buffers to the handler. The addition
and deletion of multicast addresses can be done "on the
fly" any time after initialization. The receiver doesn't
have to be disabled when this is done.
UPPER LAYER
COMMUNICATIONS SOFTWARE
SEND
rupts the handler. The handler passes a FD pointer to
the ULCS. Linked to the FD is one or more RBDs and
RBs. The ULCS extracts what it needs from the FD,
RBDs and RBs, and returns the FD pointer back to the
handler. The handler places the FD and RBDs back
into the free RFA pool.
POOL
m
RBD
RB
82586 HANDLER
231421-3
Figure 3. 82586 Handler Memory
Management Model
When the ULCS wants to transmit, it requests a TBD
from the handler. The handler returns a pointer to a
free TBD. Each TBD has a TB attached to it. The
ULCS fills the buffer, sets the appropriate fields in the
TBD, and passes the TBD pointer back to the handler
for transmission. After the frame is transmitted, the
handler places the TBD back into the free TBD pool. If
the ULCS needs more than one buffer per frame, it
simply requests another TBD from the handler and
performs the necessary linkage to the previous TBD.
On the receive side, the RFA pool is managed by the
82586 itself. When a frame is received, the 82586 inter-
The command interface to the handler is totally asynchronous-the ULCS can issue transmit commands or
multicast address commands whenever it wants. The
commands are queued by the handler for the 82586 to
execute. If the command queue is full, the send frame
procedure returns a false status rather than true. The
size of the command queue can be set at compile time
by setting the CB-CNT constant. Typically the command queue never has more than a few commands on it
because the 82586 can execute commands faster than
the ULCS can issue them. This is not the case in a
heavily loaded network when deferrals, collisions, and
retries occur.
The command interface to the 82586 handler is hardware independent; the ouly hardware dependence is the
buffering. A hardware independent command interface
doesn't have any performance penalty, but some 82586
programmability is lost. This shouldn't be of concern
since most data links do not change configuration parameters during operation. One can simply modify a
few constants and recompile to change frame and network parameters to support other data links.
1-179
inter
Handler Interface Functions
Description.
IniL586()
.Send_Frame (ptbd, padd) .
,
Recv_Frame (pfd)
,
AdLMulticast-Address (pma)
Delete_Multicast-Address (pma)
GeLTbd()
PuLFree_Rfa (pfd)
,
Initialize the Handler
Sends a frame to the cable.
ptbd-Transmit Buffer Descriptor pOinter
padd-Destination Address pointer
Handler calls this function which resides in the ULCS.
pfLFrame Descriptor pointer
Adds one multicast address
pma-Multicast Address pointer
Deletes one multicast address
Get a Transmit Buffer Descriptor pointer
Returns a Frame Descriptor and Receive
Buffer Descriptors to the 82586.
Figure 4. List of Handler Interface Functions
231421-5
Figure 5. Free CB Pool
231421-4
Figure 6. Free Transmit Buffer Descriptor Pool
1-180
AP·235
The CBs within the list are initialized with 0 status, EL
bit set, and a link to the next CB. The TBD structures
are initialized with the buffer size, which is set at compile time with the TBUFJIZE constant, a link to the
next TBD, and an 82586 pointer to the transmit buffer.
This pointer is a 24 bit flat/physical address. The address is built by taking the transmit buffer's data segment address, shifting it to the left by 4 and adding it to
the transmit buffer offset. An 80186 pointer to the
transmit buffer is added to the TBD structure so that
the.80186 does not have to translate the address each
time it accesses the transmit buffer.
3.3 Initialization
The function which initializes the 82586 handler, Init_
586(), is called by the ULCS on power up or reinitialization. Before this function is called, an 82586 bard·
ware or software reset should occur. The Initialization
occurs in three phases. The first phase is to initialize the
memory. This includes flags, vectors, counters, and
data structures. The second phase is to initialize the
82586. The third phase is to perform self test diagnostics. Init_586() returns a status byte indicating the
results of the diagnostics.
Phase I executes initialization of all the handlers flags,
interrupt vectors, counters, and 82586 data structures.
There are two separate functions which initialize the
CB and RFA pools: BuiILCB() and Build~a().
Build....JU'a( ) builds a linear linked Frame Descriptor
list and a Receive Buffer Descriptor list as shown in
Figure 7. The status and EL bits for all the free FDs are
O. The last FD's EL bit is I and link pointer is NULL.
The first FD on the FD list points to the flI'St RBD on
the RBD list. The RBDs are initialized with both 82586
and 80186 buffer pointers. The 80186 buffer pointer is
added to the end of the RBD structure. Begin and end
pointers are used to mark the boundaries of the free
lists.
3.3.1 BUILDING THE CB AND RFA POOLS
3.3.282586 INITIALIZATION
BuilLCB() builds a stack of free linked Command
Blocks, and another stack of free linked Transmit Buffer Descriptors. (See Figures 5 and 6.) Each stack has a
Top of Stack pointer, which points to the next free
structure. The last structure on the list has a NULL
link pointer..
The 82586 initialization data structure SCP is already
set since it resides in ROM, however, the tscp must be
loaded with information. Within the SCP ROM is the
pointer to the ISCP; the ISCP is the only absolute address needed in the software. Once the ISCP address is
determined, the ISCP can be loaded. The SCB base is
obtained from the C~ssyJupport module. The
global variable SEGMT_contains the address of the
Init_586() begins by toggling the 82501100pback pin.
If the 82501 is powered up in loopback, the CRS and
CDT pin may be active. To reset this condition, the
loopback pin is toggled. The 82501 should remain in
loopback for the first part of the initialization function.
-
END FD
BEGIN FD
FD
.....
BEGIN_RBD.
L.t
...
FD
FD
=
STAT 0
EL-S=O
FD LINK
RBD OFFSET
DA
SA
LENGTH
Lr
STAT=O
EL-S-O
FD LINK
NULL
Lf
DA
SA
LENGTH
RBD
RBD
ACT. COUNT
RBD LINK
112588 BUF_PTR
RBUF_SIZE
80188 BUF_PTR
lr
RBUF'· (RBUF_SIZE)
ACT. COUNT
RBD LINK
I"'" 82588 BUF_PTR
RBlJF_SIZE
80188 BUF_PTR
RBD
lr
r-
T
STAT = 0
EL=1 S=O
NULL
NULL
DA
SA
LENGTH
r-
ACT. COUNT
NULL
112588 BUF_PTR
RBUF_SIZE
80188 BUF'_PTA
RBU,. (RBUF_SIZE)
RBUF (RBUF_SIZE)
~~~
..
Figure 7. Free RFA
1·181
231421-6
inter
AP·235
data segment of the handler. The 80186 shifts this value
to the left by 4 and loads it into the SCB base. The SCB
offset is now determined by taking the 32 bit SCB
pointer and passing it to the, Offset( ) function.
The 82586 interrupt is disabled during initialization because the interrupt function is not designed to handle
82586 reset interrupts, To determime when the 82586 is
fmished with its reset/initialization, the SCB status is
polled for both the CX and CNA bits to be set. After
the 82586 is initialized, both the CX and CNA interrupts are acknowledged.
The 82586 is now ready to execute commands. The
Configuration is executed first to place the 82586 in
internalloopback mode, followed by the IA command.
The address for the IA command is read off of a prom
on the PC board.
3.3.3 SELF TEST DIAGNOSTICS
The final phase of the handler initialization is to run the
self test diagnostics. Four tests are executed: Diagnose
command, Internal loopback, External loopback
through the 82501, and Externalloopback through the
transceiver. If these four tests pass, the data link is
ready to go on line.
The function that executes these diagnostics is called
Test_Link(). If any of the tests fail, Test_Link() returns immediately with the Self_Test global variable
set to the type of failure. This Self_Test global variable
is then returned to the function which originally called
Init_586(). Therefore Init_586() can return one of
five results: FAILED_DIAGNOSE, FAILED_
LPB~INTERNAL,
FAILED_LPBK_EXTERNAL,
FAILED~LPB~TRANSCEIVER
or
PASSED.
fAILED DIAGNOSE
FAILED INTERNAL LOOPBACK
FAILED EXTERNAL LOOPBACK
fAILED LOOPBACK
THROUGH TRANSCEIVER
231421-7
Figure 8. Initialization Diagnostics: TesLLink 0
1-182
inter
AP-235
The Diagnose( ) function, called by Test_Link( ), does
not return until the diagnose command is completed. If
the interrupt service routine detects that a Diagnose
command was completed then it sets a flag to allow the
Diagnose() function to return, and it also sets the
Self_Test variable to FAIL if the Diagnose command
failed. If the Diagnose command completed successfully, the loopback tests are performed.
the 82586's static command block list. After the 82586
executes the command, it generates an interrupt. The
interrupt routine, Isr_586(), processes the command
and returns the Command Block to the free command
block list by calling Put_Cb( ).
Before any loopback tests are executed, the Receive
Unit is enabled by calling Ru~Start( ). Loopback tests
begin by calling Send_LpbLFrame(), which sends 8
frames with known loopback'data and its own destination address. More than' one loopback frame is sent in
case one or more of them:'are lost. Also se~eral of the
frames will have been received by the time flags.lpbk_
test is checked.
Get_Cb( ) returns a pointer to a free command block.
The free command blocks are in a linear linked list
structure which is treated as a stack. The pointer cb_
tos points to the next available CB. Each time a CB is
requested, Get_Cb() pops a CB off the stack. It does
this by returning the pointer of cb_tos. cb_tos is then
updated with the CB's link pointer. When the CB list is
empty, Get_Cb() returns NULL.
Two flag bits are used for the loopback tests:
flags.lpbLmode, and flags.lpbLtest. flags.lpbL
mode is used to indicate to the receive section that the
frames received are potentially loopback frames. The
receive section will pass receive frames,to the Loopback
Check( ) function if the flags.lpbLroode bit is set. The
LoopbacLCheck( ) function first compares the source
address of the frame with its station address. If this
matches then the data is checked with the knQwn loopback data. If th!'; data matches, then the flags.lpbk_test
bit is set, indicating a successful loopback. The flow of
the Test_Link( ) function is displayed in Figure 8.
There are two types of nulls, the 82586 'NULL' is a 16
bit offset, OFFFFH, in the 82586 data structures. The
80186 null pointer, 'pNULL', is a 32 bit pointer; with
OFFFFH offset and the 82586 handler's data segment,
SEGMT_, as the base.
3.4.1 ACCESSING COMMAND BLOCKS-GET_
CBO and PUT_CBO
Put_Cb() pushes a free command block back (In the
list. It does this by placing the cb_tos variable in the
returnedCB's link pointer field, then updates cb_tos
with the pointer to the returned CB.
3.4.2 ISSUING CU COMMANDS-ISSUE_CU_
CMDO
3.4 Command Processing
Command blocks are queued up on a static list for the
82586 to execute. The flow of a command block is given in Figure 9. When the handler executes a command
it first has to get a free command block. It does this by
calling Get_CB() which returns a pointer to a free
command block. The CB structure is a generic one in
which all commands except the MC-Setup can fit in.
The handler then loads into the CB structure the type
of command and associated parameters. To issue the
command to the 82586 the Issue_CU_Cmd() function is called with the pointer to the CB passed to this
function. Issue_CU_Cmd() places the command on
INTERRUPT
This function queues up a command for the 82586 to
execute. Since static lists are used, .each command has
its EL bit set. There is a. begilL-cbl pointer and an
end_cbl pointer to delineate the 82586's static list. If
there are no CBs on the list, thel). begirL-cbl is set to
pNULL. (Figure 10 illustrates the static list.) Each
time a command is issued, a deadman timer is set.
When the 82586 interrupts the CPU with a command
completed, the deadman timer is reset.
Issue_Cu_Cmd( ) begins by disabling the 82586's interrupt. It then determines whether the list is empty or
not. If the list is empty, begin and end pointers are
loaded with the CB's address. The CU must then be
started. Before a CU_START can be issued, the SCB's
cbLoffset field must be loaded with the address of the
command, the W/lit_Scb() function must be called to
insure that the SCB is ready to accept a command, and
the deadman timer must be initialized. If the list is not
empty, then the command block is queued at the end of
the list, and the interrupt service routine Isr_586(),
will continue generating CAs for each command linked
on the CB list until the list is empty. .
231421-8
Figure 9. The Flow of a Command Block
1-183
intJ
AP-235
SCB
cel ~OINTER
231421-9
Figure 10. The Static Command Block "ist
3.4.3 INTERRUPT SERVICE ROUTINE-ISR_
5860
Isr_586( ) starts off by saving the interrupts that were
generated by the 82586 and acknowledging them. Acknowledgment must be done immediately because if a
second interrupt were generated before the acknowledgment, the second interrupt would be missed. The
interrupt status is then checked for a receive interrupt
and if one occurred the Recv_IntJrocessing() function is called. After receive processing is check the CPU
checks whether a command interrupt occurred. If one
did, then the deadman timer is reset and the results of
the command are checked. There are only two particular commands which the interrupt results are checked
for: Transmit and Diagnose: The Diagnose command
needs to be tested to see if it passed, plus the diagnose
status flag needs to be set so that the initialization process can continue.
The sqe status bit will be set if the transceiver's self test
passed. However if the sqe status bit is not set, the
transceiver may still have passed its self test. Several
events can prevent the sqe bit from being set. For example, the first transmit command status after power up
will not 'have the sqe bit set because the sqe is always
from the previous command. Also if any collisions occur, the sqe bit might not be'set. This has to do with the
timing of when the sqe signal comes from the transceiver. It is possible that a JAM signal from a remote station can overlap the sqe signal in which case the 82586
will not set the, sqestatus bit. Therefore the'sqe error
count should only be recorded when no collisions occur.
One other situation can occur which will prevent the
SQE status bit from being set. If transmit command
reaches the maximum retry count, the next transmit
command'sSQE bit will not be set.
The transmit command status provides network management and station diagnostic information which is
useful for the "Network Management" function of the
ISO model. The following statistics are gathered in the
interrupt routine: good_transmit_cnt, sqe_err_cnt,
defer_cnt, no_crs_cnt, underruIL-cnt, max_col_
cnt. To speed up transmit interrupt processing a flag is
tested to determine whether these statistics are desired,
if not this section of code is skipped.
The final phase of interrupt command processing determines if another command is linked, and returns the
CB to the free command block list. Another command
being linked is indicated by the CB link field not being
NULL. In this case the deadman timer and the 82586's
CU are re-started. If the CB link is NULL, there are no
further commands to execute, and begin_cbl is set to
pNULL.
The sqe error requires special considerations when used
for statistic gathering or diagnostics. The sqe status bit
indicates whether the transceiver passed its self test or
not. The transceiver executes a self test after each transmission. If the transceiver'S self test passed, it will activate the collision signal during the IFS time.
3.4.4 SENDING FRAMES-SEND...,..FRAME (PTBD,
PADD)
SendJrame() receives two parameters, a pointer to
the first Transmit Buffer Descriptor, and a pointer to
the destination address. There may be one or more
TBDs attached. The last TBD is indicated by its link
1-184
AP-235
field being NULL and the EOF bit set. It is the responsibility of the ULCS to make sure this is done before
calling SendJrame( ).
SendJrame( ) begins by trying to obtain a command
block. If the free command block list is empty, the send
frame function returns with a false result. It is up to the
ULCS to either continue attempting transmission or attempt at a later time. The send frame function calculates the length field by summing up the TBDs actual
count field. After the length field is determined, send
frame checks to see if padding is required. If padding is
necessary, Send Frame will change the act count field
in the TBD to meet the minimum frame requirements.
This technique transmits what ever was in the buffer as
padding data. If security is an issue, the padding data in
the buffer should be changed.
3.4.5 ACCESSING TRANSMIT BUFFERS-GET_
TBDO AND PUT_TBDO
Get_Tbd() returns a pointer to a free Transmit Buffer
Descriptor, and Put_Tbd() returns one or more
linked Transmit Buffer Descriptors to the free list. The
TBD which Get_Tbd() allocates has its link pointer
set to NULL, and its EOF bit cleared. If another buffer
is needed, the link field in the old TBD must be set.to
point to the new TBD. The last TBD used should have
its link pointer set to NULL and its EOF bit set. Figure
II shows the flow chart of getting buffers and sending a
frame.
Put_Tbd (ptbd) is called by the Isr_586() function
when the 82586 is done transmitting the buffers. A
pointer to the first TBD is passed to Put_Tbd().
Put_Tbd() finds the end of the list of TBDs and returns them to the free buffer list.
3.4.6 MULTICAST ADDRESSES
The 82586 handler maintains a table of multicast addresses. Initially this table is empty. To enable a multicast address the Add_Multicast_Address(pma) function is called; to disable a multicast address, Delete_
Multicast_Address(pma) function is called. Both functions accept a parameter which points to the multicast
address. Add and Delete functions perform linear
searches through the Multicast Address Table (MAT).
Add scans the entire MAT once to check if the address
being added is a duplicate of one already loaded. Add
will not enter a duplicate muilticast address. If there
are no duplicates Add goes to the beginning of the
MAT and looks for a free location. If it finds one, it
loads the new address into the free location and sets the
location status to INUSE. If no free locations are available, Add returns a false result.
Delete looks for a used location in the MAT. When it
finds one, it compares the address in the table with the
address passed to it. If they match, the location status is
set to FREE and a TRUE result is returned. If no
match occurs, the result returned is FALSE.
If Add or Delete change the MAT, they update the
231421-10
Figure 11. Flow Chart for Sending a Frame
82586 by calling Set-.Multicast_Address(). This
function executes an 82586 MC Setup command. Set_
Mulitcast~ddress() uses the addresses in the MAT
to build the MC Setup command. The MC Setup command is too big to be built from the free CBs. Free CB
1-185
intJ
AP-235
command blocks are 18 bytes long, while the MC Setup
command can be up to 16,392 bytes. Therefore a separate Multicast Address Command Block (ma_cb)
must be allocated and used. The size of the ma_cb and
MAT are determined at compile time based on the
MULTI_ADD~CNT constant. The design example allows up to 16 multicast addresses.
Since there is only one ma.-:.cb, and it is not compatible
with the other CBs, it must be treated differently. Only
one ma_cb can be on the 82586 command list. The
ma_cb command word is used as a semaphore. If it is
zero, the command is available. If not, Set_Multicast~ddress() must wait until the ma_cb is free.
Also the interrupt routine can't return the ma_cb to
the free CB list. It just clears the cmd field, to indicate
that ma_cb is available.
The 82586's receiver does not have to be disabled to
execute the MC Setup command. If the 82586 is receiving while this command is accessed, the 82586 will fmish reception before executing the MC Setup comand. If
the MC Setup command is executing, the 82586 automatically ignores incoming frames until the MC Setup
is completed. Therefore multicast addresses can be added and deleted on the fly.
ENTER INTERFACE FUNCTION
3.4.7 RESETTING THE 82586-RESET_5860
The 82586 rarely if ever locks up in a well behaved
network; (i.e. one that obeys IEEE 802.3 specifications). The lock-ups identified were artificially created
and would normally not occur. This data link driver
has been tested in an 8 station network under various
loading conditions. No lock-ups occurred under any of
the data link drivers test conditions. However the reset
software has been tested by simulating a lockup. This
can be done by having the 82586 transmit, and disabling the CTS pin for a time longer than the deadman
timer.
An 82586 deadlock is not a fatal error. The handler is
designed to recover from this problem. As mentioned
before, each time the 82586 is given a CA to begin
executing a command, a deadman timer is set. The
deadman timer is reset when a CNR interrupt is generated. If the CNR interrupt is not generated before the
deadman timer expires, the 82586 must be reset.
Resetting of the 82586 should not be done while the
handler software is executing. This could create a software deadlock by interrupting a critical section of code
in the handler. To insure that the Reset_586() function is not executed while the handler is executing, all
of the entry points to the handler (i.e. interface functions) set a semaphore flag bit called flags. reset_serna.
This flag is cleared when the interface functions are
exited.
If the Deadman timer interrupt occurs while
flags. reset_serna is set, another flag is set (flag. reset_
pend) indicating that the Reset_586( ) function should
be called when the interface functions are exited. However if the deadman timer interrupt occurs when
flags.reset_sema is clear, Reset_586( ) is called immediately. Figure 12 shows the logic for entering and exiting interface functions.
231421-11
Figure 12. Reset Semaphore
Reset_586() begins by disabling the 82586 interrupt,
placing the ESI in loopback, and resetting the 82586.
The reset can be a software or a hardware reset. However, there are certain lockups in the 82586 where only
a hardware reset will suffice. (The 82586 errata sheet
explicitly indicates which deadlocks require a hardware
reset.) After the reset, Reset_586() executes a Configure, lA-Setup, and a MC-Setup command; the MC_
Setup command is built from the multicast address ta- .
ble (MAT). The 82586 Command Queues and Receive
Frame Queues are left untouched so that the 82586 can
continue executing where it left off before the deadlock.
This way no frames or commands are lost. This requires that a separate reset CB and reset Multicast CB
is used, because other CBs already in use cannot be
disturbed.
1-186
inter
Ap·235
3.5 Receive Frame Processing
The following functions are used for Receive Frame
Processing:
Recv _Int_Processing( ) Called by Isr_586() to remove FDs and RBDs from
the 82586's RFA
Recv_Frame (pfd)
Called by Recv_Int_Processing(). This function resides in the ULCS
ChecLMulticast (Pfd) Used for perfect Multicast
filtering
Returns FDs and RBDs to
the 82586's RFA
Restarts the RU when in the
IDLE or No Resources
state.
3.5.1 RECEIVE INTERRUPT PROCESSINGRECV_INT_PROCESSINGO
The Recv_IntJrocessing() function is called by
Isr_586() when the FR bit in the SCB is set. The
Recv_Int_Processing() function checks whether any
FDs and RBDs on the free list have been used by the
82586. If they have, Recv_Int_Processing() removes
the used FOs and RBDs from the free list, and passes
them to the ULCS.
The Recv_IntJrocessing() function is a loop where
each pass removes a frame from the 82586's RFA.
When there are no more used FDs and RBDs on the
RFA, the function calls RU_Start(), then returns to
Isr_586(). The first part of the loop checks to see if
the C bit in the first FD of the free FD list is set. If the
C bit is set, the function determines if one or more
RBDs are attached. If there are RBDs attached, the
end of the RBD list is found. The last RBD's link field
is used to update begi~rbd pointer, and then it's set
to NULL.
After the receive frame has been delineated from the
RFA, some information about the frame is needed to
determine which function to pass it to. Since the save
bad frame configure bit is not set, the only bad frame
on the list could be an out of resource frame. An out of
resource frame is returned to the RFA by calling Put_
Free_RFA (pfd). If the flags.lpbLmode bit is set, the
frame is given to the loopback check function. If the
destination address of the frame indicates a multicast,
the check multicast function is called. If the frame has
passed all of the above tests and still has not been returned, it is passed to the RecvJrame() function
which resides in the ULCS.
ChecLMulticast (pfd) determines whether the multicast address received is in the multicast address table.
This is necessary because the 82586 does not have per-
fect multicast address filtering. ChecLMulticast does
a byte by byte comparison of the destination address
with the addresses in the multicast address table. If no
match occurs, it returns false, and Recv_IntJrocessing calls Put_Free_RFA( ) to return the frame to the
RFA. If there is a match, Check_Multicast() returns
TRUE and Recv_IntJrocessing() calls Recv_
Frame(), passing the pointer to the FD of the frame
received.
3.5.2 RETURNING FDs AND RBDs-PUT_
FREE_RFA (pfd)
Put_Free_RFA combines Supply_FD and Supply~BD algorithms described in "Programming the
82586" into one function. The begin and end pointers
delineate what the CPU believes is the beginning and
end of the free list. The decision of whether to restart
the RU is made when examining both the free FD list
and the free RBD list. This is why two ru_start_flags
are used, one for the FD list and one for the RBD list.
Both flags are initialized to FALSE.
The function starts off by initializing the FD so that the
EL bit is set, the status is 0, and the FD link field is
NULL. The rbd pointer is saved before the rbd pointer
field in the FD is set to NULL. The free FD list is
examined and if it's empty, begin-fd and end-fd are
loaded with the address of the FO being returned. In
this case the RU should not be restarted, because there
is only one FD on the free list. If the free FD list is not
empty, the FD being returned is placed on the end of
the list, the end pointer is updated, and the RU start
flag is set TRUE.
To begin the RBD list processing the end of the returned RBD list is determined, and this last RBD's EL
bit is set. If the free RBD list is empty, the returned
RBD list becomes the free RBD list. If there is more
than one RBD on the returned list, the ru start flag is
set TRUE. If the free RBD list is not empty, the returned RBD list is appended on the end of the free list,
the end-rbd pointer is updated, and the ru start flag is
set TRUE.
The last part of Put_Free_RFA() is to determine
whether to call RU_Start(). Both ru start flags are
ANDed together, and if the result is TRUE, the Ru_
Start() function is called.
3.5.3 RESTARTING THE RECEIVE UNIT-RU_
STARTO
The Ru_Start( ) function checks two things before it
decides to restart the RU. The first thing it checks is
whether the RU is already READY. If it is, there is no
reason to restart it. If the RU is IDLE or in NO_RESOURCES, then the second thing to check is whether
the first free FD on the free FD list has its C bit set. If
it does, then the RU should not be restarted. The reason is that the free FD list should only contain free FDs
1-187
inter
when the RU is started. If the C bit is set in the FD,
then not all the used FD have beeq removed yet. If the
RU is started when used FDs are still in the RFA, the
82586 will write over the used FDs and frames will be
lost. Therefore Ru_StartO is exited if the first FD in
the RFA has its C bit set. If the RU is not READY,
and beginJd doesn't point to a used FD, then the RU
is restarted.
(see Figure 13). The LSAP addresses are defined as
follows:
Data Link Layer (Station Component)
OOH
Transport Layer
FEH
Network Management Layer
08H
multiples of 4 in the range
User Processes
OCH < LSAP s FCH
Note that in "Programming the 82586" there are two
more conditions to be met before the RU is started: two
or more FD on the RFA, and two or more RBD on the
RFA. These conditions are checked in Put._Free_
RFAO, and Ru_StartO isn't called unless they are
met.
Each receiving process is identified by a destination
LSAP (DSAP) and each sending process is identified
by a source LSAP (SSAP). Before a destination process
can receive. a packet, its DSAP must be included in a
list of active DSAPs for the data link.
Figure 14 illustrates the relationship between the Station Component and the SAP components. (The SAP
components are user processes.) The Station Component receives all of the good frames from the Handler
and checks the DSAP address. If the DSAP address is
0, then the frame is addressed to the Station Component and a Station Component Response is generated.
If the DSAP address is on the active DSAP list, then
the Station Component passes the frame to the addressed SAP. If the DSAP address is unknown, the
frame is returned to the handler.
4.0 LOGICAL LINK CONTROL
The IEEE 802.2 LLC function completes the Data
Link Layer of the OSI model. The LLC module in this
design example implements a class 1 level of service
which provides a connectionless datagram interface.
Several data link users or processes can run on top of
the data link layer. Each user is identified by a link
service access point (LSAP). Communication between
data link users is via LSAPs. An LSAP is an address
that identifies a specific user process or another layer
TRANSPORT
. LAYER
USER
TASK
1
t
LSAP=OFEH
NElWORK
LAYER
1
~
USER
TASK
LSAP=O~
1
LS~= 10H
USER
TASK
•••
~ LSAP =14H
DATA LINK
USER
INTERFACE
LSAP=08H
1
DATA LINK INTERFACE
!
DATA LINK
CONTROLLER
1
NElWORK MEDIUM
231421-12
Figure 13. Data Link Interface
1-188
SAP
COMPONENT
SAP
COMPONENT
11°
III
•••
SAP
COMPONENT
liN
T
ULCS
~~.-----------.~
LLC MODULE
STATION COMPONENT
HANDLER
~__~82~S~86~__~. ___________ .~
PHYSICAL
231421-13
Figure 14. Station Component Relationship
There are 3 commands and 2 responses which the class
1 LLC layer must implement. Figure 15 shows IEEE
802.2 Class 1 commands and responses and Figure 16
shows the IEEE 802.2 Class 1 frame format.
Commands
Responses
Description
XID
TEST
Unnumbered
Information
ExchangelD
Remote Loopback
UI
XID
TEST
Figure 15. IEEE 802.2 Class 1, Type 1 Commands
and Responses
HEAD
..
-
-,>
(BSAP
I
I
SSAP
DATA
I
TAIL
< ......
I CONTROL I
......
Any frames addressed to active SAPs ,are passed directly to them. The Station Component will not respond to
SAP addressed frames. Therefore it is the responsibility
of the SAPs to recognize and respond to frames addressed to them. When a SAP transmits a frame, it
builds the IEEE 802.2 frame itself and calls the Handler's Send_Frame() function directly. The LLC
module is not used for SAP frame transmission. The
only functions which the LLC module implement are
the dynamic addition and deletion of DSAPs, multiplexing the frames to user SAPs, and the Station Component command recognition and responses. This is
one implementation of the IEEE 802.2 standard. Other
implementations may have the LLC module do more
functions, such as SAP command recognitions and responses. A list of the functions included in the LLC
module is as follows:
DAT:t'!
LLC Functions
231421-14
IniLLlc( )
Figure 16. IEEE 802.2 Class 1 Frame Format
From Figure 15 it can be seen that there are no LLC
class 1 UI responses because information frames are not
acknowledged at the data link level. The only command frames that may require responses are XID and
TEST. If a command frame is addressed to the Station
Component, it checks the control field to see what type
of frame it is. If it's an XID frame, the Station Component responds with a class 1 XID response frame. If it's
a TEST frame, the Station Component responds with a
TEST frame, echoing back the data it received. In both
cases, the response frame is addressed to the source of
the command frame.
1-189
Description
Initializes the DSAP
address table and calls
IniL586()
Add_Dsap_
Add a DSAP address to
Address (dsap, pfunc) the active list
dsap - DSAP address
pfunc - pointer to the
SAP function
Delete a DSAP address
Delete-DsapAddress (dsap)
dsap - DSAP address
Recv-Frame (pfd)
Receives a frame from
the 82586 Handler
pfd - Frame Descriptor
Pointer
Station-Component- Generates a response to
Response (pfd)
a frame addressed to the
Station Component
pfd - Frame Descriptor
Pointer
inter
AP-235
4.1 Adding and Deleting LSAPs
When a user process wants to add a LSAP to the active
list, the process calls Add_Dsap_Address(dsap,
pfunc). The dsap parameter is the actual DSAP address, and the pfunc parameter is the address of the
function to be called when a frame with the associated
DSAP address is received.
The LLC module maintains a table of active dsaps
which consists of an array of structures. Each structure
contains two members: stat - indicates whether the address is free or inuse, and (·p~ap_func)() contains
the address of the function to call. The index into the
array of structures is the DSAP address. This speeds up
processing by eliminating a linear search. Delete_
Dsap_Address (dsap) simply uses the DSAP index to
mark the stat field FREE.
5.0 APPLICATION LAYER
For most networks the application layer resides on top
of several other layers referred to here as ULCS. These
other layers in the OSI model run from the network
layer through the presentation layer. The implementation of the ULCS layers is beyond the scope of this
application note, however Intel provides these layers as
well as the data link layer with the OpenNET product
line. For the purpose of this application note the application layer resides on top of the data link layer and its
use is to demonstrate, exerCise and test the data link
layer design example.
There can be several processes sitting on top of the data
link layer. Each process appears as a SAP to the data
link. The UAP module, which implements the application layer, is the only SAP residing on top of the data
link layer in this application example. Other SAPs
could certainly be added such as additional "connectionless" terminals, a networking gateway, or a transport layer, however in the interest of time this was not
done.
Terminal Mode - implements a virtual terminal with
datagram capability (connectionless "class I" service).
This mode can also be thought of as an async to IEEE
802.2/802.3 protocol converter.
Monitor Mode - allows the station to repeatedly transmit any size frame to the cable. While in the Monitor
Mode, the terminal provides a dynamic update of 6
station'related parameters.
High Speed Transmit Mode - sends frames to the cable
as fast as the software possibly can. This mode demonstrates the throughput performance of the Data Link.
Driver.
Change Transmit Statistics - When Transmit Statistics
is on several transmit statistics are gathered during
transmission. If Transmit Statistics is off, statistics are
not gathered and the program jumps over the section of
code in the interrupt routine which gathers these statistics. The transmission rate is slightly increase when
Transmit Statistics is off.
Print All Counters - Provides current information on
the following, counters.
Good frames transmitted:
Good frames received:
CR C errors received:
Alignment errors received:
Out of Resource frames:
Receiver overrun frames:
Each time a frame has been successfully transmitted the
Good frames transmitted count is incremented. The
same holds true for reception. CRC, Alignment, Out of
Resources, and Overrun Errors are all obtained from
the SCB. Underrun, lost CRS, SQE error, Max retry,
and Frames that deferred are all transmit statistics that
are obtained from the Transmit command status word.
82586 Reset is a count which is incremented each time
the 82586 locks up. This count has never normally been
incremented.
5.1 Application Layer Human Interface
The UAP provides a menu driven human interface via
an async terminal connected to port B on the iSBC
186/51 board. The menu of the commands is listed in
Figure 17 along with a description that follows:
T - Terminal Mode
X· High Speed Transmit Mode
P - Print All Counters
A - Add a Multicast Address
S - Change the SSAP Address
N - Change Destination Node Address
R· Re-Initialize the Data Link
M - Monitor Mode
V - Change Transmit Statil1tics
C - Clear All Counters
Z - Delete a Multicast Address
D - Change the DSAP Address
L - Print All Addresses
B - Change the Number Base
Figure 17. Menu of Data Link Driver Commands
1-190
inter
AP-235
Clear All Counters - Resets all of the counters.
Add/Delete Multicast Address - Adds and Deletes
Multicast Addresses.
Change SSAP Address - Deletes the previous SSAP
and adds a new one to the active list. The SSAP in this
case is this stations LSAP. When a frame is received,
the DSAP address in the frame received is compared
with any active LSAPs on the list. The SSAP is also
used in the SSAP field of all transmitted frames.
Change DSAP Address - Delete the old DSAP and add
a new one. The DSAP is the address of the LSAP
which all transmit frames are sent to.
reinitialized, and the selftest diagnostic and loopback
tests are executed. The results of the diagnostics are
printed on the terminal. The possible output messages
from the 82586 se1ftest diagnostics are:
Passed Diagnostic Self Tests
Failed: Self Test Diagnose Command
Failed: Internal Loopback Self Test
Failed: External Loopback Self Test
Failed: External Loopback Through Transceiver Self
Test
Change Base - Allows all numbers to be displayed in
Hex or Decimal.
Change Destination Node Address - Address a new
node.
Print All Addresses - Display on the terminal the station address, destination address, SSAP, DSAP, and all
multicast addresses.
Re-initialize Data Link - This causes the Data Link to
completely reinitialize itself. The 82586 is reset and
5.2 A Sample Session
The following text was taken directly from running the
Data Link software on a 186/51 board. It begins with
the iSDM monitor signing on and continues into executing the Data Link Driver software.
iSDM 86 Monitor, Vl.O
Copyright 1983 Intel Corporation
.G DOOO:6
•••••••••••• ** •••••••••• ** •••• ** ••••••••••••••••••••••••••••••••
•
•
•
•
•
82586 IEEE 802.2/802.3 Compatible Data Link Driver •
••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
Passed Diagnostic Self Tests
Enter the Address of the Destination Node in Hex -> 00AA0000179E
Enter this Station's LSAP in Hex -> 20
Enter the Destination Node's LSAP in Hex -> 20
Do you want, to Load any Multicast Addresses?
(of or Nl -> Y
Enter the Multicast Address in Hex -> OOAAOOllllll
Would you like to add another Multicast Address? (Y or Nl - > N
This Station's Host Address is: 00AA00001868
The Address of the Destination Node is: 00AAOOOOl79E
This Station's LSAP Address is: 20
The
~ddress
of the Destination LSAP is: 20
The following Multicast Addresses are enabled: OOAAOOllllll
1-191
AP-235
Commands ,are:
T - Terminal Mode
M - Monitor Mode
X - High Speed Transmit Mode
V - Change Transmit Statistics
P - Print All Counters
C -' Clear All Counters
A - Add a Multicast Address
Z - Delete a Multicast Address
S - Change the SSAP Address
D - Change the DSAP Address
N - Change Destination Node Address
L - Print All Addresses
R - Re-Initialize the Data Link
B- Change the number Base
Enter a command, type H for Help - > P
Good frames transmitted:
24
Good frames received:
I
0
CRC errors received:
o
Alignment errors received:
Out of Resource frames:
o
Receiver overrun frames:
o
o
o
Transmit underrun frames:
0
SQE errors:
9
Frames that deferred:
4
82586
Reset:
Lost CRS:
Maximum retry:
-0
Enter a command, type H for Help --> T
Would you like the local echo on? (Y or N) --> Y
This program will now enter the terminal mode.
Press
'c then CR to return back to the menu
Hello this is a test.
,"C CR .,
Enter a command, type H for Help --> M
Do you want this station to transmit? (Y or N) --> Y
Enter the number of data bytes in the frame --> 1500
Hit any key to exit Monitor Mode.
of Good
Frames
Transmitted
#
*'
32
#
of Good
Frames
Received
o
CRC
Errors
Alignment
Errors
00000
r CR
Enter a command, type H for Help --> X
Hit any key to exit High Speed Transmit Mode.
r
CR .,
Enter a command, type H for Help --> R
Passed Diagnostic Self Tests
1-192
00000
No
Receive
Resource Overrun
Errors Errors
00000
00000
inter
AP-235
5.3 Terminal Mode
The Terminal mode buffers characters received from
the terminal and sends them in a frame to the cable.
When a frame is received from the cable, data is extracted and sent to the terminal. One of three events
initiate the UAP to send a frame providing there is data
to send: buffering more than 1500 bytes, receiving a
Carriage Return from the terminal, or receiving an interrupt from the virtual terminal timer.
The virtual terminal timer employs timer 1 in the 80130
to cause an interrupt every .125 seconds. Each time the
interrupt occurs the software checks to see if it received
one or more characters from the terminal. If it did, then
it sends the characters in a frame.
The interface to the async terminal is a 256 byte software FIFO. Since the terminal communication is full
duplex, there are two half duplex FIFOs: a Transmit
FIFO and a Receive FIFO. Each FIFO uses two functions for I/O: Fifo_In() and Fifo_Out(). A block
diagram is displayed in Figure 18.
The serial I/O for the async terminal interface is always
polled except in the Terminal mode where it is interrupt driven. The Terminal mode begins by enabling the
8274 receive interrupt but leaves the 8274 transmit interrupt disabled. This way any characters received from
the terminal will cause an interrupt. These characters
are then placed in the Transmit FIFO. The only time
the 8274 transmit interrupt is enabled is when the ReFunction
FIFO_T_IN()
FIFO_T_OUT()
FIFO_R_IN( )
FIFO_R_OUT( )
ceive FIFO has data in it. The receive FIFO is filled
from frames being received from the cable. Each time a
transmit interrupt occurs a byte is removed from the
Receive FIFO and written to the 8274. When the Receive FIFO empties, the 8274 transmit interrupt is disabled.
The flow control implemented for the terminal interface is via RTS and CTS. When the Transmit FIFO is
full, RTS goes inactive preventing further reception of
characters (see Table 1). If the Receive FIFO is full,
receive frames are lost because there is no way for the
data link using class 1 service to communicate to the
remote station that the buffers are full. Lost receive
frames are accounted for by the Out of Resources
Frame counter.
The Async Terminal bit rate sets the throughput capability of the station in the terminal mode because the
bottle neck for this network is the RS232 interface. Using this fact a simple test was conducted to verify the
data link driver's capability of switching between the
receiver's No Resource state and the Ready State. For
example if station B is sending frames in the High
Speed Transmit mode to station A which is in the Terminal mode, frames will be lost in station A. Under
these circumstances station A's receiver will be switching from Ready state to Out of Resources state. The
sum of Good frames received plus Out of Resource
frames from station A should equal Good frames transmitted from station B; unless there were any underruns
or overruns.
Table 1. FIFO State Table
Present State
Next State
Action
EMPTY
IN USE
Start Filling Transmit Buffer
IN USE
FULL
ShutOff RTS
FULL
IN USE
Enable RTS
IN USE
EMPTY
Stop Filling Transmit Buffer
EMPTY
IN USE
Turn on Txlnt
IN USE
FULL
Stop Filling FIFO from Receive Buffer
FULL
IN USE
Start Filling FIFO from Receive Buffer
Turn Off Txlnt
IN USE
EMPTY
" SEND FRAMES
RECEIVE FRAMES
ASYNC
TERMINAL
231421-15
Figure 18
1-193
inter
AP-235
5.3.1 SENDING FRAMES
The Terminal Mode is entered when the TerminaL
Mode() function is called from the Menu interface.
The TerminaL_Mode( ) function is one big loop, where
each pass sends a frame. Receiving frames in the Terminal Mode is handled on an interrupt driven basis
which will be discussed next.
The loop begins by getting a TBD-from the 82586 handler. The first three bytes of the first buffer are loaded
with the IEEE 802.2 header information. The loop then
waits for the Transmit FIFO to become not EMPTY,
at which point a byte is removed from the Transmit
FIFO and placed in the TBD. After each byte is removed from the Transmit FIFO several conditions are
tested to determine whether the frame needs to be
transmitted, or whether a new buffer must be obtained.
A frame needs to be transmitted if: a Carriage Return is
received, the maximum frame length is reached, or the
send_frame flag is set by the virtual terminal timer. A
new buffer must be obtained if none of the above is true
and the max buffer size is reached.
If a frame needs to be sent the last TBD's EOP bit is set
and its buffer count is updated. The 82586 Handler's
Send_Frame() function is called to transmit the
frame, and continues to be called until the function returns TRUE.
The loop is repeated until a
Return is recieved.
'c followed by a Carriage
5.3.2 RECEIVING FRAMES
Upon initialization the UAP module calls the Add_
Dsap_Address(dsap, pfunc) function in the LLC module. This function adds the UAP's LSAP to the active
list. The pfunc parameter is the address of the function
to call when a frame has been received with the UAP's
LSAP address. This function is Recv_Data_l().
Recv~ata_l() looks at the control field of the
frame received and determines the action required.
The commands and responses handled by Recv_
Data_l() are the same as the Station Component's
commands and responses given in Figure 15. One difference is that Recv_Data_l(J will process a UI
command while the Station Component will ignore a
UI command addressed to it.
# of Good
# of Good
.Frames
Transmitted
Frames
Received
32
0
Recv_Data_l() will discard ,any UI frames received
unless it is in the Terminal Mode. When in the Terminal Mode, Recv_Data_l() skips over the IEEE 802.2
header information and uses the length field to determine the number of bytes to place in the Receive FIFO.
Before a byte is placed in the FIFO, the FIFO status is
checked to make sure it is not full. Recv_Data_l()
will move all of the data from the frame into the Receive FIFO before returning.
When a frame is received by the 82586 handler an interrupt is generated. While in the 82586 interrupt routine the receive frame is passed to the LLC layer and
then to the UAP layer where the data is placed in the
Receive FIFO by Recv_OctaLData_l(). Since
Recv_Data_l() will not return until all of the data
from the frame has been moved into the Receive FIFO,
the 8274 transmit interrupt must be nested at a higher
priority than the 82586 interrupt to prevent a software
lock. For example if a frame is received which has more
than 256 bytes of data, the Receive FIFO will fill up.
The only way it can empty is if the .8274 interrupt can
nest the 82586 interrupt service routine. If the 8274
could not interrupt the 82586 ISR then the software
would be stuck in Recv_Data_l() waiting for the
FIFO to empty.
5.4 Monitor Mode
The Monitor Mode dynamically updates 6 station related parameters on the terminal as shown below.
The Monitor_Mode() function consists of one loop.
During each pass through the loop the counters are
updated, and a frame is sent. Any size frame can be
transmitted up to a size of the maximum number of
transmit buffers available. Frame sizes less than the
minimum frame length are automatically padded by the
82586 Handler.
The data in the frames transmitted in the Monitor
Mode are loaded with all the printable ASCII characters. This way when one station is in the Monitor Mode
transmitting to another station in the Terminal Mode,
the Terminal Mode station will display a marching pattern of ASCII characters.
CRC
Errors
Alignment
Errors
No
Resource
Errors
Receive
Overrun
Errors
00000
00000
00000
00000
1-194
inter
AP-235
5.5 High Speed Transmit Mode
The High Speed Transmit Mode demonstrates the
throughput performance of the 82586 Handler. The
Hs_Xmit~ode() function operates in a tight loop
which gets a TBD, sets the BOF bit, and calls Send_
Frame(). The flow chart for this loop is shown in Figure 19.
The loop is exited when a character is received from the
terminal. Rather than polling the 8274 for a receive
buffer full status, the 8274's receive interrupt is used.
When the Hs_Xmit_Mode( ) function is entered, the
hs~tat flag is set true. If the 8274 receive interrupt
occurs, the hs_stat flag is set false. This way the loop
only has to test the hs_stat flag rather than calling
inb( ) function each pass through the loop to determine
whether a character has been received.
The performance measured on an 8 MHz 186/51 board
is 593 frames per second. The bottle neck in the
throughput is the software and not the 82586. The size
of the buffer is not relevant to the transmit frame rate.
Whether the buffer size is 128 bytes or 1500 bytes,
linked or not, the frame rate is still the same. Therefore
assuming a 1500 byte buffer at 593 frames per second,
the effective data rate is 889,500 bytes per second.
This can easily be demonstrated by using two 186/51
boards running the Data Link software. The receiving
stations counters should be cleared then placed in the
Monitor mode. When placing it in the monitor mode,
transmission should not be enabled. When the other
station is placed in the High Speed Transmit Mode a
timer should be started. One can use a stop watch to
determine the time interval for transmission. The frame
rate is determined by dividing the number of frames
received in the Monitor station by the time interval of
transmission.
231421-16
Figure 19. High Speed Transmit Mode
FlowChart
1-195
intJ
AP·235
APPENDIX A
COMPILING, LINKING, LOCATING, AND RUNNING THE
SOFTWARE ON THE 186/51 BOARD
*********
Instructions for using the 186/51 board
*.****.**
Use 27128A for no wait state operation. 27128s can be used but wait states will have to be added.
Copy HI.BYT and LO.BYT files into EPROMs
PROMs go into U34 - HI.BYT and U39 - LO.BYT on the 186/51 board
JUMPERS REQUIRED
WIRE WRAP
Jumper the 186/51 board for 16K byte PROMs in U34
and U39 Table 2-5 in 186/51 HARDWARE REFERENCE MANUAL (Rev-001)
E36-E47IN
E39-E44IN
E79-E45IN
186/51(ES)
E1!?1-E152 OUT
E152-E150 IN
E94-E95IN
E100-E1061N
E107-E113IN
E133-E134 IN
186/51 (S)/186/51
E199-E203 OUT
E203-E191 IN
E120-E1191N
E116-E1121N
E111-E1071N
E94-E93IN
also change interrupt priority jumpers - switch 8274
and 82586 interrupt priorities
E36-E44 OUT
E39-E47 OUT
E37-E45 OUT
E43-E50 IN
E46-E47IN
E90-E48IN
E43-E47 OUT
E46-ESOOUT
E44-E48 OUT
USE SDM MONITOR
The SDM Monitor should have the 82586's SCP
burned into ROM. The ISCP is located at OFFFOH.
Therefore for the SCP the value in the SDM ROM
should be:
ADDRESS
FFFF6H
FFFF8H
FFFFAH
FFFFCH
FFFFEH
DATA
XXOOH
XXXXH
XXXXH
FFFOH
XXOOH
To run the program begin execution at ODOOO:6H
1-196
intJ
AP-235
I.E. G DOOO:6
GOOD LUCK I
••••••••••
submit file for compiling one module:
••••••••••
run
cc86.86 :F6:%O LARGE ROM DEBUG DEFINE(DEBUG) include(:F6:)
exit
••••••••••
submit file for linking and locating:
••••••••••
run
link86
:F6:assy.obj, :F6:dld.obj, :F6:11c.obj, &
:F6:uap.obj, lclib.lib to :F6:dld.lnk segsize(stack(4000h)) notype
10c86 :F6:dld.lnk to :F6:dld.loc&
initcode (ODOOOOH) start (begin) order(classes(data, stack, code)) &
addresses (classes (data(3000H) , stack(OCBOOH), code(OD0020H)))
oh86 :F6:dld.loc to :F6:dld.rom
exit
*********.
submit file for burning EPROMs uSing IPP5:
ipps
i
86
f :F6:dld.rom (OdOOOOh)
3
2
1
o to :F6:10.byt
Y
1 to :F6 :hi. byt
y
t 27128
9
c :F6:10.byt t p
n
C :F6 :hi. byt t P
n
exit
1-197
**********
inter
AP-235
IPCO/USR/CHUCK/CSRC/DLD. H
****··*·.·*--*--------_.-._.-*
1**.*******••••••*******••••**.** ••••**.** ••
*
*
*
*
*
***.*****.*.*******.****.*****
•• ***.*.**•• ***••• *.****_.__._._._-_•• _._--/
.doflno INUSE
o
.ct.,flinl EMPTY
1
2
1
1
.doflno
.dofino
.doflno
.dUino
.deflno
FULL
FREE
TRUE
FALSE
NULL
o
OIFFFF
12B /* ",cllvi buff .... ,izi */
las 1* tran •• i t bu.,f .... ,111 *1
.dofino RBUF _SIZE
.dl,ine TBUF _SIZE
.doflno ADD..L£N
.doflno IIULTI_ADDR_CNT
6
16
t .. ,.dl' unsigned ,hol't int u_Ihol'tl
/* " •• ults ""Otl Tllt_LinkC):
.doflno
.dofino
.dofino
.dofino
.doflne
10ad.d into Sllf_TI.t eh .... */
PASSED
FAILED...DIAQNOSE
FAILED_LPBK_INTERNAI..
FAILED_LP8KJOXTERNAI..
FAILEDJ-P8K_TRANSCEIVER
'* Fra•• Commlnds *1
*dlf1ne
0
1
2
3
4
1* Unnumb.",.d In'o" .... tlo" F,.,.e *1
1* Elchang. Identification *1
1* Remot. Loopback TI.t
I . Poll/Final Bit Position *1
1* (olllland/R •• pon,. bit in SSAP *1
0103
OlAF
0lE3
0110
0101
.d.'ine
.d.flne
.d.'ine
UI
XID
TEST
PJ'_BIT
C_RJlIT
Idefinl
DBAP _CNT
B
1* Numbl'" o • • 11o... bll DSAP., must be • multiple
of 2*"'" .nd DBAP add,., •••• a.signed flust be
divislbl, bV 2**(8-N>.
(i. e. tho N LSBs lOust bo 0) . ,
"define
DSAP _SHIFT
5
I•
• d,fine
UD_LENGTH
6
1* Numb.,. of Info blJte.
*dlflnl
*'
DSAP _SHIFTS must equal 8-N *1
'0,.
XID R.spon., ,,. ••• *1
1* S"stem Configul'ation Point.,. SCP *1
.tl"uct SCP
v_short I".bus, 1* 82:586 bus lIIidth, 0 1 - B bits *1
16 bit.
231421-17
1-198
intJ
AP-235
IPCO/UIR/CHUCK/CIRC/DLD. H
u_,hort .luntt2],
u_,ho,., ilep1, /. 10••,. '6 bit' 0' '.ep .......... */
U_.ftD.. '
iseph.
I . uppn 8 bits D' hep .• dd ..... • 1
).
PDI~' ...
I . Int ..... dl.h 8y.h. CDnfl,u"."Dn
.'~ue'
ISCP (
ItUIV
I
/ •••,
'*
to 1
It,
cpu b •• o .... i t ' .h·"
CA,
e l ..... d by 8liUI86 •• h ....... In. *1
u_,hort of ••• "
0"'.' of 1"lt. . control It lac l ./
u_Iho'l't b ••• l , /. b••• D' IVlt •• cont,..l Itlock . ,
.
,
v_,hol"
IICP .1
.
U_I"O.. t
)
Bv,te. Con',"ol
• t~uet ICI
11oe~
(
•••• a
I
ICI . ,
u_Iho ... '
.'a',
u_,hol't;
eb~_Df . . . t.
,. I •• tu • •D~ • • ,
,. ,Q'''.'
,.....
aceullUla,e' *,'*'* F....... 10lt"'''''1''1
*'
'* OV.,."un .,.,. • .,.,becau. ,•• o. no R.,ou!'e •• *'
u_'hol"t c.tI,
/ . CO"'". 1If.?d . /
D' fi~.t eD_n. blD" in elL 0'
v_'ho"t ",'a_o•••• t, '0 0 . . . . ' Df fi~.'
d •• e .. ip"" in RFA 01
u_'h 01" , c ... c_.... ".,
/* CRe 8'1"ftO,.,
v_Iho ... t .In_.... ''.'
Aliln••nt
u_Iho,..' "Ie_e
OY'r __ ... ".,
v_'hOT't
,..,..J
).
'0
C. . . .nd
.'~ue'
11De~
CB
.,
'*
'*
(
v_'ho1"' 1'.1u
u_'hor' c... ,
,St.tuI, of Co. . ."cf
, . -Co-.ncf
lIn~ Ii_ld .1
u_Iho,., 1 :l.nllJ
v_Ihol"'" ' .....1',
v_,ho,.,
,.,..,
u_sho,.t p.,..3.
u_sho,., p.,.M.
u_s .. o,.t p.,..S.
u_s"Ol't
I.
./* P....... , .....
*'
*'
,.1''''
Multle •• t Addu . . CD_nd
.'~ue'
*'
11De~
PIA_CI<
u_.hO... t It.t.
u_sho ... ' c.d.
v_.ha,., I1ftk.
u_.tto.....c_cnt.
PIA_C• • 1
'*
*'
*'
'* Mu."." of Me .dd,.•••••
*'
10 He
Status of Co. .and
, . Co. . ."d
, . L1ftk f1.1d */
eh.~ .e~dd~tADD~EN*MULTI~DR_CNTJ.
).
, . Tun •• 1t
.'~ue'
lu'''~
TID
.dd~ •••• ~ ••
*'
D.. e~lp'o~ TID .1
(
231421-18
1-199
Ap·235
IPCD/UBR/CHUCK/CSRC/DLD. H
U_Iho,.,
u_Ihort
u_Ihol"
u_,hoort
I'"uet
.C1:_C"tl
link,
1* Nu.bl'''' o. but •• in buf'." *1
'*~
t to n •• t TBD . ,
••
,I' o.,
bu".'"
upp." S bits 0' bu"." .dd,. •••
to" •• 16 bit. 0'
buff_I.
.dd,.. ••• *1
*1
bu'fJu
1*
_Itu" -P'1'"
1* not u •• d ltV th. ~B.· u •• d It" th.
10ft...1". to ••v • • dd,.. ••• t"tlnst_tlon
!'outin.. *1
TI
I. T".n •• lt luff ..... *1
","uc:t TB
.
0(
ch.,. •••• nBUF JlIZEl.
)
• '1'Uc'
FD
(
u_Iho,., ,tatJ
U_IltO,., .1_1'
u_,ho,..t 1 in III
/. Sot.tu. Word of FD *1
,I' Receivi bu".'"
t
d'lct'ipto1" o., ••
/. EL and B bit. *1 '
1 ink "'. n •• FD *1
u_Iho,..' 1"lItd_o" •• tJ
I.
t *1
ch.,. •••• _ ••• l'[ADDJ.EMl'/*D. . tin •• ion . . . ,. . . . *1
chal' .,.c_add"tADDJ.ENl,
u_.ho,., l.ng.h.
'*
*'
Boul"ce add,... •••
Iff L.nl.h 'hU *1
).
1* R.c.iv. luf' ... D. . c,.ip'o" RBD *1
.tl'uc' RID (
v_shoT"
.ct_cnt'
1* Actual nUMb.,.. of b\lt •• ,..ceived *1
v_'hol"
linl"
1* D, . . . t to n.xt RBD *1
1* L.o .... ,. 16 bit. of 'ltu •• I''' .dd,. ••• *1
1* upp • .,. a It i
of buff.,. add ...... *1
/* 'IiI. of buff." *1
1* not u •• d It" the 586. u •• d It" the
'I
v_Iho,., buff_II
u_'ho,,' ltv" _hi
U Ihort
lirll
1i''rUc:t R8 .buf' J''I"'
10.t...". to •• v. address t,..nsl.'Uon
'routine *1
.tl'uct RI
1
out .. (O.FFK. 0.E009I1
'*1* .".tt,ENabi.
•
,..,'1'1'" *'
0 to Ti •• rl count
Ut In n .... l "od./Control .... h .... *1
S.t
R••• t_Ti ... eout ( )
(
Int'_Ti •• ,.C» /. 186'. Tl •• ,. 2 il • ,,. •• eall ... flo,. Tl ••,. 1. Jt o-locll. Ti ...,. 1,
IV.,. .. 32.7 ••• e. Th. d ......" ti •• Dut i • • • t 'DI' 1.25 •• c: . /
ou, .. (O.FF3S. O.OOOCh
1* S.t n .... l In .... ~upt Contul · .... h .... *1
out .. (O.FFIo2. O.FFFFII
1* •• t . . . count .... h .... fo .. U .... 2 to. OFFFFH *1
out .. (O.FFIIA.
:ISh
1* •• t . . . count .... h .... II
tt .... 1,*1
aut.CO.FF... o.COOat,
, . Set
,.:a MDd./Cant"'Dl
*1
out.(O.FFIIE. 0.1000'''1
1* S.t n ..... 1 "od./Control .... 1..... *1
out.. (O.FF2S. Cln.. (O.FFael • O.FFEFlh 1* In*U. 1810 n ..... l In ....... pt *1
outblO.E2. (ln~ (0.121 • O.OOEFIII
1* .n.bI. 10130 Inh .... upt ' .. Oil S01810 *1
'0..
Ti ••
,._.i.'.,.
1* .nd bnd ....... uppo .. t 'U"ctio". *1
Cha .. _Cnt( I
231421-24
1·205
inter
IPCO/USR/CHUCK/CSRC/DLD. C
leb. CT'c_e"" • • 0,
leb .• 1" __ .,." • • 0;
leb. ".c_e,." •• OJ
leb. OV'r __ "1"5 -
OJ
good_I.! t_cnt • OJ
und.,.."u"_cnt • 0,
no_,,,,_cnt • OJ
d• .,.", _cnt - OJ
.,e_e",. _cnt -
OJ
mill_col_cnt • OJ
".cv_'"••• _cnt • 0,
r ••• t_cnt • 0,
ItT'Uct ISep .pilcp.
u_'hoT't ii
,'".uci; MAT .pmat,
NO..ESI J.OOPBACK.
I . Don.
h~ B2501.
in 10ap'.cll *1
In.ctiv.te. CRB If po .. ered up
ESIJ.00PBACK.
1* Initialilation DLDI int.rrupt veeta,., *1
init_tntv( "
Inlt_Tim.,..(
'J
fl •••. ,. ••• t_••••• OJ
fla,l. ,. ••• t..".nd - 0;
fla.l. stat_on. 1,
pilep·
OxOOOOFFFO
J
I. Initialile the ISCP point.,..1
piICp->buIV - tl
pilcp->off •• t .
Off •• t( •• ,b',
pilcp->b . . . 1 • BEO..,. « 4.
pl.cp->b ••• 2 • CBEO"T » 12) • OIOOOF •
*'
pNULL • Bui1d-"t~CNULL).
I. build. NULL pointo~ - BOBI. typ.: 32 bih *1
BuildJUa(),
/* lnlt Receive F" ••• '/"' ••
Bulld_CbCl. 1* Init Co..... nd Block I i . t . ,
ma_cb. c:md • 0,
Multic •• t add" •• " " ••• phD". init *1
'*
Cl •• ,,_Cnt()1
leb .• t.t • OJ
CA.
I • ..ait fn the 5BIo to co.ploto initiali •• tion . ,
'01' ( i • OJ
i (. OxFFOO,
i++)
231421-25
1-206
Ap·235
IPCO/USR/CHUCK/CSRC/DLD. C
if (Ieb .• 10.1: . - (ex leNA»
tn' •• ' I
i f (I >OIFFOOI
Fat.-IC"DLD: in110 - Did not get an int.,. ... upt
.'t.,.
R••• t/CA\n"),
1* Ac" the r ••• t Int ....... upt *1
leb. clld • (eX I CNA),
C....
W.lt_ScbO.
En8blo
___ Intll.
'*
aeb. (bl_off •• t • Off •• tC.cb(01)i
leb. ,,' __of, •• t • O" •• tC.'dCO]),1
'0'1" U • OJ i (ADD..LENJ 1++)
who .... iCCADD.-LEN - 1) - il -
link aeb to cb and ,d lists
*'
inbCwho.",i_io_.dd + 1*:2),
1* Initi.-lizat1on the Multica.t Add,. ••• Tab1. *1
for (pmat • •1II.-1oCO]1 p•• t
p ... 1o-),1o.-, - FREEl
<-
ldIl.tCI'IULTI_ADDR_CNT -
Can'lgun( INTERNALJ.OOPBACKI.
'* S.t
IlJ
PINt++)
1* Put 586 in internat loopbaclc *1
up the .t.tion address
*'
1* run diagnoltic. *1
r •• t_Link();
I'
(Self_T •• t
!- PASSEDI
,..turnCS.l' _T •• t),
Con'igu".CNO_L00P8ACIU;
'* Con'igu,..
the 82586 *1
,..turneS.I' _T •• t)1
Bull dJ"a ( )
{
struct
.truct
• t1'uct
unligned
FD
RBD
RB
long
.p'di
.pl'bd •
.pbu',
b8dd.
1* Build. line.r linked 'ram. d.scriptor li.t *1
'a,. (p'd • "'dtOl. pfd
<- ..utFD_CNT
- I]; pfd++)
p'd->.t_t • p.d->el_, - OJ
pfd->l1n • • O,,..tlpfd+ll.
p'd->,.bd_a,,..t • NULL.
231421-26
1-207
inter
AP-235
IPCD/USR/CHUCK/CSRC/DLD. C
--p'd;
1* paint to It'dCFD_CNT - :1 J *1
pfd->llnk - NULL,
1* last 'd link 10 NULL *1
p.d->.I_, - ELBITi
1* l •• t fd h •• EL bit •• t *1
"_111"_"d - pfd • • 'd[O],
1* point to first fd *1
pfd-)l"bd_o".et - O'f •• t(lkrbdCOJ)J
1* link first 'd to fir.t ",bd *1
end_fd •
'*
faT
Build. lin •• ,. linked receive buf'.", d •• criptor lilt *1
(prbd -
pbu, •
1c1'bdtO].
lc"bu'[Ol,
pl'bd
<-
IcrbdtRBD_CNT -
prbd->buff _1 - badd,
»
prbd->buff _h - badd
prbd->buf. J'h' - pbuf'
pT'bd->.ct_cnt.
1].
pl'bd++,
badd .. SEOMT « 41
"add +- Offs.t(pbuf);
pbuf++) {
II..
01
pT'bd->link • O'f •• t(p"bd + 1)1
prbd->.h. - RBUF _SIZE,
end_l'bd • --prbdl
prbd->lInk - NULL,
prbd->Iiu I- ELBIT,
luild_CbO
<
,tT'uct
Itruct
.t.,.uct
unsigned
1* lut rbd poinh to NULL *1
1* 1.lt ,.bd h• • • 1 bit •• t *1
1* 8uild • • tack of ,,.. •• commend block. *1
CB
.pcb;
TBD *ptbdJ
T8
*pbu',
long
baddJ
floT' (pcb. Iccb[Oll pcb <- IccbrCB_CNT - 1];
pcb->atat - OJ
pcb->cmd • ELBITJ
pcb->link • O.f •• tCpcb + 1)J
pcb++)
0(
)
--pcbl
bagin_cbl = end_cbl pcb->Unk -= NULL.
pNULLI
cb_tol - Secb COli
1* BUIld II .. tack of transmit buf'.l" d.,cl"iptors *1
for (ptbd • S.tbd[Ol. pbu' - S.tbu'[O]. ptbd <:- s.tbdnBD_CNT - 11.
ptbd++,
pbuf++)
<
• TBUF_SIZEi
ptbd->lIct_cnt
ptbd->link • O,,..t(ptbd + Il'
b.dd • SEQ"T
«
4,
231421-27
1-208
intJ
AP-235
IPCD/UBR/CHUCK/CSRC/DLD. C
badd _ Off . . tcpbuf).
ptbd->buff_l - badd.
ptbd->buff _h - badd »
ptbd->buf' -It.,. - pbu',
--ptbd.
ptbd->lInk - NULL.
1obd_1ool • • tbdCOlJ
1* l . . t tbd link Is NULL *1
1* Set the Top 0' the Stacll *1
'* get. Co. . ."d Ilock
I'ruei;
C8
u ..
'T'OIi the fr •• 1 ist *1
*O.t_CbC) /* ,..tu'I'n .. point." to • 're. co...... nd black *1
(
,tT'uct
CB .pcb.
if CO'f •• t(p.:b - cb tal> •• NULL)
.... turn (pNULL) J
cb_tol. (st"uct C8 .> 8uild_PtrCpcb-)link)J
pcb->link • NULLJ
.,..tuT'n(pcb)J
1* Put .. Coramand Iloclc bacll onto the ,.,. •• lilt *1
struet
CB .pcb,
pcb-).1o.1o • 0;
pc:b->link . 0 " •• t(cb_1ool);
cb_tol - pcb.
510.,."C1o TID
*Oet_Tbd()
'* ,..tu,.n ..
pointe" t o . fr.e t,..nlmit
d •• c"lp1oo1' */
_truet
TBD
bu"."
.ptbdJ
flagl. ,. ••• t_•• m• • 1;
Di •• ble_5S6_lnt( h
if «ptbd - tbd_too) !- pNULL) (
1obd_1ool. CltT'Uct TBD .> Build_Pt,.(ptbd->link);
ptbd->lInk a NULL.
}
En.ble_586_lntC ),
'I_g •. r ••• t_••••• O.
if (flagl. n .. t ..... nd
1)
R••• t_5Bb( ),
1'.tuJ"n(ptbd);
231421-28
1-209
inter
AP-235
IPCO/UBR/CHUCK/CBRC/DLD. C
struet
Ten
*ptbds
(
strue t
*p ,
TBD
,. find the end of the tbd lilt ",eturned. ptltd il the bltginning *1
'aT' (p • ptbd;
p->linll !- NULL,
p->.ct_cnt • TBUF_SIZE.
p->linll • O" •• t(1;b._1;olh
tbd_toft
-= ptltd,
Itruet
CB
~f
P -
C.t,.uct TBD
~)
Butld_PtrCp->link»
1* cl •• ,. EOFBIT and ",d.t. ,izlt on l •• t
tltd *1
*pcbs
«pcb. get_Cb(»
_. pNULL)
Fatal"'d1d. c - S.tAd.,.. ••• - couldn't •• t • CB'n")J
'."dlf
1* DEBUe *1
bcoP'l( (cha,. *)lcpcb->p.l'lItl • •"'ho .... iCOl, ADD_LEN)J
1* Inove the p,.Oll
add"es. to IA emd *1
pcb->clld •
IA I ELBITJ
ISlue_CU_",md (pcl));
for (stat
= FALSE,
stat . - FALSEJ
) (
foT' (1=0. i<-OxFFOO. i++)
l ' (scb.,.d
0)
b"lt.k;
1f (i > OxFFOO) (
Bug("DLD: Seb command not cl ••,,\""),
CA;
.1&.
stat· TRUE,
231421-29
1-210
inter
Ap·235
/PCO/USR/CHUCK/CSRC/DLD.C
>
J •• u._CU_C.dCpcbl /* Gu.u. up • co••• nd .nd i •• u • • • t.rt
C~
co••• nd if no
oth.r co...nds .r. tu.u.d */
<
.truct
CB
*pcb,
Di •• bl._SS~_IntC)'
if Cb.gin_cbl •• pNULLI < /. if the li.t i. in.ctiv • • t.rt CU */
b.gin_cbl • •nd_cbl • pcb,
.cb.cbl_off •• t .0ff •• tCpcbl,
W.it-.scb( I,
.cb. c.d • CU_START'
S.t_Ti •• outCI,
/* •• t d•• dm.n tim.r for CU */
.ls.
CA,
)
>
<
.nd_cbl->11nk • Off •• tCpcb),
.nd_cb 1 - pcb,
En.bl._5S~_IntCI'
>
Jsr7C)
<
>
outbCOIEO.
Jsr~C
<
>
01~711
/* EOI BOl30 */
I
Writ.C"\nlnt.rrupt
outbCOIEO. OI~6)1
~\n"),
/* EOI 80130 */
JsrSC I
<
>
Writ.C"\nlnt.rrupt 5\n"II
outbCOIEO. OI~5I,
/* EOI 80130 */
/* D•• dm.n Ti •• r Int.rrupt S.rvic. Routin. */
/* Int.rrupt 4 */
R••• t_Ti •• outCI,
if Cfl.g •. r ••• t_•••• _. 11
fl.gs.r ••• t-p.nd • 1,
.1 ••
R••• t_5B~C I,
TJI£R1..EOI_801B~I
TIMER1..E0I_80130,
>
/* Int.rrupt 0 i. U.rt 1n UAP "odul. */
/* Int.rrupt 2 1. T1m.r 1n UAP "odul. */
231421-30
1-211
AP-235
IPCD/USR/CHUCK/CSRC/DLD. C
Io~1
0
(
Wl"ite(lI\nInt.,.,.up' 1\"-).1
outb (OxEO. Ox61 I.
1* EDI 80130 *1
1* 586 Int.r ... upt •• "vic. routine;
u_sho,.t
struet
Int."rupt 3 *1
'tat_Ielt'
.pcb.
CB
Welt_ScbO,
leb. cmd • 'stat_Ieb - leb. ,tat) &.:
(ex
I CNA I FR I RNR).
CA.
If (.ht_.cb .. (FR I RNRll
Recv_lnt_Proc ••• ing (),
i'
(Itat_Ieh • eNA) (
1* end of cb ,,.oc ••• ing *1
R.I.t_Ti •• oute)J
1* cl •• " d •• d.an tim."
pcb. SUildJ'tl"Clcb chl_off •• t),
*1
i f (b.gin_cbl •• pNULLH
BUIC"OLD: b.gin_cltl •• NULL in :l.nt.1""upt ,.outin.\n l , ) ,
".tu1"n,
i f «pcb->sht .. OxeOOOI
!. Ox8OOO1
Fatal (I'DLD: C bit not .et 01' 8 bit •• t in tnt.,.,.upt 1"outin.\n"),
•• ndi'
'*
DEBUg *1
... itch (pcb->c .. d .. CMD_I'IASKI (
ce . . TRANSMIT:
1*
i'
Iq.. b i t . 0 and the,.. w..... no collilionl -> 1,- .""'01"
thil condition will occur on the fl,.,t t,.ansmi •• ian if
the,.. life". no coll'lionl, or if the p .... vioul t ... anl"it
CD_and ..... ch.d the ma. collision countl and the cu ....... nt
t.,.ansmisstDn had no coll i'lionl -,
i f «pcb->.tat .. (SOEI1ASK I I1AXCDLI'IASK I CDLLI'IASKll m= 0)
++'1 .... _ • .,. ... _cnt;
i f (pcb-:>.tat .. DEFERMASK)
++d.f • .,. _cnt;
231421-31
1-212
AP-235
IPCO/USR/CHUCK/CBRC/DLD. C
I' (pcb->.tat • NOERRBITl
++100'_1.1 '_entJ
.1 •• (
If (pcb->.ht • NQCRII11ASK)
++no_c",,_cnti
H
(pcb->.tat • UNDERRU_SK)
H
(pcb->.tat • "",XCOL"",SK)
++••• _col_c"tl
++und.,..,..u"_cnt,
~
if (pcb-:>p.".l !- NULL)
Put_lbd (Bui Id-"t~ (pcb->pa~ .. I» J
b,. •• 11I
c . . o DIAQNOBE:
'1 •••. di •• _done -
lJ
if «pcb->.tat • NOERRBIT) •• 0)
Sol' _Tnt • FAILED"pIAONOBEJ
b,.. •• lu
d."Ault:
if (pcb->Unk •• NULL)
begin_cb! • pNULLI
bogin_cbl • Build-"t~Cpcb->1ink)J
leb. cbl_o., •• t • pcb->11"1I1
Wait_ScbClJ
Icb. enid. CU_START'
CAJ
Weit_ScbClJ
Set_TlI11Route),
1* START d •• dman tim .... *1
~
'* cllock••,.. ••••
Me_SETUP emd
pha".
th.t
i f « pcb->cJld • CIID-"_) •• Me_SETUP)
pcb->emd • OJ
blO1'd,
10
this will implement a
i t won't be ,..used until
i t i . completed *1
.1 ••
Put_Ct.(pcb)J 1* Don't l'eturn Me_SETUP emd blOck. It ' , not a
•• ne",.1 pUl'po •• command block from f" •• CB list *1
dis.bl.()J
EOI_SOI30J
1* di •• bl. cpu int 10 that the 586 ill' ..,ill not nelt *1
231421-32
1-213
AP·235
IPCD/UBR/CHUCK/CBRC/DLD. C
RecY_lnt,JI'rDc ••• :lnIC)
(
•• ruet
.truet
*,.d.
FD
RBD
.... '
*,,.bd,
'*
the For •••
. . ./
'* point. to the .i .... "ltd fafo1'... thethe .,.."'.•••
*'
point. to
D.,c1'ipto1' . ,
I . point. to the 1a.t
,,~d
t
'01' (p.,I • b_.ln_.d. p,,I !- pNULL. p.d • ".gin_.d)
I' Ip'd->at.t • CIITI (
hgln_fd - lat,.uct FD
lulld...pt,.lp'd->lInkl.
P,.U - lat,.uct RID e, luild...pt,.lp.d->Y'bd_o""U,
if (p ... bd !- pNULL) (
check to ••• if • lIuf'e'r i . attach.d *1
*'
'*
i f Ip,.U !- hgln_,.bd~
Fatal« "OLD: p'I'ltd !- " •• 1"_1"1111 in Recv_lntJl'oc ••• :lng\n")J
.end I. I. DEIUg el
'0,. III - P,.U. IIl->.ct_cnt. EDFIITI !- ECFllT.
Il - lat,.uct RID e, lulld...pt,.I 1l->lInkl "
b.gln_"U - lat,.uct RID
1l->lIn~ - NULL.
*'
lulld...pt,.IIl->lInkl.
~
I' Ipfd->at.t • DUTJIFJlESOURCEB'
PutJ'.... JlFAlp.d I'
el •• (
/. i'
the OLD i . in a 100p".cll t •• t,
i f Ifl.ga. Ipb~...oood. -- 11
Loopb.c~_Chec
eheell the ,.,.•••
".ey
*'
k I p'd"
81 ••
'* i.
it ' • • •ultic •• t .dd,. ••• checll to ••• if it '.
If I
81 ••
(
in the _ultica.t add" ••• table,
IIp.d->d . . t...oodd,.[OJ .011 PutJ'.... JlFACp'd ,.
i'
not d:l.c."d the ,,. •••
*'
011 . . I!CheckJluIUcntlpfdll'
Recvj" ••• Cpfd),
++r.CY_'1" ••• _cnt,
~
~
~
81 •• (
Ru_St.","'C)J 1*
I.
RU It •• Ion. into no "' •• OU1"C • • ,'
..... t.,.,
it *1
b..... II,
Loopbeck_Ch.ck Ipfd'
at,.uct
FD
1* C.lled b\l R.cv_llI'J'1"oc ••• tngJ checll • • dd,.. •••
• nd ·dete 0' ,potentl.1
100Pb.c~
.,.••• • ,
epfd.
at,.uct RID
*p,.bd •
• t ... uct R8
.,buf,
231421-33
1-214
inter
AP·235
IPCO/UBR/CHUCK/CSRC/DLD. C
if ( bUlp«ch." .> .p.d->.", __ dd,..[O],
Put_F ..... _RFACpfd )J
.... turnJ
)
.>
,,,ltd. CltT'Uct RBD
"who •• iCOl,
ADD_LEN)
Buj,ld_PtrCp.d->rbd_o.fI •• t)J
!- 0
)
<
1* potnt to ... e,e:ava
bu"." d."T'1,to1' *1
,bu' • (struet RS .) ,l"bd->buf'Jtr, 1* point to r.ceive buff." *1
141 ( bCIII,C (cha,. .) ,buf, .I'bll_',..••• [O), LP8KjRAM_SIZE)
I.
0) .(
Put_Fuo_RFAC pfd) I
".turn,
f1alll. 1,1I1I_, •• t •
PutJuo.JIFAC p fd) I
1,.
'*
p •••• d 100, .. acll t •• t *1
CheclcJ1ultica.tCp'd)
/* ,..tu,.ns t"ua if! multic •• t addT'"."
",.uet
FD .p'd,
t. in MAT *1
,t,.uet
'01' (p.at • •matCOl, p•• t <- ... tCPfULT1.JtDDR_CNT - III pmat++)
if ( p",at->.tat •• INUSE ••
(bem, ( (ch.,. .) .pfd-)d •• t_add,.C01. 'pmat->.ddr[Ol, ADD-.L.EN) •• 0»
br •• k,
i f Cp ... t > .... tcI1ULTI_ADDR_CNT ,..tuT'n(FALSE)1
ll)
"etu1'nCTRUE)J
T. . tJ.inkC)
(
S.l f _T •• t • PASSED,
Diagno •• C) J
,
i f CSoH_Toot -- FAILEDJlIAONOSE)
1".tU1"n;
Ru_StaT'tC);
1* .taT't up th. RU foT' loopbacll t •• ts *1
flag •. lpbll_mod • • 11 1* go into loopbaclr .od. *1
'*
fl_g •. Ipblr_t •• t • OJ 1* •• t loobacll t.st to "al •• *1
S.nd_Lpbk_Fra•• C);
int."nal loopb_ck t.st *1
if (fla.s. lpblr_t •• t •• 0) (
SoH _T •• t
-
FAILEDJ.PBK_INTERNALI
'lags. lpblcJ'Qd • • 0,
r.tUT'nJ
fl_.s, lpblr_t.st • 0;
Con'i.ur.(EXTERNAL~OOPSACK);
1* external loopback test "'/ ESI In Ipbk *1
SondJ.pbk_Fn... C)1
if ('Ia ••. lpblr_t •• t •• 0) 0(
SoH _Tnt - FAILEDJ.PBK..EXTERNAL;
231421-34
1-215
intJ
AP-235
IPCO/USR/CHUCK/CSRC/DLD. C
,lA.I. IpllkJlGd • • OJ
".tuY'nl
flagl. Ipbk_hlt • 0,
NOj:SI..LODPBACK,
Sand..Lp bkjra... ( ),
If (flagl. Ipbk_tut . . 0)
Salf _Tut • FAILED..LP8K_TRANIICEIYER,
Band..Lpbkjral.. ( )
(
Itrue'
Int
fo1' U
.p'bdl
TBD
II
•
OJ
t
< a,
i++)
*'
1* .end 1,IIk ,,.••• B ti •• I.
b.lt ,'foT't d.liv .... .,
linc' it"
'!fdaf DEBUO
If «ptbd • Oat_TbdO) •• pNULL)
FatalC"clld - S.ndJ-pbkJ" ••• - couldn't g.t • TBD\nll)J
•• nd1f 1* DEBUQ *1
p'bd->act_cnt • EOFBIT I LP8KjRAI'IE_SIZE.
« char *) p'bd->buff Jtr. Iolpbk_frama[Ol. LPBKjRAI1E_SIZE),
bcap~
D1a.no •• ( )
{
st1'uct
CB
.pcbi
IUdaf DEBUG
If «pcb - Oat_Cb())
pNULL)
Fatal< "did - Diagno •• - could" 't I.t .. C8\n");
•• ls •
•• nd
l'
1* DEBUQ *1
'lagl. dia,_don • • OJ
S.lf _T.st • FALSE,
pcb->cmd - DIAONOSE I ELBIT.
Illu._CU_Clld (pcb) J
"'hil' (flagl. dial_danl •• 0)
j
1* Idait fo1' Dial ellld to finish *1
231421-35
1-216
inter
AP-235
IPCD/UBR/CHUCIVCBRC/DLD. C
Conflilu". (loop'l_g)
u_Iho,,' loop' 1•• ,
a''ruet
.pcb,
CB
Ilfd.' DEBVO
I' «pcb. CI.'_Cb II I -- pNULLI
FataIC".Ud - Con,tgu,.. - couldn't ,et. C8\n")'
•• 1 ••
pcb - CI.'_Cb( I,
'.nd I f I . DEBVO . ,
pcb-:>' ....."'1 pcb-)operoo2 pcb->p."t13 •
pcb-)p.,..1It4 •
pcb-)pa"fI' •
I ' Iloopfl_,
o.osoc,
012600 I 100pl1_.,
0.6000,
OxF2001
0.0000,
-- NDJ.CXJPBACKI
,cb-)op • .,.• • 0.0040,
e1 ••
t. I ••• ttl.. t •• than
the .lnt.u. ,,.. ••• 1enlth *1
pc b->p."' • • • 0.0006,
pcb->Uld
-
C~IClURE
/* 100P'8CIr .,,. •••
!LaIn
*'
1* Se"d a ,,.a •• to the cab 1•• p • • • • point." to the, d •• tination add,. •••
and a point." to the ft".t t,.an •• it bu"." d.'C1'jpt01'.
,*
Sendj.,.a.eCptbd, p.dd)
,..tu""s fa1 •• if i t can't g_t • Co. . .nd block
ot,.uct
TID
.ptbd,
eh."
.p.dd,
*'
(
s'"uet
C8
.pclu
if «pcb· Oat_Cit (» -- pNU...L)
., 1•••. .,. ••• ,_. . . . - O.
if ('1 •••. ,.. ••• t....P.nd •• 1)
R••• t_586C )i
,..tu,.nCFAL.8E) I
0(
pcb-)pnMl - Df, . . t(pUdl,
231421-36
1-217
inter
Ap·235
IPCO/USR/CHUCK/CSRC/DLD. C
/. Move de.tination .dd,. ••• to co. .and block */
bcoPv«cha" .'.pcb->p • .,..2, (ch.,. .)padd, ADDJ.EN)J
fo~
(Iongth - O. ptbd-:>link !- NULL. ptbd -
11n,th +- ptbd-:>.ct_cntl
l.ngth +- (ptbd->act_cnt Ie O.3FFF)J
1* chick to
I ••
i'
padding
il
'*
Bui1d.J't~(ptbd-:>lInk))
add thl 1•• t buff.,. *1
!"'lI.ulr.d, do not do padding on loopb.ck
*'
1* this .. 111 nat ..a~k i f "IN_OATA.J.EN :> TBUF_SIZE *1
If
« Iongth < "INJlATA.J.EN)....
(bCllpUcwho •• iCOl,
pcb-)cmd - TRANS"IT
ISSUI_CU_C"'d (pcb) J
fl •••. ,. ••• t_••••• 0;
if ('lag •. 1' ••• t-'.nd
R. . . t_lIS6( ),
1* . . . u. . . . 4 b~t. CRC *1
ADDJ.EN) !- 0»
(cha,.. .)padd,
ELBIT.
1)
'I'ltul'nCTRUE),1
)
Add_... ultic •• t_Add,. ••• Cp. . )
cha,.
.pm.;
_vlti, •• t
'* 1'.t",,,"lnl
, .. 1. . . . . . ns
"ultic •• " .dd,. •••
ts
*1
1* p.I - pointl" to
adel" ••• • ,
thl
t.b1.
full
1* if thl mu1tic •• t addr, •• t . . . duplicat, 0' onl all" •• dv in the HAT.
thin rltul'n *1
p •• 1:: <- ... 1::CMULTI_ADDR_CNT - III p ... 1::++)
if ( ,m.1::->_t.1:: _. INUIE ••
(be.pC .p •• 1::->.ddl'COl, (chal' *) P•• ' ADDJ-EN) _. 0»
l'etu ... n(TRUE);
for (pmilt • m.ti
fal' (pmat . . . tJ ,.at <- ... ttMULTl_ADDR_CNT - lJ, , •• t++)
if (p.at->.1::.1:: •• FREE) (
p•• t->.1::a1:: • lNUSEJ
beaPIJ( .p .... t->.dd ... COJ, (ch .... *) p.a, ADD.-LEN);
b.,. •• I"
231421-37
1-218
inter
AP-235
IPCD/USR/CHUCK/CSRC/DLD. C
If
> .... ttI1ULTlJlDDR_CNT
(p ... t
- III (
'lags. ,. ••• t_••••• OJ
if ('lags. " ••• t-P.nd •• 1)
R. . . t_'Sh(l)
.,..turnCFALSE)I
S.tJluIUc . . 'Jldd ..... ( I)
nag •. ,. ••• t_•••• - 01
if ('lag', ,.. ••• tJ.nd •• 1)
R••• t_,.( ),
",etuT'nCTRUE)J
/. ,..turning f.l . . . . . .n. the lIIultic •• t add" •••
.... not found
D.l.t._"ultic •• t-l'dd" ••• Cp •• )
'or
(p •• t
i' (
*'
.....;, , •• <- •••
,.at->.,.,
_.
t
ttf1ULTl~DDR_CNT
INUSE , .
(bc.p( 'p •• t->add ... CO], (cha,..) pM.
p •• t->.tat • FREEl
br •• lei
If (p ... ' > ••• ttI1ULTI_ADDR_CNT flagl. ", ••• t_, ••a • OJ
if ('l •••. 1" • • • tJ.nd ._1)
III
- III
p •• t++)
ADD~EN)
. - 0»
<
R••• t_~( ).
".turn (FALSE) i
Set_"ultica.t_Add" •• " );
fl ••• r ••• t_••••• 0,
if C'la.l, r ••• tJend •• 1)
R••• t_S86( ),
r.tul"nCTRUE),
st1"uct
struet
u_'hort
MAT
M"_C8
i)
.p •• t,
.p •• _c b J
i • 0;
pma_c b ...... _c b J
... hil. (p •• _cb->c.d !- 0)
pm._cb->linlr • NULLJ
f
'* if
th. MA_CB i . inu •• , .... it until it". ,f".e *1
231421-38
1-219
AP-235
IPCD/UBR/CHUCIVCBRC/DLD. C
fo1' 'pilat ••• t, ,Mat <- ..... tCtNLTJ-"DDR_CNT - III p... t++)
If ( p..at->.ta' lNUBE) <
beopv ( .p . ._cb->OIc_addrC IJ, .p_t->addrCOJ, ADD_LEN) I
I +- ADDJ-ENI
p•• _cb->.c_cnt • j,
p..a_cb->cllld - IIC_SETUP I ELBITI
Put_Fl' •• ..RFACpfd)
struet
FD
strue t
R&D
'*
R.tu .... n F...... D•• c'I'1pto1' end Receive Bu"."
O•• c"I,1;o.,.. to the F,.. •• Receive F"••• A,. •• *1
'* point. to end of ,..tu1'n.d RBD 1 tst
'* indicat ••
to " •• ta1'1;
.,J
.p,.bd~
/*
T'U_st.,.t_'l •• _'d.
1'U_st.,.t_fl·I_"bd,
point. to beginning of ,..tu1'ned RID list
*1
UIIh.t~."
RU *1
*'
'lags . .,. ••• t_...... 1,
l'U_st.l"'t_fl.U_'d • 1'u_sta,.t_'lal_"bd • FALSEI
pfd->e1_• • ELBITI
pfld->st.t - 0,
p1"bd • CstT'uct RID .) Build-pt"Cpfd-),.bd_of!, •• t), /* pick up the link to the "ltd *1
,fd->11n • • pfd-:>rbd_o,., •• t • NULL,
1* Di •• bl._~B._lntC), this co ..... nd t. anI., nee.ss.,. .. in _ multita.lling
p,..og,...m. Howeve,.. in this lingle t.sk .n'1'1,.on.ent this routine i. origin.llv
c.lled 'rom is,.. _MI6(). there'o",. inte,..,.upt • • ,.. • • l,. •• d .. , dis.bled *1
If (bogln_fd -
pNULL)
bagin_'d • end_fd - p'dJ
e1,.
<
ond_fd->link - Dff •• t(pfdl,
end_'d->el_, • OJ
end_'d • p'dJ
,.u_,t .... t_'l.g_'d - TRUE,
1* i ' th.,..e Is • rbd att.ched to the 'd then
find the baginning .nd end
the ,..bd list *1
0'
for (q =- pY"bdJ
,->link !- NULLJ
q,->act_cnt • 0,
Cl. Build_PtY"(q-:>linl!»
1* now p,..bd point. to the beginning of the ,.tld list and
Cl points to the end of the lilt *1
,->.i
z• • RBUF _SiZE I ELBITI
q,->.,1;_,n1; • 0,
231421-39
1-220
AP-235
IPCO/USR/CHUCK/CSRC/DLD. C
'*
's
if th.,..
ct' •• t • •
b.gin_"bd • ,,.1141,
end_"l:td • Il'
I f (prbd !. q)
1'u_Ita"t_.l.,_"bd • TRUE)
nothing on the 1 ilt
new l i l t *1
'*
if th.". i , flO"'. than on_ "bd
.... tu1"ned
,t."t
the RU
*'
1* if the rbd lilt e1'r' •• tlv eliltl add on
the ne ... ,..tu1"ned ,.1141, *1
a"..
.nd_rbd->lInk •
t(prbd),
.nd_rbd->o' . . . RBUF _SIZE,
end_",bd • II'
ru_,t .... '_'l •• _rlld • TRUE,
)
i ' (ru_otert_nal_'d WI ru_otert_nal_rbd)
'*
Ru_St."t () I
Enable_'S6_lnt<),
I' Di •• ble_5B6_Int() 11 uI.d aboy. *1
'1 .......... t_...... 0,
if ('I •••. ,. ••• ,-I.nd ··1)
R••• '_5fW.( ),
if «Ieb. ,tat. RU_""SK) •• RU_READY) 1* if the RU Is al" •• dv
~"' •• dtJ
I
then .,..turn *1
I'
«b.gi"_fd->stat Ie CBIT) •• CBIT)
... eturn!
begin_'d->rbd_O" •• t • O" •• t(begin_rbd)J
Ie b. r'a_o" •• t • O" •• t (beg in_'d),
*'
1* link the b •• 'nning 0' the ,.bd
list to the fi,.,t Id
Wait_BebC );
.eb. emd -
RU_START,
CA.
Softw• .,.e.-R_.et ( )
<
seb emd •
CAl
W.it_Scb
RESETl
()I
I •• u._Re.et_C",dl ()
<
W.. it_Scb( );
seb. cmd -
CU_START;
CAl
231421-40
1-221
AP-235
IPCO/UBR/CHUCK/CBRC/DLD. C
Wat t..Beb I II
DuttliCOxFFSE, 0)
i
out .. ITII1ER1_CMT. 0),
outw(OIFFIIE. OICOO911
'*
shut o'f tilt." 1 intl"l"upt
..hll. (UnwIOIFFIIE) " 010020) •• 0)
*'
I . If 11.1 ent Ht h
set hfor. eNA
il, •• t,. 586 C.d d •• dlocll.d
i f I loeb. ot.t " eMA) •• eMA)
br •• lu
*'
If (oeb. atet " eMil !. CMII)
Fat.-l e'tOLD: 1•• UIJt, •• t_C.dl - Ca. . .nd d •• dlode dUT'tng " ••• t 'T'oC::ldu".\n"),
R••• t_Ti •• oute
)J
leb. c.d • CHAI
ell,
1* Acllnowled •• (NA intll'T'upt *1
Watt_SebO,
'*
E •• cute .. ,.. ••• ,. Configu" •• SetAddT"'"
R. . .Rleliv.
t _ _ () Unit and thl Ca. . .nd Unit
*'
and t1C_SltU'.
thin
'I" • •
t • .,., the
(
I1AT
I,
++,. ••• '_cntJ
DI . . b1e_H6_Intc ),
ESI.J-OQPBACK,
So,t .... ,.._R ••• t(
),
leb .• tet • OJ
'Of'
( :i • OJ i <- OxFFOOJ i++)
if elcb.ltat _. (eX leMA»
b1" •• alJ
If I i >OIFFOO)
Fatal ("DLD: inlt - Did not •• t an interrupt
/. Ack the ,..I •• t Int.,.-"upt
Wai'_ScbC ),
leb. clftd • (eX I CNA),
*'
.ft.,.
Soft....,.e R•• ,t'n·);
ell,
Weit_Sebl ),
Ilfd.f
DEBUG
l.ndU
Fatal C"DLD: begil,_cbl • NULL in R••• t_58.")J
1* DEBUG *1
If I hgin_ebl •• pNUU.)
231421-41
inter
AP-235
IPCO/USR/CHUCIVCBRC/DLO. C
'* d.fault
1* Configur. the 586
*'••• t.".,
p.,.
Eth.rnet d.fault
p • .,. •• et.,..
Can,tlv". i . nat n.e •••• "\1 when using
*/
r.,_c b. ,.,..-2
p.,.,111 - Oloeoe,
.,..,_cb.
- 0.2600.
".,_cll. p.,...3 • 0.6000.
r.,_cb. p.,.... OIF200.
".,_cb. p.,..' • 0.0000,
".,_c". p.r....
re._cb. clld
010040.
- CONFIIlURE I ELIIT.
leb. cbl_o" •• t • 0" ••
1;(.,..,_, ... Itat),
1•• ueJ' ••• t_C ••• C ),
1* S.t tho Individual "'ddre . . *1
bcapvC (tha,.. .) "'.,_cb. p.,..l, _hoa.iCOl, ADD..LEN), 1* .ove the pro •
• dd,. ••• to IA elld
,..,_cb. eMd • JA I ELIITI
1•• u.~
...
t_C.d.(
*'
)J
t • ,. •• __ a_cll. stat. 0,
1' • • ~_cb.
11nll • NULL,
far (pm.t - .... tCOl. p ..at <- ... tUIIJLTlJlDDR_CNT - Il. p_t++)
If ( p ..at-:>.tat -- INUSE ) (
bcapv ( .r ......... _cb. IIc_.ddr[i l. .p .. at-:>addrCOl. ADD.-LEN).
I +- "'DDJ.EN.
" •• ..m._cb.lle_cnt • iJ
1' • • ~._cb.c.d
leb.
cbl_o., •• t
- Me_SETUP I ELIIT.
- 0, •••
1;'11,..,_•• _, ... Itat)J
I'lu • .ft~5.t_C.d.( ),
'* R••
t.",t the COINNnd unit end the R.,aiv. Unit
*'
flag •. " ••• t_. . . . . OJ
flag •. T ••• tJ.nd • OJ
R.cv_lntJToc: ••• ingC
)J
.cb. cbl_o •••• t • begin_cbli
W.lt_ScbO.
231421-42
1-223
inter
AP-235
IPCO/USR/CHUCK/CBRC/DLD. C
scb. cmd • CU_STARTJ
Slt_Tilt.aut () I
1* B.t D.ad,.an Tim." *1
CAl
Enab 1o_5B6_Int () I
'*bcapwell."
tlCOP\! -- b"t. COP\! .,.au'Un.
ch.,.
in.
.re, nbut •• )
-.,..c,
nllvt •• ,
*'
.dlt,
(
whil. Cnbvt'I--) *1I,t++ • • '''c++'
It",.
1* bClI, -COlllp.".
tlcltpCII, • .;z, nbut •• )
It
h."
c
Int
*.
._2,
*'
nb~h'l
(
whUI (nb\lt.,-- . . . . 1++ • • • ,:12++),
.,.,tul'n'*--,l ... *--,2),
231421-43
1-224
inter
AP-235
IPCO/UBR/CHUCK/CSRC/LLC. C
, •••••********* •••••••••** .............................*****.****••• ********* ...
•*
..
IEEE B02. 2 Log ical Link Cont~ol LaVer
(St.tion Component)
..
••••• ***•••• **•••••••••••••••••••••••• *••••••••••••***.******.*.*•••• *.* •••••• 1
4Unclud. "dld. h"
ext.,.n
.xt.,..n
.t1"uct
cha",
,. •• donl., ch."
1* OSAP, aSAP.
TBD -o.t_TbdC)J
_lui ld""p'" C"
.id_.,.••• CXID.-LENOTHl. ( O.
XID. xid c1 ••• 1 ,. •• pon.e *1
0,
XID, O.Sl, 0.01. O)J
Init.J.lc ()
<
st~uct
'or
LAT
*plat.
(plat - "lat[Ol, plat
p l.t->.t., • FREE,
<-
"at[DBAP_CNT -
ll'
plat++)
,..turnC Init_'86(»,
*'
1* Function floT' adding a new HAP
Add_O •• p_Add" ••• ed •• p,
int d •• pI
<
.t",uct
,fun.:;)
'* 2**N -
DSAP ",ust b. divisible bV a •• CS-N),
tAlh.,..
DBAP _CNT. Ii... N LBa. must bo· 01.
The function will .,..tu,.n FALSE if do •• not
••• t the above "e,ui" ••• ntl, 0" the LI.p
Add"' ••• T.bl. i . full. 0'" the .dd"' ••• h ••
al",.ad" b •• n uS.d. NULL.. DSAP .dd"' ••• i .
"' ••• "'v.d fo'" the St.tion Component *1
(*pfunc) 01
LAT
if «d.ap « (8-DSAP_SHIFT) "OxOOFF) ' . 0 : I d.ap •• 0)
",.tu",n (FALSE);
1* Ch.ck fo'" duplicate d •• p •. *1
i f ( (plat. ".tld . . p » DSAP_BHIFTl)->.tat == FREE)
P lat->.t.t • INUSEI
plat->p_•• p_func • pflunci
retu~n (TRUE"
<
.1 ••
",.tu",n(FALSE)1
1* FUnction flo", deleting DSAP. *1
O.I.t._D •• p_Add"' ••• (d •• p) 1* If the .p.cifi.d connection .:IIi.t •• it i • • ev.",.d.
If the connection do •• not .xist. the contm.nd is igno",.d, *1
231421-44
1-225
intJ
AP-235
IPCO/USR/CHUCIVCSRC/LLC. C
Recv_Frame(pfld)
.truct
FD
stT'uct
RBD
*pfdJ
FRAIIE STRUCT
stT'uct
LAT
prbd •
pIs •
.,f.,
*prbd;
.t~uct
*plat,
-
(stl"uct RBD *) BUlldJt,.(pfd-:>rbd_o'f •• t),
(stl"uct FRAHE_STRUCT *) prbd-)buff _ptT'i
l ' (pfd->l'bd_o" •• t
!- NULL) ( 1* The,..e has to be .. rbd attached
to the fd.
if (pfs->d •• p •• 0) (
01" e1&e the flrame
J.5
too short. *1
1* if the ,,..me i . add.,.e,s.d to the Station
Component. then. ,.. •• pon •• mav b. "equi,..d *1
l ' ( I (pfs-> ••• p "C_R_BIT) ) (/* l ' the f"allle ... ecelved 1~ a respons ••
lnst •• d 0' • command, then .... Ject it.
aecau •• this soft",.re do •• not Implement
DUPL.ICATE_ADDRESS_CHECK. -> no "esponse
f,..m •• should b .... ecv'd *1
Stati o"_Component_R •• pons. (pfd);
~
1* not .ddr •••• d to St.tion Component. *1
1* check to 5 •• If the d •• p .ddressed 15 .ctiVIt *1
010. i f «ph->d •• p « (B-DSAP _SHIFT! .. O,OOFF)
0 ....
(plat _ IoI.t[(·ph->d . . p) » OSAP_SHIFTJ)->.tat .- INUSE ) {
<*plat->p_sap_func)(pf'd)J
1* call the function ••• oclated
"'lth thlt dsap recltivltd *1
returnJ
~
Put_Fl'lte_RFACp'd);
&truct
.t~uct
FO
f*
r.tul'n thlt pfd
i'
not glvltn to thlt u •• r saps *1
*p'di
FRAHE_STRUCT
st1'uct TBO
stT'uct RBD
*pl'fS. *ptls.
*ptbd. *bltginJtbd. *CI.;
*prbdi
pl'bd - (stl'uct RBD *) Build_Ptr(pfd-)l'bd_offs.t);
p1". = (stl'uct FRAME_SrRUeT *) pl'bd->buff Jtl';
... itch
(p~"->c",d
10
~PJ JIlT)
{
cas.
XID:
231421-45
1-226
AP-235
IPCO/USR/CHUCK/CSRC/LLC. C
"'hile «ptbd •
O.t_TbdC»
•• pNULL.) ,
ptbd->act_cnt • EOFBIT I XIDJ.ENlITHI
bCDP., «chaT' *> ptbd-)buff...,ptl". &cxid_frametOl.
pt, • • (,t"uct FRAf'IE_STRUCT
*)
XIDJ.ENGTH).
ptbd->buff -pt".
ptfl->cmd - pr's-)cmdJ
ptf.->d •• p •
prll->".p
I C_R_BITJ
c...
1* .... turn the ,,, •••
to the aende" *1
pt,.-> ••• p • OJ
while( !Sendj,..meCptbd. BUlld_PtrCpfd-::>.rc. addT'»)'
bT" •• lu
TEST'
for (pT'bd •
(Itruct RID
,
•
*)
Build_Pt",(pfd-::>,.bd_off •• t),
beg1nJtbd -
pNULL.1
p,.bd
!- pNUL.L.
p,.bd • Build_Pt,.Cprbd->link»
while «ptbd • O.t_Tbd(» •• pNULL).
if (q, !- pNULL)
q->link • Oflf •• tCptbd),
_I ••
begin-ptbd • ptbdJ
ptbd->.ct_cnt • prbd->.ct_cnt;
bcopy«cha" .) ptbd->bu'f..,ptr.
Cl -
(chill'
*>
pT'bd->buffJtr.
ptbd->act_cnt tc Ox3FFF);
ptbdl
ptf • • (struct FRAME_STRUeT *) beglnJtbd->buff .. ptr.
ptfs-:>cmd • pr'.->cmdl
ptfs->d.ap •
prfs-)ss.p
I C_R_BITJ
1* return the frame to
the sende..,. *1
ptfs->s •• p .. 0,
.... h i 1 e ( ! SendJrame (beg In,J tbd,
bre.kl
Bui! d_ptr (p fd-)src_addT'} , ),
231421-46
1-227
AP-235
IPCD/USR/CHUCK/CSRC/UAP. C
, ••**••••••*••••••***•••••••••••••••••••••••••••••••••••••*•••**•••••**••**••
....
...
u•• ",
.••••••••••*••••••*••••••***•••••••••*••••*•••••••****••*******.*.*•••*******.1..
Application PrOI,.a•
Asunc to IEEE 802. ;!lsoa. 3 PT'otocol Conv.,.t."
I
'
.include "dId. hI!
1* ABC I 1 Ch.,..c
Idofino ESC
Idofino LF
Idofino CR
.dofino BS
Ido.ino BEL
.dofino SP
Ido'ino DEL
Idofino CTLS
1* He ... d •• .,..
Ido.ino
Ido.in.
Ido.ino
.dofin.
.defino
t.,..
*1
O.IB
OIOA
0.00
0.08
0.07
0.20
017F
0.03
*'
CHJlSTL
O.OODE
CH...A_CTL
O.OODC
CHJI_DAT
0100011
CH...A..DAT
O.OODS
UARTJlTAT --"11K
0170
1* Jnt.,.,.upt c •••• fa," &:z74' *1
.dofino UART _TXJI
0
Ido.in. UART..RECYJI
OIOS
Idofin. UART_RECY_ERRJI Oloe
Ido.ino EXT_STAT_INTJI 0104
Idofino EXT_STAT_INT...A 0.14
chu
ch.,..
fifo_U2'IIJ/
f1fo_"C2543;
cha,.
WY'a[51, ...,..bt811
unstlned
ch.r
in_'flifD_t,
out_fifo t, :l.n_fllo_", out_flfo_t", actual,
t_buf _stat, ,. _bu' _Itat,
u_ahort
cbuftB01;
1 in.Cel],
1* Co...and 1 in. buff.,. *1
"ani tal' Mod. displ." lin.
I.
*'
unslgned
cha",
d•• p, 's.p, •• nd_'I.g, 10c.I_.cho,
ch.,.
Dos'_Add"CADDJ.ENJ/
cha"
"ulh...Add"CADDJ.ENJ/
lnt tmst.t, 1* te"msn.1 tltod ... t.tus. 'a" I •• vsng t.""un.1 iliad. *1
tnt dh •• , manlto,,_'I.g, hs_st.t,
1* 'I_gs *1
.t"uct T8D
ch.,.
.,g.t_TbdO/
*Build_Pt,.C ),
.xt."n
.t'ruet FLAQS
'lags,
•• t.,,"
ch."
ch."
•• t."n
•• t."n
•• t."n
.id_'...... C]J
whoa.tC];
231421-47
1-228
AP-235
IPCD/USR/CHUCK/CSRC/UAP. C
.xt • .,."
I.t,,."
•• t,,."
..",."
...a',,."
•• t.,."
l'I'vet
1'1"UCt
cb.,.
unliln.d lonl
u_,ho,.t
U_IhD1"t
.1",."
I.t.,," un"lned
u_,ho... '
",."
.It.,.n u_,ho,.,
unl'lne"
'X""" u_'ho'l"t
.It .... "
. .UJ.
IlAT
LAT
laUJ.
*pNULL.
""uet
100._•• i '_ent.
und.,.,.u"_cnta
no_c,.,_cn'lI
d" .... _cnt,
Ionl
.,1_'"''_cntll
••• _col_ent.
,..Cy_.,. ••• _cntll
,. ••• t_ent'
lonl
sea
.clt.
a •• Uno RTI..DN8 out~ ICH..JI_CTL. 0.0111. ou"ICH..JI_CTL. ""~[IIJ-..,.btIlJ 10.021
RTIJIFF. ou" ICH..JI_CTL. 0.0111. out~ICH..JI_CTL. ",,~CIIJ ...,.~CIIJIoOIFDI
RTB..DNA outb ICH.J\_CTL. 010111. ou.~ ICH.J\_CTL ..... aCIIJ-..,.aCIIJ 101021
IITBJlFF~ out~ ICH.J\_CTL. 0.0111. out~ ICH.J\_CTL ..... aCIIJ_,..CIIJIoOIFDI
a •• U n. UAAT _TX....DI..JI out~ ICH..JI_CTL. 0101 I. outb ICH..JI_CTL ...,.b tI J_,.bC I lIoO.FDI
a •• U n. UAAT _TX...EI..JI out~ ICH..JI_CTL. 0101 I. out~ CCH..I_CTL ..... btl l_,.b C13 101021
a •• Un. UAATJlX....DI..JI out~ CCH..JI_CTL. 0101" outbCCH..JI_CTL • ..,.bC Il-..,.b [111001E71
a •• Un. ~RT.JU...EI..JI outbCCH..JI_CTL. 0.01" outbICH..JI_CTL ..... btl l-..,.btll 101101
ad.Un. IIEIIET_TX_INT ou'bICH..JI_CTL.01281
ad.Un. EOI..JI274 outbICH.J\_CTL.01381 1* 1274 in' h IR3 on B0130 *1
ad.Un* EDIJlDI3O..I274 outb101EO.01601
.d.fln. EDIJlDI30_TII'IER ou'b IDlED. 0,621
a•• Un.
a •• Un.
a•• Un.
Enabl._Ua,.t_In" I
(
int
CJ
'* ,. ••
d the 80130 int''I",..~pt . , •• 1"list." *1
autbeO,Ea. OIOOFE II: c), /* .,.it. to the BOI30 int.,. ... upt ••• k ,..gllt." *1
c • inbCOxE:!),
Dhab Io_U... '_In" I
(
int
CI
C •
lnlt (OxE2),
outbl0lE2. 010001 leI.
Enabl._Tim,,. _lnt()
(
int
CI
outb 101EA. 1251.
autlt (OlEA, 0.00),
•• nd_fla. - FALSE.
'*
Till.,. 1 int'''T'upt. eveT''' .
la, •• c
*1
e - inb COIE2"
1* ... ad tho B0130 Inh,.,.upt . . . k .... ilh~ *1
outbl0lE2. OIOOF. . . e" 1* ..,.Ito h tho B0130 into,.,.upt muk .... ilh~ *1
231421-48
1-229
' I ' , ,-
AP·2~5
IPCO/UBR/CHUCIVCBRC/IIN'. C
Dlsa_ie_Tloon _IntI I
(
int
c.
c • tnb (OIEa)J
ouU 101G. 010004 I e I,
Cole)
ch.,.
CJ
whll. I Iln_ICHJI_CTLI .41 •• 0 I,
ouU ICHJI.JlAT. e I,
CIII
<
..hll. I (In_ICHJI_CTLI •
~.tu~nlln_ICHJI.JlAT)
II •• 0
.0.7F"
),
ent, pact)
ch.,.
.p ••• '
unsigned eh.,.
ent, .pact,
R•• d(p ••••
unsilned ch.,.
Ii
ch.,.
c, bu.t200l.
II • e • 0, Ie !. CRI . . Ie !- LFI •• II
e • CIII .0.7F,
If Ie . . BS II c.-DELI
If (I > 01 (
fo~
<
1981.
I (
--I,
ColBSI, CoISP" ColBSI,
el ••
If Ie >- BP)
Coech
bull i++l •
.110/I'
CJ
«c •• CR) If (c •• L.F»
<
bu'[t++] • CRJ
buft 1++1 - LFi
)
l'
CaCeR),
(I,
,.
CoeL-F»)
tnt)
*p.ct • ent,
el ••
fa,.
• pact - il
(i • 0, i (.pact
. ,••• ++ • buftil.
i++)
231421-49
1·230
inter
AP-235
IPCO/USR/CHUCIVCSRC/UAP. C
unsigned ch.T'
iJ
R•• d (.cbu.tO], BO, "etue1) I
i • Bltp('cbuf[O]),
".tu"n( cbu'[ i]) J
W1'lh(p,ng)
ch."
.p.",
.. hil. (*PIII., !- '\0#) 0(
if (.p • • • • • '\n')
CD(eR),
CoC.p •• g++),
Fetalep ••• )
c
h."
'* .,,It •••••••g.
.plIII."
Writ.C"Fetal:
WfoiteCpm.g),
forC, J),
*'
.. ),
'* .,.1t •••••••
Dug (pmo,)
eft.,.
to the .u' •• n then .top
g. to the .u'•• n then continue *1
.p ••• ,
Writ.C "Iug.
WriteCp"' •• )'
It);
Ascii_To_Ch.",Cc) 1* conv.,.t ASCII-He. to Cha" *1
eh.,.
1:1
- .......
If
«'0' <-
c)
If
«
c)
1"eturn(c
'A'
<-
<<01371.
(e <(0
(0
- ....
l'eturn(c - 01117),
",eturnCOIFF),
".turnee
If « '.'
<-
'9') )
'0'),
c)
'F') )
If') )
Low.,. _Cas. (c)
ch.,.
c.
(
l'
l'
<- c) • • (c <- 'I'»
return (C) J
« 'A' <- c) • • (c <- 'Z'»
l'eturn(c + 0.20),
« '.'
"eturneO),
231421-50
1-231
inter
IPCO/UBR/CHUCK/CSRC/UAP. C
Ch.,,_To.Jt,sci:l.Cc, Ctl) 1* canv.,.t ch.,. to ASCIJ-H • • • /
unsigned eha"
c, chtll
unstgn.d ch.,.
:I..
i • (c Ie G.FO) » 4,
i f I i C 101
ch[O] • t + 0.30,
.1 ••
cheOl • :I. + 0137#
:I. • (c Ie DxOF) ;
i f I i C 101
chtll • :I. + 0.30,
el ••
c~tll
•
I + 0.37.
cheal. '\0',
Sklplp,.. ,1
I. lkip
c::he.,.
*PIIIS.'
tnt
i,
~l.nh
.1
fa,. (:I. • O. . , ••••• ' "
.,..turnC :I.),
R.. d_lntO
I. R•• d • 16
~It
:1.++, p ••• ++) I
Intel.~
.,
(
weI, tIIh, tIIdl, ...hl, JI
:I.,
dan"
h •• I
"OVI",
fa,. (d ani • FALSE. doni - FALSE.
R,,'ClccbufCOl, BO, •• ctu.I),!
I • Sklpl •• ~uftOll.
hovI'"
) (
'0,. Ch • • • dov.,. • hov,,. - FALSE, ...d • III" • 1IIdi • wht • 01
CJ • Asctt_To_Ch.,..Cclluft:l.J» <- le, 1++)
"I >•• TRUE.
+ J;
If IJ
"
9)
bid • wd*10
wh .: IIh*l. + JI
i f I ..d C ..d1l
dav.,. • TRUE.
If Iwh ( .. h1l
hov.,. - TRUE.
IAId1 • wd • ..,hl • wh.
)
'H' II cbuftl] •• 'h' II cbuftll •• CR II
cbufU.l •• LF II cbutt[:I.] . - '
I' (cbutti] •• 'H' II cbutti] . - 'h')
h • • • TRUEJ
1f Ch •••• TRUE •• hov." •• FALSE)
dane. TRUEs
if (cbuft,,] ••
i.
') (
Ch • • • • FALSE •• dav.,. •• FALSE)
don • • TRUE,
231421-51
1·232
intJ
Ap·235
IPCD/USR/CHUCK/CBRC/UN'. C
i f C!do".1
«
nu."e", is too
....writ.C-'"
:1.,.(.,,, Thi.
Ent."
-->
nUIlIt.,.
)
Itil. \" I" It •• to II. le.s than 65536. 'n"),
")I
)
81 ••
""t,.(11
)
111 ••• 1 Ch ....
ct.,.," Ent.,..
a nUllb.,.
->-),
i f Ch •• 1
".tu.,."C ..,,).
1"'etu'f'nCllldh
Int_To-J\scii(yalu......., 141, chi IIItdtlt) , . conv.,.t an int ...... to an ASCII at"inl
unailna" IDnl
valua.
u_sho'l"t
clta...
*'
...... lIIidth,
cht]. Id,
<
i < .. ldU, 1++1
J • valu. X ..... ,
If CJ < 101
chU]· J + 0.30,
81 •• chtil - J + 0137.
valua • valua I ......
f n Ii - 0,
>
fa,.. U • wid'''. - I. ch[t] •• '0' •• i ) 0, i--)
chtil - ld,
>
ch[.ddt"] •
'\0',
W~lh.J..on._IMCd ...
until"ad long
v_ahg,.,
i;
u_sho,.t
ch,.
II
dllt)
J'
ch[lll,
if Idhul
1",_To-".,::U('III. 16.
' "
Int_To.J\sciiCdw. 10,
' "
'chtO], 8),
al ••
'0"
(J • 0, ch[J] !- '\0"
lineti] - chtJ]'
W~U • ..sho,.t_IMI..
u_short ..1iI i i
<
u_slto,,' oJ.
ch.,.
cht61,
un.iln.d long
II. . . In
if 10 . . 1
10),
J++)
II
II,.,
'w.
In'_To..A.cU C
.1 ••
i--.'c"[O].
16, '0', .ch[O],
4)1
231421-52
1-233
IPCD/USR/CHUCK/CSRC/UAP. C
Int_To_Alcltldllh 10, '0', IcchCOl,
'01' (J • O. chCJl ,- '\0'. i--, J++)
:5),
lin.Cil • c:hCJ1J
VesC)
<
cha"
fo~
bJ
(
,)
<
b • R•• d_Cha"()1
if C(b _. 'V') II
.,.etu'rnCTRUE)J
if Ctb •• 'N') II
(b
'\1'»
(b
'n'»
return (FALSE);
Writee" Enter. Y 01" N
II)J
'*
R•• d-"ddr(pmsg, add. tnt)
cha",
-->
pms. - pOinte" to the output m•••• g.
1* .dd - point.,. to the addr ... s *1
1* cnt - numbe" of • ..,t •• in the .dd" •• s
*P.'II' addtl. cnti
foT' (
I
;
)
*'
*'
(
WTiteCp.sg );
R•• d U,cbufCO], SO • • • ctual).
'or (J ·lkipUccbufCO]), i-OJ i <: 2*cn1;:,; j++.
if (C '0' <- cbufCJJ) a.:. (cbuf[J] <- '9'»
=
cbufU]
else
i f « 'A'
cbuftJJ -
<-
.
tbulC Jl) 1.1. (cbuil[J]
- 0,37,
i' « '.' <- tbu,eJ)) .... (cbuHJ]
cbu'Hl1 = cbuf[ Jl - 0,'7,
else <
cbuilt 1]
.1 ••
J++) {
'0',
<-
'F') )
<-
'f'
cbuf[ J]
»
Wrlt.< " Illegal Char.c tel'\n").
bre.k.
If
(1
:>= 2*cnt -
1)
bre.ki
"01"
:a
(i
OJ
1
.dd[(cnt -
<=
1)
tnt - 1i i++)
1] = cbuf[2*il « 4
I:bu'[2*1 + 1J.
IWrit • .-Addr(p.dd. tnt)
ch.r
p.ddtJ. cnt.
i.
for (
J
e[3l.
cnt >0 • tnt--)
<
231421-53
1-234
inter
AP-235
IPCD/UBR/CHUCK/CBRC/UN'. C
t • pad.tent-UI
Cha~ _Ta ...... e tI U.
W~UII.ctOlll
.e tOll I
cCOJ • "n',
ctll •
>
'\0'1
~lhl'C[Olli
RI.v...Dda_lIpfdl
It~uct
FD
It~uet
FR~
It~uet
TaD
RID
It~uet
__ TRUCT
.,'f
•.
_It.gin..,,"',
-"
.,!"lIu',
ch.".
entll
Int
p~bd
p~"
.p .. ' . '
.ptlld.
. '.... d'
•
•
1 .. lteh
(It~uct RID .1 luUdJ't~lpfd->1'bd_aff . . t)1
I.t~uet FR~_STRUCT *1 luUdJ't~lp~bd->buffJt~11
• ~PJ' __ ITl
UJ:
I f l ..anlta~_f1a.1
Ip~"->c.d
ca..
"" •• Iu /* Don't put d.ta 1ft f:lfo unl ••• in t.,."ina1 11041. *1
,,.bu' • (cll.,. .) ,"',.,
, ... bu' .- 3J J* ektp ove" the h •• d.,. in'o and point to the data
ent • 3.
.n
p'd->llnlth - 31
faT' (I p ...... !I 1 ent <
>
p~bd
*'
,NULL,
ent· 0, ,,.bu' • (cha" .) p,.bd->buf'Jt,.H:
• O.03FFFI . . p'd->llnlth > 01
ent++. ,!'bv"++, p'd->lenltlt--) (
IIIhileCr_lIu'_ata' •• FULLh
FI'oJl_ln I.p~bufll
•
I,~bd->.et_.nt
luUd_Pt~(p~bd->linkll
,Ud •• DEBUII
If (,"->lonlth •• 0 ••
p~bd
!. pNULLI
FatalC"Uap. Racv_Data_tep'd)
-)I
'.nd I. I . DEBUO . ,
c...
>
b1"ealu
KID
while «ptl..1 • Qat_TbdO) •• pMA.L),
,tU->aet_cnt • EOFBlT I XlDJ.ENIITHI
lIeop, C(ch ..... ) ptbd-)bu"Jt1' • • • "d_'ram.COl, XIDJ.ENOTH) ,
pUs • Ilt~uct FRAPE_STRUCT .1 ptbd->hff-,t~.
ptf.->cmd - P,.. •• ->cmdJ
ptfs->d •• p - p,.."-)' •• '
I C_RJIITJ
'*
*'
,...tu,.n the ,,. ....
to the •• nd.,.
ptf.-> ••• , - ••• pl
whU.' !S.ndj,..••• 'pt ... , 8UlldJt,..(pfd->.,.C_8dd,.))).
231421-54
1·235
IPCD/UBR/CHUCIVCBRC/UAP. C
1111" •• 11.
ca..
TEST:
fa,. I,,.bd • lat,.uct RBD .) Build..pt,.I,fd-:>,.bd_affut).
, - 1t'I ... nJtbd • ,NULLJ ,'rbd !- ,NULL.
,,.U • BuUd..pt,.lp,.bd-:>1inkll (
..hU. lI,nd • G.t_lbdl II •• ,NULL).
I f I, !a ,NULL)
,-:>link a Df'utlpnd) •
•1,.
beglnJtbd a ,nd.
,tU-:>act_cnt a ,,.U-:>ect_cnt •
.. coPIJ«ch ....
,
,tfa
a
*)
ptbd->buf'J't1'.
(C ....,..) p"bd-:>bu •• ...,pt ... ,
pnd-:>ect_cnt II DI3FFFI.
pnd.
a
lat,.uct FR _ _BTRUCT *1 b.glnJtbd-:>buffJt,..
, ••• ->c.d • P"'.-:>C •• i
,"1->41 •• , • P'I"'.-> ••• P I C-"JUTI
ptf.-> ••• p •
'* ....th ••• nd,.,.
th • •,. •••
./
tU1"n
to
s •• p'
.. hll.1 !S.ndJ,.••• Ib.glnJtbd. 8uild..Pt,.I"d-:>.... _add,.) II.
1t1".all:;
)
Putj1'""J'FACpfd)J
'*
Fi'D_T_Out:()
(
ch....
1* 1'.tu,.n the ."'• • • • /
call.d ... ·'. . sn ,1"01"." *1
el
c • flfa_ttaut_'lfa_t++J.
Di .... l._U.,.'_lntC ),
I. laut_flfa_t - In_,tra_"
1* If the
u ••,tu *1
'_bU'_Ita' • EfGIrV,
atop 'i11lng T".nl.it
D.ICT'ipto". '1
.11.
if the fi.o .... full ."d ts no... d....atninl
l' ('_bu'_ltat •• FULL •• aut_fll'o_t - 80 - 1"_.1'0_t)
1* turn on
tho .pl.at *1
'*
'*
'1,.
lu"'"
*'
RTS_DNB.
'_bu. _Itat • I MUSE.
)
Enabl._Ua.,.'_lnt(
",.tu",n(C)J
Fifo_T_ln(e)
etl."
CJ
)J
I. c.ll.d bU u."t .... C.iV. int.l'"upt *1
fifo_i;:Cln_fifo_t++] • CJ
If It_bu. _at.t •• EMPTVI
231421-55
1-236
inter
AP-235
IPCO/USR/CHUCK/CSRC/UAP. C
.1..
.t."t
'_bu'_s'a' • INUSE, 1*
,tIU,n" n"."I"'!t Buff." D.,c1"1pto," *1
1* l ' the"e ar. on1u ao 10cationl l"t, tu,." off thl .pilot *1
if ('_bu,_,tat INUBE •• 1"_'1"0_' + 20 - Dut_'i'o_') <
RTS_OFFBI
t_bufl _,tat • FULLI
1* called b\l '".n I .. 1 t
Fi fo_R_Out ()
int'''T'upt *1
{
ch.,.
CI
if (out_'i'o_" .- In_'I'o_,,,)
.1..
,.. _bu, _It.t • Ef'tPTV,
i'
1* i'
*'
*'
:1."_'1'0_1")
1* if the ,!flo i , 1.,tV
thl fi'o .... full and , . nOIll d .... inin.
(T'_bu,_,tat •• FUlL •• out_,i'D_T - 81 ,.. _bu' _Itat • INUSEI
",.tU1""(C ))
Fi'D_R_ln(c)
cha"
CJ
'*
called b\l RlcvJ)ata_l ()
'1'D_"[1"_'1'0_,,,++l • CI
Di •• bll_Ua",t..:.,Jnt( ),
i f (r _bu' _.tat -- EI'IPTV)
UART _TX_EI_BI
>
11'1
CoCO»)
,,_bu' _,tat. INUSEI
'* prill' the
*'
int.,.,..upt *1
*'
1* if thl bu",,, i , 'ull. indicat. i t
if (T':.JIU'_st.t -- lNUSE •• in_fifD_" •• out_'i'D_")
r _buf _.tat - FUL.L.I
En.b le_U."t_lnt ()J
Isr _U.,.t()
tnt
char
st.t;
CJ
outb(CHJI_CTL.. 2)1
1* point to RR2 In 8274 *1
.wttchUnb(CH_B_CTL) " OllCH /* r •• d 82704 int."rupt vec:to" .nd •• rvic. it */
cat. UART_TX_B:
if
C... _buf_.t.t
_. EMPTY)
UART_TX_DIJh
RESET_TX_INTI
.1 ••
outb (CH_B_DAT.
br •• k;
Flfo_R_Out ( ) ,
231421-56
1-237
intJ
AP·235
IPCO/USR/CHUCIVCSRC/UAP. C
c...
UARTJlECY~RJI:
autbCCHJI_CTL. II. 1* paint ta RRI in B274 *1
otat - InbCCHJI_CTLI.
autbCCHJI_CTL. 01301.
i f Cotat • 0100101
Wrtte(lI\nPaT'itv E,.,.oT' Detected\""),
If Cotat • 0.00201
WT'itIC"\nOve1'T'un E,..1'o," Detected\"");
If Cotat • 0100401
W,.tteC"\nF,..fllinl E'f''ro1'' Detect:ed\nll)J
br •• k,
c . . . UARTJlECY_B:
c - Inb CCHJI..DATl.
if (h"'_ltat •• TRUE) -(
hl_It.t • FALSE,
1Il1" •• lu
i'
(local_echo)
CoCc).
i.
(c •• eTL C)
'* Fl ••
to
t.,. .. inate
High Sp.ed T,..nllllit mode
*'
'* a
leho the ch.,. back to thl te"mina1. could cau ••
,.,..nlmit Dv.,.,.un if Tx int • .,.,.upt tl Inabled *1
tmstat • -FALSE.
,I ••
Flfa_T_InCcl.
h- •• 11i
cu. EXT_BTAT_INT_B:
.utbCCHJI_CTL. 01101.
b,. •• k,
c ... EXT_STAT_INT..... :
.utbCCH ....._CTL. 01101.
br •• k,
)
EOI_BOI30_B274.
EO I Jl274'
)
X.,,2( )
<
.end_fl • • • TRUE.
DutbCOxEA.
12~);
DutbCOxEA. 0.00).
outb(OxEO, 0.6:2);
'*
Timl,. 1 inte"'1"upt. eve,."
1* EOI 80130 *1
125 •• e
*,
231421-57
1-238
intJ
AP-235
IPCD/UBR/CHUCK/CBRC/UN'. C
Lo.dJ. •• pO
(
in'
RecvJl.'._III.
f.,.C.
J)
(
R•• IfJlid'I"C -',,\nEnt .... thtl .t.tto,,', LSAP 'n ....
i f '!Ad.JI •• p..l\d ...... , ... p. R.c,,_Da'._1I1 (
--> ", •••• p,
1);
."., •• ("\n\nE,.p.'I': LSAP Adel,. ••• mUlt •• on. of the fol10 .. tnl=
.... 1".(·'"
2OH. 4OH, 6OH. SOH. AQH. COH, EOH \n"),
'ft"),
)
LodJlulUc •• t l l
(
fo .. C • • ) (
Add ...... 'n HI. __)on,
"'ult i..l\d." £01. AIIDJ.ENI.
if IC"ultijo.... £OI • 0.011 •• 01
W,.tt.C .. ,"So,.,. ... the LSI 0' the "ultlc •• , Atld,. ••••Ult: , . 1\,,"),
if '!A•• Jlultic . . 'jo....... ' ...ulUjo.... £O]) (
W'I":lt.C-'n\nSo,.,.v. "ultic •• ' Add,. ••• T•• l. i l full !\,,"),
R•• d..Addl"( "'nEnt ... th. Multic •• '
.10. (
)
..,.
....
.1 •• (,
.... ,t.C·'''\nWDuld vau lilt. to add .no.h.,. Multic •• t Atld"' ••• ? .. ),
""tt.c·
(V
if nV•• 1I1
.1'
N)
-->
")I
.. ,..,11.
)
)
R•• ov.JlulUc •• tC I
(
fo .. C ••
I (
R.ld-.Adth'C"\nEnt.,. the Multie •• ' Add" •••
"h.,
",ou ... nt to d.l.t. in HI. __>",
_1"jo.... £OI. AIIDJ.ENII
if (("ulUjod ... £OI • 0.011 •• 0)
W,.tt.C"\,,8.,.,.V' th. LS8 0' till. Multie,.' Addl' ••• IIU.t; .. e l\n"h
.1 . . ( if I !D.l . . .Jlu1tic ••
'~ultijodd .. tOl)1 (
W1'"it;.(·\n\nSD,.I''', t;h.' "ultic •• t Add,. ••• do •• n't; , •• t.I!!\n"h
11", •• 11,
t-".......
)
el •• (
Wrtt.(·\n\nWould ,ou I". ta del.t. enot,..", Multic •• t Add ...... ?ta)1
W1'"iteC" CY .,. N)
'»
-->
")J
If '!V••
11,.•• 11.
)
)
231421-58
1·239
AP-235
IPCD/USR/CHUc:II/CBRC/IMP. C
P,..int./tdd,.. ••••• C)
<
.t:l'uct:
int
..wAT .p . . "
.t.t,
""'1:.("\"
....
Thi. St.t'on. Ho.t: Add.,. ••• is: .. );
ih..Add~( ... bo•• itOl. ADDJ-ENII
..,.:l.t.("\" The Add ...... of the De.tination Node i.: ") •
.... it • ..Add~(Idl.a'..Add~tOl. ADDJ-ENI •
.".,,,.("\" Thi. Station. LaAP Add,. ••• i . "),
W,.i'.J\dd,..C •••• p, 1),
...,.i,e("\" The Add" ••• of the D•• tination LBAP I •. If);
.... ih..Add~l.d . . p. 1).
aht • FALSE.
fo~ IPM' . . . . U01. p ... ' <..... UI1U..TIJ\DDICCNT - 11. pm.H+1
If Ip ....-:>.,., . . lNUBEI <
.t.t • TRUE.
)
Ill"' .... '
If la'."
wrt tee "\n The fallotlling Multic •• ' Add,. ••••••,.. enalllled: ") I
'a~ IpII.' . . . . . U01. PM' <. _UI'IULTJ..ADDR_CNT - 11. pHt++1
I f IPM'-:>.'.' . . lNUBEI <
.... lh..Add~l.p ... '-:>•• d~tOl. ADDJ-ENI.
Write'"
81se
")J
W'riteC"'" The" • •,.. no l'Iultic •• t Add" ••••• enabled. \n"),
If lI.ht • InitJ-1c (II •• PASSEDI
W'l'tt.C·'n\nP••••• Di.gno.tic Self Te.t.\"\,,\,,"),
.1 ••
Ifla'.' •• FAILEDJUAONDBEI
W",iteC"\n\nFailed: aelf ,T •• t Di •• no •• Ca.end\n"),
el ••
Ifla'.' . . FAILEDJ-PBII_INTERNALI
W1"'teC H \n\nFailed. Int.,.n.l LooptJ.cll S.lf T•• t\n-)'
a1.a
,fl.t-t •• FAILEDJ-PBII.J!XTERNALI
W,.lte("\n\nF.l1ad: Exte"n.1 Loopb.cll S.lf Te.t\n").
el ••
IfC.t.t •• FAILEDJ-PBK_TRANBCEIYERI
W"itaC "\n\nF.tlad: Elta"n.l Loopb.cll Tb,.ough T".nlcaiva,. Se1' Ta.t\n")1
Dutb (OlEO. Ox31) I
au'. COlE:!. 01201 I
1.lnlhll .. 80130 pic - ICWI . ,
I . ICW:!
*'
231421-59
1-240
AP;'235
IPCO/UtlR/CHUCK/CSRC/IMP. C
I. ICwa . ,
I. IC ... • ,
I. ICW. . ,
ou."0.E2. 0.101,
au'ltCO.D. 0.001,
au'beOaEa, 0.101,
ou.bco.n. O.FF"
,.
...
..... ..,,
. . . k all int ....... upt. *1
, ,
out .. CO.FFao. 0.00201,
BOil. v •• 'o,.
I. IniUall • • • b. 110130 tl ...... '0" T..... ln.l "ode
ou.b CO.EE.
outbCO.a.
ouuco.a.
ouUCO.EE.
outbCO.EA.
aut;ItCO.EA,
0.34"
0 ••11,
0.0.1, , . avlTlCK ••• fa,. 1 ••• e .,
0.701,
1251,
0.00)1 , . Ti •• 1' 1 int • .,."upt. IV."', . 121 •• e
*'
, . IniUaU • • •b. 1274 . ,
ou.bICH...._CTL. 0.10" ouUICH...._CTL. 0128" ou.bCCH_B_CTL. 0.301,
ou.b ICH.JI_CTL. 0.3811
outbICH...._CTL. 21, o"tbICH...._CTL . . . . bl2l • Oal41,
outbCCH...._CTL. 11, o".bICH...._CTL . . . . blU • Oal51,
outbICH...._CTL. 'I, outbICH...._CTL. . . . btlll .01EAli
Wort 'eC
1I',,'"'"\"\"',,'n\n\"\"\"',,-)
J
......................................................'"");
W'I"i tiC
"',,'"',,\n\"\"'n-) I
W'I"it.Cw..iteC"
WriteCIl
• _
IEEE 1102.2/_.3 COMp.tibl. D.t. Link D,.iv.,. .'n"I,
.......................................................'n .. )J
dh • • • FALSE •
• onito'l" _.1., • TRUEJ
R•• dJ'dd'l"C"\n\nEnt.,. the A.d,. ••• of the D•• tinatiaft Noda 1n H••
--> ",
..D•• t.JIdd,.I01. ADD.-LENI.
Lo.d.-L"p I I,
R•• d..Add,.CIt\n\nEnt.,. the D.,tinatlon NOd.'. LSAP in HI.
--> " . •d •• p.
1).
W,.:t.t.C"\n\nDo tjou _n' to Load an" Multica.t Add"' ••••• ? ev or N) __ >"),
If IV. . I))
Lo •• .../IulUe •• te I,
Pr I nt.JIddr . . . . . II,
Int
'l'a__cnt. lIuf_ent'
stl'uct
cha ...
TID
.pUd.
.plluf,
"'I'
"b.gin..!'tbd,
CJ
Writ.e"\n Would IOU like tb. 10e.l echo on? (V CIT' N)_-:>N)J
l'CV •• C»)
231421-60
1·241
intJ
AP~235
IPCO/USR/CHUCK/CSRC/UAP. C
local_echo. TRUE;
el ••
local_echo. FAL.SE,
Writ.C n ," Thi. ,rag" •• wl11 now ente" the ter,.!n.1 mod •. '"'nil),
Wrl t. ("'" Pre •• ""C then CR to ,..turn bae k to the menu\"\n") I
out_'ifo_t III t"_fifo_' • out_'iflo_l" • 1"_'1'0_T' • 01
t_bu' _.tat - EMPTY, ,. _bu' _.tat • EMPTY,
EOI_BOl30_8274.
Enable_U.,.t_Jn't< JI
Enab Ie_Tilt.,. _Int (),
monitor _.la, • FALSE)
tmstat • TRUE;
wh He (toM' tat)
fCIT" (',.. ....e_,nt • 0,
f"ame_tnt
whil. «ptbd - Qat_TbdC»
pbu", -
(ch.,.
*>
<
MAX_FRAPlE_SIZEJ
11.. ptbd) (
•• pNULL);
ptbd->buf'-ptri
1* gat . . . .,1t buff." '1"011 the
data linll *1
1* paint to the buffe" *1
bu'_ent • 0;
if ('"alRa_ent •• 0) ( 1* if this i . the 'll'.t buf'e",
he.d.,. information *1
begin-ptbd -
.pbu'++
.pbu'++
*pbu'++
bu._cnt
add on I£EE 802.2
ptbd;
• d •• pi
• • • • pl
• UIJ
• 3;
,-)link. Off •• t(ptbd); 1* i. this i.n't the first buff.r
link the prevlou. buffe" with the n.w on. *1
1* fl11 up • d.t. h,nk 1III,it buffer '''0 ••• vnc transmIt fifo *1
bu. _tnt < TBUF _SIZE ..... rame_tnt < I1AX...FRAHE_SIZE.
buf _cnt++, pbu'++, flT.fAW_cnt.+) {
i ' (f".me_tnt I . 0 II• • • nd_flag)
.lse
'0' ( ;
bre.lfJ
while U_bu._stat == EMPTY);
/* ..... I t untll fifo h •• data *1
if « c . *pbuf - Fifo_T_Dut(» •• CR) (
++buf _cnt ; ++pbu'J ++f"am._cntJ
b,. ••• ,
}
!: bu._cnt < TBUF_SIZE II s.nd_flag) { 1* last buffer in lIst *1
ptbd->act_cnt - bu._cnt I EOFBIT;
if (c == CR
send_flag ... FALSE,
br •• lfl
}
wh 11. ( I Send_F,.alle (beg l"_ptbd. .De.t_Add,,(01»;
1* k Ie, trving unt:l1
successf!ul */
231421-61
1-242
inter
AP-235
IPCD/UBR/CHUCK/CBRC/UAP. C
DIo.b Io_U... t_lnt C"
Di •• bl,_Ti ••,. _lnt(),
..O":l.tol'_'I • • • TRUE,
.lulldJ...... Ctnt)
.'rutt
TID
u_Illo ... t
ent,
u_.hort
• t"Utt TID
.pbu',
I • 0.20, ,,. ... I_ent.
#0,. ( ,
'I'•••_cnt.
*,......
bu'_ent,
• p.ltd,
c ... ,.
:I. •
1n-P1; ....
01
, II. • ,tit.) (
...hil. «ptbd • Oet_TltdC)
-
pNU..L),
,bu' • (ch.,. . , ptbd->buflf-Pt....
bu._ent • 0.
if (,,. ••,_cnt •• 0) "
'*
b.gin ..... tU • ptbdl
.,bu'+• • d •• p,
"0.
1* •• 10 • • • it buff .....
data linll
*'
the
*'
1* ,oint to th. bu.f.r
l ' thtl 'I thl 'h".t bu'f.,., add on IEEE 802
h ........ in'O"r".ation
*'
Q
.,bu'++ •••• "
.,bu'++ =- UII
>
bu._ent - 31
el.1
,-)11nll. Dff •• tCptbd',
1* i ' this tln't thl
"".t
bu,fe,.
*1
linll thl p,.,viaus bu'f.,. IIIlt" the nl.., on.
'*'a .. f:l.11 bu'_tnt
up • data link ••
buf'er lIit" ASCII eh.,..ctl ... *1
< TBUF_SIZE ... tnt> O.
tt
1
CI
i++,
*pbuf •
>
buf _ent++. ,bu'++, cnt--, f", ...e_cnt++)
<
Ii
.f C. > 0.7E)
1 c O.1F;
if (ent •• 0) ( 1* l.st buff.,. in lIst *1
ptbd->act_cnt • bu' _cnt I EOFIIT,
b,. ••••
stT"uet
cnt. 1.
*8uiIdJT" •• e( ) • •ptbd.
•• It.
U_.hD",t
TBD
W,.it.(" Do 1J0u ... nt thl • • t.tion to t",.n'.lt? (V DI' N)
l'
--> "),
(Ves())
231421-62
1-243
intJ
AP-235
IPCO/UIIR/CHUCK/CBRC/UAP. C
fo,. 1.1ft" • FALSE.
.MIt -
FALSE.
I
<
W'I't.'.C"'n Ent." thl nva'e ... o. data b"t •• 'n thl '"a..1 --> ">cn' • Read_Jnt ( ) J
if lent> 204111
"""tl
8o,""". tltl nu.b ........ to bl 1••• than 20•• "nil") ,
eM,"
II ••
•a' t
• TRUE,
11, • • • :I.t • FALSE,
..,.1 •• ("\" Hit an" ... " to I . i t Monitor Modi. 'n\n"),
• F,.0'••••
Qaad
• of Qaod
F,. ••••
WrU.I" Tuns.itted
Writ.l"
.... it:.("
Rlcliv"n") I
Ov • .,.,.un\n" ).
E",.o,..\n lf ) ,
R... ived
..........
I. ·01234l167B'P01234l1678901234l167B901234l167B901234l167B'P012345.7B901234l167S901234l167B
.. •••• 111.1
••••••••25
.1 ••••••
11
I •••
33
••••
44
..111
••••
57
71 *1
fa,. It • o. i < 79. 1++1
IlnetlJ • 0.20.
Ilnot791 • CR.
1in,Caol • ~'O#,
.. hU. I ItnbICHJI_CT\..I .. 11 •• 01
'0,. U • 0, t < 72, t++)
1i notil • 0120.
<
Write...Lonl_Jntllaad_••"_ent. 11"
2')j
W!-tt'~Dn._Jnt(,..cv_f ...... _cnt,
WTtt.-.sho1't_JntCscb. C,"C_I1'''"
W'I'ltIJlho1't_lntClcb .•
.".t.t'Jiho1"t_lntClclt.
In_,,,,,•.
",C_I,." •.
33>1
44),
57),'
W1'ttl_Sho,.'_Int(ecb.ov,,_e1'''51 11"
W,.itel"Un.tOI I.
if 1 ...!.tI <
ptbd • BulldJ,.••• lentl.
whU.I !S.ndJ..... lptbd . . .D.. t....Add,.tOI II •
• ',..uc'
T&D
*,tbdi
..,.ite("\n Hit .nUl 'e, \:0 •• it High Speed 1".n •• it "ode. \n\n"),
h5_st., • TRUE;
EOI_BOl30_B274.
En.bl._U.... t_lnt(
)J
1* E •• cute this lDop until. ,..cv ch." int.,."upt: ".,p.nds .t U.... t
*'
231421-63
1·244
AP-235
IPCO/USR/CHUCK/CBRC/UAP. C
",htl. (hI_stat)
«
'* •• d.'.
8et_Tltd(») •• pN\A.L)j
t • I.it buf'.,. '1"011
the
link *1
ptbd-)act_cnt I- EOFIITJ
/* •• t the End D. F,. ••• bit
whUe' !Send_FT.""Cptbd, .D•• tJt!dd"CO])" 1* Sind F"•••
while (Cptbd •
ch.,.
unsigned
ch[11l. b •••• d.:lelth. lIIIidth,
lonl
' •• pI
*'
*'
il
(dhe') (
awidth ... a;
width. 4,
b • • • • 161
)
,1 •• (
b • • • • 10,
"\lli dth •
10,
wlotn - !'.
Writee","," Qood '''a.... t'NlOaJn.itted' ");
for (i •
11
i
<-
11 - dwlathJ
1++)
CDCSP),
Int_To_Ale i:l (good_l .. t '_tnt. b.... '
i • ~w:ldth - 1, i >- 0, 1--)
Co(chL1J),
W,.itl("
for (i •
Quod
I,
Co(SP),
i
'".m15•• - rec:.ivld:
<-
dWldth,
"
Writet l ' \ " \ "
"'he
'0,.
i
( i • 11
Co(SP),
11
i
>-
0,
").
'f
8cchCUJ, Ul6lidt"'1
1--)
!!"''''a1'' ".cliv.d:
(. 15 -
d..,1d1oh),
l~'"
Int_To-.Alc1iC,..cv_' .... ",,_cnt, b....
-"", (1 • dwidth : ... L:~tiJ),
.cht01.
i6jl:!t~,
lI)j
i++)
t.mp • • eb c,.e_,,,,.'J
Int_To_AlciHt •• p. b •••• ' " 'ch[O]. width);
-.,,, Ci • width - 1, i >- 01 i--)
':-.: t,.hr i 1);
W,.it:e(" A&"kjrlmw"t
,..CliVld: ")1
'0,. (1 • 11 i <- to i++)
CotSP),
tlmp - licb. aln_I1'T'1I
Int_ToJ\lc i i (t ••PI b••• , I , ~Lh LO], width) J
foT' (1 . . . idth -~. "'~. 0, i--)
Co(ch r l j i •
. , "'\01''''\"\" Out of R.,ourci '.,..m ••. ")1
'0,. (i • 11 i <- 12 - width; i++)
Co(SP),
1",.0".
.U"'"
tlmp • • eb. ".C_I,.,."
Int_ToJ'lcUCt •• p, II ••• ·
'
"
trCh[O],
Width),
231421-64
1-245
AP-235
'01' ( i-width - 1.
i
>-
t--)
0.
CoC.hUl,.
writ.C N
R.c.iv .... Dv • .,. ... un , ........ nL
'0'1" (1 •
1.
•
t.mr
i
CoCBPI.
'Ir
t..:!t. u.".
<-
+,
U2 - ..... lftl......
_8,.",.,
.In'_To-''.ciiC ....p . . . . . . ,
fo'l"
( i . . . tdth - I. i
CoC.hrill.
>-
I
'cheOl. width).
"
0, i--)
Writ.CM'n\n 82586 R••• t' "lflo ... Ci • 1. i (- 2'1
wad"" i++)
CcfSP)1
I.,..." . . ,. •••'_'n .. '
Int_To..A.cU(tellp, b••• , ' " 'chtOl. width).
for ct - .. idth - 1. l >- O. l--I
CoC.hUl,.
Wt-itaC· Tran •• i1: undaTl'un .'1" .... :
In", (1 III' 1: .i. ..... 11 - .idthi i++)
").
CDCSP),
t.II, • und .... 'I"uft_cntJ
Int_To..AsciiCt ••p . . . . . . .
'01' U
• Iddth -
'
"
i )- OJ
lJ
'chtO], lIIidttt'.
i--'
CoC.hUll.
''''It.("\n\" LDlt. GRti:
.pOT
'1 • I.
CoCBPI.
I
<-
' ••p • no_c .... _cnt.
Jnt_To_A.ciICt •• p.
fa ... (i - width -
.),
26 - width. t++)
ba,.,
1,
I
CatchtS]),
' '. IIchC01. Indth).
>- ".
..--I
W"'ite(" HE .""01'.: .)J
tOT (i • 1. i (- 2D - IIIldth. i++)
CoCBP).
t ••p • • • e_e",1" _cnt.
Int_TaJ'lc U (t. •• p, ...... I " loch COl, widt.h),
'0" Ci . . . idth - 1: I )a VJ i--)
Co Coh [, l).
"1"ltl("\n\n "'ali.ulI '''It'''\I' "),
fa", Ci - 1; i <- 21 - wIdth, l++)
CoCBP).
t ••p • 1I.I_col_ent.
Int_To-.A.chCtelllp, b •••• ' " 'chC01, tllidth),
fa", Ci - '-Ildth - 1. i >- OJ i--)
Co(chCI1).
Writ.e" F,. •••• th.t d.f .... "'.d: II),
fa", (i • 1; i <- 15 - dWldth, 1++)
Co(SP);
Int_To"-'acll (d ••• ",_c.nt. b ••••
fo", (I - dWldth CaethCi]),
1.
I
>-
0,
' '. lcc.hC01.
1--)
dlllidtb)i
)
Pl'lnt.)4elp CI
(
Writ. (lI\n\n Co_.nd. a,. •. \"\n lf ) ,
Writ. (II T - T.,..inal "ode
" - Moni tar "od.\"'·),
1-246
231421-65
inter
AP-235
IPCD/USR ICHUCII/CSRC/UAP. C
Writ. (" X - High SpI.d n'an.,.it Mod.
Writ, (" P - Prlnt All Countlr,
Write (" A - Add. Multic •• t Add" •••
W1':ltl Cit S - Chang I the &SAP Add" •••
Writ. (" N - Chang, D"'tinltion Nod. 'Add,. •• 1
W.,.lte (" R - Re-Intttalizi the Dat. L.ink
v
C
Z
D
L.
-
Changl T".n.atit St.tt"ticI'""),
CI •• " All Count.". \n") J
Dilete • Multic •• t Add"'I'S\"")J
Chlngl the DSAP Add" •• ,\"");
Print All Add.,. ••••• 'n .. );
B - Chengl the numbe" BI'I\"")I
M.tn( )
(
tnt
CJ
'nit_U.p n.
P,,:lnt_HIlpC),
for
(J J)
(
Write C","\" Enter .. cO,..lnd. t\lpe H 'OT' Help __ >
c • R•• d_Ch.,. () I
I ... itch (L.o ... ,,_C ••• Cc»
'0);
c ••• 'h'.
PTintJiolp( ),
bre.kl
ca. I
'm·:
Manito!" _"od,().
bY, •• kl
ce,1 't',
Te".dnll_"odeC ).
bre.k,
ca,1 '.'.
Hs_Xmit_"odeC );
brl.l&;
c ••• 'v':
Writ.C"'n Tranl.it StatIstICS .r. no ..... ),
i ' (flags. stat_on am 1)
Writ. "),
else
WT'lte(" o f •. \n Would la10u like to cheng. It'? (Y or N) --> ");
I'
(V.s(»
.(
if ('I.g •.• t.t_an •• 1)
.1.gl. Itet_on • 0;
,Is, flall.ltat_on • 1;
breek;
Cille 'pl.
P,..int_CntC );
bra.kJ
ca.. 'c
J •
Cl.ar_Cnt( );
br •• ki
c ••• '.'.
L.oad_Multlca,tC l,
br.ak,
c .... 'z'.
Rltmov'J'lultica.t( ),
b", •• k.
CA,1t
'fi'
231421-66
1-247
inter
AP-235
IPCO/USII/CHUCK/CSRC/UAP. C
D.let,_D •• , ....Add" •• ,( ••• p) J
L.oad_LI.p () I
b.,. •• k,
ca •• 'd':
R•• d-Add1'C",\,,\nEttt:.,.. thlt D•• tination Nod.'. LSAP in He. --;> 'I, Itd •• p.
1);
b1" •• I"
ca •• 'n':
R•• d_AddrC"\n'nEnt.,. thlt Add" ••• of thlt D.'''I",t1on Nod. in H•• --:>
IcO •• t..Add~[OJ. ADD_LEN);
b" •• lcJ
II,
ca •• 'I':
P"int~dd" •••••
( )J
br ••• J
c ••• 'T':
80ft...
,..-"e •• ' ( )I
In; tJ)_t_Link CII
Add...D •• pjtdd,.. ••• C••• p, Rltcv_Oeta_l),
bl' •• "
ca •• 'b':
Writ.e"\" The
CU",,_"'
ba •• i . ")J
i f (dhel TRUE)
Wl"'itltC "H••. \" Would Uou lik. to chang. it ?
1t1 ••
ty 01' N) --:>
W,.itltC"Dltci •• l. \" Would .,ou like to chang. i t ? tY
OT
N)
II);
-->
")1
if (V . . O) (
if (dhlt • • • TRUE)
dhl • • FALSE I
,I •• dh • • • TRUE;
... fault:
W1'lt. ("\n Unllncualn co. . .nd\n"),
b" •• k;
231421-67
1-248
inter
AP-235
IPCO/UBR/CHUC~/CBRC/ABBY.
."Y
n...
c
stack
....... nt Itack
label
w01'd
.Utop
ABII
,uprort
',tack'
end,
.t.-clf
'.I11",.nt public
DLDJ)ATA
•• tT'n
SEQt1T_: word
DLD_DATA
UAP _DATA
UAP_DATA
l'lm.n' public
•• tT'"
•• t,."
UAP_CODE
UAP_CODE
'DATA'
.nd.
OLD_CODE
DLD_CODE
"DATA'
, de'.- •• gm.nt .dd,., ...
"t,."
oog .. ont public
'CODE'
J.,,_TiM.out_:
11,,_586_: fla", 1,,,7_,
11",6_; f.1", 1'1'5_:
11 ... 1_.•• ,.
ond.
f.",
1'lIm.nt public
I,,. _U'-"'_' f.".
'CODE'
1,,.2_, ,.".
.nd.
l.g"lnt public
public
publiC
fl."
"'.1"_' f • .,.
'CODE'
in",_, outw_, in:lt_intv_, Inabll_, di,.bl,_, Build.J'tr
Off •• t_,
cap +
.,.gl
."1112
'a".
b •• in,
inb_,
outb
z
!A-ROwl
::E:
RS-232
CHANNEL B
~
II
iil
3
l>
111------1\. RS-232
CHANNEL A
N ii
<»
..... IJI
0'
(')
I 4
lr
II
1;::IADO-1S ... 1
I
A
I
00- 015
DATA BUS
00-07
82501
LOOPBACK
82530 CONTROL SIGNALS
CONFIGURATION
PORT
292010-7
I I
'U
•
.....
~
""
Ap·274
from the two chips are connected to an OR-gate to
generate a system ALE. Multiplexed address data lines
ADO-ADI5 and address lines A15-A19 of the two
chips are also connected line by line correspondingly.
3.0 ETHERNETICHEAPERNET NODE
DESIGN
Details on LAN High Integration Board (LANHIB)
design are presented in this section. The LANHIB is an
82586/80186 shared bus board and can be configured
to Ethernet or Cheapernet. The 82586 is used in minimum mode to reduce chip count.
3.2 82586 Address Latch Interface
Figure 6 shows the timing of the address signals with
respect to the ALE signal. The ALE of the 82586 is
OR-ed with the ALE of the 80186 and the result is
connected to the latch enable inputs of Octal Transceiver Latches. The latches transfer the input data to the
output as long as the latch enable is high, and captures
the input data into the latch when the latch enable goes
low. In this timing diagram, the setup and hold times of
the input data (82586 address) required by the address
latch can be verified. Estimating 7 ns of propagation
delay in the 74S32, the setup time is T38 + 7, which is
32 ns at 8 MHz. The hold time for Al9 is shorter than
the other address lines because it is valid only during
Tl. The hold time for the Al9 is T4 - T36 - 7, which
is 3 ns. The hold time for the other address lines is T39
- 7, which is 38 ns. In this design, a 74F373 was chosen to latch address lines A16-A19 and two 74LS373s
were used to latch address lines ADO-AD15. Required
setup and hold times of the 74F and 74LS 373s are
summerized in Table 2.
.
the reader is advised to refer to the 80186, 82586,
82501, and 82502 data sheets. Basic understanding of
the 80186 microprocessor is assumed. Figure 5 shows
the block diagram of the LANHIB. Schematics are in
Appendix A.
3.1 82586 (Min Mode) Interface to the
80186
T.he 82586 can be placed in minimum mode by strappmg the MN/MX pin to Vee. In the minimum mode,
the c~directiLProvides all bus control signals-ALE,
RD, WR, DT/R, and DEN, saving the 8288 Bus Controller. The 80186, which is the only other bus master
on the shared bus, also generates these bus control signals directly. The HOLDs and HLDAs of these two
chips are connected together so that only one of the two
bus masters can exclusively drive the bus at a time under the HOLD/HLDA protocol. Except for the ALE,
all bus signals including address and data lines float
when the chip does not have control of the bus. In this
design example, RDs, WRs, DT/R and DEN from the
two chips are connected together respectively. ALEs
Note that address lines A16-A18 and BHE of the
82586 are not really needed to be latched. These lines
stay valid for an entire memory cycle.
VALID BHE. A16-A18. A20-A23
VALID A19
VALID 56
VAlLO AO-A15
T29
0-55".
------- ~
0-45"0
r----
T30
0-5Ons
AL E
T35
o-45ns
T39
I-
45"0 MIN
r
ORED ALE
DELAY IN OR GATE
f--- ~;~o MIN
~
~
0@250C
5ETUP TIME FOR
74F373 AND 74L5373
I
HOLD TIME FOR
74F373 AND 74L5373
Figure 6. 82586 Address Timing
1-262
292010-8
AP-274
Table 2. 74F and 74LS Data Setup and Hold Time Specifications at 25°C
74LS373
74F373
Min
Data Setup Time
Data Hold Time
Nom
Nom
Min
Max
Unit
Max
2..1-
5..1-
ns
3..1-
20..1-
ns
3.3 80186 Address Latch Interface
The address latch used by the 82586 is shared by the
80186. Figure 7 shows the 80186 address line timing
with respect to the ALE. Again estimating 7 ns delay in
the 74S32, the setup time for the latch is TAVAL + 7
and the hold time is TLLAX - 7. These are 37 ns and
23 ns respectively at 8 MHz. Comparing to the required
values shown in Table 2, it is quite obvious that the
setup and hold times of the latch are met by wide margins. Note that the 80186's address lines A16-A18 and
BHE are not valid for an entire memory cycle; therefore, they have to be latched.
3.4 82586 Memory Interface
The 74LS373 has a delay of 18 ns for input data to
reach the output assuming the latch enable is high. A
,
I
---'
TeLAV
5-55ns
demultiplexed valid address (output of the address
latch), therefore, becomes available after T29 + 18
measuring from the beginning of Tl (Figure 8). The
demultiplexed address remains valid until the ALE of
the next memory access becomes active. Upper address
lines, AI4 through A20, are connected to a 16L8 PAL,
which provides address decode logic for all memory
devices. The PAL truth table is in Appendix A. The
PAL has a maximum of 35 ns propagation delay, so
chip selects will become active after 55 + 18 + 35 ns
(max.) from the beginning of Tl as indicated in Figure
8. Since address decode logic is implemented by a PAL,
any memory expansion would only require a reprogramming of this PAL.
Two 74LS245 bus transceiver chips are controlled by
the DT/R: and DEN. Output enable and disable times
of the 74LS245 are 40 and 25 ns respectively. The maximum propagation delay when the output enable is active is 12 ns.
,
T1
I
T2
I
'\..._...I,""--L.J
I
I
I
TeLAX
10ns MIN
I
I
T3
VALID BHE,A1S-A191
VALID AO-A15
Te HLH
35nsMAX
TLHLL
90ns MIN
,
--
ALE
TLLAX
30ns MIN
~ TAVAL
30ns MIN
I
ORED ALE
DELAY I N OR GATE
s@25oe
9n
SETUP TIME fOR
74f373 AND 74LS373
HOLD TIME fOR
74f373 AND 74LS373
292010-9
Figure 7. 80186 Address Timing
1·263
AP-274
T1
T4
--'
I
'",_ _oJ
-
_
,
T2
I
'''' _ _..J
DELAY IN
74LS373
T3
I
,
T4
I
,
T1
I
VALID AO-A19 FROt.l ADDRESS LATCH
I-
T29
0-55 ns
I
.
~
CHIP SELECT FROt.l PAL
PAL DECODER
DELAY :: 35 ns
"I'------------------------~
I--- 20 nT:
I-- T9
t.lIN--
10ns t.lIN
DATA INTO 82586
T40
0-95ns
READ
CYCLE
RD
T42 200 ns t.lIN
FROt.l 82586
T41
T4.4_
1-,0-70 ns-1-- 85 nst.lIN
T22
o-60ns
T22
o-60ns
DT/R
I,T23
1
0-70ns
-
--
I
T24
o-65ns
I
\
DEN
rl
I
r--
131
0-55ns
T32
Ons t.lIN
DATA OUT OF 82586
T23
0-70ns
WRITE
CYCLE
ViR
FROt.l 82586
T45 210ns t.lIN -
I'
\
-
oT:~5n s
292010-10
Figure 8. 82586 Memory Interface Timing
1-264
Ap·274
,
--'
,
T1
-
I
I
T3
T4
I
',--_....,jl
t
TDVCL ~
_2_0_n_S_M_IN_ _--I~
DATA INTO
TCLRL
10-70ns
8~
TCLDX
10 ns MIN
.----
TRLRH 200 ns MIN
FROM 80186
TCLRH
10-55 ns
TCHCTV
I
_~
I
10-55ns
r----J
DT/R
TCVCTV
10-70ns
TRHAV _
85 nsMIN
TCHCTV
10-55ns
f--TCVDEX
10-70 ns
I
\
DEN
I-
TCLDO~I
TCLDV
10044ns
10ns MIN
~
DATA OUT OF 80186
TCVCTV
10-70ns
WRITE
CYCLE
_I.
TWLWH 210ns M I N -
I
\
WR FROM 80186
~
I- TCVCTV~
o
TCVCTX
5-5 5 ns
70_n_S~L___________________
_______
I_l_0__
DEN
I
PAL DECODER
DELAY:::: 35 ns
h
RD
T1
VALID AO-A 19 FROM ADDRESS LATCH
\.
CHIP SELECT FROM PAL
READ
CYCLE
,
DELAY IN
i--74LS373
r- t:I
TCLAV
S-55ns
,
T2
TCVCTX
.5-55ns
,292010-11
Figure 9. 80186 Memory Interface Timing
1-265
intJ
AP-274
Address access time is 3 X Tl - T29 - 18 - T8 12 + n X Tl, where n is the number of wait states. For
o wait states operation at 8 MHz, it is 270 ns minimum.
Chip select access time is 3 X Tl - T29 - 18 - T8
- 12 + n X Tl - 35, which is 235 ns for 0 wait state
operation. Command access time for a read cycle is 2 X
Tl - T40 - T8 - 12 + n X Tl, which is 123 ns.
Address setup time for a write cycle is Tl - T29 - 18
+ T23, which is 52 ns minimum.
OFFFFF
~,..,..,.~,...,.
OFFFFF ,..,...,...,...,...,...,..,
OFCOOO f-'~-'-"'-';.....q
OF7FFF
To meet these timing requirements, 2764-20s must be
used for ROM. Static RAM chips, HM6264P-15, offer
very wide timing margins and were selected for this
design.
....,...,.....,....,...,.....,-1
OF4000 .............4-'..........
OFOOOO f-'~-'-"'-''-'I
3.5 80186 Memory Interface
Figure 9 shows the timing of the 80186 memory interface. By comparing this figure to Figure 7, it is easy to
notice that the 80186 offers a little faster bus interface.
For example, TCLRL which is equivalent to T40 (0 to
95 ns) of the 82586 is specified as 10 to 70 ns. Since the
memory choice satisfies the 82586 memory timing parameters, it also satisfies the 80186 memory timing parameters.
3.6 Memory Map
3FFF
3FFF ......,....,....,...,....,....
292010-12
Figure 10. LANHIB Memory Map
3.7.4 82501 LOOPBACK CONFIGURATION
PORT
With 2764-20 EPROMs and 6264P-15 SRAMs, this
board has 32 K bytes of ROM space and 16 K bytes of
RAM space. Memory map is given in Figure 10. If
27128-20 EPROMs are used, the ROM space becomes
64 K bytes.
3.7 80186110 Interface
3.7.1 82586 CHANNEL ATTENTION
GENERATION
A 74LS74 D-type flip flop was used for this port. On
power up, it configures the 82501 to Non-Loopback
mode by providing a high level to pin 3 (LOOPBACK).
The chip select is~erated from the 80186's PCS2 and
the sychronized WR command of the 82530 interface.
The least significant bit of I/O output data becomes the
state of the 82501's pin 3.
3.7.5 ON-BOARD INDIVIDUAL ADDRESS PORT
The active low Peripheral Chip Select 0 (PCSO) was
used to generate a channel attention (CA) signal to the
82586. This way of CA generation satisfies the requirement that the width of a CA which must be wider than
a clock period of the system clock.
3.7.282586 HARDWARE RESET PORT
peSl of the 80186 will reset the 82586 if any I/O command is executed using this I/O chip select.
3.7.3 82530 INTERFACE
82530 interface to the 80186 was derived from the design example presented in the 82530 SCC-80186 Interface Ap Brief. This document is attached to this Ap
Note as Appendix C.
To provide the 82586 a hardware configured host address, a 32x8 ROM is connected to the bus. The chip
select for this ROM is generated from the 80186's
PCS3, so that the address for the ROM is mapped into
the I/O space. Six or two (IEEE 802,.3 specified address
lengths) consecutive I/O reads starting from the lowest
address of ROM will transfer the board address stored
in the ROM to an lA-Setup command block of the
82586.
3.8 82586 Ready Signal Generation
82586 asynchronous ready (ARDY) signal is generated
from a shift register. The shift register provides the
82586 a "normally ready" signal. When a wait state is
needed, the ready signal is dropped to the low state. As
shown in Table 3, the 82586 can be programmed to
have 0 to 8 wait states by setting the DIP switch properly. Even though the on-board memory devices are
1-266
inter
Ap·274
(IOBASE2) requires the isolation means to withstand
500V ac, rms for one minute. Ethernet (IOBASE5) requires 250 Vrms. This electrical isolation is normally
accomplished by transformer coupling of each signal
pair. The kind of transformers recommended for the
82502 are the pulse transformers which have a I: I tum
ratio and at least 50 microhenry inductance. PE64102
and PE64107 manufactured by Pulse Engineering are
found to be good selections for this purpose. The PE
64102 offers 500 Vrms isolation. The PE64107 offers
2000 Vrms isolation. Both products provide three
transformers in one package. Even though the current
Type IOBASE5 specification requires only 250 Vrms, it
is very common to have a higher isolation, at least 500
Vrms, in transceivers.
Table 3. DIP Switch Settings for Various
Numbers of 82586 Walt States
Dip Switch Setting
7
6
1
1
1
1
1
1
1
1
0
1 1
1 1
1 1
1 1
1 1
1 1
1 0
0 0
0 0
Switch
Switch
1 =
o=
5 4
3
210
Number of Walt States
the 82586 Inserts
1 1 1 1 1
1 1 1 1 0
1 1 1 0 0
1 1 o 0 0
1 0 o 0 0
0 0 o 0 0
0 0 o 0 0
0 0 o 0 0
0 0 o 0 0
Open
Closed
0
1
2
3
4
5
6
7
8
fast enough for 0 wait states operation, this program·
mabie wait state capability was added so that the effect
of wait states on the 82586 performance could be evaluated.
3.9 82501 Circuits
Since the 82501 is designed to work with the 82586, no
interfacing circuits are required.
The transceiver cable side of the 8250 I requires some
passive components. The receive and collision differential inputs must be terminated by 78.0. ± 5% resistors.
Common mode voltages on these differential inputs are
established internally. 240.0. ± 5% pull down resistors
must be connected on the TRMT and TRMT output
pins.
A 0.022 fLF ± 10% capacitor connected between pin I
and 2 of the 82501 is for the analog phase-locked loop.
Connected between the XI and X2 pins is a 20 MHz
parallel resonant quartz crystal (antiresonant with 20
pF load fundamental mode). An internal divide-by-two
counter generates the 10 MHz clock. Since both Ethernet and Cheapernet tolerate an error of only ± 0.0 1%
in bit rate, a high quality crystal is recommended. The
accuracy of a crystal should be equal to or better than
± 0.002% @ 25°C and ± 0.005% for 0- 70°C, A
30-35 pF capacitor is connected from each crystal pin
(XI and X2) to ground in order to adjust effective capacitance load for the crystal, which should be about
20 pF including stray capacitance.
3.10 82502 Circuits
3.10.1 ISOLATION AND POWER
REQUIREMENTS
The IEEE 802.3 standard requires an electrical isolation within the transceiver (MAU). Cheapernet
The standard specifies the voltage input level and maximum current allowed on the power pair of the transceiver cable. The voltage level may be between
+ 11.28V dc and + 15.75V dc. The maximum current
is limited to 500 rnA. Since the 82502 requires + IOV
± 10% and + 5V ± 10% as power, there has to be a
DC/DC converter. In addition the DC/DC converter
must be isolated due to the requirement described
above. The DCIDC converter should be able to supply
about 100 rnA on the + IOV line and 60 rnA on the 5V
line. The efficiency required in the converter is, therefore, «lIV X 100 rnA + 5.5V X 60 rnA) / «(I1.28V
- 0.5A X 4.0.) X 500 rnA)} X 100 = 31% worst
case. 4.0. is the maximum round trip resistance the power pair may have. 82502's CMOS process is the major
contributor to this low DCIDC efficiency requirement.
Since the DC/DC converter has an isolation transformer inside, the output voltages are all floating voltages.
The OV output of the converter, for example, has no
voltage relationship with the DTE's ground. The Vss
and A Vss pins of the 82502 should be connected to the
OV output of the DC/DC converter which is the
82502's ground (reference voltage).
Both Pulse Engineering and Reliability Incorporated
produce DC/DC converters that meet the 82502's requirements. The Pulse Engineering's part number is
PE64369 (enclosed in this design kit). The device measures about 1.5" x 1.5" x 0.5" and provides 2000 Vrms
breakdown. The Reliability's part number is
2EI2RIO-S. Preliminary data sheets are available from
Reliability.
3.10.2 OTHER PASSIVE AND ACTIVE DEVICES
FOR THE 82502
A 78.0. ± 5% resistor is required to terminate the transmit pair of the Transceiver cable. The chip has an internal circuit that establishes a common mode voltage,
thus no voltage divider is required. The receive and
collision pair drivers need pull up resistors. A 43.2
± I % resistor must be connected from each output pin
to + 5V.
1-267
AP·274
A 243.0 ± 0.5% precision resistor is required on the
REXT pin to the ground. The accuracy of this resistor
is very important since this resistor is a part of current
and voltage reference, circuits in the analog sections of
the 82502.
Grounding the HBD (Heartbeat Disable) pin will allow
the chip to perform Signal Quality Error check (Heartbeat) as required by the IEEE 802.3. The chip will
transmit the collision presence signal after each transmission during Interframe Spacing (IPS) time. In a repeater application, this feature is disabled (HBD =
among other MAUs on the coaxial cable." It is recommending a transceiver design that minimizes the probability of total network failure. The fusible resistor will
provide an open circuit in an event of exCess'current. A
short circuit from the CXRD pin to ground will not
bring down the network due to the blown fuse.
A 1 M.o resistor connected between the coaxial cable
shield and the Transceiver cable shield will provide a
static discharge path. The Ethernet coaxial cable
should also have an effective earth ground at one point
in a network as required by the standard. A 0.01 ,...F in
parallel to the 1 M.o resistor provides ground for RF
signals.
+5V).
Diodes connected on the CXTD pin are to reduce the
capacitive loading onto the coaxial cable. One diode is
sufficient, but two will provide a protection in case one
burns, out (Short Circuit). The diode should have about
2 pF shunt capacitance at Vd = OV and be able to
handle at least 100 rnA when biased in forward direction. A few candidates are IN5282, IN3600, and
IN4150.
3.10.3 LAYOUT CONSIDERATION FOR THE
82502 CIRCUITS
A 100.0 fusible resistor connected on the CXRD pin is
purely for protection. It is there as a fuse, not as a
resistor. The 82502 works Without this resistor. The
IEEE 802.3, however, states that "component failures
within the MAU (Media Attachment Unit 'or Transceiver) electronics should not prevent communication
It is strongly recommended that the board have a special ground plane for the 82502 (see Figure 11). The OV
(reference) output of the isolated DC/DC converter
should be connected to the ground plane. The Vss and
AVss pins of the 82502 should be counected to the
ground plane with minimum lead wires.
There should be a 0.22 ,...F capacitor connected between
the coaxial cable shield and ground. The signal path
from the coax. shield through the 0.22 ,...F capacitor to
GROUND PLANE FOR 82502
+12V
OV
ISOLATED
DC/DC
CONVERTER
-IN
+10V I---+-_~
+5Vr---.....
oVI---+.
292010-13
Figure 11. Ground Plane for the 82502
1-268
inter
Ap·274
the ground should be kept as short as possible-leads of
the 0.22 fJ-F capacitor should be as short as possible.
The path length from the CXTD pin through two diodes to the center conductor of the coax should also be
minimized.
These are recommendations which will produce a more
reliable circuit iffollowed carefully. Remember that the
82502 has analog circuits in it.
4.0 DEMONSTRATION SOFTWARE
The demonstration software included in this Ap Note is
called "Traffic Simulator and Monitor Station"
(TSMS) program. The TSMS program is written in
PL/M and has the following features:
I. Programmable network load generation
2. Network statistical monitoring capabilities
3. Interactive command execution of all 82586 commands
4. Interactive buffer monitoring
The environment created with the TSMS program was
found to be very useful for network debugging and other individual station's hardware and software debugging. The TSMS software listing is found in Appendix
B.
NOTE:
The 82586 Date Link Driver presented in AP Note
235 also runs on the LANHIB. Please refer to the Ap
Note for detailed operations of the software.
4.1 Programming PROMs to Run the
TSMS Program
By returning the card enclosed in this kit or by contacting Insite, the TSMS program and related batch files
can be obtained on a diskette. TSMS related files· that
are on the diskette are:
READ. ME
TSMS.PLM
IO.PLM
INI186.PLM
LANHIB.BAT
SBC.BAT
IUPHIB.BAT
IUPSBC.BAT
HI.BYT
LO.BYT
ROM.BAT
batch file ROM.BAT invokes the Intel PROM Programming Software (iPPS) under the DOS operation
system and programs two 2764 EPROMs. The Intel,
Universal Programmer must be placed in ON-LINE
mode.
Other files contained in the diskette are for compiling
and locating the original TSMS program. Using these
files, the original TSMS program can be changed or can
be compiled for an iSBC 186/51. 'TSMS.PLM' is the
original TSMS source program. 'IO.PLM' contains the
10 driver needed when the TSMS program is run on
the iSBC 186/51. INI186.PLM is the LANHIB initialization routine. LANHIB.BAT is the batch file that
compiles, links, and locates the TSMS program and the
LANHIB initialization routine. SBC.BAT compiles,
links, and locates the TSMS program and the 10 driver
for the iSBC 186/51. IUPHIB.BAT programs two
2764s for the LANHIB. IUPSBC.BAT programs two
2764s for the iSBC 186/51.
Therefore, if the TSMS program is to be run on the
LANHIB (Demo board), steps required are:
1. C: > LANHIB
2. C: > IUPHIB
If the TSMS program is to be run on the iSBC 186/51,
steps required are:
1. C:>SBC
2. C: > IUPSBC
4.2 Capabilities and Limits of the
TSMS Program
The TSMS program initializes the LANHIB Ethernet/
Cheapernet station by executing 82586~s Diagnose,
Configure, lA-Setup, and MC-Setup commands. The
program asks a series of questions in order to set up a
linked list of these 82586 commands. After initialization is completed, the program automatically starts the
82586's Receive Unit (monitoring capability). Transmissions are optional (traffic simulation capability).
The TSMS program has two modes of operation: Continuous mode and Interactive Command Execution
mode. The program automatically gets into the Continuous mode after initialization. The' Interactive Command Execution mode can be entered from the Contin~
uous mode. Once entered in the Continuous mode, the
software uses the format shown in Figure 12 to display
information. Detailed description of each of these fields
is as follows:
The READ.ME file contains instructions for programming PROMs. HI.BYT and LO.BYT are the files
which can be downloaded to PROMs directly. These
files are already configured for the LANHIB. The
Host Address: host (station) address used in the most
recently prepared lA-Setup command. The software
simply writes the address stored in the lA-Setup command block with its least significant bit being in the
most right position. Note that if the lA-Setup com-
1-269
inter
AP-274
**************************** station confiquration ************************
Host Address: 00 AA 00 00 18 60
Multicast Address(es): Nb Multicast Addresses Defined
Destination Address: FF FF FF FF FF FF
Frame Lenqth: 118 bytes
Time Interval between Transmit Frames: 159.4 microseconds
Network Percent Load qenerated by this station: 35.7 %
Transmit Frame Terminal Count: Not Defined
82586 Confiquration Block: 08 00 26 00 60 00 F2 00 00
40
***************************** Station Activities **************************
of
1/
Good
Frames
Transmitted
10130
1/ of Good
Frames
Received.
o
CRC
Errors
Aliqnment
Errors
o
o
No
Resource
Errors
o
Receive
Overrun
Errors
o
292010-14
Figure 12. Continuous Mode Display
mand was just set up and not executed, the address
displayed in this field may not be the address stored in
the 82586.
Multicast Address(es): multicast addresses used in the
most recently prepared MC-Setup command. As in the
case of host address. the software simply writes the addresses stored in the MC-Setup command block. Note
that if the MC-Setup command was just set up and not
executed, the addresses displayed in this field may not
be the addresses stored in the 82586.
Destination Address: destination address stored in the
transmit command block if AL-LOC=O. If
AL-LOC= I. destination address is picked up from the
transmit buffer. The least significant bit is in the most
right position.
Frame Length: transmit frame byte count including
destination address. sourCe address. length, data, and
CRC field.
Time Interval Between Transmit Frames: approximate
time interval obtainable between transmit frames (Figure 13). The number is correct if there are no other
stations transmitting on the network.
Network Percent Load Generated by This Station:
approximate network percent load that is generated by
this statkm (Figure 13). The number is correct if there
are no other stations transmitting on the network.
Transmit Frame Terminal Count: number of frames
this station will transmit before it stops network traffic
load generation. If this station is transmitting indefinitely, this field will be 'Not Defined'.
82586 Configuration Block: configuration parameters
used in the most· recently prepared Configure command. As in the case of lA-Setup command, the soft-
ware simply writes the parameters from the Configure
command block. The least significant byte (FIFO Limit) of the configuration parameters is printed in the
most left position.
# of Good Frames Transmitted: number of good
frames transmitted. This is a snap shot of the 32-bit
transmit frame counter. It is incremented only when
both C and OK bits of the transmit command status are
set after an execution. The counter is 32-bit wide.
# of Good Frames Received: number of good frames
received. This is a snap shot of the 32-bit receive frame
counter. It is incremented only when both C and OK
bits of a receive frame descriptor status are set after a
reception. The counter is 32-bit wide.
CRC Errors: number of frames that had a CRC error.
This is a snap shot of the 16-bit CRC counter maintained by the 82586 in the SCB.
Alignment Errors: number of frames that had an alignment error. This is a snap shot of the 16-bit alignment
counter maintained by the 82586 in the SCB.
No Resource Errors: number of frames that had a no
resource error. This is a snap shot of the 16-bit no resource counter maintained by the 82586 in the SCB.
Receive Overrun Errors: number of frames that had a
receive overrun error. This is a snap shot of the 16-bit
receive overrun error counter maintained by the 82586
in the SCB.
If the station is actively transmitting. # of good frames
transmitted should be incrementing. If the station is
actively receiving frames, # of good frames received
should be incrementing. In this continuous mode, a
user can see the activities of the network.
1-270
AP-274
)
1-
TIME FOR ONE FRAME TRANSMISSION (X)
(
PREAMBLE, DA, SA, LENGTH, DATA, CRC
j
..
)
TIME BElWEENI
FRAMES (Y)
.
L-l~-"
292010-15
Network Percent Load = _X_
X+Y
Figure 13. Network Percent Load
Hitting any key on the keyboard while the program is
running in the Continuous mode will exit the mode.
The program will respond with a message 'Enter Com'. In this Interactive Command (H for Help) mand Execution mode, a user can set up anyone of the
82586 action commands and/or execute anyone of the
82586 SCB control commands. Setting up a Dump
command and executing a SCB Command Unit Start
command will, for example, execute the Dump command. Display commands are also available to see the
contents of the 82586's data structure blocks. A display
command will enable a user to see the contents of the
82586's dump (see Section 6.3).
Typing 'E' after 'Enter command (H for help) "
executing a SCB Command Unit Start command with a
transmit command, or executing a SCB Receive Unit
Start command will exit the Interactive Command Execution mode. The program will be back in the Continuous mode. Using this Interactive Command Execution
mode, one can, for example, reconfigure the station and
come back to the Continuous mode. Section 6 lists actual example executions of the TSMS program.
The TSMS program should be run in an 8 MHz system.
The software running at 8 MHz with a maximum of 2
wait states has been tested and verified to be able to
receive back-to-back frames separated by 9.6 microseconds and still keep track of the correct number of
frames received. This capability, for example, can be
used to find out exactly how many frames a new station
in the network had transmitted.
The software does not perform extensive loopback tests
and hardware diagnostics during the initialization. A
loopback operation can be performed interactively in
the Interactive Command Execution mode.
The software allows a user to set up only 8 multicast
addresses maximum. It is not possible with this program to set up more than 8 multicast addresses.
The command chaining feature of the 82586 is not used
in the Interactive Command Execution mode. Each
command setup performed by a'S' command after 'En'sets up a command
ter command (H for help) with its EL bit set, I bit reset, and S bit reset. Diagnose,
Configure, lA-Setup, and MC-Setup commands are
chained together during the initialization routine and
executed at once with only one CA.
The software sets up 5 Receive Frame Descriptors
linked in a circular list. Therefore, a user can see only
the last 5 frames the station has received. It also sets up
5 receive buffers, each being 1514 bytes long, linked in
circle. Therefore, the 82586 never goes into the NO
RESOURCES state.
4.3 Example Executions of the TSMS
Program
This section presents three example executions of the
TSMS program. When the TSMS program needs a
'.
command to be typed, it asks a question with' 'is what a user needs to type in on
Anything after' the keyboard. To switch from the continuous mode to
the interactive command execution mode, type any key
on the keyboard.
4.3.1 EXAMPLE 1: EXTERNAL LOOPBACK
EXECUTION
In this example, 500 external loopback transmissions
and receptions are executed (Figure 14). In order for
the software to process each loopback properly, a large
delay was given between transmissions.
4.3.2 EXAMPLE 2: FRAME RECEPTION IN
PROMISCUOUS MODE
The 82586 is configured to receive any frame that exists
in the network (Figure 15). In this example, the station
received 100 frames.
4.3.3 EXAMPLE 3: 35.7% NETWORK TRAFFIC
LOAD GENERATION
The station is programmed to transmit 118 byte long
frames with a time interval of 159.4 microseconds in
between (Figure 16). The network load is about 35.7
percent if no other stations are transmitting in the network.
A key was hit to enter the Interactive Command Execution mode. In that mode, a Dump command was
executed and the result was displayed. After the Dump
execution, a transmit command was set up again and
the station was put in the Continuous mode.
1-271
inter
AP-274
Traffic Simulator and Monitor Station Program
Initialization begun
Configure command is set up for default values.
Do you want to change any bytes? (Y or N) ==> Y
Enter byte number (1 - 11) ==> 4
Enter byte 4 (4H) ==> A6H
Any more bytes? (Y or N) =-> Y
Enter byte number (1 - 11) am> 11
Enter byte 11 (BH) -=> 6
Any more bytes? (Y or N) _a> N
Configure the 5S6 with the prewired board address ==> N
Enter this station's address in Hex _a> 000000002200
You can enter up tos Multicast. Addresses.
Would you like to enter a Multicast Address? (Y or N) ==> N
You entered 0 Multicast Address(es).
Would you like to transmit?
Enter a Y or N =_> Y
Enter a destination address in Hex _m> 000000002200
._>
Enter TYPE
0
How many bytes of transmit data?
Enter a number
2
Transmit Data is continuous numbers (0, 1, 2, 3, .•• )
Change any data bytes? (Y or N) -=> N
Enter a delay count _a> 10000000000
The number is too big.
It has to be less than or equal to 65535 (FFFFH).
Enter a number -=> 60000
-->
Setup a transmit terminal count? (Y or N)
Enter a transmit terminal count ==> 500
==> Y
Destination Address: 00 00 00 00 22 00
Frame Length: 20 bytes
Time Interval between Transmit Frames: 30.1S mi1iseconds
Network Percent Load generated by this station:
.0 %
Transmit Frame Terminal Count: 500
Good enough? (Y or N)
=-> Y
Receive Unit is active.
292010-16
Figure 14. External Loopback Execution
1-272
inter
AP-274
---Transmit Command Block---
0000 at 033E
8004
FFFF
034E
2200
0000
0000
0000
Hit to countinue
transmission started!
**************************** Station Configuration *************************
Host Address: 00 00 00 00 22 00
Multicast Address(es): No Multicast Addresses Defined
Destination Address: 00 00 00 00 22 00
Frame Length: 20 bytes
Time Interval between Transmit Frames: 30.18 miliseconds
Network Percent Load generated by this station:
.0 %
Transmit Frame Terminal Count: 500
82586 Configuration Block: 08 00 A6 00 60 00 F2 00
00
06
***************************** Station Activities ***************************
# of Good
Frames
Transmitted
500
# of Good
Frames
Received
500
CRC
Errors
Alignment
Errors
0
0
No
Resource
Errors
0
Receive
Overrun
Errors
0
292010-17
Figure 14. External Loopback Execution (Continued)
1-273
Ap·274
Traffic Simulator and Monitor Station Program
Initialization begun
Configure command is set up for default values.
Do you want to change any bytes? (Y or N) ==> Y
Enter byte number (1 - ll) s=> 9
Enter byte 9 (9H)
1
Any more bytes? (Y or N) ==> N
Configure the 586 with the prewired board address ==> Y
You can enter up to 8 Multicast Addresses.
Would you like to enter a Multicast Address? (Y or N) ==> N
You entered 0 Multicast Address(es}.
-->
Would you like to transmit?
Enter a Y or N ==> N
Receive Unit is active.
**************************** station Configuration ************************
Host Address: 00 AA 00 00 18 60
Multicast Address(es}: No Multicast Addresses Defined
82586 Configuration Block: 08 00 26 00 60 00 F2
01
00
40
***************************** station Activities **************************
# of Good
Frames
Transmitted
# of Good
CRC
Frames
Errors
Received
o
100
0
Enter command (H for help) ==> 0
Alignment
Errors
o
Command Block or Receive Area? (R or C)
Frame Descriptors:
4000 at 036C AOOO at 0382 AOOO at 0398
0000
0000
0000
0382
0398
03AE
03DA
03E4
03EE
2200
2200
2200
2200
2200
2200
0000
0000
0000
No
Resource
Errors
o
==>
Receive
OVerrun
Errors
o
R
AOOO at 03AE
0000
03C4
03F8
2200
2200
0000
AOOO at 03C4
0000
036C
0402
2200
2200
0000
292010-18
Figure 15. Frame Reception in Promiscuous Mode
1-274
intJ
0000
0000
0000
0000
AP-274
0000
0000
0000
0000
0000
0000
0000
0000
Receive Buffer Descriptors:
C064 at 030A C064 at 03E4 C064 at 03EE
03F8
03EE
03E4
OFEO
09F6
040C
0000
0000
0000
050C
050C
050C
0000
0000
0000
0000
0000
0000
0000
0000
C064 at 03F8
0402
15CA
0000
050C
C064 at 0402
030A
IBB4
0000
050C
Display the receive buffers? (Y or N) .... > Y
Receive Buffers:
Receive Buffer 0
002C:014C 00 01
002C:015C 10 11
002C:016C 20 21
002C:017C 30 31
002C:018C 40 41
002C:019C 50 51
002C:OIAC 60 61
:
02
12
22
32
42
52
62
03
13
23
33
43
53
63
04
14
24
34
44
54
05
15
25
35
45
55
06
16
26
36
46
56
07
17
27
37
47
57
08
18
28
38
48
58
09
19
29
39
49
59
OA
IA
2A
3A
4A
5A
OB
IB
2B
3B
4B
5B
OC
lC
2C
3C
4C
5C
00
10
20
3D
40
50
OE
lE
2E
3E
4E
5E
OF
IF
2F
3F
4F
5F
03
13
23
33
43
53
63
04
14
24
34
44
54
05
15
25
35
45
55
06
16
26
36
46
56
07
17
27
37
47
57
08
18
28
38
48
58
09
19
29
39
49
59
OA
lA
2A
3A
4A
5A
OB
1B
2B
3B
4B
5B
OC
1C
2C
3C
4C
5C
00
10
20
3D
40
50
OE
lE
2E
3E
4E
5E
OF
1F
2F
3F
4F
5F
03
13
23
33
43
53
63
04
14
24
34
44
54
05
15
25
35
45
55
06
16
26
36
46
56
07
17
27
37
47
57
08
18
28
38
48
58
09
19
29
39
49
59
OA
1A
2A
3A
4A
5A
OB
1B
2B
3B
4B
5B
OC
1C
2C
3C
4C
5C
00
10
20
3D
40
50
OE
1E
2E
3E
4E
5E
OF
1F
2F
3F
4F
5F
03
13
23
33
43
53
63
04
14
24
34
44
54
05
15
25
35
45
55
06
16
26
36
46
56
07
17
27
37
47
57
08
18
28
38
48
58
09
19
29
39
49
59
OA
1A
2A
3A
4A
5A
OB
1B
2B
3B
4B
5B
OC
1C
2C
3C
4C
5C
00
];0
20
3D
40
50
OE
1E
2E
3E
4E
5E
OF
1F .
2F
3F
4F
5F
Hit to countinue
Receive Buffer 1
002C:0736 00 01
002C:0746 10 11
002C:0756 20 21
002C:0766 30 31
002C:0776 40 41
002C:0786 50 51
002C:0796 60 61
:
02
12
22
32
42
52
62
Hit to countinue
Receive Buffer 2
002C:0020 00 01
002C:0030 10 11
002C:0040 20 21
002C:0050 30 31
002C:0060 40 41
002C:0070 50 51
002C:0080 60 61
:
02
12
22
32
42
52
62
Hit to countinue
Receive Buffer 3
002C:130A 00 01
002C:131A 10 11
002C:132A 20 21
002C:133A 30 31
002C:134A 40 41
002C:135A 50 51
002C:136A 60 61
:
02
12
22
32
42
52
62
Hit to countinue
292010-19
Figure 15. Frame Reception in Promiscuous Mode (Continued)
1-275
AP·274
Receive Buffer 4
002C:18F4 00 01
002C:1904 10 11
002C:1914 20 21
002C:1924 30 31
002C:1934 40 41
002C:1944 50 51
002C:1954 60 61
02
12
22
32
42
52
62
03
13
23
33
43
53
63
04
14
24
34
44
54
05
15
25
35
45
55
06
16
26
36
46
56
07
17
27
37
47
08
18
28
38
48
58
p7
09
19
29
39
49
59.
OA
lA
2A
3A
4A
SA
OB
IB
2B
3B
4B
5B
00
10
20
3D
40
50
OC
lC
2C
3C
4C
5C
OE
IE
2E
3E
4E
5E
OF
IF
2F
3F
4F
SF
Hit to countinue
Enter cODlllland (H for help) ==> E
****************************
station Cofiguration
*************************
Host Address: 00 . AA 00 00 18 60
Multicast Address(es): No Multicast Addresses Defined
82586 configuration Block: 08 00 26 00 60 00 F2
*****************************
# of Good
# of Good
Frames
Translllitted
Frallles
Received
100
o
station Activities
CRC
Errors
Alignment
Errors
o
o
01
00
40
**************************
No
Resource
Errors
o
Receive
OVerrun
Errors
o
292010-20
Figure 15. Frame Reception In Promiscuous Mode (Continued)
1-276
intJ
AP·274
Traffic Simulator and Monitor Station Program
Initialization begun
Configure command is set up for default values.
Do you want to change any bytes? (Y or N) --> N
Configure the 586 with the prewired board address --> Y
You can enter up to 8 MUlticast Addresses.
Would you like to enter a MUlticast Address? (Y or N) --> N
You entered 0 Multicast Address(es).
Would you like to transmit?
Enter a Y or N --> Y
Enter a destination address in Hex --> FFFFFFFFFFFF
Enter TYPE -=> 0
How many bytes of transmit data?
Enter a number --> 100
Transmit Data is continuous numbers (0, 1, 2, 3, ••• )
Change any data bytes? (Y or N)
N
-->
Enter a delay count --> 0
setup a transmit terminal count? (Y or N) ==> N
Destination Address: FF FF FF FF FF FF
Frame Length: 118 bytes
Time Interval between Transmit Frames: 159.4 microseconds
Network Percent Load generated by this station: 35.7 ,
Transmit Frame Terminal Count: Not Defined
Good enough? (Y or N) -=> Y
Receive unit is active.
---Transmit Command Block--0000 at 033E
8004
FFFF
034E
FFFF
FFFF
FFFF
0000
Hit to countinue
292010-21
Figure 16.35.7% Network Load Generation
1-277
AP-274
transmission started I
**************************** station Configuration ************************
Host Address: 00 AA 00 00 18 60
Multicast Address(es): No Multicast Addresses Defined
Destination Address: FF FF FF FF FF FF
Frame Length: 118 bytes
Time Interval between Transmit Frames: 15.9.4 microseconds
Network Percent Load generated by this station: 35.7 %
Transmit Frame Terminal Count: Not Defined
82586 Configuration Block: 08 00 26 00 60 00 F2 00 00
40
***************************** station Activities **************************
Alignment
Errors
# of Good
# of Good
CRC
Frames
Frames
Errors
Transmitted Received
10459
0
0
Enter command (H for help) ==> H
o
No
Resource
Errors
o
Receive
OVerrun
Errors
o
Commands are:
Setup CB
S
o - Display RFD/CB
Print SCB
P
C - SCB Control CMD
ESI Loopback On
N - ESI Loopback Off
L
A Toggle Number Base
Clear Tx Frame Counter
Z
Clear RX Frame Counter
Y
Exit to Continuous Mode
E
----
Enter command (H for help) ==> S
Enter command block type
Command block type:
N - Nop
I C - Configure
MT - Transmit
R o - Diagnose
S H - Print this message
(H for help) ==> H
IA Setup
MA setup
TOR
Dump status
Enter command block type (H for help) ==> S
Enter command (H for help) ==> C
Do you want to enter any SCB commands? (Y or N) ==> Y
Enter CUC ==> 1
Enter RES bit ==> 0
Enter RUC ==>.0
Issued Channel Attention
Enter command (H for help) ==> 0
292010-22
Figure 16. 35.7% Network Load Generation (Continued)
1-278
inter
Ap·274
Command Block or Receive Area? (R or C) =-> C
---Dump status Command Block--AOOO at 0364
8006
FFFF
27D6
Dump Status Results
at 27D6
00 E8 3F 26 08 60
AA 00 40 20 00 00
62 63 3F BO 00 00
00 00 00 00 00 00
DC 05 00 00 OC 04
82 03 6C 03 F8 03
06 80 FF FF 64 03
00 00 D6 27 00 01
20 00 40 06 30 01
00 00 6A 03 OE 00
00 00 00 00 00 CO
00
00
00
00
DC
64
00
00
00
6C
00
FA
00
00
00
05
80
00
28
00
28
00
00
FF
00
00
E4
D6
D2
00
90
00
00
00
FF
00
00
03
27
02
00
00
00
00
40
FF
00
00
DA
E8
00
00
10
74
FF
FF
00
00
03
21
00
00
01
03
6D
B5
FF
70
DA
FF
00
30
00
00
18
9E
85
03
03
FF
00
26
00
00
00
EE
08
06
78
4E
00
00
6C
00
00
CF
FC
00
05
03
00
00
03
00
Enter command (H for help) ==> S
Enter command block type (H for help) ==> T
Enter a destination address in Hex -=> FFFFFFFFFFFF
Enter TYPE -=> 0
How many bytes of transmit data?
Enter a number -=> 100
Transmit Data is continuous numbers (0, 1, 2, 3, ••• )
Change any data bytes? (Y or N) --> N
Enter a delay count -=> 0
setup a transmit terminal count? (Y or N)
-->
N
Destination Address: FF FF FF FF FF FF
Frame Length: 118 bytes
Time Interval between Transmit Frames: 159.4 microseconds
Network Perc,ent Load generated by this station: 35.7 ,
Transmit Frame Terminal Count: Not Defined
Good enough? (Y or N) --> Y
Enter command (H for help) _a> C
Do you want to enter any SCB commands? (Y or N)
Enter CUC ==> 1
Enter RES bit·-=> 0
Enter RUC .... > 0
Issued Channel Attention
=->
Y.
292010-23
Figure 16. 35.7% Network Load Generation (Continued)
1-279
inter
AP-274
**************************** Station configuration
~***********************
Host Address: 00 AA 00 00 18 6D
Multicast Address(es): No Multicast Addresses Defined
Destination Address: FF FF FF FF FF FF
Frame Length: 118 bytes
Time Interval between Transmit Frames: 159.4 microseconds
Network Percent Load generated by this station: 35.7 ,
Transmit Frame Terminal Count: Not Defined
82586 Configuration Block: 08 00 26 00 60 00 F2 00 00
40
***************************** station Activities **************************
11 of Good
Frames
Transmitted
106020
11 of Good
Frames
Received
o
CRe
Errors
Alignment
Errors
o
o
No
Resource
Errors
o
Receive
Overrun
Errors
o
292010-24
Figure 16. 35.70/0 Network Load Generation (Continued)
5.0 IN CASE OF DIFFICULTY
This section presents methods of troubleshooting ("debugging") a LANHIB board. When a LANHIB board
is powered up with the TSMS program stored in
EPROMs, it should display "TRAFFIC SIMULATOR AND MONITOR STATION PROGRAM"
message on a terminal screen. If the message is not
displayed, the board has to be debugged. Section 5.1
describes basic 80186/82586 system troubleshooting
procedures. Section 5.2 is for troubleshooting 82501
and 82502 circuits. After the 80186/82586 system is
debugged, the 82501/82502 circuits have to be tested.
and the other debugs the 80186/82586 system. The
waveform of the TRXCB output of the 82530 determines which path to be taken. If the 82530 is getting
programmed properly, there should be 153.6 KHz
(1/f = 6.51 ""s) clock on this output pin. If there is a
clock, the problem is probably in the RS-232 interface.
If there is no clock, then the system has to be debugged
using a logic analyzer.
5.2 Troubleshooting 82501/82502
Circuits
If the TSMS program runs on the LANHIB but the
82586 is not able to transmit or receive, there must be a
problem in 82501/82502 circuits. The flow chart in
Figure 19 will guide troubleshooting in these circuits.
An oscilloscope is required.
5.1 Troubleshooting 80186/82586
System
Shown in Figure 17 is a flow chart for troubleshooting
80186/82586 system. The procedure requires an oscilloscope. A logic analyzer is needed if problems appear
to be serious. The procedures will debug the board to
the point where the 82530 is initialized properly. If the
82530 can be initialized properly, ROM and RAM interfaces must be functioning. Board initialization routines (INI186.PLM) linked to the TSMS program requires ROM and RAM accesses. Since the 82586
shares most of the system with the 80186, no special
debugging is required for the 82586. Wiring of all
82586 parallel signal pins should, however, be checked.
The flow chart branches to two major paths after the
first decision box. One path debugs the RS-232 channel
The board should be configured to Cheapernet and disconnected from the network. Two terminators will be
required to terminate a "T" BNC connector providing
an effective load resistance of 250 to the 82502.
The 82586 must have the system and transmit clocks
running upon reset. Since the transmit clock is generated by the 82501, the 82501 transmit clock output pin
(pin 16) should be checked. The TSMS program executes 82586's Diagnose, Configure, lA-Setup, and MCSetup commands during initialization. If the 82586 has
active CRS (Carrier Sense) signal, it cannot complete
execution of these commands. The 82501 should, therefore, be checked if it is generating inactive CRS signal
to the 82586 after power up. The LANHIB powers up
the 82501 in non-loopback mode.
1-280
intJ
AP-274
After making sure that the 82501 is generating proper
signals to the 82586, the TSMS program is restarted
with an initialization shown in Figure 20. The 82586 is
configured to EXT-LPBK= I, TONO-CRS= I, and
MIN-FRM-LEN = 6. The chip is also loaded with a
destination address identical to the source address. If
there are no problems in the 82501/82502 circuits, the
station will be receiving its own transmitted frames. If
problems exist, the station will only be transmitting.
Since the 82586 is configured to TONO-CRS (Transmission On NO Carrier Sense), the chip will keep trans-
(
mitting regardless of the state of carrier sense. The
82501/82502 circuits can then be probed with an oscilloscope at the locations indicated in Figure 21. Probing
will catch problems like wiring mistakes, missing load
resistors, etc.
Once the station is debugged, it can be connected to the
network. If there is a problem in the network, the
82586's TDR command can be used to find the location
and nature of the problem.
)
START
~
-
YES
IS "TRAFFIC SIMULATOR AND NO
MONITOR STATION PROGRAM"
MESSAGE ON CRT?
(HAVE AN OSCILLOSCOPE READY)
(
START DEMO
)
CHECK CLOCK WAVEFORM ON THE
TRXCB PIN(PIN 26) OF THE 82530
~ USING AN OSCILLOSCOPE.
NO
IS IT 153.6KHz(l/f=6.51 ~sec.)
SQUARE WAVE?
CHECK RS-232 DRIVER &
RECEIVER CHIPS. ARE THEY
CONNECTED 'PROPERLY? NOTE
THATTHE 1488(75188)
REQUIRES +12V & -12V AND
THAT THE 1489(75189)
REQUIRES ONLY +5V.
~
CHECK RS-232 DCE & DTE
CONNECTIONS. THE lANHIB IS
A DCE AND AN ASCII TERMINAL
IS A DTE. ONLY PIN2(TXD).
3(RXD). AND 7(GROUND) ARE
USED.
~
CHECK CONFIGURATION OF THE
ASCII TERMINAL BAUD RATE
SHOULD BE SET TO 9600.
ALSO 8 BITS/CHAR. NO PARITY.
AND 2 STOP BITS/CHAR.
~
(
START DEMO
(A LOGIC ANALYZER
MAY 8E REQUIRED.)
CHECK CLOCK WAVEFORM ON THE
FOLLOWING PINS:
1. ClKOUT PIN(PIN 56) OF 80186
THIS SHOULD 'BE 8 MHz 50% DUTY
CYCLE MOS CLOCK.
2. CLK PIN(PIN 32) OF 82586.
THIS CLOCK IS PROVIDED BY 80186.
3. ClK PIN(PIN 20) OF 82530.
THIS SHOULD BE 4MHz CLOCK.
-!
CHECK SIGNAL lEVELS OF THE FOLLOWING
80186 INPUT PINS.
1. RES PIN(PIN 24) SHOULD BE HIGH
AFTER POWER UP RESET.
2. NMI PIN(PIN 46) SHOULD BE lOW.
3. SRDY PIN(PIN 49) SHOULD BE HIGH.
4. ARDY PIN(PIN 55) SHOULD BE HIGH.
5. HOLD PIN(PIN 50) SHOULD BE LOW.
82586 IS NOT INITIALIZED YET.
~
)
292010-25
Figure 17. Flowchart for 80186/82586 System Troubleshooting
1-281
IWrW_r
"'eII
AP-274
CONNECT A LOGIC ANALYZER ON THE
MULTIPLEXED BUS.
1. f'ONNECT AD15-ADD, ALE, RD, WR, ROMHI
ROMLO, RAMHI, RAMLO, AND CS PIN(PIN 33)
or 82530.
r:1
2. USE CLKOUT or 80186 TO CLOCK THE
LOGIC ANALYZER. SAMPLE DATA ON RISING
EDGES.
3. TRIGGER THE LOGIC ANALYZER ON ALE
BECOMING HIGH.
'i'
CHECK RS-232 DRIVER I'<
RECEIVER CHIPS. ARE THEY
CONNECTED PROPERLY? NOTE
THAT THE 1488(75188)
REQUIRES +,12V I'< -12V AND
THAT THE 1489(75189)
REQUIRES ONLY +5V.
SHOWN IN rlGURE 18 IS AN EXAMPLE or A
LOGIC ANALYZER TRACE. COMPARE WHAT'S
OBTAINED TO THE ONE IN rlGURE 18.
Ir DlrrERENT, POSSIBLE PROBLEMS ARE:
1. HIGH BYTE EPROM AND LOW BYTE EPROM
ARE SWAPPED.
2. ADDRESS/DATA LINES ARE NOT CONNECTED
PROPERLY.
3. ADDRESS DECODE PAL IS NOT PROGRAMMED
PROPERLY.
J.
CHECK RS-232 DCE I'< DTE
CONNECTIONS. THE LANHIB IS
A DCE AND AN ASCII TERMINAL
IS A DTE. ONLY PIN2(TXD),
3(RXD), AND 7(GROUND) ARE
USED.
etc.
+
CHECK Ir 82530 IS GETIING INITIALIZED PROPERLY
ON THE LOGIC ANALYZER. TRY OTHER LOGIC
ANALYZER TRIGGERING EVENT, e.g. CS PIN(PIN 33)
or 82530 BECOMING LOW.
MAKE SURE THERE IS 153.6KHz(1/f=6.51 J.'sec.)
SQUARE WAVE ON TRXCB(PIN 26) or 82530.
CHECK CONrlGURATION or THE
ASCII TERMINAL. BAUD RATE
SHOULD BE SET TO 9600.
ALSO 8 BITS/CHAR, NO PARITY,
ANO 2 STOP BITS/CHAR •
(
•
START DEMO
)
292010-26
292010-27
Figure 17. Flowchart for 80186/82586 System Troubleshooting (Continued)
1-282
AP-274
, - - - - - - - - AD15-ADO
,-------ALE
, . - - - - - - RD#
,-....,
jjj
lr~
g~~: 1
~~:~~~
m= "",.,,"""
~L=
(PIN 33) OF 82530
0097 00 41 01001111
009800 41 01001111
0099 00 41 01101111
TRIG 0041 11101111 · .... LOGIC ANALYZER IS TRIGGERED ON ALE = HI.
0101 FF FO 01001111 · .... 80186 JUMPS TO fFFOH AFTER RESET.
010206 EA 00101111 · .... JMP INSTRUCTION (DIRECT INTERSEGMENT)
010306 EA 00101111
SEGMENT OFFSET 0006H
010406 EA 00101111
SEGMENT SELECTOR FFCOH
010506 EA 00101111
(80186 INSERTS 3 WAIT STATES BEFORE
010606 EA 00101111
UMCS REGISTER IS PROGRAMMED.)
010706 EA 11101111
0108 FF F2 01101111
0109 CO 40 00101111
0110 CO 00 00101111
0111 CO 00 00101111
0112 CO 00 00101111
0113 CO 00 00101111
0114 CO 00 11101111
0115 FF F4 01101111
0116 FF Ff 00101111
0117 ff ff 00101111
0118 ff ff 00101111
0119 ff ff 00101111
0120 fF ff 00101111
0121 ff ff 11101111
0122 Ff f601101111
012300 4000101111
012400 00 00101111
0125 00 00 00101111
0126 00 00 00101111
0127000000101111
012800 00 11101111
0129 fC 06 01101111 ..... JUMPED TO fC06H
0130 2E fA 00101111
0131 2E fA 00101111
0132 2E fA 00101111
0133 2E FA 00101111
0134 2E fA 00101111
0135 2E fA 11101111
0136 fC 08 01101111
0137 16 8E 00101111
0138 16 8E 00101111
=
=
Figure 18. Example of Logic Analyzer Trace
1-283
292010-28
inter
AP-274
(
START
)
l
DISCONNECT COAX. PUT TERMINATORS ON
BOTH ENDS OF' "T" CONNECTOR. MAKE SURE
THE BOARD IS CONF'IGURED TO CHEAPERNET.
UPON POWER UP, DOES
82501 GENERATE:
r -_ _ _ _.;;YE;;.;S~
1. 10MHz hC AND RxC
TO 82586?
2. INACTIVE
RUN TSMS PROGRAM.
TO 82586?
J
I
...N~O;;...._..,
ews
~
WHEN A TRANSMISSION IS
~ ATIEMPTED, DOES THE TSMS
PROGRAM DISPLAY "NO
CARRIER SENSE" MESSAGE?
POWER DOWN AND RESTART TSMS PROGRAM
WITH 82586 CONF'IGURED
TO:
1. EXT-LPBK 1
2. TONO-CRS 1
3. MIN-F'RM-LEN 6
EXECUTE LOOPBACKS BY
USING DESTINATION ADDR
SAME AS SOURCE ADDR.
TRANSMIT ONLY A FEW
DATA BYTES.
82501/82502 CIRCUITS
MUST BE WORKING O.K.
IF' THE STATION IS STILL
NOT RECEIVING, CHECK
STATION'S DESTINATION
AND SOURCE ADDRESSES,
CONF'IGURATION OF' 82586.
=
=
..!:!2.-
=
I
MAKE SURE THE 82501 IS
POWERED UP IN NONLOOPBACK MODE.
I
AN EXAMPLE EXECUTION
IS SHOWN IN F'IGURE 20 •
....-_ _..L-_ _-,
IF' THE STATION IS NOT
RECEIVING WHILE IT'S
TRANSMITIlNG, THERE IS
A PROBLEM. PROBE
SIGNALS AT LOCATIONS
SHOWN IN F'IGURE 21.
IT'S PROBABLY A WIRING
PROBLEM.
I
(
BOARD SHOULD BE FUNCTIONAL.
)
292010-29
Figure 19. Flowchart for 82501/82502 Circuits Troubleshooting
1-284
AP-274
Traffic Simulator and Monitor Station Program
Initialization begun
configure command is set up for default values.
Do you want to change any bytes? (Y or N) _a> Y
Enter byte number (1 - 11) _a> 4
Enter byte 4 (4H) _a> A6H
Any more bytes? (Y or N) _a> Y
Enter byte number (1 - 11) _a> 9
Enter byte 9 (9H) _a> 08H
Any more bytes? (Y or N) _a> Y
Enter byte number (1 - 11) _a> 11
Enter byte 11 (BH) _a> 6
Any more bytes? (Y or N) _a> N
Configure the 586 with the prewired board address _a> N
Enter this station's address in Hex _a> 000000002200
You can enter up to 8 Multicast Addresses.
Would you like to enter a Multicast Address? (Y or N) ==> N
You entered 0 Multicast Address(es).
Would you like to transmit?
Enter a Y or N _a> Y
Enter a destination address in Hex _a> 000000002200
Enter TYPE _a> 0
HoW many bytes of transmit data?
Enter a number =-> 2
Transmit Data is continuous numbers (0, 1, 2, 3, ••• )
Change any data bytes? (Y or N) _a> N
Enter a delay count _a> 0
setup a transmit terminal count? (Y or N) ==> N
Destination Address: 00 00 00 00 22 00
Frame Length: 20 bytes
Time Intsrval between Transmit Frames: 159.4 seconds
Network Percent Load generated by this station: 11.0 t
Transmit Frame Terminal Count: Not Defined
Good enough? (Y or N) _a> Y
292010-77
Figure 20. TSMS Initialization for 82501182502 Circuits Troubleshooting
1-285
l
II
10V
12V
+12V
OV
ISOLATED
POWER
SUPPLY
I
t
5V
T
II
1 MD..l/4W. 750V(MIN)
O.:~F
II
."
-,,~
7
C
c
Cil
...
N
~
TXD
c:r
I ic»
I\)
(Xl
0)
TXC
N
g:
RXD
...
......
~
g:
RXC
it
tn.
26
RTS
240D.
·~II~·
10
~
240D.
8
91
Vss AVss
16
~
Vee AVec
2 TRMT
VDD
3 TRMT
CXTD
78D.
15
25
RCV 4
23
30
V
9 RXD
8 RXC
\\
28
0°
LPBK COMMAND
FROM I/O PORT
NOTE:
Numbers are probing sequence.
82501
ESI
\
78D.
6 CRS
RCV 5
I
0.22pF
·jll~·
i
15 TEN
CLSN
43D. 4
RCV
82502
ETC
CXRD
r-- LPBK
CLSN 11
1
\
78D.
~
·~II~·
"T" CONNECTOR
~
12
100D.
FUSIBLE
1/8W
43D.
]
NC
CLSN
HBD
6 CLSN
~
""
~
43D. 7
43D.
)-
.....
50D.
TERMINATOR
5 RCV
1
12
....... .......
O.22pF
5V
7 COT
Ii~~,
50D.
14
5V
CRS 31
COT
TRMT
16 TXC
82586
N
~
c
27
O.:~F
0.011~
h
1
243D.
0.57-
"i
292010-30
intJ
AP·274
APPENDIX A
LANHIB SCHEMATICS
PARTS LIST
PAL EQUATIONS
DIP SWITCH SETTINGS
WIRE WRAP SERVICES
1-287
PARTS
REFERENCES
Ul
U2
U3,
U4
US
U6,U7
U8
U9
Ule
Ull
U12. U27
U28
U13
U14
U15
U16
U17
U18 U20
U26
U22.
~
ex>
U2:·
U24
U25
U29
ua9
U31
ua2
l
LIST
DESCRIPTION
IC
IC
IC
IC
IC
IC
IC
IC
IC
IC
IC
IC
IC
Pulse Transformer Pack
IC
DC/DC ConvQrte,r
IC. 64i<-Blt EPROM
IC
IC. SRAM
Ie, 256-Blt PROM
IC
IC
IC
IC
IC. IM-Jht EPROM U
W
PI - 79
PI-80
POWER SUPPLY COHHECTIONS
THE BOARD REQUIRES +5U. +12U. AND -12u
MULTI BUS POWER PINS FOR THESE VOLTAGES AND
GROUND ARE SHO~N ABOVE
HOTES:
2
EACH IC SHOULD HAVE A e luF CAPACITOR BETWEEN
POWER PIN AND GROUND PIN.
PARTS LIST DOES
NOT INCLUDE DECOUPLIN'G CAPACITORS
MTR
CODE
iHT
HIT
0iD
4
2
1
2
1
1
2
PI-81
§::::
PE
RCD
TI
MANUFACTURE
INTEL CORPORATION
HITACH AMERICA LTD
ORDER BV DESCRIPTJON
SOURCE>
PULSE ENGINEERING
RCD COMPONENTS IHC
TEXAS INSTRUMENTS
LOCATION
SANTA CLARA. CA
SAN JOSE, -CA
SAN DIEGO CA
MANCHESTER, NH
DALLAS, T:<
I
2
1
2
1
292010-78
»
'U
~
.....
~
(
.
)I-
'tI
ro
CD
N
...."""
<0
292010-79
l
[Pl1
;e......»
N
8
.j:o.
~
292010-80
l
_-_
.. .. DATA
(D1S-DB)
ADDRESS
(A14-AU
[P
'II
2764-28
Al
A2
A3
A4
A5
A"
A7
A8
A9
Ala
All
AI2
AU
AI ..
ro,
~
RD
Ie
9
B
7
6
5
4
3
26
2 ..
21
23
2
26
28
22
8
I
2
3
4
5
6
7
8
9
Ie
11
oe
01
02
03
04
05
06
07
UPP
12
AI3
11
12
13
15
I ..
17
IS
19
DB
D9
DIe
Dll
DI2
DI9
DI ..
DI5
Al
A2
A3
A4
A5
A6
A7
A8
A9
Ala
All
AI2
AU
A14
~
(PL4,S]
JIOItIIUS
[P II
B
7
2764-28
e
oe
I
01
2
02
3
03
0 ..
S
05
6
06
7
07
. ..
..
5
11
us
12
13
IS
I ..
17
18
19
D9
DIe
Dll
DI2
D13
DI4
DI5
Al
A2
A3
A4
A5
A6
A7
AS
A9
AI8
All
AI2
A13
AI"
JlOM
3
25 B
2 .. 9
21
18
23 11 upp ~
2
12
26
~13
2e
22
27 I"6iI
UI9
r
~~M U1S
Rii
Ie
B
-
- - - - -----
2764-2e
II e
oe
9
I
01
8
2
02
7
3
03
6
0 ..
5
5
05
4
6
06
3
7
07
26 S
24 9
21
18
23 I I upp
2
12
26
2. ~3
22
27 I"mi
U2a
r
--
""------- ..
..
II
12
13
15
16
17
18
19
De
DI
D2
D3
D"
D5
D6
D7
~
Al
A2
A3
A"
A5
A6
A7
AS
A9
Ale
All
AI2
AI3
AI"
~OMHJ
r
2764-2e
e
oe
01
I
02
2
3
03
0 ..
05
5
06
3
7
07
25 B
2 .. 9
21
Ie
23 11 upp
2
12
26
2e ~3
22
27 151m
U21
Ie
9
8
7
6
5
..
.. .
11
12
13
15
I"
17
18
19
De
DI
D2
D3
D"
D5
D6
D7
~
»
"P
N
...,
....
_---
292010-81
l
ADDRESS
~
(A13-AU
.
+5U
.
'litiS
b,18K
R2.
18k
r
.....
.{,
~
[P1]
D15
D14
R14
A13
HIf62S4P-16
26 82 108 18
2
12 to? 18
D?
D6
D?
D6
A12
All
DIS
D12
12
All
23
21
106 11
lOS 16
8&
D4
DS
04
AUt
D11
. A18
24
104 16
DS
us
8?
?
1&
1&
S
IS
...
loa 13
82
02
a
2
102 12
101 11
Dl
D8
81
De
2
1
1
•
A9
DI8
AS
26
A8
.7
A6
AS
D9
D8
A8
1117
A6
AS
a
8
'7
...
S
1&
S
&.
...
::
::~;
A2
Al
11\2
Al
9
~;
(Dts-Da
TIPlSSeae
Ria
AIS
11
18
DATA
...
A. 14
AS 18
1t2 12
Al II
A8 18
a
A6
,,<4
AS
A2
Al
:.
'P
~
IS '§
U24
1
e
2.
22
1m [P1.S.S]
III! [PLSI
7.32
lliI!lIIi
RD
8••~
u. 8 R
RAItaJS [PI]
292010-82
--
DATA
n
,p
I I
(D7-")
,p 2]
J:lIRIr-rR
1]
74MS."
RESET 'P
1]
I
1"--.-2
II
HRf
148.
13
12
DB?
DB6
DBS
DB ..
DB3
D82
DBI
.B.
II
Ie
9
8
usa
n
I I I I
......
lIIf
ADDRESS
S
ftX9
~
TRf
Timi
I'!D
•
1IW7IIRI"
~
15ft7IIRII
..
~
1IIlV7Imi
..
i\)
~
lEI
lEO
eLK
I I
CONI
III.
1201
TxDB
RxDB
./~
<0
c.l
601
811
3
2
I
1488
-
'111
U29
+SU
~II
\\\,
U2S
S3.CLK
SVS CLK
IN!'I
[P 11
CP Il
r=rrl ~It" ~ }r.L,
12 as::J19
U2S
704AS8''
DRQ.
l
[P 11
TII!AT 'P
1]
I II
I
,
I
I~ rrr·I~.t.
R2S
~
COH2
1-7
IK
1-8
1-7.
1-8.
I
R~21jl
I
R2 ..
IK
R2S
I
18
2.
21
22
23
2 ..
+SU
SK
R22, ~2
SK
'81:1<111
U2S
292010-83
3>
..
"U
J
N
......
inter
AP-274
OPT1OHAL 1tG!lQ (6tJCx16) NORD-NIDE £PJIJH
ADDJIBSS (A16-AU
LA 6 a?
A'& 8
A'"
A,aa
,•
A eal
A
A 2e
A
?
A
2?2'.
,& 0'&
,,..
A' ....
a'.
'2
0'2
,e
8
o,e
tt
Ott
e
?
I
08
•
08 • ?
0?12
0118 D
0 I D..
0816 D
021
2
01
I
'.
!i~
§iM~
u'"z
1m
JIQIBUS
,
Dte
0& 14
II
2&..
A"
...
8
8 2
0112 22 I
,
DATA (DiS-De)
,.
D'.
[PI]
292010-84
Nodule Addr_dec
Title 'LANHIB Address Decode Logic
Intel Corp.
Kiyoshi Nishide
Narch, 1986'
"Declarations
PALl
device
AO. Al4. Al5
A16. A17. Al8
A19. BHE
HLDA. 52
RAMLO. RAMHI
ROMLO. ROMHI
ROM
R104
pin
pin
~.
pin
pin
pin
pin
pin
pin
'P16L8' ;
2. 3;
4. 5. 6;
7,. 8;
9. 11;
18. 17;
19. 12;
13 ;
16 ;
Equations
!ROMHI
!ROMLO
!ROM =
!RAMHI
!RAMLO
A15 a: A16 a: A17 a: A18 a: A19 a: (HLDA # 52) a: R104;
IA15 a: A16 a: A17 a: Al8 a: Al9 a: (HLDA # 52) a: Rl04;
A17 a: A18 a: A19 a: (HLDA # 52) Be !Rl04;
!A14 a: !Al5 a: !A16 a: !A17 a: !A18 Be !A19 a: !BHE a: (HLDA # 52);
= !AO a: !A14 a: !A15 a: !Al6 a: IAl7 a: !A18 Be !Al9 a: (HLDA # 52) ;
=
=
PAL Equations
1-294
inter
AP-274
3. To select the 2764·20 EPROMs or 27210 EPROM:
DIP SWITCH SETTINGS FOR
VARIOUS OPERATIONS
SW3
87654321
"t" indicates ON (Switch is clOsed).
2764·20 EPROMs
27210 EPROM
"0" indicates OFF (Switch is open).
"X" indicates Don't Care.
1. To configure the board to Ethernet or Cheapernet:
SW3
87654321
4. Dip Switch Setting Examples:
SW4
SW3
87654321 87654321
Comment
XXOOOOOO
Ethernet
Cheapernet XX111111 Transceiver Cable should
not be connected.
1) To run the TSMS Program OX111111 XXXX001C
from the 2764·20 EPROMs
in Cheapernet Configuration
2. To run the TSMS program or the Data Link Driver
program:
SW4
87654321
TSMS Program XXXXOO01
or
Data Link Driver
Program
Comment
TSMS program uses
the 82530 in
Asynchronous Polling
mode. Data Link Driver
program uses the
825830 in
Asynchronous Polling
and Vectored Interrupt
modes.
OXXXXXXX
1XXXXXXX
~) To run the TSMS Program OXOOOOOO XXXX001C
from the 2764·20 EPROMs
in Ethernet Configuration
~) To run the TSMS Program
1X111111 XXXXOO01
or the Data Link Driver
program from the 27210
EPROM in Cheapernet
Configuration
~) To run the TSMS Program
1XOOOOOO XXXXOO01
or the Data Link Driver
program from the 27210
EPROM in Ethernet
Configuration
5. Dip Switch SW2 programs the number of wait states
for the 82586 (see Table 3).
1·295
AP-274
COMPANIES OFFERIN~ WIRE WRAP SERVICES
AUGAT
Interconnection Systems Division
40 Perry Avenue
P.O. Box 1037
Attleboro, MA 02703
(617) 222-2202
100935 South Wilcrest Drive
Houston, TX 77099
(713) 495-3100
Automation Delectronlcs Corporation
1650 Locust Avenue
Bohemia, NY 11716
(516) 567-7007
dataCon, Inc.
Eastern Division
60 Blanchard Road
Burlington, MA 01803
(617) 273-5800
Mid-Western Division
502 Morse Avenue
Schaunaburg,IL60193
(312) 529-7690
Western Division
20150 Sunburst Street
Chatsworth, CA 91311-6280
(818) 700-0600
South-Western Division
'1829 Monetary Lane
Carrollton, TX 75006
(214) 245-6161
European Division
In der Klinge 5
D-7100 Heilbronn, West Germany
(01731) 217 12
DATAWRAP
37 Water Street
Wakefield, MA 01880
(617) 938-8911
Elma/EMS
A Division of Sandberg Industries
Berkshire Industrial Park
Bethel, CT 06801
(203) 797-9711
1851 Reynolds Avenue
Irvine, CA 92714
(714) 261-9473
3042 Scott Boulevard
Santa Clara, CA 95054
(408) 970-8874
WRAPEX Corporation
96 Mill Street
Woonsocket, RI 02895
(401) 769-3805
1-296
intJ
AP-274
APPENDIX B
SOFTWARE LISTING8-TSMS PROGRAM AND
LANHIB INITIALIZATION ROUTINE
1-297
AP-274
1*****************************************************************************1
1*
r./
TraffIc Slmulator/~onltor Station Program
for 186/586 High Integration Board and
iSBC 186/51'
<,I
*1
*1
"I
Ver
December 17,
1. 0,
1784
Intel Corporation
*1
*1
*1
*1
1*****************************************************************************1
1* Thls software can be condltlonally complIed to work on the iSBC 186/~1 or
on the LANHIB
If 'set(SBC1865l)' lS added to the complier call statement,
thls source program will be compiled for the lSBC18651
*1
tsms'
do;
2
declare main label publiCI
1* literals *1
$IF SBC18651
declare ht
hterally
true
ht
false
lit
forever
lit
ISCP$LOC$LO
ht
ISCP$LOC$HI
ht
SCB$BASE$LO
ht
SCB$BASE$HI
ht
CA$PORT
ht
BOARD$ADDRESS$BASE lit
INT$TYPE$586
lit
INTSTYPE$TIMERO
lit
INT$CTL$TIMERO
lit
INTS7
lit
PIC$MASK$130
llt
PIC$MASK$186
llt
ENABLE$586
lit
ENABLE$586$186
lit
P IC$EOI$I30
lit
EOI$CMDO$130
lit
EOI$CMD4$130
lit
PIC$EOI$I86
ht
EOI$CMDO$186
ht
PIC$VTR$186
lit
'literally',
'1' ,
'0',
'while l ' ,
'OFFFOH' ,
'0',
'0',
'0',
'OC8H' ,
'OFOH',
'20H',
'30H',
'OFF32H' ,
'27H',
'OE2H' ,
'OFF28H' ,
'OFEH',
'OEEH' ,
'OEOH' ,
'bOH',
'64H',
'OFF22H',
'0',
'OFF20H' ,
292010-31
Traffic Simulator/Monitor Station Program
1-298
AP-274
TIMERO$CTL
TIMERO$COUNT
MAX$COUNT$A
CA
ESI$PORT
NO.LOOPBACK
LOOPBACK
lit
lit
lit
lit
lit
lit
lit
'OFF56H',
'OFF50H' ,
'OFF32H' ,
'0'.
'OCBH',
'B',
'0';
$ELSE
3
decl.r. lit
true
li tel'ally
lit
lit
forever
lit
ISCP$LOC.LO
lit
ISCP.LOC.HI
lit
SCB.BASE.LO
lit
SCBSBASE$HI
lit
CA.PORT
lit
BOARD.ADDRESS$BASE lit
INTnVPE$586
lit
I NT.TVPE.TIMERO
lit
INTSCTL.TIMERO
lit
PIC$MASK$186
lit
ENABLE.586
lit
ENABLE.586'186
lit
PIe'EOI$186
lit
EOl$CMDO$186
lit
EOI$CMD4$lB6
11t
TIMERO$CTL
lit
TIMERO$COUNT
lit
MAX'COUNTSA
lit
CA
11t
ESI$PORT
lit
NO'LOOPBACK
lit
LOOPBACK
lit
foils.
'I i teral1 y
'1' ,
'0',
'wh i 1. l' ,
'03FFSH' •
'0'.
'0'.
I I
'0',
'8000H',
'BIBOH' ,
'12',
'8'.
'OFF32H',
'OFF28H "
'OEFH'.
'OEEH'.
'OFF22H'.
'12' ,
'B',
'OFF56H' ,
'OFF50H' ,
'OFF52H' •
'0',
'8100H' •
'1' •
'0',
$ENDIF
$IF NOT SBC1B651
1* System Configuration Pointer *1
4
declare scp structure
(
sysbus byte,
unused (5) byte.
iscp$addrSlo word,
lscp$addr$hi word
I
at (OFFFF6HI data (0. O. O. O. 0. O.
ISCP$LOC$LO.
ISCP'LOC$HII.
'ENDIF
1* IntermedIate System Configuration Pointer *1
292010-32
Traffic Simulator/Monitor Station Program (Continued)
1-299
inter
5
AP·274
declare 15cpSptr pOinter,
iscp based iscpSptr structure
(
1* set to 1 by CPU before it. first CA to 586,
cleared b~ 586 after reading 1nfo from It *1
1* unused *1
scb$o WOT'd,
1* offset of system control block *1
scb$b (2) word 1* base of system control block *1
busy by te,
unused byte,
),
1* System Control Block *1
6
decla,.e scb structure
(
status WOT'd.
cmd word.
cbl$ofhet word,
rpa$offset word,
cT'c$eT'rs word,
aIn •• r1'5 word,
rlc.erT's word,
ovrnSerTs word
1*
1*
1*
1*
1*
1*
1*
1*
cause(s) of interrupt, CU state. RU state *1
int acks, CU cmd, RESET bit, RU cmd *1
offset of first command block In CBL *1
offset of first packet descr1ptor 1n RPA *1
ere error encounterd so 9a1' *1
alignment errors *1
no 1"850U1'[.5 *1
overrun errors *1
),
1* 82586 Action Commands *1
1* NOP *1
7
declare nap structure
(
status lUol'd,
cmd word,
link$offset word
),
1* Individual Address Setup *1
8
declare iaSsetup structure
(
status word,
cmd UJDl"d,
link$offset word,
ia$address (6) byte
),
1* Configure *1
9
declare configure structure
(
statuI Idord,
cmd ,word,
link$offset word,
byte$cnt byte,
.nfo (11) byte
I,
292010-33
Traffic Simulator/Monitor Station Program (Continued)
1-300
intJ
AP-274
1* MultIcast Address Setup *1
10
declare mcSsetup structure
(
status laIord,
cmd '-lord.
llnk.offset word,
mc.b~tR.count
word.
rnc$sddrRss (48) byte
1* only 8
Me
addresses are allowed *1
);
1* TransmIt *1
1* Thls transmit command is made of one transmit buffer descr1ptor and one
1518 bytes long buffer, *1
11
declare transmIt structure
(
status \liard I
cmd word,
l1nk.offset word.
bd.offset ,"ord.
dest.adr (6) byte.
tlJPe word
).
1* Transmit Buffer DescrIptor *1
12
declare tbd structure
(
ae tSc aunt word,
link.offset word.
adO word.
adl word
);
13
declare t •• buffer (1518) byte;
14
declare tdr structure
,* TDR *1
(
status word I
cmd word.
llnk.offset word,
result word
).
1* Diagnose *1
15
declare dIagnose structure
(
292010-34
Traffic Simulator/Monitor Station Program (Continued)
1-301
infel"
AP-274
status word,
cmd word,
link'off.et word
);
1* Dump Status *1
16
declare dump structure
(
status word,
cmd word,
link'offset word.
buff'ptr 1II0rd
. );
1* Dump Area *1
17
declare dump'area (170) byte;
1* Frame DescrIptor *1
1* Receive frame area is made of 5 RFDs.
buffers. *1
18
5 RBDs. and 5 1514 bytes long
declare rfd (5) structure
(
status word,
elts word,
link.offset 1II0rd.
bd'ofhet word.
dest.adr (3) word.
IreSadr (3) word,
type word
);
1* Receive Buffer Descriptor *1
19
declare rbd (5) structure
(
act.count word,
next.bd.link lIIord.
adO word,
adl word,
size word
);
1* Receive Buffer *1
20
declare rbuf (5) structure
(buffu (1514) byte);
21
declare status word,
1* global variables *1
1* UART status *1
292010-35
Traffic Simulator/Monitor Station Program (Continued)
1-302
intJ
AP-274
actual lIIord,
1* actual numbe,.. of chars UART transferred *1
c.buf (80) byte,
dh . . byte,
ch byte . t Cec.buf),
char.count b'-!tll
1* buffer for a lin. of chars *1
1* numbe,.. b•••• ",itch *1
receiv •• count dword,
1* counte,.. for received frames *1
1* count.,.. for transmItted frames *1
c aunt dillard I
pr.ambl. word,
1*
1*
1*
1*
.ddr •••• l.ngth byt.,
.d.loc byte,
cre bvte,
pre.mble l.ngth in word *1
.ddress length in byte *1
.ddre •• loc.tion control of
crc ltngth *1
82~86
*1
gob.ck byte,
r ••• t bVtll
1* if: •• t,
del,.,,, word,
cur.cbSoff •• t word,
current.frame bVtll
nostransmil.ion byte,
1* delav conunt for t,..anmi.lion delay *1
1* off •• t of current command block *1
1* off •• t of frame descriptor Just used *1
.top.count dword,
.top byte,
1*
go back to Continuous Mod. *1
1* re.et flag *1
transmit terminal frame count *1
me.count bVtll
z byte,
y byte.
22
1
read:
23
2
declaT"e (a,
c) lI.Iord,
(b,
end read;
d,
24
25
26
b,
c,
d,
,) Ixt.,,".1;
.) pOintRr;
1
2
write: procedure (a, b,
dec 1.re (a, c) \IIOT'd,
(b, d) pointer .
end write .
1
csts: procedure byte externalJ
end cstSl
27
28
29
procedure (a,
2
1*
30
utilit~
offset:
c, d) external .
procedures *1
procedure (ptr) \IIOrdi
1* ThIS pToe.dura takes a painter variable (selector offse~),
calucul~tes an
.bsolute address, lubtracts the 82586 SCD offlet from the absolute address,
and then returns the result as an offset value for the 82586 *1
31
2
32
2
declare (ptr, ptrSloc) p,olnter,
bau586 dword,
w based ptr.loc CO2) word,
.
ptr'loc = liptr.
1* 82586 SCB Base Address (20-b,t wide in this 186 based
5yst~m)
*1
292010-36
Traffic Simulator/Monitor Station Program (Continued)
1-303
AP-274
33
34
2
2
35
2
base586 = hhICdouble(15Cp scb.b(I», 16) and OOOFOOOOH) + ,scp scb$b(o),
return lo..,«sh'j(double (..,(1», 4) + ..,(0»
- baseS86);
end offset,
wTlteln
36
procedure Ca,
b,
(,
d),
1* ThlS pro~edure ..,r,tes a ~ine and put a CR/LF at the end
37
2
38
39
2
2
40
2
declare (a,
(b.
d)
pOinter.
call ",rlteCs.
call writeCO.
b. c, d);
@(ODH, OAH),
2,
@status),
end wri teln,
crSlf
41
procedure,
1* ThIs procedure writes a CR/LF.
42
2
43
2
44
call wrIte
(0,
@(ODH,
OAHL
*1
2.
@status);
end cr$lf;
pause:
p~Dcedure;
1* This procedure breaks a program flow,
45
46
47
2
2
2
48
2
*1
c) word.
and
wai~s
*1
for a char to be typed
call ..,rite(O, @(ODH, OAH, 'Hit
:2
60
61
2
:2
62
2
*1
dec lare i '-lard.
c.l1 "1f.d(l, at.buf, eo, eactual. _status),
i • skip;
returnee'bufCi»,
end read'chari
63
64
:2
65
66
67
6e;>
70
71
2
3
3
3
3
3
72
3
73
2
do fOY'.veT'i
b - re.d'chilTi
if b • '1' then return 11
els.
i' b - '0' then return 0,
else
call writ. '),
procedul"'e byte;
1* This procedure reads a character and determine, if it is a YeV) or NCn)
decla"e b
2
76
77
79
90
91
92
2
3
3
3
3
3
do fOT'everj
b = read$cha1"i
If (b = 'Y') or (b = '~/) then return true;
else
I' (b = 'N') Dr (b
'n~) then return f.1se;
93
3
end;
94
2
end yes;
=
1'15.
call writeCO,
char$to$int· procedure (c)
95
I(ODH, OAH, "
2
97
9e;>
e;>0
91
2
2
2
2
Enter a Y or N ==.> '), 22, @status)'
b~tei
1* ThIS procedure converts a byte of
96
*1
b~tei
75
ASCII integer to an Integer
*1
dec lare c bfd te;
If ('0' (= c) and (c (= '9') then return (c - 30H);
else
If('A' <= c) and (c <= 'F') th_n return (c - 37H)/
else
292010-38
Traffic Simulator/Monitor Station Program (Continued)
1·305
inter
'i'2
'i'3
2
2
'i'4
2
Ap·274
if! ('a' <= c) and (c
else return OFFH,
<=
If')
then return (c - 57H),
end cha,..ta.lnt,
'i'5
1* Th,. p,.acedure canve,.t. an ,nte,.ger < OFFFFFFFFH to an arrav of ASCII
lodes.
Input variables are
valure = Integer to be converted,
base - number base to be used for conversion,
Id = l •• dlng charact.,. to be f'lled in,
bufadr • buffer address of the arrav.
width a size of arrav. *1
'i'6
:2
declare value dword,
bufadr pointer,
(i,
J.
base,
Id, width) bVte,
cha,.. ba.ed bufad,. (1) bute,
'i'7
'i'B
'i''i'
101
102
103
104
105
106
107
lOB
10'i'
2
3
3
3
3
3
110
:2
:2
2
3
3
3
2
do i
= 1 to ~,dth,
J = value mod base;
if J'< 10 then cha,.. (~idth - ,) = J + BOH,
else cha,.. (~,dth - ,) E J + 37H,
value - value I base,
end;
1 == 0,
do Whll. chars (i) = '0' and 1
chars ( i ) • 1 d;
1 •
i + b
end;
width - 1;
cha,..caunt • width - I,
end lnt'toSasc i;
aut'wa,.d: p,.acedu,.e
111
<
'(~'pt,.,
distance),
1* An integer at (.electar of ~'pt,.) (offset of w'pt,. + distance) Is p,.inted
.s a 4 dig,t hexadecimal numb.,.,
*1
112
:2
113
114
:2
115
:2
116
2
declare cha,..(4) bute,
~'pt,. pa,nte,.,
distance byte,
W ba •• d w'pt,. (1) ward,
call Int.ta'a.cl(w(dutance), 16, '0', .char.(O), 4),
call ...ri t. (0, .chars (0), 4, @status),;
end out'word;
write.1nt: procedureCdw,
t)i
1* An Integ.,. (d .. ) i l p,.,nted In hexadeCImal (t = 1) or in decimal It = 0),
*1
292010-39
Traffic Simulator/Monitor Station Pr~ram (Continued)
1·306
intJ
117
2
118
119
120
121
122
123
2
2
3
3
3
2
124
125
126
3
3
3
127
2
AP·274
d.cl.~e
dw dillard,
ch ..... C10) bUt..
t bUte.
" t then
do.
call intStoS •• cICdw, 16. 0, IcharseO), 8)i
call "'''lteCO, .charseS-char.count), char.count. G!!statu6),
end,
.In
do;
call intStoS.SC1(dw, 10, 0, .char.CO), 10),
call 1II1'it.(O • •ch.,.s(10-charSCDunt), charScount. est.tus).
end,
end ",rit.tint,
128
1* ThIS procedure prints an 1nteger In deCImal and hexadecImal
129
2
130
131
132
133
2
2
2
2
134
2
135
declare dill dlllord,
call Wl'it • • intCd ..h 0),
call writ.CO, Ie' ('), 2, Istatus),
call .... it ••• ntCd ... 1),
call IIIriteCO, (Ie 'H) '), 2, estatus);
end outSdeethex.
.... it •• o"set
p .. ocedu .. eC"'pt .. ).
1* ThIS procedure takes a pOinter variable.
and prints It in hexadecImal
*1
136
2
137
138
139
140
2
2
2
2
141
2
conv.,.ts i,t to .. 82586 t\lpe af'fs.t.
declare wSptr pointer,
III word;
call wrlt.CO, etC
I
at '), 4, .status),
.. = o"setC"'pt .. ).
call
call
out'wDrd(.~,
IIoITlttt(O,
wrlt •• address
142
*1
@(/
0),
'),
2, @status),
procedure (ptT),
1* ThiS procedure takes a pOinter variable .nd prints it In thr
'selector offset', format
*1
143
2
144
2
declare (ptT. ptT'Sloc)
pointer,
.. based pt ... loc (2) "ord.
pt ... loc = @ptr.
292010-40
Traffic Simulator/Monitor-Station Program (Continued)
1·307
AP-'274
145
146
147
148
2
2
2
2
149
2
call out.word C@wC
call Ulrite(O,
0),
'),
@status),
1,
call out.wordC@wCO), 0),
call write(O.
@('
'),
1,
(tstatus),
end wrlte'address.
print'wds'
150
1),
@(/
procedure(w$ptr,
no'words),
1* ThIS procedure prints no.words
lSI
2
152
153
154
155
156
157
158
159
160
161
2
2
3
3
4
4
4
4
4
3
162
2
numb~r
of words starting at w$ptr.
<>
if no.words
0
th~n
do;
call cr.H.
do i
:;: 0 to no'words -
1,
call out'word (""'ptTI
if
1
:;:
1);
0 then
call writ •• offsetCw.ptr);
call crflf;
end;
end;
end print."",ds;
printf.tr· procedure Cstrfptr. len).
163
1* This procedure prints len number of bytes starting at str.ptr.
164
*1
declare ""Sptr painter,
(i. no'words) bldte,
2
*1
declare Clen. i) byte.
chars (2) byte.
str$ptr pointer,
str based str.ptr (1) byte;
166
161
168
169
170
171
2
2
3
3
3
3
2
172
:I
Ib5
if len <> 0 then
do i = 0 to (len - 1);
call intSto'asci(stl"(i),
16,
'0', echars(O), 2);
call writ.CO. @chars(O). 2. @status),
call ",rit.(O,
@('
'),
2, Istatus);
end;
call cr.lf;
end print'at,.;
printfbuff: procedure. (ptr. cnt);
173
1* This procedure prints cnt number of buffer contents starting at ptr.
174
2
*1
declare ptr pointer,
bt based ptr (1) byte.
(i. J) byte.
cnt wordi
292010-41
Traffic Simulator/Monitor Station Program (Continued)
1-308
inter
175
176
177
17S
179
ISO
lSI
182
183
184
185
IS7
ISS
189
2
2
3
3
4
4
4
4
4
3
3
3
3
2
190
191
192
3
3
3
193
2
AP-274
do;
i
shrCcnt, 4) - I,
0 to i;
call w~lto.add~o •• (.bt(16*J»'
call p~lnt •• t~(.bt(!6*J)' 16),
If (J - 20) a~ (J • 40) or (J - 60)
call p.u •• ,
•
do J •
a~
(J • SO) then
endi
I = I + I,
If cnt-16*1
<>
w~lt ••• dd~I ••
0 thon call
call pl'int.strCebt(16*i),
(.bt(16*1»,
cnt-16*i);
end.
01 . .
do,
Colli
call
w~lt •• addro ••
(@bt(O»,
cnt),
p~lnt •• tr(@bt(O),
Ind.
end
p~lnt.buff'
194
1* ThIS procedure r •• ds Integer charact.r. and forms an integer.
If thp
integer is bigger th.~ 'lImit' or an overflow error is enCDunterred,
an error me.s.ge is printed.
*1
195
2
decl.,.. (laid,
(i,
196
197
198
199
200
201
202
203
205
206
20S
210
211
214
215
216
217
21S
2
3
3
3
3
3
3
4
4
4
4
4
4
4
4
4
4
3
219
220
3
3
221
223
4
4
.... h, lImit) dillord,
JI k, done, hex, dover,
then
hover) byte.
do forever,
Colli road (1. @c.buf, SO, @actual, @status),
k
i,
;a
he.,
laid.
=
skip;
done,
dover,
hover -
false;
IIIh == 0;
J
char.ta.lnt(c.buf(l»,
do while J <= 15,
if J > 9 then he • • true;
if not dover then
if wd > 429496729 then dav.~
t~ue,
else if (wd
429496729) and (J > 5) then dave~
true'
wd = wd*IO + J'
if not have~ then if wh > OFFFFFFFH then hover
true,
=
=
wh
=
=
=
",h*16 + JI
- i + 1;
J - char.ta.lnt(c.buf(I»,
i
end,
1f «c.buf(l) <> 'H') oInd (c.buf(,) <> 'h') and (c.buf(1) <> ODI1) and
(cSbuf(1) <> OAH) and (e.buf(l) <> ' '» or (I = k) th.",
Colli w~lteln(O, @(ODH. OAH, ' I1hgoll character'). 20. @status),
else
do;
If (clbuf(i)·. 'H') or (c$buf(i)
i f hex then
= 'hi)
then hex
= true,
292010-42
Traffic Simulator/Monitor Station Program (Continued)
1-309
AP-274
do,
224
225
227
228
229
230
4
5
5
4
4
4
231
4
call w1'lte(O,
232
233
234
235
236
4
4
4
3
3
call DutSdec$hex"(limlt),
call w1'iteln(O, @(' ' ) , 1,
237
2
If not hover and
(~h
<=
limit) then
~eturn
wh,
end.
else
If not dover and (wd <= limit) ·then return wd.
call writeln(O, I!(ODH, OAH, 'The.number is too b.g. 'J. 25,
@('
It has to be 1es5 than or equal to '), 3b,
(!st':ttus) •
==> '),
20, @~tatu5);
end,
end read.int;
put.address:
238
@status)i
end ..
call w1'ite(O, @(' Enter a number
procedure(",here),
1* This procedure puts an address t~ped In hexadeCimal to the ·Sp~cl'led
location 'where'. *1
239
2
declare where pointer,
(i, J. m. err) b\jte,
addr based where (1) byte,
240
241
242
243
244
245
246
247
249
2
3
3
3
3
3
4
4
4
250
251
252
254
255
256
257
258
259
260
261
262
263
264
265
266
267
5
5
5
5
5
4
4
4
3
3
4
4
4
4
3
3
3
268
2
do forever;
err
= false;
call read(l, I!c$buf, 80, I!actual, estatus),
i := skip;
m = address.length;
do wh.le (m <> 0) and not err,
J
char$to$int(c$buf(i»,
if J = OFFH then err = true;
else
=
do;
addr(m-l) • shl(J' 4);
J
char$to$int(c$buf(i+l»,
=
if J = OFFH then err = true;
else addr(m-l) - addr(m-1> or
~
end,
i - i + 2;
m = m - 1,
endj
if not erT' then
do;
m = c$buf(i);
if (m = ODH) or (m
then return;
= OAH)
or (m
=
Ihl)
or (m
'HI)
or
(m
,
')
end,
call writeln(O, @(ODH, OAH, ' Illegal charac·tn'), 20, estatus),
call write(O, @(' Enter an address in Hex -=) '), 29, @status);
end;
292010-43
Traffic Simulator/Monitor Station Program (Continued)
1-310
AP-274
269
1* This procedure calculat •• and prints a network percent load generated
by this .t.tion.
Th • • qu.tion u •• d in this procedure was obtaln.d
from actual m•• surement.. *1
dec 18".
270
2
2
2
2
j word,
(J. k) dword.
pc.nt (3) byte,
J - (tbd.act'count .nd 3FFFH) *8,
if not .d.loc th.n k • (2*.ddr •••• I.ngth + 2 + crc + pr.ambl.)*8,
el •• k • (ere + p" •• mble>*BJ
if del.y (> 0 then
.IF NOT SBC18651
276
i - low«1000*(J + k»/(1805 + k + 5*double(delay) +
J»'
277
SIF NOT SBC18651
= low«1000*(J + k»/(1810 + k + J»;
i - !ow«1000*(J + k»/(2026 + k + J»'
278
279
280
281
282
2
2
2
2
2
call intttotaBei(L 10, 0, @pcent(O),
call writ.CO, .pcent(O), 2, .statul)l
@('. ' ) , 1, estatus);
call write(O. il!pcent(2). I. 'status);
call ..,,,it.ln(O, (1(' 'X'), 2, @st.tus);
3);
call ",.rit.CO,
end percent;
283
284
1* ThIS station'. address is printed with its least slgnlficant bIt
in the most right position.
*1
285
2
declare ptr pointer,
addr based ptr (1) byt ••
char (6) byt ••
i byte;
292010-44
Traffic Simulator/Monitor Station Program (Continued)
1-311
intJ
286
287
288
289
2
3
3
2
290
2
291
292
2
293
294
295
296
2
2
297
298
299
300
301
302
303
304
305
2
2
2
2
2
2
2
2
2
306
3
2
~
do , = I to addres.$length.
char(i-l) = addr(addres.'lenqth-,);
end,
call pr,nt$str (echar (0). addre.s.length).
end prlnt.networkSadd,..,
prlnt'parameters
procedure,
1* This procedure
pri~ts
dec lare
dword.
stg. (6)
tr.nsmission parameters.
*1
\AI
b~te;
call writ.(O, I( I Destination Address. '), 22, (tstatu.),
if not ad$loc then
call print'n.twork$addr(etransmit. de.t$adr(O»;
else
call print$network$addr(etx$buffer(O»;
if not ad.loc then
w
(tbd.act'count and 3FFFH) + address$length * 2 + 2 + erc;
.1 . . w
(tbd. act$count and 3FFFH) + crc;
call write(O. e(' Frame Length: '). 15. estatus),
call write$int(w. 0);
call writeIn(O, (t(' bVtes')" 6, .status)j
call writ.(O, 1(' Time Interval between TransmIt Frames: '), 40, .status);
if d.I.~ <> 0 then
do;
.IF NOT SBC18651
=
=
w = 1810 + (double(delav) - 1)
*
5;
*
5.
.ELSE
w
= 2026
+ (double(delav) - 1)
,ENDIF
307
308
309
310
311
312
313
314
315
3
3
3
4
4
4
4
4
3
316
317
318
319
320
321
322
4
4
4
4
4
3
2
call int.to.asci( ....
if w >= 10000 then
10. 0,
estgs. 6);
do;
call
call
'il11
call
wrlt.(O, @stgs(O), 2, @statvs),
call
call
call
call
write(O. I!stgs(O). 5. Istatus);
",.rit.(O, @(', '), 1, Istatus);
wr,te(O. Istgs(5). 1. estatus);
uJ'riteIn(O, @(' micT'oseconds'), 13, @status);
w1"ite(O,
@(', 1),
1 . • status);
",rit.(O, @stgs(2), 2, @st.tus);
wl"iteln(O, @(' milis.conds / ), 12, @st.tus);
end;
else
do;
end;
end;
01$1
292010-45
Traffic Simulator/Monitor Station Program (Continued)
1-312
intJ
AP·274
.IF NOT SaCla651
cell writelnCO,
1(' 1'9.4 mlc1'osltconds'),
19,
ct.t.tUS)i
.ELSE
.ENDIF
323
2
call ,...rite
0) and (I
<
'f scb. cmd <> 0 then
do,
call "'Tlt.CO, @(ODH, OAH,
call "T'It..lntCI, 0),
aOOOH),
I
Wait Time
-= '),
15, @status);
call ntH,
end waittleb;
start$timerO: procedure;
1* 80186 tlmeT'O I. started.
*1
292010-46
Traffic Simulator/Monitor Station Program (Continued)
1·313
AP-274
349
350
output(TIMEROSCTL)
2
2
351
OEOOOH,
end staT'tStlmerO;
pT'ocedure interrupt INTSTYPE$586 reentrant,
1ST"
1* interrupt service T'Dutlne for 82586 interrupt *1
352
2
declare
1
byte,
1* Enab Ie 82586 Interrupt *1
SIF SBC18651
EOISCMDOSI30,
output (PICSEOI$l30)
enable;
$ELSE
353
354
2
2
EOl$CMDO$186,
output (PIC$EOISI86)
enab 1 ej
$ENDIF
1* Frame Received Interrupt has the highest priority *1
355
356
357
358
359
360
361
362
363
364
365
367
368
369
370
371
372
373
374
375
376
377
378
379
380
382
2
2
3
3
3
3
3
3
4
4
4
4
3
3
2
2
3
3
3
3
3
3
3
4
4
4
4000H then
i f (scb. status and 4000H)
do,
disablei
scb. cmd = 4000H,
output (CA$PORT) = CA,
call 1IIaitSscbi
if rfd(currentSframel. status = OAOOOH then
do,
recelve.count = receive.count + 1,
tUT'rentSfT'ame = cUT'T'entSframe + 1,
if currentSfT'ame = 5 then current$frame
end,
0,
return;
end;
i f (scb. status and 2000H)
2000H then
do;
disable;
scb. cmd
2000H,
output(CA$PORT)
CA,
call wait$scb;
enable;
if (transmit. status and OAOOOH)
=
=
OAOOOH then
do;
count = count + 1i
if (stop and (count
=
stop.count»
then return,
else
dOl
292010-47
Traffic Simulator/Monitor Station Program (Continued)
1-314
inter
383
384
3B'
386
387
38B
3B9
390
391
392
393
394
39'
396
397
398
399
400
401
402
403
404
405
406
407
40B
409
410
411
412
413
414
415
416
417
41B
419
420
421
422
423
424
425
426
427
42B
429
430
431
432
433
434
435
436
437
43B
AP-274
,,
transmIt status = O.
if delay - 0 then
do;
disable,
5
6
6
6
6
6
6
5
6
6
6
5
4
3
3
4
4
4
4
4
4
4
3
3
4
4
4
4
4
4
4
4
3
3
4
4
4
4
4
4
4
4
3
3
4
4
4
4
4
4
4
4
3
2
scb. cmd .. 0100Hi
output (CA$PORT>
call wait •• cbi
CA.
" .. turn;
end;
.lsl'
do,
if (transm.t status and 0020H) - 0020H then
do;
t".nsmit. st.tus - 0;
di.able;
seb. emd
OIOOH.
output (CA.PORT>
CA,
call wait$scbi
=
end;
if (transm.t. statu. and 0400H)
do,
= 0400H
then
call wrlt.(O.
@(ODH • • No CaT'rier ,Sense!',
tl'ansmit. status = 0;
disable.
seb. emd - OIOOH.
output (CA$PORT)
call wait$scb,;
return.
OOH),
20.
@statu~).
CA.
end;
., (transmit. status and 0200H)
do;
= 0200H
then
call writeCO. @(ODH. ' Last Clear to Send!',
transm1t status = 0;
disable,
seb. emd
OIOOH.
output (CA$PORT) = CA.
call waitSscbi
return;
OOH),
22,
@status),
=
end;
., (transmit status and OIOOH) = OlOOH then
do,
call wrlte(O, (!(ODH, 'DMA Undet'runl', OOH),
transm1t. status = 0,
dIsable.
seb. emd
OlOOH,
output (CA$PORT) = CA,
call ovai t$seb,
return.
16,
@status);
=
end,
end,
I.f (seb. status and BOOOH)
BOOOH then
292010-48
Traffic Simulator/Monitor Station Program (Continued)
1-315
inter
439
440
441
442
443
444
445
446
447
44B
449
450
451
do;
2
di .. bh,
scb. cmd = BOOOH,
output (CASPORT) • CA,
cdl ..aitSscb,
3
3
3
3
3
2
2
3
3
3
3
3
452
3
453
454
455
456
457
45B
459
460
461
462
463
464
465
466
2
2
3
3
4
4
4
4
4
4
4
4
3
3
467
2
46B
.. ndJ
if (scb.status and 1000H) • 1000H ~h.n
do,
disabh'
scb. cmd • 1000H,
output (CASPORT) • CA,
caU .. aitSscb,
call .."ite(O • • (ODH• • Receive Unit became not " •• dy. '. ODH). 33.
istatus),
end,
U iscp. bUIIV then
do,
call .."ihln(O • • (ODH. OAH. 'R ••• t fa~hd. '), 16 ••• tatus),
dhabI.,
scb. cmd • OOBOH,
output (CASPORT) - CA,
call ..aitSscb,
output ICASPORT) - CA,
call .."it.ln(O. 1(' Soft... ". R... t Executed! '). 25 • • status),
end,
e1 •• ~ ••• t-- f.l •• J
end,
end
is",
tISi.,,: p"ocedu"e int.""upt I NTSTVPEST I MERO,
1* inte""upt .u"vie8 "outin. fo" BOl86 time" inte""upt_1
469
470
471
.e b. cmd • 0100H,
output (CASPORT) • CA,
edl ...tts.eb,
2
2
2
SIF BBC1B651
DutputIPICSEOIS130) • EOISCMD4S130,
.nabh,
output(PICSEOISl86) • EOISCMDOS1B6,
SELBE
472
output(PICSEOIS1B6) • EOISCMD4S1B6,
SENDIF
473
.nd
txsts",
292010-49
Traffic Simulator/Monitor Station Program (Continued)
1-316
inter
AP-274
.IF SBCIBb51
Isr.7
procedure lnterrupt INT.7.
1* ThR 80130 generates an interrupt 7 If the original interrupt
15 not
active anV more when the fIrst interrupt acknowledge 'is received. *1
call .. rih(O. @(ODH.
'Interrupt 7'. ODH).
13. @.tatus),
end isr'7;
.ENDIF
474
475
I
2
47b
477
47B
479
2
2
2
2
4BO
2
4BI
re.d.byte proc.dure (k) byte,
declare k word;
call "rlte(O. @(ODH. OAH • • Enter byte ').
call outtdoc$hex(k),
call UI'"it.CO, et(' ==) '), 5, .status);
return r •• d'lnt(OFFH)i
lnit.1Bh.tim.TO:
14. I.tatus).
proc.du"el
1* This procedure Initializes the 80186 timer O.
4B2
*1
2
tIF SBCIBb51
=
output(INT$CTL$TIMERO)
B,
.(OOH, OAH,
Enter a dela~ count ==> J), 27, @status);
delay
read$int(OFFFFH),
if (delay ( 100) and (delay <) 0) then
do,
call cr.H.
call cr$H.
call loop$charC35, '*')j
call IIIrite(O. @(' WARNING '). 9. @status),
call loop$char(35, '*'),
call IIIrlteln(O, @(ODH. OAH. 'A delay count bet .. un 0 and 100 may be verv
'dangerous when thIS station starts'>. 80, @status),
call wrltelnCO, @('to receive manv frames separated only by th~
'IFS perIod (96 mIcroseconds). '), 75, @status);
call wrltelnCO, C!( 'If thlS station never receives a frame. then
'ignore thIS warning '), 65, @status),
call loop$char(79, '*');
endi
output(MAX'CDUNTtA)
delay,
call cr$19;
output(PIC$MASK$IBb) = 3EH.
call wrlt.CO,
=
=
292010-50
Traffic Simulator/Monitor Station Program (Continued)
1-317
inter
AP-274
.EISE
4B3
4B4
4B5
4B6
4B7
4BB
:2
output(INT'CTL'TIMERO)
2
2
2
2
delav ~ re.d'.nt(OFFFFH),
output (MAX.COUNT.A) = delav,
2
~
OCH,
call wrlt.(O. @(ODH, OAH.
I
Enter a delau count
=nz)
27, @statu!lo);
'),
call cr.l,;
output(PIC'MASK'IB6) = ENABLE.5B6.186, .
$ENDIF
4B9
2
end .nit$IB6.timerO,
490
491
1
2
dec lara i bvtei
setup'IA'parameters. procedurel
492
2
c.ll wr.te(O, a(OOH, OAH,
493
494
495
496
497
2
if "es then
2
3
3
2
49B
3
call ",,,it.(O, I(ODH, OAH,
499
500
3
3
call put'address(aia'.etup. ia'.ddress(O»,
501
2
end •• tup.ia'parameters;
502
503
1
2
.etup'me'parameters: procedure;
declare (J' k, don,,) bVte,
504
505
2
2
J = OJ
call .. rihln(O, a(OOH, OAH,
506
507
2
2
done. falslt;
SOB
509
510
511
512
513
514
515
516
2
3
3
4
4
4
4
4
5
do while not done.
if V.I then
517
:HB
519
5
5
4
520
5
Configure the 586 with the prewired'
, ' board add.,..s.
==> '),
57,
~statu!.);
=
do i
0 to address$length - 1,
i •••• tup. ia •• ddresl(i) = input(BOARO.AOORESS.BASE + 10 - 2
*
i)'
end;
else
do;
' Entel' this station"s address',
, in Hex ==:> '),43, Istatus};
end;
' You can enter up to B Multicast Addresses. ' j ,
45, ti'!st"tus).
call ..rite(O, a(' Would vou like to enter. Multicast Address?',
, (V OT' N) ==) '), 59, 'status),
do;
k • J
J •
*
address'length,
J + 1;
cilll cr.lf.
if J • 9 then
do.
call write(O, a(' You alreadv entered B Multicast addresses. 'J,
43, a .. t .. tu.).
end;
else
do.
Clll1 \ll'rite(O, @(' Ent.,. a Multicast Address
=-> '),
31,
C!status)j
292010-51
Traffic Simulator/Monitor Station Program (Continued)
1-318
inter
521
522
5
5
523
524
525
526
527
529
530
531
532
533
5
4
3
3
2
2
2
2
2
2
534
2
535
536
1
2
537
538
539
540
541
542
543
544
545
546
547
548
549
2
2
2
2
2
2
2
2
2
2
2
2
2
550
551
552
2
3
4
AP-274
call put."ddr ••• I.mc ••• tup.mc •• ddresslk»,
call writ.CO, .(ODH, OAH, 'Mare Multic •• t Addr ••••• ?',
, (V or N) ~=> '), 42, I.tatus);
end;
end;
Iisl done -
truI;
end;
if J a 9 thin
-
1;
J -
me'count c address'length * Ji
mc ••• tup.mc.bvt"count ~ me'count;
call writ.CO, .CODH, OAH, ' You enterld '), 1~, est.tus),
c"ll ..rlh.lntIJ' 0),
c"ll .. rlt.lnIO • • 1' l1ultica.t Addr . . . I . . ). 'I. 23 • • ohtuo),
•• tup'configure'parameters: procedure;
declare Ik.
J)
b~h.
configu ••. b~t •• cnt - 11,
configur •. infolO) - 8,
configure. info(l) - OJ
configur •. info(2) configu ••. Info(3) =
configurl. i"'o(4) •
configu ••. info(5) •
configure. info(6) •
configur •. Info(7) •
configure. Info(8) •
conflgu.e. info(9) J • Oi
call ... It.IO • • IODH.
, valu ••. ', ODH,
26H.
0,
96;
O.
OF2Hi
0,
0,
64.
OAH.
OAH,
, Configure command is •• t up for d~f.ult/,
I
Do ~ou ",ant to change any bVtIS?',
, (V DT' N) ==::> '), 99, Istatus);
do .. hile ~n'
do .. hile J - 0,
c .. ll ... It.IO • • IODH. OAH.
'Ente. bVte number (1 - 11)
==)
'I. 34.
@st~tus) j
553
554
555
556
557
559
560
561
J ~ r •• d.int(11)j
if J
0 then
call .. rlte(O • • (ODH. OAH.
4
4
4
4
3
3
3
3
=
' Illegal byte numb.r').
22. Ihtatus).
endl
If J • I thin con'lgure. bute.cnt . . . . . d.b~t.(J).
else configu~e. info(J - 2)
~
d.bvt.(J)J
J =- Oi
c.l1 wT'ite(O, .(ODM, OAH. I AnV moT'. byt •• ? (Y DT' N) =r.:>
= ••
I).
3~,
(!statu5) •
562
563
564
565
567
568
571
3
2
2
2
2
2
2
573
2
end;
preamble - ohlO. shr«conHgu.e. info (2) .nd 30H). 4)+1).
address.length
configure. Info(2) and 07H.
If add.ess.length • 7 then address.length • O.
ad.loc
shr«configure. In'0(2) .. nd 08H). 3).
i f Ih.«configure. 1nfo(7) and 20H). 5) th.n Cf'C
2, el.e crc
i f sh.«configure. Info(7) and 10H). 4) th.n crc - O.
=
=
= 4.
end setupSconfiguT'eSparametersj
292010-52
Traffic Simulator/Monitor Station Program (Continued)
1-319
inter
AP-274
574
575
I
setupStxSparamete-rs
2
dec lare ('si ze,
576
577
578
579
580
581
2
3
3
3
3
4
582
583
584
4
4
3
585
586
587
588
589
590
591
3
3
3
4
4
4
3
i)
proced,ure,
·..,ord.
do forever,
no.transmlsslon = false.
transmit. bdSoffset = offset (@tbd act.count),
if not ad$loc then
do;
call w"lteCO, ICOOH, OAH,
, Enter a destInatIon address In Hex ==0 '), 42. @statuf,),
call put'addr ••• (@transm,t dest$adr(O»;
end ..
el •• call writ.lnCO. @(' 82586 is configured to p,ck up DA. lA.
and TYPE from TX buHer, '). 64. @.tatus).
call cr.lf;
if not ad$loc then
do;
call writ.CO. @(OOH, OAH, 'Ent • .,. TYPE =~:> ,), 18. @st,atus);
transmit, t~pe
read.intCOFFFFH);
=
end;
call blT'iteln(O, @(ODH,
OAH.' How milny bIJ,tl. of transmit data?'),
3::;,
@StCltU5),
cilll writeCO,
EnteT' a number ==:> '), 20, Istatus);
592
593
594
595
596
597
598
599
600
601
602
603
3
3
3
3
3
'4
4
4
4
5
5
4
604
4
call wT'ite(O,
605
606
4
5
do while yes.
call w1'iteCO.
607
608
609
610
611
612
613
614
5
5
5
5
5
5
5
5
615
616
617
5
4
3
618
3
(!(
I
size = read'int(1518);
tbd,act'count
size or 8000H;
if size (> 0 then
do;
tbd, 1 ink'offset = OFFFFH;
tbd,adO
offset C@t,'buffer(O».
tbd, adl
0;
do i
0 to 1517;
tx'bufferCi) = i i
=
=
=
=
end;
call,w"itelnCO,
@(ODH, OAH,
Transmit Data is continuous numbers (0.
(!('
@CODH.
OAH.
Ente~
=
i
T'ead$int(size)1
call writeCO. @CODH. OAH.
call out$dec$hR,Ci);
call writ.(O,
1,
2, 3,',
)'). 57, @status),
Change any data bytes? (V OT' N) ==:> '), ":j."
@(
I
a byte number ==) '),
'i::!./, @status),
B~te').
8.
curT'ently contains '),
Ci!status).
20. @status).
call out$dec$hR,(t,$buff.rCi»;
call writ.CO,
t,$bufferCi)
call .. r,tRCO.
,1,
@('. ' ) ,
@status);
= read$b~teCi);
@CODH.
OAH.
'An~
more bytes? (V or N) ==:> '),
32. @status»)
end;
endl
else
transmit. bd.offset - OFFFFHi
call cr.lf;
292010-53
Traffic Simulator/Monitor Station Program (Continued)
1-320
inter
619
620
3
3
621
622
623
624
3
3
4
4
625
626
627
628
629
631
4
4
3
3
3
3
3
632
634
3
3
635
2
636
637
1
2
638
639
640
2
3
3
641
2
AP·274
c.11 Inlt'186.tlme~0,
call w"it'.CO, eCODH, OAH,
'S.tup. transmit t.rminal count?',
(V or N) .sa> '), 49, estatus);
i
630
stop - true;
call' write (0, .(ODH. OAH,
'Enter a transmit',
I
terminal count :1=:> '), 39 • • status);
stop.count = ~ •• d'lnt(OFFFFFFFFH),
end;
81 •• Itop • false;
c.ll c~'lf,
c.ll c~.l',
call print'paramet.,..s,
c.ll ..~ite(O,
It(ODH,
OAH,
'Good enough? (V
o~
N)
._> '),
29,
@stat.us)j
643
2
644
645
646
647
2
2
2
2
M8
649
2
2
2
2
2
2
2
2
651
652
653
654
655
~el
then return;
loop'char: procedure (i,
dec l .. re (I, J, k) b~te,
do k -
J);
1 to i;
call ",,.ite(O, (lJ,
1, Istatus);
end;
end loop'cha,.,
init:
642
650
if
end;
procedure;
declare
i
b\ltei
call cr$lf,
call loop'cha,. (13, OAH),
call loop.cha.,.(15, I ' ) j
call ..,.it.1n(O, 1t('TRAFFIC SIMULATOR AND MONITOR',
, STATION PROGRAM '),
call loop'char(7, OAH),
call .. ,.iteln(O, It(ODH, OAH,
Initialization ,begun'),
call c~'lf,
reset
tT'Uei
cur'cb'offset = OFFFFH,
output(ESI'PORT) - NO.LOOPBACK,
output(ESI'PORT)
LOOPBACK,
dhe. =- fal.e,
46,
estatus),
23,
Istatus);
=
=
1* set up interrupt logic *1
656
657
2
2
call
call
set'inte~~upt(INT'TVPE'586,
isr),
txtl.r),
.ettlnte~,.upt(INT'TVPE'TIMERO,
.IF SBC18651
292010-54
Traffic Simulator/Monitor Station Program (Continued)
1-321
AP-274
call set$interrupt(lNT$7,
output
output
output
output
output
(PIC.MASK.130)
(PIC.EOI.130)
(PIC.EOI.130)
(PIC.EOI.186)
(PIC.VTR.186)
lsr7),
= ENABLE.586.186,
EOI.CMDO.130;
EOI.CMD4.130,
EOI.CMDO.186,
30H;
.El.SE
658
659
660
2
2
2
output (PIC'EOI'186) = EOI'CMDO'186;
output (PIC.EOI.186) = EOI,eMD4'186.
output (PIe'MASK'186) = ENADLE'586;
!liENIJIF
1* locate iscp *1
661
2
1062
1063
1064
2
2
2
2
iscp.ptr
= ISep!liLOC.LO;
1* set up fields in ISCP *1
665
iScp. busy = 1.
iscp. scb!lib(O) = SCD.DASE.LO;
i.cp. scb.b (1) = SeD.BASE.HI;
iscp. scb.o = o"set (@ocb. status);
1* set up SCD *1
1068
1069
1070
1071
1072
2
2
2
2
2
2
2
1073
1074
1075
2
2
2
676
677
678
680
2
2
2
2
681
682
683
684
2
2
2
2
1066
667
scb. status = 0;
scb. cbl!lio"set
ocb rpa'o"set
o"set (@diagnose. status),
o"set (@r'd(O). status);
scb, crc'errs = OJ
scb. ainSerrs = OJ
scb.rsc$errs = 0;
leb. ovrn'errs = 0;
1* set up Diagnose command *1
diagnose. status = OJ
diagnose cmd = 7;
diagnose link'offset = offset (@configure status),
1* set up eONFIQURE command *1
configure. status = 0,
configure cmd = 2;
configure. link'offset = offset (@ia.setup.status) •.
call setup'configure'parameters;
1* set up IA command *1
ia'setup. status = 0;
iaSsetup. cmd = 1;
ia!lisetup. link'oHset
= oHset
(@mc!lisetup. status),
call setup.ia'parameters;
292010-55
Traffic Simulator/Monitor Station Program (Continued)
1-322
AP-274
Me
1* set up
685
686
687
688
command *1
;/
mcSsetup status = 0.
mc.setup. cmd = 8003H,
mc's.tup link'o"set = OFFFFH,
2
call setup.mc.parameters.
2
1* ,set up one transmit cb linked to its.lf *1
68'1
6'10
6'11
6'12
6'13
6'14
6'15
6'16
6'17
6'18
6'1'1
2
2
2
2
2
3
3
3
3
3
2
transmit status = 0,
call IIIritoln(O, @(ODH, OAH,
call wrlte(O.
if 'des then
' Would you like to transm.t-"),
@(' Enter a V or N
do,
=
transmit cmd
8004H.
==> '),
20.
30, @status),
@status),
=
transmit I.nk'o"s.t
OFFFFH,
tr.nsm.t. bd'o"sot
6"set (@tbd act'count),
call setup$t.$parameters.
=
end.
else no.transmlsslon = true.
1* lnltlallze receive packet area *1
700
701
702
703
704
705
706
707
708
70'1
710
711
712
713
714
715
716
717
718
71'1
720
2
do i
=0
to 3,
= o.
3
r'd(l) status
3
3
3
3
3
3
3
3
3
2
2
2
2
r.d(.) .I.s = 0,
r.d(.) I.nk'o"set
o"set (@r'd(.+I) status),
r.d(i). bd'o"s.t = OFFFFH,
rbd(i) act.count = 0,
rbd(i).next.bd.l.nk = o •• set (@rbd(i+1) act'count),
rbd(.).adO
o"~et (@rbu.(i) bu"er(O»,
rbd(i) adl = 0,
rbd(.) SlIe
1500,
=
=
=
end;
2
r'd(O). bd'o •••• t = o"set (@rbd(O) actScbunt),
r'd(4) status
0,
r.d(4'. el$s = 0,
r'd(4) I.nk'o"set = o •• set (@r'd(O). status),
OFFFFH,
r'd(4). bd'o"set'
rbd(4).act$cQunt = 0,
o"sot (@rbd(O) act'count),
rbd(4) next'bd$link
rbd(4). adO = o"s.t (@rbu'(4). bu".r(O»,
rbd(4) ad1 = 0,
rbd(4). S.10 = 1500,
2
count = 0,
2
2
recelve.count
0,
current. frame
0,
2
2
2
2
2
=
=
=
1* initialize counters *1
721
722
723
1* .ssue the '.rst CA *1
292010-56
Traffic Simulator/Monitor Station Program (Continued)
1-323
inter
724
2
725
2
Ap·274
output(CA.PORT) = CA.
enrl initi
pr,ntShelp
726
procedure;
.r.'
727
728
2
2
call writ.InCO, @(OOH. OAH.
call writeIn(O, @(OOH. OAH.
729
2
call lIrrlteln(O, @(' P - Print SCB
ctstatus);
o - O,splay k~D/CD·).
45. @.tatus).
C - SCB Control CHO'). 44.
730
2
call wT'lteln(O, @( , l. - ESI l.oopback On
N - ESI l.oopback Off').
Commands
S - Setup CB
'),
16,
@~tatu&);
731
2
732
733
734
2
2
2
735
2
736
737
2
738
739
740
741
742
2
2
2
3
3
743
744
745
746
747
748
749
750
751
3
3
4
4
4
4
4
3
2
752
754
755
756
757
759
760
761
762
763
764
2
2
2
2
2
2
2
2
2
2
2
call w,.iteln(O.
call ..,.i,teln(O.
call writ.ln(O,
45.
@(. Z - Cle.,. Tx F,."me Counter'). 27. estatus>.
@(' V - Clear Rx Frame Counter'). 27. @.t .. tus).
C!( I E - Exi~ to Continuous Mod.'), 2B, @.tatus),
end p1'lnt.help,
enterSscbScmd.
procedure,
dec I .. ,.. i byte,
1* enter a command into the SCD *1
call c,..H,
if scb. cmd <> 0 then
do,
call writ.ln(O, .(' sea command talOT'd il not cllar.d'), 32, .status),
call .. rite(O. GI(' Try a Cholnnel Attention? (V 0,. N)
'I.
39. Glbtatus I,
i f yes then
==>
do,;,
output(CA.PORTI • CA,
call writeln(O, GI(' hsued channel att .. ntion'l. 25. IIstatusl,
call cr.lf,
return,;
end;:
00 you want to onte,. any SCD commands? (V 0,. NI ==>
53, Istatu!..);
if not yes then return)
call write(O. I!(OOH. OAH. 'Enter CUC
'I. 17. llI"tatusl)
i .. re.d.int(4I,
scb. cmd .. sob. cmd or shl 'H') and ( t
(t <> 'N') and (t
(t <> 'D') and (t
Ct <> ' I ') and (t
Ct <> 'S') and ( t
call write(O • • (ODH.
7B7
7BB
7B9
790
791
792
793
794
795
796
797
79B
799
BOO
BOl
B02
B03
B04
B05
3
3
3
3
2
2
3
3
3
3
3
2
2
2
declar. (t. valid) bUhl
valid
do
= false.
~hll.
not Val1dJ
<>
<>
<>
<>
<>
, Enter command block tvP. (H for',
, help) '_.> '); 45, @status,)J
'h' )
'n')
'd' )
' i ")
IS ')
OAH.
,
and Ct ..:> 'T')
and (t <> 'R / )
and Ct <> 'C')
and (t <> '1'1')
then
Illegel command
and
and
and
and'
Ct <> 't' )
(t 0 'T')
It <> 'e ')
Ct <> 'm')
and
and
and
and
block tvpe' ), 29.
(!stcstuL) ,
2
2
3
3
3
3
3
3
else
.f Ct = 'H')
o~
(t - 'h') then c.ll prlnt.tup •• help.
else valId = true,
end;
if (t ~ 'N') or (t -= 'n') then
do.
cu~'cb'offset = offset (Inop. status),
nap. status:. 0;
nap. cmd - BOOOHI
nap l.nk.offset - OFFFFH.
end;
ift (t = 'I') or
(t
=- 'i') then
do.
cu~'cb'offs.t
• o'flet ( •••••• 'up.
laSsetup. status -
st.~u.).
0;
.a •• etup cmd - B001H.
••• setup l.nk'offset * OFFFFH.
call letup.ia'parameters.
end,
292010-58
Traffic Simulator/Monitor Station Program (Continued)
1-325
inter
906
907
909
909
910
911
912
813
914
BI5
BI6
917
919
919
820
921
822
923
924
925
926
927
929
829
830
931
832
933
934
835
936
937
838
939
940
841
842
843
844
845
846
847
848
849
850
851
852
2
2
3
3
3
3
3
3
2
2
3
3
3
3
3
3
2
3
3
3
3
3
853
2
854
855
I
2
2
2
3
3
3
3
3
3
2
2
3
3
3
3
3
3
:2
2
3
3
3
3
3
3
2
if
(t
= 'e') or (t = 'e') then
do)
cur.cb$o"set = off.et (@configure. status);
configure. status = 0;
eon~igur •. emd = 8002H,
configure. link'offset
= OFFFFH,
call setup'configur •• parameters,
end.!
if (t ..
= 'm') thlt"
'M') or (t
do;
eur'eb'o~".t
~
o~fset
= 0,
me.setup. status
(eme's"tup. status),
me_setup. cmd - e003Hi
me.setup. link'o" •• t • OFFFFH,
call setup'mc'param.t"rs.
end;
if (t
do'
c
'T')
OT'
(t -
't') then
cur$cb$of~s.t • of, •• t
transmit. statuI C 0;
«(tt~ansmit. status),
transmit. cmd • 8004H,
transmit. link$o"s"t = OFFFFH,
call •• tup$t.'parameters)
end;
if (t
do'
-
'R') or
== ',.') then
(t
cur$cb$offs.t - off •• t (Itdr. status),
tdr .• t.tus == 0;
tdr. cmd - 8005H,
tdr. link$offset • OFFFFH)
tdr. r.sult • Oi
and;
if (t -= 'S') Dr
do;
(t
!ill
's') than
cur$cb$off •• t • off.et (Idump. Ita,us),
dump. statuI· OJ
dump, cmd - 8006H,
dump. link$offset = OFFFFH,
dump. bu~~$ptr • o~f.et (edump$are.(O»,
end;
if (t
-
'D')
DT
(t -
'd
I)
then
dOl
eur$cb$o~f •• t
• offset (ediagnose. status).
diagnose. st.tul == 0;
diagnose. emd • 8007H,
diagnose link$off •• t • OFFFFH)
and;
d i sp laV$command$b 1 oc k: procedO"",
decl.,.. (i, J) byt •.
urh pointer,
sel selector,
Uf &&ford;
Traffic Simulator/Monitor Station Program (Continued)
292010-59
inter
8:16
8:17
8:18
8:19
860
861
862
863
864
86:1
866
867
868
869
870
871
872
873
874
875
876
877
879
880
882
883
884
88:1
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
2
2
2
2
2
3
3
3
2
2
3
3
3
2
2
3
3
3
2
2
3
3
3
3
3
3
3
3
3
4
4
4
AP·274
call cr.lf;
., cur.cb.a" •• t
z
OFFFFH th.n
call writ.CO, '(,' No Command 810ck to dilpla\l'),
I' cur.cb.a".et • a" •• t
28,
I!status),
C@nap .• t.tus) th.n
do;
c.ll wrlt.CO. @C'---NOP Camm.nd Black---·). 23. @status).
c.11 prlnt ... d.C@nap .• t.tu •• 3),
end;
,
i' cur.cb.af's.t • af, •• t
(@tdr .• t.tu.) then
do;
c.ll writ.CO. @C'---TDR Camm.nd Black---·). 23. @.tatus),
call prlnt.wds(etdr. statu •• 4),
end;
i' cur.cb.a" •• t • a".et (@di.gna ••.• t.tu.) then
do,
call writ.CO, a( '---OJ.gnose Command 810cll---'), 28, est.tul);
c.11 pr int.wd. (@di.gnau .• t.tus. 3),
end;
if cur.cb.a'f •• t • af, •• t C@tr.n.mit. st.tu.) th.n
do;
call writ.CO, I('---Tranlmit Command 810cll---'), 2B, .statul);
if not .ddr •••• l.ngth then i • addres •• l.ngth,
.1 • • • • • ddr •••• length + I,
i f ad. lac th.n ca11 prlnt ... d.(etr.nsmlt .• t.tus. 4),
.1 •• c.ll print.wd.C@tr.n.mit .• t.tu •• 1/2+1),
c.11 cr.lf,
c.11 cr.lf,
if transmit bd.of,.et <> OFFFFH then
do;
c.ll writ.(O. I('---Transmlt Buffer DescriptDr---'). 33. Istatus),
call print ... dsCltbd. act.count. 4),
call .. rite(O. @CODH. OAH. OAH.
, Dilpla", the transmIt buff ..... ? (V or N) ==> '), 46, @status).!
i f ~e. then
do,
call cr.lf,
call .. rit.ln(O. 1(' Transmit Buffer: 'I. 17. estatus).
. . . tbd.act.count and 3FFFH,
call p"lnt.buf' (eh.buffe" (0). ..),
4
4
:I
5
5
5
.nd;
5
4
end;
3
end;
2
if cur.cb.o"set • offset (Ii •• setup. status) th.n
do.
call ..,.it.(O. I( '---IA Setup Command Bloc'k---'). 28. (i.tatus),
call print$wds(@i.Ssetup. status, 6),
.. nd,
1f cu".cb.a'f •• t = offset (lcanfi9u"e. status) then
do.
ca11 ""i te (0. e( '---Canflgure Command Black---'). 29. Istatus),
2
3
3
3
2
2
3
3
3
2
2
3
3
call printt",dsC@configure status, 9);
end;
i f curScb.Dffset
do;
= offset (Imc.setup. status) then
call "Tite(O. iC'---MC Setup Command Blatk---'). 28. Istatus).
i = 4 + mc$count/2;
292010-60
Traffic Slmulator/Mon.ltor Station Pr~gram (Continued)
1-327
intJ
AP-274
If me.count ) 24 then
do.
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
92"
930
931
932
933
934
q35
936
937
3
3
4
4
4
4
4
3
3
2
2
3
3
3
3
4
4
4
4
5
5
4
4
4
3
938
2
end display$commandSblock;
939
940
2
display.receive$area: procedure,
declare (i, k. J, 1) byte.
941
942
943
944
2
2
2
3
~
call prlnt$wd$(@mcSsetup. status, 16);
call paus!!;
1 = 1 16,
call pT'lnt$wds(@mc$setup.mcSaddre.5S(S),
1),
end,
else call prlnt$wds(@mcSsetup status,
i),
end.
If cur$cbSoffset = offset (@dump status) then
do.
call Ul1'1te(0.
@('---Dump Status Command Block---'),
31.
@status),
call printSwds«!:dump status. 4),
1f dump status = OAOOOH then
do.
call wTlteinCO, @(ODH. OAH, ' Dump Status Results'),
call write.off.et(edump.area(O));
call cr$lfi
do 1
0 to 9,
call pr1nt.str«!dump.area( 1b*il. 16).
end,
call pr1nt •• tr«!dump.area'(160). 10);
call cr$1f;
end;
22.
@st.atus)
=
chars(4) bvte;
945
946
947
948
949
950
95:
\153
954
955
956
957
3
3
2
2
3
4
4
4
4
3
3
2
'158
959
9bO
9b1
9b3
964
2
3
4
4
4
4
call UI"'lteln(O, @(ODH, OAH, I FTame Descriptors' '), 21, @status),
If dd$loe then
do;
call' wr1teln(O, @(ODH. OAH. 'DA. SA. and TYPE are 1n buffer, '.
OAH)
=
I
36.
OlJl1.
(h.tat.o$),
J
3,
end;
else J ~ addTessSlength + 4,
do k = 0 to J'
do i = 0 to 4;
call DutSword(@rfd(i) status. k)j
if k
0 1hen call ~rit.'offs.t(@rfd(i), .tatu.).
else call 190p$char'10. I ' ) i
end:
=
call cr$lf!,
end,
call wrlteln(O.
@(ODH,
OAH,
OAH,
, Receive Buffer DescrIptor's'
1)1
:JJ,
do k = 0 to 4.
do i = C to 4;
call out.word«!rbd(il, att.eount. k);
if!, k = 0 th,en 1;.11 write$o"f'set(C!T'bd(l). act.count"
else call loop.char (10, I ' ) ;
292010-61
Traffic Simulator/Monitor Station Program (Confinued)
1-,328
inter
965
966
967
3
3
2
""'~
970
;/
971
972
973
974
..:.;.1" erSl',
end;
call lI.Il"'ite(O,
q"'1~
3
3
3
--<>
2
980
981
;/
982
2
OAH,
#
Displ." thfl
buflf!e-:':o'
(Y
or
,..,.uve·,
N) =-= . . '),
46.
(!Jot.t.al-us);
Rocuve Buffer. '), 19. @status).
t", 4,
writ.CO, I(ODH. OAH. ' M.'caivi Buff.", '), IB, @,c;t=~.,,·.',
,...rite'lntel, 0),
"'T'lteln(O, . ( '
'), 2, Istatusl.
k • rbd(;1 .ct.count and 3FFF~.
call print'buffCerhu#{ii Duff.rCO), k)i
c.11 p.u ... '
2
2
3
3
3
977
978
I(ODH, OAH,
if not ~ •• then return,
cd1 ..,.ih1n(0. @(ODH, OAH.
do i • n
call
call
call
3
end;
displa"'cb'rpa:
det 1 a,.. 1 i b"te;
,.11
pTocedure;
w~ite(O,
@(OOH, OAH.
Command Block or Receive Area"
,i,
47,
983
~'=.:.:
2
2
i
986
987
988
989
3
3
3
2
~::.t
2
992
2
end
993
994
1
2
declaT'. \u,
995
2
;;:
.2
2
=
end.
'R'I or (i = 'T") then call display$T'RCeive$aT'ea,
e1 •• call displ.~.comm.nd'blo,~,
if (1 -
dlsp1a~.cb.rpal
~T~tess'cmd.
pT'ocedure;
i \ byte;
gob.ck = 0;
b = T'ead'chari
call cr.H,
If (b ( ) 'H') and (b <> 'h' ) and (b <> 'S') and ( b -:> 's' )
( b <> '0'1 and (b
'd'l and (b <> 'P'I and ( b (.- • p ;
'r:') and ( b '"<> 'e ') and (b <> 'E'I and (b 0- 'e ')
(b <> 'L'I and (b <> '1') and ( b <> 'N'l and (b <> 'n ')
(b <> 'Z'I and ( b (;:.. 't / ) and ( b <> 'Y'I and (b <> 'q' )
(b <> 'A') and ( b <> 'a I) then
ca 11 write(O, @(' Illegal command '), 16, @statusl,
i f (b = 'WI or (b = 'h'l then call print.help,
It
= '''''I or (b = 'a ') then
,.
999
1000
1002
1003
1004
,,:C:>
1006
2
2
2
2
2
=.=P> '),
r •• d'cha"'i
III
:;
997
998
""
do while (1 <> 'R') and (i (> ',..') end (1 <> I e ' ) anu' (i <) 'e ');
call wT'itelnCO, .CODH, OAH, ' I!lpgal command '), 18. @status\,
call ",,..iteCO, (lC I EnteT' R OT' C =-=) '), 18, @st .. tus'),i
i
r •• d'chaT";
98~
:'-:Jt,.
Ql
@statut./'
and
~"d
and
and
and
'"do,
if dhex 'then
dhex = falstti
call WT'lte(O,
'1
3
@(
I
CounteT' • • ". dIsplayed In declmal
'),
3!:),
@StictU5),
1007
1008
:3
2
end,
eJ.se
292010-62
TraffiC Simulator/Monitor Station Program (Continued)
1-329
do,
1009
1010
3
3
1011
3
2
1012
dhex = true.
call wTlte(O,
end.
1026
1027
1028
1029
1030
1031
1032
1033
1035
1037
1039
1041
1043
3
2
2
3
3
3
2
2
3
3
3
2
2
3
3
3
3
2
2
2
2
2
2
1044
2
1045
1046
I
getout:
procedure,
2
decl~re
b b\lte.
1047
1048
1049
2
2
2
1050
1051
1052
1053
1054
2
3
3
4
4
lOSS
4
1056
1058
4
i~
4
call writeCO.
1059
1060
4
3
1061
2
1020
1021
1022
1023
1024
1025
'),
:39.
end.
"3
1014
1015
1016
1017
1018
1019
Counters aT'e displayed In heJlaGeclfnal
I,f (b = 'L') or (b = '1'), t,h en
do,
1,,]12
@(/
:;
output(E5I$PORT) = LOOPBACK,
call wTlte(O. @(/ ESI 15 in Loopback Mode '),
If (b
=
or
'N"
(b
=
'n')
25.
@status),
'),
29.
then
do,
output(E5I$PORT) = NO$LOOPBACK,
call write(O. @(' ESt 15 NOT In Loopback Mode
@status),
end,
If (b = 'Z') or
'z')
(b =
then
do,
count = O.
call WT'lte(O,
end.
If
(b =
'Y')
or (b
Transmlt Frame Counter 15 c;leared
@(/
=
''l')
'),
35,
@status),
then
do,
recelve.count = 0,
5tb creSerrs. 5tb
call wTlte(Q, @(/
end,
(b,
If
'C' ) or ( b
'5') or ( b
if ( b
If ( b
'P' ) or ( b
(b
If
'0' ) or ( b
If ( b
'E') or ( b
call crSlf,
=
5cb rsc$errs. 5cb.ovrnSerrs
0.
Receive Frame Counter is cleared. '), 34, @status);
aln$e1'1'5.
I
C
I
)
then call .nt~r$scb$cmd,
's ') then call setup.cbi
'p , ) then call printS5tb,
'd ') the" call display$cb$rpa,
'£I ' ) then goback
I;
=
end process$cmd,
b == read$chari
goback
= OJ
call wrlte(O.
@eODH,
OAH,
I
Enter command (H for help) ==::> '), 34,
@SthtU5)i
do forever;
If csts then
do,
dlsablei
call processScmd,
enable,
goback then return;
@(ODH, OAH,
I
Enter command (H for help) ==:> '),
34,
end;
end.
end 9 etout;
292010-63
Traffic Simulator/Monitor Station Program (Continued)
1-330
inter
AP-274
update.
procedurel
10102
10103
I
2
10104
10105
101010
10107
10109
10109
2
call crSlf,
2
2
2
2
1070
1071
1072
1073
1074
1075
2
2
2
2
2
2
2
2
call
call
call
call
call
call
call
10710
1077
1079
1079
1090
1091
1092
1093
109S
10910
3
3
3
3
2
2
2
2
2
2
2
2
2
2
2
1094
2
1095
2
10910
2
bijh,
loop$char (10. OAHl.
loopSchar(28. '*'),
write(O. @C' Station Configuration'), 23, I:st.tus);
loopScharC27. '*'),
cr$lf.
cr$lf,
.... rite(O, @(' Host Address. '), 15. @st.tus),
call print'n.twDrk'.ddr(~i •• s.tup i ••• ddr ••• CO»i
1 = 0;
2
1097
1099
1099
1090
1091
1092
1093
call writeCO,
@(/
Multicast Addressees)'
'),
24, f!status);
if mc'setup.mcSbyt.Scount - 0
then call "'t'it.lnCO, @C'No Multicast Addresse. Defined '),
else
30,
@status),
do while i < meSsetup me'byteScount;
call printSnetwarkSaddr(@mcS.etup mcS.ddressCi»,
call loopSchar(24.
1
::It
1
I
');
+ Oi
end;
call writ.(O. @(ODH). 1. @status).
if not noStransmission then call print'parameters;
call "'''It.CO, @C' 82586 Configuration Block. '), 28, ctstatus),;
call printSstr(@configure. 1nfo(0), 10);
call cr$lfi
call loop$char(29. '*').
call UJrite(O. @(/ Station Activiti.s '). 20. @status)j
call loop$char(29. '*');
call cr$lf;
call cr$if,
call wrihln(O.
@( . . . of Goad
.. of Goad
CRC
Alignment
No
R~ceiv .. ·).
'13. @st .. tus),
call UJr1telnCO,
ResouT'ce
(J'I("T'T'un').
Errors
@:(' Frames
Errors
Frames
73, @stntuS),
call wr1telnCQ,
Errors
Ell'orE.'),
@C' TT'ansmltted Received
72, @status),
end update;
main
1097
1099
1099
1100
1101
1102
1103
1104
1105
dec lare i
I
I
call lnit,
enable.
do wh i Ie reset;
end.
d lSab leo
scb cmd = OIOOH,
output(CA$PORT)
call walt$scb.
I
enable.
I
I
2
I
I
CA,
292010-64
Traffic Simulator/Monitor Station Program (Continued)
1-331
inter
1106
1107
2
I
1108
1109
1
1110
1
1
1111
1112
1
1113
1
1114
1
1115
1
1116
I
1117
I
1118
I
1119
1
1120
1
1121
1
1122
I
1123
I
1124
I
1125
I
1126
1
1127
1
1128
2
1129
2
1130
2
1131
2
1132
2
1133
2
1134
3
1135
3
1136
:2
1137
:2
1138
:2
1139
2
1140
2
1141
2
1142
2
1143
:2
1144
I
1145
1
1146
2
1147
2
1148
3
1149
4
1150
4
1151
4
1152
4
1153
4
1154
4
1155
4
1156
3
1157
3
1158
3
1159
2
1160
2
1161
3
1162
3
1163 ,3
1164
3
1165
2
1166
AP·274
do while (dIagnose status and BOaOH)
<> BaaOH.
end,
call cr$If.
If diagnose status <> OAOOOH
then call "'TltelnCO. @(' Diagnose failttd ' '), 17 • @status),
1f~ configure. status <> OAOOOH
then call wrlteln(O, @(' Configure failed! '), 18, OAOOOH
thtrn call wrlteln(O, @(' IA Setup failed l ' ) ,
1 f me.setup. status <> OAOOOH
then call writelnCO. @(' Me Setup failed! '),
scb cbl$offset
= offset
17
@status),
17
@status)'
(@transmit. status);
call wrltelnCO, .@(ODH,. OAH,
'Receive
Unl~
IS active. '),
26, @statu!'.),
disable.
5cb. cmd = OOIOH.
output(CASPORT) = CA.
call wait$scb;
enab Ie,
output(ESISPORT) - NOSLOOPBACK.
call cr$1 "
if not no.transmisslon thIn
do.
.( '---Transm1t Command
status, 8);
call
~rite(O,
call
prlnt.~ds(@transmlt.
call crSIf.
Block-~-'),
28. @status);
=
cur$cb$offset
offset (@transmit. status);
call pause;
do 1 = 1 to 60;
call time(250);
end,
call writ.lnCO, ICODH, OAH, 'transmission st.,.ted!'),
call cr$lf,
disable;
5tb cmd • 0100Hi
output (CA'PORT) = CA;
call wal t .. scb,
enab lei
23, @statuS)i
end;
call update;
do forever,
call
@(ODH,
~rlte(O,
I
'),
2, @status);
do y = 0 to 5.
do calie lJi
call
call
call
call
call
call
wT'ite$int(count, dhex);
writ.$lntCreceive$count,
write.int(scb. erc$.rrs,
write$int(scb. a1n$err5,
"'1"iteSlntCs-cb. rsc$errs,
writ.SintCscb ovrnS.rrs,
dhex);
dhex);
dhex);
dhex)j
dhex)i
end;
char.count = 13 - char.count,
call loopScharCchar$count, , '),
end;
If csts then
do;
disable;
call getouti
292010-65
call update,
end;
endi
end tsm.,
MODULE INFORMATION:
CODE AREA SIZE
23C3H
CONSTANT AREA SIZE
OF85H
VARIABLE AREA SIZE = 265EH
MAXIMUM STACK SIZE - 0092H
1994 LINES READ
o PROGRAM WARNINGS
o PROGRAM ERRORS
9155D
3973D
9822D
146D
DICTIONARY SUMMARY'
159KB MEMORY AVAILABLE
23KB MEMORY USED
(147.)
OKD DISK SPACE USED
END OF PL/M-86 COMPILATION
292010-66
Traffic Simulator/Monitor Station Program (Continued)
1-332
AP·274
I***************** •• *~.**.·************************************************ .......
~I
1*
1*
186/586 H.gh Integration Board lnlti3litation Routine
(ThIS drIver IS configured for Ethernet/Cheapernet Desiqn
I.
*1
*1
*1
Kit Demo Bo .... d)
,iI
1*
1*
1*
1*
V.,.
March 14, 1986
2.0
*1
.,
~I
KI~o.hl
Nlsh.de
Intel
/***************"'ft* JI • • • • _____ *__ • __
It.
~o,pDr.tion
**_*_*_._.....________*__• __*_____ ...........
""
*1
~
I
1* rhe cond.tional comp.lat.on ~a-am.ter 'EPROM2712B' determines board ~OM
511e
If it IS true, the 80186'. ~.lt stat. oenerator 11 program•• d to
o
wait state 'or upper 64K-bute memory locations
il!~ is '.lse,
the
wait .tate generator •• programmed to 0 wait state 'or uppe- 1~8K-bytp
memorV
IDc.tlQn~
*1
.
do;
"
declare hlb_ir label publici
declare main label •• ternall
declare menu 1.Del e_tern.li
1* literals *1
declare lit
UMCS_reg
literally
lit
lit
PACS_reg
lit
MPCS_reg
lit
INT_MASK_reg
lit
ISCP.LOC.LO
lit
ISCP.LOC.HI
lit
!?Cr. ,CH_B_CMD
lit
SCC_Ct1_D_l:'."T'"
lit
SCC_CH_A_CMD
l1i.
SCC_CH_A,D"'T~
ht
NI"_
lit
CR
lit
LF
lit
BS
lit
SP
lit
OM
Itt
DEL
ht
BEL
lit
:"1"'('9_"eo
'literaBy' ,.
'OFFAOH',
'OFFA2H',
'OFFA4H',
. OFrA9"",
'OFF28H',
'03FFSH',
'0'.
'8300H',
'S302H',
't;:I'104H',
'S306H',
'0',
'ODH',
'OAH',
'OSH'.
'20H',
'3Fn ,
'07FH'.
'07H' ..
292010-67
186/586 High Integration Board Initialization Routine
1·333
AP-2-74
I*Ststem Configuration Pointer *1
declare scp structure
6
(
svsbus bVte.
unused (5) bVte.
iscp'addr.lo word.
iscp'addr.hi word
)
at (OFFFF6H) data (0. O. O. O. O. O. ISCP.LOC.LO. ISCP'LOC'H., •
.,
8
2
9
2
end init'int'clt,
10
1
11
2
rra: procedure (reg_nol bute,
declare reg_no bute,
12
14
2
2
15
2
end ,.,..,
16
17
1
:2
rrb: procedure (reg_no) bvte,
18
20
2
2
21
:2
end rrb,
wra: procedure (reg_no, v.lue)1
dec I.,.. (".,_"0, value) byte;
22
1
2:-t
2
24
26
2
2
27
2
2e
i' (reg_no and OFH) <> 0 then output(SCC_CH_A_CMDI = reg_no and OFH,
return input(8CC_CH~_CMD)'
decl.,.. ,..g_no byte,
i' (reD_no and OFH) <>0 then output CSCC_CH_B_CMDI
return input(SCC_CH_B_CMDI'
a
reg_no end OFH.
i' (reg_no and OFHI <> 0 then output (SCC_CH_A_CMDI • reg_no and OFH.
output (SCC_CH-A_CMDI • ValUe,
end "'raJ
procedure (reg_no, value);
decla,.e (,..g_"O, value) but.,
~,.b.
20
2
30
32
2
2
33
2
34
3:;
output (INT _mask_reg,) - OFFH, 1* ma.k all interrupts *1
i ' (reD_no and OFHI <> 0 then output (SCC_CH-P_CMDI • reg_no and
output (SCC_CH_B~CMDI • value,
O~H,
end wrb,
init'SCC$B: procedure,
2
call wrb(09. 01000000bl,
1* channel B re"et *1
292010-68
186/586 High Integration Board Initialization Routine (Continued)
1-334
AP-274
36
37
38
39
40
41
42
43
44
2
2
.
:I
2
2
2
2
2
4'
46
2
47
2
2
c"ll
call
call
c"ll
call
call
call
call
c.tl
..,.bI04. 01001110b) •
w.,.b(03, 11000000b) ,
.... bI05. OIIOOOOOb) •
..,.bIIO. OOOOOOOOb ) •
..,.bl II. OIOIOIIOb) •
..,.bI12. OOOOIOllb),
..,.bI13. OOOOOOOOb ) •
.... b Cl4. OOOOOOllb) •
..,.bCl5. OOOOOOOOb ) •
c .. 11 .,rbI03. 1l000001b),
c .. 11 .,,.bIO'. 1I101010b ),
1* 2 stop. no p.. ,.ity. b,.f • 16. *1
1* ,.. 8 bits/ch .. r. no .. uto-en .. bh *1
1* t. 8 bits/ch.,. *1
1* I"XC = txc • BRC:. t1"IC
1* baud rate • 9600 *1
s
BRC: out *1
1* BRQ .0U,.c • • SYS ClK. .nabh BRC: *1
/* .. 11 ext .t .. tu • int.,.rupts off *1
/* .cc-b l"eceiv• • nabl. *1
/*
scc-b transmit .n.bl., dtl' an, ,.t. on *1
end init.SCCSB.
48
= 0,
49
51
3
2
52
2
53
54
I
2
5'
57
3
2
'8
2
.nd c.out.
'9
60
I
2
,. ... d: p,.oc.du,.. I.il •• id • •s,.ptr. count ... ctu .. l.pt,.. st .. tu •• ptr) public,
d.cl",.. fil •• id wo,.d.
ms,.pt,. paint",..
do Whil. IInputISCC_CH_B_C"D) .. nd I)
,..tu,.n (inputISCC_CH-B-PATA)),
and.
c.out: p,.oc.du,.. Ich .. ,.) public;
d.cl ..,.. ch .. ,. byt ••
do .. hile (lnputISCC_CH_B_C"D) .. nd 4) = O. end,
outputISCC_CH_B-PATA) • ch .. ,.,
count lIIIord,
.. ctu .. l.ptr point",. •
• t"tu •• pt,. point.r •
•• , b.... d m.g.pt,. II) byt ••
bu' (200) byte •
.. ctu.. l b.... d .. ctu .. l.ptr .,o,.d.
st.. tus b.... d .t .. tu •• pt,. wo,.d.
i lIIord,
ch byte.
1* This p,.oc.du,.. lmpl" •• nts the ISIS ,. •• d p,.oc.du,. •. All control ch .. ,..ct.,.. *1
1* .IC.pt LF. BS... nd DEL .,.. igno,."d.' I f BS or DEL is encount",..d. "
*1
1* b"cksp"c" is don".
*1
61
62
63
64
6'
66
2
2
2
3
3
3
st.tu • • 0,
i, ch - OJ
do .. hil. (ch <> CR) .. nd (ch <> IF) .. nd (i < 198).
ch • c.in .. nd 07FH.
if (ch • BS) 0,. (ch • DEL) then
do;
292010-69
186/586 High Integration Board Initialization Routine (Continued)
1-335
inter
AP·274
4
4
67
68
69
70
71
72
73
74
75
76
5
5
5
4
77
78
4
3
79
80
81
82
83
84
3
4
4
4
4
3
85
86
87
88
89
90
3
4
4
4
4
3
91
92
93
95
96
97
98
3
2
2
2
2
3
3
99
2
if i
:> 0 then
do)
5
i = i-II
5
5
5
call
call
call
call
call
cSout(OEL»)
cSout(BS»)
cSout(SP),
cSout(OEL),
cSout (BS),
end,;
else
call cSout(BEL),
end;
else
if ch :>- SP then
do;
call cSout(ch);
buf(i) :t= Chi
i = i + 1;
end;
else
=
if (ch
CR) or (ch
do;
buf(i) = CR,
buf(i + 1)
LF,
== i + 2;
= LF)
then
=
end;
else
call cSout(BELl,
100
endJ
call cSout(CR),
if i :> count then i
actual == ii
do i == 0 to actual msg(i) = buf(i),
= count)
1;
end;
end read;
csts:
procedure b"te public,
101
2
102
2
end cst.;
103
104
1
2
write: pT'oceduT'e (fil.Sid, msgSptr, count,
declare (fileSid, count) word,
(msgSpt1', statusSptr) po inter,
msg based msg$ptr (1) bvte.
status based statusSptr word,
ch b"te,
i word,
105
2
statusSptr) publIC,
1* This procedure implements the ISIS write *1
status = OJ
292010-70
186/586 High Integration Board Initialization Routine (Continued)
t-336
AP-274
106
107
:2
:2
lOB
3
109
3
110
111
3
3
else
11:2
113
3
3
i
114
1
~
01
do while
1
< count,
ch - msgCi),
if Ilch >- SPI and Ich < DELlI Dr Ich
then
call cSoutlch I,
-
z
CRI Dr Ich
LFI Dr Cch = NUL)
call cSoutlGMI,
i + 1,
end,
end ",rit.,
115
SIF EPROM27UIB
outputlUMCS_regl - OF03BH,
1* Starting Addross - OFGOOOH.
no w.it .t.te *1
SELSE
1* Starting Address - OEOOOOH.
no ",ait stat. *1
SENDIF
117
outputlLMCS_ragl - 03FCH,
DutputlPACS_regl - OB3CH,
liB
outputlMPCS_regl - OBFH,
119
call initSintSclt,
call inUSSCCSB,
go to main,
116
120
121
122
1* 16K.
no ",ait state *1
1* PBA • BOOOH. no ",.it stata for
PSCO-3 81
1* Peripherals in 110 space. nD Al & A2
provided. 3 ",ait states for PSC4-6 *1
end inUB6,
292010-71
188/586 High Integration Board Initialization Routine (Continued)
1-337
AP-274
APPENDIX C
THE 82530 SCC - 80186 INTERFACE AP BRIEF
INTRODUCTION
INTERFACE OVERVIEW
The object of this document is to give the 82530 system
designeF an in-depth worst case design analysis of the
typical interface to a 80186 based system. This document has been revised to include the new specifications
for the 6 MHz 82530. The new specifications yield better margins and a I wait state interface to the CPU (2
wait states are required for DMA cycles). These new
specifications will appear in the 1987 data sheet and
advanced specification information can be obtained
from your local Intel sales office. The following analysis includes a discussion of how the interface TTL is
utilized to meet the timing requirements of the 80186
and the 82530. In addition, several optional interface
configurations are also considered.
The 82530 - 80186 interface requires the TTL circuitry
illustrated in Figure 1. Using five 14 pin TTL packages,
74LS74, 74AS74, 74AS08, 74AS04, and 74LS32, the
following operational modes are supported:
•
•
•
•
•
Polled
Interrupt in vectored mode
Interrupt in non-vectored mode
Half-duplex DMA on both channels
Full-duplex DMA on channel A
A brief description of the interface functional requirements during the five possible BUS operations follows
below.
DATA (D7-De)
82538
15
13
,.
=
lffiI1:li
TXDA
RXDA
§Vm!
1!I'!A
"ERA
~
~
TXDJ
OND
31
"§VRO
1!'ffJ
,1REQ!
IRES!
,.
,.
li'l'l!7'I!RW
RXDB
Jmm"
=
=
vee
A
19
2.
27
2.
2.
2'
2.
22
21
2.
'I'1UreI
ctfAHHEL
12
11
17
•
~EL
B
+50
H--1£9
HOTES
DRQl
H - PULLED HIGH THROUGH SK OHM
Ul - ?4LS14
U2 - 74ASB8
US -
INn
DRQ0
74AS04
U4 - ?"ASi''''
us - ,.04LSS2
"
?4I1se ..
~'L'
________________________
~
u.
292010-72
Figure 1.82530-80186 Interface
1-338
inter
AP·274
12SHSt'l8
CLKOUT
AD .....
DTt'1f
ALE
88186
1m
1IrFI
~
1m
.#".
825911
DATA
16*6 96"1 )::::::: .. :::::::
292010-73
Figure 2. 80186-82530 Interface Read Cycle
UHITS: 125
HS~18
CLKOUT
ADe-."
88186
ALE
Q1f
R1'I
n1'
ADDRESS
82598
DATA
292010-74
Figure 3. 80186-82530 Interface Write Cycle
READ CYCLE: The 80186 read cycle requirements are
met without any additional logic, Figure 2. At least one
wait state is required to meet the 82530 tAD access
time.
is inverted to assure that WR is active low before the D
Flip-Flop is clocked. No wait states are necessary to
meet the 82530's WR cycle requirements, but one is
assumed from the RD cycle.
WRITE CYCLE: The 82530 requires that data must be
valid while the WR pulse-is low,§Ure 3.A D FlipFlop delays the leading edge of WR until the falling
edge of CLOCKOUT when data is guaranteed valid
and WR is guaranteed active. The CLOCKOUT signal
INTA CYCLE: During an interrupt acknowledge cycle, the 80186 provides two INTA pulses, one per bus
cycle, separated by two idle states. The 82530 expects
only one long INTA ~se with a RD pulse occurring
only after the 82530 lEI/lEO daisy chain settles. As
1-339
inter
AP-274
UNITS: 125 NS/12
CLI Iii (-0.4 rnA + -0.5 rnA)
>
lih (20 /J-A
+
20/J-A)
PCS5: The PCS5 signal drives U2 and U4.
• 101 (2.0 rnA)
loh (-400 /J-A)
> iii (-0.5 rnA + -0.5 rnA)
> lih (20 /J-A + 20/J-A)
Certain symbolic conventions are adhered to throughout the analysis below and are introduced for clarity.
1. All timing variables with a lower case first letter are
82530 timing requirements or responses (i.e., tRR).
2. All timing variables with Upper case first letters are
80186 timing responses or requirements unless preceded by another device's alpha-numeric code (i.e.,
Tclel or '373 Tpd).
3. In ~ writ~cle analysis, the timing variable
TpdWR186-WR530 represents the propagation delay between the leading or traili~dge of the WR
signalleav~the 80186 and the WR edge arrival at
the 82530 WR input.
Read Cycle
INTA: The INTA signal drives 2(Ul) and U5.
• 101 (2.0 rnA) > iii (-0.4 rnA + -0.8 rnA + -0.4 rnA)
loh (-400 /J-A) > lih (20 /J-A + 40/J-A + 20/J-A)
All the 82530 I/O pins are TTL voltage level compatible.
1. tAR: Address valid to RD active set up time for the
82530. Since the propagation delay is the worst case
path in the assumed typical system, the margin is calculated only for a propagation delay constrained and not
an ALE limited path. The spec value is 0 ns minimum.
• 1 Tclcl - Tclav(max) - '245 Tpd(max)
2(U2) Tpd(min) - tAR(min)
= 125
1-341
- 55 - 20.8
+
10
+
2(2) - 0
+
Tclrl(min)
+
= 63.2 ns margin
* 3 Tclcl + 1(Tclclwait state) - Telav(max) - '373
Tpd(max) - '245 Tpd - Tdvel(min) - tAD
2. tRA: Address to RD inactive hold time. The ALE
delay is the worst case path and the 82530 requires 0 ns
minimum.
= 375
margin
* 1 Tclcl - Tclrh (max) + Tchlh(min) + '373 LE
+
125 - 55 - 20.8 -14.2 - 20 -325 = 65 ns
Tpd(min) - 2(U2) Tpd(max)
= 55 - 55
+
5
+
Write Cycle
8 - 2(5.5) = 2 ns margin
3. tCLR: CS active low to RD active low set up time.
The 82530 spec value is 0 ns minimum.
1. tAW: Address reqqired valid to WR active low set
up time. The 82530 spec is 0 ns minimum.
• 1 Tclcl - Telcsv(max) - Telrl(min) - U2
skew(AD - CS) + U2 Tpd(min)
* TelC! - Telav(max) - Tevctv(min) - '373 Tpd(max)
= 125 - 66 - 10 - 1
+
+ TpdWR186 - WR530(LOW) [Telel - Tcvctv(min)
U3 Tpd(min) + U4 Tpd(min)1 - tAW
2 = 50 ns margin
= 125 - 55 - 5 - 20.8
= 170.6 ns margin
4. tRCS: RD inactive to CS inactive hold time. The
82530 spec calls for 0 ns minimum.
* Tesesx(min) - U2 skew(AD -
= 55 - 55
margin
• 1 Tclcl + 1 Tchel - Tchcsx(max) + Tclrl(min) - U2
skew (AD - CS) + U2 Tpd(min) - tCHA
55 - 35 - 10 - 1
+
+
5
+
8 - [5.5
+
4.41 - 0
+
3
+
7.11 = -2.6 ns
1 Tclel - Tclesv(max) + Tevetv(min) - U2 Tpd(max)
TpdWR186=Vim530(LOW) [Telel - Tevetv(min) + U3
Tpd(min) + U4 Tpd(min)1
.
•
+
= 125 - 66 + 5 - 5.5
183.9 ns margin
* Trlrh(min) + 1(Tclclwait state) - 2(U2 skew) - tAR
+ 1(125)
1
3. tCLW: Chip select active low to WR active low hold
time. The 82530 spec is 0 ns.
2 - 5 = 131 ns margin
6. tRR: RD pulse active low time. One 80186 wait state
is included to meet the 150 ns minimum timing requirements of the 82530.
= (250-50)
+
• Teleh(min) - Tcvetx(max) + Tehlh(min) + '373 LE
Tpd(min) - TpdWR186=WR530(HIGH) [U2 Tpd(max) +
U3 Tpd(max) + U4 Tpd(max)]
5. tCHR: CS inactive to RD active set up time. The
82530 requires 5 ns minimum.
+
[125 - 5
2. tWA: WR inactive to address invalid hold time. The
82530 spec is 0 ns.
CS) - U2 Tpd(max)
= 35 - 1 - 5.5 = 28.5 ns margin
= 125
+
+
-2(1) - 150 = 173 ns margin
7. tRDV: RD active low to data valid maximum delay
for 80186 read data set up time (Tdvcl = 20 ns). The
margin is calculated on the Propagation delay path
(worst case).
• 2 Tclcl + 1(Tclclwait state) - Tclrl(max) - Tdvcl(min)
- '245 Tpd(max) - 82530 tRDV(max) - 2(U2) Tpd(max)
+
[125 - 5
+
+
1
4.41 =
4. tWCS: WR invalid to Chip Select invalid hold time.
82530 spec is 0 ns.
* Texesx(min) - U2 Tpd(max) TpdWR186=WA530(HIGH) [U2 Tpd(max)
Tpd(max) + U4 Tpd(max)]
= 35
+
1.5 - [5.5
+
3
+
+
U3
7.1) = 20.9 ns margin
5. tCHW: Chip Select inactive high to WR active low
set up time. The 82530 spec is 5 ns.
= 2(125) + 1(125) - 70 - 20 - 14.2 - 105 - 2(5.5)
= 154 ns margin
8. tDF: RD inactive to data output float delay. The
margin is calculated to DEN active low of next cycle.
* 1 Telcl + Tehel(min) + Tevetv(min) - Tchcsx(max) U2 Tpd(max) + TpdWR186=WR530(LOW) [Telel Tevctv(min) + U3 Tpd(min) t U4 Tpd(min)1 - tCHW
* 2 Tclcl + Tclch(min) - Telrh(max)
2(U2) Tpd(max) - 82530 tDF(max)
= 125 + 55 + 5 - 35 - 5.5
5 = 264 ns margin
= 250
+
55 -55
+
+
Tchctv(min) -
10 - 11 - 70 = 179 ns margin
9. tAD: Address required valid to read data valid maximum delay. The 82530 spec value is. 325 ns maximqm.
+
[125 -5
+
1
+
4.41 -
6. tWW: WR active low pulse. 82530 requires a minimum of 60 ns from the falling to the rising edge of WR,
This includes one wait state.
1-342
intJ
AP-274
• Twlwh [2Tclcl - 40] + 1 (Tclclwait state) - TpdiiVFll
186-WR530(LOW) [Tclcl - Tcvctv(min) + U3 Tpd(max)
+ U4 Tpd(max)] + TpdiiVFl/186 = iiVFl/530(HIGH) [U2
Tpd(min) U3 Tpd(min) + U4 Tpd{min)) - tWW
should never exist. 82530 drivers should insure that at
least one CPU cycle separates INTA and WR or RD
cycles.
= 210 + 1(125) - [125 - 5 + 4.5 + 9.21 - [1.5 + 1
+ 3.2] - 60 = '135.6 ns margin
4. tWI: WR inactive high to INTA active low minimum hold time. The spec is 0 ns and the margin assumes CLK coincident with INTA.
7. tDW: Data valid to WR active low setup time. The
82530 spec requires 0 ns.
• Tcvctv(min) - Tcldv(max) - '245 Tpd(max) +
TpdWR186-iiVFl530(lDW) [Tclcl - Tcvctv(min) + U3
Tpd(min) + U4 Tpd(min)l
= 5 - 44 - 14.2 + 125 - 5 + 1.0 + 4.4
margin
• Tclcl - Tcvctx(max) - TpdWR186 - iiVFl530(HIGH)
[U3 Tpd(max) + U4 Tpd(max)l + Tcvctv(min) + U1
Tpd(min)
= 125 - 55 - [5.5 + 3 + 7.1] + 5 + 10
margin
= 12.2 ns
=
69.4 ns
8. tWD: Data valid to WR inactive high hold time. The
82530 requires a hold time of 0 ns.
5. tIR: INTA inactive high to RD active low minimum
setup time. This spec pertains only to 82530 RD cycles
and has a value of 55 ns. The margin is calculated in
the same manner as tIW.
• Tclch - skew {Tcvctx(max) + Tcvctx(min)l + '245
DE Tpd(min) - TpdWR186-WR530(HIGH) [U2 Tpd(max)
+ U3 Tpd(max) + U4 Tpd(max)l
6. tRI: RD inactive high to INTA active low minimum
hold time. The spec is 0 ns and the margin assumes
CLK coincident with INTA.
'
= 55 - 5 + 11.25 - [5.5 + 3.0 + 7.1]
margin
•
=
-50.6 ns
Tclcl - Tclrh(max) - 2 U2 Tpd{max) + Tcvctv(mln)
+ U1 Tpd(min)
= 125 - 55 - 2(5.5) + 5 + 10 = 74 ns margin
INTA Cycle:
1. tic: This 82530 spec implies that the INTA signal is
latched internally on the rising edge of CLK (82530).
Therefore the maximum delay between the 80186 asserting INTA active low or inactive high and the 82530
internally recognizing the new state of INTA is the
propagation delay through Ul plus the 82530 CLK period.
•
U1 Tpd(max) + 82530 ClK period
= 45 + 250 = 295ns
2. tCI: rising edge of CLK to INTA hold time. This
spec requires that the state of INTA remains constant
for lOOns after the rising edge of CLK. If this spec is
violated any change in the state of INTA may not be
internally latched in the 82530. tCI becomes critical at
the end of an INTA cycle when INTA goes inactive.
When calculating margins with tCI, an extra 82530
CLK period must be added to the INTA inactive delay.
3. tIW: INTA inactive high to WR active low minimum setup time. The spec pertains only to 82530 WR
cycle and has a value of 55 ns. The margin is calculated
assuming an 82530 \VR cycle occurs immediately after
an INTA cycle. Since the CPU cycles following an
82530 INTA cycle are devoted to locating and executing the proper interrupt service routine, this condition
7. tlID: INTA active low to RD active low minimum
setup time. This parameter is system dependent. For
any SCC in. the daisy chain, tHO must be greater than
the sum of tCEQ for the highest priority device in the
daisy chain, tEl for this particular SCC, and tEIEO for
each device separating them in the daisy chain. The
typical system with only 1 SCC requires tlID to be
greater than tCEQ. Since tEl occurs coincidently with
tCEQ and it is smaller it can be neglected. Additionally, tEIEO does not have any relevance to a system with
only one SCC. Therefore tlID > tCEQ = 250 ns.
• 4 Tclcl + 2 Tidle states - Tcvctv(max) - IIC [U1
Tp(j(max) + 82530 ClK period] + Tcvctv(min) + U5
Tpd(min) + U2 Tpd(min) - 1110
=
=
500 + 250 - 70 - [45 + 250] + 5 + 6 + 2 - 250
148 ns margin
8. tIDY: RD active low to interrupt vector valid delay.
The 80186 expects the interrupt vector to be valid on
the data bus a minimum of 20 ns before T4 of the second acknowledge cycle (Tdvcl). tIDY spec is 100 ns
maximum.
• 3 Tclcl - Tcvctv(max) - U5 Tpd(max) - U2
Tpd(max) - tIDV(max) - '245 Tpd(max) - Tdvcl(min)
= 375 - 70 - 25 - 5.5 - 100 - 14.2 - 20
ns margin
1-343
=
140.3
AP-274
9. tIl: RD pulse low time. The 82530 requires a minimum of 125 ns.
• 3 Tclcl - Tcvctv(max) - U5 Tpd(max) - U2
Tpd(max) + Tcvctx(min) + U5 Tpd(min) + U2 Tpd(min)
- til (min)
= 375 - 70 - 25 - 5.5
162 ns margin
+
5
+
6
+
1.5 - 125 =
'
• Tclcl + 2(Tclclwait state) - Tcvctv(min) TpdWFi186-WFi530(LOW) [Tclcl - Tcvctv(min)
Tpd(max) + U4 Tpd(max)1 - Tdrqcl - tWRI
DMACycle
Fortunately, the 80186 DMA controller emulates CPU
read and write cycle operation during DMA transfers.
The DMA transfer timings are satisfied using the above
analysis. Because of the 80186 DMA request input requirements, two wait states are necess~o prevent
inadvertent DMA cycles. There are also CPUDMA intracycle timing considerations that need to be addressed.
1. tDRD: RD inactive high to DTRREQ (REQUEST)
inactive high delay. Unlike the READYREQ signal,
DTRREQ does not immediately go inactive after the
requested DMA transfer begins. Instead, the DTRREQ
remains active for a maximum of 5 tCY + 300 ns. This
delayed request pulse could trigger a second DMA
transfer. To avoid this undesirable condition, a D Flip
Flop is implemented to reset the DTRREQ signal inactive low following the initiation of the requested DMA
transfer. To determine if back to back DMA transfers
are required in a source synchronized configuration,
the 80186 DMA controller samples the service request
line 25 ns before Tl of the deposit cycle, the second
cycle of the transfer.
•
3. tWRI: 82530 WR active low to REQ inactive high
delay. Assuming destination synchronized DMA transfers, the 80186 needs t'Yo wa~t states to meet the tWRI
spec. This is because the 80186 DMA controller samples requests two clocks before the end of the deposit
~e. This leaves only 1 Tclcl + n(wait states) minus
WR active delay for the 82530 to inactivate its REQ
signal.
4 Tclcl - Tclcsv(max) - U4Tpd(max) - Tdrqcl(min)
=375 - 5 - [125 - 5
11.3 ns margin
+
4.5
+
+ U3
9.21 - 25 - 200 =
NOTE:
If one wait state DMA interface is required, external
logic, like that used on the DTRREQ sigllal, can be
used to force the 82530 REQ signal inactive.
4. tREC: CLK recovery time. Due to the internal data
path, a recovery period is required between SCC bus
transactions to resolve metastable conditions internal to
the SCC. The DMA request lines are marked from requesting service until after the tREC has elapsed. In
addition, the CPU should not be allowed to violate this
recovery period when interleaving DMA transfers and
CPU bus cycles. Software drivers or external logic
should orchestrate the CPU and DMA controller operation to prevent tREC violation.
Reset Operation
During hardware reset, the system RESET signal is asserted high for a minimum of four 80186 clock cycles
(1000 ns). The 82530 requires WR and RD to be simul~
taneously asserted low for a minimum of 250 ns. '
= 500 - 66 - 10.5 - 25 = 398.5 ns margin
2. tRRI: 82530 RD active low to REQ inactive high
delay. Assuming source synchronized DMA transfer,
the 80186 requires only one wait state to meet the tRRI
spec of 200 ns. Two are included for consistency with
tWRI.
• 4 Tclcl - U3 Tpd(max) - 2(U2) Tpd(inax)
Tpd(min) - tREe
= 1000 - 17.5 - 2(5.5)
margin
• 2 Tclcl + 2(iclciwait state) - Tclrl(max) - 2(U2)
Tpd(maX) - Tdrqcl - tRRI'
=2(125)
margin
+
2(125) -' 70 - 2(5.5) - 200 = 219 ns
1-344
+
+
U4
3.5 - 250 ns = 725 ns
inter
APPLICATION
NOTE
AP-236
November 1986
Implementing StarLAN with
the Intel 82588
ADIGOLBERT
DATA COMMUNICATIONS OPERATION
SHARAD GANDHI
FIELD APPLICATIONS-EUROPE
Order Number: 231422-003
1-345
inter
AP-236
1.0 INTRODUCTION
Personal computers have become the most prolific
workstation in the office, serving a wide range of needs
such as word processing, spreadsheets, and data bases.
The need to interconnect PCs in a local environment
has clearly emerged, for purposes such as the sharing of
file, print, and communication servers; downline loading of files and application programs; electronic mail;
etc. Proliferation of the PC makes it the workstation of
choice for accessing the corporate mainframe/s; this
function can be performed much more efficiently and
economically when clusters of PCs are already interconnected through Local Area Networks (LANs). According to market surveys, the installed base of PCs in
business environments reached about 10 million units
year-end '85, with only a small fraction connected via
LANs. The installed base is expected to double by
1990. There is clearly a great need for locally interconnecting these machines; furthermore, end users expect
interconnectability across vendors. Thus, there is an urgent need for industry standards to promote cost effective PC LANs.
A large number of proprietary PC LANs have become
available for the office environment over the past several years. Many of these suffer from high installed cost,
technical deficiencies, non-conformance to industry
standards, and general lack of industry backing. StarLAN, in Intel's opinion, is one of the few networks
which will emerge as a standard. It utilizes a proven
network access method, it is implemented with proven
VLSI components; it is cost effective, easily installable
and reconfigurable; it is technically competent; and it
enjoys the backing of a large cross section of the industry which is collaborating to develop a standard (IEEE
802.3, type IBASE5).
1.1 StarLAN
StarLAN is a I Mb/s network based on the CSMA/
CD access method (Carrier Sense, Multiple Access
with Collision Detection). It works over standard,
unshielded, twisted pair telephone wiring. Typically,
the wiring connects each desk to a wiring closet in a
star topology (from which the IEEE Task Force working on the standard derived the name StarLAN in
1984). In fact, telephone and StarLAN wiring can coexist in the same twisted pair bundle connecting a desk to
the wiring closet. Abundant quantities of unused phone
wiring exist in most office environments, particularly in
the U.S. The StarLAN concept of wiring and networking concepts was originated by AT&T Information Systems.
tions needed for such networks. Besides inplementing
the standard CSMA/CD functions like framing, deferring, backing off and retrying on collisions, transmitting and receiving frames, it performs data encoding
and decoding in Manshester or NRZI format, carrier
sensing and collision detection, all up to a speed of 2
Mb/s (independent of the chosen encoding scheme).
These functions make it an optimum controller for a
StarLAN node. The 82588 has a very conventional microcomputer bus interface, easing the job of interfacing
it to any processor.
1.3 Organization of the Application
Note
This application note has two objectives. One is to describe StarLAN in practical terms to prospective implementers. The other is to illustrate designing with 82588,
particularly as related to StarLAN which is expected to
emerge as its largest application area.
Section 2 of this Application Note describes the StarLAN network, its basic components, collision detection, signal propagation and network parameters. Sections 3 and 4 describe the 82588 LAN controller and its
role in the StarLAN network. Section 5 goes into the
details of designing a StarLAN node for the IBM PC.
Section 6 describes the design of the HUB. Both these
designs have been implemented and operated in an actual StarLAN environment. Section 7 documents the
software used to drive the 82588. It gives the actual
procedures used to do operations like, configure, transmit and receive frames. It also shows how to use the
DMA controller and interrupt controller in the IBM
PC and goes into the details of doing I/O on the PC
using DOS calls. Appendix A shows oscilloscope traces
of the signals at various points in the network. Appendix B describes the multiple point extension (MPE) being considered by IEEE. Appendixes C and D talk
about advanced usages of the 82588; working with only
one DMA channel, and measuring network delays with
the 82588.
1.4 References
For additional information on the 82588, see the Intel
Microcommunications Handbook. StarLAN specification are currently available in draft standard form
through the IEEE 802.3 Working Group.
2.0 StarLAN
StarLAN is a low cost 1 Mb/s networking solution
aimed at office automation applications. It uses a star
1.2 The 82588
The 82588 is a single-chip LAN controller designed for
CSMA/CD networks. It integrates in one chip all func1-346
intJ
AP·236
topology with the nodes connected in a point-to-point
fashion to a central HUB. HUBs can be connected in a
hierarchical fashion. Up to 5 levels are supported. The
maximum distance between a node and the adjacent
HUB or between two adjacent HUBs is 800 ft. (about
250 meters) for 24 gauge wire and 600 ft. (about 200
meters) for 26 gauge wire. Maximum node-to-node distance with one HUB is 0.5 km, hence IEEE 802.3 designation of type lBASE5. 1 stands for 1 Mb/s and
BASE for baseband. (StarLAN doesn't preclude the use
of more than 800 ft wiring provided 6.5 dB maximum
attenuation is met, and cable propagation delay is no
more than 4 bit times).
One of the most attractive features of StarLAN is that
it uses telephone grade twisted pair wire for the transmission medium. In fact, existing installed telephone
wiring can also be used for StarLAN. Telephone wiring
is very economical to buy and install. Although use of
telephone wiring is an obvious advantage, for small
clusters of nodes, it is possible to work around the use
of building wiring.
Factors contributing to low cost are:
1) Use of telephone grade, unshielded, 24 or 26 gauge
twisted pair wire transmission media.
2) Installed base of redundant telephone wiring in most
buildings.
3) Buildings are designed for star topology wiring.
They have conduits leading to a central location.
4) Availability of low cost VLSI LAN controllers like
the 82588 for low cost applications and the 82586 for
high performance applications.
5) Off-the-shelf, Low cost RS-422, RS-485 drivers/receivers compatible with the StarLAN analog interface requirements.
2.1 StarLAN Topology
StarLAN, as the name suggests, uses a star topology.
The nodes are at the extremities of a star and the central point is called a HUB. There can be more than one
HUB in a network. The HUBs are connected in a hierarchical fashion resembling an inverted tree, as shown
in Figure 1, where nodes are shown as PCs. The HUB
at the base (at level 3) of the tree is called the Header
Hub (HHUB) and others are called Intermediate HUBs
(IHUB). It will become apparent, later in this section,
that topologically, this entire network of nodes and
HUBs is equivalent to one where all the nodes are connected to a single HUB. Also StarLAN doesn't limit
the number of nodes or HUBS at any given level.
2.1.1 TELEPHONE NETWORK
StarLAN is structured to run parallel to the telephone
network in a building. The telephone network has, in
fact, exactly the same star topology as StarLAN. Let us
now examine how the telephone system is typically laid
out in a building in the USA. Figure 2 shows how a
typical building is wired for telephones. 24 gauge
unshielded twisted pair wires emanate from a Wiring
Closet. The wires are in bundles of 25 or 50 pairs. The
bundle is called D' inside wiring (DIW). The wires in
these cables end up at modular telephone jacks in the
wall. The telephone set is either connected directly to
HUB LEVEL 1
231422-2
'Maximum of 5 HUB levels .
• pes or DTEs can connect directly at any level.
Figure 1. StarLAN Topology
1-347
inter
AP-236
the jack or through an extension cable. Each telephone
generally needs one twisted pair for voice and another
for auxilliary power. Thus, each modular jack has 2
twisted pairs (4 wires) connected to it. A 25 pair DIW
cable can thus be used for up to 12 telephone connections. In most buildings, not all pairs in the bundle are
used. Typically, a cable is used for only 4 to 8 telephone
connections. This practice is followed by telephone
companies because it is cheaper to install extra wires
initially, rather than retrofitting to expand the existing
number of connections. As a result, a lot of extra, unused wiring exists in a building. The stretch of cable
between the wiring closet and the telephone jack is typically less than 800 ft. (250 meters). In the wiring closet
the incoming wires from the telephones are routed to
another wiring closet, a PABX or to the central office
through an interconnect matrix. Thus, the wiring closet
is a concentration point in the telephone network.
There is also a redundancy of wires between the wiring
closets.
2.1.2 StarLAN AND THE TELEPHONE
NETWORK
StarLAN does not have to run on building wiring, but
the fact that it can significantly adds to its attractiveness. Figure 3 shows how StarLAN piggybacks on telephone wiring. Each node needs two twisted pair wires
to connect to the HUB. The unused wires in the 25 pair
DIW cables provide an electrical path to the wiring
closet, where the HUB is located. Note that the telephone and StarLAN are electrically isola:ted. They only
use the wires in the same bundle cable to connect to the
wiring closet. Within the wiring closet, StarLAN wires
connect to a HUB and telephone wires are routed to a
different path. Similar cable sharing can occur in connecting HUBs to one another. See Figure 4 for a typical
office wired for StarLAN through telephone wiring.
231422-3
Figure 2. Telephone Wiring In a Building
WIRING CLOSET
80.0 fl
"-
~2
" - - BUNDlES OF
25 - 50 PAIRS
TWISTED PAIRS
~
24 GAUGE, UNSHIELDED
231422-4
'StarLAN and telephones share the same bundle, but are electrically isolated.
'StarLAN uses the unused wires in existing bundles.
Figure 3. Coexistence of Telephone and StarLAN
1-348
AP-236
WIRING CLOSET
IHUB
WIRING CLOSET
ROOM
#
ROOM
#2
ROOM
#3
1
WIRING CLOSET
TELEPHONE
WIRES TO PBX
WIRING CLOSET
231422-5
Figure 4. A Typical Office Using Telephone Wiring for StarLAN
1·349
inter
AP-236
2.1.3 StarLAN AND Ethernet
St~rLAN and Ethernet are similar CSMAlCD networks. Since Ethernet has existed 'longer and is better
understood, a comparison of Ethernet with StarLAN is
worthwhile.
1. The data rate of Ethernet is lOMb/s and that of StarLAN is 1 Mb/s.
2. Ethernet uses a bus topology with each node connected to a coaxial cable bus via a 50 meter transceiver cable containing four shielded twisted pair
wires. StarLAN uses a star topology, with each node
connected to a central HUB by a point to point link
through two pairs of unshielded twisted pair wires.
3. Collision detection in Ethernet is done by the transceiver connected to the coaxial cable. Electrically, it
is done by sensing the energy level on the coax cable.
Collision detection in StarLAN is done in the HUB
by sensing activity on more than one input line connected to the HUB.
4. In Ethernet, the presence of collision is signalled by
the transceiver to the node by a special collision detect signal. In StarLAN, it is signalled by the HUB
using a special collision presence signal on the receive data line to the node.
5.: Ethernet cable segments are interconnected using repeaters in a non-hierarchical fashion so that the distance between any two nodes does not exceed 2.8
kilometers. In StarLAN, the maximum distance between any two nodes is 2.5 kilometers. This is
achieved by wiring a maximum of five levels of
HUBs in a hierarchical fashion.
2.2 Basic StarLAN Components
A StarLAN network has three basic components:
1. StarLAN node interface
2. StarLAN HUB
3. Cable
ETHERNET
231422-6
Figure 5. Ethernet and StarLAN Similarities
1-350
inter
AP-236
as a carrier sense signal. The differential signal from the
HUB is received using a zero-crossing RS-422 receiver.
Output of the receiver, qualified by the squelch circuit,
is fed to the RxD pin of the LAN controller. The RxD
signal provides three kinds of information:
1) Normal received data, when receiving the frame.
2) Collision information in the form of the collision
presence signal from the HUB.
3) Carrier sense information, indicating the beginning
and the end of frame. This is useful during transmit
and receive operations.
2.2.1 A StarLAN NODE INTERFACE
Figure 6 shows a typical StarLAN node interface. It
interfaces to a processor on the system side. The processor runs the networking software. The heart of the
node interface is the LAN controller which does the job
of receiving and transmitting the frames in adherence
to the IEEE 802.3 standard protocol. It maintains all
the timings-like the slot time, interframe spacing
etc.-required by the network. It performs the functions of framing, deferring, backing-off, collision detection which are necessary in a CSMA/CD network. It
also does Manchester encoding of data to be transmitted and clock separation-or decoding-of the Manchester encoded data that is received. These signals before going to the unshielded twist pair wire, may undergo pulse shaping (optional) pulse shaping basically
slows down the fall/rise times of the signal. The purpose of that is to diminish the effects of cross-talk and
radiation on adjacent pairs sharing the same bundle
(digital voice, Tl trunks, etc). The shaped signal is sent
on to the twisted pair wire through a pulse transformer
for DC isolation. The signals on the wire are thus differential, DC isolated from the node and almost sinusoidal (due to shaping and the capacitance of the wire).
NOTE:
Work done by the IEEE 802.3 committee has shown
that no slew rate control on the drivers is required.
Shaping by the transformer and the cable is sufficient
to avoid excessive EMI radiation and crosstalk.
The squelch circuit prevents idle line noise from affecting the receiver circuits in the LAN controller. The
squelch circuit has a 600 mv threshold for that purpose.
Also as part of the squelch circuitry an envelope detector is implemented. Its purpose is to generate an envelope of the transitions of the RXD line. Its output serve
2.2.2 StarLAN HUB
HUB is the point of concentration in StarLAN. All the
nodes transmit to the HUB and receive from the HUB.
Figure 7 shows an abstract representation of the HUB.
It has an upstream and a downstream signal processing
unit. The upstream unit has N signal inputs and 1 signal output. And the downstream unit has 1 input and
N output signals. The inputs to the upstream unit come
from the nodes or from the intermediate HUBs
(IHUBs) and its output goes to a higher level HUB.
The downstream unit is connected the other way
around; input from an upper level HUB and the outputs to nodes or lower level IHUBs. Physically each
input and output consist of one twisted pair wire carrying a differential signal. The downstream unit essentially just re-times the signal received at the input, and
sends it to all its outputs. The functions performed by
the upstream unit are:
1. Collision detection
2. Collision Presence signal generation
3. Signal Retiming
4. Jabber Function
5. Start of Idle protection timer
PULSE
TRANSFORMER
8 BIT BUS
82588
TxD
TELEPHONE
JACK
PULSE
SHAPING
. - _...... (OPTIONAL)
CONTROL
RxD
SYS ClK
SQUELCH
+
ENABLE
CIRCUITS
231422-7
Figure 6. 82588 Based StarLAN Node
1-351
inter
AP-236
the HUB ass.ociated with ,this functi.on and their .operati.on is described in secti.on 6.
The last functi.on implemented by the HUB is the start
of Idle pr.ot~ction timer. During the end .of recepti.on,
the HUB wIll see a l.ong undersh.o.ot at its input P.ort.
This undersh.o.ot is a consequence .of the transf.ormer
discharging accumulated charge during the 2 microseconds .of high .of the idle pattern. The HUB sh.ould implement a protecti.on mechanism t.o av.oid the undesirable effects .of that undersh.o.ot.
231422-8
Figure 7. A StarLAN HUB
The c.o!Ii~i.on detect!.on in the HUB is d.one by sensing
t~~ actIvIty .on the Inputs. If there is activity (.or translttons) .on m.ore than .one input, it is assumed that m.ore
than .one node is transmitting. This is a c.olIisi.on. If a
c.olIisi.on is detected, a special signal called the C.olIisi.on
Presence Signal is generated. This signal is generated
and sent .out as l.ong as activity is sensed .on any .of the
input lines. This signal is interpreted by every n.ode as
an occurrence .of c.ollisi.on. If there is activity .only .on
.one input, tha.~ signal is re-timed-or cleaned up .of any
accumulated Jltter~and sent .out. Figure 8 sh.oWS the
input.to .output relati.ons .of the HUB as a black b.ox.
If a n.ode transmits f.or t.o.o l.ong the HUB exercises a
functi.on t.o disable the n.ode fr.om interfering
wIth traffic fr.om .other nodes. There are tW.o timers in
J~bber,
IDLE
IDLE
IDLE
VALID
MANCHESTER
Figure 9 sh.oWS a bl.ock diagram .of the HUB. A switch
positi.on determines whether the HUB is an IHUB .or a
HHUB (Header HUB). If the HUB is an IHUB the
switch dec.ouples the upstream and the d.ownst;eam
units. H!iUB is the highest level HUB; it has n.o place
t.o send Its .output signal, S.o it returns its .output signal
(through the switch) t.o the .outputs .of the d.ownstream
unit. There is .one and .only .one HHUB in a StarLAN
netw.ork and it is always at the base .of the tree. The
returned signal eventually reaches every n.ode in the
netw.ork thr.ough the intermediate n.odes (if any). StarLAN specificati.ons d.o n.ot put any restricti.ons .on the
number .of IHUBS at any level .or .on number .of inputs
t.o any HUB. The number .of inputs per HUB are typically 6 t.o 12 and is dictated by the typical size .of clusters in a given netw.orking environment.
COLLISION PRESENCE
IDLE
IDLE
VALID MANCHESTER
IDLE
VALID MANCHESTER
IDLE
VALID MANCHESTER
COLLISION PRESENCE
IDLE
IDLE
COLLISION
PRESENCE
IDLE
COLLISION
PRESENCE
COLLISION
PRESENCE
VALID MANCHESTER
231422-9
Figure S.HUB as a Black Box
1-352
intJ
AP-236
TRANSMIT PAIR /I 1
:JII
+
TO HIGHER
LEVEL HUB
JABBER
+
TRANSMIT PAIR /I N
RECEIVE PAIR
PROTECTION
TIMER
II 1
HHUB
~II
~II
RECEIVE PAIR
II N
231422-10
Figure 9. StarLAN HUB Block Diagram
2.2.3 StarLAN CABLE
Unshielded telephone grade twisted pair wires are used
to connect a node to a HUB or to connect two HUBs.
This is one of the cheapest types of wire and an important factor in bringing down the cost of StarLAN.
Although the 24 gauge wire is used for long stretches,
the actual connection between the node and the telephone jack in the wall is done using extension cable,
just like connecting a telephone to a jack. For very
short Star LAN configurations, where all the nodes and
the HUB are in the same room, the extension cable
with plugs at both ends may itself be sufficient for all
the wiring. (Extension cables must be of the twisted
pair kind, no flat cables are allowed).
The telephone twisted pair wire of 24 gauge has the
following characteristics:
Attenuation
DC Resistance
Inductance
Capacitance
Impedance
: 42.55 db/mile @ I MHz
: 823.69 o./mile
: 0.84 mH/mile
0.1 p.F/mile
: 92.60., -4 degrees @ 1 MHz
Experiments have shown that the sharing of the telephone cable with other voice and data services does not
cause any mutual harm due to cross-talk and radiation,
provided every service meets the FCC limits.
Although it is outside the scope of the IEEE 802.3
lBASE5 standard, there is considerable interest in using fiber optics and coaxial cable for node to HUB or
HUB to HUB links especially in noisy and factory environments. Both these types of cables are particularly
suited for point-to-point connections. Even mixing of
different types of cables is possible (this kind of environments are not precluded).
NOTE:
StarLAN IEEE 802.3 IBASE5 draft calls for a maximum attenuation of 6.5 dB between the transmitter
and the corresponding receiver at all frequencies between 500 KHz to I MHz. Also the maximum allowed cable propagation delay is 4 microseconds.
2.3 Framing
Figure 10 shows the format of a 802.3 frame. The beginning of the frame is marked by the carrier going
active and the end marked by carrier going inactive.
The preamble has a 56 bit sequence of 101010 ....
ending in a O. This is followed by 8 bits of start of frame
delimiter (sfd) - 10101011. These bits are transmitted
with the MSB (leftmost bit) transmitted first. Source
and destination fields are 6 bytes long. The first byte is
the least significant byte. These fields are transmitted
with LSB first. The length field is 2 bytes long and gives
the length of data in the Information field. The entire
information field is a minimum of 46 bytes and a maximum of I SOO bytes. If the data content of the Informa-
1-353
inter
AP-236
tion field is less than 46, padding bytes are used to
make the field 46 bytes long. The Length field indicates
how much real data is in the Information field. The last
32 bits of the frame is the Frame Check Sequence
(FCS) and contains the CRC for the frame. The CRC is
calculated from the beginning of the destination address to the end of the Information field. The generating polynomial (Autodin II) used for CRC is:
The frames can be directed to a specific node (LSB of
address must be 0), to a group of nodes (multicast or
group-LSB of address must be 1) or all nodes (broad~
cast-all address bits must be 1).
2.4 Signal Propagation and Collision
Figure 11 will be used to illustrate three typical situations in a StarLAN with two IHUBs and one HHUB.
Nodes A and B are connected to HUBl, nodes C and D
to HUB2 and node E to HUB3.
+ X26 + X23 + X22 + X16 + X12 + Xll +
Xl0 + X8 + X7 + X5 + X4 + X2 + X + 1
X32
No need for Figure N.
CARRIER OFF
CARRIER ON
+PREA~BLE
7
I
I
~AX=1500
1
6
6
~IN
2
I SFO I OA I SA I LEN
= 46
IINFOR~ATION
4 ...
I FCS
I
t-ol·>----FRA~E LENGTH--I
~AX
~IN
=1518
= 64
SFD = Start of Frame Delimiter
DA = Destination Address
SA = Source Address
LEN = Length
FCS = Frame Check Sequence
All numbers indicate field length In octets.
Figure 10. Framing
1-354
231422-11
inter
AP-236
231422-12
Situation # 1. A Transmitting
231422-13
Situation # 2. A & B Transmitting
231422-14
Situation # 3. A, B & C Transmitting
HUBI. HUB,2 are IHUBs
HUB3 is the HHUB
Fa. Fb. Fe-Frames from nodes A. B & C
Fx-Colilsion Presence Signal
Figure 11. Signal Propagation and Collisions
1-355
inter
AP-236
Backoff method ........ Truncated binary exponential
Encoding ............................ Manchester
2.4.1 Situation # 1
Whenever node A transmits a frame Fa, it will reach
HUBl. If node B is silent, there is no collision. 'HUBI
will send Fa to HUB3 after re-timing the signal. If
nodes C, D and E are also silent, there is no collision at
HUB2 or HUB3. Since HUB3 is the HHUB, it sends
the frame Fa to HUBl, HUB2 and to node E after retiming. HUBI and HUB2 send the frame Fa to nodes
A, B and C, D. Thus, Fa reaches all the nodes on the
network including the originator node A. If the signal
received by node A is a valid Manchester signal and not
the Collision Presence Signal (CPS) for the entire duration of the slot time, then the node A assumes that it
was a successful transmission.
2.4.2 Situation # 2
If both nodes A and B were to transmit, HUBI will
detect it as a collision and will send signal Fx (the Collision Presence Signal) to the HUB3-Note that HUBI
does not send Fx to nodes A and B yet. 'HUB 3 receives
a signal from HUBI but nothing from node E or
HUB2, thus it does not detect the situation as a collision and simply re-times the signal Fx and sends it to
node E, HUB2 and HUB1. Fx ultimately reach all the
nodes. Nodes A and B detect this signal as CPS and
call it a collision.
Clock tolerance ................ ± 0.01 % (100 ppm)
Maximum jitter per segment .............. ± 62.5 ns
3.0 LAN CONTROLLER FOR StarLAN
One of the attractive features of StarLAN is the availability of the 82588, a VLSI LAN controller, designed
to meet the needs of a StarLAN node. The main requirements of a StarLAN node controller are:
1. IEEE 802.3 compatible CSMA/CD controller.
2. Configurable to StarLAN network and system parameters.
3. Generation of all necessary clocks and timings.
4. Manchester data encoding and decoding.
5. Detection of the Collision Presence Signal.
6. Carrier Sensing.
7. Squelch or bad signal filtering.
8. Fast and easy interface to the processor.
82588 performs all these functions in silicon, providing
a minimal hardware interface between the system processor and the StarLAN physical link. It also reduces
the software needed to run the node, since a lot offunctions, like deferring, back off, counting the number of
collisions etc., are done in silicon.
2.4.3 Situation # 3
In addition to nodes A and B, if node C were also to
transmit, the situation at HUBI will be the same as in
situation #2. HUB2 will propagate Fc from C towards
HUB3. HUB3 now sees two of its inputs active and
hence generates its own Fx signal and sends it towards
each node.
These situations should also illustrate the point made
earlier in the chapter that, the StarLAN network, with
nodes connected to mUltiple HUBs is, logically, equivalent to all the nodes connected to a single HUB (Yet
there are some differences between stations connected
at different HUB levels, those are due to different delays to the header hub HHUB).
3.1 IEEE 802.3 Compatibility
The CSMA/CD control unit on the 82588 performs the
functions of deferring, maintaining the Interframe
Space (IFS) timing, reacting to collision by generating a
jam pattern, calculating the back-off time based on the
number of collisions and a random number, decoding
the address of the incoming frame, discarding a frame
that is too short, etc. All these are performed by the
82588 in accordance to the IEEE 802.3 standards. For
inter-operability of different nodes on the StarLAN network it is very important to have the controllers strictly
adhere to the same standards.
3.2 Configurability of the 82588
2.5 StarLAN System and Network
Parameters
Preamble length (incl. sfd) ........ , ......... 64 bits
Address length ............................ 6 bytes
Fes length CRC (Autodin II) ............... 32 bits
Maximum frame length ................. 1518 bytes
Minimum frame length .................... 64 bytes
Slot time ............................ 512 bit times
Interframe spacing ..................... 96 bit times
Minimum jam timing .................. 32 bit times
Maximum number of collisions .................. 16
Backoff limit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ... 10
Almost all the networking parameters are programmable over a wide range. This means that the StarLAN
parameters form a subset of the total potential of the
82588. This is a major advantage for networks whose
standards are being defined arid are in a flux. It is also
an advantage when carrying over the experience gained
with the component in one network to other applications, with differing parameters (leveraging the design).
The 82588 is initialized or configured to its working
environment by the CONFIGURE command. After
the execution of this command, the 82588 knows its
system and network parameters. A configure block in
1-356
AP·2S6
memory is loaded into the 82588 by DMA. This block
contains all the parameters to be programmed as shown
in Figure 12. Following is a partial list Of the parameters with the programmable range and the StarLAN
value:
StarLAN
Parameter
Range
Value
Preamble length 2,4, 8, 16 bytes
8
Address length
o to 6 bytes
6
CRCtype
16,32 bit
32
Minimum frame
length
6 to 255 bytes
64
Interframe
spacing
12 to 255 bit times
96
Slot time
1 to 2047 bit times
512
Number of
retries
o to 15
15
StarLAN
Value
Parameter
Range
Data encoding
NRZI, Man.,
Diff. Man.
Code vio!.,
Bitcomp.
Collision
detection
Manch.
Code Vio!.
Beside these, there are many other options available,
which mayor may not apply to StarLAN:
Data sampling rate of 8 or 16
Operating in Promiscuous mode
Reception of Broadcast frames
Internalloopback operation
Externalloopback operation
Transmit without CRC
HDLC Framing
BIT
BYTE
7
o
5
6
4
I
I
I
I
I
I
I
I
o
2
3
I
I
BYTE COUNT (L.S.B)
I
I
I
I
I
I
I BYTE
I
COU~T (~.S.B) I
. I
2
CHNG
SERIAL
S~PLG
~ODE
RATE
FIFO
4
5
PREA~ LEN
INT
LP.BCK
BOF
~ETD
i
I
I~TER
6
i
I
NO SRC
ADD INS
P~IO
EXP
1
1
I
I
~
-I
RETRY NU~BER
I
1
i
I LIN PRIO 1
I
I
I
I
FRA~E
I'
1
I
/~AN
SPACING
i
. 1
I
1 ADD LEN 1
DIF.~AN
I
I
1
i
i
EXT
LP.BCK
ILI~IT
I
I
LENGTH
BUFFER
3
I
I
OSC
RANGE
I
1
I
I
1
1
SLOT TI~E (L)
7
8
9
PAD
10
CDT
SRC
BIT
STUFF
I
11
I
I
NCRC
INS
I
~AN
TON
NCRS
FRA~E
CON FIG
PR~
CRSF
I
I
BC
DIS
/NRZ·
CRS .
SRC
CDT~:J .
~:NI~U~
1
_I
SLOT TI~E (H)
. CDBBC
CRC16
I
I
I
I
I
I
I
I
I
LENGTH
i
I
PARA~ETER FOR~AT
231422-15
Figure 12. Configuration Block
1.357
inter
AP-236
time, Back off time, Number of collisions, Minimum
frame length, etc. These timers are started and stopped
automatically by the 82588.
3.3 Clocks and Timers
The 82588 requires two clocks; one for the operation of
the system interface and another for the serial side.
Both clocks are totally asynchronous to each other.
This permits transmitting and receiving frames at data
rates that are virtually independent of the speed at
which the system interface operates.
3.4 Manchester Data Encoding and
Decoding .
In StarLAN the data transmitted by the node must be
encoded in Manchester format. The node should also
be able to decode Manchester encoded data when re~
ceiving a frame-a process also known as clock recovery. The 82588 does the encoding and decoding of data
bits on chip for data rates up to 2 Mb/s.
The serial clock can be generated on chip using just an
external crystal of a value 8 or 16 times the desired bit
rate. An external clock may also be used.
The 82588 has a set of timers to Illaintain various timings necessary to run the CSMA/CD control unit.
These are timings for the Slot time, Interframe spacing
DATA
I
1
I0 I
1
Besides Manchester, the 82588 can also do encoding
and decoding in NRZI and Differential Manchester
formats. Figure 13 shows sll:mples of encoding in
I
1
I0 I
1
I
0
I0 I
0
I
1
I
NRZ
NRZI
MANCHESTER
DIFFERENTIAL
MANCHESTER
Encoding
Method
231422-16
Mid Bit Cell
Transitions
Bit Cell Boundary
Transitions
NRZ
Do not exist.
Identical to original data.
NRZI
Do not exist.
Exist only if original data
bit equals o.
Dependent on present
encoded signal level:
to 0 if 1
to 1 if 0
Manchester
Exist for every bit of
the original data:
from O. to 1 for 1
from 1 t() 0 for 0
Exist for consequent equal
bits· of original data:
.from 1 to 0 for 1 1
fromOt01 forOO
Differential
Manchester
Exist for every bit of
the. original.data.
Dependent on present
Encoded signal level:
to 0 if 1
to 1 if 0
Exist only if original data
bit equlllis o.
Dependent on present
Encoded signal level:
to 0 if 1
to 1 if 0
Figure 13.82588 Data Encoding Rules
1-358
inter
AP-236
these three formats. The main advantage of NRZI over
the other two is that NRZI requires half the channel
bandwidth, for any given data rate. On the other hand,
since the NRZI signal does not have as many transitions as the other two, clock recovery from it is more
difficult. The main advantage of Differential Manchester over straight Manchester is that for a signal that is
differentially driven (as in RS 422), crossing of the two
wires carrying the data does not change the data received at the receiver. In other wotds, NRZI and Differential Manchester encoding methods are polarity insensitive (Even though NRZI, Differential Manchester
are polarity instrnsitive, the 82588. expects a high lev~l
in the RXD line to detect camerinactive at the end of
. .
frames).
periodic intervals. When the 82588 decodes this signal,
it fails to see mid-cell transitions repeatedly at intervals
of2.5 bit times and hence calls it a code violation. The
edges of CPS are marked for illustration as a, b, c,
d, ... I. Let us see how the 82588 interprets the signal if
it starts calling the edge 'a' as the mid-cell transition for
'1'. Then edge at 'b' is '0'. Now the 81588 expects to see
an edge at '*' but since there is none, it is a Manchester
code violation. The edge that eventually does occur at
'd' is then used to re-synchronize and, since it is a falling edge, it is taken as a mid-cell transition for '0'. The
edge at 'e' is for a '1' and then again there is no edge at
'*'. This goes on, with the 82588 flagging code violation
and re-synchronizing again every 2.5 bit times. When a
transmitting node sees this CPS signal being returned
by the HUB (instead of a valid Manchester signal it
transmitted), it assumes that a collision occurred. The
82588 has two built-in mechanisms to detect collisions.
These mechanisms are very general and can be used for
a very broad class of applications to detect collisions in
a CSMAlCD network. Using these mechanisms, the
82588 can detect collisions (two or more nodes transmitting simultaneously) by just receiving the collided
signal during transmission, even if there was no HUB
generating the CPS signal.
3.5 Detection of the Collision
Presence Signal
In a StarLAN network, HUB informs the nodes that a
collision has occurred by sending the Collision Presence Signal (CPS) to the nodes. The CPS signal is a
special signal which contains v~olations in Manchester
encoding. Figure 14 shows the CPS signal. It has a 5 ms
period, looking very much like a valid Manchester signal except for missing transitions (or violations) at
J
ENCODING
I0 I
I
I
0
K
I
J
I0 I
0
I
K
I
J
I
CPS
EDGES:
r--:5~s
a
d
b c
PERIOD--j
I 2t I t I
e f
k
h
9
t=O.5~s
• MISSING MID-CELL TRANSITION
82588
DECODING
1
0
•
JLJL.
abc
d
o
1
LrLI
d
e f
9
1
0
•
JLJL.
J
k
m
o
*
LrLI
)
kim
Figure 14. 82588 Decoding the Collision Presence Signal
1-359
231422-17
intJ
AP-236
Collision also if:
RxD stays low for 25 samples or more
A mid cell transition is. missing
3.5.1 COLLISION DETECTION BY CODE
VIOLATION
If during transmissiori, the 82588 sees a violation in the
encoding (Manchester, NRZI or Differential Manchester) used, then it calls it a collision by aborting the
transmission and transmitting a 32 bit jam pattern. The
algorithm used to detect collisions,and to do the data
decoding, is based on finding the number ·of sampling
clocks between an edge to the next one. Suppose art
edge occurred at time 0, the sampling instant of the
next 'edge determines whether it was a collision (C), a
long pulse (L)-with a nominal width of 1 bit time-,or
a short pulse (S)-nominal width of half a bit time. The
following two charts show the decoding and collision
detection algorithm for sampling rates of 8 and 16
when using Manchester encoding. The numbers at the
bottom of the line indicate sampling instances after the
ocCurrence of the last edge (at 0). The alphabets on the
top show what would be inferred by the 82588 if the
next edge were to be there.
.Sampling rate = 8 (clock is 8x bit rate)
C
C
S
S
S
L
L
L L L C C
I I I I I I I I I I I I
0
2
3
4
5
6
7
8
9 10 11 12 13
Collision also if:
RxD stays low for 13 samples or more
A mid cell transition is missing
Sampling rate = 16 (clock is 16x' bit rate)
CCCCCSSSSSCLLLLLLLLLCCCC
A single instance of code violation can qualify as collision. The 82588 has a parameter called collision detect
filter (COT Filter) that can be configured from 0 to 7.
This parameter determines for how many bit times the
violation must-remain active to be flagged as·a collision.
For StarLAN CDT Filter must be configured to 0that is disabled.
3'.5.2 COLLISION' DETECTION BY SIGNATURE
(OR IT) COMPARISON
a
This method of collision detection compares a signature
of the transmitted data with that of the data received on
the RxD pin while transmitting. Figure IS .shows a
block diagram of the logic. As the frame is tranSmitted
it flows through the CR,C generation logic. A timer,
called the Tx slot timer, is"started at the same time that
the CRC generation starts. When the count in the timer
reaches the slot time value, the current value of the
CRC generl!:tor is latcl1ed in as the transmit signature.
As the frame is returned back (through the HUB) it
flows through the CRC checker. Another timer-'-Rx
slot timer-is started at the same time as the CRC
checker starts checking. When this timer reaches the
slot time value, the current value of the CRC checker is
latched in as the receive signature. If the received signa"
ture matches the transmitted one, then it is assumed
that there was no collision. Whereas, if the signatures
do not match, a collision is assumed to have occurred.
111111111111111111111111111
o
2
4
6
8
10 12 14 16 18 20 22 24 26
TRANSMITTED _ _-+I
FRAME
Tx SLOT
TIMER
TX CRC
1---+ TRANSMIT CHANNEL
TX SIGNATURE
LATCH
COMPARE"
Rx SLOT
TIMER
RECEIVED
FRAME
RX SIGNATURE
LATCH
RX CRC
RECEIVE CHANNEL
• MATCH = NO COLLISION
NO MATCH = COLLISION
Figure 15. Collision Detection by Signature Comparison
1-360
231422-18
inter
AP-236
b) Half a slot time + 16 bit times elapse and the opening flag (sfd) is not detected.
c) Carrier sense goes inactive after an opening flag is
received with transmitter still active.
Note that, even if the collision were to occur in the first
few bits of the frame, a slot time must elapse before it is
detected. In the code violation method, collision is detected within a few bit times. However, since the signature method compares the signatures, which are characteristic of the frame being transmitted, it is more robust. The code violation method can be fooled by returning a signal to the 82588 which is not the same as
the transmitted signal but is a valid Manchester signal-like a 1 MHz signal. Both methods can be used
simultaneously giving a combination of speed and robustness.
These mechanisms add a further robustness to the collision detection mechanism of the 82588. It is also possible to OR an externally generated collision detect signal
to the internally generated condition by bit comparison
(see Figure 17).
3.6 Carrier Sensing
NOTE:
In order to reliably detect a collision using the collision by bit comparison mode, the transmitter must
still be transmitting up to the point where the receiver
has seen enough bits to complete its signature. Otherwise, the transmitter may be done before the RX signature is completed resulting in an undetected ~ collision. A sufficient condition to avoid this situation is to
transmit frames with a minimum length of 1.5 • slottime (see Figure 16).
A StarLAN network is considered to be busy if there
are transitions on the cable. Carrier is supposed to be
active if there are transitions. Every node controller
needs to know when the carrier is active and when not.
This is done by the carrier sensing circuitry. On the
82588 this circuit is on chip. It looks at the RxD (re·
ceive data) pin and if there are transitions, it turns on
an internal carrier sense signal. It turns off the carrier
sense signal if RxD remains in idle (high) state for 13/8
bit times. This carrier sense information is used to mark
the start of the interframe space time and the back off
time. The 82588 also defers transmission when the carrier sense is active.
3.5.3 ADDITIONAL COLLISION DETECTION
MECHANISM
In addition to the collision detection mechanisms described in the preceding sections, the 82588 also flags
collision when after starting a transmission any of the
following conditions become valid:
a) Half a slot time elapses and the carrier sense of
82588 is not active.
When operating in the NRZI encoded mode, 'carrier
sense is turned off if RxD pin is in the idle state for 8 bit
times or more (see Figure 18).
82588
PO
TX
HEADEND
PO
RX
CONDITION ,OR RELIABLE CDBBC
TLIAINJRAIALLENGTH
t
SLOLTIIAE
> SLOLTIIAE+ 2*PD
~ 2*PD
TLIAINJRAIALLENGTH
> 1.5*SLOLTIIAE
231422-75
Figure 16. Limitation of CDssC Mechanism
1-361
Ap·236
COLLISION DETECTION BY BIT COMPARISON (CDBBC)
(CONFIGURE BYTE B, BIT 3)
COLLISION DETECTION SOURCE (INTERNAL, EXTERNAL)
(CONFIGURE BYTE 10, BIT 7)
231422-76
Figure 17. Mode 0, Collision Detection
3.7 Squelching the Input
Squelch circuit is used to filter idle noise on the receiver
input. Basically two types of squelch may be used: Voltage and time. Voltage squelch is done to filter out signals whose strength is below a defined voltage threshold (0.6 volts for StarLAN). It prevents idle line noise
from disturbing the receive circuits on the controller.
The voltage squelch circuit is placed right after the receiving pulse transformer. It enables the input to the
RxD pin of the 82588 only when the signal strength is
above the threshold.
If the signal received has the proper level but not the
proper timing, it should not bother the receiver. This is
accomplished by the time squelch circuit on the 82588.
Time squelching is essential to weed out spikes, glitches
and bad signal especially at the beginning of a frame.
The 82588 does not turn on its carrier sense (or receive
enable) signal until it receives three consecutive edges,
each separated by time periods greater than the fast
time clock high time but less than 13/8 bit-times as
shown in Figure 18.
MANCHESTER
~
DATA~
CARRIER
~
I
I
I.
---u-1:'':' :;0:'"1--
ED~ESj
.1....-1
13/BBTxB
25/16 BTx 16
~
DATA~
CARRIER
~
I
I
ED~E$j
231422-77
Figure 18. Carrier Sensing
1-362
AP-236
The carrier sense activation can be programmed for a
further delay by up to 7 bit times by a configuration
parameter called carrier sense filter.
3.8 System Bus Interface
The 82588 has a conventional bus interface making it
very easy to interface to any processor bus. Figure 19
shows that it has an 8 bit data bus, read, write, chip
select, interrupt and reset pins going to the processor
bus. It also needs an external DMA controller for data
transfer. A system clock of up to 8 MHz is needed. The
read and write access times of the 82588 are very
short-9S ns-as shown by Figure 20. This further facilitates interfacing the controller to almost any processor.
SERIAL CLOCK
RESET
RTS]
CTS SERIAL
Tx D INTERFACE
00-7
STANDARD
BUS
INTERFACE
RD
WR
82588
INT
28 PIN
PLASTIC/CERAMIC
cs
+--RxD
TCLK
DRQO
IlIotA [ DACKO--+
INTERFACE DRQ 1
DACKI
(MODE 0)
CRS} CSMA/CD
COT INTERFACE
CLK
SYSTEM CLOCK
231422-20
Figure 19. Chip Interface
-
BOns
(MIN)
.
95ns
(MIN)
I
55n8(MAX)
DATA
-75ns(MIN)
\
.
95ns
(MIN)
- O n s --I
(MIN)
DATA
231422-21
Figure 20. Access Times
1-363
Ap·236
The 82588 has over 50 bytes of registers, and most are
accessed only indirectly. Figure 21 shows the register
access mechanism ofthe 82588. It has oae I/O port and
2 DMA channel ports. These are the windows into the
82588 for the CPU and the DMA controller. An external CPU can write iato the Command register and read
from the Status registers using I/O instructions and
asserting chip select and write or read lines. Although
there is just one I/O port and 4 status registers, they
can be read out in a round robin fashion through the
same port as shown in Figure 22. Other registers like
the Configuration, Individual Address registers can be
accessed oaly through DMA. All the internal registers
can be dumped into memory by DMA using the Dump
command. The execution of some of the commands is
described in section 4. See the 82588 Reference Manual
for details on these commands.
3.9 Debug and Diagnostic Aids
Besides the standard functions that can be used directly
for StarLAN, the 82588 offers many debug and diag-
82588 REGISTER SET
~
__......_-4~_--1___..L--.~_-
I
COMMAND
~
STATUS
I
~
WRITE ONLY
READ ONLY
CONFIGURATION
IA
MULTICAST
READ
'"
WRITE
Tx CRC
Rx CRC
IMPLICIT REGISTERS
(OVER SO BYTES)
231422-22
Figure 21. Register Access
1-364
intJ
AP-236
4 Status registers are accessed through one read port
POINTER
CD
L
STATUS 0
STATUS 1
--+ I READ PORT
STATUS 2
I
STATUS 3
231422-23
The pointer can be changed using a command or can be automatically incremented.
'*
READ_STATUS_588: PROCEDURE;
OUTPUT (CS_588) = 15;
STATUS_588(0)=INPUT (CS_588);
STATUS_588(1)=INPUT (CS_588);
STATUS_588(2)=INPUT (CS_588);
STATUS_588(3)=INPUT (CS_588);
RETURN
END READ_STATUS_588;
*'
*'
COMMAND 15
,. RELEASE POINTER, INITIAL = 00
'*
REFRESH STATUS REGISTER IMAGE "'
/* IN MEMORY.
READING 4 STATUS REGISTERS
Figure 22. Reading the Status Register
nostics functions. The DIAGNOSE command of the
82588 does a self-test of most of the counters and timers
in the 82588 serial unit. Using the DUMP command,
all the internal registers of the 82588 can be dumped
into the memory. The TDR command does Time Domain Reflectometery on the network. The 82588 has
two loopback modes of operation. In the internal loopback mode, the TXD line is internally connected to the
RXD one. No data appears outside the chip, and the
82588 is isolated from the link. This mode enables
checking of the receive and transmit machines without
link interference. In the external loopback mode, the
82588 becomes a full duplex device, being able to receive its own transmitted frames. In this mode data
goes through the link and all CSMA/CD mechanisms
are involved.
±62.5 ns at I Mbs for both 8X, 16X Manchester encoded data.
Jitter = ± variation of an edge from its nominal poSition.
Jitter can occur on every edge.
IdWldWI
IdWldWI
r-~_j
l_::J::L-_-_-~:___
1-1.---'w----+l,1
231422-78
x8
Manchester
NAZI
±
'A.
x16
±1I16
±1/16BT
±3/32 BT
±3116BT
±3116 BT
(Code Violations Enabled)
NAZI
(Code Violations Disabled)
3.10 Jitter Performance
When the 82588 r~ives a frame from the HUB, the
signal has jitter. Jitter is the shifting of the edges of the
signal from their nominal position due to the transmission over a length of cable. Many factors like, intersymbol interference (pulses of different widths have different delays through the transmission media), rise and
fall times of drivers and receivers, cross talk etc., contribute to the jitter. StarLAN specifies a maximum jitter of ±62.5 ns whenever the signal goes from a
NODE/HUB or HUB/HUB. Figure 23 shows that the
jitter tolerance of the 82588 is exactly the required
Figure 23. 82588 JItter Performance.
4.0 THE 82588
This chapter describ~ the basic 82588 operations.
Please refer to the 82588 reference manual in Intel Microcommunications. Handbook for. a detailed description. Basic operations like transmitting Ii frame, receiving a frame, configuring the 82588 and dumping the
register contents are, discussed here to give a feel for
how the 82588 works.
1-365
inter
Ap·236
4.1 Transmit and Retransmit
Operations
To transmit a frame, the CPU prepares a block in the
memory called the transmit data block. As shown in
Figure 24, this block starts with a byte count field, indicating how long the rest ofthe block is. The destination
address field contains the node address of the destination. The rest of the block contains the information or
the data field ofthe frame. The CPU also programs the
DMA controller with the start address of the transmit
data block. The DMA byte count must be equal to or
greater than the block length. The 82588 is then issued
a TRANSMIT command-an OUT instruction to the
command port of the 82588. The 82588 starts generating DMA requests to read in the transmit da1;a block by
DMA. It also determines whether and how long it must
defer on the link and after that, it starts transmitting
the preamble. The 82588 constructs the frame on the
fly. It takes the destination address from the memory,
source address from its own individual address memory
(previously programmed), data field from the memory
and the CRC, is generated on chip, at the end of the
frame.
BYTE
COUNT
INFORMATION
To re-attempt transmission, the CPU must reinitialize
the DMA controller 7to the start of the transmit data
block and issue a RETRANSMIT command to the
82588. When the 82588 receives the retransmit command and the back-off timer has expired, it transmits
again. Interrupt and the status register contents again
indicate the success or failure of the (re)transmit attempt.
The main difference between transmit and retransmit
commands is that retransmit does not clear the internal
count for the number of collisions occurred, whereas
transmit does. Moreoever, retransmit takes effect only
when the back-off timer has expired.
4.2 Configuring the 82588
To initialize the 82588 and program its network and
system parameters, a configure operation is performed.
It is very similar to the transmit operation. Instead of a
transmit data block as in transmit command, a configure data block-shown in Figure 12-is prepared by
the CPU in the memory. The first two bytes of the
block specify the length of the rest of the block, which
specify the network and system parameters for the
82588. The DMA controller is then programmed by
the CPU to the beginning of this block and a CONFIGURE command is issued to the 82588. The 82588 reads
in the parameters by DMA and loads the parameters in
the on-chip registers. '
1. Prepare Transmit Data-Block in Memory
2. Program DMA Controller
3. Issue Transmit Command on the Desired
Channel
DESTIN.
ADDRESS
status registers to find out if the transmission was successful. If a collision occurs during transmission, the
82588 aborts transmission and generates the jam sequence, as required by IEEE 802.3, and informs the
CPU through interrupt and the status registers. It also
starts the back-off algorithm.
U
Similarly, for programming the INDIVIDUAL ADDRESS and MULTICAST ADDRESSes, the DMA
controller is used to load the 82588 registers.
231422-25
Transmit Data,Block
4.3 Frame Reception
4. Interrupt is received on completion of command or if the command was aborted or
there was a collision. The status bytes 1 and
2 indicate the result of the operation.
7
6
5
HRT MAX
DEF BEAT COll
TX
COll
OK
TX
,4
3
2
0
"
NUM. OF COLLISIONS
I lOST
CRS
STATUS 1
I
lOST IUNIER
'CTS RUN STATUS 2
231422-26
Transmit &: Retransmit Results Format
Figure 24., Transmit 'Oper~tion
At the, conclusion of transmisSion' the 82588 generates
an interrupt to the CPU. The CPU can then read the
Before enabling the 82588 for reception the CPU must
make a buffer available for the frame to be received.
The CPU must program the DMA controller with the
starting address of the buffer and then issue the R"ENABLE command to the 82588. When a frame arrives at the RxD pin of the 82588, it starts being received. Only if the address in the destination address
matches either the Individual address, Multicast address or if it is a broadcast address, is the frame deposited into memory by the 82588 using DMA. The format
of storage in the memory is shown in Figure 25.' At the
end, a two byte field is attached which shows the status
of the received frame. If CRC, alignment or.oyerrun
errors are encountered, theY.,are reported. An inter-
1·366
intJ
Ap·236
RECEIVED rRAWE
1. Prepare a Buffer for Reception
2. Program DMA Controller
3. Issue Receiver Enable Command
When a frame is received, it is deposited in the
memory. Receive status bytes (2) are appended to
the frame in the memory, byte count written in the
status registers I, 2, and an interrupt is generated.
SRT
RECEIVE rRW
STATUS
DESTIN.
ADDRESS
SOURCE
ADDRESS
NO
EOI'
RCV
O.K.
CRC
ERR
~~
RUN
.~~~
ALG
ERR
STATUS REG. 1
STATUS REG. 2
r
Bm
COUNT
X
RECEIVE
STATUS
231422-27
Figure 25. Receive Operation (Single Buffer)
rupt from 82588 occurs when all the bytes have been
transferred to the memory. This informs the CPU that
a new frame has been received.
If the received frame has errors, the CPU must recover
(or re-use) the buffer. Note that the entire frame is deposited into one buffer. The 82588 when NOT configured for the external loopback mode, will detect collisions (code violations) during receptions. If a collision
is detected, the reception is aborted and status updated.
CPU is then informed by an interrupt (if the collided
frame fragment is shorter than the address length, no
reception will be started), and no interrupt will happen.
4.3.1 Multiple Buffer Frame Reception
It is also possible to receive a frame into a number of
fixed size buffers. This is particularly economical if the
received frames vary widely in size. If the single buffer
scheme were used as described above, the buffer required would have to be bigger than the longest expected frame and would be very wasteful for very short
(typically acknowledge or control) frames. The multiple buffer reception is illustrated in Figure 26. It uses
two DMA channels for reception.
IDBurrER 1
OBurrER 2
OBUrf'ER 3
·
···
IDBUrf'ER N
Buffer
Pointer
Table
(Managed by CPU)
231422-28
Figure 26. Multiple Buffer Reception
1-367
inter
AP-236
As in single buffer reception, the one channel, say channel 0, of the DMA controller is programmed to the
start of buffer I, and the 82588 is enabled for reception
with the chaining bit set. ~s soon as the first byte is
read out of the 82588 by the DMA controller and written into the first location of buffer I, the 82588 generates an interrupt, saying that it is filling up its last available buffer and one more buffer must be allocated. The
filling up of the buffer I continues. The CPU responds
to the interrupt by programming the other DMA channel-channel I-with the start address of the second
buffer and issuing an ASSIGN ALTERNATE buffer
command with an INTACK (interrupt acknowledge).
This informs the 82588 that one more buffer is available on the other channel. When buffer I is filled up
(the 82588 knows the size of buffers from the configuration command), the 82588 starts generating the DMA
requests on the other channel. This automatically starts
fuling up buffer 2. As soon as the first byte is written
into buffer 2, the 82588 interrupts the CPU again-asking for one more buffer. The CPU programs the channel 0 of the DMA controller with the start address of
buffer 3, issues an ASSIGN ALTERNATE buffer command with INTACK. This keeps the buffer 3 ready for
the 82588. This switching of channels continues until
the entire frame is received generating an end of frame
interrupt. The CPU maintains the list of pointers to the
buffers used.
Since a new buffer is allocated at the time of filling up
of the last buffer, the 82588 automatically switches to
, the new buffer to receive the next frame as soon as the
last frame is completely received. It can start receiving
the new frame almost immediately, even before the end
offrame interrupt is serviced and acknowledged by the
CPU. If a new frame comes in, and the previous frame
interrupt is not yet acknowledged, another interrupt
needed for new buffer allocation is buffered (and not
lost). As soon as the first one is acknowledged, the interrupt line goes active again for the buffered one.
If by the time a buffer fills up no new buffer is available,
the 82588 keeps on receiving. An overrun will occur
and will be reported in the received frame status. However, ample time is available for the allocation of a new
buffer. It is roughly equal to the time to fill up a buffer.
For 128 byte buffers it is 128 X 8 = 1024 ms or approximately I millisec. You get I ms to assign a new
buffer after getting the interrupt for it. Hence the process of multiple buffer reception is not time critical for
the system performance.
This method of reception is particularly useful to guarantee the reception of back-to-back frames separated by
IFS time. This is because a new buffer is always available for the new frame after the current frame is received.
Although both the DMA channels get used up in receiving, only one channel is kept ready for reception
and the other one can be used for other commands until
the reception starts. If an execution command like
transmit or dump command is being executed on a
channel which must be allocated for reception, the
command gets automatically aborted when the ASSIGN ALTERNATE BUFFER command is issued to
the channel used for the execution command. The interrupt for command abortion occurs after the end of
frame interrupt.
1-368
inter
AP-236
the 82588 command register and knowing the results (if
any) through the status registers.
4.4 Memory Dump of Registers
All the 82588 internal registers can be dumped in the
memory by the DUMP command. A DMA channel is
used to transfer the register contents to the memory. It
is very similar to reception of a frame; instead of data
from the serial link, the data from the registers gets
written into the memory. This provides a software debugging and diagnostic tool.
4.5 Other Operations
Other 82588 operations like DIAGNOSE, TDR,
ABORT, etc. do not require any parameter or data
transfer. They are executed by writing a command to
5.0 StarLAN NODE FOR IBM PC
This chapter deals with the hardware-the StarLAN
board-to interface the IBM PC to a StarLAN Network. This is a slave board which takes up one slot on
the I/O channel of the IBM PC. Figure 27 shows an
abstract block diagram of the board. It requires the
IBM PC resources of the CPU, memory, DMA and
interrupt controller on the system board to run it. Such
a board has two interfaces. The IBM PC I/O Channel
on the system or the parallel side and the telephone
grade twisted pair wire on the serial side. Figures 28, 29
show the circuit diagram of the board.
PULSE
TRANSFORMER
8 BIT BUS
SYSTEM
BUS
82588
TxD
.-------
TELEPHONE
JACK
PULSE
.JIAr:::....--I SHAPING
CONTROL
< >
RxD
SYS ClK
SQUELCH
+
ENABLE
CIRCUITS
231422-29
Figure 27. 82588 Based StarLAN Node
1-369
5
.
OSC
D
4
~
ua
CRVStEK
I
~.
+D'
+D&
+D
+D4
+DI
+D2
+DI
+De
A2
A8
A4
AS
AS
A'
AI
A8
8
8
?
..
&
•
7
8. 11
.,. 12
6
15
..
B6 13
as 14
•
u:
2
2
I
BS 16
82 I"
81 18
..
a
0
ii1
N
CIII
{"
II'
81S
U8-U:
US-I'
US-I?
US-II
I.
II
I'
IS
1pIL-
"
18'4L832
,I
t>
-DACk!
-DACteS
A22
A28
:=:
A25
A2.
+A'
+A6
+A
+A4
A"I
All
+01.
+ H
d"
~"
.:J"
I
:
:
~
U4
74Lsaz
u• • 6
I
~
AIHANDAe
la
I
2
8
4
'--"'
""---T
16La
ESET
•
6
S
4
2'
REG
2&
tX
RXD
9'1' ~
•
Ira! 1')(2 ,l!-
....
~
C
8
S
4
18
~
'8
U8
741.8125
""""""
8
ESET
L
INt 26
S
8
U8
18
6
+DRQa
I;f::
L i"U8
U8-18
UI-l&
4
12
18
LLC,84
S
•
I
8
I> 128
'"
_Oft_
If
.IRQ..
E> 124
.IRQS
t> 125
I.
gH
h
II
~
!lIIIi
L....!!!.!.A
1881;::5
8.8
I"~
OJ: Cs
OJ: CI4 OJ: CI
1l 18uF ll '8uF 1l
847.F
II
IICO 'I'IICIIIIICAL
nIl'
:t CI"
1; . 847.F
1t8. INTIL
IA
I . . fC - S'MIIIMI ,- 8ZSaI
ILE
8. .
MODEI.DUe
•
&
S
4
rJ
81.
~
I
mf==t*
m
3>
'P
M2 .• _
JunPE
US-I?
U3-16
U2
81.
I
,.4L8126
UI
II
US
.DROI
U8
WI
II
EM
•
2
8
74LS12&
....
181"ROI
II
JUnPER
10",.",.
I~!~Q8
2
8
REG
DREG. I '
6
DRED
':w.
CLK
........
tXD 8
OXD 18
~
'---'"
MS
+RES~T
+A8
+AI
3 ..
~
CL~
~ :*
file .Ixt
6
S
4
I
2
I
Cft
S
-10NR
82
•1
8
-lORD
114
82&88
• •
6
---.Y!.!..-
CI
......
D
• 'I""Z
eel-IlI-S8
IDIR
~
c., C
l
"
8
I
231422-79
I I
0>
.
5
l
2
flmI
7415164
.r;;--;;a
Ir==-bi' ....
~
2 2.
Rt1<
e
_~_.8
."
00
j
.
c'
C
CD
N
CD
l
.X.
ODS
QE 18
OF
08
11
12
ON
13
--..!:U.!
II
r".
741$32
l'rJfQCS
.."
.S"
•
704HCr8a ..
5
U4
7·
US
261.532
JIL.!..:
l>
~ ~:.
"a
I
I\)
CI)
G)
.s
2 2.
.5
se •
••
-----.!flMA><
u~_
eLK
.2
2 2.
U1
see
r--------------------------------------------: EllUATIOtIS
I
I
I
A
'f§'.
! (IAEN
I'lJlS"miFf.
I
1 DREQI •
I
I
I
I
110.
IR9NANDAa &
e..
IA?
IA6 !co lAS &
(IREN .. 'A9HAHDA8 .. If\? .. IA6 &I. lAS
,
(
('REO."
I~)'
DREG3·
I
(
(IREQI"
11Ji!i'I!'i(§'
~.
Ji$l'i(l"
..
~
,
(
•
IREQ8
a..
tA4 .. lAG>
1&1.
IA<4 .. AS ..
I DREQI
) •
(IREQI .. 'DREQS )
11MiJf)
RESET)
•
I
RESET)
DCO TECHltICAL IWIJCI:I'IIIG. IHDL
I
A
TITLE
.. (I
(
IAEN eo. 'A9HAHDA8" IA? .. !AS .. 'A6 III IA.04»
•
I
~---------------------------------------- _ _ _ _ _ I
I . . PC - STAIII.Nt - 8Z5II8
-FILE
NODE2 D"'6
•
2"OF"'2
231422-80
inter
AP-236
5.1 Interfacing to the IBM PC 1/0
Channel
IBM PC has 8 slots on the system board to allow expansion of the basic system. All of them are electrically
identical and the I/O channel is the bus that links them
all to the 8088 system bus. The I/O channel contains
an 8 bit bidirectional data bus, 20 address lines, 6 levels
of interrupt, 3 channels of DMA control lines and other
control lines to do I/O and memory read/write operations. Figure 30 shows the signals and the pin assignment for the I/O Channel.
to 82588 for commands and status. address 30lH accesses an on board control port that enables the various
interrupt and DMA lines. Even though only two addresses are needed. the card uses all the 16 addresses
spaces from 300H to 30FH. This was done to keep simplicity and minimum component count. Registers address decoding is done using a PAL (16L8) and an external NAND gate (U8).
Hex Range
OOO-OOF
020-021
040-043
060-063
080-083
Rear Panel
SIGN4L N4ME
GNO
....
Bl
-
41
I-
+RESET ORV
+5V
+06
+DS
+OR02
+03
+04
-12V
+02
-
-CARD SLCTO
+12V
GNO
+01
+00
BID 410-
-t.lEWW
-t.lEMR
+1/0 CH R
300-31 F
320-32F
378-37F
380-38C··
380-389··
+4EN
-
-lOW
+419
+A18
-lOR
+417
-DACK3
+416
+OR03
-DACKI
+A14
+A15
+ORQl
3AO-3A9
+AU
+A12
-DACKO
CLOCK
B20 A20
3BO-3BF
3CO-3CF
3DO-3DF
3EO-3E7
3FO-3F7
3F8-3FF
+All
+Al0
+IR06
+IR07
+49
+IRQS
+48
+IR04
+47
+IR03
-DACK2
+ALE
+A6
+45
+M
+43
+SV
+A2
+T/C
GNO
OCX
OEX
200-20F
210-217
220-24F
278-27F
2FO-2F7
2F8-2FF
1/0 CH CK
+07
+IR02
-5VDC
+OSC
OAX"
S1GN4L NAME
--
\.
B31 431
--
• At power-on time, the Non Mask Interrupt into the
8088 is masked off.
This mask bit can be set and reset through
system software as follows:
Set mask: Write hex 80 to 1/0 Address hex AO
(enable NMI)
Clear mask: Write hex 00 to 1/0 Address hex AO
(disable NMI)
•• SDLC Communications and Secondary Binary
Synchronous Communications cannot be used
together because their hex addresses overlap.
+Al
+AO
'\
Usage
DMA Chip 8237A-5
Interrupt 8259A
Timer 8253-5
PP18255A-5
DMA Page Registers
NMI Mask Register
Reserved
Reserved
Game Control
Expansion Unit
Reserved
Reserved
Reserved
Asynchronous Communications
(Secondary)
Prototype Card
Fixed Disk
Printer
SDLC Communications
Binary Synchronous Communications
(Secondary)
Binary Synchronous Communications
(Primary)
IBM Monochrome Display/Printer
Reserved
ColorIGraphics
Reserved
Diskette
Asynchronous Communications
(Primary)
COMPONENT SIDE
231422-31
Figure 30. I/O Channel Diagram
5.1.1 REGISTER ACCESS AND DATA BUS
INTERFACE
Figure 31.1/0 Address Map
The CPU accesses the StarLAN adapter card through 2
I/O address windows. Address 300H is used to access
1-372
inter
AP-236
A4-A9 - - - .
AO~
---+ CS_ (to 588)
LOGIC
U2, U8
AEN---.
IOW_---.
---+ LOPRL (to OIo4A, INTERRUPT enable lines)
...
~---
231422-56
Register Access
Format of Following Equations Will Be According To
The Following Specifications:
INVERT
SIGNAL ACTIVE LOW
&:
LOGIC AND
#
LOGIC OR
A9NANDA8 = ! (A9 &: A8)
CS_
=I
LDPORT_
BUSEN_
!AEN &: !A9NANDA8 &: !A7 &: !AS &: !A5 &: !A4 &: !AO )
(
= ! ( !AEN &: !A9NANDA8 &: !A7 &:
=DACKl_ &: DACK2_ &: (! ( !AEN &:
The signal CS_ decodes address 300H, it is only active
when AEN is inactive meaning CPU and not DMA
cycles. LDPORT_ has exactly the same logic for address 30lH, but it is only active during I/O write cycles. The I/O port sitting on address 30lH is write
only. The data BUS lines DO to D7 are buffered from
the 82588 to the PC bus using an 74LS245 transceiver
chip.
!AS &: !A5 &: !A4 &: AO &: !IOWR_ )
!A9NANDA8 &: !A7 &: !AS &: !A5 &: !A4));
The Bus transceiver is enabled if: A DMA access is
taking place, or I/O ports 300H to 30FH are being
accessed.
5.1.2 Control Port
As mentioned the StarLAN adapter port has a 4-bit
write only control port. The purpose of this port is to
selectively enable the DMA and INTERRUPT request
lines. Also it can completely disable the transmitter.
Control Port Definition
00-07
I ENDRQ1 I ENDRQ3 I ENINTER I TXEN
x
V
E
R
BUSEN_
Data Bus Interface
TO 588
231422-57
ENDRQl, ENDRQ2 : "I" Enable DMA requests.
ENINTER
: "I" Enable INTERRUPT
request.
TXEN
: "I" Enable the transmitter.
On power up all bits default to "0".
1-373
AP·236
5.1.3 CLOCK GENERATION
The 82588 requires two clocks for operation. The system clock and the serial clock. The serial clock can be
generated on chip by putting a crystal across Xl and
X2 pins. Alternatively, an externally generated clock
can be fed in at pin XI (with X2 left open). In both
cases, the frequency must be either 8 or 16 times (sampling factor) the desired bit rate. For StarLAN, 8 or 16
MHz are the correct values to generate I Mb/s data
rate. A configuration parameter is used to tell the
82588 what the sampling factor is. An externally supplied clock must have MOS levels (0.6V -3.9V). Specifications for the crystal and the circuit are shown in Figure 32.
The system clock has to be supplied externally. It can
be up to 8 MHz. This clock runs the parallel side of the
82588. Its frequency does not have any impact on the
read and write access times but on the rate at which
data can be transferred to and from the 82588 (Maximum DMA data rate is one byte every two system
clocks). This clock doesn't require MOS levels.
The I/O channel of the IBM PC supplies a 4.77 MHz
signal of 33% duty cycle. This signal could be used as a
system clock. It was decided, however, to generate a
separate clock on the StarLAN board to be independent of the I/O channel clock so that this board can
also be used in other IBM PCs and also in some other
compatibles. The 8 MHz system clock is generated us-
ing a DIP OSCILLATOR which have the required 50
ppm tolerance to meet StarLAN. This clock is converted to MOS levels by 74HCTOO and fed into both the
system and serial clock inputs.
5.1.4 DMA INTERFACE
The 82588 requires either one or two DMA channe~s
for full operation. In this application, one channel IS
dedicated for reception and the other is used for transmissions and the other commands. Use of only one
DMA channel is possible but may require more complex software, also some RX frames may be lost during
switches of the DMA channel from the receiver to the
transmitter (Those frames will be recovered by higher
layers of the protocol). Also using only one DMA
channel will limit the 82588 loopback functionality. So
the recommendation is to operate with two DMA channels if available. Appendix C describes a method of operating with only one DMA channel without loosing
RX frames.
The IBM PC system board has one 8237 A DMA controller. Channel 0 is used for doing the refresh of
DRAMs. Channels 1, 2 and 3 are available for add-on
boards on the I/O Channel. The floppy disk controller
board uses the DMA channel 2 leaving exactly two
channels (1 and 3) for the 82588. The situation is worse
if the IBM PC/XT is used, since it uses channel 3 for
the Winchester hard disk leaving just the channel 1 for
Series Resonance
-Frequency Will Drift by About 400 PPM from Nominal
-No Capacitors Needed
-Doesn't Meet StarLAN Requirements
.=h
CRYSTALD
Meeting StarLAN 100 PPM Requirements
-Use Parallel Resonance Crystal
-Recommended For Precise Frequencies
-82588 X-TAL Oscillator Stability ± 35 PPM (0-70°C)
L
:E-:E--
Crystal: Load Capacitance
= 20 pF
Shunt Capacitance = 7 pF Maximum
Series Resistance = 30n Maximum
Frequency Tolerance = 50 PPM (0- 70°C)
CI, C2
~
27 pF or 39 pF, 5%
Figure 32. Crystal Specifications
1-374
Cl
82588
C2
231422-81
inter
AP-236
the 82588. On the other hand, the IBM PC/AT has 5
free DMA channels. We will assume that 8237A DMA
channels 1 and 3 are available for the 82588 as in the
case of the IBM PC.
Since the channel 0 of 8237A is used to do refresh of
DRAMs all the channels should be operated in single
byte transfer mode. In this mode, after every transfer
for any channel the bus is granted to the current highest priority channel. In this way, no channel can hog
the bus bandwidth and, more important, the refresh of
DRAMs is assured every 15 microseconds since the refresh channel (number 0) has the highest priority. This
mode of operation is very slow since the HOLD is
dropped by the 8237A and then asserted again after
every transfer. Demand mode of operation is a lot more
suitable to 82588 but it cannot be used because of the
refresh requirements.
5.1.5 INTERRUPT CONTROLLER
The 82588 interrupts the CPU after the execution of a
command or on reception of a frame. It uses the 8259A
interrupt controller on the system board to interrupt
the CPU. There are 6 interrupt request lines, IRQ2 to
IRQ7, on the I/O channel. Figure 34 shows the assignment of the lines. In fact, none of the lines are completely free for use. To add any new peripheral which
uses a system board interrupt, this interrupt needs to
have the capability to share the specific line, by driving
the line with a tri-state driver. The 82588 StarLAN
adapter board can optionally drive interrupt lines
IRQ3, IRQ4 or IRQ5 (An 74LS125 driver is used).
Number
Usage
NMI
Parity
Timer
Keyboard
Reserved
Asynchronous Communications
(Secondary)
SDLC .Communications
SSC (Secondary)
Asynchronous Communications
(Primary)
SDLC Communications
SSC (Primary)
Fixed Disk
Diskette
Printer
0
Whenever the 82588 interfaces to the 8237A in the single transfer mode, there is a potential 8237A lock-up
problem. The 82588 may deactivate its DMA request
line (DREQ) before receiving an acknowledge from the
DMA controller. This situation may happen during
command abortions, or aborted receptions. The 8237A
under those circumstances may lock-up. In order to
solve this potential problem, an external logic must be
used to insure that DREQ to the DMA controller is
never deactivated before the acknowledge is received.
Figure 33 shows the logic to implement this function.
This logic is implemented in the 16L8 PAL.
The 82588 DREQ lines are connected to the IBM/PC
bus through tri-state buffers which are enabled by writing to I/O port 301H. This function enables the use of
either one or two DMA channels and also the sharing
of DMA channels with other adapter boards.
1
2
3
4
5
6
7
Figure 34. IBM PC Hardware Interrupt Listing
588REO~
DREO
DACK
RESET - - - - - - - - - - '
588 REO--.J
DREO--.J
231422-82
Figure 33. DMA Request Logic
1-375
AP-236
5.2 Serial Link Interface
5.2.1 TRANSMIT PATH
A typical StarLAN adapter board is connected to the
twisted pair wiring using an extension caliIe (typically
up to 8 meters-25 ft.). See Figure 35. One end of the
cable plugs into the telephone modular jack on the StarLAN board and the other end into a modular jack in
the wall. The twisted pair wiring starts at the modular
jack in the wall and goes to the wiring closet. In the
wiring closet, another telephone extension cable is used
to connect to a StarLAN HUB. The transmitted signal
from the 82588 reach the on-board telephone jack
through a RS-422 driver with pulse shaping and a pulse
transformer. The received signals from the telephone
jack to the 82588 come through a pulse transformer,
squelch circuit and a receive enable circuit.
The single ended transmit signal on the TxD pin is
converted to a differential signal and the rise and fall
times are increased to 150 to 200 ns before feeding it to
the pulse transformer (this pulse shaping is not a requirement, but proves to give good results). Am26LS30
is a RS-422 driver which converts the TxD signal to a
differential signal. It also has slew rate control pins to
increase to rise and fall times. A large rise and fall time
reduces the possibility of crosstalk, interference and radiation. By the other hand a slower edge rate increases
the jitter. In the StarLAN adapter card, the first approach was used. The 26LS30 converts a square pulse
to a trapezoidal one-see Figure 36. The filtering effect
of the cable further adds to reduce the higher frequency
components from the waveform so that on the cable the
signal is almost sinusoidal. The pulse transformer is for
DC isolation. The pulse transformers from Pulse Engineering-type PE 64382-was used in this design. This
is a dual transformer package which introduces an additional rise and fall time of about 70-100 ns on the
signal, helping the former discussed waveshaping.
I
... ...L.L.L.".L.L.LoU
EXTENSION
CABLE
5.2.2 IDLE PATTERN GENERATION
INTO IBM PC
WIRING
PANEL
IN THE WIRING CLOSET
231422-33
StarLAN requires transmitters to generate an IDLE
pattern after the last transmitted data bit. The IDLE
pattern is defined to be a constant high level for 2-3
microseconds. The purpose of this pattern is to insure
that receivers will decode properly the last transmitted
data bits before signal,decay. Currently the 82588 needs
one external component to generate the IDLE. The operation principle is to have an external shift register
(74LSI64) that will kind of act as an envelope detector
of the TXD line. Whenever the TXD line goes low
Figure 35. Path from StarLAN Board to HUB
82588
-==:.:.;::.a
~Tx.;.;D+_ _
150n.
RISE/FALL
TIMES
231422-34
Figure 36. Wave Shaping
1-376
inter
AP-236
(first preamble bit), the output of the shift register
(third cell) will immediately go low, enabling the RS422 driver, the shift register being clocked by TCLKwill time the duration of the TXD high times. If the
high time is more than 2 microseconds, meaning that
the 82588 has gone idle, the transmitter will be disabled
(See Figure 37). Another piece of this logic is the DRing of the output of the shift register with TXEN-signal which comes from the board control port. This signal completely disables the transmitter. The other purpose of this enable signal, is to make sure that after
power-up, before the 82588 is configured, the RS-422
drivers won't be enabled (TCL~ is not active before
the configure command). See Figures 28, 29 for the
complete circuit.
5.3 RECEIVE PATH
The signal coming from the HUB over the twisted pair
wire is received on the StarLAN board through a lOOn
line termination resistor and a pulse transformer. The
pulse transformer is of the same type as for the transmit
side and its function is dc isolation. The received signal
which is differential and almost sinusoidal is fed to the
Am26LS32 RS-422 receiver. As seen from Figure 38
the pulse transformer feeds two RS-422 receivers. The
one on the bottom is for squelch filtering and the one
above is the real receiver which does real zero crossing
detection on the signal and regenerates a square digital
waveform from the sinusoidal signal that
~-~, oo~~
is received. Proper zero crossing detection is very essential; if the edges of the regenerated signal are not at zero
crossings, the resulting signal may not be a proper
Manchester encoded signal (self introduced jitter) even
if the original signal is valid Manchester. The resistors
in the lower receiver keep its differential inputs at a
voltage difference of 600 mY. These bias resistors ensure that the output remains high as long as the input
signal is more than -600 mY. It is very important that
the RxD pin remains HIGH (not LOW or floating)
whenever the receive line is idle. A violation of this may
cause the 82588 to lock-up on transmitting. Remember,
that based on the signal on the RxD pin, the 82588
extracts information on the data being received, Carrier
Sense and Collision Detect. This squelch of 600 m V
keeps the idle line noise from getting to the 82588. Figure 39 shows that when the differential input of the
receiver crosses zero, a transition occurs at the output.
It also shows that if the signal strength is higher than
-600 mY, the output does not change. (This kind of
squelching is called negative squelching, and it is done
due to the fact that the preamble pattern starts with a
going low transition). Note that the differential voltage
at the upper receiver input is zero when the line is idle.
The output of the squelch goes to a pulse stretcher
which generates an envelope ofthe received frame. The
envelope is a receive enable signal and is used to AND
the signal from the real zero crossing receiver before
feeding it to the Rill pin of the 82588.
18-22
TX - FAST CLOCKS
-
rru. . ____-__-_-_-_-_-_-_-__-_-_~
__LA_C_Si_:_~I_T,.,~
231422-83
Figure 37. Idle Generation
1-377
inter
AP-236
FILTERING OF
HIGH FREQUENCY NOISE
:1J11"--t°~t--t---ot
RECEIVER/ZERO
CROSSING
>--------------+ DATA
t
TERMINATION
>-----1
TIME
SQUELCH
ENVELOPE
IDLE
DETECT
CARRIER
(OPTIONAL)
INPUT---~""
-------~
DATA
.---------------CARRIER - - - - - _ - '
3 EDGES
U-
1.6 )'S
Figure 38. Input Ports
600
400
~
«
;:::
z
'"'"....
'"
....
200
mV
is
'""'
"'-
0
-200
-400
-600
....
"'''oz
'"
i3~fS~
ffi!:;
:::>0:::>
~~o
e>!:;
iii!:;
:go
z"5ffi
FILTERED-OUT
BY SQUELCH
OH
VV
OL
VOH
o
17
15
13
11
~::~
",Ie
~""')(21
c
..
5
'fi(f
.....
0
..
AD?
AD6
AD6
AD"
AD'
AD2
ADI
ADe
nn
CO
I:)
~
INTI
~~~J!:
~
CO
CO
..
..
S-
U2
l'
I\)
Ug
CO)
CD
~
G)
III
~
B
0
CO
I\)
(II
CO
CO
_SU
.704L5191
!.§.
R.
.il
2 2.
•
18
~
I HTEL IICO TEQIIII CAL MlllC£TIIIG
19.8 PRAIRIE CITY RD FOLson CA .5688
RS
nA )(
lli.
.4
A
SIIIIELOI LOGI C
R&
oee
u.
R2
2 2.
••e
. .1l1li Itrl'EIIFACE '1'0 8ZS88
DRA.,N
••
CAlIRI ER J!ItUELIIPE
8.
s
IA
TITL_
BELL
•
iiiTE
FILE
1IIII.DNG
ColIF-.
231422-85
l
2
~
8
.16-92
J6-28
J6-13
J5-16
.IS-aS
.16-3.
Js-ae
"'1'1
i!i
...
C
CD
.".
~
e
J6-14
.15-19
.16-21
.J5-23
JS-25
.]5-27
.16-29
JS-31
.16-88
.16-22
.-iID2
HD2
Ie
(jj
l:J
~
II l
III
n
CD
0'
-'
~
"HZ
___
DIP
.
a
U3
~.e
II I
2J
C.5
1,6 :.5~~~_.:~
~ II .
)0
"U
N
e,,)
Gl
CR'i'STEk
CCe-ale-Sa
C»
N
UI
C»
C»
I HTEL DCO TEOIIII au. ItARXETIIIG
lS88 PRAIRIE
env
RD FOLSO" CA 86638
T1TL_
SBX IItTEIIFACE 111 8ZS88
CARRIER EH.IELOPE
BRAUN
BY
IELL
DAtE
7
FILE
SBX.DWG
-iOF 1
5
231422-86
intJ
AP-236
6.0 THE StarLAN HUB
6.1 A StarLAN Hub for the IBM/PC
The function of a StarLAN HUB is described in section
2.0. Figure 42 shows a block diagram of a HUB. It
receives signals from the nodes (or lower level HUBs)
detects if there is a collision, generates the collision
presence signal, re-times the signal and sends it out to
the higher level HUB. It also receives signals from the
higher level HUB, re-times it and sends it to all the
nodes and lower level HUBs connected to it. If there is
no higher level HUB, a switch on the HUB routes the
upstream received signal down to all the lower nodes.
The functions performed by a HUB are:
Figure 43 shows the implemention of a 5/6 port HUB
for the IBM/PC.
The idea of the following design is to show a HUB that
plugs into the IBM/PC backplane. This HUB not only
gets its power from the backplane, but also enables the
host PC to be one NODE into the StarLAN network.
This embedded node scheme enables further savings
due to the fact that all the analog interface for this port
is saved (receiver, transmitter, transformer, etc).
This kind of board would suit very much a small cluster topology (very typical in departments and small offices) where the HUB board would be plugged into the
FILE SERVER PC (pC/XT, PC/AT).
'Receiving signals, squelch
'Carrier Sensing
• Collision Detection
'Collision Presence Signal Generation
'Signal Retiming
'Driving signals on to the cable
• Jabber Function
'Receive protection Timer
The HUB design doesn't implement the Jabber and the
protection timers as called by the IBASE5 draft standard. Those functions are optional and were not closed
during the writing of this AP-NOTE. This HUB does
implement the RETIMING circuit which is an essential requirement of StarLAN.
Figures 44 to 49 show a complete set of schematics for
the HUB design.
TRANSMIT PAIR
#1
~II
SQUELCH
+
CARRIER
SENSE
+
~II
TRANSMIT PAIR
RECEIVE PAIR
COlL. DET.
+
+
#N
#
1
~II
~II
RECEIVE PAIR
TO HIGHER
lEVEL HUB
JABBER
PROTECTION
TIMER
HHUB
SIGNAL
0 - - - - - 1 RETIMING
IHUB
#N
231422-40
Figure 42. StarLAN HUB
1-382
inter
AP-236
PHONE JACKS
231422-87
• Low Cost HUB, Uses IBM/PC Power Supply
• 82588, Embedded Port Savings
Transformers
422 Drivers
• Functional StarLAN Cluster, For Low Cost/Small Topologies
Figure 43. IBM/PC Resident HUB
1-383
_.
8
$
4
II
-
~
DI
!.!.!.
!.!!
ct
C8"HZ
1~LS32
.!!!
ci
"II
c..,
en
ca'
C
...
CD
..
""" """
~
!!!.
.r:-l.
~
PULSE TX
14
8
I ~~?~K
2
?!I:;.t_!::::~?
I
~i
~
2
-~J 15
74L884
S ~_4
-T
EB
Ic
~
"---1"7
I
RC
+$U
r--I
PULSE TX
~'Rll
+SU
EC
2 2K
!£!.
~
BI
l!nH
RD
'ED
RD.
RD2
A
IICO T£CHIIICAL ttARlCBTllIG. IHTBL
TITLE
IIIPUT PAl RS
DRAHM
B.
BELL
jjffi"
FtL"E
HUB1
D~6
1 OF
6"
231422-88
)0
'tI
•
I\)
Co)
0)
l
4
_su
C8rlHZ
D
rv
--..
---.0....
••
•
_.7
.2
••
••••
04
-04
•7
•8
••
C2HHZ
7
S
4
a
2
-0 •
u.
-lORD
-
: : : __ -lOUR
:!!
~
CD
U1
CO
C
;
817
816
....UI 1
~
t:J
1
-DACKS
-0.CK1
.
.•
'V
74LS125
i!la
+RESET
112
+AS
A22
A28~
• [?uUI2
t>-:i:ii
:~:
g
:~~
g: g-••
!Alai
AU
..
III III
+A6
+A"
+AEH
2j
~·---~III~··i
8
,D
Ul.
••
74LS12S
1NTI26
2
[?uU12•
I
1
14LSa2
~8
3>
+DRQl __ 81e
~
8
I
+DRQ3
I I
t> 816
I-·RQS to> 12.
I
~Ot.lR
1IRH
11~:NU9~
___
I.
?LSI?S
U8-IS
U8-17
4~1
5
Ui="i'6""t2
04
uo::i'SIi" 1
fiJf
•
----'l!7
•
,
DCO TBCHtII CAL 1tfIIIICETI1IG.
nrrEl.
,•
TITLE
BZ58II III'IEIIFACE
BRAUN
.y
S
•
FTLE
IIELL
HUB2 Dwe
iiiii'
~
231422-89
•
N
W
0»
l
~
8
D
COLLI SI lilt PA'IT£J1It GDIEIIATI lilt
~
~
ex>
0)
""
c...
...
I I
UPIHP
):0
C'
;e
CD
E.
0)
ED
.1
EC
ED
EE
R.
R.
RC
RD
RE
RF
4
s
6
7
8
~
••
C
D
E
,
11
13
--w,---,~
-"'-'---
•
HUB COLLISIIIIt LOGIC
DCO TECHIII CAL ItAIIICETItIG. I HI'EL
TITLE
HUB COLLISIIIIt LOGIC
DRAUH
IY
BELL
DAfE
5
~
FILE
HUBS Due
8 OF So
3
231422-90
--
..
6
II
PULSE DESCRII"IIHATOR
c(
D
UPIHP
FIFO
C81"1HZ
THRESHOLD DETECTOR
l!!"R1'
UPDAT
el
Ie
FIFO
74L5224
•
1
2
'V
."
......
IC
~ c
CX>
CD
'" ....
1
=
3
OR 14
au 13
QI 12 LSOUT
Q2 11
us 18
r
CONTROL PAL
II
U24
EHD OF FRAME DETECTOR
AND (DLE GENERATION
II
9~
1 DCO TIICHIII CAL
IB
~
twIICETlHG. I ItTEL
I"
TITLE
RETIHING LOGIC ( UP PA'D4 )
FILE
HUB .. B... a
4 OF 6
5
4
1
231422-91
.
~
'tI
N
(0)
(I)
l
4
PULSE DESCRJMJHATOR
D
.~
,~
I
III
""
.....
FIFO
:~JIi .
THRESHOLD DETECTOR
I&L8
DOIolWDAT
c
FIFO
74L522"
nr.t
3
PULSE RECONSTRUCTION
•
~
(I)
:!!
c:
CONTROL PAL
ID
:al'
I\)
74LS161
P
TC 16
CiJ
8
U33
•
Q),
)
B
D
1
= ~~
-'3
.5"
w
g•• :
EP
ET
Q)
QJ 13
Q2 12
03 11
~
:IlIIImn
END OF FRA"E DETECTOR
AND IDLE 6EHERAr [ON
A
DCO 'DICIIIIICAL
~1tG.
INTEL
tITLE
RETI"11tG LOGIC ( . . . . IWI1I )
DRANN
.y
BELL
FI1.E
HUBS Dlola
iiiff
5
4
231422-92
l
4
IIDn
C8MHZ
URQ
D
11 DOWHINIi
UPDAT
>
SI.&1-12 SWITCH
DIP PACKAGE
c
a ..,
~
U4.
l",!!J W
::ll::JRE
•
l2
13 r&;;'1
RxD_
~.
c
~
8·~1I~·1:
::::
tXt1
,~t_~~"
"T'I
~
(Xl
co
"~.
:I>
is'
e::
iil
8·~1I~·14
~
-,.. ........
~
CD
.Bl
'B2
TX21
N
•
B
~
~
"'T'-'
.......
•
8
~II~
tX31
•
14
Rei
1
RC2
:
DCO 'lUatICAL HARICETIItG, Itnm.
A
5,F
TITLE
0I1I'PUT PAIRS
BRA ... N
BV
7
FILE
BELL
HUB' DWe
'ii'ATE
i""""i'F"i'
4
231422-93
AP-236
6.1.1 HUB INPUT PORTS
Figure 38 shows a block diagram of an input port. Differently than the implementation in Figure 29 the HUB
input port is potentially more complex than the NODE
input port. The reason being that the HUB is a central
resource and much more sensitive to noise. For example, if the NODE input port would falsely interpret
noise on an IDLE line as valid signal, the worst case
situation would be that this noise would be filtered out
by the 82588 time squelch circuitry, on the HUB by the
other hand, this false carrier sense could trigger a COLLISION and a good frame (on another input) potentially discarded.
As shown in Figure 38 immediately after the termination resistor, there is a HIGH FREQUENCY FILTER
circuit. The purpose of this circuit is to eliminate high
frequency noise components keeping noise jitter into
the allocated budget (about ± 30 ns). A 4 MHz two
pole butterworth filter is being recommended by the
IEEE 802.3 IBASE5 task force (see Figure 50).
The time squelch for the NODE board is implemented
by the 82588 (see section 3.7) this circuit makes sure
that pulses that are shorter than a specified duration
will be filtered out.
The other components of the block diagram were explained in section 3.0.
The HUB desigu doesn't implement the HIGH FREQUENCY FILTER and TIME SQUELCH. In the
HUB design as an output of each input port, two signals are available: Rn, En, (RA, RB ... , EA, EB ... ).
The Rn signals are the receive data after the zero crossing receivers. The En lines are CARRIER SENSE signals. The HUB design supports either 5 or 6 input
ports, dependent upon if it is configured as IHUB or
HHUB. Port RE, EE (Figure 49) is bidirectional, configurable for either input or output. Port RF, EF_ is
the embedded 82588 port, and doesn't require the analog circuitry (EF is inverted, being generated from the
RTS_ signal).
RXVE~R_ _..._ _ _ _ _ _ _ _•... llf
i XX ~:~TED
110A
231422-94
Figure 50. Receiver High Frequency Filter
1-390
intJ
AP-236
6.1.2 COLLISION DETECTION
Rn and En signals from each channel are fed to a 16L8
PAL, where the collision detection function is per-
formed.
Collision Detection in the StarLAN HUB is performed
by detecting the presence of activity on more than one
input channels. This means if the signal En is active for
more than one channel, a collision is said to occur. This
translates to the PAL equations:
COLLISION DETECTION:
CDT = I(EA&IEB&!EC&!ED&IEE&EF_ #
!EA&EB&IEC&IED&IEE&EF_ #
IEA&IEB&EC&IED&IEE&EF_ #
!EA&IEB&IEC&ED&!EE&EF_ #
!EA&IEB&IEC&!ED&EE&EF_ #
! EA& !EB &!EC& !ED& lEE & !EF_ #
lEA & IEB & IEC & !ED & !EE & EF_);
(only EA active)
(only EB active)
(only EC active)
(only ED active)
(only EE active)
(only EF active)
(none ofthe inputs active)
COLLISION DETECTION SR-FF:
COLLEN_ = ! (CDT # COLLEN);
(set with collision)
COLLEN_ = ! ( RESET_ # COLLEN_ #
( !CDT & lEA & !EB & !EC & !ED & lEE & EF_);
(reset when aU inputs inactive)
RECEIVE DATA OUTPUT:
RCVDAT = (
(RA # lEA) & ( RB # !EB ) & ( RC # !EC ) &
(RD # lED) & (RE # !EE)&(RF # EF_»;
( output is high if no active input)
1-391
inter
Ap·236
Manchester encoding. Section 3.5 shows that the CPS
has missing mid-cell transitions occurring every two
and a half bit cells. These are detected as Manchester
code violations. Thus, the StarLAN node is presented
with collision detection indications every two and a half
ms. This results in fast and reliable detection of collisions. CPS has a period of5 ms.
The COLLEN signal once triggered will stay active until all inputs go quiet. This signal is used externally to
either enable passing RCVDAT or the collision presence signal (CPS) to the retiming logic. An external
multiplexer using 3 nand gates is used for this function.
Note that in this specific implementation the CPS/
RCVDAT multiplexer is before the retiming logic,
which is different from Figure 42 diagram. StarLAN
provides enough BIT-BUDGET delay to allow the CPS
signal to be generated through the retiming FIFO. In
this HUB implementation it was decided to use this
option to make sure that the CPS startup is synchronized with the previously transmitted bit as required by
the IBASE5 draft.
One may wonder why such a strange looking signal was
selected for CPS. The rationale is that this CPS looks
very much like a valid Manchester signal-edges are
0.5 or 1.0 microsec. apart-resulting in identical radiation, cross-talk and jitter characteristics as a true Manchester. This also makes the re-timing logic for the signals simpler-it need not distinguish between valid
Manchester and CPS. Moreover, this signal is easy to
generate.
6.1.3 THE LOCAL 82588
As described before, the purpose ofthe local 82588 is to
enable the Host IBM/PC to also be a node into the
StarLAN network. The interface of this 82588 is exactly similar to the one explained in section 5. The RTS_
signal serves as the carrier EF_ signal, and TXD as
RF signal. This local node interfaces to the HUB without any analog interface which is a significant saving.
6.1.4 THE COLLISION PRESENCE SIGNAL
The Collision Presence Signal (CPS) is generated by the
HUB whenever the HUB detects a collision. It then
propagates the CPS to the higher level HUB. The CPS
signal pattern is shown in Figure 51. Whenever a StarLAN node receives this signal, it should be able
to detect within a very few bit times that a collision
occurred. Since the nodes detect the occurrence of a
collision by detecting violations in Manchester encoding, the CPS must obviously be a signal which violates
I 2t It I
2t
A few important requirements for CPS signal are: a) it
should be generated starting synchronized with the last
transmitted bit cell. CPS is allowed to start either low
or high, but no bif cell of more than 1 microsecond is
allowed (Avoid false idles, very long "low" bits). b)
once it starts, it should continue until all the input lines
to the HUB die out. Typically, when the collision occurs, the multiplexor in the HUB switches from RCV
signal to the CPS. This switch is completely asynchronous to the currently being transmitted data, and by
such may violate the requirement of not having bit cells
longer than 1 J.l-s. In order to avoid those long pulses,
the output of the CPS/RCVDAT multiplexer is passed
through the retiming circuitry which will correct those
long pulses to their nominal value. The reason for restriction b) is to ensure that the CPS is seen by all nodes
on the network since it is generated until every node
has finished generating the Jam pattern.
I 2t It i t =0.5 )L5
I--S)L5 PERIOD-i
• MISSING MID-CELL TRANSITION
231422-42
• Collision Presence Signal (CPS) is generated by the HUB when it detects more than one input line active.
• CPS violates Manchester encoding rules-due to missing mid-cell transitions-hence is detected as a collision by the DTE (82588).
Choice of Collision Presence Signal
• It is a Manchester look-alike signal-edges are 0.5 or 1.0 J.l-s apart.
- Identical radiation, crosstalk and jitter characteristics
- Eases retiming of the signal in the HUB
• It is easy to generate-1.5 TTL pack, or in a PAL
Figure 51. Collision Presence Signal
1-392
AP·236
CPS is generated using a 4-bit shift register and a flipflop as shown in Figure 52. It works off a 2 MHz clock.
A closer look at the CPS waveform shows that it is
inverse symmetric within the 5 ,...S period. The circuit is
a 5-hit shift register with a complementary feedback
from the last to the first bit. The bits remain in defined
states (01100) till collision occurs. On collision the bits
start rotating around generating the pattern of
0011011001, 0011011001, 00110 ... with each state
lasting for O.S ,...s.
o
6.1.6 RETIMING CIRCUIT, THEORY OF
OPERATION
o
COLLISION
. . - - - - , PRESENCE
SIGNAL
Q
COLLISION
231422-43
Figure 52. COllision Presence
Signal Generation
6.1.5 SIGNAL RETIMING
Whenever the signal goes over a cable it suffers jitter.
This means that the edges are no longer separated by
the same 0.5 or 1.0 ,...S as at the point of origin. There
are various causes of jitter. Drivers, receivers introduce
some shifting of edges because of differing rise and fall
times and thresholds. A random sequence of bits also
produces a jitter which is called intersymbol interference, which is a consequence of different propagation
delays for different frequency harmonics in the cable.
Meaning short pulses have a longer delay than long
ones. A maximum of 62.5 ns of jitter can accumulate in
a StarLAN network from a node to a HUB or from a
HUB to another HUB. The following values show what
are the jitter components:
Transmitter skew
cable Intersymbol interference
Cable Reflections
Reflections due to receiver
termination mismatch
HUB fan-in, fan-out
Noise
Total
a result of jitter, may no longer be decodable. The process of either re-aligning the edges or reconstructing the
signal or even re-generating the signal so that it once
again "looks new" is called re-timing. StarLAN requires for the signal to be re-timed after it has travelled
on a segment of cable. In a typical HUB two re-timing
circuits are necessary; one for the signals going upstream towards the higher level HUB and the other for
signals going downstream towards the nodes.
±10ns
±9ns
±8ns
±5ns
±5ns
±25.5
±62.5ns
It is important for the signal to be cleaned up of this
jitter before it is sent on the next stretch of cable because if too much jitter accumulates, the signal is no
longer meaningful. A valid Manchester signal would, as
This section will discuss the principles of designing a
re-timing circuit. Figure 53 shows the block diagram of
a re-timing circuit. The data coming in is synchronized
using an 8 MHz sampling clock. Edges in the waveform
are detected doing an XOR of two consecutive samples.
A counter counts the number of 8 MHz clocks between
two edges. This gives an indication of long (6 to 10
clocks) or short (3 to 5 clocks) pulses in the received
waveform. Pulses shorter than 3 clocks are filtered out.
Every time an edge occurs, the length-{S)hort or
(L)ong-of the pulse is fed into the FIFO. Retiming of
the waveform is done by actually generating a new
waveform based on the information being pumped into
the FIFO. The signal regeneration unit reads the FIFO
and generates the output waveform out of 8 MHz clock
pulses based on what it reads, either short or longs. In
summary every time a bit is read from the fifo, it indicates that a transition needs to occur, and when to fetch
the next bit. When idle the output of the retiming logic
starts with a "high" level.
FIFO
empty
Output
...... 1111
S
S
0000
L
L
00000000
1111
11111111
It can be seen that the output always has edges separated by 4 or 8 clock pulses-O.5 or 1.0 ,...s.
The FIFO is primarily needed to account for a difference of clock frequencies at the source and regeneration
end. Due to this difference, data can come in faster or
slower than the regeneration circuit expects. A 16 deep
FIFO can handle frequency deviations of up to 200
ppm for frame lengths up to 1600 bytes. The FIFO also
overcomes short term variations in edge separation. It
is essential that the FIFO fills in up to about half before
the process of regeneration is started. Thus, if the regeneration is done at a clock slightly faster than the
source clock, there is always data in the FIFO to work
from. That is why the FIFO threshold detect logic is
necessary, which counts 8 edges and then enables the
signal regeneration logic.
1-393
inter
AP-236
Example:
Input Waveform
'... 11110001111000000011111111110001111100 ...
I
Input into
the FIFO
I
<8> <8>
I
I I
I
. <8>
Regenerated Output:
... 111110000111100000000111111110000111 ...
Output:
FIFO:
I I I
I
I I
<8> <8>
INPUT
DATA
--+
<8> <8>
PULSE WIDTH
DISCRIMINATOR
EDGE
DETECTOR
SYNCHRONIZER
8MHZ~LOCK
INCREMENT EDGE ~
COUNTER
• FIFo ACCOMMODATES FOR FREQ •
DR IFTS (SPEC 100 PPM)
LOAD!
FIFO
FIFO
THRESHOLD
DETECT
• MAX DRIFT:
(1 500 BYTES x 8) x 200 PPM = 2.43 BT
SHORT/LONG
INFO
FIFO
FIFO OUTPUT
ENABLE SIGNAL
REGEN ERATlON
SIGNAL
REGENERATION
--+ OUTPUT
231422-95
Figure 53. Retiming Block Diagram
6.1.7 RETIMING CIRCUIT IMPLEMENTATION
The retiming circuit implementation can be seen in Figures 47, 48. Both figures implement exactly the same
function, one for the upstream, and the other for the
downstream. The retiming circuit was implemented using about 8 SSI, MSI TIL compOnents, one fifo chip
and one PAL. The purpose of implementing this function with discrete components was to show the implementation details. The discussion of the implementation will refer to Figure 47 for unit numbers.
The signal UPIMP which is an output of the HUB
multiplexing logic, is asynchronous to the local clock.
This signal is synchronized by two flip-flops and fed
into an edge generation logic (basically an XOR gate
that compares the present sample with the previous
one). On every input transition a 125 ns pulse will be
generated at the output of the edge detector (U28). This
pulse will reset the 74LS161 counter that is responsible
for measuring pulse widths (in X8' clock increments).
The output of the pulse discriminator will reflect the
previous pulse width every time a new edge is detected.
The following events will take place on every detected
edge:
1. U26 which is the threshold detector will shift one
"1" in. The outputs of U26 will be used by the control PAL to start the reconstruction process.
2. The output of U23 whis:h specifies the last pulse
width will be input into the control PAL for determining if it was a long or short pulse. The result of
this evaluation will be the LSIN signal which will be
loaded into the fifo (U22).
U22 is the retiming FIFO, it is 16x4 fifo, but only one
bit is necessary to store the SHORT/LONG information.
1-394
inter
AP-236
CONTROL LOGIC PAL functions (U25):
Terminal count of the reconstruction
counter, indicating that reconstruction
of a new bit will get started.
Output of the FIFO indicating, that the
FIFO is empty and that IDLE generation can get started.
CNTTC:
Signals definition:
INPUTS:
PDO.. PD3:
EDD_:
THRESH:
CNTEN:
CNTEND:
OUTDAT:
RESET_:
OR:
Outputs of the pulse descriminator, indicate the width of the last measured
pulse.
Output of the edge detector, pulse of 125
ns width, indicates the occurrence of an
edge in the input data.
Output of the threshold logic, indicates
at least one bit was already received.
Output of the Threshold logic, indicates
7 bits have been loaded into the FIFO,
and that signal reconstruction can begin.
The same signal as before delayed by one
clock.
Output of the retiming logic, is feedback
into the PAL to implement a clocked
T-FF.
Resets the retiming logic.
OUTPUTS:
LDFIFO_:
Loads SHORT/LONG indications into
the FIFO.
Indicates SHORT/LONG
Loads FIFO SHORT/LONG output
into the reconstruction counter.
Together with the external U21 flip-flop
and OUTDAT implement a clocked
T-FF.
LSIN:
CNTPE_:
ODAT:
Loading the FIFO will be done every time there is an
edge, we have passed the one bit filter threshold level,
and the pulse width is longer than two 8X clocks. This
one bit threshold level serves as a time domain filter
discarding the first received preamble bit.
LDFIFO_ = ! ( PDl "" PD2 "" PD3 ) &: !EDD_ &: THRESH ) ;
Whenever there is an edge, we are above the first received bi t threshold
and the pulse "idth is longer than '1' the fifo is loaded.
LSIN
=! (PD3 "" (PD2 &:
PD~)
"" (PD2 &: PD1»;
Every pulse longer than 8 is considered to be a long pulse.
CNTPE_ = ! ( (CNTEN &: !CNTEND) "" CNTTC );
The reconstruction counter is loaded in two condi tions I
Whenever eNTEH oomes aoti ve. meaning the FIFO threshold ot seven was exoeeded.
Whenever the terminal count of U24 is active meaning a new pulse is going to be reconstructed.
ODAT
= !RESET_ "" (!CNTPE_ &: !OUTDAT)
"" ( CNTPE_ &: OUTDAT)
"" (!CNTPE_ &: lOR)
(A)
(B)
(C)
Minterm (Al and (Bl implement a T-FF. whenever eNTPE.is 'low'
ODAT "ill toggle. The external U21is part of this flip-flop.
Minterm (el insures the output of the flip-flop will go inactive
'high' when the FIFO is empty. RESET. oauses the output to go
"high' on initialization.
1-395
inter
will be started, and Tl will time out after 25 to 50 ms.
T2 will time-out after 51 to 100 ms. During T2 time,
after Tl expired, the HUB will send the CP-PAT~
TERN informing any jamming stations to quit their
transmissions. If on T2 time-out there are still jamming
ports, their input is going to be disabled. A disabled
port, will be reenabled whenever its input becomes
again active and the downward side is idle.
U24 as mentioned is the reconstruction counter. This
counter is loaded by the control logic with either 8 or
12, it counts up and is reloaded on termjnal count. Essentially generating at the output n9minallength longs
and shorts.
U22 is the retiming FIFO, and its function as mentioned is to accommodate frequency skews between the
incoming and outgoing signal.
U27 is the IDLE generation logic. The purpose of this
logic is to detect when the FIFO is empty, meaning that
no more data needs to be transmitted. On detection of
this event this component will generate 2 ms of IDLE
time. On the end of IDLE the whole retiming logic will
be reset.
The following is an explanation of the requirement that
the downward side be idle to reenable an input port.
Consider the case of Figure 54. The figure shows a two
port HUB. Port A has two wires Au, Att for the up and
down paths. Port B has Bu, Bd respectively. Port C is
the output port, that broadcasts to the other HUBs
higher in the hierarchy. Consider the case as shown,
where Bu and Bd are shorted together. Suppose the case
that port Au is active. Its signal will propagate up in the
hierarchy through
and come down from Cd to Ad,
and Bd' Due to the short between Bd and Bu the signal
will start a loop, that will first cause a collision and jam
the network forever. This kind of fault is taken care of
by the jabber circuitry. Tl and T2 will expire, causing
the jabber logic to disable Bu input. Upon this disabling
Bu is going to go Idle and be a candidate for future
enabling. Suppose now that Au is once again active. If
the reenable condition would not require Cd to be
IDLE, Bu would be reenabled causing the same loop to
happen once again. Note that in this case Cd will be
active before Bu causing this port to continue to be
disabled and avoiding the jamming. situation (Figure
55) gives a formal specification of the jabber function).
en
6.1.8 DRIVER CIRCUITS
The signal coming out of the RETIMING LOGIC is
fed into 26LS30s and pulse transformers to drive the
twisted pair lines (~e section 5.0 for details).
6.1.9 HEADER/INTERMEDIATE HUB SWITCH
As seen on Figure 43 this hub can be configured as
either an intermediate hub, or a Header one. One of the
phone jacks, more specifically JACK # 5 is either an
input port or an output one. In order to implement this
function, an 8 position DIP SWITCH (SW1) is used.
The phone jacks are marked with UD, DO notation,
meaning upstream data, and downstream data respectively. As specified in the StarLAN IBASE5 draft
NODES transmit data on UD pair, and HUBS on the
DO pair. Switch SWI has the function to invert UD,
DO in PHONE JACK #5 to enable it to ·be either
input or output port.
6.1.10 JABBER FUNCTION
This design does not implement the jabber unit but it is
described here for completeness. IEEE 802.3 does not
mandate this feature, but it is "Strongly Recommended". The jabber function in the HUB protects the network from abnormally long transmissions by any node.
Two timers Tl, T2 are used by the JABBER function.
They may be implemented either as local timers (one
for each HUB port) or as global timers shared by all
ports. After detecting an input active, timers Tl, T2
1-396
231422-96
Figure 54. Jabber Function
AP·236
Power On
'"
_____ ~~B!I!..I!?L..E _____
INPUT (X) = active
+- Walt for Input oc:tlv •.
I.
+'
JABBER WATCH
.-st~rt_jo-bbe;n';.1-
-----
+- Input Is active,
activate timers 11. T2 .
If Input goe' Idle, then It was a
normal transmIssion. Otherwise If
• storLjobber Time 2
INPUT (X) = Idle
I
_____
!
Jobber Timer 1 expires, the transmIssion
JabberTimo Ldon •• INPUT(X) =actlv.
Is megol. Start generating collision
:!.A~B..EI!.. :!.A~
pattern In .tate JABBER JAM.
_____
• Jobber_collision
- , probatlon_alternotlve'
• INPUT (X) = idle
+- VarIable probation_alternative Indicates
1
two possible ways of Implementing the function.
Implementation of
«(jabber Time Ldone + INPUT(UPPER) = Idle)
.INPUT (X) = active
+ (probation altornatlv"INPUT (X) = Idle)
- T2 expires.
-INPUT(UPPER) = Idle .INPUT (X) = actlv•
It means thot the current HUB was
SHUTorr by Q higher hierarchy one.
This one will also SHUTOrr with the
purpose that a jamming input be
DISABLED at the lowest possible level.
.1INPUT (X) = Idle
-INPUT(X)" idle
Two alternatives are allowed:
Go back to JABBER IDLE, or
go to the SHUTOFF stot••
JABBER PROBATION
.-dj;;bj;,..:inP~t (x)
one Is allowed.
Conditions for going to stat. JABBER SHUTOFF
JABBER SHUTOFF
• -dj;a-bj;,..:in-p~t (X) - - - - - - -
INPUT (X) = actlve .INPUT(UPPER) = actlve1.
elth~r
-------
I INPUT (X) = active .INPUT(UPPER) = Idle
' - On stote JABBER SHUTOFF, tho
Input i~ disabled.
' - - - Input will be reenablect [f Input Is active,
and the upper port Is quiet.
231422-99
Figure 55. Jabber State Diagram
6.1.11 HUB RECEIVER PROTECTION TIMER
On the end of a transmission, during the transition
from IDLE to high impedance state, the transmitter
will exhibit an undershoot and/or ringing, as a consequence of transformer discharge. This undershoot!
ringing will be transmitted to the receiver which needs
to protect itself from false carriers due to this effect.
One way of implementing this protection mechanism is
to implement a blind timer, which upon IDLE detection will "blind" the receiver for a few microseconds.
Causes of the transmitter undershoot/ringing:
1. Difference in the magnitudes of the differential output voltage between the high and the low output
stages.
2. Waveform assymmetry due to transmitter jitter.
3. Transmitter and receiver inductance (transformer
L).
All the described elements will contribute to energy
storage into the transformer inductor, which will discharge during the transition of the driver to high impedance.
The blinding timer is currently defined to be from 20 to
30 microseconds for the HUBs, being from 0 to 30 microseconds for the nodes (optional). The 82588 has
built-in this function. It won't receive any frames for an
inter-frame-spacing (IFS) from the idle detection.
6.1.12 HUB RELIABILITY
Since the StarLAN HUBs form focal points in the network, it is important for them to be very reliable, since
they are single points of failure which can affect a number of nodes or can even bring down the whole network. StarLAN IBASE5 draft requires HUBs to have
a mean time between failures (MTBF) of at least 5
years of continuous operation.
4. Two to three microseconds of IDLE pattern.
1-397
AP-236
7.0 SOFTWARE DRIVER
7.1.1 DOING I/O ON IBM PC
The software needed to drive the 82588 in a StarLAN
environment is not different from that needed in a generic CSMAlCD environment. This section goes into
specific procedures used for pperations like TRANSMIT, RECEIVE, CONFIGURE, DUMP, ADDRESS
SET-UP, etc. A special treatment will be given to interfacing with the IBM PC-DMA, interrupt and I/O.
The safest way to use the PC monitor as an output
device and the keyboard as the input device is to use
them through DOS system calls. The following is a set
of routines which are handy to do most of the I/O:
key$stat
-to find out if a new key has been
. pressed
keyin$noecho -to read a key from the keyboard
char$out
-to display a character on the screen
-to display a character string on the
msg$out
screen
-to read in a character string from the
line$in
keyboanJ
Since all the routines were written and tried out in
PLM-86 and ASM-86, all illustrations are in these languages.
The following software examples are pieces of an 82588
exerciser program. This program's main purpose was to
exercise the 82588 functionality and provide the functions of traffic generation and monitoring. By such the
emphasis was on speed and accuracy of statistics gathering.
7.1 Interfacing to IBM PC
The StarLAN board interfaces to the CPU, DMA controller and the interrupt controller on the IBM PC system board. The software to operate the 82588 runs on
the system board CPU. The illustrated routines in this
section show exactly how the software interface works
between the system resources on the IBM PC and the
StarLAN board.
Ids dX,STRING_POINTER
mov ah,09h
int 2lh
The exact semantics and the protocol for doing these
functions through DOS system calls is shown in the
listing in Figure 56. Refer to the DOS Manual for a
more detailed description. To make a DOS system call,
register AH of 8088 is loaded with the call Function
Number and then, a software interrupt (or trap) 21 hex
is executed. Other 8088· registers are used to transfer
any parameters between DOS and the calling program.
The code is written in Assembly language for register
access. Let us see an example of the 'msg$out' routine:
load pointer to string in reg. ds:dx
9 function number for string o,p
DOS System Call
=
These procedures are called from another module, written in a higher level language like PLM-86. The parameters
are transferred to the ASM-86 routines on the stack.
Examples of using the I/O routines:
=
KEY_STATUS
key$stat;
NEW_KEY = keyin$noecho;
call line$in(@LINE_BUFFER) ;
call char$out(CHAR_OUT) ;
call msg$out (@ ( 'THIS IS A MESSAGE. $') );
,.
/*
,"
,.
/*
/*
1-398
*'*'
*'
"'*'
INQUIRE KEYBOARD STATUS
INPUT NEW KEY
STRING INPUT
TO OUTPUT CHAR_OUT ON SCREEN"'
OUTPUT STRING
NOTE $ TERMINATOR
inter
AP-236
.
..
/ ------ ----- ------------ -- - ---------------------- -- ------------- ----------_ /
Deolarations for ezternal IBli PC I/O routines
'/
/ .. ----------------------------------------------------- --------------------- */
/'
key' stat : prooedure byte ezternal;
end key' stat ;
/' key status routine ,/
!:i{Si:!~~~:~~oE~~osdure byte ezternal;
char'out: prooedure(ohar) ezternal;
deolare char byte;
end
out ;
/' oonsole input routine '/
/' oonsole output routine 'I
char'
meg.out: proosdure(msgSptr) ezternal;
deolare msgSptr pOinter;
end megSout;
I'
oonsole string output routine
l1ne$1n: prooedure(lineSptr) ezternal;
deolare lineSptr pOinter;
end l1ne.in;
I'
oonsole string input routine
Asselllbly Language implementation of the routines
STITLI!(IBlI/PC
DOS CALLS PROCEDURBS)
NAIIE
OOROtlP
DOSPROCS
CGROOP
GROUP
GROUP
DATA
DATA
SEGIIBIIT WORD PtlBLIC 'DATA'
BlIDS
Dos
B~
CoDB
DATA
CODB
21B
SBGIIBNT WORD PUBLIC 'CODE'
ASStlllB CS : CGaoup ,DB: llGaoup
231422-58
CHARSOUT: PROGEDURE(CHAR) EXTERNAL;
DECLARE CHAR BYTE;
END CHARSOUT;
OUtputs oharaoter to the soreen.
DOS system oall 2
CHAR
CHAROUT
CHAROOT
EQU
PUBLIC
PUSH
MOV
MOV
MOV
INT
pop
RET
[BP+41
PROC
NEAR
CHAROUT
BP
BP,SP
DL,CHAR
AH,2
DOS
BP
2
ENDP
STACK
+------+
I CHAR I %
+------+
lIP 10 I %-1
+_ .... _---+
lIP hi !
%-2
IBP 10
%-3
+------+
!
+------+
IBP hi I %-4
<--SP
+------+
KEYINSNOECHO: PROCEDURE BYTE EXTERNAL;
END KEYIN$NOECHO;
Reads charaoter without eohoing to display
KEYINNOECHO PROG
PUBLIC
MOV
INT
RET
KEYINNOECHO ENDP
NEAR
KEYINNOECHO
AH,6
DOS
(DOS oall 6)
Figure 7-56. 1/0 Routines for IBM/PC
Figure 56. 110 Routines for IBM/PC
1-399
(oontinued)
231422-59
intJ
AP~236
IISG$OCT: PIIOCBDtIRE(IISG$PTR) EXTIIIUIAL;
DECLARE IISG$PTR POINTER;
l!IID IISG.OCT;
/. IIOTB: IIBSSAGB IS TJIRIIINATIID WITI! A llOLLAR BIGR • /
IISG.PTR is doubls word pOinter SBG:orrsBT
IISCLL
IISGJI
PtlBLIC
PlJ811
IIOV
IIOV
PlJ811
IIOV
!IOV
IIOV
INT
POP
POP
IISGOOT
BQtJ
BQtJ
[BP+4]
[BP+8]
PROC
IISGOll'l'
BEAR
BP
BP,SP
DE,IISGJo
DB
AX,IISGJI
DS,AX
AH,9
(DOS oall 9)
DOS
DS
BP
4
INDP
RET
LIlIBUlI: PIIOClIIlURB(LIlII.PTR) ErrBRlIIAL;
DBCLARB LIlliS PTR POINTBR;
l!IID LIlIBUlI
[BP+4]
[BP+8]
LIlIIILL
LINIJI
LIlIIIN
PtlBLIC
PlJ811
!IOV
PlJ811
!IOV
IIOV
IIOV
IIOV
INT
POP
POP
RET
LIlIIIN
PROC
lIIAR
LIlIIIlI
BP
BP,SP
DS
AX,LIlIIJI
DS,AX
m:, LIlIIILL
AH,lO
DOS
(DOS oall 10)
DS
BP
4
l!IIDP
231422-60
EEY.BTAT: PRCCBDORII BY'll BrrBRlIIAL;
BND EBY$STAT;
IDd10ateB whether any keyboard key was presBed.
EBYSTAT
PROC
PUBLIC
IIOV
INT
RET
EEYBTAT
ixm
BEAR
EEYSTAT
(DOS oall 11)
AH,ll
DOS
l!IIDP
BNDB
l!IID
231422-61
Figure 56. I/O Routines for IBM/PC (Continued)
7.2 Initialization and Declarations
Figure 57 shows some declarations describing what addresses the devices have and also some literals to help
understand the other routines in this section.
Figure 58 shows the initialization routines for the IBM
PC and for the 82588. It also shows some of the typical
values taken by the memory buffers for Configure,
I~et, Multic~~t and transmit buffers.
1-400
inter
Ap-236
Following are some literal declarations that are used in the procedure examples
l'ol1ow1"11 are 80lIl8 l1teral
procedure ezample.
deolare
deolarat1ons
,0
literally '080Ob' ,
l1terally '0301b'
l1terally '081b'
11terally '02Ob'
l1terally '0&11'
11terally 'OlI!I'
l1terally 'COh'
l1terally '02b'
l1terally 'OISh'
l1terally '081Sh'
l1terally '081>.'
l1terally '07h'
11terally '082b'
l1terally 'Olb'
literally 'OISh'
11terally 'Ollb'
11terally '07h'
11terally 'OcI.fb'
11terally '08l1b'
l1terally
'1'
11terally
'0 '
11terally '04l1b'
11terally '047h'
11terally '04911'
11terally '04I>b'
tbat
are
u8ed
1n
the
0,
,0,0
,0,0,0
,0
,0,0,0
,0,0
,0
,0,0,0
,,0'*
'*
,'*'*'*
'*'*'*
8BII88 OOMMAHD'8TATUS
DIIA'III'rIIRUPT IIBAIILB PORT
8BllIIA IIASI RlGISTBII
821111A OOIIIWIII WORD 2
8215'7A lIAR RlGISTBII
8211'7A IICDlI RlGI8TBII
821S'7A ll1T'utI BY'1'I FLOP
aBIS'7A CIWIIIIIL 1 AID. RIG.
82S'7A CIWIIIIIL 1 BY'l'II comrr
CIWIIIIIL 1 PAGI RlGI8TBII
821S'7A CIIA1IlIBL II ADmI. RIG.
8Ba'7A CIIA1IlIBL 15 BY'1'I OOUJIT
CIrAIIJIIIL IS PAGI RlGI8'lIII
START CIWIIIIIL 1
START CIIA1IlIBL IS
STOP CIWIIIIIL 1
STOP CIWIIIIIL II
1J1IIIAR I1ITIRIIUPT L1VBL II
SPICIPIC IOI LIVBL 15
IIIIIORY TO 8BII88
821188 TO IIIIIORY
lilt OK CIWIIIIIL • 1
lilt OK CIrAIIJIIIL • 15
Tlt OK CIWIIIIIL • 1
Tlt OK CIWIIIIIL • IS
0,0,0,
0,0,
0,0,0,
0,0,
0,0,0,
0,0,
0,
*'*'0,
*'*'*'
*'*'
231422·62
Figure 57. Literal Declarations
Initialization Routines
Initialization rout1Des
,0 SYSTEII INITIALIZE 0,
BYB.iD1t: prooe4ure;
0811 set$1nterrupt (13,1ntr.IIBB);
output(piO.Jll&Blt) • input(pio.JII&Bk) and enalIle.1I8B;
output(piO.OOWB) seol..pJ.oo;
,0,0 ENABLE
BASE B, LIVIL II
0,
IIB8 I1ITIRII. 0,
,0
,0
,...................................................,
0,0,
,0,0
Wl'.ptr, rcLptr, fUoont-O;
ACES PB1IDING INTlIIIIIo,
RBSBT IITATUS 1'11'0
0,
OONVBRT SEG: OJ'I'SBT POlIIIAT TO 110 BIT ADDRIISSBS
POR ALL TIll! BllP1'BRB
,...................................................
1a.et_~ad4r
ODf_~ad4r
:~~
/
• oonvert_BOb1t.ad4r(01~et~ff.B88(0»;
• oonvert-2Ob1t.ad4r~OOOnf~lIa8(0»;
:• ~:=::~i~::=(=1oe!!::=~~6~~(0»;
t~~ad4r
oonvert-2Ob1t.ad4r(Ot~ffer.88B(O»;
401-oto'7;
~daa-ad4r(1)·oonvert_BOb1t.ad4r(Or~ffer(1).butf(O»;
end;
output (brcLport).Offb;
,. BNABLI DIIA
AlII)
I1ITIIRRUPT DRIVERS
0,
eDd sYB.1D1t;
BBBBB 1D1t1al1zation
1D1t_IIBB: procedure;
oont1I1.BB8(00)
OOnt1I1.IIB8(01)
oonfill.1I88(08
Oonfil-flBB(OI5)
oont11-158B(04)
oont1I1.BI5B(OB)
oont1I1.IIBB(06)
ooDf1I1.BB8(0'7)
ooDf1I1.IIBB(OB)
oantil-IIB8(OS)
oantill.IIB8(10)
oODt11-1188(11)
•
•
•
•
•
•
•
•
•
•
10;
00;
0000100()l);
bufelen'4;
0010011011;
0000000()l);
96;
0;
1111001011;
0000010011;
1000100011;
64;
,0 TO OON1'IGIJRI ALL 10 PA1IAIIlITIIRS
,0 IIODlI 0, B IOIZ CLOClt, 1 lIB'S
,0 RBCBIVB BlIPI'D LlNGTII
'*'*
,0
,.
/*
/0
,0
/.
NO LOOPBACX, AID LIN • B, PRBAIIBLI • 8
DII'1'BRDTIAL IlAllCllBSTBII - OJ'!'
Il'S • 96 '1'CLIt
SIm TlIIB • nB '1'CLIt
IIAX. NO. RII'lRIIIS - 115
IlAllCllBSTIR IINOODING
INTBIINAL ORS AlII) CD'l', ORS!' - 0
IIIN PIIAIIII LINGTII • 64 BY'l'IIS - 151B BITS
Figure 58. Initialization Routines
1-401
*/
0/
0/
0/
0/
0/
0/
*/
*/
0/
./
231422·63
inter
AP-236
1a_seLbufC588(0)
ie...set_bufC588(l)
ie...setJ>ufC888(2)
:1. .._set_buff_588(3)
i .._setJ>ufC588(4)
i .._setJ>ufC588(5)
i .._set_ufce88(6)
ie...set_bufC588(7)
-
6;
0;
OOOh
041h
OOOh
OOOh
OOOh
OOOh
multioas1;J>ufC588(00)
multioastJ>ufCS88(01)
multioastJ>ufCS88(02)
multioastJ>uff_S88(03)
multioast_bufC888(04)
multioastJ>ufC58S(08)
multioastJ>ufce88(06)
multioast_bufce8e(07)
multioast_buff_See(Oe)
multioast_bufCSee(09)
multioast_buff_see(lO)
multioast_buff_See(ll)
multioastJ>uff_5ee(12)
multioastJ>ufceee(l3)
- 12;
- OOh
- llh
- 12h
- 13h
- 14h
- lSh
- 16h
- 21h
- 22h
- 23h
-24h;
- 2Sh;
- 26h;
txJ>uffel'_588(OO) - tz-fl'&me_len mod 256;
t,,_buffel'_588(01) - tz-fl'&me_len / 256;
i~~~:;:::g~~~g:~
gg~;
INITIAL DESTINATION ADDRESS - IICO) ' /
t"J>uffel'_S88(04) - 013h;
t,,_buffel'_S88(05) - 014h;
t,,_buffel'_S88(06) - 015h;
txJ>uffel'_S88(07) - 016h;
:
/'
end :!.nit_S88;
231422-64
(Continued)
fourth parameter = pointer to a 20 bit
address of the
memory buffer
(=@CONFIG_588_ADDR)
Figure 58. Initialization Routines
7.3 General Commands
Operations like Transmit, Receive, Configure, etc. are
done by a simple sequence of loading the DMA controller with the necessary parameters and then writing
the command to the 82588.
Example: Configure Command
To configure the operating environment of the 82588.
This command must be the first one to be executed
after a RESET.
call
DMA_LOAD(1,1,12,@CONFIG_588_ADPR) ;
output (CS_588) = 12h;
The first statement is the prologue to the configure
command to the 82588 which calls a routine to load
and initialize the DMA controller for the desired operation. This routine is described in section 7.4. The parameters for DM~LOAD are:
The second statement writes 12h to the command register of the 82588 to execute a Configure command on
channel 1.
When the command execution is complete (successfully
or not), 82588 interrupts the 8088 CPU through the
8259A, on the system board. This executes the interrupt service routine, described in section 7.5, which
takes the epilogue action for the command.
Most operations are very similar in structure to Configure. The 82588 Reference Manual describes them in
detail. Figure 59 shows a listing of the most commonly
used operations like:
CONFIGURE
TRANSMIT
first parameter
= 82588 channel
number ( = 1)
second parameter = direction ( = 1,
memory > > 82588)
third parameter = length of DMA
transfer ( = 12)
DIAGNOSE
DUMP
TDR
RETRANSMIT
1-402
INDIVIDUAL-ADDRESS (IA)
SET-UP
MULTICAST-ADDRESS (MC)
SET-UP
RECEIVE (RCV)-ENABLE
RECEIVE (RCV)-DISABLE
RECEIVE (RCV)-STOP
READ-STATUS
intJ
Ap·236
/. COIIIIAJ1D - 01 • /
1e....set: procedura p1Il>l1o;
oall 4ma-l0a4(~ob&Dnal.t~41r.8 ••1&set_dae....ad4r);
/. SB:r InIA CJIAIIIIJ!L 0 011 1 ro 'I.'RA1IISJ'BR PROII IIBIIOIIY
ro 'l'BB 811S8B. 1uat_dm&..B44r VARIABLB B:rOIlBB 'l'BB
110 BI:r POIlITBR ro 'l'BB IHDIVIDtlAL AIlIlIIIIBS BtJ1ITBR 0/
i f ~oluwI.l then output (oB_888) • 1111;
a18e output(OB_1I88) • 0111;
/0 BVlRY COKIIA1ID CAN II IIBIICll'1'III) IN BI':IIBR InIA CIWOOIL 0 011 1.
'l'BB VARIABLB ~oII_l IIIDICA'l'B8 'l'BB ~IRBIl CIWOOIL 0/
eDd 1e..... .t;
'* --------------------------------------------------------------------------*'
conn.: pro0e4ure publio;
/0 COKIIA1ID - 011 0/
call dme....loa4(~OII&Dn&l. t~41r. 111 .000f_dme....ad4r) ;
i f ~oII_l tIleD output (08_888) • 1l1li;
a18a output(OB_888) • Oh;
aDd oonfi.;
'* --------------------------------------------------------------------------*/
ault10ut: pro0e4ura p1Il>l1o;
/. COKIIA1ID - 08 • /
oall dm&..loa4(~0II&Dn&1.t~4ir.14 ....0_dae....ad4r);
i f ~oII&DDal then output (os_688) • 1811;
al. . output(os_688) - 0311;
eD4 lINltioast ;
/* --------------------------------------------------------------------------*'
traulD1t: prooe4ura(bui':L'ar_lsn) p1Il>l1o;
/0 COIIIIAJ1D - 04 0/
dealara buffar_lliln wOrd;
t~ffar_8B8(00)
t~ffar_68B(01)
• low(bui':L'ar_lan);
- h1g11(buffar_lan);
oall dm&..loa4(~OII&Dn&l. t~4ir. 1636. etz_dm&..B44r) ;
~0II&Dn&1 then output (OS_888) - 1411;
al.. output (os_888) - 0411;
if
aDd translD1 t ;
231422-65
Figure 59. General Commands
1-403
inter
Ap·236
tdr: procedure publ1o:
COIIIIAND - 06
/ 0
0 /
if OIIId_ohaimel the.. output (oS_566)' - 16h:
elss output(os_566) - OSh:
end tdr:
'* --------------------------------------------------------------------------* /
dump_B66: prooedure publ1o:
/0 COIIIIAND - 06 • /
0&11 dma."':load( OIIId_ohennel. rlt_dir. 64. OdmP_dmlLaddr) :
i f omc:LOhennel the.. output (OS_666) - 16h:
else output(os_S66) - 06h:
end dump_S66:
I
*---------------------------_______________________________________________ * /
diag..ose: prooedure publ1o:
/ 0 COIIIIAND - 07 • /
~ohannel
the.. output (os_566) • 17h:
else output(os_S6S) - 07h:
if
end diag ..ose:
/ III - - - - - - - - - - - - - - - - __________________________________________________________ III
_"0 .le.. )
rov_e..al>le: prooedure (ohannel. buffer
publ1o:
I
/. COIIIIAND - 06 • /
deolare channel l:>yte:
deolare le.. word:
deolare buffer_no l:>yte:
oall dma_load( Ohennel. l'lt_dir .le... a>rx_dma_addr(buffer_..o)) :
!is!"o~~~~~s~~:~) o~tE~t (oU6S) - lSh:
/. --------------------------------------------------------------------------* /
rov_disal>le: procedure publio:
/0 COIIIIAND - 10 • /
enable_rov-Q ;
output(os_588)-Oah:
e ..d l'OV_disal>le:
231422-66
/ .. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ____________________________________ III /
rov_stop: prooedure publio:
/. COIIIIAND - 11 0/
enal>le_rov-O :
output(os_58S)- Obh:
end rov_stop:
I *--------------------------------------------------------------------------* I
retransmit: procedure publio:
/0 COIIIIAND - 12 ./
oall dmlLload(omd_oh....nel. tX_dir.1536,fPt;lt_dma_addr):
if omc:LOhennel the" output (os_688) - loh:
else output(os_5S8) - Ooh:
end retransmit;
I
*--------------------------------------------------------------------------* I
abort: procedure publio:
/0 COIIIIAND - 13 • /
~~iru~i~~8~:~~;( i~:
end abort:
1* --------------------------------------- ----------------------------------_ * I
reset_s68: prooedure publio:
/0 COIIIIAND - 14 • /
e ..al>le_l'ov-O :
output(os_586) - leh:
oall oonfil!:
'end reset_5B8:
231422-67
Figure 59. General Commands (Continued)
1~404
inter
AP-236
the listing of this procedure. It accepts 4 parameters
from the calling routine to decide the programming
configuration for the 8237A. The parameters for
DMA_LOAD are: Channel, direction, bufLJen, and
buff_addr.
7.4 DMA Routines
DMA_LOAD procedure is used to program the
8237A DMA controller for all the operations requiring
DMA service. It also starts or enables the programmed
DMA channel after programming it. Figure 60 shows
Converting a pOinter SEG: OFFSET to a 20 bit eddress
oonverL20bi Leddr : prooedure(ptr) dword publio;
deolare
ptr
ptr_eddr
pOinter,
pOinter,
f;~d20~~~e~w~~~_a.ddr ) (2)
word;
ptr_eddr-Ciptr;
ptr_20b1t-shl( (ptr_20b1t :-wrd(l)) ,4)+wrd(0);
return(ptr_20bit) ;
end oonvert_20bit_eddr;
IBM/PC DHA lOeding prooedure
dm8..-1oed: prooedure( channel, direotion, buff_len, bufCeddr) reentrant publio;
deolare
deolare
deolare
deolare
deolare
ohannel byte;
direotion byte;
bufClen word:
bufCeddr pOinter;
(wrd based buff_eddr)(2)
channel-ohannel and 1;
/' Cl!ANIIBL ., 0 or 1
/' o-ax, 588 -> !lE1I; l-TX, !lE1l
/' BYTE COUNT
/' BUFFER ADDR IN 20 BITS FORI!
word;
'/
->
688 '/
'/
/' GET LEAST SIGNIFICANT BIT
if ohannel-O then
/' EDCOTE COIIIIAND ON Cl!ANIIBL
do;
output (dma_flff) - 0;
/' CLEAR FIRST/LAST FLIP-FLOP
if direotion-O
then output(dma_mode)-dma_rz_mode_l; /' DIRECTION BIT, TELLS
else output(dm8..-mode)-dma_tx...mode_l;
/' TRANSIlIT OR RECEIVE
output (dma_eddr_l) - low (wrd(O));
/' LOAD LSB ADDRESS BYTE
output (dmB..-eddr_l) - high(wrd(O));
/' LOAD IISB ADDRESS BYTE
output(dma_eddrh_l) - low (wrd(l));
/' LOAD PAGE REGISTER
output (dma...bo_l)
- low (bufClen);
/' LOAD LSB BYTE COUNT
output (dmB..-bo_l)
- high(bufClen);
/' LOAD IISB BYTE COUNT
output(dma_m .. sk) - dm.._on_l;
/' START Cl!ANIIBL 1
'/
'/
'/
'/
,/
'/
'/
'/
'/
,/
'/
'/
end;
else do;
/' SAllE, AS BEFORE FOR CBANNEL 3
- 0;
then output(dma...mode)-dme._rx_mode_3;
else output (dm.._mode)-dmB..-tz...mode_3 ;
output (dm.._eddr_3) - low (wrd(O));
output (dma_eddr_3) - high(wrd(O));
output(dm.._eddrh_3) - low (wrd(l));
output (dm.._bo_3)
- low (bufC'len);
output (dm"_bo_3)
- h1gh(buff_len);
output(dm.._mask) - dm8..-0D.,.3;
~~t~~;~~t;~:6f)
'/
end;
end dmB..-loed;
231422-68
Figure 60. DMA Routine
1-405
intJ
AP-236
One peculiarity about this procedure is that in order to
speed up the DMA step-up, this procedure doesn't get a
pointer to the buffer, but a pointer to a 20 bit address in
the 8237 format. The 8088/8086 architecture define
pointers as 32 bits seg:offset entities, where seg and offset are 16 bit operands. By the other hand the IBMIPC
uses an 8237 A and a page register, requiring a memory
address to be a 20 bit entity. The process of converting
a seg:offset pointer to a 20 bit address is time
consuming and could negatively affect the performance
of the 82588 driver software. The decision was to make
the pointer/address conversions during initialization,
considering that the buffers are static in memory (essentially removing this calculation from the real time
response loops).
Figure 61 is a listing of the DM~OAD procedure
for the 80188 or 80188 on-chip DMA controller. It has
the same caller interface as the 8237A based one.
dma_Ioad: procedure(channel,direction,trans_len,buff_addr) reentrant;
/* To load and start the
80186 DMA controller for the desired operation */
dma_r~ode
literally '1010001001000000b'; /* rx channel */
/* src=IO, dest-M(inc), sync-src, TC, noint, priority, byte */
declare
dma_t~ode ' literally '000011010000000b'; /* tx channel */
/* src=M(inc), dest-IO, sync=dest, TC, noint, noprior, byte */
declare
declare
declare
declare
declare
channel byte;
direction byte;
trans_len word;
buff_addr pointer;
/* channel
/*
o -
'*
rx, 588
/* byte count
*/
->
mem; 1 - tx, mem
->
588 */
*/
/* buffer pointer in 20 bit addr. form
*/
declare (wrd based buff_addr)e2) word;
do case channel and 00000001b;
do case direction and OOOOOOOlb;
do;
/* channel 0, 588 to memory */
output(dma_O_dpl) = wrd(O);
output (dma_O_dph) - wrdel);
ou t pu t (dma_O_s pi) = cb...a_5~8;
output (dma_O_sph) - 0;
output (dma_O_tc)
- trans_len;
output (dma_O_cw)
- dma_r~ode or 0006h; /* Start DMA chI 0 */
end;
do;
/*
output(dma_O_dpl)
output (dma_O_dph)
output(dma_O_spl)
ou tpu t (dma_O_s ph)
ou tpu t (dma_O_t c)
output (IiInlL-O_cw)
end;
end;
channel 0, memory to 588 */
- cb...a_588;
== 0;
= wrd(O);
-wrd(!);
= trans_len;
- dma_t~ode or 0006h; /* Start DMA chI 0 *1
231422-69
Figure 61. 80186 DMA Routines
1-406
intJ
AP-236
do case direction and OOOOOOOlb;
do;
1* channell 588 to memory *1
OUtput(dma_l_dpl) - WTd(O);'
output (dma_l_dph) ~ wrd(l);
output(dma_l_spl) - cLb_588;
output (dma_l_sph) _ 0;
output (dma_l_tc)
- trans len;
output (dma_l_cw)
- dma_r~ode or 0006h; f* Start DMA chI 1 *1
end;
do;
1*
ou t pu t (dma_1_dpl)
ou t pu t (dma_1_dph)
ou t pu t (dma_1-,pl)
ou t pu t (dma_1_s ph)
ou t pu t (dma_1_t c)
OU t pu t (dma_l_cw)
end;
end;
channel 1. memory to 588 *f
- cLb_588;
-
0;
- WTd(O);
-WTd(1);
- trans_len;
= dma_t~ode
or 0006h; 1*
Star~
DMA chI 1 *f
end;
231422-70
Figure 61. 80186 DMA Routines (Continued)
7.5 Interrupt Routine
The interrupt service routine. 'intr_588'. shown in
Figure 62. is invoked whenever the 82588 interrupts.
The main difficulty in designing this interrupt routine
was to speed its performance. Fast status processing
was a basic requirement to be able to handle back to
back frames.
The interrupt handler will read 82588 status, and put
them into a 64 byte long EVENT_FIFO. Those
statuses are going to be used in the main loop for updating screen counters. All the statistics are updated as fast
as possible in the interrupt handler to fulfill the backto-back frame processing requirement.
The interrupt handler is not reentrant, interrupts are
disabled at the beginning and reenabled on exit.
1-407
inter
AP-236
Interrupt servioe routine
intr_SSS:prooedure interrupt 13;
deola.re stat
byte,
byte,
I>yte,
byte,
byte,
byte;
event
i
(stO,st1,sta,st3)
rx_stO
rz_stl
I ' FOLLOWING LITERALS HAVE TEE PtlRFOSE OF ENABLE ACTING
ON EITHER CHANNEL 1 OR 3 SELECTIVELY
,I
declare
stap_amcUlma
11 terally 'if omel_channel
then output(dmA-mask)-dmeLoff. . . 3;
else output(cIm&.-mask)-clma_ofC1',
'if rlLohannel
then output(cIma_mask)-clma_off_3;
else output(c\m&.-mask)-clma_ofC1',
'if omd_obannel
then out~ut(OS_558)-lCh;
,!~S~~~~r~~~_688)-OOh' •
then autput(OS_585)-14h;
else outputCos_588)-04h';
disable;
output (os_588)
I ' DISABLB INTERRUPTS
'I
I ' NO INTERR, NESTING
'I
I ' RLS 588 PTa, START 0 ' I
-Ofh;
event31foCwr_ptr), stO, stO-inputCos_588);
event_fifoCwr_ptr), st1, stl-inputCos_588);
event_fifoCwr_ptr). st2, st2-1nput(os_688);
event. . . f.1fo(wr_ptr). et3, st3-input(os_58S);
I'
I'
I'
I'
TIf~~~~~n:d~~~i~ 1 ~n~f~~h;
I' INCRBllBNT FIFO
I' COUNTERS
' I
' I
event-at a and Ofh;
I' GET EVEN'!'· FIELD
' I
output Cos_588)-80h;
I ' AOEN01ILEJlGE 82685
I' INTERRUPT
' I
' I
READ 82588 STATUS
REGISTERS, PASSING
THEil TO TEE IlAIN
PROGRAII ON TaE FIFO
' I
' I
' I
'I
231422-71
do ca.se event;
:~=g~
eV_02
ev_03
ev_04
1* NOP COlOfAND
/. lA_SETUP, STOP DMA
I * CONFIGURE. STOP DMA
stop_omcLd,ma;
stop_cmcLdma;
stap_omcLclma;
do:
/. MULTICAST STOP DXA
I ' TRANSMIT DONE
I
stop_omcCdma j
*/
•I
.. /
.. /
'I
I ' CHECK IF THERE WAS A COLLISION AND IS NOT TEE
IIAX COLLISION
'I
stat-Cota and 100000000) ar Cst1 and 001000000);
if Cstat-SOh)
then do;
/
* RETRANSMIT
'" /
call dm!Lloa.d.( cmcLohannel. tX_d1r .1536. II»tx_dJna._addr) ;
1ssue_rt~omd;
I ' UPDATE STATISTICS
total_tx_oount-tota1_t~coount+l
else do;
,I
;
ooll_ontO?) - cOll_ontO?) + 1; I'TOTAL COLL'I
bad.-tx-count - bacLt~oount + 1:
end:
if in_loop
then do;
I ' EXECUTING TRANSMISSIONS IN LOOP
'I
/ .. RE ISSUE TRANSMIT COMMAND
'" /
oall cIma_loadC omel_channel, tlLdir, 1636,@tx_clma_addr
1ssue_tx-omd.:
total_tx.....count ...total_tx_oount+l;
end;
if Cot2 and 001000000) - 0
then do;
:be.uff+1) &D4 000001111:>, /' INC BIJF1IR NO. IIOD B'/
11 all8l:>la_rov, >Q
/' II' IUICl1IVIR IS ON
'/
than dO,
/' PRlIPARB IIl!ltT BIIPFIR '/
0811 clu..-loec1( rz....oh&llllal. rz....d1r. 1B32. Ol'Z_c1lII._ec1c1r( 1) ) ,
i t rz....oh&llllal then output(OB_888)- 18h,
alee output(08_888)-08h,
rz....l:>uffar(1). oh81,,-ont-O,
end;
al.e oall rov_d1.aI>la ,
/' DISABLE RECEIVER
/' FIND ADDRlISS 01' END OF CORRBNTLY IUICl1IVED BIIPFIR
/' BY CALCULATING IT WITH TIIB 82S88 BYTE COUIIT REGS.
rz....l>ufCotf-(.bl(doul:>la(.t2).8) or doul:>1.(st1»,
/' READ STA'l't1S BYTES FROII IIBIIORY
rz....BtO-rz_l:>uffar( ourrant.J:>utt) .buff(rz....l>uff_off-2) ,
rz....st 1-rz....l:>utfar(ourr8llt.J:>uff) .l:>uft(rz....l:>ufCoff-1) ,
/' UPDATE AC'l'tJAL BIIPPIR SIZE
rz.J:>uftar(currant.J:>uff) . aotu81_B1za-rz....l>ufCoff,
rz....l>uff.r( ourrent.J:>uff) • 8tO-rz_stO,
rz_bufter(ourrent_l:>uff). stl-rz....st1,
curr.nt_l:>utt-1,
/' UPDATE TOTAL RECBlVED BIIPFBRS
total_rov_oount-tot81_rov_oount+1,
/' UPDATH STATISTICS
if (rz....st1 &D4 001000001:»-0
than do,
!>&eLrov_oount-!>&eLrov_oount+ 1 ,
/' INCRBllB1I'r NO END OF FRAIIB COUllTBR
tmp-sor(tmp: -rz....stO. 7) ,
~~_~~~~f fHg:T0 ~IWO! COU1l'rIR
;~r~~~~:~U~~
plUS 0,
/' INCRBllB1I'r ax OVERRUN COUlITBR
tmp-sor(tmp:-rz_st1.1) ,
'/
'/
'/
'/
'/
'/
'/
'/
~!-~~veM~~-'BRRORCOtmTIIR
'/
tmp-Bor(tmp.2) ,
~gI;=J;r~l~
'/
'/
COtmTIIR
'/
tmp-sor(tmp.l) ,
oro_err-oro_el'l' plus 0:
and,
ev_09
av_10
BV_11
ev_12
and,
231422-73
/' BV_09 REQUESTS ASSIGNIIB1I'r OF A NEW BUPPER
'/
0811 allooata_new_buffar(not(rol(Bt3.1» and 000000011:»,
/' RBCElVE DISABLE
'/
stop_rz_c1lIIa,
stop_rz_c1lII.,
/' STOP IUICl1IVE
'/
d.o ;
/. RE-TRANSNIT DONE
•I
stat-(st2 and 100000001:» or (stl &D4 001000001:»,
11 (stat-80h)
than do,
/' RETRANSIiIT
'/
oall c1lIIa..loec10. t"_41r • 1536.ot,,:"c1lIIa..ac1dr) ,
1sBua_rtz....omc1 ,
001l_ont(7) - 001LOIlt(l7) + 1,
tot.Lt,,_00unt-tot.l_tz....oount+1'
!>&eLtz....oount-!>&eLtz....oount +1,
and,
else do;
i f i"-loop
than do,
/' LOOP RBTRANSIiISSIONS
'/
0 ..11 cIm&_loec1( omc1_oh&llllal. t"_d1r. 1536 .otz....cIm&_..
1ssue_tz_omd;
tot81_t,,_oount-tot81_tz....oount+l,
end;
if (st ..t-OAOh) /, IIAX COLLISION
then do,
ooll_ont(6) - ooll_OIlt(l6)+1,
ooll_ont(l7) - ooll_ont(17)+1,
~tl'-oount-bad._tlcoount
'/
+1;
end,
/' UPDATE SPECIFIC COLLISION COU1l'rBR
else 001l_OIlt(st1 and Oth)
- ooll_ont(stl and Ofh) + 1,
'/
end.;
av_13:
::::~t
end,
end,
stop_omc1_c1lII.,
stop_omc1_cIm&'
/, EXECUTION ABORTBD
'/
/, DIAGNOSE FAILED
'/
/' AClINOWLBOOB 8259A 11I'rBRRUPT
output (pio_OOW2) - seoLp1oo,
/' SPBCIFIC EOI FOR 82B9
and 1ntr_888,
'/
'/
231422-74
Figure 62. Interrupt Routine (Continued)
1-409
inter
AP-236
APPENDIX A
STARLAN SIGNALS
1-410
AP-236
82588
TXD RTS
(1)-----
5pF'
5pF'
(2)---
24 GAUGE
800 FT TWISTED PAIR WIRE
IN 25 PAIR BUNDLE
(')~
231422-47
231422-55
Figure 63. StarLAN Signals
1-411
inter
AP·236
Eye Diagram (5 Bits), DIW Cable
Manchester Encoded Signal
Transmission Distence = 0.8 Kit.
a
a
a
N
~
a
a
2
So
eO
...
..... 01)
III
Z
~a
IX
~
~8
gor
a
8
j'
a
a
01)
"j'
a
a
a
N
I
0.0
0.2
0.6
0.4
0.8
1.0
TIME (J'SEC)
231422-48
Figure 64. Received Signal Eye Diagram
1-412
inter
AP-236
APPENDIX B
802.3 1BASES MULTI-POINT EXTENSION (MPE)
As previously stated, one of the most important advantages of StarLAN is being able to work on already installed phone wires. This advantage is considerably diminished in Europe where numerous constraints exist
to the using of those wires:
Recently the StarLAN 802.3 IBASE5 task force has
been considering the extension of the StarLAN base
topology. This extension called MULTI POINT EXTENSION (MPE) is going to be developed to address
the previously described marketing requirements.
I. Wire belongs to local PTTs.
2. Not enough spare wires.
Currently no agreement has been reached by the
StarLAN task force on the MPE exact topology and
implementation. Multiple approaches have been presented, but no consensus met. It was decided though
that the MPE is going to be an .addendum to the STAR
topology, and that its final specification will happen
after the approval of the current IBASE5 STAR topology (July 1986).
This same issue is raised when talking about small businesses where in a lot of cases no wiring closets and/or
spare wires are available.
In summary, in a lot of cases rewiring will be necessary,
in which case the STAR topology may not be the most
economical one.
1-413
_ . - _ - - THROUGH A HUB UPGRADABLE
TO THE FULL STARLAN TOPOLOGY
(2500 m. MAX END-TO-END)
HUB COST ELIMINATED
IN SMALL TOPOLOGIES.
LOWER COST PER PORT
(UP TO 8 STATIONS PER PORT)
HUB
l
....
CONNECTION OPTIONAL,
NOT NEEDED FOR SMALL
TOPOLOGIES
"1\
C
c
iiJ
G)
~
iC
~
....
.jl.
:.
l'
c
~
"0
0
..
~
Co)
S·
i•g
Q)
LOWER COST.
TERMINALS ATIRACTIVE'
,
~
t I I 'I ~\
UT/,I /
FEWER CONNECTIONS TO
WIRING CLOSETS
231422-97
intJ
AP-236
APPENDIX C
SINGLE DMA CHANNEL INTERFACE
In a typical system, the 82588 needs 2 DMA channels
to operate in a manner that no received frames are lost
as discussed in section 5.1. 3. If an existing system has
only one DMA channel available, it is still possible to
operate the 82588 in a way that no frames are lost. This
method is recommended only in situations where a second DMA channel is impossible to get.
Figure 66 shows how the 82588 DMA logic is interfaced to one channel of a DMA controller. Two DRQ
lines are ORed and go to the DMA controller DRQ
line and the DACK line from the DMA controller is
connected to DACKO and DACKI of the 82588. The
82588 is configured for multiple buffer reception
(chaining), although the entire frame is received in a
single buffer. Let us assume that channel CH-O is used
as the first channel for reception. After the ENAble
RECeive command, CH-O is dedicated to reception. As
long as no frame is received, the other channel, CH-l,
can be used for executing any commands like transmit,
multicast address, dump, etc., by programming the
DMA channel for the execution command. The status
register should be checked for any ongoing reception,
to avoid issuing an execution command when reception
is active.
ORQO
ORQ1
OACKO
OACK1
82588
..,
I
OROn
lished, as shown in Figure 67. After this, the received
bytes start filling up the on-chip FIFO. The 82588 activates the DRQ line after 15-FIFO LIMIT + 3 bytes
are ready for transfer in the FIFO (about 80 microseconds after the interrupt). The CPU should react to the
interrupt within 80 ,""S and disable the DMA controller.
It should also issue an ASSIGN ALTERNATE BUFFER command with INTACK to abort any execution
command that may be active. The FIFO fills up in
about 160 ,""S after interrupt. To prevent an underrun,
the CPU must reprogram the DMA controller for
frame reception and re-enable the DMA controller
within 160 ,""S after the interrupt (time to receive about
21 bytes). No buffer switching actually takes place, although the 82588 generates request for alternate buffer
every time it has no additional buffer. The CPU must
respond to these interrupts with an ASSIGN ALTERNATE BUFFER command with INTACK. To keep
the CPU overhead to a minimum, the buffer size must
be configured to the maximum value of 1 kbyte.
If a frame transmission starts deferring due to the re-
ception occurring just prior to an issued transmit command, the transmission can start once the link is free
after reception. A maximum of 19 bytes are transmitted
(stored in the FIFO and internal registers) followed by
a jam pattern and then an execution aborted interrupt
occurs. The aborted frame can be transmitted again.
If the transmit command is issued and the 82588 starts
transmitting just prior to receiving a frame then transmit wins over receive-but this will obviously lead to a
collision.
OACKn
OMA
CONTROLLER
231422-49
Figure 66. 82588 USing One DMA Channel
If a frame is received, an interrupt for additional buffer
occurs immediately after an address match is estab-
Note that the interrupt for additional buffer is used to
abort an ongoing execution command and to program
the DMA channel for reception just when a frame is
received. This scheme imposes real time interrupt handling requirements on the CPU and is recommended
only when a second DMA channel is not available.
1-415
inter
AP-236
ASSIGN
ALT BUFF
WITH INTACK
REQUEST
ALT BUFF
INTERRUPT
.1
1
8258B ---.J
82;;;
I
:.:==~~~_-_-__~_BO_~_S
I
_________
r"
·~II___________
rFIFO FULL
•
~160~S-----------I'1
111
ADDRESS MATCH
ON FRAME
RECEPTION
DMA CONTROLLER
MUST BE DISABLED
PRIOR TO THIS
DMA CONTROLLER
MUST BE PROGRAMMED
FOR RECEPTION AND
ENABLED PRIOR TO THIS
231422-50
Figure 67. Timing at the Beginning of Frame Reception for Single DMA Channel Operation
1-416
infef
AP-236
APPENDIX D
MEASURING NETWORK DELAYS WITH THE 82588
Knowing networks round-trip delays in local area networks is an important capability. The round-trip delay
very much defines the slot time parameter which by
itself has a direct relationship to network efficiency and
throughput. Very often the slot-time parameter is not
flexible, due to standards requirements. Whenever it is
flexible, optimization of this number may lead to significant improvement in network performance.
Another possible usage of the network delay knowledge
is in balancing the inter-frame -spacing (IFS) on broadband networks. On those networks, stations nearer to
the HEAD-END hear themselves faster than farther
ones. Effectively having a shorter IFS than stations far
from the HEAD-END. This difference causes an inbalance in network access time for different stations at
different distances from the HEAD-END. Knowing
the STATION/HEAD-END delay allows the user to
reprogram the 82588 IFS accordingly, and by that balance the effective IFS for all the stations.
The 82588 has an internal mechanism that allows the
user to measure this delay in BIT-TIME units. The
method is based on the fact that the 82588 when configured for internal collision detection, requires that the
carrier sense be active within half a slot-time after
transmission has started. If this requirement is not fulfilled the 82588 notifies that a collision has occurred.
Thus it is possible to configure the 82588 to different
slot time values, then transmit a long frame (of at least
half a slot-time). If the transmission succeeds, the network round-trip delay is less than half the programmed
slot-time. If a collision is reported, the delay is longer.
The value of the round-trip delay can be found by repeating this experiment process while scanning the slottime configuration parameter value and searching the
threshold. A binary search algorithm is used for that
purpose. First the slot-time is configured for the maximum (2048 bits) and according if there was a collision
or not, the number changed for the next try. (See Figure 68)
1-417
inter
Ap·236
8
2
5
8
8
PROPAGATION DELAY
TX
HEADEND
RX
• SCHEME IS BASED ON THE FACT THAT THE 82588 EXPECTS RX CARRIER
TO BE ACTIVE AFTER 1/2 SLOT TIME
N
K = APPROXIMATION FACTOR
231422-98
Figure 68. Network Delay Measurement using .the 82588
1-418
inter
APPLICATION
NOTE
AP-320
November 1988
Using the Inte'l 82592 to Integrate
a Low-Cost Ethernet Solution
into a PC Motherboard
MICHAEL ANZILOTTI
TECHNICAL MARKETING ENGINEER
Order Number: 290189·001
1·419
inter
AP-320
the LAN solution; e.g., system memory and DMA.
This leaves the 82592, the serial interface, and some
control logic as the only components required to complete a motherboard LAN solution.
1.0 INTRODUCTION
During the past several years office networking has become an increasingly efficient method of resource sharing for companies looking to increase productivity
while reducing cost. Networking allows multiuser access to a data base of files or programs via a network
file server; it allows sharing of expensive peripherals;
e.g., laser printers; and it offers a greater degree of data
security by centralizing the hard disk and backup facilities. This type of network allows a user to concentrate
his resources; e.g., a high-capacity, high-performance
hard disk, at the network file server, allowing the other
nodes, or PC workstations, on the network to function
with limited or no mass data storage capability.
1.1 Objective
This Application Note presents the general concept of
integrating a Local Area Networking into a PC motherboard, and how the 82592 suits this purpose. The
design of the 82592 Embedded LAN Module, which
plugs into an Intel SYP301 motherboard (or any standard PC AT style motherboard), is explained in detail-providing a demonstration of an integrated Ethernet LAN solution.
As Local Area Networks (LANs) have become more
common in the office and in industry, some clear market development trends have emerged. Possibly the
?t0st significant development in the LAN marketplace
IS the concern for cost reduction. This need is driven by
intense competition between network vendors for market share. Today's LAN marketplace requires low-cost,
simple network solutions that do not sacrifice performance. Another significant development in the LAN
marketplace is the acceptance of Ethernet, or a derivative (e.g., Cheapernet or Twisted Pair Ethernet), as the
industry standard for high-performance LANs. Because of Ethernet's popularity, there is a great need for
cost reduction in this market.
1.2 Acknowledgements
For their contributions to this Application Note, and
for their work in developing the architecture of the
82592 Embedded LAN Module, I would like to acknowledge, and thank, Uri Elzur, Dan Gavish, and
Haim Sadger, of the Intel Israel System Validation
group; and Joe Dragony, of Intel's (Folsom) Data
Communications Focus Group.
2.0 THE EVOLUTION OF LAN
SOLUTION ARCHITECTURES
Personal computers (PCs) have· also seen significant
changes over the past several years. PCs have become
firmly entrenched in the office. Their popularity, coupled with a highly competitive market, has compelled
PC vendors to both reduce costs for their LAN solutions and to attempt to distinguish their product from
the competition's. The means of this cost reduction
range from eliminating expensive hardware, such as
disk drives and their associated hardware, to using
highly integrated VLSI devices that implement the
functions of a PC in a combination chip set containing
several devices. Differentiation has been achieved by
integrating peripheral functions, normally contained on
an external adapter card, into the main processor
board, or motherboard, of the PC. Video Graphics Array (VGA) and LAN connections are examples of this
strategy.
The Intel 82592 LAN controller is uniquely suited for
integration into a PC AT style motherboard. It meets
the demands of today's market by providing the PC
v~ndor (1) a means of reducing cost while maintaining
high performance, and (2) a path for differentiation. An
82592 integrated into a PC motherboard provides a
very low cost and very simple implementation because
it uses the host system's existing resources to complete
LAN solutions have undergone an evolution in architecture-from expensive and complex to more cost-efficient and streamlined. A definite trend in office networking can be seen, as these solutions permit the host
system to perform functions that were previously included in the LAN solution.
The first LAN solutions were usually intelligent buffered adapter cards, with a CPU, large memory requirements (up to 512 kB), firmware, a LAN controller, and
a serial interface. As networking became more prevalent in the office environment-linking PCs and workstations via Ethernet-this complex architecture
evolved into simpler and more streamlined nonintelligent, buffered adapters. In this architecture the CPU is
no longer part of the LAN solution; its processing power is supplied by the host system. This architecture does
not need memory to support a local CPU. Memory is
only needed to supply a buffer space to store data before moving it to system memory or onto the serial link.
The memory requirement for nonintelligent, buffered
architectures is. typically 8 kBytes to 32 kBytes. The
firmware to boot the CPU is also no longer needed. The
evolution to a nonintelligent, buffered architecture has
resulted in significant cost savings and reduced complexity.
1-420
inter
AP-320
Significant increases in speed and processing power
have been made to PCs during the past several years.
This trend to higher performance host systems has allowed further streamlining of the LAN solution's architecture, resulting in even greater cost reduction and
simplification. This is accomplished by using host system resources whenever possible. A nonintelligent, nonbuffered architecture is the result. In this architecture,
the host system's memory and DMA are used by the
LAN controller. The complexity associated with buffered LAN solutions (e.g., supplying a dual-port arbitra-
tion scheme for local memory access by both the CPU
and the LAN controller) is reduced; this complexity is
removed from the LAN solution and returned to the
host system, which is designed for these complex tasks.
The result of this architectural optimization is a very
simple, low component count, cost-efficient solution for
a LAN connection. The 82592 Embedded LAN Module is the realization of this optimization. The trend to
optimization of LAN architectures is shown in Figure
1.
Intelligent Buffered Adapter
E1
290189-1
Nonintelligent Buffered Adapter
Nonintelligent Non-Buffered Architec:ture
Embedded Module
290189-3
290189-2
Figure 1. Architectural Optimization of LAN Solutions
1-421
inter
Ap-320
3.0 THE 82592 LAN CONTROLLER
• Internal and extemalloopback
• Internal register dump
• A TDR mechanism
• Internal diagnostics
3.1 General Features
The 82592 is a second generation, CMOS, advanced
CSMAlCD LAN controller with a 16-bit data path.
Along with its 8-bit version, the 82590, it is the followon design to the 82588 LAN controller. The 82592 is
upwards software compatible from the 82588. The
82592 has two modes of serial operation, High Speed
Mode and High Integration Mode. In High Speed
Mode (up to 20 Mb/s) the 82592 couples with the Intel
82C501 to provide an all CMOS kit for IEEE 802.3
Ethernet applications. In this mode the 82592 can also
serve as the controller for Twisted Pair Ethernet (TPE)
applications. In High Integration Mode (up to 4 Mb/s)
the 82592 performs Manchester and NRZI encoding!
decoding, collision detection, transmit clocking, and receive clock recovery on chip; in this mode it can serve
as a controller for StarLAN and other midrange LANs.
The 82592 provides several features that allow an efficient system interface to a wide variety of Intel microprocessors (e.g., iAPX 188, 186, 286, and 386) and industry standard buses (e.g., the IBM PC I/O channel
or the PSI2™ Micro ChanneI™). To issue a cOlnmand to the 82592 (e.g., TRANSMIT or CONFIGURE) the CPU only needs to set up a block in memory
that contains the parameters to be transferred to the
82592, program the DMA controller to point to that
location and issue the proper opcode to the 82592. The
82592 and DMA controller perform the functions
needed to complete the command, with the 82592 interrupting the CPU when the command is complete. The
82592 has a high-performance, 16-bit bus interface, operating at up to 16 MHz. It also implements a specialized hardware handshake with industry standard DMA
controllers (e.g., the Intel 8237, 82380, and 82370) or
the Intel 82560. This allows for back-to-back frame reception, and automatic retransmission on collisionwithout CPU intervention. The 82592 FIFOs (Rx and
Tx) can have their 64 bytes divided into combinations
of 32/32, 16/48,48/16, or 16/16.
The 82592 features a Deterministic Collision Resolution (DCR) mode. When a collision is detected while in
this mode, all nodes in a deterministic network enter
into a time-division-multiplexed algorithm where each
node has its own unique slot in which to transmit. This
ensures that the collision is resolved within a calculated
worst-case time. The 82592 also features a number of
network management and diagnostic capabilities; for
example,
• Monitor mode
• A 24-bit timer
• Three 16-bit event counters
For further information on the 82592, please refer to
the Intel Microcommunications Handbook.
3.2 Unique Features for Embedded
LAN Applications
The 82592 has several unique features that enable implementing a high-performance embedded LAN solution with minimal cost and complexity.
Peripherals on a motherboard must compete for access
to the system bus. Because there is no local buffer for
intermediate buffering of data, data transfers take place
in real-time over the system bus to the system memory.
A LAN controller must have a large internal data storage area to be able to wait for access to the system bus
while serial data is being received or transmitted. Without sufficient internal data storage, a LAN controller
cannot take advantage of the cost efficiency and simplicity of a non-buffered architecture. The 82592 has a
total of 64 bytes of FIFOs. This expanded FIFO section
allows the 82592 to tolerate long system bus latencies.
For example, during a Receive (with the Rx FIFO
length configured to 48 bytes) the 82592 can tolerate up
to 38.4 ,...S of bus latency-the time from a DMA request to reception of a DMA Acknowledge from the
DMA controller-before the possibility of a data overrun occurring in a 10 Mb/s Ethernet application. Once
access to the system bus has been obtained, the 82592's
high-performance, 16-bit bus interface provides efficient data transfer over the system bus, thus reducing
the bus utilization load for a LAN connection on the
host system.
The 82592 features a specialiZed hardware handshake
with industry standard DMA controllers. This hardware handshake between the 82592 and the DMA controller (on signal lines DRQ and EOP) relays the status
of a Receive or Transmit and allows for back-to-back
frame reception and automatic retransmission on collision without CPU intervention". This allows the 82592
and the DMA controller to perform these time-critical
operations in real-time without depending on the CPU
via an interrupt service routine, and without the time
delays inherent in such routines. For the 82592 Embedded LAN Module, this hardware handshake is enabled
by configuring the 82592 to the Tightly Coupled Interface (TCI) mode. Figure 2 shows details of the 82592's
TCI signals.
1-422
intJ
AP·S20
Transmit/Receive Status Encoding on DRQ and EOP
DRQ
EOP
0
Hi-Z
Status Information
Idle
1
Hi-Z
0
0
Transmission or Reception Terminated OK
DMA Transfer
1
0
Transmission or Reception Aborted
Tightly Coupled Interface Timings
ORQO,
ORQl
OACKO,
OACKI
~:
..
§'--
'\
--I
\.
-
Symbol
'\
- T104
-T23
Parameter
Tl 05
-
Min
-
Tloal-
290189-4
Max
Units
45
ns
CL
= 50pF
Notes
65
ns
CL
= 50pF
t23
WR or RD Low to DRQO
or DRQ1 Inactive
tlD4
WR or RD High to DRQO
or DRQ1 InactiVe
tlD5
WR or RD Low to EQj5 Active
45
ns
Open Drain I/O Pin
tl06
EOP Float after DACKO
orDACK1 Inactive
40
ns
Open Drain I/O Pin
2.5
Figure 2. TCI Encoding and Timings
1-423
inter
AP-320
These three features (FIFO depth, high-performance
bus interface, and TCI) allow the 82592 to operate successfully in a high-performance motherboard LAN
application. The application of these features will be
discussed further in Section 4.
schematics. The module consists of an 82592, two
20LlO PALs, and two 8-bit LS573 address latches that
combine to provide a 16-bit address latch. The module
contains no DMA unit or local memory.
The 82592 Embedded LAN Module is a simple, lowcost, low component count solution because it uses the
available system resources (DMA and memory) to provide for those functions normally added to a LAN solution. Removing DMA and local memory from a LAN
solution reduces cost and complexity. Two host DMA
channels, one for receive and one for transmit, are
needed to support the module. The DMA interface
from the 82592 (through PAL B) is the standard combination ofDRQ, DACK and BOP. These three signals
also provide the TCI between the 82592 and the DMA
controller. The size of the memory buffer needed to
, support the module depends on the specific application
and the amount of free memory available; the buffer
size can be specified by the programmer.
4.0 SYP301 INTERFACE
This section will discuss the details of the interface of
the 82592 Embedded LAN Module to the Intel
SYP30 I. The basic architecture will be presented, demonstrating that the 82592 Embedded LAN Module is a
low-cost, low component count Ethernet solution for
networking office PCs or workstations.
The Intel SYP301 is compatible with the IBM PC
ATTM. It features an Intel 80386TM microprocessor,
running at 16 MHz, as its CPU. Its system bus is compatible with the standard PC AT I/O-channel bus.
4.1 BasiC Architecture
Figure 3 shows the basic architecture of the 82592 Embedded LAN Module, and Figure 4 shows the module's
ADDRESS BUS AO-15
LATCH
LTCwT
DROO
DROI
DACK
EOP
INT
.
"
,r
OE
DMA INTERfACE
PAL B
CS
"r ) (ORO, DACK, EOP)
INTRO
.....
lORD
-
~
A
ADDRESS BUS AO-2 A5-9
PAL A
~I
DATA BUS 00-15
(RECEIVE)
(TRANSMIT)
(BOTH CHANNELS)
I~
82592
"
'I
lORD
lORD
IOWR
IOWR
~
"
DATA BUS 00-15
r
290189-5
Figure 3. 82592 Embedded LAN Module Baalc Architecture
1-424
8
5
5V
82592
,
DATA 0-15
CSMA/CD
R'
74ALS573
ADRS 0-15.
...
c:
J
10
1Q
2
....
20
2Q
5
A2
A3
A4
7
JQ6
JO
84D4Q9
13 50
sa 12
14 6D
6Q 15
A8
17 70
A7
18 80
11 C
CD
01»
N
c.n
M
3
A10
A1l
7
8
13
14
17
18
AS
cl
m
3
A12
A13
A14
A1S
CI'
CD
.... a.
a.
CD
./:..
a.
I\)
(]I
19
DO
J1!!
Dl
ii2
ii3
0.DO
DO
ii7
Ot
ii2
ii3
0.DS
DO
ii7
iii
4
Do
10
80
12V
50
eo
70
8Q
2
5
8
9_
12
15
16
19
D'2
0'3
0"
0'5
DD
Ot
ii2
ii3
0.-
....
E3
01i"
74ALS573
1D
10
2020
30
3Q
4D
4Q
SO
80
3
5
7
0,0
OC U'
~
:Sl
70 US
eo
.
2
AD
Al
~
."
iC'
CONTROLLER
4K
Ul
Ds
DO
OREa1
ii7
11
C
DREQO
IOWR ...
1
OC U5
lORD ...
r-
)0-
z
AD
Ai"
~
p;,AS
0
a.
c:
CD
en
n
::r
CD
3
AS
AS
AEN
III
n
IIJ
21
M
A7
PALS
I~i II
LATCH
..
is
jj
p,---
II
II
17
11
5"
I
1'9
13
U3
DACia.
OACK6e
LB
IOWR.
lORD.
RESET
,
R''3K
2
INTEL DFG TECHNICAL MARKETING
1900 PRAIRIE CITI RD FOLSOM CA 95630
IA
TITL_
82592 EMBEDDED LAN MODULE
DRAWN
BV
BELR
&'i'E
FILE"
ELMI
1 or-l
290189-48
inter
AP-320
The two PALs (PAL A and B) provide two major junctions for the module: (1) address decode (PAL A), and
(2) interpreting the TCI from the 82592 (PAL B). PAL
A decodes addresses for CS to the 82592, OE for the
address latches, and an Enable/Disable of the LAN
module. PAL B interprets the TCI of the 82592. When
PAL B detects EOP from the 82592 during reception of
a frame (EOP indicates the last byte of the receive
frame) it loads the memory address of the last byte of
the receive frame (the byte count) into the Address
Latch at the time it is written into memory. This allows
back-to-back frame reception without CPU intervention, and will be covered in detail in Section 4.2. For
Auto-Retransmit on collision, PAL B passes the EOP
signal from the 82592 to the DMA controller, reinitializing the DMA controller for retransmission. This process will be discussed in more detail in Section 4.3. Both
sets of PAL equations are listed in Table 1.
Table 1. PAL Equations
PAL20L 10 MMI-PAL A (Version 1.1)
AEN A2 RESET NC AO IOWBAR A5 A6 A7 AS A9 GND IORBAR 50lLB Al 59CTS OE2BAR
OEIBAR LANRSTBAR NC NC ENLANBAR 592CSOBAR VCC
=592CTS
592CSOBAR =AEN • A9 •
OE2BAR =AEN • A9 • AS
OEIBAR =AEN • A9 • AS
LANRSTBAR =AEN • A9 •
ENLANBAR
IF (VCC) 501LB
IF (VCC)
IF (VCC)
IF
(VCC)
IF (VCC)
IF (VCC) ENLANBAR
AS • A7 • A6 • A5 • A2 • Al • AO • ENLANBAR
• A7 • A6 • A5 • A2 • Al • AO • IORBAR • ENLANBAR
• A7 • A6 • A5 • A2 • Al • AO • IORBAR • ENLANBAR
AS • A7 • A6 • A5 • A2 • Al • AO • IOWBAR •
= LANRSTBAR
• ENLANBAR + AEN • A9 • AS • A7 • A6 • A5 • A2 • Al
• AO • IOWBAR
PAL20L 10 MMI-PAL B (Version 1.1)
592DRQO RESET DACK7BAR DACK6BAR IORBAR 592DRQI 592EOPBAR ENLANBAR AEN NC
IOWBAR GND 592INT NC DRQ6BAR DRQ7 DRQ6 DISDACK IRQIO NC MSEOPBAR LTCW
592DACKBAR VCC
IF (VCC) LTCW
=
IORBAR + 592EOPBAR + DACK7BAR
IF (ENLANBAR • 592EOPBAR • DACK6BAR) MSEOPBAR = 592EOPBAR • DACK6BAR
IF (VCC) 592DACKBAR = DACK6BAR • DISDACK • ENLANBAR + DACK7BAR • ENLANBAR
IF (VCC) DISDACK = IOWRBAR • DISDACK • RESET + 592DRQO • DISDACK • RESET
+.592DRQO • IOWRBAR • RESET
IF (VCC) DRQ7
592DRQI + 592EOPBAR • DACK7BAR
IF (VCC) DRQ6BAR = 592DRQO • RESET + DACK6BAR • DRQ6BAR • RESET
IF (VCC) DRQ6 = DRQ6BAR
IF (ENLANBAR) IRQIO = 592INT
NOTE:
The suffix BAR added to the above Signal names indicates an active low signal. A signal in these equations with a line
drawn above it indicates this signal is to be in a low state for the equation.
1-426
inter
Ap·320
4.2 Back·to-Back Frame Reception
TCI signals of the 82592 (PAL B loads the address
latch with the address of the last byte of the received
frame) and the structure of the received frame transferred from the 82592 to memory. Figure 5 shows the
format of an 82592 receive frame in TCI mode. After
the information fields are written to memory, the Status
and byte count of the received frame are appended to
the frame in memory. These four bytes (two bytes of
Status and two bytes of byte count) are the last four
bytes of the receive frame written to memory. The high
byte of the byte count is the last byte transferred from
the 82592 to memory. As this last byte is transferred to
memory, the 82592 asserts the EOP signal. When PAL
B detects the assertion of EOP by the 82592, it loads
the address of the last byte of the receive frame into the
Address Latch as this byte is written into memory. This
action ensures that there will always be a pointer (the
contents of the Address Latch) to the byte count of the
last frame stored in the RFA buffer in system memory.
Based on the value of the byte count, the beginning
address of the receive frame in memory can be calculated'; i.e., Byte Count Address Pointer - Byte Count =
Beginning of Frame. The byte count of a previous receive frame" would reside one address location before
the first byte of the current receive frame. That frame,
and any additional receive frames that may have preceded it, can have their start addresses recovered by the
same calculation used to recover the last frame received. This process allows frames to be continually
stored in the RFA buffer without CPU intervention,
and to be recovered by the CPU for processing. Figure
6 illustrates the process of back-to-back frame reception.
The architecture of the 82592 Embedded LAN Module
allows it to receive back-to-back frames without CPU
intervention. It uses a contiguous Receive Frame Area
(RFA) buffer in host system memory where receive
frames can be continuously stored. This sequential storage of receive frames can continue until the buffer space
is exhausted. The size of the RFA buffer can be specified by the programmer. Its size will be programmed as
the byte count of the Rx DMA channel. The Base Address Register contents of that channel serve as the
start address of the RFA buffer. The receive frames will
be stored sequentially in the RFA buffer based on the
contents of the Current Address Register of the Rx
DMA channel. The module's architecture, and the
82592 receive frame memory structure, allows the CPU
to recover the addresses of each Receive frame in memory for processing. The CPU can also reinitialize the
RFA buffer (by reinitializing the Rx DMA channel) as
the RFA buffer fills up and its contents are processed.
Alternatively, configuring the Rx DMA channel to
Auto-Initialize mode will allow the Rx buffer to automatically wrap around, back to the beginning of the
buffer, when its end is reached. This creates a virtual
"endless" circular buffer. When using this approach,
care must be taken to avoid writing over unprocessed
Rx frames-either by the addition of a hardware Stop
Register, or by guaranteeing that the Rx frames can be
processed faster than the buffer can wrap around.
Back-to-back frame reception without CPU intervention-and eventual recovery of the frames for processing by the CPU-is based on PAL B's decoding of the
15
14
13
11
12
10
9
8
7
6
DESTINATION ADDRESS SECOND BYTE
5
4
3
o
2
DESTINATION ADDRESS FIRST BYTE
I
I
DESTINATION ADDRESS LAST BYTE
SOURCE ADDRESS SECOND BYTE
SOURCE ADDRESS FIRST BYTE
I
I
SOURCE ADDRESS LAST BYTE
INFORMATION (LENGTH FIELD, HIGH)
INFORMATION (LENGTH FIELD, LOW)
INFORMATION LAST BYTE
CRCBYTE l '
CRC BYTE 0'
CRCBYTE3'
.
CRC BYTE 2'
X
X
X
X
X
X
X
X
SHORT
FRAME
X
X
X
X
X
X
X
X
0
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
The CRC bytes are transferred to memory only when the deVice
NO
EOF
TOO
LONG
1
NO
SFD
NO ADD
MATCH
I-A
MATCH
Rx
CLD
0
Rx
OK
LEN
ERR
CRC
ERROR
ALG
ERROR
0
OVER
RUN
BYTE COUNT LOW
BYTE COUNT HIGH
IS
so configured
Figure 5. Receive Format for the 82592 in 16-Bit Mode (Tightly Coupled Interface Enabled)
1-427
inter
AP-320
Example No.1
Example No.2
Example No.3
First Frame
Received
Second Frame
Received
nth Frame
I Rev
Frame
I
Areal
In Host Memory
Latch
1---I
I
I
Frame 1
I
Status
status
Byte Count
Byte Count
Remainder of
RFA Buffer
I
RCV Frame AreO
In Host Memory
Frome 1
I
Received
I
I
I
RCV Frame Area
In Host Memory
Frame 1
Status
Byte Count
I
I
I
Frome 2
Additional
RCV Frame.
I
I
I
I
290189-6
Frame n
Statu •
I
Latch
. t-----
Byte Count
Statu.
I
I
I
Remainder of
RFA Buffor
I
I
I
I
r
Latch
}----+
I
290189-7
Byte Count
I
I
I
RemaInder of
RFA Buffer
I
I
I
I
I
290189-8
NOTES:
The 82592 appends the byte count to the end of each RCV frame.
PAL 'B' loads the latch with the memory address of the last byte of each RCV frame.
Based on latch contents and the byte count of each frame, the CPU recovers the RCV frames.
Figure 6. Back-to-Back Frame Reception
4.3 Automatic Retransmission on
Collision
Automatic retransmission on collision detection is accomplished by the TCI between the 82592 and the host
8237 DMA controller and requires no CPU intervention. The transmit channel of the 8237 should be configured for Auto-Initialize mode. The transmit block
(data to be transmitted) starts at the location pointed to
by the Base Address Register of the Tx DMA channel.
During a Transmit command, the 82592 DMA requests begin at the start of the transmit block and work
sequentially through the block (by incrementing the
contents of the 8237'8 Current Address Register) until
the transmission is complete. Should a collision occur,
the 82592 asserts the EOP signal and DRQ* to the
8237 (these signals pass through PAL B) causing the
8237 to auto-initialize back to the beginning of the
transmit block (the Current Address Register is loaded
with the value in the Base Address Register). Internal-
ly, the 82592 generates a Retransmit command and begins making DMA requests to the 8237, which is now
pointing to the beginning of the transmit block. The
82592 also enters into a back-off algorithm (counting to
a random number to resolve the collision). When the
back-off algorithm is complete, and the 82592 regains
access to the serial link, retransmission is attempted.
The 82592 will repeat this process until the retransmission is completed successfully or until the maximum
allowable number of collisions per Transmit command
is reached-at that point all retransmit attempts stop.
No CPU involvement is required to carry out a retransmission. The process of automatic retransmission is
shown in Figure 7.
NOTE:
'For Auto-Initialization of the 8237, the signal DRQ
must be asserted to the 8237 along with assertion of
EOP. With the 82380 and 82370 DMA controllers,
Auto-Initialization can be triggered by asserting the
EOP signal alone.
1-428
inter
AP-320
Prior to Transmission
BAR = CAR
Transmit DMA Channel In
Auto-Initialize Mode
During Transmission
CAR Increments
BAR/CAR -+
BAR-+
Transmit
Buffer in
System
Memory
CAR-+
Collision:
82592 EQi5 Asserted to 8237
CAR Reset to BAR
(by 8237's Auto-Initialize)
BAR/CAR-+
Transmit
Buffer in
System
Memory
Transmit
Buffer in
System
Memory
After Back Off the 82592
Retransmits from Beginning of
Transmit Buffer.
No CPU Intervention is
Required for Retransmission
BAR = Base Address Register
CAR =' Current Address Register
Figure 7. Automatic Retransmission on Collision
4.4 Target Systems for Integration
The 82592 Embedded LAN Module is designed to be
implemented on an Intel SYP301 motherboard; thereby
demonstrating a low-cost LAN connection for a workstation. The SYP301 has an IBM PC AT style bus architecture with a 32-bit Intel 80386 as the main processor. The interface between the 82592 LAN Module and
the SYP301 is based on standard interface signals
(DRQ, DACK, BOP, IRQ, lOR, lOW, etc.) so the
basic architecture of the module can be implemented on
PC AT based systems. This design has been successfully tested in PC AT style systems produced by several
manufacturers. For some PC AT based systems, and
PS/2 Micro Channel systems, the module's design may
require some modification. IBM PC and PC XT based
systems do not have sufficient DMA bandwidth to support the non-buffered architecture of this module.
4.4.1 PC AT BASED DESIGNS
High-integration chip sets replace a large number of
discrete VLSI, LSI, and TTL components with several
integrated VLSI devices that duplicate a large portion
of the PC's functionality. PC AT compatible systems
using such chip sets may lack support for the automatic
retransmission feature of the 82592 LAN Module. This
is because many manufacturers of such chip sets have
integrated the EOP function but eliminated the EOP
input. This lack of an EOP input disables auto-initialization of the DMA controller for retransmission. In
this case retransmission can be performed in one of two
ways.
• Should a collision occur while transmitting the preamble, the 82592 (when configured to automatic retransmission mode) will automatically retransmit
without CPU intervention or auto-initialization of
the DMA. This is effective for shorter network topologies where collisions are normally detected early in the frame.
• Should a collision occur after the preamble, the
82592 will interrupt the CPU and the CPU will initiate the retransmission.
For a PC AT style architecture, logic must be implemented to accommodate DRAM refresh. DRAM refresh cycles typically occur at 15 f.Ls intervals. In a standard PC AT, any DMA user should limit the time of a
DMA burst to 15 f.Ls; this is to ensure that the system
bus is free for the refresh to take place. Any designer
using burst mode DMA.must consider this requirement
when implementing a design.
4.4.2 PS/2 MICRO CHANNEL ARCHITECTURE
DESIGNS
The IBM PS/2 and other compatibles using the Micro
Channel architecture have a different host interface to
the 82592 Embedded LAN Module; however, the basic
architecture of the module is still applicable. As in the
SYP301 solution, the TCI between the 82592 and a
1-429
inter
Ap·320
control PAL loads the address latch with a pointer to
the last receive frame. Based on the contents of the
latch and the 82592 receive memory structure, the
frames are recovered for processing by the CPU. The
differences between a PC AT architecture and a Micro
Channel architecture require different control signal
decoding. The Micro Channel requires a 24-bit address
latch, as opposed to a 16-bit latch in the 301, and to
acquire the system DMA it requires different arbitration logic to drive a 4-bit arbitration level on the Micro
Channel. The Micro Channel also does not have an
EOP input; therefore, auto-initialization of the Tx
DMA channel and support of automatic retransmission
without CPU intervention must be provided by using
one of the alternative methods recommended in the
previous section.
4.4.3 EMBEDDED CONTROL DESIGNS
The 82592 Embedded LAN Module architecture can
also be applied to an embedded control application that
contains some DMA functions. For an embedded application using an 8237, 82380 or 82370 DMA controller,
the basic architecture of the 82592 Embedded LAN
Module can be used. For an interface to DMA devices
that do not feature the EOP signal as an input (for
example, DMA units on board a CPU), the alternative
methods for retransmission given earlier can be used.
5.0 SERIAL INTERFACE MODULE
The serial interface for the Intel SYP301 82592 Embedded LAN Module is implemented as a separate module.
Since the 82592 Embedded LAN Module is intended to
be integrated into a system motherboard, implementing
the serial interface as a separate module-perhaps as a
very small PC board that plugs into a socket-allows
for easy interchangeability between different serial interface media. This modularity allows the system board
manufacturer to avoid committing his motherboard to
only one type of medium, and thus requiring a major
redesign for each different serial interface.
Modularity in the data communications field is encouraged by the Open Systems Interconnect (OSI) reference
model. The 82592 is designed to operate through the
lower half of the Data Link Layer (see Figure 8), implementing CSMA/CD Medium Access Control and interfacing directly with the Physical layer below it. By
interfacing the 82592's standard CSMA/CD interface
signals~a serial module (TxD, RxD, TxC, RxC,
CDT, CRS, and others) different Physical Link modules can be implemented without any change to software. Examples of serial interface modules that could
be interchanged by simply plugging a new module into
the motherboard are Ethernet/Cheapernet, Twisted
Pair Ethernet (TPE), StarLAN, Broadband Ethernet,
and many proprietary CSMA serial media. Figure 9
shows the schematics of an Ethernet module; and 'Figure 10 those of an Ethernet/Cheapernet module.
OSI
Reference Model Layers
7
Appllcotlon
6
Presentation
5
Session
4
Transport
:5
Network
2
Data Link
Physical
,"
,'-
,
I-----M-A-C----I
2
"
"
"
" "
LLC
Logical Link Control
Medium Access Control
#,'
PLS
Physical Signaling
290189-10
Figure 8. The 82592 Embedded LAN Module Relationship to the OSI Reference Model
1-430
l
~~~
,,~
1,
-I"'
Yl
=:J
,1~414~
2'6 PF
:II
.a
c
!D
•
"..
i..
::3
ID
I
I.
.
TXC_
TXD
RXD
RXc.
COT.
CRS.
17
16
9
8
7
6
-2
E.
~ 1.0uF
, Rl
TxD
TxC_
RxD
RxC.
COT.
CRS.
LPBK.
2
I
I
78
, R4
Ul
78
+12V
2
240
,R3
TRMT
2
TRMT.
240
, R2
TRMl 19
TR~ 18
4
RCV. 5
CLS 12
CLSN 11
X2 13
Xl 14
20
-;i- TEN_
RTS.
::3
c.> :....
-J. Cl
C2
R5
lOOK
2
, C3
C;'
82C501
SERIAL
INTERFACE
ii1
,
20.0MHZ
2
2
-'\7
RCV
I,
2
2
RCV.
I
CP
CP.
+12V
Hb-
1
3
4
10
6
5
8
12
11
2
14
9
13
E C
T 0
HN
E N
R E
NC
E T
T 0
R
Jl
'7
1Tz°. 1UF Tz°·1UF
~
C5
' C6
290169-46
:.
l
~
12VDC
J
'Cll
-i
~~
•
--i
~
g.
22
,RB
~
c:
5VOC
78
,R122
RCV
, R10 2
CPo
In
43.2
,R9
::r
CP
43.2
1
R11
2
~
CD
Fl~7°u
:tee
lo.olUF
CD
.....
.
20 PF
0
::r
, R13
,<;9
1
~ Y1
2
20 PF
'
..
.
.
1
1
lo.olUF
C19
.22uF
' C20
.22uF
G)
"
]>
:J
I»
--i ClC2
TENo
~ TxO
, e22
~
"""""RXD9
RXCo
RxO
8 RKC.
COT...
~ CRS.
X2
~
-2 LPBK*
Xl
II
~
~
INTERFAC ~
SERIAL
2
2
C4
Ta°.
1UF
,1
'F
~
CR2
2
,
R21
10
2
5VOC
12VDC
~
E6
78
, R4
PE64102
15
15
13
12
10
9
14
.~
78
1
J
240
U2
CR3
~
l
I\)
o
JUMPER BU<
1.0ur
, R2
18
4
5
12
11
RC'
ReV.
Cl
CLSN
TxC.
lN4'48
10
~
UI3
""-=-
lN4148
2
240
r-;-g
fiT
7
2
TRIAl
TRMT
Itt
3
4
5
6
8
R22
1001(
lN4148
,Rl
82C501 __
0'
82502
,
CR4
CD
2
TRMT.
ReV
ReV.
CPo
CP
5p>C
20.CMHZ
:J
CD
~1 e1a
24~RMT4 TRANSCIEVER rl-i-15
5028US
2
CD
I»
:I:
10AVDC
'¢'
, JbQ
:J
0
Q.
c:
SAVDC
~-=.?14
•
11
ReV.
'1;0.OluF
43.2
-..
..
-
IQ
~
UIO
......
?
(i)
I\)
TRMT
1 C15
DC/DC
CONVERTER ~
16
r-ii
43.2
CD
J,.
•
SAVDC
~
~
~
15
f'O.OIUF~
TRMT*
l
2VA12U10-5
1
PULSE
TRANSFORMER
t+
II:
2
1
2
4
5
7
8
~
U3
E12
Ell
EIO
E9
E8
E7
I
1 ,---,
TRMT
r--i"
E18
TRMT.
E17
E4
RCV
E16
E3
Rev..
E15
E2
CP
E14
El
CPo
E13
E5
I----rti
H
0
E
N
~ NR
N
t---t
t---!f
22uF
E
~ T
12VDC
,age
rx buf head
he"ie
dw
dw
dw
d"
dw
d"
d"
dw
d"
dw
-
rx buf tail
rX:bufJ>tr
rx_buf_stop
rx_buf_length
r"_buf_seglMnt
curr_r"_length
rx list
nuiii of frame.
reset rx buf
padding -
dw
dw
d"
dw
d.
dw
d ..
d ..
dw
d ..
5000 dup (0)
1388h
cgroup:llP_buf
°°
°0
°°°
°00
itwice the required size
;A1-A16 of General Purpose Buffer EA
;A17-A23 of General Purpose Buffer EA
;IPX packet length plus header length
;A1-A16 of General Purpose Buffer EA
;A17-A23 of General purpose Buffer EA
;current rx head, buffer has been flushed to
;value read from 10 cent latches
;used during rx list generation
;point to reset the DMA controller
0
;calculated at init for use by IPXReceivePacket
0
0
180 dup (0)
0
0
0
Define Hardware Configuration
290189-20
1-438
Ap·320
Table 2. Declarations (Continued)
db
ConfigurationID
'NetWareDriverLAN WS
SDriverConfiguration
LABEL
reservedl
node addr
reserved2
node addr type
max data size
(512, 1024, 2048, 4096)
lan desc offset
lan-hard;ar. id
transport tiia
reserved '3
major_veision
minor version
flag bits
selected configuration
addresses, etc.)
number of configs
configJ>oInters
db
db
db
db
dw
LANOptionName
configurationO
db
dw
db
dw
db
db
db
db
o
o,
o
o,
byte
4 dup (0)
6 dup (0)
0
inon-zero means is a real driver.
;address is determined at initialization
1024 ;largest read data re~est will handle
°
dw
db
dw
db
db
db
db
db
LANOptionNama
OAAh
;Bogus Type Code
1
;transport time
11 dup (0)
Olh ;Bogus version number
OOh
0
0
iboard configuration (interrupts, IO
db
dw
01
configurationO
db
'Intel LAN-On-MOtherboard Module',O,'$'
dw
300h, 16, 0, 0
;IO ports and ranges
0
0
;memory decode
;interrupt level 10
iDMA channels 6 and 7
OFFh, 10, 0, a
OFFh, 6, orFh, 7
0,0
I
IRQ 10,
IO Addr = 300h, DNA 6 and 7, For Evaluation Only', 0
;*********************************************************
Error Counters
;********************************************************
Public DriverDiagnostieTable,DrivarDiagnosticTaxt
DriverDiagnosticTabla
DriverDebugCount
DriverVersion
StatisticsVersion
TotalTxPacketCount
TotalRxPacketCount
NOECBAvailableCount
Packet~xTooBigCount
PacketTxTooSmallCount
PacketRzOverflowCount
packetRzTooBigCount
PacketRxTooSmallCount
PacketTxMiscErrorCount
PacketRxMiscErrorCount
Retry'l'xCount
ChecksumErrorCount
LABEL
dw
db
db
dw
dw
dw
dw
dw
dw
dw
dw
dw
dw
dw
dw
byte
DriverDebugEnd-DriverDiagnosticTable
01,00
01,00
0,0
0,0
0
;not used
-1
;not used
-1
0
0
0
;not used
-1
; not used
-1
0
inot used
-1
290189-21
1-439
intJ
AP-320
Table 2. Declarations (Continued)
HardwareRxHismatchCount
NumberOfCUstomVariables
DrivarDebUgEndl
LABEL
o
dw
dw
(DriverDiagnosticText-DriverDebugEndl)/2
byte
:;;,';;;;;;;;;:;::::;:;;;;;;:;:;:;;;;;;;
Driver Specific Error counts
:;;;;i;;;;:;;;;;;;;:;;;;:;;;;;;;;;::;::
rx errors
under runs
no_cta
no cra
X'x-aborts
no-S90 int
false 590 int
lost ix
stop:tx
ten cent latch crash
rx disb failure
t xabort failure
rx-buff ovflw
tx:timaout
-
dw
dw
dw
dw
dw
dw
dw
dw
dw
dw
dw
dw
dw
dw
DrivarDiagnosticText
db
db
db
db
db
db
db
db
db
db
db
db
db
0
0
0
0
0
0
0
0
0
0
0
0
0
0
LABEL
byte
db
'RxErrorCount',O
'UnderrunCount' , 0
'LostCTSCount',Q
'LostCRSCount',O
'RxAbortCount',O
'NoS90XnterruptCount',0
'False590InterruptCount',O
'LostOurReceiverCount',O
'QuitTransmittingCount',O
'TencentLatchCrashCount',O
'RxDisableFailureCount',O
'TxWontAbort',O
'ReceiveBufferOverflow',O
' Tx'limeoutErrorCount' ,0
db
0,0
DriverDebugEnd
LABEL
word
290189-22
1·440
inter
AP·320
7.2 Initialization Routine
This routine, Driver Initialize, initializes the Embedded
LAN Module hardware and the system hardware needed to support the module. It also sets up the system
memory structure to support the module.
7.2.1 HARDWARE INITIALIZATION AND 82592
CONFIGURATION
Initialization of the Embedded LAN Module hardware
begins with generating an individual address for the station, initializing the interrupt line and interrupt vector,
and enabling the module by writing to port address
303h. After initializing the memory structure, the
82592 is directly programmed. This programming includes configuring the 82592 and initializing it with the
station's individual address. The 82592 is configured in
two steps. The first specifies a 16-bit-wide system bus
interface by issuing a Configure command to the 82592,
with OOh as the byte count; i.e., no parameters passed to
the device. Then ~ second· Configure command is issued; it does the following.
• The 82592 is put in High Speed Mode to support
Ethernet serial bit rates.
• It is placed in TCI mode for interface to the Embedded LAN Module architecture.
• All network parameters (e.g., Frame Length, Slot
Time, and Preamble L~ngth) are set up for default
Ethernet values.
Following this initialization and configuration of the
module's hardware, the 8259A Programmable Interrupt Controller's interrupt line for the module is enabled, allowing the interrupt-driven events frame reception and completed transmission. Then a Receive ~n
able command is issued to the 82592. Table 3 contams
the code for hardware initialization.
Table 3. Hardware Initialization
.egment 'CODIt'
publie
Dd..... dnitiali •• , Dd.... rUnJlook
no card message
db CR,LI', 'No adapt.Z' installed in PC$'
confi; failure ma ••age
db CR,LI', 'COnfiquration ... 11ure$'
i.sat failure iDa •• &g8
d]) ca, II, , IA Setup "allure$'
confiiDataUndirz:unHa..
db Cl\,Lr, 'COnfiguration underrun$'
Driver Initiali.e
aaSUl'Cl8a:
DS, SS ue ••t to CGJ:Oup ( - CS)
OI points to where to stuff node addresa
Inter:rupta an BNABLBD
The Real T.ime Ticks variable is being set, and. the
.ntira US .y.t.... i. initiali.ed.
returns:
I f initialization ia clone OK:
AX ha• • 0
Xf board malfunct.i.on:
AX qat. oft.et (in CGroup) of ' $' -ta.mdnated error string
Driverlnit1ali •• PllOC
NEAR
mov
MaxPhyal'acketSiz., 1024
eli
cld
mov ax, cs
mov cU, aa
move., as
g.t DOS tima and u •• for addre ••.
mov
ah,02Ch
int
21h
mov
ba, OrrSBtz CG&'Ou.p: node_addZ'
mov
byte pt" cgroup: [bZ], OOh
mov
byte pt" cg"oup: [1»:+1], OAAh
mov
byte pt" cg"oup: [1»:+2], ch
mov
byte pt" eq"oup: [1»:+3], ell
mov
byta pt" eq"oup: [1»:+4], cIh
mov
byte ptr egroup: [b,,+S], 711h
mov
ai, bx
; stuff address at point IPX incU.cated
move ..
move.
movsw
ati
in1tiallze the configuration table
mov
cbw
al, •• lected_configuration
ah~
ax,l
; IINltiply by two
eat o..rSE~ CGaOUP: config...,POinters
add
; ax contains the offset' va~\1e
290189-23
1-441
inter
AP-320
Table 3. Hardware Initialization (Continued)
mov
!IOV
bx/az
bx, [bx]
!IOV
!IOV
Config,bx
a1, [bx+DMAOLOC]
mov
mov
config_dmaO~loc,al
!IOV
al, [bx+DMA6LOC]
config_dma1_1oc,al
al, [bx+laQtoC]
mav
mav
mav
ax, [bx+BPOaT]
command_reg, 300h
mov
;of the default configuration
;list
config_i~10c,a1
SetThelnterruptVector:
SET UP THB IN'rEIUUlPT VECTORS
push
mav
mov
call
pop
mov
out
hlow
mov
mov
out
di
aI, config_ir'l...loc
bx, OFFSET CGroup: DriverISa
SetlnterruptVector
di
dx, EnLAN
dx, al
;enab1a LAN on MB module
dx, cODl'l\l.ftd_reg
aI, C RS'!'
dx, aT
; reset the 82592 controller
;generata 20 ~it address for DMA controller from configure block location
;this i8 necessary to accomodate the page register used in the PC DMA
iset up DNA channel for configure command
xor
out
'slow
mov
out
mov
hlow
out
mav
'slow
out
mav
'slow
out
!IOV
hlow
out
mav
hlow
out
mov
%slow
out
mav
ax, ax
DMAff, al
idata 1s don't care
a1, DMAana
DMAemdstat, al
ax, gp_buf_start
DMA6add.:, a1
al, ah
DMA6addr, a1
ax, gp_bufJ'age
DMA6page, al
ax, 1
DMA6wdeount, a1
aI, ah
DMA6wdeount, al
al, DMAtx6
;DMA page value
;make two transfers
;satup channel 6 for tx mode
DMAmode, al
al, DMA6unmsk
290189-24
1-442
intJ
Ap·320
Table 3. Hardware Initialization (Continued)
'slow
out
DKAsnglmak, al
ax, ax
mov
atoaw
atcsw
di, gp buf off.et ;mov .eroes into the byte count field of the
-;buffer to put the 82592 into 16 bit mode
,..,r
the
%&10"
mov
mov
out
hlow
dx, cOll'IDand_req
al, C CONl'IG
dz, .1
;configura the 82592 for 16 bit mode
ii.sua configure command
wide_mode_wait_loop:
xor
a1, a1
-'lIslow
out
'slow
in
and
c:mp
jz
loop
mav
jmp
dz,.l
;point to register 0
al, dz
;read register 0
al,ODl'h
; disregard exec bit
al, 82h
; is configure finished?
do_config
wide mode wait loop
ax, OFFSET OGroup: no_cArd_message
init_exit
do_config:
mav
al, C IN'rACK
out
dz, aI
xor
ax, ax
; clear interrupt
%slow
out
mov
hlow
out
mov
%slow
out
mav
%slow
out
blow
mav
out
hlow
mav
out
talow
mov
out
blow
mov
out
mov
mov
mov
mov
DMAff, al
ax, gp_buf_start
;data is don't care
DMA6addr, .1
al, ab
DMA6addr, al
ax, gp_bufJ>age
DMA6page, .1
al, DMAtx6
DMAmode, al
;DMA page value
;setup channell for tx mode
ax, 8
DMA6wdcount, al
al, ah
DMA6wdcount, al
al, DMA6unmsk
DKAsnglmak, &1
ax, da
as, ax
ai, offset cgroup:config_block
di, gp_buf_offset
290189-25
1-443
inter
Ap·320
Table 3. Hardware Initialization (Continued)
mov
rep IIIOvsb
IIIOV
IIIOV
out
blow
xor
ex, 18
dx, command_reg
al, C CONJ'IG
dx,
al
configure the 82592
ex, ex
config_wait_loop:
h10w
xor
a1, a1
hlow
out
dx, al
:point to register 0
hlow
in
al, dx
: read register 0
and
al, ODFh
:discard extraneous bits
cmp
al, 82h
: ia configura finiahed?
jz
config_done
loop
config_"ait_loop
IIIOV
ax, OFFSET CGroup: config_fai1ure_messsge
jllq>
init_exit
config_done:
clear interrupt caused by configuration
IIIOV
al, C INTACIC
out
dz,.1
do an lA_setup
IIIOV
di, gp_buf_offset
mov
stosb
mov
stoab
IIIOV
Il10''
rep movsb
out
'.low
IIIOV
out
mov
'slow
out
IIIOV
h10w
out
blo"
mov
out
h10w
mo..
out
islow
Il10''
out
'810w
IIIOV
out
al, 06b
iaddress byte count
a1, OOh
ai, OFFSET CGROUP:node addr
ex, SIZE node_addr
DMAff, al
:data is don't care
ax, gp_buf_start
DMA6addr, al
al, ah
DMA6addr, al
ax, gp_buf"'page
DMA6page, al
a1, DMAtx6
DMAmode, a1
:DHA page value
;setup channell for tx mode
ax, 3
DMA6wdcount, a1
al, ah
DMA6wdcount, a1
a1, DMA6unmsk
DMAsngllllak, a1
290189-26
1-444
inter
AP-320
Table 3. Hardware Initialization (Continued)
mov
mov
out
xor
cIx, COJlllNlnd_reg
al, C IASET
cIx,
;set up the 82592 individual address
a1
ex, ex
i. used by the loop instruction below. this
;e_u.s•• the loop to be executed 64k times max
lax
ia wait loop:
- zoral,_l
out
cIx, al
talow
in
al, cIx
al, ODFh
and
;discard extraneous bits
cmp
al, 8lh
is command finished?
jz
ia done
loop
ia wait loop
mov
ax; OFFSET CGroup:
init_exit
jmp
ia_done:
mov
al, C INTlICK
out
dx, al
;c1.a2: interrupt from ieset
;initialize the receive DHA channel
XOr
al, 81
out
DMAff, al
mov
ax, r.K_buf_start ;set dma up to point to the beginning of rx buf
%slow
out
mov
talow
out
mov
blow
out
mov
blow
out
mov
hlow
out
mov
blow
out
mov
hlow
out
DHA7addr, al
aI, ah
DHA7addr, al
ax, rx_bufJ>age
:set rx page register
DMA7page, al
aI, DMArx7
DMAmode, .1
ax, rx_buf_length
:set wordcount to proper value
DHA7wdcount, al
aI, ah
DHA7wdcount, al
al, dma7unmsk
;unmask receive DMA channel
DMAsnglmsk, al
;unmask our interrupt channel
in
al, InterruptNaskPort
mov
bl, OFBh
and
al, bl
'slow
out
InterruptMaskPort, al
;enabla the receiver
cIx, command reg
mov
al, C RXENBIIIOv
cIx, a1
out
xor
;enabla receives
ax, ax
290189-27
1·445
inter
AP-320
Table 3. Hardware Initialization (Continued)
mov
ez., 1
init exit:
ret
ConfigDataUnderxun:
mav
ax, OFFSET CGroup: ConfigDataUnderrunMess
jmp
init_exit
IASetupDataUnderrun:
mav
ax, OFFSET CGroup: IASetupDataUnderrun
jmp
init_ezit
Drivarlnitialize
endp
SetInterruptVector
Sat the interrupt vector to the interrupt procedure's address
save the old vector for the unhook procedure
assumes: bz has the ISR offset
al has the IRQ level
interrupts are disabled
SetlnterruptVector
PROC
NEAR
mask on the appropriate interrupt mask
push
ax
xchg
ax, ex
1
IDOV
d~,
shl
mav
not
mav
mav
mav
pop
old
cbw
"or
mav
add
dl, cl
int bit, dl
ahl
shl
xchg
mav
mav
mav
mav
mav
xchg
stosw
IIIOV
;get tha appropriate bit location
iset the interrupt bit variable
dl -
int mask, dl
;set the interrupt mask variable
ax,-XnterruptMaskPort
int_mAsk_register, ax
ax
ex, ex
es, ex
al, 6Sh
;adding 8 converts int number to lnt type, i.e.,
=
lint 4 - type 12, int 5
type 13 etc.
ax, 1
ax, 1
;two shifts • mul by 4 to create offset of vector
ax, di
int vector addr, di
;sava this address for unhook
ax,-as: [di]
;save old interrupt vector
word ptr old_i~vector, ax
ax, es: [di] + 2
word ptr old_i~vector + 2, ax
ax, bx
;bx has the tSR offset
ax, cs
290189-28
stosw
ret
SetInterruptVector
endp
290189-29
1-446
inter
AP-320
• No page break occurs. The buffer size is not adjusted, the Tx/GP buffer area will be in the first 1200
bytes of the 10 kB buffer, and the Rx area will use
the remainder.
• A page break occurs, and the buffer is divided so
that one fragment is' smaller than 1200 bytes. This
fragment is too small to be used and both the
Tx/GP and Rx areas will be placed in the larger
segment.
• A page break occurs that divides the 10 kB buffer
into two segments both large!; than 1200 bytes. The
software then places the Tx/GP area in the smaller
segment, and the Rx area in the larger.
7.2.2 INITIALIZING SYSTEM MEMORY
A buffer is constructed in system memory to support
the Embedded LAN Module architecture. This buffer
is divided into a receive buffer area and a transmit/general-purpose buffer area. This buffer (Tx/GP) is used as
the transmit buffer and as the parameter block for
82592 commands that require parameters.
The combined size of the buffer areas requested by the
program is 10 kB. The Tx/GP buffer should be at least
1200 bytes long. The Rx buffer should be at least 5 kB
long. The amount of memory requested is twice the size
of the minimum Rx buffer length because of the possibility of a DMA page break occurring at some point in
the 10 kB buffer area. A page break can occur because
the SYP301 (or any PC AT based architecture) uses a
static page register to supply the upper address bits
(A17-A23 for a 16-bit DMA channel) during a DMA
cycle. These upper bits of the address cannot be incremented. The software checks for a page break and adjusts the buffer size if one is found. There are three
possible page break scenarios.
Buffer
gp-.bu'-start
Start
These three scenarios are shown in Figure 12. In no
case is the Rx area less than 5 kB-half the total buffer
size. Once these calculations are made, the transmit
and receive DMA channels, along with their page registers, are programmed to point to their respective areas
in the buffer (Tx/GP and Rx). With the memory now
initialized, configuration and initialization of the 82592
can begin.
Buffer
Suffer
Start
Start
A
A
A
Unusable Portion
Transmit and
General Purpose
Buffer Space.
(Less than
Transmit and
General Purpose
Buffer Space,
gp_bu'-start
1200 Bytes)
DMA
1200 Bytes
boundary
1200 Bytes
~buf--start
B
B
Transmit and
DMA
General Purpose
Buffer Space.
Wasted Space
boundary
1200 Byte.
Receive Buffer =
Total Buffer Space
",-"u'-start
C
- 1200 Bytes
C
Receive Buffer =
-A+B
-A+B
(1200 bytes
framend)
Buffer
End
No DMA boundary in the buffer space.
Tx/GP buffer is located in the first 1200
bytes. Rx buffer occupies the balance of the
space.
latalSuffer Space
Receive Buffer =
Total Buffer Space
OL-buf_stop
rl<-buf_stop
",-"u'-stop
(1200 byte.
framend)
framend)
(1200 bytes
Buffer
Buffer
End
End
DMA boundary exists in the buffer space.
and the first fragment is to small to use (less
than 1200 bytes). The buffer start point is adjusted by adding the length of the fragment
to the original start pOint. Tx/GP buffer occupies the first 1200 bytes after the DMA
boundary, Rx buffer occupies the balance of
the buffer space.
.
DMA boundary exists in the buffer space.
The first section is the smallest section. so
the buffer is located there. The receive buffer occupies the larger section of the buffer.
Figure 12. DMA Page Break Affect on Buffer Size
1-447
inter
AP-320
The Rx buffer .area is implemented as a restartable linear buffer. As frames are stored in this buffer they are
processed by the IPX routine IPXReceivePacket. A
variable called ~BUF_STOP points to a location
1700 bytes from the end of the Rx area. On reaching
(or passing) this location in the Rx area, frame reception is temporarily disabled, and the remainder of the
receive frames ary processed. After the last frames have
been processed, the receive area is reinitialized, the receive channel DMA is initialized to point back to the
beginning of the receive area, and frame reception is
reenabled. Table 4 contains. the code that initializes the
buffer memory. Section 7.3 gives further information
on receive frame processing.
Table 4. Buffer Memory Initialization
.;
Sat up BuffetS:
This toutine genetates the page and offset addz:esses fot the
1~
bit
PMA. It checks for a page crossing and uses the smaller half of the
buffat araa fot Tz and ganetal purpose if a crossing is detected. If
no ctossing is detected the general purpose/transmit buffer is placed
at the beginning of the buffer area. This routine also generates a.
segment address tor the receive buffer which allows the value read
from the "10 cent" latches to be used as read fot the offset passed
to IPXReceivePacket. This saves soma arithmetic steps when tracing
back through the rz buffet chain.
proc
ne.:
mov
mov
ax, offset cgtoup: 9'P_buf
9'P_buf_offset, ax
mov
bx, as
dx, es
mov
shr
mov
ax, 1
ex, 3
shl bx, cl
rol dz, cl
;gat upper 3 bits for page register
and dz, 0007h
;clear all but the lowest 3 bits
add ax, bx
;ax contains EA of first location in buffer
adc dz, 0
;if addition caused a carty add it to page
mov ex, OFFFFh
;of buffer to page break
sub ex, ax
;cx contains the number of bytes to page break
""" ex, Ol388h
jb
intel_hop
jmp copacetic
iit's cool, whole buffer space is in one page
intel hop:
ciiip ex, 0258h
ja
low ok
;low fragment is a usable size, check upper fragment
add az,-cx
imove pointer past the page break to discard fragment
sub 9'P_length, ex ;adjust length variable to reflect shorter length
mov 9'P_offset_adjust, ex
shl 9'P_offset_adjust, 1
;convert to byte format
mov ex, 9'P_offset_adjust
add 9'P_buf_offset, ex
;adjust 9'P_buf starting point to reflect change
jmp copacetic
;both buffers will be ift the same page, rx bUf
shortenad
low_ok:
""" ex, 1130h
jb
high_ok
mov 9'P_length, ex iadjust length variable, discard upper buffer fragment
;both buffets will be in the same page, rx buf
jmp copacetic
shortened
high"';Ok:
ja
"""
mov
shl
inow
ex, 09C4h
z:x first
9'P:bUf,J>age,
9'P_buf.J'age,
since both fragments are usable we have to find the
;actual page break. the large half will be the receive
;buffer and the small half will be the 9'P-tx buffer.
dz
1
290189-30
1-448
inter
AP-320
Table 4. Butfer Memory Initialization (Continued)
....
IIIOV
IIIOV
add
IIIOV
.1>1
.1>1
ado
IIIOV
IIOV
....,12
a"l
D, cl
n_"
IIIOV
""_buf_.~t, D
alii>
vp_laDgtb, ba
....
, buf_laDgtb,
Vp_laDgth
__
......
.ub
."1
acid.
......
:l1IIP
IIOV
_
vp_buf_ataR, g
zoo_buf_.taR, 0100"
__but_booad, OOOOb
D,
1
__buf..,page,
: - page
__buf..,page, D
1
g, 1
D, 0
ba, ex
:.a...
of byt. . to page bnak
c'"
ox
258h
ox, 1
ox, g
~_bu.f'_.t.op,
buff...._ ••t
ex
fba":
-...... "x_buf..,page, D
.hl __buf"page, 1
IIOV
"_buf_.taxt, ...
Il109 za but' head, ...
abl _ -buf-booad, 1
IIIOV
_j.uf:lallgtb, 0"
IIIOV ",,_buf_atop, On9Z11
: 1200 byt.a f" .... end of buU."
...." vp_buf_.taR, OOOOh
acid. D , i
: _ page
IIIOV vp_buf..,page, D
.bl vp_b..f..,page, 1
add ca, 1
ahl ca, 1
IIIOV Vp_OUHt_ad:l ...t, ox
acid. vp_b..ILoffa.t, 0"
aub D, 1
ahl D, 1
.bl g , 1
ado D, 0
mo" oa, 12
.hl D, 01
Il10'9' z:.._buf_. . . .ftt,dz
:l1IIP buff."._Ht
copao.tio:
IllOV
gp_buf_ataJ:t., ax
acid. g , 258h
mo... n but ataR, ax
• 111
~.:buf:haad, ..
zoo_buf_.....d, 1
.111>
...."
...."
sbl
......
vp_lallgtb, 258b
- , vp_laDgtb
zx_buf_laDgtb, ox
D,
1
__buf..,page,
D
......
vp_buf..,page, D
IIDOV
:Ai-AU of Vp buff.", gp buff.., ia nut
: 1200 byt•• fo" Vp buff." at f..ant of buff." space
: " .. buU.., sta""a 1200 byt•• io
; COD""" .....nt. to byt.. ac!dra ••
290189-31
IIIOV
ax, 1
D, 0
ex, 12
abl
ade
aIll
dx, 01
IIIOV
IIIOV
"x_buf_HglMftt, D
add
az, cz
zoo_buf_.top, ax
: aon...R ofh.t to byte a _ . s
: ad:l ..st s _ n t fo" shift
; loacS vaz:iahl. foZ' transfers to IPX
ex, zoo_but_length
i setup n.J:keZ' :for low rx buffer: apace, >600 words
aub ox, 258h
ahl ox, 1
...."
buff.....at:
~-
290189-32
1-449
7.3 Assembly and Transmission of
Frames
Frame assembly and transmission is accomplished by
the interaction of the software driver and IPX'through
the use of IPX Event Control Blocks (ECBs). To transmit a frame, a transmit ECB is prepared that contains
address information and a list of fragments in memory
containing the frame to be transmitted. This ECB is
placed in a queue for assembly and transmission of the
frame. If the queue is empty, or when the ECB reaches
the front of the queue, a routine is called that processes
the ECB for transmission. This routine determines the
length of the frame (padding the frame if necessary)
and then constructs the frame in the Tx/GP buffer
area. The I;OIlstruction of the frame is based on the
ECB's address information and fragment list. The
transmit DMA channel is now initialized to point to
the beginning of the transmit frame in the Tx/GP area,
and the byte count for that channel is also initialized. A
Transmit command is now issued to the 82592. A separate routine monitors the transmission for a time-out
error. When an interrupt from the 82592 indicates that
the transmission attempt is complete (whether successful or unsuccessful), or if a time-out error has occurred,
the proper completion code is inserted into the frame's
ECB, and the ECB is passed back to IPX. If additional
ECBs remain in the transmit queue the processing of
the next ECB will begin. Table 5 contains the code used
for assembly and transmission of frames.
Table 5. Assembly and Transmission of Frames
Assumes
11:1: II points to a fully prepared lI:"."t COntrol Uock
DS • CS
Int.r~. ar. DISABLED but may be reanabl.d t.apor.rily if Dec••••ry
don't aeed to a.ve any ...gi.t.ra
DriverBroadca.tPaeket:
Dr!verS.nd»acket
PROC
RZAa
eli
; disabla the intarrupt.
C&, ....rd ptr send list + 2
jcza Ad4TOFrontOfLiat ••arch to the end of the list, and add. there.
IIIOV
di, word ptr .end_liat
_v
Ad4~oI.istLoop :
mov
de, c:&
oz, de: word ptr [diJ .link
je:... AddListlilftdround
IIIOV
di, de: ....rd ptr [diJ .link
jmp Ad4ToI.iatLoop
IIOY
AddLiatBndl'ound :
IIOV e.: word
IIOY • • : .... z:cl
IIOV de: .... z:cl
IIOV de: ..oz:cl
IIIOV
.oZ, ca
IIOV
de, a'"
ptr
ptr
ptr
ptr
[aiJ
[aiJ
[diJ
[diJ
+2
.link, e",
• link + 2, e",
. link, a1
. link + 2, a.
;move null pointer to ne_.t
;link fiald
sea'.
;.at de back to entry condition
"at
Ad4~ol'rODtOfI.iat :
mov
e.: ..ord pt,,[a1J . link, e",
:word pt,,[a1J . link + 2, oz
!IOV ....z:cl pt" aend liat, ai
!lOy word ptr aend-liat + 2, aa
d"op through to Bta..t Send
IIIOV
••
Drive"SendJaeket
end9
StalOt Sand
.a."'.:
11:8: SI
points to the BCB to be ••nt:.
int.rrupts are di.abl.d
.tal'!: .and
pul>l1c
eli
"ROC
RZAa
atalOt .end
di.able_ the interrupt.
290189-33
1-450
Ap·320
Table 5. Assembly and Transmission of Frames (Continued)
cld
.ave SCB addre.. in variable tx_ecb to liberate registers
IDOV
word ptr tx ecb, si
IIIOV
word ptr tx:ecb + 2, es
push de
;save de for futu~ use
gat IPX packet length out of the first fragment (IPX header)
lde bx, e.: dword ptr [sil.fragment_dascriptor_list
IDOV
a .., de: [bxl.packet_length
pop de
; ~.to~ de to CGROOP
push a..
;.ave length for later uae in 590 length field
xchg al, ah
;byte s.ap for 5'2 length field calculation
add a .., 18
;add in the overhead byte. DA,SA,CRe,length
padding, 0
ax, 64
ja
long enough
....v
paddIng, 64
;lIIin1mwD length fr .....
sub padding, a ..
;pad length
mov ax, 64
long enough:
ax, 10
;SA and CRC are dona automatically
inc a ..
and al, OI'Bb
; frame must be evan
mov tx_byte_cnt, ax
mov di, gp buf offset
IDOV
CIIIP
sub
mov
bz,
as -
JllC)V
•• ,
bz
move the byte count into the tranllJllit buffer
at.oe"
move the destination addre... from the tx IICB to the tx buffer
mov
bz, a1
lea .i, [bxl.immediate addre.s
mov de,word ptr tx_ecb-+ 2
movav
IIIOve"
mo"a"
mo"
ax,es
mov
da,ax
; gat back to the code (Dgroup) section
no. the 590 length field
pop a"
zchg ah, al
inc ax
;make su~ B-Net length field is even
and al, OI'Bh
xchg ah, al
stos.
lds ai, tx_ecb
mov ax, de: (sil.fra~nt_count
lea bx, [ail .fragment_descriptor_list
move_frall_loop:
; save the .egment
puah de
mov ex, da: [bzl.fragment_length
lde si, de: [bzl.fragment_addre.s
tfastcopy
; get the .egment back
pop de
add bx, 6
dec ax
jns move_frag_loop
290189-34
1-451
Table 5. Assembly and Transmission of Frames (ContinuEld)
letart transmittlng
mo... ex, ca
1109 de, ex
; add any nqulnd. pad.d.1ng
mo" ex, 4
; ...lee aun I!ra... end.a "lth a NOl'
add ex, pa~ng
ehr ex, 1
rap etoe"
mo" tx_actl"._flag, 1
&OZ'
ax, ax
out DHII.fI!, al
;data 1. don't can, AX baa baen zaroed.
mo" ax, gp_bul!_8tart
'.10"out
mo"
'.low
out
mo"
'.low
out
'slo"
mo"
out
mo"
add
.h~
DNA&ad.d.r, al
al, ah
DNA&addz, al
ax, gp_bufJlage
DNA&paga, al
;DNA page "alue
al, DNAtx&
; setup channal 1 I!o" tx moda
DJU.moda, a1
ax, tx_byta_cnt
ax, 4
;add two fo" byta count, two fo" tx chaln fetch
ax, 1
iconvert to .om value and account fOl: oc:lcl
ax, 0
;byte DNA transfar
DNA&vd.count, a1
ado
out
'.low
mo" a1, ah
out DNA&vd.count, a1
'.low
mo" a1, DNA6U1111U1le
out DMAsnglJaele, a1
mo" d.x, c_nd._zag
mo" a1, C TX
out d.x, al
mo" ax, Il'Xlntar..alJlarur
mo" tx start t1lll8, ax
'lnc32 -Totalizl'aclo:atCount
rat
i;············_·_··_·_····-····_-·-····_---_·_·-······ **.* ••• ****
Poll the =1"." to .ea if tha.,a is anything to do
Ie than a t.,ansmit tilll8out? If 80, abort t.,ansmiuion anci .,atUEn'
BCB "lth bad. completlon coda. Checle to saa if f.,ames an quauaci.
II! thay an .at up BS:SI and. call D.,i"..,Sand.l'ackat.
~*****************************.*********.******.***.****.********.*****
D.,iva.,Poll
PROC
cli
290189-35
1·452
inter
AP·320
Table 5. Assembly and Transmission of Frames (Continued)
amp
jz
may
.ub
amp
jb
tx active flag, 0
HorWait~Tx
dx, IPXlntarralMarker
dx, tx_atart_t~
dx, TxTiaaOutTicka
HotTimadOutYat
Thia transmit ia taking too long .0 lat'.
t.~nata
it now
Iasue an abort to the 82592
may
lIDO"
out
dx, CCllllllllnd rag
al, C UORTdx, a'1
labort transmit
inc
la.
tx t~out
ai; tz acb
as: [all.complation coda, TransmitHardwareFailura
coda of a failed tx
Il10'' ax, .s: word ptr [ail . link
Il10'' word ptr aand_list, ax
IIIOV
ax, aa: word ptr [sil.link + 2
Il10'' word ptr sand_list + 2, ax
mov
Istuff completion
Finish tba transmit
es: [sil.in uae, 0
call IPXHolcll:ve.it'
Il10''
;make sura that ezecution unit didn't lock up because of abort arrata
IIIOV
mov
out
IIIOV
'..low
out
IIIOV
%slow
out
Il10''
'slow
out
IIIOV
dx, cCllllllllnd_rag
al, C SWli'l
dz, a'1
al, C_SELRST
dz, al
al, C_SWli'O
dz, al
al, C_RXEIIB
dz, al
tx_activa_flag, 0
See if any frames ara queuad
ex, word ptr sand list + 2
jcxz queua_empty
es, ex
Il10'' si, word ptr send_liat
call start_send
100"
IIIOV
queua_empty:
HotWaitingOnTx:
HotTimadOutYet:
rat
290189-36
1·453
Ap·320
Table 5. Assembly and Transmission of Frames (Continued)
DriverPo11
endp
;****************************************************************
Interrupt Procedure
;*****.****.*****.* •••••• ** ••• **** •• *****************************
even
RxZrrorTypeCbeck,
Buffez:Overflow,
inc
rx buff ovf1v
jmp
int_ezit
not 590 int,
-1nc- no 590 int
;Imp int_ezIt
Driverlsa
public
push
push
push
push
push
push
push
PROC
DriverISR
far
ax
bz
ex
dz
si
di
bp
push ds
push ea
cld
call
mov
out
out
mov
IIIOV
IIIOV
IPXStartCr1ticalSect1on ;tel1 ABS we're busy
al, BOI
InterruptControlPort, a1
BztralnterruptControlPort, a1
ax, c.
ds, ax
;DS points to C/DGroup
dz, cOllllll&nd_reg
a1, 0
mov
;.at statue reg to point to reg 0
out dx, a1
"'lov
a1, dz
in
teat a1, SOh
not_590_int
;10:
and
81, NOT
IIIOV
ah, a1
ah, OD8h
ClOP
20h
;ignore the BXBC bit
;sava the status in AH
;did I receive a frame?
290189-37
1-454
inter
AP-320
Table 5. Assembly and Transmission of Frames (Continued)
jz
rCvcI..J>aakat
ah, 84h
:cU.d X flniah a transmit?
sent..J>aaket_jmp
ah, 8Ch
;d.id I finish a retransmit?
..nt..J>aaket.-:jmp
falae_S90_int ;unw.ntad interrupt
int_exit
cmp
jz
cmp
j.
inc
jmp
l5ent-paoket_jmp :
jmp .ent..J>aekat
sent-packat :
eli
tx_active_flag,
fal.e tx int
a1, di statualO, a1
cmp
j.
in
mov
;ahouldn't have been
t~.namitting
%slow
in
al, dx
statusl1, a1
teat atatuall, 20b.
j.
tx error
:extract the total number of retries from
JIIOV
a1; statualO
and ax, Orh
: the atatua regiat,e: and add to retry oount
ac1c1 Retry'l'xCount, ax
xor ax, ax
; atatua SI 0, good transmit
IIIOV
1..
J'inishUpTransmit:
ai, tx aob
lllOV
es: [all .completion code, a1
mov ax, •• : word ptr [aI) ,link
mov word ptr send l.ist, ax.
ax, .a: wo:c1 ptr [ail . link + 2
mov
mov word pt.r send_list
mav .s: [sl].i.n use, 0
call IPXHoldBvant
+
2, ax
push ca
pop
mov
mov
jezz
mov
cia
ex, wo.J:d. ptr oend_.liat. + 2
tx_aotive_j!lag, c1
int_axit.-:jmpl
aa, ox
i aegment of next seB in list
mqv 81, word ptr send_list
:offaet of next SCD in list
call start send
jmp finish_exit
int_axit_jmpl:
jmp int_exit
false tx int:
jiiip -int_exit
tx error:
- teat statualO, 20h
jnz QuitTran8llll.tting
test statusll, Olh
jt:
lost_cta
inc unc1erruna
:Max collisions??
;Tx underrun??
290189-38
lost cta:
teat statuall, 02h
jz
lost_ora
inc no_cta
loat crs:
test atatusll, 04h
jz
IuImu
inc no crs
hmmm:
lea
call
mov
jmp
i did
we loae clear to send??
:did we loae carrier senae??
-
ai,tx ecb
atart- senel
al, TranamitHardwareFailura
FinishUpTransmit
QuitTransmitting:
mov aI, atat.u810
and ax, on
add RetryTxCOunt, ax
inc atop tx
mov aI, TranamitHardwaraFailure
jmp FiniahUpTransmit
DriverISR
endp
290189-39
1·455
inter
Ap·320
7.4 Receive Frame Processing
Receive frame processing is triggered by an interrupt
from the 82592. If the status read from the 82592 by
the Interrupt Service Routine (ISR) indicates that a
frame has been received, a jump is made to the beginning of the code that services frames. The receive buffer
area is managed by using several variables. These variables are listed below. Please refer to Section 4.1 and
4.2 for a review of receive frame processing.
• RX_BUF_TAIL. Contains the contents of the
16-bit latch. They point to the byte count of the last
frame written into memory.
• RX_BUF_PTR. Keeps track of the current position in the buffer while the CPU recovers locations
of the received frames in the buffer processing.
• RX_BUF_HEAD. Contains the pointer to the
byte count of the last frame that was processed by
the CPU. (This differs from rlL-buf_tail, which
points to the byte count of a frame not yet processed.)
• R~BUF_STOP. Points to a location that is 1200
bytes from the end of the receive buffer (slightly
more than the maximum size of a frame).
After servicing a receive frame, the contents of the
16-bit latch are loaded into RXJUF_TAIL and
RX_BUFJTR. This value is compared with the value stored in R~BUF_STOP to determine if most of
the buffer has been used and if the buffer must be reinitialized after the current receive frames have been processed (In this case a flag called RESET_R~BUF is
set to indicate that the buffer variables and receive
DMA channel must bereinitialized before the Interrupt Service Routine is exited). To process the frame or
frames received, both the byte count and status bytes of
the frame are used. If the status indicates a receive error the frame is not passed up to IPX. The byte count is
used to index back through the chain of received
frames, using RX_BUF _PTR to keep track of the
current position in the buffer. The frames are checked
for length (maximum and minimum), and a check is
also made to verify that the Ethernet and IPX length
fields agree (including provisions for padding the
Ethernet length field). If these checks pass, the frames
are added to the list of received frames by storing their
location, length, and source address in an array of
structures called ~LIST. When the ~BUF_
PTR contains the same value as R~BUF_HEAD,
all currently received frames have been processed, and
a jump is made to a label called HAND_OFF_
PACKET. In this routine the frames are handed up to
IPX, in the order they were received, using calls to the
IPX routine IPXReceivePacket. The value stored in
~BUF_TAIL is loaded into the RX_BUF_
HEAD variable, which now holds the address of the
last location in the receive area that was processed, and
the execution of the ISR falls through to a routine to
exit the ISR. Before exiting the ISR an Interrupt Acknowledge is issued to the 82592; a check for additional
pending interrupts is made, if one is found the ISR
process is repeated; and the flag RESET_RXJUF is
checked, if it is set the receive buffer is reinitialized.
The machine states of the previous routines are restored
to their original states, and the ISR is exited. Table 6
contains the code used for receive frame processing.
1-456
inter
Ap·320
Table 6. Receive Frame Processing
;**************** •• **********************************************
Interrupt Procedure
;************************************* •• ************** •••••••••••
even
RxErrorTypaChack:
BufferOVerflo.. :
inc
rx buff ovil..
jmp
int_exit:
not 590 into
-inc- no 590 int
jmp int_exit
DriverISR
public
push
push
push
push
push
push
push
PROC
DrivarISR
far
ax
bx
cx
dx
si
di
bp
push de
push as
cld
intJ>oll_loop:
eli
call IPXStartCriticalSaction ;tall AES we'ra busy
mov al, EOI
out InterruptControlPort, al
out ExtraInterruptControlPort, al
mov ax, cs
;DS points to C/DGroup
mov de, ax
mov dx, command reg
mov a1, 0
;set status reg to point to reg 0
out dx, a1
hlow
in
al, dx
test 81, BOh
jz
Dot_590_int
290189-40
1·457
intJ
AP-320
Table 6. Receive Frame Processing (Continued)
int.J>oll_loop:
and al, NOT 20h
;ignora tha EXEC bit
mov ah, a1
;s.va the status in AH
c:mp ah, OCBh
;did I "aceive a frame?
jz
"cvcl.J>acket
c:mp ah, 84h
;did I finish a transmit?
jz
8ent.J>acket_jmp
c:mp ah, SCh
;did I finish a retransmit?
jz
sent.J>acket_jmp
inc fals8_S9 O_int ;unwanted inte"rupt
:Imp int_exit
sent.J>acket_jmp:
jmp sant.J>ackat
bad "cv:
-inc
jmp
rx errors
Rxi""orTypeChack
int exit jmp:
-jmp -int_axit
;When the address bytes a"e being read it is possible that anothe" frame
:oould coma in and cause a coherency problem with the ten-cent latches.
;1 am dealing with this possibility by "eading TenCentHi twice and making
;sura the values match. If they don't the read is redone.
rcvcl.J>acket:
eli
mav
dx, TenCentHi
in
al, dx
;read high address byte of last frame received
ah, a1
isava it in ah
dx, TenCentLo
;read low address byte of last frame received
in
al, dx
mov rx buf tail, ax
;thia is the last location containing rx data
;Read TenCentHi-agaln to make sure it hasn't changed ...... .
mov dx, TenCentHi
;read high address byte again
in
al, dx
c:mp al, ah
mov
mov
jz
addr ok
jmp rcvd:packet
addr_ok:
mov
mov
;read the latches again
ax, rx buf tail
rX_bufJ>tr:- ax
rx buf stop, ax
amp
ja
BufferOK
mav
reset rx buf, 1
BufferOK:
this is a valid address
this is the last 1ocation containing rx data
is most Of the buffer already used?
-ax, co: buf head
c:mp
ja
inc
proces8_ne;_frames
ten cent latch crash
jmp
1nt:exit-
-
do next frame:
process:new_frames:
!nOv bx, rx_buf-ptr
sub
bx, 6
moves, rx_buf_segment
end of current frame to process
set bx up to point to beginning of the status
this is necessary because latches hold EA not
offset relative to CGROUP
290189-41
1-458
inter
AP-320
Table 6. Receive Frame Processing (Continued)
a~, .a: [bx].atatua1
teat .~,20h
jnz good_rz
mov cl, ea:[bx].bc ~o
mov ch, es: [bx] .bc:hi
dec ex
and c~, Ofeh
sub hz, ex
cmp rx buf head, bx
je
hand_off-packet_jmp
mov rx_buf-ptr, bz
aub rz_buf-ptr, 2
to do next frame:
- jmp do_naxt_frame
hand_off-packet_jmp:
jmp hand_off-packat
mov
it.at for good receive
;cx has actual number of bytes re.d
; toas byte count £ status
; round up
;bx points to first
good rz:
mov cl, a.: [bz] .bc 10
mov ch, es: [b,,].bc-hi
mov
dec
and
curr_rx_length; ex
ex
cl, Ofah
sub
mov
sub
sub
cmp
bx, ex
rx_bufJtr, bx
rz_buf-ptr, 2
ex, 14
~oc.tion
of frame
;thia was tha first frame in the sequence
;ell: haa actual number of bytes read
; toss byte count , status
i
round up
;bx points to first location of frame
:rz_buf-ptr • last location of n-1
; sub
jbe
cx, 1024 + 64
not too big
inc
packetRiTooBigCount
~ength
~rame
of 802.3 header
jmp do_next_frame
not_too_big:
cmp ex, 30
jae not_too_small
inc PackatRx~ooSmallCount
jmp do_next_frame
not_too_small:
ax, as: [bx] . rx length
xchg al, ah
-
mov
inc
get IPX length
ax
and al, Ofeh
xchg al, ah
cmp ax, as: [bx].rx-physical_langth
jne
xchg
a~;
aii'
802.3 length 1
-
ja
ax, 60 - 14
lan ok
mov
ax,-60 - 14
cmp
; same as
to do next frame
; at least min
~ength
minus header
; yea, continue
; no, round up
len_ok:
cmp
jz
ax, ex
; match physical length
not_inconsistent
; yes, continue
inc HardwaraRxMismatchCount
jmp do_next_frame
not inconsistent:
-'inc32 ~otalRxPackatCount
:&nOV ax, 12
mul
Double word Increment
num_of_frames
290189-42
1-459
inter
AP-320
Table 6. Receive Frame Processing (Continued)
di, ax
rx list [di] , bx
;fir.t location of .th.m.t fr .....
; first location of ipx packet
rz:list [di], 14
ax, ""_buf_s.~nt
rx_list [di + 2], ax
ax, word ptr .s:[bx].J:Z_l.ngth
al,ah
IlIOV
rX_list [di + 4], .x
.x, word ptr •• :[bx].rx_soure._addJ: +
IlIOV
word ptr rX_list [di + 6], 'ax
IIIOV
mov .x, woJ:d ptr •• :[bx].r,,_soure._addr + 2
word ptr rx_liat [di + 8], ax
IlIOV
IIIOV
ax, word ptr .s:[bx].rx_soure._addr + 4
woJ:d ptr rX_list [di + 10], ax
IIIOV
add nWD._Of_fJ:'amas, 1
cmp rx_buf_h.ad, bx
j.
hand_off....P.ek• t
cmp ft\UlLof_framaa, 50
j.
h.nd_off....Paek• t
jmp do_n.xt_fr.....
IlIOV
mov
add
mov
mov
mov
xehg
hand_off""paekat :
mov ai, rx li.t[di]
IlIOV
.a, rX-list[di + 2]
mov ex, rx-list[di + 4]
lea bx, rx:list[di + 6]
eli
push da
eall IPXReeeivePaeket
pop dB
sub num of frames, 1
jz
adjuat-rx head
sub di, 12- jmp hand_off""packet
adjust_rx_head:
IIIOV
ax, rx buf tail
add ax, 2 mev rx buf head, ax
;set rx_buf_head to new value for next receive
; interrupt
int ezit:
-push cs
pop ds
cmp tx_active_flag, 0
jnz finish_ezit
verify that our
~ec.iver
IlIOV
dx, command_reg
mov
out
dx, a1
al, 60h
is still going.
:point to status byte 3
",slow
in
test
jnz
jmp
al, dB
al, 20h
finish ezit
LostOurRecaivaJ:'
finish exit:
elI
290189-43
1-460
inter
AP-320
Table 6. Receive Frame Processing (Continued)
call IPXJtndCriticalSac::tlon
dz, command_reg
al, C INTACK
mov
mo"
out
'alow
zor
out
'_lov
in
dx,
.1
al,
al
; issue
dx, al
intarzupt acknowledqa to the 590
; sat atatua reg to point to reg 0
al, cia
teat al, BOh
jn.
int..f8nding
cmp
resat Z'z buf, 1
no rz-bul zo•••t
:ina
!DOV
out
tslow
out
&1.;
cba7.uk
: mask race! ve meA channel
DHAanglmak, a1
;dt.ta is don't ca:r:e
DMAff', _1
bu~
mov
ax, :ex
mev
rx but-haad, ax
ahl
buf-head... 1
DMA7addr, 81
al, ah
out
mov
tslow
out
mev
at art
: eet dma up to point to the beginning of rx buf
liZ-
DNA7 ad4r I
a1
_1, DM1u:.x7
%a1.ow
out
mav
DMAmoda, &1
ax, rx_ buf_length
; set up
rz buf
%slow
out
mo'"
DMA7"deount,
out
DMA7wdcount, a1
%DOV
cIx, DMAsng.lJnsk
al, DMA7unmsk.
'.1.0"
mev
%slow
out
mov
al, ah
out
dx, a1
dx, command reg
al, C RXENBdz, .T
mav
reaet_Z'x_buf,
mov
no
al.
J:'X
buf reset:
- eli call IPXServiceEventa
pop a.
pop cia
pop
pop
pop
pop
pop
pop
bp
di
oi
cia
ex
bx
290189-44
pop
ax
oU
iret
LostOurRecaivar:
inc
lost rx
mov
al, C RXENB
dz, cOmmand_reg
out
jop
8nding:
jop intJ>oll_loop
290189-45
1-461
inter
AP-320
APPENDIX A
Expanding the 82592 Embedded LAN
Module Architecture to a Low-Cost
Non-Buffered Adapter
ADAPTER BLOCK DESCRIPTIONS
DMA Machine
The basic architecture of the 82592 Embedded LAN
Module can be expanded and applied to a low-cost,
non-buffered adapter. This requires adding a DMA
unit and some logic for a bus master handshake. Such
an adapter would contain no local buffer memory. Its
cost advantage would come from using existing system
memory, as the embedded module does. This adapter is
less complex than most existing designs because it does
not require arbitration logic for access to local memory.
This adapter becomes a bus master when data transfers
take place, either to the 82592 (Tx) from system memory or from the 82592 (Rx) into system memory.
The same features of the 82592 that make it successful
in embedded applications make it well-suited for nonbuffered adapters. As with the embedded module, there
is no intermediate buffering of data in a local memory,
therefore data transfers to and from system memory
take place in real time. The 82592's large FIFO area
allows it to tolerate long system bus latencies during
memory access. The 82592's high-performance, 16-bit
bus interface allows the adapter to efficiently transfer
data to and from system memory when it gains access
to the system bus. The TCI of the 82592 will interface
with the adapter's control logic and DMA unit to provide back-to-back frame reception and automatic retransmission on collision (both without CPU intervention). Figure 13 is a block diagram of the basic architecture of the embedded module modified for a non-buffered adapter application. The block titled "Control
PALs and Latch" together with the 82592 is the core of
the embedded module' architecture. One additional
PAL (PAL C) has been added to the basic architecture
to offer more logic for decoding additional components
added to the adapter. The address latch has also been
expanded to 24 bits. The three shaded blocks (DMA
Machine, Master Logic, and Control PALs and Latch)
show the most likely path for integration on this adapter, providing a three-chip solution of ASIC, 82592, and
'82C501. The 82C37 is common in many ASIC ce11libraries, offering a migration path for this integration.
• 8237 DMA Controller. Serves as the core for the
DMA machine. Performs addressing and control for
data transfers between the 82592 and host system
memory.
• 8-Bit Page Counter. Provides the addressing bits for
the upper bits of address (AI7-A23)'
• 8·Bit Register. Serves as the base register for the
upper bits of the Tx DMA channel for reinitialization for automatic retransmission.
• 8·Bit Multiplexer. Selects between the upper bits of
Rx- or Tx-channel DMA.
'
• 8·Bit Latch. Latches the upper bits of address from
the 8237 (Ag-Als),
Master Logic
• Master PAL. Implements a "master" handshake
with the host system bus to gain access to the bus as
a bus master.
• Timers (2). Controls the maximum time the adapter
can hold the bus, and the minimum time it must
wait before attempting to regain bus access.
Control PALs and Latch (Together
with 82592 and 82C501)
The basic architecture of the 82592 Embedded LAN
Module.
Transceivers
Used to buffer the adapter logic from the host system
bus, for drive purposes. Address consists of 24 bits; and
Data, 16 bits.
1-462
intJ
AP-320
o
zo
-'"
... -<
°"'1°/(11
"'0:'-
0.,,0
~?
N
N
&ll
il~1
(II
10 MHz
290189-15
Figure 13.82592 Non-Buffered Adapter Block Diagram (PC AT Version)
1-463
PC586E
CSMA/CD LAN EVALUATION BOARD
Established CSMA/CD LAN
• Supports
Standards:
- Ethernet (IEEE 802.3 10BASE5)
- Cheapernet (IEEE 802.3 10BASE2)
•
•
•
•
Interfaces to Popular IBIIl! and IBM
Compatible PC Systems:
-IBM PC, PC-XT, PC-AT (8-Bit Data
Transfer)
-IBM PC-AT (16-Bit Data Transfer)
Jumper Selection Offers High Degree
of Flexibility in System Configuration:
- Up to 8 Address Decode Ranges
- Up to 8 Interrupt Lines
- Ethernet (IEEE 802.3 10BASE5)
- Cheapernet (IEEE 802.3 10BASE2)
- Number Of Wait-States
Auto-Configuring for either 8-Bit or
16-Bit Bus Systems
•
•
•
•
•
•
On-Board Transceiver Provides Direct
Coaxial Connection for Cost-Effective
Cheapernet Applications
Pipelined Access in 8-Bit Mode
Increase Performance through
Reduced Wait-States
16 Kbytes of Shared Memory-Mapped
SRAM Enables Higher Performance
Network Operation
Reduces Design Complexity because
No 1/0 Address or DMA Channels
Required
High Efficiency Interleaved Memory
Access Permits Zero Wait-State Access
by Host CPU for Most Cycles
8 Kbytes of "Remote Boot" EPROM
(Optional) Eliminates Need for Disk
Drives
Provides LAN Designer with a
Complete, High-Performance CSMA/CD
Ethernet/Cheapernet Solution
The PC586E evaluation board is a non-intelligent, buffered CSMAlCD LAN adapter card designed to demonstrate Intel's high-performance EthernetiCheapernet chip set. It provides IEEE 802.3 TYPE 10BASE5 (Ethernet) and TYPE 10BASE2 (Cheapernet or thinwire Ethernet) connections for IBM PC, PC-XT, PC-AT and
compatible systems. The PC586E combines the Intel 82586 LAN Coprocessor and the Intel 82C501 Ethernet
Serial Interface with an on-board Ethernet Transceiver into a total EthernetiCheapernet solution. The card is
easily installed in either an 8-bit or 16-bit PC expansion slot and then automatically configures itself for 8-bit or
16-bit data transfers. Its jumpers offer a high degree of flexibility for system-dependent configuration. For
Ethernet applications, the 82586/82C501 pair provide the complete transceiver cable interface required by the
IEEE 802.3 standard. In addition, the PC586E's on-board transceiver provides the entire coaxial cable interface for convenient, cost-effective Cheapernet systems.
Analog
Interface
82C501
82502
Bus Interface Logic
Word Assembly/Disassembly
290196-1
Figure 1. PC586E Block Diagram
The PC586E is provided solely as an evaluation tool for use in designing with Intel's 82586 chip set. It has not been tested for compliance to FCC
requirements for EMI (Part 15, subpart j). Intel is not responsible for any misuse of this evaluation board.
1-464
October 1988
Order Number: 290196·001
intJ
PC586E
The PC586E is part of Intel's LAN Evaluation Board
program. The board is intended to demonstrate the
high-performance characteristics of the 82586 chip
set in an adapter card application. The PC586E
gives LAN engineers a head start in finding the best
solution for their specific network problem. PC586E
boards are shipped with detailed design documentation (artwork and PAL equations also available).
The PC586E is based on an Interleaved Local Memory Access scheme with Static RAM dual-ported between the 82586 LAN Coprocessor and the Host
System CPU. Access to the board is purely MemoryMapped, and therefore, no I/O ports or DMA channels are required. In additicm to the shared SRAM,
the system supports a "Remote-Boot" EPROM and
32 bytes of Address PROM. The 82586 has access
only to the Static RAM.
MEMORY
which the 82586 is never given wait-states. This precludes the need for wait-state logic for the 82586
and allows the 82586 to run at 6 MHz.
When the 82586 is inactive, the interleaving logic
becomes transparent and the Host System may access the Local Memory with no wait-states (16-bit
buses only). This provides about a 15% to 20%
boost in bus performance.
DESCRIPTION OF INTERLEAVE
LOGIC
Since the 82586's READY and HOLD ACKNOWLEDGE signals are always active, only a simple arbiter is required. The Control LogiC merely interleaves
Host System accesses with 82586 accesses. When
the 82586 is active, the Host System access will occur during the first half of the 82586 "read/write"
cycle. When the 82586 is inactive, the Host System
access will occur at the speed of the Host Bus.
The Local Memory consists of 16 Kbytes of Static
RAM, 32 bytes of Address PROM, 16 Command
Registers, and up to 8 Kbytes of "Remote Boot"
EPROM (Optional). All of the Local· Memory is
mapped into unused memory space of the Host System. Commands are issued to the PC586E by transferring the instruction to a Command Register. The
Command Registers are used for issuing the Reset
and Channel Attention signals to the 82586, enabling interrupts and configuring the board.
If the Host System initiates access to tile static RAM
during T1 or T2 of the 82586 "read/write" cycle, it
will complete operation without any additional waitstates. If the Host System should initiate access during T2 or T3 of the 82586 "read/write" cycle, a maximum of three wait-states will be inserted for an
8 MHz AT system. The maximum number of waitstates depends on the width and frequency of the
Host System.
CONFIGURATION
WORD ASSEMBLYIDISASSEMBLY
There are up to 8 jumper-selectable locations for the
Local Memory and the Command Registers (four of
these locations are mapped above the 1 Mbyte
boundary, FFFFh). In addition, the jumpers are used
for the Interrupt Request Signal which may be asSigned to anyone of eight Interrupt Request lines.
For systems with 8-bit data buses, the PC586E has
a special Word Assembly/Disassembly function. Access to the Static RAM may be made either as 8-bit
or 16-bit operations. If 8-bit transfers are made, the
Word Assembly/Disassembly logic is used to increase performance.
The PC586E automatically detects if it is placed in
an 8-bit or 16-bit expansion slot. When the PC586E
is in a 16-bit slot, a Command Register is used to
program the PC586E for either 8-bit or 16-bit data
transfers. One of the Command Registers can also
be used to disable the interrupt signal.
INTERLEAVED MEMORY ACCESS
The PC586E uses Interleaved Memory Access between the 82586 LAN Coprocessor and the Host
System CPU to increase system performance. One
read or write access is allowed by the Host System
for every read or write access by the 82586. In this
way, high utilization of local memory is achieved.
The logic used is a "cycle-stealing" approach in
WORD DISASSEMBLY
An 8-bit "read" operatiQn to an even address causes 16 bits of data to be read from the Static RAM.
The first 8 bits are transferred onto the Host bus and
the second 8 bits (corresponding to the odd address) are temporarily stored in a latch. When the
subsequent "read" is made to the odd address, the
data stored in the latch is copied onto the Host Bus.
In this way, access to the Static RAM by the Host
CPU is reduced by 50%.
WORD ASSEMBLY
An 8-bit "write" operation to an even address causes the data stored at this location to be temporarily
1-465
inter
PC586E
transferred to a latch. When the subsequent 8-bit
"write" operation is made (corresponding to the odd
address), the two 8-bit bytes are combined 'into a
16-bit word which is then transferred to the Static
RAM.
In order to take' advantage of this scheme, all ac·
cess to the Static RAM must be made on a 16-bit
word basis to even addresses. Since the 82586 data
structures are naturally designed to be 16-bits wide,
this requirement has little or no impact on software.
The bus interface of systems with 8-bit data buses
will automatically break 16-bit operations in~ two
8-bit operations. The same software can thus be
used for both 8-bitand 16-bit systems.
The Word Assembly/Disassembly function is only
used for access to the Static RAM. All accesses to
the Address PROM, Remote Boot EPROM and
Command Registers are made as 8-bit transfers
only.
REMOTE BOOT. EPROM
An optional 8192 byte EPROM may be installed for
either "Remote Boot" operation or general purpose
ROM. Upon booting the system, the Host CPU
searches 'for a 55AAh data pattern starting at ad·
dress C8000h. If the pattern is not found, additional
attempts will be made at subsequent addresses in
2 Kbyte increments. If the pattern is found, the Host
will then search for a jump instruction and a Cyclic
Redundancy Check (CRG). If these are found, the
CPU will begin executing the code at the location
specified by the jump instruction. In order to take
advantage of the 'IRemote Boot" option, the soft·
ware on the EPROM must be able to configure the
PC586E and copy the operating system through the
network. This ability removes the need for disk
drives. The EPROM may be used for general pur·
pose storage instead of remote booting. In either
case, only 8-bit "read" operations are permitted
from this device.
ETHERNET/CHEAPERNET
SELECTION
The PC586E Board is jumper·selectable to operate
in either Ethernet (IEEE 802.3 10BASE5) or Cheap·
ernet (IEEE 802.3 10BASE2) mode.
ETHERNET
In Ethernet mode, the 82586 LAN Coprocessor is
used in conjunction with the Intel 82C501 Ethernet
Serial Interface. Functions of the 82C501 include
Manchester· er:icoding/decoding of transmit and receive data, generation of the transmit and' receive,
clock and interface to the AUI/Transceiver cable. In
addition, the 82C501 has a built in watchdog timer,
internal loopback diagnostics and collision detection
circuitry. The 82586/82C501 thus provide the com·
plete transceiver cable interface required by IEEE
802.3.
CHEAPERNET
In Cheapernet mode, the Ethernet Transceiver is 10cated on·board. The transceiver works in conjunc·
tion with the 82586 and 82C501 to provide ,the com·
plete, on·board, coaxial cable interface.
COMPONENT DESCRIPTION
82586 LAN Coprocessor
- Implements a Complete CSMAlCD Data Link
- Incorporates all Logic for Executing Time Critical
Functions Independently 6f Host System
- High·Level Command Interface Simplifies Soft·
ware Programming
- Supporting Industry CSMAlCDLAN Standards
Ethernet (IEEE 802.3 10BASE5)
Cheapernet (IEEE 802.3 10BASE2)
- Provides On·Chip Memory Management with Au·
tomatic Buffer Chaining and Reclaiming
- Interfaces to Industry Standard 8-Bit and 16-Bit
Microprocessors
- Powerful System Interface
On·Chip DMA Control Allows Up to
5 Mbytes/Sec Bus Capacity
8-Bit or 16-Bit Data Bus
. Back·to·Back Frame Reception at 10 Mb/s
- Built·ln Network Management and DiagnQstics
Transmission/Reception Error Reporting
Network Activity and Error Statistics
Station, Diagnostics (External Loopback)
Self Test Diagnostics
The 82586 is an intelligent peripheral that complete·
Iy manages the processes of transmitting and
receiving frames of data over the network, thus off·
loading the Host CPU of communication manage·
ment tasks. The 82586 features an on·chip DMA
controller which allows it to'access the local memory
though an effic~nt buffer chaining mechanism. qth·
er features, of the 82~86 are the ability to Perform
network management activiti~s including error and
collision tallies lind diagnostic capabiliti~s via,the in·
ternal and external loopback function. Control ,of the
82586 is through high level commands such as
TRA~SMIT and CONFIG!JRE. ,
1-466
intJ
PC586E
All information passed between the 82586 and the
Host board is made through shared local memory.
The Host may load the memory with a command
and prompt the 82586 to execute. While receiving a
packet, the 82586 loads receive buffers in local
memory and, after completing the reception, interrupts the Host board to indicate that a packet has
been received.
-
-
Direct Interface to the 82586 LAN Coprocessor
and Ethernet Transceiver
Conforms to IEEE 802.3 10BASE5 (Ethernet)
and IEEE 802.3 10BASE2 (Cheapernet) Specifications
10 Mb/s Serial Data Rate
Manchester Encoding/Decoding and Receive
Clock Recovery
10 MHz Transmit Clock Generation
Drives and Receives IEEE 802.3 AUI (Transceiver) Cable
Optional Watchdog Timer Prevents Babbling
Internal Diagnostic Loopback for Fault Detection
and Isolation
Functionally Compatible with the SEEQ 8023A
The 82C501 provides the Ethernet (IEEE 802.3
10BASE5) or Cheapernet (IEEE 802.3 10BASE2)
Serial Interface for the 82586 LAN Coprocessor.
Major functions of the 82C501 include generation of
the transmit and receive clock (10 MHz for Ethernet
and Cheapernet), Manchester encoding/decoding
of transmit and receive data, and interfacing the
10BASE5 Access Unit Interface (AUI/Transceiver)
cable. In addition, the 82C501 provides for fault isolation with internal diagnostic loopback. An on-chip
watchdog timer prevents the station from locking up
in the continuous transmit mode Gabber control).
Hardware:
-
Network Software Drives
Currently Available for the
lowing Applications:
UNIX/TCP-IP
Novell/Netware
(Additional Drivers to be
nounced)
- IBM PC, PC-XT, PC-AT
Compatible Systems
DB-15 Connector (Ethernet)
BNC Connector (Cheapernet)
-
-
Intel 82586 LAN Coprocessor
Intel 82C501 Ethernet Serial
Interface
Static RAM
16 Kbytes
General Address
PROM
32 bytes
8 Kbytes
Bootable EPROM
-
1.0COOOOh-OC7FFFh
2.0C8000h-OCFFFFh
3.0DOOOOh-OD7FFFh
4.0D8000h-ODFFFFh
5. FOOOOOh-F3FFFFh
6. F40000h-F7FFFFh
7.F80000h-FBFFFFh
8. FCOOOOh-FFFFFFh
Board Master Clock
24 MHz
82586-6
6 MHz
Memory Address
Ranges:
Frequency:
8-Bit PC Bus
Frequency (Max.): -
4.77 MHz
are
Fol-
oAdditional
Wait-States
-8MHz
16-Bit AT Bus
Frequency (Max.): -
>8MHz
8 MHz
o Additional
Wait-States
Not Supported
o Additional
Wait-States
-10 MHz
o Additional
Wait-States
1 Additional
Wait-States
>12 MHz
Not Supported
+ 5V Input ± 5%
+12V Input ±5%
-12 MHz
Voltage Limits:
-
Current
Requirements:
PC586E Specifications*
Software:
System
Components:
-
Memory Capacity: -
82C501 ETHERNET SERIAL
INTERFACE
-
Cable
Connections:
- + 5V Input
- +12V Input
Power Dissipation:- Maximum
Temperature
Range:
- Operating
-
Storage
3.0A"
300 rnA"
18.6W"
O·Cto + 55·C
O·Cto +70·C
An-
DIMENSIONS (Not Including Mounting Bracket)
and
Length: 8.2 in. (20.8 cm)
Height: 4.2 in. (10.7 cm)
Width: 0.7 in. (1.8 cm)
"Preliminary, subject to change
1-467
Wide Area Networks
2
8251A
PROGRAMMABLE COMMUNICATION INTERFACE
•
•
•
•
•
•
•
•
•
•
•
Synchronous and Asynchronous
Operation
Synchronous 5-8 Bit Characters;
Internal or External Character
Synchronization; Automatic Sync
Insertion
Asynchronous 5-8 Bit Characters;
Clock Rate-1, 16 or 64 Times Baud
Rate; Break Character Generation; 1,
1Yz, or 2 Stop Bits; False Start Bit
Detection; Automatic Break Detect and
Handling
Synchronous Baud Rate-DC to 64K
Baud
Asynchronous Baud Rate-DC to 19.2K
Baud
Full-Duplex, Double-Buffered
Transmitter and Receiver
Error Detection-Parity, Overrun and
Framing
Compatible with an Extended Range of
Intel Microprocessors
28-Pin DIP Package
All Inputs and Outputs are TTL
Compatible
Available In EXPRESS and Military
Versions
The Intel® 8251A is the industry standard Universal Synchronous/Asynchronous Receiver/Transmitter
(USART), designed for data communications with Intel's microprocessor families such as MCS-48, 80, 85, and
iAPX-86, 88. The 8251A is used as a peripheral device and is programmed by the CPU to operate using
virtually any serial data transmission technique presently in use (including IBM "bi-sync"). The USART accepts
data characters from the CPU in parallel f()rmat and then converts them into a continuous serial data stream
for transmission. Simultaneously, it can receive serial data streams and convert them into parallel data characters for the CPU. The USART will signal the CPU whenever it can accept a new character for transmission or
whenever it has received a character for the CPU. The CPU can read the complete status of the USART at any
time. These include data transmission errors and control signals such as SYNDET, TxEMPTY. The chip is
fabricated using Intel's high performance HMOS technology.
T.D
°7-0 0
TxROY
T.E
D;
D,
D3
Dn
R.D
Vcr..
GND
A;C
D,
DTR
°5
0.
0,
hl
RxD
J'
/
INTERNAL
DATA BUS
Fbi:
RESET
ClK
WR
T,O
CS
c/o
AD
hEMPTY
RxROY
R"ROY
RTS
OSR
CTS
SVNDEt/BD
TxRDY
205222-2
Figure 2. Pin Configuration
__ SYNDET
205222-1
Figure 1. Block Diagram
2-1
November 1986
Order Number: 205222-002
inter
8251A
FEATURES AND ENHANCEMENTS
i=UNCTIONALDESCRIPTION
The 8251A is an advanced design of the industry
standard USART, the Intel® 8251. The 8251A operates with an extended range of Intel microprocessors and maintains compatibility with the 8251. Familiarization time is minimal because of compatibility
and involves only knowing the additional features
and enhancements, and reviewing the AC and DC
specifications of the 8251 A.
General
The 8251A is a Universal Synchronous! Asynchronous ReceiverITransmitter designed for a wide
range of Intel microcomputers such as 8048, 8080,
8085, 8086 and 8088. Like otherl!O devices in a
microcomputer system, its functional configuration is
programmed by the system's software for maximum
flexibility. The. 8251A can support most serial data
techniques in use, including IBM "bi-sync".
The 8251A incorporates all the key features of the
8251 and has the following additional features and
enhancements:
In a communication environment an interface device
must convert parallel format system data into serial
format for transmission and convert incoming serial
format data into parallel system data for reception.
The interface device must also delete or insert bits
or characters that are functionally unique to the
communication technique. In essence, the interface
should appear "transparent" to the CPU, a simple
input or output of byte-oriented system data.
• 8251A has double-buffered data paths with separate I!O registers for control, status, Data In, and
Data Out, which considerably simplifies control
programming and minimizes CPU overhead.
• In asynchronous operations, the Receiver detects and handles "break" automatically, relieving the CPU of this task.
• A refined Rx initialization prevents the Receiver
from starting when in "break" state, preventing
unwanted interrupts from a disconnected
USART.
Data Bus Buffer
• At the conclusion of a transmission, TxD line will
always return to the marking state unless SBRI<
is programmed.
This3-state bidirectional, 8-bit buffer is used to interface the 8251A to the system Data Bus. Data is
transmitted or received by the buffer upon execution
of INput or OUTput instructions of the CPU. Control
words, Command words and Status information are
also transferred through the Data Bus Buffer. The
Command Status, Data-In and Data-Out registers
are separate, 8-bit registers communicating with the
system bus through the Data Bus Buffer.
• Tx Enable logic enhancement prevents a Tx Disable command from halting transmission until all
data previously written has been transmitted. The
logic also prevents the transmitter from turning
off in the middle of a word.
• When
ternal
Sync
which
External Sync Detect is programmed, InSync Detect is disabled, and an External
Detect status is provided via a flip-flop
clears itself upon a status read.
This functional block accepts inputs from the system
Control bus and generates control signals for overall
device operation. It contains the Control Word Register and Command Word Register that store the
various control formats for the device functional definition.
• Possibility of false sync detect is minimized by
ensuring that if double character sync is programmed, the characters be contiguously detected and also by clearing the Rx register to all ones
whenever Enter Hunt command is issued in Sync
mode.
RESET (Reset)
• As long as the 8251A is not selected, the RD and
WR do not affect the internal operation of the
device.
A "high" on this input forces the 8251A into an
"Idle" mode. The device will remain at "Idle" until a
new set of control words is written into the 8251A to
program its functional definition. Minimum RESET
pulse width is 6 tCY (clock must be running).
• The 8251 A Status can be read at any time but the
status update will be inhibited during status read.
• The 8251A is free from extraneous glitches and
has enhanced AC and DC characteristics, providing higher speed and better operating margins.
A command reset operation also puts the device
into the "Idle" state.
• Synchronous Baud rate from DC to 64K.
2-2
intJ
8251A
0,
/
INTERNAL
DATA BUS
205222-3
Figure 3. 8251A Block Diagram Showing Data Bus Buffer and Read/Write Logic Functions
ClK (Clock)
C/O RD WR CS
The ClK input is used to generate internal device
timing and is normally connected to the Phase 2
(TTL) output of the Clock Generator. No external inputs or outputs are referenced to ClK but the frequency of ClK must be greater than 30 times the
Receiver or Transmitter data bit rates.
0
0
1
1
X
X
WR (Write)
0
1
0
1
1
1
0
1
0
1
X
X
0
0
0
0
0
1
8251A DATA --+ DATA BUS
DATA BUS --+ 8251A DATA
STATUS --+ DATA BUS
DATA BUS --+ CONTROL
DATA BUS --+ 3-STATE
DATA BUS --+ 3-STATE
C/o (Control/Data)
A "low" on this input informs. the 8251A that the
CPU is writing data or control words to the 8251A.
This input, in conjunction with the WR and RD inputs, informs the 8251A that the word on the Data
Bus is either a data character, control word or status
information.
RD(Read)
1 = CONTROL/STATUS; 0 = DATA.
A "low" on this input informs the 8251A that the
CPU is reading data or status information from the
8251 A.
2-3
inter
8251A
CS (Chip Select)
Transmitter Buffer
A "low" on this input selects the 8251A. No reading
or writ!.':![ will occur unless the device is selected.
Whei!...9S is !:!!g!l, the Data Bus is in the float state
and RD and WR have no effect on the chip.
The Transmitter Buffer accepts parallel data from
the Data Bus Buffer, converts it to a serial bit stream,
inserts the appropriate characters or bits (based on
the communication technique) and outputs a composite serial stream of data on the TxD output pin on
the falling edge of TxC. The transmitter will begin
transmission upon being enabled if CTS = o. The
TxD line will be held in the marking state immediately upon a master Reset or when Tx Enable or CTS is
off or the transmitter is empty.
Modem Control
The 8251A has a set of control inputs and outputs
that can be used to simplify the interface to almost
any modem. The modem control signals are general
purpose in nature and can be used for functions other than modem control, if necessary.
Transmitter Control
The Transmitter Control manages all activities associated with the transmission of serial data. It accepts
and issues signals both externally and internally to
accomplish this function.
DSR (Data Set Ready)
The DSR input signal is a general-purpose, 1-bit inverting input port. Its condition can be tested by the
CPU using a Status Read operation. The DSR input
is normally used to test modem conditions such as
Data Set Ready.
TxRDY
(Transmitt~r
Ready)
This output signals the CPU that the transmitter is
ready to accept a data character. The TxRDY output
pin can be used as an interrupt to the system, since
it is masked by TxEnable; or, for Polled operation,
the CPU can check TxRDY using a Status Read operation. TxRDY is automatically reset by the leading
edge of WR when a data character is loaded from
the CPU.
DTR (Data Terminal Ready)
The DTR output signal is a general-purpose, 1-bit
inverting output port. It can be set "low" by programming the appropriate bit in the Command Instruction
word. The DTR output signal is normally used for
modem control such as Data Terminal Ready.
Note that when using the Polled operation, the
TxRDY status bit is not masked by TxEnable, but will
only indicate the Empty/Full Status of the Tx Data
Input Register.
RTS (Request to Send)
The RTS output signal is a general-purpose, 1-bit
inverting output port. It can be set "low" by programming the appropriate bit in the Command Instruction
word. The RTS output signal is normally used for
modem control such as Request to Send.
TxE (Transmitter Empty)
When the 8251A has no characters to send, the
TxEMPTY output will go "high". It resets upOn receiving a character from CPU if the transmitter is
enabled. TxEMPTY remains high when the transmitter is disabled. TxEMPTY can be used to indicate
the end of a transmission mode, so that the CPU
"knows" when to "turn the line around" in the halfduplex operational mode.
CTS (Clear to Send)
A "low" on this input enables the 8251 A to transmit
serial data if the Tx Enable bit in the Command byte
is set to a "one". If either a Tx Enable off or CTS off
condition occurs while the Tx is in operation, the Tx
will transmit all the data in the USART, written prior
to Tx Disable command before shutting down.
In the Synchronous mode, a "high" on this output
indicates that a character has not been loaded and
the SYNC character or characters are about to be or
are being transmitted automatically as "fillers". Tx
EMPTY does not go low when the SYNC characters
are being shifted out.
2-4
inter
8251A
RESET _ _
CL~ _ _ READ/WRITE
T.Roy
C/O_
RD_
TxEMPTY
CONTROL
LOGIC
f.c
WR
C5 _ _ _---'
R.o
/
INTERNAL
DATA BUS
_SYNDET/
BRKDET
205222-4
Figure 4. 8251A Block Diagram Showing Modem and Transmitter Buffer and Control Functions
TxC (Transmitter Clock)
Receiver Control
The Transmitter Clock controls the rate at which the
character is to be transmitted. In the Synchronous
transmission mode, the Baud Rate (1x) is equal to
the TxC frequency. In Asynchronous transmission
mode, the baud rate is a fraction of the actual TxC
frequency. A portion of the mode instruction selects
this factor; it can be 1, Y'6 or %4 the TxC.
This functional block manages all receiver-related
activities which consists of the following features.
The RxD initialization circuit prevents the 8251A
from mistaking an unused input line for an active low
data line in the "break condition". Before starting to
receive serial characters on the RxD line, a valid "1"
must first be detected after a chip master Reset.
Once this has been determined, a search for a valid
low (Start bit) is enabled. This feature is only active
in the asynchronous mode, and is only done once
for each master Reset.
For Example:
If Baud Rate equals 110 Baud,
TxC equals 110Hz in the 1x mode.
TxC equals 1.72 kHz in the 16x mode.
TxC equals 7.04 kHz in the 64x mode.
The falling edge of TxC shifts the serial data out of
the 8251 A.
The False Start bit detection circuit prevents false
starts due to a transient noise spike by first detecting
the falling edge and then strobing the normal center
of the Start bit (RxD = low).
Receiver Buffer
Parity error detection sets the corresponding status
bit.
The Receiver accepts serial data, converts this serial input to parallel format, checks for bits or characters that are unique to the communication technique
and sends an "assembled" character to the CPU.
Serial data is input to RxD pin, and is clocked in on
the rising edge of RxC.
The Framing Error status bit is set if the Stop bit is
absent at the end of the data byte (asynchronous
mode).
2-5
inter
8251A
when the internal transfer is occurring, overrun error
will be set and the old character will be lost.
RxRDY (Receiver Ready)
This output indicates that the 8251A contains a
character that is ready to be input to the CPU.
RxRDY can be connected to the interrupt structure
of the CPU or, for polled operation, the CPU can
check the condition of RxRDY using a Status Read
operation.
RxC (Receiver Clock)
The Receiver Clock controls the rate at which the
character is to be received. In Synchronous Mode,
the Baud Rate (1x) is equal to the actual frequency
of RxC. In Asynchronous Mode, the Baud Rate is a
fraction of the actual RxC frequency. A portion of the
mode instruction selects this factor: 1, 1,1,6 or %4 the
RxC.
RxEnable, when off, holds RxRDY in the Reset Condition. For Asynchronous mode, to set RxRDY, the
Receiver must be enabled to sense a Start Bit and a
complete character must be assembled and transferred to the Data Output Register. For Synchronous
mode, to set RxRDY, the Receiver must be enabled
and a character must finish assembly and be transferred to the Data Output Register.
For Example:
Baud Rate equals 300 Baud, if
RxC equals 300 Hz in the 1x mode;
RxC equals 4800 Hz in the 16x mode;
RxC equals 19.2 kHz in the 64x mode.
Failure to read the received charaoter from the Rx
Data Output Register prior to the assembly of the
next Rx Data character will set overrun condition error and the previous character will be written over
and lost. If the Rx Data is being read by the CPU
Baud Rate equals 2400 Baud, if
RxC equals 2400 Hz in the 1x mode;
RxC equals 38.4 kHz in the 16 mode;
RiC equals 153.6 kHz in the 64 mode.
TRANSMIT
BUFFER
TKO
(P ·S)
TxRDY
TxEMPTV
rxc
205222-5
Figure 5. 8251A Block Diagram Showing Receiver Buffer and Control Functions
2-6
inter
8251A
Data is sampled into the 8251A on the rising edge of
RxC.
character in the Receive mode. If the 8251A is programmed to use double Sync characters (bi-sync),
then SYNDET will go "high" in the middle of the last
bit of the second Sync character. SYNDET is automatically reset upon a Status Read operation.
NOTE:
In most communication systems, the 8251A will be
handling both the transmission and reception operations of a· single link. Consequently, the Receive
and Transmit Baud Rates will be the same. Both
TxC and RxC will require identical frequencies for
this operation and can be tied together and connected to a Single frequency source (Baud Rate
Generator) to simplify the interface.
When used as an input (ex1ernal SYNC detect
mode), a positive going signal will cause the 8251A
to start assemblin~ata characters on the rising
edge of the nex1 AXe. Once in SYNC, the "high"
input signal can be removed. When External SYNC
Detect is programmed, Internal SYNC Detect is disabled.
SYNDET (SYNC Detect!
BRKDET Break Detect)
BREAK (Async Mode Only)
This pin is used in Synchronous Mode for SYNDET
and may be used as either input or output, programmable through the Control Word. It is reset to output
mode low upon RESET. When used as an output
(internal Sync mode), the SYNDET pin will go "high"
to indicate that the 8251A has located the SYNC
This output will go high whenever the receiver remains low through two consecutive stop bit sequences (including the start bits, data bits, and parity
bits). Break Detect may also be read as a Status bit.
It is reset only upon a master chip Reset or Rx Data
returning to a "one" state.
'l
\
ADDRESS BUS
Ao
\
\
CONTROL BUS
1/0 R
\
1/0 W RESET
<'2
(TTL)
\
DATA BUS
/').
8
V
C/O
CS
0 7-00
RD
WR
RESET
ClK
B251A
205222-6
Figure 6. 8251A Interface to 8080 Standard System Bus
2-7
inter
8251A
DETAILED OPERATION DESCRIPTION
Programming the 8251A
Prior to starting data transmission or reception, the
8251A must be loaded with a set of control words
generated by the CPU. These control Signals define
the complete functional definition of the 8251A and
must immediately follow a Reset operation (internal
or external).
General
The complete functional definition of the 8251A is
programmed by the system's software. A set of control words must be sent out by the CPU to initialize
the 8251A to support the desired communications
format. These control words will program the: BAUD
RATE, CHARACTER LENGTH, NUMBER OF STOP
BITS, SYNCHRONOUS or ASYNCHRONOUS OPERATION, EVEN/ODD/OFF PARITY, etc. In the
Synchronous Mode, options are also provided to select either internal or external character synchronization.
The control words are split into two formats:
1. Mode Instruction
2. Command Instruction
Mode Instruction
Once programmed, the 8251A is ready to perform its
communication functions. The TxRDY output is
raised "high" to signal the CPU that the 8251A is
ready to receive a data character from the CPU. This
output (TxRDY) is reset automatically when the CPU
writes a character into the 8251A. On the other
hand, the 8251A receives serial data from the MODEM or I/O device. Upon receiving an entire character, the RxRDY output is raised "high" to signal the
CPU that the 8251A has a complete character ready
for the CPU to fetch. RxRDY is reset automatically
upon the CPU data read operation.
This instruction defines the general operational
characteristics of the 8251A. It must follow a Reset
operation (internal or external). Once the Mode Instruction has been written into the 8251A by the
CPU, SYNC characters or Command Instructions
may be written.
The 8251A cannot begin transmission until the Tx
Enable (Transmitter Enable) bit is set in the Command Instruction and it has received a Clear To
Send (CTS) input. The TxD output will be held in the
marking state upon Reset.
Both the Mode and Command Instructions must
conform to a specified sequence for proper device
operation (see Figure 7). The Mode Instruction must
be written immediately following a Reset operation,
prior to using the 8251A for data communication.
C/O'1
MODE INSTRUCTION
C/O, 1
SYNC CHARACTER 1
ciB '
SYNC CHARACTER 2
}
1
C/o' 1
COMMAND INSTRUCTION
C/O, 0
DATA
cii5
=
1
ci5,
0
cii5,
1
Command Instruction
This instruction defines a word that is used to control
the actual operation of the 8251A.
All control words written into the 8251A after the
Mode Instruction will load the Command Instruction.
Command Instructions can be written into the 8251 A
at any time in the data block during the operation of
the 8251A. To return to the Mode Instruction format,
the master Reset bit in the Command Instruction
word can be set to initiate an internal Reset operation which automatically places the 8251A back into
the Mode Instruction format. Command Instructions
must follow the Mode Instruction or Sync characters.
SYNC MODE
ONLY'
COMMAND INSTRUCTION
L
Mode Instruction Definition
DATA
1
The 8251A can be used for either Asynchronous or
Synchronous data communication. To understand
how the Mode Instruction defines the functional operation of the 8251A, the designer can best view the
device as two separate components, one Asynchronous and the other Synchronous, sharing the same
package. The format definition can be changed only
after a master chip Reset. For explanation purposes
the two formats will be isolated.
t-CO-M-M-AN-D-I~-IST-R-UC-T-IO-N-;
205222-7
'The second sync character is skipped if mode instruction has
programmed the 8251 A to single character sync mode. Both
sync characters are skipped if mode instruction has programmed
the 8251 A to async mode.
Figure 7. Typical Data Block
2-8
inter
8251A
NOTE:
When parity is enabled it is not considered as one
of the data. bits for the purpose of programming
word length. The actual parity bit received on the
Rx Data line cannot be read on the Data Bus. In
the case of a programmed character length of less
than 8 bits, the least significant Data Bus bits will
hold the data; unused bits are "don't care" when
writing data to the 8251A, and will be "zeros" when
reading the data from the 8251A.
When no data characters have been loaded into the
8251A the TxD output remains "high" (marking) unless a Break (continuously low) has been programmed.
Asynchronous Mode (Receive)
The RxD line is normally high. A falling edge on this
line triggers the beginning of a START bit. The validity of this START bit is checked by again strobing this
bit at its nominal center (16X or 64X mode only). If a
low is detected again, it is a valid START bit, and the
bit counter will start counting. The bit counter thus
locates the center of the data bits, the parity bit (if it
exists) and the stop bits. If parity error occurs, the
parity error flag is set. Data and parity bits are sampled on the RxD pin with the rising edge of the RxC.
If a low level is detected as the STOP bit the Framing Error flag will be set. The STOP bit signals the
end of a character. Note that the receiver requires
only one stop bit, regardless of the number of stop
bits programmed. This character is then loaded into
the parallel 110 buffer of the 8251A. The RxRDY pin
is raised to signal the CPU that a character is ready
to be fetched. If a previous character has not been
fetched by the CPU, the present character replaces
it in the 1/0 buffer, and the OVERRUN Error flag
Asynchronous Mode (Transmission)
Whenever a data character is sent by the CPU the
8251A automatically adds a Start bit (low level) followed by the data bits (least significant bit first), and
the programmed number of Stop bits to each character. Also, an even or odd Parity bit is inserted prior
to the Stop bit(s), as defined by the Mode Instruction. The character is then transmitted as a serial
data stream on the TxD output. The serial data is
shifted out on the falling edge of IxC at a rate equal
to 1, 1116, or 1164 that of the TxC, as defined by the
Mode Instruction. BREAK characters can be continuously sent to the TxD if cpmmanded to do so.
I I I I I
52
S,
EP
PEN
L21 L,
I
821 8,
I
L
8AUO RATE FACTOR
1
0
0
1
0
0
1
1
SYNC
MODE
(lX)
(16X)
(64X)
CHARACTER LENGTH
0
1
0
0
1
1
5
81TS
6
7
8
BITS
0
81TS
1
BITS
PARITY ENABLE
1 = ENABLE
0= DISA8LE
EVEN PARITY GENERATION/CHE CK
0=000
1 = EVEN
NUMBER OF STOP BITS
0
1
0
0
0
1
1
INVALID
1
1Y2
BIT
BITS
2
1
BITS
(ONLY AFFECTS Tx; Rx
NEVER REQUIRES MORE
THAN ONE STOP BIT)
205222-8
Figure 8. Mode Instruction Format, Asynchronous Mode
2-9
8251A
Once transmission has started, the data stream at
the TxD output must continue at the TxC rate. If the
CPU does not provide the 8251A with a data character before the 8251A Transmitter Buffers become
empty, the $YNC characters (or character if in single
SYNC character mode) will be automatically inserted
in the TxD data stream. In this case, the TxEMPTY
pin is raised high to signal that the 8251A is empty
and SYNC characters are being sent out. TxEMPTY
does not go low when the SYNC is being shifted out
(see figure below). The TxEMPTY pin is internally
reset by a data character being written into the
8251A.
is raised (thus the previous character is lost). All of
the error flags can be reset by an Error Reset Instruction. The ·occurrence of any of these errors will
not affect the operation of the 8251A.
Synchronous Mode (Transmission)
The TxD output is continuously high until the CPU
sends its first character to the 8251A which usually
is a SYNC character. When the eiS line goes low,
the first character is serially transmitted out. All characters are shifted out on the falling edge of TxC.
Data is shifted out at the same rate as the TxC.
DO 01---- Ox
TxD
STJ;i
Brrs L
MARKING
DOES NOT APPEAR
Do 01 ----Ox ON THE DATA BUS
RECEIVER INPUT
RxD
GENERATED
BY 8251A
tt
t
t
L-S_T_~_~_T~ D_A_T~~BrIT_S ~
___
__
~ Brrs L
ST;;--'
____
PROGRAMMED
CHARACTER
LENGTH
TRANSMISSION FORMAT
CPU BYTE (5·8 BITS/CHAR)
DATA
C~~RACTER
ASSEMBLED SERIAL DATA OUTPUT (TxD)
DATA CHARACTER
~
_ _ _ _- L _ _ _ _
STOD
BITS
~~
RECEIVE FORMAT
SERIAL DATA INPUT (RxD)
STOt]
BITS
"'---~----""""--f
DATA CHARACTER
CPU BYTE (5·8 BITS/CHAR)'
~
I
DATA CHA~ACTER
205222-9
°NOTE:
If character length is defired as 5, 6, or 7 bits the !Jnused bits are set to "zero".
Figure 9, Asynchronous Mode
2-10
8251A
AUTOMATICALLY INSERTED BY USART
TxD
I
I \
DATA
1DATA 1SYNC 1 1SYNC 21
TxEMPTY
/
-~'"
DATA
1- - - - -
\\\\\\\\1 ~~~~~~~~ ~~UT~~IJ~:~:
NOMINAL CENTER OF LAST BIT
the USART ends the HUNT mode and is in character synchronization. The SYNDET pin is then set
high, and is reset automatically by a STATUS READ.
If parity is programmed, SYNDET will not be set until
the middle of the parity bit instead of the middle of
the last data bit.
Synchronous Mode (Receive)
In this mode, character synchronization can be internally or externally achieved. If the SYNC mode has
been programmed, ENTER HUNT command should
be included in the first command instruction word
written. Data on the RxD pin is then sampled on the
rising edge of RiC. The content of the Rx buffer is
compared at every bit boundary with the first SYNC
character until a match occurs. If the 8251A has
been programmed for two SYNC characters, the
subsequent received character is also compared;
when both SYNC characters have been detected,
I I I I I
scs
ESD
EP
PEN
L21 L1
205222-10
In the external SYNC mode, synchronization is
aChieved by applying a high level on the SYNDET
pin, thus forcing the 8251A out of the HUNT mode.
The high level can be removed after one RxC cycle.
An ENTER HUNT command has no effect in the
asynchronous mode of operation.
I I I
0
0
I
CHARACTER LENGTH
0
1
0
5
BITS
BITS
0
1
0
1
1
6
7
BITS
8
BITS
PARITY ENABLE
(1 = ENABLE)
(0 = DISA8LE)
EVEN PARITY GENERATloN/CHEe K
1 = EVEN
0=000
EXTERNAL SYNC DETECT
1 = SYNDET IS AN INPUT
SYNDer IS AN OUTPUT
o=
SINGLE CHARACT ER SYNC
1 = SINGLE SYNC CHARACTER
0= DOUBLE SYNC CHARACTER
NOTE:
In external sync mode, programming double character sync will affect only the Tx.
Figure 10. Mode Instruction Format, Synchronous Mode
2-11
205222-11
inter
8251A
Sync characters are loaded (if in Sync Mode) then
the device is ready to be used for data communication. The Command Instruction controls the actual
operation of the selected format. Functions such as:
Enable Transmit/Receive, Error Reset and Modem
Controls are provided by the Command instruction.
Parity error and overrun error are both checked in
the same way as in the Asynchronous Rx mode.
Parity is checked when not in Hunt, regardless of
whether the Receiver is enabled or not.
The CPU can command the receiver to enter the
HUNT mode if synchronization is lost. This will also
set all the used character bits in the buffer to a
"one," thus preventing a possible false SYNDET
caused by data that happens to be in the Rx Buffer
at ENTER HUNT time. Note that the SYNDET F/F is
reset at each Status Read, regardless of whether
internal or external SYNC has been· programmed.
This does not cause the 8251A to return to the
HUNT mode. When in SYNC mode, but not in
HUNT, Sync Detection is still functional, but only occurs at the "known" word boundaries. Thus, if one
Status Read indicates SYNDET and a second
Status Read also indicates SYNDET, then the programmed SYNDET characters have been received
since the previous Status Read. (If double character
sync has been programmed, then both sync characters have been contiguously received to gate a SYNDET indication). When external SYNDET mode is
selected, internal Sync Detect is disabled, and the
SYNDET F/F may be set at any bit boundary.
Once the Mode Instruction has been written into the
8251A and Sync characters inserted, of necessary,
then all further "control writes" (C/O = 1) will load a
Command Instruction. A Reset Operation (internal or
external) will return the 8251A to the Mode Instruction format.
NOTE:
Internal Res'et on Power-up:
When power is first applied, the 8251A may come up
in the Mode, Sync character or Command format. To
guarantee that the device is in the Command Instruction format before the Reset command is issued,it is safest to execute the worst-case initialization sequence (sync mode with two sync characters). Loadin9.. three OOHs consecutively into the device with C/D = 1 configures sync operation and
writes two dummy OOH sync characters. An Internal
Reset command (40H) may then be issued to return
the device to the "idle" state.
COMMAND INSTRUCTION
DEFINITION
Once the functional definition of the 8251A has
been programmed by the Mode Instruction and the
cPU BYTES (5-8 BITS/CHARI
ASSEMBLED SERIAL DATA OUTPUT (TxDI
SYNC
CHAR 1
DATACH~~~A_CT_E_R_S
SYNC
CHAR 2
____
~
RECEIVE FORMAT
SERIAL DATA INPUT (RxDI
SYNC
CHAR 1
.SYNC·
CHAR 2
I
DATACH~R:~C_T_E_R_S
____
~
CPU BYTES (5-8 BITS/CHARI
DATA
CH~RACTERS
205222-12
Figure 11. Data Format, Synchronous Mode
2-12
intJ
8251A
I I I I ISBR~l I 1
EH
IR
RTS
ER
R.E
DTR
hEN
I
TRANSMIT ENABLE
1 = enable
0- disable
DATA TERMINAL
READY
"high" will force DTR
output to zero
RECEIVE ENABLE
1 = enable
0= disable
SEND BREAK
CHARACTER
1 = forces T.D "low"
o = normal operation
ERROR RESET
1 = reset error flags
PE, OE, FE
REOUEST TO SEND
"high" will force ATS
output to lerQ
INTERNAL RESET
"high" returns 8251A to
Mode InstructIon Format
ENTER HUNT MODE'
1 = enable search for Sync
Characters
'(HAS NO EFFECT IN
ASYNCMODE)
NOTE:
205222-13
Error Reset must be performed whenever RxEnable and Enter Hunt are programmed.
Figure 12. Command Instruction Format
A normal "read" command is issued by the CPU
with C/O = 1 to accomplish this function.
STATUS READ DEFINITION
In data communication systems it is often necessary
to examine the "status" of the active device to ascertain if errors have occurred or other conditions
that require the processor's attention. The 8251A
has facilities that allow the programmer to "read"
the status of the device at any time during the functional operation. (Status update is inhibited during
status read.)
Some of the bits in the Status Read Format have
identical meanings to external output pins so that
the 8251A can be used in a completely polled or
interrupt-driven environment. TxRDY is an excep·
tion.
2-13
intJ
8251A
Note that status update can have a maximum delay of 28 clock periods from the actual event affecting the
status.
o7
l
oSR
o6
I SYNoETI
BRKDET
I
o5
o4
o·3
FE
OE
PE
I I I
,
o2
o
J
T.EMPTVI R.RoV
1
I
o'0
TxRoy
L-.
Note 1
1
SAME DEFINITIONS AS 110 PINS
PARITY ERROR
The PE lIag IS set when a parity
error IS detected It IS reset by
the E R bIt of the Command
InstructIon PE does not InhIbIt
operatIon of the 8251 A
OVERRUN ERROR
The OE lIag IS set when the CPU
does not read a character before
'--
the next one becomes available
It IS reset by the E R bIt of the
Command InstructIon OE does
not InhlbO! operatIon of the 8251 A
however. the prevlC)usly overrun
character
IS
lost
FRAMING ERROR (Async onlyl
The FE lIag IS set when a valid
Stop b,t IS not detected at the
end of every character It
IS
reset
by the E R bIt of the Command
Instruction FE does not inhibit
the operatIon of the 8251 A
..
DATA SET READY IndIcates
that the oSR IS at a zero level
205222-14
NOTE:
1. TxRDY status bit has different meanings from the TxRDY output pin. The former is not conditioned by CTS and TxEN;
the latter is conditioned by both C'I'S and TxEN.
'
i.e. TxRDY status bit = DB Buffer Empty
TxRDY pin out = DB Buffer Empty. (C'I'S = 0) • (TxEN= 1)
Figure 13. Status Read Format
2·14
intJ
8251A
APPLICATIONS OF THE 8251A
BAUD RATE
GENERATOR
lJ)
CRT
TERMINAL
205222-15
Figure 14. Asynchronous Serial Interface to CAT Terminal, Dc-9600 Baud
'--_ _ _ _---..:.;ADDRESS BUS
SYNCHRONOUS
TERMINAL
OR PERIPHERAL
DEVICe
SYNDET ~----I
2Q5222-16
Figure 15. Synchronou81nterface to Terminal or Peripheral Device
2-15
intJ
8251A
APPLICATIONS OF THE 8251A (Continued)
PHONE
LINE
INTER
FACE
TELEPHONE
LINE
205222-18
Figure 16. Asynchronous Interface to Telephone Lines
SYNC
MODEM
PHONE
LINE
INTER·
FACE
TELEPHONE
LINE
205222-17
Figure 17. Synchronous Interface to Telephone Lines
NOTES:
1. AC timings measured VOH = 2.0 VOL = 0.8, and with load circuit of Figure 18.
2. Chip Select (CS) and Command/Data (C/O) are considered as Addresses.
3. Assumes that Address is valid before RD i.
4. This recovery time is for Mode Initialization only. Write Data is allowed only when TxRDY = 1. Recovery Time between
Writes for Asynchronous Mode is 8 Icv and for Synchronous Mode is 16 Icv.
5. The TxC and RxC frequencies have the following limitations with respect to ClK: For 1x Baud Rate, fTx or fRx :s:
1/(30 Icv): For 16x and 64x Baud Rate, fTx or fRx :s: 1/(4.5 Icv).Thls applies to Baud Rates less than or equal to 64K Baud.
6. Reset Pulse Width = 6 tcv minimum; System clock must be running during Reset.
7. Status update can have a maximum delay of 28 clock periods from the event affecting the status.
8. In external sync mode the tes spec. requires the ratio of the system clock (clock) to receive or transmit bit ratios to be
greater than 34.
9. A float is defined as the point where the data bus falls below a logic 1 (2.0V @ IOH limit) or rises above a logic 0 (O.8V @
IOL limit).
2·16,
inter
8251A
• Notice: Stresses above those listed under '~bso
lute Maximum Ratings" may cause permanent damage to the device. This is a stress reting only and
functional operation of the device at these or any
other conditions above those indicated in the operational sections of this specificetion is not implied. Exposure to absolute maximum rating conditions for
extended periods may affect device reliability.
ABSOLUTE MAXIMUM RATINGS·
Ambient Temperature Under Bias ...... O·C to 70·C
Storage Temperature .......... - 65·C to
+ 150·C
Voltage on Any Pin
with Respect to Ground .......... - 0.5V to
+ 7V
Power Dissipation ..........•................ 1W
D.C. CHARACTERISTICS TA = O·C to 70·C, Vee = 5.0V ± 10%, GND = OV·
Symbol
Parameter
Min
Unit
Max
VIL
Input Low Voltage
-0.5
VIH
Input High Voltage
2.0
Test Conditions
0.8
V
Vee
V
0.45
V
IOL = 2.2mA
V
IOH = -400 /LA
VOL
Output Low Voltage
VOH
Output High Voltage
IOFL
Output Float Leakage
±10
/LA
VOUT = VeetoO.45V
IlL
Input Leakage
±10
/LA
VIN = Vee toO.45V
Icc
Power Supply Current
100
ma
All Outputs = High
2.4
CAPACITANCE TA = 25·C, Vee = GND = OV
Symbol
Parameter
Min
Max
Unit
pF
fc'=1MHz
pF
Unmeasured pins returned
toGND
CIN
Input Capacitance
10
ClIO
I/O CapaCitance
20
rest Conditions
A.C. CHARACTERISTICS TA = O·C to 70·C, Vee = 5.0V ± 10%, GND = OV·
Bus Parameters (Note 1)
READ CYCLE
Symbol
tAR
tRA
Max
Unit
Test Conditions
Parameter
Min
(CS, C/D)
Address Hold Time for READ (eS, C/D)
0
ns
(Note 2)
0
ns
(Note 2)
250
ns
, Address Stable Before READ
tRR
READ Pulse Width
tRO
Data Delay from READ
tOF
READ to Data Floating
10
200
ns
3,CL = 150pF
100
ns
(Note 1, 9)
WRITE CYCLE
Symbol
Parameter
Min
Max
Unit
tAW
Address Stable Before WRITE
0
ns
tWA
Address Hold Time for WRITE
0
ns
tww
WRITE Pulse Width
250
ns
tow
Data Set-Up Time for WRITE
150
!'Is
two
Data Hold Time for WRITE
20
ns
tRY
Recovery Time Between WRITES
6
icv
2-17
Test Conditions
(Note 4)
intJ
8251A
A.C. CHARACTERISTICS (Continued)
OTHER TIMINGS
Min
Max
Unit
toy
Symbol
ClOck Period
320
1350
ns
t
Clock High Pulse Width
120
tCy-90
ns
tcf>
Clock Low Pulse Width
90
tR, tF
Clock Rise and Fall Time
20
ns
tOTx
TxD Delay from Falling Edge of TxC
1
p.s
fTx
Transmitter Input Clock Frequency
1x Baud Rate
16x Baud Rate
64x Baud Rate
DC
DC
DC
64
310
615
kHz
kHz
kHz
Transmitter Input Clock Pulse Width
1x Baud Rate
16x and 64x Baud Rate
12
1
toy
toy
Transmitter Input Clock Pulse Delay
1x Baud Rate
16x and 64x Baud Rate
15
3
tCY
tCY
Receiver Input Clock Frequency
1x Baud Rate
16x Baud Rate
64x Baud Rate
DC
DC
DC
Receiver Input Clock Pulse Width
1x Baud Rate
16x and 64x Baud Rate
12
1
tor
Receiver Input Clock Pulse Delay
1x Baud Rate
16x and 64x Baud Rate
15
3
toy
toy
tTPW
tTPO
fRx
tRPW
tRPD
Parameter
tTxRDY
TxRDY Pin Delay from Center of Last Bit
tTxRDY CLEAR
TxRDY
tRxRDY
RxRDY Pin Delay from Center of Last Bit
tRxRDY CLEAR
RxRDY
tiS
Internal SYNDET Delay from Rising
Edge of AXe
tES
External SYNDET Set-Up Time After
Rising Edge of AXe
tTxEMPTY
twc
toR
J.. from Leading Edge of WR
J.. from Leading Edg~ of RD
16tCY
TxEMPTY Delay from Center of Last Bit
. Control Delay from Rising Edge of
WRITE (TxEn, DTR, RTS)
Control to 'READ Set-Up Time (DSR, CTS)
20
·NOTE:
For Extended Temperature EXPRESS, use MIL 8251A electrical parameters.
2-18
Test Conditions
(Note 5, 6)
ns
64
310
615
kHz
kHz
kHz
toy
14
toy
(Note 7)
400
ns
(Note 7)
26
toy
(Note 7)
400
ns
(Note 7)
26
tcy
(Note 7)
tRPD-tCY
ns
(Note 7)
20
tCY
8.
toy
.'
toy
(Note 7)
(Note 7)
(Note 7)
inter
8251A
A.C. CHARACTERISTICS (Continued)
TYPICAL .1 OUTPUT DELAY VS . .1 CAPACITANCE (pF)
+20
-.;
E
>
< x=
20
.
0.45
TEST POINTS
0.8
2.0
~
8251A
0.8
OUT
205222-20
AC Testing: Inputs are driven at 2.4V for a Logic "I" and 0.45V
for a Logic "0". Timing measuremenls are made at 2.0V for a
Logic "I" and 0.8V for a Logic "0".
±"
-=
C L = 150 pF
205222-21
Figure 18
WAVEFORMS
SYSTEM CLOCK INPUT
CLOCK
¢
205222-22
2-19
~
<
m
."
o:::0
TRANSMITTER CLOCK AND DATA
l
:s:::
CJ)
'0
o
TxC Ilx MODEl
::J
do
::J
c:
~116xMODEI
--1
Tx DATA
! = tOTX
----,X
tOTX-l
1=
X - .-----x==
~
205222-23
CD
~
I\)
ro
o
en
....
»
RECEIVER CLOCK AND DATA
IRx BAUD COUNTER STARTS HEREI
RxDATA
RxC (1x MODE)
RxC (16 MODE)
tNT SAMPLING
PULSE
205222-24
inter
8251A
WAVEFORMS (Continued)
WRITE DATA CYCLE (CPU hRDY
DATA IN ID.B.I
USART)
___-JI
_ ________~DO~N~.!T~C~A~R~E____~~~~~~~~----~DO~N~.!T~C~A~R~E---
CIO
205222-25
READ DATA CYCLE (CPU
~
USART)
\Lrl - - - - - - -
--------------------,r
".----lI
If-r-;~~=~v em: I
Rci
I-'RO
DATA OUT 10.B.1
--
r'OF
-----20~AT!!A~F~L:20~AT!---___t-{JO~A~T~A~O~UT~Ae~T~lv~ED....f!;OA~T~A~F:.!:L2:0A~T
em _______________~__+-___________+--~------
205222-26
2-21
intJ
8251A
WAVEFORMS (Continued)
WRITE CONTROL OR OUTPUT PORT CYCLE (CPU -
USART)
OTR,RTS -------------------~--,r------(NOTE =1) - - - - - - - - - - -_ _ _ _ _ _ _ - - A
l:::
twc :::.j
- - - - - - - -____ I-tww-I r - - - - - - - - -
~
1-' tow - - ::1 two
'it
OATAIN(OB)
1--.. .
c/o
~
1--1
tAW
tWA
1\'---_ __
- - - - -_ _ _ _~/I:f-
-------------, 1- •
tAW
-1,..:-tW.:..:,A"'--_ _ _ _ _ __
~~----~y
205222-27
READ CONTROL OR INPUT PORT (CPU -
USART)
V
OSR,CTS
(NOTE "2) _ _ _ _--.JA'--_ _ _ _....,.,-_ _ _ _ _ _ _ _ _ _ ___
-~j
1 ,--_ _ __
.......- - tRR 1)1
__
_ -_ _
tCR
_ _ _ _ _ _ _ _1_
__
Rd
~
-+I 1-
DATA OUT
(O.B.)
---lIAR - -
c/o
tRO
-
j-10F
7.
~ tRAr---
fi
_ _ _ _ _ _ _ _- J
- \ tAR -
- - tRA
1;==
------------~~~------------~y
205222-28
NOTES:
1. T wc includes the response timing of a control byte.
2. TCR includes the effect of CTS on the TxENBL circuitry,
2·22
:IE
:.<
m
."
TRANSMITTER CONTROL AND FLAG TIMING (ASYNC MODE)
rn
'T.EMPTV
I~en
----t'=-----1
Tx EMPTY
l
t'
Tx READY
(STATUS BIT)
T'R~:'~
g.c
jJ
CD
.s
C/O
WrSBRK
w.
TxDATA
--------------~~[(IXXX)J~~~OC((((~\1)JJOJODG
DATA CHAR 1
DATA CHAR 2
'Oo~NC"l"u).
DATA CHAR 3
~ DATACHAR4
_00-
lDiD
Example Fonnat = 7 Bit Character With Parity & 2 Stop Bits.
~~
Cc
1;;0
-
:e
..
205222-29
~
...:.en~
RECEIVER CONTROL AND FLAG TIMING (ASYNC MODE)
~
BRfAKDlTH.f
f H.".'IIN(, fRAU,",
'ifA1U\d,l
-
UVERRUN ERROR
tSlATUSBlT1
All ROY
~
CHAR 2
~lR.ROY
LOST
I
cD
,..---.
RdOAlA
----i'Rd'"
W,EHR
~
Au
V
I
1
L--
~~
V
V
~
/
Illll
i~
BREAK
1
R.En
e .. Rn
.~
".
:;;0
~~
Example Format = 7 Bit Character W,th Parity & 2 Stop Bits
205222-30
! (
TRANSMITTER CONTROL AND FLAG TIMING (SYNC MODE)
m
."
o::II
s:::
en
'§
~
:::l
1
~
ciS
r1\
TIl EMPTY
r. READY
(STATUS BITI
I\)
~
h
READY
(PIN)
CD
W-tLtr-- V- tL\
{\
WI' OATA
Wi
MARKING STATE
hOATA
I
r-
f
J
~'+
I'---
i,--
~
....en
W,COMMAND
:.
saRK
I
~
CHAR 1
I
1\
Wr DATA
DATA
CHARl
I
\
Wr OATA
WrOATA
CHAR 3
C~tR'
~
SYNC
CHAR 1
~~
tHAR:I .
SYP«: CHAR 2
Wt'~OMMA'::!
\\
SBRK
DATA~
CHAR 4
I
W. DATA
CHAR 5
MA~:it~
DATA
CHAR!.
L-.'/
'I-I'N'
STATE
...
"oX-X'N' ,..,..~'H'H'J'A. ·HI,I·IIoI-I,I>I·l·I-I>I,I·
......
...."].1-1,1>1·1,....I
Example Fonnat = 5 Bit Character With Parity. 2 Sync Characters.
STATE
STATE
Sv~C
CHAR
...
lIC
...
.Y-I,Y,Y·Y 1.Y205222-31
~
RECEIVER CONTROL AND FLAG TIMING (SYNC MODE)
<
m
'TI
(
o:0
3:
en
'§
SYJ\lOf r
{PINI NOH
1
J
'IS_ li-
SVNOE TIS 81
3-
rr~DTE~
~\
tES_
I,
~\
~
5'
c:
~
r
~
OVERRUN
ERROR IS BI
J
JOATA CHAH 2 1\
lOST
r~
RI{ ROY {PINt
Rd STATUS
I\)
r\,
CD
(11
w,
EH
R.En
IIRd DATAJ
\
\
", ~
r~r-
j
Rd$TATUS
W, EHo
L
Rd STATUS
r-
1\
Rd DATA
CHAR 1
SYNC
SYNC
CHAR'
CHAR 2
DATA
CHAR 1
\l[J V
CHAR 2
DATA
CHAR 3
\~YNC
CHAR 1
\1.J ~IJ
SVNCCHAR 2
DATA
DATA
CHAR 1
OON'TCARE
LV
CHAR 2
ETC
~, ~'.moX'X'H,moX'X'H'moX'X'A>X~~H~N'H'X'I~XoX'N'H~X-X"kl"l"l·X' • Tl'l'A.'HX'X' , 'Nll XXX XX
I rTTTTTT1TTT1
TTTTT1}'~rTJ1TTTTT
~
CHAR ASSY
W
BEGINS
RII ClOC-1<
LEXIT HUNT MODE
SET SYNC DET
EXIT HUNT MODE
SET SVN DET ISTATUSBITJ
1
lIlf .M
SET SYNDET (STATUS BIT I
205222-32
NOTES:
1. Internal Sync, 2 Sync Characters, 5 Bits With Parity.
2. External Sync, 5 Bits, With Parity,
C»
...
N
01
):0
'--
Rri
R. DATA
~dSYN!
y;JR"
RdDATA
CHAR 1
CHAR 1
DON T
CARE
r-'k
~\
i
82050
ASYNCHRONOUS COMMUNICATIONS CONTROLLER
•
•
•
•
•
Asynchronous Operation
- 5-to-8-Bit Character Format
- Odd, Even or No Parity Generation
and Detection
- Baud Rate DC to 56K
Programmable, 16-Blt Baud Rate
Generator
System Clock
- On-chip Crystal Oscillator
- Externally Generated Clock
28-Lead DIP and PLCC Packages
IBM PC (INS 16450/8250A) Software
Compatible
•
Seven 1/0 Pins
- Dedicated Modem 1/0
- General Purpose 1/0
•
•
•
•
•
NO TTL Interface to Most Intel
Processors
Internal Diagnostics with Local
Loopb~ck
Complete Interrupt and Status
Reporting
CHMOS III Technology Provides
Increased Reliability and Reduced
Power Consumption
Line Break Generation and Detection
The Intel CHMOS 82050 Asynchronous Communications Controller is a low cost, higher performance alternative to the INS 16450-it emulates the INS 16450 and provides 100% compatibility with IBM PC software. Its
28-lead package provides all the functionality necessary for an IBM PC environment while substantially decreasing board space. The 82050's simpler system interface reduces TTL glue-especially for higher frequency PC bus designs. The 82050 is specifically designed to provide a low cost, high-performance integrated
modem solution when combined with Intel's 89024 modem chip set. The compact 28-pin 82050 is fabricated
using CHMOS III technology for decreased power consumption and increased reliability.
vee
vss
TxD
A(2-0)
0(7-0)
RxD
INT
RESET
RD
BUS
INTERFACE
UNIT
16X
RxC
16X
TxC
WR
CS
OUT2
Ri
MODEM
CLKXl
X2
I/o
DSR
DCD
DTR
RTS
CTS
290137-1
Figure 1. Block Diagram
2-26
September 1987
Order Number: 290137-002
inter
82050
iii
Rii
04
05
06
07
·INT
TXO
VSS
OUT2/X2
ClK/Xl
OSR
WR
iii
WR
OSR
OCO
RXO
CTS
cs
INT
TXO
VSS
OUT2/X2
ClK/Xl
00
A2
Al
AO
VCC
290137-2
03
02
01
00
A2
Al
AO
VCC
Rii
RESET
RTS
OTR
290137-3
Figure 2. PLCC Pinout
Figure 3. DIP Pinout
82050 PINOUT DEFINITION
Pin
No.
Type
RESET
17
I
RESET: A high on this input pin resets the 82050.
CS
18
I
CHIP SELECT: A low on this input pin enabLes the 82050 and allows
read or write operations.
A2-AO
24-22
I
ADDRESS PINS: These inputs interface with three bits of the system
address bus to select one of the internal registers for read or write.
07-00
1-4
25-28
1/0
RO
20
I
READ: A low on this input pin allows the CPU to read. data or status
bytes from the 82050.
WR
19
I
WRITE: A low on this input allows the CPU to write data or control
bytes to the 82050.
INT
5
0
INTERRUPT: A high on this output pin signals an interrupt request to
the CPU. The CPU may determine the particular source and cause of
the interrupt by reading the 82050 status registers.
ClK/X1
9
I
MULTIFUNCTION: This input pin serves as a source for the internal
system clock. The clock may be asynchronous to the serial clocks and
to the processor clock. This pin may be used in one of two modes:
ClK-in this mode an externally generated clock should be used to
drive this input pin; X 1-in this mode the clock is generated by a crystal
to be connected between this pin (X1) and the X2 pin. (See system
clock generation.)
OUT2/X2
8
0
MULTIFUNCTION: This is a dual-function pin which may be configured
to one of the following functions: OUT2-a general purpose output pin
controlled by the CPU is only available when the ClK/X1 pin is driven
by an externally generated clock; X2-this pin serves as an output pin
for the crystal oscillator. Note: The configuration of pin is done during
hardware reset. For more details refer to the system clock generation.
Symbol
Name and Description
DATA BUS: Bi·directional, three state, 8-Bit Data Bus. These pins
allow transfer of bytes between the CPU and the 82050.
2-27
inter
82050
82050 PINOUT DEFINITION (Continued)
Pin
No.
Type
Name and Description
TXD
6
0
TRANSMIT DATA: Serial data is transmitted via this output pin starting
at the least significant bit.
AXD
13
I
RECEIVE DATA: Serial data is received on this input pin starting at the
least significant bit.
AI
10
I
RING INDICATION: AI- Aing indicator-input, active low. This is a
general purpose input accessible by the CPU.
DTA
15
0
DTR-DATA TERMINAL READY: Output, active low. This isa general
purpose output pin controlled by the CPU. During hardware reset, this
pin is an input used to determine the system clock mode. (See System
Clock Generation.)
DSA
11
1/0
DSR-DATA SET READY: Input, active low. This is a general purpose
input pin accessible by the CPU.
ATS
16
0
RTS-REQUEST TO SEND: Output, active low. This is a general
purpose output pin controlled by the CPU. During hardware reset, this
pin is an input used to determine the system clock mode. (See system
clock generation)
CTS
14
I
CLEAR TO SEND: Input active low. This is a general purpose input pin
accessible by the CPU.
DCD
12
I/O
VCC
21
P
VCC: Device power supply.
VSS
7
P
VSS: Ground.
Symbol
DCD-DATA CARRIER DETECTED: Input, active low. This is a
general purpose input pin accessible by the CPU.
CRYSTAL OSCILLATOR
SYSTEM INTERFACE
The 82050 has a simple demultiplexed bus interface
which consists of a bidirectional, three-state, 8-bit
data bus and a 3-bit address bus. The Aeset, Chip
Select, Aead, and Write pins, along with the Interrupt
pin, provide the remaining signals necessary to interface to the CPU. The 82050's system clock can be
generated externally and provided through the ClK
pin; or its on-chip crystal oscillator can be used by
attaching a crystal to the X1 and X2 pins. For compatibility with IBM PC software, a system clock of
18.432 MHz (with divide by two enabled) is recommended. The 82050, along with a transceiver, address decoder, and a crystal, complete the interface
to the IBM PC Bus.
~rrfi
DrLLJ
290137-4
Parallel Resonant Crystal Freq. Max = 18.432 MHz
(Divided by 2)
Figure 4. Crystal Oscillator
X2 pins. The oscillator frequency is divided by two
before being inputted into the chip circuitry. If an
18.432 MHz crystal is used, then the actual system
clock frequency of the 82050 will be 9.216 MHz.
This mode is configured via a strapping option on
the ATS pin.
SYSTEM CLOCK OPTIONS
It is very important to distinguish between the clock
frequency being supplied into the 82050 and the
system clock frequency. The term system clock refers to the clock frequency being supplied to the
82050 circuitry (divided or undivided). The following
examples delineate the three options for clock usage and their effect on the 82050 system clock as
well as on the BRG source frequency:
The 82050 has two modes of system clock operation. It can accept an externally gE1nerated clock, or
use a crystal to internally generate its system clock
by using the on-chip oscillator.
The 82050 has an on-chip oscillator which can be
used to generate its system clock. The oscillator will
take the input from a crystal attached to the X1 and
2-28
82050
1. Crystal Oscillator: (Maximum 18.432 MHz)
- System Clock Frequency = Crystal
Frequency/2
-
BRG Source Clock Frequency
Frequency /10
NOTE:
The use of the Divide by Two strapping option in
the crsytal oscillator mode is forbidden.
= Crystal
BAUD RATE GENERATION
2. External Clock (Divide by Two Enabled):
The 82050 has a programmable 16-bit Baud Rate
Generator (BRG). The 16X baud rate is generated
by dividing the source clock with the divisor count
from the BRG divisor registers (BAL, BAH). The
BRG source clock is the 82050 system clock divided
by five. If using an actual 82050 system clock of
9.216 MHz, then the BRG source clock will be 9.216
MHz/5 = 1.8432 MHz, which is compatible with the
BRG source clock fed into the IBM PC serial port
BRG. This allows the 82050, while using a faster
system clock, to maintain full compatibility with software divisor calculations based on the 1.8432 MHz
clock used in the IBM PC.
(Maximum 18.432 MHz)
-
System Clock Frequency = External Clock
Frequency/2
-
BRG Source Clock Frequency = External
Clock Frequency/10
3. External Clock (Divide by Two Disabled):
(Maximum 9.216 MHz)
-
System Clock Freq. =
quency
External Clock Fre-
-
BRG Source Clock Freq. = External Clock
Frequency/5
RESET
The 82050 can be reset by asserting the RESET pin.
The RESET pin must be held high for at least 8 system clock cycles. I.f using crystal oscillator, a reset
pulse at least 1 ms should be used to ensure oscillator start ·up. Upon reset, all 82050 registers (except
TXD and RXD) are returned to their default states.
During reset, the 82050's system clock mode of operation is also selected by strapping options on the
RTS and DTR pins (see system clock generation).
290137-5
Figure 5. Strapping
During the power up or reset the RTS pin is an input;
it is weakly pulled high internally and sampled by the
falling edge of reset. If it is driven low externally,
then the 82050 is configured for a crystal oscillator;
otherwise an externally generated clock is expected.
INTERRUPTS
The INT pin will go high, or active, whenever one of
the following conditions occurs provided it is enabled in the interrupt enable register (IER):
a. Receive Machine Error or Break Condition
EXTERNALLY GENERATED SYSTEM
CLOCK
b. Receive Data Available
c. Transmit Data Register Empty
d. Change in the State of the Modem Input Pins
OSC.
ClK1
The INT pin will be reset (low) when the interrupt
source is serviced. The Interrupt Identification Register (IIR) along with the Line Status Register (LSR)
and the Modem Status Register (MSR) can be used
to identify the source requesting service. The IIR
register identifies one of the four conditions listed
above. The particular event or status, which triggers
the interrupt mechanism, can be identified by reading either the Line Status Register or the Modem
Status register. If multiple interrupt sources become
active at anyone time, then highest priority interrupt
source is reflected in the lIR register when the interrupt pin becomes active. Once the highest priority
interrupt is serviced, then the next highest priority
290137-6
Figure 7. External Clock
This is the default mode of system clock operation.
The system clock is divided by two; however, the
user may disable the divide by two by a hardware
strapping option on the DTR pin. The strapping option is similar to the one used on the RTS pin.
2-29
inter
82050
(HIGHEST PRIORITY)
r - - - Rx CONDITION
INTERRUPT
__ _ _ _-11---
Rx DATA AVAILABLE
I - - - Tx DATA REGISTER STATUS
, - - - - MODEM
E
E
------1
--------1
(LOWEST PRIORITY)
Rx PARITY ERROR
OVERRUN ERROR
BREAK DETECTED
FRAMING ERROR
DCD STATE CHANGE
RI STATE CHANGE
DSR STATE CHANGE
CTS STATE CHANGE
290137-7
Figure 8. Interrupt Structure
interrupt source is decoded into the IIR register; the
whole procedure is repeated until there are no more
pending interrupt sources.
'
TRANSMIT
The 82050 transmission mechanism involves the TX
Machine and the TXD Register. The TX Machine
reads characters from the TXD Register, 'serializes
the bits, and transmits them over the TXD pin according to signals provided for transmission by the
Baud Rate Generator. It also generates parity, and
break transmissions upon CPU request.
The falling edge of the start bit triggers the RX Machine, which then starts sampling the RXD input (3
samples). If the samples do not indicate a start bit,
then a false start bit is determined and the RX Machine returns to the start bit search mode. Once a
start bit is detected, the RX Machine starts sampling
for data bits.
If the RXD input is low for the entire character time,
including stop bits, then the RX Machine sets Break
Detect and Framing Error bits in the Line Status
Register (LSR). It loads a NULL character into the
RXD register. The RX Machine then enters the idle
state. When it detects a MARK It resumes normal
operation.
RECEIVE
The 82050 reception mechanism involves the RX
Machine and the RXD Register. The RX Machine
assembles the incoming characters, and loads them
onto the RXD Register. The RX Machine synchronizes the data, passes it ,through a digital filter to filter
out spikes, and then uses three samples to generate
the bit polarity.
SOFnNAREINTERFACE
Like other 110 based peripherals, the 82050 is programmed through its registers to support a variety of
functions. The 82050, register set is identical to the
16450 register set to provide compatibility with software written for the IBM PC. The 82050 register set
occupies eight addresses and includes control,
status, and data registers. The three address lines
and'the Divisbr Latch Access Bit are used to select
the 82050 registers.
2-30
REGISTER DESCRIPTION
RegIster Map
Register
7
6
5
4
2
3
1
0
TxD
TxData
Bit 7
TxData
Bit 6
TxData
Bit 5
TxData
Bit 4
TxData
Bit 3
TxData
Bit 2
TxData
Bit 1
TxData
Bit 0
RxD
RxData
Bit 7
RxData
Bit 6
RxData
Bit 5
RxData
Bit 4
RxData
Bit 3
RxData
Bit 2
RxData
Bit 1
RxData
Bit 0
BAL
BRGA LSB Divide Count (DLAB = 1)
BAH
BRGA MSB Divide Count (DLAB = 1)
IER
0
0
0
IIR
0
0
0
0
Parity
Mode
Bit 2
Parity
Mode
Bit 1
Parity
Mode
Bit 0
Loopback
Control Bit
OUT2
Complement
Modem
Interrupt
Enable
0
AcIIIress
Default
0
-
0
-
0
02H
1
OOH
RxMachine
Interrupt
Enable
TxData
Interrupt
Enable
RxData
Interrupt
Enable
1
OOH
Active
Interrupt
Bit 1
Active
Interrupt
Bit 0
Interrupt
Pending
2
01H
Stop Bit
Length
Bit 0
Character
Length
Bit 1
Character
Length
Bit 0
3
OOH
RTS
Complement
DTR
Complement
4
OOH
CD
I\)
II
......
LCR
DLAB
Divisor
Latch
Access Bit
MCR
0
LSR
0
MSR
DCD Input
Inverted
SCR
Set
Break
0
0
0
TxM
Status
TxD
Empty
Break
Detected
Framing
Error
Parity
Error
Overrun
Error
RxData
Available
5
60H
Rllnput
Inverted
DSR Input
Inverted
CTSlnput
Inverted
State
Change
inDCD
State(H -+ L)
Change
inRI
State
Change
inDSR
State
Change
inCTS
6
OOH
7
OOH
Scratch-Pad Register
-------
-----
Figure 9. Regis~er Description Table
l
~
~
i~
82050
TRANSMIT DATA REGISTER (TXD)
BRG DIVISOR LOW BYTE (BAL)
This register holds the next data byte to be transmitted. When the transmit shift register becomes empty, the contents of the Transmit Data Register are
loaded into the shift register and the Transmit Data
Register Empty condition becomes true.
This register contains the least significant byte of the
Baud Rate Generator's 16-bit divisor. This register is
accessible only when the DLAB bit is set in the LCR
register.,
290137-10
BAL-BRG Divisor Low Byte
290137-8
TXD-Transmit Data Register
BRG DIVISOR HIGH BYTE (BAH)
RECEIVE DATA REGISTE.R (RXD)
This register contains the most significant byte of
the Baud Rate Generator's 16-bit divisor. This register is accessible ony when the DLAB bit is set in the
LCR register.
This register holds the last character received by the
RX Machine. The character is right justified and the
leading bits are zeroed. Reading the register empties the register and resets the Received Character
Available condition.
290137-11
BAH-BRG Divisor High Byte
290137-9
RXD-Recelve Data Register
2-32
82050
INTERRUPT ENABLE REGISTER (IER)
This register enables four types of interrupts which independently activate the INT pin. Each of the four
interrupt types can be disabled by resetting the appropriate bit of the IER register. Similarly by setting the
appropriate bits, selected interrupts can be enabled. If all interrupts are disabled, then the interrupt requests
are inhibited from the IIR register and the INT pin. All other' functions, including Status Register and the Line
Status Register bits continue to operate normally.
[~ I III
76151413121 ~O'
RESERVED
RXDA-RXDATA INTERRUPT ENABLE
TXDE-TXDATA EMPTY ENABLE
....- -.. . RXIE- RX INTERRUPT ENABLE
_.
L..-_ _ _- .
MIE - MODEM INTERRUPT ENABLE
290137-12
IER-Interrupt Enable Register
MIE-MODEM Interrupt Enable
RXIE-RX Machine Interrupt Enable
TXDE-TX Data Register Empty
RXDA-RX Data Available
INTERRUPT IDENTIFICATION REGISTER (IIR)
This register holds the highest priority enabled and active interrupt request. The source of the interrupt request
can be identified by reading bits 2-1.
290137-13
IIR-Interrupt Identification Register
B1, BO-Interrupt Bits, 2-1. These two bits reflect the highest priority, enabled and pending interrupt request.
11: RX Error Condition (Highest Priority)
10: RX Character Available
01: TXD Register Empty
00: Modem Interrupt (Lowest Priority)
lPN-Interrupt Pending-This bit is active low, and indicates that there is an interrupt pending. The interrupt
logic asserts the INT pin as soon as this bit goes active (NOTE: the IIR register is continuously updated; so
while the user is serving one interrupt source, a new interrupt with higher priority may enter IIR and replace the
older interrupt vector).
2-33
inter
82050
LINE CONTROL REGISTER (LCR)
This is a read/write register which defines the basic configuration of the serial link.
DLAB
CLO) CHARACTER
,CLl LENGTH
SBK - SET BACK
PARI1Y [
,
::~
......--. SBLO - STOP BIT LENGTH
. - - - -.....
Pt.iO . - - - - - - - '
290137-14
LCR~Llne Configure Register
DLAB-Dlvisor Latch Access Bit-This bit, when set, allows access to the Divisor Count Registers SAL and
BAH.
SBK-Set Break-This will force the TXD pin low. The TXD pin will remain low until this bit is reset.
PM2-PMD-Parity Mode BIts-These three bits are used to select the various parity modes of the 82050.
PMO
PM2
PM1
Function
0
1
1
1
1
1
X
0
0
1'
1
X
X
0
1
0
1
X
No Parity
Odd Parity
Even Parity
High Parity
Low Parity
Software Parity
SBL-Stop Bit Length-This bit defines the Stop Bit lengths for transmission. The RX Machine can identify
3/4 stop bit or more.
SBL
0
1
1
, Character Length '
X
5·Bit
(6, 7, or 8·Bit)
Stop Bit Length
1
11/2
2
"
CLO-CL1-Character Length-These bits define the character length ,used on the serial link.
CL1
CLO
0
0
1
1
0
1
0
1
Character Length
5 Bits
6 Bits
7 Bits
8 Bits
2·34
inter
82050
LINE STATUS REGISTER (LSR)
This register holds the status of the serial link. When read, all bits of the register are reset to zero.
~ I III
76151413121~O
RESERVED
TXST-TX MACHINE STATUS
TXDE - TXD EMPTY _ .
•
RXDA - RX DATA AVAILABLE
OE-OVERRUN ERROR
-
BKD - BREAK DETECTED
PE - PARITY ERROR
FE - FRAMING ERROR
290137-15
LSR-Llne StatUI Register
RXDA-RX Data Available-This bit, indicates that the RXD register has data available for the CPU to read.
OE-overrun Error-Indicates that a received character was lost because the RXD register was not empty.
PE Parity Error-Indicates that a received character had a parity error.
FE-Framing Error-Indicates that a received character had a framing error.
BkD-Break Detected-This bit indicates that a break condition was detected, i.e., RxD input was held low
for two character times.
TXDE-TXD Empty-This indicates that the 82050 is ready to accept a new character for transmission. In
addition, this bit causes an interrupt request to be generated if the TXD register Empty interrupt is enabled.
TXST- TX Machine Status-When set, this bit indicates that the TX Machine is Empty, i.e., both the TXD
register and the TX Shift Register are empty.
MODEM CONTROL REGISTER (MCR)
This register controls the modem output pins. All the outputs invert the data, i.e., their output will be the
complement of the data written into this register.
290137-16
MCR-Modem Control Register
2-35
inter
82050
LC-Loopback Control-This bit puts the 82050 into a Local Loopback mode.
OUT2-oUT2 Output-This bit controls the QUT2 pin. The output signal is the complement of this bit.
NOTE:
This bit is only effective when the 82050 is being used with an externally generated clock.
RT5-RTS Output Bit-This bit controls the RTS pin. The output signal is the complement of this bit.
DTR-DTR Output Bit-This bit controls the
DTR pin. The output signal
is the complement of this bit.
.
.
MODEM STATUS REGISTER (MSR)
This register holds the status of the modem input pins (CTS, DCD, DSR, RI). It is the source of Modem
interrupts (bits 3-0) when enabled in the IER register. If any of the above input pins change levels, then the
appropriate bit in MSR is set. Reading MSR will clear the status bits.
=
~I+H'I~
OC~;
IIII ~AIT
ro."w,",
COMPLEMENT RI
COMPLEMENT
STATE . CHANGE
CHANGE CTS
DSR
5SR
(H --> L) RI
COMPLEMENT CTS
STATE CHANGE DCD
290137-17
MSR-Mode Status Register
DCDC-DCD Complement-Holds the complement of the DCD pin.
DRIC-RI Complement-Holds the complement of the RI pin.
DSRC-DSR Complement-Holds the complement of the DSR pin.
CTSC-CTS Complement-Holds the complement of the CTS pin.
DDeD-Delta DCD-Indicates that the DCD pin has changed state since this register was last read.
DRI-Delta RI-Indicates that the RI pin has changed state from high to low since this register was last read.
DDSR-Delta DSR-Indicates that the DSR pin has changed state since this register was last read.
DCT5-Delta CT5-lndicates that the CTS pin has changed state since this register was last read.
SCRATCH PAD REGISTER (SCR)
The 8-bit Read/Write register does not control the ACC. It is intended as' a scratch pad register for use by the
programmer.
2-36
infef
82050
SPECIFICATIONS
ABSOLUTE MAXIMUM RATINGS
Ambient Temperature under Bias ..•...
D.C. SPECIFICATIONS
o·c to 70·C
Storage Temperature .........• - 6S·C to + 1S0·C
Voltage on any Pin (w.r.t. Vss . -O.SV to Vcc + O.SV
Voltage on Vee Pin (w.r.t. Vss) ...... -O.SV to + 7V
Power Dissipation .•..................... 300 mW
D.C. CHARACTERISTICS
Symbol
(TA = O·TO 70·C, Vee = SV ±10%)
Parameter
Notes
Min
Max
Units
0.8
V
Vee
+0.5
V
0.45
V
(4)
±10
p.A
Vil
Input Low Voltage
(1 )
-0.5
VIH
Input High Voltage
(1), (7)
2.0
Val
Output Low Voltage
(2), (9)
VOH
Output High Voltage
(3), (9)
III
Input Lea~age Current
ILO
3-State Leakage Current
(5)
±10
p.A
IOHR
Input High for DTR RTS
(10)
0.4
mA
IOlR
Input Low for DTR, pRTS
(10)
LXTAl
X1, X2 Load
Icc
Power Supply Current
(6)
Cin
Input Capacitance
(8)
10
Cio
1/0 Capacitance
(8)
10
2.4
11
NOTES:
1. Does not apply to elK/X1 pin, when configured as crystal oscillator input (X1).
2. @ 101 = 2 rnA.
3. @ loh = -0.4 rnA.
4. 0 < Yin < Vee.
5. 0.45V < You! < 01ee - 0.45).
6. Vee = 5.5V; V,I - 0.5V (max); Vih = Vee - 0.5V (min); 101 = loh = 0; 9.2 MHz (max).
7. VIH = 2.4V on AD and AXD pins.
8. Freq = 1 MHz.
9. Does not apply OUT2/X2 pin, when configured as crystal oscillator output (X2).
10. Input current for DTR. ATS pins during Reset for Clock Mode Configuration.
2-37
V
mA
10
pF
3.8
35
mAIMHz
mA (max)
pF
pF
82050
A.C. SPECIFICATIONS
SYSTEM CLOCK SPECIFICATIONS
Max
Notes
250
(2)
TCH1CH2 ClK Rise Time
10
(1 )
TCl2Cl1
ClK Fall Time
10
(1 )
FXTAl
External Crystal
4.0 18.432
Frequency Rating
MHz
Symbol
Testing Conditions:
Parameter
Min
DIVIDE BY TWO OPTION-ACTIVE
• All AC output parameters are under output load
of 20 to 100 pF, unless otherwise specified.
• AC testing inputs are driven at 2.4 for logic '1',
and 0.45V for logic '0'. Output timing measurements are made at 1.5V for both a logical '0' and
'1' .
• In the following tables, the units are ns, unless
otherwise specified.
System Interface Specification-System Clock
Specification:
Tcy/2
ClK Period
54
TClCH
ClKlowTime
25
TCHCl
ClK High Time
25
DIVIDE BY TWO OPTION-INACTIVE
The 82050 system clock is supplied via the ClK pin
or generated by on-Chip crystal oscillator. The clock
is optionally divided by two. The ClK parameters are
given separately for internal divide-by-two option
ACTIVE and INACTIVE.
The system clock (after division by two, if active)
must be at least 16X the Tx or Rx baud rate (the
faster of the two).
Tcy
ClK Period
108
TClCH
ClKlowTime
54
TCHCl
ClK High Time
44
250
TCH1CH2 ClK Rise Time
15
(1)
TCl2Cl1
15
(1)
ClK Fall Time
NOTES:
1. Rise/fall times are measured between 0.8 and 2.0V.
2. Tcy in ACTIVE divide by two option is TWICE the input
clock period.
RESET SPECIFICATION
Symbol
Parameter
Min
TRSHl
Reset Width-ClK/X1 Configured to ClK
8Tcy
TTlRSl
RTS/OTR lOW Setup to Reset Inactive
6Tcy
TRSlTX
RTS/OTR low Hold after Reset Inactive
0
RESET
DTR/RTS
Max
Notes
(1 )
(2)
Tcy - 20
(2)
=t
------.......~
i--- TRSHL
---------
~
TTLRSL
TRSLTXl
--------------------~------------~------290137-18
NOTES:
1. In case of CLK/X1 configured as X1, additional time is required to guarantee crystal oscillator wake-up.
2. RTS/DTR are internally driven HIGH during RESET active time. The pin should be either left OPEN or externally
driven LOW during RESET according to the required configuration of the system clock. These parameters specify the
timing requirements on. these pins, in case they are externally driven LOW during RESET. The maximum spec on
TRSLTX requires that the RTS/DTR pins not be forced later than TRSLTX maximum.
2-38
infef
82050
READ CYCLE SPECIFICATIONS
Symbol
Parameter
Min
+ 65
TRLRH
RD Active Width
TAVRL
Address/CS Setup Time to AD Active
7
TRHAX
Address/CS Hold Time after RD Inactive
0
TRLDV
Data Out Valid after RD Active
TCIAD
Command Inactive to Active Delay
TRHDZ
Data Out Float Delay after RD Inactive
2Tcy
2Tcy
Tcy
Notes
Max
+ 65
(1)
+ 15
(2)
40
NOTES:
1. C1 = 20 pF to 100 pF.
2. Command refers to either Read or Write signals.
A2-0
CS
07-0.
VALID
------t:;1~)-_:~-:---------------290137-19
WRITE CYCLE SPECIFICATION
Symbol
Parameter
WR Active Width
Address CS Setup Time to WR Active
7
TWHAX
Address and CS Hold Time after WR
0
TDVWH
Data in Setup Time toWR Inactive
90
TWHDX
Data in Hold Time after WR Inactive
12
A2-0
CS
Notes
15
I--TWLWH--:-- TCIAD-...
- TWHAX.I-::,
I-
}{
VALID
TDVWH
07-0
2Tcy
+
TWLWH
TAVWL
TAVWL
Max
Min
1
.1
VALID
TWHDX
VALID
-TCIAD.:1
\
290137-20
2-39
inter
82510
ASYNCHRONOUS SERIAL CONTROLLER
Operation
• -Asynchronous
5- to 9-Blt Character Format
MCS-51 9-Blt Protocol Support
• IBM
PC AT® (INS 8250AI16450®)
• Software
Compatible
Control Character Recognition
•
III with Power Down Mode
• CHMOS
Interrupts Maskable at Two Levels
• Auto Echo and Loopback Modes
• Seven 1/0 Pins, Dedicated and General
• Purpose
• 28-Lead DIP and PLCC Packages
- Baud Rate DC to 288k
- Complete Error Detection
• Multiple Sampling Windows
Two, Independent, Four-Byte Transmit
and Receive FIFOs
- Programmable Threshold
Two, 16-blt Baud Rate Generatorsl
Timers
System Clock Options
- On-Chip Crystal Oscillator
- External Clocks, LowlHlgh Speed
•
•
•
(See Packaging Spec., Order #: 231369)
The Intel CHMOS 82510 is designed to increase system eH:iciency in asynchronous environments such as
modems, serial port&-including expanding performance areas: MCS-51 9-bit format and high speed async.
The functional support provided in tne 82510 is unpa~aller~d-2 baud rate gen~rators/timers provide independent data rates or protocol timeouts; a crystal oscillator and smart modem 1/0 simplify system logic. New
features, dual FIFOs and Control Character Recognition (CCR), dramatically reduce CPU interrupts and increase software efficiency. The 82510's software versatility allows emulation of the INS8250A/16450® for
IBM PC AT® compatibility or a high performance mode, configured by 35 control registers. All interrupts are
maskable at 2 levels. The multi-personality 1/0 pins are configurable as desired. A DPLL and multiple sampling
of serial data improve data reliability for high speed asynchronous communication. The compact 28-pin 82510
is fabricated in CHMOS III technology and includes a software powerdown option.
~
SERIAL MODULE
r+
- r+
Vee -:
A(2-0)
0(7-0)
INT
........
-+ ~
+
TX
MACHINE
,
TXD
"
'
r--
-- ...
es - :::
- ....
1m
WR
TX
rlFO
INT
BUS
INTERFACE
UNIT
RX
FIFO
'4
H
TJRTS
RESET
+-
1, Jx Jx
T
' f M - r Rt
INT
'2
INTE~ BUS
I
I
RX
MACHINE
TIMING
BLOCK
(BRGS, SYS CLOCK)
MODEM
INTERFACE
MODULE
IX
RXC
RXD
1X
TXC
~
-,CLK/Xl
-,
I:::: :::-
0IlT2/X2
I'I/SCLK
C!R/TA/lltJTl!
... m
-...
I
~/ICLK/mm
DTII/TB
~
~ -,1m
290116-1
Figure 1. Block Diagram
2-40
April 1988
Order Number: 290118-003
82510
D3
02
"321282726
TXD
o
VSS
82510
DO
DO
A2
A2
TXD
vss
AO
ClK/XI
21
~/SClK
vee
Rii
WR
DSR/TA/i5lTfO
ClK/X1
ill/SClK
DSR/TA/OUTO
DCD/IClK/OUTl
RXD
C'i'S
cs
RESET
ii'iS
iifR/TB
290116-3
290116-2
Figure 2. PLCC Pinout
Figure 3. DIP Pinout
82510 PINOUT DEFINITION
Pin
No.
Type
Name and Description
RESET
17
I
RESET: A high on this input pin resets the 82510 to the Default Wake-up mode.
CS
18
I
CHIP SELECT: A low on this input pin enables the 82510 and allows read or
write operations.
A2-AO
2422
I
ADDRESS PINS: These inputs interface with three bits of the System Address
Bus to select one of the internal registers for read or write.
07-00
4"
25
1/0
RD
20
I
READ: A low on this input pin allows the CPU to read Data or Status bytes from
the 82510.
WR
19
I
WRITE: A low on this input allows the CPU to write Data or Control bytes to the
82510.
INT
5
0
INTERRUPT: A high on this output pin signals an interrupt request to the CPU.
The CPU may determine the particular source and cause of the interrupt by
reading the 82510 Status registers.
CLK/X1
9
I
MULTIFUNCTION: This input pin serves as a source for the internal system
clock. The clock may be asynchronous to the serial clocks and to the processor
clock. This pin may be used in one of two modes: CLK - in this mode an
externally generated TIL compatible clock should be used to drive this input pin;
X1 - in this mode the clock is internally generated by an on-chip crystal
oscillator. This mode requires a crystal to be connected between this pin (X1)
and the X2 pin. (See System Clock Generation.)
OUT2/X2
8
0
MULTIFUNCTION: This is a dual function pin which may be configured to one of
the following functions: OUT2 - a general purpose output pin controlled by the
CPU, only available when CLK/X1 pin is driven by an externally generated clock;
X2 - this pin serves as an output pin for the crystal oscillator. Note: The
configuration of the pin is done only during hardware reset. For more details
refer to the System Clock Generation.
TXD
6
0
TRANSMIT DATA: Serial data is transmitted via this output pin starting at the
Least Significant bit.
Symbol
DATA BUS: Bi-directional, three state, eight-bit Data Bus. These pins allow
transfer of bytes between the CPU and the 82510.
'Pins 28-25 and Pins 4-1.
2-41
82510
82510 PINOUT DEFINITION (Continued)
Pin
No.
Type
RXD
13
I
RECEIVE DATA: Serial data is received on this input pin starting at the least
Significant bit.
RI/SClK
10
I
MULTIFUNCTION: This is a dual function pin which can be configured to one of
the following functions. RI - Ring Indicator - Input, active low. This is a general
purpose input pin accessible by the CPU. SClK - This input pin may serve as a
source for the internal serial clock(s), RxClk and/or TxClk. See Figure 12, BRG
sources and outputs.
DTR/TB
\
15
0
MULTIFUNCTION: This is a dual function pin which may be configured to one of
the following functions. DTR - Data Terminal Ready. Output, active low. This is a
general purpose output .pin controlled by the CPU. TB - This pin outputs the
BRGB output signal when configured as either a clock generator or as a timer.
When BRGB is configured as a timer this pin outputs a "timer expired pulse."
When BRGB is configured as a clock generator it outputs the BRGB output
clock.
DSR/TAI
OUTO
11
I/O
MULTIFUNCTION: This is a multifunction pin which may be configured to one of
the following functions. DSR - Data Set Ready. Input, active low. This is a
general purpose input pin accessible by the CPU. TA - This pin is similar in
function to pin TB except it outputs the signals from BRGA instead of BRGB.
OUTO - Output pin. This is a general purpose output pin controlled by the CPU.
RTS
16
0
REQUEST TO SEND: Output pin, active low. This is a general purpose output
pin controlled by the CPU. In addition, in automatic transmission mode this pin,
along with CTS, controls the transmission of data. (See Transmit modes for
further detail.) During hardware reset this pin is an input. It is used to determine
the System Clock Mode. (See System Clock Generation for further detail.)
CTS
14
I
CLEAR TO SEND: Input pin, active low. In automatic transmission mode it
directly controls the Transmit Machine. (See transmission mode for further
details.) This pin can be used as a General Purpose Input.
DCD/IClK/
OUT1
12
I/O
Vee
Vss
21
P
Vee: Device power supply.
7
P
Vss: Ground.
Symbol
Name and Description
MULTIFUNCTION: This is a multifunction pin which may be configured to one of
the following functions. DCD - Data Carrier Detected; Input pin, active low. This
is a general purpose input pin accessible by the CPU. IClK - This pin is the
output of the internal system clock. OUT1 - General purpose output pin.
Controlled by the CPU.
Table 1. Multifunction Pins
110
Timing
Modem
8
*OUT2
X2
9
"ClK/X1
10
-
-
11
12
14
Pin #
15
16
SClK
'RI
OUTO
TA
'DSR
OUT1
IClK
"DCD
-
-
"CTS
TB
*DTR
-
°RTS
'Default
2-42
intJ
82510
Its register set can be used in 8250A/16450 compatibility or High Performance modes. The 8250Al
16450 mode is the default wake-up mode in which
only the 8250Al16450 compatible registers are accessible. The remaining registers are default configured to support 8250Al16450 emulation.
GENERAL DESCRIPTION
The 82510 can be functionally divided into seven
major blocks (See Fig 1): Bus Interface Unit, Timing
Unit, Modem Module, Tx FIFO, Rx FIFO, Tx Machine, and Rx Machine. Six of these blocks (all except Bus Interface Unit) can generate block interrupts. Three of these blocks can generate secondlevel interrupts which reflect errors/status within the
block (Receive Machine, Timing Unit, and the Modem Module).
Software Interface
HIGH PERrORMANCE MODE
ALL BANKS rUNCTION
The Bus interface unit allows the 82510 to interface
with the rest of the system. It controls access to
device registers as well as generation of interrupts
to the external world. The FIFOs buffer the CPU
from the Serial Machines and reduce the interrupt
overhead normally required for serial operations.
The threshold (level of occupancy in the FIFO which
will generate an interrupt) is programmable for each
FIFO. The timing unit controls generation of the system clock through either its on-chip crystal oscillator,
or an externally generated clock. It also provides two
Baud Rate Generators/Timers with various options
and modes to support serial communication.
8250 MODE
~
I
I
290116-4
FUNCTIONAL DESCRIPTION
Figure 4. 82510 Register Architecture
CPU Interface
The 82510 is configured and controlled through its
35 registers which are divided into four banks. Only
one bank is accessible at anyone time. The bank
switching is done by changing the contents of the
bank pointer (GIR/BANK-BANKO, BANK1). The
banks are logically grouped into 8250Al16450 compatible (0), General Work Bank (1), General Configuration (2), and Modem Configuration (3). The
8250A/16450 compatible bank (Bank 0) is the default bank upon power up.
The 82510 has a simple demultiplexed Bus Interface, which consists 'Of a bidirectional three-state
eight-bit, data bus and a three-bit address bus. An
Interrupt pin along with the Read, Write and Chip
Select are the remaining signals used to interface
with the CPU. The three address lines along with the
Bank Pointer register are used to select the registers. The 82510 is deSigned to interface to all Intel
microprocessor and microcontroller families. Like
most other I/O based peripherals it is programmed
through its registers to support a variety of functions.
The 82510 registers can be categorized under the
following:
Table 2. 82510 Register/Block Functions
FIFO
MODEM
RX
TX
TIMER
DEVICE
8250
Status
FLR
MSR
Enable
RST,RXF
LSR
TMST
RIE
LSR
TMIE
GSR, GIR
LSR, MSR, GIR
GER
GER
MIE
Configuration
FMD
PMD
Command
Data
-
-
RMD
TMD
CLCF,
BACF,BBCF
IMD
LCR, MCR
RCM
TCM
TMCR
2-43
MCR
ICM
MCR
RXD, RXF
TXD,TXF
BBL, BBH
BAL, BAH
TXD,RXD
BAL, BAH
inter
82510
8250 Compatibility
Upon power up or reset, the 82510 comes up in the default wake up mode. The 8250A/16450 compatible
bank, bank zero, is the accessible bank and all the other registers are configured, via their default values to
support this mode. An 18.432 MHz crystal frequency is necessary.
Table 3. 8250A/16450 Compatible Registers
82510 Registers
(Bank 0)
Address
00 (DLAB
01 (DLAB
00 (DLAB
01 (DLAB
Read
= 0)
= 0)
= 1)
= 1)
8250A Registers
Write
Read
Write
THR
RxD
TxD
RBR
GER
GER
IER
IER
BAL
BAL
DLL
DLL
BAH
BAH
DLM
DLM
02
GIR/BANK
BANK
IIR
-
03
LCR
.LCR
LCR
LCA
04
MCR
MCR
MCR
MCR
05
LSR
LSR
LSR
LSR
06
MSR
MSR
MSR
MSR
07
ACRO
ACRO
SCR
SCR
Table 4. Default Wake-Up Mode
ACR1
TxD
-
RIE
1EH
TxF
BAL
02H
RMD
OOH
TMST
BAH
OOH
CLCF
OOH
TMCR
GER
OOH
BACF
04H
FLR
GIR/BANK
01H
BBCF
84H
RCM
LCR
OOH
PMD
FCH
rCM
-
MCR
OOH
MIE
OFH
GSR
12H
RxD
OOH
RxF
30H
OOH
LSR
60H
TMIE
OOH
ICM
-
MSR
OOH
BBL
05H
FMD
OOH
ACRO
OOH
BBH
OOH
TMD
OOH
RST
OOH
IMD
OCH
2-44
82510
(HIGHEST PRIORITY)
TIMER
s=
Tc
TIMER A EXPIRED
TIMER B EXPIRED
TX MACHINE IDLE
RX PARITY ERROR
OVERRUN ERROR
BREAK DETECTED
BREAK TERMINATED
ADDRESS/CONTROL
CHAR. RECEIVED
ADDRESS/CONTROL
CHAR. MATCH
TX CONDITION
RX CONDITION
INTERRUPT
FRAMING ERROR
RX FIFO - - - - RX FIFO LEVEL ABOVE
THRESHOLD
TX FIFO - - - - TX FIFO LEVEL EQUAL
TO OR BELOW THRESHOLD
MODEM
(LOWEST PRIORITY)
----E
DCD CHANGE STATE
RI CHANGE STATE
DSR CHANGE STATE
CTS CHANGE STATE
290116-5
Figure 5. Interrupt Structure
The CPU must issue an explicit Interrupt Acknowledge command via the Interrupt Acknowledge bit of
the Internal Command register. As a result the INT
pin is forced low for two clocks and then updated.
Interrupts
There are two levels of interrupt/status reporting
within the 82510. The first level is the block level
interrupts such as RX FIFO, Tx FIFO, Rx Machine,
Tx Machine, Timing unit, and Modem Module. The
status of these blocks is reported in the General
Status and General Interrupt Registers. The second
level is the various sources within each block; only
three of the blocks generate second level interrupts
(Rx Machine, Timing Unit, and Modem Module). Interrupt requests are maskable at both the block level
and at the individual source level within the module.
If more than one unmasked block requests interrupt
service an on-chip interrupt controller will resolve
contention on a priority basis (each block has a fixed
priority). An interrupt request from a particular block
is activated if one of the unmasked status bits within
the status register for the block is set. A CPU service
operation, e.g., reading the appropriate status register, will reset the status bits.
2. Automatic Acknowledge
As opposed to the Manual Acknowledge mode,
when the CPU must issue an explicit interrupt acknowledge command, an interrupt service operation
is considered as an automatic acknowledgment.
This forces the INT pin low for two clock cycles.
After two cycles the INT pin is updated, i.e., if there
is still an active non-masked interrupt request the
INT pin is set HIGH.
INTERRUPT SERVICE
A service operation is an operation performed by the
CPU, which causes the source of the 82510 interrupt
to be reset (it will reset the particular status bit causing the interrupt). An interrupt request within the
82510 will not reset until the interrupt source has
been serviced. Each source can be serviced in two
or three different ways; one general way is to disable
the particular status bit causing the interrupt, via the
corresponding block enable register. Setting the appropriate bit of the enable register to zero will mask
off the corresponding bit in the status register, thus
causing an edge on the input line to the interrupt
logic. The same effect can be achieved by masking
ACKNOWLEDGE MODES
The interrupt logic will assert the INT pin when an
interrupt is coded into the General Interrupt register.
The INT pin is forced low upon acknowledgment.
The 82510 has two modes of interrupt acknowledgment:
1. Manual Acknowledge
2-45
inter
82510
off the particular block interrupt request in GSR via
the General Enable Register. Another method,
which is applicable to all sources, is to issue the
Status Clear command from the Internal Command
Register. The detailed service requirements for each
source are given below:
The 82510 has an on-Chip oscillator to generate its
system clock. The oscillator will take the inputs from
a crystal attached to the Xi and X2 pins. This mode
is configured'via a hardware strapping option on
RTS.
Table 5. Service Procedures
Interrupt Status Bits Interrupt
Source & Registers Masking
Timers
Specific
Service
TMST (1-0) TMIE (1-0) ReadTMST
GSR (5)
GER (5)
GSR (4)
Tx
Machine LSR (6)
GER (4)
Write Character
totX FIFO
LSR (4-1)
Rx
Machine RST (7-1)
GSR (2)
RIE (7-1)
GER (2)
Read RSTor
LSRWriteO
to bit in
RST/LSR
Rx FIFO RST/LSR (0) GER (0)
GSR (0)
Write 0 to
LSR/RST
Bit zero.
Read Character
TxFIFO LSR (5)
GSR (1)
GER (1)
Write to FIFO
Read GIR(l)
Modem
MIE (3-0)
GER (3)
Read MSR
write 0 into the
appropriate bits
of MSR (3-0).
MSR (3-0)
GSR (3)
290116-7
Figure 7. Strapping Option
During hardware reset the RTS pin is an input; it is'
weakly pulled high from within and then checked. If it
is driven low externally then the 82510 is configured
for the ,Crystal Oscillator; otherwise an external
clock is expected.
EXTERNALLY GENERATED SYSTEM CLOCK
I I•
OS<
T'" I
OUT2'
290116-8
NOTE:
1. Only if pending interrupt is Tx FIFO.
Figure 8. External Clock
This is the default configuration. Under normal conditions the system clock is divided by two; however,
the user may disable divide by two via a hardware
strapping option on the DTR pin. The Hardware
strapping option is similar to the one used on the
RTS pin. It is forbidden, to strap both DTR and RTS.
System Clock Generation
The 82510 has two modes of System Clock Operation. It can accept an externally generated clock, or
it can use a crystal to internally generate its system
clock.
Transmit
CRYSTAL OSCILLATOR
~~
The two major blocks involved in transmission are
the Transmit FIFO and the Transmit Machine. The
Tx FIFO acts as a buffer between the CPU and the
Tx Machine. Whenever a data character is written to
the Transmit Data register, it, along with the Transmit Flags (if applicable), is loaded into the Tx FIFO.
Parallel Resonanl Crystal
ri~
290116-6
Figure 6. Crystal Oscillator
2-46
inter
82510
TRANSMIT CLOCKS
TX FIFO
TXF REGISTER
There are two modes of transmission clocking, 1X
and 16X. In the 1X mode the transmitted data is
synchronous to the transmit clock as supplied by the
SCLK pin. In this mode stop-bit length is restricted to
one or two bits only. In the 16X mode the data is not
required to be synchronous to the clock. (Note: The
Tx clock can be generated by the BRGs or from the
SCLK pin.)
TXD REGISTER
DATA
FLAGS
I
1
---1--------11 ..
POINTER t--
MODEM HANDSHAKING
The transmitter has three modes of handshaking.
POINTER
[
~I
______
CH_A_RA_C_T_ER_F_R_A_ME____
Manual Mode-In this mode the CTS and RTS pins
are not used by the Tx Machine (transmission is
started regardless of the CTS state, and RTS is not
forced low). The CPU may manage the handshake
itself, by accessing the CTS and RTS signals
through the MODEM CONTROL and MODEM
STATUS registers.
~~TXD
290116-9
Figure 9_ Tx FIFO
The Tx FIFO can hold up to four, .eleven-bit characters (nine-bits data, parity, and address flag). ,It has
separate read and write mechanisms. The read and
write pointers are incremented after every oper~tion
to allow data transfer to occur in a First In First Out
fashion. The Tx FIFO will generate a maskable interrupt when the level in the FIFO is below, or equal to,
the Threshold. The threshold is user programmable.
Semi-Automatic Mode-In this mode. the RTS pin
is activated whenever the transmitter is enabled.
The CTS pin's state controls transmission. Trans·
mission is enabled only if
is active. If
becomes inactive during transmission, the Tx Machine
will complete transmission of the current character
becomes
and then go to the inactive state until
active again.
rn
rn
rn
For example, if the threshold equals two, and the
number of characters in the Tx FIFO decreases from
three to two, the FIFO will generate an interrupt. The
threshold should be selected with regard to the system's interrupt service latency.
Automatic Mode-This mode is similar to the semiautomatic mode, except that RTS will be activated
as long as the transmitter is enabled and there are
more characters to transmit. The CPU need only fill
the FIFO, the hal)dshake is done by the Tx Machine.
When both the shift register and the FIFO are empty
RTS automatically goes inactive. (Note: The RTS pin
can be forced to the active state by the CPU, regardless of the handshaking mode, via the MODEM
CONTROL register.)
NOTE:
There is a one character transmission delay between FIFO empty and Transmitter Idle, so a
threshold of zero may be selected without getting
an underrun condition. Also if more than four characters are written to the FIFO an overrun will occur
and the extra character will not be written to the Tx
FIFO. This error will not be reported to the CPU.
Receive
The 82510 reception mechanism involves two major
blocks; the Rx Machine and the Rx FIFO. The Rx
Machine will assemble the incoming character and
its associated flags and then LOAD them on to the
Rx FIFO. The top of the FIFO may be read by reading the Receive Data register and the Receive Flags
Register. The receive operation can be done in two
modes. In the normal mode the characters are reo
ceived in thl;) standard Asynchronous format and
only control characters are recognized. In the ulan
mode, the nine bit protocol of the MCS-51 family is
supported and the ulan Address characters, rather
than Control Characters are recognized.
TX MACHINE
The Tx Machine reads characters from the Tx FIFO,
serializes the bits, and transmits them over the TXD
pin according to the timing signals provided for
transmission. It will also generate parity, transmit
break (upon CPU request), and manage the modem
handshaking signals (CTS and RTS) if configured
so. The Tx machine can be enabled or disabled
through the Transmit Command register or CTS. If
the transmitter is disabled in the middle of a character transmission the transmission will continue until
the end of the character; only then will it enter the
disable state.
2·47
inter
82510
Manual Mode-In this mode the Rx Machine does
not control the FIFO automatically; however, the
user may UNLOCK/LOCK the FIFO by using the
RECEIVE COMMAND register.
RX FIFO
I
RXD REGISTER
RXf REGISTER
DATA
fLAGS
ro~ I~-
RX MACHINE
The RX Machine has two modes of clocking the incoming data-16X or lX. In l6X synchronization is
done internally; in the 1X mode the data must be
synchronous to the SCLK pin input. The Rx Machine
synchronizes the data, passes it through a digital filter to filter out the spikes, and then uses the voting
counter to generate the data bit (multiple sampling
of input RXD). Bit polarity decisions are made on the
basis of majority voting; i.e., if the majority of the
samples are "1" the result is a "1" bit. If all samples
are not in agreement then the bit is also reported as
a noisy bit in the RECEIVE FLAGS register. The
sampling window is programmable for either 3/16 or
7/16 samples. The 3/16 mode is useful for high frequency transmissions, or when serious RC delays
are expected on the channel. The 7/16 is best suited for noisy media. The Rx machine also has a
DPLL to overcome frequency shift problems; however, using it in a very noisy environment may increase
the error, so the user can disable the DPLL via the
Receive Mode register. The Rx Machine will generate the parity and the address marker as well as any
framing error indications.
I
RXD
-+ 1
...___C_HA_R_AC_TE_R_f_RA_M_E_ _..I
290116-10
Figure 10. Rx FIFO
The Rx FIFO is very similar in structure and basic
operation to the Tx FIFO. It will generate a maskable
interrupt when the FIFO level is above, the threshold. The Rx FIFO can also be configured to operate
as a one-byte buffer. This mode is used for 8250
compatible software drivers. An overrun will occur
when the FIFO is full and the Rx Machine has a new
character for the FIFO. In this situation the oldest
character is discarded and the new character is
loaded from the Rx Machine. An Overrun error bit
will also be set in the RECEIVE STATUS and LINE
STATUS registers.
Start Bit Detection-The falling edge of the Start
bit resets the DPLL counter and the Rx Machine
starts sampling the input line (the number of samples is determined by the configuration of the sampling window mode). The Start bit verification can be
done through either a majority voting system or an
absolute voting system. The absolute voting requires
that all the samples be in agreement. If one of the
samples does not agree then a false Start bit is determined and the Rx Machine returns to the Start Bit
search Mode. Once a Start bit is detected the Rx
Machine will use the majority voting sampling window to receive the data bits..
The user has the option to disable the loading of
incoming characters on to the Rx FIFO by using the
UNLOCK/LOCK FIFO commands. (See RECEIVE
COMMAND register.) When the Rx FIFO is locked, it
will ignore load requests from the Rx Machine, and
thus the received characters will not be loaded into
the FIFO and may be lost (if another character is
received). These two commands are useful when
the CPU is not willing to receive characters, or is
waiting for specific Control/Address characters. In
uLAN mode there are three options of address recognition, each of these options varies in the amount
of CPU offload, and degree of FIFO control through
OPEN/LOCK FIFO commands.
Break Detection-If the input is low for the entire
character frame including the stop Bit, then the Rx
Machine will set Break Detected as well as Framing
Error in the RECEIVE STATUS and LINE .STATUS
registers. It will push a NULL character onto the Rx
FIFO with a framing-error and Break flag (As part .of
the Receive Flags). The Rx Machine then enters the
Idle state. When it sees a mark it will set Break Terminated in RECEIVE STATUS and LINE STATUS
registers and resume normal operation.
.
Automatic Mode-In this mode the Rx Machine will
open the FIFO whenever an Address Match occurs;
it will LOCK the J=I FO if an address mismatch occurs.
Semi-Automatic Mode-In this mode the Rx Machine will open the FIFO Whenever an address character is received. It will not lock the FIFO if the Address does not match. The user is responsible for
locking the Rx FIFO.
2-48
inter
82510
4 BIT DPLL
COU NTER
15
0
1
2
3
4
5
6
I I I
-- 1>. .
8
9
10
~ V~ V~
NARROW WINDOW
WIDE WINDOW
7
V// V~ V~ t// ~/
11
12
13
14
15
301' 16
0
V~
701'16
~
DATA INPUT LINE
III
290116-11
Figure 11. Sampling Windows
SOFTWARE
CONTROLLED
Control Characters-The Rx machine can generate a maskable interrupt upon reception of standard
ASCII or EBCDIC control characters, or an Address
marker is received in the uLAN mode. The Rx machine can also generate a maskable interrupt upon a
match with programmed characters in the Address/
Control Character 0 or Address/Control Character 1
registers.
GATE
SYS ClK
XTAl ClK
SClK
SClK
SYS ClK
XTAl ClK
SRGA
OUTPUT
CONTROL CHARACTER RECOGNITION
STANDARD SET
OOOX XXXX
• ASCII:
(00 - 1FH
•
BJ
+
OUT
Rx ClK
Tx ClK
SRGS
SOURCE
OUT
RxClK
TxClK
·A·
SOFTWARE
CONTROllED
Table 6. Control Character Recognition
AJ
SOURCE
+ 0111
1111
(ASCII DEL)
7 FH)
GATE
SOURCE
·B·
Figure 12. BRG Sources and Outputs
OR
BAUD RATE GENERATION
EBCDIC: OOXX XXXX
(00 - 3FH)
The Baud Rate is generated by dividing the source
clock with the divisor count. The count is loaded
from the divisor count registers into a count down
register. A 50% duty cycle is generated by counting
down in steps of two. When the count is down to 2
the entire count is reloaded and the output clock is
toggled. Optionally the two BRGs may be cascaded
to provide a larger divisor. Note that this is the default configuration and used for 8250Al16450 emulation.
User Programmed
• ACRO, ACR1 XXXX XXXX
REGISTERS
Baud-Rate Generators/Timers
f 0 = !i".IDivisor
The 82510 has two-on-chip, 16-bit baud-rate generators. Each BRG can also be configured as a Timer,
and is completely independent of the other. This can
be used when the Transmit and Receive baud rates
are different. The mode, the output, and the source
of each BAG is configurable, and can also be optionally output to external devices via the TA, TB
pins (see Fig. 12. BRG Sources and Outputs).
where fin is the input clock frequency and Divisor is
the count loaded into the appropriate count registers. System clock frequencies can be selected
(4 9.216 MHz) to eliminate baud rate error for
high baud rates.
'
2-49
inter
82510
delay between the trigger and the terminal count is
given by the following equation:
Table 7. Standard Baud Rates
%
16x Divisor
Bit Rate
Error
Delay = Count. (System Clock Period)
To start counting, the Timer has to be triggered via
the Start Timer Command. To restart the Timer after
terminal count or while counting, the software has to
issue the trigger command again. While counting the
Timer can be enabled or disabled by using a software controlled Gate. It is also possible to output a
pulse generated upon terminal count through the TA
or TB pins.
110
5236 (1474h)
.007%
300
1,920 (780h)
38,400
15 (OFh)
-
56,000
10 (OAh)
2.8%
288,000
2 (02h)
1200
480 (1 EOh)
2400
240 (FOh)
9600
60 (3Ch)
19,200
30 (1 Eh)
-
Source ClK = Internal Sys. Clk
= 18.432 MHz/2 (Crystal)
= 9.21 MHz (External 1X clock)
e
NOTE:
Internal system clock is % crystal frequency or
clock frequency when using + 2 clock option.
% external
The BRG counts down in increments of two and
then is divided by two to generate a 50% duty cycle;
however, for odd divisors it will count down the first
time by one. All subsequent countdowns will then
continue in steps of two. In those cases the duty
cycle is no longer exactly 50%. The deviation is given by the fOllowing equation:
In 1X clock mode the only clock source available is
the SCLK pin. The serial machines (both Tx Machine
and Rx Machine) can independently use one of two
clock modes, either 1X or 16X. Also no configuration
changes are allowed during operation as each write
in the BRG configuration registers causes a reset
signal to be sent to the BRG logic. The mode or
source clocks may be changed only after a Hardware or Software reset. The Divisor (or count, depending upon the mode) may be updated during operation unless the particular BRG machine is being
used as a clock source for one of the serial machines, and the particular serial machine is in operation at the time. Loading the count registers with "0"
is forbidden in all cases, and loading it with a "1" is
forbidden in the Timer Mode only.
SERIAL DIAGNOSTICS
The 82510 supports two modes of Loopback operation, Local Loopback and Remote Loopback as well
as an Echo mode for diagnostics and improved
throughput.
deviation = 11 (2 • divisor)
The BRG can operate with any divisor between 1
and 65,535; however, for divisors between 1 and 3
the duty cycle is as follows:
LOCAL LOOPBACK
Table 8. Duty Cycles
Divisor
Duty Cycle
3
33%
2
50%
1
Same as Source
a
FORBIDDEN
-+~~~~PIN
~EJ)~PIN
290116-12
Figure 13. Local Loopback
Timer Mode
The Tx Machine output and Rx Machine input are
shorted internally, TXD pin output is held. at Mark.
This feature allows simulation of Transmission/Reception of characters and. checks the Tx FIFO, Tx
Machine, Rx Machine, and Rx FIFO along with the
software without any external side effects. The modem outputs OUT1, OUT2, DTR and RTS are internally shorted to RI, DCD, DSR and CTS respectively.
OUTO is held at a mark state.
Each of the 82510 BRGs can be Llsed as Timers.
The Timer is used to generate time delays by counting the internal system clock. When enabled the
Timer uses the count from the Divisor/Count registers to count down to 1. Upon terminal count a
maskable Timer Expired interrupt is generated. The
2-50
inter
82510
The 82510 powers down when the power down
command is issued via the Internal Command Register (ICM). There are two modes of power down,
Sleep and Idle.
REMOTE LOOPBACK
~[§J
=:I
I.!!!!..I
r-:
~PIN
~~
In Sleep mode, even the system clock of the 82510
is shut down. The system clock source of the 82510
can either be the Crystal Oscillator or an external
clock source. If the Crystal Oscillator 'is being used
and the power down command is issued, then the
82510 will automatically enter the Sleep mode. If an
external clock is being used, then the, user must disable the external clock in addition to issuing the
Power Down command, to enter the Sleep mode.
The benefit of this mode is the increas~ savings in
power consumption (typical power consumption in
the Sleep mode is in the ranges of 100s of microAmps). However, upon wake up, the user must
reprogram the device. To exit this mode the user
can either issue a Hardware reset, or read the FIFO
Level Register (FLR) and then issue a software reset. In either case the contents of the 82510 registers are not preserved and the device must be reprogrammed prior to operation. If the Crystal Oscillator
is being used then the user must allow enough time
for the oscillator to wake up before issuing the software reset.
PIN
290116-13
Figure 14. Remote Loopback
The TXD pin and RXD pin are shorted internally (the
data is not sent on to the RX Machine). This feature
allows the user to check the communications channel as well as the Tx and Rx pin circuits not checked
in the Local Loopback mode.
AUTO ECHO
~
r=::1
•
~ L!!!J4-4
RXD PIN
290116-14
The 82510 is in the idle mode when the Power Down
command is issued and the system clock is still running (I. e. the system clock Is generated externally
and not disabled by the user). In this mode the contents of all registers and memory cells are preserved, however, the power consumption in this
mode is greater than in the Sleep mode. Reading
FLR will take the 82510 out of this mode.
Figure 15. Auto Echo
In Echo Mode the received characters are automatically transmitted back. When the characters are
read from the Rx FIFO they are automatically
pushed back onto the Tx FIFO (the flags are also
included). The Rx Machine baud rate must be equal
to, or less than, the Tx Machine baud rate or some
of the characters may be lost. The user has an option of preventing, echo of special characters; 'Control Characters and characters with Errors.
NOTE:
The data read from FLR when exiting Power Down
is invalid and should be ignored.
Power Down Mode
The 82510 has a "power down" mode to reduce'
power consumption when the device is not in use.
2-51
inter
82510
DETAILED REGISTER DESCRIPTION
Table 9. Register Map
Bank
Read
Register
Address
o (NAS)
o (DLAB = 0)
8250Al16450
1 (DLAB
o (DLAB
1 (DLAB
2
3
=
=
=
0)
1)
1)
4
5
"
6
7
1 (WORK)
0,
1
2
3
4
5
6
7
2 (GENERAL CONF)
4
5
6
7
3 (MODEM CONF)
o (DLAB = 0)
1 (DLAB
o (DLAB
1 (DLAB
2
3
RXD
GER
BAL
BAH
GIR/BANK
LCR
MCR
LSR
MSR
ACRO
TXD
GER
BAL
BAH
BANK
LCR
MCR
LSR
MSR
ACRO
RXD
RXF
GIR/BANK
TMST
FLR
RST
MSR
GSR
TXD
TXF
BANK
TMCR
MCR
RCM
TCM
ICM
-
0
1
2
3
=
=
=
0)
1)
1)
4
5
6
7
Write
Register
-
FMO,
GIR/BANK
TMD
IMD
ACR1
RIE
RMD
FMD
BANK
TMD
IMD
ACR1
RIE
RMD
CLCF
BACF
BBL
BBH
GIR/BANK
BBCF
PMD
MIE
TMIE
CLCF
BACF
BBL
BBH
BANK
BBCF
PMD
MIE
TMIE
-
-
(1) ACRO is used in INS8250 as a Scratch-Pad Register
(2) DLAB = LCR Bit #7
The 82510 has thirty-five registers which are divided into four banks of register banks. Only one bank is
accessible at anyone time. The bank is selected through the BANK1-0 bits in the GIR/BANK register. The
individual registers within a bank are selected by the three address lines (A2-0). The 82510 registers can be
grouped into the following categories.
2-52
inter
82510
BANK ZERO 8250Al1845O-COMPATIBLE BANK
Register
7
5
6
4
3
2
1
0
xD(33)
Tx Data
bit 7
Tx Data Tx Data
bitS
bit 5
Tx Data
bit 4
Tx Data
bit 3
TxData
bit2
Tx Data
bit 1
Tx Data
bit 0
0
-
RxD (35)
Rx Data
bit 7
Rx Data Rx Data
bitS
bit 5
Rx Data
bit 4
Rx Data
bit 3
Rx Data
bit2
Rx Data
bit 1
RxData
bit 0
0
-
BAL (11)
BRGA LSB Divide Count (DLAB
BAH (12)
BRGA MSB Divide Count (DLAB
GER (lS)
0
GIR/BANK
21)
0
LCR (2)
0
DLAB
Set
Divisor
Break
Latch
Access bit
0
0
LSR (22)
0
TxM
Idle
Parity
Mode
bit 2
0
Parity
Mode
bit 1
0
02H
1
OOH
Rx Machine
Interrupt
Enable
TxFIFO
Interrupt
Enable
RxFIFO
Interrupt
Enable
1
OOH
Active
Block Int
bit2
Active
Block Int
bit 1
Active
Block Int
bitO
Interrupt
Pending
2
01H
Parity
Mode
bitO
Stop bit
Length
bit 0
Character
Length
bit 1
Character
Length
bit 0
3
OOH
Tx Machine Modem
Interrupt
Interrupt
Enable
Enable
BANK BANK
Pointer Pointer
bit 1
bitO
MCR (32)
MSR (27)
Timer
Interrupt
Enable
= 1)
= 1)
Address Defaul
OUTO
Loopback OUT 2
OUTl
Complement Control bit Complement Complement
RTS
DTR
Complement Complement
4
OOH
TxFIFO
Interrupt
Overrun
Error
RxFIFO
Int Req
5
SOH
State (H - . l) State
Change
Change
inRI
inDSR
State
Change
inCTS
S
OOH
7
OOH
DCD Input Rllnput DSR Input
Inverted Inverted Inverted
f'>,CRO(5)
Break
Detected
Framing
Error
CTS Input State
Change
Inverted
inDCD
Parity
Error
Address or Control Character Zero
BANK ONE-GENERAL WORK BANK
7
2
1
Tx Data
bit 7
Tx Data Tx Data
bitS
bit 5
Tx Data
bit 4
Tx Data
bit 3
Tx Data
bit 2
Tx Data
bit 1
Tx Data
bit 0
0
-
RxD (35)
Rx Data
bit7
Rx Data Rx Data
bitS
bit5
Rx Data
bit 4
Rx Data
bit 3
Rx Data
bit 2
Rx Data
bit 1
Rx Data
bit 0
0
-
RxF (24)
-
Rx Char RxChar
OK
Noisy
RxChar
Parity
Error
Address or
Control
Character
Break
Flag
RxChar
Framing
Error
Ninth
Data bit
of Rx Char
1
-
1
-
TxF(34)
6
5
TxD(33)
Register
Address Software Ninth bit
Marker bit Parity bit of Data Char
4
0
3
0
0
0
0
0
GIR/BANK
(21)
0
BANK
Pointer
bit 1
BANK
Pointer
bitO
TMST (2S)
-
-
GateB
State
Gate A
State
-
TMCR (31)
0
0
Trigger
GateB
Trigger
Gate A
0
MCR (32)
0
0
DTR
OUTO
Loopback OUT2
OUT 1
RTS
Complement Control bit Complement Complement Complement Complement
0
Active
Block Int
bit 2
Active
Block Int
bit 0
Interrupt
Pending
2
01H
-
TimerB
Expired
Timer A
Expired
3
30H
0
Start
TimerB
Start
Timer A
3
-
4
OOH
Active
Block Int
bit 1
NOTE:
The register number is provided as a reference number for the register description.
2-53
Address Default
intJ
82510
BANK ONE-GENERAL WORK BANK (Continued)
Register
7
FLR(25)
-
6
4
5
3
Address! Break
Break
Framing
Control
Terminated Detected Error
Character
Match
Parity
Error
ReM (30) Rx
Enable
Rx
Disable
Open Rx
FIFO
Rllnput
MSR (27) DCD
Complement Inverted
TCM (29)
0
0
GSR (20)
-
-
ICM (28)
0
0
Flush
RxFIFO
DSR Input
Inverted
CTS Input State
Inverted Change
inDCD
Lock Rx
FIFO
0
0
State
State
Change Change
inDSR inCTS
Flush Tx Tx
FIFO
Enable
TxM
Interrupt
Modem
Interrupt
RxM
TxFIFO RxFIFO
Interrupt Interrupt Interrupt
Software
Reset
Manuallnt
Status
Acknowledge Clear
Command
0
0
State
Change
inRI
Overrun RxFIFO
Error
Interrupt
Requested
FlushTx
Machine
0
Timer
Interrupt
Address Default
Tx FIFO Level
RST(23) Address!
Control
Character
Received
Flush
RxM
0
1
2
-
Rx FIFO Level
Tx
Disable
Power
Down
Mode
0
4
OOH
5
OOH
5
-
6
OOH
6
-
7
12H
7
-
BANK TWO-GENERAL CONFIGURATION
7
6
FMD (4)
0
0
GIR!BANK
(21)
0
BANK
Pointer
bit 1
Regleter
TMD(3)
IMD (1)
BANK
Pointer
bit 0
RMD (7)
0
Control
9-bit
Character
Character
Echo Disable Length
Error
Echo
Disable
0
0
3
2
0
0
Active
Block Int
bit 2
Transmit Mode
0
ACR1 (6)
RIE (17)
4
5
Rx FIFO Threshold
0
0
1
Address Default
Tx FIFO Threshold
1
OOH
Interrupt
Active
Active
Block Int Block Int Pending
bit 0
bit 1
2
01H
Software
Parity
Mode
3
OOH
4
OCH
Stop Bit Length
Interrupt
RxFIFO ulan
Acknowledge Depth
Mode
Mode
Select
Loopbackor
Echo Mode
of Operation
Address or Control Character 1
Address!
Control
Character
Recognition
Interrupt
Enable
Address!
Control
Character
Match
Interrupt
Enable
Address!Control
Character Mode
Break
Terminate
Interrupt
Enable
Break
Detect
Interrupt
Enable
Framing
Error
Interrupt
Enable
Disable
DPLL
Sampling Start bit
Window Sampling
Mode
Mode
5
OOH
Parity
Error
Interrupt
Enable
Overrun
Error
Interrupt
Enable
0
6
1EH
0
0
0
7
OOH
BANK THREE-MODEM CONFIGURATION
Register
7
6
5
4
3
2
1
0
Address
Default
CLCF(8)
RxClock
Mode
RxClock
Source
TxClock
Mode
TxClock
Source
0
0
0
0
0
OOH
BACF(9)
0
0
0
0
BRGA
Mode
0
0
1
04H
BRGA
Clock
Source
BBL (13)
BRGB LSB Divide Count (DLAB = 1)
0
05H
BBH (14)
BRGB MSB Divide Count (DLAB = 1)
1
OOH
2-54
intJ
82510
BANK THREE-MODEM CONFIGURATION (Continued)
Register
7
6
GIR/BANK
(21)
0
BANK
Pointer
bit 1
BBCF(10)
PMD (15)
BRGB Clock Source
5
4
BANK
Pointer
bitO
0
0
0
3
Active
Block Int
bit 2
0
DCDI/ClKI DCDI/ClKI DSR/TAI DSR/TAI RIISClK
aUT1
Direction
aUT 1
Function
aUTO
aUTO
Direction Function
MIE(19)
0
0
0
0
TMIE (18)
0
0
0
0
Function
2
Active
Block Int
bit 1
1
Active
Block Int
bit 0
0
Interrupt
Pending
Address Default
2
01H
BRGB
Mode
0
0
3
84H
DTR/TB
Function
0
0
4
FCH
5
OFH
6
OOH
DCDState RI State
DSR State CTS State
Change Int Change Int Change Int Changelnt
Enable
Enable
Enable
Enable
0
0
TimerB
Interrupt
Enable
Timer A
Interrupt
Enable
CONFIGURATION
These read/write registers are used to configure the device. They may be read at anytime; however, they may
be written to only when the device is idle. Typically they are written to only once after system power up. They
are set to default values upon Hardware or Software Reset (Default Wake-Up Mode). The default values are
chosen so as to allow the 82510 to be fully software compatible with the IBM PC Async Adapter (INS 8250Al
16450) when in the default wakeup mode. The 82510 can operate in the High Performance mode by programming the configuration registers as necessary.
The configuration options available to the user are listed below.
Table 11. Configuration Options
Interrupt Acknowledge Mode
• Automatic
• Manual
Receive
• Sampling Window Size
• Start Bit Detection Mode
• DPLL Disable/Enable
""LAN (8051)
Address Recognition
• Manual, Semi-Automatic,
Automatic
Diagnostics
• Loopback
• Remote
• Local
• Echo
• Yes/No
• Disable Error Echo
• Disable Controll Address
Char. Echo
FIFO
• RX FIFO Depth
• RX, TX Threshold
Clock Options
• RX, TX Clock Mode
• 1X
• 16X
• RX, TX Clock Source
• SRGA
• BRGB
• BRGAIB Operation Mode
• Timer
• BRG
• BRGAIB Divide Count
• BRGAIB Source
• Sys Clock
• SCLK Pin
• BRGA Output (BRGB
Only)
2-55
Control Character
Recognition
• None
• Standard
• ASCII
• EBCDIC
• Two User Programmed
TX Operation
• RTS/CTS Control
Manual, Semi-Automatic,
Automatic
• Parity Mode
• Stop Bit Length
• Character Size
I/O Pins
• Select Function for Each
Multifunction Pin
• Select Direction for Multifunction Pin (If Applicable)
82510
1. IMD-INTERNAL MODE REGISTER
~ I III
).ILM - ).ILAN MODE
Rf"D - RxFIFO DEPTH
~
lAM - INTERRUPT ACKNOWLEDGE MODE
76151413121~O
RESERVED
LEM - LOOBACK/ECHO
....---~
IM~lnternal
This register defines the general device mode of operation. The bit functions are as follows:
7-4:
Reserved
lAM:
Interrupt Acknowledge Mode Bit
ULM:
uLAN Mode
o1-
Normal Mode
uLAN Mode
This bit, enables the 82510 to recognize and/or
match address using the 9-bit MCS-51 asynchronous protocol.
LEM:
Loopback/Echo Mode Select
o-
Manual acknowledgement of pending interrupts
1 - Automatic acknowledgement of
pending interrupts (upon CPU service)
This bit selects the mode of loopback operation, or
the mode of echo operation; depending upon which
operation mode is selected by the Modem Control
register bit LC.
This bit, when set, configures the 82510 for the automatic acknowledge mode. This causes the 82510
INT line to go low for two clock cycles upon service
of the interrupt. After two clock cycles it is then updated. It is useful in the edge triggered mode. In
manual acknowledgement mode the CPU must explicitly issue a command to clear the INT pin. (The
INT pin then goes low for a minimum of two clock
cycles until another enabled status register bit is
set.)
RFD:
In loopback mode (Modem Control register bit
LC = 1) it selects between local and remote loopback.
o1-
Local Loopback
Remote Loopback
In echo mode (Modem Control register bit LC = 0) it
selects between echo or non-echo operation.
Receive FIFO Depth
o1-
290116-15
Mode Register
0 - No Echo
1 - Echo Operation
Four Bytes
One Byte
This bit configures the depth of the Rx FIFO. With a
FIFO depth of one, the FIFO will act as a 1-byte
buffer to emulate the 8250A.
2-56
82510
2. LCR-LINE CONFIGURE REGISTER
DlAB
SBK - SET BACK
PARITY [
ClD} CHARACTER
Cll lENGTH
::~
a...._ _• SBlD - STOP BIT lENGTH
....- - -....
PMD ...._ _ _ _-...1
290116-16
LCR-Llne Configure Register
This register defines the basic configuration of the
serial link.
Table 13. Stop Bit Length
DLAB-Dlvlsor Latch Access Bit-This bit, when
sE!lt, allows access to the Divisor Count registers
BAl,BAH;BBl,BBH registers.
SBK-Set Break Bit-This bit will force the TxD pin
low. The TxD pin will remain low (regardless of all
activities) until this bit is reset.
PM2.
PM1
Function
0
X
X
X
1
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
No Parity
Odd Parity
Even Parity
High Parity
low Parity
Software Parity
1
1
SBLO
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
1
1
1
1
Stop Bit Length
16X
1X
4/4
6/4 or 8/4*
3/4
4/4
5/4
S/4
7/4
8/4
-1
1
1
1
1
2
"6/4 if character length is 5 bits; else 814
CLO-Cl1-Character Length Bit....These bits,
together with the Transmit Mode register bit NBCL,
define the character length. See Table 14.
Table 12. Parity Modes
SPF
SBL1
0
1
1
1
1
PM2-PMo-:.Parlty Mode Bits-These three bits
combine with the SPF bit of the Transmit Mode register to define the various parity modes. See Table
1~
-
PMO
SBL2
Table 14. Character Length
NBCl
SBLO-Stop Bit Length-This bit, together with
SBl1 and SBl2 bits of the Transmit Mode register,
defines the Stop-bit lengths for transmission. The Rx
machine can identify 3/4 stop bit or more. See Table
13.
2-57
,Cl1
CLO
0
,0
0
0
0
0
0
1
1
0
1
0
0
1
1
Chara~ter
Length
5 BITS
SBITS
7 BITS
8 BITS
9 BITS
inter
82510
3. TMD-Transmit Machine Mode Register
EED - ERROR ECHO' DISABLE
'" -"'''''V'''"'''
"'0 .,,""
NBCl - NINTH BIT CHAR lENGTH
21'I+H~
'
,
1111
'
.Tml
SBll - STOP BIT lENGTH
'''' -""""'''''"
. SPF - S!W PARITY
TmO
TRANSMIT MODE
290116-17
TMD-Transmit Machine Mode Register
This register together with the Line Configure Register defines the Tx machine mode of operation.
01-Reserved
EED-Error Echo Disable--Disables Echo of characters received with errors (valid in echo mode
only).
1O-Semi-Automatic Mode-In this mode the
82510 transmits only when CfS input is active. The
82510 activates the RTS output as long as transmission is enabled.
CED-Control Character Echo Disable-Disables
Echo of characters recognized as control characters
(or address characters in uLAN mode). Valid in echo
mode only.
11-Automatlc Mode-In this mode the 82510
transmits only when CTS input is active. The RTS
output is activated only when transmission is enabled and there is more data to transmit.
NBCl-Nine-Blt length-This, bit, coupled with
LCR (CLO, CL 1), selects Transmit/Receive character length of nine bits. See Table 14.
SPF-Software Parity Force-This bit defines the
parity modes along with the PMO, PM 1, and PM2 bits
of the LCR register. When software parity is enabled
,the software must determine the parity .bit through
the TxF register on transmission, or check the parity
bit in RxF upon reception. See Table 12.
TM1-TMo-Transmit Mode-These bits select
one of three modes of control over the CTS and
RTS lines.
SBl2-8Bl i-Stop Bit length-These bits, together with the SBlO bit of the LCR register define
the stop bit length. See Table 13.
Oo-Manual Mode-In this mode the CPU has full
control of the Transmit operation. The CPU has to
explicitly enable/disable transmission, and activate/
check the RTS/CTS pins.
2-58
intJ
82510
4. FMD-FIFO MODE REGISTER
~ I III
76151413121~O
RESERVED
RECEIVE FIFO [RFT1
THRESHOLD RFTO
+-___...J
~~~}
TxFlFO THRESHOLD
} RESERVED
290116-18
FMD-FIFO Mode Register
This register configures the Tx and Rx FIFO's
threshold levels-the occupancy levels that can
cause an interrupt.
cated by these bits the Rx FIFO Interrupt is activated.
3-2-Reserved
7-6-Reserved
TFT1-TFTo-Transmlt FIFO Threshold-When
the TX FIFO occl,lpancy is less than or equal to the
level indicated by these bits the Tx FIFO Interrupt is
activated.
RFT1-RFTo-Recelve FIFO Threshold-When
the Rx FIFO occupancy is greater than the level indi-
5. ACRo-ADDRESS/CONTROL CHARACTER REGISTER 0
290116-47
ARCo-Address/Control Character Register 0
This register contains a byte which is compared to
each received character. The exact function depends on the configuration of the IMD register.
character must be right justified and the leading bits
be filled with zeros.
In uLAN mode this register contains the eight-bit station address for recognition. In this mode only incoming address characters (Le., characters with address bit set) will be compared to these register. The
PCRF bit in the RECEIVE STATUS register will be
set when an Address or Control Character match
occurs.
In normal mode this register may be used to program a special control character; a matched character will be reported in the RECEIVE STATUS register. The maximum length of the control characters is
eight bits. If the length is less than eight bits then the
6. ACR1-ADDRESS/CONTROL CHARACTER REGISTER 1
290116-48
ARC1-Address/Control Character Register 1
NOTE:
This register is identical in function to ACRO.
2-59
inter
82510
7. RMD-RECEIVE MACHINE MODE REGISTER
~LA~;~N~~g~ [:~~~
~
76151413121;~
11.11
]RESERVED
DISABLE DPLL - DPD ~---SAMPLING WINDOW - SWM MODE
START BIT SAMPLING MODE
290116-19
RMD-Recelve Machine Mode Register
This register defines the Rx Machine mode of operation.
11-Reserved
In normal Mode: selects the mode of Standard Set
Control Character Recognition (programmed control
characters are always recognized).
00- No Standard Set Control Characters Recognized.
01- ASCII Control Characters
(00H-1 FH + 7FH).
10- Reserved.
11- EBCDIC Control Character Recognized
.(OOH - 3FH).
uCMO, uCM1-uLAN/Control Character RecognitionMode-ln normal mode it defines the Control
Character recognition mode. In ulan mode they define modes of address recognition.
In uLAN mode: selects the mode of address recognition.
Oo-Manual Mode-Rx Machine reports reception
of any address character, via CRF bit of RECEIVE
STATUS register, and writes it to the Rx FIFO.
DPD-Disable Digital Phase Locked Loop-When
set, disables the DPLL machine. (Note: using the
DPLL in a very noisy media, may increase the error
rate.)
01-Semi-Automatic Mode-Operates the same
as Manual Mode but, in addition, the Rx Machine
OPENS (unlocks) the Rx FIFO upon reception of any
address characters. Subsequent received characters will be written into the FIFO. (Note: it is the user's responsibility to LOCK the FIFO if the address
character does not match the station's address.)
SWM-Sampling Window Mode-This bit controls
the mode of data sampling:
O-Small Window, 3/16 sampling.
1-Large Window, 7/16 sampling.
1O-Automatic Mode-The Rx Machine will OPEN
(unlock) the Rx FIFO upon Address Match. In addition the Rx Machine LOCKs the Rx FIFO upon recognition of address mismatch; i.e., it controls the
flow of characters into the Rx FIFO depending upon
the results of the address comparison. If a match
occurs it will allow characters to be sent to the FIFO;
if a mismatch occurs it will keep the characters out
of the FIFO by LOCKING it.
SSM-Start Bit Sampling Mode.,....This bit controls
the mode of Start Bit sampling.
0- Majority Voting for start bit. In this mode a majority of the samples determines the bit.
1-ln this mode if one of the bit samples is not
'0', the start bit will not be detected.
2-60
intJ
82510
8. CLCF-CLOCKS CONFIGURE REGISTER
Rx CLOCK MODE- RxCM
~76 111411
5
Rx CLOCK SOURCE - R x C S '
TxClOCK MODE- TxC'" ...
----....
Tx elK SOURCE - TxCS
3
1
1
211
~o 1
RESERVED
' -
+----......
290116-20
CLCF-Clocks Configure Register
TxCM-Transmit Clock Mode-This bit selects the
mode of the Transmit Data Clock, which is used to
clock out the Transmit Data.
0-16X Mode
1- 1X Mode. In this mode the Transmit data is
synchronous to the Serial Clock; supplied via
the SCLK pin.
This register defines the Transmit and Receive Code
modes and sources.
RxCM-Rx Clock Mode-This bit selects the mode
of the receive clock which is used to sample the
received data.
0-16X Mode.
1- 1X Mode. In this mode the receive data must be
synchronous to the Rx Clock; supplied via the
SCLK pin.
TxCS-Transmit Clock Source-Selects the
source of internal Transmit Clock in case of 16X
mode.
O-BRGB Output.
1-BRGA Output.
RxCS-Rx Clock Source-This bit selects the
source of the internal receive clock in the case of
16X mode (as programmed by the RxCM bit above).
O-BRGB Output
1-BRGA Output
9. BACF-BRGA CONFIGURATION REGISTER
.~
eeoc,
= 2
~I"'I+I~
w"'~-~~ IIII ,''ow,,
RESERVED
RESERVED
RESERVED
RESERVED
BAM- BRGA MODE
RESERVED
290116-21
BACF-BRGA Configuration Register
BAM-BRGA Mode of Operation-Selects between the Timer mode or the Baud Rate Generator
Mode.
This register defines the BRGA clock sources and
the mode of operation.
BACS-BRGA Clock Source-Selects the input
clock source for Baud Rate Generator A.
0- Timer Mode (in this mode the input clock
source is always the system clock).
1- Baud Rate Generator Mode
O-System Clock
1-SCLK Pin
This bit has no effect if BRGA is configured as a
timer.
2-61
inter
82510
10. BBCF-BRGB CONFIGURATION REGISTER
~I+I+I~ ~""rn
-,;~~(~~ ;IIII}
.
. ..
. [
RESERVED
.
•
'.'
.
BBt.f .. BRGB MODE
RESERVED
290116-22
BBCF-BRGB Configuration Register
This register defines the BAGB clock sources and
mode of operation. (Note: BAGB can also take its
Input Clock from the output of BAGA.)
... '.,
10- BAGA Output
11- Aeserved
BBM-BAGB Mode of Operation.
BBCS1, BBCSO-These two bits together define the
input Clock Sources for BAGB. These bits have no
effect when in the timer mode.
00- System Clock
01- SCLK Pin
0- Timer Mode (In this mode the input clock
source is always the system clock.)
1- BAG Mode
11. BAl-BRGA DIVIDE COUNT lEASTSIGNIFfCANT BYTE
290116-49
BAl-BRGA Divide Count low Byte
This register contains the least significant byte of the BAGA divisor/count.
12. BAH-BRGA DIVIDE COUNT MOST SIGNIFICANT BYTE
.~#pTj'jT§~
290116-50
BAH-BRGA Divide Count. High Byte
This register contains the most significant byte of the SAGA divisor/count.
13. BBl-BRGB DIVIDE COUNT lEAST SIGNIFICANT BYTE
290116-51
BBl-BRGB Divide Count low Byte
This register contains the least significant byte of the BAGB divisor/count.
2-62
inter
82510
14. BBH-BRGB DIVIDE COUNT MOST SIGNIFICANT BYTE
290116-52
BBH-BRGB Divide Count High Byte
This register contains the most significant byte of the BRGB divisor/count.
15. PMD-I/O PIN MODE REGISTER
~'M'"" .,,~,-
DCD/ICLK/OUT1 DIRECTION - 0100
OCO/ICLK/OUT1 FUNCTION _ OIOF
~I'I'I'I'I~
.".;
DSR/TA/OUTO FUNCTION - DTAF"
I III
}
~~ '"'~"
RESERVED
w-
RRF - RI/SCLK FUNCTION
290116-23
PMD-I/O Pin Mode Register
O-IClK (Output of the Internal System Clock).
1- OUT1 general purpose output. Controlled by
MODEM CONTROL Register
DTAD-DSR/TAlOUTO Direction.
0- Output: TA or OUTO (Dependent upon
DTAF).
1- Input: DSR.
DTAF-DSR/TAlQUTO Direction (output
mode only).
0- TA (BRGA Output or Timer A Termination
Pulse).
1- OUTO (general purpose output, controlled by
MODEM CONTROL).
RRF-RI/SClK Function
0- SClK (Receive and/or Transmit Clock)
1-RI
DTF-DTR/TB Function
0- TB (BRGB Output Clock on Timer B termination pulse depending upon the mode of
BRGB).
1-DTR
This register is used to configure the direction and
function of the multifunction pins. The following options are available on each pin.
1. Direction: Input or Output Pin.
0- Defines the Pin as an output pin (general purpose or special function).
1- Defines the pin as an input pin.
2. Function: General purpose or special purpose pin
(no effect if the pin is programmed as an Input).
0- special function output pin.
1- general purpose output pin.
DIOD-DCD/IClK/OUT1 Direction.
0- Output: IClK or OUT1 (depending on bit
DIOF)
1- Input: DCD.
DIOF-DCDIIClK/OUT1 Function (output
mode only).
2-63
inter
82510
Interrupt Masking
INTERRUPTISTATUS REGISTERS
The 82510 ~as a device enable register, GER, which
can be used to enable or mask-out any block interrupt request. Some of the blocks (Rx Machine, Modem, Timer) have an enable register associated with
their status register which can be used to mask out
the individual sources within the block. Interrupts are
enabled when programmed high.
The 82510 uses a two layer approach to handle interrupt and status generation. Device level registers
show the status of the major 82510 functional block
(MODEM, FIFO, Tx MACHINE, Rx MACHINE, TIMERS, etc.). Each block may be examined by reading
its individual block level registers. Also each block
has interrupt enable/generation logic: which may
generate a request to the built-in interrupt controller,
the interrupt requests are then resolved on a priority
basis.
16. GER-GENERAL ENABLE REGISTER
'''~,"m,"~,"_'_~: IIII 2~, - . ,~. "~''''~
RESERVED [
~I"'I'I'I~
Tx INTERRUPT ENABLE - TxlE
RFiE - Rx FIFO INTERRUPT ENABLE
TFlE - FIFO INTERRUPT ENABLE
MIE - MODEM INTERRUPT ENABLE
290116-24
GER-General Enable Register
This register enables or disables the bits of the GSR
register from being reflected in the GIR register. It
serves as the device enable register and is used to
mask the interrupt requests from any of the 82510
block (See Figure 1).
MIE-Modem Interrupt Enable.
RxIE-Rx Machine Interrupt Enable.
TFIE-Transmit FIFO Interrupt Enable.
TIE-Timers Interrupt Enable
RFIE-Receive FIFO Interrupt Enable.
TxlE-Transmit Machine Interrupt Enable.
17.RIE-RECEIVE INTERRUPT ENABLE REGISTER
76151413121~O
CONTROL/ADDRES. S RECOGNITION
CONTROL/ADDRESS MATCH
BREAK TERMINATED
~ I III
BREAK DETECTED
RESERVED
OVERRUN ERROR
PARITY ERROR
FRAMING ERROR
290116-25
RIE-Receive Interrupt Enable Register
This register enables interrupts from the Rx Machine. It is used to mask out interrupt requests generated by the status bits of the RST register.
BkDE-Break Detection Interrupt
Enable Interrupt on BkD bit of RST.
Enable-
FEE-Framing Error Enable-Enable Interrupt on
FE bit of RST.
CRE-Control/uLAN Address Character Recognition Interrupt Enable.-Enables Interrupt when
CRF bit of RST register is set.
PEE-Parity Error Enable-Enable Interrupt on PE
bit of RST.
PCRE-Programmable Controll Address Character Match Interrupt Enable.-Enables Interrupt on
PCRF bit of RST.
OEE-overrun Error Enable-Enable Interrupt on
OE bit of RST.
BkTe-Break Termination Interrupt Enable.
2-64
intJ
82510
18. TMIE-TIMER INTERRUPT ENABLE REGISTER
290116-26
TMIE-Tlmers/lnterrupt Enable Register
This is the enable register for the Timer Block. It is
used to mask out interrupt requests generated by
the status bits of the TMST register.
TBIE-Timer B Expired Interrupt
Enables Interrupt on TBEx bit of TMST.
Enable-
TAlE-Timer A Expired Interrupt
Enables Interrupt on TAEx bit of TMST.
Enable-
19. MIE-MODEM INTERRUPT ENABLE REGISTER
290116-27
MIE-Modem Interrupt Enable Register
CTSE-Delta CTS Interrupt Enable-Enables Interrupt on DCTS bits of MODEM STATUS.
This register enables interrupts from the Modem
Block. It is used to mask out interrupt requests generated by the status bits of the MODEM STATUS
register.
STATUS/INTERRUPT
DCDE-Delta DCD Interrupt Enable-Enables Interrupt on DDCD bit of MODEM STATUS.
The 82510 has two device status registers, which
reflect the overall status of the device, and five block
status registers. The two device status registers,
GSR and GIR, and supplementary in function. GSR
reflects the interrupt status of all blocks, whereas
GIR depicts the highest priority interrupt only. GIR is
updated after the GSR register; the delay is of approximately two clock cycles.
RIE-Delta RI Interrupt Enable-Enables Interrupt
on DRI bit of MODEM STATUS.
DSRE-Delta DSR Interrupt Enable-Enables Interrupt on DSR bit of MODEM STATUS.
2-65
intJ
82510
20. GSR-GENERAL STATUS REGISTER
~I'I'I'I'I~
"'" OIT""~::
RESERVED
.
RESERVED
Tx MACHINE INTERRUPT
, ' '"' ' '~"~
Rx FIFO INTERRUPT
Tx FIFO INTERRUPT
1111 :
MODEM INTERRUPT
290116-28
GSR-General Status Register
This register reflects all the pending block-level Interrupt requests. Each bit in GSR reflects the status
of a block and may be individually enabled by GEA.
GER masks-out interrupts from GIR; it does not
have any effect on the bits in GSA. The only way
that the bits can be masked out in GSR (Le., not
appear in GSR) is if they are masked out at the lower
level.
MIR-Modem Interrupt 'Request-This bit, if set,
indicates an interrupt from the Mod~m Module. (As
reflected in MODEM STATUS.)
RxlR-Receive Machine Interrupt Request-(As
reflected in RST.)
TFIR--Transmit FIFO Interrupt Request-Tx
FIFO occupancy is below or equal to threshold.
TIR-Timers Interrupt Request-This bit indicates
that one of the timers has expired. (See TMST)
RFIR-Receive FIFO Interrupt Request-Rx FIFO
Occupancy is above threshold.
.
TxlR-Transmit Machine Interrupt RequestIndicates that the Transmit Machine is either empty
or disabled (Idle).
21. GIR/BANK-GENERAL INTERRUPT REGISTER/BANK REGISTER
;jg1+I'PI~ ~:::"~
"'~:~::
BANKO .
RESERVED
1.11 1 :
:,:-
".,,"'
B11] BLOCK
BI2 INTERRUPT
.
290116-29
General Interrupt Register/Bank Register
This register holds the highest priority enabled pending interrupt from GSA. In addition it holds a pointer
to the current register segment. Writing into this register will update only the BANK bits.
101:
100:
011:
010:
001:
000:
BANK1, BANKO-Bank Pointer Bits-These two
bits point to the currently accessible register bank.
The user can read and write to these bits. The address of this register is always two within all four
register ba~ks.
Timer Interrupt (highest priority)
Tx Machine Interrupt
Rx Machine Interrupt
Rx FIFO Interrupt
Tx FIFO interrupt
Modem Interrupt (lowest priority)
lPN-Interrupt Pending-This bit is active low. It
indicates that there is an interrupt pending. The interrupt logic asserts the INT pin as soon as this bit
goes active. (Note: the GIR register is continuously
updated; so that, while the user is serving one interrupt source, a new interrupt with higher priority may
enter GIR and replace the older interrupt.)
B12, B11, BIO,-Interrupt Bits 0-2-These three
bits reflect the highest priority enabled pending interrupt from GSA.
2-66
intJ
825.10
22. LSR-LINE STATUS REGISTER
~~"mrn' = II %
"~., .o .
RESERVED
TxST
~I'I'I'I'I~
I I
TFST
Rx fiFO INT.
OVERRUN ERROR
PARITY ERROR
290116-30
LSR-Llne Status Register
This register holds the status of the serial link. It
shares five of its bits with the RST register (BkD, FE,
PE, OE, and RFIR). When this register is read, the
RST register (BITS 1-7) and LSR register (BITS 14) are cleared. This register is provided for compatibility with the INS8250A.
TFIR bit of GSR by writing a character to Tx FIFO, or
drop TFIE bit of GER (Disable Tx FIFO).
TxSt-Transmit Machine Status Blt-Same as
TxlR bit of GSR register. If high it indicates that the
Transmit Machine is in Idle State. (Note: Idle may
indicate that the TxM is either empty or disabled.
FE-Framing Error Detected-5ee FE bit in RST
register for a full explanation. The FE bit in RST register is the same as this bit.
Bkd-Break Detected-See Bkd bit in RST register
for full explanation. The BkD bit in RST register is
the same as this bit.
PE-Parlty Error Detected-See PE bit in RST
register for full explanation. The PE bit in RST register is the same as. this bit.
TFSt-Transmlt FIFO StatuS-Same as TFIR bit of
GSR. It indicates that the Transmit FIFO level is
equal to or below the Transmit FIFO Threshold.
There are two ways to disable the transmit FIFO
status from being reflected in GIR:
1. Writing a "0" to the TFIE bit of the GER register
2. Dynamically by using the Tx FIFO HOLD INTERRUPT logic. When the Tx FIFO is in the
Hold State, no interrupts are generated regardless of the TFIR and TFIE bits.
OE-overrun Error-See OE bit in RST register for
full explanation. The OE bit in RST register is the
same as this bit.
RFIR-Recelve FIFO Interrupt Request-This bit
is identical to RFIR bit of GSR. It indicates that the
RX FIFO level is above the Rx FIFO Threshold. This
bit is forced LOW during any READ from the Rx
FIFO. A zero written to this bit will acknowledge an
Rx FIFO interrupt.
The Transmit FIFO enters the Hold State when the
CPU reads the GIR register and the source of the
interrupt is Tx FIFO. To Exit, the CPU must drop the
2-67
inter
82510
23. RST-RECEIVE MACHINE STATUS REGISTER
~76ISI413121~O
,
ADDRESS/CONTROL CHAR. RCVD.
ADDRESS/CONTROL CHAR. MATCH
I'
II'
1
Rx FIFO INT.
OVERRUN ERROR
'
BREAK TERMINATED - '
•
-
BREAK DETECTED
PARITY ERROR
FRAMING ERROR
290116-31
RST-Receive Machine Status Register
This register displays the status of the Receive Ma·
chine. It reports events that have occurred since the
RST was cleared. This register is cleared when it is
read except for BITO, Rx FIFO interrupt. Each bit in
this register, when set, can cause an interrupt. Five
bits of this register are shared with the LSR register.
In normal Mode: indicates that a character which
matches the registers ACRO or ACR 1 has been
received.
BkT-Break Terminated-This bit indicates that a
break condition has been terminated.
CRF-Control/ Address Character Received-
BkD-Break Detected-This bit indicates that a
When enabled, this bit can cause an interrupt if a
control character or address character is received.
Break Condition has been detected, i.e., RxD input
was held low for one character frame plus a stop
BIT.
In uLAN Mode: indicates that an address charac·
ter has been received.
In normal Mode: indicates that a standard control
character (either ASCII or EBCDIC) has been received.
FE-Framing Error-This bit indicates that are·
ceived character did not have a valid stop bit.
PE-Parlty Error-Indicates that a received character had a parity error.
PCRF-Programmed Controll Address Character
Received-This bit, when enabled, will cause an interrupt when an address or control character match
occurs.
OE-overrun Error-Indicates that a received
character was lost because the Rx FIFO was full.
RFIR-Receive FIFO Interrupt Request-5ame
In uLAN Mode: indicates that an address charac·
ter equal to one of the registers ACRO or ACR1
has been received.
as the RFIR bit of LSR register.
2-68
inter
82510
24. RXF-RECEIVED CHARACTER FLAGS
RESERVED
Rx CHARACTER OK - ROK
I I
~I'I'I*I~
Rx NOISY - RxN
","" '''"' "00' -'"
II
RND- RxCHAR NINTH DATA BIT
'"-
RI'E - Rx CHAR fRAMING ERROR
BREAK fLAG
"""'/00.,.",,".. ""
290116-32
RxF-Recelve Flags Register
This register contains additional information about
the character in the RXD register. It is loaded by the
Rx Machine simultaneously with the RXD register.
A control Character-in normal Mode.
An Address Character in uLAN Mode.
RFE-Recelve Character Framing ErrorIndicates that no Stop bit was found for the character in RXD.
ROK-Recelved Character OK-This bit indicates
that the character in RXD no parity or framing error.
The parity error is not included in the s/w parity
mode.
NOTE:
A Framing Error will be generated for the first character of the Break sequence.
RxN-Received Character Noisy-The character
in RXD was noisy. This bit, valid only in 16X sampling mode, indicates that the received character
had non-identical samples for at least one of its bits.
RND-Nlnth Bit of Received Character-The
most significant bit of the character in RXD is written
into this bit. This bit is zero for characters with less
than nine bits.
RPE-Recelve Character Parity Error-This bit indicates that the RxD character had a Parity Error.
However, in S/W Parity mode it holds the received
parity bit as is.
BKF-Break Flag-Indicates that the character is
part of a "break" sequence.
ACR-Address/Control Character Marker-This
bit indicates that the character in RXD is either:
25. FLR-FIFO LEVEL REGISTER
[~~; IIII :
RESERVED
Rx 1'11'0
OCCUPANCY
LEVEL
~I'I'I'I'I~
TI'LO
Tx 1'11'0
RI'L 1
IT" lOCCUPANCY
TF"L2 LEVEL
RF"LO
RESERVED
290116-33
FLR-FIFO Level Register
This register holds the current Receive and Transmit
FIFO occupancy levels.
pancy of the Rx FIFO. The valid range is zero (000)
to four (100).
RFL2, RFL 1, RFLD-Receive FIFO Level of Occupancy-These three bits indicate the level of Occu-
TFL2, TFL 1, TFLD-Transmit FIFO Level of Occupancy-These three bits indicate the level of occupancy in the transmit FIFO. The valid range is zero
(000) to four (100).
2-69
inter
82510
26. TMST-TIMER STATUS REGISTER
.~." ~I'I+I'I~
I III "".. ~ffi"
RESERVED
GATE B STATE
TIMER B EXPIRED
RESERVED
GATE A STATE
RESERVED
290116-34
TMST-Timer Status Register
This register holds the status of the timers. Bits
TBEx and TAEx generate interrupts which are reflected in bit TIR of GSA. Bits GBS and GAS just
display the counting status, they do not generate interrupts.
GAs-Gate-A State-This bit does not generate
an interrupt. It reflects the state of the software gate
of Timer A, as written through the TMCR register.
O-counting disabled
1-counting enabled
GBs-Gate B State-This bit does not generate an
interrupt. It indicates the counting state of the software gate of Timer B, as written through the TMCR
register.
O-counting disabled
1-counting enabled
TBEx-Timer B Expired-When Set generates an
interrupt through TIR bit. of GSA. Indicates that Timer B count has expired. This bit is set via the terminal
count pulse generated by the timer when it terminates counting.
TAEx-Timer A Expired-Same as TBEx except it
refers to Timer A.
27. MSR-MODEM/I/O PINS REGISTER
~ ~,', ~""I'I'I~ ~.~~~~.
...
COMPLEMENT
!iCO
COMPLEMENT DSR
'
IIII
COMPLEMENT CTS
STATE CHANGE
C'fS
(H --> L) RI
STATE CHANGE DCD
290116-35
MSR-Modem/I/O Pins Status Register
DRI-Delta RI-Indicates that there was a high-tolow transition on the RI input pin since the register
was last read.
This register holds the status of the Modem input
pins (CTS, DCD, DSR, RI). It is the source of interrupts (MSR 0-3) for the MIA bit of GSA. If any of the
above inputs change levels the appropriate bit in
MODEM STATUS is set. Reading MODEM STATUS
will clear the status bits.
DDSR-Delta DSR-Indicates that the DSR input
pin has changed state since this register was last
read.
DCDC-DCD Complement-Holds the complement of the DCD input pin if programmed as an input
in PMD.
DCT5-Delta CT5-lndicates that the CTS input
pin has changed state since this register was last
read.
DRIC-Holds the complement of the RI input pin if
programmed as an input in PMD.
COMMAND REGISTERS
DSRC-DSR Complement-Holds the complement
of the DSR input pin if configured as an input in
PMD.
The command registers are write only; they are used
to trigger an operation by the device. Once the operation is started the register is automatically reset.
There is a device level register as well as four block
command registers. It is recommended that only one
command be issued during a write cycle.
CTSC-CTS Complement-Holds the complement
of the CTS pin.
DDCD-Delta DCD-Indicates that the DCD input
pin has changed state since this register was last
read.
2-70
inter
82510
28. ICM-INTERNAL COMMAND REGISTER
~ I III
76151413121~O
RESERVED [
•
•
S!W RESET-SRST
:~~E~~:ER
DOWN
STC-STATUS CLEAR
INrA-INTERRUPT ACKNOWLEDGE
290116-36
ICM-Intemal Command Register
clocks; afterwards, the INT pin may again go active if
other enabled interrupts are pending. This command
is provided for the Manual Acknowledge mode of
the 82510.
This register activates the device's general functions.
SRST-Device Software RESET-Causes a total
device reset; the effect is identical to the hardware
reset (except for strapping options). The reset lasts
four clocks and puts the device into the Default
Wake-up Mode.
StC-Status Clear-Glears the following status registers: RST, MSR, and TMST.
PDM-Power Down-This command forces the device into the power-down mode. Refer to the functional description for details;
INTA-Interrupt Acknowledge-This command is
an explicit acknowledgement of the 82510's Interrupt request. It forces the INT pin inactive for two
29. TCM-TRANSMIT COMMAND REGISTER
290116-37
TCM-Transmlt Command Register
This register controls the operation of the Transmit
Machine.
TxEN-Transmit Enable-Enables Transmission
by the Transmit Machine.
FTM-Flush Transmit Machine-Resets the
Transmit Machine logic (but not the registers or
F!FO) and enables transmission.
TxDi-Transmit Disable-Disables transmission. If
transmission is occurring when this command is issued the Tx Machine will complete transmission of
the current character before disabling transmission.
FTF-Flush Transmit FIFO-Ciears the Tx FIFO.
2-71
intJ
82510
30. RCM-RECEIVE COMMAND REGISTER
.
rL~H ~H,"E-'~
RECEIVE ENABLE'- RxE
Rx DISABLE" RxDI,
~I+I'I'I§
b
FLUSH Rx 1'"11'"0 - I'"RF
IIII
,
~-_ ~WO
} RESERVED
LRI'" - LOCK Rx 1'"11'"0
290116-38
RCM-Receive Command Register
This' register controls the operation of the Rx machine.
FRF-Flush Receive FIFO-Ciears the Rx FIFO.
LRF-Locks Rx FIFO-Disables the write mechanism of the RxFIFO so that characters subsequently
received are not written to the Rx FIFO but are lost.
However, reception is not disabled and complete
status/event reporting continues. (This command
may be used in the uLAN mode to disable loading of
characters into the Rx FIFO until an address match
is detected.)
RxE-Recelve Enable-Enables the reception of
characters.
RxDI-Recelve Disable-Disables reception of
data on RXD pin.
FRM-Flush Receive Machine-Resets the Rx
Machine logic (but not registers and FIFOs), enables
reception, and unlocks the receive FIFO.
ORF-open (Unlock) Rx FIFO-This command'enabies or unlocks the write mechanism of the Rx
FIFO.
31. TMCR-TIMER CONTROL REGISTER
290116-39
TMCR-Timer Control Register
This register controls the operation of the two 82510
timers. It has no effect when the timers are configured as baud-ratEl generators. TGA and TGB are
not reset after commahd execution.
1-enables counting
O-disables counting
STB-Start Timer B-This command triggers'timer
B. At terminal count a status bit is set in TMST
(TBEx).
TGB-Tlmer-B Gate-This bit serves as a gate for
Timer B operation:
STA-Start Timer A-This command triggers timer
A. At terminal count a status bit is set in TMST
(TAEx).
1-enables counting
O-disables counting
TGA-Timer-A Gate-This bit serves as a gate for
Timer·A operation:
2·72
inter
82510
32. MCR-MODEM CONTROL REGISTER
ournou~",:':'ou:; IIII :;:;":~
[
~1"'1'121~
LOOPBACK CONTROL - LC
OTR - OTR OUTPUT BIT
'0
OUT2 - OUT2 OUTPUT BIT
290116-40
MCR-Modem Control Register
This register controls the modem output pins. With
multi-function pins it affects only the pins configured as general purpose output pins. All the output
pins invert the data, i.e. their output will be the complement of the data written into this register.
OUT1-OUT1 Output Bit-This bit controls the
QUT1 pin. The output signal is the complement of
this bit.
RTS-RTS Output Bit-This bit controls the RTS
pin. The output signal is the complement of this bit.
OUTo--oiJ"fii Output Bit-This bit controls the
OUTO pin. The output signal is the complement of
this bit.
DTR-DTR Output Bit-This bit controls the OTR
pin. The output signal is the complement of this bit.
LCB Loopback Control Bit-This bit puts the
82510' into loopback mode. The particular type of
loopback is selected via the IMO register.
DATA REGISTERS
The data registers hold data or other information
and may be accessed at any time.
OUT2-oUT2 Output Bit-This bit controls the
OUT2 pin. The output Signal is the complement of
this bit.
33. TXD-TRANSMIT DATA REGISTER
290116-53
TXD-Transmit Data Register
This register holds the next data byte to be pushed
into the Transmit FIFO. For character formats with
more than eight bits of data, or with additional components (S/W Parity, Address Marker Bit) the additional data bits should be written into the TxF regis-
ter. When a byte is written to this register its contents, along with the contents of the TxF register,
are pushed to the top of the Transmit FIFO. This
register is write only.
2-73
inter
82510
34. TXF-TRANSMIT FLAGS REGISTER
290116-41
TxF-Transmit Flags Register
This register holds some additional components of
the next character to be pushed into the Tx FIFO.
The contents of this register are pushed into the Tx
FIFO with the Transmit Data register whenever the
TxO register is written to by the CPU.
SP-Software Parity Bit-This bit is transmitted in
S/W parity mode as the character's parity bit.
OS-Ninth Bit of Data-In nine-bit character length
mode this bit is transmitted as the MSB (08) bit.
uLAN-uLAN Address Marker Bit-This bit is
transmitted in uLAN mode as the address marker
bit.
35. RXD"":RECEIVE DATA REGISTER
290116-54
RXD-Receive Data Register
This register holds the earliest received character in
the Rx FIFO. The character is right justified and
leading bits are zeroed. This register is loaded by the
Rx Machine with the first received character. Reading the register causes the next register from the Rx
FIFO to be loaded into RxO and RxF registers.
2-74
82510
SPECIFICATIONS
ABSOLUTE MAXIMUM RATINGS
Ambient Temperature under Bias ...... O·C to 70·C
+ 150·C
+ 0.5V
Voltage on Vee Pin (w.r.t. Vss) ...... -0.5V to + 7V
Storage Temperature ............ - 65· to
Voltage on any Pin (w.r.t. VSS) -0.5V to Vee
Power Dissipation ....................... 300 mW
D.C. SPECIFICATIONS
D.C. CHARACTERISTICS
Symbol
Vil
(TA = O· to 70·C, Vee = 5V ± 10%)
Parameter
Input Low Voltage
Notes
Min
Max
Units
(1 )
-0.5
0.8
V
2.0
Vee- 0.5
V
0.45
V
IlA
VIH
Input High Voltage
(1 )
VOL
Output Low Voltage
(2), (9)
VOH
Output High Voltage
(3), (9)
III
Input Leakage Current
(4)
±10
IlO
3-State Leakage Current
(5)
±10
IlA
Icc
Power Supply Current
(6)
3.8
mA/MHz
Ipd
Power Down Supply
(7)
2
mA
ISTBY
Standby Supply Current
(10)
500
IlA
IOHA
RTS, DTR Strapping Current
(11)
0.4
mA
lOLA
RTS, DTR Strapping Current
(12)
11
mA
Cin
Input Capacitance
(8)
10
pF
Cio
1/0 Capacitance
(8)
10
CXTAl
X1, X2 Load
V
2.4
pF
10
pF
NOTES:
1. Does not apply to elK/X1 pin, when configured as crystal oscillator input (X1).
2.@IOl=2mA.
3. @ IOH = -0.4 rnA.
4. 0 < VIN < Vee.
5. 0.45V < VOUT < (Vee - 0.45).
6. Vee = 5.5V; Vil = 0.5V (max); VIH = Vee - 0.5V (min); 35 rnA (max); Typical value = 2.5 rnA/MHz (Not Tested); Ext
1X elK (9 MHz max); IOl = IOH = O.
7. Vee = 5.5V; Vil = GND; VIH = Vee; IOl = IOH = 0; device at power down mode, clock running.
8. Freq = 1 MHz.
9. Does not apply to OUT2/X2 pin, when configured as crystal oscillator output (X2).'
10. Same as 7, but input clock not running.
11. Applies only during hardware reset for clock configuration options. Strapping current for logic HIGH.
12. Applies only during hardware reset for clock configuration. Strapping current for logic lOW.
2-75
82510
A.C. SPECIFICATIONS
SYSTEM CLOCK SPECIFICATIONS
Symbol
Testing Conditions:
• All AC output parameters are under output load
of 20 to 100 pF, unless otherwise specified.
• AC testing inputs are driven at 2.4 for logic '1',
and 0.45V for logic '0'. Output timing measurements are made at 1.5V for both a logical '0'
and '1'.
Parameter
Min
Max
Notes
250
(2)
DIVIDE BY TWO OPTION-ACTIVE
• In the following tables, the units are ns, unless
otherwise specified.
System Interface Specificatlon-System Clock
Specification:
Tcy/2
ClK Period
54
TClCH
ClKlowTime
25
TCHCl
ClK High Time
25
TCH1CH2
ClK Rise Time
10
(1 )
TCl2Cl1
ClK Fall Time
10
(1 )
FXTAl
External Crystal
Frequency Rating
18.432
MHz
4.0
DIVIDE BY TWO OPTION-INACTIVE
The 82510 system clock is supplied via the elK pin
or generated by an on-chip crystal oscillator. The
clock is optionally divided by two. The ClK parameters are given separately for internal divide-by-two
option ACTIVE and INACTIVE.
Tcy
ClK Period
108
TClCH
ClK lowTme
54
TCHCl
ClK High Time
44
TCH1CH2
ClK Rise Time
15
(1 )
TCl2Cll
ClK Fall Time
15
(1 )
250
NOTES:
1. Rise/fall times are measured between 0.8 and 2.0V.
2. Tcy in ACTIVE divide by two option is TWICE the input·
clock period.
The system clock (after division by two, if active)
must be at least 16X the Tx or Rx baud rate (the
faster of the two).
RESET SPECIFICATION
Symbol
Parameter
Min
Max
Notes
TRSHl
Reset Width-ClK/X1 Configured to ClK
8 Tcy
(1 )
TTlRSl
RTS/OTR lOW Setup to Reset Inactive
6Tcy
(2)
TRSlTX
RTS/OTR low Hold after Reset Inactive
0
Tcy - 20
(2)
RESET ______J!
L
_________________________i=ITLRSL~-TR-S-LT-X-1---======~~~
DTR/RTS
--------------------+-------------~-------290116-43
NOTES:
1. In case of ClK/Xl configured as XI, 1 Ms is required to guarantee crystal oscillator wake-up.
2. RTS/DTR are internally driven HIGH during RESET active time. The pin should be either left OPEN or externally driven
lOW during RESET according to the required configuration of the system clock. These parameters specify the timing requirements on these pins, in case they are externally driven lOW during RESET.
The maximum spec on TRSlTX requires that the RTS/DTR pins not be forced later than TRSlTX maJdmum.
2-76
infef
82510
READ CYCLE SPECIFICATIONS
Symbol
TALAH
Parameter
Min
AD Active Width
2Tcy
Max
Notes
+ 65
TAVAL
Address/CS Setup Time to AD Active
7
TAHAX
Address/CS Hold Time after AD Inactive
0
TALDV
Data Out Valid Delay after AD Active
TCIAD
Command Inactive to Active Delay
TAHDZ
Data Out Float Delay after AD Inactive
+ 65
Tcy + 15
2Tcy
(1 )
40
NOTE:
1. Command refers to either Read or Write signals.
A2-0
CS
VALID
D7-0-------------(~~~~----------------------------------290116-44
WRITE CYCLE SPECIFICATION
Symbol
Parameter
Min
TWLWH WA Active Width
2Tcy
TAVWL Address CS Setup Time to WR Active
0
TDVWH Data in Setup Time to WA Inactive
90
TWHDX Data in Hold Time after WA Inactive
12
...
I--TWLWHA2-0
cs
~
_
TCIAO ___
TWHAX.t-_
}{
VALID
TOVWH
07-0
7
TWHAX Address and CS Hold Time after WR
TAVWL
Max Notes
+ 15
I.
.1
VALID
TWHDX
VALID
i-TCIA0..:1
\.
290116-45
NOTE:
Many of the serial interface pins have more than one function; sometimes the different functions have different timings. In
such a case, the timing of each function of a pin is given separately.
2-77
82510
SCLK PIN SPECIFICATION-16x CLOCKING MODE
Parameter
Symbol
Min
Txcy
SCLK Period
TXLXH
SCLK Low Time
93
TXHXL
SCLK High Time
93
Max
Notes
216
TXH1XH2
SCLK Rise Time
15
(1 )
TXL2XL1
SCLK Fall Time
15
(1 )
Max
Notes
NOTE:
1. Rise/fall times are measured between O.BV and 2.0V.
SCLK PIN SPECIFICATION-1x CLOCK MODE
Symbol
Parameter
Min
Txcy
SCLK Period
3500
TXLXH
SCLK Low Time
1650
TXHXL
SCLK High Time
1650
TXH1XH2
SCLK Rise Time
15
(1)
TXL2XL1
SCLK Fall Time
15
(1)
NOTE:
1. Rise/fall times are measured between O.BV and 2.0V.
RXD SPECIFICATION (1x MODE)
Symbol
SCLK
RXD
Parameter
Min
TRPW
RXD Setup Time to SCLK High
250
TRPD
RXD Hold Time After SCLK High
250
I
\
--------1 '"'. ~j..~---TRPD
Max
Notes
'''''___..J!
*:::::::::::::=
290116-46
TXD SPECIFICATION (1x MODE)
r--~-~~---------------r---~--~----~
Parameter
TXD Valid Delay after SCLK Low
REMOTE LOOPBACK SPECIFICATION
Symbol
Parameter
TRXDTXD
TXD Delay after RXD
2-7a
intJ
82510
CHAR 4
CHAR 3
CHAR 5
RXD pin
RD
pin
RST (7-0)
DOH
FLR (6-4) _ _ _-.:.._ _ _" -_ _......._ _.A__--='----\~--lr_--....::....---_t........~.a..;:;.a..::.a...:..A-:.....I'-'-
....JrI.'-______-..J
INT _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
BREAK
DETECTED
INTERRUPT
RX FIFO
THRESHOLD
INTERRUPT
290116-55
Receive Logic Diagram
INT=GSR (1)
GSR (4)
TXD _ _ _.....,STR DO
02
D1
os
04
03
CHAR 1
05
STR DO
02
D4
06
STR DO
02
0.4
06
STPI'-''-'':D~,~D::;3r-'~D5~S·TP
CHAR 2
STR DO
D-4
02
01
03
CHAR 4
06
D5 STP
STR 00
02
01
0.4
03
06
05 STP
CHAR 5
290116-56
Transmit Logic Diagram
2-79
8273
PROGRAMMABLE HOLC/SOLC
PROTOCOL CONTROLLER
" CCITT X.25 Compatible
•
Programmable NRZI Encode/Decode
•
HDLC/SDLC Compatible
•
•
Full Duplex, Half Duplex, or Loop SDLC
Operation
Two Programmable Modem Control
Ports
•
Digital Phase Locked Loop Clock
Recovery
•
Minimum CPU Overhead
•
Fully compatible with 8048/8080/
8085/8088/8086/80188/80186CPUs
•
Single
•
Up to 64K Baud Synchronous Transfers
•
Automatic FCS (CRC) Generation and
Checking
•
Up to 9.6K Baud with On-Board Phase
Locked Loop
+ 5V Supply
The Intel 8273 Programmable HOLC/SOLC Protocol Controller is a dedicated device designed to support the
ISO/CCln's HOLC and IBM's SOLC communication line protocols. It is fully compatible with Intel's new high
performance microcomputer systems such as the MCS 188/ 186TM. A frame level command set is achieved by
a unique microprogrammed dual processor chip architecture. The processing capability supported by the 8273
relieves the system CPU of the low level real·time tasks normally associated with controllers.
REGISTERS
TxlNT RESULT
COMMAND
RxlNT RESULT
PARAMETER
TEST MODE
STATUS
RESULT
FLAG OET
OB0- 7
Pr.
CLK
JII3
PIlI
I'll
RESET
DATA
BUS
BUFFER
TiiDAcK
TKD
r.c
TxORQ
Ril!Afl(
1m
RxORQ
PAl
PA2
iiii
TxDRD _ _ _- - ,
6PLl
i'iiiiAci - - - - ,
WR
I'A4
fIi
Rx INT
rn
iiTs
OBO
TxO
PB,-4
OBI
TxC
OB2
RxC
32iACK
32'X'CLi(
R.DRQ
RTS
R.DACK
PBI _ 4
r.INT
CTS
R.INT
CO
Ri5
WR
PA 2 _ 4
READ/
WRITE
DMA/
CONTROL
lOGIC
Al
R.D
RESET
R.C
cs
ClK - - - - - - - - '
FLAG DET
INTERNAL DATA BUS
CPU INTERFACE
MODEM INTERFACE
210479-3
Figure 4. 8273 Block Diagram Showing CPU Interface Functions
2-85
inter
8273
Register Description
RxDRQ: RECEIVE DMA REQUEST
COMMAND
Requests .a transfer of data between the 8273 and
memory for a receive operation.
Operations are initiated by writing an appropriate
command in the Command Register.
RxDACK: RECEIVE DMA ACKNOWLEDGE
The RxDACK signal notifies the 8273 that a receive
DMA cycle has been granted. It is also used with RD
to read data from the 8273 in non-DMA mode. Note:
~ must not be asserted while RxDACK is active.
PARAMETER
Parameters of commands that require additioal information are written to this register.
RD, WR: READ, WRITE
RESULT
The RD and WR signals are used to specify the direction of the data transfer.
Contains an immediate result describing an outcome
of an executed command.
DMA transfers require the use of a DMA controller
such as the Intel 8257. The function of the DMA
controller is to provic!e sequential addresses and
timing for the transfer, at a starting address determined by the CPU. Counting of data blocks lengths
is performed by the 8273.
TRANSMIT INTERRUPT RESULT
Contains the outcome of 8273 transmit operation
(good/bad completion).
RECEIVE INTERRUPT RESULT
To request a DMA transfer the 8273 raises the appropriate DMA REQUEST. DMA ACKNOWLEDGE
and READ enables DMA data onto the bus (independently of CHIP SELECn. DMA ACKNOWLEDGE
and WRITE transfers DMA data to the 8273 (independent of CHIP SELECn.
Contains the outcome of 8273 receive operation
(good/bad completion), followed by additional results which detail the reason for interrupt.
STATUS
The status register reflects the state of the 8273·
CPU Interface.
DMA Data Transfers
It is also possible to configure the 8273 in the nonDMA data transfer mode. In this mode the CPU
module must pass data to the 8273 in response to
non-DMA data requests indicated by status word.
Modem Interface
The 8273 CPU interface supports two independent
data interfaces: receive data and transmit data. At
high data transmission speeds the data transfer rate
of the 8273 is great enough to justify· the use of direct memory access (DMA) for the data transfers.
When the 8273 is configured in DMA mode, the elements of the DMA interfaces are: -
The 8273 Modem interface provides both dedicated
and user defined modem control functions. All the
control signals are active low so that EIA RS-232C
inverting drivers (MC 1488) and inverting receivers
(MC 1489) may be used to interface to standard modems. For asynchronous operation, this interface
supports programmable NRZI data encode/decode,
a digital phase locked loop for efficient clock extraction from NRZI data, and modem control ports with
automatic CTS, CD monitoring and RTS generation.
This interface also allows the 8273 to operate in
PRE-FRAME SYNC mode in which the 8273 prefixes 16 transitions to a frame to synchronize idle lines
before transmission of the first flag.
TxDRQ: TRANS",IT DMA REQUEST
Requests a transfer of data between memory and
the 8273 for a transmit operation.
TxDACK: TRANSMIT DMA ACKNOWLEDGE
The TxDACK Signal notifies the 8273 that a transmit
DMA cycle has been granted. It is also used with
WR to transfer data to the 8273 in non-DMA mode.
Note: AD must not be asserted while TxDACK is
active.
It should be noted that all the 8273 port operations
deal with logical values, for instance, bit DO of Port A '
will be a one when CTS (Pin 30) is a physical zero
(logical one).
2-86
inter
8273
PORT A -
Serial Data Logic
INPUT PORT
During operation, the 8273 interrogates inp~ns
CTS (Clear to Send) and CD (Carrier Detect). CTS is
used to condition the start of a transmission. If during transmission CfS is lost the 8273 generates an
interrupt. During reception, if CD is lost, the 8273
generates an interrupt.
~
~
~
Ix
x
Ix
~
~
~
~
The Serial data is s)'!!Qhronized by the user transmit
(TxC) and receive (AXC) clocks. The leading edge of
TxC generates new transmit data and the trailing
edge of Axe is used to capture receive data. The
NRZI encoding/decoding of the receive and transmit data is programmable.
~
The diagnostic features included in the Serial Data
logiC are programmable loop back of data and selectable clock for the receiver. In the loop-back
mode, the data presented to the TxD pin is internally
routed to the receive data input circuitry in place of
the RxD pin, thus allowing a CPU to send a message
to itself to verify operation of the 8273.
I
ICTS - CLEAR TO SEND
CD - CARRIER DETECT
210479-38
In the selectable clock diagnostic feature, when the
data is looped back, the receiver may be presented
incorrect sample timing by the external circuitry. The
user may select to substitute the TxC pin for the RxC
input on-chip so that the clock used to generate the
loop back data is used to sample it. Since TxD is
generated off the leading edge of TxC and RxD is
sampled on the trailing edge, the selected clock allows bit synchronism.
The user defined input bits correspond to the 8273
P~, PAs and PA2 pins. The 8273 does not interrogate or manipulate these bits.
PORT B - OUTPUT PORT
During normal operation, if the CPU sets RTS active,
the 8273 will not change this pin; however, if the
CPU sets R'i'S inactive, the 8273 will activate it before each transmission and deactivate it one byte
time after transmission. While the receiver is active
the flag detect pin is pulsed each time a flag sequence is detected in the receive data stream. Following an 8273 reset, all pins of Port B are set to a
high, inactive level.
~
~
~
~
~
Ix Ix
~
~
ASYNCHRONOUS MODE INTERFACE
Although the 8273 is fully compatible with the
HDLC/SDLC communication line protocols, which
are primarily designed for sychronous communication, the 8273 can also be used in asynchronous
applications by using this interface. The interface
employs a digital phase locked loop (DPLL) for clock
recovery from a receive data stream' and programmable NRZI encoding and decoding of data. The
use of NRZI coding with SDLC transmission guarantees that within a frame, data transitions will occur at
least every five bit times-the longest sequence of
ones which may be transmitted without zero-bit insertion. The DPLL should be used only when NRZI
coding is used since the NRZI coding will transmit
zero sequence as line transitions. The digital phase
locked loop also facilitates full-duplex and half-duplex asynchronous implementation with, or without
modems.
~
I
L-...J....---'IL=~~~~j-ll~RTs _REQUEST TQ SEND
USER DEFINED OUTPUT PB4. P83. P82. PB,
FLAG DETECT
210479-39
The user defined output bits correspond to the state
of PB4-PB1 pins. The 8273 does not interrogate or
manipulate these bits.
2-87
inter
8273
OBO_ 7
TxD
be
TICD~a
om
32XCij(
TxDiCK
RICDRQ
ATs
R;'DAci(
;a,-.
TxlNT
ffi
CD
PA2_.
RKINT
Rli
WR
Ao
A,
RxD
RESET
~
OS
elK
Fi:AGDiT
CPU INTERFACE
MODEM INTERFACE
210479-4
Figure 5. 8273 Block Diagram Showing Control Logic Functions
TxD
\
X
/
\
/
X
\
/
X
210479-5
Figure 6. Transmit/Receive Timing
2-88
intJ
8273
quadrant A 1, it is apparent that the DPll sample
"A" was placed too close to the trailing edge of the
data cell; sample "8" will then be placed at T =
(T nominal - 2 counts) = 30 counts of the 32X ClK to
move the sample pulse "8" toward the nominal center of the next bit cell. A data edge occuring in quadrant 81 would cause a smaller adjustment of phase
with T = 31 counts of the 32X ClK. Using this technique the DPll pulse will converge to nominal bit
center within 12 data bit times, worst case, with constant incoming RxD edges.
DIGITAL PHASE LOCKED LOOP
In asynchronous applications, the clock is derived
from the receiver data stream by the use of the digital phase locked loop (DPll). The DPll requires a
clock input at 32 times the required baud rate. The
receive data (RxD) is sampled with this 32X ClK and
the 8273 DPll supplies a sample pulse nomminally
centered on the RxD bit cells. The DPll has a builtin "stiffness" which reduces sensitivity to line noise
and bit distortion. This is accomplished by making
phase error adjustments in discrete increments.
Since the nominal pulse is made to occur at 32
counts of the 32X ClK, these counts are subtracted
or added to the nominal, depending upon which
quadrant of the four error quadrants the data edge
occurs in. For example if an RxD edge is detected in
RxD
A method of attaining bit synchronism following a
line idle is to use PRE-FRAME SYNC mode of transmission.
_----JX'-____---JX_____ X____
-J
i5PII
SAMPLES
A
QUADRANT
ADJUSTMENT
B
Al
I:
Bl
B2
A2
·1· ·1· ·1·
-2
T-
-1
+1
+2
:1
210479-6
Figure 7. DPLL Sample Timing
2-89
intJ
8273
SYNOHRONOUS MODEM-DUPLEX OR HALF DUPLEX OPERATION
8273
RxC
R.C
R.D
T.C
TxD
32.CLK
f
GND
MODEM
V
",,/
~
11.0
MODEM
8273
TiCc
"TxD
l5JiIT
om
32xCLK
1
l
f
N.C.
GND
N.C.
210479-7.
ASYNCHRONOUS MODES-DUPLEX OR HALF DUPLEX OPERATION
8273
8273
MODEM
MODEM
.----1-...... RxD
210479-8
ASYNCHRONOUS-NO MODEMS-DUPLEX OR HALF DUPLEX
8273
32xCLK
T.C
TxD
I--
r-
RxC
RxD
I---<
~ T.C
RxC
RxD
8273
TxD
OPIT
32.CLK
DPLL
I
I
32.
CLOCK
32x
CLOCK
I
210479-33
2-90
intJ
8273
ondary station finding its address in the A field captures the frame for action at that station. All received
frames are relayed to the next station on the loop.
SOLC LOOP
The OPLL simplifies the SOLe loop station implementation. In this application, each secondary station on a loop data link is a repeater set in one-bit
delay mode. The signals sent out on the loop by the
loop controller (primary station) are relayed from station to station then, back to the controller. Any sec-
Loop stations are required to derive bit timing from
the incoming NRZI data stream. The OPLL generates sample Rx clock timing for reception and uses
the same clock to implement Tx clock timing.
32.
CLOCK
1
32.CLK
1X LOOP
OSCILLATOR
r--
TxC
OPLL
RxC
8273
LOOP
CONTROLLER
TxO
R.O
t
RxO RxC
TxC TxO
8273
LOOP
TERMINAL
32xCLK
TxO
8273
LOOP
TERMINAL
RxO
TxC
RxC
OPLL
OPLL
I
I
32.
CLOCK
32.CLK
32x
CLOCK
210479-9
Figure 8. SOLC Loop Application
2-91
inter
8273
PRINCIPLES OF OPERATION
Bit 7 CBSY (Command Busy)
Indicates in-progress command, set for CPU poll
when Command Register is full, reset upon command phase completion. It is improper to write a
command when CBSY is set; it results in incorrect
operation.
The 8273 is an intelligent peripheral controller which
relieves the CPU of many of the rote tasks associated with constructing and receiving frames. It is fully
compatible with the MCS-80/85™ system bus. As a
peripheral device, it accepts commands from a CPU,
executes these commands and provides an Interrupt
and Result back to the CPU at the end of the execution. The communication with the CPU is done by
activation of CS, RD, WR, pins while the A1, Ao se" lect the appropriate registers on the chip as de~cribed in the Hardware Description Section.
""
The 8273 operation is composed of the following
sequence of events:
YES
I COMMAND PHASE I
~~3 ~:J~~~g~~~N.:i~:~:~R::iri~~~~Ns~O THE
I
II EXECUTION PHASE I
II
I
RESULT PHASE
I
THE 8273 IS ON ITS OWN TO CARRY OUT THE COMMAND
THE 8273 SIGNALS THE CPU THAT THE EXECUTION
HAS FINISHED. THE CPU MUST PERFORM A READ
OPERATION OF ONE OR MORE OF THE REGISTERS.
210479-40
NO
The Command Place
END OF COMMAND PHASE
During the command phase, the software writes a
command to the command register. The command
bytes provide a general description of the type of
operation requested. Many commands require more
detailed information about the command. In such a
case up to four parameters are written into the parameter register. The flowchart of the command
phase indicates that a command may not be issued
if the Status Register indicates that the device is
busy. Similarly if a parameter is issued when the Parameter Buffer shows full, incorrect operation will occur.
YES
210479-10
The 8273 is a duplex device and both transmitter
and receiver may each be executing a command or
passing results at any given time. For this reason
separate interrupt pins are provided. However, the
command register must be used for one command
sequence at a time.
Figure 9. Command Phase Flowchart
Bit 6 CBF (Command Buffer Full)
Indicates that the command register is full, it is reset
when the 8273 accepts the command byte but does
not imply that execution has begun.
STATUS REGISTER
The status register contains the status of the 8273
activity. The description is as follows.
D7
De
Ds
D4
D3
D2
D1
Bit 5 CPBF (Command Parameter Buffer Full)
CPBF is set when the parameter buffer is full, and is
reset by the 8273 when it accepts the parameter.
The CPU may' poll CPBF to determine when additional parameters may be written.
Do
I~YI~I~I~~I~mlhMI~Mlh~1
2-92
intJ
8273
Bit 4 CRBF (Command Result Buffer Full)
Bit 0 TxlRA (Transmitter Interrupt Result
Available)
Indicates that an executed command immediate result is present in the Result Register. It is set by
8273 and reset when CPU reads the result.
The TxlRA is set by the 8273 when an interrupt result byte is placed in the TxlNT register. It is reset
when the CPU has read the TxlNT register.
Bit 3 RxlNT (Receiver Interrupt)
THE EXECUTION PHASE
RxlNT indicates that the receiver requires CPU attention. It is identical to RxlNT (pin 11) and is set by
the 8273 either upon good/bad completion of a
specified command or by Non-DMA data transfer. It
is reset only after the CPU has read the result byte
or has received a data byte from the 8273 in a NonDMA data transfer.
Upon accepting the last parameter, the 8273 enters
into the Execution Phase. The execution phase may
consist of a DMA or other activity, and mayor may
not require CPU intervention. The CPU intervention
is eliminated in this phase if· the system utilizes DMA
for the data transfers, otherwise, for non-DMA data
transfers, the CPU is interrupted by the 8273 via
TxlNT and RxlNT pins, for each data byte request.
Bit 2 TxlNT (Transmitter Interrupt)
The TxlNT indicates that the transmitter requires
CPU attention. It is identical to TxlNT (pin 2). It is set
by 8273 either upon good/bad completion of a specified command or by Non-DMA data transfer. It is
reset only after the CPU has read the result byte or
has transferred transmit data byte to the 8273 in a
Non-DMA transfer.
THE RESULT PHASE
Bit 1 RxlRA (Receiver Interrupt Result
Available)
To facilitate quick networis software decisions, two
types of execution results are provided:
1. An Immediate Result
2. A Non-Immediate Result
During the result phase, the 8273 notifies the CPU of
the execution outcome of a command. This phase is
initiated by:
1. The successful completion of an operation
2. An error detected during an operation.
The RxlRA is set by the 8273 when an interrupt result byte is placed in the RxlNT register. It is reset
after the CPU has read the RxlNT register.
°1
\
I
D7
D8
DS
1
o
0
1
0
1
0
o
o
o
0
0
0
1
1
1
I
·'~-. . / '{'
D7
·~~l
Dl- DO received
D2- DO received
',,,,,-- J
04-00 received
05-00 received
06-00 received
0
0
·
0
0
0
0
0
0
*Partial
De
I
DS
.
.
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
D4
D3
D2
Dl
DO
Ree....r Interrupt R.lull Code
R. Stetu. Aftor INT
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
1
1
0
0
1
1
0
1
0
1
Active
Active
Active
Active
Disabled
Disabled
Active
0
0
0
1
A1 match or general receive
A2 match
CRC error
Abort detected
Idle detect
EOP detected
Frame less than 32 bits
DMA overrun detected
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
Memory buffer overflow
Corrler detect failure
Receive Interrupt overrun
Byte Received
Disabled
Disabled
Disabled
Disabled
210479-11
Figure 10. Rx Interrupt Result Byte Format
2-93
8273
o
06
05
o
o
01
Early transmit interrupt
Frame transmit complete
DMA underrun
Clear to Send (CTS) error
Abort complete
D.
03
02
0,
Do
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
1
0
Do
210479-12
Figure 11. Tx Interrupt Result Byte Format
Immediate result is provided by the 8273 for commands such as Read Port A and Read Port B which
have information (CTS, CO, RTS, etc.) that the network software needs to make quick operational decisions.
interrupt and, if required, one or more bytes which
detail the condition.
Tx and Rx Interrupt Result Registers
The Result Registers have a result code, the three
high order bits 07-05 of which are set to zero for all
but the receive command. This command result contains a count that indicates the number of bits received in the last byte. If a partial byte is received,
the high order bits of the last data byte are indeterminate.
A command which cannot provide an immediate result will generate an interrupt to signal the beginning
of the Resultphase. The immediate results are provided in the Result Register; all non-immediate results are available upon device interrupt, through Tx
Interrupt Result Register Txl/R or Rx Interrupt Result Register Rxl/R. The result may consist of a onebyte interrupt code indicating the condition for the
All results indicated in the command summary must
be read during the result phase.
2-94
inter
8273
INTERRUPT
r----
N~~g~AI
+
----.,
I
I DMA
I MODE
READ STATUS
REGISTER
I
I
I
I
YES
I
I
NO
READ STATUS
REGISTER
DATA REQUEST
NON·DMA MODE
USE DAC~+ RD OR
WR TO READ OR
WRITE DATA
(
NO
END)
YES
READ IIR
REGISTER
210479-13
Figure 12. Result Phase Flowchart-Interrupt Results
2-95
inter
8273
AFTER COMMAND PHASE COMPLETION (READ PORT A. PORT B)
READ STATUS
READ RESULT
REGISTER
REGISTER
210479-14
Figure 13. (Rx Interrupt Service)
Since Address/Control field extension is normally
done with software to maximize extension flexibility,
the 8273 does not create or operate upon contents
of the extended HDLC Address/Control fields. Extended fields are transparently passed by the 8273
to user as either interrupt results or data transfer
requests. Software must' assemble the fields for
transmission and interrogate them upon reception.
DETAILED COMMAND DESCRIPTION
General
The 8273 HDLC/SDLC controller supports a comprehensive set of high level commands which allows
the 8273 to be readily used in full-duplex, half-duplex, synchronous, asynchronous and SDLC loop
configuration, with or without modems. These framelevel commands minimize CPU and software overhead. The 8273 has address and control byte buffers which allow the receive and transmit commands
to be used in buffered or non-buffered modes.
However, the user can take advantage of the powerful 8273 commands to minimize CPU/Software
overhead and simplify buffer management in handling extended fields. For instance buffered mode
can be used to separate the first two bytes, then
interrogate the others from buffer. Buffered mode is
perfect for a two byte address field.
In buffered transmit mode, the 8273 transmits a flag
automatically, reads the Address and Control buffer
registers and transmits the fields, then via DMA, it
fetches the information field. The 8273, having
transmitted the information field, automatically appends the Frame Check Sequence (FCS) and the
end flag. Correspondingly, in buffered read mode,
the Address and Control fields are stored in their
respective buffer registers and only Information
Field is transferred to memory.
The 8273 when programmed, recognizes protocol
characters unique to HDLC such as Abort, which is a
string of seven or more ones (01111111). Since
Abort character is the same as the GA (EOP) character used in SDLC Loop applications., Loop Transmit and Receive commands are not recommended
to be used in HDLC. HDLC does not support Loop
mode.
Initialization Set/Reset Commands
In non-buffered transmit mode, the 8273 transmits
the beginning flag automatically, then fetches and
transmits the Address, Control and Information
fields from the memory, appends the FCS character
and an end flag. In the non-buffered receive mode
the entire contents of a frame are sent to memory
with the exception of the flags and FCS.
These commands are used to manipulate data within the 8273 registers. The Set commands have a
single parameter which is a mask that corresponds
to the bits to be set. (They perform a logical-OR of
the specified register with the mask provided as a
parameter). The Register commands have a single
parameter which is a mask that has a zero in the bit
positions that are to be reset. (They perform a logical-AND of the specified register with the mask).
HDLC Implementation
HDLC Address and Control field are extendable. The
extension is selected by setting the low order bit of
the field to be extended to a one, a zero in the low
order bit indicates the last byte of the respective
field.
SET ONE-BIT DELAY (CMD CODE A4)
!
~: I~' I~ I~71 ~ I~51 ~41 I~21 ~' I~ I
2-96
intJ
8273
When one bit delay is set, 8273 retransmits the received data stream one bit delayed. This mode is
entered at a receiver character boundary, and
should only be used by Loop Stations.
RESET OPERATING MODE (CMD CODE 51)
A1 Ao 07 06 05 04 03 02 01 00
~~~: 1~ 10 10 1 1 10 1 1 10 10 10 1
1
RESET ONE·BIT DELAY (CMD CODE 64)
A1
Ao
07 06 05 04 03 02 01 00
~~~: I ~ 10 1~ 11 11 10 10 1
10 10 1
(D5) HDLC MODE
The 8273 stops the one bit delayed retransmission
mode.
In HOLC mode, a bit sequence of seven ones
(01111111) is interpreted as as an abort character.
Otherwise, eight ones (011111111) signal an abort.
SET DATA TRANSFER MODE (CMD CODE 97)
A1 Ao 07 06 05 04 03 02 01 00
~~~: I ~ 10 1: 1~ 1~ 1: 1~ 1: 1: 1 1 1
When the data transfer mode is set, the 8273 will
interrupt when data bytes are required for transmission or are available from a receive. If a transmit
interrupt occurs and the status indicates that there is
no Transmit Result (TxIRA = 0), the interrupt is a
transmit data request. If a receive interrupt occurs
and the status indicates that there is no receive result (RxIRA = 0), the interrupt is a receive data request.
A1 Ao 07 06 05 04 03 02 01 00
~~~: I ~ 10 10 11 10 11 1 0 11 1 : 1: 1
If the Oata Transfer Mode is reset, the 8273 data
transfers are performed through the OMA requests
without interrupting the CPU.
:::' I:' I~·I :I0: I~ I~'I : I:: I0; I~·I
=
In EOP interrupt mode, an interrupt is generated
whenever an EOP character (01111111) is detected
by an active receiver. This mode is useful for the
implementation of an SOLC loop controller in detecting the end of a message stream after a loop poll.
The early interrupt mode is specified to indicate
when the 8273 should generate an end of frame interrupt. When set, an early interrupt is generated
when the last data character has been passed to the
8273. If the user software responds with another
transmit command before the final flag is sent, the
final flag interrupt will not be generated and a new
frame will immediately begin when the current frame
is complete. This permits frames to be separated by
a single flag. If no additional Tx commands are provided, a final interrupt will follow.
NOTE:
In buffered mode, if a supervisory frame (no Information) Transmit command is sent in response to
an early Transmit Interrupt, the 8273 will repeatedly
transmit the same supervisory frame with one flag
in between, until a non-supervisory transmit is issued.
SET OPERATING MODE (CMD CODE 91)
1,
(D4) EOP INTERRUPT MODE
(D3) TRANSMITTER EARLY INTERRUPT MODE
(Tx)
RESET DATA TRANSFER MODE (CMD CODE
57)
I
Any mode switches set in CMO code 91 can be reset using this command by placing zeros in the appropriate positions.
Early transmitter interrupt can be used in buffered
mode by waiting for a transmit complete interrupt
instead of early Transmit Interrupt before issuing a
transmit frame command for a supervisory frame.
See Figure 14.
FLAG STREAM MODE
1 = PREFRAME SYNC MODE
1 = BUFFERED MODE
1 .. EARLY INTERRUPT MODE
1" EOP INTERRUPT MODE
1'" HOle MODE
210479-34
2-97
8273
(DO) FLAG STREAM MODE
Tx INTERRUPT PROCEDURE
If this bit is set to a one, the following table outlines.
the operation of the transmitter.
TRANSMIT COMPLETION
(ODH)
INTERRUPT
OTHER
Transmitter State
Action
Idle
Send Flags Immediately.
Transmit or Transmit}
Transparent Active
Send Flags After the
Transmission Complete
Loop Transmit Active
Ignore Command.
1 Bit Delay Active
Ignore Command.
If this bit is reset to zero the following table outlines
the operation of the transmitter
Transmitter State
Action
IDLE
Sends Idles on Next
Character boundary.
NO
Transmit or Transmit- }
Transparent Active
Send Idles after the
Transmission
is Complete.
Loop Transmit Active
Ignore Command.
1 Bit Delay Active
Ignore Command.
SET SERIAL 1/0 MODE (CMD CODE AO)
OTHER PROCESSING
210479-15
~
Figure 14
~
~
~
~
~
~
~
~
~
:::: I : I : 1: 1: I : I : I : 1°1°1°1
I , • NRZ, MODE
If this bit is zero, the interrupt will be generated only
after the final flag has been transmitted.
1· TxC-Rxe
, =
(D2) BUFFERED MODE
LOOP BACK T)lO _ RxD
210479-16 '
If the buffered mode bit is set to a one, the first two
bytes (normally the address (A) and control (C)
fields) of a frame are buffered by the 8273. If this bit
is a zero the address and control fields are passed
to and from memory.
RESET SERIAL 1/0 MODE (CMD CODE 60)
This command allows bits set in CMD code AO to be
reset by plaCing zeros in the appropriate positions.
~~~ I~ I~ I~ I~f I~f I~21 ~' I~ I
(D1) PREFRAME SYNC MODE
If this bit is set to a one the 8273 will transmit two
characters before the first flag of a frame.
(D2) LOOP BACK
To guarantee sixteen line transitions, the 8273
sends two bytes of data (OO)H if NRZI is set or data
(55)H if NRZI is not set.
If this bit is set to a one, the transmit data is internally routed to the receive data circuitry.
2-98
inter
8273
(D1) TxC -+ RxC
Receive Commands
If this bit is set to a one, the transmit clock is internally routed to the receive clock circuitry. It is normally used with the loop back bit (02).
The 8273 supports three receive commands: General Receive, Selective Receive, and Selective Loop
Receive.
(DO) NRZI MODE
GENERAL RECEIVE (CMD CODE CO)
If this bit is set to a one, NRZI encoding and decoding of transmit and receive data is provided. If this bit
is a zero, the transmit and receive data is treated as
a normal positive logic bit stream.
General receive is a receive mode in which frames
are received regardless of the contents of the address field.
A1 Ao 07 06 05 04 03 02 01 00
NRZI encoding specifies that a zero causes a
change in the polarity of the transmitted Signal and a
one causes no polarity change. NRZI is used in all
asynchronous operations. Refer to IBM document
GA27-3093 for details.
Reset Device Command
CMO:
0
PAR:
0
PAR:
0
0
11 1 101 0 1 0 JoJOJO
1 LEAST SIGNIFICANT BYTE
OF THE RECEIVE BUFFER
LENGTH (BO)
1 MOST SIGNIFICANT BYTE
OF RECEIVE
BUFFER LENGTH (B1)
A1 Ao 07 06 05 04 03 02 01 00
~~:~ ~ ~ ~ ~
I
I
I
I
1 ;
1
~ ~ ~ ~ ~
1
1-
1
1
I
An 8273 reset command is executed by outputting a
(01)H followed by (OO)H to the reset register (TMR).
See 8273 AC timing characteristics for Reset pulse
specifications.
The reset command emulates the action of the reset
pin.
1) The modem control signals are forced high (inactive level).
2) The 8273 status register flags are cleared.
3) Any commands in progress are terminated immediately.
4) The 8273 enters an idle state until the next command is issued.
5) The Serial I/O and Operating Mode registers arEi
set to zero and OMA data register transfer mode
is selected.
6) The device assumes a non-loop SOLC terminal
role.
2-99
NOTES:
1. If buffered mode is specified, the RO, R1 receive
frame length (result) is the number of data bytes received.
2. If non-buffered mode is specified, the RO, R1 receive frame length (result) is the number of data
bytes received plus two (the count includes the address and control bytes).
3. The frame check sequence (FCS) is not transferred to -memory.
4. Frames with less than 32 bits between flags are
ignored (no interrupt generated) if the buffered
mode is specified.
5. In the non-buffered mode an interrupt is generated when a less than 32 bit frame is received, since
data transfer requests have occurred.
6. The 8273 receive is always disabled when an
Idle is received after a valid frame. The CPU module must issue a receive command to re-enable the
receiver.
7. The intervening ABORT character between a final flag and an 10LE does not generate an interrupt.
8. If an ABORT Character is not preceded by a flag
and is fallowed by an 10LE, an interrupt will be generated for the ABORT followed by an 10LE interrupt
one character time later. The reception of an
ABORT will disable the receiver.
intJ
8273
RECEIVE DISABLE (CMD CODE 5)
SELECTIVE RECEIVE (CMD CODE C1)
CMD:
A1
'0
PAR:
0
Ao D7 D6 D5 D4 D3 D2 D1 Do
0
1
Terminates an active receive command immediately.
A1 Ao D7 D6 D5 D4 D3 D2 D1 Do
111.101010101011
CMD: 1 0 1 0 1 1 1 1 1 0 1 0' 1 0 I' 1 1 0 1 1 I
LEAST SIGNIFICANT BYTE
OF THE RECEIVE
BUFFER LENGTH (BO)
PAR:
NONE
PAR:
0
1
MOST SIGNIFICANT BYTE
OFRECENE
BUFFER LENGTH (B1)
PAR:
0
1
RI;CEIVE FRAME ADDRESS
MATCH FIELD ONE (A1)
The 8273 supports three transmit comm!lnds:
Transmit Frame, Loop Transmit, Transmit Transparent.
PAR:
0
1
RECEIVE FRAME ADDRESS
MATCH FIELD TWO (A2)
TRANSMIT FRAME (CMD CODE CS)
Transmit Commands
Selective receive is a receive mode in which .frames
are ignored unless the address field matches any
one of two address fields given to the 8273 as parameters.
When selective receive is used in HDLC the 8273
looks at the first character, if extended,software
must then decide if the message is for this unit.
SELECTIVE LOOP RECEIVE (CMD CODE C2)
A1
Ao D7 D6 D5 D4 D3 D2 D1 Do
CMD:
0
0
PAR:
0
0
111101010101110
0
1
MOST SIGNIFICANT BYTE
OF RECEIVE
BUFFER LENGTH (B1)
PAR:
0
1
RECEIVE FRAME ADDRESS
MATCH FIELD ONE (A1)
PAR:
0
1 ' RECEIVE FRAME ADDRESS
MATCH FIELD TWO (A2)
Ao
CMD:
0
0
PAR:
0
1
LEAST SIGNIFICANT BYTE OF
FRAME LENGTH (LO)
PAR:
0
1
MOST SIGNIFICANT BYTE OF
FRAME LENGTH (L 1)
PAR:
0
1
ADDRESS FIELD OF TRANSMIT
FRAME (A)
PAR:
0
1
CONTROL FIELD OF TRANSMIT
FRAME (C)
D7 D6 D5 D4 D3 D2 D1 Do
111101011101010
Transmits one frame including: initial flag, frame
check sequence, and the final flag.
LEAST SIGNIFICANT BYTE
OF THE RECEIVE
BUFFER LENGTH (I;JO)
PAR:
A1
If the buffered mode is specified, the LO, L 1, frame
length provides as a parameter is the length of the
information field and the address and control fields
must be input.
In unbuffered mode the frame length provided must
be the length of the information field plus two and
the address and control fields must be the first two
bytes, of data. Thus only the frame length bytes are
required as parameters.
Selective loop receive operates like selective receive except that the transmitter is placed in flag
stream mode automatically after detecting an EOP
(01111111) following a valid received frame. The
one bit delay mode is also resetst the end of a
selective loop receive.
2-100
inter
8273
After an abort character (eight contiguous ones) is
transmitted, the transmitter reverts to sending flags
or idles as a function of the flag stream mode specified.
LOOP TRANSMIT (CMD CODE CAl
A1 Ao 07 06 05 04 03 02 01 Do
CMO:
0
0
PAR:
0
1
PAR:
0
1
111101011101110
LEAST SIGNIFICANT BYTE OF
FRAME'LENGTH (LO)
ABORT LOOP TRANSMIT (CMD CODE CE)
A1
MOST SIGNIFICANT BYTE OF
FRAME LENGTH (L1)
PAR:
0
1
ADDRESS FIELD OF TRANSMIT
FRAME (A)
PAR:
0
1
CONTROL FIELD OF TRANSMIT
FRAME (C)
CMO:
PAR:
Ao 07 06 05 04 03 02 01
Do
I0 I0 I I 1 I0 I0 I 1 I 1 I 1 I0 I
NONE
After a flag is transmitted the transmitter reverts to
one bit delay mode.
ABORT TRANSMIT TRANSPARENT (CMD CODE
CD)
Transmits one frame in the same manner as the
transmit frame command except:
A1
1) If the flag stream mode is not active transmission
will begin after a.received EOP has been converted to a flag.
2) If the flag stream mode is active transmission will
begin at the next flag boundary for buffered mode
or at the third flag boundary for non-buffered
mode.
CMO:
Ao 07 06 05 04 03 02 01
Do
I0 I0 I 1 I 1 I0 I0 I 1 I 1 I0 I 1 I
PAR: NONE
The transmitter reverts to sending flags or idles as a
function of the flag stream mode specified.
3) At the end of a loop transmit the one-bit delay
Modem Control Commands
mode is entered and the flag stream mode is reset. .
The modem control commands are used to manipulate the modem control ports.
TRANSMIT TRANSPARENT (CMD CODED C9)
A1
Ao 07 06 05 04 03 02 01 Do
CMO:
0
0
PAR:
0
1
LEAST SIGNIFICANT BYTE OF
FRAME LENGTH (LO)
PAR:
0
1
MOST SIGNIFICANT BYTE OF
FRAME LENGTH (L 1)
When read Port A or Port B commands are executed
the result of the command is returned in the result
register. The Bit Set Port B command requires a parameter that is a mask that corresponds to the bits
to be set. The Bit Reset Port B command requires a
mask that has a zero in the bit positions that are to
be reset.
111101011101011
The 8273 will transmit a block of raw data without
protocol, i.e., no zero bit insertion, flags, or frame
check sequences.
. READ PORT A (CMD CODE 22)
A1
CMO:
PAR:
Ao 07 06 05 04 03 02 01
I0 I0 I0
0
Do
I0 I0 I0 I1 I0 I
NONE
Abort Transmit Commands
An abort command is supp6rted for each type of
transmit command. The abort commands are ignored if a transmit command is not in progress.
CMO:
A1
CMO:
PAR:
ABORT TRANSMIT FRAME (CMD CODE CC)
A1 Ao 07 06 05 04 03 02 01 Do
PAR:
READ PORT B (CMD CODE 23)
I0 I0 I 1 I 1 I0 I0 I 1 I 1 I0 I0 I
NONE
2-101
Ao 07 06 05 04 03 02 01
I0 I0 I0
NONE
0
Do
I0 I0 I0 I1 I1 I
inter
8273
SET PORT B BITS (CMD CODE A3)
(Do) REQUEST TO SEND.
This command allows user defined Port B pins to be
set.
This is a dedicted 8273 modem control Signal, and
reflects the same logical state of RTS pin.
~
~
::~:I:I~I
~
~
~
~
~
~
~
~
RESET PORT B BITS (CMD CODE 63)
:1:1'1 01016 1'1 '1
IRTS -
This command allows Port B user defined bits to be
reset.
REQUEST TO SEND
USER DEFINED
I
.
l
FLAG DETECT
:::'1: 1~ 1~ 1: 1' 101 01 01 ' 1'
210479-35
,I ATS -
(Ds) FLAG DETECT
AEQUEST TO SEND
USER DEFINED
This bit can be used to set the flag detect pin. However, it will be reset when the next flag is detected.
FLAG DeTECT
210479-36
This command allows Port B (D4-D1) user defined
bits to be reset. These bits correspond to Output
Port pins (PB4-PB1)'
(D4-D1) USER DEFINED OUTPUTS
These bits correspond to the state of the PB4 - PB1
output pins.
8273 Command Summary
Command Description
Command
HEX
Parameter
Results
Set One Bit Delay
A4
Set Mask
None
Reset One Bit Delay
64
Reset Mask
None
Set Data Transfer Mode
97
Set Mask
None
Reset Data Transfer Mode
57
Reset Mask
None
Set Operating Mode
91
Set Mask
None
Reset Operating Mode
51
. Reset Mask
None
Set Serial 110 Mode
AO
Set Mask
None
Reset Serial 1/0 Mode
60
Reset Mask
None
Result
Port
Completion
Interrupt
-
No
No
No
No
No
No
No
No
General Receive
CO
BO,B1
RIC,RO,A1,(A,C)(2)
RXI/R
Yes
Selective Receive
C1
BO,B 1,A1,A2
RIC,RO,Ri ,(A,C)(2)
RXI/R
Yes
RXI/R
Yes
Selective Loop Receive
C2
BO,B1,A1,A2
RIC,RO,R1,(A,C)(2)
Receive Disable
C5
None
None
Transmit Frame
C8
LO,L 1,(A,C)(1)
-
No
TIC
TXI/R
Yes
Loop Transmit
CA
LO,L 1,(A,C)(1)
TIC
TXI/R
Yes
Transmit Transparent
C9
LO,L1
TIC
TXI/R
Yes
Abort Transmit Frame
CC
None
TIC
TXI/R
Yes
2-102
intJ
8273
8273 Command Summary (Continued)
Command
HEX
Command Description
Parameter
Results
Result
Port
Completion
Interrupt
Abort Loop Transmit
CE
None
TIC
TXI/R
Yes
Abort Transmit Transparent
CD
None
TIC
TXI/R
Yes
Read PortA
22
None
Port Value
Result
No
Result
No
-
No
Read Port B
23
None
Port Value
Set Port B Bit
A3
Set Mask
None
Reset Port B Bit
63
Reset Mask
None
No
NOTES:
1. Issued only when in buffered mode.
2. Read as results only in buffered mode.
8273 Command Summary Key
80- Least significant byte of the receiver buffer length.
81- Most significant byte of the receive buffer
length.
LO- Least significant byte of the Tx frame
length.
L 1- Most significant byte of the Tx frame
length.
A 1- Receive frame address match field one.
A2- Receive frame address match field two.
A- Address field of received frame. If nonbuffered mode is specified, this result is
not provided.
COMMANO
I
t
C- Control field of received frame. If nonbuffered mode is specified this result is
not provided.
RXIIR- Receive interrupt result register.
TXIIR- Transmit interrupt result register.
RO- Least significant byte of the length of the
frame received.
R1- Most significant byte of the length of the
frame received.
RIC- Receiver interrupt result code.
TIC- Transmitter interrupt result code.
GENERAL
RECEIVE
(Ro. R,I
DATA IN
t t t
DMA REQUESTS
I ,:......_ _ _ _ _ _ _ __
DATA ~~ERRUPTS _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _l-A_--L-:-C_ _.l!
!
NDNBUFFERED MDDE
FRAME
CPU INTERRUPTS _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _C:.:Q;;;M;;.P:.:LE;.;.T,;;.E.....I..;;..~...;.._ _~_
210479-17
Figure 15_ Typical Frame Reception
NOTE:
In order to ensure proper operation to the maximum baud rate, Receive commands or Read/Write Port commands should
be written only when either the transmitter or the receiver is inactive. In full duplex systems, it is recommended that these
commands be issued after servicing a transmitter interrupt but before a new transmit command is issued. When operating in
full Duplex (active transmitter or receiver) with commands, the maximum data rate decreases to 49K Baud.
2-103
inter
8273
LAST PARAMETER
OF To COMMAND
l
1--2 BYTES-j
I 7
RTS
eTS
DRQ
BUFFER MODE
INT
------------------------------------------~~~R~~~--------------------~FI~N~A~L---TolNT
TolNT
210479-18
Figure 16a. Typical Frame Transmission, Buffered Mode
LAST PARAMETER
l
1--3 BYTES---j
,J,'_...J!
ATS _ _
eTS
-------...1
DRQ
NON·BUFFER MODE
INT
~RLY
TolNT
FINAL
TolNT
210479-19
Figure 16b. Typical Frame Transmission, Non-Buffered Mode
2-104
inter
8273
I
'I
MEMORIES
~
I
."
SVSTEMBUS
•
~
~AO.A.
'"
?'OBo-7
MEMR
lOW
MEMW
lOR
CS
HRQ
OBa-7
RO
WR
CS
TXINT
RXINT
~HACK
~
~
Rxe
RXO
TXC
TXO
TxORQ
8257
OMA
CONTROLLER
TxOACK
MODEM
8273
RxORQ
RxOACK
A
MODEM CONTROLS
".
210479-20
Figure 17.8273 System Diagram
WAVEFORMS
COMMAND PHASE
'--_oJ I
I
i--n--tool
I
CBSY
/
_.....J
I
I
I
I--T4-1
I
I
1+-T3--1
:~~~
_CP_B_F______________________
______
~/
210479-21
Table 2. Command Phase Timing (Full Duplex)
Symbol
T1
T2
T3
BuHered
Timing Parameter
Between Command & First Parameter
Between Consecutive Parameters
Command Parameter Buffer Full Bit
Reset after Parmeter Loaded
Non-BuHered
Unit
Min
Max
Min
Max.
13
10
10
756
604
604
13
10
10
857
705
705
tcy
tcy
tcy
T4
Command Busy Bit Reset after Last
Parameter
128
702
128
803
tcy
T5
CPBF Bit Reset after Last Parameter
10
604
10
705
tcy
2-105
8273
WAVEFORMS (Continued)
RECEIVER INTERRUPT
RD
__ \
LAST
INTERRRUPT RESULj ,
\'---r: \\---
RxlRA
I
I
- - - , T2
/
RxlNT
---'
210479-22
Table 3. Receiver Interrupt Result Timing
Symbol
Timing Parameter (Clock Cycles)
T1
T2
RxlRA Bit Set after RIC Read
RxlNT Goes Away after Last Int. Result
Read
Buffered
Non-Buffered
Min
Max
Min
Max
18
16
29
27
18
16
29
27
Unit
tcy
tcy
TRANSMIT INTERRUPT
RD
TxlRA
TxlNT
/
---'
210479-23
Table 4. Transmit Interrupt Result
Symbol
Buffered
Timing (Clock Cycle)
Min
T1
TxlNT Inactive after llit. Results Read
2·106
13
I
I
Non-Buffered
Max
Min
353
13
I
I
Unit
Max
454
tcy
inter
8273
• Notice: Stresses above those listed under "Absa.
lute Maximum Ratings" may cause permanent dam·
age to the device. This is a stress rating only and
functional operation of the device at these or any
other conditions above those indicated in the opsra.
tional sections of this specification is not implied. Ex·
posure to absolute maximum rating conditions for
extended periods may affect device reliability.
ABSOLUTE MAXIMUM RATINGS·
Ambient Temperature Under Bias ...... O·C to 700C
Storage Temperature .......... - 65·C to + 1500C
Voltage on Any Pin With
Respect to Ground .............. - 0.5V to + 7V
Power Dissipation ........................ 1 Watt
D.C. CHARACTERISTICS 8273
Symbol
Min
Max
Unit
Input Low Voltage
-0.5
0.8
V
VIH
Input High Voltage
2.0
Vee + 0.5
V
VOL
Output Low Voltage
0.45
V
VOH
Output High Voltage
Vil
Parameter
(TA = O·Cto 70·C, Vee = +5.0V ±5%)
2.4
V
III
Input Load Current
±10
poA
IOFl
Output Leakage Current
±10
poA
Icc
Vee Supply Current
180
mA
T.et Conditione
= 2.0 mA for Data Bus Pins
= 1.0 mA for Output Port Pins
= 1.6 mA for All Other Pins
IOH = - 200 poA for Data Bus Pins
IOH = -100 poA for All Other Pins
VIN = Vee to OV
VOUT = VeetoO.45V
IOl
IOl
IOl
CAPACITANCE 8273 (TA = 25·C, Vcc = GND = OV)
Symbol
Parameter
Min
Typ
Max
Unit
Teet Conditione
CIN
Input Capacitance
10
pF
te = 1 MHz
CliO
1/0 Capacitance
20
pF
Unmeasured Pins
Returned to GND
Max
Unit
Teet Conditions
1000
ns
,
A.C. CHARACTERISTICS
(TA = OOC to 70·C, Vcc = + 5.0V ± 5%)
CLOCK TIMING (8273)
Symbol
Parameter
Min
Typ
tCY
Clock
250
tel
Clock Low
120
ns
tCH
Clock High
120
ns
2-107
64KBaud Max
Operating Rate
8273
A.C. CHARACTERISTICS 8273 (TA
=
OOCt0700C, vcc';" +5.0V ± 5%)
READ CYCLE
Symbol
Parameter
Max
Min
Unit
Test Conditions
tAC
Select Setup to RD
0
ns
(Note 2)
tCA.
Select Hold from RD
tAA
RD Pulse Width
0
ns
(Note 2)
250
ns
tAD
Data Delay from Address
300
ns
(Note 2)
tAD
Data Delay from RD
200
ns
CL = 150 pF, (Note 2)
tOF
Output Float Delay
20
100
ns
CL = 20 pF For Minimum;
150 pF for Maximum
toe
DACK Setup to RD
25
ns
!co
DACK Hold from RD
25
ns
tKO
Data Delay from DACK
300
ns
WRITE CYCLE
Symbol
tAC
Parameter
Select Setup to WR
Min
Max
Unit
0
ns
tCA
Select Hold from WR
0
ns
tww
WR Pulse Width
250
ns
tow
Data Setup to WR
150
ns
two
Data Hold from WR
0
ns
toe
DACK Setup to WR
25
ns
teo
DACK Hold from WR
25
ns
Test Conditions
DMA
Symbol
tea
Parameter
Min
Request Hold from WR or RD
(for Non-Burst Mode)
Max
Unit
200
ns
Max
Unit
Test Conditions
OTHER TIMING
Symbol
Parameter
tRSTW
Reset Pulse Width
tr
Input Signal Rise Time
tf
Input Signal Fall Time
tRSTS
Reset to First IOWR
tCV32
Min
Icy
10
20
ns
20
ns
2
Icy
32X Clock Cycle Time
13.02xtcv
ns
tCL32
32X Clock Low Time
4x!cv
ns
tCH32
32X Clock High Time
tOPLL
DPLL Output Low
4x!cv
ns
1 x!cv-5O
ns
2-108
Test Conditions
intJ
8273
A.C. CHARACTERISTICS 8273
(TA = O°C to 70°C, VCC =
+ 5.0V ± 5%) (Continued)
OTHER TIMING (Continued)
Symbol
Min
Parameter
Max
Unit
tOCL
Data Clock Low
1 xtCy-50
ns
tOCH
Data Clock High
2xtCY
ns
tOCY
Data Clock
62.5xtCY
ns
tTo
Transmit Data Delay
tos
Data Setup Time
200
tOH
Data Hold Time
tFLO
FLAG DET Output Low
Test Conditions
(Note 3)
ns
200
ns
100
ns
8xtCY ± 50
ns
NOTES:
1. All timing measurements are made at the reference voltages unless otherwise specified: Input "1" at 2.0V, "0" at O.BV;
Output "1" at 2.0V, "0" at O.BV.
2. tAD, tRD, tAC, and tCA are not concurrent specs.
3. If receive commands or Read/Write Port commands are issued while both the transmitter and receiver are active, this
specification will be B1.5 TCY min.
A.C. TESTING LOAD CIRCUIT
A.C. TESTING INPUT, OUTPUT WAVEFORM
"=X
2.0
0.45
>
TEST POINTS
0.8
< )C
2.0
DEVICE
UNDER
TEST
0.8
~cc~"."
210479-24
-=
A.C. Testing: Inputs are driven at 2.4V for a logic "1" and 0.45V
for a logic "0". Timing measurements are made at 2.0V for a logic
"1" and O.BV for a logic "0".
210479-25
CL = 150pF
CL Includes Jig Capacitance
WAVEFORMS
READ
DACK
---Y
X
I--;--toc-
)
I+--tAC-
-- -
1--1cA-l
'RR
~
DATA BUS
l(
~CO
r------ - --
'RO
'AD
'KO
2-109
~
JI
,~-'OF-J
)-------210479-26
inter
8273
WAVEFORMS (Continued)
WRITE
~I
DACK
I
ID~
~
I---'AC-~_
X
I--'CA --l
'WW
:x
)(
DATA BUS
I
..___tWO--J
'OW
210479-27
DMA
DRQ
I
\
5AcK
ifij DR
ViR
r =+
tco
~
tCtCL=JC~:
~
CHIP CLOCK
32X CLOCK
3
I
L.~l~.J
I
j
1\
210479-28
TRANSMIT
~---tDCL----1
----
- toCY-
TxD
·DCH-----·
.
~
...... tTD ......
210479-29
2-110
inter
8273
WAVEFORMS (Continued)
RECEIVE
RXO===t.] E~J======
210479-30
DPLL OUTPUT
210479-31
FLAG DETECT OUTPUT
210479-1
2-111
intJ
8274
MULTI-PROTOCOL SERIAL CONTROLLER (MPSC)
Synchronous:
Byte Synchronous and
• Asynchronous,
• -ByteCharacter
Synchronization, Int. or
Bit Synchronous Operation
Ext.
Two Independent Full Duplex
• Transmitters
- One or Two Sync Characters
and Receivers
- Automatic CRC Generation and
Fully Compatible with 8048, 8051, 8085,
Checking (CRC-16)
• 8088,
8086, 80188 and 80186 CPU's;
-IBM Bisync Compatible
8257 and 8237 DMA Controllers; and
Synchronous:
8089 1/0 Proc.
• -BitSDLCIHDLC
Flag Generation and
Independent DMA Channels
Recognition
• 4Baud
- 8 Bit Address Recognition
Rate: DC to 880K Baud
• Asynchronous:
- Automatic Zero Bit Insertion and
Deletion
• - 5-8 Bit Character; Odd, Even, or No
- Automatic CRC Generation and
Parity; 1, 1.5 or 2 Stop Bits
- Error Detection: Framing, Overrun,
and Parity
•
Checking (CCITT-16)
- CCITT X.25 Compatible
Available in EXPRESS and Military
The Intel 8274 Multi-Protocol Series Controller (MPSC) is designed to interface High Speed Communications
Lines using Asynchronous, IBM Bisync, and SOLC/HOLC protocol to Intel microcomputer systems. It can be
interfaced with Intel's MCS-48, -85, -51; iAPX-86, -88, -186 and -188 families, the 8237 OMA Controller, or the
8089 1/0 Processor in polled, interrupt driven, or OMA driven modes of operation.
The MPSC is a 40 pin device fabricated using Intel's High Performance HMOS Technology.
bD,
TiC",
D8 0 •7
CD",
IIrRT
,
m,
CLK
m,
IIH!T
lVI'mn,
OTII,
RxDe
R'fS,JIVIIIlft,
!POIT.DAO.
9
10
II'I/A.DfiO.
INf_---Q
1N'fl<--_CI
.,---....
',---"'L__~
et-----'
IID-----'
II/II _ _ _ _ _....J
DTRe
FIKes
INTERNAL DATA BUS
SYSTEM INTERFACE
......_ _ _ _ _....r~--R.D.
NETWO~K
170102-2
Figure 2. Pin Configuration
INTERFACE
170102-1
Figure 1. Block Diagram
2-112
November 1986
qrder Number: 170102·002
intJ
8274
Table 1. Pin Description
Symbol
Pin
No.
Type
Name and Function
ClK
1
I
CLOCK: System clock, TTL compatible.
RESET
2
I
RESET: A low signal on this pin will force the MPSC to
an idle state. TxDA and TxDe are forced high. The
modem interface output signals are forced high. The
MPSC will remain idle until the control registers are
initialized. Reset must be true for one complete ClK
cycle.
CDA
3
I
CARRIER DETECT (CHANNEL A): This interface signal
is supplied by the modem to indicate that a data carrier
signal has been detected and that a valid data signal is
present on the RxDA line. If the auto enable control.!!...
set the 8274 will not enable the serial receiver until CDA
has been activated.
Axee
4
I
RECEIVE CLOCK (CHANNEL B): The serial data are
shifted into the Receive Data input (RxDe) on the rising
edge of the Receive Clock.
CDe
5
I
CARRIER DETECT (CHANNEL B): This interface signal
is supplied by the modem to indicated that a data carrier
signal has been detected and that a valid data signal is
present on the RxDe line. If the auto enable control is
set the 8274 will not enable the serial receiver until CDe
has been activated.
CTSe
6
I
CLEAR TO SEND (CHANNEL B): This interface signal
is supplied by the modem in response to an active RTS .
signal. C'i'S indicates that the data terminal/computer
equipment is permitted to transmit data. In addition, if
the auto enable control is set, the 8274 will not transmit
data bytes until C'i'S has been activated.
f,(T S·
~
W~ ~
TxCe
7
I
TRANSMIT CLOCK (CHANNEL B): The serial data are
shifted out from the Transmit Data output (TxDe) on the
falling edge of the Transmit Clock.
TxDe
8
0
TRANSMIT DATA (CHANNEL B): This pin transmits
serial data to the communications channel (Channel B) .
RxDe
9
I
. RECEIVE DATA (CHANNEL B): This pin receives serial
data from the communications channel (Channel B).
SYNDETe
/RTSe
10
I/O
SYNCHRONOUS DETECTION (CHANNEL B): This pin
is used in byte synchronous mode as either an internal
sync detect (output) or as a means to force external
synchronization (input). In SDlC mode, this pin is an
output indicating Flag detection. In asynchronous mode
it is a general purpose input (Channel B).
REQUEST TO SEND (CHANNEL B): General purpose
output, generally used to signal that Channel B is ready
to send 'Clata. When the RTS bit is reset in asynchronous
mode, the signal does not go inactive (High) until the
. transmitter is empty.
SYNDETe or RTSe selection is done by WR2; D7.
(Channel A).
2-113
inter
8274
Table 1. Pin Description (Continued)
Symbol
,
Pin
No.
RDYe/
TxDRQA
11
DB7
12
DB6
13
DB5
14
DB4
15
DB3
16
DB2'
17
DB1
18
Type
Name and Function
0
READY (CHANNEL B)/TRANSMITTER DMA
REQUEST (CHANNEL A): In mode 0 this pin is RDYe
and is used to synchronize data transfers between the
processor and the MPSC (Channel B). In modes 1 and 2
this pin is TxDRQA and is used by the Channel A
transmitter to request a DMA transfer.
,
DBO
19
GND
20
I/O
DATA BUS: The Data Bus lines are bidirectional three
state lines which interface with the system's Data Bus.
GROUND.
+ 5V Supply
Vee
-40
rnA
39
I
CLEAR TO SEND (CHANNEL A): This interface signal
is supplied by the Modem in response to an active RTS
signal. CTS indicates that the data terminal/computer
equipment is permitted to transmit data. In addition, if
the auto enable control is set, the 8274 will not transmit
data bytes until C'i'S has been activated.
RTSA
38
0
REQUEST TO SEND (CHANNEL A): General purpose
output commonly used to signal that Channel A is ready
to send data. When the RTS bit is reset in asynchronous
mode, the signal does not go inactive (High) until the
transmitter is empty.
TxDA
37
0
TRANSMIT DATA (CHANNEL A): This pin transmits
serial data to the commmunications channE11 (Channel
A).
TxCA
36
I
TRANSMIT CLOCK (CHANNEL A): The serial data are
shifted out from the Transmit Data output (TxDA> on the
falling edge of the Transmit Clock.
R'XCA
35
I
RECEIVE CLOCK (CHANNEL A): The serial data are
shifted into the Receive Data input (RxDA) on the rising
edge of the Receive Clock.
RxDA
34
I
RECEIVE DATA (CHANNEL A): This pin receives serial
data from the communications channel (Channel A).
SYNDETA'
33
I/O
SYNCHRONOUS DETECTION (CHANNEL A): This pin
is used in byte synchronous mode as either an internal
sync detect (output) or as a means to force external
synchronization (input). In SDLC mode, this pin is an
output indicating flag detection. In asynchronous mode it
is a general purpose input (Channel A).
-.
POWER:
2-114
inter
8274
Table 1. Pin Description (Continued)
Pin
No.
Type
RDYAI
RxDRQA
32
0
READY: In mode 0 this pin is RDYA and is used to
synchronize data transfers between the processor and
the MPSC (Channel A). In modes 1 and 2 this pin is
RxDRQA and is used by the channel A receiver to
request a DMA transfer.
DTRA
31
0
DATA TERMINAL READY (CHANNEL A): General
purpose output.
IPOI
TxDRQB
30
0
INTERRUPT PRIORITY OUT/TRANSMITTER DMA
REQUEST (CHANNEL B): In modes 0 and 1, this pin is
Interrupt Priority Out. It is used to establish a hardware
interrupt priority scheme with IPI. It is low only if IPI is low
and the controlling processor is not servicing an
interrupt from this MPSC. In mode 2 it is TxDRQB and is
used to request a DMA cycle for a transmit operation
(Channel B).
IPII
RxDRQB
29
1/0
INTERRUPT PRIORITY IN/RECEIVER DMA
REQUEST (CHANNEL B): In modes 0 and 1, iPi is
Interrupt Priority In. A low on iPi means that no higher
priority device is being serviced by the controlling
processor's interrupt service routine. In mode 2 this pin
is RxDRQB and is used to request a DMA cycle for a
receive operation (Channel B).
INT
28
0
INTERRUPT: The interrupt Signal indicates that the
highest priority internal interrupt requires service (open
collector). Priority can be resolved via an external
interrupt controller or a daisy-chain scheme.
INTA
27
I
INTERRUPT ACKNOWLEDGE: This Interrupt
Acknowledge signal allows the highest priority
interrupting device to generate an interrupt vector. This
pin must be pulled high (inactive) in non-vector mode.
DTRB
26
0
DATA TERMINAL READY (CHANNEL B): This is a
general purpose output.
Ao
25
I
ADDRESS: This line selects Channel A or B during data
or command transfers. A low selects Channel A.
A1
24
I
ADDRESS: This line selects between data or command
information transfer. A low means data.
CS
23
I
CHIP SELECT: This signal selects the MSPC and
enables reading from or writing into registers.
RD
22
I
READ: Read controls a data byte or status byte transfer
from the MPSC to the CPU.
WR
21
I
WRITE: Write controls transfer of data or commands to
the MPSC.
Symbol
Name and Function
2-115
8274
ASYNCHRONOUS OPERATIONS
RESET
When the 8274 RESET line isactivitated, both
MPSC channels enter the idle state. The serial output lines are forced to the marking state (high) and
the modem interface signals (RTS, OTR) are forced
. high. In addition, the pointers registers are set to
zero.
GENERAL DESCRIPTION
The Intel 8274 Multi-Protocol Serial Controller is a
microcomputer peripheral device which supports
Asynchronous, Byte Synchronous (Monosync, .IBM
Bisync), and Bit Synchronous (ISO's HOLC, IBM's
SOLC) protocols. This controller's flexible architecture allows easy implementation of many variations
of these three protocols with low software and hardware overhead.
The Multi-Protocol Serial controller (MPSC) implements two independent serial receiver/transmitter
channels.
The MPSC supports several microprocessor interface options: Polled, Wait, Interrupt driven and OMA
driven. The MPSC is designed to support INTEL's
MCS-85 and iAPX 86, 88, 186, 188 families.
FUNCTIONAL DESCRIPTION
Additional information on Asynchronous and Synchronous Communications with the 8274 is available
respectively in the Applications Notes AP 134 and
AP 145.
TransmitterIReceiver Initialization
(See Detailed Command Description Section for
complete information)
In order to operate in asynchronous mode, each
MPSC channel must be initialized with the following
information:
1. Transmit/Receive Clock Rate. This parameter is
specified by bits 6 and 7 of WR4. The clock rate
may be set to 1, 16, 32, or 64 times the data-link
bit rate. If the Xl clock mode is selected, the bit
synchronization must be accomplished externally.
2. Number of Stop Bits. This parameter is specified
by bits 2 and 3 of WR4. The number of stop bits
may be set to 1, 1%, or 2.
3. Parity Selection. Parity may be set for odd, even,
or no parity by bits 0 and 1 of WR4.
4. Receiver Character Length. This parameter sets
the length of received characters to 5, 6, 7, or 8
bits. This parameter is specified by bits 6 and 7 of
WR3.
5. Receiver Enable. The serial-channel receiver operation may be enabled or disabled by setting or
clearing bit 0 of WR3.
6. Transmitter Character Length. This parameter
sets the length of transmitted characters to 5, 6,
7, or 8 bits. This parameter is specified by bits 5
and 6 of WR5. Characters of less than 5 bits in
length may be transmitted by setting the transmitted length to five bits (set bits 5 and 6 of WR5 to
0).
The MPSC then determines the actual number of
bits to be transmitted from the character data
byte. The bits to be transmitted must be right justified in the data byte, the next three bits must be
set to 0 and all remaining bits must be set to 1.
The following table illustrates the data formats for
transmission of 1 to 5 bits of data.
Command, parameter, and status information is
stored in 21 registers within the MPSC (8 writable
registers for each channel., 2 readable registers for
Channel A and 3 readable registers for Channel B).
In the following discussion, the writable registers will
be referred to as WRO through WR7 and the readable registers will be referred to as RRO through
RR2.
Byte Written
07
1
1
1
1
0
This section of the data sheet describes how the
Asynchronous and Synchronous protocols are implemented in the MPSC. It describes general considerations, transmit operation, and receive operation
. for Asynchronous, Byte Synchronous, and Bit Synchronous protocols.
06
1
1
1
0
0
05
1
1
0
0
0
04
1
0
0
0
c
03
0
0
0
c
c
02
0
0
c
c
c
Number of
Bits Transmitted·
01 DO (Character Length)
0 c
1
c c
2
3
c c
c c
4
c c
5
7. Transmitter Enable. The serial channel transmitter operation may be enabled or disabled by setting or clearing bit 3 of WR5.
8. Interrupt Mode. Specified by bits 3 and 4 of WR1.
2-116
inter
8274
For data transmission via a modem or RS-232-C interface, the following information must also be specified:
1. The Request To Send (RTS) (WR5; 01) and Data
Terminal Ready (OTR) (WR5; 07) bits must be set
along with the Transmit Enable bit (WR5; 03).
The Transmit Buffer Empty bit (RRO; 02) is set by
the MPSC when the data byte from the buffer is
loaded in the transmit shift register. Data should be
written to the MPSC only when the Tx buffer becomes empty to prevent overwriting.
2. Auto Enable may be set to allow the MPSC to
automatically enable the channel transmitter
when the clear-to-send signal is active and to automatically enable the receiver when the carrierdetect signal is active. However, the Transmit Enable bit (WR3; 03) and Receive Enable bit (WR3;
01) must be set in order to use the Auto Enable .
mode. Auto Enable is controlled by bit 5 of W'3!.
Receive
fc.
-
When loading Initialization parameters into the
MPSC, WR4 information must be written before the
WR1,, WR3,
WR5 parameters ' commands.
,
During initialization, it is desirable to guarantee that
the external/ status latches reflect the latest interface information. Since up to two state changes are
internally stored by the MPSC, at least two Reset
External/Status Interrupt commands must be issued. This procedure is most easily accomplished by
simply issuing this reset command whenever the
pointer register is set during initialization.
An MPSC initialization procedure (MPSC$RX$INIT) ,
for asynchronous communication is listed in Intel
Application Note AP 134.
TRANSMIT
The transmit function begins when the Transmit Enable bit (WR5; 03) is set. The MPSC automatically
adds the start bit, the programmed parity bit (odd,
even or no parity) and the programmed number of
stop bits (1, 1.5 or 2 bits) to the data character being
transmitted. 1.5 stop bits option must be used with
X16, X32 or X64 clock options only. The data character is transmitted least significant bit first.
The serial data are shifted out from the Transmit
Data (TxO) output on the falling edge of the Transmit
Clock (TxC) input at a rate programmable to 1, Y16th,
Y32nd, or %4th of the clock rate supplied to the TxC
input.
The TxO output is held high when the transmitter
has no data to send, unless, under program control,
the Send Break (WR5; 04) command is issued to
hold the TxO low.
If the External/Status Interrupt bit (WA1; ~O) is set,
the status of CD, CTS and SYNOET are monitored
and, if any changes occur for a period of time greater than the minimu'!!.!e.ecified pulse width, an interrupt is generated. CTS is usually monitored using
this interrupt feature (e.g., Auto Enable option).
The receive function begins when the Receive Enable (WR3; ~O) bit is set. If the Auto Enable (WR3;
05) option is selected, then Carrier Detect (CD)
must also be. low. A valid start bit is detected if a low
persists for at least % bit time on the Receive Data
(RxO) input.
The data is sampled at mid-bit time, on the rising
edge of RxC, until the entire character is assembled.
The receiver inserts 1's when a character is less
than 8 bits. If parity (WR4; DO) is enabled and the
character is less than 8 bits the parity bit is not
stripped from the character.
Error Reporting
The receiver also stores error status for each of the
3 data characters in the data buffer. Three error conditions may be encountered during data reception in
the asynchronous mode:
1. Parity. If parity bits are computed and transmitted
with each character and the MPSC is set to check
parity (bit 0 in WR4 is set), a parity error will occur
whenever the number of "1" bits within the character (including the parity bit) does not match the
odd/even setting of the parity check flag (bit 1 in
WR4). When a parity error is detected, the parity
error flag (RR1; 04) is set and remains set until it
is reset by the Error Reset command (WRO; 05,
04,03).
2. Framlng_ A framing error will occur if a stop bit is
not detected immediately following the parity bit (if
parity checking is enabled) or immediately following the most"significant data bit (if parity checking
is not enabled). When a Framing Error is detected, the Framing Error bit (RR1; 06) is set and
remains set until reset by the Error Reset Command (WRO; 05, 04, 03). The detection of a
Framing Error adds an additional % bit time to the
character time so the Framing Error is not interpreted as a new start bit.
3. Overrun. If the CPU fails to read a data character
while more than three characters have been received, the Receive bverrun bit (RR1; 05) is set.
When this occurs, the fourth character assembled
replaces the third character in the receive buffers.
Only the overwritten character is flagged with the
Receive Overrun bit. The Receive Overrun bit
(RR1; 05) is reset by the Error Reset command
(WRO; 05, 04, 03).
2-117
inter
8274
ternal/Status interrupts (WRO; OS, 04, 03) will
clear Break Detect and Carrier Detect bits if they
are set.
External/Status Latches
The MPSC' continuously monitors the state of five
external/status conditions:
1. CTS-clear-to-send input pin'.
2. CD-<:arrier-detect input pin.
3. SYNOET-sync-detect input pin. This pin may be
used as a general-purpose input in the asynchronous communication mode.
4. BREAK-a break condition (series of space bits
on the receiver input pin).
S. TxUNOERRUN/EOM-Transmitter Underrun/
End of Message.
A change of state in any of these monitored conditions will cause the associated status bit in RRO
to be latched (and optionally cause an interrupt).
If the Externa:I/Status Interrupt bit (WR1; DO) is
enabled, Break Detect (RRO; 07) and Carrier Detect (RRO; 03) will cause an interrupt. Reset Ex-
Command, parameter, and status information is
stored in 21 registers within the MPSC (8 writable
registers for each channel, 2 readable registers for
Channel A ahd 3 readable registers for Channel B).
They are all accessed via the command ports.
An internal pointer register selects which of the command or status registers will be read or written during a commmand/status access of an MPSC channel.
After reset, the contents of the pointer registers are
zero. The first write to a command register causes
the data to be loaded into Write Register 0 (WRO).
The three least significant bits of WRO are loaded
into the Command/Status Pointer. The next read or
write operation accesses the read or write register
selected by the pointer. The pointer is reset after the
read or write operation is completed.
COMMAND/STATUS
POINTER
j
________-----JI I
1 I·
L.-_ _ _ _ _..,......_ _ _--..I
R
R
MSB
A
2'
1
LSB
R••d Aeglsten
'--____--'1
'ChanneI B only
LSB.
170102-3
Figure 3: Command/Status Register Architecture (each serial channel)
2-118
intJ
8274
Asynchronous Mode Register Setup
07
06
00 Rx 5 b/char
01 Rx 7 b/char
10 Tx6 b/char
11 Rx 8 b/char
WR3
00
01
10
11
WR4
WR5
OTR
05
04
03
02
AUTO
ENABLE
0
0
0
0
0
0
EVEN/
X1 Clock
X16 Clock
X32 Clock
X64Clock
00
01
10
11
.01
Tx S; 5 b/ char
Tx 7 b/char
Tx 6 b/char
Tx8 b/char
01 1 STOP BIT
10 11jzSTOPBITS
11 2 STOP BITS
SEND
BREAK
SYNCHRONOUS OPERATIONMONOSYNC, BISYNC
Tx
ENABLE
0
ODD
PARITY
RTS
00
Rx
ENABLE
PARITY
ENABLE
0
Transmit Set-Up-Monosync, Bisync
General
The MPSC must be initialized with the following parameters: odd or even parity (WR4; 01, ~O), X1
clock mode (WR4; 07, 06),8- or 16-bit sync character (WR4; 05, 04), CRC polynomial (WR5; 02),
Transmitter Enable (WR5; 03), interrupt modes
(WR1, WR2), transmit character length (WR5; 06,
05) and receive character length (WR3; 07, 06).
WR4 parameters must be written before WR 1, WR3,
WR5, WR6 and WR7.
The data is transmitted on the falling edge of the
Transmit Clock, (TxC) and is received on the rising
edge of Receive Clock (RxC). The X1 clock is used
for both transmit and receive operations for all three
sync modes: Mono, Bi and External.
Transmit data is held high after channel reset, or if
the transmitter is not enabled. A break may be programmed to generate a spacir;lg .line that begins as
soon as the Send Break (WR5; 04) bit is set. With
the transmitter fully initialized and enabled, the default condition is continuous transmission of the 8- or
16-bit sync character.
Using interrupts for data transfer requires that the
Transmit InterruptlOMA Enable bit (WR1; 01) be
set. An interrupt is generated each time the transmit
buffer becomes empty. The interrupt can be satisfied either by writing another character into the
transmitter or by resetting the Transmitter Interrupti
OMA Pending latch >,yith a Reset Transmitter Inter-
Synchronous Mode Register Setup-Monosync,Bisync
07
WR3
WR4
WR5
06
00 Rx 5 b/char
01 Rx 7 b/char
10 Tx 6 b/char
11 Rx8 b/char
O·
OTR
0
00
01
10
11
05
04
03
02
01
00
AUTO
ENABLE
ENTER
HUNT
MODE
RxCRC
ENABLE
0
SYNC
CHAR
LOAD
INHIBIT
Rx·
ENABLE
0
0
EVEN/
ODD
PARITY
PARITY
ENABLE
Tx
ENABLE
1
(SELECTS
CRC-16)
RTS
TxCRC
ENABLE
00
01
11
8 bit Sync
16 bit Sync
Ext Sync
Tx S; 5 b/ char
Tx 7 b/char
Tx6 b/char
Tx8 b/char
SEND
BREAK
2-119
inter
8274
rupt/OMA Pending Command (WRO; 05, 0.4, 03). If
nothing more is written into the transmitter, there
can be no further Transmit Buffer Empty interrupt,
but this situation does cause a Transmit Underrun
condition (RRO; 06).
Oata Transfers using the ROY signal are for software controlled data transfers such as block moves.
ROY tells the CPU, that the MPSC is not ready to
accept/provide data and that the CPU must extend
the output/input cycle. OMA data transfers use the
TxORQ AlB signals which indicate that the transmit
buffer is empty, and that the MPSC is ready to accept the next data character. If the data character is
not loaded into the MPSC by the time the transmit
shift register is empty, the MPSC enters the Transmit Underrun condition.
The MPSC has two programmable options for solving the transmit underrun condition: it can' insert
sync characters, or it can send the CRC characters
generated so far, followed by sync characters. Following a chip or channel reset, the Transmit Underrun/EOM status bit (RRO; 06) is in a set condition
allowing the insertion of sync characters when there
is no ,data to send. The CRC is not calculated on
these automatically inserted sync characters. When
the CPU detects the end message, a Reset Transmit
Underrun/EOM command can be issued. This allows CRC to be sent when the transmitter has no
data to send.
In the case of sync insertion, an interrupt is generated only after the first automatically inserted sync
character has been loaded in the Transmit Shift
Register. The status register indicates the Transmit
Underrun/EOM bit and the Transmit Buffer Empty
bit are set.
In the case of CRC insertion, the Transmit Underrun/EOM bit is set and the Transmit Buffer Empty bit
is reset while CRC is being sent. When CRC has
been completely sent, the Transmit Buffer Empty
, status bit is set and an interrupt is generated to indicate to the CPU that another message can begin
(this interrupt occurs because CRC has been sent
,and sync has been loaded into the Tx Shift Register). If no more messages are to be sent, the program can terminate transmission by, resetting RTS,
and disabling the transmitter (WR5; 03).
Bisync CRC Generation. Setting the Tra,nsmit CRC
enable bit (WR5; 00) indicates CRC accumulation
when the program sends the first data character to
. the MP$C. Although the MPSC automatically transmits up to two sync characters (16 oit sync), it is
wise to send a few more sync characters ahead of
the message (before enabling Transmit CRC) to ensure synchronization at the receiving end.
,The Transmit CRC Enable bit can be changed on
the fly any time in the message to include or exclude
a particular data character from CRC accumulation.
The Transmit CRC Enable bit should be in the desired state when the data character is loaded into
the transmit shift register. To ensure this bit in the
proper state, the Transmit CRC Enable bit must be
issued before sending the data character to the
MPSC.
Transmit Transparent Mode. Transparent mode
(Bisync protocol) operation is made possible by the
ability to change Transmit CRC Enable on the fly
and by the additional capability of inserting 16 bit
sync characters. Exclusion of OLE characters from
CRC calculation can be achieved by disabling CRC
calculation immediately preceding the OLE character transfer to the MPSC.
In the transmit mode, the transmitter always sends
the programmed number of sync bits (8 or 16) (WR4;
05, 04). When in the Monosync mode, the transmitter sends from WR6 and the receiver compares
against WR7. One or two CRC polynomials, CRC 16
or SOLC, may be used with synchronous modes. In
the transmit initialization process, the CRC generator is initialized by setting the Reset Transmit CRC
Generator command (WRO; 07, 06).
The External/Status interrupt (WR1; ogtgode can
be used to monitor the status of the
input as
well as the Transmit Underrun/EOM latch. Optionally, the Auto Enable (WR3; 05) feature can be used
to enable the transmitter when CTS is active. The
first data transfer to the MPSC can begin when the
External/Status interrupt (CTS (RRO; 05) status bit
set) occurs following the Transmit Enable command
(WR5; 03).
Receive
After a channel reset, the receiver is in the Hunt
phase, during which the MPSC looks for character
synchronization. The Hunt begins only when the receiver is enabled and data transfer begins only when
character synchronization has been achieved. If
character synchronization is lost, the hunt phase can
be re-entered by writing the Enter Hunt Phase (WR3;
04) bit. The assembly of received data continues
until the MPSC is reset or until the receiver is disabled (by command or by CD while in the Auto Enables mode) or until the CPU sets the Enter Hunt
Phase bit. Under' program control, all the leading
sync characters of the message can be inhibited
from loading the receive buffers by setting the Sync
Character Load Inhibit (WR3; 01) bit. After character
synchronization is achieved the assembled characters are transferred to the receive data FIFO. After
2-120
inter
8274
receiving the first data character, the Sync Character Load Inhibit bit should be reset to zero so that all
characters are received, including the sync characters. This is important because the received CRC
may look like a sync character and not get received.
Data may be transferred with or without interrupts.
Transferring data without interrupts is used for a
purely polled operation or for off-line conditions.
There are two interrupt modes available for data
transfer: Interrupt on First Character Only and Interrupt on Every Character.
Interrupt on First Character Only mode is normally
used to start a polling loop, a block transfer sequence using ROY to synchronize the CPU to the
incoming data rate, or a OMA transfer using the
RxORQ signal. The MPSC interrupts on the first
character and thereafter only interrupts after a Special Receive Condition is detected. This mode can
be reinitialized using the Enable Interrupt On Next
Receive Character (WRO; OS, 04, OS) command
which allows the next character received to generate an interrupt. Parity Errors do not cause inter·
rupts, but End of Frame (SOLC operation) and Receive Overrun do cause interrupts in this mode. If
the external status interrupts (WR1; DO) are enabled
an interrupt may be generated any time the CD
changes state.
modes. The Special Receive Condition interrupt is
caused by the Receive Overrun (RR1; 05) error condition. The error status reflects an error in the current word in the receive buffer, in addition to any
Parity or Overrun errors since the last Error Reset
(WRO; OS, 04, OS). The Receive Overrun and Parity
error status bits are latched and can only be reset by
the Error Reset (WRO; OS, 04, 03) command. .
The CRC check result may be obtained by checking
for CRC bit (RR1; OS). This bit gives the valid CRC
result 1S bit times after the second CRC byte has
been read from the MPSC. After reading the second
CRC byte, the user software must read two more
characters (may be sync characters) before checking for CRC result in RR1. Also for proper CRC computation by the receiver, the user software must reset the Receive CRC Checker (WRO; 07, OS) after
receiving the first valid data character. The receive
CRC Enable bit (WR3; 03) may also be enabled at
this time.
SYNCHRONOUS OPERATION-SOLC
General
Interr~pt On Every Character mode generates an interrupt whenever a character enters the receive
buffer. Errors and Special Receive Conditions generate a special vector if the Status Affects Vector
(WR1 B; 02) is selected. Also the Parity Error may be
programmed (WR1; 04, OS) not to generate the special vector while in the Interrupt On Every Character
mode.
Like the other synct!ronous operations the SOLC
mode must be initialized with the following parameters: SOLC mode (WR4; OS, 04), SOLC polynomial
(WR5; 02), Request to Send, Data Termin'al Ready,
transmit character length (WR5; OS, 05), interrupt
modes (WR1; WR2), Transmit Enable (WR5; 03),
Receive Enable (WRS; ~O), Auto Enable (WRS; 05)
and External/Status Interrupt (WR1; DO). WR4.parameters must be written before WR1, WRS, WR5,
WRS and WR7.
The Special Receive Condition interrupt can only occur while in the Receive Interrupt On First Character
Only or the Interrupt On Every Receive Character
The Interrupt modes for SOLC operation are similar
to those discussed previously in the synchronous
operations section.
Synchronous Mode Register Setup-SOLC/HOLC
07
WR3
WR4 .
WR5
D6
00 Rx 5 b/char
01 Rx 7 b/char
1.0 Rx S b/char
11 Rx 8 b/char
0
OTR
0
05
04
03
02
01
00
AUTO
ENABLES
ENTER
HUNT
MODE
Rx
CRC
ENABLE
ADDRESS
SEARCH
MODE
0
Rx
0
0
0
0
Tx
ENABLE
0
(SELECTS
SOLC/HOLC
CRC)
RTS
Tx
CRC
ENABLE
1
0
(SELECTS SOLCI
HOLCMOOE)
00 Tx ~ 5 b/char
01 Tx 7 b/char
10 Tx S b/char
11 Tx 8 b/char
SEND
BREAK
2-121
intJ
8274
Transmit
After a channel reset, the MPSC begins sending
SOLC flags.
Following the flags in an SOLC operation the 8-bit
address field, control field and information field may
be sent to the MPSC by the microprocessor. The
MPSC transmits the Frame Check Sequence using
the Transmit Underrun feature. The MPSC automatically inserts a zero after every sequence of 5 consecutive 1's except when transmitting Flags or
Aborts.
SOLC-like protocols do not have provision for fill
characters within a message. The MPSC therefore
automatically terminates an SOLC frame when the
transmit data buffer and output shift register have no
more bits to send. It does this by sending the two
bytes of CRC and then one or more flags. This allows very high-speed transmissions under OMA or
CPU control without requiring the CPU to respond
quickly to the end-of-message situation.
The MPSC can be programmed to receive all frames
or it can be programmed to. the Address Search
Mode. In the Address Search Mode, only frames
with addresses that match the value in WR6 or the
global address (OFFH) are received by the MPSC.
Extended address recognition must be done by the
microprocessor software.
The control and information fields are received as
data.
SOLC/HOLC CRC calculation does not ha.ve an 8bit delay, since all characters are included in the calculation, unlike Byte Synchronous Protocols.
Reception of an abort sequence (7 or more 1's) will
cause the Break/Abort bit (RRO; 07) to. be set and
will cause an External/Status interrupt, if enabled.
After the Reset External/Status Interrupts Command has been issued, a second interrupt will occur
at the end of the abort sequehce.
MPSC
After a reset, the Transmit Underrun/EOM status bit
is in the set state and prevents the insertion of CRC
characters during the time there is no data to send.
Flag characters are sent. The MPSC begins to send
the frame when data is written into the transmit buffer. Between the time the first data byte is written,
and the end of the message,· the Reset Transmit
Underrun/EOM (WRO; 07, 06) command must be
issued. The Transmit Underrun/EOM status bit
(RRO; 06) is in the reset state at the end of the
message which automatically sends the CRC characters.
Detailed Command/Status Description
GENERAL
The MPSC supports an extremely flexible set of serial and system interface modes.
The system interface to the CPU consists of 8 ports
or buffers:
CS
The MPSC may be programmed to issue a Send
Abort command (WRO; 05, 04, 03). This command
causes at least eight 1's but less than fourteen 1's to
be sent before the line reverts to continuous flags.
0
0
0
0
A1 Ao Read Operation
0
0
1 0
0 1
1 1
1 X X
Ch. A Data Read
Ch. A Status Read
Ch. B Data Read
Ch. B Status Read
High Impedance
Write Operation
Ch. A Data Write
Ch. A Command/Parameter
Ch. B Data Write
Ch. B Command/Parameter
High Impedance
Receive
After initialization, the MPSC enters the Hunt phase,
and remains in the Hunt phase until the first Flag is
received. The MPSC never again enters the Hunt
phase unless the microprocessor writes the Enter
Hunt command. The MPSC will also detect flags
separated by a single zero. For example, the bit pattern 011111101111110 will be detected as two
flags.
Data buffers are addressed by A1 = 0, and Command ports are addressed by A1 = 1.
COMMAND/STATUS DESCRIPTION
The following command and status bytes are used
during initialization and execution phases of operation. All Command/Status operations on the two
channels are identical, and independent, except
where noted.
2-122
inter
8274
Command 2
Reset External/Status Interruptsresets the latched status bits of RRO
and re-enables them, allowing interrupts to occur again.
Command 3
Channel Reset-resets the Latched
Status bits of RRO, the interrupt prioritization logic and all control registers
for the channel. Four extra system
clock cycles should be allowed for
MPSC reset time before any additional commands or controls are written
into the channel.
Command 4
Enable Interrupt on Next Receive
Character-if the Interrupt on First
Receive Character mode is selected,
this command reactivates that mode
after each complete message is received to prepare the MPSC for the
next message.
Command 5
Reset Transmitter InterruptiOMA
Pending-if The Transmit Interrupti
OMA Enable mode is selected, the
MPSC automatically interrupts or requests OMA data transfer when the
transmit buffer becomes empty.
When there are no more characters
to be sent, issuing this command prevents further transmitter interrupts or
OMA requests until the next character has been completely sent.
Command 6
Error Reset-error latches, Parity
and Overrun errors in RR1 are reset.
Command 7
End of Interrupt-resets the interrupt-in-service latch of the highestpriority internal device under service.
07, 06
CRC Reset Code.
NUll-has no effect.
WRO
00
01
02, 01, OO-Command/Status Register Pointer bits
determine which write-register the next byte is to be
written into, or which read-register the next byte is to
be read from. After reset, the first byte written into
either channel goes into WRO. Following a read or
write to any register (except WRO) the pointer will
point to WRO.
10
Reset Transmit CRC Generator-resets the CRC generator to D's. If in
SOLC mode the CRC generator's initialized to all 1's.
11
Reset Tx Underrun/End of Message
Latch.
Detailed Register Description
Write Register 0 (WRO):
COMMAND/STATUS POINTER
REGISTER POINTER
( 0
o1
NULL CODE
SEND ABORT (SDLCI
RESET EXT/STATUS INTERRUPTS
CHANNEL RESET
ENABLE INTERRUPT ON NEXT RlI
CHARACTER
RESET TIIINT/DMA PENDING
ERROR RESET
END OF INTERRUPT'
'Chlnnel A only
roo 1
NULL CODE
RESET Rx CRC CHECKER
RESET TIl CRC GENERATOR
RESET TIl UNDERRUN/EOM LATCH
170102-4
05, 04, 03-Command bits determine which of the
basic seven commands are to be performed.
Command 0
NUll-has no effect.
Command 1
Send Abort-causes the generation
of eight to thirteen 1's when in the
SOLC mode.
2-123
Reset Receive CRC Checker-resets the CRC checker to D's. If in
SOLC mode the CRC checker is initialized to all 1's.
inter
8274
04,03
0
Write Register 1 (WR1):
o
o
LSB
MSB
o
\D7\D8\ DS\ D4: D3\ D2\ bl\DO \
l
'-----'"
EXT INTERRUPT
ENABLE
TxINTERRUPTI
DMAENABLE
STATUS AFFECTS
VECTOR(CHBONLY)
(NULL CODE CH A)
05
1 VARIABLE
VECTOR
0" FIXED
VECTOR
~
0
0
RxiNT/DMA DISABLE
0
1
RxlNT ON FIRST CHAR OR SPECIAL
CONDITION
1
0
INT ON ALL Rx CHAR (PARITY AFFECTS
VECTOR)OR SPECIAL CONDITION
1
1
INT ON ALL Rx CHAR (PARITY DOES
NOT AFFECT VECTOR) OR SPECIAL
CONDITION
1 " WAIT ON Rx. 0 - WAIT ON Tx
06
MUST BE ZERO
WAIT ENABLE 1
ENABLE. 0
07
DISABLE
WR2
01, DO
170102-5
WR1
DO
01
02
External/Statuslnterrupt Enable-allows interrupt to occur as the result
of transitions on the CO, CTS or
SYNOET inputs. Also allows interrupts as the result of a Breakl Abort
detection and termination, or at the
beginning of CRC, or sync character
transmission when the Transmit Underrun/EOM latch becomes set.
Transmitter InterruptlOMA Enableallows the MPSC to interrupt or request a OMA transfer when the
transr:nitter buffer becomes empty.
Status Affects vector-(WR1, 02 active in channel B only.) If this bit is
not set, then the fixed vector, programmed in WR2, is returned from
an interrupt acknowledge sequence.
If the bit if set then the vector returned from an interrupt acknowledge is variable as shown in the Interrupt Vector Table.
o
0
o
o
02
o
05, 04, 03
2-124
Receive Interrupt Mode.
Receive Interrupts/OMA Disabled.
Receive Interrupt on First Character
Only or Special Condition.
Interrupt on All Receive Characters
or Special Condition (Parity Error is a
Special Receive Condition).
Interrupt on All Receive Characters
or Special Condition (Parity Error is
not a Special Receive Condition). .
Wait on Receive/Transmit-when
the following conditions are met the
ROY pin is activated, otherwise it is
held in the High-Z state. (Conditions:
Interrupt Enabled Mode, Wait Enabled, CS = 0, AO = 0/1, and A1 =
0). The ROY pin is pulled low when
the transmitter buffer is full or the receiver buffer is empty and it is driven
High when the transmitter buffer is
empty or the receiver buffer is full.
The ROYA and ROYs may be wired
OR connected since only one signal
is active at anyone time while the
other is in the High Z state.
Must be Zero.
Wait Enable-enables the wait function.
Channel A Only
System Configuration-These specify the data transfer from MPSC channels to the CPU, either interrupt or
OMA based.
Channel A and Channel B both use
interrupts.
Channel A uses OMA, Channel B
uses interrupts.
.
Channel A and Channel B both use
OMA.
Illegal Code.
Priority-this bit specifies the relative
priorities of the internal MPSC interruptiOMA sources.
(Highest) RxA, TxA, RxB, TxB, ExTA,
ExTB (Lowest).
(Highest) RxA, RxB, TxA, TxB, ExTA,
ExTB (Lowest).
Interrupt Code-specifies the behav, ior of the MPSC when it receives an
interrupt acknowledge sequence
from the CPU. (See Interrupt Vector
Mode Table.)
inter
o x x
1 0 0
8274
Non-vectored interrupts-intended
for use with external DMA CONTROLLER. The Data Bus remains in
a high impedance state during INTA
sequences.
8085 Vector Mode 1-intended for
use as the primary MPSC in a daisy
chained priority structure. (See System Interface section).
1 0 1
8085 Vector Mode 2-intended for
use as any secondary MPSC in a daisy chained priority structure. (See
System Interface section).
8086/88 Vector Mode-intended for
use as either a primary or secondary
in a daisy chained priority structure.
(See System Interface section).
Must be zero.
zero Pin 10 = RTSB
one Pin 10 = SYNDETB
1 1 0
os
07
Write Register 2 (WR2): Channel A Only
o
o
o
BOTH INTERRUPT
A DMA. B INT
o
BOTHDMA
ILLEGAL
o
0
1
PRIORITY RxA
RxB
TxA
TxB
EXTA'
EXTB'
o
PRIORITY RxA
TxA
RxB
TxB
EXTA'
EXTS-
8085 MODE 1
o
8085 MODE 2
~~
ILLEGAL
1
o
VECTORED INTERRUPT
NO
VECTORED INTERRUPT
MUST BE ZERO
1 PIN 10
o
PIN 10
SYNDET B
RTS B
170102-6
NOTE:·
'External Status Interrupt only if EXT Interrupt Enable (WR1; DO) is set.
2·125
inter
8274
/Th~ following
\, '. D.
D4
'Cf" '-~"0
1
table'(jescribesthe MPSC's response to an interrupt acknowledge sequence:
D3
~
MODE
INTA
Data Bus
"
DO
D7
High Impedance
.' 5(-'"
X
Non-vectored
AnylNTA
85 Mode 1
1
V7
1
V6
0
0
1st INTA
2nd INTA
3rd INTA
0
0
Vs
V4*
1
V3'
1
V2*
V1
1
VO
0
0
0
0
0
0
0
0
1
1
0
High Impedance
High Impedance
0
1
1
0
1
0
1
0
0
1
85 Mode 1
1st INTA
2nd INTA
3rd INTA
1
1
0
0
86 Mode
1st INTA
2nd INTA
High Impedance
V5
V7
V6
V4
V3
V2*
V1*
VO'
1
0
1
0
85 Mode 2
1st INTA
2nd INTA
3rd INTA
High Impedance
V6
V5
V7
V4*
V3"
V2*
V1
VO
0
0
0
0
0
High Impedance
High Impedance
High Impedance
High Impedance
High Impedance
1
0
1
1
85 Mode 2
1st INTA
2nd INTA
3rd INTA
1
1
0
1
86 Mode
1st INTA
2nd INTA
0
0
0
NOTE:
'These bits are variable if the "status affects vector" mode has been programmed, (WRl S, D2).
Interrupt/DMA Mode, Pin Functions, and Priority
Ch.AWR2
Pin Functions
Int/OMA
Mode
PIP/
IPOI
ROYAl
RDYBI
RxORQA TxDRQA RxDRQB TxDRQB
Pin 32
Pin 11
Pin 29
Pin 30 Highest
D2 D1 Do CH.A CH.B
0
0
0
INT
INT
1
0
0
INT
INT
0
0
1
0
1
RDVs
IPI
IPO
Lowest
RxA,TxA,RxB,TxB,EXTA,EXTs
RxA, RxB,TxA,TxB,EXTA, EXTs
RxA, TxA (DMA)
DMA
INT
1
RDVA
Priority
RxDRQA TxDRQA
IPI
iPO
RxA(l), RxB, TxB, EXTA, EXTs (INT)
RxA, TxA (DMA)
DMA
RxA(l), RxB, TxB, EXTA, EXT s (INT)
INT
0
1
0
DMA
DMA
1
1
0
DMA
DMA
RxDRQA TxDRQA
RxDRQs TxDRQs
RxA, TxA, RxB, TxB (DMA)
RxA(l), RxB(1), EXTA, EXTs, (I NT)
RxA, RxB, TxA, TxB, (DMA)
RxA(1), RxB(1), EXTA, EXTs (INT)
NOTE:
1. Special Receive Condition
2-126
8274
Interrupt Vector Mode Table
8085 Modes
8086/88 Mode
V4
V2
V3
V1
V2
Vo
Channel
Condition
0
0
0
0
0
0
1
1
0
1
0
1
B
Tx Buffer Empty
Ext/Status Change
Rx Char. Available
Special Rx Condition
(Note 1)
1
1
1
1
0
0
1
1
0
1
0
1
A
Tx Buffer Empty
Ext/Status Change
Rx Char. Available
Special Rx Condition
(Note 1)
NOTE:
1. Special Receive Condition = Parity Error, Rx Overrun Error, Framing Error, End of Frame (SOLC).
Write Register 2 (WR2): Channel B
MSB
WR2 CHANNEL B
07 -DO
Interrupt vector-This register contains the value of the interrupt vector
placed on the data bus during interrupt acknowledge sequences.
LSB
In:w:w:~:~:~: ~:~I
Vector
170102-7
Write Register 3 (WR3):
Ax ENABLE
SYNC CHAA LOAD INHIBIT
' - - - - - ADDA SACH MODE (SDLC)
L - - - - - - - A x CAC ENABLE
' - - - - - - - - - E N T E A HUNT MODE
L - - - - - - - - - - A U T O ENABLES
Ax 5 BITS/CHAA
Ax 7 BITS/CHAA
o
Ax 6 BITS/CHAA
Ax 8 BITS/CHAA
170102-8
2-127
inter
8274
WR3
DO
01
02
03
04
05
07,OS
o
o
0
o
Write Register 4 (WR4):
Receiver Enable-A one enables the
receiver to begin. This bit should be
set only after the receiver has been
initialized.
Sync Character Load Inhibit-A one
prevents the receiver from loading
sync characters into the receive buffers. In SOLC, this bit must be zero.
Address Search Mode-If the SOLC
mode has been selected, the MPSC
will receive all frames unless this bit
is a 1. If this bit is a 1, the MPSC will
receive only frames with address
(OFFH) or the value loaded into WRS.
This bit must be zero in non-SOLC
modes.
Receive CRC Enable-A one in this
bit enables (or re-enables) CRC calculation. CRC calculation starts with
the last character placed in the Receiver. FIFO. A zero in this bit disables, but does not reset, the Receiver CRC generator.
Enter Hunt Phase-After initialization, the MPSC automatically enters
the Hunt mode. If synchronization is
lost, the Hunt phase can be re-entered by writing a one to this bit.
Auto Enable-A one written to this
bit causes,CO to be automatic enable
signal for the receiver and CTS to be
an automatic enable signal for the
transmitter. A zero written to this bit
limits the effect of CO and CTS signals to setting/resetting their corresponding bits in the status register
(RRO).
Receive Character length
Receive 5 Data bits/character
Receive 7 Data bits/character
Receive S Data bits/character
Receive 8 Data bits/character
WR4
DO
Parity-A one in this bit causes a parity bit to be added to the programmed number of data bits per
character for both the transmitted
and received character. If the MPSC
is programmed to receive 8 bits per
character, the parity bit is not transferred to the microprocessor. With
other receiver character lengths, the
parity bit is transferred to the microprocessor.
LSB
1 = ENABLE PARITY
o = DISABLE PARITY
1 = EVEN PARITY
o~
o
0
DOD PARITY
ENABLE SYNC MODES
o
1
1 STOP BIT
1
0
1.5 STOP BITS
1
1
2 STOP BITS
o
0
BBIT SYNC CHAR
o
1
18BITSYNCCHAR
1
0
SDLCIHDLCMODE(01111110IFLAG
1
1
EXTERNAL SYNC MODE
o
0
XI CLOCK
o
1
X18CLOCK
1
0
X32 CLOCK
1
1
X84CLOCK
170102-9
01
03,02
0
o
o
1
o
l'
05,04
o 0
o
o
1 1
07,OS
2-128
Even/Odd Parity-If parity is enabled, a one in this bit causes the
MPSC to transmit and expect even
parity, and a zero causes it to send
and expect odd parity.
Stop bits/sync mode
Selects synchronous modes
Async mode, 1 stop bit/character
Async mode, 1% stop bits/character
Async mode, 2 stop bits/character
Sync mode select
8-bit sync character
1S-bit sync character
SOLC mode (Flag sync)
External sync mode
Clock Mode-Selects the clock/data
rate multiplier for both the receiver
and the transmitter. 1x mode must be
selected for synchronous modes. If
the 1x mode is selected, bit synchronization must be done externally.
8274
o
o
0
Clock rate = Oata rate x 1
o
Clock rate = Oata rate x 16
Clock rate = Oata rate x 32
Clock rate = Oata rate
x
64
01
Request to Send-A one in this bit
forces the RTS pin active (low) and
zero in this bit forces the RTS pin inactive (high).
02
CRC Select-A one in this bit selects
the CRC -16 polynomial (X 16 + X15
+ X2 + 1) and a zero in this bit selects the CCITT-CRC polynomial (X16
+ X12 + X5 + 1). In SOLC mode,
CCITT-CRC must be selected.
03
Transmitter Enable-A zero in this bit
forces a marking state on the transmitter output. If this bit is set to zero
during data or sync character transmission, the marking state is entered
after the character has been sent. If
this bit is set to zero during transmission of a CRC character, sync or flag
bits are substituted for the remainder
of the CRC bits.
Send 8reak-A one in this bit forces
the transmit data low. A zero in this
bit allows normal transmitter operation.
.
Write Register S (WRS):
MSB
LSB
1 07 1 06
051041031021011001
L
CRCENABLE
_ R Ts
SO LC/CRC·18 (CAC MOOE)
1lc ENABLE
SE NOBRUK
04
0
0
1lc 5 BITS OR LESS/CHAR
0
1
1lc 7 BITS/CHAR
1
0
1lc 8 BITs/CHAR
1
1
1lc 8 BITS/CHAR
06,05
Transmit Character length
o
o
Transmit 1-~ bits/character
Transmit 7 bits/character
Transmit 6 bits/character
o
OT A
170102-10
WRS
00
0
Transmit 8 bits/character
8its to be sent must be right justified least significant
bit first, e.g.:
Transmit CRC Enable-A one in this
bit enables the transmitter CRC generator. The CRC calculation is done
when a character is moved from the
transmit buffer into the shift register.
A zero in this bit disables CRC calculations. If this bit is not set when a
transmitter underrun occurs, the CRC
will not be sent.
07 06 05 04 03 02 01 00
o 0 85 84 83 82 81 80
07 Oata Terminal Ready-When set, this bit forces
the OTR pin active (low). When reset, this bit
forces the OTR pin inactive (high).
Five or less mode allows transmission of one to five bits per character. The
microprocessor must format the data in the following way:
07
06
05
04
03
02
01
00
1
1
1
1
0
0
0
80
Sends one data bit
1
1
0
0
0
81
80
Sends two data bits
1
0
0
0
82
81
80
Sends three data bits
Sends four data bits
1
o
0
0
83
82
81
80
o
0
84
83
82
81
80
Sends five data bits
o
2-129
intJ
8274
Write Register 6 (WR6):
Write Register 7 (WR7):
MSB
LSB
MSB
I
I~:~:~:~:OO:~:~:OOI
LSB
07 : 06 : 05 : 04 : 03 : 02 : 01 : 00
\
I
I. . .,.",.
Least significant
Sync byte '(Address
in SOLC/HOLC Mode)
Sync byte (must
be 01111110 in
SOLC/HOLC Mode)
170102-11
170102-12
WR6
07-00
RRO
Sync! Address.....,This register contains the transmit sync character in
Monosync mode, the low order 8
sync bits in Bisync mode, or the Address byte in SOLC mode.
WR7
07-00
DO
01
Sync!Flag-This register contains
the receive sync character in Monosync mode, the high order 8 sync bits
in Bisync mode, or the Flag character
(01111110) in SOLC mode. WR7 is
not used in External Sync mode.
02
Receive Character Available-This
bit is set when the receive FIFO contains data and is reset when the
FIFO is empty.
Interrupt In-Service*-If an Internal
Interrupt is pending, this bit is set at
the falling edge of the second INTA
pulse of an INTA cycle. In non-vectored mode, this bit is set at the failing edge of RO after pointer 2 is
specified. This bit is reset when an
EOI command is issued and there
are no other interrupts in-service at
that time.
Transmit Buffer Empty-This bit is
set whenever the transmit buffer is
·This bit is only valid when IPI is active low and is
always zero in Channel B.
Read Register 0 (RRO):
MSB
LSB
1~1~1~1~lool~I~lool
I
Rx CHAR AVAILABLE
INT IN-SERVICE (CHA only)
Tx BUFFER EMPTY
CARRIER OETECT
SYNC/HUNT
CTS
EXTERNAL STATUS
INTERRUPT MOOE
Tx UNOERRUN/EOM
BREAK/ABORT
170102-13
2-130
inter
03
04
8274
empty except when CRC characters
are being sent in a synchronous
mode. This bit is reset when the
transmit buffer is loaded. This bit is
set after an MPSC reset.
Carrier Detect-This bit contains the
state of the CD pin at the time of the
last change of any of the External/
Status bits (CD, CTS, Sync/Hunt,
Break/ Abort, or Tx Underrun/EOM).
Any change of state of the CD pin
causes the CD bit to be latched and
causes an External/Status interrupt.
This bit indicates current state of the
CD pin immediately following a Reset
External/Status Interrupt command.
Sync/Hunt-In asynchronous modes,
the operation of this bit is similar to
the CD status bit, except that Sync/
Hunt shows the state of the SYNDET
input. Any High-to-Low transition on
the SYNDET pin sets this bit, and
causes an External/Status interrupt
(if enabled). The Reset External/
Status Interrupt command is issued
to clear the interrupt. A Low-to-High
transition clears this bit and sets the
External/Status interrupt. When the
External/Status interrupt is set by the
change in state of any other input or
condition, this bit shows the inverted
state of the SYNDET pin at time of
the change. This bit must be read immediately following a Reset External/Status Interrupt command to
read the ·current state of the
SYNDET input.
In the External Sync mode, the
Sync/Hunt oit operates in a fashion
similar to the Asynchronous mode,
except the Enter Hunt Mode control
bit enables the external sync detection logic. When the External Sync
Mode and Enter Hunt Mode bits are
set (for example, when the receiver is
enabled following a reset), the
SYNDET input must be held High by
the external logic until external character synchronization is achieved. A
High at the SYNDET input holds the
Sync/Hunt status 'in the reset condition.
When external synchronization is
achieved, SYNDET must be driven
Low on the second rising ~ of
Axe after the rising edge of RxC on
which the last bit of the sync character was received. In other words, af-
2-.131
ter the sync pattern is detected, the
external logic must wait for two full
Receive Clock cycles to activitate the
SYNDET input. Once SYNDET is
forced Low, it is good practice to
keep it Low until the CPU informs the
external sync logic that synchronization has been lost or a new message
is about to start. The High-to-Low
transition of the SYNDET output sets
the SynclHunt bit, which sets the External/Status interrupt. The CPU
must clear the interrupt by issuing the
Reset
External/Status
Interrupt
Command.
When the "'S"'y"'"N"'D""E""T input goes High
again, another External/Status interrupt is generated that must also be
cleared. The Enter Hunt Mode control bit is set whenever character synchronization is lost or the end of
message is detected. In this case,
the MPSC again looks for a High-toLow transition on the SYNDET input
and the operation repeats as explained previously.. This implies the
CPU should also inform the external
logic that character synchronization
has been lost and that the MPSC is
waiting for SYNDET· to become active.
In the Monosync and Bisync Receive
modes, the Sync/Hunt status bit is
initially set to 1 by the Enter Hunt
Mode bit. The Sync/Hunt bit is reset
when the MPSC establishes character synchronization. The High-to-Low
transition of the ~ync/Hunt bit causes an External/Status interrupt that
must be cleared by the CPU issuing
the Reset External/Status Interrupt
command. This enables the MPSC to
detect the next transition of other External/Status bits.
When the CPU detects the end of
message or that character synchronization is lost, it sets the Enter Hunt
Mode control bit, which sets the
Sync/Hvnt bit to 1. The Low-to-High
transition of the Sync/Hunt bit sets
the External/Status Interrupt, which
must also be cleared by the Reset
External/Status Interrupt Command.
Note that the SYNDET pin acts as an
output in this mode, and goes low every time a sync pattern is detected in
the data stream.
intJ
05
06
07
8274
,In the SOLC mode, the Sync/Hunt bit
is initially set by the Enter Hunt mode
bit, or when the receiver is disabled.
In any case, it is reset to 0 when the
opening flag of the first frame is detected by the MPSC. The External/
Status interrupt is also generated,
and should be handled as discussed
previously.
Unlike the" Monosync and Bisync
modes, once the Sync/Hunt bit is reset in the 'SOLC mode, it does not
need to be set when the end of message is detected. The MPSC automatically maintains synchronization.
The only way the Sync/Hunt bit can
be set again is by the Enter Hunt
Mode bit, or by disabling the receiver.
Clear to Send-This bit contains the
inverted state of the CTS pin at the
time of the last change of any of the
External/Status bits (CO, CTS, Sync/
Hunt, Break/Abort, or Tx Underrun/
EOM). Any change of state of the
CTS pin causes the CTS bit to be
latched and causes an External/
Status interrupt. This bit indicates the
inverse of the current state of the
CTS pin immediately following a Reset External/Status Interrupt command.
Transmitter Underrun/End of Messag&-:-This bit is in a set condition
following a reset (internal or external). The only command that can reset this bit is the Reset Transmit Underrun/EOM Latch command (WRO,
06 and 07). When the Transmit Underrun condition occurs, this bit is
set, which causes the External/
Status Interrupt which must be reset
by issuing a Reset External/Status
command (WRO; command 2).
Break/ Abort-In, the Asynchronous
Receive mode, this bit is set when a
Break sequence (null character plus
framing error) is detected in the data
stream. The External/Status interrupt, if enabled, is set when break is
detected. The interrupt service routine must issue the Reset External/
Status Interrupt command (WRO,
Command 2) to the break detection
logic so the Break sequence termination can be recognized.
The Break/Abort bit is reset when
the termination of the Break sequence is detected in the incoming
data stream. The termination of the
00
RR1:
03,02,01
04
05,
06
2-132
Break sequence also causes the External/Status interrupt to be set. The
Reset External/Status Interrupt command must be issued to enable the
break detection logiC to look for the
next Break sequence. A single extraneous null character is present in the
receiver after the ,termination of a
break; it should be read and discarded.
In the SOLC Receive mode, this
status bit is set by the detection of an
Abort sequence (seven or more 1's).
The External/Status interrupt is handled the same way as in the case of
a Break. The Break/Abort bit is not
used in the Synchronous Receive
mode.
All Sent-This bit is set when all
characters have been sent, in asynchronous modes. It is reset when
characters are in the transmitter, in
asynchronous modes. In synchronous modes, this bit is always set.
Residue Codes-Bit synchronous
protocols allow I-fields that are not
an integral number of characters.
Since transfers from the MPSC to the
CPU are character oriented, the residue codes provide the capability of
receiving leftover bits. Residue bits
are right justified in the last data byte
, received or first CRC byte.
Parity Error-If parity is enabled, this
bit is set for received characters
whose parity does not match the programmed sense (Even/Odd). This bit
is latched. Once an error occurs, it
remains set until the Error Reset
command is written.
Receive Overrun Error-This bit indicates that the receive FIFO has been
overloaded by the receiver. The last
character in the FIFO is overwritten
and flagged with this error. Once the
overwritten character is read, this error condition is latched until reset by
the Error Reset command. If the
MPSC is in the statu,s affects vector
mode, the overrun causes a special
Receive Condition Vector.
CRC/Framing
Error-In
async
modes, a one in this bit indicates a
receive framing error. In synchronous
modes, a one in this bit indicates that
the calculated CRC value does not
match the last two bytes received. It
can be reset by issuing an Error Reset command.
inter
8274
SDLC Residue Code Table (I Field Bits In 2 Previous Bytes)
8 bits/char
RR1
D3 D2 D1
1
7 bits/char
5 bits/char
6 bits/char
FlrstCRC Last Data FlrstCRC Last Data FlrstCRC Last Data FlrstCRC Last Data
Byte
Byte
Byte
Byte
Byte
Byte
Byte
Byte
0
0
0
3
0
0
1
0
0
4
1
1
0
0
5
0
0
1
0
6
1
0
1
0
7
2
0
1
0
0
3
0
4
0
2
0
1
0
3
0
2
0
0
5
0
4
0
3
6
0
5
4
0
1
1
0
8
0
1
1
1
1
8
-
-
-
-
-
0
0
0
2
8
1
7
0
6
0
5
Read Register 1 (RR1): (Special Receive Condition Mode)
Msa
LSB
1~1~1~1~loo:~:~lool
...
L
\
J
ALLS ENT
-
.r--------.
FIRST CRC·
BYTE
LAST DATA BYTE
000
2
8
o
0
1
0
6
o
1 0
0
4
o
1
1
0
8
1 0
0
0
3
1 0
1
0
7
1 1 0
0
5
1
1
8
1
1
RESIDUE DATA
8 BITS/CHAR. MODE
PARITY ERROR
Rx OVERRUN ERROR
CRC/FRAMING ERROR
END OF FRAME (SDLC/HDLC MODE)
170102-14
2-133
inter
07
8274
End of Frame-This bit is valid only
in SOLC mode. A one indicates that a
valid ending flag has been received.
This bit is reset either by an Error Reset command or upon' reception of .
the first character of the next frame.
Read Register 2 (RR2):
MS.
I V7 : va : V5
LSI
: V4- : V3- : V2-: V1-:
vo-I
-¥arlabl. In
..,In,.-IO_"...:UP,-t_ _ _ _ Status Affect.
Vector
Vector Mode (WFl1: D2)
POLLED OPERATION
170102-15
07-00
OMA operation is accomplished via an external OMA
controller. When the MPSC needs a data transfer, it
requests a OMA cycle from the OMA controller. The
OMA controller then takes control of the bus and
simultaneously does a read from the MPSC and a
write to memory or vice-versa.
The following section describes the many configurations of these basic types of system interface techniques for both serial channels.
1.
RR2
an interrupt acknowledge signal. When the internal
or external interrupt controller receives the acknowledge, it vectors the microprocessor to a service routine, in which the transaction occurs.
ChannelB
Interrupt Vector-Contains the interrupt vector programmed into WR2. If
the status affects vector mode is selected (WR1; 02), it contains the
modified vector (See WR2). RR2
contains the modified vector for the
highest priority interrupt pending. If
no interrupts are pending, the variable bits in the vector are set to one.
SYSTEM INTERFACE
General
The MPSC to Microprocessor System interface can
be configured in many flexible ways. The basic interface types are polled, wait, interrupt driven, or direct
memory access driven.
Polled operation is accomplished by repetitively
reading the status of the MPSC, and making decisions based on that status. The MPSC can be polled
at any time.
Wait operation allows slightly faster data throughput
for the MPSC by manipulating the Rea9Y input to the
microprocessor. Block Read or Write Operations to
the MPSC are started at will by the microprocessor
and the MPSC deactivates its ROY signal if it is not
yet ready to transmit the new byte, or if reception of
new byte is not completed.
Interrupt driven operation is accomplished via an internal or external interrupt controller. When the
MPSC requires service, it sends an interrupt request
signal to the microprocessor, which responds with
In the polled mode, the CPU must monitor the desired conditions within the MPSC by reading the appropriate bits in the read registers. All data available,
status, and error conditions are represented by the
appropriate bits in read registers 0 and. 1 for channels A and B.
There are two ways in which the software task of
monitoring the status of the MPSC has been reduced. One is the "ORing" of all conditions into the
Interrupt Pending bit. (RRO; D1 channel A only). This
bit is set when the MPSC requires service, allowing
the CPU to monitor one bit instead of four status
registers. The other is available when the "status-affects-vector" mode is selected. By reading RR2
Channel B, the. CPU can read a vector who's value
will indicate that one or more of group of conditions
has occurred, narrowing the field of possible conditions. See WR2 and RR2 in the Detailed Command
Description section.
WAIT OPERAtiON
Wait Operation is intended to facilitate data transmission or reception using bl.ock move operations. If
a block of data is to be transmitted, for example, the
CPU can execute a String 1/0 instruction to the
MPSC. After writing the first byte, the CPU will attempt to write a second byte immediately as is the
case of block move. The MPSC forces the RDY signal low which inserts wait states in the CPU's write
cycle until the transmit buffer is ready to accept a
new byte. At that time, the RDY Signal is high allowing the CPU to finish the write cycle. The CPU then
attempts the third write and the process is repeated.
Similar operation can programmed for the receiver.
During initialization, wait on transmit ('vYR1; D5 = 0)
2-134
inter
8274
Software Flow, Polled Operation
INTERRUPT DRIVEN OPERATION
The MPSC can be programmed into several interrupt modes: Non-Vectored, 8085 vectored, and
8088/86 vectored. In both vectored modes, multiple
MPSC's can be daisy-chained.
In the vectored mode, the MPSC responds to an
interrupt acknowledge sequence by placing a call instruction (8085 mode) and interrupt vector (8085
and 8088/86 mode) on the data bus.
RECEIVE
The MPSC can be programmed to cause an interrupt due to up to 14 conditions in each channel. The
status of these interrupt conditions is contained in
Read Registers 0 and 1. These 14 conditions are all
directed to cause 3 different types of internal interrupt request for each channel: receive/interrupts,
transmit interrupts and external/status interrupts (if
enabled).
TRANSMIT
170102-16
NOTES:
1. RRO; DO is reset automatically when the data is
read.
2. RRO; D2 is reset automatically when the data is writ-
This results in up to 6 internal interrupt request signals. The priority of those Signals can be programmed to one of two fixed modes:
ten.
Highest Priority Lowest Priority
or wait on receive (WR1; D5 = 1) can be selected.
The wait operation can be enabled/disabled by setting/resetting the Wait Enable Bit (WR1; D7).
RxA RxB TxA TxB ExTA ExTB
RxA TxA RxB TxB ExTA ExTB
NOTE:
CAUTION: ANY CONDITION THAT CAN CAUSE
THE TRANSMITTER TO STOP (E.G., CTS GOES
INACTIVE) OR THE RECEIVER TO STOP (E.G.,
RX DATA STOPS) WILL CAUSE THE MPSC TO
HANG THE CPU UP IN WAIT STATES UNTIL RESET. EXTREME CARE SHOULD BE TAKEN
WHEN USING THIS FEATURE.
The interrupt priority resolution works differently for
vectored and non-vectored modes.
Hardware Configuration, Polled Operation
~ ADDRESS BUS
~
~~
I I
I I
_6
1\ DATA BUS
1m
WR
-----
8205
~ 0
-
'---
DB0-7
iNii
Ao
A,
J"
MPSC
Ci
RD
WR
170102-17
2-135
8274
Interrupt Condition Grouping
CONOITioN
MODE
RECEIVE CHARACTER _ _ _ _ _ _ _ _ _ _~I
PARITY ERROR===-::-_......~Si;eciAL...,
~~~~',~'h°EVRE:~~N ERROR ~
END OF FRAMe (SDLC ONLY)_L.LIluailllll:.u
INTERNAL INTERRUPT
REQUEST
INTERRUPT ON ALL
AECIOIVE CHARACTERS
•
INTERRUPT ON FIRST
CHARACTER&~ill:~~~~===~j~~~~~:J
•
R, CHARACTER
FIRST
CHARACTER (SYNC MODES)
DATA
FIRST NON·SYNC
VALID ~DDRESS BYTE (SDLC ONLY)
TRANSITION~~:~~~~~~~~~~~~~~~~~~~~~~~~~
CTS TRANSITION
SYNC TRANSITION
T. UNDIORRUNIIOOM
BREAK/ABORT
DETECT
CD
TRANSMIT BUFFER EMPTY
170102-18
INTERNAL
INTERRUPT
ACCEPTED
LOWER PRIORITY INTERRUPTS NOT ACCEPTED
INTERRUPT
(EXTERNAL)
i'NTA
(EXTERNAL)
HIGHER
INTA
(INTIORNAL)
_ + - > - - - - - N O~~~~~~~&TS------o\---'-I~~~:mSACCIOPUD
170102-19
PRIORITY RESOLUTION: VECTORED MODE
Any interrupt condition can be accepted internally to
the MPSC at any time, unless the MPSC's internal
INTA signal is active, unless a higher priority interrupt is currently accepted, or if IPI is inactive (high).
The MPSC's internallNTA is set on the leading (fall-
iOg) edge of the first External INTA pulse and reset
on the trailing (rising) edge of the second External
INTA pulse. After an interrupt is accepted internally,
and External INT request is generated and the IPO
goes inactive. IPO and TPf are used for daisy-chaining MPSC's together.
2-136
inter
8274
In-Service Timing
(~~\1~~U:J ~~________________________________--J~
INTA
(EXTERNAL)
INTA
(INTERNAL)
IN·SERVICE
(INTERNAL)
170102-20
The MPSC's internallNTA is set on the leading (failing) edge of the first external INTA pulse, and reset
on the trailing (rising) edge of the second external
INTA pulse. After an interrupt is accepted internally,
and externalll\iT request is generated and iPO goes
inactive (high). iPO and iJ5i are used for daisy-chain.
ing MPSC'stogether.
Each of the six interrupt sources has an associated
In-Service latch. After priority has been resolved, the
highest priority In-Service latch .is set. After the InService latch is set, the. INT pin goes inactive (high).
NOTE:
If the External INT pin is active and the IPI signal is pulled
inactive high, the INT signal will also go inactive. IPI qualifies the External INT Signal.
2-137
inter
8274
EOI Command Timing
SERVICE
ROUTINE
INTEFINALINTERRUPT ACCEPTED
J
(~xW·.".I'.':.'; \
jr-----------------t
~----""'
-J/
....__________
IIID:
(EXTERNAL)
I
INTA
(INTERNAL)
----J
woJ
.....JI '
IN·SE.VICE _ _ _ _ _ _ _ _ _ _ _ _ _
(INTERNAL)
.
EOICOMMAND
(INTERNAL)
170102-21
Lower priority interrupts are not accepted internally
while.the In-Service latch is set. HOlNe,ver, hi~her prior(ty interrupts arE\lapcepte,Q i'lternally and a: new external iNi"'reqiJest is generatlild. If the CPU respond~
witH .a new ,INTA s\ilquence, tl1e MPSC.will respond
as before, suspending the lower priority Interrupt.
After the interrupt is serviced, the End-of-Interrupt
(EOI) command should be written to the MPSC. This
command 'will cause an internal pulse that is used to
reset the In-Service Latch which allows service for
lower priority interrupts in the <;Iaisy-chain to resume,
provided a "ew INTA sequence does not start for a
higher priority interrupt (higher than the highest under service). If there is no interrupt pending internally, the IPO follows IPI.
' ,
2-138
inter
8274
Non-Vectored Interrupt Timing
SERVICE
ROUTtNE
INTERNAL INTERRUPT
ACCEPTED
;':::::::~LO"W;••~P;.I;'O.;"T~YI;NTn."
••;UP~T'''NW~~.~Cc.C.;";.D~-=-=-=-=-=-~
~::::::==\
1NTERRUPT
(EXTERNAL)
AD
(EXTERNAL)
INTERNAL POINTEA
SETTOREQ2
1N-81AYtCE
(INTERNAL)
EOICOMMAND
(INTERNAL)
170102-22
PRIORITY RESOLUTION:
NON-VECTORED MODE
In non-vectored mode, the MPSC does not respond
to interrupt acknowledge sequences. The INTA input
(pin 27) must be pulled high for proper operation.
The MPSC should be programmed to the Status-Affects-Vector mode, and the CPU should read RR2
(Ch. B) in its service routine to determine which interrupt requires service.
nal in the vectored mode. It inhibits acceptance of
any additional internal interrupts and its leading
edge starts the interrupt priority resolution circuit.
The interrupt priority resolution is ended by the leading edge of the read signal used by the CPU to retrieve the modified vector. The leading edge of read
sets the In-Service latch and forces the external INT
output inactive (high). The internal pointer is reset to
zero after the trailing edge of the read pulse.
NOTE:
In this case, the internal pointer being set to RR2
provides the same function as the internallNTA sig-
That if RR2 is specified but not read, no internal interrupts, regardless of priority, are accepted.
2-139
inter
8274
-=~~
INTA
CPU
i1II'I'
~
i1Ii
6
6
m'f
IMTA
ilia
;po
WI
MPSC
HIGHEST PRIORITY
WI'
INTA
MPSC
1111
6
11m
iP6
MP$C
LOWEST PRIORITY
170102-23
DAISY CHAINING MPSC
In the vectored interrupt mode, multiple MPSC's can
be daisy-chained on the same INT, INTA signals.
These signals, in conjunction with the IPI and IPO
allow a daisy-chain-like interrupt resolution scheme.
This scheme can be configured for either 8085 or
8086/88 based system.
In either mode, the same hardware configuration is
called for. The INT request lines are wire-OR'ed together at the input of a TTL inverter which drives the
INT pin of the CPU. The INTA signal from the CPU
drives aI/ of the daisy-chained MPSC's.
The MPSC drives IPO (Interrupt Priority Output) inactive (high) if fPi (Interrupt Priority Input) is inactive
(high), or if the MPSC has an interrupt pending.
If fPi is active (low), the MPSC knows that all higher
priority MPSC's have no interrupts pending. The fPi
pin of the highest priority MPSC is strapped active
(low) to ensure that it always has priority over the
rest.
MPSC's Daisy-chained on an 8088/86 CPU should
be programmed to the 8088/86 Interrupt mode
(WR2; 04, 03 Ch. A). MPSC's Daisy-chained on an
8085 CPU should be programmed to 8085 interrupt
mode 1 if it is the highest priority MPSC. In this
mode, the highest priority MPSC issues the CALL
instruction during the first INTA cycle, and the interrupting MPSC provides the interrupt vector during
the fol/owing INTA cycles. Lower priority MPSC's
should be programmed to 8085 interrupt mode 2.
MPSC's used alone in 8085 systems should be programmed to 8085 mode 1 interrupt operation.
The IPO of the highest priority MPSC is connected
to the fPi of the next highest priority MPSC, and so
on.
.
2-140
8274
DMA Acknowledge Circuit
DACK o - - - - - - - ,
~,---.......,
~2---.-r-r--~
MULTIPLEXER
DACK3--~t-r_r_-~
Ao
~A~,---------Ao
t-::C:;-s--:-------- A,
t - - - - t ....~----
ES
170102-24
DMATlming
DRQn~
Ao,A"CS
RD, WR
----~X,
\'-------
___________......,.-->C
-------~\\._ _ _ _ _ _ _ _...../
170102-25
DMA OPERATION
Each MPSC can be programmed to utilize up to four·
DMA channels: Transmit Channel A. Receive Channel A. Transmit Channel B. Receive Channel B.
Each DMA Channel has an associated DMA Request line. Acknowledgement of a DMA cycle is
done via normal data read or write cycles. This is
accomplished by encoding the DACK signals to generate Ao. A1. and CS. and multiplexing them with the
normal Ao. A1. and CS signals.
PERMUTATIONS
Channels A and B can be used with different system
interface modes. In all cases it is possible to poll the
MPSC. The following table shows the possible per-
mutations of interrupt. wait. and DMA modes for
channels A and B. Bits D1. Do of WR2 Ch. A determine these permutations.
Permutation
WR2Ch.A
D1
Do
Channel A
ChannelB
0
0
Wait
Interrupt
Polled
Wait
Interrupt
Polled
0
1
DMA
Polled
Interrupt
Polled
1
0
DMA
Polled
DMA
Polled
NOTE:
D1, DO
=
1,1 is illegal.
r----o.-
l
?
".2
"16-A19
01
ALE
DO
A16
>
"tt
Y
STB
'---
~
.... K
~(:("
iiQ
8284A
. . READY
ViR
K!:';iO.~
A~ ,... 0,
1-,....,
r--
-
01
A ..-A
DO
II
srB
1282
~
eLR
1
.>
,
t
~ OE DO~DO,
8282 5TS
T
OE
827
v
Ol,-DI,
J
00 0,
ADD-AD7
HLOA
ill-
ADSTB
0,,-0
iiEiIII
IIHIWA
HLDA
D
HRa
L.. AEN
74LS74
elK
!--
r-
RESET
HOLD
~
II
,.--
.--
'---V
elK
H-t-
~
:''''O~
A.
8~:O ~
B~
~
j.
A8 .15
"8-.15
.....
~
1237
A-A
DRQ 2
~,
ORO,
ilA5C,
RESET
T
:OA
ilA5C, ~
I/OW
READY
elK
~
I--
ORO,
lli!li
01»
Q.
ORO o
~,
-,-~
l.b:o. .--
'r>
MULTIPLEXEA
,
:
1
i
.... It-.
I~
1
- '
ES
-t>o-
a.
....
!:::~I
'!:::
LJ'
I~
(FROM 8205)
~
:Oe
' ......
I'"
I
I
~t--~-----_J
170102-26
NOTE:
The circuit was not designed based on a worst-case timing analysis. Specific implementations should include this timing analysis.
inter
8274
PROGRAMMING HINTS
Transmit Under-run/EOM Latch
This section will describe some useful programming
hints which may be useful in program development.
In SOLC/HOLC, bisync and monosync mode, the
transmit under-run/EOM must be reset to enable the
CRC check bytes to be appended to the transmit
frame or transmit message. The transmit under-run/
EOM latch can be reset only after the first character
is loaded into the transmit buffer. When the transmitter under-runs at the end of the frame, CRC check
bytes are appended to the frame/message. The
transmit under-run/EOM latch can be reset at any
time during the transmission after the first character.
However, it should be reset before the transmitter
under-runs otherwise, both bytes of the CRC may
not be appended to the frame/message. In the receive mode in bisync operation, tl:le CPU must read
the CRC bytes and two more SYNC characters before checking for valid CRC result in RR1.
Asynchronous Operation
At the end of transmission, the CPU must issue "Reset Transmit InterruptiOMA Pending" command in
WRO to reset the last transmit empty request which
was not satisfied. Failing to do so will result in the
MPSC locking up in a transmit empty state forever.
Non-Vectored Mode
In non-vectored mode, the Interrupt Acknowledge
pin (INTA) on the MPSC must be tied high through a
pull-up resistor. Failing to do so will result in unpredictable response from the 8274.
HOLC/SOLC Mode
When receiving data in SOLC mode, the CRC bytes
must be read by the CPU (or OMA controller) just
like any other data field. Failing to do so will result in
receiver buffer overflow. The CRC bytes are not to
be used for CRC verification. Residue bits may be
contained in the first CRC byte. Also, the End of
Frame Interrupt indicates that the entire frame has
been received. At this pOint, the CRC result (RR 1:
06) and residue code (RR1; 03, 02, 01) may be
checked.
Sync Character Load Inhibit
In bisync/monosync mode only, ,it is possible to prevent loading sync characters into'the receive buffers
by setting the sync character load inhibit bit (WR3;
01 = 1). Caution must be exercised in using this
option. It may be possible to get a CRC character in
the received message which may match the sync
character and not get transferred to the receive buffer. However, sync character load inhibit should be
enabled during all pre-frame sync characters so th!3
software routine does not have to read them from
the MPSC.
In SOLC/HOLC mode, sync character load inhibit bit
must be reset to zero for proper operation.
Status Register RR2
RR2 contains the vector which gets modified to indicate the source of interrupt (See the section titled
MPSC Modes of Operation). However, the state of
the vector does not change if no new interrupts are
generated. The contents of RR2 are only changed
when a new interrupt is generated. In order to get
the correct information, RR2 must be read only after
an interrrupt is generated, otherwise it will indicate
the previous state.
Initialization Sequence
The MPSC initialization routine must issue a channel
Reset Command at the beginning. WR4 should be
defined before other registers. At the end of the initialization sequence, Reset External/Status and Error Reset commands should be issued to clear any
spurious interrupts which may have been caused at
power up.
EOI Command
EOI command can only be issued through channel A
irrespective of which channel had generated the interrupt.
Priority in OMA Mode
There is no priority in OMA mode between the following four signals: TxORQ(CHA), RxORQ(CHA),
TxORQ(CHB), RxORQ(CHB). The priority between
these four signals must be resolved by the OMA
controller. At any given time, all four OMA channels
from the 8274 are capable of going active.
2-143
inter
8274
• Notice: Stresses above those listed under '~bso
lute Maximum Ratings" may cause permanent damage to the device; This is a stress rating only and
functional operation of the device at these or any
other conditions above those indicated in the operational sections of this specification is not implied Exposure to absolute maximum rating conditions for
extended periods may affect device reliability.
ABSOLUTE MAXIMUM RATINGS*
Ambient Temperature
Under Bias .............•........ O·C to + 70·C
Storage Temperature
(Ceramic Package) .......... -65·C to + 150·C
(Plastic Package) ............ - 40·C to + 125°C
Voltage on Any Pin with
Respect to Ground ............ - 0.5V to + 7.0V
D.C. CHARACTERISTICS
Symbol
TA
=
O·C to + 70·C; Vee
+ 5V ± 10%
Min
Max
Units
Input Low Voltage
-0.5
+0.8
V
VIH
Input High Voltage
+2.0
Vee +0.5
V
VOL
Output Low Voltage
+0.45
V
VOH
Output High Voltage
III
Input Leakage Current
±10
10Fl
Output Leakage Current
Icc
Vee Supply Current
Vil
Parameter
=
Test Conditions
10l = 2.0mA
=
=
V
10H
/k A
VIN
±10
/k A
VOUT = Vee to 0.45V
200
mA
+2.4
200/kA
Vee to OV
NOTE:
1. For Extended Temperature EXPRESS. use MIL8274 electrical Parameters.
CAPACITANCE
Symbol
TA = 25·C; Vee = GND = OV
Parameter
CIN
Input Capacitance
COUT
Output Capacitance
CliO
Input/Output Capacitance
Min
2-144
Max
Units
10
pF
fc
Test Conditions
15
pF
20
pF
Unmeasured pins
returned to GND
=
1 MHz
intJ
8274
A.C. CHARACTERISTICS
Symbol
T A = O·C to
+ 70·C; Vcc
Parameter
=
+ 5V ± 10%
Min
Max
Units
tCY
ClK Period
250
4000
ns
tCL
ClK low Time
105
2000
ns
tCH
ClK High Time
105
2000
ns
tr
ClK Rise Time
0
30
ns
tj
ClKFaliTime
0
30
ns
J,
tAR
AO, A 1 Setup to RD
tAO
AO, A 1 to Data Output Delay
0
ns
200
ns
tRA
AO, A 1 Hold after RD i
tRO
RD
tRR
RD Pulse Width
tOF
Output Float Delay
tAW
CS, AO, A 1 Setup to WR
J,
0
ns
tWA
CS, AO, A 1 Hold after WR i
0
ns
tww
WR Pulse Width
250
ns
J,
0
to Data Output Delay
200
ns
ns
120
ns
tow
Data Setup to WR
150
ns
two
Data Hold after WR i
0
ns
tpi
IPI Setup to INTA J,
0
ns
tiP
IPI Hold after INTA i
10
ns
til
INTA Pulse Width
250
ns
tplPO
IPI
100
ns
tlO
INTA J, to Data Output Delay
200
ns
tea
RD or WR to DRQ J,
150
ns
J,
to IPO Delay
tRY
Recovery Time Between Controls
tcw
CS, AO, A 1 to RDYA or RDYs Delay
tOCY
Data Clock Cycle
4.5
tcy
tOCL
Data Clock low Time
180
ns
tOCH
Data Clock High Time
180
tTD
TxC to TxD Delay (x1 Mode)
tos
RxD Setup to RxC i
tOH
RxD Hold after F1xC i
tlTO
TxC to INT Delay
ns
300
140
ns
ns
300
0
ns
ns
140
ns
4
6
tcy
7
10
tcy
tiRO
RxC to INT Delay
tpL
CTS, CD, SYNDET low Time
200
ns
tpH
CTS, CD, SYNDET High Time
200
ns
tlPO
ExternallNT from eTS, CD, SYNDET
2-145
CL
= 150 pF
CL
= 150 pF
ns
250
i
Test Conditions
500
ns
8274
A.C. TESTING INPUT/OUTPUT WAVEFORM
A.C. TESTING LOAD CIRCUIT
INPUT/OUTPUT,
"J
0,45
2,0
>
TEST
0,8
< )C
2,0
~OINTS
DEVICE
UNDER
TEST
0.8
170102-27
A.C, Tesling; Inputs are driven at 2.4V for a Logic "1" and 0.45V
for a Logic "0". Timing measurements are made at 2.0V for a
Logic "1" and 0.8V for a Logic "0",
170102-28
CL=100pF
CL Includes Jig Capacitance
WAVEFORMS
CLOCK CYCLE
elK
170102-29
READ CYCLE
Cs.AO.Al
1+----.:...-t.D------..1
170102-30
2-146
8274
WAVEFORMS (Continued)
WRITE CYCLE
a~~>{,. ~_____
. . ..
,. d<
170102-31
DMA CYCLE
-
OAa
-,.).--
/
eJ. AO. A1
RoORWR
170102-33
READ/WRITE CYCLE (SOFTWARE POLLED MODE)
CS, AO,,,,1
ADOAWR
1+---------1,,-------1
"'------170102-34
2·147
inter
8274
INTA CYCLE
NOTES:
1. INTA Signal as RD Signal.
2. IPI signal acts as CS signal.
2-148
inter
8274
WAVEFORMS
(Continued)
TRANSMIT DATA CYCLE
......
...
----"ITD----~
IIi'I
170102-35
RECEIVE DATA CYCLE
RoD
170102-36
OTHER TIMING
~~.~ ~.>------"IPL>------0----,PH---. . .~"'---
t
ItpO--Q-I"~___
170102-37
2-149
intJ
82530/82530-6
SERIAL COMMUNICATIONS CONTROLLER (SCC)
• Two Independent Full Duplex Serial
Channels
• Available In Express Version
• Asynchronous Modes
- 5-8 bit Character; Odd, Even or No
Parity; 1, 1.5 or 2 Stop Bits
-Independent Transmit and Receive
Clocks. 1X, 16X, 32X or 64X
Programmable Sampling Rate
- Error Detection: Framing, Overrun
and Parity
- Break Detection and Generation
• On Chip Crystal, Oscillator, Baud-Rate
Generator and Digital Phase Locked
Loop for Each Channel
• Programmable for NRZ, NRZI or FM
Data Encoding/Decoding
• Diagnostic Local Loopback and
Automatic Echo for Fault Detection and
Isolation
• Bit Synchronous Modes
- SDLC Loop/Non-Loop Operation
-CRC-16 or CCITT Generation
Detection
- Abort Generation and Detection
-I-field Residue Handling
- CCITT X.25 Compatible
• System Clock Rates:
- 4 MHz for 82530
- 6 M,Hz for 82530-6
• Max Bit Rate (6 MHz)
- Externally Clocked: 1.5 Mbps
Self-Clocked:
375 Kbps FM CODING
187 Kbps NRZI CODING
93 Kbps Asynchronous
• Interfaces with Any INTEL CPU, DMA or
I/O Processor
.
• Available In 40 Pin DIP and 44 Lead
PLCC
• Byte Synchronous Modes
-Internal or External Character
Synchronization (1 or 2 Characters)
- Automatic CRC Generation and
Checking (CRC 16 or CCITT)
-IBM Bisync Compatible
The INTEL 82530 Serial Communications Controller (SCC) is a dual-channel, multi-protocol data communications peripheral. It is designed to interface high speed communications lines using Asynchronous, Byte synchronous and Bit synchronous protocols to INTEL's microprocessors based systems. It can be interfaced with
Intel's MCS51/96,iAPX86/88/186 and 188 in pOlled, interrupt driven or DMA driven modes of operation.
The SCC is a 40-pin device manufactured using INTEL's high-performance HMOS· II technology.
• HMOS is a patented process of Intel Corporation.
2-150
October 1987
Order Number: 230834-003
inter
82530/82530·6
DBO.7C:=~
DATA
BUS
BUFFERS
CHANNEL A
BAUD
RATE
GENERATOR
TRANSMITTERI
RECEIVER
READ
REGISTERS
ClK
CONTROL
lOGIC'
WRITE
REGISTERS
lEO
lEI
OPERATION
CONTROL
,'!liD.
R.D.
liDYAlREQ"
RDYeiREo.
CHANNElB
1I'I!iC.
'i'IiiC.
DfiiAlliEO"
DTReiREOB
SYSTEM INTERFACE
SERIAL COMMUNICATION
INTERFACE
230834-1
Figure 1.82530 Internal Block Diagram
2·151
inter
82530/82530~6
081
080
083
082
085
084
087
086
!lilT
RtI
, lEO
WR
lEI
Alii
INTA
cs
Vee
ole
IiDYAIA!()A
IiDYslREOs
R'fiCA
SYNCs
cs
GNO
ROY/REOb
RTxCa
RxOa
TRxCa
~s
SYNCb
RTxCb
TxDa
RxOs
TIeD"
Ole
Vee
filiiC A
RXOA
Alii
lEI
INTA
ROY/REOa
SYNCa
GNO
f'liiC A
lEO
NC
TRi"es
OTRA/A!OA
TleOs
imI~REOs
RTSA
rnA
RTSs
CD A
CTSa
elK
COs
230834-43
230834-2'
Figure 2. Pin Configurations
The following section describes the pin functions of the SCC. Figure 2 details the pin assignments.
Table 1. Pin Description
PinNo.
Symbol
DIP
I
Type
Name and Function
PLCC
DBo
DB1,
DB2
DB3
DB4
DB5
DBs
DB7
40
1
1
39
2
38
3
37
4
2
44
3
43
,4
42
5
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
DATA BUS: The Data Bus lines are bi·directional three-state lines
which interface with the system's Data Bus. These lines carry data
and commands to and from the SCC.
INT
5
6
0
INTERRUPT REQUEST: The interrupt signal is activated when the
SCC requests an interrupt. It is an open drain output.
lEO
6
7
0
INTERRUPT ENABLE OUT: lEO is High only if lEI is High and the
CPU is not servicing an SCC interrupt or the SCC is not requesting
an interrupt (Interrupt Acknowledge cycle only). lEO is connected
to the next lower priority device's lEI input and thus inhibits
interrupts from lower priority devices.
lEI
7
8
I
INTERRUPT ENABLE IN: lEI is used with lEO to form an interrupt
daisy chain when there is more than one interrupt-driven device. A
High lEI indicates that no other higher priority device has an
interrupt under service or is requesting an interrupt.
2·152
intJ
82530/82530·6
Table 1. Pin Description (Continued)
Symbol
Pin No.
Type
Name and Function
I
INTERRUPT ACKNOWLEDGE: This signal indicates an active Interrupt
Acknowledge ~Ie. During this cycle, the SCC interrupt daisy chain
settles. When RD becomes active, the SCC places an interrupt vector
on the data bus (if lEI is High). INTA is latched by the rising edge of
CLK.
DIP PLCC
INTA
8
9
,.
+5V Power supply.
Vee
9
10
RDYA/FiEOA
'FtiWs/J!ims
10
30
11
34
0
0
READY/REQUEST: (output, open-drain when programmed for a Ready
function, driven High or Low when programmed for a Request function).
These dual-purpose outputs may be programmed as Request lines for a
DMA controller or as Ready lines to synchronize the CPU to the SCC
data rate. The reset state is Ready.
~A
~s
11
29
12
33
I/O
I/O
SYNCHRONIZATION: These pins can act either as inputs, outputs or
part of the crystal oscillator circuit. In the Asynchronous receive mode
~tal oscillator option not selected), these pins are inputs similar to
and rn:>. In this mode, transitions on these lines affect the state of
the Synchronous/Hunt status bits in Read Register 0 (Figure 9) but
have no other function.
In External Synchronization mode with the crystal oscillator not
selected, these lines also act as inputs. In this mode, ~ must be
driven LOW two receive clock cycles after the last bit in the
synchronous character is received. Character assembly begins on the
risinjbedge of the receive clock immediately preceding the activation of
SYN .
'
In the Internal Synchronization mode (Monosync and Bisync) with the
crystal osciilator not selected, these pins act as 'outputs and are active
only during the part of the receive clock cycle in which synchronous
characters are recognized. The synchronous condition is not latched,
so these outputs are active each time a synchronization pattern is
recognized (regardless of characters boundaries). In SDLC mode, these
pins act as outputs and are valid on receipt of a flag.
RTxCA
RTxCs
12
28
13
32
I
I
RECEIVE/TRANSMIT CLOCKS: These pins can be programmed in
several different modes of operation. In each channel, RTxC may
supply the receive clock, the transmit clock, the clock for the baud rate
generator, or the 'clock for the Digital Phase Locked Loop. These pins
can be programmed for use with the respective SYNC pins as a crystal
oscillator. The receive clock may be 1, 16, 32, or 64 times the data rate
in Asynchronous modes.
RxDA
RxDs
13
27
14
31
I
I
'RECEIVE DATA: These lines receive serial data at standard TTL levels.
TRxCA
TRxCs
14
26
15
30
I/O
I/O
TRANSMIT/RECEIVE CLOCKS: These pins can be programmed in
several different modes of operation. TRxC may supply the receive
clock or the transmit clock in the input mode or supply the output of the
Digital Phase Locked Loop, the crystal oscillator, the baud rate
generator, or the transmit clock in the output mode.
TxDA
TxDs
15
25
16
29
0
0
TRANSMIT DATA: These output signals transmit serial data at
standard TTL levels
J:)i'RA/FiEOA
DTRs/REQs
16
24
19
27
0
0
DATA TERMINAL READY/REQUEST: These outputs follow the state
programmed into the DTR bit. They can also be used as general
purpose outputs or as Request lines for a DMA controller.
POWER:
2-153
intJ
82530/82530-6
Table 1. Pin Description (Continued)
Pin No.
Symbol
Type
Name and Function
20
26
0
0
REQUEST TO SEND: When the Request to Send (RTS) bit in
Write Register 5 is set (Figure 10), the RTS signal goes Low. When
the RTS bit is reset in the Asynchronous mode and Auto Enable is
on, the signal goes High after the transmitter is empty. In
Synchronous mode or in Asynchronous mode with Auto Enable
off, the RTS pin strictly follows the state of the RTS bit. Both pins
can be used as general·purpose outputs.
18
22
21
25
I
I
CLEAR TO SEND: If these pins are programmed as Auto Enables,
a Low on the inputs enables the respective transmitters. If not
programmed as Auto Enables, they may be used as general·
purpose inputs. Both inputs are Schmitt·trigger buffered to
accommodate slow rise·time inputs. The SCC detects pulses on
these inputs and can interrupt the CPU on both logic level
.transitions.
CDA
CDB
19
21
22
24
I
I
CARRIER DETECT: These pins function as receiver enables if
they are programmed for Auto Enables; otherwise they may be
used as general·purpose input pins. Both pins are Schmitt·trigger
buffered to accommodate slow rise time signals. The SCC detects
pulses on these pins and can interrupt the CPU on both logic level
transitions.
ClK
20
23
I
CLOCK: This is the system SCC clock used to synchronize internal
signal.s.
DIP
PLCC
RTSA
RTSB
17
23
CTSA
CTSB
GND
31
35
DIC
32
37
I
DAT~/COMMAND SELECT: This signal defines the type of
information transferred to or from the SCC. A High means data is
transferred; a Low indicates a command.
CS
33
38
I
CHIP SELECT: This signal selects the SCC for a read or write
operation.
AlB
34
39
I
CHANNEL A/CHANNEL B SELECT: This signal selects the
channel in which the read or write operation occurs.
WR
35
40
I
WRITE: When the SCC is selected this signal indicates a write
operation. The coincidence of RD and WR is interpreted as a
reset.
RD
36
41
I
READ: This signal indicates a read operation and when the SCC is
selected, enables the sec's bus drivers. During the Interrupt
Acknowledge cycle, this signal gates the interrup, vector onto the
bus if the SCC is the highest priority device requesting an interrupt.
GROUND
2·154
82530/82530-6
GENERAL DESCRIPTION
The Intel 82350 Serial Communications Controller
(SCC) is a dual-channel, multi-protocol data communications peripheral. The SCC functions as a serialto-parallel, parallel-to-serial convertor/controller.
The SCC can be software-configured to satisfy a
wide range of serial communications applications.
The device contains sophisticated internal functions
including on-chip baud rate generators, digital phase
locked loops, various data encoding and decoding
schemes, and crystal oscillators that reduce the
need for external logic.
In addition, diagnostic capabilities-automatic echo
and local loopback-allow the user to detect and
isolate a failure in the network. They greatly improve
the reliability and fault isolation of the system.
The SCC handles Asynchronous formats, Synchronous byte-oriented protocols such as IBM Bisync,
and Synchronous bit-oriented protocols such as
HDLC and IBM SDLC. This versatile device supports
virtually any serial data transfer application (Terminal, Personal Computer, Peripherals, Industrial Controller, Telecommunication sytem, etc.).
The 82530 can generate and check CRC codes in
any Synchronous mode and can be programmed to
check data integrity in various modes. The SCC also
has facilities for modem control in both channels. In
applications where these controls are not needed,
the modem control can be used for general purpose
I/O.
The Intel 82530 is designed to support Intel's
MCS51/96, iAPX 86/88 and iAPX 186/188 families.
ARCHITECTURE
The 82530 internal structure includes two full-duplex
channels, two baud rate generators, internal control
and interrupt logic, and a bus interface to a non-multiplexed CPU bus. Associated with each channel are
a number of read and write registers for mode control and status information, as well as logic necessary to interface modems or other external devices.
The logic for both channels provides formats, synchronization, and validation for data transferred to
and from the channel interface. The modem control
inputs are monitored by the control logic under program control. All of the modem control signals are
general-purpose in nature and can optionally be
used for functions other than modem control.
The register set for each channel includes ten control (write). registers, two synchronous character
(write) registers, and four status (read) registers. In
addition, each baud rate generator has two (read/
write) registers for holding the time constant that determines the baud rate; Finally, associated with the
interrupt logic is a write register for the interrupt vector accessible through either channel, a write.only
Master Interrupt Control register and three read registers; one containing the vector with status information (Channel B only), one containing the vector
without status (A only), and one containing the Interrupt Pending bits (A only).
The registers for each channel are designated as
follows:
WRO-WR15-Write Registers 0 through 15.
RRO-RR3, RR10, RR12, RR13, RR15-Read Registers 0 through 3, 10, 12, 13, 15.
Table 2 lists the functions assigned to each read or
write register. The SCC contains only one WR2 and
WR9, but they can be accessed by either channel.
All other registers are paired (one for each channel).
DATA PATH
The transmit and receive data path illustrated in Figure 3 is identical for both channels. The receiver has
three 8-bit buffer registers in a FIFO arrangement, in
addition to the 8-bit receive shift register. This
scheme creates additional time for the CPU to service an interrupt at the beginning of a block of highspeed data. Incoming data is routed through one of
several paths (data or CRG) depending on the selected mode (the character length in asynchronous
modes also determines the data path).
The transmitter has an 8-bit transmit data buffer register loaded from the internal data bus and a 20-bit
transmit shift register that can be loaded either from
the synC-Character registers or from the transmit
data register. Depending on the operational mode,
outgoing data is routed through one of four main
paths before it is transmitted from the Transmit Data
output (TxD).
2·155
82530/82530-6
Table 2. Read and Write Register Functions
READ REGISTER FUNCTIONS
RRO
Transmit/Receive buffer status and External status
RR1
RR2
RR3
RR8
RR10
RR12
RR13
RR15
Special Receive Condition status
Modified interrupt vector
(Channel Bonly)
Unmodified interrupt
(Channel A only)
Interrupt Pending bits
. (Channel A only)
WRITE RE~ISTER FUNCTIONS
WRO .CRC initialize, initialization commands for
the various modes, shift right/shift left
command
WR1
WR2
WR3
WR4
Receive buffer
Miscellaneous status
Lower byte of baud rate generator time
constant
Upper byte of baud rate generator time
constant
External/Status interrupt information
WR5
WR6
WR7
WR8
WR9
Transmit/Receive interrupt and data
transfer mode definition
Interrupt vector (accessed through either
channel)
Receive parameters and control
Transmit/Receive miscellaneous parameters and modes
Transmit parameters and controls
Sync characters or SDLC address field
Sync character or SDLC flag
Transmit buffer
Master interrupt control and reset (accessed through either channel)
WR10 Miscellaneous transmitter/receiver control
bits
WR11 Clock Mode control
WR12 Lower Byte of baud rate generator time
constant
WR13 Upper Byte of baud rate generator time
constant
WR14 Miscellaneous control bits
WR15 External/Status interrupt control
2-156
(
CPUIJO
8R GENERATOR
"11
INPUT
c»
C'
N
W
Q
.......
C
N
-
Q
...
C
CD
~
01
.....
0'1
Co)
-
c»
DI
DI
0'1
Co)
'tI
•
DI
:::J'
G)
OPLL
---.L..____
.1
SR GENERATOR OUTPUT
DPlL OUTPUT
fAiC
3
RECEIYE CLOCK
CLOCK
MUX
TRANSMIT CLOCK
OPLL CLOCK
AT,C
8R GENERATOR CLOCK
SYNC
(OSCILLATOR)
230834-3
82530/82530·6
FUNCTIONAL DESCRIPTION
The functional capabilities of the SCC can be described from two different points of view: as a data
communications device, it transmits and receives
data in a wide variety of data communications protocols; as a microprocessor peripheral, it interacts with
the CPU and provides vectored interrupts and handshaking signals.
DATA COMMUNICATIONS
CAPABILITIES
The SCC provides two independent full-duplex
channels programmable for use in any common
asynchronous or synchronous data-communications
protocol. Figure 4 and the following description briefly detail these protocols.
Asynchronous Modes
Transmission and reception can be accomplished
independently on each channel with five to eight bits
per character, plus optional even or odd parity. The
transmitter can supply one, one-and-a-half or two
stop bits per character and can provide a break output at any time. The. receiver break-detection logic
interrupts the CPU both at the start and at the end of
. a received break. Reception is protected from
spikes by a transient spike-rejection mechanism that
. checks the signal one-half a bit time after a Low
level is detected on the receive data input (RxDA or
RxDs). If the Low does not persist (as in the case of
a transient), the character assembly process does
not start.
Framing errors and overrun errors are detected and
buffered together with the partial character on which
they occur. Vectored interrupts allow fast servicing
of error conditions using dedicated routines. Furthermore, a built-in checking process avoids the interpretation of a framing error as a new start bit: a framing error results in the addition of one-half a bit time
to the point at which the search for the next start bit
begins.
The SCC does not require symmetric transmit and
receive clock signals-a feature allowing use of the
wide variety of clock sources. The transmitter and
receiver can handle data at a rate of 1, Yt6, %2 or
%4 of the clock rate supplied to the receive and
transmit clock inputs. In the asynchronous modes, a
data rate equal to the clock rate, 1x mode, requires
external synchronization. In asynchronous modes,
the SYNC pin may be programmed as an input used
for functions such as monitoring a ring indicator.
MARKING LINE
MARKING LINE
SYNC
DATA
:;
::
DATA
CRC,
CRC,
DATA
CRC,
CRC.
DATA
CRC,
CRC,
CRC,
CRC,
MONOSVNC
SYNC
DATA
SYNC
,
SIGNAL
FLAG
ADDRESS
I
I
DATA
BISYNC
;;
EXTERNAL SYNC
INFO:~ATlON
FLAG
SDLCIHDLCIX.25
230834-4
Figure 4. see Protocols
2-158
inter
82530/82530-6
sisting of continuous flag characters or a steady
marking condition.
Synchronous Modes
The SCC supports both byte-oriented and bit-oriented synchronous communication. Synchronous-byteoriented protocols can be handled in several modes
allowing character synchronization with a 6-bit or
8-bit synchronous character (Monosync), any 12-bit
or 16-bit synchronous pattern (Bisync), or with an
external synchronous signal. Leading synchronous
characters can be removed without interrupting the
CPU.
If a transmit underrun occurs in the middle of a message, an external status interrupt warns the CPU of
this status change so that an abort may be issued.
The SCC may also be programmed to send an abort
itself in case of an underrun, relieving the CPU of
this task. One to eight bits per character can be sent
allowing reception of a message with no prior information about the character structure in the information field of a frame.
5- or 7-bit synchronous characters are detected with
8- or 16-bit patterns in the SCC by overlapping the
larger pattern across multiple incoming synchronous
characters as shown in Figure 5.
The receiver automatically. acquires synchronization
on the leading flag of a frame in SOLC or HOLC
mode and provides a synchronization Signal on the
SYNC pin (an interrupt can also be programmed).
The receiver can be programmed to search for
frames addressed by a single byte (or four bits within
a byte) of a user-selec.ted address or to a global
broadcast address. In this mode, frames not matching either the user-selected or broadcast address
are ignored. The number of address bytes can be
extended under software control. For receiving data,
an interrupt on the first received character, or an
interrupt on every character, or on special condition
only (end-of-frame) can be selected. The receiver
automatically deletes all Os inserted by the transmitter during character assembly. CAC is also calculated and is automatically checked to validate frame
transmission. At the end of transmission, the status
of a received frame is available in the status registers. In SOLC mode, the SCC must be programmed
to use the SOLC CAC polynomial, but the generator
and checker may be preset to all 1s or all Os. The CAC
is inverted before transmission and the receiver
checks against the .bit pattern 0001110100001111.
CAC checking for Synchronous byte-oriented mode
is delayed by one character time so that the CPU
may disable CAC checking on specific characters.
This permits the implementation of protocols such
as IBM Bisync.
Both CAC-16 (X 16
(X16
+
X12
+
X5
+ X15 + X2 + 1) and CCITT
+ 1) error checking polynomials
are supported. Either polynomial may be selected in
all synchronous modes. Users may preset the CAG
generator and checker to all 1s or all Os. The SCC
also provides a feature that automatically transmits
CAC data when no other data is available for transmission. This allows for high-speed transmissions
under OMA control, with no need for CPU intervention at the end of a message. When there is no data
or CAC to send in synchronous modes, the transmitter inserts 6-, 8-, or 16-bit synchronous characters,
regardless of the programmed character length.
The SCC supports synchronous bit-oriented protocols, such as SOLC and HOLC, by performing automatic flag sending, zero insertion, and CAC generation. A special command can be used to abort a
frame in transmission. At the end of a message, the
SCC automatically transmits the CAC and trailing
flag when the transmitter underruns. The transmitter
may also be programmed to send an idle line con-
NAZ, NAZI or FM coding may be used in any 1X
mode. The parity options available in asynchronous
modes are available in synchronous modes.
The SCC can be conveniently used under OMA control to provide high-speed reception or transmission.
SBITS
SYN~
-----....
SYNC
DATA
DATA
DATA
DATA
....---
---~-16
230834-5
Figure 5. Detecting 5- or 7-Blt Synchronous Characters
2-159
82530/82530-6
In reception, for example, the SCC can interrupt the
CPU when the first character of a message is received. The CPU then enables the OMA to transfer
the message to memory. The SCC then issues an
end-of-frame interrupt and the CPU can check the
status of the received message. Thus, the CPU is
freed for other service while the message is being
received. The CPU may also enable the OMA first
and have the SCC interrupt only on end-of-frame.
This procedure allows all data to be transferred via
OMA.
SOLe LOOP MODE
The SCC supports SOLC Loop mode in addition to
normal SOLC. In a loop topology, there is a primary
controller station that manages the message traffic
flow and any number of secondary stations. In Loop
mode, the SCC performs the functions of a secondary station while an SCC operating in regular SOLC
mode can act as a controller (Figure 6).
insertion during messages, this bit pattern is unique
and easily recognized.
When a secondary station has a message to transmit and recognizes an EOP on the line, it changes
the last binary one of the EOP to a zero before
transmission. This has the effect of turning the EOP
into a flag sequence. The secondary station now
places its message on the loop and terminates the
message with an EOP. Any secondary stations further down the loop with messages to transmit can
then append their messages to the message of the
first secondary station by the same process. Any
secondary stations without messages to send merely echo the incoming messages and are prohibited
from placing messages on the loop (except upon
recognizing an EOP).
SOLC Loop mode is a programmable option in the
SCC. NAZ, NAZI, and FM coding may all be used in
SOLC Loop mode.
BAUD RATE GENERATORS
Each channel in the SCC contains a programmable
Baud rate generator. Each generator consists of two
8-bit time constant registers that form a 16-bit time
constant, a 16-bit down counter, and a flip-flop on
the output producing a square wave. On startup, the
flip-flop on the output is set in a High state, the value
in the time constant register is loaded into the counter, and the counter starts counting down. The output of the baud rate generator toggles upon reaching zero, the value in the time constant register is
loaded into the counter, and the process is repeated. The time constant may be changed at any time,
but the new value does not take effect until the next
load of the counter.
The output of the baud rate generator may be used
as either the transmit clock, the receive clock, or
both. It can also drive the digital phase-locked loop
(see next section).
230834-6
Figure 6. An SOLe Loop
A secondary station in an SOLC Loop is always listening to the messages being sent around the loop,
and in fact must pass these messages to the rest of
the loop by retransmitting them with a one-bit-time
delay. The secondary station can place its own message on the loop only at specific times. The controller signals that secondary stations may .transmit
messages by sending a special character, called an
EOP (End of Poll). around the loop. The EOP character is the bit pattern 11111110. Because of zero
If the receive clock or transmit clock is not programmed to come from the TAxC pin, the output of
the baud rate generator may be echoed out via the
TAxC pin.
The following formula relates the time constant to
the baud rate. (The baud rate is in bits/second, the
BA clock frequency is in Hz, and clock mode is 1,
16, 32, or 64.)
time
constant
2-160
.,..--,:-S,;..;R..;,C..;,lo..:,ck,;..;f,;..;re,;..;q,-:u..:.e;.,.nc,-"Y_:- _ 2
2.X baud rate x clock mode
intJ
82530/82530-6
In NRZ encoding, a 1 is represented by a High level
and a 0 is represented by a Low level. In NRZI encoding, as 1 is represented by no change in level
and a 0 is represented by a change in level. In FM1
(more properly, bi-phase mark) a transition occurs at
the beginning of every bit cell. A 1 is represented by
an additional transition at the center of the bit cell
and a 0 is represented by no additional transition at
the center of the bit cell. In FMo (bi-phase space), a
transition occurs at the beginning of every bit cell. A
o is represented by an additional transition at the
center of the bit cell, and a 1 is represented by no
additional transition at the center of the bit cell. In
addition to these four methods, the SCC can be
used to decode Manchester (bi-phase level) data by
using the DPLL in the FM mode and programming
the receiver for NRZ data. Manchester encoding always produces a transition at the center of the bit
cell. If the transition is 0/1 the bit is a O. If the transition is 110 the bit is a 1.
Table 3. Time Constant Values for Standard
Baud Rates at BR Clock = 3 9936 MHz
Rate
Time Constant
Error
(BAUD)
(decimal notation)
19200
9600
7200
4800
3600
2400
2000
1800
1200
600
300
150
134.5
110
75
50
102
206
275
414
553
830
996
1107
1662
3326
6654
13310
14844
18151
26622
39934
0.06%
0.04%
0.12%
0.03%
0.0007%
0.0015%
-
DIGITAL PHASE LOCKED LOOP
AUTO ECHO AND LOCAL LOOPBACK
The SCC contains a digital phase locked·loop
(DPLL) to recover clock information from a datastream with NRZI or FM encoding. The DPLL is driven by a clock that is nominally 32 (NRZI) or 16 (FM)
times the data rate. The DPLL uses this clock, along
with the datastream, to construct a clock for the
data. This clock may then be used as the SCC receive clock, the transmit clock, or both.
For NRZI coding, the DPLL counts the 32X clock to
create nominal bit times. As the 32X clock is counted, the DPLL is searching the incoming datastream
for edges (either 1/0 or 0/1). Whenever an edge is
detected, the DPLL makes a count adjustment (during the next counting cycle), producing a terminal
count closer to the center of the bit cell.
For FM encoding, the DPLL still counts from 1 to 31,
but with a cycle corresponding to two bit times.
When the DPLL is locked, the clock edges in the
datastream should occur between counts 15 and 16
and between counts 31 and O. The DPLL looks for
edges only during a time centered on the 10/16
counting transition.
.,
The SCC is capable of automatically echoing every. thing it receives. This feature is useful mainly in
asynchronous modes, but works in synchronous and
SDLC modes as well. In Auto Echo mode TxD is
RxD. Auto Echo mode can be used with NRZI or FM
encoding with no additional delay, because the datastream is not decoded before retransmission. In
Auto Echo mode, the CTS input is ignored as a
transmitter enable (although transitions on this input
can still cause interrupts if programmed to do so). In
this mode, the transmitter is actually bypassed and
the programmer is responsible for disabling transmitter interrupts and READYIREQUEST on transmit.
The SCC is also capable of local loopback. In this
mode, TxD is RxD just as in Auto Echo mode. However, in Local Loopback mode, the internal transmit
data is tied to the internal receive data and RxD is
!9!lored (except to be echoed out via TxD). CTS and
CD inputs are also ignored as transmit and receive
enables. However, transitions on these inputs can
still cause interrupts. Local Loopback works in asynchronous, synchronous and SDLC modes with NRZ,
NRZI or FM coding of the data stream.
The 32X clock for the DPLL can be programmed to
come from either the RTxC input or the output of the
baud rate generator. The DPLL output may be programmed to be echoed out of the SCC via the TRxC
pin (if this pin is not being used as an input).
DATA ENCODING
The SCC may be programmed to encode and decode the serial data in four different ways (Figure 7).
2-161
SERIAL BIT RATE
To run the 82530 (4 MHz/6 MHz) at 1/1.5 Mbps the
receive and transmit clocks must be externally generated and synchronized to the system clock. If the
serial clocks (RTxC and TRxC) and the system clock
(CLK) are asynchronous, the maximum bit rate is
880 Kbps/1.3 Mbps. For self-clocked operation, i.e
using the on chip DPLL, the maximum bit rate is
125/187 Kbps if NRZI coding is used and 250/375
Kbps if FM coding is used.
inter
82530/82530-6
I
I
I
DATAl
BIT CELL LEVEL:
;---;----;
~_ _....:
HIGH"'
LOW"O
~_ _....;
NO CHANGE" ,
CHANGE" 0
BIT CENTER TRANSITION:
TRANSITION" ,
~--~I NO TRANSITION" 0
FM,
(BIPHASE MARK)
NO TRANSITION" ,
FMo
(BIPHASE SPACE) \ -_ _-1
TRANSITION" 0
HIGH .... LOW= 1
LOW ..... HIGH" 0
230834-7
Figure 7. Data Encoding Methods
Table 4. Maximum Bit Rates
Mode
Serial clocks
generated
externally
Self-clocked
operation
NRZI
FM
ASYNC
System
Clock
System Clockl
Serial Clock
Serial Bit Rate
4MHz
4
1 Mbps
6MHz
4
1.5 Mbps
4MHz
4.5
880 Kbps
6MHz
4.5
1.3 Mbps
4MHz
6MHz
4MHz
6MHz
4MHz
6MHz
32
32
16
16
16
16
125 Kbps
187 Kbps
250 Kbps
375 Kbps
62.5 Kbps
93.75 Kbps
110 INTERFACE CAPABILITIES
The SCC offers the choice of Polling, Interrupt (vectored or nonvectored) and Block Transfer modes to
transfer data, status, and control information to and
from the CPU. The Block Transfer mode can be implemented under CPU or DMA control.
POLLING
All interrupts are disabled. Three status registers in
the SCC are automatically updated whenever any
Conditions
Serial clocks synchronized with system
clock. Refer to parameter # 3 and 10 in
general timings.
Serial clocks synchronized with system
clock. Refer to parameter # 3 and # 10
in general timings.
Serial clocks and system clock
asynchronous.
Serial clocks and system clock
asynchronou,s
function is performed, For example, end-of-frame in
SDLC mode sets a bit in one of these status registers. The idea behind polling is for the CPU to periodically read a status register until the register contents indicate the need for data to be transferred.
Only one register needs to be read; depending on its
contents, the CPU either writes data, reads data, or
continues. Two bits in the register indicate the need
for data transfer. An alternative is a poll of the Interrupt Pending register to determine the source of an
interrupt. The status for both Channels resides in
one register.
2-162
inter
82530/82530-6
INTERRUPTS
When a SCC responds to an Interrupt Acknowledge
signal (INTA) from the CPU, an interrupt vector may
be placed on the data bus. This vector is written in
WR2 and may be read in RR2A or RR2B (Figures 9
and 10).
To speed interrupt response time, the SCC can
modify three bits in this vector to indicate status. If
the vector is read in Channel A, status is never included; if it is read in Channel B, status is always
included.
Each of the six sources of interrupts in the SCC
(Transmit, Receive and External/Status interrupts in
both channels) has three bits associated with the
interrupt source: Interrupt Pending (IP), Interrupt Under Service (IUS), and Interrupt Enable (IE). Operation of the IE bits is straightforward. If the IE bit is set
for a given interrupt source, then that source can
request interrupts. The exception is when the MIE
(Master Interrupt Enable) bit in WR9 is reset and no
interrupts may be requested. The IE bits are writeonly.
The other two bits are related to the interrupt priority
chain (Figure 8). As a peripheral, the SCC may request an interrupt only when no higher-priority device is requesting one, e.g., when lEI is High. If the
device in question requests an interrupt, it pulls
down INT. The CPU then responds with INTA, and
the interrupting device places the vector on the data
bus.
In the SCC, the IP bit signals a need for interrupt
servicing. When an IP bit is 1 and the lEI input is
High, the INT output is pulled Low, requesting an
interrupt. In the SCC, if the IE bit is not set by enabling interrupts, then the IP for that source can never be set. The IP bits are readable in RR3A.
The IUS bits signal that an interrupt request is being
serviced. If an IUS is set, all interrupt sources of lower priority in the SCC and external to the SCC are
prevented from requesting interrupts. The internal
interrupt sources are inhibited by the state of the
internal daisy chain, while lower priority devices are
inhibited by the lEO output of the SCC being pulled
Low and propagated to subsequent peripherals. An
IUS bit is set during an Interrupt Acknowledge cycle
if there are no higher priority devices requesting interrupts.
There are three types of interrupts: Transmit, Receive and External/Status interrupts. Each interrupt
type is enabled under program control with Channel
A having higher priority than Channel B, and with
Receiver, Transmit and External/Status interrupts
prioritized in that order within each channel. When
the Transmit interrupt is enabled, the CPU is interrupted when the transmit buffer becomes empty.
(This implies that the transmitter must have had a
data character written into it so that it can become
empty.) When enabled, the receiver can interrupt the
CPU in one of three ways:
• Interrupt on First Receive Character or Special
Receive condition.
• Interrupt on all Receive Characters or Special •
Receive. condition.
• Interrupt on Special Receive condition only.
Interrupt-on-First-Character or Special-Condition
and Interrupt-on-Special-Condition-Only are typically
used with the Block Transfer mode. A Special-Receive-Condition is one of the following: receiver
overrun, framing error in Asynchronous mode, Endof-Frame in SOLC mode and, optionally, a parity
error. The Special-Receive-Condition interrupt is different from an ordinary receive character available
interrupt only in the status placed in the vector
sce
scc
HIGHEST PRIORITY
sec
LOWEST PRIORITY
+5V
DBO-DB7
iNf
INTA ~--~~----------4-------------------~
__------------____
~
+5V
230834-8
Figure 8. Daisy Chaining SCC's
2-163
82530/82530-6
06 = 0) or as a request line in the DMA Block
Transfer mode (WR1; 06 = 1). To a DMA controller,
the SCC REQUEST output indicates that the SCC is
ready to transfer data to or from memory. To the
CPU, The READY line indicates that the SCC is not
ready to transfer data, thereby~uesting that the
CPU extend the 1/0 cycle. The DTRIREQUEST line
allows full-duplex operation under DMA control.
during the Interrupt-Acknowledge cycle. In Interrupt
on First Receive Character, an interrupt can occur
from Special Receive conditions any time after the
first receive character interrupt.
The main function of the ExternallStatus interrupt is
to monitor the signal transitions of the CTS, CD, and
SYNC pins; however, an ExternallStatus interrupt is
also caused by a Transmit Underrun condition, or a
zero count in the baud rate generator, or by the detection of a Break (asynchronous mode), Abort
(SDLC mode) or EOP (SDLC Loop mode) sequence
in the data stream. The interrupt caused by the
Abort or EOP has a special feature allowing the SCC
to interrupt when the Abort or EOP sequence is detected or terminated. This feature facilitates the
proper termination of the current message, correct
initialization of the next message, and the accurate
timing of the Abort condition in external logic in
SDLC mode. In SOLC Loop mode this feature allows
secondary stations to recognize the wishes of the
primary station to regain control of the loop during a
poll sequence.
PROGRAMMING
Each channel has fifteen Write registers that are individually programmed from the system bus to configure the functional personality of each channel.
Each channel also has eight Read registers from
which the system can read Status, Baud rate, or Interrupt information.
Only the four data registers (Read, Write for channels A and B) are directly selected by a High on the
DIG input and the appropriate levels on the RD, WR
and AlB pins. All other registers are addressed indirectly by the content of Write Register 0 in conjunction with a Low on the DIG input and the appropriate
levels on the RD, WR and AlB pins. If bit 3 in WWO
is 1 and bits 4 and 5 are 0 then bits 0, 1, 2 address
the higher registers 8 through 15. If bits 3, 4, 5 contain a different code, bits 0, 1, 2 address the lower
registers 0 through 7 as shown on Table 5.
CPU/DMA BLOCK TRANSFER
, The SCC provides a Block Transfer mode to accommodate CPU block transfer functions and DMA controllers. The Block Transfer mode uses the READY I
REQUEST output in conjunction with the FiEADYI
REQUEST bits in WR1. The READYIREQUEST output can be defined under software control as a
READY line in the CPU Block Transfer mode (WR1;
Writing to or reading from any register except RRO,
WRO and the Data Registers thus involves two operations.
Table 5. Register Addressing
O/C "Point High"
Code in WRO
High
Low
Low
Low
Low
Low
Low
Low
Low
Low
Low
Low
Low
Low
Low
Low
Low
Either Way
Not True
Not True
Not True
Not True
Not True
Not True
Not Tru!3
Not True
True
True
True
True
True
True
True
True
02
01
DO
Write
Register
Read
Register
X
X
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
X
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
Data
0
1
2
3
4
5
6
7
Data
Data
0
1
2
3
(0)
(1)
(2)
(3)
Data
9
-
10
11
12
13
14
15
10
(15)
12
13
(10)
15
InWRO
2-164
inter
82530/82530·6
First write the appropriate code into WRO, then follow this by a write or read operation on the register
thus specified. Bits 0 through 4 in WWO are automatically cleared after this operation, so that WWO then
points to WRO or RRO again.
Channel AlChannel B selection is made by the AlB
input (High = A, Low = B)
The system program first issues a series of commands to initialize the basic mode of operation. This
is followed by other commands to qualify conditions
within the selected mode. For example, the Asynchronous mode, character length, clock rate, number of stop bits, even or odd parity might be set first.
Then the interrupt mode would be set, and finally,
receiver or transmitter enable.
READ REGISTERS
The SCC contains eight read registers (actually nine,
counting the receive buffer (RRB) in each channel).
Four of these may be read to obtain status information (RRO, RR1, RR10, and RR15). Two registers
(RR12 and RR13) may be read to determine the
baud rate generator time constant. RR2 contains either the unmodified interrupt vector (Channel A) or
the vector modified by status information (Channel
B). RR3 contains the Interrupt Pending (IP) bits
(Channel A). Figure 9 shows the formats for each
read register.
The status bits of RRO and RR1 are carefully
grouped to simplify status monitoring: e.g. when the
interrupt vector indicates a Special Receive Condition interrupt, all the appropriate error bits can be
read from a single register (RR 1).
WRITE REGISTERS
The SCC contains 15 write registers (16 counting
WR8, the transmit buffer) in each channel. These
write registers are programmed separately to configure the functional "personality" of the channels. In
addition, there are two registers (WR2 and WR9)
shared by· the two channels that may be accessed
through either of them. WR2 contains the interrupt
vector for both· channels, while WR9 contains the
interrupt control bits. Figure 10 shows the format of
each write register.
RI CHAIIACTER AVAILABLE
~
ZERO COUNT
'--_ _ _ TI BUFFER EMPTY
'--_ _ _ _ _ CD
_ _ _ _ _ _ _ IYNClHUNT
~--------~S
....- - - - - - - - - - TI UNDERRUNIEDM
' - - - - - - - - - - - - - BREAK/ABORT
230834-9
ALL SENT
RESIDUE COOE 2
L -_ _ _ RESIDUE CODE 1
' - - - - - - - RESIDUE CODE 0
' - - - - - - - - - MRITY ERROR
....- - - - - - - - - RI OVERRUN ERROR
' - - - - - - - - - - - - CRClFRAMING ERROR
~------------ END OF FRAME (SDLC)
230834-10
Figure 9. Read Register Bit Functions
2-165
inter
82530/82530-6
Yo
VI
'-----II,
' - - - - - - - Y3
INTEIIIIUPT VECTOII·
~---------~
' - - - - - - - - - - - 'Is
~-----------------'"
~----------------------~
·MOOIFIED IN B CHANNEL
230834-11
CHANNEL B EXT/STAT .,.
CHANNEL B T.IP"
'-----CHANNEL 811• .,·
'-------CHANNEL A EXT/STAT.,·
' - - - - - - - - - C H A N N E L AT• .,·
' - - - - - - - - - - - C H A N N E L A II.IP"
~------------------O
'--------------------------0
·ALWAYS 0 IN 8 CHANNEL
230834-12
o
ON LOOP
~------- 0
~----------- 0
~------------- LOOP BINDING
~----------------O
-_
--_
-_
-_
--_
-_
- TWO
CLOCKSMISSING
MIllING
L..._'_
__
___
ONE CLOCK
230834-13
Figure 9. Read Register Bit FUnctions (Continued)
2-166
inter
82530/82530·6
TCa
TC,
TCz
TC3
TC.
LOWER BYTE OF
TIME CONSTANT
TC,
TC.
TC,
230834-14
TC,
TC9
' - - - - - TC,o
' - - - - - - - TCn
.....- - - - - - - - TC,z
UPPER BYTE OF
TIME CONSTANT
' - - - - - - - - - - - TC'3
' - - - - - - - - - - - - - TC,.
' - - - - - - - - - - - - - - - TC,s
230834-15
ZERO COUNT IE
.....----0
.....- - - - - - C D I E
' - - - - - - - - - SYNC/HUNT IE
.....- - - - - - - - - - C T S I E
' - - - - - - - - - - - - - Tx UNDERRUNlEOM IE
' - - - - - - - - - - - - - - - BREAK/ABORT IE
Figure 9. Read Register Bit Functions (Continued)
2-167
230834-16
82530/82530-6
WRITE REGISTER 0
IDr
De
Ds
I
D31 D2
D_
I
D,
Do
I
REGISTER
I
I
0
0
Oor
,
1
10r
0
0
0
1
1
0
,
30r
0
40r
1
0
1
50r
,
1
0
6 or
0
0
1
0
1
2 or
,
70r
0
0
0
NULL CODE
0
0
1
0
1
0
POINT HIGH REGIST
RESET EXTISTATUS INTERRUPTS
0
1
1
1
0
0
SEND ABORT
ENABLE INT ON NEXT Rx CHARACTER
RESET Tx INT PEND ING
1
0
1
1
1
0
ERROR RESET
t
1
1
RESET HIGHEST IUS·
.
CHANNEL·A ONLY
0
0
NULL CODE
0
1
RESET Rx CRC CHECKER
1
0
RESET T. CRC GENERATOR
1
1
RESET T. UNDERRUNlEOM LATCH
230834-17
WIlITE IIEGISTEII'
EXT. INT ENABLE
T. INT ENABLE
'-----_TY'I$ SPECIAL CONDITION
o
0
II. INT DISABLE
o
,
RalNT ON,.FIRS~ CHARACTEII 011 SPECIAL CONDITION
......+~o"",INT ON ALL Rx CHARACTERS OR SPECIAL CONDITION
'--......._'..IRa INT ON SPECIAL CONDITION ONLY
'------~REJ~Y/DMAREQUESTONIIECEIVEITRANSMIT
....--------READYIDMA ":QUEST FUNCTION
'-----------flIEADY/DMA REQUEST ENABLE
230834-19
Figure 10. Write Register Bit Functions
2·168
inter
82530/82530-6
V,
V2
'-------V3
INTERRUPT VECTOR
' - - - - - - - - - - V.
' - - - - - - - - - - - Vs
~-------------------~
'----------------- ~
230834-21
RIENAILE
SYNC CHARACTER LOAD INHIIIT
' - - - - - - - - ADORElllEARCH MODE (SOLC)
' - - - - - - - - HI CRC ENAILI
....- - - - - - - - - ENTER HUNT MODE
' - - - - -_ _ _ _ _ _ _ _ AUTO ENAILES
o
o
1
0
1
0
RIIIITIiCHAMCTER
RI 7 IIT11CHAMCTER
RI • IITIICHARACTER
~......_'... RI IIITliCHARIoCTER
230834-18
WRm REGISTER 4
IDr
De
lis
04 03 0210,1001
~
0
0
1
1
0
0
0
1
1
0
1
1
PARITY ENABLE
PARITY EVEN/ODD
0
1
SYNC MODE SENABLE
0
1
1'" STOP liTs/CHARACTER
2 STOP BITS!CHARACTER
ISTOPBIT/CHARACTER
0
0
0
1
1
0
• liT SYNC CHARACTER
11 BIT SYNC CHARACTER
SOLC MODE (01111110 FLAG)
1
1
EXTERNAL SYNC MODE
XI CLOCK MODE
XII CLOCK MODE
X32 CLOCK MODE
X84 CLOCK MODE
230834-20
Figure 10. Write Register Bit Functions (Continued)
2-169
825301.82530-6
T. CAe ENAIIU
'RflI '
~-------~~.
T. ENAJILE
...._ ~-----_ _ _ _ _ _ _ SENDIREAK
o
o
0
1
o
T•• IITI (OR LESS)lCHARACTER
T. 7 IITS/CHARACTER
T•• IITS/CHARACTER
~~~-t T•• IITs/CHARACTER
~________________ DTR
, 230834-22
SYNC,
SYNC,
SYNC,
SYNCa
ADR7
ADA,
=:
SYNc.
SYNCz
ADIIe
ADR,
SYNC,
SYNC,
SYNC.
SYNC,
ADR,
ADA,
SYNC.
SYNc.
SYNc.
SYNCo
AD",
AD",
SYNCs
SYNCa
SYNCs
1
ADRs
SYNCz
SYNCs
SYNCs
1
ADRz
SYNC,
SYNC,
SYNC,
1
ADA,
SYNCo
SYNCo
lYNCo
1
ADAo
X
X
X
X
MONOSYNC 8 BITS
MONOIYNC 8 BITS
BISYNC ,. BITS
BISYNC 12 BITS
SOLe
SDLe (ADDRESS RANGE)
230834-23
SYNC?
SYNC.
SYNC,s
SYNCl1
0
SYNC.
SYNC4
SYNC'4
SYNC,o
1
SYNC,
SYNCs
SYNC'3
SYNC,
1
SYNC4
SYNCZ
SYNC,z
SYNC,
1
SYNCs
SYNC,
SYNCl1
SYNC,
1
SYNCs:
SYNCo
SYNC,o
SYNCo
"
SYNC,
X
SYNCt
SYNC,
1
SYNCo
X
SYNC,
SYNC4
0"
MONOSYNC 8 BITS
MONOSYNC. BITS
BISYNC ,. BITS
BISYNC 12 BITS
SDLC
230834-24
Figure 10. Write Register Bit Functions (Col)tinued)
2·170
82530/82530·&
VECTOR INCLUDE ITATUI
NO VECTOR
' __ _ _ _ DlIAllLE I.OW&RCHAlN
.....- - - - - - I I A I T I R INTERRUPT ENAllLE
'--------ITATUIHlaH/lI'I'lTIBmw
' - - - - - - - - - - NON-VECTORmIlODE'
CHANNEL RElET.
CHANNEL RElET A
fORCE HAROWARE RElET
230834-25
'See 82530 Technical User's Manual for details of this mode.
(Document # 230925-002 or -003)
WAITE REGISTEA 10
l 0,
D.
0,
I I 0.1 0, I I I
D.
D.
Do
~
• liTIAlT SYNC
LOOP MODE
AIOATJI'tllI ON UNDERIIUN
IIAIIK/~ IDLE
GO ACTIVE ON POLL
0
0
NAZ
0
1
NAZI
1
0
fMl (TAANSMISSION
1
1
fMO (TAANSMISSION 0)
1)
CRC PRESET I/O
230834-27
TRANSMIT CLOCK • ~ lOIN
_TCLOCK' ~ PIN
TIIAHIMIT CLOCK' IA GENERATOII DIITI'UT
_ I T CLOCK ' D'LL OUTPUT
IIICIlVE CLOCX • III O...RATOR OUTPUT
.....----------------------.. ~xnwNOx~
Figure 10, Write Register Bit Functions (Continued)
2-171
230834-29
82530/82530-6
'---- :~: I
TC2
TC,
LOWER IYTE OF
TC. \ TIME CONSTANT
' - - - - - - - - - - - - TCS
~------------------------~---------------------------
TC,
TCf
230834-26
WRITE REGISTER 13
I~I~I~I~I~I~I~I~I
I
L
TC,
TC,
1
TC,o
TCn
UPPER IYTE OF
TCu \ TIME CONSTANT
TCu
TC,.
TCU
230834-28
WRITt! IIEGISTEIi ,.
I~
Itt
~
I I I I I I
D.
D3
D2
D,
Do
~
III GENERATOII ENAILE
III GENERATOII SOUIICE
15ft REOUEST FUNCTION
AUTO ECHO
LOCAL LOOPIACK
0
0
0
0
0
0
,
,
,
,
, ,
,
,
,
,
0
0
0
0
0
, ,
0
NULL COMMAND
ENTEII SEARCH MODE
IIIIET MISSING CLOCK
DISAILE DPLL
SET SOUIICE ' IR GENE RAT OR
SET SOURCE ' IIf'i(!
SETFMMODE
SET NIIZI MODE
230834-30
Figure 10. Write Register Bit Functions (Continued)
2-172
inter
82530/82530-6
o
ZIRO COUNT II
~---O
~-----CDII
' - - - - - - - - - IYNC/HUNT II
' - - - - - . . . : . - - - - - CTIII
~---------- TaUNDllIlUJNlIOM II
~-------------.III~AlD~11
230834-31
Figure 10. Write Register Bit Functions (Continued)
82530 TIMING
The SCC generates internal control signals from WA
and AD that are related to ClK. Since ClK has no
phase relationship with WA and AD, the circuitry
generating these internal control signals must provide time for metastable conditions to disappear.
This gives rise to a recovery time related to ClK.
The recovery time applies only between bus transactions involving the SCC. The recovery time required for pro~ operation is specified from the rising edge of WA or AD in the first transaction in-
volving the SCC to the fal\ing edge of WA or AD in
the second transaction involving the SCC. This time,
TREC must be at least 6 ClK cycles plus 130 ns, for
the 82530-6.
Read Cycle Timing
Figure_11 iIIustr!tes Aead cycle timi~ddresses
on AlB and D/C and the status on INTA must remain stable throughout the cycle. If CS fal\s after AD
fal\s or if it rises before AD rises, the effective AD is
shortened.
W~~C __________~)(~_________________A_DD_R_E_S_S_~_L_ID________________-J)(~
\----/
\
\'------~/
DBO-DBl
_____
----------------~-----~(~____________'X
DATA VALID
»)-----230834-32
Figure 11. Read Cycle Timing
2-173
82530/82530-6
Write Cycle Timing
Interrupt Acknowledge Cycle Timing
Figure 12 illustrates Write cycle timi~ddresses
on AlB and DIG and the status on INTA must remain stable throughout the ~e. If es falls after
WR falls or if it rises before WR rises, the effective
WR is shortened.
Figure 13 illustrates Inter!:!:!ELAcknowledge cycle
timing. Between the time INTA goes Low and the
falling edge of RD, the internal and externallEI/IEO
daisy chains settle. If there is an interrupt pending in
the sec and rEI is High when AD falls, the Acknowledge cycle is intended .for the sec. In this case, the
may be programmed to respond to AD Low by
placing its interrupt vector on 00-07 and it then sets
the appropriate Interrupt-Under-Service internally.
sec
X
AlB, DIe
iNi'A
X
ADDRESS VALID
I
ll"S
\
/
\
WR
DBD-DB7
\
I
(
DATA VALID
>
230834-33
Figure 12. Write Cycle Timing
/
INTA"\
IS
RD
IS
DBO-OB7
II
/
\
(
X
VECTOR
)
230834-34
Figure 13. Interrupt Acknowledge Cycle Timing
2-174
intJ
82530/82530-6
• Notice: Stresses above those listed under "Absolute Maximum Ratings" may cause permanent damage to the device. This is a stress rating only and
functional operation of the device at these or any
other conditions above those indicated in the operational sections of this specification is not implied Exposure to absolute maximum rating conditions for
extended periods may affect device reliability.
ABSOLUTE MAXIMUM RATINGS*
Case Temperature
Under Bias ...................... O°C to. + 70°C
Storage Temperature
Ceramic Package ............ - 65°C to + 150°C
Plastic Package ............. -40°C to + 125°C
Voltage on Any Pin with
Respect to Ground ............ - 0.5V to + 7.0V
D.C. CHARACTERISTICS Te
Symbol
= 0°Ct070°C;Vee = +5V±5%
Parameter
Min
Max
Units
Test Conditions
VIL
Input Low Voltage
-0.3
+0.8
V
VIH
Input High Voltage
+2.4
Vee +0.3
V
VOL
Output Low Voltage
+0.45
V
IOL = 2.0 mA
VOH
Output High Voltage
V
IOH = -250/-LA
+2.4
IlL
Input Leakage Current
±10
/-LA
O.4V to 2.4V
IOL
Output Leakage Current
±10
/-LA
O.4V to 2.4V
lee
Vee Supply Current
250
mA
CAPACITANCE Te
Symbol
= 25°C; Vee = GND = OV
Parameter
Min
Max
Units
10
pF
fc
Unmeasured pins
returned to GND
CIN
Input Capacitance
COUT
Output Capacitance
15
pF
CliO·
Input/Output Capacitance
20
pF
2-175
Test Conditions
=
1 MHz
intJ
82530/82530-6
A.C CHARACTERISTICS Tc = O·Cto +70·C;Vcc
=
+5V ±5%
READ AND WRITE TIMING
Number
82530 (4 MHz)
Parameter
Symbol
82530-6 (6 MHz)
Min
Max
Min
Max
Units
1
tCl
ClK low Time
105
2000
70
1000
ns
2
tCH
ClK High Time
105
2000
70
1000
ns
10
ns
tf
ClK Fall Time
4
tr
ClK Rise Time
5
tCY
ClK Cycle Time
3
20
20
250
4000
165
15
ns
2000
ns
80
0
ns
0
0
ns
Address to RD! Setup Time
80
0
ns
Address to RD t Hold Time
0
0
ns
6
tAW
Address to WR ! Setup Time
7
tWA
Address to WR
8
tAR
9
tRA
10
tiC
INTA to ClK t Setup Time
11
tlW
INTA to WR! Setup Time (Note 1)
t
t
Hold Time
5
ns
55
ns
0
0
ns
200
55
ns
12
tWI
INTA to WR
13
tlR
INTA to RD! Setup Time (Note 1)
14
tRI
INTA to RD t Hold Time
0
0
ns
15
tCI
INTA to ClK t Hold Time
100
100
ns
16
tClW
CS low to WR!
17
tWCS
CS to WR
18
tCHW
CS High to WR! Setup Time
19
tClR
CS low to RD! Setup Time (Note 1)
20
tRCS
CS to RD t Hold Time (Note 1)
21
tCHR
CS High to RD! Setup Time (Note 1)
22
tRR
RD low Time (Note 1)
23
Null
Parameter Deleted
24
tRDI
RD t to Data Not Valid Delay
25
tRDV
RD! to Data Valid Delay
250
105
ns
26
tDF
RD t to Output Float Delay (Note 2)
70
45
ns
t
Hold Time
5
200
Setup Time
Hold Time
0
0
ns
0
0
ns
100
5
ns
0
0
ns
0
0
ns
100
5
ns
390
150
ns
0
0
ns
NOTES:
1. Parameter does not apply to Interrupt Acknowledge transactions.
2. Float delay is defined as the time required for a +O.5V change in the output with a maximum D.C. load and minimum A.C.
load.
2-176
82530/82530-6
:c
A.C. TESTING INPUT, OUTPUT WAVEFORM
24=X >
'2.0
045
08
OPEN DRAIN TEST LOAD
+5V
20
TEST POINTS
<
08
2.2K
230834-35
A.C. Testing: Inputs are driven at 2.4V for a Logic "1" and 0.45V
for a Logic "0". Timing measurements are made at 2.0V for a
Logic "1" and 0.8V for a Logic "0".
50pF
r
A.C. TESTING LOAD CIRCUIT
230834-42
DEVICE
UNDER
TEST
lCL"'50PF
-=
230834-41
CL = 150 pF
CL Includes Jig Capacitance
CLK
-~--Y
...........:;
Ali. Die
~~~-.
CD
o
1----0
CD-
~
-(i)-~ -:of®
- ® t~®~
--)l
_(1:)__
- V®
~
f-lI
®~
0,---.
Di-
](
®~
-LJ
0--
-@)-
--0-
-®~ -
~®
21
DBO-DB7
READ
)]
@-
:1
®
®
®
~®
-®.JI.
@)
DBO-DB7
WRITE
READY/REO
READY
)I
@-I- - ®
J(
-
r-+@
0..-..:...
®
READY/REO
REOUEST
iii'iiiiiEQ
~
@
-
J
f--®J
REOUEST
-@-
\.
230834-36
Figure 14. Read and Write Timing
2-177
inter
82530/82530-6
INTERRUPT ACKNOWLEDGE TIMING, RESET TIMING, CYCLE TIMING
Number Symbol
82530 (4 MHz)
Parameter
Min
Max
82530-6 (6 MHz)
Min
Units
Max
27
tAD
Address Required Valid to Read Data
Valid Delay
28
TWW
WR low Time
390
60
29
tDW
Data to WR J, Setup Time
0
0
ns
30
tWD
Data to WR
t
0
0
ns
31
tWRV
WR J, to Ready Valid Delay (Note 4)
240
200
ns
32
tRRV
RD J, to Ready Valid Delay (Note 4)
240
200
ns
33
tWRI
WR J, to READY/REO Not Valid Delay
240
200
ns
34
tRRI
RD J, to READY/REO Not Valid Delay
240
200
ns
35
tDWR
WR
t
to DTR/REO Not Valid Delay
5tCY
+300
5tCY
+250
ns
36
tORD
RD
t
to DTR/REO Not Valid Delay
5tCY
+300
5tCY
+250
ns
37
tliD
INTA to RD J, (Acknowledge) Delay
(Note 5)
250
38
til
RD (Acknowledge) low Time
285
39
tlDV
RD J, (Acknowledge) to Read Data
Valid Delay
40
tEl
lEI to RD J, (Acknowledge) Setup Time
41
tiE
lEI to RD
42
tEIEO
lEI to lEO Delay Time
43
tCEO
ClK
44
tRIl
Ri5T to INT Inactive Delay (Note 4)
t
t
Hold Time
(Acknowledge) Hold Time
590
325
t to WR J, Delay for No Reset
t to RDJ, Delay for No Reset
tRW
RD
46
tWR
WR
47
tRES
WR and RD Coincident low for Reset
48
tREC
Valid Access Recovery Time
(Note 3)
ns
100
100
0
ns
ns
ns
0
120
45
ns
125
120
to lEO Delay
ns
250
190
ns
100
ns
250
250
ns
500
500
ns
30
15
ns
30
30
ns
250
250
ns
6tCY
+200
6tCY
+130
ns
NOTES:
3. Parameter applies only between trlj.nsactions involving the SCC.
4. Open-drain output, measured with open-drain test load.
5. Parameter is system dependent. For any SCC in the daisy chain, tliD must be greater than the sum of tCEQ for the
highest priority device in the daisy chain, tEl for the SCC a'nd tEIEO for each device separating them in the daisy chain.
2-178
inter
82530/82530-6
eLK
INTA _ _ _ _ _ _""\
@---.t
-+_____
DBO-DB7 _ _ _ _ _ _ _ _
-++_~
lEI
lEO
t---®--~--I_
1~·~I_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~)f~-------230834-37
Figure 15. Interrupt Acknowledge Timing
230834-38
Figure .16. Reset Timing
cs
RDORWR
1~'------~\,-~_____
/
---:-J
~
_---J}t-----\=======_'®~r~1-----..."j\~__
230834-39
Figure 17. Cycle Timing
2-179
inter
82530/82530-6
GENERAL TIMING
Number Symbol
82530 (4 MHz)
Parameter
Min
t
1
tRCC
RxC
2
tRRC
RxD to RxC
(Note 1)
3
tRCR
RxD to RxC
(Note 1)
4
tORC
5
tRCD
t
Max
82530-6 (6 MHz)
Min
Units
Max
100
100
ns
t
Hold Time (X1 Mode)
0
0
ns
t
Hold Time (X1 Mode)
150
150
ns
RxD to RxC.J, Setup Time (X1 Mode)
(Notes 1, 5)
0
0
ns
RxD to RxC.J, Hold Time (X1 Mode)
(Notes 1, 5)
150
150
ns
to ClK
6
tSRC
SYNC to RxC
7
tRCS
_ SYNC toRxC
8
tTCC
Setup Time (Notes 1, 4)
t Setup Time (Note 1)
t Hold Time (Note 1)
TxC.J, to ClK
t
Setup Time (Notes 2, 4)
-200
-200
ns
3tCY
+20d
3 tCY
+200
ns
100
100
ns
9
tTCT
TxC.J, to TxD Delay (X1 Mode) (Note 2)
300
300
ns
10
tTCD
TxC to TxD Delay (X1 Mode)
(Notes 2, 5)
300
300
ns
11
tTDT
TxD to TRxC Delay (Send Clock Echo)
200
200
ns
t
12
tDCH
RTxC High Time
180
150
ns
13
tDCl
RTxC low Time
180
150
ns
14
tDCY
RTxC Cycle Time
4tCY
15
tClCl
Crystal Oscillator Period (Note 3)
250
4tCY
16
tRCH
TRxC High Time
180
150
ns
17
tRCl
TRxC low Time
180
150
ns
18
tRCY
TRxC Cycle Time (Note 6)
4tCY
4tCY
ns
19
tCC
CD or CTS Pulse Widtl:l
200
200
ns
20
tSS
SYNC Pulse Width
200
200
ns
1000
165
ns
1000
ns
21
tWRT
WR to RTS Valid Delay
6tCY
6tCY
ns
22
tWDT
WR to DTR Valid Delay
5tCY
5tCY
ns
NOTES:
1. RxC is RTxC or TRxC, whichever is supplying the receive clock.
2. TxC is TRxC or RTxC, whichever is supplying the transmit clock.
3. Both RTxC and SYNC have 30 pF capacitors to ground connected to them.
4. Parameter applies only if the data rate is one-fourth the system clock (ClK) rate. In ali other cases, no phase relationship
between RXC and ClK or 'iXC and ClK is required.
5. Parameter applies only to FM encoding/decoding.
6. Only applies to transmitter and receiver. For DPll and Baud Rate Generator Timings, the requirements are identical to
system clock, ClK, specifications.
2-180
82530/82530-6
CLK
READY/REO
REOUEST
READY/REO
READY
~,TRiC
RECEIVE
RxD
SYNC
EXTERNAL
TRxC, ii'i'iC
TRANSMIT
TxD
TRiC
OUTPUT
~----~---1L==®~
-->f;,1--®-:....-_---l~-"" . . .______J\,...----
r----------------------------
SYNC
INPUT
230834-40
Figure 18. General Timing
2-181
inter
APPLICATION
NOTE
AP-401
December 1986
Designing With the 82510
Asynchronous Serial Controller
FAISAL IMDAD-HAQUE
APPLICATIONS ENGINEER
Order Number: 231928·001
2·182
inter
AP·401
1.0 INTRODUCTION
The emergence of asynchronous communications as the
most widely used protocol (it commands the largest installed base of nodes, exceeding HDLC/SDLC, the second most popular protocol, by a factor of 10 to 1) for
point to point serial links has led to the need for an
asynchronous communications component with high
integration to reduce component count and decrease
the cost of a serial port. The trend towards higher data
rates and multiple job, multiple user systems has underscored the need for an intelligent serial controller to
improve system throughput and decrease the CPU load
normally associated with asynchronous serial communications.
The 82510 CMOS Asynchronous Serial Controller is
designed to improve asynchronous communications
throughput and reduce system cost by integrating functions and simplifying the system interface. Two independent FIFOs, and Control Character Recognition
(CCR), provide data buffering and increase software
efficiency. Two Baud Rate Generators/Timers, an OnChip Crystal Oscillator and seven Programmable I/O
pins provide a high degree of integration and reduce
system component count. This application note will
demonstrate the use of these features in an Asynchronous Communications Environment.
1.1 Goal
The goal of this application note is to demonstrate the
use of the major 82510 features in an asynchronous
communications environment and to depict basic hardware and software design techniques for the 82510. It
will discuss interfaces using both polling and interrupt
techniques, as well as the impact of FIFOs using either
scheme. An application example covering the application of Error Free File Transfer is also provided.
This is followed by a discussion of the hardware design
and system interface considerations in sections three
and four. The fifth section provides some software techniques for transmitting and receiving data as well as the
use of timers. Section seven briefly discusses the file
transfer application based on the XMODEM protocol
and includes the software listings.
2.0 82510 DESCRIPTION
2.1 Overview
The 82510 can be divided into seven functional blocks
(See Figure 1): Bus Interface Unit (BIU), Timing Unit,
Modem Interface Module, Tx FIFO, Rx FIFO, Tx Machine and Rx Machine. All blocks, except BIU can generate a block interrupt request to the 82510 interrupt
logic. In the case of the Rx Machine, Timing Unit and
Modem Interface Module, multiple sources (errors and
status events) within the block cause the block interrupt
request to become active. All of the blocks have registers associated with them. The registers, allow configuration, provide status information about events/errors,
and may also be used to send commands to each block.
2.2 Bus Interface Unit (BIU)
The Bus Interface Unit (BIU) interfaces the 82510
functional blocks to the system or CPU bus. It provides
read and write access to the 82510 registers and controls the generation of interrupts to the external world.
The interrupt logic resolves contention between block
interrupt requests, on a priority basis. The BIU also has
the Hardware Reset circuitry, which is driven by the
RESET pin. The reset signal clears all internal Flip
Flops, and Registers and puts them in a predefined
state. All activities on the Bus interface, including register accesses by the CPU, are synchronized to an internal (82510) system clock, supplied via the CLK pin.
1.2 Scope
The application note describes the operation of the
82510 ASC in a normal (non 8051 9-bit) asynchronous
communications mode. The majority of the discussion
is .focused towards the systems aspects of the Controller. The use of the 82510 in a multidrop or 8051 9-bit
asynchronous environment is not covered. This application note assumes that the reader is familiar with the
82510 in terms of pin description, register architecture
and interrupt structure. It is also .assumed that the
reader is familiar with the information provided in the
82510 Data Sheet.
The initial sections of the application note provide an
overview of the 82510 and its major functional blocks.
2.3 Receive Machine (RxM)
The Rx Machine (RxM) converts the serial data to parallel and writes it to the Rx FIFO, along with the appropriate flags (available in the Receive Flags Register).
The Rx Machine can be configured for control character recognition, data sampling and DPLL operation.
The software can check for noise, control character,
break, address or parity apd framing errors by reading
the status or character flags. Optionally, the Receive
Status bits (in RSn, when enabled, can generate interrupt requests. The Rx Machine block Interrupt request
is reflected in the General Status Register and is set
when an enabled interrupt request within the Rx Ma-
2-183
inter
AP-401
chine (i.e. RST bits) becomes active. The Rx Machine
has eight registers associated with it:
Receive Data (RXD)--Receive Data Character
Receive Flags (RXF)-Receive Character Flags
Receive Status (RST)-Receive Events and Receive Errors
Receive Int~rrupt Enable (RIE)--Enables Interrupts
on corresponding bits in RST
Receive Mode (RMD)-Receive Machine Configuration
Receive Command (RCM)-Receiver ,Command Register
Line Control (LCR)-16450 Register, Character Attribute Configuration
Line Status (LSR)--16450 Status Register, Tx and Rx
status
erate Interrupts (if enabl~u,,~m transitions, in the" modem input pins (DCD, CTS, RI, and DSR). The modem output pins can be controlled by the CPU, alsQ the
RTS pin can be used to provide flow control, in the
automatic transmission mode. It is the source of the
Modem Interrupt bit in GSR. This bit is set whenever
there is a state change in the DCD, RI, DSR or CTS
inputs (reflected in Mo4em Status Register) and the
corresponding enable bits are set. The function and direction of the multifunction pins can be reprogrammed
and is available as a configuration option. Multifunction pins, when configured as outputs, can be controlled by the CPU through the Modem Control Register: The Modem module has four registers associated
with it:
Modem Status
Register (MSR)-State transitions on modem input
pins, and State of the modem input pins
Modem Control (MCR)-Control state of Modem
Output pins
Modem Interrupt
Enable (MIE)-Enable Interrupt on State transitions in
modem input pins
2.4 Transmit Machine (TxM)
The Tx Machine reads characters from the Tx FIFO
and transmits them serially over the TXD line. The Tx
Machine can also transmit additional character attributes (9th bit of Data, Address Marker, Software Parity) available from the Transmit Flags, if configured in
the appropriate mode. The Tx Machine Idle interrupt
request is reflected in the GSR and LSR registers to
indicate that the Transmitter is either Empty or Disabled. The Tx Machine has six registers associated with
it:
Line Control (LCR)--16450 Register, Character Attribute Configuration
Line Status (LSR)-16450 Status Register, Tx and Rx
status
I/O Pin Mode (PMD)-Functions and Directions of
Multifunction pins
2.6 Timing Unit
The Timing Unit is responsible for the generatipn of the
System Clock, using either its Crystal Oscillator or an
externally generated clock, and generation of the Tx
and Rx clocks from either the On-Chip Baud Rate
Generators or the SCLK pin. It is also responsible for
generating Timer Expired interrupts when the
BRGs/Timers are configured for use as Timers. There
are ten registers associated with the Timing Unit, four
of these are used in the Timer mode only.
Timer Status (TMST)-Timer A and/or Timer B expired
Transmit Mode (TMD)--Tx Machine Configuration
Transmit Command--(TCM)-Transmit Command
Register
Timer Interrupt
Enable (TMIE)-Enables Interrupts upon Expiration
of Timers A or B in TMST
Transmit Flags (TXF)-Transmit Character Flags
Timer Control (TMCR)--Start and Disable Timers
Transmit Data (TXD)--Transmit Data'Character
Clock Configure (CLCF)--Select source and mode for
Tx and Rx clocks
2.5 Modem Interface Module
BRG B Configuration (BBCF)--Mode and Clock
source of BRG B
The Modem Interface module is responsible for the modem interface and general purpose I/O pins. It will gen-
2·184
inter
AP-401
BRG B LSB of Divisor (BBL)-Least Significant Byte
of BRG B Divisor/Count
are totally independent of each other and each FIFO
can generate an interrupt request which indicates that
the configured threshold has been met.
BRG A MSB of Divisor (BBH)-Most Significant Byte
of BRG B Divisor/Count
3.0 HARDWARE DESIGN
BRG A Configuration (BACF)-Mode and Clock
source of BRG A
3.1 System Interface
BRG A LSB of Divisor (BAL)-Least Significant Byte
of BRG A Divisor/Count
The 82510 has a standard I/O peripheral interface, it
has a demultiplexed Bus, which consists of a bidirectional eight bit Data Bus, and three Address lines. Interrupt, Read, Write, Chip Select and Reset pins complete the system interface. The three address lines along
with the Bank register are used to select a particular
register.
BRG A MSB of Divisor (BAH)-Most Significant
Byte of BRG A Divisor/Count
2.7 FIFOs, Rx and Tx
The Dual FIFOs (transmit and receive), serve as buffers for the 82510. They buffer the transmitter and Receiver from the CPU. Each of the FIFOs has a programmable threshold. The threshold is the FIFO level
which will generate an interrupt. The threshold is used
to optimize the CPU throughput and provide increased
interrupt to service latency for higher baud rates. It can
be configured through the FIFO Mode Register. Each
FIFO character has flags associated with it (TxF and
RxF). As each character is read from the Rx FIFO its
flags are put into the RxF register. Before a write to
TXD (if character configuration requires) the character
flags are written to the TXF register. The two FIFOs
3.1.1 REGISTER ACCESS
The 82510 registers are logically divided into four
banks. Only one bank can be accessed at anyone time.
Each register bank occupies eight I/O addresses. To
select a register, the correct Bank must first be selected
by writing to the GIR/Bank register (the GIR/Bank
registeri/O address is two (Ao = 0, Al = I, A2 = 0).
Then one of the eight I/O space addresses is selected by
outputting a value (between zero and seven) to the
82510 address pins Ao-A2'
r-
- r+
Vss - r+
A(2-0) 0(7-0)
SERIAL MODULE
Vee
INT
: r-~
INT
4
R1l
WR
eli
RESET
-
-~
-~
BUS
INTERFACE
UNIT
~
TX
, FIFO
f-
TX
MACHINE
I- ~ -+ TXD
RX
FIFO
~
RX
MACHINE
~ l- I-
T-IRT~l
jM]TS
INT
2
INTERNAL BUS
l
l
rJx TJx
TIMING
BLOCK
(BRGS. SYS CLOCK)
MODEM
INTERFACE
MODULE
IX
RXC
RXD
IX
TXC
::
.
I- CLKjXI
I- Wf2/X2
I- Rl/SCLK
J::
- f::
Ji+- ~ m
fiID!/TA/(!lJ'Tll
1leIj/ICLK/OUfl
DTR/TB
irn
l-
I-
231928-1
Figure 1.82510 Block Diagram
2-185
inter
Ap·401
BANK ZERO 825O-COMPATIBLE BANK
Reglater
5
6
3
0
Addre88 Defaul
2
1
xD
Tx Data
bit 7
Tx Data Tx Data
bitS
bit 5
TxData
bit 4
TxData
bit 3
TxData
bit 2
Tx Data
bit 1
TxData
bit 0
0
.....;
RxD
Rx Data
bit 7
RxData RxData
bitS
bit 5
RxData
bit 4
RxData
bit 3
RxData
bltl!
RxData
bit 1
RxData
bit 0
0
-
7
4 '
BAL
BRGA LSB Divide Count (DLAB = 1)
0
02H
BAH
BRGA MSB Divide Count (DLAB = 1)
1
OOH
GER
0
GIR/BANK
0
LCR
0
TxMachine Modem
Interrupt
Interrupt
' I;nable
Enable
RxMachine
Interrupt
Enable
TxFIFO
Interrupt
Enable
RxFIFO
Interrupt
Enable
1
OOH
Active
Block Int
bit 2
Active
Block Int
bit 1
Active
Block Int
bit 0
Interrupt
Pending
2
01H
Parity
Mode
bit 0
Stop bit
Length
bit 0
Character
Length
bit 1
Character
Length
bit 0
3
OOH
OUT 0
Loopback OUT2
OUT 1
RTS
DTR
Complement Control bit Complement Complement Complement Complement
4
OOH
TxFIFO
Interrupt
BANK BANK
Pointer Pointer
bit 1
bit 0
DLAB
Set
Divisor
Break
Latch
Access bit
MCR
0
0
LSR
0
TxM
Idle
MSR
Timer
Interrupt
Enable
Parity
Mode
bit 2
0
Parity
Mode
bit 1
DCDlnput Rllnput DSR Input
Inverted Inverted Inverted
~CRO
Break
Detected
Framing
Error
CTSlnput State
Change
Inverted
inDCD
Parity
Error
Overrun
Error
RxFIFO
IntReg
5
60H
State(H- L) State
Change
Change
inRI
inDSR
State
Change
inCTS
S
OOH
7
OOH
Address or Control Character Zero
BANK ONE-GENERAL WORK BANK
Reglater
7
6
5
4
3
2
1
0
Addre88 Default
tJ"xD
TxData
bit 7
TxData TxData
bitS
bit 5
Tx Data
bit 4
TxData
bit3
TxData
bit 2
Tx Data
bit 1
TxData
bit 0
0
-
RxD
RxData
bit 7
RxData RxData
bitS
bit 5
RxData
bit 4
Rx Data
bit 3
RxData
bit 2
Rx Data
bit 1
RxData
bit 0
0
-
RxF
-
RxChar RxChar
Noisy
OK
RxChar
Parity
Error
Address or
Control
Character
Break
Flag
RxChar
Framing
Error
Ninth
Data bit
of RxChar
1
-
1
-
IrxF
Address Software Ninth bit
Marker bit Parity bit of Data Char
GIR/BANK
0
IrMST
-
-
~MCR
,0
MCR
0
BANK
Pointer
bit 1
BANK
Pointer
bit 0
0
0
0
Active'
Block Int
bit 2
0
Active
Block Int
bit 1
0
0
Active
Block Int
bit 0
Interrupt
Pending
2
01H
TimerB
Expired
Timer A
Expired
3
30H
Start
TimerB
Start
Timer A
3
-
4
OOH
GateB
State
Gate A
State
-
-
0
Trigger
GateB
Trigger
Gate A
0,
0
0
OUT 0
Loopback OUT2
OUTI
RTS
DTR
Complement Control bit Complement Complement Complement Complement
Figure 2. 82510 Register Map
2-186
inter
Ap·401
BANK ONE-GENERAL WORK BANK (Continued)
Register
7
FLR
-
5
6
3
4
RST
Addressl
Control
Character
Received
Addressl Break
Break
Framing
Control
Terminated Detected Error
Character
Match
RCM
Rx
Enable
Rx
Disable
MSR
DCD
Rllnput
Complement Inverted
TCM
0
0
GSR
-
-
ICM
0
0
Flush
RxFIFO
DSR Input
Inverted
CTSlnput State
Inverted Change
inDCD
0
Parity
Error
Overrun RxFIFO
Interrupt
Error
Requested
Open Rx
FIFO
State
Change
inRI
0
0
State
State
Change Change
inDSR inCTS
Flush Tx
Machine
Flush Tx Tx
Enable
FIFO
TxM
Interrupt
Modem
Interrupt
TxFIFO RxFIFO
RxM
Interrupt Interrupt Interrupt
Software
Reset
Manuallnt
Status
Acknowledge Clear
Command
0
0
Address Default
0
1
Tx FIFO Level
LockRx
FIFO
Flush
RxM
Timer
Interrupt
2
-
Rx FIFO Level
Tx
Disable
0
Power
Down
Mode
4
OOH
5
OOH
5
-
6
OOH
6
-
7
12H
7
-
BANK TWO-GENERAL CONFIGURATION
Register
7
6
FMD
0
0
GIR/BANK
0
BANK
Pointer
bit 1
TMD
IMD
Error
Echo
Disable
5
BANK
Pointer
bit 0
RMD
0
Control
9-bit
Character
Character
Echo Disable Length
0
0
3
2
0
0
1
Stop Bit Length
Software
Parity
Mode
Interrupt
RxFIFO ulah
Acknowledge Depth
Mode
Mode
Select
0
Address Default
0
Tx FIFO Threshold
Interrupt
Active
Active
Block Int Block Int Pending
bit 1
bit 0
Active
Block Int
bit 2
Transmit Mode
0
ACR1
RIE
4
Rx FIFO Threshold
Loopbackor
Echo Mode
of Operation
Addressl
Control
Character
Match
Interrupt
Enable
Break
Terminate
Interrupt
Enable
Break
Detect
Interrupt
Enable
Disable
DPLL
Sampling Start bit
Window Sampling
Mode
Mode
Address/Control
Character Mode
Framing
Error
Interrupt
Enable
OOH
01H
3
OOH
4
OCH
5
OOH
Parity
Error
Interrupt
Enable
Overrun
Error
Interrupt
Enable
0
6
1EH
0
0
0
7
OOH
Address or Control Character 1
Addressl
Control
Character
Recognition
Interrupt
Enable
1
2
BANK THREE-MODEM CONFIGURATION
7
6
5
4
3
2
1
0
Address
Default
CLCF
Register
RxClock
Mode
RxClock
Source
TxClock
Mode
TxClock
Source
0
0
0
0
0
OOH
BACF
0
0
0
0
BRGA
Mode
0
0
1
04H
0
05H
1
OOH
BRGA
Clock
Source
BBL
BRGB LSB Divide Count (DLAB
BBH
BRGB MSB Divide Count (DLAB
= 1)
= 1)
Figure 2_ 82510 Register Map (Continued)
2-187
Ap·401
BANK THREE-MODEM CONFIGURATION (Continued)
Register
7
6
GIR/BANK
0
BANK
Pointer
bit.1
BBCF
PMD
5
BANK
Pointer
bit 0
BRGB Clock Source
0
4
3
Active
Block Int
bit 2
0
0
0
DCDIICLKI DCDIICLKI DSR/TAI DSR/TAI RIISCLK
aUT 1
aUT 1
aUTO
aUTO
Function
Direction
Function
Direction Function
MIE
0
0
0
0
TMIE
0
0
0
0
2
Active
Block Int
bit 1
1
0
Active
Block Int
bitO
Address Default
Interrupt
Pending
01H
BRGB
Mode
0
0
3
84
DTR/TB
Function
0
0
4
FCH
5
OFH
6
OOH
DCDState RI State
DSRState CTSState
Change Int Change Int Change Int Change Int
Enable
Enable
Enable
Enable
0
2
0
TimerB
Interrupt
Enable
Timer A
Interrupt
Enable
Figure 2. 82510 Register Map (Continued)
3.1.2 READ AND WRITE CYCLES
3.1.3 80186 INTERFACE
Like most other I/O based peripherals the Read and
Write pins are used to access data in the 82510. Each
read or write cycle has specified setup and hold times in
order for the data to be transferred correctly to/from
the 82510. The critical timings for the read cycle are:
1. Address Valid to Read Active (Tavrl)
2. Command Access Time to Data Valid (Trldv)
3. Command Active Width (Trlrh)
The exact interface is shown in Figure 3. The schematic
shows the 80186 interface to the 82510 on a local bus.
Although the Data Bus is buffered, it is possible to
directly connect the 82510 to the 80186 data bus; because the Data Float Delay after read inactive is 40 ns
for the 82510, which is well under the 85 ns requirement of the 80186. The timing equations for the interface are given below.
Read Cycle:
The less critical parameters are:
4. Address Hold to Read Inactive (Trhax)
5. Data Out Float Delay after Read Inactive (Trhdz)
Address to Read Low
- Latch DelaYmax
=
Tclel - Tclavmax
+ Tclrlmin
Read Access Time = 2Tclcl - Tclrlmax - Tdvcl Transceiver DelaYmax
The critical timings for the write cycle are:
1. Address Valid to Write Low (Tavwl)
2. Write Active Time (Twlwh)
3. Data Valid to Write Inactive (Tdvwh)
Read Active Time = Trlrh
= 2Tclcl - 46
Write Cycle:
The less critical parameters are:
4. Address and Chip Select Hold Time After Write
Inactive (Twhax)
5. Data Hold Time After Write Inactive (Twhdx)
These timings determine the number of wait states required for the 82510 and the CPU interface. The interfaces for some popular microprocessors are discussed in
the following sections.
Address Valid to Write Active = Tclcl
- Tclavmax - Latch Prop. DeiaYmax
Write Active Time
=
=
+
Tcvctvmin
Twlwh
2Tclcl - 40
Data Valid to Write Inactive = 2 Tclcl - Tcldvmax Transceiver DeiaYmax + Tcvctxmin
2-188
intJ
AP-401
16.0MHz
4
J:!J
~
Xl
r--DATA
'I
X2
~~
RESET ROM
L"
UCS
A16-19
RESE T~"" RES
211.
.
-"
.
ALE
~
LATCH
IA
...J\
I"
Y
AO-16
~ Rii
Al~)
0...-
STB
PROGRAM RAM
~ WR
A
ADO-A016
"
E
-"
rRU~
STB
IA
ADO-AD 15
I"
STB
A
80186
L8
DEN
rrr>
AO-IS
Ir
l
~
",0-,
LOW RAM
XCVR
r-- OE
OT/R
Rii
LCS
00-15
~T
-romAOOR
- '!!B
A
1'1
00-7
~
r-;:- RO
IA
AO-IS
, 08-15
"I.....-..
18.432 MHz
-"
A3-1
1-"
~~
A(2-0)
DO-7
Rii
Rii
WR
INTO
PCSO
WR
l
RESET
I
82510
TXD
~
RXD
~
RTS
RESET
CS
r+
INT
-..I
1
74LSOS
231928-2
Figure 3. 82510 Interface to 80186
2-189
inter
AR.. 401
The user can transfer data to the 82510, using the
DMA capabilities of the 80186, by using the RTS pin,
in automatic modem control mode, as a DMA request
line. The RTS pin, in automatic mode, will go inactive
as soon as the Tx FIFO and the Tx shift register are
empty. It will become active once a data character is
written to the TXD register. In most 80186 DMA transfers the user has to make sure that the DMA request
line goes inactive at least two clock cycles from the end
of the DMA deposit cycle. In this case, the extra DMA
cycle is not a problem, because the Tx FIFO will buffer
the data to prevent an overrun (Since the Tx FIFO can
buffer up to four characters, the RTS pin only needs to
go inactive two clocks before the end of the deposit
phase of the fourth DMA). Typically RTS will go inactive five (82510) system clocks after the rising edge of
write.
3.1.4 80286 INTERFACE
The 80286 interface is shown in Figure 4. The 82510 is
on the local bus, and is using the control signals from
the 82288 Bus Controller. The Data Enable (OE) is
qualified by the 82510 Chip Select, to avoid Data Bus
contention between the 82510 and the CPU. The timing
equations for the Read and Write Cycles are given below.
Read Cycle:
Address Valid to Read Active = Tl (CLK period) +
T29 min (CLK to cmd active) - T16max (ALE active
delay) - Latch Prop. DelaYmax
Read Access to Data Valid = 2Tl (CLK period) T29 max (CLK to cmd active) - T8 (Read Data Setup
Time) - Transceiver DelaYmax
wait states means that the access times for the relevant
parameters will be increased by 250 ns.
NOTE:
The address decoding scheme of the 80286 interface is
different from the IBM PC/PC AT I/O addresses for
the serial ports, therefore the interface shown in Figure 4 cannot be used in PC/PC AT oriented designs.
3.1.5 80386 INTERFACE
The 80386 interface to the 82510 is given in Figure 5.
The example uses the Basic I/O interface given in the
80386 Hardware Reference Manual section 8.3. The
only differences are in the specific address lines used for
chip select generation, and the additional wait states in
the wait state generation logic. The address lines A3,
A4 and A5 are used to select one of the eight register
address spaces in the 82510, therefore, A6 and A7,
rather than A4 and A5, are used in the I/O decoder.
This causes a granularity of four in the 8251O's I/O
address space, i.e., the addresses of two consecutive registers in the 82510 differ by four.
The 82510 requires one additional wait state (as currently specified), the desigu assumes that the PAL
equations are modified for that purpose. The user may
also externally generate the wait states and connect to
the "other ready logic" input ORed with the RDY pin
of PAL 2. The two read timings Read Active width and
Read Access time to Data Valid each require one additional wait state in order to meet the 82510 timing requirements. The timings are given below. (82510 times
are at 9.216 MHz)
Read Cycle:
Read Access to Data Valid
= 253.25 ns
Read Active Time = 2TI (CLK period) - T29 max
(CLK to cmd active) + T30min (CLK to cmd inactive)
82510 Trldv
= 308
Write Cycle:
additional time reqd.
= 308-253.25
Address to Write Low = Tl (CLK period) + T29 min
(CLK to cmd active) - T16max (ALE active delay) Latch De1aYmax
Write Active Time = 2 Tl (CLK period) - T29 max
(CLK to cmd active) + T30min (CLK to cmd inactive)
= 54.75 ns
Read Active Width
= 269.25
82510 Trlrh
= 308
additional time reqd.
= 308-269.25
Data to Write High = 3 Tl - Tl4min (Write Data
Valid Delay) + T30min (CLK to cmd inactive) Xcvr. DelaYmax
= 38.75 ns
Address Valid to Read Active = 132.75 ns
Using an 8 MHz 80286 with the 82510 at 18.432 MHz
(divide by two-9.216 MHz) requires two wait states.
The critical timings are the read cycle timings-Read
Access Time and Read Active Width. Inserting two
82510TAVRL
= 7ns
Since each additional wait state adds 62.5 ns at
16 MHz, the 82510 requires one additional wait state.
2-190
(
rurt
J WAITlOGIC
STATE I
J
I
+SV
."
iD
c
' - - SRDY
SRDYEN
;;
;[
~
C»
0
'"8:
~
~
-~
S'
CD
:L
DI
-()
CD
0
:::T
CD
C»
'"....
UI
0
°15-0
BHE
I
1
ff
ARDYEN
ARDY
RESETClK
READY
82284
RES
r--
RESET
ClK
READY
M/iO
D7-0
DO-1S
JJ
~
TRANSCEIVER
T
~
H>-
80286
82510
WR
iW
A3
r--- A2
A2
f--f---
Al
1
~
C
I/O
DECODER
B
'--TI
51 SO
II
1OCS7
IOCSo-IOCS7
CHIP SELECT
51
M/iO
ClK
READY
ALE
.>
y
LATCH
STB
SO
...
ADDRESS A23-0
RESET
~
IOCSO-IOCS7
ll\
A
RTS I--
A1
AO
cs
I~
TXD
RXD
D7-0
TO 8259A""': INT
OE
I
G28 G2 A Gl
~
D1S-0
...II.
'10 -'17 I 0 CHIP SELECT
A2S-0
X2
X,
:a-
l'
.".
....o
3
A3-A 1
-')
V
INT...
MRDC
MWTC
IORC
lowe
DT/ft
DEN
82288
3
l
READY
NA
ClK2!t---~~::=E~~=F==ft~~~~~~~~~l:~~
RESET:t:===:::::;:;:~+~
AOSt
"11
IE
c
i;
!II
CD
0
u
M~6
~
g:
~
<0
I\)
1~'~2~~~~~~~~O
o
o
5'
~
CD
:::I,
--
A31 ~2
N
031
III
n
CD
::r
CD
CD
en
.....
10
D LATCHES Q
•
o
0
~
Q
Q
.
107D
INTR
HW65162B-2
2Kx8 SRAM
-1.
DE
os
A10-0
107-
A10-0
107-0
D7-0
D15-8
.
I
1 I
IL
==========================~.AID~~s:·ILW1lld
~URS I~
I
~~
l>
'U
~
Q
~Ol:
0
WE
HW65162B-2
2Kx8 SRAM
~
A10-0
74AS373 0
Q
8E3"0
0
gffiffi
.E
HW6516ZB-2
2Kx8 SRAM
AD
27128-1
16Kx8 EPROM
II I
27128-1
16Kx8 EPROM
DE
DE
os
os
.,3-0
AU.-lIA13-007_0
5-0
07-0
07-0
.,,"
.
18.432 MHz
231928-4
•
.j:o,
C)
....
intJ
AP-401
The required recovery time between successive commands is 123 ns for the 82510, this is well within the
331.75 ns provided by the Basic I/O interface.
Write Cycle:
Addven to Write Low = 132.75 ns
82510TAVWL
= 7ns
Write Active Time
= 300.5 ns
82510 TWLWH
= 231 ns
Data to Write High
= 289.5 ns '
82510 TOVWH
= 90ns
with the PC software). Also since in the PC family the
interrupt request pin of the UART is gated by the
OUT2 pin, The OUT2 pin must be available in the
16450 compatibility mode, consequently the user is restricted to an external clock source when using the
82510 in the IBM PC compatible mode. The default pin
out is given in Figure 6 and the configuration is given in
Table 1. The default. register values are given in the
82510 register map shown in Figure 2 in section 3.1.1.
Table 1.82510 Default Configuration
INTERRUPTS
Auto Acknowledge
All Interrupts Disabled
NOTE:
The interface shown in Figure 5 uses a different address decoding scheme than that used for the IBM
PC/PC AT families, for the serial ports. Therefore,
the interface in Figure 5 can not be used in PC/PC
AT compatible designs.
RECEIVE
Stand Ctl. Char. Recogn. disabled
Digital Phase Locked Loop (DPLL) disabled
3/16 Sampling
Majority Vote Start bit
Non IJ-lan (Normal) mode
BkD, FE, OE, PE Int. enabled
3.2 Reset
The 82510 can be reset either through hardware (Reset
pin) or Software (reset command via Internal Command Register-ICM). Either reset would cause the
82510 to return to its default wake up mode. In this
mode the register contents are reset to their default valuesand the device is in the 16450 compatible configuration. The Reset pulse must be held active for at least
eight system clocks, the system clock should be running
during reset active time.
3.2.1 DEFAULT MODES FOR 16450
COMPATIBILITY
Upon reset the 82510 will return to its Default Wake
Up mode. The default register bank is bank zero. The
registers in bank zero llI"e identical to the 16450 register
set, and provide complete software compatibility with
the 16450' in the IBM PC environment. The registers
in the other banks have default values, which configure
the 82510 for 16450 emulation. The recommended system clock (for PC compatibility) is 18.432 !¥1Hz, this,
allows the baud rates generation to be done in a manner
compatible with the PC software. The PC software calculates baud rate$ based on a source frequency of
1.8432 MHz. The 82510 syst~m ,clock (18.432 MHz) is
divided by two before being fed to BRG A and then is
again divided by five (BRG B default). This causes the
frequency to be divided by ten before being fed into
BRG A. 18.432 divided by ten yields 1.8432 MHz, so in
effect the BRG A is generating baud rates from a
source frequency of 1.8432 MHz (which is compatible
"16450 is the PC AT version of the INS 8250A.
2-193
FIFO
Rx FIFO Depth = 1
Tx FIFO Threshold = 0
AUTO ECHO Disabled
LOOP BACK Configured
for Local Loopback
CLOCK OPTIONS
Baud Rate = 57.6K
Rx Clock = 16 x
Rx Clock Source = BRG B
Tx Clock = 16 x
Tx Clock Source = BRG B
. BRG A Mode = BRG
BRG A. Source = Sys. Clock
BRG B Mode = BRG
BRG B Source = BRG A Output
. TRANSMIT
Manual Control of RTS
1 Stop Bit
No Parity
5 Bit Character
inter
AP-401
EXTERNAL CLOCK
04
03
05
02
06
01
07
DO
INT
A2
TXD
AI
VSS
OUT2
AD
Ri
Rli
ViR
OSR
C§
OCO
RESET
RXO
RTS
CTS
OTR
ClK
231928-7
Vee
NOTE:
Crystal Oscillator is always divided by two.
Figure 8. Disable Divide by Two
If the Crystal Oscillator is being used to supply the
system clock, then the clock frequency is always divided by two before being fed into the rest of the 82510
circuitry. If, however an external clock source is being
used to supply the system clock, then the user has two
options:
231928-5
Figure 6. Default Pin Out Configuration
of the 82510
3.3 System Clock Options
The term "System Clock" refers to the clock which
provides timings for most of the 82510 circuitry. The
82510 has two modes of system clock usage. It can
generate its system clock from its On-Chip Crystal Oscillator and an external crystal, or it can use an externally generated clock, input to the device through the
CLK pin. The selection of the system clock option is
done during reset. The default system clock source is an
externally generated clock, which can be reconfigured
by a strapping option on the RTS pin. During Reset,
the RTS pin is an input; it is internally pulled high, if it
is externally driven low, then the 82510 expects to use
the Crystal Oscillator for system clock generation, otherwise it is set up for using an external clock source.
This can be done by using an open collector inverter to
RTS, the input of the ~nverter is the Reset signal. The
82510 has a pull up resistor in the RTS circuitry so no
external pull up is needed. In the crystal oscillator
mode the CLK/Xl pin is automatically configured to
Xl, and the OUT2/X2 pin is configured to X2. In the
External Clock mode, the CLK/Xl is configured to
CLK and the OUT2/X2 is configured to OUT2.
1. Use the System Clock after division by two, e.g. if a
8 MHz clock is being fed into the CLK pin, then the
actual frequency of the 82510 system clock will be 4
MHz (default).
2. Disable Division by two and use the. direct undivided clock, e.g. if an 8 MHz clock is being fed into the
CLK pin, then the actual frequency of the 82510
system clock is also 8 MHz.
The divide by two option is the default mode of operation in the External Clock mode of the 82510. A strapping option can be used to disable the Divide By Two
operation (For Crystal Oscillator Mode Divide By Two
must always be active). During Reset, the DTR pin is
an input; it is internally pulled high, if it is externally
driven low then the Divide By Two operation is disabled. The strapping option is identical to the one used
on RTS for selection of the System Clock source.
The 82510 system clock must be chosen with care since
it influences the wait state performance, Baud Rate
Generation (if being used as source frequency for the
BRGs), the power consumption, and the Timer counting period. The power consumption of the 82510 is dependent upon the system clock frequency. If using the
system· clock as a source for the Baud Rate Generator(s), then the system clock frequency must be a baud
rate multiple in order to minimize frequency deviation.
For standard baud rates a multiple of 1.8432 MHz can
be used, in fact the 18.432 MHz maximum frequency
was chosen· with this particular criteria in mind.
231928-6
1 ms is needed for Oscillator startup
Figure 7. Crystal Oscillator Strapping Option
2-194
inter
AP-401
BACF(6)
SCLK---~
CLK/Xl
DEF
BRGA
CLOCK
MUX
BRGA
FSM
RXM
16X
CLOCK
+ COUNTER
+ LOGIC
BBCF(7-6)
SCLK-1--"
....._..
CLK/Xl-+..........,~
CLCF(6)
BRGB
FSM + COUNTER
+ LOGIC
TXM
l6X
CLOCK
CLCF(4)
TxCM BIT ~---i
OF CLCF -t----,
,..
CLOCK
~-----
Rx CM BIT _ _ _--,
IN CLCF
TXM
~\_-----------------------------+lX
______________
RXM
~lX
CLOCK
23l928~8
Figure 9. Timing Flow of the 82510
2-195
inter
AP·401
3.3.1 POWER DOWN MODE
3.3.1.2 Idle Mode
The 82510 has a "power down" mode to reduce power
consumption when the device is not in use. The 82510
powers down when the power down command is issued
via the Internal Command Register (ICM). There are
two modes of. power down, Power Down Sleep and
Power Down Idle.
The 82510 is said to be in the Idle mode when the
Power Down command is issued and the system clock
is still running (i.e. the system clock is generated externally and not disabled by the user). In this mode the
contents of all registers and memory cells are preserved,
however, the power consumption in this mode is greater than in the Sleep mode. Reading FLR will take the
82510 out of this mode.
3.3.1.1 Sleep Mode
This is the mode when even the system clock of the
82510 is shut down. The system clock source of the
82510 can either be the Crystal Oscillator or an exter·
nal clock source. If the Crystal Oscillator is being used
and the power down command is issued, then the
82510 will automatically enter the Sleep mode. If an
external clock is being used, then the user must disable
the external clock in addition to issuing the Power
Down command, to enter the Sleep mode. The benefit
of this mode is the increased savings in power consumption (typical power consumption in the Sleep
mode is in the range of hundreds of microAmps. However, upon wake up, if using a crystal oscillator, the
user must reprogram the device. The data is preserved
if the external clock is disabled after the power down
command, and enabled prior to exiting the power down
mode. To exit this mode the user can either issue a
Hardware reset, or read the FIFO Level Register (FLR)
and then issue a software reset (if using a Crystal Oscillator). In either case the contents of the 82510 registers
are not preserved and the device must be reprogrammed prior to operation.
NOTE:
If the Crystal Oscillator is being used then the user
must allow about 1 ms for the oscillator to wake up
before issuing the software reset.
NOTE:
The data read from FLR when exiting Power Down is
incorrect and must be ignored.
4.0 INTERRUPT BEHAVIOR
4.1 FIFO Usage
The 82510 has two independent four bytes transmit and
receive FIFOs. Each FIFO can generate an interrupt
request, when the FIFO level meets the Threshold requirements. The FIFOs can have a considerable impact
on the performance of an asynchronous communications system. For systems using high baud rates they
can provide increased interrupt-to-service latency reducing the chances of an overrun occurring. In systems
constrained for CPU time, the FIFOs can increase the
CPU Bandwidth by reducing the number of interrupt
requests generated during asynchronous communications. It can reduce the interrupt load on the CPU by
up to 75%. By choosing the FIFO thresholds which
reflect the system bandwidth or service latency requirements, the user can achieve data rates and system .
throughput, unattainable with traditional UARTs.
Table 2. The Power Down Modes
Mode
Sleep
Idle
Clock Source
Exit Procedure
Crystal Oscill.
Automatically
Disabled
H/W Reset or
Read FLRand
Issue S/W Reset
External Clock
Must be Disabled
by User
Enable External
Clock, Read FLR
and Issue S/W Reset
H/W Reset
External Clock
Running
H/W Reset
Read FLR
Power Consumption
Data Preservation
100-900 p.A
Not Preserved
Must be Reprogrammed
. 100-900 p.A
Not Preserved
Must be Reprogrammed
1-3mA
2-196
All Data Preserved
Does Not Need to be
Reprogrammed
inter
AP-401
4.1.1 INTERRUPT-TO-SERVICE LATENCY
Going back to equation (2):
The interrupt-to-service latency is the time delay from
the generation of an interrupt request, to when the interrupt source in the 82510 is actually serviced. Its
primary application is in the reception of data. In traditional UARTs the CPU must read the current character in the Receive Buffer before it is overrun by the next
incoming character. The Rx FIFO in the 82510 can
buffer up to four characters, allowing an interrupt-toservice latency of up to four character transmission
times. The character transmission time is the time period required to transmit one full character at the given
Baud Rate. It is dependent upon the baud rate and is
given by equation (1):
Int._toJervice latency < Buffer size x JO/baud rate
Int_toJerVice latency = {1 of Channels X ({1 of
int. sources per channel)
X Time required to service interrupt
Int_toJervice latency = 4 X 2 X Time required to
service interrupt
(1) Character Transmission Time =
Num. of Bits per Character Frame
Baud Rate
The Transmit and Receive FIFO thresholds should be
selected with consideration to two factors the Baud
rate, and the (CPU Bandwidth allocated for Asynchronous Channels is dependent upon the number of channels supported since it does not include the overhead of
supporting other peripherals) number of Asynchronous
Serial ports being supported by the CPU. In order to
avoid overrun, the interrupt-to-service delay must be
less than the time it takes to fill the 82510 Rx FIFO.
The relationship is given by equation (2):
(2) Int_toJervice-latency < FIFO Size X
Character Transmission Time
Example
Calculate the maximum baud rate that can be supported by a 6 MHz PC AT to support four Full Duplex
Asynchronous channels using
a) The 82510 with four byte FIFO.
b) The 82510 with one byte FIFO.
Assumptions:
• CPU dedicated to Asynchronous communications.
• UART Interrupts limited to Transmission and Reception only.
• Interrupt Routines are opt~ for fast throughput.
• 10 bits per character frame.
The Time required to service interrupt has been calculated to be 100 p.s for a slightly optimized service routine. RMX86 interrupt service time is given as 250 p.s
and for other operating systems it should be slightly
higher.
Int_toJervice
latency
= 4x2xl00 s
= 800 p.s
82510 max Baud Rate = 4 X 10/800 p.s
(four byte FIFO)
= SOK bits/sec
82510 max Baud Rate = 1 X 10/800 p.s
(one byte FIFO)
= 12.SK bits/sec
4.2 Interrupt Handling
The 82S10 has 16 different sources of interrupt, each of
these sources, when set and enabled, will cause their
respective block interrupt. requests to go active. The
block interrupt request, if enabled, will set the 82S10's
INT pin high, and will be reflected as a pending interrupt in the General Interrupt Register (GIR) if no other
higher priority block is requesting service. If a higher
priority block interrupt is also active at the same time,
then the General Interrupt Register will reflect the higher priority request as the source of the 82S10 interrupt.
The lower priority interrupt will issue a new edge on
the interrupt pin only after the higher priority interrupt
is acknowledged and if no other priority block requests
are present. Both the block interrupts and the individual sources within the blocks are maskable. The block
interrupts are enabled through the General Enable Register (GER) which prevents masked bits in the General
Status Register (GSR) from being decoded into the
General Interrupt Register. This does not prevent the
block request from being set in the General Status Register, it only prevents the masked GSR bits from being
decoded into the General Interrupt Register, and thus
generating any interrupts. The individual sources within the block are masked out via the corresponding interrupt enable register associated with the specific block
(Rx Machine, Timing Unit and the Modem I/O module each have an Interrupt Enable register).
2-197
inter
Ap·401
FIFO BELOW
OR EOUAL
THRESHOLD
GER
TXF
HOLD
LOGIC
FALLING EDGE DETECTORS
SERVICE DETECTED
ACKNOWLEDGE
COMMAND
ICM(3)
AUTOMATIC MODE
IMD(3)
231928-9
Figure 9. 82510'8 Interrupt Scheme
2·198
inter
AP-401
4.2.1 THE INTERRUPT SCHEME
The 82510 interrupt logic consists of the following elements:
4.2.1.1 Interrupt Sources Within Blocks
Three of the 82510 functional blocks (Rx Machine,
Timer, Modem I/O) have more than one possible
source of interrupts, for instance the Rx Machine has
seven different sources of interrupts-standard control
character recognition (Std. CCR), control character
Match (special CCR), Break Detect, Break Terminated, Overrun Error, Parity Error, and Framing Error.
The multiple sources are represented as Status bits in
the Status registers of each of these blocks. When enabled the Status bits cause the block request to set in
the General Status Register. There is no difference in
the behavior of the INT pin or the block status bits in
GSR, for multiple sources within a block becoming active simultaneously. The corresponding block status bit
in GSR is set when one or more interrupt sources within the block become active. When the status register for
the block is read all the active ,interrupt sources within
the block are reset. Each source within the three blocks
can be masked through its respective enable register.
4.2.1.2 General Status Register (GSR)
This register holds the status of the six 82510 blocks
(all except Bus Interface Unit). Each bit when set indicates that the particular block is requesting interrupt
service, and if enabled via the General Enable Register,
will cause an interrupt.
4.2.1.3 General Enable Register (GER)
This register is used to enable/disable the corresponding bits in the' General Status Register. It can be programmed by the CPU at any time.
Table 3. Block Interrupt Priority
Block
Priority
Timers
Tx Machine
RxMachine
RxFIFO
Tx FIFO
Modem 1/0
5 (highest)
4
3
2
1
o (lowest)
GIRCODE
3 2 1 (Bits)
1 0 1
100
o1 1
010
001
000
4.2.1.4 Priority Resolver and General Interrupt
Register
If more than one enabled Interrupt request from GSR
is active, then the priority resolver is used to resolve
contention. The priority resolver finds the highest priority pending and enabled interrupt in GSR and decodes it into the General Interrupt Register (bits 3 to 1).
The General Interrupt Register can be read at any time.
NOTE:
GIR is updated continuously, so while the user may
be serving one interrupt source, a new interrupt with
higher priority may update GIR and replace the older
one.
4.2.2 INTERRUPT ACKNOWLEDGE MODES
The 82510 has two modes of interrupt acknowledgement-Manual acknowledge and Automatic acknowledge. In Manual Acknowledge mode, the user has to
issue an explicit Acknowledge Command via the
Internal Command Register (ICM) in order to cause
the INT pin to go low. In Automatic Acknowledge
mode the INT pin will go low as soon as an active or
pending interrupt request is serviced by the CPU. An
operation is considered to be a service operation if it
causes the source of the interrupt (within the 82510) to
become inactive (the specific status bit is reset). The
service procedures for each source vary. see section
4.2.3.2 for details.
4.2.2.1 Automatic Acknowledgement
In the automatic acknowledge mode, a service operation by the CPU will be considered as an automatic
acknowledgement of the interrupt, This will force the
INT pin low for two clock cycles. after that the INT
pin is updated i.e. if there is an active enabled source
pending then the INT pin is set high again (reflected in
GIR). This mode is useful in an edge triggered Interrupt system. Servicing any enabled and active GSR bit
will cause Auto Acknowledge to occur (independently
of the source currently decoded in the GIR register).
This can be used to rearrange priorities of the 82510
block requests.
2-199
inter
AP-401
GSR 5
TIMER
GSR 3 (MODEM)
GIR
GIR= 1INT
8259A
USER
OPERATIONS '
READ GIR SERVE
(=10) TIMER
ISSUE
EOI
TO
8259A
READ GIR SERVE ISSUE
(= 2) TX FifO
EOI
(WRITE
CHARACTERS)
REAO GIR SERVE
(= 0) MODEM
I
ISSUE
EOI
231928-10
8259A -
Edge Triggered
Non Auto EOI
82510 Automatic Acknowledge
Figure 10. Automatic Acknowledge Mode Operation
~ ---I
GSR
bit
(MODEM)
b?tS:
(TXM)
b?tS~
(TIMER)
GIR
GIR = 1
(82590)
INT
8259A
USER
REAO GIR SERVE MODEM READ GIR
(=0)
INTERRUPT
(=10)
SERVE
TIMER
READ GIR
(=8)
SERVE
TXN
READ GIR ISSUE
(= 1) MANUAL
ACK TO
82510
231928-11
NOTE:
Vector refers to GIR bit (3·0)
82510: Manual Ack. Mode
8259A: Edge Triggered Non AEOI
Figure 11. Manual Acknowledge Mode Operation
2·200
AP-401
4.2.2.2 Manual Mode of Acknowledgement
The Manual Acknowledgement Mode requires that,
unlike the automatic mode where a service operation is
considered as an automatic acknowledge, an explicit
acknowledge command be issued to the 82510 to cause
INT to go inactive. In this mode the CPU has complete
control over the timing of the Interrupts. Before exiting
the service routine, the CPU can check the GIR register
to see if other interrupts are pending and can service
those interrupts in the same invocation, avoiding the
overhead of another interrupt as in the Automatic
mode. Of course the user has the option of issuing the
acknowledge command immediately after the service,
which would be similiar in behavior to -the automatic
mode. If the manual acknowledge command is given
before the active source has been serviced and no higher
priority request is pending, then the same source will
immelliately generate a new interrupt. Therefore, the
software must make sure that the Manual Acknowledge command is issued after the interrupt source has
been serviced by the CPU (see section 4.2.3.2. for more
details on interrupt service procedures for each source).
READ CORRESPONDING
STATUS REGISTER &:
SERVICE ALL APPROPRIATE
ACTIVE BITS
RESTORE ORIGINAL
VALUE OF' GIR/BANK
TO RETURN TO
ORIGINAL BANK
231928-12
Figure 12. Typicallnterropt Handler
2-201
AP·401
4.2.3 GENERAL INTERRUPT HANDLER
In general an interrupt handler for the 82510 must first
identify the interrupt source within the 82510, transfer
control to the appropriate service routine and· then
service the active source. The active source can be identified from two registers-General Interrupt Register,
or General Status Register. The GIR register identifies
the highest priority active block interrupt request. The
GSR register identifies all active (pending or in service)
Block Interrupt Requests. The typical operation of the
82510 interrupt handler is given in Figure 12. The two
major issues of concern are the source identification
and Control Transfer to the appropriate service routine.
Since the 82510 registers are divided into banks, and
the interrupt handler may change register banks during
service, it is best to save the bank being used by the
main program and then do the interrupt processing.
Upon completion of service, the original bank .value is
restored to the GIR/Bank register.
4.2.3.1 Source Identification
The 82510 has 16 interrupt sources, and the CPU must
identify the source before performing any service. AI·
though the procedure varies, the typical method would
be to identify the block requesting service by reading
I
USER PRIORITY
= RX FIFO (Hi)
RX MACHINE
TIMER
[ TX FIFO
TX MACHINE
MODEM (LOW)
231928-13
Figure 13. Bypassing the 82510 Fixed Interrupt Priority
2-202
inter
Ap·401
GIR bits 3-1. If the source is either Tx Machine, Tx
FIFO, or Rx FIFO, no further indentification is needed, the user can transfer control to the service routine
(in most cases, only one Timer will be used, therefore
the Timer Routine can also be directly invoked). All
modem I/O interrupts can be handled via one routine
as all the modem interrupt sources are supplementary
to the modem handshaking function. The Rx Machine,
however, has two different types of interrupt sources,
event indications (CCR/Address recognition CCR/Address Match, Break Detect, Break Terminate, and
Overrun Error), and error indications (parity Error,
Framing Error, these error indications do not refer to
any particular character, they just indicate that the specific error was detected during reception). For most applications, the error indicators can be masked off, and
only the event driven interrupts enabled. The error indicators can be read from the Receive Flags prior to
reading a character from the FIFO. This interrupt
scheme can be used, because the Receive character error indicators are available in the Receive Flags, and
can be checked by the Receive routine before reading
the character from the Rx FIFO.
Since all active status bits (except Rx FIFO interrupt in
LSR and RST) are reset when the corresponding block
status register is read, the interrupt routine must check
for all possible active sources within the block, and
service each active source before eXiting the interrupt
handler.
The 82510 interrupt contention is resolved on a fixed
priority basis. In some applications the fixed priority
may not be suitable for the user. For these cases the
user can bypass the 8251O's priority resolution by using
the General Status Register (rather than GIR) to determine the block interrupt sources requesting service.
Each source is checked in order of user priority and
serviced when identified (There will be no problem with
using this algorithm in auto acknowledge mode because
the INT pin will go low as soon as a pending and en.
abled interrupt request goes low). The user will be trading some service latency time for additional source
identification time, this algorithm's efficiency will improve as the number of block sources to verify is reduced. See Figure 13 for the algorithm.
4.2.3.2 Interrupt Service
A service operation is an operation performed by the
CPU, which causes the source of the 82510 interrupt to
go inactive (it will reset the particular status bit causing
the interrupt). An interrupt request within the 82510
will not reset until the interrupt source has been serviced. Each source can be serviced in two or three different ways; one general way is to disable the particular
status bit causing the interrupt, via the corresponding
block enable register. Setting the appropriate bit of the
enable register to zero will mask off the corresponding
bit in the status register, thus causing the INT pin to go
inactive. The same effect can be achie,-:ed by masking
off the particular block interrupt request in GSR via
the General Enable Register. Another method, which is
applicable to all sources, is to issue the Status Clear
command from the Internal Command Register. The
detailed service requirements for each source are given
below:
Table 4. Service Procedures For Each Interrupt Source
Interrupt
Source
Status Bits
& Registers
Interrupt
Masking
Timers
TMST(1-0)
GSR (5)
TMIE (1-0)
GER(5)
ReadTMST
Issue
Status Clear
(StC)
Tx
Machine
GSR (4)
LSR(6)
GER (4)
Write Character
toTx FIFO
Issue StC
Rx
Machine
LSR (4-1)
RST (7-1)
GSR(2)
RIE (7-1)
GER(2)
Read RST or LSR
Write 0 to bit
in RST/LSR
Issue StC
RxFIFO
RST/LSR (0)
GSR (0)
GER (0)
Write 0 to LSR/RST
Bit zero.
Read Character(s)
Issue StC
TxFIFO
LSR (5)
GSR(1)
GER (1)
Write to FIFO
ReadGIR
Issue StC
Modem
MSR (3-0)
GSR(3)
MIE (3-0)
GER (3)
ReadMSR
write 0 into the
appropriate bits of
of MSR (3-0)
Issue StC
Specific
Service
General
Service
NOTE:
The procedures listed in Table 4 will cause the INT pin to go low only if the 82510 is in the automatic acknowledge mode.
Otherwise, only the internal source(s) are decoded, the INT pin will go low only when the Manual Acknowlege command is
issued.
2-203
inter
AP-401
4.3 Polling
The 82510 can be used in a polling mode by using the
General Status Register to determine the status of the
various 82510 blocks, this is useful when the software
must manage all the blocks at once. If the software is
dedicated to performing one function at a time, then
the specific status registers for the block can be used,
e.g. if the software is only going to be Transmitting, it
can monitor the Tx FIFO level by polling the FIFO
Level Register, and write data whenever the Tx FIFO
level decreases. Reception of data can be done in the
same manner.
5.0 SOFTWARE CONSIDERATIONS
5.1 Configuration
The 82510 must be configured for the appropriate
modes before it can be used to transmit or receive data.
Configuration is done via read and write registers, each
functional block (except for BIU) has a cQnfiguration
register. Typically the configuration is done once after
start up, however, the FIFO thresholds and the interrupt masks can be reconfigured dynamically. If the
82510 configuration is not known at start up it is bestto
bring the device to a known state by issuing a software
reset command (ICM register, bank one). At this point
all block interrupts are masked out in GER and all
configuration and status registers have default values.
The bank register is pointing to bank zero. The 82510
can now be configured as follows:
1. If BRG A is being issued as a baud rate generator
then load the baud rate count into BAL and BAH
registers.
2. Configure the character attributes in LCR register
(Parity, Stop Bit Length, and Character Length).
(Note if interrupts are being used, steps 1 and 2 can
also be done at the end, since the user will have to
return to bank zero to set the interrupt masks in GER)
3. Load ACRO register with the appropriate Control
or Address character (if using the Control Character Match or Address Match capability of the
82510).
4. Switch to Bank two.
(In this. Bank the configuration can be done in any
order)
5. Configure the Receive and Transmit FIFO thresholds if using different thresholds than the default).
6. Configure the Transmit Mode Register for the
Stop Bit length, modem control, and if using echo
or 9 bit length or software parity,configure the
appropriate bits of the register. The default mode
of the modem control is Manual, if using the FIFO
then the automatic mode would be most useful).
7. Configure the Rx FIFO depth, interrupt acknowledge mode, /-tlan or normal mode and echo modes
in IMD register.
8. Load ACRI if necessary
9. Enable Rx Machine Interrupts as necessary via
RIE.
10. Configure RMD forCCR, DPLL operation, Sampling Window, and start bit.
11. Switch to Bank 3.
12. Configure CLCF register for Tx and Rx clocks and
or Sources
13. Configure BACF register for BRG A mode and
source.
14. Load BBL and BBH if BRGB is being used (as
either a BRG or a Timer).
15. Configure BBCF register if necessary.
16. If reconfiguration of the modem pin is necessary
then program the PMD register.
17. Enable any modem interrupt sources, if required,
via MIE register.
18. Enable Timer interrupts, if necessary, via TMIE.
19. If using interrupts
then
i) Switch to Bank zero.
Disable Interrupts at CPU (either by masking
the request at the interrupt controller or executing the CLI instruction).
ii) Enable the appropriate 82510 Block interrupts
by setting bits in the GER register. (CPU interrupts can now be reenabled, but it is recommended to switch banks before enabling the
CPU interrupts).
NOTE:
At this stage it is best to leave the TxM and Tx FIFO
interrupt disabled. See section 6.3 Transmit Operation
for details)
.
20. Switch to Bank One. Load Transmit Flags if using
9-bit characters, or 8051 9-bit mode or software
parity. If using interrupts CPU interrupts can now
be enabled.
Bank One is used for general operation, the 82510 can
now be used to transmit or receive characters.
2-204
AP-401
GENERAL
CONFIGURATION
CONFIGURE:
1. STOP BIT LENGTH
2. MODE OF RTS CONTROL
3. 9-BIT CHAR. LENGTH}
N
4. S/W PARITY
OPTIO AL
5. AUTO ECHE MODE IN
TRANSMIT MODE REGISTER
SET RX FIFO DEPTH.
INTERRUPT
ACKNOWLEDGE MODE,
J.LLAN OR NORMAL AND
AUTO ECHO IN INTERNAL
MODE REGISTER
ENABLE INTERRUPTS" FOR
RX STATUS BITS VIA
RX INTERRUPT
ENABLE REGISTER
231928-14
SET MODES OF CONTROL
CHARACTER RECOGNITION,
DATA SAMPLING, AND
DPLL USE,
IN RX MODE REGISTER
TO C
231928-15
Figure 14. Configuration Flow Chart
2-205
intJ
AP·401
MOOEW AND
'rIMING UNI1
CONriGURATION
C
IN CLOCKS CONFIGURE
REGISTER: SELECT SOURCES
OF TX .It RX CLOCKS
SELECT MODES OF
TX .It RX CLOCKS
CONFIGURE BRG A CLOCK
SOURCE AND MODE OF
OPERATION VIA BRG A
CONFIGURATION REGISTER
o
ENABLE THE 82510
BLOCK INTERRUPT
SOURCES VIA GENERAL
ENABLE REGISTER
CONFIGURE BRG B FOR
SOURCE AND MODE VIA BRG B
CONFIGURATION REGISTER
(IF BEING USED AS A BRG)
ENABLE INTERRUPTS
(IF NECESSARY) ON
MODEW INPUT PINS VIA
MODEM INTERRUPT
ENABLE REGISTER
231928-17
ENABLE TIMER INTERRUPTS
AS NECESSARY, VIA
TIMER INTERRUPT
ENABLE REGISTER
TO 0
231928-16
Figure 14. Configuration Flow Chart (Continued)
2·206
inter
AP-401
The transmitter has two status flags. Tx Machine Idle
and Tx FIFO interrupt request, each of these conditions may cause an interrupt, if enabled. The Transmit
Idle condition indicates that the Tx Machine is either
empty or disabled. The Tx FIFO interrupt bit is set
only when the level of the Tx FIFO is less than or equal
to the threshold. These interrupts should remain disabled until data is available for transmission. Because
outside of disabling the corresponding GSR status bits,
the only way to service Tx Idle is by writing data to the
Transmitter. Otherwise, the Tx Machine interrupt may
occur when no data is available for transmission, and as
a result will keep the INT pin active, preventing the
82510 from generating any further interrupts (unless
the Transmit Interrupt routine automatically disables
the Tx Machine Idle and Tx FIFO interrupt requests in
GSR). The threshold of the Tx FIFO is programmable
from three to zero, at a threshold of three the Tx FIFO
will generate an interrupt after a character has been
transmitted. While at a threshold of zero the interrupt
will be generated only when the Tx FIFO is empty. For
most applications a threshold of zero can be used. If the
threshold is dynamically configured, i.e. it is being
modified during operation, then the Tx FIFO level
must be checked before writing data to the transmitter.
T
X
F
I
F
4
o
L
E
V
3
E
L
-2
THRESHOLD
INACTIVE
INTERRUPTS
ACTIVE
231928-18
- - Tx Machine and 82510
---- User write operation
Figure 15. Tx FIFO Interrupt Hysteresis
5.2 Transmit Operation
5.2.1.1 Transmit Interrupt Handler
5.2.1 GENERAL OPERATION
To transmit a character the CPU must write it to the
TXD register, this character along with the flags from
the Tx Flags register is loaded to the top of the TX
FIFO. If the Tx Machine is empty, then the character
is loaded into the shift register, where it is serially
transmitted out via the TXD pin (the flags are not
transmitted unless the 8251O's configuration requires
their transmission e.g. if software parity is selected then
the S/W parity bit is transmitted as the parity bit of the
character). The CPU may write more than one character into the FIFO, it can write four characters in a burst
(five if the Tx Machine is empty) or it can check the
FIFO level before each write, to avoid an overrun condition to the transmitter. In the case of the latter, the
software overhead of checking the FIFO level must be
less than the time required to transmit a character, otherwise the transmit routine may not exit until another
exit condition has been met.
e.g. at 288,000 bps for an 8-bit char no parity
It takes 34.7 p.s to transmit one character.
If the time, from the write to TXD to the reading of the
Transmit FIFO level, is greater than 34.7 p.s then the
Tx FIFO level will never reach higher than zero, and
the FIFO will always appear to be empty. Therefore, if
the transmit routine is checking for a higher level in the
FIFO it may not be able to return until some other exit
condition-such as no more data available-is met.
This can be a problem in the interrupt handler, where
the service routine is required to be efficient and fast.
The Transmit Interrupt Handler will be invoked when
either the Tx FIFO threshold has been met or if the
Transmitter is empty. Since the Tx Machine interrupt
is high priority (second highest priority, with Timer
being the highest), the interrupt line will not be released
to other lower priority, pending 82510 sources until the
Tx Machine interrupt has been serviced. If no data is
available for transmission, then the only way to acknowledge the interrupt is by disabling it in the General
Enable Register. Thus the Tx Machine interrupt should
not be enabled until there is data available for transmission. The Tx Machine interrupt should be disabled after transmission is completed.
5.2.1.2 Transmission By Polling
Transmission on a polling basis can be done by using
the General Status Register and/or the FIFO Level Register. The software can wait until the Tx FIFO and/or
the Tx Machine Idle bits are set in the General Status
Register, and then do a set number of writes to the TXD
register. This method is useful when the software is trying to manage other functions such as modem control,
timer management and data reception, simultaneously
with transmission.
If management of other functions is not needed while
transmitting, then continuous transmission can be done
by monitoring the Tx FIFO level. A new character is
written to TXD as soon as the FIFO level drops by one
level.
2-207
inter
AP-401
DISABLE TX t.lACHINE
IDLE, AND TX FIFO
INT. REQ. IN GER
Tx FIFO Threshold = 0
231928-19
NOTE:
TxM Idle and Tx FIFO Empty interrupts are enabled by the Main Program, when data transmission is required.
Figure 16. 16 Tx Interrupt Handler Flow Chart
2-208
inter
AP-401
231928-20
Figure 17. Using GSR for Polling
2-209
intJ
AP·401
231928-21
Figure 18. Data Transmission by Monitoring FIFO Level
2·210
AP-401
231928-22
Figure 19. Break Transmission Using Tx FIFO to Measure Break Length
2-211
intJ
AP-401
5.2.1.3 Break Transmission
The 82510 will transmit a break when bit six of the
Line Control Register is set high. This will cause the
TXD pin to be held at Mark for one or more character
time. The Tx FIFO can be used to program a variable
length break, see Figure 19 for details. If the break
command is issued in the midst of character transmission the TXD pin will go low, but the transmitter will
not be disabled. The characters from the Tx FIFO will
be shifted out on to the Tx Machine and lost. To prevent the erroneous transmission of data, The CPU must
make sure the Transmitter is empty or disabled before
issuing the Send Break command.
R
X
OVERRUN
F
I
F
4
o
".,.,
L
E
V
3
E
... --------- ---
5.3.1 RECEIVE INTERRUPT HANDLER
The Receiver will generate two types of interrupts, Rx
FIFO interrupt and Rx Machine Interrupt. The Rx
FIFO interrupt requires that the CPU read data characters from the Rx FIFO. If the Rx Machine interrupts
are disabled then the CPU should also check for errors
in the character before moving it to a valid buffer. The
interrupts generated by the Rx Machine can be divided
into two categories--occurrence of errors during reception of data (parity error, framing error, overrun error),
or the occurrence of certain events (Control/Address
character received, Break detected, Break Terminated).
For typical applications, the error status of each received character can be checked via the Receive Flags,
and the events can be handled via interrupts.
,,
L
~
,-2
THRESHOLD
,,
,
..,,
,,
o~--~--------------------~---+
INACTIVE
INTERRUPTS
read characters from the 82510. Each character on the
Rx FIFO has flags associated with it, all of these flags
are generated by the Rx Machine during reception of
the character. These flags provide information on the
integrity of the character, e.g. whether the character
was received OK, or if there were any errors. The receiver status is provided via the Receive Status Register
(RST), which provides information on events occurring
within the Rx Machine, since the last time RST was
read. The information mayor may not apply to the
current character being read from the RXD register.
The CPU may read one or more characters from the
Rx FIFO. After each read, if the FIFO contains more
than a single character, a new character is loaded into
the RXD register and the flags for that character are
placed into the RXF register. The software can check
for the Rx character OK bit in the flags to make sure
that the character was received without any problems.
ACTIVE
231928-23
- - - - User Read Operations
82510 Character Reception
-
5.3.2 RECEIVING DATA BY POLLING
Figure 20. Rx FIFO Hysteresis
5_3 Data Reception
The receiver provides the 82510 with three types of
'
information:
a) Data characters received
b) Rx Flags for each data character
c) Status information on events within the Rx Ma- .
chine.
The Rx FIFO interrupt request goes active when the
Rx FIFO level is greater than the threshold, if the interrupt for this bit is enabled then it will generate an
interrupt to the CPU. This is a request for the CPU to
To receive data through polling, the 82510 can use the
General Status or the Receive Status Registers to check
for the Rx FIFO request. If the Receive routine does
not generate time outs or modem pin transitions, then
the data can also be received by monitoring the Rx
'FIFO level in the FIFO Level Register. The implementation using GSR would be useful in applications where
the software routine must monitor the timer for time
outs or the modem pins for change in status. The example polling routine illustrates the use of the FIFO Level
Register in receiving data. It waits for the Rx FIFO
request before beginning data reception. The procedure
Rx_Data_Poll will receive the number of characters
requested in Char_count and place them in the Receive buffer.
2-212
intJ
AP-401
231928-24
Figure 20. Rx FIFO Interrupt Handler
2-213
inter
AP-401
#define base Ox3F8;
'* base address of 82510 *'
#define buff __ size 128;
Rx __ Data __ Poll (Char __ count, Rxbuffer)
int Char __ count;
'* Total # of bytes to be received *'
char *Rxbuffer [buff size];
{
=
int count
0;
int status, lvI, Rok;
=
==
While «(status
(Inp(base+7) & Ox05»
OxOl) '* If Rx FIFO Req in GSR set
{
'* Assume in bank one *'
'* If Rx FIFO is not empty *' .
«Inp (base+4) & Ox70),OxlO)0&&(count < (Char __ count»
While «IvI
*1
=
{
'* If Character Received OK *'
if «(Rok
(Inp (base+l) & Oxeo»
{
=
Rxbuffer [count]
++count;
= Inp
==
Ox40)
(base);
Figure 21. Example Polling Routine
5.4.3 CONTROL CHARACTER HANDLING
The 82510 has two modes of control character recognition. It can recognize either standard ASCII or standard EBCDIC control characters, or it can recognize a
match with two user programmed control (or Address
Characters in MCS-51 9-bit mode, for Automatic Wake
up) characters. Each mode generates an interrupt
through the Receive Status Register. The Receive Flags
also indicate whether the character being read is a control character. The usage of CCR depends on the maximum number of possible control characters that can be
received at anyone time. Applications such as Terminal Drivers, which have no more than two control
characters outstanding, such as XON and Cd-C, or
XOFF and Cd-C, can use just the Control ~haracter
Match mode by programming the registers ACRO and
ACRI. If the CPU needs to process text on a line by
line basis the standard Control Character recognition
capabilit; can be used to determine when an end of line
has occurred e.g. a whole line has been received when a
Carriage Return (CR) or Line Feed (LF) is received by
theUART.
Implementation of a character oriented asynchronous
file transfer protocol can be done using both standard
and specific Control Character Recognition. In such
protocols most control characters such as Start of
Header (SOH), can only be received during certain
states, these characters can be received via Standard
Control Character Recognition. A few Control Charac-
ters (e.g. abort) can be received at any stage of communication, these can be received by using the Control
Character Matching capabilities of the 82510.
5.3.3 BREAK RECEPTION
The 82510 has two status indications of break reception, Break Detect indicates that a break has been detected on the RXD pin. Break Terminated indicates
that the Break previously detected on the RXD line has
terminated and normal Data reception can resume.
Each of these status bits can generate an interrupt request through the Rx Machine Interrupt request. Normal consequence of break is to abort the data reception
or to introduce a line idle delay in the middle of data
reception. In the case of the former, the Break Detect
interrupt can be used to reset the 82510 Receive Machine and the Rx routine flags; in the case of the latter,
the break terminated interrupt can be used to filter out
the break characters and resume normal reception.
Each break character is identified by a break flag in the
Rx Flags Register (the CCR flag, Framing error, and
CCR Match flag also may become active when a break
character is received) and is loaded onto the Rx FIFO
as a NULL character. If break continues even after the
Rx FIFO is full, then an overrun error will occur but
no further break characters will be loaded on to the Rx
FIFO. The user can also measure the length of the
break character stream by using the Timer.
2-214
intJ
Ap·401
RXM INTERRUPT--+
READ DATA CHAR
READ CONTROL CHAR
231928-25
Figure 22. Handling Control Character Interrupts
2-215
inter
Ap·401
SPECIAL ClL-CHARACTER
= XOF'F'
XON
CTL-C
NO
231928-26
Figure 23. Using Control Character Match In Terminal Ports
2-216
inter
Ap·401
5.3.4 DATA INTEGRITY
To improve the reliability of the incoming data the
82510 provides a digital filter, a Digital Phase Locked
Loop, and multiple sampling windows (which provide a
noise indication bit).
5.3.4.1 Digital Filter
The Digital Filter is used to filter spikes in the input
data. The Rx Machine uses a 2 of 3 filter. The output is
determined by the majority of samples. If at least two of
the three samples are "1" then the output will be a "1".
Spikes of one sample duration will be filtered but spikes
of two or more samples duration will not be filtered.
5.3.4.2 Digital Phase Locked Loop
The Digital Phase Locked Loop (DPLL) is used by the
Rx Machine to synchronize to the incoming data, and
adjust for any jitter in the incoming data.
The 82510 DPLL operates on the assumption that a
transition in the incoming data indicates the beginning
of a new bit cell. A valid asynchronous character frame
will contain one or more transitions depending upon
the data. If upon occurrence of the transition, the
DPLL phase expectation is different from the sampled
phase, then there is jitter in the incoming data. The
DPLL will compensate for the phase shift by adjusting
its phase expectations, until the expected phase and the
sampled phase are locked in. The user can enable or
disable the DPLL through the Receive Mode Register
(RMD).
5.3.4.3 Sampling Windows
The sampling windows are used to generate the data
bit, by repeated sampling of the RXD line. The bit polarity decision is based upon a majority vote of the samples. If a majority of the samples are "1" then the bit is
a "1". If all samples are not in agreement then the
Noisy Character bit in the RXF register is set. The sampling windows are programmable for either 3 of 16 or 7
of 16. The 3/16 mode improves the jitter tolerance of
the medium. While the 7/16 window improves the impulse noise tolerance of the channel.
The sampling windows also provide a Noisy character
bit in the RXF register. This bit indicates that the current character being read had some noise in one or
more of its bits (all the samples were not in agreement).
This bit can be used along with the Parity and Framing
error bits to provide an indication of noise on the channel. For example, if the Noisy Character bit and the
Parity or the Framing errors occur simultaneously,
then the noise is probably sufficient to merit a complete
check of the communications channel. The noisy bit
can also be used to determine when the cable is too long
or the baud rate is too high. The user would keep a tally
of the noisy characters, and if more than a certain number of characters were received with noise indications;
then either the baud rate should be lowered or the distance between the two nodes should be reduced.
5.4 Timer Usage
The 82510 has two baud rate generators, each of these
can be configured to operate as Timers. Typical applications use BRG A as a BRG and BRG B as a Timer.
Since both the Transmitter and the Receiver may need
to generate time outs, it is best to use the Timer as a
Time Base to decrement ticks (upon a Timer Expired
Interrupt) from (software implemented) Tx and/or Rx
counters. The Timer can also be used to time out the
Rx FIFO and read characters that otherwise may not
have been able to eXgeed the Rx FIFO threshold.
5.4.1 USE AS A TIME BASE
The transmitter and the receiver routines use a software
variable which acts as a counter. The variable is loaded
with the required number of ticks that are needed for
the Time Out period. Once started the Timer generates
an interrupt each time it expires, the interrupt handler
then decrements the counters. Once loaded the software monitors the counters until their value reaches
zero, this would indicate to the software that the required time period has elapsed. The Time Base value
should be selected with regards to the CPU interrUpt
load. The CPU load will increase substantially when
the Timer is used as a Time Base, therefore using the
Timer in this mode at very high baud rates may cause
character overruns. A time base of 5 or 1 ms is probably the most useful. An additional benefit of the Time
Base is that it can support more than two counters if
required.
2-217
inter
Ap·401
5.4.2 USE FOR RX FIFO TIME OUT
BRG·B is used as Timer.
BRG·A is used as BRG. '
-TB Ex bit in TMST Enabled.
T><-Timer_Count contains count.for Transmitter.
R><-Timer_Count contai~s count for Receiver.
In the 82510, Rx FIFO interrupts will occur only after
the FIFO level has exceeded the threshold. Due to this
mechanism and the nonuniform arrival rate of characters in asynchronous communications, there is a chance
that characters will be "trapped" in the Rx FIFO for
an extended period of time.
For example, assume the 82510 is a serial port on a
system and is connected to a terminal. The user is entering a command line. The Rx FIFO Threshold = 3,
and at the end only two bytes are received. Since the
FIFO threshold has not been exceeded, the Rx FlFO
interrupt is not generated. No other characters are received for 30 minutes, if the characters (in the Rx
FIFO) are a line feed and carriage return, respectively,
the CPU may be waiting for the CR to process the
characters it has received. Consequently the characters
will not be processed for 30 minutes.
In order to avoid such situations, a Rx FIFO Time Out
mechanism can be implemented by using the 82510
Timer. The time out indicates that a certain amount of
time has elapsed since the last read operation was performed. It causes the CPU to check the Rx FIFO and
read any characters that are present.
231928-27
Figure 24. Timer use as Time Base for Transmit
and Receive
In applications where the character reception occurs in
a spurious manner (the exact number of characters cannot be guaranteed), the Rx FIFO Time Out is the only
way to prevent characters from being trapped. The time
out period is measured from the last read operation,
every read operation resets the Rx FIFO Timer. To
synchronize with the begil;ming of the data reception,
initially the Rx FIFO threshold is set to zero. After the
first character has been received, the threshold is adjusted to the desired value. When a Rx FIFO time out
occurs and no data is available, the threshold is reset to
zero. In error free data transmission, the beginning of
data transmission is signaled by the reception of a control character, such as SOH or STX, the Rx FIFO time
out mechanism .should be triggered to the reception of
these control characters.
2-218
inter
AP-401
(
MAIN RX ROUTINE)
RX FIFO INTERRUPT ROUTINE
231928-28
231928-29
Figure 25. Rx FIFO Time Out Flow Chart
inter
AP·401
8 BIT
ONE'S
COMPLEMENT
OF PACKET
NUMBER
128 BYTES
OF DATA
8 BIT
128 BYTES
CONTROL
CHARACTER
231928-30
Figure 26. Packet Structure of XMODEM
6.0 82510 IMPLEMENTATION OF
XMODEM
6.2 Software
The 82510 XMODEM implementation is a file transfer
program for the 82510 based on the XMODEM protocol. The software runs on the PC AT on a especially
designed adapter board (the adapter' board design is
shown in Figure 33). The software uses most of the
82510 features including the baud rate generator, Timer, Control Character Recogiiition and FIFOs. The
software uses an interrupt driven implementation, written in both assembly and C languages.
6.1 XMODEM Protocol
XMODEM is a popular error free data transfer protocol for asynchronous communications. Data is transferred in fixed length 128 byte packets, each packet has
a checksum for error checking. The packets are delineated by control characters, which act as flags between
the Receiver and the Transmitter. There are four control characters, SOH, EOT, ACK, and NAK. SOH indicates the Start of a Packet, EOT indicates the End Of
Transmission; ACK and NAK are positive or negative
acknowledgements of the packet respectively. The
packet structure and protocol flow of XMODEM is
provided in the figures given below.
Interrupts are used to transmit and receive data. The
software is implemented as two independent finite state
machines-Transmit State Machine and Receive State
Machine. Each state machine is triggered by external
events such as user commands and data or Control
Character reception. The state machines communicate
with the 82510 interrupt service routines through software flags. The overall structure of the main routine is
given in Figure 31. The major modules of the software
are given in the hierarchy Chart, Figure 34, which lists
the different modules in order.
The interface between the main program and the interrupt service routine is done through global flags. The
interrupt handler services four sources-Transmit,
Timer, Receive, and Control Characters. Each of the
interrupt sources communicates with each of the state
machines through the global flags. The state machines
keep track of their individual states through state variables. The interface between the individual states within
a state machine is done through state flags. The state
machine diagrams are given in Figure 29 and Figure
30.
2-220
intJ
Ap·401
(
TRANSMIT)
NO
ASSEMBLE
NEXT PACKET
231928-31
Fi$lure 27. Protocol Flow for Transmit Side of XMODEM
2·221
Ap·401
SEND NAK
SEND ACK
RX PACKET #
AND PACKET COMP
231928-32
Figure 28. Protocol Flow for Receive Side of XMODEM
2-222
inter
Ap·401
NAK
RXD
231928-33
Figure 29. Transmit State Machine
2-223
Ap·401
4 SEC TIME OUT
AND <10 TIME OUTS
231928-34
Figure 30. Rx State Machine
2-224
inter
Ap·401
mit interrupt service routine reads characters from the
packet buffer and writes it to the Tx FIFO. Since it
does not require the use of the Transmit Flags. no information is written to the TXF register.
START
Initialization
WHILE (NOT QUIT)
{
UPDATE STATUS ON SCREEN
IF (KEYBOARD HIT)
THEN PROCESS COMMAND
PROCESS TRANSMIT STATE MACHINE
PROCESS RECEIVE STATE MACHINE
6.2.2 RECEPTION OF DATA
I
END
Figure 31. Software Structure
6.2.1 TRANSMISSION OF DATA
The Transmit interrupts are disabled until data transmission is required. this prevents unnecessary Transmit
interrupts. The Transmit. interrupt is enabled when a
packet has been assembled or if a Control Character is
required to be transmitted. Upon invocation the Trans-
Data reception begins only after a Start of Header
(SOH) control character is received. This control character puts the receiver in a data reception mode. After
receiving the SOH. the CCR interrupt is disabled (since
.all data being received now is transparent and can not
be interpreted as a control character). After 132 characters are received. the CCR interrupt is reenabled and
the corresponding ACK or NAK sent to the Transmitting system. The receiver has a time out feature. which
causes it to check the Rx FIFO for any remaining characters. End of Transmission is indicated by an EOT
control character, which causes the file to be closed and
the Receiver to go into the Idle state.
...------...;....- SEND_CCR_RQ(rROM RECEIVE STATE MACHINE)
TX
STATE
MACHINE
CCR_TO_GET
GET_CCR_RQ
~-~
RX
STATE
MACHINE
BYTES RXD
RECEIVE
G
Figure 32. Using Flags for Communications with Interrupt Routine
2-225
231928-35
l
74LS04
A8_~A8
OPSW
~
15
+5V
1
AEN
R2
2
2K
2
+12V
L.!!..!........
2
~A
r---"3
4' ~O
1
R1
2K
2
1Y 7
-1~~
5
US
""c:
is
CiI
I\)
i\,
~
CONNECTOR
~
TX01
!i
RX01
....
1
~
"U
()
'P
o
~
III
1...
75154
U10
+5V
6 3A
3 1T
U3
RI
Ci'S
OSR
74LS05
~2
L-
CO
U4
231928-36
l
"TI
ra"
e
ii1
Co)
f'>
I\)
:l:
r\:,
CD
I\)
-...j
ri
CONVIG_510
»
l
...
INILINLHANDLER
ii1
o
:T
'<
o
:T
DI
:::.
231928-37
inter
6.3 Software Listings
MAIN FROGRAM
PAGE
ftp 0
82510 XHODEH
hnclude "t \ftp\ftp def"
'Include "C Ilc\fcntl hI!
hnc:lude "e \IC\5tdl1b h"
.Include "C \le\stdio hIt
1.**.*IiI* ••• _•• *".**.* •• I,,*** •• *~ ••••••••••• *•••••• '
*•••• /
/*.*
..... ,
•••• - J
SEPTE"BER 1986
10
11.
tz
13
.*.*t/
B2S10 tHODEH IMPLEMENTATION
, •••• ** •• ** ••••••••••••••••• '11 • • • 111 • • _ • • • • • • • • • • • • • /
Int
tof .dllse,
f. end of fll_ flag
*'
lQt
npk =0.
hrfl9.
nrfig,
es:p_pkt_null.
pkst,
25
20
lnt
lnt
lnt
lnt
lOt
lnt
lnt
lnt
lnt
lnt
lnt
lnt
lnt
lnt
"
/* FlI. to be Transmitted
14
15
16
l'
IB
19
20
21
22
23
24
Z8
Z9
30
31
32.
/ ' nelt
1,
qUI t
.
=(J,
1st.
0,
key
sohent =0,
n(c:.nl .0,
cercnt =0,
tl:_5 tate .ll_ldll,
fl_statl = 1'1:_ldle.
Inactive,
tB olld
lnactue;
el_cad
-
char
packet number upeeted by reeelTlr '/
/' Tla. Out c.ounter fo, rtC.I"r ' /
rwtocnt,
..
h_fl1,_nalle[40l.
/ ' I of SOli char at t er I rtC:tl'l.d ' /
/' I of h FIFO Interrupts ' /
/. I of ttl-Char . Interrupts '/
/ ' Tr In511l t t tr Shot. Vuuble ' /
/ ' Receiver Sta.h Vat uble ' /
/' IndaatlS
/' IndlCatu
*'
• Valid
• valid
Tl COllsand was guen ' /
R. Co •• and
.WII
usued '/
1* FII, to be Recilved *1
t.:hat
fI f11e_na.,[40] =
33
34
lnt
send_cce_req = Inactlv •.
3'5
3&
31
Int
Int
char
char
char
char
lntVtC =0,
I.
hdata [1321.
38
39
40
1* Flag - RlqulSt to T. Ct I-Char
1* I:Ontl.1n5 the CIa VIctor
'*,
,*1*
flbuf [128].
rxdata [1311,
fI_f_buf (32000)'
*'
'*'
T. Bufhr
R. Bufhr *1
1* R. File Stored in thll buffer
*'
41
42
43
44
45
I
*************.******.******* I
'***
t. state varllbles **11**/
1*'11:'11:'11:'11:'11:**'11:**'11:*'11:****'11:**'11:*'11:*'11:** I
Int
tI:_lnd •.
strutt
pac.ket
char
char
ehat
'*
46
POinter to the neat thuaeter In the
buf fer * I
4'
48
49
50
51
52
53
char
head.
pack_hulD.
pack_cap I ,
buff er [12B] ,
char
Chks~.
54
55
56
57
5t ruct pac.ket rapaek. tlpacl: ,
231928-38
82510 XMODEM Implementation
2-228
intJ
AP·401
HAIN PROGRAK
PAGE
lip.
82510 IHODEH
58
59
/ •• '11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 •••••••••••••••••••• I
60
/**..
t. State aachlne and tnhr[upt
handler
....... /
...... ,
fllVI
&1
/.....
61
63
, ••••••••••••••••••••••••••••••••••••••••••••••••••••• I
&4
, .. hm ud h
fifo
**1
1* Flag - Indicates. request for tran.ausion to
11510 Inhrrupt Handlu 'II/
CCt_to_tI ... 0,
Actual Ctl-char to Trans.it *1
h_byte_cnt .0,
Total' of ayt .. Tran •• itted */
pU'_'lnt .0,
/*. of Paeket. lint'll/
65 lnt
66
"Jnt
68
Int
69 lnt
tI_teq .0,
,'II
,'II
70
71
71
1** Tuut
**1
ta_tuDe_cnt =0,
lnt
,'II
Tranlmitter Tllatr Counter'll/
73
74
15
16
77
78
79
80
81
82
, . . CCR **1
get_ccr_rq ... 0,
I. Flag - aequelt to Rlcelve etl-character
etr_to_vet .0, f. Reclued Ctl-char value'll/
tnt
lRt
'II/
, ••••••••••••••••••••••••••••••• _ ••••••••••••••••••••• ••••• ,
/.u.
'uu
1****
83
IUU
84
I •••• *
U*.*/
* •• ** I
RX STATE VAR IABLES
•••• *I
**.** 1
* *•••• lit • • • *•• ** .:t* •••••••• '/1 * lit • • • ** •••• * •• * •• * •••• * ••• I
85
U
81
88
89
90
?t
H
93
94
char
Int
Int
95
1**
96
Int
'**
98
99
101
102
103
104
105
bad_pkt_cnt,
1* Calcuhted ChksulD *1
1* • of EOTs ReCeived
I
I • • of Bad Pachts Recuved *1
*
I •• ** * ••• * * ••••••• * ••••••• * ••••••••••••••••••••••••• ,
,UU
ra It&t. 'Iuthlnl!! &nd Interrupt
•• ".1
1****
h&ndler fIaq5
*U**,
I •••••••••••••••••••••••••••••••••••• • **.**.* •••• 11:.* I
97
100
eot_cnt .0.
fifo ** I
r a_by t I!!_cn t .0,
I•
•
of Bytes Rec'lVed .,
eeR ttl
th&t a ttl-Char
reeuvd·1
I. AetUJ,l Ctl-ehu recuvtd ./
I. Flaq-indlcatlnq
lnt
Int
has been
/.* Timer
Int
•• ,
[I_tlae_cnt =0,
I. ReceIVe Timer Count
.,
231928-39
82510 XMODEM Implementation (Continued)
2-229
inter
Ap·401
MAIN PROCRAM
PAGE
106
107
108
109
110
111
112
113
Itp c
1*** •••••••••••• ** •••••••• " ••• ** •••••• " •• ,
,.*
t_1 fl. 11*. I I .t"
.t.t .. *IU* ....
111*"
MAIN ROUTINE
, ...
JI
I
ttt ..... "11 t
Int
.nt
.nt
115
116 • nt
117. .nt
q.tlfl,[lfI,
rval,v .0,
0,
cmd
wn_,t,&tul .0 •
118
.. fp.
-flfp,
.
.cod.'
rx Lt
119. FILE
120 • nt
121
lnt
122. .nt
123 .nt
124 int
125 .nt
:I::
0,
twst •
west,
rttl_cnt =0,
tocnt .0,
.
count */
Till' Out Count */
1,1,
Ipcnt
0,
127
CLR 0,
128
1Z9
130
"V_CURS (&0_[, 10_C) ,
printf 111);
inl t (),
MENU 0,
tnblnt4 (),
outp (lpOQ,eoi),
outp «bp&+3),OI2Z),
1 pent =0,
131
13Z
133
134
/ •••
'*'* R.tranllut
ta_secs, ,._'ICS,
116
138
139
140
141
... ,
*t
mlln ()
114
135
136.
137
82510 IMODEII
** *t ..... *'/1""
"
"
"
"/*
Clear Scr •• n
*'
SI"n On M,,,ag,
"
Inltul11t 82510 ond VuiaUu
Pr Int Mlnu *'
Enab I, Interrupts in USIA ' /
"
15IUf EOI
*/
/' stut tlaer B '/
of Loops ,/
/* Keeps Track 01
/'
•
ft • • • • • • _ • • • • _ • • • • _
. t t ..... t __ • • • __ • • • ,
/*..
D.l1n while loop
•• tt/
, ••••••••••••••••••• *t t t t t t t t t tt t t t t t t t t t t t t . t t t t t . ,
while (quih=f.lse)
(
142
143
144
14:5
146.
147.
148
149
1'50
151
1$2.
153
154
155
156
1'57
158.
159
HO
161
lU
163.
164
.65.
I t t t t t t t ._._t tt t t . t t t t_t.t t t t t 11 t t . tt t t ,
'ilt
dISplay protocol parl.,tirs
, t ••••••• t . t •• t ttfl.t 11 t t t t . t . '/I t t t
ttl
*t . t t . I
++ Ipent;
.v_curs
(~,30),
prlntf (1lloop • '"' 'll.u",lpent),
.. ,,_euts (4,50),
ponti
.,,_cuts
ponti
.. ,,_curs
prlntf
("rl lnt cnt
'ttu",rlfenU,
(5,501,
("cer lDt cnt .. 'rtu",eerent);
(4,1),
("interrupt "eetor I;: "u \nll,
q .. tnp (bpa+4),
hfl .. q & 0107,
1D.,_eurs (5,ll,
prlntf ("TX FIFO
",hfl),
q .. Inp (bPI+4),
t l f l = q & 0170;
.,_curs (6,1),
prlntf ("RX FIFO
\n",ufl/16),
.,,_curs (6,50),
prlntf ("SOH count = "3u",sohcnt),
int,.e),
"U
"u
231928-40
82510 XMODEM Implementation (Continued)
2-230
AP-401
PACE
MAIN PROCRAM
ftp c
81110 XMODEM
166
167
.. ,,_curs (1,1),
prlntf ("bytes uc:dud 'Uu",tI_bytl_c.nt),
U8
169
170
171
172
173.
.'_C.UrI
174
.,_curl (6.30),
printf ("pUs .ent • "h", pU._untl,
ta_I'u. tl_tia,_cnt/2.00.
175
116
(7,30),
printf ("a,tll Sent. IUu",tl_byll_c.nU,
a,,_curs (1, SO) ,
pr tntf ("EOT count .. au" I lot_cntl.
."_CUrI (S,30),
punt(
("pkta rid . . . 3u",(tlp_ptt_ftU1D-1l),
177
178
rJ_ItCI • lI_t ia,_ent 1200.
open_wind (3,l,"TI Ti.erOl)j
119.
1.0
181
111
printf ( I I . 'ltlu I.C.",tI_IIU),
open_wind (3,SO,"R. Tlll.r"),
183
184
115
printf
• t.lu •• el",[I_IIe.II,
(8,1),
pr lftt f ("Bad Packets Rad • "3u". hd_pkt_cnt) ,
."_CUri (1,30),
printf (II' of RtT, pac.kets • "3u",r.tl_c.nt);
(01
.'_CUII
116
117. 1* If Co •• and Illuad then proce .. the Co •• and ./
188
If «kl, .tbhltO) ) 0)
189
qUl t .. procell_cad (),
190
191
el.e
192
(
193
194
,***************************************.**.* •• ****.** ·**1
191
IU."
Proce .. TI STATE MACHINE
*****1
196
/. ** ••
reVI'10n 0
*****1
197
1**· ••
*****1
198.
I· *.* *.* ** *** .* •• **.* *.*.* .*** ••••• *.*.** *•••••• ** ••••• *.1
199
.wltch (lx_state) (
200
201
CUt h_141e:
202
203
/ ••••••• *•• *•• *. *. ***.* ••• ** *.*. **•••••• *.*. *.*.* ••• *••• *,
204
•• **./
,.... TRANSMITTER IDLE STATE
201
***.*,
/.* ••
206
*•••• ,
J ••••
207
Checks
for
a
Send
Ct
I-Char
*****1
I· _ ••
208
ChICh for the Trans.it CO.lland *****1
fI fl • • _ J
209
f· *.*
210
/. -*.
fI* *_* I
211
1* *.fI ** * _* _* **fIfI * _*fI fI *•• *.*.** fI.* *.fI* fI*_* ••• *••• _*
1
212
213
214
,. If Control Character to bt Tran •• ithd Then Tran'.lt the
211
Control Character by .ett1ng the TI_req Flag and tnablug
216
tht TIM and TI FIFO Interrupti .,
*-•••••
217
218
219
no
211
222
223
224
tl_req .ctl_chr,
t 1_I_tnb (),
wh.le ( tJ_uq)O),
tl_l_di. ()i
.end_cef_req. inlet he I
III
231928-41
82510 XMODEM Implementation (Continued)
2·231
Ap·401
PACE
5
116
It
If
227.
228
229
It the Trahllut Coamand 11 i'lued then 'Jut for I NAK .,
(ta_cad •• ICti . . )
tl_cad • Inactive;
gtt_cu_rq .acti,.,
tI_tl.,_cnt .200 • .0, 1* 60
231
232 .
233.
brlak;
235
236 .
CUI wlit_MAX
237
zn.
243
244
Ti •• Out *1
IIC.
tI_It&h .. wIlt_NAX;
234
240
241
IZ 51 0 IIIOD£II
(
230
238
239
ftP c
MA IN PROGRAM
/*
1* Wilting for .. NAK charachr to begin TI
*.
*'/I lit lit. lit lit ***....... lit lit lit .,U lit 11: *. lit""" lit III: t *. **
,....
, ....
,....
,**..
Chick. For Tt •• Out
lit
It
lit ... lit
or
* ••
245
246
wn_,tatu.
247
tWItch (wn_stltus)
*.
..... ,
.... */
.. •• *'
."**1
lit *.... lit •• lit. *. **. *lit J
"A.X Rlcehld
ChiCk_wilt
&;
*'
**lit III lit 11: t *lit. lit,. **I
TRANSMITTER \lUTINC FOR A NAK TO BEGIN
TRANSMISSION
'****
I lit lit •• *. **. lit *lit lIt.'IIt *
t
lit lit lit
tilt.
11. *lit t t
(),
lit
1* Ti.1 Out or NAK Rcvd'
(
*'
248
249
250
251 .
h_statt _h'_ldle,
252
blip 0,
/* If TilDl Out thin Abort
Tun.mlilion *1
253
pta.g ("Ti •• OUT 1111 recenet not rudy");
254
cll (tI_r, h_c),
open_wI nd (t I_r, t I_C, "NONE II
255
256
257
258
casl
WI!
tin;
259
260
) ,
break,
/t if no Ti.e Out and no NAK
rc:.d thin do nothlnQ t/
bru,k,
261
262
,t
163
164
165
If NAK recehld thin Opln
fill and adunce to
Tunlait Packet Bta te t/
266
fp .. fopen (h_ftll_naae."rb"
II (Ip". NULL)
16?
168
169
270.
blip () j
prm'9 ("ERROR III flll dOli not IIlIt");
171
272
173
ell (t K_f , t K_C) ;
open_wind (tK_r,tl_c, "nonl");
tK_.hle .tK_idle;
274
215
1?6
I
Il.e
277
278
179 .
110.
la_state. tl_rdy.
tul19 II .kpkt;
181
lIZ .
283
284
285.
}j
(
wn_.tatul • 0;
/t Fiut tnk for Ta
11 to Prepare Packet .,
/. Rllet Vait_HAIt Flag
I
*'
break I
I
brukj'- end
wait nat -,
231928-42
82510 XMODEM Implementation (Continued)
2-232
inter
PAGE
AP-401
216.
c....
187
188
119.
/....
290.
291
291
293.
*••••• _•••••••••• t III
t. tll._ •••••
fl • •
.h".
TANSKITTER READY TO TRANSMIT
,....
thrll
/....
t.
lI.t t • • • • • • • • • • t.tI
,....
Int
or rltraft.ait requelt
I
..... I
of trall.ai •• ion
prlpare packet
,....
..... ,
..... ,
.t.
Hlndler Tun •• tttin; U**.,
, • • • • • • • • • • • • • • • • • • fl . . . . . . . . . . . . . . . . . . . . . . t • • • • _ • • • •
""tt,
_t_
I
/* Any Control Character To Tranl.it? */
if «und_CCf_rtq •• leUn) "
(h_rtq •• O»
h_rtq act I_chr,
196 .
297
298.
300
301
12110 XMODEK
tl_rdy
/fI.t.
294
191
I"
/tp c
KAIN PROGRAM
It Which ShOI of tranl.illion ,./
switch (tlrfI9)
(
301
303 .
304
301
306
307
al.bplet (pth_l.nt, fp),
cp,lbuf ();
tI_uq .pkt;
308
txrflCJ .tx.t9;
tl_Indl .0,
t 1_1_lnb () I
309
310
311
31Z
313.
314.
311
316 .
317
318
319 .
310
Iff A"lablt Pactlt ff/
'* RlqUllt
to
Int. Handllr
TI data .n buffer ff,
Iff Start Tun •• tuion *1
/. Enabl. TIM ,
'II _0178
outp «bpI +7),n1),
val .0.00
outp «bpa +3),'1&1),
val.h30.
outp «bp&+l>.VIl),
811
val.0180.
812
outp (bpu6),'Ii,1),
8t3
814
815
816
nt_bant (03),
ul .. 0150.
outp «bpa),va1),
'al =0Id8,
811, Itt_dlab (03),
818 outp (.
824
val c0102,
outp «bp&+6),val),
nt_bank (00).
827 ,al .. blkenb,
818 outp «bpu1)"al),
829, val. 0101.
830 outp «bpu3),'ul),
831
ut_dlab (00),
832 , , 1 . hEO,
833 outp (bpa ,'1.1);
83~
.. 1 .. 0.01,
835, outp «bpa+U,val),
836. r"lt_dlab (00),
8Z~
826
837
1* **. ** **t *t**tt t • • t* * **_ *.** ** .**t.t.*t*t*t * I
1* IHO - Ra: FIFO depth .4, auto aCk,normal tl
1* local loopbad:
1* RHO - ASCII CCR,dllabll dpl1.1/16 .. mpl
1* wlndow,absolute .tart bit sampling
1* THD - manual modi, 1 Itop bitl
1* no '-bit char, no ./w parity
1* FI10 - RI fifo Thruhold .. 3
1* TI fifo thruhold .. 0
1* RIE - Enable
*1
*1
*1
.J
*/
*1
*1
interrupts
"
"
"
"
"
"1* SBL for 5.5 ban
"
"
"/ '
"
/'
"
1* BBH - for 5 ml ban
"
"
"1* BBCr - 1,5 clk source, timer mode
"
"
"1* TMIE - Timtt B Interrupt enabll
"
"
"" BANK 0 FOR GENERAL CONF I G
"
1* GER enable timer, tI, CCR
"
1* block interrupts
"
1* LCR - dll&bl, parity, 8 bit char
"
/'
,",
di,ilOr .0lEOH for 1200
"1*1* **eRGA
.. * ** _tt_ •• *. __ ••• t •• t •••••••••••• * ••••• t"I
rI
""
MODEM CONFIGURATION
"CLeF
161, BRGA
I
231928-52
82510 XMODEM Implementation (Continued)
2-242
AP-401
HAIN PROCRAH
PACE 16
138
83'
ftp <
1l5IG IHODEH
•• t_dlab (banle)
/ •••••••••••••••••••••••••••••• 1. . . . . . . . . . . . . . . . . . . /
840
Itt
841.
..
..
tt'
.. ,,,
842
843.
'tt
'tt
'tt
844.
1 •••••••••••• ••••••• •••• · · · · · · · · _ · · · · · · . · · · · · · · · · · ,
845
IU
847.
141.
849.
150
851
152
853.
1S4
855
856
857
8S1
859 .
160.
'61
Stt DLAI btt to allow .ee ... to
Di,itor RI9hhu
tnt bank.
(
tnt
1ftv.l.
Itt_hnt (00),
in •• l . inp(bpa +3) j
tn •• ! _inul : 0180;
outp (Upl+3),inuU;
Itt_bant (bant);
)
/. lit dlab in Lea t
..................................................
rt.tt_dlab (bank)
/
..
.. ,
..,
Jtt
,
,
/
.. ,
R••• t DtA8 bit of Lea
,.* ••••••••••
, ..
t t ...
t.* ., ............ It t
•••
t._* ....... /
HZ
8U.
164.
865.
.66
8&1.
,'I
tnt bank,
(
tnt
invil j
.et_banll: (00);
in,.l • Inp(bpa +3) i
in,.l. (invil & 0.1f)i
.69 oulp «bpa+3),iftl'll)j
810 ttt_bank (bant);
871. )
'*
dlab. 0 in LeRtl
231928-53
82510 XMODEM Implementation (Continued)
2·243
intJ
AP-401
MAIN PROCRAM
PAGE 11
871
813
814.
815
876
J.
rout
/fltU
82510 Interrupt
/**--
12510 Interrapt tOaHU
TII1
CCR
,*u*
881
882
883
,....
IU..
, ....
885
82510 X1100E11
fI*._ * 11 *'11 • • • • 11 t • • fit_ *. fI_ ._. 11 • • • 11 11 •• 11 11 *11 11 11 *fI ._ •• _ 11 .*11 fl. 11 • • • I
,u..
, .. ..
,* .. .
8?7
878.
819.
880
884
f\p c
/* . . /** . .
*****/
11****,
.t.t.
.. ... ,
1ftt
I
*_._
••••
•• If
TX FIFO
HX FIFO
TIMER B
fl • • • •
I
:
... **/
t,
*._ ..
Idtntlfus and service. the 12510 interrupt
lourc. r.qulsting S'Ulct.
u ..
tU,U/
I
,u ..
, ••• *•••••••••••••••••••••••
*.*.*/
'I"IU.** ••••••••••••••••••••••••• /
88&
881
lif_510
888
(
88.
lnl
Int
lnt
lnl
cmd_b,
st_b,
int
etle,
890
891
8.2.
8.3
8.4
8'5
89&
8.1.
898
899
.00
901
902
903
904
lnl
lnt
lnl
lnt
()
louree
1,
f 19B,
91 f."l.
f 1'11,
II _c.har,
,- Stote. Temp
V,lu. of elK */
[I
guv.1 =Inp (bPI+Z) •
It 51'1' Bank uQ15hr In telDp.
locat 10ft .1
outp «bpa+ll.0J20)
source: getsre (),
Intvle. _sourCI,
sWitch (.ourc.)
,. Cet Vector Fr01l CIR 123 ./
I. Service the Source .1
90S
906
901
cu. t Itler
, •••••••• 1: • • • • • • • • • • • • • , • • • • • • • • • • • • • • • • • • • • • • • • • , . , • • • • • ,
•••• , I
908. 1****
/
909
,*"U
TIMER SERVICE ROUTINE
/
910
1*"**
decrements h counter
d.cre .... nts
counter
911
1****
911
913
914
915
916
911
918
919
920
921
921
923
.....
.....,
.....
..... ,
....
,
I •• •••• _ •• , ••••••••••••••••••• , ••••••••••••••••••••••••• , I
It_b II' Inp (bp&+3),
If
ell (rl_t,U_C),
1161
l1U
1163
1144.
1165
/* Get ra fiIt n •• 1 ./
,
open_wind (r,_r,ta_tl"enabled");
open_wi nd (r 1_[ I rI_c+ 14, r I_I Il,_naa.) j
fl_cad alethe.
/* Actuate flag to ,ililna1
rl stat .... chlnl */
brl":,
1166
lIP
1148
1169
rst5tO (),
/* reslt 8%510 *1
0pln_wind (24,30,"1I1"1cI rl.lt");
break;
1170.
1171
I 172
1173
I 174
I I 7S
I I 76
1177
I I 78
rlt510 (),
Init (),
Inblnt4 ().
pr"IO (" 82510 runitll.l1Itd");
brlak,
1179
c.a.1
1180
1181.
1112
1183
1184
I t8S
I 186
1187
1118
1189
1190
l1fl
1* rllftltlli1l1 U510 *1
hip (),
I.ep .. ',Itl" ("d' \.Ieom");
default
BEEP ();
pralQ ("incorrect co.mand, rlentlr"),
brlak,
If (lIflO ... true)
.1..
1* if lIit comllland 1IlUld,
thin quit program *1
return (tru.),
return (fall'),
'* .nd of eo•• and proe.1I1n; */
231928-59
82510 XMODEM Implementation (Continued)
2-249
inter
AP-401
PACE 23
1192
1193.
1194
IUS,
11".
1197 .
1198.
1199 .
1200
1101.
1202.
1203
1204
1105.
1206.
1207
1208
1209
111 0
1211
f I p.
HA IN PROCRAH
.t.
umbpU (pttl_ . . ntofp)
,.t
It
**tt** * *It
t
fI
It
82510 IHOOE"
'* *'111 It •• t I: **t l~ ..... t t t *t t t •• til: tt.t_ **II: ** I
R.,d! rl1. to b, tran •• ttttd Ind putl
the data inlo tbt proper .1I0d •• picket fora,l
It*
IU
,1111 t t t
t'_.' It tt •• t t t ttt._._ *.".***'u! *t t t t t t t t ••
lnl
ptt'_'lnt,
FILE
• f Pi
t ••• _ •••
tt'
ttl
tt.t. I
/* thil valu. 11 uled to
Olt tb, nllt ptt • • /
(
int
lua oaO;
1, blkcnt,
It, f t,
char
cpU I cplcc.p,
lnt
lnl
bltcnt .(read <&tJplc:t,buffirtOl.12',l, fp);
if (bltcnt (1)
1* reid 128 b,t . . . /
(
if «It-feof(fp»
>0 && I(ft-flrrorerp»)
(
1112
tof • trUt;
1213 .
1114
1215
htp ();
pnllSa ("Ear
1* If .nd of fU, thtn
lional EOr *1
II I I
II
I I
!!
I
") j
1216 .
,llie
1217
1218
if (ft
1%19
lUO
1221
1222
1223.
1224
1 US.
1216
)0)
(
beep ();
pnU9
("READ ERROR
I I I I I I I I I I I ''') I
t __ lhhatJ_idl.;
I
cpU .pttl_'.nt +1,
1227.
tapact.pact_nu1D. cpU;
1228.
cptc.p .,"tlpact pact_null.
1229.
1230.
taPl.ct, plck_cmpt • cptc.p;
1231
1232
1213
for (1-=0, 1 (1U, i++)
IU1I. lua.tlplc.li:.bufferCll;
tlplell: c:htl. a lua " 155;
1* ont'l coaplt •• nt of
padtt numller .,
I. chteklUlII calculated *1
1234
1235.
1136
1237.
1138 . • pya.f ()
1139 ,*t. ** *t *t ** *. *11. * ••• It 11 *1111.* It. J
*
to t. buffer HI
1240
/n copy plctet
1241.
' . . . . . 11 .. ***11 ...... 11 •• *** ...... ,
1242
1143. lnt 1,
1244.
1%45
1246.
1141.
124L
1149
1250
1251.
t.dltl [0] atJplct.hildi
tJdah [11 -tJpack.plct_ftUllj
hdl~a[2l atlpact,pack_cm.pl;
for (hOi i (128i 1+.)
tldata [1+31 • t_plck bufflr [tli
hdlta [1311 atlplck.cht.ai
I
231928-60
82510 XMODEM Implementation (Continued)
2·250
AP·401
MAIN PROGRAM
PAGE 24
lip.
82510 XMODEM
1252
1254
I""
1255.
, . . . . PROCEUDRE CHECK_WAlT
US?
1258
lZ'!19
, .. . .
/ .. ..
, .. ..
tUO
U6t
, .. ..
, .. ..
t f l . t ft • • • t . t t ••
t.t. t t t . t •• '11" t • • • • • t • • • • • • • • • t • • • • _ •• ***/
..... ,
• ...... I
us, , .. ..
c.h.e.ts
Tia, Out - TI T1al[ • 0
fI_ACK
- Act rlc.iud
u_NAI
- Nit ncthed
waiting - h Tiaer not .. pued
12'2. , .. ..
UU
1264
, . . ..
, .. ..
tUS
1266
, .. ..
1267
T. Tlatr. eer_to_Glt and
CJ.t_cu_req and return.'
..._...•• *'t,,
.....
..... ,
•• t.
. t t •• ,
**_**1
*...
*/
/
••••• J
I ••••••••••••••••••••••••••••••••••••• • •• • •• • •• • ........ •• */
(
1268
1269
if «ltI_ti.,_cnU "
'*
Cget_c.c.r_rq •• uthe»
1270
1271
1272
1273
U?4.
if t. Tiatt •• pired
and Itll1 wlitlng
for eontrol char.thtn
Ti •• out .,
ell'
/. Ct I-Char rC'fd thin
1275
12 76
1277.
1278
1279
1280
1281
1281
1283
tlturn statuI *1
twitch (eer_to_get)
(
CUI
ACI
btl.k,
1284
ease NAI
1285
buak
UU
1287
1288 .
1289
default:
/. c.orrupttd c:tl ehar .,
break,
1290
1291.
1292
1293
1294
1295.
)
else
it «tx_ti.l_cnt )0) "
return (WI. it in;),
(g.t_c.cf_rq •• aeth.t)
1296 .
1297
1298.
231928-61
82510 XMODEM Implementation (Continued)
2-251
Ap·401
IIp c
MAIN PRoeRAM
PAGE 15
82510 XHODEM
1300
Itt t . *. *. III III_ . t . t .t_ IIItttt. t_tttt tt _t t_t tt t . __ t t t . t _* __ * t** I
1301
1302
Itttt
1303
1304
,u**
1305
JUtIiI'
130t.
J
•••• */
tranIllUI51on, uintulilt
Trans.! t ter
•••• */
Flag'
/
/ * t t __ t'll'llt'llt _.'" .'IIttt'll t'llt_.ttt.tttttt'll t t t t *111111 tt ttttt'llt tt _ t I
Itttlil'
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1311
1318
1319
1320
1321
1321
1313
1324
1315
1324
1327
1328
1329
1330
1331
1332
eof .fal •• ,
tuflg III IDkpkt.
quit .. fllse,
key .. 0,
h_1 tit • • \1_1 die.
tJ_cad :: inaet nl,
I.nd_c.cr_rtq • lnact uei
tl_lndi
II
OJ
tl_req IIIlnactive,
eer_to_tl •
Q,
tI_byte_cnt .0;
pth_lent .. 0,
tI_t l.,_cnt .0,
gtt_ccf_rq .. 0,
C.Cf_tO_IJlt .0,
nt_bant (00),
outp «bpu1) ,0.27).
set_bant (001),
outp( (bpI.') • hOD),
h_state =tl_Jdlt.
pta.go ("trlnSlDltttr re.et"),
1334
Itt"tt"
1335
1336
/t***
133?,
1338
1339
..... ,
.....
• • • t It
Abort
1****
t'"
t
till "111'11
III
fttftt
"'IIIt 'III'III'II'II'II*lIIt *'11 _. _t __ 'II *t t t t _ IiItt
iii iii
t_ 'II _.* I
It***
*****1
,tt"
*tt*'" I
t_t_*,
cheeks n
tl8er. and returns the
folloW189 'Illue
SOH - SOH recth.d
EDT - EOT rece lVed
,u ..
Itt**
tt t_*1
**t
__ ,
*tt*tl
ttt_ t I
1340
/t**t
1341
Itt"
1342
1343
tt*tt I
I .. t t
wilting - WaltIng for n'tnt
**ttt/
/ tt . .
I 'II_tt t t t . t t tt t . t tttt._
*tt ***t** *t IIIt***t *** ••• t.*.t t t t t I
1344
1345
1346
1347
1348.
1349
1350
1351
1352.
1353
1354
1355
135'
1357.
time out - n
tUlU I.pu.d
*__
If «etl_rld_flg =:. active) "
(rl_tIIDe_cnt IsO»
(
etl_rld_flg "'lnaetue.
return ( rI_ct I_chr);
else
If ( rI_tl1u_cnt
111=
0)
el ••
return (waiting).
231928-62
82510 XMODEM Implementation (Continued)
2-252
AP-401
PACE 26
1358
1359
1360
1361
1362
1363
1364
1365
ftp e
HAIN PROCRAM
U510 IHODEM
chkpkt ;
pfintt ("fl'd plet •
"3u", radltatO]),
In_cars (13,40);
prntt ("tlpel ptt capl =
C"UdlhtO]»,
"T_carl (14,40),
printt ("ud ptt coapl •• ent • "'X", ndltltll);
."_curs <15,1);
pflntt ("rid chtsulD = "II". udat.at130]) ,
mY_CUfl (15,40),
printf (" •• pd chhua = "'X",pt_chhm),
.tnd_ccf_feq .actiVi.
ccr_to_h = NAKj
)
=
"'X*'.
231928-64
82510 XMODEM Implementation (Continued)
2·254
AP·401
PAGE II
"AiN .ROGUR
It P . c
nil 0
IRODER
IU' , . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1111 . . . . . '
.. ,
1467. , .. PROCEDURE BUF_CrY
cophl pad:.t to II. bafhr
lUI.
Itu.
1t70
1471
1472
1t71
14,. .
Itn.
"".
"".
.....................................tI,,
,tt
,
bal_cn Ipukl_ldl
int '1ltt_Us
I
Inl
lftt
I.
lndl .0.
indl • CpleU_if .. !) 'Uli
1477. If Ilada I 111000 - lun "N. . . . rwrlt, ., ball .. "
1471 I
far ct-Oi 101li 1+ ••
1410.
u_'_lIaf tilldl.1l • riliul ttl i
lUI
1412 .
141 •.
....
In •.
231928-65
82510 XMODEM Implementation (Continued)
2-255
AP"401
PAGE
DEFINITiON FILE
flp def
Idef Ine
"liS I 0 rTP aOOO 6/30' 86."
Idef In. bPi hat 8
Id,fane gU_i.ddr
02
'defln, eSCI 27
ldef ine bel
07
6. Id,f Ine 1Is9_c 17
7
8. .def Ine
Idef Int h_c 35
10. Idef IDe t'_I
10
11. lde'ln. t'_1!
35
12 Id,fine [ 1 _ [
12
13 Ide( In. IO_C. 50
14. I.tt Inl 10_1
24
15 'd,f Ine f,l ..
16 Ulfin. t rUI
17. Id.flnt aet
I
18 Id.f In. inloct i we 0
19 Id'f In. etl_Cohr 2
20 Idef ine pH I
21
I h f 1ne .ot 55\5
Zl Id,f i fte • chk.s 5500
23 Ihf In. epkc.ap 5101
l4
'd,f lne told
5102
25 ldef In • • ptnua 5503
16
17
** •• ** •••••••••••••• /
28
/* . . h state defintlOu u */
"
2
3
4
5.
8Z510 XHODEH
11gn on .1.lige
BUI addre •• ' (
'(
('
ncapt chat
HOI
('
c::oordinlt . . of tho
• • • I&V e lin'
f
('
('
In
,/
*
·'9_[
('
c.oordinatu
*(
i,.
control char tran •• it '/
'tnd packet ' /
/' packet reclh,d ok ' (
/'
('
'* chechua .error */
/' packet e.o.pi incotflet ' (
/' old pad Dua tlclnld ' (
/, lnulid pacttt • re, •. ' /
,.** •••
2'. / •••••••••••••••••••••• ** •• ,
30
31
32
33
34.
35
36
37
31
fdlt Int tl_Ielle
'def IDe Wit t_NAK
ldef Ine TO_,t r_60
td,f int tI_t ely
Idefln, tJ_pack't
'dlfin. Wl1t_Cc
.dlf Ine t a_pit_colli))
Idef 1 ne to_err
000
001
OO!
003
004
005
006
007
0.02
111
112
113
II.
39 td.f Int tlen
40 Idef lnt atpkt
41. tdef Ine tlat;
n 14,f1n. uta
43 IdefIne w<in;
4'
4'S /"":.,,, •• t • • ** •••• *** •• **.*.*,
U
/-- n stlte definition " I
47, , •••••• 91 • • • • • • • • • • • • • • • • • • • ,
48
U. Idef In. fI_idl.
000
50. td,f In. U_fdr
001
51
Idef Inl rI_ptt
002
H
53
54
, •••••••••••••••••••••••••• I
55.
t i.,_out
90
"
td,f ine
51
td.f ine
fI_NAK
9!
58. td,f Inl
tl_left
91
S' tdef In.
r I_Vln
93
60.
/* Tranlmit paeht st>l .,
It u
state .ignal "lUll .,
231928-66
82510 XMODEM Implementation (Continued)
2-256
inter
PAGE
AP-401
DEFINITION FILE
Itp dol
81510 X"ODE"
61
61
, ••••• _ ••••••••••••••••••••••••• ,
'3,tt
'4.
65
,tt
Protocol Control
charictul
.... ,
u" I
/ ••••••••••••••••••••••••••••••• ,
"
61
!8
'd,f In. NAK
Id,l ta, ACK
'defin. SOH
71. Id., tn_ EDT
72 adel inl CAN
Id,t in. NUL
73
".
70
0a14
.""
0.04
0.01
"
"
0.04
0111
0.00
74.
....
I'
N'QltUI Act
Pulthl Act -/
Stlrt of Kllder
End of Tilt
"
"
' • • • • • fII • • • • • • • • • • • • • • • • • • • • • • • • • /
'**
lnturapt lourel
Idefln.
Idt! i1'll
Id,' in.
Ide! In'
'del i nl
,del inl
.del in,
.del ine
Idar i nt
tiaer
In
ee<
/
J ••••••••••••••••••••••••••••••• ,
fll
III
hien
tlldb
eeien
eetdb
tdlth. III ttnb
05
04
03
01
01
0112
0120
0.04
0.33
0.25
94
95 Iddine loi
96. 'dlfhe .pOO
91 Ideflnt ipOl
0.10
0.20
0121
1* end of
antarrupt fill
1* USfl port 0 *1
1* US9A port 1 *1
231928-67
82510 XMODEM Implementation (Continued)
2-257
inter
CRT 1/0 ROUTINES
PACE
e.
ell)
82510 IHODEH
haelud. "ftp deC"
CLR( )
/....
• ,....
1** **. *
Itt
*. *••• *. *•••
.t
t t •• t t
*t.
*. *. *.. t." ••• *••••
t ••••
, •• t.
/*.t.
C.lelrl
10
/
I
·*"*1
*t.t */
Icreen
*'***/
/* •• t
II
12
.....
.....
*•• ift *. **'
tt t
PROCEDURE eLR
*
/*.t
/ •••••••••••••••••••••••••••••••• ,1 • • • • • • • • • • • • • •
/
•• Ut,
**.* •••• ,'
13
14.
15 lnt eJcchr =- tSe.I,
16
17
18
19
patch (.sechr),
prlntf ("[2JOI),
20
Zl
22.
!3
14
15
Z6
17
18
Z9
30
31.
VOFF ()
, •••• ** •••• tt •• *._tt •• _•• t ••••• t . t tt ••••• _t.t.t t • • • • tt ••• ,
....
'* .t.
•• / ••• t
••••• /
/
/* t t t
*****/
Turns ReYlnt Video orr
/*
.....*',
**ttt,
I t . "'.
/*.* *
U. /*. t
.....
..... ,,
•• ***'
PROCEDURE VOFF
••• t.t
It tttt._ ••••• t ••• tttt._
*.*.
t . t . t ••••••••• t ••• t
33
34.
3S. lnt •• cchr • • Iei i
36.
31
38
H
patch (.techr),
print! ("[Om");
40
41.
H
43. RVON ()
44
/ ••••••• t
45
,....
46.
47
48
4•
50
51
51
53
54
55
56.
57.
58
59
, t •••
,. *. *
....
••••••••••
*** *t **t *. *••• *.*t **••••• *•••••••••••• I
• .... ,
..**.,
*
PROCEDURE RVON
,,./ ••**.t.
..........,
lit • • • ,
Reurs. Vid.o ON
I·'·
•
/ ••
..... ,
iIt • • • • /
/
1111 • • • • • • • • • • • • • • • • • 1111.11 • • • • • • • • • • • • • 11.11 • • • •
*••••• t •••• I
lnt .seehr • Uti,
patch (.seehr);
prlntf (IIt1."l,
AD
231928-68
82510 XMODEM Implementation (Continued)
2-258
intJ
AP-401
CRT 1/0 ROUTINES
PAGE
ColO
c
82510 IMODE)1
'1. OPEN_WIND (row, col, It g)
U. int
row.
n lnt
eol,
64. char
.t;C];
65 /1.. '111 • • • • • • • • • • • • • • • • • • • • • ** ••••• *•••••••••••••••••••••••• /
.. /....
" ....
,n.
,....
U
,....
70.
71
71
73.
74
..
PROCEDURE OPEN_WIND
""
..... ,
.. ... ,
/* •••
/
prints I string in rever •• "ideo
It the ginn location
•• U*/
'III . . . . ,
/ • • • '/II
• •••• I
,'/II '/II • •
•••• - J
,'III •• '/II '/II • • • • • • '/II,. *t.t •••••••• '/II _'III' fI • • • • • • t
• • • '111 • • • • • • • • • • • 'III • • '
7S.
76.
"V_CURS (row, co I) i
RVON (),
pnntf ("I"",lt9);
VOFF(),
17
71.
79
80
II.
IZ. )
83
14
85
"
87
BEEP ()
,.*.**
••••••••••••••••••••••• *•••••••••••••••••••••••••• *'
/*...
ttUt,
,....
/t...
PROCEDURE BEEP
18
89
90.
91.
,....
, . . "'*
,....
92
/ ••••••••••••
""'III/
".UI
produce.
I
bl.p
..... ,
** ... ,
/fI"'III
..... ,
.. ... ,
*•• '/1 • • • ,'* ••••••••••••••••••••••••••••••••••• ,
93
94.
95,
!6.
97
98
Int btlchr • bel,
pute.h (belchr),
99.
100.
101.
102.
103.
104
105.
106.
101
108
109
110
III
lIZ
CLL(row,col)
int row.
1nt e.ol.
, ...................................................... 'I •• ,
, ....
• *•• t /
/....
PROCEDURE CLL
..**./
tt ... ,
/tt . .
/U..
char lint at
JUti
....
J • •••
/
QUln
coordinate
•• *11"
••• **'
.. t " l
**.ttli
/ •••••••••••••••••••••••• *••••••••••••••••••••• *. **.* •••• I
113
114
tnt IIcchr • elCI,
MV_CURS (row, co!),
117
putch (Ise.chr)i
118.
prlnlf ("CK"),
119
1%0
115
116
231928-69
82510 XMODEM Implementation (Continued)
2-259
inter
AP-401
PAGE
CRT I/O ROUTINES
CI0
c:
82510 XHODEI'l
HI
122
123. CLMS()
1%4 1* *t ••• t t t t t t fltttt._
125
126
127
*
,....
,* •••
ft ••
..*....... ,,
*t I t t . t . t t . t •••••••••••••• ft • • • • • _. I
PROCEDURE CLMS
Itt __
.*'
.....
t. ,
•• t
118
JUU
129
13D
litU
Utu/
clear .'lllog. lID'
*•• I
**** •••••••••••••••••••••••••••••••••••••••• ** •••••• * I
1****
1****
131
132
, ••
.*.-*.,
133
134
136
137
138. pras9 ( •• 9)
139
140
141
c.har
asg [l,
/ •••••••••• *••••••••••••••• 111' • •
142.
/....
/t . . _
143
144
145
146
141
148
149
** •••••••••••••••••• *•••••• ,
lUlu
..... ,
•••• */
PRINTS MESSAGE AT IIESSAGE LINE
......* ••*',,
*1,*'"
.t ••
1****
/tt . .
, ....
1****
, ••••
*
*. *'
fl. ,
*••••• ft • • • • • • • • • • • • • • • • • • • ** •••••••••••••• *•••••••••
150
elms ();
prlntf (It
151
152.
".",
_5g),
153
154
ISS
CLLC ()
156
157
158
159
160
161
lnt escchr
162
MV_CURS (a,y)
163
1&4
165
166
161
168
;0
tlci,
puteh (neehr),
prlntf ("[K"),
/************ •• *** *t. t t . . . . . t.t._tt_ t t t tt. ***. tt. tilt
, ....
1**"
It .. .
, .. ..
/uu
/** ..
J
lDoves curior to specified
location
*****'f
••• tt
*t • • • • *t *t *t t t t *t _ ••• t *ttt._ ... *t __ tt t t t i t *t '*111 t t t t t t****.,
t **.. I
169
170
J
171.
172
173
int a,
Int ;
174
(
175
Int .seehr
176
177
178
179 .
._.t.t
*
_.*._/
••••• J
t •••• I
PROCEDURE MV_CURS
,
.
•• e I,
putch (licchr),
cprlntf ("Clllu.llluH",I,y);
231928-70
82510 XMODEM Implementation (Continued)
2-260
inter
Ap·401
PAGE
ASM 86 INTERRUPT INIT
Ihl .... 82SIO XMODEl'I
3
DCROUP GROUP
DATA
DATA
SEGMENT WORD PUBLIC 'DATA'
ASSUME OS DGROUP
DATA
ENDS
10
II
II
13
14
_PROG
SEGMENT BYTE PUBL I C 'PROG'
ASSUME CS _PROG
EITRN
PUBLIC
PUBLIC
IS
U
17
18
19
20
21
2Z
23
24
2S
26
27
2B
19
30
31
lnlt_lh
pUlh
pUlh
pUlh
push
aoo
pUlh
pop
aoo
aoo
INT
pop
pop
pop
pop
PROC
BP
AI
os
ox,
OFFSET IhSIO
CS
DS
,DOS yector IItup call
AH,2SH
H,OCH
,COK1 ,ector
,DOS _,sha call
IIH
OS
AX
01
BP
rlt
n
Iftlt_lh
ENDP
33
34
IhS 10
PROC
BP
AX
35
pUlh
36
palb
37
38
39
40
41
pUlh
pUlh
push
push
pUlh
pUlh
push
n
43
44
45
pop
48
49
SO
pop
pop
54
5S
56
57
58
Sf
60
call
pop
pop
pop
pop
pop
pop
net
IMIO
_PROG
end
for
ax
CI
DX
51
01
OS
ES
AX, DGROUP
OS, U
ur_SlO
IS
OS
01
51
01
CX
II
AI
BP
so,
110'
46
47
51
52
53
far
ox
ENDP
ENDS
231928-71
82510 XMODEM Implementation (Continued)
2-261
inter
APPLICATION
NOTE
AP-310
June 1987
High Performance
Driver for 82510
DAN GAVISH and TSVIKA KURTS
SYSTEM VALIDATION
Order Number: 292038·001
2·262
intJ
AP-310
1.0 OVERVIEW
The 82510 Asynchronous Serial Controller is a
CHMOS UART which provides high integration features to offioad the host CPU and to reduce the system
cost.
This Ap-Note presents a mechanism for reduction and
optimization of interrupt handling during asynchronous communication using the 82510. The mechanism
is valuable in applications where handling of interrupts
degrades system performance i.e., when high baud rate
is used, when mUltiple channels are handled or whenever real-time constraints exist: This implementation of
the mechanism is a software driver that transmits or
receives characters at 288000 bits per second.
The driver is based on the burst algorithm which uses
the 82510 features (FIFOs, Timers, Control Character
Recognition etc.) to reduce CPU overhead. CPU is significantly off-loaded for other tasks - about 75% of
the usual load is saved.
The driver can be easily modified to run in conjunction
with other 82510 features such as the MCS-51 9-bit
Protocol.
This document provides a full description of the driver.
The burst algorithm is presented in Section 3, the software module flow-charts and their descriptions are presented in Section 6, and the PL/M software listing is
given in Appendix A.
2.0 INTRODUCTION
2.1 CPU Load Consideration
The trend' towards multi-tasking systems, combined
with higher baud rates and increasing the number of
channels per CPU, has led to the need for decreasing
the CPU bandwidth consumed by the async communications for each byte transfer. Whenever the CPU is
interrupted, a certain amount of CPU time is lost in
implementing the context switch. This overhead can be
as high as hundreds of microseconds per interrupt, depending on the specific operating system parameters.
Thus, in high baud-rate or multi-channel environments,
where the interrupt frequency is very high, a substantial
portion of the CPU time is taken up by this interrupt
overhead. Therefore, systems usually require minimization of the number of interrupt events. In the case of an
asynchronous communication channel, reduction of the
number of interrupts can be achieved by servicing (i.e.,
transferring to/from the buffer) as many characters as
possible whenever the interrupt routine is activated.
This can be done by utilizing FIFOs to hold received or
transmitted characters, so that the CPU is interrupted
only after a certain number of characters have been
received or transmitted. Using a receive FIFO may
cause a potential problem: Due to the random rate of
character arrival in asynchronous communications,
there is a chance that characters will be "trapped" in
the Rx FIFO for extended periods of time. In order to
avoid such situations, a Rx FIFO time-out mechanism
can be implemented using the 82510 timer. The timeout indicates that a certain amount of time has elapsed
since the last read operation was performed. It causes
the CPU to check the Rx FIFO and read any characters that are present. This process, however, introduces
the additional overhead of the timer interrupt. This ApNote describes the use of the burst algorithm to avoid
the timer interrupt overhead while maintaining the use
of the Rx FIFO.
2.2 82510 Feat!Jres Vsed In This
Implemehtatlon
The following new 82510 features were used in this im'
plementation:
2.2_1 FIFOs
The 82510 is equipped with 2 four-byte FIFOs, one for
reception and one for transmission. While characters
are being received, a Rx FIFO interrupt is generated,
when the Rx FIFO occupancy increases above a programmable threshold. While characters are being transmitted, a Tx FIFO interrupt is generated, when the Tx
FIFO occupancy drops below a programmable threshold. The two thresholds are software programmable,
for maximum optimization to the system requirements.
2_2_2 TIMER
The 82510 is equipped with two on chip timers. Each
timer can be used as a baud rate generator or as a general purpose timer. When two independent baud rates
are required for transmit and receive, the two timers
can be used to generate both baud rates internally. Otherwise, one timer can be used for external purposes.
The timer is loaded with its initial value by a software
command and it counts down using system clock pulses. When it expires, a maskable interrupt is generated.
2-263
inter
Ap·310
3.0 THE BURST ALGORITHM
2.2.3 CONTROL CHARACTER RECOGNITION
Depending on the application, the software usually
checks the received characters to determine whether
certain control characters have been received, in which
case special ptocessing is performed. This loads the
CPU, as every received character should be compared
to a list of control characters. With the 82510, the CPU
is offioaded from this overhead. Every received character is checked by the 82510, and compared to either a
standard set of control characters (ASCII or EBCDIC)
or to special user defined control characters. The software does not need to check the received characters,
and a special interrupt is provided when a received control character is detected by the 82510. The specific
operation mode (standard set, user defined, etc.) is programmable.
2.2.4 INTERRUPT cONTROLLING MECHANISM
The twenty possible interrupt sources of the 82510 are
grouped into six blocks: Timer, Tx machine, Rx machine, Rx FIFO, Tx FIFO, or Modem. Interrupt
source blocks are prioritized. The interrupt management is performed by the 82510 hardware. The CPU is
interrupted by a single 82510 interrupt signal. The interrupt' handler is reported on the highest priority pending interrupt block (GIR) and on all the pending interrupt blocks (GSR), as well as on the specific interrupt
source. Interrupts are maskable at the block level and
source level. Interrupts can be automatically acknowledged (become not pending) when serviced by the software, or manually acknowledged by an explicit command.
3.1 Background
The 82510 FIFOs are used to reduce the CPU interrupt
load. When a burst of characters is transmitted or
received, the CPU is interrupted only once per transmission or receptioll of up to four characters. FIFO
thresholds are programmllblej. thus, when high system
interrupt latency is expected, an optin:mJ. threshold may
be selected for the desired trade-off between the CPU
load, lind the acceptable system interrupt latellcy. The
required Rx FIfO threshold is lllso a function of the
receive character rate. When the rate is high, a deep
FIFO is required. When the rate is very low (e.g., hundreds of milliseconds between characters), a low threshold is needed, to reduce the maximum character service
latency (a character is available to the application program only after it is stored in the receive buffer).
The software mechanism described here tunes the Rx
FIFO threshold dynamically when the incoming character rate is variable. The algorithm uses one of the
82510 on-chip timers for time mellsurement, in order to
automatically adapt the threshold to the character reception rate. This is done without loading the CPU
with the overhead of serving excessive interrupts generated by the timer mechanism itself.
3.2 Burst Algorithm Description
The 82510 timer is initialized to the time-out value with
every Rx FIFO interrupt. The time-out value. is ~e
maximum acceptable time between a character's reception and its storage in the receive buffer, but not less
than five character-times. Upon reception of the next
character, the timer status is examined to determine
whether the character rate is high (the timer has not yet
expired) or low (the timer has expired).
2-264
inter
AP-310
2nd character received. at LOW rate
2nd character received. at HIGH rate
receive characters at HIGH rate
292038-1
Figure 1. Burst Algorithm State Diagram
The algorithm is best describjld as a finite state machine
that can be in one of three modes: HUNTING mode,
SINGLE mode, or BURST mode. In HUNTING
mode, after the first character received interrupts the
CPU, the mode switches to SINGLE. On receiving a
character in SINGLE mode (that is the second character) the timer is examined; if the character rate is very
low, the mode is switched back to HUNTING. Otherwise, the rate is high enough to switch to BURST
mode. In BURST mode, the Rx FIFO threshold is
maximal. The machine' remains in BURST mode as
long as a burst of characters is being received. When
the rate of character reception becomes low, the timer
eventually expires generating a timer interrupt which
switches the mode back to HUNTING.
4.0 SOFTWARE' MODULE MAP
The driver contains the following software modules:
• MAIN
• BURST ALGORITHM
- Burst Algorithm Initialization (*)
- Rx FIFO Step (*)
- HUNTING mode
- SINGLE mode
- BURST mode
- Timer Step (0)
• INITIALIZATIONS
- Wait for Modem Status
• INTERRUPT HANDLER
- Rx FIFO Interrupt Service Routine
- Tx FIFO Interrupt Service Routine
- Status Interrupt Service Routine
- Timer Interrupt Service Routine
- Modem Interrupt Service Routine
Note that while a burst of characters is being received,
the CPU is interrupted only once per four received
characters. If the characters are received at a very low
rate, an interrupt occurs for eaph received character.
The CPl) is interrupted by the timer only once, when
the bllrst ,terminates. See Figure 1 for a state diagram.
For more details about the burst algorithm see paragraph 6.2.
(*) The burst algorithm modules are called by the ini-
tialization module and by the interrupt handler modules.
2-265
inter
Ap·310
IN1TIALIZATIONS
292038-2
Figure 2. Modules Block Diagram
5.0 HARDWARE VEHICLE
DESCRIPTION
6.0 SOFTWARE MODULE
DESCRIPTI,ONS
The driver was tested at 288000 baud, on an 80186
based system, with an 8 MHz local bus running with 2
wait-states, and an 18.432 MHz 82510 clock. Two stations were involved: one transmitter station and one
receiver station. Each station consisted of an
iSBC186/51 with a 82510 based SBX board connected
to it. See Appendix B for description- of the SBX board.
This driver is, nonetheless, suitable for running in a
large number of system environments.
6.1 MAIN
The MAIN module is a simple example of an application program that uses the driver.
The communication is done between two station's: One'
station is the transmitter and the other one is the reo
ceiver. After interrupts are enabled, the program waits
for the Finish_Tx flag or the FinisLRx flag-(for the
transmitter or receiver station, respectively) to be set.
In the tran~mitter station, the driver is preloaded with
the transmit data. In the receiver station, the received
data is displayed after data reception is complete.
2-266
inter
Ap·310
292038-3
Figure 3. MAIN
6.2 The Burst Algorithm Modules
6.2.1 INITIALIZE THE BURST ALGORITHM
This module is called by the initialization module.
The global variable Burst_algo is used to indicate the
current burst algorithm mode.
The burst algorithm is most useful at a baud rate of
9600 or higher. At lower baud rates, where the Rx in·
terrupt rate is very low, the burst algorithm is degenerated (Low_baud is assigned to Burst_algo). At a
baud rate of 9600 or more, the burst algorithm mechanism is initialized and starts by disabling the timer interrupt.
The initial state of the burst algorithm is HUNTING
mode. In this mode, it is looking for (hunting) the first
character. The Rx FIFO threshold is zero, thus the first
character received interrupts CPU. This interrupt starts
the burst algorithm mechanism.
2-267
BURST_algo = Low Baud
292038-4
Figure 4. Initialize The Burst Algorithm
inter
AP-310
6.2.2 BURST ALGORITHM MECHANISM
6.2.2.2 SINGLE Mode
Modules HUNTING, SINGLE, BURST are called by
Rx FIFO interrupt service routine. Module
BURST&TIMER is called by timer interrupt service
routine.
When the second character is received, the burst algorithm is in SINGLE mode. Timer status is read
(TMST). If the status indicates that the timer has expired, the receive character rate is low and there is no
need to increase the Rx FIFO threshold. The burst algorithm returns to its first state, i.e., HUNTING mode.
However, if the timer has not expired, the receive character rate is high, and the Rx FIFO threshold is set to
the maximal allowable value. The timer is restarted and
the timer interrupt is enabled so that, if it expires before
the Rx FIFO exceeds the threshold, a timer interrupt
will occur.
6.2.2.1 HUNTING Mode
Hunting for the first character received is the first step
in the burst algorithm. After the first character is de·
tected, received and handled, it must be determined if
reception will be at high or low rate. This is done by
starting the timer. HUNTING mode ends by assigning
the second step, i.e., SINGLE mode, to Burst_algo.
SINGLE mode is ended by assigning the third step,
BURST mode, to BURST__algo.
SINGLE mode
BURSLolgo
BURST mode
=HUNTING
292038-5
Figure 5. The Burst Algorithm
2-268
inter
AP-310
6.2.2.3 BURST Mode
The algorithm enters BURST mode as soon as the receive character rate is evaluated as high, i.e., when two
successive characters are received without a timer expiration. The FIFO is now working at full threshold and
the timer is used as a timeout watch dog. BURST mode
is the most time-critical path of the algorithm. Therefore, it consumes a minimum amount of real time.
The timer is restarted, in order to restart a new timeout
measurement. The timer status is read to trigger automatic reset of the previous status; this is done to avoid
the timer interrupt if the timer has expired during the
Rx FIFO interrupt service routine execution.
If the character reception rate becomes low, then the
time between two successive Rx FIFO interrupts increases. Hence, a reduction in the reception rate causes
the timeout to expire, and a timer interrupt occurs.
This drives the algorithm back to HUNTING mode.
The timer interrupt is disabled and the Rx FIFO
threshold is configured to zero, to issue an Rx interrupt
on the first hunted character.
Figure 6. Timer Interrupt and BURST Algorithm
Table 1. BURST Algorithm Modes
Timer
Timer-Interrupt
Hunting
0
Idle
Disabled
Single
0
Started
Disabled
Burst
Max.
Restarted
Enabled
SINGLE mode has a slightly longer path. However,
under a high reception rate, the algorithm passes SINGLE mode once only and then stays in BURST mode
until the end of the burst. Under a low reception rate
the algorithm passes SINGLE mode many times, but,
since the period between two successive Rx interrupts is
long, this hardly affects system performance.
This module initializes the driver. It is called at program start-up.
The 82510 is configured for the specific operation mode
by the CONFIG_82510 submodule: A Software Reset
command is issued, and then the character configuration is selected. In the receiver station ACRO and
ACRI Registers are loaded with the End-Of-File
ASCII character, so that the Control Character Recognition feature of the 82510 can be used to detect the
specific file terminator. In the transmitter station, the
ASCII characters XOFF and XON are loaded to
ACRO and ACR1, respectively, to detect transmit-off!
on requests automatically. The use of the control character recognition feature of the 82510 reduces system
overhead, as the software does not need to check every
received character. A special interrupt is received when
the 82510 hardware detects a received control character.
Interrupt sources are enabled (note that a Tx interrupt
will occur immediately). BRGA is loaded to generate
the required baud rate (288000 baud in this specific
implementation). Rx FIFO depth is set to 4. The Tx
and Rx FIFO thresholds are initialized to O. BRGB is
selected to function as a timer, and is loaded with the
timeout value (7 ms at 18.432 MHz, in this implementation). The RxC and TxC sources are selected to be
BRGA.
292038-6
FIFO
Threshold
BURST mode is assigned the fastest path because it is
the most real time sensitive mode.
6.3 Initializations
6.2.2.4 Timer Interrupt and Bust Algorithm
Mode
avoid an overrun error). The module was designed to
minimize the CPU overhead inherent in the burst algorithm itself.
The burst algorithm parameters are initialized by
INIT_BURST. WAIT_FOR_MODEM_STATUS
is called and implements a wait until the modem handshake DSR signal is set. If WAIT_FOR_MODEM_
STATUS returns with a timeout error, the modem error is processed. If no error has occurred, the following
parameters are initialized: FinisLRx and Finish_Tx
flags, receive and transmit buffer pointers, and the receiver flag. All status registers are cleared by issuing a
STATUS CLEAR command to the ICM register.
6.2.3 FLOWCHART DESCRIPTION
The Rx FIFO interrupt handler executes the burst algorithm immediately after the Rx FIFO is emptied (to
2-269
inter
AP·310
292038-7
Figure 7.lnitlaUzations
2-270
AP-310
GER = Enbl Intr
Rx, Stat, Wodem
=
, GER Enbl IntI"
Rx, Stat, Wodem
292038-8
Figure 8, 82510 Configurations
2-271
inter
AP-310
This module waits, with a timeout, for the DSR modem .
handshake signal to be set. DSR should be active before'
_any communication starts (it indicates that the modem
is. active). The returned Mod~Handshake flag indio
cates normal return (true) or timeout error return
(false).
292038-9
Figure 9. WalLFor_Modem_Status
2·272
AP·310
6.4 Interrupt Handler.
6.4.1 INTERRUPT HANDLER STRUCTURE
The interrupt handler services the ,82510 interrupt
sources. Since this is a titne-critical path, the code is
optimized to minimize real time consumption.
The interrupt handler identifies the highest priority
pending 82510 interrupt, by reading GIR. The interrupt handler was designed so that shorter paths are
assigned to more real time sensitive interrupt sources.
Rx FIFO interrupt is the most sensitive, Tx FIFO is
the second most sensitive, and so on.
The interrupt handler services only one interrupt
source at a time. This prevents CPU resource starvation from other interrupt driven devices. Interrupts are
enabled at the beginning of the interrupt handler, so
that higher priority interrupt sources are not disabled
by the 82510 interrupt handler.
The programmable interrupt controller (8259A) is assumed to be configured to "edge triggering mode" and
':non-automatic end of the interrupt" mode.
292038-10
Figure 10. Interrupt Handler
2-273
intJ
6.4.2 RxFIFO INTERRUPT SERVICE 'ROUTINE
The Rx FIFO interrupt service routine (IISt.empties the
Rx FIFO. The receive data register (RXD) is reild, as
many times as indicated by the, FIFO occupancy register (FLR),.and the characters are stored in RxJuf.
graph 6.2.2). Before leavjng the Rx FIFO interrupt
service routine, the FIFO occupancy re8ister is rechecked, to empty the Rx·FIFO pf Qharac~ that may
have been received,durlng the Rx FIFO interrupt service routine itself. This can happen if the Rx FIFO interrupt service routine has been interrupted by a higher
priority interrupt.
After emptying the Rx FIFO, the Rx FIFO interrupt
service routine executes the burst algorithm (see para-
292038-11
Figure 11. Rx FIFO Interrupt.Servlce Routine
2·274
inter
Ap·310
6.4.3 Tx FIFO INTERRUPT SERVICE ROUTINE
6.4.4 STATUS INTERRUPT SERVICE ROUTINE
The Tx FIFO interrupt service routine fills the Tx
FIFO with transmit characters while checking for the
End-Of-File terminator. According to the FIFO occupancy register (FLR), the Tx FIFO is loaded (by writing to TXD) until it is full or until the End-Of-File
character is detected. The transmitted characters are
taken from Tx_Buf. If an End-Of-File character is
identified, then the transmission is immediately ended
by disabling all 82510 interrupts and setting the Finish_Tx flag.
The status interrupt service routine has four objectives:
- To empty the Rx FIFO.
- To stop reception if an End-Of-File character is
identified by the control character recognition
mechanism (in the receiver station).
- To disable or enable the Tx interrupt ifaXOFF or
XON character, respectively, is identified by the
control character recognition mechanism (in the
transmitter station).
- To handle parity, framing, or overrun errors (in the
receiver station).
(Txflfo Full)
No
t=t+ 1
292038-12
Figure 12. Tx FIFO Intr Service Routine
2-275
inter
AP·310
First the Rx FIFO is emptied. In the receiver station,
the RST register is checked to determine whether an
End-Of-File terminator has been identified by the
82510, in which case reception is stopped immediately
by disabling all interrupt sources and setting the
Finish_Rx flag. In the transmitter station, the received
characters are checked to identify the received control
character. If XOFF is identified, Tx interrupt is disabled. If XON is identified, Tx interrupt is enabled.
Note that the software does not need to check for any
control character during normal reception; the control
characters are identified by the 82510 device.
RST is checked for parity, framing or overrUn errors. If
one of these errors has occurred, then the error handling routine is executed.
If status interrupt occurs while Burst_algo is assigned
to BURST mode, the timer is restarted.
Note that status interrupt is enabled at both stations.
Transmit
station
292038-13
Figure 13. Status Intr. Service Routine
2-276
inIJ
AP·310
6.4.5 TIMER INTERRUPT SERVICE ROUTINE
6.4.6 MODEM INTERRUPT SERVICE ROUTINE
A timer interrupt occurs when the receive character
rate becomes low. The timer interrupt service routine
first empties the Rx FIFO and then switches the burst
algorithm to HUNTING mode.
Modem interrupt occurs if one of the modem lines has
dropped during transmission or reception. The modem
mterrupt service routine reads the MSR register to ac·
knowledge the modem interrupt. The modem error
routine is then executed.
292038-14
292038-15
Figure 14. TIMER Intr Service Routine
Figure 15. MODEM Intr Service Routine
2·277
inter
AP-310
APPENDIX A
PL/M SOURCE FILE
I·····················································
....................•
•
.82 S 1 0 - H I G H PERFORMANCE
Driver
*
•• This driver is optimized for Real Time Systems. It supports
*
•
• high syst_ performance. It is based on the "BURST algorithm"
•
**** •• ** •• *** •• *•••• **** ••• *.***** •• ******.* •••• *•••••••••• ***.* •••••• *•• /
HIGHPERFORMANCE: DO
i
1·****·**·*·***··*·*·**··*·*·***·*·***·*··**·*··*··*** •••• *** •••• *••••••••
•
LITERALS
•
•• ***.**.**.***.**.*** •••• *.** •• **** •• *•• ***.*.* ••• *** ••• *•••• *.* ••••• *.*/
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
'DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
-DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
LIT
TRUE
FALSE
BAUD 9600
BAUD-19200
BAUD-288000
DLAB-O
DLAB-1
CR LF
X Off
X-On
End Of File
BASE sIo
NASOWORK1
GEN2
MODM3
TXD
RXD
BAL
BAH
GER
GIR
BANK
LCR
MCR
LSR
MSR
ACRO
RXF
TXF
TMST
THCR
FLR
RST
RCM
TCM
GSR
ICM
FMD
THO
LITERALLY 'LITERALLY'i
LIT 'OFFH'
LIT 'OOH'
LIT '003CH'
il.
LIT 'OOlEH'
LIT '0002H'
i
LIT 'Ollll.l.l.l.B'
il·
LIT 'l.OOOOOOOB'
il·
LIT 'ODH'
il·
LIT 'OAH'
LIT 'l.3H'
LIT 'l.l.H'
LIT 'J.AH'
i
LIT '080H'
i/*
LIT 'OOOOOOOOB'
LIT 'OOl.OOOOOB'
LIT '01000000B'
LIT '01100000B'
LIT 'BASE S10 + 0' il.
LIT 'BASE-Sl.O + 0'
LIT 'BASE-Sl.O + 0'
LIT 'BASE-Sl.O + 2'
LIT 'BASE-Sl.O + 2'
LIT 'BASE-Sl.O + 4'
LIT 'BASE-Sl.O + 4'
LIT 'BASE-S10 + 6'
LIT 'BASE-Sl.O + 8'
LIT 'BASE-Sl.O +l.O'
LIT 'BASE-S10 +12'
LIT 'BASE-S10 +l.4'
LIT 'BASE-S10 + 2' il.
LIT 'BASE-S10 + 2'
LIT 'BASE-S10 + 6'
LIT 'BASE-S10 + 6'
LIT 'BASE-Sl.O + 8'
LIT 'BASE-S10 +l.O'
LIT 'BASE-Sl.O +10'
LIT 'BASE-Sl.O +l.2'
LIT 'BASE-S10 +14'
LIT 'BASE-Sl.O +l.4'
LIT 'BASE-Sl.O + 2' il.
LIT 'BASE=Sl.O + 6'
2-278
Character configurations
*/
Reset DLAB
Set
DLAB
Control characters
*/
*/
*/
8 2 S l. 0
registers
*/
BANK 0 - NAS
*/
BANK l. - WORK
*/
BANK 2 - GENERAL CONFIGURE */
292038-16
intJ
Ap·310
DECLARE IMD
LIT 'BASE S10 + 8'
DECLARE ACRl
LIT 'BASE-Sl0 +10'
DECLARE RIE
LIT 'BASE-Sl0 +12'
DECLARE RMD
LIT 'BASE-Sl0 +14' ,
DECLARE CLCF
LIT 'BASE-Sl0 + 0' 1/* BANK 3 - MODEM
DECLARE BBL
LIT 'BASE-Sl0 + 0' 1/* DLAB=l
DECLARE BACF
LIT 'BASE-Sl0 + 2'
DECLARE BBH
LIT' 'BASE-Sl0 + 2'
DECLARE BBCF
LIT 'BASE-Sl0 + 6'
DECLARE PMD
LIT 'BASE-Sl0 + S'
DECLARE MIE
LIT 'BASE-Sl0 +10'
DECLARE TMIE
LIT 'BASE-Sl0 +12' ,
DECLARE OUT2 MCR
LIT '00001000B'
1/* Specific register bits
DECLARE DTR MCR
LIT 'OOOOOOOlB'
DECLARE DSR-MSR
LIT '00100000B'
DECLARE CLRSTAT ICM
LIT '00000100B'
DECLARE INTR S10
LIT '21H'
DECLARE PORT-S0130M
LIT 'OE2H'
DECLARE EN 80130
LIT 'OFDH'
,
DECLARE PORT EOI
LIT 'OEOH'
DECLARE COMM-EOI
LIT '61H'
;1* End Of Interrupt command
DECLARE ENRTX GER
LIT 'OOOOllllB'
;1* Enable Interrupt bits
DECLARE ENTX GER
LIT '00000010B'
DECLARE ENTXSTAT GER LIT 'OOOOll10B'
DECLARE ENRX GERLIT 'OOOOl101B'
DECLARE ENTIMRx GER
LIT '00101101B'
DECLARE DISTX GER
LIT '00001101B'
;
DECLARE DISRX-GER
LIT '00000010B'
1/* Disable Interrupt bits
,
DECLARE DISRTX GER
LIT 'OOOOOOOOB'
DECLARE TXTHRESHO FMD LIT 'OOOOOOOOB'
1/* FIFO threshold
DECLARE RXTHRESHO-FMD LIT 'OOOOOOOOB'
DECLARE RXTHRESH3-FMD LIT 'OOl10000B'
,
DECLARE MASK RXOCC
LIT 'Oll10000B'
;1* Mask on occupancy bits
DECLARE MASK-TXOCC
LIT 'OOOOOlllB'
,
DECLARE MASK-ACRSTAT LIT '01000000B'
;1* Mask on ACR status bits
DECLARE CHRLEN S L I T '00000011B'
11* Async parameters
DECLARE STPBIT-l
LIT 'OOOOOOOOB'
DECLARE PARITY-NON
LIT 'OOOOOOOOB'
DECLARE SWRES CMND
LIT '00010000B'
DECLARE ERRCHR" RST'
LIT 'OOOOll10B'
DEOLARE ACRSTAT RIE
LIT .'01000000B'
,
DECLARE ACRSTAT~RST
LIT '01000000B'
DECLARE NONI GIR
LIT '00100001B'
1/* Interrupt vector
DECLARE MODMI GIR
LIT '00100000B'
DECLARE
TXI-GIR
LIT '00100010B'
DECLARE
RXI-GIR,
LIT' 00100100B'
DECLARE STATI-GIR
LIT '00100110B'
DECLARE TIMI-GIR
LIT '00101010B'
DECLARE AUTOACK IMD
LIT '00001000B'
I
DECLARE TIMOD' BeCF
LIT 'OOOOOOOOB'
1/* Timer
DECLARE TIMBI-TMIE
LIT 'OOOOOOlOB'
;
DECLARE FIFO IMD
LIT 'OOOOOOOOB'
DECLARE STARTIMB TMCR LIT '00100010B'
DECLARE STARTIMB-TMST LIT 'OOOOOOlOB'
DECLARE RTXCLK BRGA CLeF LIT '01010000B' ,
DECLARE LOW BAUD
- LIT 'OOH'
1/* BURST algorithm
DECLARE HUNTING MODE LIT 'OlH'
DECLARE SINGLE-MODE LIT '02H'
,
DECLARE
BURST-MODE LIT '03H'
DECLARE TIME EXP
LIT 'OFFFFH'
1/* timeout=7mS (at 18.4 Mhz)
DECLARE WAIT=TIME
LIT 'OOFFFH'
1/* WAIT_FOR_MODEM_STATUS
*1
*1
*1
*1
*1
*1
*1
*/
*/
*1
*/
*/
*1
*1
*1
*1
292038-17
2-279
inter
AP·310
1***************************************************** ****************~***
*
*
VARIABLES
****************************************************** *****************~*/
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
TX_PTR PQINTER PUBLIC
TX BUF BASED TX PTR (3000) BYTE ;
IX-TX
WORD PUBLIC ;
RX-BUF(3000) BYTE PUBLIC;
IX-RX
WORD PUBLIC
INTR VEC
BYTE PUBLIC
FIN TX
BYTE 'PUBLIC
FIN-RX
BYTE PUBLIC
RX CRR
BYTE PUBLIC
TX-CHR
BYTE PUBLIC
TX-OCC
BYTE PUBLIC
RX-OCC
BYTE PUBLIC
STAT
BYTE PUBLIC
BAUD
WORD PUBLIC
TEMP
BYTE PUBLIC
FIN
BYTE PUBLIC
~~g~ ~~i~~N
~~~~ ~g:tig
DECLARE BURST ALGO BYTE PUBLIC ;
DECLARE MODEM-HANDSHAKE BYTE PUBLIC
V~CLARE COUNTER
WORD PUBLIC
DECLARE RX_ERROR
BYTE PUBLIC ;
1* Transmit buffer
*1
1* Receive buffer
*1
1* Finish Transmission flag
1* Finish Reception
flag
*1
*1
1* Receive station
1* BURST algorithm
*1
*1
1* Error occurred during
1* reception
*1
*1
1*------------------------------------------------------_-------_________ *1
1* 1/0 console utilities
*1
$INCLUDE (: F.1: TIOHP. PEX)
1* Setup and H/W configurations
*1
$INCLUDE (:F1:HPUTIL.PEX)
DECLARE MAIN LABEL PUBLIC ;
/****************************.**********************~********************~
* Procedure INITIALIZATIONS
*
*************************************************************************
* input:
none
*
* output:
none
*
* function:
driver initialization: parameters, 82510
*
*
configuration, modem status .check.
*
* called by: Main
*
* calling:
CONFIG_82510, INITIALIZE_BURST, WAIT_FOR_MODEM
*
**
*
*
*
**
Init the Interrupt mechanism by enable Interrupt in GER register
At the Receive station: Enable Rx FIFO, Status and Modem Interrupts
Disable Timer Interrupt
At the Transmit station: Enable Tx FIFO, Status and Modem Interrupts
flowchart:
figure 7
description:
paragraph 6.3
**
*
*
*
**
****************************************************** *******************1
INITIALIZATIONS: PROCEDURE PUBLIC
DISABLE; ,
CALL SET$INTERRUPT(INTR S10,INTR HANDLER)
.'
1* Install THE INTR HANDLER
TX CHR=OO
RX:::-CRR=OO
*1
*1
292038-18
2·280
inter
Ap·310
1*
1*
1*
1*
CALL TEXT ;
IX TX- OFFFFH
IX-RX- OFFFFH
FlitTX-FALSE ;
FIN RX-l"ALSE ;
RX_BUF(O)-O ;
RX_ERROR"'l"ALSE
1*
1*
1*
1*
1*
1*
BAUD-BAUD_288 000
CALL CONFIG_82510
TX PTR is a pointer to the transmitted*/
data
*/
The index buffer are assiqned to -1
*/
Init Finish Transmit and receive flaqs*1
Reset the flaq
*/
The Async communication Baud rate is
the 82510-full scale 288000
*/
*/
Confiqured the 82510:
*/
S/W reset, character lenqth, parity, */
stop bit, baud rate and fifo threshol */
1***************************************************** ********************
*
INITIALIZE BURST
*
***********-*************************************************************
* input:
none
*
* output:
Burst Alqo
*
start-Burst alqorithm in Huntinq mode
*
* function:
* called by: INITIALIZATIONS
*
none
*
* callinq:
*
*
* flowchart: fiqure 4
description: paragraph 6.2.1
*
*************************************************************************/
ELSE
THEN BURST ALGO-HUNTING MODE ;
1* HUNTING mode: 1* Rx FIFO threshold is 0
1* Timer interrupt is disable
BURST_ALGO-LOW_BAUD
*/
*/
*/
CALL WAIT FOR MODEM STATUS ;
-
TEMP
TEMP
TEMP
TEMP
-
-
INPUT (RXD)
INPUT (RXD)
INPUT (RXD)
INPUT (RST)
1*
1*
Wait for Modem handshake line "DSR"
if ACTIVE set
MODEM_HANDSHAKE
*/
*/
END INITIALIZATIONS ;
1***************************************************** ********************
* Procedure
CONFIG 82510
*
*************************************************************************
* input:
none
*
none
*
* output:
function:
confiqure
the
82510
to
a
specific
operation
*
*
*
mode
*
*
* called by: INITIALIZATIONS
none
*
* calling:
*
*
* flowchart: fiqure 8
description: paragraph 6.3
*
*************************************************************************/
CONFIG_82510: PROCEDURE PUBLIC
1*
Perform Software reset
OUTPUT (BANK) .. WORK1;
OUTPUT (ICM) = SWRES_CMND,;
1* Move to work bank
1* S/W reset command
*/
*/
*/
292038-19
2·281
inter
/* BANK
Ap·310
ZERO -,
NAS
(The default BANK)
*/
/* configured the character by writing to LCR:
*/
/* 1 stop bit, 8 bit lengh, non parity
*/
OUTPUT (LCR)-(STPBIT_1 + CHRLEN_8 + PARITY_NON)
OUTPUT(MCR)"(DTR_MCR OR OOT2_MCR) ;
/* Required only in IBM PC environment: */
/* set OUT2 signal to control an external*/
/* 3-state buffer that drives the 82510 */
/* interrupt signal
*/
IF RECEIVER THEN OUTPUT(ACRO)=End Of File ;
/* At the Receive station EOF is
/* recognized to terminate reception
ELSE OUTPUT(ACRO)- X_OFF
/* At the Transmit station "X Off" is
/* recognized to stop transmission
/* t8lllporary
*/
*/
*/
*/
*/
/* Enable 82510 Interrupt by set GER,
/* done at the end of INITIALIZATIONS
*/
*/
/* Init the 82510 Interrupt mechanism
DISABLE ;
IF RECEIVER THEN OUTPUT(GER)=ENRX GER ;
/* a~ the Receive station
ELSE OOTPUT(GER)=ENTXSTAT_GER
/* and the Transmit station
*/
*/
*/
/* Configured baud rate to 288000
/* by writing to BRG A (BAL and BAH)
OUTPUT(LCR)=INPUT(LCR) OR DLAB 1; /*set' DLAB to allow access to BRG
OUTPUT(BAL)-LOW (BAOD 288000) I
'
OUTPUT (BAH)-HIGH (BAOD-288000) ;
OOTPUT(LCR)-INPUT(LCR) AND DLAB_O; /* reset DLAB
*/
*/
*/
/* BANK TWO - General configuration
OUTPUT (BANK) =GEN2 ';
*/
*/
OOTPUT(IMD)=(AOTOACK IMD OR FIFO IMD) ;
7* Automatic interrupt acknowledge,
/* Rxfifo depth is four bytes
*/
*/
OUTPUT(FMD)=(TXTHRESHO FMD OR RXTHRESHO FMD) ;
/* Rxfifo threshold is temporally zero
/* for HUNTING mode (BURST algorithm)
/* Txfifo threshold is zero for max
/* interrupt latency ,
*/
*/
*/
*/
IF RECEIVER THEN
OnTPUT(ACR1)=~nd_Of_File
ELSE OUTPUT(ACR1)=X_ON ;
OUTPUT (RIE)
=
;
At the Receive station EOF is
recognized, the same as ACRO
At the Transmit statibn "X On'" is
recognized to continue transmission
/*
/*
/*
/*
*/
*/
*/
*/
(ACRSTAT_RIE OR INPUT(RIE»
;
/* Enable interrupt on programmed control*/
/* character received (ACRO/ACR1)
*/
/* BANK THREE - MODEM configuration
OUTPUT(BANK)'"MODM3 ;
OOTPUT(BBCF)-(TIMOD_BBCF)
/*
OOTPUT(BANK) '" NASO;
/*
OOTPUT(LCR)=INPUT(LCR) OR DLAB_1 ;
OUTPUT (BANK) .. MODM3;
/*
OOTPUT(BBL) = LOW (TIME_EXP);
/*
*/ ,
BRG B configured to TlMER,mode
*/
Move t'o nas bank to set" DLAB
*/
/* Set DLAB to allow access to BRG
*/
MODEM bank
*/
Set max timeout (7ms if 18Khz crystal)*/
292038-20
2-282
inter
AP-310
OUTPUT (BBH) - HIGH(TlME EXP);
/*
OUTPUT (BANK) ~ NASO;
/*
OUTPUT(LCR) -INPUT(LCR) AND DLAB 0
OUTPUT (BANK) - MODMJ;
7*
OUTPUT(CLCF)-RTXCLK BRGA CLCF
/*
/*
OUTPUT(TMIE)=TIMBI_TMIE
/* Enable Timer block interrupt
/* (stil disabled in Timer bit in GER)
/* BANK ONE - general WORK
OUTPUT(BANK)-WORK1 ;
OUTPUT(ICM)-CLRSTAT_ICM
/* Remain in
to issue interrupt when time has
expired. Move to NAS bank again
; /* Reset DLAB
switch to BANK THREE - MODEM
The reoeive and transmit olook source
is BRG A
- The RUNTIME
b~nk
/* Issues a oommand to olear all
/* status registers
W 0 R K - THE runtime
bank
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
END CONFIG_82510 ;
/ ••• *********.*** •• **.**.*** ••••••• ***.*** •••• ** •• ************************
* Prooedure WAIT FOR MODEM STATUS
*
.*.**********************************************************************
* input:
none
*
* output:
Modem Handshake
*
*
* funotion: waits-with a timeout for DSR aotive,
returns status flag
*
*
* called by: INITIALIZATIONS
*
* oalling:
none
*
*
**
* flowohart: figure 9
desoription: paragraph 6.3.1
******.**************.****** ••• ******.***********************************/
WAIT_FOR_MODEM_STATUS: PROCEDURE PUBLIC ;
MODEM HANDSHAKE - FALSE ;
COUNTER - WAIT_TIME ;
00 WHILE (NOT MODEM HANDSHAKE) AND «COUNTER:=COUNTER-1) > 0 ) ;
IF (INPUT (MSR) AND DSR MSR) <> 0
THEN MODEM_HANDSHAKE
TRUE
END
-
/*************************************************************************
* Procedure INTERRUPT HANDLER
*
****************** •• *****************************************************
* input:
Tx Buffer
*
Rx Buffer, Finish_Tx, Finish_Rx
*
* output:
* function:
service all 82510 interrupt souroes:
*
*
Rx Fifo, Tx Fifo, Status, Timer, Modem
*
* called by: 82510 hardware i n t e r r u p t '
*
* calling:
Rx_Fifo_Intr, Tx_Fifo_Intr, Status_Intr,
*
*
Timer_Intr, Modem_Intr
*
*
**
* flowchart: figure 10 desoription: paragraph 6.4, 6.4.1
*************************************************************************/
INTR_HANDLER: PROCEDURE INTERRUPT INTR_510 REENTRANT PUBLIC
ENABLE
/* Enable Interrupts of
/* HIGHIER priority devices
*/
*/
INTR_VEC=INPUT(GIR) ;
/* Get the 82510-highest priority
/* pending interrupt
*/
*/
292038-21
2·283
intJ
AP-310
/**.***********************************************************************
*
Rx FIFO INTR
*
*************************************************************************
* input:
none
*
* output:
Rx Buffer, Burst Algo
*
* function: service Rx Fifo Interrupt
*
*
receive characters; store in receive buffer
*
* called by: INTERRUPT HANDLER
*
* calling:
BURST_ALGO
*
** flowchart: figure 11
description: paragra~h 6.4.2
**
*********** ••• ***********************************************************/
IF INTR_VECzRXI_GIR THEN 00 ;
1*
1*
1*
1*
1*
1*
RX_OCC=INPUT(FLR) ;
Rx fifo level occupancy
Shift the Rx occupancy bit
RX_OCC=SHRCRX_OCC,4)
to get it's real value
- OPTIMIZE code Empty the Rx FIFO and store the
received character in RX BUF
RX_BUF (IX_RX: =IX_RX+1) =INPUT CRXD) ;
1* Read the first character immediatly
1* to save Real Time
00 WHILE (RX_OCC:=RX_OCC-1) > 0 ;
RX_BUF(IX_RX:=IX_RX+1)=INPUT(RXD)
END ;
*1
*1
*1
*1
*1
*1
*1
*1
1***************************************************** ********************
BURST ALGORITHM
*
*************************************************************************
* input:
Burst_Algo
*
Burst Algo
*
* output:
* function: execute a step in the burst algorithm
*
*
after characters are received
*
*
* called by: Rx_FIFO_INTR
* calling:
none
*
*
** flowchart: figure
5
description: par. 6.2.2.1 to 6.2.2.3
**
****************************************************** *******************1
1*---------------------------------------------------- -------------*
* BUR 5 T
MOD E - step 3 (full fifo threshold)
*
*
*
*
Reset the Timer status
* Restart the Timer
*-----------------------------------------------------------------*1
IF BURST ALGO = BURST MODE THEN 00 ;
TEMP ~ INPUT(TMST):
OUTPUT (TMCR) =STARTIMB TMCR;
END;
-
1*------------------------------------------_·_---------------------*
*
*
*
HUN TIN G MOO E - step
Operate the TIMER
Change to step 2 SINGLE mode
1
*
*
*
*-----------------------------------------------------------------*1
ELSE IF BURST ALGO = HUNTING MODE THEN 00 ;
OUTPUT(TMCR)=STARTIMB TMCR
BURST ALGO=SINGLE MODE
END;
-
292038-22
2·284
inter
AP-310
/*-----------------------------------------------------------------*
* SIN G L E
MOD E - step 2
*
* If TIME has expired, means the receive
* rate is LOW, return to HUNTING mode
* If TIME did NOT expire, means the
* Receive rate is HIGH, set Rx FIFO threshold, Restart the
* Timer and switch to BURST mode
*
*
*
*
*
*-----------------------------------------------------------------*/
ELSE IF BURST_ALGO = SINGLE_MODE THEN DO ;
IF «INPUT(TMST) AND STARTIMB TMST) <>0) THEN
BURST_ALGO= HUNTING_MODE ;
ELSE DO;
OUTPUT (BANK) .. GEN2;/* Switch to BANK TWO - General Config
OUTPUT(FMD)"'TXTHRESHO FMD OR RXTHRESH3 FMD;
OUTPUT (BANK) cNASO; /* Switch to BANK ZERO - NAS
OUTPUT (GER) = ENTIMRX GER;
/* Enable TIMER,RX and MODEM interrupts
OUTPUT (BANK)-WORK1; /* switch to BANK ONE - WORK
BURST ALGO = BURST MODE;
TEMP; INPUT(TMST); /* Reset timer status
OUTPUT (TMCR) '" STARTIMB TMCR;
END;
END;
/* End of SINGLE mode
*/
*/
*/
*/
*/
*/
/* .... End of BURST algorithm •••••••••.•.•••••.•••••.•.•••.••..•...... */
/*
/*
Another try to empty the Rx fifo
before leaving the interrupt handler
*/
*/
DO WHILE (INPUT (FLR) <>0)
/* Empty the Rx FIFO and store the
/* received character in RX_BUF
RX BUF(IX RX:=IX RX+1)=INPUT(RXD) ;
END ;END ;
/* End of Rx fifo interrupt
*/
*/
*/
/*************************************************************************
*
TxFIFO INTR
*
*************************************************************************
* input:
Tx Buffer
*
* output:
Finish tx
*
* function:
service Tx Fifo interrupt
*
*
transmit characters from transmit buffer (OPTIMIZE code) *
* called by: INTERRUPT HANDLER
*
* calling:
none
*
*
*
* flowchart: figure 12
description: paragraph 6.4.3
*
*************************************************************************/
ELSE IF INTR VEC=TXI GIR THEN DO ;
TX OCC=INPUT(FLR)-AND MASK TXOCC ;
- /* Tx fifo level occupancy
*/
/* Fill Tx FIFO, the transmitted characters are taken from TX.buf
*/
DO WHILE (TX OCC:=TX OCC+1)<5 ;
OUTPUT(TXD)=TX BUF(IX TX:=IX TX+1);
IF TX BUF(IX TX)=End Of File·THEN DO ;
OUTPUT(BANK)=NASO·; ~~ /* Disable Tx interrupt, as the transmit */
OUTPUT(GER)=DISTX GER; /* delimiter character was identified
*/
OUTPUT (BANK) =wORKI
/* Switch to BANK ONE - WORK
*/
TX_OCC = 5 ;
/* load TX.OCC to terminate external loop*/
FIN.TX = TRUE ;
/* Set Finish transmit flag
*/
END
END
END ;
/* End of TXFIFO_INTR
*/
292038-23
2-285
inter
AP-310
1***************************************************** ********************
STATUS INTR
*
*
*************************************************************************
none
*
* input:
Finish Rx
*
* output:
service Status interrupt
*
* function:
*
Receive station: EOF terminate the reception
*
*
Transmit station: X Off Disable the transmission
*
*
x:::on Enable the transmission
*
* called by: INTERRUPT HANDLER
*
* callinq:
none
*
** flowchart: fiqure 13
description: paraqraph 6.4.4
**
****************************************************** *******************1
STAT-INPUT (RST) 1
1* Get the current RST status
*1
RX_OCC=INPUT(FLR)
RX_OCC=SHR(RX_OCC,4)
1* Rx fifo level occupancy
*1
DO WHILE (RX OCC>O AND (NOT FIN RX»1
RX OCC=RX-OCC-l 1
1* First, empty Rx FIFO
RX:::CHR=tNPUT(RXD)
IF
RECEI~R
*1
THEN
ELSE DO 1
IF RX CHR = X OFF THEN DO 1
OUTPUT(BANK)=NASO:I* Switch to BANK ZERO - NAS
OUTPUT (GER) = INPUT(GER) AND DISTX GER 1
1* Disable TransmIt interrupt
OUTPUT(BANK)=WORK1;1* Switch to BANK ONE - WORK
END;
,
ELSE IF RX CHR = X ON THEN DO ;
OUTPUT (BANK) = NASO ;
OUTPUT (GER) = INPUT(GER) OR ENTX GER ;
1* Enable Transmit interrupt again
OUTPUT(BANK)= WORKl
END
END
END ;
IF RECEIVER THEN DO ;
IF «STAT AND ACRSTAT RST) <> 0) THEN DO 1
OUTPUT(BANK)- NASO-;
1* If End_Of_Line was recognized,
OUTPUT (GER) = DISRTX GER ;
OUTPUT(BANK)= WORK1; 1* Disable 82510-interrupts and the
FIN_RX
.. TRUE;
1* Reception
END ;
ELSE IF «STAT AND ERRCHR RST) <> 0) THEN DO ;
CALL WRITE(@('** ERROR-in character Status ',D»
CALL ERROR_CHAR_HANDLER ;
IF BURST ALGO=BURST MODE THEN DO ;
1* In BURST mode do:
TEMP = INPUT(TMST); 1* Reset timer status
OUTPUT (TMCR)
STARTIMB TMCR;
END;
1* Restart TIMER
END
*1
*1
*1
*1
*1
*1
*1
*1
*1
*/
END
END ;
1* End of STATUS interrupt
*/
292038-24
2-286
AP-310
1*************************************************************************
*
*
TIMER INTR
*******************~.******.**************.*********** *******************
*
*
*
*
*
*
input:
output:
function:
called by:
calling:
none
Burst_Algo
service Timer interrupt; receive characters
and switch Burst Algo to HUNTING mode
INTERRUPT HANDLER
BURST 'TIMER
*
*
*
*
*
*
** flowchart: figure 14
description: paragraph 6.4.5
**
*************************************************************************1
ELSE IF INTR_VEC=TIMI_GIR THEN DO ;
IF ((RX_OCC:cINPUT(FLR»<>O) THEN DO
RX_OCC-SHR(RX_OCC,4) ; 1* Rx fifo level occupancy, shift right *1
1* - OPTIMIZE code *1
1* Empty the Rx FIFO and store the
*/
1* received character in RX_BUF
*/
RX_BUF(IX_RX:=IX_RX+l)=INPUT(RXD) ;
DO WHILE (RX OCC:-RX OCC-l) > 0 ;
RX BUF(IX-RX:=IX RX+l)=INPUT(RXD)
END1* store the received character in RX_buf*/
END ;
1*************************************************************************
*
*
*
*
**
* calling:
called by:
Burst Algo
Burst-Algo
execute a step in the burst algorithm
after timer interrupt; switch to HUNTING
TIMER_INTR
none
**
flowchart:
figure
BURST , TIMER
*
*************************************************************************
input:
output:
function:
6
description:
paragraph 6.2.2.4
*
*
*
*
*
*
**
*************************************************************************/
OUTPUT (BANK) = GEN2;
1* Switch to BANK TWO - General Config */
OUTPUT (FMD) = TXTHRESHO_FMD OR RXTHRESHO FMD;
1* Rxfifo threshold=O, Txfifo threshold=O*/
OUTPUT (BANK) = NASO;
OUTPUT (GER) = ENRX GER;
OUTPUT (BANK) = WORKl;
TEMP - INPUT(TMST);
BURST_ALGO = HUNTING_MODE
END ;
1*
1*
1*
1*
1*
1*
Switch to BANK ZERO - NAS
Disable Timer interrupt and
Enable RX,STAT,MODEM interrupts
Acknowledge TIMER interrupt
Back to HUNTING mode
End of TIMER interrupt
*/
*/
*/
*/
*/
*/
292038-25
2-287
inter
AP·310
1*****'*************'**************************************:*****************
*
MODEM I N T R ' "
" ,',
*
•• * ••••••'••••••••• **.* ••••••••••
* •••• *••••••• * •• * ••'''*-•••• *.*.*'.' •• *** ••
*
*
*
*
*••
input:
output:
function:
*
* called by:
*
**
callinq:
flo~chart:
none
none
service Modem interrupt and handle modem errors.
Modem interrupt is occurred if No Modem was setup, or
if DSR was dropped in the middle of the communication
INTERRUPT HANDLER
none
*
figure 15
**
description:
paraqraph 6.4.6
..
*
*
*
*
*
*************************************************************************1
STAT=INPUT(MSR) ;
1* Get MODEM status
*/
1* Handel Modem Errors handshake
*/
END ;
1* End of MODEM interrupt
*/
OUTPUT(PORT_EOI)=COMM_EOI
1* Write End Of Interrupt command to the */
1* PIC (8259A) */
END INTR_HANDLER
/* ••••••••••••••••••••••••• * ••••••••••••••••••••••••••• it* •• * •••• **.* ••• ***
* Procedure
ERROR MODEM HANDLER
.**.it •••••• * ••• * •••
** ••••*••••••••••••••••••• * ••••••••
itit* • •
'*
*.* ••• * •••• * •• /
ERROR_MODEM_HANDLER: PROCEDURE PUBLIC ;
MOPEM_HANDSHAKE
= FALSE ;
1* Flaq indicates that an Error occurred */
1* in Modem
*/
1*************************************************************************
* Procedure ERROR CHAR HANDLER
' *
**********************************************,**,*************************/
ERROR_CHAR_HANDLER: PROCEDURE PUBLIC ;
= TRUE
OUTPUT (BANK)
OUTPUT (GER)
OUTPUT (BANK)
NASO ;
DISRTX GER ;,
WORKl -;
1* Flaq indicates that an Error occurred */
/* durinq Reception
*/
1* switch to BANK ZERO - NAS
1* Disable all the 82510 Interrupts
1* Switch to BANK ONE - WORK
*/
*/
*/
292038-26
2-288
inter
AP-310
/*************************************************************************
* Procedure
LOOP
*
*
* LOOP procedure is executed until Transmission/Reception Finishes
* or until the loop ends.
*
*
*
*****************************~*******************************************/
LOOP: PROCEDURE PUBLIC f
DECLARE N WORD :
DECLARE NUM WORD :.
DECLARE MAXLOOP BYTE
MAXLOOP- 20 ;
NUM-O :
DO WHILE ( (NOT FIN TX) AND (NOT FIN RX) AND (NUM' ,
CR-;-LF,
'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz0123456789',
CR,LF,
'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyZ0123456789',
CR,LF,
'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz0123456789',
CR,LF,
'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz0123456789',
CR"LF,
iABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz0123456789',
CR,LF,End_Of_File,O)
/* End_Of_File-terminate the Transmission*/
END TEXT ;
292038-27
2-289
inter
/************************************************"****'****************,*lrr***
*
External
*
*
*
*
*
*
WRITELN:
MENU:
*
procedures
*************************************************************************
I/O cons!)le utility
dispaly a string" end with CR
I/O console utility - display a menu, enter the user
selection
DISPTEXT: I/O console utility - display the contents of the
Receive buffer (Rx buf)
INIT_HARDWARE_SETUP: setup and Hardware configuratIons of the
*
specific station
*
*
*
*
*
*
*
*************************************************************************/
/*************************************************************************
*
* Procedure
MAIN
*
*
*
get station type (Rx or Tx) from the operator;
wait till communication is completed; display;
RECEIVER STATION SHOULD BE ACTIVATED FIRST
Application
INITIALIZATIONS, LOOP
*************************************************************************
* input:
Finish Rx, Finish Tx
*
* output:
Receiver flag
*
~
*
function:
called by:
calling:
** flowchart:
figure
3
description:
paragraph 6.1
*
*
*
*
*
**
*************************,********************************'**************** /
MAIN:
/* External, setup and H/W configurations./
FIN=FALSE ;
DO WHILE NOT (FIN)
SELECTION=O ;
CALL WRITELN(@('-------------------~---------------------~------ ',0));
SELECTION=MENU(SELECTION,@('station: (Quit/Transmitter/Receiver) ',0)) ;
/* Get operator selection.
' */
/* Receiver station should be activated */
/* prior to the transmitter' station
*/
DO CASE SELECTION ;
FIN-TRUE
/* 0 - Quit of HIGH PERFORMANCE Driver
*/
DO;
/* 1 - Transmit station
*/
RECElVER=FALSE ;
CALL INITIALIZATIONS;
CALli" LOOP, ;
END ;
DO;
/* 2 - Receive station
*/
RECEIVER-TRUE
CALL INITIALIZATIONS
CALL LOOP;
END
END
END
CALL EXIT
END HIGHPERFORMANCE ;
/***********************************************************************.*/
2,92038-28
2-290
AP-310
APPENDIX B
82510 BASED sex SERIAL CHANNEL
This document describes the implementation of an
82510 based SBX board that provides a RS-232 interface to any iSBC board which has an SBX connector.
The SBX can be useful for customers that need a fast
software development vehicle while the 82510 system
hardware is still in the design stage. The customer can
also use the SBX for evaluation of the 82510 in a system environment.
In order to minimize the customer's software development costs, the RMX86/286 Terminal Device Driver
for the 82510 has also been developed and can be run
by the RMX user on his iSBC with the SBX-8251O
board described herewith. The RMX86/286 drivers are
available from INSITE, along with the source code and
the documentation.
2-291
BOARD DESCRIPTION
(See Figure B-1)
The following 82510 signals are connected directly to
the SBX connector (installed on the pin side): DATA,
ADDRESS, INTERRUPT, RESET, READ#,
WRITE# and CS#. Wait states are generated by a
shift register logic (U5, U7), clocked by the MCLK
signal of the SBX interface. The number of wait states
is selected by installing one of the eight jumpers to select one parallel output of the shift register. The 82510
is clocked by an 18.432 MHz Crystal (using its on-chip
oscillator). A discrete transistor is used to pull down
the RTS# signal during RESET to set the crystal mode
(note that in a larger board, an unused open collector
inverter or three-state gate can be used for this purpose). The 82510 is connected to the communication
channel through RS-232 line drivers and receivers. Either a 25 pin D-Type connector (P) or a 26 pin Flat-Cable connector (F) is used to connect the board to the
RS-232 channel.
l
, ,..
5
P/4 F/20. RTS
INT
22 AO
~~
~
,1
24
,~~
25 00
.
M
A2
DTR#
26 DI
, ,~
27
, u
28 03
,
_.
,
,
iil
I\)
,
I~
, '"
,'L.L.
II)
I\)
D.
tloR
r
I
9
4
P/20 F/13~ DTR
U2 .
~/" F/24
ru;)oo!6:....-...:..!.~:.r.:.;;:..
~
5 U2
~
TXDATA
D4
CTS#~1~4~__________~~
II
D6
4 D7
20
RD#
19
CS#
13
OSR#I"I'-'O---~
RI#
12
~
XI
U3
~IO
U4
co ...
18.432
101Hz
W
P/5 F/18
-'---'--+ CTS
P/6 F/16 ~ DSR
13
DCDN
RXD 13
18 WR#
......
0CD
I\)
TXD
,'5
._
c:
U1
82510
2 D5
, ,I
."
~i
02
1
L~
115
P/22 F/9~ RI
P/8 F/12
-'---'--+DCO
P/3 F/22
P/7.1
F
F 26
:J:-
GND
....
0
~
II
GND
i
3
292038-29-
!!I.
J/3.17.35
. I a JLF
('j'
"NU •
1/1
Vcc.J/4.18.36
J/2
- 12
:l: ::1i ::1i ::1i ::l!.
TTTTT
71
+ 12 4
.1.
·:;:;0.1)J.t
~~
#
WAIT State Generator
# of WAIT
States
1
2
3
4
Jumper # of WAIT Jumper
to CLOSE States to CLOSE
51
52
53
54
5
6
7
8
55
56
57
58
Only One Jumper 5hould Be Closed at a Time
Type
Vee
GND -12 +12
#
Type
Vee
GND
14
7
-12
U1 82510
21
7
U2 1488
5,9
7
U3 1489
14
7
J
5BX Male Connector for 8 Bit Bus
U4 1489
14
7
P
25 Pin D-Type Connector (Male)
F
26 Pin Flat-cable Connector (Male)
U5 74L5164 1,2,14
7
U6 Jumper
1
14
U7 74L500
Either P or F should be installed.
.
• RXDATA
F/14
+12
Co)
APPLICATION
NOTE
AP-36
November 1986
Using the 8273 SOLC/HOLC
Protocol Controller
JOHN BEASTON
MICROCOMPUTER APPLICATIONS
Order Number: 611001-001
2-293
inter
. AP-36
INTRODUCTION
SDLC/HDLC OVERVIEW
The Intel 8273 is a Data Communications Protocol
~ontroller designed for use in systems utilizing either
SDLC or HDLC (Synchronous or High-Level Data
Link Control) protocols. In addition to the usual features such as full duplex operation, automatic Frame
Check Sequence generation and checking, automatic
zero bit insertion and deletion, and TIL compatibility
found on other single component SDLC controllers, the
8273 features a frame level command structure, a digital phase locked loop, SDLC loop operation, and diagnostics.
SDLC is a protocol for managing the flow of information on a data communications link. In other words,
SDLC can be thOUght of as an envelope-addressed,
stamped, and containing an s.a.s.e.-in which information is transferred from location to location on a data
communications link. (Please note that while SDLC is
discussed specifically, all comments also apply to
HDLC except where noted.) The link may be either
point-to-point or multi-point, with the point-to-point
configuration being either switched or nonswitched.
The information flow may use either full or half duplex
exchanges. With this many configurations supported, it
is difficult to fmd a synchronous data communications
application where SDLC would not be appropriate.
The frame level command structure is made possible by
the 8273's unique internal dual processor architecture.
A high-speed bit processor handles the serial data manipulations and character recognition. A byte processor
implements the frame level commands. These dual
processors allow the 8273 to control the necessary byteby-byte operation of the data channel with a minimum
of CPU (Central Processing Unit) intervention. For the
user this means the CPU has time to take on additional
tasks. The digital phase locked loop (DPLL) provides a
means of clock recovery from the received data stream
on-chip. This feature, along with the frame level commands, makes SDLC loop operation extremely simple
and flexible. Diagnostics in the form of both data and
clock loopback are available to simplify board debug
and link testing. The 8273 is a dedicated function peripheral in the MCS-80/85 Microcomputer family and
as such, it interfaces to the 8080/808S system with a
minimum of external hardware.
This application note explains the 8273 as a component
and shows its use in a generalized loop configuration
and a typical 8085 system. The 8085 system was used to
verify the SDLC operation of the 8273 on an actual
IBM SDLC data communications link.
The first section of this application note presents an
overview of the SDLC/HDLC protocols. It is fairly
tutorial in nature and may be skipped by the more
knowledgeable reader. The second section describes the
8273 from a functional standpoint with explanation of
the block diagram. The software aspects of the 8273,
including command examples, are discussed in the
third section. The fourth and fifth sections discuss a
loop SDLC configuration and the 8085 system respectively.
Opening
Flag
Address
Field (Aj
Control
Field (C)
01111110
8 Bits
8 Bits
Aside from supporting a large number of configurations, SDLC offers the potential of a 2 X increase in
throughput over the presently most prevalent protocol:
Bi-Sync. This performance increase is primarily due to
two characteristics of SDLC: full duplex operation and
the implied acknowledgement of transferred information. The performance increase due to full duplex operation is fairly obvious since, in SDLC, both stations can
communicate simultaneously. Bi-Sync supports only
half-duplex (two-way alternate) communication. The
increase from implied acknowledgement arises from the
fact that a station using SDLC may acknowledge previously received information while transmitting different
information. Up to 7 messages may be outstanding before an acknowledgement is required. These messages
may be acknowledged as a block rather than singly. In
Bi-Sync, acknowledgements are unique messages that
may not be included with messages containing information and each infoI'I\lation message requires a separate
acknowledgement. Thus the line efficiency of SDLC is
superior to Bi-Sync. On a higher level, the potential of a
2 X increase in performance means lower cost per unit
of information transferred. Notice that the increase is
not due to higher data link speeds (SDLC is actually
speed independent), but simply through better line utilization.
Getting down to the more salient characteristics of
SDLC; the basic unit of information on an SDLC link
is that of the frame. The frame format is shown in Figure 1. Five fields comprise each frame: flag, address,
control, information, and frame check sequence. The
flag fields (F) form the boundary of the frame and all
Information
Field (I)
Any Length
Oto N Bits
Figure 1. SOLC Frame Format
2·294
Frame
Check
Sequence
(FCS)
Closing
Flag
16 Bits
01111110
AP-36
other fields are positionally related to one of the two
flags. All frames start with an opening flag and end
with a closing flag. Flags are used for frame synchronization. They also may serve as time-fill characters between frames. (There are no intraframe time-fill characters in SDLC as there are in Bi-Sync.) The opening flag
serves as a reference point for the address (A) and control (C) fields. The frame check sequence (FCS) is referenced from the closing flag. All flags have the binary
configuration 01111110 (7EH).
SDLC is a bit-oriented protocol, that is, the receiving
station must be able to recognize a flag (or any other
special character) at any time, not just on an 8-bit
boundary. This, of course, implies that a frame may be
N-bits in length. (The vast majority of applications tend
to use frames which are multiples of 8 bits long, however.)
The fact that the flag has a unique binary pattern would
seem to limit the contents of the frame since a flag
pattern might inadvertently occur within the frame.
This wOldd cause the receiver to think the closing flag
was received, invalidating the frame. SDLC haltdles
this situation through a technique called zero bit insertion. This techniques specifies that within a frame a
binary 0 be inserted by the transmitter after any succession of five contiguous binary Is. Thus, no pattern of
01111110 is ever transmitted by chance. On the receiving end, after the opening flag is detected, the receiver
removes any 0 following 5 consecutive Is. The inserted
and deleted Os are not counted for error determination.
Before discussing the address field, an explanation of
the roles of an SDLC station is in order. SDLC specifies two types of stations: primary and secondary. The
primary is the control station for the data link and thus
has responsibility of the overall network. There is only
one predetermined primary station, all other stations
on the link assume the secondary station role. In general, a secondary station speaks only when spoken to. In
other words, the primary polls the secondaries for responses. In order to specify a specific secondary, each
secondary is assigned a unique 8-bit address. It is this
address that is used in the frame's address field.
When the primary transmits a frame to a specific secondary, the address field contains the secondary's address. When responding, the secondary uses its own
address in the address field. The primary is never identified. This ensures that the primary knows which of
many secondaries is responding since the primary may
have many messages outstanding at various secondary
stations. In addition to the specific secondary address,
an address common to all secondaries may be used for
various purposes. (An all Is address field is usually
used for this "All Parties" address.) Even though the
primary may use this common address, the secondaries
are expected to respond with their unique address. The
address field is always the first 8 bits following the
opening flag.
The 8 bits following the address field form the control
field .. The control field embodies the link-level control
of SDLC. A detailed explanation of the commands and
responses contained in this field is beyond the scope of
this application note. Suffice it to say that it is in the
control field that the implied acknowledgement is carried out through the use of frame sequence numbers.
None of the currently available SDLC single chip controllers utilize the control field. They simply pass it to
the processor for analysis. Readers wishing a more detailed explanation of the control field, or of SDLC in
general, should consult the IBM documents referenced
on the front page overleaf.
In some types of frames, an information field follows
the control field. Frames used strictly for link management mayor may not contain one. When an information field is used, it is unrestricted in both content and
length. This code transparency is made possible because
of the zero bit insertion mentioned earlier and the 'bitoriented nature of SDLC. Even main memory core
dumps may be transmitted because of this capability.
This feature is unique to bit-oriented protocols. Like
the control field, the information field is not interpreted
by the SDLC device; it is. merely transferred to and
from memory to be operated on and interpreted by the
processor.
The final field is the frame check sequence (FCS). The
FCS is the 16 bits immediately preceding the closing
flag. ,This 16-bit field is used for error detection through
a Cyclic Redundancy Checkword (CRC). The 16-bit
transmitted CRe is the complement of the remainder
obtained when the A, C, and I fields are "divided" by a
generating polynomial. The receiver accumulates the
A, C, and I fields and also the FCS into its internal
CRe register. At the closing flag, this register contains
one particular number for an error-free reception. If
this number is not obtained, the frame was received in
error and should be discarded. Discarding the frame
causes the station to not update its frame sequence
numbering. This results in a retransmission after the
station sends an acknowledgement from previous
frames. [Unlike all other fields, the FCS is transmitted
MSB (Most Significant Bit) first. The A, C, and I fields
are transmitted LSB (Least Significant Bit) first.] The
details of how the FCS is generated and check~ is
beyond the scope of this application note and since all
single component SDLC controllers handle this function automatically, it is usually sufficient to know only
that an error has or has not occurred. The IBM documents contain more detailed information for those
readers desiring it.
The closing flag terminates the frame. When the closing
flag is received, the receiver knows that the preceding
16 bits constitute the FCS and that any bits between the
control field and the FCS constitute the information
field.
2-295
intJ
Ap·36
SOLC does not support aninterframe time-fill character such as the SYN character in Bi-Sync. If an unusual
condition occurs while transmitting, such as data is not
available in time from memory or CTS (Clear-ta-Send)
is lost from the modem, the, transmitter aborts the
frame by sending an Abort character to notify the receiver to invalidate the frame. The Abort character
consists of eight contiguous 1s sent without zero bit
insertion. Intraframe time-fill consists of either flags,
Abort characters, or any combination of the two. .
While the Abort character protects the receiver, from
transmitted errors, errors introduced by the transmission medium are discovered at the receiver through the
FCS check and a check for invalid frames. Invalid
frames are those which are not bounded by flags or are
too short, that is, less than 32 bits between flags. All
invalid frames are ignored by the receiver.
Although SOLC is a synchronous protocol, it provides
an optional feature that allows its use on basicallyasynchronous data links-NRZI (Non-Retum-to-Zero-Inverted) coding: NRZI coding specifies that the signal
condition does not change for transmitting a binary I,
while a binary 0 causes a change of state. Figure 2 illustrates NRZI coding compared to the normal NRZ.
NRZI coding guarantees that an active line will have a
transition at least every 5-bit times; long strings of zeroes cause a transition every bit time, while long strings
of. Is are broken up by zero bit insertion. Since asynchronous operation requires that the receiver sampling
clock be derived from the received data, NRZI encoding plus zero bit insertion make the design of clock
.
recovery circuitry easier.
DATA
BIT SAMPLE
1
o
,0
1
0
1
0
Ill!!!!!!!
NRZ
NRZI
611001-1
, Figure 2. NRZI vs NFiZ Ellcoding
All of thtl previous discussion has applied to SOLC on
either pomt-to-point or ,multi-point, data networks.
SOLC (but not HOLC) also includes specification for a
loop configuration. Figure 3 compares these three configurations. IBM uses this lopp configuration in its
3650 RE1tail Store System. It consists of a single loop
controller station with one or more down-loop secondary stations. Communications on a loop 'rely on the
secondary stations repeating a received message down
loop with a delay of one bit time. The reason for the
one bit delay will be evident shortly.
Loop operation defines a new special character: the
BOP (End-of-Poll) character which consists of a 0 followed by 7 contiguous, non-zero bit inserted, ones. After the loop controller transmits a message, it idles the
line (send~ all Is). The fin8l zero of the closing flag plus
the first 7 Is of the idle form an BOP character. While
POINT·TO·POINT
LOOP
611001-3
MULTJ.POINT
611001-2
Figure 3. Network Configurations
2-296
inter
AP-36
repeating, the secondaries monitor their incoming line
for an EOP character. When an EOP is detected, the
secondary checks to see if it has a message to transmit.
If it does, it changes the seventh 1 to a 0 (the one bit
delay allows time for this) and repeats the modified
EOP (now alias flag). After this flag is transmitted, the
secondary terminates its repeater function and inserts
its message (with mUltiple preceding flags if necessary).
After the closing flag, the secondary resumes its one bit
delay repeater function. Notice that the final zero of the
secondary's closing flag plus the repeated Is from the
controller form an EOP for the next down-loop secondary, allowing it to insert a message if it desires.
lowed by 7 Is) and the HOLC Abort (7 Is). This possible incompatibility is neatly handled by the HOLe protocol not specifying a loop configuration.
This completes our brief discussion of the SOLCI
HOLC protocols. Now let us turn to the 8273 in particular and discuss its hardware aspects through an explanation of the block diagram and generalized system
schematics.
One might wonder if the secondary missed any messages from the controller while it was inserting its own
message. It does not. Loop operation is basically halfduplex. The controller waits until it receives an EOP
before it transmits its next message. The controller's
reception of the EOP signifies that the original message
has propagated around the loop followed by any messages inserted by the secondaries. Notice that secondaries cannot communicate with one another directly, all
secondary-to-secondary communication takes place by
way of the controller.
Loop protocol does not utilize the normal Abort character. Instead, an abort is accomplished by simply
transmitting a flag character. Oown loop, the receiver
sees the abort as a frame which is either too short (if the
abort occurred early in the frame) or one with an FCS
error. Either results in a discarded frame. For more
.details on loop operation, please refer to the IBM documents referenced earlier.
Another protocol very similar to SOLC which the 8273
supports is HOLC (High-Level Oata Link Control).
There are only three basic differences between the two:
HOLC offers extended address and control fields, and
the HOLC Abort character is 7 contiguous Is as opposed to SOLC's 8 contiguous Is.
Extended addressing, beyond the 256 unique addresses
possible with SOLC, is provided by using the address
field's least significant bit as the extended address modifier. The receiver examines this bit to determine if the
octet should be interpreted as the final address octet.
As long as the bit is 0, the octet that contains it is
considered an extended address. The first time the bit is
aI, the receiver interprets that octet as the final address
octet. Thus the address field may be extended to any
number of octets. Extended addressing is illustrated in
Figure 4a.
A similar technique is used to extend the control field
although the extension is limited to only one extra control octet. Figure 4b illustrates control field extension.
Those readers not yet asleep may have noticed the similarity between the SOLC loop EOP character (a 0 fol-
FIRST BIT TAANSMI"ED (LSB FIRST)
611001-4
A. HDLC ADDRESS FIELD EXTENSION
C
FLAG
A
EXTENSION BIT (1 MAX)
ltc, I I " I I
e2
1'2
Fes,
Fes2'
FtAG
611001-5
B. HDLC CONTROL FIELD EXTENSION
Figure 4
BASIC 8273 OPERATION
It will be helpful for the following discussions to have
some idea of the basic operation of the 8273. Each operation, whether it is a frame transmission, reception or
port read, etc., is comprised of three phases: the Command, Execution, and Result phases. Figure 5 shows
the sequence o(these phases. As an illustration of this
sequence, let us look at the transmit operation.
611001-6
Figure 5. 8273 Operational Phases
When the CPU decides it is time to transmit a frame,
the Command phase is entered by the CPU issuing a
Transmit Frame command to the 8273. It is not sufficient to just instruct the 8273 to transmit. The frame
level command structure sometimes requires more information such as frame length and address and control
field content. Once this additional information is sup-
2-297
inter
Ap·36
plied. the Comm.and phase is complete and the Execution phase is entered. It is during the Execution phase
that the actual operation, in this case a frame transmission, takes place. The 8273 transmits the opening flag,
A and C fields, the specified number of I field bytes,
inserts the FCS, and closes with the closing flag. Once
the closing flag is transmitted, the 8273 leaves the EXecution phase and begins the Result phase. During the
Result phase the 8273 notifies the CPU of the outcome
of the command by supplying interrupt results. In this
,case, the results would be either that the frame is complete or that some error condition causes the transmission to be aborted. Once the CPU reads all of the results (there is only' one for the Transmit Frame
command), the Result phase and consequently the
operation, is complete. Now that we have a general
feeling for the operation of the 8273, let us discuss the
8273 in detail.
HARDWARE ASPECTS OF THE 8273
The 8273 block diagram is shown in Figure 6. It consists of two major interfaces: the CPU module interface
and the modem interface. Let's discuss each interface
separately.
CPU Interface
The CPU interface consists of four major blocks: Control/Read/Write logic (C/R/W), internal registers,
data transfer logic, and data bus buffers.
The CPU module utilizes the CIR/W logic to issue
commands to the 8273. Once the 8273 receives'a command and executes it, it returns the results (goodlbad
completion) of the comm.and byway of the C/R/W
logic. The C/R/W logic is supported ~seven ~sters
which are addressed via the Ao, AI, RD, and WR signals, in addition to CS. The Ao and A 1 signals are generally derived from the two low order bits of the CPU
module address bus while RD and WR are the normal
I/O Read and Write signals found on the system control bus. Figure 7 shows the address of each register
using the C/R/W logic. The function of each register is
defined as follows:
Control Inputs
Address Inputs
A1
Ao
CS-RD
CS-WR
0
0
1
1
0
1
0
1
Status
Result
Txl/R
Command
Parameter
Test Mode
RxllR
-
Figure 7. 8273 Register Selection
,-----~---
FLAG DETECT
,---------co
REGISTERS
TxllR
RxllR
TEST MODE
,----------- CfS
COMMAND
, - - - - - - - - - RTS
PARAMETER
STATUS
RESULT
DBo-7
po------- TiC
TxDRQ + ; - - - - - j
TxDACK
DATA'
TIMING
LOGIC
----01
RxDRQ----i
t----TxD
P----RxC
1_______ RxD
' - - - - - - - - DPLL
~-------~
AO---·'
Al---·'
RESET - - - - - - - - - '
OCLK----~
TdNT _ -_____- - '
RxlNT _ _ _ _ _ _--'
CPU MODULE INTERFACE
MODEM INTERFACE
611001-7
Figure 6. 8273 Block Diagram
2-298
intJ
AP-36
Command-8273 operations are initiated by writing
the appropriate command byte into this register.
Parameter-Many commands require more information than found in the command itself. This additional
information is provided by way of the parameter register.
Immediate Result (Result}-The completion information (results) for commands which execute immediately
are provided in this register.
Transmit Interrupt Result (TxIIR}-Results of transmit operations are passed to the CPU in this register.
Receiver Interrupt Result (RxIIR}-Receive operation
results are passed to the CPU via this register.
Status-The general status of the 8273 is provided in
this register. The Status register supplies the handshaking necessary during various phases of the 8273 operation.
Test Mode-This register provides a software reset
function for the 8273.
The commands, parameters, and bit definition of these
registers are discussed in the following software section.
Notice that there are not specific transmit or receive
data registers. This feature is explained in the data
transfer logic discussion.
The final elements of the C/R/W logic are the interrupt lines (RxINT and TxINT). These lines notify the
CPU module that either the transmitter or the receiver
requires service; i.e., results should be read from the
appropriate interrupt result register or a data transfer is
required. The interrupt request remains active until all
the associated interrupt results have been read or the
data transfer is performed. Though using the interrupt
lines relieves the CPU module ofthe task of polling the
8273 to check if service is needed, the state of each
interrupt line is reflected by a bit in the Status register
and non-interrupt driven operation is possible by examining the contents of these bits periodically.
The 8273 supports two independent data interfaces
through the data transfer logic; receive data and transmit data. These interfaces are programmable for either
DMA or non-DMA data transfers. While the choice of
the configuration is up to the system designer, it is
based on the intended maximum data rate of the com-
munications channel. Figure 8 illustrates the transfer
rate of data bytes that are acquired by the 8273 based
on link data rate. Full-duplex data rates above 9600
baud usually require DMA. Slower speeds mayor may
not require DMA depending on the task load and interrupt response time of the processor.
Figure 9 shows the 8273 in a typical DMA environment. Notice that a separate DMA controller, in this
case the Intel 8257, is required. The DMA controller
supplies the timing and addresses for the data transfers
while the 8273 manages the requesting of transfers and
the actual counting of the data block lengths. In this
case, elements of the data transfer interface are:
TxDRQ: Transmit DMA Request-Asserted by the
8273, this line requests a DMA transfer from memory
to the 8273 for transmit.
TxDACK' Transmit DMA Acknowledge-Returned by
the 8257 in response to TxDRQ, this line notifies the
8273 that a request has been granted, and provides access to the transmitter data register.
RxDRQ: Receive DMA Request-Asserted by the 8273,
it requests a DMA transfer from the 8273 to memory
for a receive operation.
RxDACK: Receive DMA Acknowledge-Returned by
the 8257, it notifies the 8273 that a receive DMA cycle
has been granted, and provides access to the receiver
data register.
RD: Read-Supplied by the 8257 to indicate data is to
be read from the 8273 and placed in memory.
WR: Write-Supplied by the 8257 to indicate data is to
be written to the 8273 from memory.
To request a DMA transfer the 8273 raises the appropriate DMA request line; let us assume it is a transmitter request (TxDRQ). Once the 8257 obtains control of
the system bus by way of its HOLD and HLDA (hold
acknowledge) lines, it notifies the 8273 that TxDRQ
has been grant~ returning TxDACK and WR. The
TxDACK and WR signals transfer data to the 8273 for
a transmit, independent of the 8273 chip select pin
(CS). A similar sequence of events occurs for receiver
requests. This "hard select" of data into the transmitter
or out of the receiver alleviates the need for the normal
transmit and receive data registers addressed by a combination of address lines, CS, and WR or RD. Competi-
2-299
inter
AP·36
tive devices that qo not have this "hard select" feature
require the use of an external multiplexer to supply the
correct inputs for register selection during DMA. (Do
not forget.that the SDLC controller sees both the addresses and control signals supplied by the DMA controller during DMA cycles.) Let us look at typical
frame transmit and frame receive sequences to better
see how the 8273 truly manages the DMA data transfer.
At this point the requests stop, the FCS and closing flag
are transmitted, and the TxINT line is raised, signaling
the CPU that the frame transmission is complete. Notice that after the initial command and parameter loading, absolutely no CPU intervention was required (since
DMA is used for data transfers) until the entire frame
was transmitted. Now let's look at a frame reception.
80 ms
Before a frame can be transmitted, the DMA controller
is supplied, by the CPU, the starting address for the
desired information field. The 8273 is then commanded
to transmit a frame. (Just how this is done is covered
later during our software discussion.) After the command, but before transmission begins, the 8273 needs a
little mor.e information (parameters). Four parameters
are required for the transmit frame command: the address field byte, the control field byte, and two bytes
which are the least significant and most significant
bytes of the information field byte length. Once all four
parameters are.1oaded, the 8273 makes RTS (Requestto-Send) active and waits for CTS (Clear-to-Send) to go
active. Once CTS is active, the 8273 starts the frame
transmission. While the 8273 is transmitting the opening flag, address field, and control field; it starts making
transmitter DMA requests. These requests continue at
character (byte) boundaries until the pre-loaded number of bytes of information field have been transmitted.
8 ms
sec/byte
800
eS
80
eS
100
DACK1
DROO
100K
611001-8
Figure 8. Byte Transfer Rate vs Baud Rate
RD
TxDACK
RxDRO
10K
BAUD RATE (bps)
DR01
8257
DMA
CONTROLLER
1K
8273
RxDACK
CS AO
lOR
lOW
WR
A1
roo''"o'
BUS
07-00
~ ~."..
ADDRESS
BUS
"
611001-9
Figure 9. DMA, Interrupt-Driven System
2-300
Ap·36
The receiver operation is very similar. Like the initial
transmit sequence, the DMA controller is loaded with a
starting address for a receiver data buffer and the 8273
is commanded to receive. Unlike the transmitter, there
are two different receive commands: General Receive,
where all received frames are transferred to memory,
and Selective Receive, where only frames having an address field matching one of two preprogrammed 8273
address fields are transferred to memory. Let's assume
for now that we want to general receive. After the receive command, two parameters are required before the
receiver becomes active: the least significant and most
significant bytes of the receiver buffer length. Once
these bytes are loaded, the receiver is active and the
CPU may return to other tasks. The next frame appearing at the receiver input is transferred to memory using
receiver DMA requests. When the closing flag is received, the 8273 checks the FCS and raises its RxINT
line. The CPU can then read the results which indicate
if the frame was error-free or not. (If the received frame
had been longer than the pre-loaded buffer length, the
CPU would have been notified of that occurrence earlier with a receiver error interrupt. The command description section contains a complete list of error conditions.) Like the transmit example, after the initial command, the CPU is free for other tasks until a frame is
completely received. These examples have illustrated
the 8273's management of both the receiver and transmitter DMA channels.
It is possible to use the DMA data transfer interface in
a non-DMA interrupt-driven environment. In this case,
4 interrupt levels are used: one each for TxINT and
RxINT, and one each for TxDRQ and RxDRQ. This
configuration is shown in Figure 10. This configuration
offers the advantages that no DMA controller is re-
quired and data requests are still separated from result
(completion) requests. The disadvantages of the configuration are that 4 interrupt levels are required and that
the CPU must actually supply the data transfers. This,
of course, reduces the maximum data rate compared to
the configuration based strictly on DMA. This system
could use an Intel 8259 8-level Priority Interrupt Controller to supply a vectored CALL (subroutine) address
based on requests on its inputs. The 8273 transmitter
and receiver make data requests by raising the respective DRQ line. The CPU is interrupted by the 8259 and
vectored to a data transfer routine. This routine either
writes (for' transmit) or reads (for receive) the 8273 using the respective TxDACK or RxDACK line. The
DACK lines serve as "hard" chip selects into and out
of the 8273. TxDACK + WR writes data into the 8273
for transmit. RxDACK + RD reads data from the
8273 for receive.) The CPU is notified of operation
completion and results by way of TxINT and RxINT
lines. Using the 8273, and the 8259, in this way, provides a very effective, yet simple, interrupt-driven interface.
Figure II illustrates a system very similar to that described above. This system utilizes the 8273 in a ndnDMA data transfer mode as opposed to the two DMA
approaches shown in Figures 9 and 10. In the nonDMA case, data transfer requests are made on the
TxINT and RxINT lines. The DRQ lines are not used.
Data transfer requests are separated from result requests by a bit in the Status register. Thus, in response
to an interrupt, the CPU reads the Status register and
branches to either a result or a data transfer routine
based on the status of one bit. As before, data transfers
are made via using the DACK lines as chip selects to
the transmitter and receiver data registers.
D7-DO
611001-10
Figure 10_ Interrupt-Based DMA System
2-301
intJ
Ap·36
"CONTROL
BUS
611001-11
Figure 11. Non-DMA Interrupt-Driven System
NC
NC
NC
NC
T,INT RxlNT T,ORO R,ORO
-CONTROL
lOR
BUS
8213
01-00
611001-12
Figure 12. Polled System
Figure 12 illustrates the simplest system of all. This
system utilizes polling for all data transfers and results.
Since the interrupt pins are reflected in bits in the
Status register, the software can read the Status register
periodically looking for one of these to be set. If it finds
an INT bit set, the appropriate Result Available bit is
examined to determine if the "interrupt" is a data
transfer or completion result. If a data transfer is called
for, the DACK line is used to enter or read the data
from the 8273. If the interrupt is a completion result,
the appropriate result register is read to determine the
goodlbad completion of the operation.
The final block of the CPU module interface is the
Data Bus Buffer. This block supplies the tri-state, bidirectional data bus interface to allow communication to
and from the 8273.
The actual selection of either DMA or non-DMA
modes is controlled by a command issued during initialization. This command is covered in detail during
the software discussion.
The modem control block provides both dedicated and
user-defined modem control functions. All signals supported by this interface are active low so that EIA in-
Modem Interface
As the name implies, the modem interface is the modem side of the 8273. It consists of two major blocks:
the modem control block and the serial data timing
block.
2-302
inter
AP-36
verting drivers (MCI488) and inverting receivers
(MCI489) may be used to interface to standard modems.
This function is handled automatically by the 8273. If
RTS is inactive (pin is high) when the 8273 is commanded to transmit, the 8273 makes it active and then
waits for CTS before transmitting the frame. O~
time after the end of the frame, the 8273 returns RTS to
its inactive state. However, if RTS was active when a
transmit command is issued, the 8273 leaves it active
when the frame is complete.
Port A is a modem control input port. Its representation on the data bus is shown in Figure 13. Bits DO and
D1 have dedicated functions. Do reflects the logical
state of the CTS (Clear-to-Send) pin. [If CTS is active
(low), Do is a 1.1 This signal is used to condition the
start of a transmission. The 8273 waits until CTS is
active before it starts transmitting a frame. While trans.
mitting, if CTS goes inactive, the frame is aborted and
the CPU is interrupted. When the CPU reads the interrupt result, a CTS failure is indicated.
Bit Ds reflects the state of the Flag Detect pin. This pin
is activated whenever an active receiver sees a flag character. This function is useful to activate a timer for line
activity timeout purposes.
D1 reflects the logical state of the CD (Carrier Detect)
pin. CD is used to condition the start of a frame reception. CD must be active in time for a frame's address
field. If CD is lost (goes inactive) while receiving a
frame, an interrupt is generated with a CD failure result. CD may go inactive between frames.
Bits D1 thru D4 provide four user-defined outputs. Pins
PB 1 thru PB4 reflect the logical state of these bits. The
8273 does not interrogate or manipulate these bits. D6
and D7 are not used. In addition to being able to output
to Port B, Port B may be read using a Read Port B
command. All Modem control output pins are forced
high on reset. (All commands mentioned in this section
are cov~ed in detail Iater.)
Bits D2 thru D4 reflect the logical state of the PA2 thru
P~ pins respectively. These inputs are user defmed.
The 8273 does not interrogate or manipulate these bits.
Bits Ds, D6, and D7 are not used and each is read as a I
for a Read Port A command.
The final block to be covered is the serial data timing
block. This block contains two sections: the serial data
logic and the digital phase locked loop (DPLL).
Elements of the serial data logic section are the ,data
pins, TxD (transmit data output) and RxD.J!..eceive
data input), and the respective data clocks, ,TxC and
RxC. The transmit and receive data is synchronized by
the TxC and RxC clocks. Figure 15 shows the timing
for these signals. The leading edge (negative transition)
Port B is a modem control output port. Its data bus
representation is shown in Figure 14. As in Port A, the
bit values represent the logical condition of the pins. Do
and ~are dedicated function o~ts. Do represents
the RTS (Request-to-Send) pin. RTS is normally used
to notify the modem that the 8273 wishes to transmit.
D7
D6
11
1
Ds
D4
D3
D2
Dl
Do
I I I I
L
1
CTS - CLEAR TO SEND
CD - CARRIER DETECT
I
I
I
PA21
PA3
USER·DEFINED INPUTS
PA4
611001-13
Figure 13. Port A (Input) Bit Definition
D7
D6
L1 J
1
DS
I
D4
D3
D2
Do
Dl
I I I I I
I
I
I
L
RTS -
I
REQUEST TO SEND
P81
P82
USER·DEFINED OUTPUTS
P83
P84
FLAG DETECT
611001-14
Figure 14. Port B (Output) Bit Definition
2-303
Ap·36
nal circuitry. Clock loopback over~mes this problem
by allowing the internal routing of TxC and RxC. Thus
the same clock used to transmit the data is used to
receive it. Examination of Figure 15 shows that this
method ensures bit synchronism. The fmal element of
the serial data logic is the Digital Phase Locked Loop.
of TxC genetates new transmit data and the trailing
edge (positive transition) of RxC is used to capture the
receive data.
The DPLL provides a means of clock recovery from
the received data stream. This feature allows the 8273
to interface without external synchronizing logic to low
cost asynchronous modems (modems which do not
supply clocks). It also makes the problem of clock timing in loop configurations trivial.
To use the DPLL, a clock at 32 times the required baud
rate must be supplied to the 32 X CLK pin. This clock
provides the interval that the DPLL samples the received data. The DPLL uses the 32 X clock and the
received data to generate a pulse at the DPLL output
pin. This DPLL pulse is positioned at the nominal center of the received data bit cell. Thus the DPLL output
may be wired to RxC andlor TxC to supply the data
timing. The exact position of the pulse is varied depending on the line noise and bit distortion of the received
data. The adjustment of the DPLL position is determined according to the rules outlined in Figure 16.
611001-15
Figure 15. Transmit/Receive Timing
It is possible to reconfigure this section under program
control to perfonn diagnostic functions; both data and
clock loopback are available. In data loopback mode,
the TxD pin is internally routed to the RxD pin. This
allows 'simple board checkout since the CPU can send
an SDLC message to itself. (Note that transmitted data
will still appear on the TxD pin.)
Adjustments to the sample phase of DPLL with respect
to the received data is made in discrete increments. Referring to Figure 16, following the occurrence of DPLL
When data loopback is utilized, the receiver may be
presented incorrect sample timing (RxC) by the exter.
11-_ _ _....:1:..:1::.:.IT,:.:TI::ME:..-_ _ _-I
x
RxD
NO TRANSITION
iiXcLK
:x:
lWW···
2 4 8 • 10 12 14 18 18 20 22 24 28 28 30 32
1-----32CLOCKS-----I
A
1 - - 4 - - 3 0 CLOCKS ---''''Io.:,----.j
I
B
:
I
I
I
I
I
~:--+I--33CLOCKS.,..-+---~
I
I
I
I
I
I
~LOCKS
---t----,
:
i
I
32 I
I
I
I
I
:
QUADRANT I
ADJUSTMENT I
I
I
I
I
I
I
I
Al
-2
81
-1
r:;;::AL
u~nY~.n.
82
Az
+1
+2
I
I
611001-16
Figure 16. DPLL Phase Adjustments
2-304
intJ
Ap·36
pulse A, the DPLL counts 32 X CLK pulses and examines the received data for a data edge. Should no edge
be detected in 32 pulses, the DPLL positions the next
DPLL pulse (B) at 32 clock pulses from pulse A. Since
no new phase information is contained in the data
stream, the sample phase is assumed to be at nominal
1 X baud rate. Now assume a data edge occurs after
DPLL pulse B. The distance from B to the next pulse C
is influenced according to which quadrant (AI, BI, B2,
or AU the data edge falls in. (Each quadrant represents
8 32x CLK times.) For example, if the edge is detected
in quadrant Alo it is apparent that pulse B was too close
to the data edge and the time to the next pulse must be
shortened. The adjustment for quadrant Al is specified
as - 2. Thus, the next DPiI pulse, pulse C, is positioned 32 - 2 or 30 32 X CLK pulses following DPLL
pulse B. This adjustment moves pulse C closer to the
nominal bit center of the next received data cell. A data
edge occurring in quadrant B2 would have caused the
adjustment to be small, namely 32 + I or 33 32 X
CLK pulses. Using this technique, the DPLL pulse
converges to the nominal bit center within 12 data transitions, worse case-4-bit times adjusting through
quadrant Al or A2 and 8-bit times adjusting through
BI or B2·
This completes our discussion of the hardware aspects
of the 8273. Its software aspects are now discussed.
SYNC
MODEM
611001-17
Synchronous Modem Interface
611001-18
Asynchronous Modem Interface
When the receive data stream goes idle after 15 ones,
DPLL pulses are generated at 32 pulse intervals of the
32 X CLK. This feature allows the DPLL pulses to be
used as both transmitter and receiver clocks.
Figure 17. Serial Data Timing Configuration
SOFTWARE ASPECTS OF THE 8273
In order to guarantee sufficient transitions of the received data to enable the DPLL to lock, NRZI encoding of the data is recommended. This ensures that,
within a frame, data transitions occur at least every five
bit times-the longest sequence of Is which may be
transmitted with zero bit insertion. It is also recommended that frames following a line idle be transmitted
with preframe sync characters which provide a minimum of 12 transitions. This ensures that the DPLL is
generating DPLL pulses at the nominal bit centers in
time for the opening flag. (Two DOH characters meet
this requirement by supplying 16 transitions with
NRZI encoding. The 8273 contains a mode which supplies such ,a preframe sync.)
The software aspects of the 8273 involve the communication of both commands from the CPU to the 8273
and the return of results of those commands from the
8273 to the CPU. Due to the internal processor architecture of the 8273, this CPU-8273 communication is
basically a form ofinterprocessor communication. Such
communication usually requires a form of protocol of
its own. This protocol is implemented through use of
handshaking supplied in the 8273 Status register. The
bit definition of this register is shown in FigUre 18.
Figure 17 illqstrates 8273 clock configurations using
either synchronous or asynchronous modems. Notice
how the DPLL output is used for both TxC and RxC in
the asynchron!lus case. This feature eliminates the need
for eX,ternal clock generation logic' where low cost asynchronous modems are used and also allows direct connection of 8273s for the ultimate in low cost data links.
The c011:figuration for loop applicatiQns is discussed in a
fo~.owing section.
"
,,' I
2-305
TaiRA _ TaiNT RESUL' AVAILABLE
fblRA - AIINT RESULT AYAILABLE
LJ~~=== CRIF -
TxlNT
RalNT -- '_INTERRUPT
fb: INTERRUPT
COMMAND RESULT
- IUFFER FULL
' - - - - - - - - - CpaF - COMMAND PARAMETEA
IUFFER FULL
' - - - - - - - - - - C l ' - COMMAND IUFFER FULL
' - - - - - - - - - - - easy -
COMMAND
ausv
611001-19
Figure 18. Status Register Format
AP-36
CBSY: Command Busy--,-CBSY indicates when the
8273 is in the command phase.. CBSY is set when the
CP~ writes a command into th~ Command register,
startmg the Command phase. It IS reset when the last
parameter is deposited in the Parameter register and
accepted by the 8273, completing the Command phase.
CBF: Command Buffer Full-When set, this bit indicates that a byte is present in the Command register.
This bit is normally not used.
CPBF: Command Parameter Buffer Full-This bit indicates that the Parameter register contains a parameter. It is set when the CPU deposits a parameter in the
Parameter register. It is reset when the 8273 accepts the
parameter.
CRBF: Command Result Buffer Full-This bit is set
when the 8273 places a result from an immediate type
command in the Result register. It is reset when the
CPU reads the result from the Result register.
RxINT: Receiver Interrupt-The state of the RxINT
pin is reflected by this bit. RxINT is set by the 8273
whenever the receiver needs servicing. RxINT is reset
when the CPU reads the results or performs the data
transfer.
TxINT: Transmitter Interrupt-This bit is identical to
RxINT except action is initiated based on transmitter
interrupt sources.
RxIRA: Receiver Interrupt Result Available-RxIRA is
set when the 8273 places an interrupt result byte into
the RxI/R register. RxIRA is reset when the CPU
reads the RxI/R register.
TxIRA: Transmitter Interrupt Result AvailableTxlRA is the corresponding Result Available bit for
the transmitter. It is set when the 8273 places an interrupt result byte in the TxI/R register and reset when
the CPU reads the register.
The significance of each of these bits will be evident
shortly. Since the software requirements of each 8273
phase are essentially independent, each phase is covered
separately.
Command Phase Software
Recalling the Command phase description in an earlier
section, the CPU starts the Command phase by writing
a command byte into the 8273 Command register. If
further information about the command ·is required by
the 8273, the CPU writes this inf0rmation into the Parameter register. Figure 19 is a flowchart of the Command phase. Notice that the CBSY and CPBF bits of
the Status register are used to handshake the command
and parameter bytes. Also note that the chart shows
611001-20
Figure 19. Command Phase Flowchart
that a command may not be issued if the Status register
indicates the 8273 is busy (CBSY = 1). If a command
is issued while CBSY = 1, the original command is
overwritten and lost. (Remember that CBSY signifies
the command phase is in progress and not the actual
execution of the command.) The flowchart also includes a Parameter buffer full check. The CPU must
wait until CPBF = 0 before writing Ii parameter to the
Parameter register. If a parameter is issued while CPBF
= 1, the previous parameter is overwritten and lost
An example of command ~utput assembly languag~
software is provided in Figure 20a. This software as-'
sumes that a .~ommand buffer exists in memory. The
buffer is pointed at by the HL register. Figure 20b
shows the command buffer structure.
The 8273 is a full duplex device, i.e., both the transmit~er and receiver niaybe executing commands or passing
mterrupt results at any given time. (Separate Rx and Tx
interrupt pins and result registers are provided for this
reason.) However, there is only one Command register.
Thus, the Command register must be used for only one
command sequence at a time and the transmitter and
receiver may never be simultaneously in a command
phase. A detailed description of the commands and
their parameters is presented in a following section.
2-306
inter
AP-36
;FUNCTION: COMMAND DISPATCHER
;INPUTS: HL - COMMAND BUFFER ADDRESS
;OUTPUTS: NONE
;CALLS: NONE
;DESTROYS: A,B,H,L,F/F'S
;DESCRIPTION: CMDOUT ISSUES THE COMMAND + PARAMETERS
;IN THE COMMAND BUFFER POINTED AT BY HL
CMDOUT: LXI
MOV
INX
CMD1:
IN
RLC
JC
MOV
OUT
CMD2:
MOV
ANA
RZ
INX
DCR
CMD3:
IN
ANI
JNZ
MOV
OUT
JMP
H,CMDBUF ;POINT HL AT BUFFER
B,M
;lST ENTRY IS PAR~ COUNT
H
;POINT AT COMMAND BYTE
STAT73
;READ 8273 STATUS
;ROTATE CBSY INTO CARRY
CMDl
;WAIT UNTIL CBSY=O
A,M
;MOVE COMMAND BYTE TO A
;PUT COMMAND IN COMMAND REG
COMM73
A,B
;GET PARAMETER COUNT
A
;TEST IF ZERO
;IF 0 THEN DONE
H
;NOT DONE, SO POINT AT NEXT PAR
B
;DEC PARAMETER COUNT
STAT73
;READ 8273 STATUS
CPBF
;TEST CPBF BIT
;WAIT UNTIL CPBF IS 0
CMD3
A,M
;GET PARAMETER FROM BUFFER
PARM73
;OUTPUT PAR TO PARAMETER REG
CMD2
;CHECK IF MORE PARAMETERS
Figure 20A. Command Phase Software
PARAMETER
+3
PARAMETER 2
+2
PARAMETER 1
+1
CMDBUF:
Execution Phase SOftware
3
+4
COMMAND
PARAMETER COUNT
+-HL
Figure 20B. Command Buffer Format
During the Execution phase, the operation specified by
the Command phase is performed. If the system utilizes
DMA for data transfers, there is no CPU involvement
during this phase, so no software is required. If nonDMA data transfers are used, either interrupts or polling is used to signal a data transfer request.
For interrupt-driven transfers the 8273 raises the appropriate INT pin. When responding to the interrupt,
2-307
inter
AP-36
the CPU must determine whether it is a data transfer
request or an interrupt signaling that an operation is
complete and results are available. The CPU determines the cause by reading the Status register and interrogating the associated IRA (Interrupt Result
Available) bit (TxlRA for TxlNT and RxlRA for
RxINT). If the IRA = 0, the interrupt is a data
transfer request. If the IRA = 1, an operation is
complete and the associated Interrupt Result register
must be read to determine the completion status (good/
bad/etc.). A software interrupt handler implementing
the above sequence is presented as part of the Result
phase software.
When polling is used to determine when data transfers
are required, the polling routine reads the Status register looking for one of the INT bits to be set. When a set
INT bit is found, the corresponding IRA bit is examined. Like in the interrupt-driven case, if the IRA = 0,
a data transfer is required. If IRA = 1, an operation is
complete and the Interrupt Result register needs to be
read. Again, example polling software is presented in
the next section.
Result Phase Software
During the Result phase the 8273 notifies the CPU of
the outcome of a command. The Result phase is initiated by either a successful completion of an operation or
an error detected during execution. Some commands
such as reading or writing the I/O ports provide immediate results, that is, there is essentially no delay from
the issuing of the command and when the result is
available. Other commands such as frame transmit,
take time to complete so their result is not available
immediately. Separate result registers are provided to
distinguish these two types of commands and to avoid
interrupt handling fo,r simple results.
Immediate results are provided in the Result register.
Validity of information in this register is indicated to
the CPU by way of the CRBF bit in the Status register.
When the CPU completes the Command phase of an
immediate command, it polls the Status register waiting
until CRBF = 1. When this occurs, the CPU may read
the Result register to obtain the immediate result. The
Result register provides only the results from immediate commands.
Example software for handling immediate results is
shown in Figure 21. The routine returns with the result
in the accumulator. The CPU then uses the result as is
appropriate.
All non-immediate commands deal with either the
transmitter or receiver. Results from these commands
are provided in the TxI/R (Transmit Interrupt Result)
and Rxl/R (Receive Interrupt Result) registers respectively. Results in these registers are conveyed to the
CPU by the TxIRA and RxIRA bits of the status register. Results of non-immediate commands consist of one
byte result interrupt code indicating the condition for
the interrupt and, ifrequired, one or more bytes supplying additional information. The interrupt codes and the
meaning of the additional results are covered following
the detailed command description.
Non-immediate results are passed to the CPU in response to either interrupts or polling of the Status register. Figure 22 illustrates an interrupt-driven result handler. (Please note that all of the software presented in
this application note is not optimized for either speed or
code efficiency. They are provided as a guide and to
illustrate concepts.) This handler provides for interrupt-driven data transfers as was promised in the last
section. Users employing DMA-based transfers do not
;FUNCTION: IMDRLT
;INPUTS: NONE
;OUTPUTS: RESULT REGISTER IN A
;CALLS: NONE
;DESTROYS: A, F/F'S
;DESCRIPTION: IMDRLT IS CALLED AFTER A CMDOUT FOR AN
;IMMEDIATE COMMAND TO READ THE RESULT REGISTER
IMDRLT: IN
ANI
JZ
IN
RET
STAT 73
CRBF
IMDRLT
RESL73
;RETURN
;READ
;TEST
;WAIT
;READ
8273 STATUS
IF RESULT REG READY
IF CRBF=O
RESULT REGISTER
Figure 21. Immediate Result Handler
2-308
inter
AP-36
place the results in a result buffer pointed at by
RCRBUF and TxRBUF.
,FUNCTION: RXI - INTERRUPT DRIVEN RESULT/DATA KANDLER
; INPUTS : ReRaUF, RCV'N,.
1CALLS: NONt;
,OUTPUTS: RCRSUF, ReV'NT
; DESTROYS: NOTHING
;DESCRIPTIOti'; RXI IS ENTERED AT A RECEIVER INTt.RRUPT.
.THE INTERRUPT IS TESTED rOR DATA TRANSFER (IRA-,)
JaR RESU1.T (IRA-1).
FOa DATA TRANSFER, THE DATA IS
, PLACED IN A aurFER AT RCVPNT. RESULTS ARE PLACED UI
;A Bur'ER AT RCRBUF.
;A FLAG(RXFLAG) IS SET IF THE INTERRUPT WAS A RESULT.
; (DATA TRANSFER INSTRUCTIONS ARE DENOTED BY C*) AND
,MAYBE ELIMINATED BY USt.RS USING DHA.
,
RXI:
•PSW
PUSb
PUSH
PUSH
•
I.
STAT71
RXIRA
•• 1
aXIl;
JZ
LHLO
RCRsur
.01
STAT11
RUNT
JZ
RxU
10
STAT71
I.
.NI
RXIRA
JZ
RUl
RUR71
IN
MOV
IN.
SHLe
J.P
RXI2:
SHLO
IN
HOV
IN'
JHP
RxI4:
I
AOI
JZ
IN
LhL&
NOV
IN'
SHLe
"VI
ST.
'Ixll:
pop
pop
£!
RET
TU2:
LhLC
NOV
OUT
10'
SULt
JlIP
"PSO
STAT71
TX!RA
TXI2
TXIa71
TxaBUF
M ••
•
TXRBUF
A,81ft
TXFLAG
PSW
•
;
kXIC:
CALI.
LOA
CPI
INR
JMP
RXI
RXFLAG
UH
PEXIT
C
POI.OP1
POP
Rt1'
PSW
; RtS1'OR~ PSW
;RJ:.TURh UTH COMPo STATUS IN C
JNZ
PUIT:
,SAVE HL
;SAVE PSW
; (*) R£AD 8271 STATUS
; (*) TEST TXlRA BIT
; (*) IF a, DATA TRANSFER
; 1, THEN REAt TXIR
;GET RESULT SUP FER POINTER
;STORE RESULT IN BUFFER
iBUMP RESULT POINTER
;RESTORE RE.SULT POINTER
;SET TXFLAG TO SHOlrI COMPLETION
iSET FLAG
; RESTORE PSW
;GO SERVIC~ RX
; GET RX FLAG
,hAS IT A COMPLE1'ION? (81)
;NO. ~o JUST EXIT
~YES, UPDATE C
;TRY AGAIN
611001-62
Figure 23. Polling Result Handler
8273 COMMAND DESCRIPTION
In this section, each command is discussed in detail. In
order to shorten the notation, please refer to the command key in Table l. The 8273 utilizes five different
command types: InitializatiOn/Configuration, Receive,
Transmit, Reset, and Modem Control.
;RESTORE HI.
JEhABL£ IhTERRU,TS
: DONE
TXPhT
(*) GET DATA POlhTER
•• H
(*) GET DATA FROM BUFFER
TXDATA
; (*) OUTPUT TO 8271 VIA TXDACK
(*) BUMP; DATA POINT£R
TXPHT
(*) RESTORE POUlTER
TXU
(*) RETURN AFTER RESTORE
•
Table 1. Command Summary Key
611001-61
Figure 22. Interrupt-Driven Result
Handlers with Non-DMA Data Transfers
Bo,B1
need the lines where the IRA bit is tested for zero.
(These lines are denoted by an asterisk in the comments
column.) Note that the INT bit is used to determine
when all results have been read. All results must be
read. Otherwise, ,the INT bit (and pin) will remain high
and further interrupts may be missed. These routines
A1,A2
Ro. R1
La. L1
2-309
RIC
TIC
A
C
-LSB and MSB of Receive Buffer Length
-LSB and MSB of Received Frame Length
-LSB and MSB of Transmit Frame Length
-Match Addresses for Selective Receive
-Receiver Interrupt Result Code
-Transmitter Interrupt Result Code
-Address Field of Received Frame
-Control Field of Received Frame
inter
AP-36
Initialization/Configuration Commands
The Initialization/Configuration commands manipulate registers internal to the 8273 that define the various
operating modes. These commands either set or' reset
specified bits in the registers depending on the type of
command. One parameter is required. Set commands
perform a logical OR operation of the parameter
(mask) and the internal register. This mask contains Is
where register bits are to be set. A "0" in the mask
causes no change in the corresponding register bit. Reset commands perform a logical AND operation of the
parameter (mask) and the internal register, i.e., the
mask is "0" to reset a register bit and a "1" to cause no
change. Before presenting the commands" the register
bit definitions are discussed.
01:
00:
Operating Mode Register (Figure 24)
07-06: Not Used-These bits must not be manipulated by any command; i.e., 07-06 must be 0
for the Set command and 1 for the Reset command.
OS:
HDLC Abort-When this bit is set, the 8273
will interrupt when 7 Is (HOLC Abort) are
received by an active receiver. When reset, an
SOLC Abort (8 Is) will cause an interrupt.
EOP Interrupt-Reception of an EOP character (0 followed by 7 Is) will cause the 8273 to
interrupt the CPU when this bit is set. Loop
controller stations use this mode as a signal
that a polling frame has completed the loop.
No BOP interrupt is generated when this bit is
reset.
Early Tx Interrupt-This bit specifies when
the transmitter should generate an end of
frame interrupt. If this bit is set, an interrupt is
generated when the last data character has
been' passed to the 8273. If the user software
issues another transmit command within two
byte times, the final flag interrupt, does not 32 bits). The 8273 handles this N-bit
reception through the high order bits (D7-D5) of the
result code. These bits code the number of valid received bits in the last received information field byte.
This coding is shown in Figure 30. The high order bits
of the received partial byte are indeterminate. [The address, control, and information fields are transmitted
least significant bit (Aa) first. The FCS is complemented and transmitted most significant bit first.l
Transmit Commands
The 8273 transmitter is supported by three Transmit
commands and three corresponding Abort commands.
returns to either Idle or Flag Stream, depending on the
Flag Stream bit of the Operating Mode register. IfRTS
was active before the transmit command, the 8273 does
not change it. If it was inactive, the 8273 will deactivate
it within one character time.,
Loop Transmit
Loop Transmit is similar to Frame Transmit (the parameter definition is the same). But since it deals with
loop configurations, One Bit Delay mode must be selected.
If the transmitter is not in Flag Stream mode when this
command is issued, the transmitter waits until after a
received EOP character has been converted to a flag
(this is done automatically) before transmitting. (The
one bit delay is, of course, suspended during transmit.)
If the transmitter is already in Flag Stream mode as a
result of a selectively received frame during a Selective
Loop Receive command, transmission will begin at the
next flag boundary for Buffered mode or at the third
flag boundary for non-Buffered mode. This discrepancy
is to allow time for enough data transfers to occur to fill
up the internal transmit buffer. At the end of a Loop
Transmit, the One Bit Delay mode is re-entered and the
flag stream mode is reset. More detailed loop operation
is covered later.
Transmit Frame
The Transmit Frame command simply transmits a
frame. Four parameters are required when Buffered
mode is selected and two when it is not. In either case,
the first two parameters are the least and the most significant bytes of the desired frame length (La, LJ). In
Buffered mode, La and LJ equal the length in bytes of
the desired information field, while in the non-Buffere4
mode, La and L) must be specified at the information
field length plus two .. (La and L) specify the number of
data. transfers to be performed.) In Buffered mode, the
address and control fields are presented to the transmitter as the third and fourth parameters respectively. In
non-Buffered mode, the A and C fields must be passed
as the first two data transfers.
Transmit Transparent
The Transmit Transparent command enables the 8273
to transmit a block of raw data. This data is without
SDLC protocol, i.e., no zero bit insertion, flags, or
FCS. Thus it is possible to construct and transmit a BiSync message for front-end processor switching or to
construct and transmit an SDLC message with incorrect FCS for diagnostic purposes. Only the La and L)
parameters are used since there are not fields in this
mode. (The 8273 does not support a Receive Transparent command.)
Abort Commands
When the Transmit Frame command is issued, .the
8273 makes RTS (Request-to-Send) act~pin low) if
it was not already. It then waits until CTS (Clear-toSend) goes active (pin low) before starting the frame. If
the Preframe Sync bit in the Operating Mode register is
set, the transmitter prefaces two characters (16 transitions) before the ppening flag. If the Flag Stream bit is
set in the Operating Mode register, the frame (including
Preframe Sync if selected) is started on a flag boundary.
Otherwise the frame starts on a character boundary.
At the end of the franle, the transmitter interrupts tile
CPU (the interrupt results are discussed shortly) and
Each of the above transmit commands has an associated Abort command. The Abort Frame Transmit command causes the transmitter to send eight contiguous
ones (no zero bit insertion) immediately and then revert
to either idle or flag streaming based on the Flag
Stream bit. (The 8 Is as an Abort character i~ compatible with both SDLC and HDLC.)
For Loop Transmit, the Abort Loop Transniit command causes the transmitter to send one flag and then
revert to one bit delay. Loop Ilrotocol depends upon
FCS errors to detect aborted frames.
2-314
inter
Ap·36
The Abort Transmit Transparent simply causes the
transmitter to revert to either idles or flags as a function of the Flag Stream mode specified.
The Abort commands require no parameters, however,
they do generate an interrupt and return a result when
complete.
A summary of the Transmit commands is shown in
Figure 31. Figure 32 shows the various transmit interrupt result codes. As in the receiver operation, the
transmitter generates interrupts based on either good
completion of an operation or an error condition to
start the Result phase.
The Early Transmit Interrupt result occurs after the
last data transfer to the 8273 if the Early Transmit Interrupt bit is set in the Operating Mode register. If the
8273 is commanded to transmit again within two character times, a single flag will separate the frames. (Buffered mode must be used for a single flag to separate the
frames. If non-Buffered mode is selected, three flags
will separate the frames.) If this time constraint is not
met, another interrupt is generated and multiple flags
or idles will separate the frames. The second interrupt
is the normal Frame Transmit Complete interrupt. The
Frame Transmit Complete result occurs at the closing
flag to signify a good completion.
The DMA Underrun result is analogous to the DMA
Overrun result in the receiver. Since SDLC does not
support intraframe time fill, if the DMA controller or
CPU does not supply the data in time, the frame must
be aborted. The action taken by the transmitter on this
error is automatic. It aborts the frame just as if an
Abort command had been issued.
Clear-to-Send Error result is generated if CTS goes inactive during a frame transmission. The frame is aborted as above.
The Abort Complete result is self-explanatory. Please
note however that no Abort Complete interrupt is generated when an automatic abort occurs. The next command type consists of only one command.
Reset Command
The Reset command provides a software reset function
for the 8273. It is a special case and does not utilize the
normal command interface. The reset facility is provided in the Test Mode register. The 8273 is reset by simply outputting a OlH followed by a OOH to the Test
Mode register. Writing the 01 followed by the 00 mimicks the action required by the hardware reset. Since
the 8273 requires time to process the reset internally, at
least 10 cycles of the >CLK clock must occur between
the writing ofthe 01 and the 00. The action taken is the
same as if a hardware reset is performed, namely:
1) The modem control outputs are forced high inactive.
Hex
Code
Parameters'
Results
TxllR
Transmit Frame
Abort
C8
CC
Lo, L1, A, C
None
TIC
TIC
Loop Transmit
Abort
CA
CE
Lo, L1. A, C
None
TIC
TIC
Transmit Transparent
Abort
CO
CD
Lo. L1
None
TIC
TIC
Command
·NOTE:
A and C are passed as parameters in buffered mode only.
Figure 31. Transmitter Command Summary
Transmitter Interrupt
Result Code
RIC
D7-DO
00001100
00001101
00001110
00001111
00010000
Early Tx Interrupt
Frame Tx Complete
DMA Underrun
Clear to Send Error
Abort Complete
TxStatus
after INT
Active
Idle or Flags
Abort
Abort
Idle or Flags
Figure 32. Transmitter Interrupt Result Codes
2-315
intJ
If non-Buffered mode is used, the A, C, and I fields are
in memory. The software must examine the initial characters to find the extent of the address field. If Buffered
mode is used, the characters corresponding to the
SOLe A and C fields are transferred to the CPU as
interrupt results. Buffered mode assumes the two characters following the opening flag are to be transferred
as interrupt results regardless of content or meaning.
(The 8273 does not know whether it is being uSed in an
SOLe or an HOLC environment.) In SOLC, these
characters are necessarily the A and C field bytes, however in HOLC, their meaning may change depending
on the amount of extension used. The software must
recognize this and examine the transferred' results as
possible address field extensions.
2) The 8273 Status register is cleared.
3) Any commands in progress cease:
4) The 8273 ~nters an idle state until the next command
is issued.
Modem Control Commands
The modem control ports were discussed earlier in the
Hardware section. The commands used to manipulate
these ports are shown in Figure 33. The Read Port A
and Read Port B commands are immediate. The bit
definition for the returned byte is shown in Figures 13
and 14. 00 not forget that the returned value represents
the logical condition of the pin, i.e., pin active (low) =
bit set.
Frames may still be selectively received as is needed for
secondary stations. The Selective Receive command is
still used. This command qualifies a frame reception on
the first byte following the opening flag matching either
of the Al or A2 match byte parameters. While this does
not allow qualification over the complete range of
HOLC addresses, it does perform a qualification on the
first address byte. The remaining address field bytes, if
any, are then examined via software to completely qualify the frame.
The Set and Reset Port B commands are similar to the
Initialization commands in that they use a mask parameter which defines the bits to be changed. Set Port
B utilizes a logical OR mask and Reset Port B uses a
logical ANO mask. Setting a bit makes the pin active
(low). Resetting the bit deactivates the pin (high).
To help clarify the numerous timing relationships that
occur and their consequences, Figures 34 and 35 are
provided as an illustration of several typical se~uences.
It is suggested that the reader go over these diagrams
and re-read the appropriate part of the previous sections if necessary.
Once the extent of the address field is found, the following bytes form the control field. The same LSB test
used for the address field is applied to these bytes to
determine the control field extension, up to two bytes
maximum. The remaining frame bytes in memory represent the information field.
HOLC CONSIDERATIONS
The 8273 supports HOLe as well as SOLC. Let's discuss how the 8273 handles the three basic HOLC/
SOLC differences: extended addressing, extended control, and the 7 1s Abort character.
Recalling Figure 4a, HOLC supports an address fi~ld
of indefinite length. The actual amount of extenSIOn
used is determined by the least significant bit of the
characters immediately following the opening flag. If
the LSB is 0, more address field bytes follow. If the
LSB is 1, this byte is the final address field byte. Software must be used to determine this extension.
Port
A Input
B Output
The Abort character difference is handled in the Operating Mode register. If the HOLC Abort Enable bit is
set" the reception of seven contiguous ones by an active
receiver will generate an Abort Oetect interrupt rather
than eight ones. (Note that both the HOLC Abort Enable bit and the EOP Interrupt bit must not be set
simultaneously.)
Now let's move on to the SOLe loop configuration
discussion.
Command
Hex
Code
Parameter
Reg
Result
Read
22
None
Port Value
Read
23
None
Port Value
Set
A3
Set Mask
None
Reset
63
Reset Mask
None
Figure 33. Modem Control Command Summary
2-316
inter
AP·36
CARRIER DETECT
~
\'---
RxD
Rx COMMAND
t
OR~~~:~~~~~~=~: __________________________________~_A
____~t_c____t_l_l_____________________
NON·BUFFERED
t
FRAME
tPOSSIBLE
IN~~::~~~~ ___________________________________M_O_D_E____________~C~O~M~P=LE~T~E____~ID~L~E~INT
611001-25
A. Error·Free Frame Reception
CARRIER DETECT
~
\\\\\\\\\\\\
RxD
RxCOMMAND
t
CD
CD
IN~~::~~~~ ________________~~F~A~IL~U~R~E~I__~~____~~__~~____~~F~A~IL~U~R~E_____
611001-26
B. Carrier Detect Failure Dunng Frame Reception
Figure 34. Sample Receiver Timing Diagrams
LOOP CONFIGURATION
Aside from use in the normal data link applications, the
8273 is extremely attractive in loop configuration due
to the special frame-level loop commands and the Digital Phase Locked Loop. Toward this end, this section
details the hardware and software considerations when
using the 8273 in a loop application.
The loop configuration offers a simple, low-cost solution for systems with multiple stations within a small
physical location, i.e., retail stores and banks. There are
two primary reasons to consider a loop configuration.
The interconnect cost is lower for a loop over a multipoint configuration since only one twisted pair or fiber
optic cable is used. (The loop configuration does not
support the passing of distinct clock signals from station to station.) In addition, loop stations do not need
the intelligence of a multi-point station since the loop
protocol is simpler. The most difficult aspects of loop
station design are clock recovery and implementation
of one bit delay (both are handled neatly by the 8273).
Figure 36 illustrates a typical loop configuration with
one controller and two down-loop secondaries. Each
station must derive its own data timing from the received data stream. Recalling our earlier discussion of
the DPLL, notice that TxC and RxC clocks are provided by the DPLL output. The only clock required in the
secondaries is a simple, non-synchronized clock at 32
times the desired baud rate. The controller requires
both 32 X and I X clocks. (The 1X is usually implemented by dividing the 32X clock with a 5-bit divider.
However, there is no synchronism requirement between
these clocks so any convenient implementation may be
used.)
2-317.
inter
Ap·36
T.COMMAND
I
RTS~
L
L
c T S - - - -......
OR1~~:~N~:~~~:~:-------I~,A-I--!-c--I-'-l--I-'2--_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __
NON·BUFFERED
MODE
I
IN~~=:~~~----------------------------------~F-R-AM--E-CO-M-P-L_E_TE
611001-27
A. Error·Free Frame Transmission
2ND FRAME
I I I I I
1ST FRAME
T.COMMAND
I
"H I
RTS~
CTS~
tEARLY T.
IN~~=~~~--------------------------~--------------------------------------611001-28
B. Diagram Showing Tx Command Queing and Early Tx Interrupt
(Single flag between frames) Buffered Mode is Assumed
T. COMMAND
I.
L
1-
C T S - - - -......
T. DMA
REQUE~T8
IA
IC
1'1
t12
t13
ORDATAINTERRUPTS----------~----~--~~--~----~---------------------~---
I CTS
IN~~=~~~---------------------------------------:::O=R-:A::~~::R;.;;O"'R'--------------ERROR
INTERRUPT
c. CTS Failure (or other error) During Transmission
Figure 35. Sample Transmitter Timing Diagrams
2·318
811001-29
inter
Ap·36
If the controller wants to poll the secondaries, it transmits a polling frame followed by all Is (no zero bit
insertion). The final zero of the closing frame plus the
first seven Is form an EOP. While repeating, the secondaries monitor their incoming line for an EOP. When
an EOP is received, the secondary checks if it has any
response for the controller. If not, it simply continues
repeating. If the secondary has a response, it changes
the seventh EOP one into a zero (the one bit time of
delay allows time for this) and repeats it, forming a flag
for the down-loop stations. After this flag is transmitted, the secondary terminates its repeater function and
~nserts its response frame (with multiple preceding flags
If necessary). After the closing flag of the response, the
secondary re-enters its repeater function, repeating the
up-loop controller Is. Notice that the final zero of the
response's closing flag plus the repeated Is from the
controller form a new EOP for the next down-loop sec?ndary. This new EOP allows the next secondary t'o
Insert a response if it desires. This gives each secondary
a chance to respond.
1. LOOP
OSCILLATOR
OR
DIVIDER
RxD
RxC
TxC
8273
TxD
8273
LOOP
TxD I--+--I--.! RxD
LOOP
TERMINAL
TERMINAL
TxC
RxC
DPLL
611001-30
Figure 36. SOLe Loop Application
A quick review of loop protocol is appropriate. All
communication on the loop is controlled by the loop
controller. When the controller wishes to allow the secondaries to transmit, it sends a polling frame (the control field contains a poll code) followed by an EOP
(End-of-Poll) character. The secondaries use the EOP
character to capture the loop and insert a response
frame as will be discussed shortly.
The secondaries normally operate in the repeater mode,
retransmitting received data with one bit time of delay.
All. received frames are repeated. The secondary uses
the orie bit time of delay to capture the loop.
When the loop is idle (no frames), the controller transmits continuous flag characters. This keeps transitions
on the loop for the sake of down-loop phase locked
loops. When the controller has a non-polling frame to
transmit, it simply transmits the frame and continues to
send flags. The non-polling frame is then repeated
around the loop and the controller receives it to signify
a complete traversal of the loop. At the particular secondary addressed by the frame, the data is transferred
to memory while being repeated. Other secondaries
simply repeat it.
Back at the controller, after the polling frame has been
transmitted and the continuous Is started, the controller waits until it receives an EOP. Receiving an EOP
signifies to the controller that the original frame has
propagated around the loop followed by any responses
Inserted by the secondaries. At this point, the controller
may either send flags to idle the loop or transmit the
next frame. Let's assume that the loop is implemented
completely with the 8273s and describe the command
flows for a typical controller and secondary.
The loop controller is initialized with commands which
specify that the NRZI, Preframe Sync, Flag Stream,
and EOP Interrupt modes are set. Thus, the controller
encodes and decodes all data using NRZI format. Preframe Sync mode specifies that all transmitted frames
be prefaced with 16 line transitions. This ensures that
the minimum of 12 transitions needed by the DPLL to
lock after an all Is line has occurred by the time the
secondary sees a frame's opening flag. Setting the Flag
~tream mode starts the transmitter sending flags which
Idles the loop. And the EOP Interrupt mode specifies
that the controller processor will be interrupted whenever the active receiver sees an EOP, indicating the
completion of a poll cycle.
When the controller wishes to transmit a non-polling
frame, it simply executes a Frame Transmit command.
Since the Flag Stream mode is set, no EOP is formed
after the closing flag. When a polling frame is to be
transmitted, a General Receive command is executed
first. This enables the receiver and allows reception of
all incoming frames; namely, the original polling frame
plus any response frames inserted by the secondaries.
After the General Receive command, the frame is
transmitted with a Frame Transmit command. When
the frame is complete, a transmitter interrupt is gener-
2-319
Ap·36
ated. The loop controller processor uses this interrupt
to reset Flag Stream .mode. This causes the transmitter
to start sending all Is. An EOP is formed by the last
. flag and the first 7 1s. This completes the loop controller transmit sequence.
At any time following the start of the polling frame
transmission the loop controller receiver will start receiving frames. (The exact time difference depends, of
course, on the number of down-loop secondaries due to
each inserting one bit time of delay.) The first receiv,ed
frame is simply the original polling frame. However,
any additional frames are those inserted by the secondaries. The loop controller processor knows all frames
have been received when it sees an EOP Interrupt. This
interrupt is generated by the 8273 since the EOP Interrupt mode was set during initialization. At this point,
the transmitter may be commanded either to enter Flag
Stream mode, idling the loop, or to transmit the next
frame. A flowchart of this sequence is shown in Figure
37.
o
The secondaries are initialized with the NRZI and One
Bit Delay modes set. This puts the 8273 into the repeat.
er mode with the transmitter repeating the received
data with one bit time of delay. Since a loop station
cannot transmit until it sees an EOP character, any
transmit command is queued until an EOP.is received.
Thus whenever the secondary wishes to transmit a response, a Loop Transmit command is issued. The 8273
then waits until it receives an EOP. At this point, the
receiver changes the EOP into a flag, repeats it, resets
One Bit Delay mode stopping the repeater function,
and sets the transmitter into Flag Stream mode. This
captures the loop. The transmitter now inserts its mes~
sage. At the closing flag, Flag Stream mode is reset, and
One Bit Delay mode is set, returning the 8273 to re.peater function and forming an EOP for the next downloop station. These actions happen automatically after a
Loop Transmit command is issued.
When the secondary wants its receiver enabled, a Selective Loop Receive command is issued. The receiver
then looks for a frame having a match in the Address
.field. Once such a frame is received, repeated, and
transferred to memory, the secondary's processor is interrupted with the appropriate Match interrupt result
and the 8273 continues with the repeater funqtion until
an EOP is received, at which point the loop is captured
as above. The processor should use the interrupt to determine if it has a message for the controller. If it does,
it simply issues a Loop Transmit command and things
progress as above. If the processor has no message, the
software must reset the Flag Stream mode bit in the
Operating Mode register. This will inhibit the 8273
from capturing the loop at the EOP; (The match frame
and the EOP may be separated in tfme by ·several
frames depending on how many \Ip-loop·stationsinserted messages of their own.) If the timing is such that the
receiver has already captured the loop when the Flag
Stream mode bit is reset, the mode is exited on a flag
boundary and the frame just appears to have extra closing flags before the EOP. Notice that the 8273 hand~es
the queuing of the transmit commands and the setting
and resetting of the mode bits automatically. Figure 38
illustrates the major p6ints of the secondary command
sequence.
DENOTES COMMAND
c::) DENOTES INTERRUPT CO.DE
611001-31
Figure 37. Loop Controller Flowchart
2-320
AP-36
It is hopefully evident from the above discussion that
the 8273 offers a very simple and easy to implement
solution for designing loop stations whether they are
controllers or down-loop secondaries.
INITIALIZE SET NAZI. ONE
81T DELAY MODES
Ra0l------~-----_UP·LOOP
DATA
8273
TaO
PORT
1---+'----1",
DOWN·LOOP DATA
1----4--r._~
611001-33
Figure 39. Loop Interface
APPLICATION EXAMPLE
o
DENOTES COMMANDS
C ) DENOTES INTERRUPT CODES
611001-32
Figure 38. Loop Secondary Flowchart
When an off-line secondary wishes to come on-line, it
must do so in a manner which does not disturb data on
the loop. Figure 39 shows a typical hardware interface.
The line labeled Port could be one of the 8273 Port B
outputs and is assumed to be high (I) initially. Thus uploop data is simply passed down-loop with no delay;
however, the receiver may still monitor data on the
loop. To come on-line, the secondary is initialized with
only the EOP Interrupt mode set. The up-loop data is
then monitored until an EOP occurs. At this point, the
secondary's CPU is interrupted with an EOP interrupt.
This signals the CPU to set One Bit Delay mode in the
8273 and then to set Port low (active). These actions
switch the secondary's one bit delay into the loop. Since
after the EOP only Is are traversing the loop, no loop
disturbance occurs. The secondary now waits for the
next EOP, captures the loop, and inserts a "new online" message. This signals the controller that a new
secondary exists and must be acknowledged. After the
secondary receives its acknowledgement, the normal
command flow is used.
2-321
This section describes the hardware and software of the
8273/8085 system used to venfy th~ 8273 implementation of SDLC on an actual IBM SDLC Link. This IBM
link was gratefully volunteered by Raytheon Data Systems in Norwood, Mass. and I wish to thank them for
their generous cooperation. The IBM system consisted.
of a 370 Mainframe, a 3705 Communications Processor, and a 3271 Terminal Controller. A Comlink II
Modem supplied the modem interface and all communications took place at 4800 baud. In addition to observing correct responses, a Spectron D60lB Datascope
was used to verify the data exchanges. A block diagram
of the system is shown in Figure 40. The actual verification was accomplished by the 8273 system receiving
and responding to polls from the 3705. This method
was used on both point-to-point and multi-point configurations. No attempt was made to implement any higher protocol software over that of the poll and poll
responses since such software would not affect the verification of the 8273 implementation. As testimony to
the ease of use of the 8273, the system worked on the
first try.
370
MAINFRAME
3705
COMM
PROCESSOR
611001-34
Figure 40. Raytheon Block Diagram
An SDK-85 (System Design Kit) was used as the core
8085 system. This system provides up to 4K bytes of
ROM/EPROM, 512 bytes of RAM, 76 1/0 pins, plus
Ap·36
two timers as provided in two 8755 Combination
EPROM/I/O devices and two 8155 Combination
RAM/I/O/Timer devices. In addition, 5. interrupt inputs are supplied on the 8085. The address, data,and
control buses are buffered by the 8212 and 8216 latches
and bidirectional bus drivers. Although it was not used
in this application, an 8279 Display Driver/Keyboard
Encoder is iIicluded to interface the on-board display
and keyboard. A block diagram of the SDK-85 is
shown in Figure 41. The 8273 and associated circuitry
was constructed on the ample wire-wrap area provided
for the user.
The example 8237/8085 system is interrupt-driven and
uses DMA for all data transfers supervised by an 8257
DMA Controller. A 2400 baud asynchronous line, implemented with an 8251A USART, provides communication between the software and the user. 8253 Programmable Interval Timer is used to supply the baud
rate clocks for the 8251A and 8273. (The 8273 baud
rate clocks were used only during initial system debug.
In actual operation, the modem supplied these clocks
via the RS-232 interface.) Two 2142 lK x 4 RAMs
provided 512 bytes of transmitter and 512 bytes of receiver buffer memory. (Command and result buffers,
plus miscellaneous variables are stored in the 8155s.)
The RS-232 interface utilized MC1488 and MC1489
RS-232 drivers and receivers. The schematic of the system is shown in Figure 42:'
One detail to note is the DMA. and interrupt structure
of the transmit and receive channels. In both cases, the
receiver is always given the higher priority (8257 DMA
channel 0 has priority over the remaining channels and
the 8085 RST 7.5 interrupt input has priority over the
RST 6.5 input.) Although the choice is arbitrary, this
technique minimizes the chance that received data
could be lost due to other processor or DMA commitments.
Also note that only one 8205 Decoder is used for both
peripheral and memory Chip Select. This was done to
eliminate separate memory and I/O decoders since it
was known beforehand that neither address space
would be completely filled.
The 4 MHz crystal and 8224 Clock Generator were
used only to verify that the 8273 operates correctly at
that maximum spec speed. In a normal system, the
3.072 MHz clock from the 8085 would be sufficient.
(This fact was verified during initial checkout.)
2-322
CPU
I
I
I
I
I
I
ADDAE$S
HOMIIO (8355l
DECODER
EPROMIIO (8755)
RAM/tOlCOUNTER
KEYBOARD DISPLAY
I
I
I
I
I
I
I
I
I
~
I
rv
"
o
o
~
en
I\)
c.:J
~
S1.
o·
~
iNTERRUPT
INPUTS
8
01 II
.
D~
III
n
~
o
I
....
!!.
0"
,::1-
VECT
INTA
SINGLE
GO
STEP
SUBST
MEM
EXAM
NEXT
EXEC
REG
C
D
• •
E
F
A
B
H
L
<
• •
0
1
SPH $PL PCH
2
~L
3
I
I
I
I
I
I
I
I
I
I
:
I
I
.......
~
,,,,
/~,
5DK..a5 KEYBOARD LAYOUT
c
~
FIELD
RESET
iii
c.:J
FIELD
CI. C, ,::, ,::,
I
I
I
I
I
I
i
;
DATA
:~'''''"
I
l
FOR BUS EXPANSION
ADDRESS
/'
DATAl
I
I
I
I
I
I
I
0~D
7- .,;--,
IDLINES
rD~-,
.-~
.... Ii l
8355
:<
/
L=\
I
I
I
I
I
I
I
I
I
I
I
I
I
8279
.J
I
I
I
I
I
(r
I
I
Ji l ....
, ItOOE FOR RX CHfN£I.
ElRLE BOTH TX AN> RX CIflNI£I.S-EXT. NIt TX STIJ'
DISABLE TX IlII'I CIflNNEL, RX STILL ON
TER"INRL CtulT AN> IIOOE FOR TX CHfN£l.
I
611001-46
2·330
intJ
AP-36
8889
8889
8888
eess
eetE
8827
9882
961F
W8
97SE
9SBB
95EB
96C7
29C9
9993
9998
2999
2828
999D
999A
29D4
29CE
2919
2913
281!8
9993
9911
9973
9911
2915
2916
2927
118
119
128
121
122
123
124
125
126
127
128
129
138
131
132
; 8251A EUTES
;
CNTLSl EQU
99H
.: CONTROL WORD REGISTER
STAT51 EQU
8911
; STATUS REGISTER
11(1)51 ElIU
8811
; TX DATA REGISTER
; RX DATA REGISTER
0051 EQU
88H
1'1)£51 EQU
16)(, 2 STOP, I«) PfIIITV
8CEH
; CCiMi), ENAIILE TX&RX
Cll)51 EQU
27H
EQIJ
92H
; RXROY BIT
ROY
,
; IOIITOR SUBROUTU£ EQUATES
,
GETCH EQIJ
; GET CHR FRO!! I - Cl£CKS FOR tIR«lE IN RESllT POINTERS.. USART STATUS.
243,
OR POLL STATUS
611001-48
2-332
intJ
AP-36
il857 CDEB85
985A 3A1528
Il85D 4F
il85E CDFB85
08612AB29
0S64 7D
9865 2A1e29
9968 eo
8869 C2391lA
086C 0089
986E E692
9879 C27D9S
9873 3A1629
9876 A7
9877 C24C99
997A C36198
987D CD1F96
9989 CDFB85
9983 79
9984 FE52
9886 CAAF98
9889 FE53
9888 CII)798
988E FE47
9899 CAFF98
9893 FE54
8895 CR9E99
9899 FE41
989A CA2299
989DFESA
889F CA3199
99A2 FEBl
98A4 CA9899
98A7 SE3F
99A9 CDFB85
98AC C35798
98AF
9882
9985
9986
9988
9889
988D
esr9
88C2
98C5
88C7
98CR
98CC
98CF
9801
CD1F96
CDFil85
79
FE4F
CA5D99
FE53
CA6789
FE44
CA7199
FE59
Cf1)999
FE52
CA9998
FE42
CA7B99
244 ;
245 CItlREC, CAlL
CALF
246
LOA
PRI1PT
C,A
247
I10V
248
CALL
ECHO
249 LOOPlT LHlD
CNADR
A, L
.u.'
258
251
LIt..D
LDADR
252
CI1P
L
253
JNZ
DISPY
259
IN
STAT51
ANI
ROY
269
261
JNZ
GETCItD
262
LOA
POLIN
A
263
ANA
264
JNZ
TXPOL
265
JIf'
LOOPIT
266 ,
267 ;
269 ,CmtAND RECOGNIZER RDUTII£
269 ,
279 ,
271 GETCIID CALL
GETCH
272
CALL
ECHO
ftc
273
ItOI/
274
CPI
'R'
275
JZ
RDIIH
'5'
276
CPI
277
JZ
5DWH
CPI
'G'
278
J;:
279
GOWN
'T'
289
CPI
291
JZ
TOWN
282
CPI
'A'
283
JZ
flOWN
CPI
284
'Z'
285
JZ
CItODE
298
CPI
CNTLC
291
JZ
ItONTOR
C,
'?'
292 ILLEG MYI
293
CALL
ECHO
294
JIf'
CllDPEC
295
296 RDWN
GETCH
CAlL
297
CAlL
ECHO
A,C
.u.'
298
299
CPI
'0'
ROCI()
399
JZ
'5'
391
CPI
392
JZ
R500
393
CPI
'0'
ROCI()
394
JZ
'P'
CPI
395
RPOO
JZ
396
CPI
'R'
397
START
JZ
398
CPI
'B'
399
319
JZ
R800
,DISPLAY CR
,GET CtmHT PRlWT CIt!
,11OYE TO C
,DISPLAY IT
,GET ClJNS(tE POINTER
,SAVE POINTER L58
,GET LIlfI) POINTER
,SIft L58?
,NO, RESI1.TS I£ED DISPLAYING
,YES, Cl£CI( I
,R?
,START OYER
,B?
,RB
COIIIIAII)
611001-49
2-333
inter
Ap·36
8804 C3A788
1l807 C01F96
Il80A CDF885
88()~ 711
880£ FE4f
98E8 CfIA689
118E3 Fro
118E5 CIIl889
118E8 FE52
II8EA CABA89
II8EO FE58
Il8EF CAE289
88F2 FE42
88F4 CII8S89
88F7 FE4C
88F9 C118FB9
88FC ClA788
88FF C01F96
0982 CDF8B5
0995 78
8986 FE52
!1988 CAC489
898B C3A788
898£ C01F96
89U CDF885
8914711
8915 FE46
8917 CAEC89
891A FE4C
891C CII9989
891F C3A788
8922
8925
8928
8929
892B
892E
C01F96
C~885
78
FE46
CACE89
C3R788
8931 F3
8932 3A1528
8935 FE2D
8937 C24389
893A 3E2B
993C 321528
893F FB
8948 C35788
8943 3E2D
8945 321528
8948 FB
8949C35788
3U
312
313 SOlIN'
314
315
316
317
318
319
329
321
322
323
324
325
326
327
329
329
338 1lDIIH.
331
332
m
334
335
336
337 TOlIN.
338
339
348
341
342
343
344
345
346 ADIIN
347
348
349
358
351
352 ,
353 ; RESET
354 ,
355 CIlJI)E'
356
357
358
359
368
365
366
367 ~:
368
369
378
371 ;
372 ;
JIf'
ILLEG
,ILLEIrL TRY AGAIN
CALL
CALL
IlOl'
CPI
JZ
CPI
JZ
CPI
JZ
CPI
JZ
CPI
JZ
CPI
JZ
JPf'
GETCIi
ECt«)
,GET NEXT CJI!
,Eoo IT
,5£TI.f FtR CIIMIE
;D?
'SO COIIfH)
is?
,SS ClJlRt)
,/l?
,51! COIIfH)
,P?
,sp ClJIRt)
,B?
,58 COIWN)
;L?
,SL COIIfH)
; ILlEGAL, TRY AGAIN
A,S
'0'
SOCII)
'S'
SSCII)
'R'
SfICII)
'P' ,
SPell) .
'B'
SBCII)
'L'
SLCII)
ILLES
,GET NEXT CIiR
,ECIiO IT
,5£TI.f FOR CIIMIE,
;R'?
,GR COIIfH)
,ILLEGAL, TRY AGAIN
CALL
CALL
IlOl'
CPI
JZ
JIf>
GETCIi
Eet«)
A,B
'R'
CALL
CALL
HOY
CPI
JZ
CPI
JZ
JIf>
GETCIi
ECIiO
A,B
'F'
TFCII)
'L'
TLCII)
ILLES
,TF ClJIRt)
,L?
; TL COI!IIfH)
; ILLEGAL, TRY AGAIN
CALL
CALL
GETCIi
Eoo
A,B
'F'
AFCII)
ILLES
,GET NEXT CJI!
,ECIiO IT
,SETUP FOR COIf'ARE
,F'
; AI' COIIIIN)
,ILLEGAL, TRY AGAIN
IWY
CPI
JZ
JPf'
GRell)
ILLEG
,GET NEXT CJI!
,ECIiO IT
,SETUP FOR CIJI'ARE
iF?
POLL IIOOE RESPONSE - CHRI«JE PROIf'T CIiR AS IPI)lCATOR
DI
LDA
CPI
PRlf'T
JHZ
S~
ItVI
STA
EI
JIf>
PlYI
STA
EI
JI'IP
A, '+'
PRIf'T
'-'
CI'IDREC
R, '-'
PRIf'T
Clll)R£C
; DISABLE INTERRUPTS
,GET CURRENT PROIf'T
,NORIR. ~?
,NO, CIIfHlE IT.
,NEW PROIf'T
,STORE tEW PRaWT
,ENABLE INTERRUPTS
;RETIJlIj TO LOOP
,tEW PRm'T CIiR
,STORE IT
; ENABL£ INTERRUPTS
,RE11JRH TO LOOP
611001-50
2-334
AP-36
994C 3£99
894E
8951
8954
8955
8957
895A
321628
216188
E5
8684
212829
C3FF8A
8950
895F
8961
8964
11681
8E51
CDE58A
C35788
8967
8969
8968
896E
8681
8E68
COE58A
C35788
8971 8688
8EC5
8975 COE58A
8978 C357118
89n
8978
8970
897F
8982
8681
8E64
COE58A
C35788
9985 11681
89878EA4
8989 CDE58A
898C C35788
898f
8991
8993
8996
8684
8EC2
CDE58A
C35788
373 ,TRfINSI11 T ANSWER TO POLL SETIJ'
374382 TXI'll. "YI
A,aeH
,CLEAR I'll.L 1~ICATtR
384
STA
POLIN
, lHOlCATtR fI)R
385
LXI
H, LOOPlT
; SETUP STACI( FtR OJIIHI MPUT
386
PUSH
H
; PUT RETlRH TO Cll)R£C IJI STACK
B,84H
387
~l
,G£T • OF PfIRfI£TERS Rm>Y
H, CIIl8F1
388
LXI
; POINT TO SPECIAL BlFFER
C(ftf2
389
JItP
,JltIP TO C~ IXJTPUTER
398 ,
391 ,
392 ;
393 ,COItItfINI) IIlPLEllEHTlNG RIXJTlHES
394 ;
395 ,
396 ; RO - RESET OPERATING PIOO€
397 ,
,. OF PARAl£TERS
398 ROCI1D ~l
B,8tH
C,5tH
399
~l
•CCfIIIIH)
488
CALL
COllI
•G£T PARAl£TERS RHO ISSl( CCfIIIIH)
,G£T
NEXT CCfIIIIH)
481
JItP
CItlREC
482 ;
483 ,RS - RESET SERIAL 1/0 I«lD£ CI»IIfii)
4&4 ;
B,8tH
,I OF PARftl£TERS
485 R500 ~l
;CatIfN)
486,
C,68H
~l
C(JIII
,G£T PARfI£TERS RHO ISSl( catIfN)
487
CALL
488
J~
CIIlREC
· GET NEXT OJIIHI
489 ,
418 ,RO - RECElYER DISABLE COIIPIfH)
4U,
,. OF PARfI£TERS
B,88H
412 ROOO ~l
, COIIIRI)
C,8C5H
413
~I
C(JIII
.1551..( C!»IIIAHO
414
CALL
415
CIIlREC
,G£T NEXT OJIIHI
JItP
416 ,
417 ,RB - RESET IJIE BIT DELAY catIfN)
418 ,
,. OF PfIRfI£TERS
a,91H
419 RBC!1D' ~l
, COIIIAHO
C,64H
428
"YI
421
,G£T PARfl£TER·RHO ISSl( CCfIIIIH)
CALL
COllI
422
; G£T NEXT catIfN)
JItP
OOREC
423 ,
424 ; 58 - SET ONE BIT DELAY COItIAN>
425,
,. OF PARfI£TERS
B,81H
426 5BOO ~l
C,8A4H
427
; COIIIAHO
~l
,G£T PARfI£TER RHO 1551..( catIfN)
428
CALL
COllI
,G£T NEXT COIIIAHO
429
JHP
OOREC
438 ,
431 ,SL - SELECTIYE LOOP RECEIYE COII!ANO
432 ;
,. OF PARfIIETERES
a,84H
433 SLOO ~l
C,8C2H
; COIIIAHO
434
~l
; GET PfIRfI£TER5 RHO ISSl( OJIIHI
435
CALL
COllI
,G£T NEXT COIIIAHO
436
J~
OOREC
437 ,
438 ; TL - TRAHSIIIT LOOP C!J1IIlHI)
2-335
611001-51
inter
AP-36
439 '
8999
899C
999£
89R8
89A3
218829
8682
36CR
219228
C3F6i!9
i!9A6
89A8
09AA
89AO
8681
8E91
CDE58A
C35788
8988
i!992
0984
8987
8681
8EA8
CDE58A
C35788
89BR
I!9BC
89BE
09C1
8684
8EC1
CDE58A
C35788
H, CItlIlLF
,SET COItIfN) BlFFER POINTER
TL~' LXI
g, Il2H
,LOllI) PfIRfIItETER CruNTER
441
KYI
,LOllI) CMRf) INTO BlFFER
~YI
442
",1iC/IH
H, CIIlBtIF+2
,POINT AT FI)II AN> CNTl POSITI(16
443
LXI
,FINISI! (FF ctWIfN) IN TF ROOTitE
444
JIfP
TFC~
445,
446 ; SO - SET OPERATING I'IOOE COIIIBI)
447 ;
B,8lH
+18 SOCIll.l' IIYI
•• OF PARAI£fERS
;CMIH)
C,9lH
449
IIYI
; IE PfRI1ETER AN> 1SSl( mtIIfI)
CALL
458
C~
,IE NEXT COItRf)
451
JIfP
C~C
452 ,
453 ; 55 - SET SERiAl 1/0 COllIN)
454 ;
;. OF PARAlETERS
B,81H
455 SS~ IIYI
C, IlA8H
456
IIYI
• COItIfN)
, IE PfRI1ETER AN> 1551£ COllIN)
457
CAll
C~
,IE tEXT COllIN)
458
JIfP
~C
459 ;
468 ,~ - SELECTIYE RECEIVE COllIN)
461 ;
,. OF PARAIETERS
B,84H
462 ~I'ID "YI
.C(JMI)
C,0ClH
IIYI
463
, IE PfM£TERS AN> ISSl( COllIN)
464
CAll
COIIM
,GET NEXT CQfM)
465
JIfP
CItlREC
+18
466 ;
i!9C4
89C6
89C0
i!9C8
8682
8ECB
CDE58A
C35788
i!9CE
I!9D9
8902
9!lO5
8680
8ECC
CDE58A
C35788
9!lOB
i!9OA
9!lOC
890F
8681
8E63
CDE58A
C35798
09E2
89E4
09E6
09E9
8681
8EA3
CDE5BR
C3578B
467 ; IJ! - GENERAl. RECEIVE COllIN)
468 ;
8,Q2H
469 1JIC1II.l: IIYI
C,0C8H
478
IIYI
471
CAll
C~
472
JIfP
~C
473 ,
474 ,AF - R80RT FRfII£ CIJIMI)
475 ,
B,1l8II
476 AF~. IIYI
C,8CCH
477
IIYI
478
COM
CAlI.
479
JIfP
CI10REC
488 ,
481 ,RP - RESET PORT COI1IflNI)
482 ,
483 RPCI1I) IIYI
B.8lH
C,63H
4B4
"VI
4B5
COIIM
CALL
4B6
JIfP
CIIllREC
487.
488 ,5P - SET PORT COIIM)
; NO PARAI£fERS
, COItRf)
, ISSUE CMIH)
• GET NEXT COllIN)
; NO PfM£TERS
; COItIfN)
,I5SUE COllIN)
,GET NEXT CMRf)
;. OF PfIRAIETEAS
;~
,IE PfIRfIItETER AN> ISSUE
; IE NEXT COItRf)
COllIN)
4i!9 ;
498
491
492
493
494
495
496
SPCt1D
IIYI
IIYI
CALL
JIfP
·B,.8lH
C,BASH
COM
OOREC
,
, TF - TRfIISIIIT FRfII£
,
,. OF PARAIETERS
; COItIfN)
; IE PfIRfIItETER AN> ISSUE
•IE HEX COllIN)
mtIIfI)
COItRf)
611001-52
2-336
inter
AP-36
89EC
89EF
89F1
89Fl
89F6
89F7
89F8
89FB
89FE
IIA81
218920
8682
l6C8
218228
78
A7
CAe78A
CDA08A
DAA788
21
8A82 85
8118l 77
8A84 ClF~
81187 218888
8A8A 810888
8A8O C5
8A8E CDA08A
8A11 DA1B8A
8A14 77
8A15 2l
8A16 C1
8A178l
8A18 CleoeA
8A1B FE80
8A1D CA248A
8A28 C1
8A21 ClA788
iIA24 C1
8A25 219129
8A28 71
8A29 21
8A2A 78
8A28 8684
8A2D 21368A
8fll8 C5
8fll1 El
BAl2 C5
BAll ClF88A
BAl6 C35788
BA39 1685
8A38 2A1128
8fllE E5
8AlF 7E
8A48
8A42
8A44
8A47
8A4A
8A4I)
E61F
FEBe
DA628A
21C38C
CD928C
E1
8A4E 7E
8A4F COC786
497 TFoo. LXI
H,OOIIU'
,SET ctWfN) BlFFER POINTER
498
!WI
8,eat
,L(8) PARAIETER COONTER
499
!WI
; LOfI) COIIINI) INTO BlFFER
",8C8H
5Il8
LXI
IHII)IIUf+2
,POINT AT ~ fill) CNTl POSITIONS
581 TFOO1' I10Y
A,8
. TEST PARAIETER COOO
582
AIfI
A
·15 IT 8'
58l
•YES, L(8) TX DATA BlFFER
12
TBlR.
5e4
CALL
PARIN
;GETPARII£TER
585
JC
ILLEG
,ILLEGfl. ~ RETIR£D
586
INX
H
, IN: COIMI) BlFFER POINTER
587
OCR
,DEC PARII£TER CIOTER
8
588
ftIlII
; L(8) PARAl£TER INTO CMfIN) BlfFER
",A
5e9
./If'
TFoo1
,GET NEXT PARAl£TER
518
H, TlIBIJF
511 TBlR.' LXI
; LOfI) TX DATA BlfFER POINTER
512
LXI
8,888!IH
,CLEAR Be - BYTE cruITER
513 TBlR.1 PUSH
,SAYE
8YTE COONTER
8
514
CALL
PARIN
,GET DATA. fl.IAS PARII£TER
00CIf(
515
JC
; IIMIE 00 IF ILLEGfl.
516
; L(8) DATA BYTE INTO 8IJ'FER
ftIlII
",A
517
INX
H
,INC 8lFFER POINTER
518
POP
8
; RESTORE BYTE CIOTER
519
INX
8
, IN: BYTE cruITER
,GET
P£XT DATA
528
!lIP
TBlJFLl
521 00CfI(' CPI
CR
; RETm£1) ILLEGfl. ~ CR'
522
J2
,YES, THEN TX BlFFER Fill
T8UFFl
523
POP
8
,RESTORE 8 TO SAVE STfO:
524
ILLEG
; ILLEGfl. C~ .
./If'
525 T8UFFl POP
8
,RESTORE 8YTE COOOER
H, CIll8UF+1
,POINT INTO COIMI) BlfFER
526
LXI
527
ftO~
; STORE BYTE COOO LSS
", C
528
INX
,INC POINTER
H
529
I10Y
; STORE BYTE COOO ftSS
",8
8,84H
518
!WI
,L(8) PARfII£TER ClOT INTO 8
H, TFRET
531
LXI
; GET RETlI1N ~ FOR THIS ROUTII£
,PUSH OI£E
512
PUSH
B
513
XTIIL
; PUT RETLRH ON STACK
534
PUSH
8
,PUSH IT SO OOOOT CAN USE IT
, 15S1£ CIJIIIfH)
515
./If'
OOOUT
,GET P£XT CMfIN)
516 TFRET. JftP
CItOREC
537 '
538 ,
539 ,ROOTlP£ TO DISI'LAV RESULT IN RESUlT 8lFFER III£N L(8) fill) CtJISOLE
548 ,POINTERS ARE DIFFERENT
541 ,
542;
543 DISPY "~I
D,85H
,D IS RESULT CIUTER
544
LlLD
,GET CtJISOLE POINTER
CNADR
,SAYE IT
545
PUSH
H
A,ft
546
ftO~
,GET RESUlT Ie
547
ANI
,L1ftlT TO RESUl.T COOE .
1FH
548
CPI
, TEST IF RX OR TX SOlI!CE
8CH
,CARRY, TI£N AX SOlI!CE.
549
Ie
RXSORC
H, TXIftSG
558 TXSORC LXI
,TX INT I£SSAGE
551
Cfl.L
,DISPLAY IT
T'IIISG
,RESTORE ClJIS(l.£ POINTER
552 DISPY2 POP
H
A,ft
553 DISPY1 I10Y
,GET RESUl.T
,mNERT fill) DISI'LAV
554
Cfl.L
rfIOlIT
611001-53
2-337
inter
AP-36
559
JNZ
C} I I
ECIIO
L
D
DISPY1
IlASC 221129
569
SHlI)
CfR)R
9A5F C35798
561
JIf>
OOREC
562,
563,
564 ,RECEIYER SOORCE - DISPlAY RESIA. TS
8A52
0fI54
1lAS7
1lAS8
9fI59
eE29
CDF91i5
2C
15
C24E9A
555
5S6
557
/WI
Cfl.L
558
OCR
I~
;SP~
; DISPlAY IT
, II«: BtFFEl! POINTER
,DEC RESIA.T COOflER
,f«)T DOlE
,UPDATE ctJt5OI.E"" POINTER
,REMN TO LIU'
All)
RECEVIE BtFFEl! mfTENTS
565 ,
566;
81162 21889C
8A65 come
8A68 E1
81169 7E
8A6A COC786
8A6O 9E29
9A6F
9A72
9A73
9A74
9A7S
9A77
9A7A
COF885
2C
15
7ft
FE94
CAA29A
FE93
567 RXSORC: LXI
H,RXI~
569
569
TYIISG
H
A,"
IfWT
578 RXS1:
571
572
POP
IKlY
CALl
IIYI
573
CALl
574
575
576
I~
577
578
579
9A7C CAA79A
see
9A7F A7
S81 RXS2"
IlA8Il C2699A
9A83221329
S82
9A86 CDE89S
9A89 219982
9R8C C1
9fI8() 7B
9A8E 81
CALl
S83
S84
S8S
S86
S97 RXS3"
DCA
/lOY
Cl'1
JZ
Cl'1
JZ
fIfI
JNZ
SIlO
CALl
LXI
see
POP
/lOY
ORA
9A8F CR5798
S89
JZ
9A92
9A93
9A94
9A97
9A99
9A9C
S99
591
592
593
594
/lOY
PUSH
Cfl.L
IIY!
CALL
POP
7E
C5
CDC786
eE2Il
COF885
C1
9A9D 98
9A9E 23
9A9F C3809A
9AR2 4E
9AA3 C5
9AA4 C37F9A
9AA7 C1
9AAB 46
9AA9 C5
9AAR C37F9A
59S
596
597
S99
599
698 R9PT
691
692
683
684 RifT:
695
ocx
INX
JIfI
~y
PUSH
JIfI
POP
lIlY
686
PUSH
687
698
689
619
JIfI
e,'
I
'
ECIIO
L
D
A,D
94H
R9PT
9lH
RifT
R
RXS1
CfR)R
CRLF
H,RXIllf
8
"A,S
C
CIIlREC
A,"
8
IfWT
,RX INT I£SSRGE fI)R
; OISl'lAY I£SSRGE
; RES11JiE ctJt5OI.E POINTER
; RETRIE'IE RESIA.T FR(JI BtFFEl!
; caNERT All) DISPlAY IT
; ASCII 51'
;DISl'LAY IT
,II«: CONSOLE POINTER
; DEC RESIA.T C5
8AD6
8AD7
8AD8
8AD9
8ADC
8AOO
8ADE
8ADF
8AEe
8AE1
8AE2
8AE3
C5
1681
CD1FI!6
CDFBB5
79
FE28
C2E88A
CD1F1!6
CDF885
CD5E87
D2E88A
CDBB85
4F
7A
A7
CAOC8A
15
AF
79
17
17
17
17
SF
C38C8A
79
B3
C1
C9
79
37
C1
C9
613 ;
614 PIlRIN'
615
616
617
619
619
628
621 PIlRIN3.
622
623
624
625
626
627
628
629
638
631
632
633
PUSH
"VI
CA..L
CAlL
/tOY
CPI
B
D,91H
GETCH
ECI«)
A,C
JHZ
PIlRlNi
GETCH
EOO
I/fl.OO
PIlRlNi
CAll
CAlL
CA..L
.oc
CAll
/tOY
/tOY
ANA
J2
OCR
~
/tOY
RAl.
CHYIIN
C,A
A,D
A
PARIN2
D
A
A.C
634
RAl
635
RAt.
636
RAl
637
/tOY
E.R
638
~
PIlRIN3
fl,C
639 PARIN2. IIOY
648
ORA
E
641
POP
B
642
RET
A,C
643 PARIN1: /tOY
644
5TC
POP
645
646
RET
647,
648 '
649 ,JlJI' HERE IF BUFFER FlJl.L
,5A'IE BC
'SET Cft! ro.JlTER
,GET Cft!
,EOO IT
,PUT CfR IN A
;SP"
; 1«), lUEGfl., TRY AGAIN
,GET CfR OF PARMTER
,ECt«l IT
,15 IT A I/fl.ID CIF'
.' 1«), TRY AGRIN
,C3NERT IT TO HEX
; 5A'IE IT IN C
,GET Cft! ro.JlTER
015 IT Ir'
; YEs, OM WIlli 11115 PIlRRI£TER
,DEC CfR COOOER
; CLEAR CII1RY
; RECIMR 1ST CfR
,I1OTATE lEFT 4 PlACES
,SAVE IT IN E
,GET NEXT eft!
,2I«lCfRINA
,COIIBlNE BOlli CfR5
;RESTORE BC
,RETURN TO CA..LING ~
,PUT ILLEGAl. CfR IN A
,SET CII1RY AS lUEGfl. STATUS
,RESTORE BC
,RETURN TO CAlliNG PROGRfII
6S8 ,
8AE4 CF
8AE5
8AEB
8AE9
8AEA
218829
C5
71
78
8AEB A7
8AEC CAFB8A
IIAEF
COfI)8A
8AF2 DAA78Il
8AF5 23
1lAF6115
1lAF7 77
1lAF8 C3EIIIlA
IlAFB 218829
8AFE C1
651BUFFUL DB
ecFH
652 ,
653 ,
654 ,CIlIIftI) DISPATCHER
655 ,
656 ,
H, CIIDBUF
657 CMI
LXI
6S8
B
PUSH
659
/tOY
ItC
A,S
66B COIIU. /tOY
661
ANA
A
J2
662
CItlOOT
PIlRIN
663
CAll
664
JC
IllEG
H
INX
665
666
OCR
B
667
/tOY
itA
J~
668
COIIU.
H, CIIDBUF
669 CItlOOT: LXI
678
POP
B
,EXIT TO
~IT(J!
; SET POINTER
,SAVE BC
,LOAD ClIttH) INTO BlFFER
; CNECI< PIlRRI£TER cruITER
,IS IT 8?
.' YES, GO ISSlE COIfH)
;GET ~TER
,IllEGAl CfR REMI£D
, INC BlFFER POINTER
,DEC PIlRfIIETER ro.JlTER
,PARfI£TER TO BU'FER
,GET NEXT PIlRfIIETER
; REI'OINT POINTER
; RESTORE PIlRII£1ER ClUff
2-339
611001-55
inter
AP-36
9fIFf D898
Il881 87
8882 Dfl'FeR
eB85
l1li86
91188
8889
8II8R
eses
9II8C
Il8IlO
I!88f
8811
8814
8815
1!817
7E
D398
18
A7
C8
23
85
D898
E6Z8
C28D8B
7E
D391
C38SIl8
881R 3E62
881C D3R8
I!81E 818882
81121 79
8822 D3R8
8824 18
8825 D3R8
882781FF41
882R 79
882B D3A1
882D 18
882E D3R1
8838 3E63
8832 D3A8
8834 C9
8835 3E61
8837 D3A8
8839 818888
883C 79
883D D3R2
883F 18
8848 D3R2
884281FF81
11845 79
1!846 D3R3
8848 18
8849 D3R3
884B 3E63
884D D3R8
884F C9
,1l£RI) 8273 STATUS
STAm
671 CCJ1112 IN
,ROTATE CBS\' INTO CARRY
672
RlC
,WRlT F~ 01(
67l
JC
COIIl2
,01(, IIO'fE COllIN) INTO A
674
IIOY
It"
,OOTI'UT CIJIRI)
675
OUT
COIIIm
A,B
,GET PfIlRI£TER CMT
676 P1Il1' !lOY
;IS lT 8?
AHA
677
A
,YES, J)(J£, RETURN
618
RZ
, INC CIJIRI) BlIFFER POINTER
679
INX
H
,DEC PfIlRI£TER CMT
DC~
68e
B
,REAl) STATUS
681 PRR2' IN
STRm
,IS CPSF BIT SET?
ANI
CPSF
682
,WRlT TIL ITS 8
683
1HZ
PRR2
,01(, GET PfIlfII£TER ~ BlfFER
!lOY
684
A,"
,OOTI'UT PfIlAI£TER
685
ruT
~3
,GET
t£lIT PfIlfIETER
JIf'
PIIll
686
687,
68e ,
689 ,I NITI AL IZE AND ENRIII.E RX DIfI CHAIf£\.
698 ,
691,
A,DRDM
,DISRBLE RX DIll CIRf£L
692 RXDIIA. ~I
OUT
: 8257 !lODE ~T
693
IIODE57
B, RlQ3IS
,RX BlfFER STIllT fIlDRESS
694
LXI
!lOy
A,C
,RX BlfFER LS8
695
CH8A)R
.CH8 fI)R ~T
696
OUT
,RX BlIFFER IIS8
697
!lOY
ItS
.CH8 fI)R ~T
698
OUT
CH9RDR
B, RXTC
,RX CH TEERIUIfIL CMT
699
LXI
A,C
,RX ~INRL COOHT LSB
788
!lOY
,CH8 TC ~
7e1
OUT
CH8TC
,RX ~1IR. CMT IIS8
782
!lOY
!l.B
,CH8 TC ~T
183
OUT
CHeTC
,ENRIII.E DIll IOID
!l.EIIlIIA
784
~I
,8257 !lODE ~T
7e5
OUT
IIODE57
,RETURN
786
RET
7e7 ,
788 :
7e9 ,INITIALIZE AND ENABlE TX DIIR CIRf£L
718,
711 ,
A,DTllIft
,DISABLE TX DIll CIRf£l.
712 TXDIfR: ~I
,8257 !lODE PtI!T
713
OUT
IIODE57
,TX BlfFER STIllT fIlDRESS
B, TXBlF
714
LXI
,TX BlIFFER LS8
715
ItC
!lOY
,CNl
fI)R ~T
716
OUT
CH1IIlR
A,B
717
!lOY
TX BlIFFER IIS8
CH1fI)R
CHi fI)R ~T
718
OUT
B, mc
719 TXOIIIlI.: LXI
TX CH ~IIft. CMT
TX ~11ft. CMT LS8
728
!lOY
A.C
CHi TC ~T
ruT
CHiTC
721
722'
TX ~tlft. CMT IIS8
!lOY
ItB
CHiTC
CHi TC PORT
723
ruT
724
~I
Fl.EHIlIIl
EIftll.£ DIll 1m>
725
OUT
IIODE57
8257 !lODE ~T
RET
RETURN
726
727,
728 ,
611001-56
2·340
intJ
AP-36
IICa8
ecae ES
I!C91 FS
9(92 C5
1lCIl3 D5
Ia4 lE62
9C86 D3A8
IlCIl8 lEiS
BCeA 39
IlCIl8 1604
BCIIO 2A1829
BC19 ES
8C11 ES
9C12 45
BC13 2R1328
BC16 94
BC17 78
BCIS BD
BC19 CAE48A
BCIC 15
BC1D C2169C
IlC29 1685
9C22 E1
9C23 DB99
9C25 E698
BC27 CA399C
8C2A DB99
BC2C E692
BC2E CA239C
9C31 0893
BC33 77
BC342C
BC3S 15
BC36 C3239C
BC397A
BC3A A7
BC39 CA4S9C
BClE 3688
9(49 2C
BC4ll5
BC42 C3399C
BC45221828
9C49 3A1528
BC49 FE2D
9C4D CA85IIC
729 'INERRUPT PROCESSING SECTION
i'38 ;
nt
ORG
1lCIl9H
m·
733,
734 ,RECEIVER INTERRIJ'T - RST 7 5
735 ;
i'36 RXI'
PUSH
H
PUSH
PSII
m
PUSH
B
i'38
m
PUSH
D
749
R. DRI>III
"VI
10)£57
741
OUT
742
~I
R.19H
743
51"
D,84H
744
~I
LDfI)R
745
LHLD
746
PUSH
H
747
PUSH
H
B,L
749
lIllY
749
LHLD
CIR>R
759 RXI1
IItt
B
751
lIllY
R.B
CPI'
752
L
12
BUFF\I.
753
7S4
D
OCR
7SS
JNZ
RXI1
D, Il5H
~I
756
757
POP
H
758 RXI2
IN
STAm
759
ANI
RXINT
RXI3
769
12
761
IN
STAm
762
ANI
RXIRA
763
JZ
RXI2
764
IN
RXIR73
II. A
765
lIllY
766
IItt
L
767
OCR
D
769
JPI'
RXI2
R.D
769 RXI3
PlOY
778
ANA
A
771
12
RXI4
m
m
~I
1I.89H
IItt
OCR
L
D
RXI3
LDADR
",",T
774
775
776 RXI4.
SHLD
m
LDA
CPI
JZ
m
m
]PI'
'-'
RXI6
(LOC 3tH)
,SIIYE HL
,SIIYE PSII
,SAYE Be
,SAYE DE
; DISIIlLE RX DIll
; B2S7 10)£ PIJ!T
,RESET RST7 5 FIf
;D IS RESllT C(U(TER
; GET LOll) POINTER
,SIIYE IT
; SIIYE IT ~IN
,SIIYE LSB
,GET CONSIlE POINTER
; BlIf' LOll) POINTER LSB
. GET SET TO TEST
; LlR)=ctJISOI.E?
; YES, BlfFER Fill
;DEC crunER
; NOT DONE, TRY ~IN
,RESET COUNTER
,RESTIJ!E LOll) POINTER
,REfI) STftTUS
, TEST RX INT BIT
,DONE, GO FINISH IJ'
; REfI) STATUS ~IN
; IS RESllT REfI)Y?
; NO, TEST ~IN
; YES, REfI) RESllT
,STORE IN BlfFER
, INC BlfFER POINTER
.' DEC cronER
,GET ~ RESllTS
,GET SET TO TEST
,ALL RESllTS?
,YES, SO FINISH IJ'
,Nfl, LOll) 8 TIL DONE
,BUPI' POINTER
,DEC COUNTER
;GO ~IN
; LFDATE LOll) POINTER
. GET 10)£ INDICATIJ!
,IDIR. IO)£?
,YES, CLEAN IJ' BEFORE RETlI!N
788 ,
781 ,
782 ,
783 ;
POLL 10)£ SO CHEI)(. COHTRI1 8YTE
IF COHTRIl. IS A POLL.. SET IJ' SPECIAL TX
AND RETURN WITH POLL INDICATIJ! NOT 8
rotRI)
IIIFFER
784 ;
BC58 E1
9C51 7E
785
786
POP
PlOY
H
A,"
; GET PREYIru5 LOll) ADR POINTER
,GET Ie BYTE FR~ BlFFER
2-341
611001-57
inter
AP-36
BCS2 E61E
8CS4 C2898C
~7 2C
8C58 2C
8CS92C
IIC5A 56
8CSIl 2C
8CSC 7E
8CSD FE91
BCSF CA6C8C
8C62 FEU
8C64 C2S98C
8C67 1£11
8C69 Cl6EBC
8C6C 1E73
8C6E 212828
8C71 l6C8
BC73 21
BC74 l688
BC7623
BC77 l688
BC79 21
BC7A 72
BC78 21
BC7C n
BC70 lE81
BC7F l2162S
8C82 Cl898C
8C8S E1
8C86 Cl898C
8C89 C01A8B
ecac D1
8C8O
8C8E
8C8F
8C98
BC91
8C92
Cl
Fl
E1
FB
C9
cs
BC93 7E
BC9421
BC9S FEFF
BC97 CAA1BC
BC9fI 4F
BC9B CIlF&85
BC9E C3938C
8CR1 Cl
8CA2 C9
787
78B
789
798
791
ANI
JN2
INl
INl
INR
m
IIOY
793
794
79S
796
797
7ge
INl
IIOY
CPI
J2
CPI
JN2
ttYI
m
888
B81 T1.
882 TXRET·
886
888
889
818
811
JIf'
812
ttYl
LXI
ttYl
INX
PlYI
INX
PI'II
INX
BU
IIOY
814
815
816
817
818
819
828 RXI6·
821
822
II2l RXIS·
824
825
826
827
82S
829
818
831
812
833
834
8lS
836
837
818
POP
mP
CfLl
POP
POP
POP
POP
EI
RET
;
;
; I£SSIlGE TYPER
;
;
TYI!SG: PUSH
rntSG2. lIllY
INX
CPI
839
848
841
842
843 TYI!SG1.
844
INX
NOY
PlYI
STA
mP
12
IIOY
CAll
mP
POP
RET
1EH
RXIS
L
L
L
D,"
L
; LOO8Fl
1t8CSH
H
".88M
H
".88M
H
".0
H
".E
fl.81H
POliN
RXI5
H
RXI5
~
0
B
PSW
H
; GET RDR BYTE
fIIf)
SAYE IT IN 0
•RETURN
• CLEAN IF STRCI( IF IQIR. !OlE
; RETIJRN
; RESET ~ CIIN£I.
• RESTORE REGISTERS
; EIftI.£ INTERRtfTS
;RET\Rl
- ASSIJIES I£SSIIGE STlIHS AT Hl
B
A."
H
IiFFH
TYI!SG1
C,A
EOO
rntSG2
B
SAYE Be
GET ASCII CHR
INC POINTER
STOP?
YES, GET SET FOR EXIT
SET IF FOR DISPI.AY
01SPI.AY CHR
GET NEXT CHR
RESTORE Be
~
845
846
847 SIGHON I£SSIIGE
848
611001-58
2-342
inter
AP-36
OCR3 eo
IICR4 38323733
OCR8 284D4F4E
8CfIC 49544F52
ecse 28285631
0C84 2E31
8CB6 eo
1IC87 FF
IIC88 91>
IIC89 52582849
8C8O 4E54282D
849 SIGH\)j 011
CR, '8273
Pl(JjIT~
Yl 1', CR, IIfFH
85Il
851
852
853
854
855
856
;
.
,
,RECEIYER IHTERRtI'T I£SSfWlES
,
;
R~ltISG 011
CR,'~ INT - ',1IfFH
857
85Il
859
868
,
; TRANSIIITTER IHTERRtI'T I£SSfWlES
8CC1 28
8CC2 FF
OCC3
8CC4
8CC8
8CCC
OCCD
eo
54582849
4E542821)
28
FF
OCCE E5
8CCF F5
0CD8 C5
0CD1D5
9CD23E61
9CD4 D3R8
IICD6 1684
0CD8 2R1828
8CD8 E5
9CDC 45
ecoo 2R132t
aCE884
aCE1 78
8CE2 eo
8CE3 ClE48A
aCE615
8CE7 C2Eeoc
8CEA E1
8CE8 DII92
laD 77
8CEE 2C
8CEF 3688
9CF1 2C
9CF2 3688
9CF42C
9CF53688
9CF7 2C
861
862
863
864
865
866
867
868
869
878
;
mtISG· 011
CR.'~
INT - ',1IfFH
;
,
; TRRNSIIITTER IHTERRtI'T R(lJT11£
;
TXI.
PUSH
H
PUSH
PSN
B
PUSH
PUSH
D
IIYI
fl.DTDIIR
fQ)E57
OOT
D,84H
871
ttYl
LIIJ)
l.DfI)R
872
873
PUSH H
S,L
874
!tOY
LIIJ)
CIR)R
87'S
876 ~11. INR
B
A,S
877
lIlY
878
CII'
L
879
JZ
BlfFI1.
D
888
Del!
881
JN2
~11
H
882
POP
IN
883
mR73
884
lIlY
",A
885
INR
L
IIYI
11.8811
886
887
INR
L
888
IIYI
",8811
889
INR
L
898
ttYl
11.8811
891
INR
L
5RYE II.
SRYE PSN
SRYE 9C
SRYE DE
DISRIllE ~ DIll
8257 IDlE P~T
SET cruITER
GET
UA)
PDINTER
5RYE IT
SRYE lS8 IN S
GET CtWSa.E POINTER
IN: POINTER
GET SET TO TEST
L~?
YES, BlfFER Fl.lL
I«l, TEST I£XT LOCIITlDN
TRY IUIIN
REST~ LDAD POINTER
~ RESllT
STORE 1M BlfFER
lit! POINTER
EXTRA lIESIl.T SPOTS 8
2·343
611001-59
inter
AP-36
eCF6
:;6~e
MVI
INI1
SHLD
892
0CFA 2C
OCFB 221029
0CFE CD?S9B
9Nl1 D1
9002 C1
0093 F1
0094 E1
00B5 Fe
ilOe6 (9
89~
894
899
990
C~LL
POP
POP
POI'
POI'
EI
RET
901
992
ge1
904
995
",09H
L
L(>A[l~
,lfDRTE LOAD POINTER
,~SET DMA CHANNEl.
,PESTOPE DE
,~STOPE Be
,RESTORE PSW
,RESTORE Ii.
,ENABLE INTERRUPTS
, ~ET!JI1N
TXDIIIl
D
B
PSIj
H
ge6 '
997 '
9S2 '
953 '
954
END
PUBLIC SYMBOLS
EXTERNAL SYI'IBOLS
IJSER SYMBOLS
ADWN A 092;:
CMD51 A 892i'
CNT953 A 0e9C
COI1!t A eAE5
A gee0
DE"
ECIfO A 9SFS
ILLEG A 9SAI
P[lCNT2 A 99B6
PAP1 uses
POLIN A 2916
i1f.y
A 9iltI2
RS(MD A 9967
RXI1 A 0C16
RXINT A 0008
RXTC ~ 41FF
SPCMD ~ e9E2
STKSRT A 2OCO
mT73 A 9992
TXBIJF A 8999
TXlNT R 9994
TYMSG A OC9~
AFCI'ID
CHDBFl
CNT15J
eMIl
DEItilDE
ENOCH!(
LDADR
HOESl
PAR2
PRPII'T
RESBUF
~5T65
RXI2
RXIR73
SSCMD
SRCMD
SIj
TFCMD
T~D51
,XIRn
T'r'MSG1
ASSEMBLY (Oi'IPLETE,
A 09CE
A 2020
A 909D
A iIlEA
A 2027
A eA1S
A 2819
A 99CE
A 9B9D
A 2815
A 2099
A 20CE
A OC2J
A 9993
A 9985
A 09IlA
A 994?
A 99EC
A 0088
A 9992
A OCRl
BllFFUL
OOBllF
CNT2S:;
C0IIII2
OISPY
ENDMA
LF
MODESJ
PARIN
RaPT
RE$l7l
RSTi''i
RXB
RXIRA
SDIIN
SSCI'ID
T1
TFCMD1
TXDIfIl
TXIRA
TI'I1SG2
A W4
A 2900
A 0e9E
A 9AFF
A 01[;9
A 806:l
A 990A
A ge9B
A 8fIAI)
A 9AA2
A ge91
R 2004
A9m
A 9992
A 8807
A 0989
A OC6C
A 89F6
A 9935
R 99!l1
A OC93
CHeADR
("DOOT
CNTLSl
Cll'tli'3
DISPYl
IlDWN
LKBFl
i'IODES7
PARIN1
R1PT
ROCPI)
RXBllF
11'~14
RhSl
SIGNON
START
TBUFFL
TFRET
TXDMA1
TXPOL
A 90A0
A 0AFB
A 8989
A ge9\l
A 9A4E
A 9SFF
A 2817
A 00A8
A we
A eAA7
A 895['
A 8288
A 0(45
A 8A69
A I¥..A?
A 9899
A 9A24
A eA3,;
A 9942
A 094C
CHeTe
CllDREC
CNTLC
CPSf
D1SPY2
GETCH
I.KBR2
MONTOR
PftRIN2
RBCI1Ii
RPCI«)
RXD51
R:m
RXS2
$lCI«)
STAT51
TBUFL
TLCHI)
. TXI
TXRET
A 89A1
A 8857
A 8983
A 0029
A !lA4O
A 961F
A 2918
A 9008
A 9ADC
A 897B
A e9D8
A eses
A OCS9
A 8Ai'F
A e9SF
A 9989
A eA07
A 8999
A OCCE
A OC6E
A~
A 8931
A 85118
A 9900
A 8862
A iltI7D
A 9861
A 1l6C7
A 8AIIC
A 8971
A 9911
A 881A
A etas
A 0A6()
S/l(J\f' A 9993
STAT57 A 01!A8
TBUFLl A 9A9D
TRUE A B899
TXll A 0CE0
n.
0
t;
I
I
CHARACTER
*1
t:
ID
Ia:
C
Ii;
I
I-t:
iiilD
1>.1<
~~
II
~
..e
I>.
-I
CHARACTER CHARACTER
*2
*3
t:
ID
l-
a:
~
t:
ID
I>.
0
t;
I
CHARACTER
U
I
t:
III
....
II:
C
l-
Ul
ID
l-
f/)
I
I
CHARACTER
*5
Figure 2. Multiple Character Transmission
2-347
t:
...0
210311-1
inter
AP-134
Framing
Character framing is accomplished by the START and
STOP bits described previously. When the START bit
transition (mark-to-space) is detected, the receiving system assumes that a character of data will follow. In
order to test this assumption (and isolate noise pulses
on the data link), the receiving system waits one-half bit
time and samples the data link again. If the link has
returned to the marking state, noise is assumed, and the
receiver waits for another START bit transition.
bits per second to 38,400 bits per second. Table 1 illustrates typical asynchronous data rates and the associated 'clock frequencies required for the transmitter and
receiver circuits.
Table 1. Communication Data Rates and
Associated Transmitter/Receiver Clock Rates
Data Rate
(Bits/Second)
75
150
300
600
1200
2400
4800
9600
19200
38400
When a valid START bit is detected, the receiver samples the data link for each bit of the following character. Character data bits and the parity bit (if required)
are sampled at their nominal centers until all required
characters are received. Immediately following the data
bits, the receiver samples the data link for the STOP
bit, indicating the end of the character. Most systems
permit specification of I, 1Y., or 2 stop bits.
Clock Rate (kHz)
X16
X32
X64
1.2
2.4
4.8
9.6
19.2
38.4
76.8
153.6
307.2
614.4
2.4
4.8
9.6
19.2
38.4
76.8
153.6
307.2
614.4
4.8
9.6
19.2
38.4
76.8
153.6
307.2
614.2
-
-
Timing
The trlillsmitter and receiver in 'an asynchronous data
link arrangement are clocked independently. Normally, .
each clock is generated locally and the clocks are' not
synchronized. In fact, each clock may be a slightly different frequency. (In practice, the frequency difference
should not exceed a few percent. If the transmitter and
receiver clock rates vary substantially, errors will occur
because data bits may be incorrectly identified as
START or STOP framing bits.) These clocks are designed to operate at 16,32, or 64 times the communications data rate. These clock speeds allow the receiving
device to correctly sample the incoming bit stream.
Serial-interface data rates are measured in bits/second.
The term "baud" is used to specify the number oftimes
per second that the transmitted signal level can change
states. In general, the baud is not equal to the bit rate.
Only when the transmitted signal has two states (e1ectricallevels) is the baud rate equal to the bit rate. Most
point-to-point serial data links use RS-232-C, RS-422,
or RS-423 electrical interfaces. These specifications call
for two electrical signal levels (the baud is equal to the
bit rate). Modem interfaces, however, may often have
differing bit and baud rates.
While there are generally no limitations on the \:lata
transmission rates used in an aysnchronous data link, a
limited set of rates has been standardized to promote
equipment interconnection. These rates vary from 75
Parity
In order to detect transmission errors, a parity bit may
be added to the character, data as it is transferred over
the data link. The parity bit is set or cleared to make
the total number of "one" bits in the character even
(even parity) or odd (odd parity). For example, the letter "A" is represented by the seven-bit ASCII code
1000001 (4IH). The transmitted data code (with parity)
for this character contains eight bits; 01000001 (4lH)
for even parity and 11000001 (OCIH) for odd parity.
Note that a single bit error changes the parity of the
received character and is therefore easily detected. The
8274 supports both odd and even parity checking as
well as a parity disable mode to support binary data
transfers.
Communication Modes
Serial data transmission between two devices can occur
in one of three modes. In the simplex transmission
mode, a data link cap. transmit data in one direction
only. In the half-duplex ,mode, the data link can transmit data in both directions, but not simultaneously. In
the full-duplex mode (the most common), the data link
can transmit data in both directions simultaneously.
The 8274 directly supports the full-duplex mode and
will interface to simplex and half-duplex communication data links with appropriate software controls.
2-348
inter
AP-134
BREAK Condition
The 8274-processor hardware interface can be configured in a flexible manner, depending on the operating
mode selected-polled, interrupt-driven, DMA, or
WAIT. Figure 3 illustrates typical MPSC configurations for use with an 8088 microprocessor in the polled
and interrupt-driven modes.
Asynchronous data links often include a special sequence known as a break condition. A break condition
is initiated when the transmitting device forces the data
link to a spacing state (binary 0) for an extended length
of time (typically 150 milliseconds). Many terminals
contain keys to initiate a break sequence. Under software control, the 8274 can initiate a break sequence
when transmitting data and detect a break sequence
when receiving data.
All serial-to-parallel conversion, parallel-to-serial conversion, and parity checking required during asynchronous serial I/O operation is automatically performed
by the MPSC.
MPSC SYSTEM INTERFACE
Operational Interface
Hardware Environment
The 8274 MPSC interfaces to the system processor over
an 8-bit data bus. Each serial I/O channel responds to
two I/O or memory addresses as shown in Table 2. In
addition, the MPSC supports non-vectored and vectored interrupts.
The 8274 may be configured for memory-mapped or
I/O-mapped operation.
Command, parameter, and status information is stored
in 21 registers within the MPSC (8 writable registers
and 2 readable registers for each channel, plus the interrupt vector register). These registers are all accessed
by means of the command/status ports for each channel. An internal pointer register selects which of the
command or status registers will be written or read during a command/status access of an MPSC channel.
Figure 4 diagrams the command/status register architecture for each serial channel. In the following discussion, the writable registers will be referred to as WRO
through WR7 and the readable registers will be referred to as RRO through RR2.
Table 2. 8274 Addressing
CS
A1
Ao
. Read Operation
Write Operation
0
0
0
0
0
1
0
1
0
0
1
1
1
X
X
Ch. A Data Read
Ch. A Status Read
Ch. B Data Read
Ch. B Status Read
High Impedance
Ch. A Data Write
Ch. A Command/Parameter
Ch. B Data Write
Ch. B Command/Parameter
High Impedance
2-349
AP-134
l
.,.
ADDRESS BUS
...
6
6 DATA BUS
~
lf6
WII
JYee
8205
~
'---
~
P
-
-
DB0-7
Ao
A,
INTA
MPSC
CS
RD
WR
210311-3
a) Polled Configuration
INT
J
cr--o<}
.
INTA
b
CPU
INT
~
IPI
b
INT
INTA
IPO
IPI
IPO
MPSC
MPSC
HIGHEST PRIORITY
INT
INTA
IPI
b
INTA
IPO
MPSC
LOWEST PRIORITY
210311-4
b) Daisy-Chained Interrupt Configuration
Figure 3. 8274 Hardware Interface for Polled and Interrupt-Driven Environments
The least-significant three bits of WRO are automatically loaded into the pointer register every time WRO is
written. After reset, WRO is set to zero so that the first
write to a command register causes the data to be loaded into WRO (thereby setting the pointer register). After WRO is written, the following read or write accesses
the register selected by the pointer. The pointer is reset
after the read or write operation is completed. In this
manner, reading or writing an arbitrary MPSC channel
register requires two I/O accesse~. The first access is
always a write command. This write command is used
to set the pointer register. The second access is either a
read or a write command; the pointer register (previously set) will ensure that the correct internal register is
read or written. After this second access, the pointer
register is automatically reset. Note that writing WRO
and reading RRO does not require presetting of the
pointer register.
During initialization and normal MPSC operation, various registers are read and/or written by the system
processor. These actions are discussed in detail in the
following paragraphs. Note that WR6 and WR7 are
not used in the asynchronous communication modes.
RESET
When the 8274 RESET line is activated, both MPSC
channels enter the idle state. The serial output lines are
forced to the marking state (high) and the modem interface signals (RTS, DTR) are forced high. In addition, the pointer register is set to zero.
2-350
AP-134
COMMAND/STATUS
POINTER
D2
Dl
0
DO
0
_I
W:
-I w
0
0
0
-I
-I
-I
-I
w
R
:
0
"\
::I
I1
II
R
II
R
R
R
R
R
R
R
I
2'
LSB
MSB
Read Registers
W
R
w
R
·Ch. B only
W
R
-I w
R
6
-I
R
7
w
I
MSB
LSB
Write Registers
210311-5
Figure 4. Command/Status Register Architecture (Each Serial Channel)
External/Status Latches
The MPSC continuously monitors the state of four external/status conditions:
1. CTS--clear-to-send input pin.
2. CD--carrier-detect input pin.
3. SYNDET-sync-detect input pin. This pin may be
used as a general-purpose input in the asynchronous
communication mode.
4. BREAK-a break condition (series of space bits on
the receiver input pin).
2-351
A change of state in any of these monitored conditions
will cause the associated status bit in RRO (Appendix
A) to be latched (and optionally cause an interrupt).
Error Reporting
Three error conditions may be encountered during data
reception in the asynchronous mode:
1. Parity. If parity bits are computed and transmitted
with each character and the MPSC is set to check
parity (bit 0 in WR4 is set). a parity error will occur
whenever the number of "1" bits within the character (including the parity bit) does not match the odd/
even setting of the parity check flag (bit 1 in WR4).
inter
AP-134
2. Framing. A framing error will occur if a stop bit is
not detected immediately following the parity bit (if
parity checking is enabled) or immediately following
the most-significant data bit (if parity checking is not
enabled).
3. Overrun. If an input character has been assembled
but the receiver buffers are full (because the previously received characters have not been read by the
system processor), an overrun error will occur.
When an overrun error occurs, the input character
that has just been received will overwrite the immediately preceding character.
Number of
Bits Transmitted
07 06 05 04 03 02 01 DO (Character Length)
1111000c
1
111000cc
2
11000ccc
3
1000cccc
4
OOOccccc
5
7. Transmitter Enable. The serial channel transmitter
operation may be enabled or disabled by setting or
clearing bit 3 of WR5. (See Appendix A for WR5
details.)
Transmitter/Receiver Initialization
For data transmissions via a modem or RS-232-C interface, the following information must also be specified:
1. Request-to-Send/Data-Terminal-Ready. Must be set
to indicate status of data terminal equipment. Request-to-send is controlled by bit 1 of WR5 and data
terminal ready is controlled by bit 7. (See Appendix
A for WR5 details.)
2. Auto Enable. May be set to allow the MPSC to automatically enable the channel transmitter when the
clear-to-send signal is active and to automatically enable the receiver when the carrier-detect signal is active. Auto Enable is controleld by bit 5 of WR3. (See
Appendix A for WR3 details.)
In order to operate in the asynchronous mode, each
MPSC channel must be initialized with the following
information:
1. Clock Rate. This parameter is specified by bits 6 and
7 of WR4. The clock rate may be set to 16, 32, or 64
times the data-link bit rate. (See Appendix A for
WR4 details.)
2. Number of Stop Bits. This parameter is specified by
bits 2 and 3 of WR4. The number of stop bits may be
set to I, I Y., or 2. (See Appendix A for WR4
details.)
3. Parity Selection. Parity may be set for odd, even, or
no parity by bits 0 and I of WR4. (See Appendix A
for WR4 details.)
4. Receiver Character Length. This parameter sets the
length of received characters to 5, 6, 7, or 8 bits. This
parameter is specified by bits 6 and 7 of WR3. (See
Appendix A for WR3 details.)
5. Receiver Enable. The serial-channel receiver operation may be enabled or disabled by setting or clearing
bit 0 of WR3. (See Appendix A for WR3 details.)
6. Transmitter Character Length. This parameter sets
the length of transmitted characters to 5, 6, 7, or 8
bits. This parameter is specified by bits 5 and 6 of
WR5. (See Appendix A for WR5 details.) Characters
of less than 5 bits in length may be transmitted by
setting the transmitted length to five bits (set bits 5
and 6 of WR5 to I).
The MPSC then determines the actual number of
bits to be transmitted from the character data byte.
The bits to be transmitted must be right justified in
the data byte, the next three bits must be set to 0 and
all remaining bits must be set to 1. The following
table illustrates the data formats for transmission of
I to 5 bits of data:
During initialization, it is desirable to guarantee that
the external!status latches reflect the latest interface
information. Since up to two state changes are internally stored by the MPSC, at least two Reset External!
Status Interrupt commands must be issued. This procedure is .most easily accomplished by simply issuing this
reset command whenever the pointer register is set during initialization.
An MPSC initialization procedure (MPSC$RX$INIT)
for asynchronous communication is listed in Appendix
B. Figure 5 illustrates typical MPSC initialization parameters for use with this procedure.
call MPSC$RX$INIT(41,
1,1,0,1, 3,1,1,
3,1,1,0,1);
initializes the 8274 at address 41 as follows:
X16 clock rate
1 stop bit
Odd parity
8-bit characters
(Txand Rx)
Enable transmitter
and receiver
Auto enable. set
DTR and RTS set
Break transmission disabled
Figure 5. Sample 8274 Initialization Procedure
for Polled Operation
inter
AP-134
Polled Operation
In the pelled mede, the precesser must meniter the
MPSC status by testing the apprepriate bits in the read
register. Data available, status, and errer cenditiens are
represented in RRO and RRI fer channels A and B. An
example ef MPSC-pelled transmitter/receiver routines
are given in Appendix B. The fellewing reutines are,
detailed:
1. MPSC$POLL$RCV$CHARACTER-This precedure receives a character frem the serial data link.
The routine waits until the character-available flag in
RRO has been set. When this flag indicates that a
character is available, RR 1 is checked fer errors
(everrun, parity, er framing). If an error is detected, the character in the MPSC receive 'buffer
must be read and discarded and the error routine
(RECElVE$ERROR) is called. If no. receive errers
have been detected, the character is input frem the
8274 data pert and returned to. the calling program.
MPSC$POLL$RCV$CHARACTER requires three
parameters-the address ef the 8274 channel data
port (data$port), the addres~ of the 8274 channel
cemmand port (cmd$pert), and the address ef a byte
variable in which to. store the received character
(character$ptr).
2. MPSC$POLL$TRAN$CHARACTER-This procedure transmits a character to. the serial data link.
The reutine waits until the transmitter-buffer-empty
flag has been set in RRO befere writing the character
to the 8274.
,MPSC$POLL$TRAN$CHARACTER
requires
three parameters-the address of the 8274,channel
data pert (data$pert), the address of the 8274 channel cemmand pert (cmd$pert), and the character ef
data that is to be transmitted (character).
3. RECEIVE$ERROR-This procedure precesses receiver errors. First, an Errer Reset cemmand is written to. the affected channel. All additional error processing is dependent on the specific applicatien. Fer
example, the receiving device may immediately request retransmissien ef the character er wait until a
message has been completed.
RECEIVE$ERROR requires two parameters-the
address ef the affected 8274 command pert
(cmd$pert) and the errer status (status) from 8274
register RR 1.
Interrupt-Driven Operation
In an interrupt-driven envirenment, all receiver operatiens are reperted to the system processer by means ef
interrupts. Once a character has been received and assembled, the MPSC interrupts the system processer.
The system precesser must then read the character
from the MPSC data buffer and clear the current interrupt. During transmissien, the system precesser starts
serial I/O by writing the first character ef a message to.
the MPSC. The MPSC interrupts the system precessor
whenever the next character is required (i.e., when the
transmitter buffer is empty) and the precessor responds
by writing the next character ef the message to the
MPSC data pert for the appropriate channel.
By using interrupt-driven I/O, the MPSC proceeds independently ef the system processer, signalling the
precesser enly when characters are required fer transmission, when characters are received from the data
link, er when errors occur. In this manner, the system
precesser may centinue executien of ether tasks while
serial I/O is performed cencurrently.
Interrupt Configurations
The 8274 is designed to interface to. 8085- and 8086type processers in much the same manner as the 8259A
is designed. When operating in the 8085 mede, the 8274
causes a "call" to a prespecified, interrupt-service routine lecatien. In the 8086 mede, the 8274 presents the
precessor with a one-byte interrupt-type number. This
interrupt-type number is used to. "vecter" through the
8086 interrupt service table. In either case, the interrupt service address or interrupt-type number is specified during MPSC initialization.
To. sherten interrupt latency, the 8274 can be pregrammed to. modify the prespecifled interrupt vector so.
that no seftware overhead is required to. determine the
cause of an interrupt. When this "status affects vecter"
mede is enabled, the follewing eight interrupts are differentiated autematically by the 8274 hardware:
1. Channel B Transmitter Buffer Empty.
2. Channel B External/Status Transition.
3. Channel B Character Available.
4. Channel B Receive Error.
5. Channel A Transmitter Buffer Empty.
6. Channel A External/Status Transition.
7. Channel A Character Available.
8. Channel A Receive Error.
Interrupt Sources/Priorities
The 8274 has three interrupt sources fer each channel:
1. Receiver (RxA, RxB). An interrupt is initiated when
'a character is available in the receiver buffer er when
a receiver errer (parity, framing, er everrun) is detected.
2. Transmitter (TxA, TxB). An interrupt is initiated
when the transmitter buffer is empty and the 8274 is
ready to. accept another character fer transmission.
2-353
AP-134
3. External/Status (ExTA, ExTB). An interrupt is initiated when one of the external/status conditions
(CDE, CTS, SYNDET, BREAK) changes state.
The 8274 supports two interrupt priority orderings (selectable during MPSC initialization) as detailed in Appendix A, WR2, CH-A.
Interrupt Initialization
In addition to the initialization parameters required for
polled operation, the following parameters must be supplied to the 8274 to specify interrupt operation:
I. Transmit Interrupt Enable. Transmitter-buffer-empty interrupts are separately enabled by bit 1 ofWRl.
(See Appendix A for WRI details.)
2. Receive Interrupt Enable. Receiver interrupts are
separately enabled in one of three modes: a) interrupt
on first received character only and on receive errors
(used for message-oriented transmission systems), b)
interrupt on all received characters and on receive
errors, but do not interrupt on parity errors, and c)
interrupt on all received characters and on receive
errors (including parity errors). The ability to separately disable parity interrupts can be extremely useful when transmitting messages. Since the parity error bit in RRI is latched, it will not be reset until an
error reset operation is performed. Therefore, the
parity error bit will be set if any parity errors were
detected in a multi-character message. If this mode is
used, the serial I/O software must poll the parity
error bit at the completion of a message and issue an
error reset if appropriate. The receiver interrupt
mode is controlled by bits 3 and 4 of WRI. (See
Appendix A for WRI details.)
3. External/Status Interrupts. External/Status interrupts can be separately enabled by bit 0 ofWRl. (See
Appendix A for WRI details.)
4. Interrupt Vector. An eight-bit interrupt-service routine location (8085) or interrupt type (8086) is specified through WR2 of channel B. (See Appendix A
for WR2 details.) Table 3 lists interrupt vector' addresses generated by the 8274 in the "status affects
vector" mode.
5. "Status Affects Vector" Mode. The 8274 will automatically modify the'interrupt vector if bit 3 of WR 1
is set. (See Appendix A for WRI details.)
6. System Configuration. Specifies the 8274 data transfer mode. Three configuration modes are available:
a) interrupt-driven operation for both channels, b)
DMA operation for both channels, and c) DMA operation for channel A, interrupt-driven operation for
channel B. The system configuration is specified by
means of bits 0 and 1 of WR2 (channel A). (See
Appendix A for WRZ details.)
7. Interrupt Priorities. The 8274 permits software specification of receive/transmit priorities by means of
bit 2 of WR2 (channel A). (See Appendix A for
WR2 details.)
8. Interrupt Mode. Specifies whether the MPSC is to
operate in a non-vectored mode (for use with an external interrupt controller), in an 8086-vectored
mode, or in an 8085-vectored mode. This parameter
is specified through bits 3 and 4 of WR2 (channel
A). (See Appendix A for WR2 details.)
An MPSC interrupt initialization procedure
(MPSC$INT$INIT) is listed in Appendix C.
2-354
inter
AP-134
Table 3. MPSC-Generated Interrupt Vectors In "Status Affects Vector" Mode
V7
V6
V5
V4
V3
V2
V1
VO
V7
V6
8086
Interrupt Type
V5
V4
V3
V2
V1
VO
Original Vector
(Specified during
Initialization)
Interrupt
Condition
8085
Interrupt Location
V7
V6
V5
V4
V3
0
0
0
V7
V6
V5
0
0
0
V1
VO
Channel B Transmitter
Buffer Empty
V7
V6
V5
V4
V3
0
0
1
V7
V6
V5
0
0
1
V1
VO
Channel B External/Status
Change
V7
V6
V5
V4
V3
0
1
0
V7
V6
V5
0
1
0
V1
VO
Channel B Receiver
Character Available
V7
V6
V5
V4
V3
0
1
1
V7
V6
V5
0
1
1
V1
VO
Channel B Receive Error
V7
V6
V5
V4
~3
1
0
0
V7
V6
V5
1
0
0
V1
VO
Channel A Transmitter
Buffer Empty
V7
V6
V5
V4
V3
1
0
1
V7
V6
V5
1
0
1
V1
VO
Channel A External/Status
Change
V7
V6
V5
V4
V3
1
1
0
V7
V6
V5
1
1
0
V1
VO
Channel A Receiver
Character Available
V7
V6
V5
V4
V3
1
1
1
V7
V6
V5
1
1
1
V1
VO
Channel A Receive Error
Interrupt Service Routines
,
Appendix C lists four interrupt service procedures, a
buffer transmission procedure, and a buffer reception
procedure that illustrate the use of the 8274 in interrupt-driven environments. Use of these procedures assumes that the 8086/8088 interrupt vector is set to 20H
and that channel B is used with the "status affects vector" mode enabled.
I. TRANSMIT$BUFFER-This procedure begins serial transmission of a data buffer. Two parameters
are required-a pointer to the buffer (buf$ptr) and
the length of the buffer (buf$length). The procedure
first sets the global buffer pointer, buffer length, and
initial index for the transmitter-interrupt service routine and initiates transmission by writing the first
character of the buffer to the 8274. The procedure
then enters a wait loop until the I/O completion
status is set by the transmit-interrupt service routine
(MPSC$TRANSMIT$CHARACTER$INT).
2. RECEIVE$BUFFER-This procedure inputs a line
(terminated by a line feed) from a serial VO port.
Two parameters are required-a pointer to the input
buffer (buf$ptr) and a pointer to the buffer length
variable (buf$length$ptr). The buffer length will be
set by this procedure when the complete line has
been input. The procedure first sets the global buffer
pointer and initial index for the receiver interrupt
service routine. RECEIVE$BUFFER then enters a
wait loop until the I/O completion status is set by
the receive interrupt routine (MPSC$RECEIVE$CHARACTER$INT).
3. MPSC$TRANSMIT$CHARACTER$INT-This
procedure is executed when the MPSC Tx-bufferempty interrupt is acknowledged. If the current
transmit buffer index is less than the buffer length,
the next character in the buffer is written to the
MPSC data port and the buffer pointer is updated.
Otherwise, the transmission complete status is posted.
4. MPSC$RECEIVE$CHARACTER$INT-This procedure is executed when a character has been assembled by the MPSC and the MPSC has issued a character-available interrupt. If no input buffer has been
set up by RECEIVE$BUFFER, the character is ignored. If a buffer has been set up, but it is full, a
receive overrun error is posted. Otherwise, the received character is read from the MPSC data port
and the buffer index is updated. Finally, if the received character is a line feed, the reception complete
status is posted.
5. RECEIVE$ERROR$INT-This procedure is executed when a receive error is detected. First, the error conditions are read from RR 1 and the character
currently in the MPSC receive buffer is read and discarded. Next, an Error Reset command is written to
the affected channeL All additional error proc!lssing
is application dependent.
6. EXTERNAUSTATUS$CHANGE$INT-This
procedure is executed when an external status condition change is deteCted. The status conditions are
read from RRO and a Reset External/Status Interrupt command is issued. Further error processing is
application dependent.
2-355
intJ
AP-134
DATA LINK INTERFApE·
Serial.Data Interface
Each serial 1/0 cb,annel within the 8274 MPSC ~ter
faces to two datil link lines-one line for ,transmitting
data and one for receiving data. During transmission,
characters are converted from parallel data format (as
supplied by the system proeessor or DMA device) into
a serial bit stream (with START and STOP bits) and
clocked out on the TxD pin. During reception, a serial
bit stream is input on theRxD pin, framing bits are
stripped out of the· data stream, and the resulting character is converted to parallel data format and passed to
the system processor or DMA device.
Data Clocking
As discussed previously, the frequency of data transmission/reception on the data link is controlled by the
MPSC clock in conjunction with the programmed
clock divider (in register WR4). The 8274 is designed to
permit all four serial interface lines (Till and RxD for
each channel) to operate at different data rates. Four
clock input pins (TxC and RxC for each channel) are
available for this function. Note that the clock rate divider speified in WR4 is used for both RIlC and TxC on
the appropriate channel; clock rate dividers for each
chanllel are independent.
Modem Control
The following four modem interface signals may be
connected to the 8274:
1. Data Terminal Ready (DTR). This interface signal
(output by the 8274) is software controlled through
bit 7 of WRS. When active, DTR indicates that the
data terminal/computer equipment is active and
ready .to' interact with the data· communications
channel. In addition, this signal prepares the modem
for connection to the communication channel and
maintains connections previously established (e.g.,
,
manual call origination). ' '
2. Request To Send (RTS). This interface signal (output by the 8274) is software controlled through bit 1
'of WRS. When active, RTS indicates that the data
terminal/computer equipment is ready to transmit
data. When the RTS bit is reset in asynchronous
mode, the signal does not go high until the transmitter is empty.
3. Clear To Send (CTS). This interface signal (input to
the 8274) is supplied by the modem in response to an
active RTS signal. CTS indicates that the data terminal/computer equipment is permitted to transmit
data. The state of CTS is available to the programmer as bit S of RRO. In addition, if the auto enable
control is set (bit S ofWR3), the 8274 will not transmit data bytes until CTS has been activated. If CTS
becomes inactive during transmission of a character,
the current character transmission is completed before the transmitter is disabled.
4. Carrier Detect (CD). This interface signal (input to
the 8274) is supplied by the modem to indicate that a
data carrier signal has been detected and that a valid
data signal is present on the RxD line. The state of
CD is available to the programmer as bit 3. of RRO.
In addition, if the auto enable control is set (bit S of
WR3), the 8274 will not enable the serial receiver
until CD !)as been activated. If the CD. signal becomes inactive during reception of a character, the
receiver is disabled,.and the partially received character is lost.
In addition to the above modem interface signals, the
8274 SYNDET input pin for channel A may be used as
a general-purpose input in the asynchronous communication mode. The status of this signal is available to the
programmer as bit 4 of status register RRO.
2~356
inter
AP-134
APPENDIX A
COMMAND/STATUS DETAILS FOR ASYNCHRONOUS
COMMUNICATION
logic and all control registers for the channel. Four extra system clock cycles should
be allowed for MPSC reset time before
any additional commands or controls are
written into the channel.
Command 4 Enable Interrupt on Next Receive Character-if the Interrupt-on-First-Receive
Character mode is selected, this command
reactivates that mode after each complete
message is received to prepare the MPSC
for the next message.
Command 5 Reset Transmitter Interrupt Pending-if
the Transmit Interrupt mode is selected,
the MPSC automatically interrupts data
when the transmit buffer becomes empty.
When there are no more characters to be
sent, issuing this command prevents further transmitter interrupts until the next
character has been completely sent.
Command 6 Error Reset-error latches, Parity and
Overrun errors in RR I are reset.
Command 7 End of Interrupt-resets the interrupt-inservice latch of the highest-priority internal device under service.
Write Register 0 (WRO):
COMMAND/STATUS POINTER
REGISTER POINTER
r
0
o1
NULL CODE
NOT USED IN ASYNCHRONOUS MODES
REseT EXT/STATUS INTERRUPTS
CHANNEL RESET
ENABLE INTERRUPT ON NEXT Ax
CHARACTER
RESET TxlNT PENDING
ERROR RESET
END OF INTERRUPT (Q. Aonlyl .
NOT USED IN ASYNCHRONOUS MODES
210311-6
Write Register 1 (WR1):
D2,DI,DO Command/Status Register Pointer bits
determine which write-register the next
byte is to be written into, or which readregister the next byte is to be read from.
After reset, the first byte written into either channel goes into WRO. Following a
read or write to any register (except WRO)
the pointer will point to WRO.
D5,D4,D3 Command bits determine which of the basic seven commands are to be performed.
Command 0 Null-has rio effect.
Command I Note used in asynchronous modes.
Command 2 Reset External/Status Interrupts-resets
the latched status bits of RRO and reenables them, allowing interrupts to occur
again.
Command 3 Channel Reset-resets the Latched Status
bits of RRO, the interrupt prioritization
DO
DI
D2
2-357
External/Status Interrupt Enable-allows
interrupt to occur as the result of transitions on the CD, CTS or SYNDET inputs. Also allows interrupts as the result
of a Break/Abort detection and termination, or at the beginning of CRC, or sync
character transmission when the Transmit
Underrun/EOM latch becomes set.
Transmitter Interrupt/DMA Enable-allows the MPSC to interrupt or request a
DMA transfer when the transmitter buffer
becomes empty.
Status Affects Vector-(WRI, D2 active
in channel B only.) If this bit is not set,
then the fixed vector, programmed in
WR2, is returned from an interrupt acknowledge sequence. If the bit is set, then
the vector returned from an interrupt acknowledge is variable as shown in the Interrupt Vector Table.
inter
Ap:.134
Write Register 1 (WR1):
Write Register 2 (WR2): Channel A
MBB
MSB
LSB
107 1 0 1 05 1 04 : 03 102 1 D11
Dol
'---..,--I
I
1 07 : 0105104:03102101:001
'---..,--I
0
0
1
1
EXT INTERRUPT
ENABLE
r.INTERRUPTI
DMAENABLE
STATUS AFFECTS
VECTORICHBONLY)
(NULLCODECH A)
'---..,--I
1 VARIABLE
VECTOR
0 VECTOR
FIXED
0
1
0
1
>
0 0
1
0
1 0
1 1
A.tNT/OMA DISABLE
RalNT ON FIRST CHAR OR SPECIAL
CONDITION
tNT ON ALL Ax CHAR (PARITY AFFECTS
VECTOR) OR SPECIAL CONDITION
tNT ON ALL Ax CHAR (PARITY DOES
NOT AFFECT VECTOR) OR SPECIAL
1
CONDITION
o-
1
8085 MODE 2
8086/88 MODE
ILLEGAL
= VECTORED INTERRUPT
NON VECTORED INTERRUPT
MUST BE ZERO
1 PIN 10 = SYNDET B
MUST BE ZERO
o
1 - ENABLE. 0
DISABLE
1 0
1 1
D5
D6
D7
PIN10=RTS s
NOTE:
210311-8
• External Status Interrupt-only if EXT Interrupt Enable
(WR1; DO) is set.
210311-7
D4,D3
00
o1
TlIa >£XTA* >E·)(T8'
8085 MODE 1
WAIT ON Rx,O " WAIT ON TIC
WAIT ENABLE
BOTHOMA
ILLEGAL
1 = PRIORITY AKA >Ax8>TxA>
TI.8 >EXTA' EXlS'
~
0
1
0
1
A OMA, 8 INT
a ::: PRIORITY RxA >txA >Rxa >
~
0
0
1
1
80TH INTERRUPT
Receive Interrupt Mode.
Receive Interrupts/DMA Disabled.
Receive Interrupt on First Character Only
or Special Condition.
Interrupt on All Receive Characters of
Special Condition (Parity Error is a Special Receive Condition).
Interrupt on All Receive Characters or
Special Condition (Parity Error is not a
Special Receive Condition).
Wait on ReceivelTransmit-when the following conditions are met, the RDY pin is
activated, otherwise it is held in the HighZ state. (Conditions: Interrupt Enabled
Mode, Wait Enabled, CS = 0, AO = 0/1,
and Al = 0). The RDY pin is pulled low
when the transmitter buffer is full or the
receiver buffer is empty and it is driven
High when the transmitter buffer is empty
or the receiver buffer is full. The RDY A
and RDYB may be wired or connected
since only one signal is active at anyone
time while the other is in the High Z state.
Must be Zero.
Wait Enable-enables the wait function.
D1,DO
00
o1
1 0
1 1
D2
o
2-358
System Configuration-These specify the
data transfer from MPSC channels to the
CPU, either interrupt or DMA based.
Channel A and Channel B both use interrupts.
Channel A uses DMA, Channel B uses interrupt.
Channel A and Channel B both use
DMA.
Illegal Code.
Priority-this bit specifies the relative priorities of the internal MPSC interrupt!
DMA sources.
(Highest) RxA, TxA, RxA, RxB"
TxBExTA, ExTB (Lowest).
(Highest) RxA, RxB, TxA, TxB, ExTA,
ExTB (Lowest).
inter
05,04,03
oX
X
100
101
1 10
06
D7
AP-134
Interrupt Code:-specifies the behavior of
the MPSC when it receives an interrupt
acknowledge sequence from the CPU. (See
Interrupt Vector Mode Table.)
Non-vectored interrupts-intended for
use with an external interrupt controller
such as the 8259A.
8085 Vector Mode I-intended for use as
the primary MPSC in a daisy-chained priority structure.
8085 Vector Mode 2-intended for use as
any secondary MPSC in a daisy-chained
priority structure.
8086/88 Vector Mode-intended for use
as either a primary or secondary in a daisy-chained priority structure.
Must be Zero.
Write Register 3 (WR3):
MSB
LSB
R. ENABLE
L-_ _ _ _ NOT USED tN
ASYNCHRONOUS
MODES
' - - - - - - - - - - A U T O ENABLES
R. 5 BITS/CHAR
o
Pin 10 = mB.
Pin 10 = SYNOETB.'
o
R. 7 BITs/CHAR
R. 8 BITs/CHAR
R. 8 BITs/CHAR
Write Register 2 (WR2): Channel B
MSB
210311-10
DO
LSB
05
\.
L". "
Vector
07-00
210311-9
Interrupt vector-this register contains
the value of the interrupt vector placed on
the data bus during acknowledge sequences.
07,06
00
oI
I 0
I I
2-359
Receiver Enable-a one enables the receiver to begin. This bit should be set only
after the receiver has been initialized.
Auto Enables-a one written to this bit
causes CO to be an automatic enable signal for the receiver and CTS to be an automatic enable signal for the transmitter. A
zero written to this bit limits the effect of
CO and CTS signals to setting/resetting
their corresponding bits in the status register (RRO).
Receiver Character length.
Receive 5 Oata bits/character.
Receive 7 Oata bits/character.
Receive 6 Oata bits/character.
Receive 8 Oata bits/character.
AP-134
Write Register 4 (WR4):
Write Register 5 (WR5):
MSB
LSB
1071061 D51 041031 021 011 Dol
La
ENABLE PARITY
T USED IN
ASYNCHRONOUS MODES
_ R TS
1
EVEN PARITY
o
ODD PARITY
NOT USED IN
AS YNCHRONOUS MODES
'lXE NABLE
o
0
ENABLE SYNC MODES
o
1
1 STOP BIT
1
0
1.5 STOP BITS
1
1
2 STOP BITS
SENO BREAK
0
NOT USED IN ASYNCHRONOUS MODES
o
0
0
'IX 5 BITS OR LESS/CHAR
0
1
'IX 7 BITS/CHAR
1
0
'IX 6 BITS/CHAR
1
1
'IX 8 BITS/CHAR
DTR
Xl CLOCK
210311-12
X16CLOCK
o
DI
X32 CLOCK
X64 CLOCK
210311-11
DO
DI
D3,D2
o0
o1
I 0
I 1
D7,D6
00
o1
I 0
1 1
Parity-a one in this bit causes a parity bit
to be added to the programmed number of
data bits per character for both the transmitted and received character. If the
MPSC is programmed to receive 8 bits per
character, the parity bit is not transferred
to the microprocessor. With other receiver
character lengths, the parity bit is transferred to the microprocessor.
Even/Odd Parity-if parity is enabled, a
one in this bit causes the MPSC to transmit and expect even parity, and zero causes it to send and expect odd parity.
Stop Bits.
Selects synchronous modes.
Async mode, I stop bit/character.
Async mode, 1'/. stop bits/character.
Async mode, 2 stop bits/character.
Clock mode--selects the clock/data rate
multiplier for both the receiver and the
transmitter. If the Ix mode is selected, bit
synchronization must be done externally.
Clock rate = Data rate X 1.
Clock rate = Data rate X 16.
Clock rate = Data rate X 32.
Clock rate = Data rate X 64.
D3
D4
D6,D5
00
oI
I 0
I 1
Request to Send-a one in this bit forces
the RTS pin active (low) and zero in this
bit forces the RTS pin inactive (high).
When the R TS bit is reset in asynchronous
mode, the signal does not go inactive until
the transmitter is empty.
Transmitter Enable-a zero in this bit
forces a marking state on the transmitter
output. If this bit is set to zero during data
or sync character transmission, the marking state is entered after the character has
been sent. If this bit is set to zero during
transmission of a CRC character, sync or
flag bits are substituted for the remainder
of the CRC bits.
Send Break-a one in this bit forces the
transmit data low. A zero in this bit allows
normal transmitter operation.
Transmit Character length.
Transmit 5 or less bits!character.
Transmit 7 bits/character.
Transmit 6 bits/character.
Transmit 8 bits/character.
Bits to be sent must be right justified, least-significant
bit first, e.g.:
D7 D6 D5 D4 D3 D2 DI DO
o
2-360
0
B5 B4 B3 B2 BI BO
intJ
AP-134
Read Register 0 (RRO):
Msa
In\ PENDING (CHA ONLY)
' - - - - - TlI BUFFER EMPTY
'--_ _ _ _ _ CARRIER DETECT
~
_ _ _ _ _ _ _ SYNDET
'--_ _ _ _ _ _ _ _ _ CTS
EXTERNAL STATUS
INTERRUPT MODE
'--_ _ _ _ _ _ _ _ _ _ NOT USED IN
~
ASYNCHRONOUS MODES
_ _ _ _ _ _ _ _ _ _ _ _ BREAK
210311-13
DO
Dl
D2
D3
D4
Receive Character Availabltr-this bit is
set when the receive FIFO contains data
and is reset when the FIFO is empty.
Interrupt Pending-This Interrupt-Pending bit is reset When an EO! command is
issued and there is no other interrupt request pending at that time. In vector
mode, this bit is set at the falling edge of
the second INTA in an INT A cycle for an
internal interrupt request. In non-vector
mode, this bit is set at the falling edge of
RD input after pointer 2 is specified. This
bit is always zero in Channel B.
Transmit Buffer Empty-This bit is set
whenever the transmit buffer is empty except when CRC characters are being sent
in a synchronous mode. This bit is reset
when the transmit buffer is loaded. This
bit is set after an MPSC reset.
Carrier Detect-This bit contains the state
of the CD pin at the time of the last
change of any of the ExternaVStatus bits
(CD, CTS, Sync/Hunt, Break!AbOrt, or
Tx Underrun/EOM). Any change of state
of the CD pin causes the CD bit to be
latched and causes an ExternaVStatus inter~ This bit indicates current state of
the CD pin immediately following a Reset
ExternaVStatus Interrupt command.
SYNDET-In asynchronous modes, the
operation of this bit is similar to the CD
status bit, except that it shows the state of
the SYNDET input. Any High-to-Low
transition on the SYNDET pin sets this
bit, and causes an ExternaVStatus interrupt (if enabled). The Reset ExternaV
2-361
D5
D7
Status Interrupt command is issued to
clear the interrupt. A Low-to-High transition clears this bit and sets the ExternaV
Status interrupt. When the ExternaV
Status interrupt is set by the change in
state of any other input or condition, this
bit shows the inverted state of the
SYNDET pin at time of the change. This
bit must be read immediately following a
Reset ExternaVStatus Interrupt command
to read the current state of the SYNDET
input.
Clear to Send-this bit contains the inverted state of the CTS pin at the time of
the last change of any of the ExternaV
Status bits (CD, CTS, Sync/Hunt, Break/
Abort, or Tx Underrun/EOM). Any
change of state of the CTS pin causes the
CTS bit to be latched and causes an ExternaVStatus interrupt. This bit indicates the
inverse of the current state of the CTS pin
immediately following a Reset ExternaV
Status Interrupt command.
Break-in the Asynchronous Receive
mode, this bit is set when a Break sequence (null character plus framing error)
is detected in the data stream. The ExternaVStatus interrupt, if enabled, is set
when break is detected. The interrupt
service routine must issue the Reset External/Status Interrupt command (WRO,
Command 2) to the break detection logic
so the Break sequence termination can be
recognized.
AP·134
Read Register 1 (RR1):
Mse
lse
lool~I~I~loo:~:~I~1
.. ' ,
'L All SENT
\
,L
NOT USED IN ASYNCHRONOUS MODES
PARITY ERROR
Rx OVERRUN ERROR
CRC/FRAMING ERROR
NOT USED IN ASYNCHRONOUS MODES
210311-14
The Break bit is reset when the termination of the
Break sequence is detected in the incoming data stream.
The termination of the Break sequence also causes the
ExtemaVStatus interrupt to be set. The Reset External/Status Interrupt command must be is~ued to enable
the break detection logic to look for the next Break
sequence. A single, extraneous null character is present
in the receiver after the termination of a break; it
should be read and discarded.
DO
All sent-this bit is set when all characters
have been sent. It is reset when characters
are in the transmitter. In synchronous
modes, this bit is always set.
04
Parity Error-if parity is enabled, this bit
is set for received characters whose parity
does not match the programmed sense
(Even/Odd). This bit is latched. Once an
error occurs, it remains set until the Error
Reset command is written.
Receive Overrun Error-this bit indicates
that the receive FIFO has been overloaded
by the receiver. The last character in the
FIFO is overwrittenand flagged with this
error. Once the overwritten character is
read, this error condition is latched until
05
Read Register 2 (RR2):
Mse
I va: vs :
V7 :
lse
V4' : V3' : V2': V1':
vo'l
'VarIable In
L'~nt..;,e_rr~uP..;,t_____ StatuI Affectl
Vector
Vector Mode (WR1 ; D2)
210311-15
06
RR2
reset by the Error Reset command. If the
MfSC is in the "status' affects vector"
mc;>de, the overrun causes a Special Receive Error Vector.
Framing Error-in async modes, a one in
this bit indicates a receive framing error.
It can be reset by issuing an Error Reset
command.
Channel B
07-00
2-362
Interrupt vector~ontains the interrupt
vector programmed into WR2. If the
"status affects vector" mode is selected, it
contains the modified vector. (See WR2.)
RR2 contains the modified vector for the
highest priority interrupt pending. If no
interrupts are pending, the variable bits in
the vector are set to one. May be read
from Channel B only.
inter
AP-134
APPENDIX B
MPSC-POLLED TRANSMIT/RECEIVE CHARACTER
ROUTINES
MPSC$RX$INIT: procedure (cmd$port,
clock$rate,stop$bits,parity$type,parity$enable,
rx$char$length,rx$enable,auto$enable,
tx$char$length, tx$enable, dtr, brk, rts) :
declare cmd$port
clock$rate
stop$bits
parity$type
parity$enable
rx$char$length
rx$enable
auto$enable
tx$char$length
tx$enable
dtr
brk
rts
output(cmd$port)=30H:
byte,
byte,
byte,
byte,
byte,
byte,
byte,
byte,
byte,
byte,
byte,
byte,
byte:
f* channel reset *f
f* point to WR4 *f
output(cmd$port)=14H:
f* set clock rate, stop bits, and parity information */
output(cmd$port)=shl(clock$rate,6) or shl(stop$bits,2) or shl(parity$type,l)
or parity$enable:
output(cmd$port)-13H:
f* point to WR3 *f
/* set up receiver parameters *f
output(cmd$port)=shl(rx$char$length,6) or rx$enable or shl(auto$enable,5):
output(cmd$port)=15H:
f* point to WR5 */
f* set up transmitter parameters *f
output (cmd$port) =shl (tx$char$length,5) or shl(tx$enable,3) or shl(dtr,7)
or shl(brk,4) or shl(rts,l),
end MPSC$RX$INIT,
210311-16
2·363
inter
;,,'
AP-134
'IPSC$POLL$RCV$CIIARACTER: procedure (da ta$por t, cmd$porl, ChM ~cter Sptr)
declare
d~t~Sport
cmdSport
character$ptr
character
status
declare char$avail
rcv$error
I)!t~,
byte,
byte,
poin~er,
based character $ptr byte,
byte,
literally '1',
literally '70H',
/* wait for input character ready */
while (input(cmd$port) and char$avail) <> 0 do, end,
/* check for errors in received character
output(cmd$port)=l,
if (status:=input(cmd$port) and rcv$error)
then do,
character=input(data$port) ,
call RECElVE$ERROR(cmd$port,status) ,
return 0;
*/
/* point to RRl */
/* read character to clear MPSC */
1* clear receiver errors
*/
/* error return - no character avail */
end,
else do:
character=input(data$port) ,
return OFFH,
end;
/* good return - character avall */
end MPSC$POLL$RCVSCHARACTER,
MPSC$POLL$TRAN$CHARACTER: procedure(data$port,cmd$port,character),
declare data$port
cmd$port
character
byte,
byte,
byte,
declare tx$buffer$empty literally '4',
/* wait for transmitter buffer empty */
while not (input(cmd$port) and tx$buffer$empty) do: end,
/* output character */
output(data$port)=character,
end MPSC$POLL$TRAN$CHARACTER,
RECElVE$ERROR: procedure(cmd$port,status) ,
declare cmd$port
status
output(cmd$port)=JOH,
byte,
byte:
1* error reset */
/* *** other application dependent
error processing should be placed here
*/
end RECElVE$ERROR,
210311-17
2-364
inter
AP·134
TRANSMIT$BUFFER: procedure(buf$ptr,buf$length)
declare
buf$ptr
bu f.$leng th
pointer,
byte;
j" set up transmit buffer pointer and buffer length in global variables for
interrupt service *1
tx$buffer$ptr=buf$ptr;
transmit$length=buf$length;
transmit$status=not$complete;
output(data$port)=transmit$buffer(O) ;
transmit$index=lj
/* setup status for not complete
j" transmit f,rst character "j
j" first character transmitted
~/
OJ
/* wait until transmission complete or error detected */
while transmit$status = not$complete do; end;
if transmit$status <> complete
then return false:
else return true;
end TRANSMIT$BUFFER;
RECEIVE$BUFFER: procedure (buf$ptr,buf$length$ptr);
declare
buf$ptr
pointer,
buf$length$ptr pointer,
buf$length
based buf$length$ptr byte;
j" set up receive buffer pointer in global variable for interrupt service "j
rx$buffer$ptr=buf$ptr;
receive$index=O;
receive$status=not$complete;
j" set status to not complete "j
j* wait until buffer received "j
while receive$status = not$complete do; end;
buf$length=receive$length;
if receive$status = complete
then return true;
else return false;
end RECEIVE$BUFFER;
210311-18
2-365
inter
Ap·134
APPENDIX C
INTERRUPT-DRIVEN TRANSMITIRECEIVE SOFTWARE
declare
j* global variables for buffer manipulation *j
rx$buffer$ptr
pointer,
j* pointer to receive buffer *j
receive$buffer based rx$buffer$ptr(12S) byte,
receive$status
byte initial(O),
j* indicates receive buffer status *j
receive$index
byte,
1* current index into receive buffer */
byte,
r ece i ve$leng th
j* length of final receive buffer *j
tx$buffer$ptr
pointer,
j* pointer to transmit buffer *j
transmit$buffer based tx$buffer$ptr(128) byte,
byte initial (0) ,
transmit$status
j* indicates transmit buffer status *j
byte,
transmit$index
j* current index into transmit buffer *j
transmit$length
byte,
/* length of buffer to be transmitted */
cmd$port
data$port
a$cmd$port
b$cmd$port
line$feed
not$complete
complete
overrun
channel$reset
er ror $reset
reset$ext$status
1 terally
1 terally
1 terally
1 terally
1 terally
1 terally
1 terally
1 terally
'43H' ,
'41H' ,
'42H' ,
'43H',
'OAH',
"0",
'OFFH',
"1",
1 terally 'lSH',
1 terally '30H' ,
1 terally 'lOH';
210311-20
2-366
inter
AP-134
MPSC$INT$INIT: procedure (clock$rate,stop$bits,parity$type,parity$enable,
rx$char$length,rx$enable,auto$enable,
tx$char$length,tx$enable,dtr,brk,rts,
ext$en,tx$en,rx$en,stat$affects$vector,
config,priority,vector$int$mode,int$vector) ;
declare
clock$rate
stop$bits
parity$type
parity$enable
rx$char$length
rx$enable
auto$enable
tx$char$length
tx$enable
dtr
brk
rts
ext$en
tx$en
rx$en
stat$aff$vector
conf ig
prior ity
vector$int$mode
int$vector
byte,
byte,
byte,
byte,
byte,
byte,
byte,
byte,
byte,
byte,
byte,
byte,
byte,
byte,
byte,
byte,
byte,
byte,
byte,
byte;
output(b$cmd$port)=channel$reset;
/"
/"
/"
/"
/"
/"
/"
/"
/"
/"
/*
/"
/"
/"
/"
/"
/"
/"
/"
/"
2-bit
2-bit
I-bit
I-bit
2-bit
I-bit
I-bit
2-bit
I-bit
I-bit
I-bit
I-bit
I-bit
I-bit
2-bit
I-bit
2-bit
I-bit
3-bit
S-bit
code for clock rate divisor "/
code for number of stop bits "/
parity type "/
parity enable */
receive character length */
receiver enable */
auto enable flag */
transmit character length "/
transmitter enable "/
status of DTR pin "/
data link break enable "/
status of RTS pin "/
external/status enable */
Tx interrupt enable "/
Rx interrupt enable/mode "/
status affects vector flag "/
system config - int/DMA "/
priority flag "/
interrupt mode code "/
interrupt type code "/
/" channel reset "/
output(b$cmd$port)=l4H;
/" point to WR4 "/
/" set clock rate, stop bits, and parity information "/
output(b$cmd$port)=shl(clock$rate,6) or shl(stop$bits,2) or shl(parity$type,l)
or parity$enable;
output(b$cmd$port)=13H;
/" point to I'iR3 "/
/" set up receiver parameters "/
output(b$cmd$port)=shl(rx$char$length,6) or rx$enable or shl(auto$enable,5);
output(b$cmd$port)=15H;
/" point to WR5 "/
/" set up transmitter parameters "/
output(b$cmd$port)=shl(tx$char$length,5) or shl(tx$enable,1) or shl(dtr,7)
or shl(brk,4) or shl(rts,l);
output(b$cmd$port)=l2H;
/" set up interrupt vector "/
output(b$cmd$port)=int$vector;
/" point to WR2 "/
output(a$cmd$port)=l2H;
/" point to WR2, channel A "/
/" set up interrupt modes "/
output(a$cmd$port)=shl(vector$int$mode,3) or shl(priority,2) or config;
output(b$cmd$port)=IIH;
/" point to WRI "/
/" set up interrupt enables "/
output(b$cmd$port)=shl(rx$en,3) or shl(stat$aff$vector,2) or shl(tx$en,l)
or ext$en;
end MPSC$INT$INIT;
210311-21
2-367
AP-134
MPSC$RECEIVESCIIARACTER$INT: procedure in tee rupt 2 2H:
/* ignore input if no open buffer */
If receive$status <> not$complete then return;
1* check for receive buffer overrun *1
if receive$index = 128
then receive$status=overrun:
else do:
1* read character from MPSC and place in buffer - note that the
parity of the character must be masked off during this step if
the character is less than 8 bits (e.g., ASCII) *1
receive$buffer(receiv~$index) ,character=input(data$port) and 7FH:
receive$index=receive$index+l:
/* update receive buffer lndex *1
1* check for line feed to end line *1
if character = line$feed
then do; receive$len9th=receive$index; receive$status=complete: end;
end:
end MPSC$RECElVE$CHARACTER$INT:
MPSC$TRANSMIT$CHARACTER$INT: procedure interrupt 20H:
1* check for more characters to transfer *1
if transmit$index < transmit$length
then do:
/* write next character from buffer to MPSC *1
outpUt(data$port)=transmit$buffer(transmit$index) :
transmit$index=transmit$index+l:
1* update transmit buffer index */
end:
else transmit$status=complete:
end MPSC$TRANSMIT$CHARACTER$INT,
RECEIVE$ERROR$INT: procedure interrupt 23H,
declare
temp
byte,
output(cmd$port)=l,
receive$status=input(cmd$port) ,
temp=input (data$port) ,
output(cmdSport)=error$reset,
1* temporary character storage *1
1* point to RRl
*/
1* discard character */
1* send error reset *1
1* *** other application dependent
error processing should be placed here
11
** * /
end RECElVE$ERROR$INT,
EXTERNALSSTATUS$CHANGE$INT: procedure interrupt 21H:
transmitSstatus=input(cmd$port)
output(cmd$port)=reset$ext$status:
1* input status change information
1* *** other application dependent
error processing should be placed here
***
*/
*/
end EXTERNALSSTATUSSCHANGESINT,
210311-19
2-368
inter
Ap·134
APPENDIX D
APPLICATION EXAMPLE USING SDK-86
This application example shows the 8274 in a simple
iAPX-86/88 system. The 8274 controls two separate
asynchronous channels using its internal interrupt controller to request all data transfers. The 8274 driver
software is described which transmits and receives data
buffers provided by the CPU. Also, status registers are
maintained in system memory to allow the CPU to
tnonitor progress of the buffers and error conditions.
THE HARDWARE INTERFACE
Nothing could be easier than the hardware design of-an
interrupt-driven 8274 system. Simply connect the data
bus lines, a few bus control lines, supply a timing clock
for baud rate and, voila, it's done! For this exatnple, the
ubiquitous SDK-86 is used as the host CPU system.
The 8274 interface is constructed on the wire-wrap area
provided. While discussing the hardware interface,
please refer to Diagram 1.
Placing the 8274 on the lower 8 bits of the 8086 data
bus allows byte-wide data transfers at even I/O addresses. For simplicity, the 8274's CS input is generated
by combining the M/IO select line with address line A 7
via a 7432. This places the 8274 address range in multiple spots within the 8086 I/O address space. (While
fine for this example, a more complete address decoding is recommended for actual prototype systems.) The
8086's Al and A2 address lines are connected to the AO
and Al 8274 register select inputs respectively. Although other port assignments are possible because of
the overlapping address spaces, the following I/O port
assignments are used in this example:
Port Function
Data channel A
Command/status A
Data channel B
Command/status B
1/0 Address
OOOOH
0002H
0004H
0006H
To connect the 8274's interrupt controller into the system an inverter and pull-up resistor are needed to convert the 8274's active-low, interrupt-request output,
INT, into the correct polarity for the 8086's INTR interrupt input. The 8274 recognizes interrupt-acknowledge bus cycles by connecting the INTA (INTerrupt
Acknowledge) lines of the 8274 and 8086 together.
The 8274 ReaD and WRite lines directly connect to the
respective 8086 lines. The RESET line requires an inverter. The system clock for the 8274 is provided by the
PCLK (peripheral clock) output of the 8284A clock
generator.
On the 8274's serial side, traditional 1488 and 1489 RS-
232 drivers and receivers are used for the serial interface. The onboard baud rate generator supplies the
channel baud rate timing. In this example, both sides of
both channels operate at the same baud rate although
this certainly is not a requirement. (On the SDK-86,
the baud rate selection is hard-wired thru jumpers. A
more flexible approach would be to incorporate an
8253 Programmable Interval Timer to allow softwareconfigurable baud rate selection.)
That's all there is to it. This hardware interface is completely general-purpose and supports all of the 8274
features except the DMA data transfer mode which requires an external DMA controller. Now let's look at
the software interface.
SOFTWARE INTERFACE
In this example, it is assumed that the 8086 has better
things to do rather than continuously run a serial channel. Presenting the software as a group of callable procedures lets the designer include them in the main body
of another program. The interrupt-driven data transfers
give the effect that the serial channels are handled in
the background while the main program is executing in
the foreground. There are five basic procedures: a serial
channel initialization routine and buffer handling routines for the transmit and receive data buffers of each
channel. Appendix D-1 shows the entire software listing. Listing line numbers are referenced as each major
_routing is discussed.
The channel initialization routine (INITIAL 8274),
starting with line #203, simply sets each channel into a
particular operating mode by loading the command
registers of the 8274. In normal operation, once these
registers are loaded, they are rarely changed. (Although
this example assumes a simple asynchronous operating
mode, the concept is easily extended for the byte- and
bit-synchronous modes.)
l
CONTROL
LINES
CONNECTOR
~ ADDRESS
BUS EXPANSION
CONNECTOR
):0
I\)
'P
lJ
-..j
004
o
c.:i
•
EXPANSION EXPANSION
SOCKET
SOCKET
LED DISPLAY
210311-22
(For detailed description on SDK-86, refer to SDK-86 MCS-86 System Design Kit Assembly Manual.) ~
inter
AP-134
SDK·88
EXPANSION
BUS
5V
751488
40
VCC
INTR
AD
WR
ilm
PCiJ(
38
28
41
22
48
21
50
27
38
2
12
D7
D5
D4
14
13
12
14
15
10
16
D3
17
D2
18
Dl
DO
RTSA
WR
RxDA
19
2
23
MilO
A2
A
ffiA
CDA
RESET
DB7 '
DTRA
DBI
DB5
751489
8274
TxDB
DB4
RTSB
DB3
DB2
RxDB
DBl
CTSB
CHANNEL
B
DBO
CDB
cs
DTRB
A7
Al
CHANNEL
INTA
ClK
RST
D8
TxDA
iNT
AD
6
25
8
24
AO
~
Al
RxCA
TxCiI
PI~:
__________________________-J
210311-23
Figure D-1. 8274/SDK-86 Hardware Interface
The channel operating modes are contained in two tables starting with line # 163. As the 8274 has only one
command register per channel, the remaining seven
registers are loaded indirectly through the WRO (Write
Register 0) register. The first byte of each table entry is
the register pointer value which is loaded into WRO
and the second byte is the value for that particular register.
The indicated modes set the 8274 for asynchronous operation with data characters 8 bits long, no parity, and
2 stop bits. An X16 baud rate clock is assumed. Also
selected is the "interrupt on all RX character" mode
with a variable interrupt vector compatible with the
8086/8088. The transmitters are enabled and all model
control lines are put i": their active state.
2-371
In addition to initializing the 8274, this routine also sets
up the appropriate interrupt vectors. The 8086 assumes
the first I K bytes of memory contain up to 256 separate
interrupt vectors. On the SDK-86 the initial 2K bytes
of memory is RAM and therefore must be initialized
with the appropriate vectors. (In a prototype system,
this initial memory is probably ROM, thus the vector
set-up is not needed.) The 8274 supplies up to eight
different interrupt vectors. These vectors are developed
from internal conditions such as data requests, status
changes, or error conditions for each channel. The initialization routine arbitrarily assumes that the initial
8274 vector corresponds to 8086 vector location 80H
(memory location 200H). This choice is arbitrary since
the 8274 initial vector location is programmable.
AP-134
Finally, the initialization routine sets up the status and
flag in RAM. The meaning and use of these locations
are discussed later.
Following the initialization routine are those for the
transmit commands (starting With line # 268). These
commands assume that the host CPU has initialized the
publicly declared variables for the transmit buffer
pointer, TX_POINTELCHx, and the buffer length,
T~LENGTH_CHx. The transmit command routines simply clear the transmitter empty flag, TX EMPTY CHx, and load the first character of the buffer into
the transmitter. It is necessary to load the first character in this manner since transmitter interrupts are generated only when the 8274's transmit data buffer becomes empty. It is the act of becoriting empty which
generates the interrupt not simply the buffer being empty, thus the transmitter needs one character to start.
The host CPU can monitor the transmitter empty flag,
T~EMPTY_CHx, in order to determine when
transmission of the buffer is complete. Obviously, the
CPU should only call the command routine after first
checking that the empty flag is set.
After returning to the main program, all transmitter
data transfers are handled via the transmitter-interrupt
service routines starting at lines # 360 and # 443. These
routines start by issuing an End-Of-Interrupt command
to the 8274. (This command resets the internal-interrupt controller logic of the 8274 for this particular vector and opens the logic for other internal interrupt requests. The routines next check the length count. If the
buffer is completely transmitted, the transmitter empty
flag, T~EMPTY _CHx, is set and a command is
issued to the 8274 to reset its interrupt line. Assuming
that the buffer is not completely transmitted, the next
character is output to the transmitter. In either case, an
interrupt return is executed to return to the main CPU
program.
The receiver commands start at'line # 314. Like the
transmit commands, it is assumed that the CPU has
initialized the' receive-buffer-pointer public variable,
RX-POINTELCHx. This variable points to the
first location in an empty receive buffer. The command
routines clear the receiver ready flag, R~READY_
CHx, and then set the receiver enable bit in the 8274
WR3 register. With the receiver' now enabled, any received characters are placed in the receive buffer using
interrupt-driven data transfers.
The received data service routines, starting at lines
#402 and #485, simply place the received character in
the buffer after first issuing the EOI command. The
character is then compared to an ASCII CR. An ASCII CR causes the routine to set the receiver ready flag,
RX~EADY _CHx, and to disable the receiver. The
CPU can interrogate this flag to determine when the
buffer contains a new line of data. The receive buffer
pointer, RX_POINTELCHx, points to the last received character and the receive counter, R~COUN
TELCHx, contains the length.
That completes our discussion of the command routines and their associated interrupt service routines. Although not used by the commands, two additional service routines are included for completeness. These routines handle the error and status-change interrupt vectors.
The error service routines, starting at lines # 427 and
# 510, are vectored to if a special receive condition is
detected by the 8274. These special receive conditions
include parity, receiver overrun, and framing errors.
When this vector is generated, the error condition is
indicated in RRI (Read Register 1). The error service
routine issues an EOI command, reads RRI and places
it in the ERROLMSG_CHx variable, and then issues a reset error command to the 8274. The CPU can
monitor the error message location to detect error conditions. The designer, of course, can supply his own
error service routine.
Similarly, the status-change routines (starting lines
#386 and #469) are initiated by a change in the modem-control status lines CTS/, CD/, or SYNDET/.
(Note that WR2 bit controls whether the 8274 generates interrupts based upon changes in these lines. Our
WR2 parameter is such that the 8274 is programmed to
ignore changes for these inputs.) The service routines,
simply read RRO, place its contents in the STATUS_
MSG_CHx variable and then issue a reset external
status command. Read Register contains the state of
the modem inputs at the point of the last change.
°
°
Well, that's it. This application example has presented
useful, albeit very simple, routines showing how the
8274 might be used to transmit and receive buffers using an asynchronous serial format. Extensions for byteor bit-synchronous formats would require no hardware
changes due to the highly programmable nature of the
8274's serial formats.
2-372
inter
AP-134
8274 APPLICATION BRIEF PROGRAM
ISIS-II /1:5-86 twI;R() AS5EItlLEF Y2 1 AS5EItlLY
OBJECT PIOOllE PLAC£O IN F1 AS\I(B OBJ
A55EItlLER IN\II)(ED B\' A5It86 F1 ASYN:8 SRC
LOC OBI
LINE
(J'
IOltlE ASYN:8
Slm:E
...
..
)."'..................................................**.........01<*••
,
,
,
6
7
B
9
19
11
12
13
14
15
16
17
18
19
29
21
22
23
24
8274 II'PllCATI(Ij BRIEF _
,
,
" TIE 8274 IS INITIR.IZED F~ SIIflE AS'ItDm«lIS SETlIR.
" FIJ!I1AT AJ() IIOCT~ INTERRIJ>T-OfHIION DATA TRANSFERS
" TIE INITIALIZATION ROOTINE ALSO LOfI)S THE B8B6'S INTERRIJ>T
" IIOCT~ TfB.E FROII lHE COOE SE(J£NT INTO L()I RAI1 (Ij TIE
" SIlI(-86 THE IRANSIUTTER AJ() RECEJIn ARE LEFT ENfB.ED
"
" F~ I_IT, THE CPU PASSES IN I£I«JRV THE POINTER (J' A
" BlfFER TO T_IT AJ() TIE B\'TE LEt«lTN (J' TIE BlfFER
" TIE OATA IRftfSfER PROCEED U51t«l INTERRlI'T-DRIW TRftf5fERS
" A STATUS BIT IN IElQ'I 15 SET II£N IF BlfFERS IS EIfiY
•
•
"
" F~ RECEllIO, THE CPU PASSES lHE POINTER (J' II 8tfFER TO FlU •
" TIE BlfFER IS FIUEO lIITil A 'CR-CII~' ~TER IS PECEIW •
" II STATUS BIT IS SET AJ() TlE CPU lIlY READ THE Rl( POINTER TO
" OETERIIIHE TIE lOCATI(Ij OF TIE lAST ~TER
,
.
•
2"i
" ALl ROOTIHES ARE ASSIIED TO EXIST IN TIE 5M COOE SEGIENT
" CAll'S TO TIE SERVICE ROOTINE~ ARE ASSIIED TO BE "SIUU" ~
" INTRftSE(J£NT «(IjlY TIE RET\.I1N ADDRESS IP IS (Ij TIE STACJ()
26
27
2B
29
39
"
"
"
", ...........***t*...................................
2-373
•
..........
210311-24
intJ
AP-134
/1:5-86 tR:RIl R55EIIIL£R
ASYlG
Lot OOJ
Llf£
31
32
33
34
35
36
37
38
39
48
41
42
43
44
45
46
47
48
49
58
51
S2
53
5(UC£
-
fISYt«:8 ,/IXIllE NAI£
Pl8.1C
Pl8.IC
Pl8.IC
Pl8.IC
Pl8.IC
INlTlfL_t!274
TllCOltftt)_CH8
TX_COItftt)_CHA
RllCOllfH)_CIII
RX_COIIfH).£Ill
,PI8.IC DEa.ARATlONS FOR COItftt) ROUTlf£S
, INlTlfLlZATlON ROOTlf£
oTX BlfF9 rotIAIC) ClRf£L
, TX SI.f'FER cat1fII«) CHfH£L
oRX BlfFER CiHtANO CHAMll
,RX BlfFER COIIflN[l CHAMil
B
A
8
A
; Pl8.IC DECLARATIONS FOR STATUS I'IRIA8LES
Pl8.IC
Pl8.IC
Pl8.IC
Pl8.IC
PlRIC
Pl8.IC
Pl8.IC
PU8LIC
PU8LIC
PU8LIC
RllRERW.,CIl!
RllREIIlV_CHA
TUN'TY_CItI
TllElf'TV_CHA
RllcoctlT_CHB
RllcoctlT.CIIA
ERROR-'ISILCHB
ERROR..1!5G_CHA
STATUS-'ISG_CItI
STATUS_ItSG..CHA
oRX REIIlV FLoo CHB
,RX REillY FLoo CHA
oTX Elf'TY FLoo CItI
, TX EIfTY FLoo CIIA
,RX BlfFER coctlTER CIII
,RX BlfFER ro~TER CHA
oERROR FLoo CIII
,ERROR FLoo CHA
oSTATUS FLoo CH8
,STATUS FLoo CIIA
54
55
eeet!
11982
11982
---
56
57
58
S9
68
61
62
63
64
6S
66
67
68
69
78
71
72
73
oPU8LIC DECLARATIONS FOR VARIABLES PASSE" TO THE TRANSHIT
,IN) RECElYE IXltM)5
PU8LIC
PU8LIC
PU8LIC
PU8LIC
Pl8.IC
PU8LIC
TIi.POINTER_CItI
TX..I.ENGTN_CIII
TIi.PGINTER..CHA
TIi.LENGTN_CHA
RllPOINTER..CItI
RllPOINTER.r1lA
' TX
oTX
, TX
' TX
,RX
,RX
BUFFER POINTER FOR (liB
LEOOTH OF 8UFFf:R FOR CIII
BlfFER POINTER FOR ellA
LEI~TH OF BlfFER FOR ellA
BUFfER POINTER FOR ellB
BlfFER POINTER FOR CIIA
,110 PORT ASSIGlflENTS
,CHfN£L A PORT ASSIGNIIENTS
EIlI)
EIlI)
EIlI)
MTA_PORLCHA
rotIfHl_PORT_CHA
STATUS_PORLCIIA
2_ _ PORUIIA
,MTA I/O PORT
,CC.wtAND PORT
,STATUS PORT
,6_ _ PORT _(lIB
,DATA l. '0 PORT
,CCI'IIIAND PORT
,STATUS PORT
8
,CIfM£!. 8 PORT A5SIIlhIIENTS
74
75
&200
76
77
7B
79
88
81
82
Il500
8;
MTA_PORT _CHB
COIIfH) _POR1.CHB
STATUS_PORT_CIIB
,MIS( SYSTElI
EQlJ
EIlI)
EOO
E~TES
E(11.1
IHUIRLBASE EIlI)
caDE.5TART
EIlU
CF_CHR
IlCIH
2eeH
50'Jl
,ASCll CR (HfIPA( TEP CO£'E
,INT VECTIlli 8A5E AVVRESS
,STAPT lOCf
DW
DII
STS.YECT~.CHB [III
STS.CS.'III
DII
. STATlJS INTERP'-I'T ''{[TOP FOP ,;tie
RX..YECTOIUHB
RX..CS.Oi!3
,R:-: IHTEPRUPT VEOOP FOP (HE
OW
DW
ERR.'.UTOP.CIfl DII
ERILCS.CHB
DW
,EWOf' [NTEWlJPT YECTOR F,lf' [HE
TX. YECTC!UHA
TX.CS.CHA
,T:, IHTERRll'T VECT(II F(II CHA
DII
DW
STS.VECTOIUHA DII
STS.CS.CHA
DII
RX..YECTOIUIIA
RX.CS.CHA
ow
ERILYECTOR.CHA
ERR.CS.CNA
ow
ow
,"IS(
~
,SIATliS INTERRII'T VECT(I> F(II (HA
,RX IHTEI1PIJPT VECTOR F(I> CHA
DW
,EI1ROrI INTERRlI'T YECT(II F(II CHA
LOCATIOOS FOR ClftKL STATI!S ANC' POINTERS
,CHAlffl B POINTERS
TX.POINTER.CIII
IX.LEM;TH.CHB
RX.POINTEUHB
RXJOlINT.rlf!
TX.EHPTUHB
RX.REf{IV.CHe
STAWS.I'ISG.CIIl
ERRClI.MSG..CHe
fIN(>
STATlIS
DW
' TX BUFFER POINTER F(I> CHB
' IX BUFFEP LENGTH F(~ eNS
,px 8IJfFEP POINTER FOP CHE
,RX LEI~TH W.liTEP F(I> eHB
, r,: t.oor FLAG
,REII>Y FLAG 11 IF (R.[HP PECElVE[', ELSE S'
,STATl~ ClftG: ~SSAGE
,ERf'OF STATUS LOCATION ra IF NO EPPOP"
ow
DW
DII
DB
DB
DB
DB
114
m
922C _
922E _
92J8 _
82l2_
8214118
B2l'i 118
B2J6 00
8237 08
136
E7
1,8
139
140
141
142
143
144
145
146
(He
,CHAHt£L A POINTERS
rUOINTEUHA
TX.LENGTH.CHA
RX.POINTER.CHA
RX.W.lH.CHA
TX.EIIPTY.CHA
RX.READV.CHI!
STATlIS."56.CHA
EI1ROrI.MSG.CHA
DATA
ow
DW
DII
DII
DB
DB
DB
DB
fIN(>
5TATlIS
, IX BlfFEF POIllTEP FOP ,HA
' Te: BlIF'EP LEN6TH FOP [HA
,PX "'.HEP POINTER FI)P CHA
,RX lE/l:;TH W.IlTEP FOP ':HA
' TX OONE FLAG
,READV FLAG (1 IF (P.Oil' PE[EI''{[" E~5E
,STAnJS CHANGE I1ESSAIjE
,EWOP STATL~ LOCATION r. IF NO E,PIf"
@
EOOS
147
148 +1 .EJECT
210311-26
2-375
inter
II( 5-86
I1fI(RO A5SEtlBlEP
lIX 003
AP-134
ASI'NtB
LINE
SOOIICE
14~
158
ABC
SEGl'CNT
ASSlII1E C5 ABC· ['S (";TA.55 ['ATA
ORO
Cor'UTART
151
152
l53
154
155
156
157
158
·**••**.....***"'.**********.****. . . . . *1-.......'t "**>Ii.**-t**:tt t:f: .. t."' . . . "0+;,,, ......
,*
..
"
_TERS
F~
C_L INITIAL!i:ATION
159
168
•CHfIIf£L 8 PflRAltETERS
161
162
0580 81
_16
ese2 82
ese3 88
e5e4 83
eses C&
163
,WI11 - INTERRIJ'T
CIIOSTRB DII
1. 16M
ALL fIX CHII, YARlfiliLE INT VECTOP. T:.: INT ENABLE
164
165
,J,R2 - IN1£RRIfT VECiCi<
J>8
2, 8
MCH
169
179
171
,WI15 - OTR ACTII'E, TX $ BJTS:CHR. TX . TX [NT ENASLE
C/IOSTRA J>8
1, 12H
179
188
,1'*2 - I'ECTOREO INTERRIJ'T FOP a.186
J>8
2.3811
181
182
•WR3 - I1X 8 8ITS/CHI>. RX NSABLE
J>8
3.OC0H
183
184
•J,R4 - X16 W)(¥. 2 5TOF 91TS.
J>8
4.4CH
185
186
08
187
188
.1'*6
J>8
,~
1(1
PARITY
- DTR ACTIVE. TX 8 BITS/CHII. T,: ENABLE. m ACii\,£
S, eEAH
fI(o
WI17 NOT REll.lIRED FOR ASIOC
8,8
189
199 +1 IE3m
210311-27
2-376
inter
Ap·134
MeS·86 !!AeRO ASSEPI8I.EP
ASYH(B
LOC OBI
LINE
5(lJI'cr
191
192
· START OF COI1I1fINV I10UTINES
1~
, ... **,.... ... *****.........*"' ........................... U'f,'h-+ U"t.tH-+HU..;tf"
m
19'5
1%
197
198
199
200
201
2e2
20J
294
9518
8518
!!SIE
8522
e528
852C
8532
8516
85JC
8548
8546
854ft
855e
8554
855A
855£
8564
C71i688e.10896
8C1!Ee282
C7e68482lS86
8Cl!E8682
C_4986
8C1!E1!fI82
C786K827786
8Cl!E8A82
C70618828C66
8Cl!E1282
C7061482B906
BCI!EI682
C7061S82C11e6
8Cl!E1A82
C7061C82fS86
8CI!E1E82
INlTlAl.I~AT!~ rOll'lflt(· F!l1 THE ~:~4 . THE 81'4
IS SETL!' AC(ORl'ING TO THE PAfAl£TEPS STOPE" IN
PR(loI ABOIIE STARTING AT ("STRe FOR CHf",*l 8 ANI,
(HSTIIA FO!' ClRf£L A
....
..
·•••• ***u******** ........***.** •••
+........ "'..........."'* . . *** ••• J t .......... "
INlTIAI..8274
. (If\'
2e'j
HOY
2e6
i'IO'i
!l)y
!l)V
297
21lfJ
i'IO'i
i'IO'i
i'IO'i
i'IO'i
ItO\'
2e9
218
211
212
2E
214
215
216
217
218
219
i'IO'i
i'IO'i
ItO\'
ItO\'
i'IO'i
!l)V
i'IO'i
22e
INTEPRUPT IJECTO!' IP AN[. (5 YAH!'S
TX.IJECTO!'.CHB, OFFSET XNTII~
TX.CS.CHe. CS
S!S-IIEL!OUHB. OFFSET STAINB
STS_CS_CHe. CS
RX_IlECTQIUHB. OFFSET P( 'IINB
Rx..CS_CHB, CS
ERR.IlECTIl1.ClIl. OFFSET ERRINB
RX_CS.CII8, CS
TX.IlECTOIU'IIft. OFFSET XtlTINA
TX.CS_Cllft. CS
STS_IlECTOUHft. OFFSET STAINA
ST5.CS.CHA, C5
RX.VECTOP.CHfI. OFFSET PC'IIHft
Rx..CS.CIIft, CS
ERR.IlECTOP.CHfI. OFFSET EPRIHfI
ERR_CS_CHA. CS
FRCI1 PROM TO f'AM
· T:: vATA VEl: T~ OIB
· STATI.~
· RX [lATA
'1ECT(~·
vm(~
(He
(HE:
· ERPOP 'IEOOP (HS
.TX [)iITA IlEmill CIIT'
· STATIJS VECTOP CHA
· R~: VilTA 'I£CTOP CHfi
•EPI10P VECTO" [HA
221
222
8568
81'_
22}
224
8568_
225
856E
9571
8574
8577
226
227
228
229
E82E88
BF8C95
BA8200
E82500
,ClfI' SETLI' TAlilE _TEPS INTO 8274
HOY
HOV
CAl.L
HOV
i'IO'i
CALL
01. OFFSET OIl'STRS
OX, COItI1AI('.POPL(HB
SETUI'
OJ, OFFSET CIi>STIIA
DX. Ct'IItIfIN).POIIUIift
SETUP
.lNlTlAl.IZE (118
· (OfY (lIB PflRAHETH'S
· INITIfUZE Olft
•COP'I CHfi PAI>AMETEPS
23e
231
232
!!S7ft1l88888
8570 A22B82
esee A23782
8563 A22A82
8586 A21682
8589 A32682
esac A3l282
858F II'l91
8591 1122982
85~ A23582
85~7 A22882
859A A23482
859D FB
859E C3
859F 8A85
85A1 3C88
85A3 7484
• INITIAl.IZE STATUS BYTES All, FLAGS
m
234
MOY
MOV
215
ItO\'
236
237
238
MOV
MOV
i'IO'i
23~
I10V
248
241
242
247
244
245
246
24,
248
249
250
i'IO'i
ItO\'
i'IOY
i'IO'i
i'IO'i
5T!
RET
SETlI'
i'IO'i
CIf>
JE
AX. e
ERI1O!'.HS6_CHB. AI.
ERI!OR.KSG_Cllft, AL
STATUS_H..'<>.CIIl, AI.
STATlIS.KSG.CIIft, III
RX_COUNLCIIl. A>:
RX.COONUHft. A:,:
,CLEAI>
· CLEAI>
· CLEAR
· (LEAI'
,CLEAR
•CLEfIf1
ERROP FLfli CHI!
EPROI1 FLAG (Hfi
STATUS FLAG CHe
STATIJS flAG Clift
RX CIUIlER OlE
RX WJIITER (11ft
Ill. 1
RX.READY _,till,
RX.PEADy'cHft,
TUMPlY _OIB,
TX.EIf'TY.CIIft·
Al. [DIl
AI., e
001£
Al
III
AL
AI.
· SET R:,
,SET RX
· SET H
· SET T:,
· ENfI8lE
· FETUf1N
[,OlE FLAG Oil
DONE FLAG Clift
DONE FLAG (He
DOI£ FLAG CHft
INTERRLI'TS
• DONE WITH SEllf'
· Pff'AI1ETER (OP'IIN6
~JT!~
210311-28
2-377
inter
AP-13 ..
LOC 08)
LINE
EE
95A6 47
e5f17 ESF6
Er.i119 G
251
OUT
I'X, 'l
,OllTPLIT PAflAI1ETEF'
2'5.2
INC
~I
,POINT RT NEXT PAI'RMEm
251
JIf>
5m~
,(;) LOf![' IT
254
DONE
~ET
,DONE - SO PETlIto"' .........u ........ .t***......... *********u ... ***u .... i+'**.+*11 ••*.......... ~ ~* ••
307
J88
PX CIllt1AND FIJ( CHftHL B - THE CALLING POUTINE rnST
"
)09
INITIALIZE PX_FIl!NTER_CHB TO POINT AT THE PECm~
319
BUFFER BEFORE CALLING THIS ROUTH£
9'jA5
SOlJRCE
,
"'.*.*••
05AA
e5fIA 50
B5AII 57
95AC 52
85All C68628l12BB
e5B2BA84BB
8585 893£2002
85119 IlfI05
Il5B8 EE
I!SB( SA
8"..eo SF
eSSE 58
aSBF C1
I
*."' ••
I ••••
•
"'*."'. ••
85C8
W050
WI 57
8SC2 52
85() (686)48200
85(8_
85C8 883E2C82
85CF 8A85
851>1 EE
95D2 SA
851>} SF
85D4 58
85D5 C3
,.
,.,.
2-378
210311-29
inter
AP-134
11C5-86 IffRO fiSSEI1BLER
ASI'NCB
LOC iJtll
UNE
~1~
21~
85116
114
9SD6 58
::>15
95D~
RX_[C"I1ANUHB
PUSH
A~
316
P1.ISH
[i~:
850B C696296Zi10
317
9500 C7062_
8S£> BAe6iI0
85E6 B003
85E8 E£
85E988(1
85EB EE
SSEC 5A
118
319
329
321
322
323
5<4
IflY
I1IJII
I1IJII
8SED 58
325
326
52
8SEE C3
. SAVE j;'£lji!TEP5
OliT
,(LEAR p": PEfI[,Y fLAG
RX_CIllINLCHI!, • "LEAl> " COIJNTER
OX, COllllfHU'ORLCHB
,POINT nT e,)_r, F,)PT
fL,
,SET UP fOR WI'?
~X, fL
AL OC1H
,j,j(, - 8 BlT5:'(~, EllABLE 0,:
OX, AL
f'(l'
Oi,
f'(l'
AX
~X_~ER(lY_CH8
110'1
I)JT
MO'I
I1ET
327
32'3
329
330
m
332
m
334
ns
8SEf
SSEF 58
8SF8 52
85F1 C6863S82t18
85F6 (786328_
8SFCBftIl2e8
8SFF B003
8681 EE
Il682 secl
8604 EE
0685 SA
868658
8687 C3
336
337
330
339
,""****.***".******•••****."'***"'***.*.*" •• '1<**** ..,. ~
+0 . . . . . . . . -t: ..........
~
"
,,
"
,•
RX COIttfI/(l FOR ClRf£L A - THE CALLINii fl)JTlNE MUST
INlTlALIZE RXJ>OINTEUHA TO POINT AT THE RECEIVE
BUFFER BEFORE CfLUNG THIS ROllTlNE
"
RX_C _ _ CIfI
PUSH
PUSH
Ill\'
348
MOV
341
342
tll'I
I1IJII
343
OOT
110'1
OOT
144
345
346
f'(l'
f'(l'
347
~~
,SAVE I1EGISTEPS
OX
RX-READUHA, 8 ,CLEfifl fIX REIH FLAG
RX_CCWUIfI, 8 ,(LEAl> RX WJNTER
Ox, CIl1f1fH)_POPLCHA
,POINT AT I.CltlANI) f'IlPT
fL, 3
,SET UP FOR WIC
OX, fL
fL, OC1H
dIP? - 8 BITS,tlfl, E'fIBLE R:'
[)X, fL
DX
A;;
348
RET
349
359 +1 fEJECT
,I1ET~
351
352
353
354
355
356
357
"
35e
,CIIIHfiL 8 TRfIHSItlT DATA SEl/lliCE roJTlI£
START Of INTERRlfT SEI/IIICE ROUTINES
"
359
868852
868957
868A 58
_E862lI1
_ FF06281!2
8612 FF8Em2
0616 748£
0618_
0618
061F 8B3E2002
_
0621 EE
362
XMTIIf! PUSH
PUSII
PUSH
363
CfLL
364
INC
369
361
365
DEC
366
367
JE
110'1
368
369
3711
110'1
OOT
/IOV
DX
,SAVE
REGISTE~
01
AX
EOI
' SENO EOI COItIff«) TO 82,4
TX_POINTER_CHI! ,POINT TO NEXT CNARAl:TER
TILLENGTH_CHI! ,DEC LENIlTH [(OJNTER
XIS
,TEST IF DOlE
DX, DATA_POPUH8
,NOT [>(IN( - GET NE,T CHfIPfl( TEP
01, TX]OINTEP_CHIl
fL, [vll
,PIJT CIlARAl:TEP IN AL
DX, AL
,OIJTPliT IT TO 8274
210311-30
2-379
inter
AP-134
ItCS'86 ItACR() AS5EI1BLER
AS'INCB
LOC ooJ
LIlt:
8622 58
371
8623
8624
B625
862.
8629
8628
B62C
8631
8632
8633
8634
374
375
376
377
378
379
389
381
382
51'
5A
CF
BAe68e
802S
EE
C6B62802S1
58
51'
5A
CF
m
373
383
384
8635 52
8636 57
8637 58
8638 EIJI)';88
8638_
863E EC
863F A22A92
0642 Be10
0644 EE
064~ 58
8646 Sf
,0647 5A
064S CF
0649 52
1164A 57
864858
864( EOC1Be
064f 88:>£2492
385
386
387
388
389
398
m
m
;91
XIS
f'(J>
f'(J>
f'(J>
AX
DI
OX
lRET
/flV
ItO\I
•RETlIIN TO FOREGRIJIJND
OX, m1lfHHORLCHB
,fU CHffIACTERS HAVE SEEN SEND
fl. 2SH
. RESfT TRff6IIlTm INTERru'T PEIf·ING
DX. AI.
TX.EIf'TY.CHIl, 1 . DOOE • 50 SET TX EIf'TY FLM (He
AX
•RESTOI1E REGISTEI1S
01
DX
· RETURN TO FOREGRC'JND
IXJT
ItO\I
f'(J>
PIJ>
f'(J>
lRET
,CIftf£L B STATUS CIflNlE SET1I'IU ROOTlI£
STAINB PUSH
PUSH
PUSH
CALL
ItO\I
IN
/flY
I10V
OUT
POP
394
395
3%
POP
39i'
POP
]!IS
399
400
oIe1
402
DX
,SAVE REGISTERS
01
AX
EOI
,S£NI) EOI COI1/IAHlI TO 9274
OX, ~J'(~UHll
fl. DX
'REff> RRO
5TATlIS."S(LCHB. fl
. PlJT RRe IN STATUS I1ESSAGE
Al. 1!IH
. SE'" RESET STATUS INT COI'II'IAN{l TO 8274
Ox, AI.
AX
. RESTORE REGISTEI1S
DI
OX
lRET
. rHANlt:L B REUlVED MTA
PCYINB PUSH
OX
404
PUSH
PUSH
fI);
405
406
CAlL
HOV
0653 BA04ee
4e~
PIOV
8656 EC
865~ 8805
0659 FF862402
e65!' FF062602
8661 ~(OO
866, ~5eE
0665 C~ge201
498
499
HOV
e60A BA0608
B0ll,
866f EE
0670 BOC0
%,~' EE
066(.
06i'} 58
0674 51'
06;5 SA
%76 CF
483
IN
11K
IN(
410
411
412
41:
414
415
41<
('Mf'
JNE
MY
MOV
I1QY
41i'
WT
418
419
I1QY
4~0
4cl
422
42,
424
4.25
•RESTORE REGISTEI1S
('.IT
RIo
SE~'YI(E
ROUTlI£
· SRI!
~fGISTEPS
Vi
E,JI
,SfN{l £OJ (otf1AH[! TO 827'4
DI. RX.POINTER.CHB
. (£1 R:-: (HS ['HEP POINTEP
I'X. MTA.POPLOIB
ft.. [):~
· REAl' CHAm: TEP
[DI J. AI.
· STOff IN BlIFFEP
~>:.POINTEP .CHB · SIJPiP THE SUFFEP fOlllTEP
· BI.~IP THE WJNTU
P'.COIJNUHB
AI.. [P.(1f'
· TEST '[F LAST (HAP"CTEF' TO [:E 'fen··iE['
RIB
P'•.PEflUUHE.. 1 .'IE5. SET PEAl·Y FLAG
D:j. (OII'IffI['.P[~UHB
,htHH AT (l)M/o1f11(1 F'fIPT
Al.
.POIlIT AT NO,
['X. Ai.
At. 0C!IH
· ['ISABLE p,-:
[·x. Ai.
FOf'
Hi.
POP
POF'
[,[
EITHEF Wfi'T' '!O'E3TOPE
F·£IjI':TEF'~
v.'
I~1
· PETUPN TO F(IFFjPOIJNf
. ':HAlfNEL E. EPROI' 3EPVICE Rl'JTlHE
4;:t:
52
96;'8 59
.:w.;(~
,"
428
PUSH
11(;
0';;'~
ES94ee
42~
(AlL.
H I , SEN[- Em COt'1"1Atlf, TO
06~(
Bfl(1)5OO
4~0
~lOV
[,>;. ((If'1I'fAI.,_POH JHP
':,2~,r
.
210311-31
2·380
inter
AP-134
II:S-86 Ift:I!O ASSEII!I.ER
ASYNCB
LOC
(8J
LIfE
86/F
8681
8682
8683
BIl81
EE
EC
fI22II82
_BBJ8
86BBEE
_58
86BR SA
86BB CF
soo.m
4J1
432
433
434
435
436
437
438
439
1
,.".
~,
OOT
IN
I)l(,~
,.".
,.".
ERR\IUtSI:LCIII,
~, 38H
DI(, ~
fIX
OOT
POP
POP
~,I»(
,POINT RT RfU
.REfI) RRI
.5IWE IT IN EIIROi FUll
•SENII RESET ERRt* C(»IIfM\ TO 8274
~
•RESTORE REGISTERS
I»(
IRET
,R£MN TO F!W!EGIIOIN)
+48
868C 52
86BD 57
_58
86BF E87E88
8692 FFIl62C82
8696 FF8E2E82
86!IR 748E
869C IIfI888II
869F 883£2t82
86R3 8fI85
86115 EE
_58
86R7 SF
_SR
86R9CF
I!6Itl 1118288
86fI) B928
il6IF EE
86B8 C686:i48281
86B5 58
_51'
8687 SA
86B8 CF
e6B~
52
_5~
86B8 58
868C
E85188
_ BR8288
86C2 EC
06C: A2>682
II6C6 8818
e.;cs EE
86(~ 58
IlOCR SF
86CB SA
(liCe
CF
et.CD 52
86CE 57
86CF 58
90108 E8:D88
901·;
ee,E882
86£0<_
441
442
443
444
445
446
447
+48
449
458
451
452
453
454
455 •
456
457
458
459
468
401
46.l
46;
464
465
466
467
468
469
478
471
4;2
4iJ
474
475
4,6
4(7
478
4/9
488
481
482
483
484
485
486
-IS7
,CIfH£L R TRfINSIfIT DATR SERVICE RWTJfE
lIIITlNA PUSH
PUSH
PUSH
CfLL
1M:
DEC
JE
HOV
,.".
HOY
ruT
POP
POP
POP
XIR
I»(
,SllYE REGISTERS
DI
fIX
EOI
TXJ'OINTElU)fI
TILLENGTlLCifl
XIR
,SEIC> EOI COIftI) TO 8274
,POINT TO I£XT ClflRK.TE11
· DEC LE/liTH C(MTE11
·TEST IF OM
1»(. DATR~T..CHR
.I(IT OM - GET NEXT CIflRflCTER
01, TXJ'OINTEILtHR
~, [DJJ
· PUT CIfIlOCTER IN ~
1»(. ~
· OOTPUT IT TO 8274
fIX
· RESTORE i1£GISTERS
01
I»(
IRET
HOY
OX.
COIftI)~Ulfl
,.".
~.
28H
ooT
fh(.
~
ItO'!
POP
POP
TX_EII'TV_CIfI. 1 ,DONE - so SET TX EItPTV FLfIl CHB
AX
· RESTI)I1E REGISTERS
01
POP
I»(
· RETlI1N TO F!W!EilRtUI'
IRET
,~ ~TE11S HR\IE BEEN SEN[>
.RESET _mER INTE11!1lI'T P£J{'11fj
,11E1U1H TO FOf1EGRCU{·
•CHRN£L R STRTUS CIM'£ SEWICE 1l(l.ITI1£
STAINR Pl.lSI!
PUSH
[.j
PUSH
AX
CfLL
EOI
.SEH[· EOI COI'I1A/{· TO 8~~4
OX. rntItRI{·_POPLCHR
~. OX
.REII' PI10
STATUS_~S(UHR. II.
. PUT P/10 IN 5TATUS ~SSfllE
11.. Illi
· SEN[· I1ESEI STAIUS INT (CltIA!{! TO S2~'
~X. II.
AX
· RESTOI1E REGISTEPS
01
HOV
IN
HOY
HOY
OUT
POP
POP
POP
~x
.5IWE PEGISTERS
&lI
IRET
CHfIff£L A RECElVE[' ['AIA SEPVICf; ROUTINE
Pel/[NA PUSH
~x
PUSH
~I
PUSI!
· SR\lE PEGISTERS
498
(II.L
AX
EOI
4~
ItO\
[.j.
4"8
ItO\I
t·;,. DRTAJ'OI'UHR
SEN[· EOI COftlAN[· TO ~2~4
I>.'-POINT'UHR
. GET P;: (itA B1JfFEP P.lINTE'
210311-32
2-381
inter
AP-134
H($-t«:> f1H(1'\J H>,ElRfR
ASI'NCB
LOC OBJ
LINE
iI60ft EC
491
I!6DB
492
493
8ge5
I!6I)(l FFIl63882
86£1 FFIl632B2
1l6E53C81)
Il6E775IIE
1l6E9 1:61l6358291
Il6EE BAe200
Il6Fl1l883
B6F:; EE
1l6F4~
86F6 EE
1l6F,58
1l6F85F
B6F9 SA
B6FA CF
IN
I10V
11£
11£
494
495
4%
C!1P
JIE
IfJ'I
I'IIY
m
498
499
5eB
5e1
502
583
HOY
RIA
584
58';
51!6
OOT
I10V
OUT
POP
POP
POP
IPET
AL, DX
. REfIC- CHAFf!( TEP
CD J1. II.
•STWO IN BUFFE~
RX_POINTER..ofl. BIN Ttf BUFFER POINTE~
~U\wT _CNA
. BIN TI£ c\wTE~
Ill, CIUHk
. TEST IF LAST C~TER TO BE RECElVEI"
RIA
~x..REfK)~ _CNA. I ,YES, SET IlEfI(,~ FLAG
OX, C_'_P~LCHR
. POINT AT (0_ POPT
Fl, 3
,POINT AT 1iR3
DX, II.
11., OCeH
,OI5fI8lE RX
DX. AI.
AX
. EITI£~ 1IfI(, 'IIESTOfIE FEGI5TEI1S
01
DX
. RETl.fN TO F~GROI.I«o
587
588
,CHfltt:L A ~ SERVICE 11«.lTJIE
5e9
Il6FB S2
ll6Fe 511
Il6FD ESlBee
9788_
8783 11881
8705 EE
87116
8787
878A
B70C
EC
A2:;m
8838
EE
8i'8ll 58
8i'9E SA
871!F CF
518
ERRINA PUSH
PUSH
511
512
513
514
515
516
517
518
CALL
HOI'
IIOY
OUT
IN
I10V
IIOY
OUT
519
528
521
522
523
524
525
526
8719 58
527
8711 52
8712_
0715 8838
8717 EE
8718 SA
0719 58
07/A C3
528
529
5>11
POP
POP
lRET
,SAVE REGISTERS
AX
; SEt«> EOI COIIIfMl TO 8274
COltlflND_PORLCNA
I
,POINT AT RRI
II.
OX
,READ RRI
~-'IS('_CNA. II.
•SAVE IT IN ERROR FLAG
11., 3BH
• SEt«> RESET ERROIl COllltAh\) TO 8274
Ox. II.
AX
,RESTOIIE REGISTERS
OX
. RETl.fN TO FOREGI1Ol..,
,EIf>-OF-INTERRIPT ROUTINE - SEM>S EOI C _ TO 8274
, THIS CIlWft) /lUST II.WAYS TO ISst£O ON CHANHfL A
EOI
PUSH
PUSH
lIlY
lIlY
531
OUT
532
POP
POP
533
534
ox
EOI
DX,
11.,
OX,
11.,
AX
. SAVE REGISTEI1S
DX
OX. CIlItlANILPORUHA
,ALWAYS F!J1 CHANHfL A '"
fl, 3BH
OX, AI.
OX
AX
RET
535
536
537
538
•EM> OF CODE ROUTlIE
5;9
EJ{>
fI8C
ENIoS
ASSEI18LY CMlETE, NO ERROIlS FrwD
210311-33
REFERENCES
1. 8274 Multiprotocol Serial Controller (MPSC) Data
Sheet, Intel Corporation, California, 1980.
2. Basics of Data Communication, Electronics Book
Series, McGraw-Hill, New York, 1976.
3. Telecommunications and the Computer, J. Martin,
Prentice-Hall, New Jersey, 1976.
4. Technical Aspects of Data Communications, J. McNamara, DEC Press, Massachusetts, 1977.
5. Miscellaneous Data Communications StandardsEIA RS-232-C, EIA RS-422, EIA RS-423, EIA
Standard Sales, Washington, D.C.
2-382
inter
APPLICATION
NOTE
AP-145
November 1986
Synchronous Communication with
the 8274 Multiple Protocol
Serial Controller
SIKANDAR NAQVI
APPLICATION ENGINEER
Order Number: 210403-001
2-383
Ap·145
INTRODUCTION
The INTEL 8274 is a Multi-Protocol Serial Controller,
capable of handling both asynchronous and synchronous communication protocols. Its programmable features allow it to be configured in various operating
modes, providing opimization to given data communication application.
This application note describes the features of the
MPSC in Synchronous Communication applications
only. It is strongly recommended that the reader read
the 8274 Data Sheet and Application Note AP134
"Asynchronous Communication with the 8274 MultiProtocol Serial Controller" before reading this Application Note. This Application note assumes that the reader is familiar with the basic structure of the MPSC, in
terms of pin description, ReadIWrite registers and
asynchronous communication with the 8274. Appendix
A contains the software listings of the Application Example and Appendix B shows the MPSC ReadIWrite
Registers for quick reference.
The first section of this application note presents an
overview of the various synchronous protocols. The
second section discusses the block diagram description
of the MPSC. This is followed by the description of
MPSC interrupt structure and mode of operation in the
third and fourth sections. The fifth section describes a
hardware/software example, using the INTEL single
board computer iSBC88/45 as the hardware vehicle.
The sixth section consists of some specialized applications of the MPSC. Finally, in section seven, some useful programming hints are summarized.
SYNCHRONOUS PROTOCOL
OVERVIEW
This section presents an overview of various synchronous protocols. The contents of this section are fairly
tutorial and may be skipped by the more knowledgeable
reader.
Bit Oriented Protocols Overview
Bit oriented protocols have been defined to manage the
flow of information on data communication links. One
of the most widely known protocols is the one defined
by the International Standards Organization: HDLC
Opening
Flag
Byte
Address·
Field (A)
(High Level Data Link Control). The American Standards Association's protocol, ADCCP is similar to
HDLC. CCITT Recommendation X.25 layer 2 is also
an acceptable version of HDLC. Finally, IBM's SDLC
(Synchronous Data Link Control) is also a subset of the
HDLC.
In this section, we will concentrate most of our discussion on HDLC. Figure I shows a basic HDLC frame
format.
A frame consists of five basic fields: Flag, Address,
Control, Data and Error Detection. A frame is bounded by flags-opening and closing flags. An address field
is 8 bits wide, extendable to 2 or more bytes. The control field is also 8 bits wide, extendable to two bytes.
The data field or information field may be any number
of bits. The data field mayor may not be on an 8-bit
boundary. A powerful error detection code called
Frame Check Sequence contains the calculated CRC
(Cycle Redundancy Code) for all the bits between the
flags.
ZERO BIT INSERTION
The flag has a unique binary bit pattern: 7E HEX. To
eliminate the possibility of the data field containing a
7E HEX pattern, a bit stuffing technique called Zero
Bit Insertion is used. This technique specifies that during transmission, a binary 0 be inserted by the transmitter after any succ;:ession of five contiguous binary I's.
This will ensure that no pattern of 0 I I 1 1 1 lOis ever
transmitted between flags. On the receiving side, after
receiving the flag, the receiver hardware automatically
deletes any 0 following five consecutive I's. The 8274
performs zero bit insertion and deletion automatically
in the SDLC/HDLC mode. The zero-bit stuffing ensures periodic transitions in the data stream. These
transitions are necessary for a phase lock circuit, which
may be used at the receiver end to generate a receive
clock which is in phase to the received data. The inserted and deleted O's are not included in the CRC checking. The address field is used to address a given secondary station. The control field contains the link-level control information which includes implied acknowledgement, supervisory commands and responses, etc. A
more detailed discussion of higher level protocol functions is beyond the scope of this application note. Interested readers may refer to the references at the end of
this application note.
Control'·
Field (C)
Data
Field
Figure 1. HDLC/SDLC Frame Format
"Extendable to 2 or More Bytes.
"" Extendable to 2 Bytes.
2-384
Frame
Check
Sequence
Closing
Flag
Byte
inter
AP-145
The data field may be of any length and content in
HDLC. Note that SDLC specifies that data field be a
multiple of bytes only. In data communications, it is
generally desirable to transmit data which may be of
any content. This requires that data field should not
contain characters which are defined to assist the transmission protocol (like opening flag 7EH in HDLC/
SDLC communications). This property is referred to as
"data transparency". In HDLC/SDLC, this code
transparency is made possible by Zero Bit Insertion discussed earlier and the bit oriented nature of the protocol.
The last field is the FCS (Frame· Check Sequence). The
FCS uses the error detecting techniques called Cyclic
Redundancy Check. In SDLC/HDLC, the CCITICRC must be used.
NON-RETURN TO ZERO INVERTED (NRZI)
NRZI is a method of clock and data encoding that is
well suited to the HDLC protocol. It allows HDLC
protocols to be used with low cost asynchronous modems. NRZI coding is done at the transmitter to enable
clock recovery from the data at the receiver terminal by
using standard digital phase locked loop techniques.
NRZI coding specifies that the signal condition does
not change for transmitting a 1, while a causes a
change of state. NRZI coding ensures that an active
data line will have transition at least every 5-bit times
(recall Zero Bit Insertion), while contiguous O's will
cause a change of state. Thus, ZBI and NRZI encoding
makes it possible for a phase lock circuit at the receiver
end to derive a receive clock (from received data) which
is synchronized to the received data and at the same
time ensure data transparency.
°
Byte Synchronous Communication
As the name implies, Byte Synchronous Communication is a synchronous communication protocol which
means that the transmitting station is synchronized to
the receiving station through the recognition of a special sync character or characters. Two examples of Byte
Synchronous protocol are the IBM Bisync and MonoSYNC
SYNC
SOH
HEADER
sync. Bisync has two starting sync characters per message while monosync has only one sync character. For
the sake of brevity, we will only discuss Bisync here.
All the discussion is valid for Monosync also. Any exceptions will be noted. Figure 2 shows a typical Bisync
message format.
The Bisync protocol is defined for half duplex communication between two or more stations over point to
point or multipoint communication lines. Special characters control link access, transmission of data and termination of transmission operations for the system. A
detailed discussion of these special control characters
(SYN, ENQ, STX, ITB, ETB, ETX, DLE, SOH,
ACKO, ACK1, WACK, NAK and EOT,'~tc) is beyond
the scope of this Application Note. Readers interested
in more detailed discussion are directed to the references listed at the end of this Application Note.
As shown in Figure 2, each message is preceded by two
sync characters. Since the sync characters are defined
at the beginning of the message only, the transmitter
must insert fill characters (sync) in order to maintain
synchronization with the receiver when no data is being
transmitted.
TRANSPARENT TRANSMISSION
Bisync protocol requires special control characters to
maintain the communication link over the line. If the
data is EBCDIC encoded, then transparency is ensured
by the fact that the field will not contain any of the
bisync control characters. However, if data does not
conform to standard character encoding techniques,
transparency in bisync is achieved by inserting a special
character DLE (Data Link Escape) before and after a
string of characters which are to be transmitted transparently. This ensures that any data characters which
match any of the special characters are not confused for
special characters. An example of a transparent block is
shown in Figure 3.
In a transparent mode, it is required that the CRC
(BCC) is not performed on special characters. Later on,
we will show how the 8274 can be used to achieve
transparent transmission in Bisync mode.
STXTEXT
ETXOR ETB
CRC1
CRC2
ETX
BCC
Figure 2. Bisync Message Format
DLE
STX
Enter transparent mode
TRANSPARENT TRANSMISSION
DLE
return to normal mode
Figure 3. Bisync Transparent Format
2-385
inter
AP-145
each
BLOCK DIAGRAM
channel:
TxDRQA, TxDRQB, RxDRQA,
that TxDRQB and RxDRQa,2,ecome
IPO and IPI respectively in non-DMA mode. IPI is the
Interrupt Priority Input and IPO is the Interrupt Priority Output. These two pins can be used for connecting
multiple MPSCs in a daisy chain. If the Wait Mode is
programmed, then TxRDQA and RxDRQA pins become RDYB and RDYA pins. These pins can be wireOR'ed and are usually hooked up to the CPU RDY
line to synchronize the CPU for block transfers. The
INT pin is activated whenever the MPSC requires CPU
attention. The INTA may be used to utilize the powerful vectored mode feature of the 8274. Detailed discussion on these subjects will be done later in this Application Note. The RESET pin may be used for hardware
reset while the clock is required to click the internal
logic on the MPSC.
RxDRQ~ote
This section discusses the block diagram view of the
8274. The CPU interface and serial interface is discussed separately. This will be followed by a hardware
example in the fifth section, which will show how to
interface the 8274 with the Intel CPU 8088. The 8274
block diagram is shown in Figure 4.
CPU Interface
The CPU interface to the system interface logic block
utilizes the AO, AI, CS, RD and WR inputs to communicate with die internal registers of the 8274. Figure 5
shows the address of the internal registers. The DMA
interface is achieved by utilizing DMA request lines for
r----------,
CHANNEL A
TxDA
CHANNEL A
TRANSMITTER
DaO·7
TxCA
CHANNEL A
WRITE
REGISTERS
DCO'A
CLK
RESET
RDYalTxDRoA
I
!
"':::::;::::::::::::::)1
f'\
CTSA
CHANNEL
CONTROLA
LOGIC
RTSA
SYNDETA
ROY AIRxDRoA
~
IPOITxDRoa
IP11RxDRoa
INT
DTRA
1/\--'---' CHANNEL A
READ
C
REGISTERS
SYSTEM
INTERFACE
CONTROL
LOGIC
a
~ ~~::::::::::::~
RxDA
CHANNEL A
RECEIVER
RxCA
m
INTA
Ao
A1
TxDa
+f
TxCa
DCDa
CHANNEL a
CTSa
{
SYSTEM INTERFACE
SYNDETa
RTSa
!mra
RxCa
RxDa
NETWORK INTERFACE
210403-1
Figure 4. 8274 Block Diagram
2-386
inter
Ap·145
CS
0
0
A1
0
0
0
0
1
Write Operation
AO
0
0
CHA
CHA
DATA READ
STATUS REGISTER
(RRO,RR1)
CHA DATA WRITE
CHA COMMAND/PARAMETER
(WRO-WR7)
1
1
1
CHB
CHB
DATA READ
STATUS REGISTER
(RRO,RR1,RR2)
CHB DATA WRITE
CHB COMMAND/PARAMETER
(WRO-WR7)
X
X
HIGHZ
1
Read Operation
HIGHZ
Figure 5. Bus Interface
Serial Interface
Transmit and Receive Data Path
On the serial side, there are two completely independent channels: Channel A and Channel B. Each chan-
Figure 6 shows a block diagram for transmit and receive data path. Without describing each block on the
diagram, a brief discussion of the block diagram will be
presented here.
nel consists of a transmitter block, receiver block and a
set of read/write registers which are used to initialize
the device. In addition, a control logic block provides
the modem interface pins. Channel B serial interface
logic is a mirror image of Channel A serial interface
logic, except for one exception: there is only one pin for
RTSB and SYNDETB.
A a given time, this pin is either RTSB or SYNDETB.
This mode is programmable through one of the internal
registers on the MPSC.
TRANSMIT DATA PATH
The transmit data is transferred to .the twenty-bit serial
shift register. The twenty bits are needed to store two
bytes of sync characters in bisync mode. The last three
bits of the shift register are used to indicate to the internal control logic that the current data byte has been
shifted out of the shift register. The transmit data in the
CPU I 0
TxOA
TxCA
210403-2
Figure 6. Transmit and Receive Data Path
2-387
inter
AP-'f45
transmit shift register is shifted out through a two bit
delay onto the TxData line. This two bit delay is used
to synchronize the internal shift clock with the external
transmit clock. The data in the shift register is also
presented to zero bit insertion logic which inserts a zero
after sensing five contiguous ones in the data stream. In
parallel to all this activity, the eRe-generator is computing eRe on the transmitted data and appends the
frame with eRe bytes at the end of the data transmission.
RECEIVE DATA PATH
The received· data is passed through a one bit delay
before it is presented for flag/sync comparison. In bisync mode, after the synchronization is achieved, the
incoming data bypasses the sync register and enters directly into the three bit buffer on its way to receive shift
register. In SDLe mode, the incoming data always
passes through the sync register where the data pattern
is continuously monitored for contiguous ones for the
FIRST DATA CHARACTER
FIRST NON-SYNC
CHARACTER (SYNC MODES)
INTERRUPT
ON FIRST RECEIVE
CHARACTER
VALID ADDRESS
BYTE (SDLC)
INTERRUPT ON
ALL RECEIVE
CHARACTERS
PARITY ERROR
RX. OVER-RUN ER~OR
FRAMING ERROR
SPECIAL
RECEIVE
CONDITION
INTERRUPT
END OF FRAME
(SDLCONLY)
DCD TRANSITION
MPSC
INTERRUPTS
CTS TRANSITION
SYNC TRANSITION
TX UNDER-RUN/EOM
BREAK/ABORT DETECT
TRANSMIT
INTERRUPT
TX BUFFER EMPTY
210403-3
Figure 7. MPSC Interrupt Structure
2-388
inter
AP-145
zero deletion logic. The data then enters the three bit
buffer and the receive shift register. From the receive
shift register, the data is transferred to the three byte
deep FIFO. The data is transferred to the top of the
FIFO at the chip clock rate (not the receiver clock). It
takes three chip clock/periods to transfer data from the
serial shift register to the top of the FIFO. The three bit
deep Receive Error FIFO shifts any error condition
which may have occurred during a frame reception.
While all this is happening, the CRC checker is checking the CRC on the incoming data. The computed
CRC is checked with the CRC bytes attached to the
incoming frame and an error generated under a nocheck condition. Note that the bisync data is presented
to the CRC checker with an 8-bit delay. This is necessary to achieve transparency in bisync mode as will be
shown later in this Application Note.
MULTI-PROTOCOL SERIAL
CONTROLLER (MPSC) INTERRUPT
STRUCTURE
The MPSC offers a very powerful interrupt structure,
which helps in responding to an interrupt condition
very quickly. There are mUltiple sources of interrupts
within the MPSC. However, the MPSC resolves the
priority between various interrupting sources and interrupts the CPU for service through the interrupt line.
This section presents a comprehensive .discussion of all
the 8247 interrupts and the priority resolution between
these interrupts.
All the sources of interrupts on the 8274 can be
grouped into three distinct categories. (See Figure 7.)
1. Receive Interrupts
2. Transmit Interrupts
3. ExtemallStatus Interrupts.
An internal interrupt priority structure sets the priority
between the. interrupts. There are two programmable
options available on the MPSC. The priority is set by
WR2A, D2 (Figure 8).
PRIORITY
WR2A:D2
Highest
0
RxA
RxA
1
Lowest
TxA RxB TxB EXTA EXTB
AxB TxA TxB EXTA EXTB
Figure 8. Interrupt Priority
Receive Interrupt
All receive interrupts may be categorized into two distinct groups: Receive Interrupt on Receive Character
and Special Receive Condition Interrupts.
RECEIVE INTERRUPT ON RECEIVE
CHARACTER
A receive interrupt is generated when a character is
received by the MPSC. However, as will be discussed
later, this is a programmable feature on the MPSC. A
Rx character available interrupt is generated by the
MPSC after the receive character has been assembled
by the MPSC. It may be noted that in DMA transfer
mode too, a receive interrupt on the first receive character should be programmed. In SDLC mode, if address search mode has been programmed, this interrupt
will be generated only after a valid address match has
occurred. In bisync mode; this interrupt is generated on
receipt of a character after at least two valid sync characters. In monosync mode, a character followed after at
least a single valid sync character will generate this interrupt. An interrupt on first receive character signifies
the beginning of a valid frame. An end of the frame is
characterized by an "End of Frame" Interrupt (RR1:
D7).' This bit (RR1:D7) is set in SDLC/HDLC mode
only and signifies that a valid ending flag (7EH) has
been received. This bit gets reset either by an "Error
Reset" command (WRO: D5D4D3 = 110) or upon reception of the first character of the next frame. In multiframe reception, on receiving the interrupt at .the
"End of Frame" the CPU may issue an Error Reset
command which will reset the interrupt. In DMA
mode, the interrupt on first receive character is accompanied by a RxDRQ (Receiver DMA request) on the
appropriate channel. At the end of the frame, an End of
Frame interrupt is generated. The CPU may use this
interrupt to jump into a routine which may redefine the
receive buffer for the next incoming frame.
'NOTE:
RR1:D7 is bit D7 in Read Register 1.
SPECIAL RECEIVE CONDITION. INTERRUPTS
So far, we have assumed that the reception is error free.
But this is not 'typical' in most real life applications.
Any error condition during a frame reception generates
yet another interrupt-special receive condition interrupt. There are four different error conditions which
can generate this interrupt.
(i) Parity error
(ii) Receive Overrun error
(iii) Framing error
(iv) End of Frame
(i) Parity error: Parity error is encountered in asynchronous (start-stop bits) and in bisync/monosync protocols. Both odd or even parity can be programmed. A
parity error in a received byte will generate a special
receive condition interrupt and sets bit 4 in RR 1.
2-389
inter
AP-145
(ii) Receive Overrun error: If the CPU or the DMA
controller (in DMA mode) fails to read a received character within three byte times after the received character interrupt (or DMA request) was generated, the receiver buffer will overflow and this will generate a special receive condition interrupt and sets bit 5 in RR 1. '
(iii) Framing error: In asynchronous mode, a framing
error will generate a spt;<;iaJ receive interrupt and set bit
D6 in RR1. This bit is not latched and is updated on
the next received character.
(iv) End of frame: This interrupt is encountered in
SDLC/HDLC mode only. When the MPSC receives
the closing flag, it generates the special receive condition interrupt and sets bit D7 in'RRI.
All the special receive condition interrupts may be reset
by issuing an Error Reset Command.
CRC Error: In SDLC/HDLC and synchronous modes,
a CRC error is indicated by bit D6 in RR1. When used
to check CRC error, this bit is normally set until a
correct CRC match is obtained which resets this bit.
After receiving a frame, the CPU must read this bit
(RRI:D6) to determine if a valid CRC check had occurred. It may be noted that a CRC error does not
generate" an interrupt.
It may also be pointed out that in SDLC/HDLC mode,
receive DMA requests are disabled by a special receive
condition and can only be re-enabled by issuing an Error Reset Command.
Transmit Interrupt
A transmit buffer empty generates a transmit interrupt.
This has been discussed earlier under "Transmit in Interrupt Mode'~ and it would be sufficient to note here
that a transmit buffer empty interrupt is generated only
when the transmit buffer gets empty-assuming it had
a data character loaded into it earlier. This is why on
starting a frame transmission, the first data character is
loaded by the CPU without a transmit empty interrupt
(or DMA request in DMA mode). After this character
is loaded into the serial shift register, the buffer becomes empty, and an interrupt (or DMA request) is
generated. This interrupt is reset by a "Reset Tx Interrupt/DMA Pending" command (WRO: D5 D4 D3 =
101).
External/Status Interrupt
Continuing our discussion on transmit interrupt, if the
transmit buffer is empty and the transmit serial shift
register also becomeS empty (due to the data character
shifted out of the MPSC), a transmit under-run interrupt will be generated. This interrupt may be reset by
"Reset ExternaVStatus Interrupt" command (WRO:
D5 D4 D3 = 101).
The External Status Interrupt can be caused by five
different conditions:
(i) CD Transition
(ii) CTS Transition
(iii) Sync/Hunt Transition
(iv) Tx under-run/EOM condition
(v) Break/Abort Detection.
CD, CTS TRANSITION
Any, transition on these inputs on the serial interface
will generate all External/Status interrupt and set the
corresponding bits in status register RRO. This interrupt will also be generated in DMA as wel~n Wait
Mode. In order to find out the state of the ers or CD
pins before the transition had occurred, RRO must be
read before issuing a Reset ExternaVStatus Command
through WRO. A read of RRO after the Reset ExternaV
Status Command will give the condition of ers or CD
pins after the transition had occurred. Note that bit DS
in RRO gives the complement of the state of CTS pin
while D3 in RRO reflects the actual state of the CD pin.
SYNC HUNT TRANSITION
Any transition ,of the SYNDET input generates an interrupt. However, sync input has different functions in
different modes and we shall discuss them individually.
SDLC Mode
In SDLC mode, the SYNDET pin is an outl'ut. Status
register RRI, D4 contains the state of the SYNDET
pin. The Enter Hunt Mode initially sets this bit in RO.
An opening flag in a received SDLC frame resets this
bit and generates an external status interrupt. Every
time the receiver is enabled or the Enter Hunt Code
Command is issued, an external status interrupt will be
generated on receiving a valid flag followed by a valid
address/data character. This interrupt may be reset by
the "Reset ExternaVStatus Interrupt" command.
External SYNC Mode
The MPSC can be programmed into External Sync
Mode by Setting WR4, D5 D4 = II. The SYNDET
pin is an input in this case and must be held hig~ until
an external character synchronization is established.
However, the External Sync mode is enabled by the
Enter Hunt Mode control bit (WR3: D4). A high at the
SYNDET pin holds the Sync/Hunt bit (RRO,D4) in
the reset state. When external synchronization is established. SYNDET must be, driven low on second rising
2-390
inter
AP-145
edge of RxC after the rising edge of RxC on which the
last bit of sync character was received. This high to low
transition sets the Sync/Hunt bit and generates an external/status interrupt, which must be reset by the Reset External/Status command. If the SYNOET input
goes high again, another External Status Interrupt is
generated, which may be cleared by Reset ExternaV
Status command.
In SOLC Receive Mode, an Abort sequence (seven or
more I's) detection on the receive data line will generate an External/Status interrupt and set RRO,07. A
Reset ExternaVStatus command will clear this interrupt. However, a termination of the Abort sequence
will generate another interrupt and set RRO,07 again.
Once again, it may be cleared by issuing Reset External/Status Command.
Mono-Sync/Bisync Mode
This concludes our discussion on External Status Interrupts.
SYNOET pin acts as an output in this case. The Enter
Hunt Mode sets the Sync/Hunt bit in RO. Sync/Hunt
bit is reset when the MPSC achieves character synchronization. This high to low transition will generate an
external status interrupt. The SYNDET pin goes active
every time a sync pattern is detected in the data stream.
Once again, the external status interrupt may be reset
by the Reset External/Status command.
Interrupt Priority Resolution
The internal interrupt priority between various interrupt sources is resolved by an internal priority logic
circuit, according to the priority set in WR2A. We will
now discuss the interrupt timings during the priority
resolution. Figures 9 and 10 show the timing diagrams
for vectored and non-vectored modes.
Tx UNDER-RUN/END OF MESSAGE (EOM)
The transmitter logic includes a transmit butTer and a
transmit serial shift register. The CPU loads the charaeter into the transmit butTer which is transferred into
the transmit shift register to be shifted out of the
MPSC. If the transmit butTer gets empty, a transmit
butTer empty interrupt is generated (as discussed earlier). However, if the transmit butTer gets empty and the
serial shift register gets empty, a transmit under-run
condition will be created. This generates an External
Status Interrupt and the interrupt can be cleared by the
Reset External Status command. The status register
RRO, 06 bit is set when the transmitter under-runs.
This bit plays an important role in controlling a transmit operation, as will be discussed later in this application note.
BREAK/ABORT DETECTION
In asynchronous mode, bit 07 in RRO is set when a
break condition is detected on the receive data line.
This also generates an ExternaVStatus interrupt which
may be reset by issuing a Reset External/Status Interrupt command to the MPSC. Bit 07 in RRO is reset
when the break condition is terminated on the receive
data line and this causes another Externa1/Status interrupt to ge generated. Again, a Reset ExternaVStatus
Interrupt command will reset this interrupt and will
enable the break detection logic to look for the next
break sequence.
VECTORED MODE
We shall assume that the MPSC accepted an internal
request for an interrupt by activating the internal INT
signal., This leads to generating an external interrupt
signal on the INT pin. The CPU responds with an interrupt acknowledge (INTA) sequence. The leading
edge of the first INTA pulse sets an internal interrupt
acknowledge signal (we will call it Internal INTA). Internal INTA is reset by the high going edge of the third
IN"fA pulse. The MPSC will not accept any internal
requests for an interrupt during the period when Internal INTA is active (high). The MPSC resolves the priority during various existing internal interrupt requests
during the Interrupt Request Priority Resolve Time,
which is defined as the time between the leading edge of
the first INTA and the leading edge of the second
INTA from the CPU. Once the internal priorities have
been resolved, an internal Interrupt-in-service Latch is
set. The external INT is also deactivated when the Interrupt-in-Service Latch is set.
2-391
The lower priority interrupt requests are not accepted
internally until an EOI (WRO: OS D4 03 = III Ch. A
only) command is issued by the CPU. The EOI command enables the lower priority interrupts. However, a
higher priority interrupt request will still be accepted
(except during the period when internal INTA is active) even though the Internal-in-Service Latch is set.
intJ
AP-145
INTERNAL INT
ACCEPTED
U-TERNAL
INT
.... _ _ _ _ _ _---J~
\
\
l ....--------------~\~------------~r------_r
INTA
INTERNAL
INTA
------1.----
I
.~=---------N-O-I-NTE-\....jRN~r.L{INTERRUPTS ACCEPTED
Y
INT-IN.SER~~E
(INTERNAL LATCH)
EOICOMMA.~ND~
___________________________
~
210403-4
Figure 9. 8274 In 8085 Vectored Mode Priority Resolution Time
INTERNAL INT
ACCEPTED
EXTERNAL INT - - - . . . . ,
\
IPI
\
\
POINTER 2
SPECIFIED
~NOINTERNALINTERRUPTS-==\
------~~
I
ACCEPTED
j4-PRIORITY
RESOLVE
TIME
I
....- - - I ~---f:---"t------
J
I
INT.IN.SERVICE_ _ _ _ _ _ _ _ _ _ _ _...J
(INTERNAL LATCH)
EOICOMMAND----------------------~~---J
210403-5
Figure 10. 8274 Non Vectored Mode Priority Resolve Time
2·392
inter
AP-145
This~her priority request will generate another external INT and will have to be handled by the CPU according to how the CPU is set up. If the CPU is set up
to respond to this interrupt, a new INTA cycle will be
repeated as discussed earlier. It may also be noted that
a transmitter buffer empty and receive character available interrupts are cleared by loading a character into
the MPSC and by reading the character received by the
MPSC respectively.
NON·VECTORED MODE
Figure 10 shows the timing of interrupt sequence in
non-vectored mode. The explanation of non-vectored is
similar to the vector mode, except for the following
exceptions.
- No internal priority requests are accepted duri.ng
the time when pointer 2 for Channel B is specified.
- The interrupt request priority resolution time is the
time between the leading edge of pointer 2 and leading edge of RD active. It may be pointed out that in
non-vectored mode, it is assumed that the status
affects vector mode is used to expedite interrupt response.
On getting an interrupt in non-vectored mode, the CPU
must read status register RR2 to find out the cause of
the interrupt. In order to do so, first a pointer to status
register RR2 is specified and then the status read from
RR2. It may be noted here that after specifying the
pointer, the CPU must read status register RR2 otherwise, no new interrupt requests will be accepted internally.
Just like the vectored mode, no lower internal priority
requests are accepted until an EOI command is issued
by the CPU. A higher priority request can still interrupt the CPU (except during the priority request inhibit
time). It is important to note here that if the CPU does
not perform a read operation after specifying the pointer 2 for Channel B, the interrupt request accepted before the pointer 2 was activated will remain valid and
no other request (high or low priority) will be accepted
internally. In order to complete a correct priority resolution, it is advised that a read operation be done after
specifying the pointer 2B.
EOI Command
The EOI command as explained earlier, enables the
lower priority interrupts by resetting the internal InService-Latch, which consequently resets the IPO output to a low state. See Figures 9 and 10 for details. Note
that before issuing any EOI command, the internal interrupting source must be satisfied otherwise, same
source will interrupt again. The Internal Interrupt is
the signal which gets reset when the internal interrupting source is satisfied (see Figure 9).
This concludes our discussion on the MPSC Interrupt
Structure.
MULTI·PROTOCOL SERIAL
CONTROLLER (MPSC) MODES OF
OPERATION
The MPSC provides two fully independent channels
that may be configured in various modes of operations.
Each channel can be configured into full duplex mode
and may operate in a mode or protocol different from
the other channel. This feature will' be very efficient in
an application which requires two data link channels
operating in different protocols and possibly at different
data rates. This section presents a detailed discussion
on all the 8274 modes and shows how to configure it
into these modes.
Interrupt Driven Mode
In the interrupt mode, all the transmitter and receiver
operations are reported to the processor through interrupts. Interrupts are generated by the MPSC whenever
it requires service. In the following discussion, we will
discuss how to transmit and receive in interrupt driven
mode.
TRANSMIT IN INTERRUPT MODE
The MPSC can be configured into interrupt mode by
appropriately setting the bits in WR2 A (Write Register
2, Channel A). Figure 11 shows the modes of operation.
IPI and IPO
So far, we have ignored the IPI and IPO signals shown
in Figures. 9 and 10. We may recall that IPI is the
Interrupt-Priority-Input to the MPSC. In conjunction
with the IPO (Interrupt Priority Output), it is used to
daisy chain multiple MPSCs. MPSC daisy chaining will
be discussed in detail later in this application note.
2-393
WR2A
DC)
D1
0
0
0
1
1
1
Mode
CH A and CH B in Interrupt Mode
CH A in DMA and CH B in Interrupt
Mode
CH A and CH B in DMA Mode
0
1
Illegal
Figure 11. MPSC Mode Selection for
Channel A and Channel B
inter
Ap·146
We will limit our discussion to SOLC transmit and.receive only. However, exceptions for otlier synchronous
protocols wilt be pointed'out. To-initiate a·frame transmission, the first .data character must· be loaded from
the CPU, in all cases. (OMA Mode too, as you will
notiCe later in this application note): Note, that in
SOLC mode, this first, data· cbaracter may be, the address of the station addressed by the MPSC. The transmit buffer consists of a transmit buffer and a serial shift
register.. W,hen the character is transferred from the
buffer into the serial shift regiser, an .interrupt.due to
transmit buffer empty is generated. The CPU has one
byte time to .service this interrupt andJoad,another
character into the transmitter buffer. The MPSC w.ill
generate an interrupt due to transmit buffer underrun
condition if the CPU does not service the Transmit
Buffer Empty Interrupt within one byte time.
This process will continue until the CPU. is out of any
more data characters to be sent. At this point, the CPU
does not respond to the interrupt with a pharacterbut
simply issues a Reset Tx INT/OMA pending c<;>mmand (WRO: 05 04 03 = ~OI). The,MPSC will ultimately underrun, which simply means. that both the
transmit buffer and transmit shift registers are empty.
At this point, flag character (7EH) or CRC.byte is
loaded into the transmit. shift register. This sets the
transmit underrunbit in RRO and generlltes "Transmit
Underrun/EOM" interrupt (RRO: 06 = 1).
You will recall that an SOLC frame has two CRC bytes
after the data field. 8274 generates the CRC on all the
data that is loaded from the CPU. ,Ourilfg initialization,
there is a choice of selecting a CRC-16 or CCITT-CRC
(WR5: 02). In SOLC/HOLC operation, CCITT-CRC
must be selected. We will now see how the CRC gets
inserted at the end of the data field. Here ·we have ·a
choice of having the CRe attached to the data field·or
sending the frame without the· CRO bytes .. Ollring
transmission, a "Reset Tx Underrun/EOM Latch"
command (WRO: 07 06 = 11) will ensure that at the
end of the frame when the transmitter underruns, CRC
bytes will be automatically insetted at the ~d of the
data field. If the "Reset Tx Underrun/EOM Latch"
command was not issued during the transmission of
data charaCters, ho CRC would be inserted and the
MPSC will transmit flags' (7EH) instead.
However, in case of CRC transmission, the CRC transmission sets the Tx Underrun/EOM bit and generates a
Transmittt;f UnderruniEQM Interrupt as discussed
earlier. This will have to be reset in the next frame to
ensure CRC insertion "in the next frame. It is recommended that Tx Underrun/EOM latch be reset very
early in the transmission mode, preferably after loading
the first character. It may be noted here that Tx Underrun EOM latch cannot be reset ifthere is no data in the
transmit buffer. This means that at least one character
has to be loaded into the MPSC before a "Reset Transmit Underrun/EOM Latch" command will be accepted
by the MPSC.
When the transmitter is underrun, an interrupt is generated. This .interrupt is generated at the beginning of
the CRC transmission, thus giving the user enougb
time (minimum 22 transmit clock cycles) to issue an
Abort command (WRO: 05 0403 = 00 1) in case if
the transmitted data had an error. The Abort Commandwill ensure that the MPSC transmits at least
eight l's but less than fourteen. l's before the line reverts to continuous flags. The receiver will scratch this
frame because of bad CRC.
However, assuming the transmission was good (no
Abort Command issued), after the CRC bytes have
been transmitted, closing flag (7EH) is loaded into the
transmit buffer. When the flag (7EH) byte is transferred to the serial shift register, a transmit buffer empty interrupt is generated. If another frame has to be
transmitted, a new data character has to be loaded into
the transmit buffer and the complete transmit sequence
repeated. If no more frames are to bl! transmitted, a
"Reset Transmit INT/OMA Pending" command
(WRO: D5 04 D3 = 101) will reset the transmit buffer
empty interrupt.
For character oriented protocols (Bisync, Monosync),
the same discussion is valid, except that during transmit underrun condition and transmit underrun/EOM
bit in set state, instead of flags, filler sync characters are
transmitted.
CRC Generation
The translllit CRC enable bit (WR5: 00) must be set
before loading any data into the MPSC. The CRC generator must be reset to all 1's at the beginning of each
frame before CRC computation has begun. The CRC
computation starts on the first data character loaded
from the CPU and continues until the last data character. The CRC generated is inverted before it is sent on
the Tx Oata line.
Transmit Termination
A successful transmission can be terminated by issuing
a "Reset Transmit Interrupt/OMA Pending" command, as discussed earlier. However, the transmitter
may be disabled any time during the transmission and
the results will be as shown in Figure 12.
RECEIVE IN INTERRUPT MODE
The receiver has to be initialized into the appropriate
receive mode (see sample program later in this application note). The receiver must be programmed into Hunt
Mode (WR3: D4) before it is enabled (WR3: 00). The
receiver will remain in the Hunt Mode until a flag (or
sync character) is received. While in the SOLC/Bisync/Monosync mode, the receiver does not enter the
Hunt Mode unless the Hunt bit (WR3, 04) is set again
or the receiver is enabled again.
2-$94
inter
AP-145
SOLe Address byte is stored in WR6. A global address
(FFH) has been hardwired on the MPse. In address
search mode (WR3: 02 = 1), any frame with address
matching with the address in WR6 will be received by
the MPSe. Frames with global address (FFH) will also
be received, irrespective of the condition of address
search mode bit (WR3: 02). In general receive mode
(WR3: 02 = 0), all frames will be received.
Transmitter
Result
Disabled during
1. Data Transmission Tx Data will send idle
characters· which will be
zero inserted.
2. CRC Transmission 16 bit transmission,
corresponding to 16 bits of
CRe will be completed.
However, flag bits will be
substituted in the CRC field.
3. Immediately after
issuing ABORT
command.
Abort will still be
transmitted-output will be
in the mark state.
Receive Character Length
Since the MPSe only recognizes single byte address
field, extended address recognition will have to be done
by the CPU on the data passed on by the MPSC. If the
first address byte is checked by the MPSC, and the
CPU determines that the second address byte does not
have the correct address field, it must set the Hunt
Mode (WR3: 02 = 1) and the MPSC will start searching for a new address byte preceded by a flag.
Programmable Interrupts
The receiver may be programmed into anyone of the
four modes. See Figure 13 for details.
1
0
1
0
1
1
Any change in CO input or Abort detection in the received data, will generate an interrupt if External Status
Interrupt was enabled (WRl: DO).
The receiver buffer is quadruply buffered. If the CPU
fails to respond to "receive character" available interrupt within a period of three byte times (received
bytes), the receiver buffer will overflow and generate an
interrupt. Finally, at the end of the received frame, an
interrupt will be generated when a valid ending flag has
been detected.
"NOTE:
Idle characters are defined as a string of 15 or more
contiguous ones.
0
0
External Status Interrupts
Special Receive Conditions
Figure 12. Transmitter Disabled
During Transmission
WR1,CHA
04
03
used to start a OMA transfer or a block transfer sequence using WAIT to synchronize the data transfer to
received or transmitted data.
The receive character length (6, 7 or 8 bits/character)
may ~ changed during reception. However, 'to ensure
that the change is effective on the next received character, this must be done fast enough such that the bits
specified for the next character have not been assembled.
CRC Checking
The opening flag in the frame resets the receive CRC
generator and any field between the opening and closing flag is checked for the CRC. In case of a CRC
error, the CRC/Framing Error bit in status register 1 is
set (RR 1: 06 = 1). Receiver CRC may be disabled/enabled by WR3,03. The CRC bytes on the received
frame are passed on to the CPl,J just like data, and may
be discarded by the CPU.
Receive Terminator
An end of frame is indicated by End of Frame interrupt. The CPU may issue an "Error Reset" command
to reset this interrupt.
Rx Interrupt Mode
Rx INTIDMA disable
Rx INT on first character
DMA (Direct Memory Access) Mode
INT on all Rx characters
(Parity affects vector)
INT on all Rx characters
(Parity does not affect vector)
The 8274 can be interfaced directly to the Intel OMA
Controllers 8237 A, 8257A and Intel I/O Processor
8089. The 8274 can be programmed into OMA mode
by setting appropriate bits in WR2A. See Figure 11 for
details.
Figure 13. Receiver Interrupt Modes
All receiver interrupts can be disabled by WRl: 04 03
= 00. Receiver interrupt on first character is normally
2-395
inter
Ap·145
TRANSMIT IN DMA MODE
After initializing the 8274 into the OMA mode, the
first character must be loaded from the CPU to start
the OMA cycle. When the first data character (may be
the address byte in SOLC) is transferred from the
transmit buffer to the transmit serial shift register, the
transmit buffet gets empty and a transmit OMA request (TxORQ) is generated for the channel. Just like
the interrupt mode, to ensure that the CRC bytes are
included in the frame, the transmit under-runlEOM
latch must be reset. This should preferably be done after loading the first character from the CPU. The
OMA will progress without any CPU intervention.
When the OMA controller reaches the terminal count,
it will not respond to the OMA request, thus letting the
MPSC under-run. This will ensure CRC transmission.
However, the under-run condition will generate an interrupt due to the Tx under-run/EOM bit getting set
(RRO: 06). The CPU should issue a "Reset TxInt/
ORQ pending" command to reset TxORQ and issue a
"Reset External Status" command to reset Tx Underrun/EOM interrupt. Following the CRC transmission,
flag (7EH) will be loaded into the transmit buffer. This
will also generate the TxORQ since the transmit buffer
is empty following the transmission of the C,RC byt~s.
The CPU may issue a "Reset TxINT/ORQ pending"
command to reset the TxORQ. "Reset TxINT/DRQ
pending" command must be issued before setting up
the transmit OMA channel on the OMA Controller,
otherwise the MPSC will start the OMA transfer immediately after the OMA channel is set up.
RECEIVE IN DMA ,MODE
The receiver must be programmed in RxINT on first
receive character mode (WRI: 04 03 = 0 1). Upon
receiving the first character, which may be the address
byte in SOLC, the MPSC generates an interrupt, and
also generates a Rx OMA Request (Rx ORQ) for the
appropriate channel. The CPU has three byte times to
service this interrupt (enable the OMA controller, etc.)
before the receiver buffer will overflow. It is advisable
to initialize the OMA controller before receiving the
first character. In case of high bit rates, the CPU will
have to service the interrupt very fast in order to avoid
receiver over-run.
Once the OMA is enabled, the received data is transferred to the memory' under OMA control. Any re~
ceived error conditions or external status change condition will genetate an interrupt as in the interrupt driven
mode. The End of Frame is indicated by the End of
Frame interrupt which is generated on reception of the
closing flag of the SDLC frame. This End of Frame
condition also disables the Receive OMA request. The
End of Frame interrupt may be reset by issuing an "Error Reset" command to the MPSC. The "Error Reset"
command also re-enables, the Receive OMA request. It
may be, noted that the End of Frame condition sets bit
07 in RRI. This bit gets reset by "Error Reset" command. However, End of Frame bit (RRI: 07) can also
be reset by the flag of the next incoming frame. For
proper operation, Error Reset Command should be issued "after" the End of Frame Bit (RR I: 07) is set. In
a more general case, "Error Reset" command should be
issued after End of Frame, Receive over-run or Receive
parity bit are set in RR 1.
Wait Mode
The wait mode is normally used for block transfer by
synchronizing the data transfer through the Ready output from the MPSC, which may be connected to the
Ready input of the CPU. The mode can be programmed by WR I, 07 05 and may be programmed
separately and independently on CH A and CH B. The
Wait Mode will be operative if the following conditions
are satisfied.
(i) Interrupts are enabled.
(ii) Wait Mode is enabled (WRI: 07)
(iii) CS
= 0, Al = 0
The ROY output becomes active when the transmitter
buffer is full or receiver buffer is empty. This way the
ROY output from the MPSC can be used to extend the
CPU read and write cycle by inserting WAIT, states.
ROY A or ROYB are in high impedance state when the
corresponding channel is not selected. This makes it
possible to connect ROY A and ROYB outputs in wired
OR configuration. Caution must be exercised here in
using the ROY outputs of the MPSC or else the CPU
may hang up for indefinite period. For example, let us
assume that transmitter buffer is full and R02::AJs active, forcing the CPU into a wait state. If the CTS goes
inactive during this period, the ROYA will remain active for indefinite period and CPU will continue to insert wait states.
Vectored/Non,:,Veqtored Mode
The MPSC is capable of providing an interrupt vector
in response to the interrupt acknowledge sequence from
the CPU. WR2, CH B contains this vector and the
vector can be read in status register RR2.WR2, CH A
(bit 05) can program the MPSC in vectored or nonvectored mode. See Figure 14 for details.
2-396
inter
AP-145
In both cases, WR2 may still have the vector stored in
it. However, in vectored mode, the MPSC will put the
vector on the data bus in response to the INTA (Interrupt Acknowledge) sequence as shown in Figure 15. In
non-vectored mode, the MPSC will not respond to the
INTA sequence. However, the CPU can read the vector by polling Status Register RR2. WR2A, 04 and 03
can be programmed to respond to 8085 or 8086 INTA
sequence. It may be noted here that IPI (Interrupt Priority In) pin on the MPSC must be active for the vector
to appear on the data bus.
WR2A,05
0
1
STATUS AFFECT VECTOR
The Vector stored in WR2B can be modified by the
source of the interrupt. This can be done by setting the
Status Affect Vector bit (WRI: 02). This powerful feature of the MPSC provides fast interrupt response time,
by eliminating the need of writing a routine to read the
status of the MPSC. Three bits of the vector are modified in eight different ways as shown on Figure 16. Bits
V4, V3, V2 are modified in 8085 based system and bits
V2, VI, VO are modified in 8086/88 based system.
In non-vectored mode, the status affect vector mode
can still be used and the vector read by the CPU. Status
register RR2B (Read Register 2 in Channel B) will contain this modified vector.
Interrupt Mode
Non-vectored Interrupt
Vectored Interrupt
Figure 14. Vectored Interrupt
05
WR2A
04
03
0
1
1
1
1
1
1
X
0
0
0
0
1
1
X
0
0
1
1
0
0
IPI
Mode
1st INTA
2ndiNTA
3rd INTA
X
0
1
0
1
0
1
Non-Vectored
8085-1
8085-1
8085-2
8085-2
8086
8086
HI-Z
11001101
11001101
HI-Z
HI-Z
HI-Z
HI-Z
HI-Z
V7 V6 V5 V4 V3 V2V1 VO
HI-Z
V7V6V5V4V3V2V1 VO
HI-Z
V7V6V5V4V3V2V1 VO
HI-Z
HI-Z
00000000
HI-Z
00000000
HI-Z
-
Figure 15. MPSC Vectored Interrupts
(8085
(8086)
V4
V2
V3
V1
V2
VO
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
Channel
B
A
Interrupt Source
Tx Buffer Empty
EXT 1STAT Change
RX CHAR Available
Special Rx Condition
Tx Buffer Empty
EXT I STAT Change
RX CHAR Available
. Special Rx Condition
Rx Special Condition: Parity Error, Framing Error, Rx Over-run Error, EOF (SDLC).
EXT/STAT Change: Change in Modem Control Pin Status: CTS. DCD. SYNC. EOM. Break/Abort Detection.
Figure 16. Status Affect Vector Mode
2-397
inter
AP.-145
DUAL PORT ACCESS
CONTROL
8273,8274
SERIAL
I/O
8255A
PARALLEL
I/O
LED'S
8254·2
PIT
COUNTERS
8259A
INTERRUPT
CONTROL
MULTiBUS
ADDRESS BITS
ADR141-17/
CHANNEL C
210403-6
Figure 17. Functional Block Diagram-iSBC® 88/45
APPLICATION EXAMPLE
This section describes the hardware and software of an
8274/8088 system. The hardware vehicle used is the
INTEL Single Board Computer iSBC 88/45-Advanced Communication Controller. The software
which exercises the 8274 is written in PLM 86. This
example will demonstrate how 8274 can be configured
into the SDLC mode and transfer data through DMA
control. The hardware example will help the reader
configure his hardware and the software examples will
help in developing an application software. Most software examples closely approximate real data link controller software in the SDLC communication and may
be used with very little modification.
board and the schematics, refer to Hardware Manual
for the iSBC 88/45, Advanced Communication Controller. iSBC 88/45 is an intelligent slave/multimaster
communication board based on the 8088 processor, the
8274 and the 8273 SDLC/HDLC controller. Figure 17
shows the functional block diagram of the board. The
iSBC 88/45 has the following features.
iSBC® 88/45
A brief description of the iSBC 88/45 board will be
presented here. For more detailed information on the
2-398
•
•
•
•
•
•
•
•
•
•
8 MHz processor
16K bytes of static RAM (12K dual port)
Multimaster/Intelligent Slave Multibus Interface
Nine Interrupt Levels 8259A
Two serial channels through 8274
One Serial channel through 8273
S/W programmable baud rate generator
Interfaces: RS232, RS422/449, CCITT V.24
8237A DMA controller
Baud Rate to 800K Baud
inter
AP-145
INITIALIZE_B~74.PROCEDURE
PUBLIC.
1*********************************************.*.***********************.1
1*
*1
1*
INITIALIZE THE 8274 FOR SDLC MODE
*1
1*
*1
I RESET CHANNEL
1*
*1
2. EXTERNAL INTERRUPTS ENABLED
1*
*1
1*
3 NO WAIT
*1
4 PIN 10 - RTS
1*
*1
5 NON-VECTORED INTERRUPT-BOBb MODE
*1
1*
CHANNEL A DMA. CH B INT
1*
*'
10
7. TX AND RX • 8 BITS/CHAR
ADDRESS SEARCH MODE
9
1*
10 CD AND CTS AUTO ENABLE
1*
II XI CLOCK
*1
1*
12. NO PARITY
1*
*1
13 SDLC/HDLC MODE
1*
*1
10
14. RTS AND DTR
*1
I.
15. CCITT - CRC
*1
I.
16 TRANSM ITTER AND RECEIVER ENABLED
*1
I.
17 7EH == FL.AG
*1
I.
*1
"
*'*'
*'
1******************************************************************.*****1
DECLARE C BYTE.
I. TABLE TO INITIALIZE THE 8274 CHANNEL A AND
10 FORMAT IS· WRITE REGISTER. REGISTER DATA
1* INITIALIZE CHANNEL A ONLY
*1
*1
*1
DECLARE TABLEJ4_A<*) BYTE DATA
<00H,18H.
1* CHANNEL RESET *1
00H.80H,
1* RESET TX CRC *1
02H. IIH.
1* PIN IO-RTSB, A DMA, B INT *1
04H.20H.
1* SDLC/HDLC MODE, NO PARITY *1
07H.07EH,
1* SDLC FLAG *1
OIH.OBH.
1* RX DMA ENABLE *1
1* DTR, RTS, B TX BITS, TX ENABLE,*I
OSH,OEBH.
1* SDLC CRC, TX CRC ENABLE *1
06H,55H,
10 DEFAULT ADDRESS *1
03H,OD'1H,
1* B RX BITS, AUTO ENABLES, HUNT MODE, *1
1* RX CRC ENABLE 01
OFFH).
1* END OF INITIALIZATION TABLE *1
DECLARE TABLE_74_B <*) BYTE DATA
<02H,OOH,
1* INTERRUPT VECTOR *1
I. STATUS AFFECTS VECTOR *1
0IH.1CH.
I. END *1
OFFH).
I. INITIALIZE THE 8274 *1
C=O.
DO ~~HILE TABLEJ4_B OFFH,
OUTPUT OFFH.
OUTPUT(COMMAND_A_74)
TABLE_74_A(C),
C=C+I.
OUTPUT= 010*1
IGNORE_INT,
CALL.
1* V2VIVO ,. 011*1
IQNORE_INT.
CALL.
1* V2VIVO - 100*1
CALL
CHA_EXTERNAL.3HANGE'
1* VOlVIVO • 10101
CALL.
CHA_RX_CHARI
1* V2VIVO - liD*,
CALL.
CHA_RX_SPEC IALI
1* V2V1\10 - 111*1
END.
OUTPUTCCOMMAND_AJ4) -38H.
1* END OF INTERRUPT FOR 8274 *1
RETURN;
END INTERRUPT_8274;
210403-9
Figure 20. Typical Main Interrupt Routine
1********************************.*********************1
1* CHANNEL. A EXTERNAL./STATUS CHANGE INTERRUPT HANDL.ER *1
1******************************************************1
CHA_EXTERNAL._CHANQE'
PROCEDURE,
TEMP· INPUT(STATUS_AJ4).
1* STATUS REG 1*1
IF (TEMP AND END_OF_TX_MESSAGE) • END_OF_TX_MESSAGE THEN
TXOONE_S-OONE;
EL.SE DO.
TXDONE_S-OONE;
RESUL. TS_S-FAILI
END.
OUTPUT(COMMAND A 74) • IOH,
1* RESET EXT/STATUS INTERRUPTS *1
RETURN.
- END CHA_EXTERNAL_CHANGE;
1**********************************************************1
1* CHANNEL A SPECIAL. RECEIVE CONDITIONS INTERRUPT HANDL.ER *1
1**********************************************************1
CHA_RX_SPEC IAL.:
PROCEDURE;
OUTPUT (COMMAND_A_74) - I,
TEMP = INPUTCSTATUS_A_74),
IF OFFH,
OUTPUT (COMMAND_B_74) • T'IBLE]4.J3(C)'
C-C+l.
OUTPUT(COMMANO_B_74)
C=-C+li
3
31
3
32
3
as
TABLE_74_B(C),
END,
210403-17
2-408
inter
33
34
35
36
37
38
39
40
41
42
43
AP-145
2
c-o.
2
DO WHILE TABLEJ4_A(C'
3
3
3
3
3
C-C+1.
OUTPUT (CoMMAND_A_74 •
C=C+11
OFFH.
= TABLE _74_A(C),
= TABLE_74_A(C'.
END.
2
2
:/
<>
OUTPUT (COMMAND_A_74)
CALL
DELAY_S.
RETURN.
END INIT _8274_SDLC_S.
END INIT _8274_9.
PL/M-86 COMP ILER
lSBe 8B/4!o B274 CHANNEL A SOLe TEST
MOOULE INFORMAT ION
CODE AREA SIZE
=
CONSTANT AREA SIZE VARIABLE AREA SIZE·
MAXIMUM STACK SIZE·
213 LINES READ
o PROGRAM WARNINGS
o PROGRAM ERRORS
00A8H
OOOOH
0003H
0006H
1680
OD
3D
60
END OF PL/M-86 COMP ILATION
PLlM-86 COMPILER
1SBe 88/45 B274 CHANNEL A SDI..C TEST
SERIES-III PL/M-B6 VIZ 0 COMPILATION OF MODULE INIT_B237_CHA
OB.!ECT MODULE PLACED IN . FI SINI37 DB.!
COMPILER INVOKED BY.
PLM86.86. FI SINI37 PLM TITLE( ISDC 88/45 8274 CHANNEL A 90LC
TEST> COMPACT NOINTVECTOR ROM
1*****····***····**·.·******.· •• ** ••• ******.**.** ••••• ****************.**1
1*
1*
1*
*1
8237
INITIALIZATION ROUTINE
FOR DMA TRANSFER
*1
*1
/ ************.****************************.*** ••••••••• ****************** I
INIT _8237 _CHA.
00,
.NOLIST
INIT _8237 _9
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2
2
2
2
2
2
2
2
2
2
2
2
2
2
PROCEDURE PUBLIC.
OUTPUT (MASTER_CLEAR_37) -0.
OUTPUT(COMMAND_37) ;10 20H.
1* EXTENDED WRITE
OUTPUT(ALL_HASK_37) .. OFH;
/* MASK ALL REOUESTS *1
OUTPUT • (SINGLE_MODE OR WRITE_XFER OR CHO_SEL>.
OUTPUT.
OUTPUT(CLR_BVTE_PTR_37) - 0.
OUTPUT(CHO_ADDR) = OQ.
RECEIVE BUFF AT 900H *1
OUTPUT< CHO_ADDR)
09H.
OUTPUT(CHO_CoUNT> - OHi
OUTPUT (CHO_COUNT) = 01.
OUTPUT (CH1_ADDR) .. OQ,
1* TRANSMIT BUFF AT BOOH *1
OUTPUT(CHl_ADDR) • OSHI
OUTPUT - OIOH.
OUTPUT
OOH.
*'
=
'*
=
210403-18
2-409
intJ
AP-145
27
i!B
i!
2
2'1
2
1* ENABLE TRANSFER *1
OUTPUTCSINQLE_MASK) • CHI_SEL.
RETURNJ
1 * ENABLE TX DMA *1
1* TURN OFF THE 8237 CHANNELS 0 AND I *1
30
31
32
33
I
2
2
2
34
2
3'
BToP_B237_S' PROCEDURE PUBLIC.
oUTPUTCSINQLE_MASIO • CHI_BEL DR SET.-MASK;
oUTPUTCSINGLE_MASK) - CHO_SEL OR SET.-MASK.
RETURNI
END STOP _B237 _BI
END INIT _8:237 _CHAi
MODULE INFORMATION:
CODE AREA 81 ZE
004CH
7bD
CONSTANT AREA SIZE. OOOOH
VARIABLE AREA SIZE = OOOOH
00
00
PL.lM-S6 COMP 1 LER
•
i SBe 8S/45 8274 CHANNEL. A SDL.e TEST
MAX IHUM STACIo!. SIZE -
0002H
20
163 LINES READ
PROGRAM WARNINGS
PROGRAM ERR ORB
o
o
END OF PL/M-B6 COMPILATION
Pl,rl
Sr~
COt1PILER
1
':mc
88/45 82"14 CHANNEL A SOLe. TEST
8I;fi1E::-·111 PL/M-86 V2 0 COMPILATION OF MODULE INTR __8274._S
OHJEC f rmOULE PLACED 1111 Fl SINTR (JLhJ
COf1PILEH INVOKED DY
PLM86 A6
Fl SINTR Pl.M TIlLE
COMPACT NOINTVECTOR ROM
1***·*****************************····*·**************.*.***********.*
•• *1
*1
1*
1*
1*
.SBC '4' PORT A (B274) SOLC TEST
*1
*1
,*******•••• *******************••• *.*****************.***··** •• • •• **** ••*1
STEST
2
I
3
:1
I
:1
DOl
DELAY _S PROCEDURE EXTERNAL.
END DELAY _5.
ENABLE_INTERRUPTS_S PROCEDURE EXTERNAL.
END ENABLE_INTERRUPTS_S.
b
I
7
2
DISADLE_INTERRUPTS_S PROCEDURE EXTERNAL,
END DISABLE_INTERRUPTS_S.
B
9
I
2
INIT _8274_SDLC_5 PROCEDURE EXTERNAL.
END INIT _B274_SDLC_S,
10
II
I
2
INIT _B237 _5' PROCEDURE EXTERNAL,
END INIT _8237 _So
12
13
I
2
STOP _8237 _5. PROCEDURE EXTERNAL,
END STOP _8237 _s.
14
I
I'
2
VERIFY _TRANSFER_S PROCEDURE EXTERNALJ
END VERIFY_TRANSFER_S.
Ib
I
17
2
INT _8274_5 PROCEDURE INTERRUPT 3:5 EXTERNAL,
END INT_8274_S,
.NDLIST
.E.!ECT
PL/M-8b COMPILER
28
29
lSSC
9a/-4~
8274'CHANNEL A SDLC TEST
OECLARE (RESULTS_S. TXDONE_S, RXDONE_S) BYTE PUBLIC.
DECLARE DONE
LIT
'OFFH'.
NOT _DONE
LIT
'OOH'.
PASS
LIT
·OFFH·.
FAIL
LIT
·OOW,
210403-22
2-413
inter
Ap-145
.E.JEeT
PL/I'I-86 COI'IPILER
30
ISIC SS/45 S274 CH_L A SDLC TEST
CHA_BDLC_TEST:
PROCEDURE BYTE PUBLIC,
31
32
33
34
35
36
37
2
2
2
CALL
ENABLE_INTERRUPTS_S,
CALL
INIT_S274_SDLC_S'
ENABLE,
OUTPUT CCOI'II'IAND_A_74) • 2SH,
1* REBET TX INT/DI'IA
*1
OUTPUTCCO",,",ANDJI]4) • 28H,
1* BEFORE INITIALIZINO S237*1
CALL
INIT _S237 _S,
DUTPUTCDATA_A_74) • SSH, . 1* LOAO FIRST CHARACTER FROI'I CPU*I
38
39
40
2
2
2
1* TO ENSURE CRC TRANSMISSION RESET TX UNDERRUN LATCH*I
OUTPUT (COMMAND-"_74) • OCOH,
RXDONE_S. TXDONE_S-NOT _DONE,
CLEAR ALL FLAilS
RESULTS_S-PASS,
1* FL.AII SET FOR MONITOR*I
41
42
2
3
DO WHIL.E TXDONE_S-NOT ..DONE,
43
:I
44
45
46
3
2
3
DO WHIL.ECiNPUTCSTATUB_A_74) AND 04H) <> 04H,
1* WAIT FOR CRC TO gET TRANSMITTED *1
1* TEST FOil TX BUFFFER EMPTY TO VERIFY THIS*I.
END,
DO WHIL.E RXDONE_S-NOT _DONE,
1* DO UNTIL. TERMINAL' COUNT*I
END,
47
2
CAL.L
STOP _8237 _S,
48
2
CALL
DISABL.E_INTERRUPTS_S,
49
2
CAL.L
VERIFY_TRANBFER_S'
50
2
RETURN RESUL. TS_S,
51
52
2
1
2
2
2
II
END,
'*
'* DO
*'
UNTIL. TERMINAL. COUNhl
END CHA_SDL.C_TEST,
END STEST,
'MODUL.E INFORI'IATION:
CODE AREA SIZE
•
CONSTANT AREA SIZE·
VARIABL.E AREA SIZE MAX IMUM STACK SI ZE 198 L.INES READ
o PROgRAM WARNINgS
o PROgRAI'I ERRORS
0063H
99D
OOOOH
OD
0003H
3D
0004H4D
END OF PL.IM-S6 COMPILATION
PL/I'I-S6 COI'IPIL.ER
ISBC SS/45 S274 CHANNEL. A SDL.C TEST
SERIES-II I PL./I'I-S6 V2.0 CDI'IPIL.ATION OF MODUL.E VECTORJ1QDE
OB.JECT I'IODUL.E PL.ACED IN : Fl. VECTOR DB.J
CDI'IPIL.ER INVOKED BY:
PL.MSII. S6 Fl: VECTOR. PLM T1TL.EClSBC S8/45 S214 CHANNEL. II SDL.C TEST)
1*******.*****************•• *************.***********.**************1
1*
1*
I.
I.
1*
8274 INTERRUPT HANDL.INg ROUTINE FOR
8274 VECTOR 1'100£
STATUS AFFECTS VECTOR
*1
*1
*1
.,*'
1****************.***********************************.*********.****1
210403-23
AP-145
1*
1*
1*
1*
1*
1*
THIS IS ...N EX"'I'IPI.E OF HOW 11274 CAN BE USED IN VECTORED 1'!0DE.
THE ISBCBB/4e BO...RD W... S REWIRED TO DIS...BI.E THE PIT BOIe9A "'ND
EN...BI.E THE 80174 TO PI. ...CE ITS VECTOR ON THE DIIT...BUS IN RESPONSE
TO THE INT... SEClUENCE FRol'! THE BOBS OTHER 1'!0DIFIC"'TloNS INCI.UDED
CH...NIIES TO 80174 INITI ...I.IZ"'TION PROIIR",I'! (BINI74) TO PRoOR ...M B0I74
INTO VECTDIIED I'IODE (WRITE REOISTEII 2'" De-I)
VECToIIJ1oDE
.NDl.IST
101
13
14
*I
*1
*I
*1
*1
*I
DOl
DECI."'RE TEMP 8YTEI
DECI.ME (RESUI.TS_S. TXOONE. RXDONE) BYTE EXTERNAI.I
DECI."'RE DONE I.ITER"'I.I.Y ·OFFH'.
NOT JlONE I.ITER""-1. Y • ODH ••
P...SS
I.ITER ...I.I.Y ·OFFH·.
F"'II.
I.ITER"'I.I.Y 'OOH'I
, ••• *****.*******************.********* •• ******** •• *** ···********.******1
1*
1*
TR ...NSMIT INTERRUPT CH"'NNEI. '" INTERRUPT WII.I. NOT BE SEEN IN THE *1
DI'I'" oPER ... TlON
*1
1******••• ** ••••••• ****.***** ••••••• ** ••••• * •••• **.*** ••• ************.*.1
Ie
I/>
17
Ie
I
01
TX_INTERRUPT _CH... PROCEDURE INTERRUPT B41
oUTPUT(CoMI'!...ND_... _74J - 001010008.
oUTPUTlCDI'I"",ND_..._74J - 0011100081
END TX_INTERRUPT _CH"'I
2
2
I*RESET TXINT PENDINO*I
I*EoI*1
,****•••EXTERNAI./ST
***** •• **************.****
•• *.************.**-·*·**·************1
...TUS INTERRUPT PROCEDURE: CHECKS FOR END OF MESS...OE *1
1*
1*
1*
1*
1*
ONLY.
IF THIS IS NOT TRUE THEN THE FAIL FLAG IS SET
HOWEYER,
... USER PRoOR ...M SHOUI.D CHECK FDR OTHER EXT/ST ...TUS CONDITIONS
...I.SO IN RRI AND THEN T...KE ...PPROPRI ...TE ACTION B...SED ON THE
... PPI. I c...T1 ON
*1
*1
*1
*1
1********.************.************.**.***************************'•• ****1
19
010
011
0101
013
014
I
01
2
01
2
3
EXT _ST...T _CH"'NIIE_CH... · PROCEDURE INTERRUPT BlIl
TEI'IP - INPUTlST...TUS-",,_74J.
IF (TEMP AND END_OF _TX_I'!ESSIIOEJ • END_DF _TX_MESS"'OE THEN
TXDoNE • DONE.
EI.SE 001
TXDoNE • DONE.
PI./I'!-8. COI'!P II.ER
Ole
3
2.
3
017
OIB
019
30
01
01
2
01
IS8C 8B/4l1 B274 CH...NNEI. ... SDI.C TEST
RESULTS_S • FAIL.I
END.
oUTPUTlCoI'II'IAND_... _74) • 0001000081
oUTPUTlCoMM...ND-",,-,4J • 001110008.
RETURN.
END EXT _ST ... T _CH...NGE_CH....
,.RESET EXT STAT INT_'
I*EOI*I
1****************************************.**.*********.*.***
•••****.****1
1*
RECEII/ER CH"'RACTER ...VAII. .... I.E INTERRUPT WII.I. ",PPEAR oNI.Y ON FIRSHI
1*
1*
RECEIVE CH...R... CTER. SINCE DM ... CoNTRol.l.ER H...S BEEN ENA81.ED BEFORE *1
THE FIRST CH ...R...CTER IS RECEIVED. THE RECEIVER REClUEST IS
*1
I.
SERVICED BY THE DMA CONTROLLER
*1
1•••• * ••••• **** ••••• * •••••• *** ••••• *.**.*** •••• * •• *****.** •• ************1
31
32
33
34
I
01
2
2
RX_CH...R-"'VAII....8I.E_CH... PROCEDURE INTERRUPT S••
oUTPUT(Col'II'I...ND-",-,4) • 00111000..
I*EoI*1
RETURN.
END RX_CH...R-""V... II....8I.E_CH....
• EJECT
210403-24
2-415
inter
.". ',.
AP-145
PL/I"I-86 COMP ILER
~.
• SBC 8S/45 6274 CHANNEL A SDLC TESr
I******.*.***
.• **.*.*.~**.******.****,:* •••** ••**.*******.* •••~••**.* •••••.*I
1*
SPECIAL RECEIVE CONDITION INTERRUPT SERVICE,ROUTINE CHECKS FOR *1
1*
1*
END OF F"RAME BIT ONLY SEE SPECIAL SERVICE ROUTINE FOR NONVECTORED MODE FOR CRC CHECK AND OVERRUN ERROR CHECK
*'
*'
1*******.* ••**-********.*.*** •• ********.*.*.**.******* ••••• ** •• * ••••• ***1
35
36
37
3B
39
40
41
42
43
44
45
46
47
2
2
4B
49
50
51
52
53
54
55
I
2
56
OUTPUT(COMMANO-,,_74) •
2
2
3
3
3
2
2
2
2
2
2
;2
2
2
2
1.
I*POINTER 1*,
TEMP· INPUT 0
then output(ch_a_command) • reg_no and Of hi
return input(ch_a_command);
end rra,
rrb: procedure (reg_no) bvtel
declare reD_no bvtel
if (reg_no and Of h) <> 0
then output (ch_b_command) • reg_no and Of hi
return input(ch_b_command)1
end rrb;
1*
write .elected .ec register
*1
wra: procedure (reg_no. value)i
declare reg_no bvtel
declare value bvtel
1f (reg_no and Of h) <> 0
then output (ch_a_command) • reg_no end Ofh;
output (ch_a_command) • value,
end wra;
wrb: procedure (reD_no. value);
declare reD_no bVte,
declare value bvte,
if (reg_no and Of h) <> 0
then output (ch_b_command).- reg_no and Ofh;
output (ch_b_command) • value;
end wrb,
1*----------------------------------------------------~---------------------*I
231262-2
Figure 2. Accessing the see Registers
2·423
intJ
AP-222
3. Initialization for ASYNC Operation
In the following example, channel B of the SCC is used
to perform ASYNC communication. Figure 3 shows
how the channel B is initialized and configured for
ASYNC operation. This is done by writing the various
channel B registers with the proper parameters as
shown. The comments in the program show what is
achieved by each statement. After a software reset of
the channel, register #4 should be written before writing to the other registers. The on-chip Baud Rate Generator is used to generate a 1200 bits/sec clock for both
the transmitter and the receiver. The interrupts for
transmitter and/or receiver are enabled only for the
interrupt mode of operation; for polling, interrupts
must be kept disabled.
4. ASYNC Communication in Polling
Mode
Figure 4 ~hows the procedures for re~ding in a received
character from the 82530 (scc_in) and for writing out
a character to the 82530 (scc_out) in the polling mode.
The scc_in procedure returns a byte value which is the
character read in. The'receiver is polled to find if a
character has been received by the SCC. Only when a
character has -been received, the character is read infrom the data port of the SCC channel B.
The scc_out procedure requires a byte parameter
which is the character being written out. The transmit-
/ *---.----------.. - -.- -.---.-------- -- ------------------------------ -------.-----------* I
1*
*1
1* channel B reset *1
1* 2 stop. no paritll'
1* vector = 20h *1
1* rx 8 bits/char, no
sec ch B registllr initialization 'or ASYNC mode
call
call
call
call
call
call
call
Col 11
call
call
call
call
call
tall
wrb(09,
wrb(04,
wrb(02,
wrb(O:),
wrb(05,
wrb(06,
wrb(07.
WT-b i 09,
wrb(10.
wrbOl.
wrb(l2.
wrb(13.
wrb(14.
wrb(15.
/* IInables
brf' '" -b4x
auto-llnabill
/* tx 8 bits/char .1
1*
*1
*1
*1
= BRG
vllctor includes status
1* rxc .. txc = BRG , trxc
out *1
to gllnllratll 1200 baud. x64 @ 4 mhz *1
1*
1* BRG source = SYS eLK. enable BRG *1
1* all ext status interrupts
*1
0"
*1
call wrb (0:3.
call wrb (OS,
I~
OlOOOOOOb);
11001110b);
00100000b);
11000000b);
01100000b);
OOOOOOOOb);
OOOOOOOOb);
00000001 b);
OOOOOOOOb)1
OlOlOll0b);
0001l000b);
OOOOOOOOb);
00000011b);
OOOOOOOOb);
1100000ib);
11101010b);
enab]. interrupts -
o~lV
call wrb(09, 00001001b)i
call wrb (01, 00010011b)i
/* scc-b receive enable
*1
1* scc-b transmit IInablll,
'01'
dtr on, rts on */
interrupt driven ASYNC I/O */
1* mastllr IE. vllctor includes status *1
tx .rx. IIXt intllrrupts IInablll *1
1*
1*-----------------------_·_---------------------------------------------------*1
231262-3
Figure 3. Initialization for ASYNC Communication
2-424
inter
AP·222
1*--------------------------------·--------------------------------------~---*I
I~
sec data
scc_in:
cha~acte~
p~ocedu~e
input
'~om
channel B
*1
bllte;
declare char bute;
do while (input(ch_b_command) and lh) • 0; endl
cha~ • input(ch_b_data)j
i' rx data cha~acte~ il available
retu~n cha~;
then input it to bu"e~
1*
1*
1*
sec data
cha~acte~
scc_out: procedure
*1
output to channel B
*1
*1
(cha~).
do while (input(ch_b_commandl and 4h) • O. end;
output(ch_b_data) = cha~;
i' tx bu'f emptll then t~an,'e~ the
1* data cha~acte~ to tx bu" *1
1*
*1
1*------------------------------------------------------·-----·---------------*1
231262-4
Figure 4. ASVNC Communication In Polling Mode
ter is polled for being ready to transmit the next character before writing the character out to the data port of
see channel B.
Includes Status' (VIS) mode is set - WR9 =
XXXOXXOl. Vectors and the associated events are:
Vector Procedure
Typical calls to these procedures are:
abc_variable = scc.-i,n;
call scc_out (xyz-variable);
Event Causing Interrupt
20h
txintrj
22h
esLb
chj - extemal/status change
24h
rxiotrj
.ch...,.b - receive character available
chj - transmit buffer empty
26h
src b
chj - special receive condition
5. ASYNC Communication in Interrupt
Mode
28h
txlntr-B
ch-B - transmit buffer empty
2ah
esLs
ch-B - external/status change
In contrast to polling for the receiver and/or the transmitter to be ready with/for the next character, the
82530 can be made to interrupt when it is ready to do
receive or transmit.
2ch
rxintr-B
ch-B - receive character available
2eh
src a
ch-B - special receive condition
The on-chip interrupt controller of the see can be
made to operate in the vectored mode. In this mode, it .
generates interrupt vectors that are characteristic of the
event causing the interrupt. For the example here, the
vector base is programmed at 20h and 'Vector
NOTE:
Odd vector numbers do not exist.
Figure 5 shows the interrupt procedures for the chsnnel
B operating in ASYNe mode. The transmitter butTer
empty interrupt occurs when the transmitter can accept
one more character to output. In the interrupt procedure for transmit, the byte char_out_530 is output.
Following this, is an epUoge that is common to all the
2-425
AP;;222
I
-
,
~
..
interrupt procedures; the first statement is an end of
interrupt conu;nand to the 8253Q - not, that it is issued
to channel A - and the second is an End of Interrupt
(EOI) command to the 80186 interrupt controller
)vhich is, in fact, receiving the interrupt from the 82530.
The receive buffer full interrupt occurs when the receiver has at least one character in its buffer, waiting to be
read in by the CPU.
The esLb is not enabled to occur and src_b cannot
occur in the ASYNC mode unless the receiver is overrun or a parity error occ,W:S'
I*--------~~---~~------~~--~--------~-------~--------- ----------------------*/
1* channel B interrupt procedure. *1
procedu"e
call w"a(OO,3Bhl.
output (eoir_1Bbl
"etu"nl
end txint"_bl
p"ocedu"e
inh""uP~ 2~hl
.8000h.
ilitnrupt 22h.
call w"b(OO. 10hli
call w"a(00,38hll
output (eoi,,_186l
"etu"nl
end eli_bl
1* "eset highest IUS *1
1* non specific EOI *1
.8000hl
1* "eset E,SI *1
1* "eset highest rus *1
1* non specific EOI *1
inte""upt 24hl
',',
call w"a(OO,aah).
output (eoi,,_186)
"eturnl
.
end "xint"_bl
• 8000h;-,
.1* "eset highest IUS *1
1* non speCific Ear .*1
int.e""upt 26h.
call
w,,~.(OO.30h)1
call w"a,(OO. 3Bh) 1
output (eoir_186)
"e'urn.
.,
end S"C_bl , .
8000h.
1* error "eset *1
1* "eset highest IUS *1
1*' non specific Ear *1
,I
1*--------------_·_----------------------------------------------------------*1
2~1262-5
Figure 5. ASYNC Communlcatlcm In Interrupt Mod.
2·426
intJ
AP·222
ed on the RxOA pin, it goes from the Hunt to the Sync
mode. It receives the frame and the end of frame interrupt (src_b, vector = 2eh) occurs.
6. Initialization for SOLC
Communication
Channel A of the SCC is programmed for being used
for SOLC operation. It uses the OMA channels on the
80186. Figure 6 shows the initialization procedure for
channel A. The comments in the software show the
effect of each statement. The on-chip Baud Rate Generator is used to generate a clock of 125 kHz both for
reception and transmission. This procedure is just to
prepare the channel A for SOLC operation. The actual
transmission and reception of frames is done using the
procedures described further.
7. SOLC Frame Reception
Figure 7 shows the entire set-up necessary to receive a
SOLC frame. First the OMA controller is programmed
with the receive buffer address (@rx_butl), byte count,
mode etc and is also enabled. Then a flag indicating
reception of the frame is reset. An Error Reset command is issued to clear up any pending error conditions. The receive interrupt is enabled to occur at the
end of frame reception (Special Receive Condition);
lastly, the receiver is enabled and put in the Hunt mode
(to detect the SOLC flag). When the first flag is detect-
8. SOLC Frame Transmission
Figure 8 shows the procedure for transmitting a SOLC
frame once channel A is initialized. The OMA controller is initialized with the transmit buffer address
(@t~buff (1» - note, it is the second byte ofthe transmit buffer - and the byte count - again one less than the
total buffer length. This is done because the first byte in
the buffer is output directly using an I/O instruction
and not by OMA. Then the flag indicating frame transmitted is reset. The events following are very critical in
sequence:
a. Reset external status interrupts
b. Enable the transmitter
c. Reset transmit CRC
d. Enable transmitter underrun interrupt
e. Enable the DMA controller
f. Output first byte of the transmit block to data port
g. Reset Transmit Underrun Latch
1*---------------------------------------------------·-----------------------*1
scc_init_a:
1*
procedurel
ICC ch A register initialization for SOLe mode
call
call
call
call
call
call
call
call
call
call
call
call
call
1*
wra(09.
wra(04.
wra(Ol.
wra (03.
wra (05.
wra(06.
wralO7.
wral10.
wra( 11.
wra (12.
wra (13.
wra (14.
wra (15.
10000000b ) ;
00100000b) ;
o1100000b );
11000000b) I
011 OOOOOb ) ;
01010101b) ;
01111110b ) ;
10000000b ) I
01010110b) i
00001110b) I
OOOOOOOOb ) i
00000110b) ;
OOOOOOOOb ) I
*1
1*
1*
1*
1*
1*
1*
1*
1*
1*
1*
channel A-reset *1
SOLe mode *1
OMA for Rx *1
8 bit Rx char. Rx disable *1
8 bit Tx char. Tx disable *1
node address *1
SOLe flag *1
prelet eRe. NRZ. encoding. *1
trxc .. DRG aut *1
rIc" txc .. DRG
to generate 125 Kbaud. xl lih (20. IJ-A + 20 /J-A)
PCSS: ThePCSS signal' qr?-ves U2 and U4.
• 101 (2.0 rnA)
loh (- 400 /J-A)
> iii (':'0.5 mA + -0.5 mAl,
> lih (20 /J-A + 20 /J-A)
101 (2.0 mAl > iii (-0.4 mA
loh (-400 /J-A)
>
lih (20 /J-A
+
Certain symbolic conventions are adhered to throughout the analysis below and are introduced for clarity..
1. All timing variables with a lower case first letter are
82530 timing requirements or responses (i.e., tRR).
2.. All timing variables with Upper case first letters are
80186 timing responses or requirements Unless preceded by' another device's alpha-numeric code (Le.,
Tclcl or '373 Tpd) .
3. In the writ!...£}'cle analysis, the timing variable
TpdW~186-WRS30 represents th~ propagation delay between tne leading or trailin~~e of the WR
signalleav!!!Lthe 80186 and the WR edge arrival at
the 82530 WR input.
Read Cycle
INTA: The INTA signal drives 2(Ul) and US.
•
ANALYSIS
+
-0.8 mA + -0.4 mAl
40/J-A + 20/J-A)
All the' 62530 1;0 pins are TTL volta~ l~el co~patible.
'.
,
1. tAR: Address valid to RD active set up time for the
82530. Since the propaption delay is the ~orst case
path in the assunied typical syst~" 'the war~ is ,calculated only for a propagation delay constrained imd not
an AL~ limited pa~h. The spec value is 0 ns miIilinum:
• 1 Telcl - Teiav(miVc) - '245 Tpd(max)
2(U2) ipd(min) - tAR (min)
= 125
2·438
- 55 - 20.8
+
10
+ 2(2)
- 0
+ Telr1(mln) +
.
= 63.2 ns margin
inter
AP-222
2. tRA: Address to RD inactive hold time. The ALE
delay is the worst case path and the 82530 requires 0 ns
minimum.
• 1 Telel - Telrh (max) + Tehlh(min) + '373 LE
Tpd(min) - 2(U2) Tpd(max)
• 3 Telel + 1(TciCiwalt state) - TelaY(max) - '373
Tpd(max) - '245 Tpd - Tdvcl(min) ~ tAD
= 375 + 125 - 55 - 20.8 -14.2 - 20 -325 = 65'ns
margin
= 55 - 55 + 5 + 8 - 2(5.5) = 2 ns margin
Write Cycle
3. tCLR: CS active low to RD active low set up time.
The 82530 spec value is 0 ns minimum.
1. tAW: Address required valid to WR active low set
up time. The 82530 spec is 0 ns minimum.
• 1 Telcl - Tclcsv(max) - Tclrl(min) - U2
skew(RD - CS) + U2 Tpd(min)
• Tclel - TclaY(max) - TcvctV(mi!'l) '-'. '373 Tpd(max)
+ TpdWR186 - WR530(LOW) [Tclcl - TCiictv(min) +
U3 Tpd(min) + U4 Tpd(min)1 - tAW
= 125 - 66 -10 -1 + 2 =.50 ns margin
4. tRCS: RD inactive to CS inactive hold time: The
82530 spec calls for 0 ns minimum.
•
Tescsx(mln) - U2 skew(RD - C8) - U2 Tpd(max)
= 35 - 1 - 5.5 = 28.5 ns margin
5. tCHR: CS inactive tQ RD active set up time. 'The
82530 requires 5 ns minimum.
• 1 Telcl + 1 Tchcl - Tchesx(max) + Tclrl(rnin) - U2
skew (RD - C8) + U2 Tpd(min) - tCHR
= 125 + 55 - 35 - 10 - 1 + 2 - 5 = 131
2. tWA: WR inactive to address in"alid hold time. The
82530 spec is 0 ns.
• Teleh(mfn)"': Tcvetx(max) + Tchll1(min) + '373 LE
Tpd(min) - TpdWR186=WFi530(HIGH) [U2 Tpd(max) +
U3 Tpd(max) + U4 Tpd(max))
= 55 - 55 + 5 + 8 - [5.5 + 3 + 7.11 = -2.6 ns·
margin
3. tCLW: Chip select active low to WR active low hold
time. The 82530 spec is 0 ns.
"S m\ll'gin
6. tRR: RD pulse active low time. On~ ~186 wait state
is included to meet the 150 ns minimum timing requirements of the 82530.
•
= 125 - 55 - 5 - 20.8 + [125 - 5 + 1 + 4.41 :... 0 .
= 170.6 ns margin
• 1 Telel - TelcsY(max) +. Tcvctv(min~ ~. U2 Tpd(max)
+ TpdWRl86=WR530(LOW) [Telcl'- Tcvetv(min) + U3
Tpd(min) + U4 Tpd(min)1
,
,
'
= 125 -; 66 + 5 - 5.5,+ [125 - 5 + 1
183.9 ns margin
Trlrh(min) + 1(TciCiwait state) - 2(U2 skew) - tRR
= (25Q-50) + 1(125) - 2(1) - 150 = 173 ns margin
+
4.41 =;'
4. tWCS: WR invaljd to Chip Select invalid hold time.
82530 spec is 0 ns.
7. tRDV: RD active low to data valid maximum delay
for 80186 read data set up time (Tdvcl = 20 ns). The
margin is calculated on the Propagation delay path
(worst case).
.
• Texesx(min) - U2 Tpd(max) TpdWR186=WR530(HIGH) [U2 Tpd(max) + U3
Tpd(max) + U4 Tpd(max)1
= 35 + 1.5 ~ [5.5 + 3 + 7.11 = 20.~9 ns margin
• 2 Tclcl + 1(Telclwait state) - Tclrl(max) - Tdvcl(min)
- '245 Tpd(max) - 82530 tRDV(max) - 2(U2) Tpd(max)
5.
tCHw: Chip Select inactive high tQ'~ active lo~
= 2(125) + 1(125) - 70 - 20 - 14.2 - 105 - 2(5.5)
= 154 ns margin
set
8. tDF: RD inactive to data output f1<>l!.~ delay. The
margin is calculated to DEN active low of n~xt cycle.
• 1 Telel + Tehel(min) + TCvctv(min) - Tehesx(max) U2 Tpd(max) + TpdWR186=~530(LOW) [Telel TcvQtv(l'nin) + U3 Tpd(min) + U4 TPd(mln)1 - tCHW
2 Tclcl -l; Teleh(min) - Telrh(max) + Tehetv(min) .
'" 12S 4- 55 +'5 - 35' i- 5.S' + [~25', -5 + 1 + 4.4)'5 ,'"' 264 ns margin,
"
•
2(U~) Tpd(max) - 82530 tDF(mali)
= 250 + 55 -55
+ 10 -
11 - 70 = 179 ns margin
9. tAD: Address required valid to read data valid maximum delay. The 82530 spec value is 325 ns maximum.
up time. The 82;30 spec 'is 5 n s . · '
.
6. tWW: WR active low,pulse. 82530 requires: a minimum of 60 ns from the falling to the rising edge of WR.
This includes one wait state.
2-439
AP-222
'I·v>
.'
•. '
• TwlWh [2Tclcl - 40] + 1 (iCjCiwalt state) - Tpd'iiWi1
186-WFi530(lOW) [Tcl!!!...::" Tcvctv~n) + U3 Tpd(max)
+ U4 Tpd(max)) + TpdWR/186=WR/530(HIGH) [U2
Tpd(min) U3 T,pd(min) + U4 Tpd(min)1 - tWW
should never exist. 82530 drivers should insure that at
least one CPU cycle separates INTA and WR or RD
cycles.
= 210 + 1(125) - [125,- 5 + 4.5
3.21 - 60 = 135.6 ns margin
4. tWI: WR inactive high to INTA, active low minimum hold time. The spec is 0 ns and the margin assumes CLK coincident with INTA.
+
+
9.21 - [1.5
+
1
7. tDW: Data valid to WR active low setup time. The
82530 spec requires 0 ns.
• Tcvctv(mi~ Tcldv(max) - '245 Tpd(max) +
TpdWR186-WR530(lOW) [Tclcl - Tcvctv(min) + U3
Tpd(min) + U4 Tpd(min)l
= 5 - 44 - 14.2
margin
+
125 - 5
+
+
1.0
• Tclcl - Tcvctx(max) - TpdWR186 - WR530(HIGH)
[U3 Tpd(max) + U4 Tpd(max») + Tcvctv(min) + Ul
Tpd(min)
= 125 - 55 - [5.5
margin
4.4 = 72:2 ns
+
3
+
7.1)
+
5
+
10 = 69.4 ns
8. tWD: Data valid to WR inactive high hold time. The
82530 requires a hold time of 0 ns.
5. tIR: INTA inactive high to RD active low minimum
setup time. This spec pertains only to 82530 RD cycles
and has a value of 55 ns. The margin is calculated in
the same manner as tIW.
• Tclch - skew (Tcvctx(max) + Tcvctx(min)1 + '245
OE Tpd(min) - TpdWFi186-WFi530(HIGH) [U2 Tpd(max)
+ U3 Tpd(max) + U4 Tpd(maX»)
6. tRI: RD inactive high to' INTA active low minimum
hold time. The spec is 0 ns and the margin assumes
CLK coincident with INTA.
.
= 55 - 5
margin
+
11.25 - [5.5
+
3.0
+
7.1) = -50.6 ns
•
+
Tcici - Tclrh(max) - 2 U2 Tpd(max)
Ul Tpd(min)
= 125
INTACycle: .
1. tIC: This 82530 spec implies that the INTA signal is
latched internally on the rising edge .of CLK (82530).
Therefore the maximum delay between the 80186 asserting INTA active low or inactive high and the 82530
internally recognizing the new state of INTA is the
propagation delay through Ul plus the 82530 CLK period.
•
Ul Tpd(max)
= 45
+
+
82530 ClK period
3. tIW: INTA inactive high to WR active low minimum setup time. The spec pertains only to 82530 WR
cycle and has a value of 55 ns. The margin is calculated
assuming an 82530 WR cycle occurs immediately after
an INTA cycle. Since the CPU cycles following an
82530 INTA cycle are devoted to locating and exil'cut-'
ing'the proper interrupt service routine, this condition
5& - 2(5.5)
+
5
+
10 = 74 ns margin
7. tIID: INTA active low to RD active low minimum
setup time. This parameter is system dependent. For
any SCC in the daisy chain, tIID must be greater than
the sum of tCEQ fur the highest priority device in the
daisy chain, tEl for this particular SCC, and tEIEO for
each device separating them in the daisy chain. The
typical system with only I SCC requires t1ID tQ be
greater than tCEQ. Since tEl occurs coincidently with
tCEQ and it is smaller it can be neglected. Additionally, tEIEO does not have any relevance to a ~ystem with
only one SCC. Therefore tIID > tCEQ = 250 ns.
250 = 295ns
2. tCI: rising edge of CLK to iN'i'A hold time. This
spec requires that the state of INTA remains constant
for 100 ns. after the rising edge of CLK. If ~ spec is
violated any change in the state of INTA may not be
internally latched in the 82530. tCI becomes criti,cal at
the end of an iNTA cycle when p;n'A goes iJ,lactive.
When calculating margins with tCI, an extra 82530
CLK
. .period must be add~ to the," INTA ~tive delay.
'7
+ .Tcvctv(min)
+
• 4 Tclcl
2 Tidle states - Tcvctv(max) - tiC [Ul .
Tpd(max) + 82530 ClK period) + Tcvctv(min) + U5
Tpd(min) + U2 Tpd(min) - tllO
= 500 + 250 - 70 - [45
= 148 ns margin
+
250) +' 5
+ ,6 +
2 - 250
:
8. tIDV: RD active low to interrupt vector valid delay.
The 80186 expects the interrupt vector to be valid on
the data bus a minimum of 20 ns before T40f the second acknowledge cycle (Tdvcl). tIDV spec is 1'00 ns
manmum.
.
• 3 Tclcl - Tcvctv(max) - U5 Tpd{max) - U2
Tpd(max) - tIOV(max) - '245 Tpd(max) - Tdvcl(min)' .
= 375 - 70 - 25 - 5.5 - 100 - 14.2 - 20 = 140.3
ns margin
2-440
inter
Ap·222
9. tIl: RD pulse low time. The 82530 requires a minimum of 125 ns.
• 3 Tclcl - Tcvctv(max) - U5 Tpd(max) - U2
Tpd(max) + Tcvctx(min) + U5 Tpd(min) + U2 Tpd(min)
- tll(min)
= 375 - 70 - 25 - 5.5
162 ns margin
+
5
+
6
+
1.5 - 125 =
• Tclcl + 2(Tclclwail state) - Tcvctv(min) TpdWR186-WI'I530(LOW) [Tclcl - Tcvctv(min)
Tpd(max) + U4 Tpd(max)] - Tdrqcl - tWRI
DMACycle
Fortunately, the 80186 DMA controller emulates CPU
read and write cycle operation during DMA transfers.
The DMA transfer timings are satisfied using the above
analysis. Because of the 80186 DMA request input requirements, two wait states are necess~o prevent
inadvertent DMA cycles. There are also CPUDMA intracycle timing considerations that need to be addressed.
1. tDRD: RD inactive high to DTRREQ (REQUEST)
inactive high delay. Unlike the READYREQ signal,
DTRREQ does not immediately go inactive after the
requested DMA transfer begins. Instead, the DTRREQ
remains active for a maximum of 5 tCY + 300 ns. This
delayed request pulse could trigger a second DMA
transfer. To avoid this undesirable condition, a D Flip
Flop is implemented to reset the DTRREQ signal inactive low following the initiation of the requested DMA
transfer. To determine if back to back DMA transfers
are required in a source synchronized configuration,
the 80186 DMA controller samples the service request
line 25 ns before Tl of the deposit cycle, the second
cycle of the transfer.
•
4 Tclcl - Tclcsv(max) - U4Tpd(max) - Tdrqcl(min)
= 500 - 66 - 10.5 - 25 = 398.5 ns margin
2. tRRI: 82530 RD active low to REQ inactive high
delay. Assuming source synchronized DMA transfer,
the 80186 requires only one wait state to meet the tRRI
spec of 200 ns. Two are included for consistency with
tWRI.
• 2 Tclcl + 2(Tclclwail slate) - Tclrl(max) - 2(U2)
Tpd(max) - Tdrqcl - tRRI
=2(125)
margin
+ 2(125)
3. tWRI: 82530 WR active low to REQ inactive high
delay. Assuming destination synchronized DMA transfers, the 80186 needs two wait states to meet the tWRI
spec. This is because the 80186 DMA controller samples requests two clocks before the end of the deposit
~e. This leaves only I Tclcl + n(wait states) minus
WR active delay for the 82530 to inactivate its REQ
signal.
- 70 - 2(5.5) - 200 = 219 ns
2-441
=375 - 5 - [125 - 5
11.3 ns margin
+
4.5
+
+
U3
9.21 - 25 - 200 =
NOTE:
If one wait state DMA interface is required, external
logic, like that used on the DTRREQ signal, can be
used to force the 82530 REQ signal inactive.
4. tREC: CLK recovery time. Due to the internal data
path, a recovery period is required between SCC bus
transactions to resolve metastable conditions internal to
the SCC. The DMA request lines are masked from requesting service until after the tREC has elapsed. In
addition, the CPU should not be allowed to violate this
recovery period when interleaving DMA transfers and
CPU bus cycles. Software drivers or external logic
should orchestrate the CPU and DMA controller operation to prevent tREC violation. In this example circuit, tREC could be imprOVed by clocking the '530 with
a 6 MHz clock.
Reset Operation
During hardware reset, the system RESET signal is asserted high for a minimum of four 80186 clock cycles
(1000 ns). The 82530 requires WR and RD to be simultaneously asserted low for a minimum of 250 ns.
• 4 Tclcl - U3 Tpd(max) - 2(U2) Tpd(max)
Tpd(min) - tREe
= 1000 - 17.5 - 2(5.5)
margin
+
+
U4
3.5 - 250 ns = 725 ns
Other Components
3
inter
8291A
GPIB TALKER/LISTENER
Designed to Interface Microprocessors
MHz Clock Range
• 1-8
• (e.g.,
8048/49, 8051, 8080/85, 8086/88)
16 Registers (8 Read, 8 Write), 2 for
•
to an IEEE Standard 488 Digital
Data Transfer, the Rest for Interface
Interface Bus
Function Control, Status, etc.
Programmable Data Transfer Rate
Directly Interfaces to External Non• Complete
•
Inverting Trancelvers for Connection to
Source and Acceptor
• Handshake
the GPIB
Provides Three Addressing Modes,
Complete Talker and Listener
• Allowing
• Functions
the Chip to be Addressed
with Extended Addressing
Either
as
a Major or a Minor Talker/
Service Request, Parallel Poll, Device
• Clear,
Listener with Primary or Secondary
Device Trigger, Remote/Local
Addressing
Functions
Handshake Provision Allows for
Selectable Interrupts
• DMA
• On-Chip
Bus Transfers without CPU Intervention
and Secondary
• Address Primary
OutP,ut Pin
Recognition
• Trigger
On-Chip
EOS (End of Sequence)
AutomatiC Handling of Addressing and
•
• Handshake
Message
Recognition Facilitates
Protocol
•
Handling of Multi-Byte Transfers
Provision for Software Implementation
of Additional Features
The 8291A is an enhanced version of the 8291 GPIB Talker/Listener designed to interface microprocessors to
an IEEE Standard 488 Instrumentation Interface Bus. It implements all of the Standard's interface functions
except for the controller. The controller function can be added with the 8292 GPIB Controller, and the 8293
GPIB Transceiver performs the electrical interface for Talker/Listener and Talker/Listener/Controller configurations.
Vee
EOI
8291A
I
37
iiiR"F5
DAV
iiiOs
i5i07
TO NON INVERTING
BUS TRANSCEIVERS
lrn56
i5iOs
i5i04
I
i5iOJ
i5'i02
i5iOi
T/R CONTROL
SAO
ATN
iffiii
iTc
RS2
205248:-1
Figure 1. Block Diagram
205248-2
Figure 2. Pin Configuration
3-1
November 1986
Order Number: 205248-002
inter
8291A
to a, listener role or vice-versa during a holdoff,
the "Holdoff on Source Handshake" has been
eliminated. Only "Holdoff on Acceptor Handshake" is available.
8291A FEATURES AND
IMPROVEMENTS
The 8291A is an improved design of the 8291 GPIB
Talker/Listener. Most of the functions are identical
to the 8291, and the pin configuration is unchanged.
8. The rsv local message is cleared automatically
upon exit from SPAS if (APRS:STRS:SPAS) occurred. The automatic resetting of the bit after the
serial poll is complete simplifies the service re'
quest software.
The 8291A offers the follOwing improvements to the
8291:
9. The SPASC interrupt on the 8291' has been replaced by the SPC (Serial Poll Complete) interrupt
on the 8291A. SPC interrupt is set on exit from
SPAS if APRS:STRS:SPAS occurred, indicating
that the controller has read the bus status byte
after· the 8291A requested service. The SPASC
interrupt was ambiguous because a controller
could enter SPAS and exit SPAS generating two
SPASC interrupts without reading the serial poll
status byte. The SPC interrupt also simplifies the
CPU's software by eliminating the interrupt when
'
the serial poll is half way done,
1. EOi is active with the data as a ninth data bit rather than as a control bit. This is to comply with
some additions to the 1975 IEEE-488 Standard
incorporated in the 1978 Standard.
2. The BO interrupt is not asserted until RFD is true.
If the Controller asserts ATN synchronously, the
data is guaranteed to be transmitted. If the Controller asserts ATN asynchronousiy, the SH
(Source Handshake) will return to 5105 '(Source
Idle State), and the output data will be cleared.
Then, if ATN is released while the 8291A is addressed to talk, a new BO interrupt will be generated. This change fixes 8291 problems which
caused data to be lost or repeated and a problem
with the RQS bit (sometimes cannot be asserted
while talking).
10. The rtl Auxiliary Command in the 8291 has been
replaced by Set and Clear rtl Commands in the
8291 A. Using the new commands, the CPU has
the flexibility to extend the length of local mode
or leave it as a short pulse as in the 8291.
3. llOC and REMC interrupts are setting flipflops
rather than toggling flipflops in the interrupt backup register. This ensures that the CPU knows that
these state changes have occurred. The actual
state can be determined by checking the llO and
REM status bits in the upper nibble of the Interrupt Status 2 Register.
11. A holdoff RFD on GET, SOC, and DCl feature
has been added to prevent additional bus activity while the CPU is responding to any of these
commands. The feature is enabled by a new bit
(B4) in the Auxiliary Register B.
'
12. On the 8291, BO could cease to occur upon IFC
going false if IFC occurred asynchrono~. On
the 8291A, BO continues to occur after IFC has
gone false even if it arrived asynchronously.
4. DREQ is cleared by DACK (RD + WR). DREQ on
the 8291 was cleared only by DACK which is not
compatible with the 8089 I/O Processor.
13. User's software can distinguish between the
8291 and the 8291A as follows:
5. The INT bit in Interrupt Status 2 Register is duplicated in bit 7 of the Address 0 Register. If software polling is used to check for an interrupt, INT
in the Address 0 Register should be polled rather
than the Interrupt Status 2 Register. This ensures
that no interrupts are lost due to asynchronous
status reads and interrupts.
a) pon (OOH to register 5)
b) RESET (02H to register 5)
c) Read Interrupt Status 1 Register. If BO interrupt is set, the device is the 8291. If BO is
clear, it is the a291A.
6. The 8291A's Send EOI Auxiliary Command works
on any byte including the first byte of a message.
The 8291 did not assert EOI after this command
for a one byte message nor on two consecutive
bytes.
This can be used to set a flag in the user's software which will permit special routines to be executed for each device. It could be included as
part of a normal initialization procedure as the
first step after a chip reset.
7. To avoid confusion between holdoff on DAV versus RFD if a device is readdressed from a talker
3-2
8291A
Table 1. Pin Description
Pin
No.
Type
00- 0 7
12-19
I/O
DATA BUS PORT: To be connected to microprocessor data
bus.
RSO-RS2
21-23
I
REGISTER SELECT: Inputs, to be connected to three
non multiplexed microprocessor address bus lines. Select
which of the 8 internal read (write) ~isters will be read from
(written into) with the execution of RO (WR).
CS
8
I
CHIP SELECT: When low, enables reading from or writing into
the register selected by RSO-RS2.
RO
9
I
READ STROBE: When low with CS or OACK low, selected
register contents are read.
WR
10
I
WRITE STROBE: When low with CS or OACK low, data is
written into the selected register.
INT(INT)
11
0
INTERRUPT REQUEST: To the microprocessor, set high for
request and cleared when the appropriate register is
accessed by the CPU. May be software configured to be
active low.
OREQ
6
0
DMA REQUEST: Normally low, set high to indicate byte
output or byte input in OMA mode; reset by OACK.
OACK
7
I
DMA ACKNOWLEDGE: When low, resets OREQ and selects
data in/data out register for OMA data transfer (actual transfer
done by RO/WR pulse).
Must be high if OMA is not used.
TRIG
5
0
CLOCK
3
I
EXTERNAL CLOCK: Input, used only for T, delay generator.
May be any speed in 1-8 MHz range.
RESET
4
I
RESET INPUT: When high, forces the device into an "idle"
(initialization) mode. The device will remain at "idle" until
released by the microprocessor, with the "Immediate Execute
'pon" local message.
28-35
I/O
a-BIT GPIB OATA PORT: Used for bidirectional data byte
transfer between 8291A and GPIB via non-inverting external
line transceivers.
OAV
36
I/O
DATA VALID: GPIB handshake control line. Indicates the
availability and validity of information on the 0101-0108 and
EOllines.
NRFO
37
I/O
NOT READY FOR DATA: GPIB handshake control line.
Indicates the condition of readiness of device(s) connected to
the bus to accept data.
NOAC
38
I/O
NOT DATA ACCEPTED: GPIB handshake control line.
Indicates the condition of acceptance of data by the device(s)
connected to the bus.
ATN
26
I
ATTENTION: GPIB command line. Specifies how data on 010
lines are to be interpreted.
Symbol
0101-0108
Name and Function
TRIGGER OUTPUT: Normally low; generates a triggering
pulse with 1 p.sec min. width in response to the GET bus
command or Trigger auxiliary command.
3-3
intJ
8291A
Table 1. Pin Description (Continued)
Symbol
Pin
No.
Type
IFC
24
I
INTERFACE CLEAR: GPIB command line. Places the
interface functions in a known quiescent state.
SRQ
27
0
SERVICE REQUEST: GPIB command line. Indicates the need
for attention and requests an interruption of the current
sequence of events on the GPIB.
REN
25
I
REMOTE ENABLE: GPIB command line. Selects (in
conjunction with other messages) remote or local control of
the device.
EOI
39
I/O
END OR IDENTITY: GPIB command line. Indicates the end of
a multiple byte transfer sequence or, in conjunction with ATN,
addresses the device during a polling sequence.
T/R1
1
0
EXTERNAL TRANSCEIVERS CONTROL LINE: Set high to
indicate output data/signals on the 0101-0108 and OAV lines
and input signals on the NRFO and NOAC lines (active source
handshake). Set low to indicate input data/signals on the
0101-0108 and OAV lines and output signals on the NRFO
and NOAC lines (active acceptor handshake).
T/R2
2
0
EXTERNAL TRANSCEIVERS CONTROL LINE: Set to
indicate output signals on the EOI line. Set low to indicate
expected input signal on the EOI line during parallel poll.
Vee
40
P.S.
POSITIVE POWER SUPPLY: (5V
GNO
20
P.S.
CIRCUIT GROUND POTENTIAL.
Name and Function
± 10%).
NOTE:
All signals on the 8291A pins are specified with positive 10~However, IEEE 488 specifies negative logic on its 16 signal
lines. Thus, the data is inverted once from 00-07 to 000-0108 and non-inverting bus transceivers should be used.
,. -
I
I
-
-
DMA
CONTROLLER
(OPTIONAL)
- _....."---"""'1 Tli'il
8291A
~-----,
GPIB
TIRl
t -_ _D_-A_C_K_--~i'; . " >:
Ooril.ldIe,$tata ;" , ; .\1.
0108'
'COntltlf:ler ParaM Pou$iat.f'.' ',I "
CPPS
OPWS
,CSBS
SIDS
SIIS
OontrOlIer ParalteJ·PoltWait State ' "
Oont!'Qlter StandbY itate "
.
state
CSNS
Controtter~rvi6e Not,Rlflquested
CSRS, , ControJter seOti9fJ~~~~ S~~~" ,
CSWS
CTRS.
bCAS
DCIS
DTAS
OTIS
LACS
LADS
LIDS
LOCS
LPAS
LPIS
LWLS
NPRS
PACS
PPAS
PPIS
Parallel Poll Standby State
Parallel Poll Unaddressed to Configure
State
Remote State
Remote With Lockout State
System Control Active State
Source Delay State
Source Generate State
System Control Interface Clear Active
State
Source Idle State
System Control Interface Clear Idle
State
System Control Interface Clear Not
Active State
Source Idle Wait State
System Control Not Active State
Serial Poll Active State
Serial Poll Idle State
Serial Poll Mode State
System Control Remote Enable Active
State
System Control Remote Enable Idle
State
System Control Remote Enable Not
Active State
Service Request State
Source Transfer State
Source Wait for New Cycle State
Talker Active State
Talker Addressed State
Talker Idle State
Talker Primary Idle State
SINS
'·Contro.er Synol)ronou$ Wajtsta~·
ControUer Tran,sferstate ., .
SIWS
SNAS
SPAS
SPIS
SPMS
SRAS
Device Clear Active State
Device Clear Idle State
Device Trigger Active State
Device Trigger Idle State
Listener Active State
Listener Addressed State
Listener Idle State
Local State
Listener Primary Addressed State
Listener Primary Idle State
Local With Lockout State
Negative Poll Response State
Parallel Poll Addressed to Configure
State
Parallel Poll Active State
Parallel Poll Idle State
SRIS
SRNS
SRQS
STRS
SWNS
TACS
TAOS
TIDS
TPIS
The Controlier function is implemented on the Intel® 8292,
Table 3. IEEE 488 Interface Message Reference List
Mnemonic
Interface Function(s)
Message
LOCAL MESSAGES RECEIVED (By Interface Functions)
gts(1)
go to standby
ist
individual status
Ion
listen only
Ipe
local poll enable
nba
new byte available
power on
pon
ready
rdy
rpp(1)
request parallel poll
rsc(1)
request system control
rsv
request service
return to local
rtl
sic(1)
send interface clear
sre(1)
send remote enable
tca(1)
take control asynchronously
3-6
C
PP
L,LE
PP
SH
SH, AH, T, TE, L, LE, SR, RL, PP, C
AH
C
C
SR
RL
C
C
C
inter
8291A
Table 3. IEEE 488 Interface Message Reference List (Continued)
Mnemonic
Message
Interface Functlon(s)
tcs(1)
take control synchronously
ton
talk only
REMOTE MESSAGES RECEIVED
ATN
Attention
DAB
Data Byte
DAC
Data Accepted
DAV
Data Valid
DCL
Device Clear
END
End
GET
Group Execute Trigger
GTL
Go to Local
lOY
Identify
IFC
Interface Clear
LLO
Local Lockout
MLA
My Listen Address
MSA
My Secondary Address
MTA
My Talk Address
OSA
Other Secondary Address
OTA
Other Talk Address
PCG
Primary Command Group
PPC(2)
Parallel Poll Configure
[PPD] (2)
Parallel Poll Disable
[PPE] (2)
Parallel Poll Enable
PPRN(1)
Parallel Poll Response N
PPU(2)
Parallel Poll Unconfigure
REN
Remote Enable
Ready for Data
RFD
Request Service
RQS
[SOC]
Select Device Clear
SPD
Serial Poll Disable
SPE
Serial Poll Enable
SQR(1)
Service Request
STB
Status Byte
TCT or [TCT](1)
Take Control
UNL
Unlisten
REMOTE MESSAGES SENT
ATN
Attentions
DAB
Data Byte
DAC
Data Accepted
DAV
Data Valid
Device Clear
DCL
END
End
GET
Group Execute Trigger
GTL
Go to Local
lOY
Identify
IFC
Interface Clear
Local Lockout
LLO
MLAor [MLA]
My Listen Address
MSAor[MSA]
My Secondary Address
MTAor [MTA]
My Talk Address
'Other Secondary Address
OSA
3-7
AH,C
T, TE
SH,AH,T,TE,L,LE,PP,C
(Via L, LE)
SH
AH
DC
(via L, LE)
DT
RL
L, LE, PP
T, TE, L, LE, C
RL
L, LE, RL, T, TE
TE, LE, RL
T, TE, L, LE
TE
T, TE
TE, LE, PP
PP
PP
PP
(viaC)
PP
RL
SH
(via L, LE)
DC
T, TE
T, TE
(via C)
(via L, LE)
C
L,LE
C
(ViaT,TE)
AH
SH
(viaC)
(viaT)
(viaC)
(via C)
C
C
(viaC)
(viaC)
(viaC)
(viaC)
(via C)
8291A
Table 3. IEEE 488 Interface Message Reference List (Continued)
Mnemonic
Message
Interface Function(s)(3)
OTA
PCG
PPC
[PPO)
[PPE)
PPRN
PPU
REN
RFO
ROS
[SOC]
SPO
SPE
SRO
STB
TCT
UNL
Other Talk Address
Primary Command Group
Parallel Poll Configure
Parallel Poll Oisable
Parallel Poll Enable
Parallel Poll Response N
Parallel Poll Unconfigure
Remote Enable
Ready for Oata
Request Service
Selected Oevice Clear
Serial Poll Oisable
Serial Poll Enable
Service Request
Status Byte
Take Control
Unlisten
(viaC)
(viaC)
(viaC)
(viaC)
(viaC)
PP
(viaC)
C
AH
T, TE
(viaC)
(viaC)
(viaC)
SR
(viaT,TE)
(viaC)
(viaC)
NOTES:
1. These messages are handled only by Intel's 8292.
2. Undefined commands which may be passed to the microprocessor.
3. All Controller messages must be sent via Intel's 8292.
telling the 8291,6. to release the holdoff. In this way,
the same byte may be read several times, or an over
anxious talker may be held off until all available data
has been processed.
8291A Registers
A bit-by-bit map of the 16 registers on the 8291 A is
presented in Figure 5. A more detailed explanation
of each of these registers and their functions follows. The access of these registers by the microE!:2..cessor is accomplished by using the CS, RO,
WR, and RSO-RS2 pins.
Register
All Read Registers
All Write Registers
High Impedance
CS
RD
WR
RSO-RS2
0
0
1
0
1
d
1
0
d
CCC
CCC
ddd
When the 8291 A is addressed to talk, it uses the
data-out register to move data onto the GPIB. After
the BO interrupt is received and a byte is written to
this register, the 8291A initiates and completes the
handshake while sending the byte out over the bus.
In the BO interrupt disable mode, the user should
wait until BO is active before writing to the register.
(In the OMA mode, this will happen automatically.) A
read of the Oata-In Register does not destroy the
information in the Oata-Out Register.
Data Registers
I 017 I 016 I 015 I 014 I 013 I 012 I 011 I 010
Interrupt Registers
I
ICPTI APT IGETIENOloECI ERR I BO
OATA-IN REGISTER (OR)
BI
I
INTERRUPT STATUS 1 (1 R)
100710061005100410031002100110001
liNT I SPAS I LLO I REM I SPC I LLOC I REMC I Aosci
OATA-OUT REGISTER (OW)
INTERRUPT STATUS 2 (2R)
The Oata-In Register is used to move data from the
GPIB to the microprocessor or to memory when the
8291 A is addressed to listen. Incoming information
is separately latched by this register, and its contents are not destroyed by a write to the data-out
register. The RFO (Ready for Oata) message is held
false until the byte is removed from the data in register, either by the microprocessor or by OMA. The
8291A then completes the handshake automatically.
In RFO holdoff mode (see Auxiliary Register A),· the
handshake is 'not finished until a command is sent
ICPTI APT IGETIENOloECI ERR I BO I
BI
I
INTERRUPT ENABLE 1 (1W)
I 0 I 0 IOMAOI OMAII SPC I LLOclREMCIAOscl
INTERRUPT ENABLE 2 (2W)
IINTloTOI OLoIA05-0IA04-0IA03-0IA02-0IA01-01
AOORESS 0 REGISTER
3-8
inter
8291A
Figure 5. 8291A Registers
READ REGISTERS
REGISTER SELECT
WRITE REGISTERS
CODE
RS2 RS1 RSO
r-I0-17---'-10-16---'-10-1-S'-10-1-4"'10-1-3'-10-1-2-'1-01-1-'1-01---'0I 0
0
0 r-I0-0-7'-10-0-6'-1o-o-s'-I0-0-4T'""10-0-3T'""10-0-2-'10-O-1"T1-00---'0I
DATA OUT
DATA IN
I CPT I APT I GET I END I DEC I ERR I BO I BI
o
o
I CPT I APT I GET I END I DEC I ERR I BO I BI I
INTERRUPT STATUS 1
liNT ISPASI LLO I REM I
INTERRUPT ENABLE 1
S~C ILLOCIREMCIAOScl
o
0
o
INTERRUPT STATUS 2
S8 ISEasl S6 I S5 I S4 I S3 I S2
INTERRUPT ENABLE 2
S1
o
SERIAL POLL STATUS
I ton I Ion I EOI I LPASITPASI LA I TA IMJMNI
SERIAL POLL MODE
o
o
I TO
I LO
ICPT7ICPT6ICPT5ICPT4ICPT3ICPT2ICPT1ICPTOI
I
0
!
0
! 0
IAOM1!AOMOI
ICNT2ICNT1!CNTOICOM4ICOM3!COM2!COM1ICOMOI
o
COMMAND PASS THROUGH
AUXMOOE
o
liNT I OTO I OLO IAOS.0IA04.0IA03.0IA02.0IA01.01
IARS I
OT I OL ! ADS! A04! A031 A021 A01 I
ADDRESS 0/1
ADDRESS 0
x
0
ADDRESS MODE
ADDRESS STATUS
IOT1 I 0L1 IAOS.1IA04.1IA03.1IA02.1IA01.11
1
ADDRESS 1
I EC7 ! EC6! ECS! EC41 EC31 EC21 EC1 I ECO !
EOS
The 8291A can be configured to generate an interrupt to the microprocessor upon the occurrence of
any of 12 conditions or events on the GPIB. Upon
receipt of an interrupt, the microprocessor must read
the Interrupt Status Registers to determine which
event has occurred, and then execute the appropriate service routine (if necessary). Each of the 12
interrupt status bits has a matching enable bit in the
interrupt enable registers. These enable bits are
used to select the events that will cause.the INT pin
to be asserted. Writing a logic "1" into any of these
bits enables the corresponding interrupt status bits
to generate an interrupt. Bits in the Interrupt Status
Registers are set regardless of the states of the enable bits. The Interrupt Status Registers are then
cleared upon being read or when a local pon (poweron) message is executed. If an event occurs while
one of the Interrupt ,Status Registers .is being read,
the event is held until after its register is cleared and
then placed in the register.
The mnemonics for each of the bits in these registers and a brief description of their respective functions appears in Table 4. This table also indicates
how each of the interrupt bits is set.
NOTE:
The INT bit in the Address 0 Register is a duplicate
of the INT bit in the Interrupt Status 2 Register. It is
only a status bit. It does not generate interrupts and
thus does not have a corresponding enable bit.
The BO and BI interrupts enable the user to perform
data transfer cycles. BO indicates that a data byte
should be written to the Data Out Register. It is set
by TACS. (SWNS + SGNS) • RFD. It is reset when
the data byte is written, ATN is asserted, or the
8291A exits TACS. Data should never be written to
the Data Out Register before BO is set. Similarly, BI
is set when an input byte is accepted into the 8291 A
and reset when the microprocessor reads the Data
In Register. BO and BI are also reset by pon (poweron local message) and by a read of the Interrupt
Status 1 Register. However, if it is so desired, data
transfer cycles may be performed without reading
the Interrupt Status 1 Register if all interrupts except
for BO or BI are disabled; B0 and .BI will automatically reset after each byte is transferred.
NOTE:
Reading the interrupt status registers clears the bits
which were set. The software must examine all
relevant bits in the interrupt status registers before
disregarding the value or an important interrupt may
be missed.
3-9
8291A
",Table 4. Interrupt Bits
Indicates Undefined Commands
CPT
An undefmed command has been received.
Sel by (TPAS + LPAS)oSCGoACDSoMODE 3
APT
A secondary address must be passed through'
to the microprocessor for recog,nition.
Set by DTAS
GET
A group execute trigger has occurred
Set by (EOS + EOI)oLACS
END
An EOS or EOI message has been received.
Set by DCAS
DEC
Device Clear Active State has occurred
Set by TACS.nba.DAC.RFD
ERR
Interface error has occurred; no listeners
are active.
TACSo(SWNS + SGNS)
BO
A byte should be output.
Set by LACS.ACDS
BI
A byte has been Input
Shows status of the INT pin
INT
The device has been enabled for a serial poll
SPAS
The device IS in local lock out state.
.I LWLS+RWLS,
LLO
The device IS in a remote state.
I REMS+RWLS,
REM
SPAS --+~ if APRS:STRS:SPAS was true
LLOO LLO
SPC
LLOC
These are status only. They will not generate
interrupts, nor do they have corresponding
mask bits.
Serial Poll Complete interrupt.
Local lock out change interrupt.
'Remoti::Jocal
REMC
Remote/Local change interrupt.
'Addresseunaddressed
ADSC
Address status change interrupt.'
205248-24
NOTE:
1. In ton (talk-only) and Ion (listen-only) mOdes, no ADSC interrupt is generated.
If the 8291A is used in the interrupt mode, the INT
and DREQ pins can be dedicated to data input and
output interrupts, respectively by enabling BI and
DMAO, provided that no other interrupts are enabled. This eliminates the need to read the interrupt
status registers if a byte is received ,or transmitted.
completed. The bit will be set when the 8291A is an
active listener (LACS) and either EOS (provided the
End on EOS Received feature is enabled in the Auxiliary Register A) or EOI is received. EOS will generate an interrupt when the byte in the Data In Register matches the byte in the EOS register. Otherwise
the interrupt will be generated when a true input is
detected on EOI.
The ERR bit is set to indicate the bus error condition
when the 8291 A is an active talker and tries to send,
a byte to the GPIB, but there are no active listeners
(e.g.; all devices on the GPIB are in AIDS). The lOgical equivalent of (nba. TACS. DAC. RFD) will set
this bit.
The GET interrupt bit is used by the'microprocessor
to detect that DTAS has occurred. It is set by the
8291A when the GET message is received while it is
addressed to listen. The TRIG output pin of the
8291A fires when the GET message is received.
Thus, the basic operation of device trigger may be
started without microprocessor software intervention.
The DEC bit is set whenever DCAS has occurred.
The user must define a known stafe to which all de.
vice functions will retumin DCAS. Typically this
state will be a power-on state. However, the state of
the device functions at DCAS is at the designer's
discretion. It should be noted .that .DCAS has no effect on the interface functions which are retumed to
known state by the IFC (interface clear) message
or the pon local message. '
The APT interrupt bit indicates to the processor that
a secondary address is available in the CPT register
for validation. This interrupt will only occur if Mode 3
addressing is in effect. (Refer to the section on addressing.) In Mode 2, secondary addresses will be
recognized automatically on the 8291A. They will be
ignored in Mode 1.
a,
The END interrupt bit may be used by the microprocessor to detect that a multi-byte transfer has been
3-10
8291A
between memory and the GPIB; DMAI (DMA in) enables the DREO (DMA request) pin of the 8291A to
be asserted upon the occurrence of BI. Similarly,
DMAO (DMA out) enables the DREO pin to be asserted upon the occurrence of BO. One might note
that the DREO pin may be used as a second interrupt output pin, monitoring BI and/or BO and enabled by DMAI and DMAO. One should note that the
DREO pin is not affected by a read of the Interrupt
Status 1 Register. It is reset whenever a byte is written to the Data Out Register or read from the Data In
Register.
The CPT interrupt bit flags the occurrence of an undefined command and of all secondary commands
following an undefined command. The Command
Pass Through feature is enabled by the BO bit of
Auxiliary Register B. Any message not decoded by
the 8291A (not included in the state diagrams in Appendix B) becomes an undefined command. Note
that any addressed command is automatically ignored when the 8291A is not addressed.
Undefined commands are read by the CPU from the
Command Pass Through register of the 8291 A. This
register reflects the logic levels present on the data
lines at the time it is read. If the CPT feature is enabled, the 8291A will hold off the handshake until
this register is read.
To ensure that an interrupt status bit will not be
cleared without being read, and will not remain uncleared after being read, the 8291 A implements a
special interrupt handling procedure. When an enabled interrupt bit is set in either of the Interrupt
Status Registers, the input of the registers are
blocked until the set bit is read and reset by the
microprocessor. Thus, potential problems arise
when interrupt status changes while the register is
being blocked. However, the 8291 A stores all new
interrupts in a temporary register and transfers them
to the appropriate Interrupt Status Register after the
interrupt has been reset. This transfer takes place
only if the corresponding bits were read as zeroes.
An especially useful feature of the 8291A is its ability
to generate interrupts from state transitions in the
interface functions. In particular, the lower 3 bits of
the Interrupt Status 2 Register, if enabled by the corresponding enable bits, will cause an interrupt upon
changes in the following states as defined in the
IEEE 488 Standard.
Bit 0
Bit 1
Bit 2
ADSC
REMC
LLOC
change in LIDS or TIDS or MJMN
change in LOCS or REMS
change in LWLS or RWLS
Serial Poll Registers
The upper 4 bits of the Interrupt Status 2 Register
are available to the processor as status bits. Thus, if
one of the bits 0-2 generates an interrupt indicating
a state change has taken place, the corresponding
status bit (bits 3-5) may be read to determine what
the new state is. To determine the nature of a
change in addressed status (bit 0) the Address
Status Register is available to be read. The SPC interrupt (bit 3 in Interrupt Status 2) is set upon exit
from SPAS if APRS:STRS:SPAS occurred which indicates that the GPIB controller has read the bus
serial poll status byte after the 8291A requested
service (asserted SRO). The SPC interrupt occurs
once after the controller reads the status byte if
service was requested. The controller may read the
status byte later, and the byte will contain the last
status the 8291A's CPU wrote to the Serial Poll
Mode Register, but the SROS bit will not be set and
no interrupt will be generated. Finally, bit? monitors
the state of the 8291A INT pin. Logically, it is an OR
of all enabled interrupt status bits. One should note
that bits 3-6 of the Interrupt Status 2 Register do
not generate interrupts, but are available only to be
read as status bits by the processor. Bit? in Interrupt
Status 2 is duplicated in Address 0 Register, and the
latter should be used when polling for interrupts to
avoid losing one of the interrupts in Interrupt Status
2 Register.
S8
I SROS I S6 I S5 I S4
S3
S2
S1
I S6 I S5 I S4 I S3 I S2
S1
SERIAL POLL STATUS (3R)
S8
rsv
SERIAL POLL MODE (3W)
The Serial Poll Mode Register determines the status
byte that the 8291A sends out on the GPIB data
lines when it receives the SPE (Serial Poll Enable)
message. Bit 6 of this register is reserved for the rsv
(request service) local message. Setting this bit to 1
causes the 8291A to' assert its SRO line, indicating
its need for attention from the controller-in-charge of
the GPIB. The other bits of this register are available
for sending status information over the GPIB. Sometime after the microprocessor initiates a request for
service by setting bit 6, the controller of the GPIB
sends the SPE message and then addresses the
8291 A to talk. At this point, one byte of status is
returned by the 8291A via the Serial Poll Mode Register. After the status byte is read by the controller,
rsv is automatically cleared by the 8291A and an
SPC interrupt is generated. The CPU may request
service again by writing another byte to the Serial
Poll Mode Register with the rsv bit set. If the control-
Bits 4 and 5 (DMAI, DMAO) of the Interrupt Mask 2
Register are available to enable direct data transfers
3-11
8291A
ler performs a serial poll when the rsv bit is'clear, the
last status byte written will be read, but the SRO line
will not be driven by the 8291A and the SROS bit will
be clear in the status byte.
The Serial Poll Status Register is available for reading the status byte in the Serial Poll Mode Register. '
The processor may check the 'status of a request for
service by polling bit 6 of this register, which corresponds to SROS (Service Request State). When a
Serial Poll is 'conducted and the controller-in-charge
reads the status byte, the SROS bit is cleared. The
SRO line and the rsv bit are tied together.
Address Registers
TA IMJMNI
I ton lion I EOII LPAS I TPAS I LA
ADDRESS STATUS (4R)
liNT I DTO I DLO I ADS-O I AD4-0 I AD3-0 I AD2-0 I AD1·0 I
ADDRESS 0 (6R)
IX
To use Mode 2 addressing,the primary address must
be loaded into the Address 0 Register, and the Secondary Address is placed in the Address 1 Register.
With both primary and secondary addresses residing
on chip, the 8291A can handle all addressing sequences without processor intervention.
-In Mode 3, the 8291A handles addressing just as
it does in Mode 1, except that each Major or Minor
primary address must be followed by a secondary
address. All secondary addresses must be verified
by the microprocessor when Mode 3 is used. When
the 829,1A is in TPAS or LPAS (talker/listener primary addressed state), and it does not recognize the
byte on the 010 lines, an APT interrupt is generated
(see section on Interrupt Registers) and the byte is
available in the CPT (Command Pass-Through) Register. As part of its interrupt service routine, the microprocessor must read the CPT Register and write
one of the following responses to the Auxiliary Mode
Register:
1. 07H implies a non-valid secondary address
2. OFH implies a valid secondary address
IDT1IDL1IADS-1IAD4-1IAD3-1IAD2-1IAD1-11
ADDRESS 1 (7R)
I TO I LO I
0 I
0
0
I
0
,
IADM11ADMoi
Setting the TO bit generates the local ton (talk-only)
message and sets the 8291 A to a talk-only mode.
This mode allo\ys the device to operate as a talker in
an interface system without a controller.
ADDRESS MODE (4W)
Setting the LO bit generates the local 100 (listenonly) message and sets lhe 829M to a listen-only
mode. This mode allows the device to operate as a
listener in an interface system without a controller.
The above bits may also be used by a controller-incharge to set itself up for remote command or data
communication.
IARSI DT I DL I ADS I AD4 I AD3 I AD2 I AD1 I
ADDRESS 0/1 (6W)
The Address Mode Register is used to select one of
the five modes of addressing available on the
8291A. It determines the way in which the 8291A
uses the information in the Address 0 and Address 1
Registers.
The mode of addressing implemented by the 8291 A
may be selected by writing one of the following
bytes to .the Address Mode Register. '
-In Mode 1, the contents of the Address 0 Register
constitute the "Major" talker/listener address while
the Address 1 Register represents the "Minor" talker/listener address. In applications where only one
address is needed, the major talker/listener is used,
and the minor talk~r/listener ,should be disabled.
Loading an address via the Address 0/1 Register
into Address Registers 0 and 1 enable~ the major
and minor talker/listener functions respectively.
Register
Contents
10000000
01000000
11000000
00000P01
00000010
0000,0011
-In Mode 2 the 8291A recognizes two sequential
address bytes: a primary followed by, a secondary.
Both address bytes must be received in order to enable the device to talk, or listen. In this manner,
Mode 2 addressing implements the extended talker
and listener functions as defined in IEEE-488.
Mode
Enable talk only' mode (ton)
Em~ble listen only 1J10de (Ion)
The 8291 may talk to itself, ,
Mode 1, (Primary-Primary) "
Mode 2 (Primary-Secondary)
Mode, 3 (Primary/APT-Primary/ APT)
The Address Status Register contains information
used by tl1emicroprocessor t9 handle its own addressing. This information includes status bits that
monitor the address state of each talker/listener,
",ton" and, "Ion" .flags which indicate the talk and
listen only states, and an EOI bit which, when set,
signifies that the END message came with the last
data byte. LPAS anc! TRAS in,dicate that the listener
3-12
inter
8291A
or talker primary address has been received. The
microprocessor can use these bits when the secondary address is passed through to determine
whether the 8291 A is addressed to talk or listen.
The LA (listener addressed) bit will be set when the
8219A is in LACS (Listener Active State) or in LADS
(Listener Addressed State). Similarly, the TA (Talker
Addressed bit) will be set to indicate TACS or TAOS,
but also to indicate SPAS (Serial Poll Active State).
The MJMN bit is used to determine whether the information in the other bits applies to the Major or
Minor talker/listener. It is set to "1" when the Minor
talker/listener is addressed. It should be noted that
only one talker/listener may be active at anyone
time. Thus, the MJMN bit will indicate which, if either, of the talker/listeners is addressed or active.
Mode 3, where secondary addresses are passed
through, must the processor intervene in the addressing sequence.
The Address 0 Register contains a copy of bit 7 of
the Interrupt Status 2 Register (INT). This is to be
used when polling for interrupts. Software should
poll register 6 checking for INT (bit 7) to be set.
When INT is set, the Interrupt Status Register should
be read to determine which interrupt was received.
Command Pass Through Register
ICPT71 CPT61 CPTsl CPT41 CPT31 CPT21 CPT11 CPTol
COMMAND PASS THROUGH (SR)
The Address 0/1 Register is used for specifying the
device's addresses according to the format selected
in the Address Mode Register. Five bit addresses
may be loaded into the Address 0 and Address 1
Registers by writing into the Address 0/1 Register.
The ARS bit is used to select which of these registers the other seven bits will be loaded into. The DT
and DL bits may be used to disable the talker or
listener function at the address signified by the other
five bits. When Mode 1 addressing is used and only
one primary address is desired, both the talker and
the listener should be disabled at the Minor address.
The Command Pass Through Register is used to
transfer undefined 8-bit remote message codes from
the GPIB to the microprocessor. When the CPT feature is enabled (bit BO in Auxiliary Register B), any
message not decoded by the 8291A becomes an
undefined command. When Mode 3 addressing is
used secondary addresses are also passed through
the CPT Register. In either case, the 8291 A will
hold-off the handshake until the microprocessor
reads this register and issues the VSCMD auxiliary
command.
As an example of how the Address 0/1 Register
might be used, consider an example where two primary addresses are needed in the device. The Major
primary address will be selectable only as a talker
and the Minor primary address will be selectable
only as a listener~ This configuration of the 8291 A is
formed by the following sequence of writes by the
microprocessor.
CS RD WR
Date
RS2-RSo
0
1
0
00000001
100
2. Load major address
into Address 0 Register
with listener function
disabled.
0
1
0
001AAAAA
110
3. Load"minor address
into Address 1 Register
with talker functiofl
disabled.
0
t
0
110BBBBB
110
Operation
1. Select addressing
Mode 1
The CPT and APT interrupts flag the availability of
undefined commands and secondary addresses in
the CPT Register. The details of these interrupts are
explained in the section on Interrupt Registers.
An added feature of the 8291A is its ability to handle
undefined secondary' cOlT)mands following undefined primaries. Thus, the number of available commands for future IEEE-488 definition is increased;
one undefined primary command followed by a sequence of as many as 32 secondary commands can
be processed. The IEEE-488 Standard does not permit users to define their own commands, but upgrades, of the stand,ard are thus provided for.
The recommended use of the 8291 A's undefined
command capabilities is for a controller-configured
Parallel Poll. The PPC message is an undefined primary command typically followed by PPE, and undefined secondary command. For details on this procedure, refer to the section on Parallel Poll Protocol.
At this point, the addresses 'AAAAA and BBBBB are
stored in the Address 0 and Address 1 Registers
respectively, and are available to be read by tHe microprocessor. Thus, it is not necessary to store any
address information elsewhere. Also, with the information stored in the Address 0 and Address 1 Registers, processor intervention is not required to
recognize addressing by the controller. Only in
Auxiliary Mode Register
§NT2IcNT1IcNTOlcOM4IcoM3IcoM~COM1IcOMq
AUX MODE (SW)
CNTO-2:CONTROL BITS
COMO-4:COMMAND BITS
3-13
inter
8291A
The 8291A is designed to power up in certain states
as specified in the IEEE-488 state diagrams. Thus,
the following states' are in effect in the power up
state: SIDS, AIDS, TIDS,LlDS, NPRS, LOCS, and
PPIS.
The. Auxiliary Mode Register contains. 'a three-bit
contrcl field and a .five-bit command field. It is used
for several purposes on the 8291A:
1. To load "hidden" auxiliary registers on the 8291 A.
2. To issue .commands from the microprocessor to
the 8291A.
The "0000" pon is an immediate execute command
(a pon pulse). It is also used to release the "initialize" state generated by either an external reset
pulse or the "0010" Chip Reset command.
3. To preset an internal counter used to generate
T1, delay in the Source Handshake function, as
defined in IEEE-488.
Table 5 summarizes how these tasks are performed
with the Auxiliary Mode Register. Note that the three
control bits determine how the five command bits
are interpreted.
TableS
0010-Chip Reset (Initialize): This command has the
same effect as a pulse applied to the Reset pin. (Refer to the section on Reset Procedure.)
0011-Finish Handshake: This command finishes a
handshake that was stopped because of a holdoff
on RFD. (Refer to Auxiliary Register A.)
Code
pontrol Command
Bits
Bits
000
001
Command
ccce
OCCCC Execute auxiliary command
ODDDD Preset internal counter to'
match external clock
frequency of DDDD MHz
(DDDD binary representation
. of 1to 8 MHz)
100
DDDDD Write DDDDD into
auxiliary register A
101
DDDDD Write DDDDD into
auxiliary register B
011
0100-Trigger: A "Group Execute Trigger" is forced
by this command. It has the same effect as a GET
command issued by the controller-in-charge of the
GPIB, but does not cause a GET interrupt.
0101, 1101-Clear/Set rtl: These commands correspond to the local rtl message as defined by the
IEEE-488. The 8291A will go into local mode when a
Set rtl Auxiliary Command is received if local lockout
is not in effect. The 8291A will exit local mode after
receiving a Clear rtl Auxiliary Command if the 8291A
is addressed to listen.
0110-5end EOI: The EOIline of the 8291A may be
asserted with this command. The command causes
EOI togo true with the next byte transmitted. The
EOI line is then cleared upon completion of the
handshake, for that byte.
USP3P2P1 Enable/disable parallel
poll either in response to remote
messages (PPC followed by
PPE or PPD) or as a local
Ipe message ..(Enable if U = 0,
disable if U = .1.)
0111, 1111-Non ValidlValid Secondary Address or
Command (VSCMD): This command informs the
8291A that the secondary address received by the
microprocessor was valid or invalid (0111 = invalid,
1111 = valid). If Mode 3 addressing is used, the
processor must field each extended address and respond to it, or the GPIB will hang up. Note that the
COM3 bit is the invalid/valid flag.
AUXILIARY COMMAND$
Auxiliary commands are executed by the 8291 A
whenever OOOOCCCC is written, into the Auxiliary
Mode Registe.f, where CCCC is the 4-bit command
. ,
.
code.
The valid (1111) command is also used to tell the
8291 A to continue from the command-pass-throughstate, or from RFD holdoff on GET, SDC or DCL.
OOOo..-:-lmmediate Exe,cute pon: This cOmmand resets the 8291A to a power upstate (local pon mes.
sage as defined in IEEE-488).
1000-pon: This command puts the 8291A into the
pon (power on) state and holds it there. It is similar
to a Chip Reset except none of the Auxiliary Mode
Registers are cleared. In this state, the 8291A does
not partioipate in any bus activity. An Immediate Execute pon releases the 8291 A from the pon state
and permits the device to participate in the bus activity again.
The following conditions, constitute the power up
state:
1. All talkers and listeners are disabled.
2. No illterrupt stat!Js bits are set.
3-14
inter
8291A
Thus, the shortest T1 is aChieved by setting NF = 1
using an 8 MHz clock with a 50% duty cycle clock
(tSYNC<63 ns):
0001, 1001-Parallel Poll Flag (local "ist" message):
This command sets (1001) or clears (0001) the parallel poll flag. A "1" is sent over the assigned data
line (PRR = Parallel Poll Response true) only if the
parallel poll flag matches the sense bit from the Ipe
local message (or indirectly from the PPE message).
For a more complete description of the Parallel Poll
features and procedures refer to the section on Parallel Poll Protocol.
1
T1(HS) =
=
125 ns max.
AUXILIARY REGISTER A
Auxiliary Register A is a "hidden" 5-bit register
which is used to enable some of the 8291 A features.
Whenever a1 00 A4A3A2A1AO byte is written into the
Auxiliary Register, it is loaded with the data
A4A3A2A1AO' Setting the respective bits to "1" enables the following features.
INTERNAL COUNTER
The internal counter determines the delay time allowed for the setting of data on the DIO lines. This
delay time is defined as T1 in IEEE-488 and appears
in the Source Handshake state diagram between the
SDYS and STRS. As such, DAV is asserted T 1 after
the DIO lines are driven. Consequently , T 1 is a major factor in determining the data transfer rate of the
8291A over the GPIB (T1 = TWRDV2-TWRD15).
Ao-RFD Holdoff on all Data: If the 8291 A is listening, RFD will not be sent true until the "finish handshake" auxiliary command is issued by the microprocessor. The holdoff will be in effect for each data
byte.
When open-collector transceivers are used for connection to the GPIB, T1 is defined by IEEE-488 to be
2 !ks. By writing 0010DDDD into the Auxiliary Mode
Register, the counter is preset to match a fc MHz
clock input, where DDDD is the binary representation of NF [1 ~NF~8, NF = (DDDD)21. When NF =
fc, a 2 !ks T 1 delay will be generated before each
DAV asserted.
A1-RFD Holdoff on End: This feature enables the
holdoffon EOI or EOS (if enabled). However, no
hold-off will be in effect on any other data bytes.
Az-End on EOS Received: Whenever the byte in
the Data In Register matches the byte in the EOS
Register, the END interrupt bit will be set in the Interrupt Status 1 Register.
Aa-Output 'EOI on EOS Sent: Any occurrence of
data in the Data Out Register matching the EOS
Register causes the EOI line to be sent true along
with the data.
tSYNC is a synchronization error, greater than zero
and smaller than the larger of T clock high and T
clock low. (For a 50% duty cycle clock, tSYNC is less
than half the clock cycle).
A4-EOS Binary Compare: Setting this bit causes
the EOS Register to function as a full 8-bit word.
When it is not set, the EOS Register is a 7 -bit word
(for ASCII characters).
If it is necessary that T 1 be different from 2 !ks, NF
may be set to a value other than fc. In this manner,
data transfer rates may be programmed for a given
system. In small systems, for example, where transfer rates exceeding GPIB specifications are required, one may set NF
045
TEST POINTS
::x=
i
DEVICE
UNDER
<
TEST
Cl
= 1S0pF
205248-10
A.G. Testing: Inputs are driven at 2.4V for a Logic "1" and 0.45V
for a Logic "0". ,Timing measurements are made at 2.0V for a
Logic "1" and 0.8V for a Logic "0".
205248-11
GPIB TIMINGS(1)
Symbol
TEOT13(2)
TEOD16
Parameter
Test Conditions
Max
Units
EOI,J.. toTR1 t
135
ns
PPSS, ATN
= 0.45V
= 0.45V
= 0.45V
EOI ,J.. to DIO Valid
155
ns
PPSS, ATN
TEOT12
EOI t toTR1,J..
155
ns
PPSS, ATN
TATND4
ATN,J.. to NDAC,J..
155
ns
TACS, AIDS
TATI14
ATN,J.. toTR1,J..
155
ns
TACS, AIDS
TATI24
ATN,J.. to TR2,J..
155
ns
TACS, AIDS
TDVND3-C
DAV,J.. to NDAC t
650
ns
AH,CACS
TNDDV1
NDAC t to DAV t
350
ns
SH,STRS
TNRDR1
NRFD t to DREQ t
400
ns
SH
= 2.4V
TDVDR3
DAV,J.. to DREQ t
600
ns
AH, LACS, ATN
TDVND2-C
DAV t to NDAC,J..
350
ns
AH, LACS
TDVNR1-C
DAV t to NRFD t
350
ns
AH, LACS, rdy
TRDNR3
RD,J.. toNRFDt
500
ns
AH, LACS
TWRD15
WR t to DIO Valid
280
ns
SH, TACS, RS
TWRE05
WR t to EOI Valid
350
ns
SH, TACS
TWRDV2
WR t toDAV,J..
+
ns
High Speed Transfers Enabled,
NF = fC, tSYNC = %-fc
830
tSYNC
= True
= O.4V
NOTES:
1. All GPIB timings are at the pins of the 8291A
2. The last number in the symbol for any GPIB timing parameter is chosen according to the transition directions of the
reference signals. The following table describes the numbering scheme.
ito
i
1
ito
-l.
2
-l.
-l.
to
t
3
to
-l.
4
i to VALID
5
-l. to VALID
6
3-25
inter
8291A
APPENDIX A
MODIFIED STATE DIAGRAMS
Figure A-1 presents the interface function state diagrams. It is derived from IEEE Std. state diagrams,
with the following changes:
A. The 8291 A supports the complete set of IEEE488 interface functions except for the controller.
These include: SH1, AH1, T5, TE5, L3, LE3, SR1,
RL1, PP1, DC1, DT1, and co.
Consider the condition when the Not-Ready-ForData signal (pin 37) is active. Intel indicates this active low signal with the symbol NRFD (VOUT S VOL
for AH; VIN s VIL for SH). The IEEE-488-1978 Standard, in its state diagrams, indicates the active state
of this Signal (True condition) with NRFD.
D. All remote multiline messages decoded are conditioned by ACDS. The multiplication by ACDS is
not drawn to simplify the diagrams.
B. Addressing modes included in T, L state diagrams.
E. The symbol
x-G)
Note that in Mode 3, MSA, eSA are generated only
after secondary address validity check by the microprocessor (APT interrupt).
205248-12
C. In these modified state diagrams, the IEEE-4881978 convention of negative (lOW true) logic is
followed. This should not be confused with the
Intel pin- and signal-naming convention based on
positive logic. Thus, while the state diagrams below carry low true logic,' the signals described
elsewhere in this data sheet are consistent with
Intel notation and are based on positive logic.
indicates:
1. When event X occurs, the function returns to
state S.
2. X overrides any other transition condition in the
function.
Statement 2 simplifies the diagram, avoiding the explicit use of X to condition all transitions from S to
other states.
Convention
Level
Logic
IEEE-488
Intel
0
T
F
T
F
T
F
DAV
DAV
NDAC
NDAC
NRFD
NRFD
DAV
DAV
NDAC
NDAC
NRFD
NRFD
1
0
1
0
1
r---'-l
I
I
IL
SH
I
I
I
_ _ _ _ -l
Fl
pon
ATN + F1
(WITHIN t2i
F1 =TACS
+
DAV
SPAS
, 205248-13
Figure A·1. 8291A State Diagrams
3-26
inter
8291A
NDAC
NRFD
I
L _ ~
F2
p o n - - -__'"I
__
J
'THIS TRANSITION WILL NEVER
OCCUR UNDER NORMAL OPERATION
tTOELAV IS ABOUT 300 NS
F2 (WITHIN t2)
FOR DEBOUNCING DAV
F3 + T3'·
ATN
DAV
BI
END IF (EO I + EOSI RECEIVED
NRFD
F2 ~ ATN + LACS + LADS
F3 ~ ATN + rdy
T3' ~ T3 • CPT. APT
205248-"14
r - - - -...,
I
I
I
TEl
I
I
L ____
oon---__""
J
STB AND Ras AVAILABLE
TO SH
IFC
(WITHIN 141
EOI IF DAB
F4 ~ OTA + (OSA. TPAS
MODE 1 + MLA. MODE 1
+
= EOS
MSA. LPAS) •
205248-15
Figure A-1, 8291A State Diagrams (Continued)
3-27
8291A
MTA
pon---"
PCG'MTA
SPE
pon - - - _ - I
SPD
IFC
(WITHIN 14)
205248-16
r----- 1
RQs IN STB
I
I
SR 0
I
L ____
I
I
I
J
pon---_-I
ROS IN STB
205248-17
Figure A-1. 8291A State Diagrams (Continued)
3-28
intJ
8291A
r
-----1
I
I
I
LEI
I
L ____
I
J
pon---_-f
pon---_..
205248-18
r-----'
I
I
F5· rti
I
I
IL _ _ _ _ JI
RL
pon---_..
F5 = (MLA • MODE 1
+
205248-19
LPAS. MSA • MODE 1)
Figure A·1. 8291A State Diagrams (Continued)
3-29
inter
8291A
r-----,
I
I
,I
PP2
I
I
I
L ____ J
pon---"
lOY·
ii5Y
(WITHIN IS}
(WITHIN IS}
PPRN
=RESPONSE ~--f
205248-20
'lOY = ATN • EOI
r----'
I
I
I DC
I
IL ____ JI
Fe = OCL
205248-21
+ SOC. LADS
r----'
I
I
I OT
I
I ____ .JI
L
205248-22
Figure A-1. 8291A State Diagrams (Continued)
3·30
intJ
8291A
APPENDIX B
Table B·1. IEEE 488 Time Values
Time Value
Identlfler(1)
Function (Applies to)
Description
T6
T7
SH
LC, re, SH, AH, T, L
AH
T, TE, L, LE, C, CE
PP
C
C
T8
Te
C
C
Settling Time for Multiline Messages
Response to ATN
Interface Message Accept Time(3)
Response to IFC or REN False
Response to ATN + EOI
Parallel Poll Execution Time
Controller Delay to Allow Current Talker
to see ATN Message
Length of IFC or REN False
Delay for EOI(5)
T1
t2
T3
4
ts
Value
:?: 2 JA-s(2)
~
200 ns
> 0(4)
< 100 JA-s
~
200 ns
:?: 2 JA-s
~
500 ns
> 100 JA-s
~
1.5 JA-s(6)
NOTES:
1. Time values specified by a lower case t indicate the maximum time allowed to make a state transition. Time values
specified by an upper case T indicate the minimum time that a function must remain in a state before exiting.
2. If three-state drivers are used on the 00, DAV, and
lines, T1 may be:
1. ~ 1100 ns.
2. Or ~ 700 ns if it is known that within the controller ATN is driven by a three-state driver.
3. Or ~ 500 ns for a" subsequent bytes following the first sent after each false transition of ATN (the first byte must be sent
in accordance with (1) or (2).
4. Or ~ 350 ns ·for a" subsequent bytes following the first sent after each false transition of ATN under conditions specified
In Section 5.2.3 and warning note. See IEEE Standard 488.
3. Time required for interface functions to accept, not necessarily respond to interface messages.
4. Implementation de~dent.
5. Delay required for
NDAC, and iiiRFD Signal lines to indicate valid states.
6. ~ 600 ns for three-state drivers.
ro
ro,
3-31
8291A
APPENDIX .C
THE THREE-WIRE HANDSHAKE
TWRDIS
I
I
VALID
~T1.
NOTVALID
VALID
I+-T1.
~TWRDV~
!--TNDDV1_I4--TDVNR1--oo
-t\.
t:=:L
I
""L
-~
~f-TADNR3_
IIRFD
~~
~
!-TDVND3_
~r
,
1\
F9
X
DREQ(SH)
!4-TDVDR3
DREQ(AH)
-:lL
liD
- ....
205248-23
Figure C-1. 3-Wlre Handshake Timing at 8291A
3-32
intJ
8292
GPIB CONTROLLER
• Complete IEEE Standard 488 Controller
Function
• Complete Implementation of Transfer
Control Protocol
•
• Synchronous Control Seizure Prevents
the Destruction of Any Data
Transmission in Progress
Interface Clear (IFC) Sending Capability
Allows Seizure of Bus Control and/or
Initialization of the Bus
• Responds to Service Requests (SRQ)
• Sends Remote Enable (REN), Allowing
Instruments to Switch to Remote
Control
• Connects with the 8291 to Form a
Complete IEEE Standard 488 Interface
Talker/Listener/Controller
The 8292 GPIB Controller is a microprocessor-controlled chip designed to function with the 8291 GPIB Talker/Listener to implement the full IEEE Standard 488 controller function, including transfer control protocol.
The 8292 is a preprogrammed Intel® 8041 A.
MICROPROCESSOR SYSTEM BUS
IFCL
Xl
r--- --... OACK
r-:=:'+I
II
OMA
OREO
I
I
CONTROLLER
(OPTIONAL)
8291
GPIB
TALKERI
LISTENER
I
I
L ______ I
8292
GPIB
CONTROLLER
X2
REN
RESET
OAV
Vee
IBFI
CS
TIR 2
TiAl
VCC
COUNT
OBFI
GND
EOI
IIli
Ao
SPI
WR
CIC
SYNe
NC
TCI
Do
ATNO
01
NC
02
CLTH
03
Vee
8293
04
NC
BUS
TRANSCEIVERS
05
SYC
De
IFC
07
ATNI
VSS
SRO
205250-2
GENERAL PURPOSE INTERFACE BUS
Figure 2. Pin Configuration
205250-1
Figure 1.8291,8292 Block Diagram
3-33
November 1986
Order Number: 20525(}O002
inter
8292
Table 1. Pin Description
Pin
Number
Type
IFCL
1
I
IFC RECEIVED (LATCHED): The 8292 monitors the IFC Line (when not
system controller) through this pin.
X1, X2
2,3
I
CRYSTAL INPUTS: Inputs for a crystal, LC or an external timing Signal to
determine the internal oscillator frequency.
.
Symbol
Name and Function
RESET
4
I
RESET: Used to initialize the chip to a known state during power on.
es
6
I
CHIP SELECT INPUT: Used to select the 8292 from other devices on the
common data bus.
Rt5
8
I
READ ENABLE: Allows the master CPU to read from the 8292.
Ao
9
I
ADDRESS LINE: Used to select between the data bus and the status
register during read operations and to distinguish between data and
commands written into the 8292 during write operations.
WFi
10
I
WRITE ENABLE: Allows the master CPU to write to the 8292.
SYNC
11
0
SYNC: 8041 A instruction cycle synchronization signal; it is an output
clock with a frequency of XTAL + 15.
00- 0 7
12-19
liD
DATA: 8 bidirectional lines used for communication between the central
processor and the 8292's data bus buffers and status register.
Vss
7,20
P.S.
GROUND: Circuit ground potential.
SRQ
21
I
SERVICE ~EQUEST: One of the IEEE control lines. Sampled by the
- 8292 when it is controller in charge. If true, SPI interrupt to the master will
be generated.
ATNI
22
I
ATTENTION IN: Used by the 8292 to monitor the GPIBATN control line.
If is used during the transfer control procedure.
iFC
23
liD
INTERFACE CLEAR: One of the GPIB management lines, as defined by
IEEE Std. 488-1978, places all devices in a known quiescent state.
SYC
24
I
SYSTEM CONTROLLER: Monitors the system controller switch.
CLEAR LATCH: Used to clear the iFCR latch after being recognized by
the 8292. Usually low (except after hardware Reset), it will be pulsed high
when IFCR is recognized by the 8292.
CLTH
27
0
ATNO
29
0
5,26,40
P.S.
COUNT
39
I
EVENT COUNT: When enabled by the proper command the internal
counter will count external events through this pin. High to low transition
will increment the internal counter by one. The pin is sampled once per
three internal instruction cycles (7.5 ,...sec sample period when using 5
MHz XTAL). It can be used for byte counting when connected to NOAC,
or for block counting when connected to the EOL
REN
38
0
REMOTE ENABLE: The Remote Enable bus signal selects remote or
local control of the device on the bus. A GPIB bus signal selects remote
or local control of the device on the bus. A GPIB bus management line,
as defined by IEEE Std. 488-1978.
Vee
ATTENTION OUT: Controls the ATN control line of the bus through
. external logic for tcs and tca procedures. (ATN is a GPIB control line, as
defined by IEEE Std. 488-1978.)
VOLTAGE: +5Vsupplyinput ±10%.
3-34
8292
Table 1. Pin Description (Continued)
Symbol
Pin
No.
Type
DAV
37
I/O
DATA VALID: Used during parallel poll to force the 8291 to accept the
parallel poll status bit. It is also used during the tcs procedure.
IBFI
36
0
INPUT BUFFER NOT FULL: Used to interrupt the central processor
while the input buffer of the 8292 is empty. This feature is enabled and
disabled by the interrupt mask register.
OBFI
36
0
OUTPUT BUFFER FULL: Used as an interrupt to the central processor
while the output buffer of the 8292 is full. The feature can be enabled and
disabled by the interrupt mask register.
E012
34
I/O
END OR IDENTIFY: One of the GPIB management lines, as defined by
IEEE Std. 488·1978. Used with ATN as Identify Message during parallel
poll.
SPI
33
0
SPECIAL INTERRUPT: Used as an interrupt on events not initiated by
the central processor.
TCI
32
0
TASK COMPLETE INTERRUPT: Interrupt to the control processor used
to indicate that the task requested was completed by the 8292 and the
information requested is ready in the data bus buffer.
CIC
31
0
CONTROLLER IN CHARGE: Controls the SIR input of the SRQ bus
transceiver. It can also be used to indicate that the 8292 is in charge of
the GPIB bus.
Name and Function
FUNCTIONAL DESCRIPTION
GPIB
The 8292 is an Intel 8041A which has been programmed as a GPIB Controller Interface element. It
is used with the 8291 GPIB Talker/Listener and two
8293 GPIB Transceivers to form a complete IEEE488 Bus Interface for a microprocessor. The electrical interface is performed by the transceivers, data
transfer is done by the talker/listener, and control of
the bus is done by the 8292. Figure 3 is a typical
controller interface using Intel's GPIB peripherals.
TO
PROCESSOR
BUS
TO
PROCESSOR
BUS
GPIB
205250-3
Figure 3. Talker/Listener/Controller
Configuration
3-35
intJ
8292
The internal RAM in the 8041 A is used as a special
purpose register bank for the 8292. Most of these
registers (except for the interrupt flag) can be accessed through commands to the 8292. Table 2
identifies the registers used by the 8292 and how
they are accessed.
Event Counter Interrupt. The requested number of blocks of data byte has been transferred. The EV interrupt flag is cleared by the
lACK command.
SRQ Service Request. Notified the 8292 that a
service request (SRO) message has been received. It is cleared by the lACK command.
Interrupt Status Register
ERR Error occurred. The type of error can be determined by reading the error status register.
This interrupt flag is cleared by the lACK command.
SYC System Controller Switch Change. Notifies
the processor that the state of the system
controller switch has changed. The actual
state is contained in the GPIB Status Register. This flag is cleared by the lACK command.
EV
I SYC I ERR I SRO I EV I X IIFCR IISF I OSF I
Do
The 8292 can be configured to interrupt the microprocessor on one of several conditions. Upon receipt of the interrupt the microprocessor must read
the 8292 interrupt status register to determine which
event caused the interrupt, and then the appropriate
subroutine can be performed. The interrupt status
register is read with Ao high. With the exception of
OBF and ISF, these interrupts are enabled or disabled by the SPI interrupt mask. OSF and IBF have
their own bits in the interrupt mask (OBFI and IBFI).
OBF Output Buffer Full. A byte is waiting to be read
by the microprocessor. This flag is cleared
when the output data bus buffer is read.
IBF Input Buffer FUll. The byte previously written
by the microprocessor has not been read yet
by the 8292. If another byte is written to the
8292 before this flag clears, data will be lost.
IBF is cleared when the 8292 reads the data
byte.
Interrupt Mask Register
j
1 I SPI I TCI I SYC I OBFI I IBFI I 0
I SRO I
Do
The Interrupt Mask Register is used to enable features and to mask the SPI and TCI interrupts. The
flags in the Interrupt Status Register will be active
even when masked out. The Interrupt Mask Register
is written when Ao is low and reset by the RINM
command. When the register is read, 01 and 07 are
undefined. An interrupt is enabled by setting the corresponding register bit.
SRQ Enable interrupts on SRO received.
IBFI Enable interrupts on input buffer empty.
OBFI Enable interrupts on output buffer full.
IFCR Interface Clear Received. The GPIB system
controller has set IFC. The 8292 has become
idle and is no longer is charge of the bus. The
flag is cleared when the lACK command is
issued.
Table 2. 8292 Registers
READ FROM 8292
WRITE TO 8292
INTERRUPT STATUS
I SYC I ERR I SRO I
07
I
x
EV
I
X
IIFCR I IBF I OBF 11
ERROR FLAG
I
x
I USER I
x
I
x
Ao
INTERRUPT MASK
I
1
DO
I SPI I TCI I SYC I OBFI I
07
ITOUT3ITOUT2ITOUT1Io.
x
I
x
I
0
I USER I
X
0
I SRO I 0
1
I
1
I
0
I
0
Do
I TOUT3I TOUT2ITOUT1I 0
COMMAND FIELD
I SYCS I IFC I REN I SRO 10'
1
GPIB (BUS) STATUS
I REN I OAV I EOI I
I
ERROR MASK
o
CONTROLLER STATUS
I CSBS I CA
Ao
iBR
lop
I
C
I
C
I
C
I
C
Jl
EVENT COUNTER
I SYC I IFC I ANTI I SRO 10'
o
I
0
I
0
EVENT COUNTER STATUS
I
0
I
0
I
0
0
0
10'
0
0
o
10'
TIME OUT
J....I_0--,-1_0--<.1_0-l1_0.....J-1_0--1..1_0---0.1_0_11---0--'10. I
0
I
0
I
0
0
I
0
TIME OUT STATUS
I 0 I 0 I 0 I 0 I 0 I 0 I 0 I 0 10'
'---"'---'-----'---'---'---'----'----'
NOTE: These registers are accessed by a special utility
command, see page 7.
3-36
inter
SYC
8292
Enable interrupts on a change in the system
controller switch.
TCI
Enable interrupts on the task completed.
SPI
Enable interrupts on special events.
on pin 39 of the 8292 (COUNT). It can be connected
to EOI or NDAC to count blocks or bytes respectively during standby state. A count of zero equals 256.
This register cannot be read, and is written using the
WEVC command.
NOTE:
The event counter is enabled by the GSEC command, the error interrupt is enabled by the error
mask register, and IFC cannot be masked (it will always cause an interrupt).
Controller Status Register
ICSBSI CA I X
I X
Isycsi IFC I REN I SRO
Event Counter Status Register
I
Do
The Controller Status Register is used to determine
the status of the controller function. This register is
accessed by the RCST command.
SRQ Service Request line active (CSRS).
REN Sending Remote Enable.
IFC
Time Out Register
The Time Out Register is used to store the time
used for the time out error function. See the individual timeouts (TOUT1, 2, 3) to determine the units of
this counter. This Time Out Register cannot be read,
and it is written with the WTOUT command.
Sending or receiving interface clear.
SYCS System Controller Switch Status (SACS).
Controller Active (CACS + CAWS
CSWS).
CSBS Controller Stand-by State (CSBS, CA)
(O,O)-Controller Idle.
CA
This register contains the current value in the event
counter. The event counter counts back from the
initial value stored in the Event Counter Register to
zero and then generates an Event Counter Interrupt.
This register cannot be written and can be read using a REVC command.
+
Time Out Status Register
Do
GPIB Bus Status Register
I REN I DAV I EOI I X I SYC IIFC I ATNI I SRO
I
Do
This register contains GPIB bus status information. It
can be used by the microprocessor to monitor and
manage the bus. The GPIB Bus Register can be
read using the RBST command.
Each of these status bits reflect the current status of
the corresponding pin on the 8292.
This register contains the current value in the time
out counter. The time out counter decrements from
the original value stored in the Time Out Register.
When zero is reached, the appropriate error interrupt
is generated. If the register is read while none of the
time out functions are active, the register will contain
the last value reached the last time a function was
active. The Time Out Status Register cannot be written, and it is read with RTOUT command.
Error Flag Register
SRQ Service Request
ATNI Attention In
IFC
Interface Clear
SYC
System Controller Switch
EOI
End or Identify
Four errors are flagged by the 8292 with a bit in the
Error Flag Register. Each of these errors can be
masked by the Error Mask Register. The Error Flag
Register cannot be written, and it is read by the
lACK command when the error flag in the Interrupt
Status Register is set.
TOUT1 Time Out Error 1 occurs when the current
controller has not stopped sending ATN after receiving the TCT message for the time
period specified by the Time Out Register.
Each count in the Time Out Register is at
least 1800 tCY. After flagging the error, the
8292 will remain in a loop trying to take control until the current controller stops send-
DAV Data Valid
REN Remote Enable
Event Counter Register
The Event Counter Register contains the initial value
for the event counter. The counter can count pulses
3-37
intJ
8292
ing ATN or a new command is written by
the microprocessor. If a new command is
_written, the 8292 will return to the loop after
executing it.
TOUT2 Time Out Error 2 occurs when the transmission between the addressed talker and listener has not started for the time period
specified by the Time Out Register. Each
count in the Time Out Register is at least 45
tCY. This feature is only enabled when the
controller is in the CSBS state.
TOUT3 Time Out Error 3 occurs when the handshake signals are stuck and the 8292 is not
succeeding in taking control synchronously
for the time period specified by the Time
Out Register. Each count in the Time Out
Register is at least 1800 tCY. The 8292 will
continue checking ATNI until it becomes
true or a new commnand is received. After
performing the new command, the 8292 will
return to the ATNI checking loop.
USER User error occurs when request to assert
IFC or REN was received and the 8292 was
not the system controller.
Fo-SPCNI-Stop Counter Interrupts
This command disables the internal counter interrupt so that the 8292 will stop interrupting the master
on event counter underflows. However, the counter
will continue counting and its contents can still be
used.
F1-GIDL-Go To Idle
This command is used during the transfer of control
procedure while transferring control to another controller. The 8292 will respond to this command ~
if it is in the active state. ATNO will go high, and CIG
will be high so that this 8292 will no longer be driving
the ATN line on the GPIB interface bus. TCI will be
set upon completion.
F2-RST-Reset
This command has the same effect as asserting the
external reset on the 8292. For details, refer to the
reset procedure described later.
F3-RSTI-Reset Interrupts
This command resets any pending interrupts arid
clears the error flags. The 8292 will not return to any
loop it was in (such as from the time out interrupts).
Error Mask Register
F4-GSEC-Go To Standby, Enable Counting
The Error Mask Register is used to mask the interrupt from a particular type of error. Each type of error
interrupt is enabled by setting the corresponding bit
in the Error Mask Register. This register can be read
with the RERM command and written with Ao low.
The function causes ATNO to go high and the counter will be enabled. If the 8292 was not the active
controller, this command will exit immediately. If the
8292 is the active controller, the counter will be
loaded with the value stored in the Event Counter
Register, and the internal interrupt will be enabled so
that when the counter reaches zero, the SPI interrupt will be generated. SPI will be generated every
256 counts thereafter until the controller exits the
standby state or the SPCNI command is written. An
initial count of 256 (zero in the Event Counter Register) will be used if the WEVC command is not executed. If the data transmission does not start, a
TOUT2 error will be generated.
Command Register
I
1
I
1
I
1
I OP
C
C
C
C
Do
Commands are performed by the 8292 whenever a
byte is written with Ao high. There are two categories
of commands distinguished by the OP bit (bit 4). The
first category is the operation command (OP = 1).
These commands initiate some' action on the interface bus. The second category is the utility command (OP = 0). These commands are used to aid
the communication between the processor and the
8292.
F5-EXPP-Execute Parallel Poll
This command initiates a parallel poll by asserting'
EOI wh~n ATN is already active. TCI will be set at
the end of the command. The 8291 should be previously configured as a listener. Upon detection of
DAV true, the 8291 enters ACDS and latches the
parallel poll response (PPR) byte into its data in register. The master will be interrupted by the 8291 BI
interrupt when the PPA byte is available. No interrupts except the IBFI will be generated by the 8292.
The 8292 will respond to this command only when it
is the active controller.
OPERATION COMMANDS
Operation commands initiate some action on the
GPIB interface bus. It is using these commands that
the control functions such as polling, taking and
passing control, and system controller functions are
performed.
3-38
intJ
8292
ing the controller function for being in the CSBS
(else it will exit immediately), ATFR5 will go low, and
a TCI interrupt will be generated.
F6-GTSB-Go To Standby
If the 8292 is the active controller, ~ will go high
then TCI will be generated. If the data transmission
does not start, a TOUT2 error will be generated.
FD-TCSY-Take Control Synchronously
There are two different procedures used to transfer
the 8292 from CSBS to CACS depending on the
state of the 8291 in the system. If the 8291 is in
"continuous AH cycling" mode (Aux. Reg. AO = A 1
= 1), then the following procedures should be fol·
lowed:
1) The master microprocessor stops the continuous
AH cycling mode in the 8291;
2) The master reads the 8291 Interrupt Status 1
Register;
3) If the END bit is set, the master sends the TCSY
command to the 8292;
4) If the END bit was not set, the master reads the
8291 Data In Register and then waits for another
BI interrupt from the 8291. When it occurs, the
master sends the 8292 the TCSY command.
F7-SLOC-Set Local Mode
If the 8292 is the system controller, then REN will be
asserted false and TCI will be set true. If it is not the
system controller, the User Error bit will be set in the
Error Flag Register.
F8-SREM-8et Interface To Remote Control
This command will set REN true and TCI true if this
8292 is the system controller. If not, the User Error
bit will be set in the Error Flag Register.
F9-ABORT-Abort All Operation, Clear
Interface
This command will cause IFC to be asserted true for
at least 100 ,...sec if this 8292 is the syStem control·
ler. If it is in CIDS, it will take control over the bus
(see the TCNTR command).
If the 8291 is not in AH cycling mode, then the mas·
ter just waits for a BI interrupt and then sends the
TCSY cOmmand. After the TCSY command has
been issued, the 8292 checks for ~. If ~,
then it exits the routine. Otherwise, it then checks
the DAV bit in the GPIB status. When DAV becomes
false, the 8292 will wait for at least 1.5 ,...sec. (T10)
and then ATNQ will go low. If DAV does not go low,
a TOUT3 error will be generated. If the 8292 suc·
cessfully takes control, it sets TCI true.
FA-TCNTH-Take Control
The transfer of control procedure is coordinated by
the master with the 8291 and 8292. When the master receives a TCT message from the 8291, it should
issue the TCNTR command to the 8292. The follow·
ing events occur to take control:
1) The 8292 checks to see if it is in CIDS, and if not,
it exits.
2) Then ATNl is checked until it becomes high. If the
current controller does not release ATN for the
time specified by the Time Out Register, then a
TOUT1 error is generated. The 8292 will return to
this loop after an error or any command except
the RST and RSTI commands.
3) After the current controller releases ATN, the
8292 will assert ATNO and CiC low.
4) Finally, the TCI interrupt is generated to inform
the maste,r that it is in control of the bus.
This command enables the internal counter inter·
rupt. The counter is enabled by the GSEC com·
mand.
Fe-TCASY-Take Control Asynchronously
E1-WTOUT-Wrlte To Time Out Register
TCAS transfers the 8292 from CSBS to CACS inde·
pendent of the handshake lines. If a bus hangup is
detected (by an error flag), this command will force
the 8292 to take control (asserting ATN) 'even if the
AH function is not in ANRS (Acceptor Not Ready
State). This command should be used very carefully
since it may cause the loss of a data byte. Normally,
control should be taken synchronously. After check·
The byte written to the data bus buffer (with Ao = 0)
following this command will determine the time used
for the time out function. Since this function is implemented in software, this will not be an accurate time
measurement. This feature is enable or disable by
the Error Mask Register. No interrupts except for the
iBA will be generated upon completion.
FE-STCNI-start Counter Interrupts
UTILITY COMMANDS
All these commands are either Read or Write to reg·
isters in the 8292. Note that writing to the Error Mask
Register and the Interrupt Mask Register are done
directly.
3·39
inter
8292
E2-WEVC-Wrlte To Event Counter
The byte written to the data bus buffer (with Ao = 0)
following this command will be loaded into the Event
Counter Register and the Event Counter Status for
byte counting of EOI counting. Only IBFI will indicate
completion of this command.
Interrupt Acknowledge
I SYC I ERR I SRQ I EV
IFCR
Do
Each named bit in an Interrupt Acknowledge (lACK)
corresponds to a flag in the Interrupt Status Register. When the 8292 receives' this command,it will
clear the SPI and the corresponding bits in the Interrupt Status Register. If not all the bits were cleared,
then the SPI will be set true again. If the error'flag·is
not acknowledged by the lACK command, then the
Error Flag Register will be transferred to the data
bus buffer, and a TCI will be generated.
E3-REVC-Read Event Counter Status
This command transfers the contents of the Event
Counter into the data bus buffer. A TCI is generated
when the data is available in the data bus buffer.
E4-RERF-Read Error Flag Register
NOTE:
XXXX1 X11 is an undefined operation or utility command, so no conflict exists between the lACK operation and utility commands.
This command transfers the contents of the Error
Flag Register into the data bus buffer. A TCI is generated when the data is available.
SYSTEM OPERATION
E5-RINM-Read Interrupt Mask Register
This command transfers the contents of the Interrupt Mask Register into the data bus buffer. This register is available to the processor so that it does not
need to store this information elsewhere. A TCI is
generated when the data is available in the data bus
buffer.
Communication between the 8292 and the Master
Processor can be either interrupt based communication or based upon polling the interrupt status register in predetermined intervals.
E6-RCST-Read Controller Status Register
Interrupt Based Communication
This command transfers the contents of the Controller Status Register into the data bus buffer and a TCI
interrupt is generated.
Four different interrupts are available from the 8292:
OBFI Output Buffer Full Interrupt
IBFI Input Buffer Not Full Interrupt
TCI Task Completed Interrupt
SPI Special Interrupt
8292 To Master Processor Interface
E7-RBST-Read GPIB Bus Status Register
This command transfers the contents of the GPIB
Bus Status Register into the data bus buffer, and a
TCI interrupt is generated when the data is available.
Each of the interrupts is enabled or disabled by a bit
in the interrupt mask register. Since OBFI and IBFI
are directly connected to the OBF and IBF flags, the
master can write a new command to the Input data
bus buffer as soon as the previous command has
been read.
E9-RTOUT-Read Time Out Status Register
This command transfers the contents of the Time
Out Status Register into the data bus buffer, and a
TCI interrupt is generated when the data is available.
The TCI interrupt is useful when the master is sending commands to the 8292. The pending TCI will be
cleared with each new command written to the
8292. Commands sent to the 8292 can be divided
into two major groups:
EA-RER!III-Read Error Mask Register
This command transfers the contents of the Error
Mask Register to the data bus buffer so that the
processor does not need to store this information
elsewhere. A tCI interrupt is generated when the
data is available.
1) Commands that require response back from the
8292 to the master, e.g., reading register.
2) Commands that initiate some action or enable
features but do not require response back from
the 8292, e.g., enable data bus buffer interrupts.
3-40
inter
8292
With the first group, the TCI interrupt will be used to
indicate that the required response is ready in the
data bus buffer and the master may continue and
read it. With the second group, the interrupt will be
used to indicate completion of the required task, so
that the master may send new commands.
The SPI should be used when immediate information or special events is required (see the Interrupt
Status Register).
"Polling Status" Based Communication
When interrupt based communication is not desired,
all interrupts can be masked by the interrupt mask
register. The .communication with the 8292 is based
upon sequential poll of the interrupt status register.
By testing the OBF and IBF flags, the data bus buffer status is determined while special events are determined by testing the other bits.
Receiving IFC
The IFC pulse defined by the IEEE-488 standard is
at least 100 fA-sec. In this time, all operation on the
bus should be aborted. Most important, the current
controller (the one that is in charge at that time)
should stop sending ATN or EOL Thus, IFC must
externally gate GIC (controller in charge) and ATNO
to ensure that this occurs.
Reset and Power Up Procedure
After the 8292 has been reset either by the external
reset pin, the device being powered on, or a RST
command, the following sequential events will take
place:
1) All outputs t~e GPIB interface will~ high
(SRO, ATNI, IFC, SYC, CLTH, ATNO, CIC, TCI,
SPI, EOi, OBFI, IBFI, DAV, REV).
,
2) The four interrupt outputs (TCI, SPI, OBFI, IBFI)
and CLTH output will go low.
3) The following registers will be cleared:
Interrrupt Status
Interrupt Mask
Error Flag
Erorr Mask
Time Out
Event Counter (= 256), counter is disabled.
4) If the 8292 is the system controller, and ABORT
command will be executed, the 8292 will become
the controller in charge, and it will enter the CACS
state.
If it is not the system controller, it will remain in
CIDS.
System Configuration
The 8291 and 8292 must be interfaced to an IEEE488 bus meeting a variety of specifications including
drive capability and loading characteristics. To interface the 8291 and the 8292 without the 8293's, several external gates are required, using a configuration similar to that used in Figure 5.
3-41
8292
OPI'
T_1IIt
r--l.!iOi2!I___--.!N~o;TE~I~'_ _ _ _ _,-_.:.:''.:...._ _-{
I
I4-'R;;::IN::-_ _...,
PROCUIOR
INTERRUPT
WIi liD
lUI
I
I
RaT CLK ADD DATA DMA
101
311
ATN
Ie
NDAC
..
ATN
UK
I
iiii
Ie
~----\I
.J..m:K
DATA
rrr'-- rI - - rt-t----t r+-J-I--i rL-+-+-+---I r-
I - -....!·I ....,
1 ...
t - -..I ....
l~ I
1--""'1 CLOCK
I--~RUET
1---1 iii
WR
I---IINT
Ci
I-
..
...-CLTH
--
t.===..}..~DATA
0 1 - - - -..1...
lot-----ICi
.,..
~'
iiii
BPI
Id
Eot
I.
IFC
....
....----1 x,
cis
T
IYC
±
~
RIN
r - - - t EA
-+L
I.
ii
T,
COUNT
T.
iFCL
14.7K
SYSTEM
CONTROLLER
SWITCH
ONlo.-
...
'---_
IRQ
.,..
205250-4
NOTES:
1. Connect to NDAC for byte count or to EOI for block count.
2. Gate ensures open collector operation during parallel poll.
Figure 4. 8291 and 8292 System Configuration
3·42
intJ
8292
-
TO MICROPROCESSOR
r.!.!
r-.!!
~
...!!.
DO
0101
01
0102
02
0103
03
"
19
21
22
23
9
10
•
TO
MICROPROCESSOR
8291
11
5
30
8
35
5
1
1
T/A1
WR
EOI
ATN
SRO
IFC
Cs
NDAC
CLOCK
NRFD
INT
REN
TRIG
38
2.
39
3
28
•
0101' ~
0101
f-1!...
f-1!...
0102
0102'
0103
0103'
0104
0100'
0105
0105' ~
010&
0108'
8293
TO
IEEE·..8
SUS
i1!-
0108'
f1L
!E-
DAY'
~
D107·
0107
0108
~
Tlih
DAY
EOI
ATN
27
2.
36
37
.........!.!.
2
OPTA
ATNO
~ iFCI
3!.
OPTS
flLy cc
fl!,.y cc
MODE 3
17
18
19
9
8
10
•
.....
......
&
32
33
35
f-.!.
i l l .!!.
~ DO
---.!!.
c...-....!i
~
18
I
iii07
DiOi
TlR2
OPI S
TRIGGE R
OUTPUT
TO
MICROPROCESSOR
7
DAY
DREO
7 DACK
8
3
33
liD
RESET
10
8
RS2
&
30
31
010&
07
RSO
RSI
23
32
DiGs
D6
25
21
9
0104
18
DO
17
05
28
02
10
03
DO
9
2
05
07
AD
liD
WR
RESET"
Cs
TCI
21
8
jffij 38
&
SRO
D6
8292
IFC
AfliRi
COUNT
T/RI
•m
01
23
5
29
23
39
3
EOl2
3'
7
iiNi
22
11
NOAC
NOAC
II'FI!II
NRFO
T/R2
SRO
. SRO'
REN
REN'
IFC
8213
IFC'
ATN'
ATNO
EOI'
EOI
~I
,.!!...
~I'
TO
EEE·488
SUS
,!!..
.!!..
.!!..
EOl2
iiNi
SPI
OSFI
38
ISFI
11
OSCILLATOR
OUTPUT
SYNC
r
YCC-2.. SS
tr
£i:!.1
15-25 pF
IFCL
X11
CiC
X,I
CLTH
EA
SYC
1
25
31
2'
27
21
2.
22
U
IFCL
CIC
OPTA 1!..YS
CLTH
OPTS
SYC
.l!. Yc
MODE 2
cON
-t
0FF
SYSTEM
CONTROLLER
SWITCH
205250-5
NOTES:
• = GPIB bus transceiver
t = See 8041 data sheet for alternate crystal configurations
tt = Can connect to system reset switch. see 8041A data sheet
Figure 5, 8291, 8292, and 8293 System Configuration
3-43
inter
8292
• Notice: Stresses above those listed under "Absolute Maximum Ratings" may cause permanent damage to the device. This is a stress rating only and
functional operation of the device at these or any
other conditions above those indicated in the operational sections of this specification is not implied Exposure to absolute maximum rating conditions for
extended periods may affect device reliability.
ABSOLUTE MAXIMUM RATINGS*
Ambient Temperature Under Bias ...... O·C to 70·C
Storage Temperature .......... - 65·C to + 150·C
Voltage to Any Pin with Respect
to Ground .............. " ........ 0.5V to + 7V
Power Dissipation ......... , ............. 1.5 Watt
D.C. CHARACTERISTICS
Symbol
TA = O·C to 70·C, Vss = OV: 8292, Vee
Parameter
0=
± 5V
± 10%
Min Max Unit
Test Conditions
I
VIL1
Input Low Voltage (All Except X1, X2, RESET)
-0.5 0.8
V
VIL2
Input Low Voltage (X1' X2, RESET)
-0.5
06
V
VIH1
Input High Voltage (All Except X1, X2, RESET)
2.2
Vee
V
VIH2
Input High Voltage (X1, X2,RESET)
3.8
Vee
V
VOL1
Output Low Voltage (00-07)
0.45
V
IOL = 2.0mA
VOL2
Output Low Voltage (All Other Outputs)
0.45
V
IOL
VOH1
Output High Voltage (00-07)
2.4
V
VOH2
Output High Voltage (All Other Outputs)
2.4 .
V
WR, CS, Ao
= 1.6 mA
IOH = - 400 /LA
IOH = -50/LA
±10 /LA Vss :;;: VIN :;;: Vee
IlL
Input Leakage Current (COUNT, IFCL, RD,
loz
Output Leakage Current (00-07, High Z State)
±10 /LA Vss +0.45 :>: VIN :>: Vee
=
=
ILl1
Low Input Load Current (Pins 21-24, 27 -38)
0.5
mA VIL
ILl2
Low Input Load Current (RESET)
0.2
mA VIL
lec
Total Supply Current
125
mA Typical = 65 mA
IIH
Input High Leakage Current (Pins 21-24, 27 -38)
100
/LA VIN = Vee
CIN
Input Capacitance
10
pF
CliO
1/0 Capacitance
20
pF
A.C. CHARACTERISTICS
0.8V
0.8V
TA = O·Cto 70·C, Vss = OV: 8292, Vee = ±5V ±10%
DBB READ
Symbol
Parameter
Min
J,
Max
Unit
Test Conditions
tAR
CS; Ao Setup to RD
tRA
CS, Ao Hold to RD t
tRR
RD Pulse Width
tAD
CS, Ao to Data Out Delay
225
ns
. CL = 150 pF
tRD
RD J, to Data Out Delay
225
ns
CL = 150pF
100
ns
15
/Ls
tDF
RD t to Data Float Delay
lev
Cycle Time
0
ns
0
ns
250
ns
2.5
3-44
inter
8292
DBB WRITE
Symbol
Parameter
Min
Max
Unit
tWA
Ao Setup to WA .J..
CS, Ao Hold after WA t
tww
WA Pulse Width
250
ns
tow
Data Setup to WA t
150
ns
two
Data Hold after WR .J..
0
ns
tAW
CS,
0
ns
0
ns
Test Conditions
COMMAND TIMINGS(1,3)
Code Name
Execution
IBFIT TCU2) SPI ATNO CIC
Time
E1
WTOUT
63
E2
WEVC
63
24
E3
REVC
71
24
51
E4
RERF
67
24
47
49
IFC
REN
Em
DAV
Comments
24
E5
RINM
69
24
E6
RCST
97
24
77
E7
RBST
92
24
72
E8
E9
RTOUT
69
24
49
EA
RERM
69
24
49
FO
SPCNI
53
24
F1
GIOL
88
24
F2
RST
94
24
F2
RST
214
24
Count Stops after 39
70
192
t61
.J..52
Not System Controller
.J..52 .J..179 .J..174 .J..101
System Controller
F3
RSTi
61
24
F4
GSEC
125
24
F5
EXPP
75
24
F6
GTSB
118
24
100
F7
73
24
F8
SLOC
SREM
91
24
55
73
F9
ABORT
155
24
133
FA
TCNTR
108
24
86
.J.. 71
FC
TCAS
24
67
.J..55
FD
TCSY
92
115
24
91
.J..80
FE
STCNI
59
24
PIN
RESET
29
-
X
lACK
116
t61
107
t98
.J..53 .J..55
t59 t57
t91
t46
.J..64
.J..120 .J..115 .J..42
.J..68
Starts Count after 43
.J..7
.J..7
Not System Controller
.J..73
t98
If Interrupt Pending
NOTES:
1. All times are multiples of tCY from the 8041 A command interrupt.
2. Tel clears after 7 tCY on all commands.
3. t indicates a level transition from low to high, .j. indicates a high to low transition.
3-45
8292
. ......
> < x=
A.C. TESTING INPUT, OUTPUT WAVEFORM
~
TEST POINTS
08
0 .•5
A.C. TESTING LOAD CIRCUIT
~
DEVICE
UNDER
TEST
0.8
ICL
205250-6
A.C. Testing: Inputs are driven at2.4V lor a Logic "1" and 0.45V
lor a Logic "0". Timing measurements are made at 2.0V for a
Logic "1" and O.BV lor a Logic "0".
':'
205250-7
Cl Include Jig Capacitance.
CLOCK DRIVER CIRCUITS
CRYSTAL OSCILLATOR MODE
DRIVING FROM EXTERNAL SOURCE
+5V
. r----< 15 pF
(INCLUDES XTAl.
SOCKET. STRAY)
,:
:J...
T
2
XTAll
,11-6 mHl
4701/
,ck
r=
J>--+----.....,XTAll
I
+5V
L_____
15-25pF
(INCLUDES SOCKET.
STRAYI
3
XTAL2
47011
1-::'----4--'-1 XTAl2
205250-B
NOTE:
205250-9
Both XTAL1 and XTAL2 should be driven. Resistors to
Vee are needed to ensure VIH = 2.8V if TIL circuitry
is used.
NOTE:
Crystal series .resistance should be <750 at 6 MHz;
<1800'at 3.6 MHz. ' ,
LC OSCILLATOR MODE
2
L
45"H
120"H
C
20pF
20pF
NOMINALf
5.2 MHz
3.2 MHz
r-I' ~,
-=
T
C
NOTES:
XTALI
1
1= 2wJ[C'
3
XTAL~
205250-10
1. Cpp ~ 5-10 pF pin-to-pin capacitance
2. Each C should be approximately 20 pF. including stray capacitance.
3-46,
C·=C+3Cpp
2
8292
WAVEFORMS
READ OPERATION-DATA BUS BUFFER REGISTER
CSORAo
(SYSTEM'S
ADDRESS IUS)
~
K
.
-tAR--"
iii)
(READ CONTROL)
"
4--
~tAD
.
--tRA"
IRR
IRV'
"\
I
..
1r--~---D-AT-A-V-A-Ll-D------~!~-----4
~
tAD ......
+--IDF-
DATAIUS _____________________
(OUTPUT)
"
____________
205250-11
WRITE OPERATION-DATA BUS BUFFER REGISTER
CiO
R A o = 1______________________________--"1
(SYSTEM'S
ADDRESS
IUS)
______________________
-~W-II-'- - - I w w
(WRITE
CONTR:~
~,..--------------~tDW-
IWD
...-
IV
DATA IUS
DATA
'v
DATA
«INPUT) ______
M_AY_C_H_A_N_G_E_____J/'!.,..___D_A_T_A_VA_L_ID____~Il\~-------M-A_Y_CH_A_N_G_E_________
205250-12
3-47
inter
8292
APPENDIX A
The following tables and state diagrams were taken from the IEEE Standard Digital Interface for Programmable Instrumentation, IEEE Std. 488-1978. This document is the official standard for the GPIB bus and can be
purchased from IEEE, 345 East 47th St., New York, NY 10017.
C MNEMONICS
Messages
pon
rsc
rpp
gts
tca
tcs
sic
sre
=power on
=request system control
=request parallel poll
:; go to standby
:; take control asynchronously
:; take control synchronously
=send interface clear
= send remote enable
IFC = interface clear
ATN =attention
TCT = take control
Interface States
CIOS
CADS
CTAS
CACS
CPWS
CPPS
=controller idle state
:; controller addressed state
=controller transfer state
:; controller active state
=controller parallel poll wait state
CSBS
CSHS
CAWS
CSWS
CSAS
CSNS
SNAS
SACS
SAIS
SANS
SAAS
SIIS
SINS
SIAS
=controller standby state
= controller standby hold state
=controller active wait state
:; controller parallel poll state
= controller synchronous wait state
= controller service requested state
=controller service not requested state
=system control active state
= system control not active stale
= system control remote enable idle state
:; system control remote enable not active state
=system control remote enable active state
=system control interface clear idle state
:; system control interface clear not active state
=system control interface clear active state
~
=accept data state (AH function)
=acceptor not ready state (AH function)
=source delay state (SH function)
1.5 ,...sec
t The microprocessor must wait for the 80 interrupt before writing the GTSB or GSEC
commands to ensure that (STRS 1\ SDYS) is true.
205250-13
rg
N
inter
8292
REMOTE MESSAGE CODING
Bus Signal Line(s) and Coding That
Asserts the True Value of the Message
C
Mnemonic
Message Name
T L D
D
Y A I
I
P S 00
E S 87654321
ACG
ATN
DAB
MSA
MAC Y 0 0 0 X X X X
Addressed Command Group
U UC X X X X X X XX
Attention
(Notes 1, 9) M DD D DOD D D D D
Data Byte
8 765 4 3 2 1
U HS X X X X X X X X
Data Accepted
Data Valid
U HS X X X X X X X X
Device Clear
M UC Y 0 0 1 0 1 0 0
U ST X X X X X X X X
End
(Notes 2, 9) M DD E E E E E E E E
End of String
876 543 2 1
Group Execute Trigger
M AC Y 0 0 0 1 0 0 0
M AC Y 0 0 0 0 0 0 1
Go to Local
U UC X X X X X X X X
Identify
U UC X X X X X X X X
Interface Clear
M AD Y 0 1 X X X X X
Listen Address Group
Local Lock Out
M UC Y 0 0 1 0 0 0 1
(Note 3) M AD Y 0 1 L L L L L
My Listen Address
54321
(Note 4) M AD Y
0 T T T T T
My Talk Address
432 1
(Note 5) M SE Y
1 S S S S S
My Secondary Address
NUL
OSA
OTA
PCG
PPC
PPE
Null Byte
Other Secondary Address
Other Talk Address
Primary Command Group
Parallel Poll Configure
Parallel Poll Enable
PPD
Parallel Poll Disable
DAC
DAV
DCL
END
EOS
GET
GTL
IDY
IFC
LAG
LLO
MLA
MTA
NN
DRD
AFA
VDC
AESIR
TORFE
NIQCN
X X X
X X X
XXX
1 X X X X
1 X X X X
oX X X X
X X 0
1 X X
XXX
XXX
XXX
XXXXX
XXXXX
1 X X X X
1 X X X
X X X
XXX
X X X
X X X
X X X
XXX
X X X
1
1
X
X
o
oXXXX
X X X X
X X X X
1 X X X
X X 1 X
XXXX
XXXX
XXXX
X X X
X X X X
X X X
XXXX
5
5 4 3 2 1
PPR1
PPR2
PPR3
PPR4
PPR5
PPR6
PPR7
PPR8
PPU
REN
RFD
RQS
SCG
SDC
SPD
Parallel Poll Response 1
Parallel Poll Response 2
Parallel Poll Response 3
Parallel Poll Response 4
Parallel Poll Response 5
Parallel Poll Response 6
Parallel Poll Response 7
Parallel Poll Response 8
Parallel Poll Unconfigure
Remote Enable
. Ready for Data
Request Service
Secondary Command Group
Selected Device Clear
Serial Poll Disable
M
M
M
M
M
(Note 6) M
DD 0 0 0 0 0 0 0 0
X X X
X X X X X
SE
(OSA = SCG 1\ MSA)
AD
(OTA = TAG 1\ MTA)
(PCG = ACG V UCG V LAG V TAG)
AC Y 0 0 0 0 1 0 1
X X X
1 X X X X
SE Y 1 1 0 S P P P
X X X
1 X X X X
321
(Note 7) M SE Y 1
1 D D D D
X X X
XXXX
432 1
XXX
XXX
U ST X X X X X X X 1
X X X
U ST X X X X X X 1 X
XXX
XXX
XXX
U ST X X X X X 1 X X
USTXXXX1XXX
X X X
XXX
(Note 10) U ST X X X 1 X X X X
XXX
XXX
XXX
U ST X X 1 X X X X X
XXX
USTX1XXXXXX
XXX
XXX
U ST 1 X X X X X X X
1 X X X
XXX
M UC Y 0 0 1 0 1 0 1
1 X X X X
XXX
XXX
U UC X X X X X X X X
X X X X 1
X 0 X
U HS X X X X X X X X
XXXXX
XXX
oX X XX
(Note 9) U ST X 1 X X X X X X
XXXX
M SE Y 1 1 X X X X X
XXX
XXX
XXXX
M AC Y 0 0 0 0 1 0 0
MUCY001100
XXXX
XXX
3-50
inter
8292
REMOTE MESSAGE CODING (Continued)
Bus Signal Llne(s) and Coding That
Asserts the True Value of the Message
Mnemonic
SPE
SRQ
STB
Message Name
C
L D
Y A I
p S 0
E S 8 7 6 5 4 3 2
T
Serial Poll Enable
Service Request
Status Byte
D
I
0
1
MUCYOO11OOO
USTXXXXXXXX
(Notes 8, 9) M ST S X S S S S S S
8
6 5 432 1
Take Control
M AC Y 0 0 0 1 0 0 1
Talk Address Group
M AD Y 1 0 X X X X X
Universal Command Group
M UC Y 0 0 1 X X X X
Unlisten
M1DY0111111
Untalk
(Note 11) M 1D Y 1 0 1 1 1 1 1
TCT
TAG
UCG
UNL
UNT
N N
DR D
AFA
VDC
A E SIR
TOR F E
NIQCN
X X X
X X X
X X X
1 X X X X
X X 1 X X
oX XXX
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
The 1/0 coding on ATN when sent concurrent with multiline messages has been added to this revision for interpretive
convenience.
NOTES:
1.
2.
3.
4.
5.
6.
D1-DS specify the device dependent data bits.
E1-ES specify the device dependent code used to indicate the E08 message.
L1-L5 specify the device dependent bits of the device's listen address.
T1-T5 specify the device dependent bits of the device's talk address.
81-85 specify the device dependent bits of the device's secondary address.
8 specifies the sense of the PPR.
Response = 8eist
P1-P3 specify the PPR message to be sent when a parallel poll is executed.
P3
P2
P1
PPR Message
o
o
o
PPR1
1
1
1
PPRS
7. D1-D4 specify don't-care bits that shall not be decoded by the receiving device. It is recommended that all zeroes be
sent.
S. 81-86, 8S specify the device dependent status (DI07 is used for the RQ8 message.)
9. The source of the message on the ATN line is always the C function, whereas the messages on the DIO and EOI lines
are enabled by the T function.
10. The source of the messages on the ATN and EOI lines is always the C function, whereas the source of the messages on
the DIO lines is always the PP function.
11. This code is provided for system use.
3-51
intJ
8294A
DATA ENCRYPTION/DECRYPTION UNIT
Certified by National Bureau of
• Standards
400 Byte/Sec Data Conversion Rate
• 64-Bit
Data Encryption Using 56-Bit Key
• DMA Interface
• 3 Interrupt Outputs to Aid in Loading
• and Unloading Data
• 7-Bit User Output Port
5V ± 10% Power Supply
• Single
Compatible with iAPX-86, 88,
• Fully
MCS-85™, MCS-80™, MCS-51™, and
•
•
MCS-48TM Processors
Implements Federal Information
Processing Data Encryption Standard
Encrypt and Decrypt Modes Available
The Intel® 8294A Data Encryption Unit (DEU) is a microprocessor peripheral device designed to encrypt and
decrypt 64-bit blocks of data using the algorithm specified in the Federal Information Processing Data Encryption Standard. The DEU operates on 64-bit text words using a 56-bit user-specified key to produce 64-bit
cipher words. The operation is reversible: if the cipher word is operated upon, the original text word is produced. The algorithm itself is permanently contained in the 8294A; however, the 56-bit key is user-defined and
may be changed at any time.
The 56-bit key and 64-bit message data are transferred to and from the 8294A in 8-bit bytes by way of the
system data bus. A DMA interface and three interrupt outputs are available to minimize software overhead
associated with data transfer. Also, by using the DMA interface two or more DEUs may be operated in parallel
to achieve effective system conversion rates which are virtually any multiple of 400 bytes/second. The 8294A
also has a 7-bit TTL compatible output port for user-specified functions.
Because the 8294A implements the NBS encryption algorithm it can be used in a variety of Electronic Funds
Transfer applications as well as other electronic banking and data handling applications where data must be
encrypted.
DATA
BUS
NC
Xl
x2
RESET
f--i \r- '-~
Vec
CS
GNO
RO
AO
OAV-----j
CCMP-------j
iNA
.Y
___ ~ PO·P6
RESET--
SYNC~-~
--~
OACK
:;=-=---=l::j
+ 5V- POWER
-~
GND--~----
INTERNAL
BUS
SYNC
DO
01
02
03
04
05
06
07
210465-1
Figure 1. Block Diagram
GNO
VCC
NC
DACK
ORO
SRO
DAV
NC
P6
P5
P4
P3
P2
Pl
PO
VOO
VCC
CCMP
NC
NC
NC
210465-2
Figure 2. Pin Configuration
3-52
November 1986
Order Number: 210465-004
inter
8294A
Table 1. Pin Description
Symbol
Pin
No.
Type
Name and Function
NC
1
NO CONNECTION.
X1
X2
2
3
CRYSTAL: Inputs for crystal, L-C or external timing signal to determine
internal oscillator frequency.
~
4
Vee
5
CS
6
GNO
7
AD
8
I
READ: An active low read strobe at this pin enables the CPU to read
data and status from the internal OEU registers.
Ao
9
I
ADDRESS: Address input used by the CPU to select OEU registers
during read and write operations.
WA
10
I
WRITE: An active low write strobe at this pin enables the CPU to send
data and commands to the OEU.
SYNC
11
0
SYNC: High frequency (Clock + 15) output. Can be used as a strobe
for externa:l circuitry.
DO
12
13
14
15
16
17
18
19
I/O
01
02
03
04
05
06
07
DATA BUS: Three-state, bi-directional data bus lines used to transfer
data between the CPU and the 8294A.
GNO
20
GROUND: This pin must be tied to ground.
Vee
40
POWER:
NC
39
NO CONNECTION.
OACK
38
I
DMA ACKNOWLEDGE: Input signal from the 8257 OMA Controller
acknowledging that the requested OMA cycle has been granted.
OAO
37
0
DMA REQUEST: Output signal to the 8257 OMA Controller requesting
a OMA cycle.
SAO
36
0
SERVICE REQUEST: Interrupt to the CPU indicating that the 8294A is
awaiting data or commands at the input buffer. SAO = 1 implies ISF
= O.
OAV
35
0
OUTPUT AVAILABLE: Interrupt to the CPU indicating that the 8294A
has data or status available in its output buffer, OAV = 1 implies OSF
= 1.
NC
34
I
RESET: A low signal to this pin resets the 8294A.
POWER: Tied high.
I
CHIP SELECT: A low signal to this pin enables reading and writing to
the 8294A.
GROUND: This pin must be tied to ground.
+ 5V power input: + 5V ± 10%.
NO CONNECTION.
3-53
inter
8294A
Table 1. Pin Description (Continued)
Symbol
Pin
No.
P6
P5
P4
P3
P2
P1
PO
33
'32
31
30
29
28
27
Voo
Type
0
Name and Function
OUTPUT PORT: User output port lines. Output lines available to the
user via a CPU command which can asset selected port lines. These
li'nes have nothing to do with the encryption function. At power-on,
each line is in a 1 state.
POWER: +5V power input. (+5V ± 10%) Low power standby pin.
26
Vee
25
CCMP
24
POWER: Tied high.
NC
23
NO CONNECTION.
NC
22
NO CONNECTION.
NC
21
NO CONNECTION.
0
CONVERSION COMPLETE: Interrupt to the CPU indicating that the
encryption/decryption of an 8-byte block is complete.
FUNCTIONAL DESCRIPTION
OPERATION
The data conversion sequence is as follows:
1) A Set Mode command is given, enabling the desired interrupt outputs.
2) An Enter New Key command is issued, followed
by 8 data inputs which are retained by the DEU
for encryption/decryption. Each byte must have
odd parity.
RD
WR
CS
Ao
Register
1
0
1
0
0
1
0
1
0
0
1
1
X
X
0
0
0
0
1
Data Input Buffer
Data Output Buffer
Command Input Buffer
Status Output Buffer
Don't Care
X
The functions of each of these registers are described below.
Data Input Buffer-Data written to this register is
interpreted in one of three ways, depending on the
preceding command sequence.
3) An Encrypt Data or Decrypt Data command sets
the DEU in the desired mode.
1) Part of a key.
2) Data to be encrypted or decrypted.
After this, data conversions are made by writing 8
data bytes and then reading back 8 converted data
bytes. Any of the above commands may be issued
between data conversions to change the basic operation of the DEU; e.g., a Decrypt Data command
could be issued to change the DEU from encrypt
'mode to decrypt mode".without changing either the
key or the interrupt outputs enabled.
3) A DMA block count.
Data Output Buffer-Data read from this register is
the output of the encryption/decryption operation.
INTERNAL 'DEU REGISTERS
Command Input Buffer-Commands to the DEU
are writt,en into this register. (See command summary below.)
Four internal registers are addressable by the master processor: 2 for input, and 2 for output. The following table describes how these registers are accessed.
Status Output Buffer-DEU status is available in
this register at all times. It is used by the processor
for poll-driven command and data transfer operations.
3-54
STATUS BIT:
7 6 5
FUNCTION:
X X X KPE CF DEC IBF OBF
4
3
2
1
0
inter
8294A
OBF Output Buffer Full; OBF = 1 indicates that
This command puts the 8294A into the decrypt
mode.
output from the encryption/decryption function is available in the Data Output Buffer. It is
reset when the data is read.
IBF
4 -Set Mode
Input Buffer Full; A write to the Data Input
Buffer or to the Command Input Buffer sets
IBF = 1. The DEU resets this flag when it has
accepted the input byte. Nothing should be
written when IBF = 1.
OPCODE:
MSB
where:
DEC Deorypt; indicates whether the DEU is in an
encrypt or a dElcrypt mode. DEC = 1 implies
the decrypt mode. DEC = 0 implies the encrypt mode.
A is the OAV (Output Available) interrupt enable
B is the SRO (Service Request) interrupt enable
C is the DMA (Direct Memory Access) transfer enable
is the CCMP (Conversion Complete) interrupt
enable
o
After 8294A has accepted a 'Decrypt Data' or
'Encrypt Data' command, 11 cycles are required to update the DEC bit.
CF
This command determines which interrupt outputs
will be enabled. A "'" in bits A, B, or 0 will enable
the OAV, SRO, or CCMP interrupts respectively. A
"1" in bit C will allow DMA transfers. When bit C is
set the OAVand SRO interrupts should also be
enabled· (bits A, B = 1). Following the command
in which bit C, the DMA bit, is set, the 8294 will
expect one data byte to specify the number of
8-byte blocks to be converted using DMA.
Completion Flag; This flag may be used to indicate any or all of three events in the data
transfer protocol.
1) It may be used in lieu of a counter in the
processor routine to flag the end of an
8-byte transfer.
2) It must be used to indicate the validity of
the KPE flag.
3) It may be used in'lieu of the CCMP interrupt
to indicate the completion of a DMA operation.
KPE Key Parity Error; After a new key has been
entered, the DEU uses this flag in conjunction
with the CF flag to indicate correct or incorrect parity.
5 - Write to Output Port
OP CODE:
1'-0-'1-1""'1-0-'-1-0-'-1-0-'-1-0'-10----'-10---'1
MSB
PROCESSOR/DEUINTERFACE
PROTOCOL
LSB
This command is followed by 8 data byte inputs
which are retained in the key buffer (RAM) to be
used in encrypting and decrypting data. These data
bytes must have odd parity represented by the LSB.
ENTERING A NEW KEY
2 - Encrypt Data
OP CODE:
LSB
This command causes the 7 least significant bits
of the command byte to be latched as output data
on the 8294 output port. The initial output is
1111111. Use of this port is independent of the
encryption/decryption function.
Enter New Key
OP CODE:
r-11"'T"I-ps""T"I-Ps-rI-P4-rI-ps-rI-P2--'1-P--'1Ir-p-'o1
MSB
COMMAND SUMMARY
1-
LSB
l'--o--"l-o--r"I--r-1-1,'--10-'1-0-'-1-0-'--1---'01
MSB
After the Enter New Key command is issued, 8
data bytes representing the new key are written to
the data input buffer (most significant byte first).
After the eighth byte is entered into the DEU, CF
goes true (CF = 1). The CF bit goes false again
when KPE is valid. The CPU can then check the
KPE flag. If KPE = 1, a parity error has been detected and the DEU has not accepted the key.
Each byte is checked for odd parity, where the
parity bit is the LSB of each byte.
LSB
This command puts the 8294A into the encrypt
mode.
3 - Decrypt Data
OPCODE:
MSB
The timing sequence for entering a new key is
shown in Figure 3. A flowchart showing the CPU
software to accommodate this sequence is given
in Figure 4.
LSB
3-55
inter
8294A
ENCRYPTING OR DECRYPTING DATA
Figure 5 shows the timing sequence for encrypting
or decrypting data. The CPU writes a data bytes to
th~ DEU's data input buffer for encryption/decryp·
tion. CF then goes true (CF = 1) to indicate that the
DEU has accepted the a-byte block. Thus, the CPU
may test for IBF = 0 and CF = 1 to terminate the
input mode, or it may use a software counter. When
the encryption/decryption is complete, the CCMP
and OAV interrupts are asserted and the OBF fiag is
set true (OBF = 1). OAV and OBF are set false
again after each of the converted data bytes is read
back by the CPU. The CCMP interrupt is set false,
and remains false, after the first read. After a bytes
have been read back by the CPU, CF goes false (CF
= 0). Thus, the CPU may test for CF = 0 to terminate the read mode. Also, the CCMP interrupt may
be used to initiate a service routine which performs
the next series of a data reads and a data writes.
L
.PE _ _ _ _ _ _
INV_A_LlD_ _ _ _ _
~
A,.IL -\..j - L.J - - -l.S - - - - - _..IL
CHECKU-
ViR -,
r I r;;;-l
U
NEW
KEV
1J
r;EY
UDAl" U ;;~TA
'PE
KEY
DATA
COMMAND
210465-3
Figure 3. Entering a New Key
Since CF = 1 only for a short period of time after
the last byte is accepted, the CPU which polls the
CF flag might miss detecting CF = 1 momentarily.
Thus, a counter should be used, as in Figure 4, to
flag the end of the new key entry. Then CF is used to
indicate a valid KPE flag.
Figure 6 offers two flowcharts outlining the alternative means of implementing the data conversion protocol. Either the CF flag or a software counter may
be used to end the read and write modes.
SAO = 1 implies IBF = O,OAV = 1 implies OBF =
1. This,allows interrupt routines to do data transfers
without checking status first. However, the OAV
service routine must detect and flag the end of a
data conversion.
CCMPI
(IF ENABLED)
.----.
IL_ _ _ _ _ _---11
.001L..Jn L_
lIF ENABLED)
DATA REGISTER
IlJ1 - rr
IlJ1 rr
1 BYTE OF KEY
aAV
(IF ENABLED)
1-1+1
IL_ _ __
Jl'--_ _ _ _ _ _ __
-----
01'
wolJLJ-LJ
• DATA WRITES
e
20
m. -
MAXIMUM
a DATA READS
210465-5
Figure 5. Encrypting/Decrypting Data
210465-4
Figure 4. Flowchart for Enter!ng a New Key
3-56
inter
8294A
USING DMA
USING SOFTWARE COUNTER
The timing sequence for data conversions using
DMA is shown in Figure 7. This sequence can be
better understood when considered in conjunction
with the hardware DMA interface in Figure 8. Note
(lnN;;l~~
CF
SRO
jlFENAaLEDI
I_-'________________....Jr
::=r-1L---_ _ _ _--',
Lf1JLf --l
L _ _ _ _ _ _ __
I
1 IL_-'I IL-
QAV
4IF ENA8LEDI _ _ _ _ _ _ _ _ _ _
DAD~-Lrl
=
__ ~
--U--lJU--ULf--[j
SET
OMA
MODE
OMA
8 DMA READS
8 DMA WAITES
BLOCK
COUNT/n) _ _ _ _ _ _ _ _ _ __
210465-6
210465-8
USING CF FLAG
Figure 7. DMA Sequence
AO-A15
00-01
8257
YES
~8
'---rNo'"
NO
210465-7
Figure 6. Data Conversion Flowcharts
iNr----~Ej
8088'lWR -----
~~:ER80:~O~O::sg=
AD _ . -.,~
8294
OE:
cs--Ao - - - - - -
00-----<><3:
RD ______
WR--------q
210465-13
~
Figure 12. Polling Interface
210465-16
OMARO is for memory to OEU Data Transfer
OMAR1 is for OEU to memory Data Transfer
Use of CCMP is optional
1M
Figure 15. DMA Interface
MASTERiD~ ~~
PROCESSOR
INTERFACE
01
~
~----,/
OSCILLATING AND TIMING CIRCUITS
_ __
WII--~
f!---
A.---
8294A
DEU
The 8294A's internal timing generation is controlled
by a self·contained oscillator and timing circuit. A
choice of crystal, L·C or external clock can be used
to derive the basic. oscillator frequency.
ceMP
210465-14
The resident timing circuit consists of an oscillator, a
state counter and a cycle counter as illustrated in
Figure 16.
Figure 13. Single Interrupt Interface
3·59
inter
8294A
SYNC
I-T-r-OUTPUT
(1 25-15 "sec)
"---v-----'
INTERNAL TIMING
210465-17
Figure 16. Oscillator Configuration
OSCILLATOR MODE
LC OSCILLATOR MODE
1
1 = 2.".,f[C'
C1
'
r _ .....
,--r--_-...:·=-IXTAL1
I
I
-.1.-
CO'T'
r
ld
"::"
~.U.1.
C'
T
MHz
=
Cpp
"t---ll--....--:i XTA12
C +3 Cpp
2
5-10 pF
Pin-to-Pin
Capacitance
=
210465-19
__
L__
__C_
Nominal
9 /-,H
20 pF
11.5 MHz
45 /-,H
20 pF
5.2 MHz
120/-,M
20 pF
3.2 MHz
Each C should be approximately 20 pF
including stray capacitance.
210465-18
Cl = 5pF
C2 = Crystal + Stray < 15 pF
C3 = 20-30 pF
Crystal series resistance should be less than 750 at 6 MHz; less
than 1800 at 3.6 MHz; less than 300 at 12 MHz.
Figure 17. Recommended Crystal
DRIVING FROM EXTERNAL SOURCE-TWO OPTIONS
+5.
XTAL1
r----~XTAL 1
+5.
»--~'--~ XTAL 2
210465-20
For the 8294A XTAL2 must be high 35-65% of the period.
Rise and fall times must not exceed IOns.
Resistor to Vee is needed to ensure VIH = 3.0V if TIL Circuitry is used.
Figure 18. Recommended Connection for External Clock Signal
3·60
intJ
8294A
• Notice: Stresses above those listed under "Absolute Maximum Ratings" may cause permanent damage to the device. This is a stress rating only and
functional operation of the device at these or any
other conditions above those indicated in the operational sections of this specification is not implied. Exposure to absolute maximum rating conditions for
extended periods may affect device reliability.
ABSOLUTE MAXIMUM RATINGS*
Ambient Temperature Under Bias .... O·C to + 70·C
Storage Temperature .......... - 65·C to + 150·C
Voltage on Any Pin With
Respect to Ground .............. - 0.5V to + 7V
Power Dissipation ....................... 1.5 Watt
D.C. AND OPERATING CHARACTERISTICS
= O·C to +70·C, Vee = +5V ±10%, vss = ov
TA
Symbol
Limits
Parameter
Typ
Min
Unit
Test Conditions
Max
VIL
Input Low Voltage (All
Except Xl, X2, RESET)
-0.5
0.8
V
VILl
Input Low Voltage (Xl, X2,
RESET
-0.5
0.6
V
VIH
Input High Voltage (All
Except Xl, RESET)
2.0
Vee
V
VIHl
Input High Voltage (Xl,
RESET
3.5
Vee
V
VIH2
Input High Voltage (X2)
2.2
Vee
V
VOL
Output Low Voltage (00-07)
0.45
V
IOL
VOL1
Output Low Voltage (All
Other Outputs)
0.45
V
IOL
=
=
2.0mA
1.6 mA
VOH
Output High Voltage (00-07)
2.4
V
IOH = -400,.,.,A
VOHl
Output High Voltage (All
Other Outputs)
2.4
V
IOH
IlL
Input Leakage Current
(RO, WR, CS, Ao)
±10
,.,.,A
Vss ::;: VIN ::;: Vee
IOFL
Output Leakage Current
(00-07, High Z State)
±10
,.,.,A
Vss + 0.45 ::;: VOUT ::;: Vee
100
Voo Supply Current
5
20
mA
100 + lee
Total Supply Current
60
135
mA
III
Low Input Load Current
(Pins 24, 27 -38)
0.3
mA
VIL
=
0.8V
ILl1
Low Input Load Current
(RESET)
0.2
mA
VIL
=
0.8V
IIH
Input High Leakage Current
(Pins 24, 27 -38)
100
,.,.,A
VIN
=
Vee
CIN
Input Capacitance
10
pF
CliO
I/O Capacitance
20
pF
3-61
=
-50,.,.,A
intJ
8294A
A.C. CHARACTERISTICS TA = O·Cto +70·C, vcc = VDD = +5V ±10%, vss
= OV
DBB READ
Symbol
Parameter
Min
tAR
CS, Ao Setup to AD ..J.,
Max
t
Unit
Test Conditions
ns
0
tRA
CS, Ao Hold After AD
tRR
AD Pulse Width
tAD
CS, Ao to Data Out Delay
130
ns
CL = 100 pF
tRD
AD ..J., to Data Out Delay
130
ns
CL = 100 pF
t
tDF
RD
tCY
Cycle Time
0
ns
160
ns
to Data Float Delay
85
ns
15
/Ls
1-12 MHz Crystal
Max
Unit
Test Conditions
1.25
DBB WRITE
Symbol
Parameter
Min
tAW
CS, Ao Setup to WR ..J.,
tWA
CS, Ao Hold After WR
tww
WR Pulse Width
tDW
Data Setup to WR
tWD
Data Hold to WR
t
t
t
0
ns
0
ns
160
ns
130
ns
0
ns
DMA AND INTERRUPT TIMING
Symbol
Parameter
Min
Max
Unit
tACC
DACK Setup to Control
0
ns
tCAC
DACK Hold After Control
0
ns
tACD
DACK to Data Valid
130
ns
tCRO
Control L.E. to ORO T.E.
110
ns
tCI
Control T.E. to Interrupt T.E.
400
ns
Test Conditions
CL = 100 pF
CLOCK
Symbol
Min
Max
Units
tCY
Cycle Time
Parameter
1.25
9.20
/Ls(l)
tCYC
Clock Period
83.3
613
ns
tPWH
Clock High Time
38
tpwL
Clock Low Time
38
tR
Clock Rise Time
10
ns
tF
Clock Fall Time
10
ns
NOTE:
1. ICY = 15/f(XTAL)
3·62
ns
ns
intJ
8294A
A.C. TESTING INPUT, OUTPUT WAVEFORM
, 4
'.0
::>
TEST POINTS
<
0.8
0.45
'.0
08
210465-21
WAVEFORMS
READ OPERATION-oUTPUT BUFFER REGISTER
CSOR Ao
]
K
_I'._j
I ••
"\
~~
(OUTPUT)
(SVSTEM'S
ADDRESS BUS)
I
(I
J_I.'~
-tAD-
(R EAD CONTROL)
-tDF-
l
----IAD---
-----------<
~
---DATAVALID--t>-------------
210465-22
WRITE OPERATION-INPUT BUFFER REGISTER
.:sOR..,
------','xrf'
r
1st
f''---------------
(SYSTEM'S
ADDRESS BUS)
-_',AW--4-'--'----- 'WW--l W
'-
(WRITE CONTROL)
_.Dw-_fl_"WD
DATA BUS
DATA
(INPUT) _ _ _ _.::M:::.AY:...;C"'~:.:;:A:.:;NG::.:E:........_ __ '
-~DATA
1'-------'-____
VAlID---
DATA
-.:::M;:.AY:...;C:::.H:.:;A:.:;NG::.:E:........_ _ _ __
210465-23
3·63
intJ
8294A
DMA AND INTERRUPT TIMING
'"
RoorWR
...
-I
-I
lAce
I'\.
/
ICAe
~
V
I
ORQ
I
-
~--
ICRQ
-
tACO--"--- -.-~-
DATA BUS
\V
/\.
VALID
OAVorSAQ
~
_.- Tel
--
I
210465-24
CLOCK TIMING
2.'V XTAL2
-
-
-
-
-
-
-
1.6V _ _ _ _ _ _ _
-!...)"::~=-=::-:I.-l.
_
.45V-
'.
210465-25
3-64
inter
AP-166
APPLICATION
NOTE
November 1986
Using the 8291AGPIB
. Talker/Listener
Order Number: 230832-001
3-65
AP·166
INTRODUCTION
The first section of this note presents an overview of
IEEE 488 (GPIB). The second section introduces the
Intel GPIB component family. A detailed explanation
of the 8291A follows. Finally, some application examples using the component family are presented.
This application note explains the Intel 8291A GPIB
(General Purpose Interface Bus) Talker/Listener as a
component, and shows its use in GPIB interface design
tasks.
DEVICE A
ABLE TO
TALK. LISTEN.
AND
CONTROL
D
~
DATA BUS
(I-
(e.g. calculator)
DEVICEB
ABLE TO
TALK AND
LISTEN
f-'----'
(e.g. digital
multlmeler)
(IDEVICEC
ONLY ABLE
TO LISTEN
DATA BYTE
TRANSFER
CONTROL
-.
f-'--
(e.g. algnal
generator)
(......
DEVICED
ONLY ABLE
TO TALK
GENERAL
INTERFACE
MANAGEMENT
.......
1.1
I----
(e.g. counter)
}DI01 ... 8
Data Input/Output
DAV
Data Available
NRFD
NDAC
Not Ready lor Data
Not Data Accepled
IFC
ATN
SRQ
Inlerlace Clear
AllenDon
REN
EOI
Servlce Reque,t
Remole Enable
End or IdanDIy
230832-1
Figure 1. Interface Capabilities and Bus Structure
3-66
inter
Ap·166
OVERVIEW OF IEEE 488/GPIB
Electrical Signal Lines
The GPIB is a parallel interface bus with an asynchronous interlocking data exchange handshake mechanism. It is designed to provide a common communication interface among devices over a maximum distance
of 20 meters at a maximum speed of 1 Mbps. Up to 15
devices may be connected together. The asynchronous
interlocking handshake dispenses with a common synchronization clock, and allows intercommunication
among devices capable of running at different speeds.
During any transaction, the data transfer occurs at the
speed of the slowest device involved.
As shown in Figure 1, the GPIB is composed of eight
data lines (D08-DOI), five interface management lines
(IFC, ATN, SRQ, REN, EOI), and three transfer controllines (DAV, NRFD, NDAC).
The eight data lines are used to transfer data and commands from one device to another with the help of the
management and control lines. Each of the five interface management lines has a specific function.
ATN (attention) is used by the Controller to indicate
that it (the controller) has access to the GPIB and that
its output on the data lines is to be interpreted as a
command. ATN is also used by the controller along
with EO! to indicate a parallel poll.
The GPIB finds use in a diversity of applications requiring communication among digital devices over
short distances. Common examples are: programmable
instrumentation systems, computer to peripherals, etc.
SRQ (service request) is used by a device to request
service from the controller.
The interface is completely defined in the IEEE
STD.-488-1978.
REN (remote enable) is used by the controller to specify the command source of a device. A device can be
issued commands either locally through its front panel
or by the controller.
A typical implementation consists of logical devices
which talk (talker), listen (listeners), and control GPIB
activity (controllers).
EOI (end or identify) may be used by the controller as
well as talker. A controller uses EO! along with ATN
to demand a parallel poll. Used by a talker, EOI indicates the last byte of a data block.
Interface Functions
The interface between any device and the bus may have
a combination of several different capabilities (called
'functions'). Among a total of ten functions defined, the
Talker, Listener, Source Handshake, Acceptor Handshake and Controller are the more common examples.
The Talker function allows a device to transmit data.
The Listener function allows reception. The Source and
Acceptor Handshakes, synchronized with the Talker
and Listener functions respectively, exchange the handshake signals that coordinate data transfer. The Controller function allows a device to activate the interface
functions of the various devices through commands.
Other interface functions are: Service request, Remote
local, Parallel poll, Device clear and Device trigger.
Each interface may not contain all these functions. Further, most of these functions may be implemented to
various levels (called 'subsets') of capability. Thus, the
overall capability of an interface may be tailored to the
needs of the communicating device.
IFC (interface clear) forces a complete GPIB interface
to the idle state. This could be considered the GPIB's
"interface reset." GPIB architecture allows for more
than one controller to be connected to the bus simultaneously. Only one of these controllers may be in command at any given time. This device is known as the
controller-in-charge. Control can be passed from one
controller to another. Only one among all the controllers present on a bus can be the system controller. The
system controller is the only device allowed to drive
IFC.
3-67
AP-166
SOURCE
NRFD SIGNAL LINES GOES HIGH
YES
,...._ _.1...._ _., ONLY WHEN ALL ACCEPTORS ARE READY
DATA IS VALID AND MAY
NOW BE ACCEPTED
DATA IS NOT TO BE CONSIDERED
VALID AFTER THIS TIME
230832-2
NOTE:
Flow diagram outlines sequence of events during transfer of data byte. More than one Ilstener at a time can accept data
because of logical connection of NRFD and NDAC lines.
Figure 2. Handshake Flowchart
3-68
inter
AP-166
Tonllon is a method where the ability of the GPIB
interface to talk or listen is determined by the device
and not by the GPIB controller. With this method,
fixed poles can be easily designated in simple systems
where reassignment is not necessary. This is appropriate and convenient for certain applications. For example, a logic analyzer might by interfaced via the GPIB
to a line printer in order to document some type of
failure. In this case, the line printer simply listens to the
logic analyzer, which is a talker.
Transfer Control Lines
The transfer control lines conduct the asynchronous interlocking three-wire handshake.
DAV (data valid) is driven by a talker and indicates
that valid data is on the bus.
NRFD (note ready for data) is driven by the listeners
and indicates that not all listeners are ready for more
data.
The controller addresses devices thrqugh three commands, MTA (my talk address), MLA (my listen address), and MSA (my secondary address). The device
address is imbedded in the command bit pattern. The
device whose address matches the imbedded pattern is
enabled. Some devices may have the same logical talk
and listen addresses. This is allowable since the talker
and listener are separate functions. However, two of the
same functions cannot have the same address.
NDAC (not data accepted) is used by the listeners to
indicate that not all listeners have read the GPIB data
lines yet.
The asynchronous 3-wire handshake flowchart is
shown in Figure 2. This is a concept fundamental to the
asynchronous nature of the GPIB and is reviewed in
the following paragraphs.
In primary addressing, a device is enabled to talk (listen) by receiving the MTA (MLA) message.
Assume that a talker is ready to start a data transfer.
At the beginning of the handshake, NRFD is false indicating that the listener(s) is ready for data. NDAC is
true indicating that the listener(s) has not accepted the
data, since no data has been sent yet. The talker places
data on the data lines, waits for the required settling
time, and then indicates valid data by driving DAV
true. All active listeners drive NRFD true indicating
that they are not ready for more data. They then read
the data and drive NDAC false to indicate acceptance.
The talker responds by deasserting DAV and readies
itself to transfer the next byte. The listeners respond to
DAV false by driving NDAC true. The talker can now
drive the data lines with a new data byte and wait for
NRFD to be false to start the next handshake cycle.
Secondary addressing extends the, address field from 5
to 10 bits by allowing an additional byte. This additional byte is passed via the MSA message. Secondary addressing can also be used to logically divide devices into
various subgroups. The MSA message applies only to
the device(s) whose primary address immediately precede it.
INTEL'S® GPIB COMPONENTS
The logic designer implementing a GPIB interface has,
in the past, been faced with a difficult and complex
discrete logic design. Advances in LSI technology have
produced sophisticated microprocessor and peripheral
devices which combine to reduce this once complex interface task to a system consisting of a small' set of
integrated circuits and some software drivers. A microprocessor hardware/software solution and a high-level
language source code provide an additional benefit in
end-product maintenance. Product changes are a simple matter of revising the product software. Field
changes are as easy as exchanging EPROMS.
Bus Commands
When ATN and DAV are true data patterns which
have been placed by the controller on the GPIB, they
are interpreted as commands by the other devices on
the interface. The GPIB standard contains a repertory
of commands such as MTA (My Talk Address), MSA
(My Secondary Address), SPE (Serial Poll Enable), etc.
All other patterns in conjunction with ATN and DAV
are classified as undefined commands and their meaning is user-dependent.
Intel has provided an LSI solution to GPIB interfacing
with a talkerllistener device (8291A), a controller device (8292), and a transceiver (8293). An interface with
all capabilities except for the controller function can be
built with an 8291A and a pair of 8293's. The addition
of the 8292 produces a complex interface. Since most
devices in a GPIB system will not have the controller
function capability, this modular approach provides the
least cost to the majority of interface designs.
Addressing Techniques
To allow the controller to issue commands selectively
to specific devices, three types of addressing exist on the
GPIB: talk only/listen only (tonllon), primary, and
secondary.
3-69
inter
AP-166
Current states of the 8291A can be determined by examining the device's status read registers. In addition,
the 8291A contains 8 write registers. These registers are
shown in Figure 3. The three register select pins RS3RSO are used to select the desired register.
Overview ofthe 8291A
GPIB Talker/Listener
The Intel 8291A GPIB Talker/Listener operates over a
clock range of 1 to 8 MHz and is compatible with the
MCS-85, iAPX-86, and 8051 families of microprocessors.
The data-in register moves data from the GPIB to the'
microprocessor or to memory when the 8291A is addressed to listen. When the 8291A is addressed to talk,
it uses the data-out register to move data onto the
GPIB. The serial poll mode and status registers are
used to request service and program the serial poll
status byte.
A detailed description of the 8291A is given in the data
sheet.
The 8291A implements the following functions: Source
Handshake (SH), Acceptor Handshake (AH), Talker
Extended (TE), Service Request (SRQ), Listener Extended (LE), Remote/Local (RL), Parallel Poll (PP2),
Device Clear (DC), and Device Trigger (DT).
Read Registers
A detailed description of each of the registers, along
with state diagrams can be found in the 8291A data
sheet.
Register Select
Code
Write Registers
r-~__~__- r__- r__- r__~__~__~RS2 RS1 RSO~~~~__~~__~__~__~__~~
I DI7 I DI6 I DI5 I 014 1 013 I DI2 I DI1
010 I 0
0
0 I 0071 0061 D05 I D04 I 003 1 D02 I D01 I DOO 1
DATA IN
DATA OUT
I CPT 1 APT 1 GET 1 END 1 DEC 1 ERR 1 BO
BI
I 0
0
I CPT I APT 1 GET 1 END I DEC 1 ERR I BO I
INTERRUPT STATUS 1
o I
liNT 1SPAS 1 LLO I REM 1 SPC 1LLOC 1REMC 1ADSC I 0
0
1 0
INTERRUPT STATUS 2
I 58 ISRosl 56 1 SS 1 54 1 53
1DMAOI DMAI 1 SPC I LLOC I REMCI ADSC
I
I
INTERRUPT ENABLE 2
52
51
1 I 58 I RSV I 56
I 0
SERIAL POLL STATUS 2
I ton 1 Lon I EOIILPASITPASI
BI
INTERRUPT ENABLE 1
I SS I 54 I 53
52
51
SERIAL POLL MODE
LA 1 TA IMJMNI
o
I
0
I
0
1 0
I ADM1 1ADMO 1
ADDRESS MODE
ADDRESS STATUS
I CPT71 CPT61 CPTsl CPT41 CPT31 CPT21 CPT1 I CPTO I 1
0
1 I CNT21 CNT1 1 CNTO 1COM41 COM31 COM21 COM1 1COMO I
COMMAND PASS THROUGH
AUXMODE
liNT 1 DTO 1 DLO I,ADS.0IAD4-0IAD3-oIAD2-0IAD1-01 1
o lARS 1 DT 1 DL
I ADS I AD4 I AD3 I AD2 1 AD1
I
ADDRESS 0/1
ADDRESS 0
I X IDT1 1 DL1 IAD5-1IAD4-1IAD3-1IAD2-1 IAD1-1 I 1
1 I EC7 1 EC6 1 ECS 1 EC4 1 EC3 1 EC21 EC1 I ECO I
ADDRESS 1
EOS
Figure 3_ 8291A Registers
3-70
inter
AP-166
address 1 registers allow reading of these programmed
addresses plus trading of the interrupt bit. The EOS
register is used to program the end of sequence character.
Address Mode
The address mode and status registers are used to program the addressing modes and track addressing states.
The auxiliary mode register is used to select a variety of
functions. The command pass through register is used
for .undefined commands and extended addresses. The
address 0/1 register is used to program the addresses to
which the 8291A will respond. The address 0 and
Detailed descriptions of the addressing modes available
with the 8291A are described in the 8291A data sheet.
Examples of how to program these modes are shown
below.
1. MODE: Talker has single address of 01 H
Listener has single address of 02H
CPU Writes to:
Pattern
Comment
Address Mode Register
Address 0/1 Register
Address 0/1 Register
0000 0001
0010 0001
1100 0010
Select Mode 1 Addressing
Major is Talking. Address = 01 H
Minor is Listener. Address = 02H
2. MODE: Talker has single address of 01 H
Listener has single address of 02H
CPU Writes to:
Pattern
Comment
Address Mode Register
Addr~ss 0/1 Register
Address 0/1 Register
0000 0001
0100 0010
1010 0001
Select Mode 1 Addressing
Major is Listener. Address = 02H
Minor is Talking. Address = 01 H
Note that in both of the above examples, the listener will respond to a MLA message with five least significant bits
equal to 02H and the talker to a 01H.
3. MODE: Talker and listener both share a single address of 03H
CPU Writes to:
Pattern
Comment
Address Mode Register
Address 0/1 Register
Address 0/1 Register
0000 0001
0000 0011
1110 0000
Select Mode 1 Addressing
Talker and Listener Address = 03
Minor Address is disabled
4. MODE: Talker and listener have a primary address of 04H and a secondary address of 05H
CPU Writes to:
Pattern
Comment
Address Mode Register
Address 0/1 Register
Address 0/1 Register
0000 0010
0000 0100
1000 0101
Select Mode 2 Addressing
Primary Address = 04H
Minor Address is disabled
5. MODE: Talker has a primary address of 06H. Listener has a primary address of 07H
CPU Writes to:
Pattern
Comment
Address Mode Register
Address 0/1 Register
Address 0/1 Register
0000 0011
0010 0110
1100 0111
Select Mode 3
Talker Address = 06
Listener Primary = 07
The CPU will verify the secondary addresses which could be the same or different.
3-71
AP-166
APPLICATION OF'THE 8291A
LISTENER FUNCTIONS
This phase of the application note will examine programming of the 8291A, corresponding bus commands
and responses, CPU interruption, etc. for a variety of
GPIB activities. This should provide'the reader with a
clear understanding of the role of the ,8291A performs
in a GPIB system. The talker function, listener function, remote message handling, and remote/local operations including local lockout, are discussed.
LISTEN·ONLY (Ion). In listen-only mode the 8291
will not respond to the My Listen Address (MLA) message from the controller. The sequence of events is as
follows:
Talker Functions
TALK-QNLY (ton). In talk only mode the 8291A will
not respond to tQe MTA message from a controller.
Generally, ton is used in an environment which does
not have a controller. Ton is also employed in an interface that includes the controller function.
When the 8291A is used with the 8292, the sequence of
events for initialization are as follows:
1)
2)
3)
4)
5)
6)
The Interrupt/Enable registers are programrned.
Ton is selected.
Settling time is selected.
EQS character is loaded.
"Pon" local message is sent.
,
CPU waits for Byte .out (BQ) and sends a byte to
the data out register.
Addressed Talker (via MTA Message)
The GPIB controller will direct the 8291A to talk by
sending a My Talk Address (MTA) message containing
the 8291A's talk address, The sequence of events is as
follows:
1) The interrupt enable and serial poll mode registers
are programmed.
2) Mode 1 is selected.
~) Settling time is selected.
4) Talker and listener addresses are programmed.
5) Power on (pon) local message is sent.
6) CPU waits for an interrupt. When the controller
has sent the MTA message for the 8291A an interrupt will be generated if enabled and the ADSC bit
will be set.
',
7) CPU reads the Address Status register to determine
if the 8291A has been addressed to talk (TA = l)~
8) CPU waits for an interrupt from either BQ or
ADSC
9) When BQ is set, the CPU writes the data byte to
the data out register.
10) CPU continues to poll the status registers.
11) When unaddressed ADSC, will be set and TA reset.
1) The Interrupt Enable registers are progriimmed.
2) Lon is selected.
3) BOS character is programmed,
4) "Pon" local message is sent.
5) CPU waits for BI and reads the byte from the datain register.
Note that enabling both ton and Ion can create an internal loopback as long as another listener exists.
Address.d Listening
(via the MLA Message)
The; GPIB controller will direct the. 8291A to listen by
sending a MLA message containing the 8291A's listen
address. The sequence of events is as folloWs:
I) The Interrupt Enable registers are programmed.
The serial poll mO,de register is loaded' as desired.
Talker and listener addresses are loaded.
"Pon" local message is sent.
The CPU waits for an interrupt. When the controller has sent the MLA message for the 8291A, the
ADSC bit will be set.
6) The CPU reads the Address Status Register to determine if the 8291A has been addressed to listen
(LA = I).
7) CPU waits for an interrupt for BI or ADSC,
8) When BI is set, the CPU reads the data byte from
the data-in register"
9) The CPU continues to poll the status registers,
10) When unaddressed, ADSC will be set and LA reset.
2)
3)
4)
5)
Remote/Local and Lockout .
Remote and local refer to the source of control of a
device counected to the GPIB. Remote refers to control
from the GPIB controller-in-charge. Local refers to
control from the device's own system. Reference should
be made to the RL state diagram in the 2891A data
sheet.
Upon "pon" the 8291A is in the local state. In this state
the REM bit in Interrupt Status 1 Register is reset.
When the GPIB controller takes control of the bus it
will drive the REN (remote enable) line true. This will
cause the REM bit and REMC (remote/local change)
bit to be set. The distinction between remote and local
modes is necessary in that some types of devices will
have local controls which have functions which are also
controlled by remote messages.
inter
AP-166
These two methods are called Serial and Parallel Poll.
The controller performs one of these two polling methods after a slave device requests service. As implied in
the name, a Serial Poll is when the controller sequentially asks each device if it requested service. In a Parallel Poll the controller asks all of the devices on the
GPIB if they requested service, and they reply in parallel.
In the local state the device is allowed to store, but not
respond to, remote messages which control functions
which are also controlled by local messages. A device
which has been addressed to listen will exit the local
state and go to the remote state if the REN message is
true and the local rtl (return to local) message is false.
The state of the "rtl" local message is ignored and the
device is "locked" into the local state if the LLO remote message is true. In the Remote state the device is
not allowed to respond to local messages which control
function that are also controlled by remote messages. A
device will exit the remote state and enter the local
state When REN goes false. It will also enter the local
state if the GTL (go to local) remote message is true
and the device has been addressed to listen. It will also
enter the local state if the rtl message is true and the
LLO message is false or ACDS is inactive.
Serial Poll
When the controller performs a Serial Poll, each slave
device sends back to the controller .a Serial Poll Status
Byte. One of the bits in the Serial Poll Status Byte indicates whether this device requested service or not. The
remaining 7 bits are used defined, and they are used to
indicate what type of service is required. The IEEE-488
spec only defines the service request bit, however HP
has defined a few more bits in the Serial Poll Status
Byte. This can be seen in Figure 4.
A device will exit the remote state and enter R WLS
(remote with lockout state) if the LLO (local lockout)
message is true and ACDS is active. In this mode, those
local messages which control functions which are also
controlled by remote messages are ignored. In other
words, the "rtl" message is ignored. A device will exit
R WLS and go to the local state if REN goes false. The
device will exit RWLS and go to LWLS if the GTL
message is true and the device is addressed to listen.
When a slave device needs service it drives the SRQ line
on the GPIB bus true (low). For the 8291A this is done
by setting bit 7 in the Serial Poll Status Byte. The CPU
in the controller may be interrupted by SRQ or it may
poll a register to determine the state of SRQ. Using the
8292 one could either poll the interrupt status register
for the SRQ interrupt status bit, or enables SRQ to
interrupt the CPU. After the controller recognizes a
service request, it goes into the serial poll routine.
Polling
The IEEE-488 standard specifies two methods for a
slave device to let the controller know that it needs
service.
rf
I
The first thing the controller does in the serial poll routine is assert ATN. When ATN is asserted true the
controller takes control of the GPIB, and all slave de-
SERVICE REQUESTED
0: SERVICE NOT REQUESTED
8
7
LTYPICAL HP
8
NOT USED
6
•
•
•
•
1
I
DEVICE DEPENDENT STATUS BITS-.-J
,--l
U~ 1: SERVICE REQUESTED
7
0: SERVICE NOT REQUESTED
6
•
W
•
•
DEVICE DEFINED
1: OPERATI.ON COMPLETE
0: BUSY
11:
L-------...1
ERROR
0: NORMAL
Figure 4. The Serial PQII Status Byte
3-73
230832-3
inter
'f·
AP-166
vices on the bus must listen. All bytes sent over the bus
while ATN is true are commands. After the controller
tai
TXRDY;
SETUP IlUFFERS *1
DECL .. RE IlUFF2 (100)
IlYTE;
1* RAM STORAGE AREA
DECLARE IlUFFI (100) IlYTE DATA
(1,2,3,4,5,6,',8,9,10H,
I"H, 13H, 14H, 15H,
l1H,
21H,
31H,
41H.
:;IH,
61H,
-TiH.
81H,
23H,
32H, 33H.
42H. 43H.
52H. 53H.
62H, 63H.
72H, 73H,
82H, 93H,
22H,
2411,
3411.
44H.
54H.
64H,
74H.
94H.
25H,
35H,
45H.
55H,
65H.
75H,
85H,
16H, 17H, 18H,
26H, 27H. 28H.
3611. 37H. 3BH.
46H. 47H. 4BH.
56H. 57H. 5BH.
66H. 67H. 6BH.
76H, 77H. 79H.
86H, 87H, 88H.
*_
19H, 20H.
29H. 30H.
39H. 40H.
49H. 50H.
59H. 60H.
69H. 70H,
79H. BOH.
89H. 90H.
230832-5
3-79
inter
PL/M-86
10
AP-166
C0I1P ILE"R
BOARDI
91H. 92H. 93H. ,94t;. 95H., 9bH. 97H. 98H.
DECLARE BUFF3 ( t7)
BYTE DATA
(ODH. 0AH, 'CDt1PARE ERROR'. 0!!H, C.~H),
1* 8
=NORM$TIME,
OUTPUT
(SET$MODE)
=WR$TRANSFER,
OUTPUT
(SET$MASK)
=CLEAR,
O'JTPUT
(51 ART$O$l.O;
~DMA$WRD$l.STN ('0),
DMA$WRD$LSTN (0)
=SHR (DMA$WRD~LSTN (0), 8),
2
59
60
64
65
66
':,lATUS$2>
00 WH I l.E
1*
52
53
54
55
56
57
58
~O;
I~HILE
i INPUT
(STATUS'SI) AND ERR) = ERR;
DO WHILE
(INPUT
(STATUS$I), AND BO) = 0;
END.
1* WAIT FOR BO INTR *1
OUTPUT
(PORT$OUT)
~OAAH.
END,
48
50
*1
(START $O$HIl
=DMA$WRD$LSTN (0),
OUTPUT
(O*COUtH$l.O)
"'Te$LOl,
, OUTPUT
(OSCOlINT$HI )
:Te$HII.
1* INIT
e~91A
OUTPUT
OUTPUT
OUTPUT
(COMMAND$MOD)
(AODR$STATUS)
( COMMAND$ti0D)
FOR LISTENER FUNCTIONS
*1
~RESET,
=MODI$LO;
=PON,
1*
DO WHILE (INPUT
(SJATUS$l)
ANDSI)
END,
1* WAIT FOR BI INTR . f
XYZ
., INPUT (PORT$IN),
LISTEN ONLY
=0.
67
OUTPUT
68
DO WHILE
(INPUT
(STATUSs!)
AND ONE) .:)
1* WAIT FOR EOJ RECEIVED -oj
(STATUS$2)
=DMA$REQ'L.
1*
*1
ENABLE DMA REGS
*1
ONE;
230832-8
3-82
AP·166
PL.-/M-B6 CDMPILEP
("JARf\
CMPHLW:
70
' .. rC"IPARE THE nlD BUFFERS CONTENTS *1
11AlCH=CMPB
71
IF t1ATCH
'"
73
74
75
(@BUFFL
100);
OKAY THEN GOTO START91.
'3E'ID ERROR MESSI>GE IN BUFFER 3
DO 1=0 TO 16,
CALL CO
(BUFF 3
!
2
2
@BUFF2,
(I)
*1
),
END,
70
(;OTO START91,
77
MODULE INFORMATION'
CCiDE AREA SIZE
CONSTANT AREA SIZE
VARIABLE AREA SIZE
MAXIMUM STACK SIZE
243 LINES READ
o PROGRAM ERROR (5)
END OF PL/t1-86
=OlDBH
4750
1170
1120
=0075H
=0070H
=0006H
bD
CaMP ILATJON
230832-9
3-83
inter
PLlM-8t. C0I1PILER
1l0ARD2
ISIS-II PL/M-8t. VI 1 C0I1PILATION OF MODULE 1l0ARD2
OBJECT r10DULE PLACED IN
FI
BRD;!, OBJ
COMPILER INVOKED BY
PLM8t.
FI
BRD2, $RC
/. BOARD 2 TPT PROGRAM
1*
*1
*1
(1)
*1
AND Dt1A'S DATA INTO A BUFFER, t.HILE WAITING *1
FOR THE END IN1ERRUPT S IT TO BECOt1E ACTIVE *1
llPON END ACTIVE, THE DATA IN THE BUFFER IS *1
SEtH [j';C'" iO THE FIIIST BOARD VIA THE GPID
*1
t.HEN THE BLOCK IS FINISHED THE 80191A IS *1
1* PROGRAr1MED BACK INTO THE LISTENER MODE
*1
/* THIS BOARD LISTENS TO THE OTHER BOARD
1*
1*
1*
1*
1*
BOARD2
DO,
1* 8237 PORT ADDRESSES *1
2
DECLARE
LITERALLY
LITERALLY
LITERALLY
LITERALLY
LITERALLY
LITERALLY
LITERALLY
LITERALLY
CLEAII$FF
START$O$Lo
START$O$HI
O$COUNT$LO
O$COUNT$HI
SET.MODE
CMD$37
5ET$MASK
1* 8237 CUMMAND
3
- DATA BYTES
'OFFDDH' ,
'OFFDOH',
'OFFDOH',
'OFFDIH' ,
'OFFDIH', '
'OFFDBH' ,
OFFD8H',
'OFFDFH' ,
I*MASTER CLEAR *1
*1
DECLARE
'48H ,
RDHRANSFER
LITERALLY
WRHRANSFER
'44H',
LITERALLY
ADDR$!A
'OOH',
l.ITERALLY
J01H' ,
ADDR$!S
LITERALLY
NORt1$TIME
'20H',
LITERALLY
iC$LOI
l.ITERALLY
'OFFH',
iC.HIl
'OOH',
LITERALLY
'990',
LITERALLY
TC$L02
'OOH',
LITERALLY
TC$HI2
'OIH' ,
TC
l.ITERALLY
1* 8291A
4
PORT ADDRESSES *1
DECLARE
PORTSOUT
PORT$IN
STATUS$!
STATUS$2
ADOR$STATUS
C0I1r1AND$r100
LITERALLY
LITERALLY
LITERALLY
LITERALLY
LITERALLY
LITERALLY
'OFFCOH',
'OFFCOH',I* DATA IN *1
'OFFCIH' , 1* INTR STAT 1 *1
'OFFC2H', 1* INTR STAT 2 *1
'OFFC4H', 1* ADOR STAT
*1
'OFFC5H', 1* CMD PASS THRU *1
230832-10
3·84
inter
AP-166
PL/M-86 COMP IlER
RON'D2
ADDRSO
EOSSREG
5
LITERALLV
LITERALLV
'OFFC6H',
'OFFC7H',
1*
EOS REGISTER
*1
DECLARE.
ENDS EO!
LI TERALL V
DNE
LITERALLY
por~
LITERALLY
RESEl
L.l TERALLY
CLEAR
l.ITERALLV
Dt~ASREG$L L ITER ALL V
DMA$REGST LITERALLV
MODI$TO
LITERALLY
MOD 1 $LO
LI TERALL V
E05
LI1ERALLY
PRESCALER LITERALLY
HIGH$SPEED LITERALLY
XY!
BYTE,
130
L ITER ALL Y
131
LITERALLV
ERR
I I TERALL Y
'8SH',
10H',
'OOH "
'O.2H',
'OOH',
'10H',
I
'20H',
'SOH "
'40' ,
'ODH',
'23H',
'A4H',
'02H',
'OUi' ,
'04H',
START91,
OUTPUT
(STATUS$2)
=CLEAR'
1*
END INITILIZATION STATE
i* WIT 8'237 FOR LISTENER FUNCTION
7
INIT37L,
OUTPUT
(CLEAR$FF)
=CLEAR, 1*
TOGGLE MASTER RESET *1
OUTPUT
(CI1DS37)
=NORM$TH1E,
OUTPUT
(SET$t10DE)
=WR$TRAI~SFER,
1* BLOCK XFER MODE
OUTPUT
lSETSMASK)
=CLEAR,
OUTPUT
(START$O$LO)
=ADDR$lA,
OUTPUT
(START$O$HI)
=ADDR$lB,
OUTPUT
(OSCOUNTSLO)
=TC$L01.
OUTPLUT lO$COUNT$HI)
=TC$HI I,
S
9
10
11
12
13
14
l"
15
16
17
18
19
20
21
2
INIT 82qlA
I~AIT UNTIL EOI
DO (mILE
=0,
ReVD AND END INTR-i3IT SET
(INPUT
(STATUS$l)
*1
*1
FOR LISTENER FUNCTIONS
OUTPUT
(eOMI1AND$MOD)
=RESET,
OUTPUT
(ADDR$STATUS)
~MOD1$LO,
OUTPUT
(COMMANDSMOD)
=PON.
00 I~HILE (INPUT
(STATUS$I)
AND 131)
END.
1* WAIT FOR 131 INTR *1
XVZ= INPUT
(PORT$IN).
OUTPUT
(STATUS$2)
=DI1A$REG$L;
1*
22
*1
>1
AND DNE ) ()
*1
DNE,
230832-11
3-85
AP-166
PliM··8b
COMP ILER
23
1l0ARD2
END,
24
INIT37T.
1* INIT 8237 FOR TAI.KER FUNCTION
29
30
31
32
OUTPUT
OUTPUT
OUTPUT
DUTPu·r
OUTPUT
OUTPUT
OUTPUT
OUTPUT
OUTPUT
33
34
35
36
:l7
38
OUTPUT
OUTPUT
OUTPUT
OUTPUT
OUTPUT
OUTPUT
25
26
27
28
1*
39
40
41
42
43
44
45
46
1
1
2
3
FOR TAl.KER FUNCTlON
(EOSSREG)
=EOS,
( COMMANOSMOD )
(AOORSSTATUS)
(COMMAt~D$MOO )
(,;OMt1AND$t100)
(COMMAND$MOD)
*1
=ENO$EOI,/* EOI ON EOS SENT
=110D1$TO,I* TALK ONLY *1
=PRESCALER,
=H I GH$SPEED,
"PON,
*1
-0,
DO (/HILE
(INPUT
(STATUS$I)
AND ERR)
=ERR,
DO (~HIlE
(INPUT
(STATUS$!)
AND BO)
END,
1* (~AIT FOR 110 INTR *1
OUTPUT
(PORT$OUTI
=OAAH,
END,
=0,
2
2
(STATUS$2)
=DMA$REG$T.
CIUTPUl
i* (~AIT FOR TC=O *1
1
DO (mILE
END,
2
50
51
8,,'~IA
INIT
DO (~HILE
(INPUT
(STATUS$I)
AND BO)
END,
1 * (~AIT FOR BO INTR
*/
OUTPUT
(PORT$OUT)
=OAAH,
2
47
48
49
*i
(STATUS$2)
"CLEAR,
1* CLEAR 8291A ORQ *1
(CLEAR$FF)
=CLEAR,
(CMO$37)
=NORM$TIME,
(SET$MOD!')
=RD$TRANSFER,
1* IlLOCK XFER MODE *1
(SET$MASK)
=CLEAR,
(START$O$LO)
=ADDR$lA,
(START$O$HI)
=ADDR$lB,
(O$COUNT$LO)
=TC$L02.
(O$COUiH$HI)
=TC$HI2.
( INPUT
(CMO$37)
AND TC)
<>
TC,
GOTO STAR T91,
END,
MODULE INIO ORMATION
CODE AREA SIZE
CONSTANT AREA SIZE
VARIABLE AREA SIZE
MAXIMUt1 STACK SIZE
152 LINE.S READ
o PROGRAM ERROR (S)
=0122H
-OOOOH
-OOO!H
=OOOOH
2900
00
10
00
230832-12
3-86
inter
AP-166
APPENDIXC
SOFTWARE FOR HP 9835A
10
REM S.iHt IN
TERFACE CLEAR
20
ABORTIO 7
30
REM FORCE E
RRORS UNTIL UST
ENERS ACTIYE
49 Frc..rr:
St(lt4
1';'0 SrCl=E:IHAND(
Stul,
3213 STATUS ;-04~
Stat
330 PRINT CHR. I
2113
PlnNT "SEND
I NG PARAllEL POL
L RESPONSE MESSA
GE"
220 REM EXECUT I
NG PARALLEL POLL
230 Ppo 11 byt .. =p
POLl( 7)
240 PRINT "PARA
LLEL POLL BYTE
D (S~ .;; t
OUT
PUT 704 USING ".
,KM; "8"
~e Chkst~t:
S1
AlliS 715to.\l,5to.
t2,$t(lt3,Sto.t4
6€1
Err"Stot2 A
ND I
713
IF Err=1 TH
EN GOlD Freerr
80
PR I NT CHRtf
12), "USTENERS A
RE ON LINE"
90
REM CONFIGU
RE PPOLL
le0 FPOLL CONF:
CURE 7134; h0000~ 1
0121"
SING
KEYBOARD I NTERRU
PRINT "COMM
0
IHIT
=
'H' FOR LIST)"
150 Veyenl
ON k
BD GOSUB 610
160 STATUS 71S<
a.t 1, $to.t2, St o.t 3,
720 RETURN
730 Dec.:
RESET
784
748 PRINT CHRtl
12). "SELECTIVE D
EV JC E CLEAR SENT
1'
rIder
13
750
760
AHD
PRINT·,'
PRINT "COMM
(HIT
'H' FOP UST'"
778 RETUPi1
780 RefVI:
LOCAL
704
798 PRINT CHR. (
12). "REMOT. MESS
AGE SEHT"
S80 PRINT-"
810 PRINT "COMN
RHD
?
IHIT
'H' FOR usn"
S2B RETURN
S3e H.l.: ' PRINT
CHRft 12)
840 PRINT" e@@
• OPERATOR ALLO~
ABLE COMMANDS @@
"",T~;G$
560 PRINT CHRft
12) ,G$
570 PRINT "COMM
AND z ?
(HIT
'H' FOR usn"
5ge GOTO Keven
598 REM IHTERRU
PT SERYI CE ROUTI
NES
600 "REM GET KEY
BOARD DATA
e=B
270
IF Ppol1b,t
e=0 THEN GOTO ,,'
291
280 PRINT "oR
NOT FROM 8291"
281
PRINT "COIiM
RND = ?
(HIT
'H' FOR UST)"
290 COTO Keyen
300 PS291:
PRIN
T "SRO IS FROM N
CC 8291
THE
ENTERPR I SE"
3IB PRINT "PERF
bit· 4
•
IF
610 Whatke-:..:
'II'?
=
Dl
M K$ [S01
620 K$=KBDf
630 IF 5($="G"
HEN GOTO Ge~
640
IF K""D" T
HEN GOTO Dec
650
rF K$-"R" T
HEN GOTO Re"
660
IF K$="H"
HEN GOTO Hel,..
670
IF K.... X· T
HEN. GOTO X.i <
68:0' Get = TRIGSE
230832-13
PRINT "COMM
?
(H·IT
=
'H' FOR usn"
THEN Goro Pc fJr
530
COTO t:.e1"fon
REM R
EADY TO ReV CHAR
S FROM GP IB
540 DIM GHB01
550 EHTER 784 U
PRINT " ___ _
2ii--p~ol t by~
~~e!R~m~ ~E~T'
718
AHD
S31 Rc.vr-I
8)
or,
120 PRINT CHF"
12), "PARALLEL PO
LL CONFIGURED"
130 REM ENABlE
PT
140
AiiD
520
INANDIPpoI1b)te,
I "'.SPOIU.•
R 704
690 PRINT CHRtl
12). "GROUP E):ECU
12), "Sta.tUIJ • -;
St 01
.
340
:r t.;., =BIHAN
=
";Pp~fl1b)tE-
25(1
110
OPtllNG SERIAL PO
LL TO GET STATUS
"tel
18(1
IF Srct=O TH
EN GOTO t e- -=-I"t
19t'.
(IF;: i E'II
zeta PRItH CHRS (
12)· "SRQ PHEIVE
D" '
U"
850 PRINT" hH
koy
re5ul t
860 PRINT"
S.nd GET "
H
11.50.'91."
870
~RINT"
Sene! D£C 1"1
@ossa,,,"
230832-14
e~e
ac
PRINT
Send REM
940 Xl"lltl
DIM A
$1801
950
PRINT CHIUf
1"l"1-!-0.9."
690
PRINT
oar-d
1 nput
91"
900
PRINT
12),"Enter- dato.
to s.nd and hlt
Xl"llts ke,t·
'0
~,2
CONTINUE"
960
INPUT At
978 OUTPUT 704;
At
971
EOI 718
980 PRINT "COMM
AND = ?
IHIT
'H' FORUST'"
990 REtURN
1000 END
H
Prlnts th,
•919tabh"
PRINT
928
PRINT "
TRY IT
930
RETURN
'0,,, ahead,
3-87
230832-15
inter
AP-166
APPENDIX D
SOFTWARE FOR HP 8088/HP 9835A VIA GPIB
PL/M-86 COMPILER
HPIB
ISIS-II PL/M-86 V1. 1 COMPILATION OF MODULE HPIB
PLACED IN :F1:HPIB.OB~
COMPILER INVO~ED BY: PLM86 :F1:HPI~.SRC LARGE
OB~ECTMODULE
HPIB:
1*
PARAMETER DECLARATIONS
*1
DO,
DECLARE
•
ADDRSHI
LITERALLY
'01H',
ADDRSLO
LITERALLY
'OOH',
ADSC
LITERALLY
'01H',
BI
LITERALLY
'01H',
BO
LITERALLY
'Q2H',
CHARSCOUNT BYTE,
CHAR
BYTE,
CHARS(80)
BYTE,
CLEAR
LITERALLY
'OOH',
CPT
LITERALLY
'BOH' ,
CRLF
L I TERALL Y
, OAH' ,
DEC
L ITER ALLY
, 08H ' ,
DMASADRSLSTN
POINTER,
DMASADRSTALK
POINTER,
DMASWRDSLSTN(2) WORD AT
<.DMASADRSLSTN),
DMASWRDSTALK(2) WORD AT
<.DMASADRSTALK),
OMASREOSL
LITERALLY
'IOH',
OMASREOST
LITERALLY
'20H',
ONE
LITERALLY
'IOH',
ENOSEOI
LITERALLY
'B8H' ,
EOS
LITERALLY
'OOH',
ERR
LITERALLY
'04H',
GET
L ITER ALL Y
, 20H' ,
I
BYTE,
LISTEN
LITERALLY
'04H',
MLA
LITERALLV
'04H',
MODES 1
LITERALLY
'OIH',
NOSDMA
LITERALLY
'OOH',
NOSRSV
LITERALLY
'OOH',
NORMSTIME
LITERALLY
'20H',
PON
LITERALLY
'OOH',
PPC
LITERALLY
'O:lH',
PPESMASK
LITERALLY
'60H',
PPOLLSCNFGSFLAG LITERALLY
'OIH',
PPOLLSENSBYTE
BYTE,
PRISBUF(80) BYTE AT
<.CHARS),
ROSXFER
LITERALLY
'48H',
RESET
LITERALLY
'02H',
REMC
LITERALLY
'02H',
RSV
LITERALLY
'40H',
RXRDY
LITERALLY
'02H' ,
3-88
230832-16
inter
AP-166
HPIB
SRGS
L I TERALL V
'40H' ,
BVTE,
STATt
STAT2
BVTE,
TALK
LITERALLV
'02H',
TASORSLA
BVTE,
TRG
LITERALLV
'4tH',
TC
LITERALLV
'OtH',
TCSHI
LITERALLV
'OOH',
TCSLO
LITERALLV
'OFFH',
TXRDY
LITERALLV
'OIH',
UDC
BVTE,
WRSXFER
LITERALLV
'44H',
XVZ
BVTE,
1*
PORT DECLARATIONS
*1
3
DECLARE
ADDRSO
ADDRSSTATUS
CLEARSFF
CMDs37
COMMANDsMOD
COUNTSHI
COUNTSLO
CPTSREG
EOSSREG
PORTSIN
PORTSOUT
SERSDATA
SERSSTAT
SETSMASK
SETSMODE
SPOLLSSTAT
STARTSHI
STAR TSLO
STATUSSI
STATUSS2
,
4
6
7
B
LITERALLV
LITERALLV
LITERALLV
LITERALLV
LITERALLV
LITERALLV
LITERALLV
LITERALLV
LITERALLV
LITERALLY
LITERALLV
LITERALLV
LITERALLV
LITERALLV
LITERALLV
LITERALLV
LITERALLV
LITERALLV
LITERALLV
LITERALLV
'OFFC6H',
'OFFC4H',
'OFFDDH',
'OFFDBH',
'OFFC'H',
'OFFDIH',
'OFFDIH" ,
'OFFC5H',
'OFFC7H',
'OFFCOH',
'OFFCOH',
'OFFFOH',
'OFFF2H',
'OFFDFH',
'OFFDBH',
'OFFC3H',
'OFFDOH',
'OFFDOH',
'OFFCIH·.
'OFFC2H',
1* crt
m•••• g •• li.t *1
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
GETSMSG(II) BVTE DATA (ODH,OAH, 'TRIGGER',OAH.ODH),
DECSMSG(16) BVTE DATA (ODH.OAH, 'DEYICE CLEAR',OAH.ODH),
REMCSMSG(10) BYTE DATA (ODH.OAH. 'REMOTE'.ODH.OAH),
CPTSMSG(22) BVTE DATA (ODH.OAM. 'UNDEF CMD RECEIYED'.OAH.ODHI,
HUHSMSG(II) BYTE DATA (ODH.OAM. 'HUH ???'.ODH.OAHI,
1* called procedure. *1
9
REOSER:
PROCEDURE,
230832-17
3-89
inter
AP·166
PL/M-S6 COMPILER
10
2
11
2
3
12
13
2
14
2
15
16
1
2
HPIB
DO WHILE (INPUT (SPOLL.STATI AND SRGSI-SRGS,
END,
END REGSER,
co: PROCEDURE(XXXI,
DECLARE
XXX
BVTE,
17 . 2
1S
3
19
2
20
2
21
1
22
2
23
3
24
3
25
2
DO WHILE (INPUT (SER.STATI AND TXRDVI<>TXRDV,
END,
OUTPUT (SER.DATAI-XXX,
END CD,
HUH:
PROCEDURE,
DO 1-0 TO 10,
CALL CO (HUH.MSQ(III,
END,
END HUH,
26
CI:
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
2
2
3
3
3
3
3
3
3
3
3
4
:5
4
4
3
3
2
4:5
46
PROCEDURE,
IF (INPUT (SER.STATI AND RXRDVI.RXRDV THEN
DO,
1-0,
CHAR.COUNT-O,
STORE.CHAR:
CHAR-(INPUT (SER.DATAI AND 7FHI,
CHAR.COUNT-CHAR.COUNT+l,
CALL CO (CHAR"
CHARS ( I I-CHAR,
1-1+11
IF CHAR <> CRLF THEN
DO,
DO WHILE (INPUT (SER.STATI AND RXRDVI <>RXRDV,
END,
QOTO STORE.CHAR,
END,
CALL REGSER,
END.
END CI,
TALK.EXEC:
PROCEDURE,
2
1*
manipulate ad dr ••• bit. 'or DMA controller
*1
47
4S
49
DMA.ADR.TALK-(eCHARSI,
DMA.WRD.TALK(l ,-SHL(DMA.WRD.TALK(l,. 41,
DMA.WRD.TALK(OI-DMA.WRD.TALK(OI+DMA.WRD.TALK(l"
50
OUTPUT (CLEAR.FFI-CLEAR,
230832-18
3-90
inter
AP-166
PL/M-86 COMPILER
51
52
53
54
HPIB
01
2
2
56
57
58
2
2
2
OUTPUT (CMD371-NORMSTIME,
OUTPUT (SETSMODEI-RDSXFER,
OUTPUT (SETSMASKI-CLEAR,
OUTPUT (STARTSLOI-DMASWRDSTALK(OI,
DMASWRDSTALK(01-SHR(DMASWRDSTALK(0).8),
OUTPUT (STARTSHI)-DMASWRDSTALK(OI,
OUTPUT (COUNTSLO)-CHARSCOUNT,
OUTPUT (COUNTSHII-O,
59
60
2
2
OUTPUT (EOSSREQ)-EOS,
OUTPUT (COMMANDSMOD)-ENDSEOI,
61
601
63
2
3
2
DO WHILE (INPUT (STATUSS1) AND BO)-O,
END,
OUTPUT (PORTSOUT)-OAAH,
64
65
66
67
68
69
01
3
4
3
3
01
DO WHILE (INPUT (STATUSS1) AND ERR I-ERR,
DO WHILE (INPUT (STATUSS1) AND BO)-O,
END,
OUTPUT (PORTSOUT)-OAAH,
END,
OUTPUT (STATUSS21-DMASREOST,
70
2
55
2
2
71
72
73
74
75
76
PROCEDURE,
2
2
77
78
79
80
81
82
83
84
85
2
2
2
2
2
2
2
2
2
OUTPUT (STATUSS21-CLEAR,
OUTPUT (CLEARSFF)-CLEAR,
OUTPUT (CMDS37)-NORMSTIME,
OUTPUT (SETSMODE)-WRSXFER,
OUTPUT (SETSMASKI-CLEAR,
DMASADRSLSTN-(eCHARS),
DMASWRDSLSTN(I).SHL(DMASWRDSLSTN(II.4),
DMASWRDSLSTN(O l-DMASWRDSLSTN (O)+DMASWRDSLSTNC 1),
OUTPUT (STARTSLO)-DMASWRDSLSTNCO) ,
DMASWRDSLSTN(0)-SHR(DMASWADSLSTN(0).8),
OUTPUT (STARTSHI)-DMASWRDSLSTN(O),
OUTPUT (COUNTSLO)-TCSLO,
OUTPUT (COUNTSHII-TCSHI,
OUTPUT (STATUSS2)-DMASREOSL,
86
2
END LISTENSEXEC,
2
2
2
87
PRINTER:
PROCEDURE,
88
2
8.
.0
91
92
93
2
3
3
3
2
DO WHILE PRlSaUF(I) <>CRLF,
CALL CO (PRlSBUFCl»,
1-1+1,
END,
CALL CO CPRlSaUF(I»,
94
2
END PRINTER,
230832-19
3·91
intJ
AP-166
PL/M-86 COMPILER
HPIS
ADSCtEXEC:
9'
PROCEDURE,
96
2
TAtORtLA-INPUT (ADDRtSTATUS),
97
9B
99
100
2
2
2
2
IF (TAtORtLA AND TALK)-TALK THEN
CALL TALKtEXEC,
IF (TAtORtLA AND LISTEN)-LISTEN THEN
CALL LISTENtEXEC,
101
2
102
103
104
10'
106
1
2
3
3
2
QETtEXEC:
107
lOB
109
110
111
1
2
3
3
2
DECtEXEC:
112
113
114
11'
116
1
2
3
3
2
REMCtEXEC:
117
END ADSCtEXEC,
PROCEDURE,
DO 1"0 TO 10,
CALL CO (QETtMSQ(II),
END,
END QETtEXEC,
PROCEDURE,
DO 1-0 TO 1',
CALL CO (DECtMSQ(II),
END,
END DECtEXEC,
PROCEDURE,
DO 1-0 TO 9,
CALL CO (REMCtMSg(II),
END,
END REMCtEXEC,
PPOLLtCON:
PROCEDURE,
llB
2
OUTPUT (COMMANDtMOD)-PPOLLtCNFQtFLAQ,
119
2
END PPOLLtCON,
120
PPOLLtEN:
PROCEDURE,
121
122
2
2
PPOLLtENtSYTE-(UDC AND 6FH),
OUTPUT (COMMANDtMODI-PPOLLtENtSYTE,
123
2
END PPOLLtEN,
124
12'
126
127
1
2
3
3
128
129
130
131
2
2
2
2
UDC-INPUT (CPTtREQ),
UDC-(UDC AND 7FH),
IF (UDC AND PPC)=PPC THEN
CALL PPOLLtCON,
132
133
2
2
IF (UDC AND PPEtMASK)-PPEtMASK THEN
CALL PPOLLtEN,
CPTtEXEC:
PROCEDURE,
DO 1-0 TO 21,
CALL CO (CPTtMSQ(I»,
END,
3-92
230832-20
inter
AP-166
HPIB
P~/M-86 COMPI~ER
END CPTSEXEC.
134
1*
BEQIN CODE
*1
INIT:
1311
OUTPUT
OUTPUT
OUTPUT
OUTPUT
OUTPUT
OUTPUT
136
137
138
139
140
141
14;!
(C~EARSFF)
-C~EAR,
(COMMANDSMOD)
-RESET.
(ADDRSSTATUS)
-MODESI.
(ADDRSO)
-MLA,
(STATUSS;!) -NOSDMA.
(COMMANDSMOD)
..pON,
~ISTENERS:
DO WHI~E (INPUT (STATUSSl) AND,BI)-O,
END,
;!
XVI-INPUT (PORTSIN).
XVZ-INPUT (STATUSS;!),
143
144
1411
CMD:
RDSTAT:
1* read status registers and interpret command *1
STATl=INPUT (STATUSSl).
STAT;!-INPUT (STATUSS;!),
146
147
148
149
150
1
1
1
1
1111
1II;!
1113
1114
1115
156
1117
158
1119
;!
;!
;!
1
1
;!
;!
;!
1110
1
161
16;!
163
;!
;!
;!
1
164
1
165
1
;!
;!
;!
1
166
167
168
169
IF CSTATI AND DNE)-DNE THEN
CA~~ PRINTER,
IF CSTATI AND CPT)-CPT THEN
DO,
CA~~ CPTSEXEC,
STAT;!-CSTAT;! AND OFEH),
END.
IF CSTATI AND OET)aQET THEN
DO.
CA~L OETSEXEC.
STAT;!-CSTAT2 AND OFEH),
ENO,
IF CSTATI AND DEC)-DEC THEN
DO,
CAL~ DECSEXEC,
STAT;!-CSTAT;! AND OFEH),
END,
IF CSTAT;! AND REMC)-REMC THEN
DO.
CA~~ REMCSEXEC,
STAT;!-CSTAT2 AND OFEH),
END.
IF CSTAT;! AND ADSC)-ADSC THEN
3-93
230832-21
AP-166
PL/M-S6 COMPILER
170
171
172
173
HPII
1
2
2
DO.
CALL. ADSC.EXEC,
STAT2-CSTAT2 AND OFEHll
ENDI
2
174
CALL. CII
175
OOTO CMDI
176
END.
MODULE INFORMATION:
CODE AREA SIZE
CONSTANT AREA SIZE
YARIAILE AREA SIZE
MAXIMUM STACK SIZE
34., L.INES READ
o PROORAI'I ERRORCSl
• 0475H
1141D
• OOOOH
OD
.,70
• 0061H
• OOOAH
10D
&ND OF PL/M-16 COMPIL.ATION
230832-22
3-94
inter
APPLICATION
NOTE
AP-66
November 1987
Using the 8292 GPIB Controller
Order Number: 231324-002
3-95
infe{
AP-eS
built a system they had to invent new cables and new
documentation just to specify the cabling and interconnection procedures.
INTRODUCTION
The Intel® 8292 is a preprogrammed UPITM-4IA that
implements the Controller function of the IEEE Std
488-1978 (GPIB, HP-IB, IEC Bus, etc.). In order to
function the 8292 must be used with the 8291 Talker/
Listener and suitable interface and transceiver logic
such as a pair of Intel 8293s. In this configuration the
system has the potential to be a complete GPIB ControUer when driven by the appropriate software. It has
the following capabilities: System Controller, send IFC
and Take Charge, send REN, Respond to SRQ, send
Interface messages, Receive Control, Pass Control, Parallel Poll and Take Control Synchronously.
Based on this experience, Hewlett-Packard began to define a new interconnection scheme. They went further
than that, however, for they wanted to specify the typical communication protocol for systems of instruments.
So in 1972, Hewlett-Packard came out with the first
version of the bus which since has been modified and
standardized by a committee of several manufacturers,
coordinated through the IEEE, to perfect what is now
known as the IEEE 488 Interface Bus (also known as
the HPIB, the GPIB and the IEC bus). While this bus
specification may not be perfect, it is a good compromise of the various desires and goals of instrumentation
and computer peripheral manufacturers to produce a
common interconnection mechanism. It fits most instrumentation systems in use today and also fits very
well the microcomputer I/O bus requirements. The basic design objectives for the GPIB were to:
1) Specify a system that is easy to use, but has all of the
terminology and the definitions related to that system precisely speUed out so that everyone uses the
same language when discussing the GPIB.
2) Define all of the mechanical, electrical, and functional interface requirements of a system, yet not define
any of the device aspects (they are left up to the
instrument designer).
3) Perinit a wide range of capabilities of instruments
and computer peripherals to use a system simultaneously and not degrade each other's performance.
4) Allow different manufacturers' equipment to be connected together and work together on the same bus.,
5) Define a system that is good for limited distance interconnections.
6) Define a system with minimum restrictions on performance of the devices.
7) Define a bus that allows asynchronous communication with a wide range of data rates.
8) Define a low cost system that does not require extensive and elaborate interface logic for the low cost
instruments, yet provides higher capability for the
higher cost instruments if desired.
9) Allow systems to exist that do not need a central
controller; that is, communication directly from one
instrument to another is possible.
This application note will explain the 8292 only in the
system context of an 8292, 8291, two 8293s and the
driver software. If the reader wishes to learn more
about the UPI-41A aspects of the 8292, Intel's Application Note AP-41 describes the hardware features and
programming characteristics of the device. Additional
information on the 8291 may be obtained in the data
sheet. The 2893 is detailed in its data sheet. Both chips
will be covered here in the details that relate to the
GPIB controUer.
The next section of this application note presents an
overview of the GPIB in a tutorial, but comprehensive
nature. The knowledgeable reader may wish to skip this
section; however, certain basic semantic concepts introduced there will be used throughout this note.
Additional sections cover the view of the 8292 from the
CPU's data bus, the interaction of the 3 chip types
(8291, 8292, 8293), the 8292's software protocol and
the system level hardware/software protocol. A brief
description of interrupts and DMA will be followed by
an application example. Appendix A contains the
source code for the system driver software.
GPIB/IEEE 488 OVERVIEW
Design Objectives
WHAT IS THE IEEE 488 (GPIB)?
The experience of designing systems for a variety of
applications in the early 1970's caused Hewlett-Packard to define a standard intercommunication mechanism which would allow them to easily assemble instrumentation systems of varying degrees of complexity. In
a typical situation each instrument designer designed
hislher own interface from scratch. Each one was inconsistent in terms of electrical levels, pin-outs on a
connector, and types of connectors. Every time they
Although the GPIB was originally designed for instru~
mentation systems, it became obvious that most of
these systems would be controlled by a calculator or
computer. With this in mind several modifications were
made to the original proposal before its final adoption
as an international standard. Figure I lists the salient
characteristics of the GPIB as both an instrumentation
bus and as a computer I/O bus.
3-96
AP-66
requires special attention to considerations beyond the
scope of this note. Although not required, data buffering in each device will improve the overall bus performance and allow utilization of more of the bus bandwidth.
Data Rate
1M bytes/s, max
250k bytes/s, typ
Multiple Devices
15 devices, max (electrical limit)
8 devices, typ (interrupt flexibility)
Bus Length
20m, max
2 m/device, typ
Byte Oriented
8-bit commands
8-bit data
Block Multiplexed
Optimum strategy on GPIB due to
setup overhead for commands
Interrupt Driven
Serial poll (slower devices)
Parallel poll (faster devices)
Direct Memory Access
One DMA facility at controller
serves all devices on bus
Asynchronous
One talker
3-wire handshake
Multiple listeners
110 to I/O Transfers
Talker and listeners need not
include microcomputer/controller
Multiple Devices-Many microcomputer systems used
as computers (not as components) service from three to
seven peripherals. With the GPIB, up to 8 devices can
be handled easily by I controller; with some slowdown
in interrupt handling, up to 15 devices can work together. The limit of 8 is imposed by the number of unique
parallel poll responses available; the limit of 15 is set by
the electrical drive characteristics of the bus. Logically,
the IEEE 488 Standard is capable of accommodating
more device addresses (31 primary, each potentially
with 31 secondaries).
Bus Length-Physically, the majority of microcomputer systems fit easily on a desk top or in a standard 19"
(48-cm) rack, eliminating the need for extra long cables. The GPIB is designed typically to have 2m of
length per device; which accommodates most systems.
A line printer might require greater cable lengths, but
this can be handled at the lower speeds involved by
using extra dummy terminations.
Byte Oriented-The 8-bit byte is almost universal in
I/O applications; even 16-bit and 32-bit computers use
byte transfers for most peripherals. The 8-bit byte
matches the ASCII code for characters and is an integral submultiple of most computer word sizes. The
GPIB has an 8-bit wide data path that may be used to
transfer ASCII or binary data, as well as the necessary
status and control bytes.
}
Block Multiplexed-Many peripherals are block oriented or are used in a block mode. Bytes are transferred in
a fixed or variable length group; then there is a wait
before another group is sent to that device, e.g., one
sector of a floppy disc, one line on a printer or type
punch, etc. The GPIB is, by nature, a block multiplexed bus due to the overhead involved in addressing
various devices to talk and listen. This overhead is less
bothersome if it only occurs once for a large number of
data bytes (once per block). This mode of operation
matches the needs of microcomputers and most of their
peripherals. Because of block multiplexing, the bus
works best with buffered memory devices.
Figure 1. Major Characteristics of GPIB as
Microcomputer 1/0 Bus
The bus can be best understood by examining each of
these characteristics from the viewpoint of a general
microcomputer I/O bus.
Data Rate-Most microcomputer systems utilize peripherals of differing operational rates, such as floppy
discs at 31k or 62k bytes/s (single or double density),
tape cassettes at 5k to 10k bytes/s, and cartridge tapes
at 40k to 80k bytes/so In general, the only devices that
need high speed 110 are 0.5" (1.3-cm) magnetic tapes
and hard discs, operational at 30k to 781k bytes/s, respectively. Certainly, the 250k-bytes/s data rate that
can be easily achieved by the IEEE 488 bus is sufficient
for microcomputers and their peripherals, and is more
than needed for typical analog instruments that take
only a few readings per second. The IM-byte/s maximum data rate is not easily achieved on the GPIB and
Interrupt Driven-Many types of interrupt systems exist, ranging from complex, fast, vectored/priority networks to simple polling schemes. The main tradeoff is
usually cost versus speed of response. The GPIB has
two interrupt protocols to help span the range of applications. The first is a single service request (SRQ) line
that may be asserted by all interrupting devices. The
controller then polls all devices to find out which wants
service. The polling mechanism is well defined and can
3-97
inter
AP·66
be easily automated. For higher performance, the parallel poll capability in the IEEE 488 allows up to eight
devices to be polled at once-each device is assigned to
one bit of the data bus. This mechanism provides fast
recognition of an interrupting device. A drawback is
the frequent need for the controller to explicitly conduct a parallel poll, since there is no equivalent of the
SRQ line for this mode.
Asynchronous Transfers-An asynchronous bus is desirable so that each device can transfer at its own rate.
However, there is still a strong motivation to buffer the
data at each device when used in large systems in order
to speed up the aggregate data rate on the bus by allowing each device to transfer at top speed. The GPIB is
asynchronous and uses a special 3-wire handshake that
allows data transfers, from one talker to many listeners.
Direct Memory Access (DMA}-In many applications,
no immediate processing of I/O data on a byte-by-byte
basis is needed or wanted. In fact, programmed transfers slow down the data transfer rate unnecessarily in
these cases, and higher speed can be obtained using
DMA. With t.he GPIB, one DMA facility at the,controller serves all devices. There is no need to incorporate complex logic in each device.
I/O to I/O Trans/ers-In practice, I/O to I/O transfers
are seldom done due to the need for processing data
and changing formats or due to mismatched data rates.
However, the GPIB can support this mode of operation
where the microcomputer is neither the talker nor one
of the listeners.
.
rrrrr
DEVICE A
ABL'E TO
TALK. LISTEN.
AND
CONTROL
r
Ir f
==1-
DATA BUS
(t-
(e.g. computer)
DEVICE B
ABLE TO
TALK AND
LISTEN
==1-
(e.g. digital
mullirnete,)
<1---
DATA BYTE
TRANSFER
CONTROL
DEVICE C
ONLY ABLE
TO LISTEN
I
(e.g. ,Ignal
generator)
A
-
(
GENERAL
INTERFACE
MANAGEMENT
DEVICE 0
ONLY ABLE
TO TALK
I
f-
(e.g. counter)
~}
DIOL(?ATA
NPUT/OUTPUT)
DAV (DATA VALID)
NRFD (NOT READY FOR DATA)
NDAC(NOT DATA ACCEPTED)
IFC (INTER FACE CLEAR)
ATN (ATTENTIDN)
SRQ (SERVI CE REQUEST)
REN (REMO TE ENABLE)
EOI (END-O R-IDENTIFY)
231324-1
Figure 2. Interface Capabilities and Bus Structure
3-98
inter
AP-66
NDAC-Not Data Accepted. This handshake line is asserted by a Listener to indicate it has not yet accepted
the data or control byte on the DIO lines. Note that the
Controller will not see NDAC deasserted (i.e., data accepted) until all devices have deasserted NDAC.
GPIB Signal Lines
DATA BUS
The lines DIOI through DI08 are used to transfer addresses, control information and data. The formats for
addresses and control bytes are defined by the IEEE
488 standard (see Appendix C). Data formats are undefined and may be ASCII (with or without parity) or
binary. DIOI is the Least Significant bit (note that this
will correspond to bit 0 on most computers).
DAV-Data Valid. This handshake line is asserted by
the Talker to indicate that a data or control byte has
been placed on the DIO lines and has had the minimum
specified settling time.
--{
.._ _ _---I~---(
..._ _ _ _......~-
DID
MANAGEMENT BUS
H-
A TN-Attention. This signal is asserted by the Controller to indicate that it is placing an address or control byte on the Data Bus. ATN is de-asserted to allow
the assigned Talker to place status or data on the Data
Bus. The Controller regains control by reasserting
ATN; this is normally done synchronously with the
handshake to avoid confusion between control and data
bytes.
DAY
L-
H-,.,
_---l 1...._____.......n
NRFD L
10_ _ __
n . _____11
NDAC: - _ _ _ _..
231324-2
Figure 3. GPIB Handshake Sequence
EOI-End or Identify. This signal has two uses as its
name implies. A talker may assert EOI simultaneously
with the last byte of data to indicate end of data. The
Controller may assert EOI along with ATN to initiate a
Parallel Poll. Although many devices do not use Parallel Poll, all devices should use EOI t<;> end transfers
(many currently available ones do not).
GPIB Interface Functions
There are ten (10) interface functions specified by the
IEEE 488 standard. Not all devices will have all functions and some may only have partial subsets. The ten
functions are summarized below with the relevant section number from the IEEE document given at the beginning of each paragraph. For further information
please see the IEEE standard.
1) SH-Source Handshake (section 2.3). This function provides a device with the ability to properly
transfer data from a Talker to one or more Listeners using the three handshake lines.
2) AH-Acceptor Handshake (section 2.4). This function provides a device with the ability to properly
receive data from the Talker using the three handshake lines. The AH function may also delay the
beginning (NRFD) or end (NDAC) of any transfer.
3) T-Talker (section 2.5). This function allows a device to send status and data bytes when addressed
to talk. An address consists of one (Primary) or two
(Primary and Secondary) bytes. The latter is called
an extended Talker.
SRQ-Service Request. This line is like an interrupt: it
may be asserted by any device to request the Controller
to take some action. The Controller must determine
which device is asserting SRQ by conducting a Serial
Poll at its earliest convenience. The device deasserts
SRQ when polled.
IFC-Interface Clear. This signal is asserted only by
the System Controller in order to initialize all device
interfaces to a known state. After deasserting IFC, the
System Controller is the active controller of the system.
REN-Remote Enable. This signal is asserted only by
the System Controller. Its assertion does not place devices into Remote Control mode; REN only enables a
device to go remote when addressed to listen. When in
Remote, a device should ignore its front panel controls.
TRANSFER BUS
NRFD-Not Ready For Data. This handshake line is
asserted by a listener to indicate it is not yet ready for
the next data or control byte: Note that the Controller
will not see NRFD deasserted (i.e., ready for data) until
all devices have deasserted NRFD.
3-99
inter
Ap·66
4) L-Listener (section 2.6). This function allows a
device to receive data when addressed to listen.
There can be extended Listeners (analogous to extended Talkers above).
5) SR-Service Request (section 2.7). This function
allows a device to request service (interrupt) the
Controller. The SRQ line may be asserted asynchronously.
6) Rr..:.-Remote Local (section 2.8). This function allows a device to be operated in two modes: Remote
via the GPIB or Local via the manual front panel
controls.
7) PP-Parallel Poll (section 2.9). This function allows a device to present one bit of status to the
Controller-in-charge. The device need not be addressed to talk and no handshake is required.
8) DC-Device Clear (section 2.10). This function allows a device to be cleared (initialized) by the Controller. Note that there is a difference between DC
(device clear) and the IFC line (interface clear).
9) DT-Device Trigger (section 2.11). This function
allows a device to have its basic operation started
either individually or as part of a group. This capability is often used to synchronize several instruments.
10) C-Controller (section 2.12). This function allows
a device to send addresses, as well as universal and
addressed commands to other devices. There may
be more than one controller on a system, but only
one may be the controller-in-charge at anyone
time.
At power-on time the controller that is hardwired to be
the System Controller becomes the active controller-incharge. The System Controller has several unique capabilities including the ability to send Interface Clear
(IFC-clears all device interfaces and returns control
to the System Controller) and to send Remote Enable
(REN-allows devices to respond to bus data once they
are addressed to listen). The System Controller may
optionally Pass Control to another controller, if the system software has the capability to do so.
REN
SHIELD
ATN
SRQ
IFC
NOAC
NRFO
OAV
EOI
0108
0107
0108
0105
0104
0103
0102
0101
t
24 12
GNO
~
231324-3
Figure 4. GPlB Connector
GPIB Signal Levels
The GPIB signals are all TTL compatible, low true
signals. A signal is asserted (true) when its electrical
voltage is less than 0.5 volts and is deasserted (false)
when it is -greater than 2.4 volts. Be careful not to become confused with the two handshake signals, NRFD
and NDAC which are also low true (i.e. > 0.5 volts
implies the device is Not Ready For Data).
The Intel 8293 GPIB transceiver chips ensure that all
relevant bus driver/receiver specifications are met. Detailed bus electrical specifications may be found in Section 3 of the IEEE Std 488-1978. The Standard is the
ultimate reference for all GPIB questions.
GPIB Message Protocols
GPIB Connector
The GPIB connector is a standard 24-pin industrial
connector such as Cinch or Amphenol series 57 MicroRibbon. The IEEE standard specifies this connector, as
well as the signal connections and the mounting hardware.
The cable has 16 signal lines and 8 ground lines. The
maximum length is 20 meters with no more than two
meters per device.
The GPIB is a very flexible communications medium
and as such has many possible variations of protocols.
To bring some order to the situation, this section will
discuss a protocol similar to the one used by Ziatech's
ZT80 GPIB controller for Intel's MULTIBUSTM computers. The ZT80 is a complete high-level interface
processor that. executes a set of high level instructions
that map directly into GPIB actions. The sequences of
commands, addresses and data for these instructions
provide a good example of how to use the GPIB (additional information is available in the ZT80 Instruction
Manual). The 'null' at the end of each instruction is for
cosmetic use to remove previous information from the
DIO lines.
3-100
intJ
AP-66
DATA-Transfer a block of data from device A to de-
2) Go To Local
3) Null
vices B, C ...
1) Device A Primary (Talk) Address
Device A Secondary Address (if any)
2) Universal Unlisten
3) Device B Primary (Listen) Address
Device B Secondary Address (if any)
Device C Primary (Listen) Address
etc.
4) First Data Byte
Second Data Byte
LOCAL-Reset all devices to Local
1) Stop asserting REN
LLKAL-Prevent all devices from returning to Local
1) Local Lock Out
2) Null
SPO,LL-Conducts a serial poll of devices A, B, ...
1) Serial Poll Enable
2) Universal Unlisten
3) ZT 80 Primary (Listen) Address
ZT 80 Secondary Address
4) Device Primary (Talk) Address
Device Secondary Address (if any)
5) Status byte from device
6) Go to Step 4 until all devices on list have been polled
7) Serial Poll Disable
8) Null
Last Data Byte (EO!)
5) Null
TRIGR-Trigger devices A, B ... to take action
1) Universal Unlisten
2) Device A Primary (Listen) Address
Device A Secondary Address (if any)
Device B Primary (Listen) Address
Device B Secondary Address (if any)
etc.
3) Group Execute Trigger
4) Null
PPUAL-Unconfigure and disable Parallel Poll response from all devices
1) Parallel Poll Unconfigure
2) Null
ENAPP-Enable Parallel Poll response in devices A, B,
PSCTL-Pass control to device A
1) Device A Primary (Talk) Address
Device A Secondary Address (if any)
2) Talk Control
3) Null
1) Universal Unlisten
2) Device Primary (Listen) Address
Device Secondary Address (if any)
3) Parallel Poll Configure
4) Parallel Poll Enable
5) Go to Step 2 until all devices on list have been configured.
6) Null
CLEAR-Clear all devices
1) Device Clear
2) Null
DISPP-Disable Parallel Poll response from devices A,
B, ...
REMAL-Remote Enable
1) Assert REN continuously
1) Universal Unlisten
2) Device A Primary (Listen) Address
Device A Secondary Address (if any)
Device B Primary (Listen) Address
Device B Secondary Address (if any)
etc.
3) Disable Parallel Poll
4) Null
GOREM-Put devices A, B, ... , into Remote
1) Assert REN continuously
2) Device A Primary (Listen) Address
Device A Secondary Address (if any)
Device B Primary (Listen) Address
Device B Secondary Address (if any)
etc.
3) Null
This Ap Note will detail how to implement a useful
subset of these controller instructions.
GOLOC-Put devices A, B, ... into Local
1) Device A Primary (Listen) Address
Device A Secondary Address (if any)
Device B Primary (Listen) Address
Device B Secondary Address (if any)
etc.
3-101
AP-66
from the CPU; the other seven control various features
of the 8291.
HARDWARE ASPECTS OF THE
SYSTEM
8291 GPIB Talker/Listener
The 8291 is a custom designed chip that implements
many of the non-controller GPIB functions. It provides
hooks so the user's software can implement additional
features to complete the set. This chip is discussed in
detail in its data sheet. The major features are summarized here:
- Designed to interface microprocessors to the GPIB
- Complete Source and Acceptor Handshake
- Complete Talker and Listener Functions with extended addressing
- Service Request, Parallel Poll, Device Clear, Device
Trigger, Remote/Local functions
- Programmable data transfer rate
- Maskable interrupts
- On-chip primary and secondary address recognition
- 1-8 MHz clock range
- 16 registers (8 read, 8 write) for CPU interface
- DMA handshake provision
- Trigger output pin
- On-chip EOS (End of Sequence)
The pinouts and block diagram are shown in Figure 5.
One of eight read registers is for data transfer to the
CPU; the other seven allow the microprocessor to monitor the GPIB states and various bus and device conditions. One of the eight write registers is for data transfer
The 8291 interface. functions will be software configured in this application example to the following subsets for use with the 8292 as a controller that does not
pass control. The 8291 is used only to provide the
handshake logic and to send and receive data bytes. It
is not acting as a normal device in this mode, as it never
sees ATN asserted.
SHI Source Handshake
AHI Acceptor Handshake
T3
Basic Talk-Only
Ll
Basic Listen-Only
SRO No Service Requests
RLO No Remote/Local
PPO No Parallel Poll Response
DCO No Device Clear
DTO No Device Trigger
If control is passed to another controller, the 8291 must
be reconfigured to act as a talker/listener with the following subsets:
SH 1 Source Handshake
AH 1 Acceptor Handshake
T5
Basic Talker and Serial Poll
L3
Basic Listener
SRI Service Requests
RLl Remote/Local with Lockout
PP2 Reconfigured Parallel Poll
DCl Device Clear
DTl Device Trigger
CO Not a Controller
Pin Configuration
Block Diagram
GPIB CONTROL
TO NON INVERTING
BUS TRANSCEIVERS
I
r/R CONTROL
231324-5
231324-4
Figure 5. 8291 Pin Configuration and Block Diagram
3-102
intJ
AP-66
Most applications do not pass control and the controller is always the system controller (see 8292 commands
below).
The status register is used to pass Interrupt Status information to the master CPU (AO = 1 on a read).
The DBBOUT register is used to pass one of five other
status words to the master based on the last command
written into DBBIN. DBBOUT is accessed when AO
= 0 on a Read. The five status words are Error Flag,
Controller Status, GPIB Status, Event Counter Status
or Time Out Status.
8292 GPIB Controller
The 8292 is a preprogrammed Intel8051A that provides the additional functions necessary to implement a
GPIB controller when used with an 8291 Talker/Listener. The 8041A is documented in both a user's manual and in AP-41. The following description will serve
only as an outline to guide the later discussion.
DBBIN receives either commands (AO = 1 on a Write)
or command related data (AO = 0 on a write) from the
master. These command related data are Interrupt
Mask, Error Mask, Event Counter or Time Out.
The 8292 acts as an intelligent slave processor to the
main system CPU. It contains a processor, memory,
I/O and is programmed to perform a variety of tasks
associated with GPIB controller operation. The on-chip
RAM is used to store information about the state of the
Controller function, as well as a variety of local variables, the stack and certain user status information.
The timer/counter may be optionally used for several
time-out functions or for counting data bytes transferred. The I/O ports provide the GPIB control signals,
as well as the ancillary" lines necessary to make the
8291, 2, 3 work together.
8293 GPIB Transceivers
The 8293 is a multi-use HMOS chip that implements
the IEEE 488 bus transceivers and contains the' additionallogic required to make the 8291 and 8292 work
together. The two option strapping pins are used to
internally configure the chip to perform the specialized
gating required for use with 8291 as a device or with
8291/92 as a controller.
In this application example the two configurations used
are shown in Figure 7a and 7b. The drivers are set to
open collector or three state mode as required and the
special logic is enabled as required in the two modes.
The 8292 is closely coupled to the main CPU through
three on-chip r~gisters that may be independently accessed by both the master and the 8292 (UPI-41A).
Figure 6 shows this Register Interface. Also refer to
Figure 12.
t.~,A-~
'
•
CPU
~
:!
II:
~
i
."U
-
-
........
CS AO RD WR
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
0
0
X
X
X
STATUS
1
DBBIN
I UPI-41A
r
0
~~ ~::1'\
-;-
t\1
I-I-- ....
AO
~
RD
WIi
I
1 DBBOUT
231324-48
REGISTER
READ DB BOUT
READ STATUS
WRITE DBBIN (DATA)
WRITE DBBIN (COMMAND)
NO ACTION
Figure 6. UPI-41A Registers
3-103
I
inter
AP-66
a. 8293 Mode 2
b. 8293 Mode~..
+5
MODE 2
OPTA
lTNO
1m
+5
OPT.
NDAC~----~--------~
NDAC*
NoU'Dr---------------~
NRFD*
DAY
TIFtl
Diif;
Tllll
wcr---~----------~
SYC
'FC*
r-......+-----------......- l
tiKJ,
REN*
DIO,
SRO*
Dm4
ATI'IlI---+-_--l----r-i
~~~-4_--l---~~~
ATN*
~~-4--_+---------+~_
EO'*
om;
mo.
mo,
DR!I
Em
nil
231324-7
231324-6
Figure 7
8291/2/3 Chip Set
Figure 8 shows the four chips interconnected with the
special logic explicitly shown.
The 8291 acts only as the mechanism to put commands
and addresses on the bus while the 8292 is asserting
ATN. The 8291 is tricked into believing that the ATN
line is not asserted by the ATN2 output of the ATN
transceiver and is placed in Talk-only mode by the
CPU. The 8291 then acts as though it is sending data,
when in reality it is sending addresses and/or commands. When the 8292 deasserts ATN, the CPU software must place the 8291 in Talk-only, Listen-only or
Idle based on the implicit knowledge of how the controller is going to participate in the data transfer. In
other words, the 8291 does not respond directly to addresses or commands that it sends on the bus on behalf
of the Controller. The user software, through the use of
Listen-only or Talk-only, makes the 8291 behave as
though it were addressed.
Although it is not a common occurrence, the GPIB
specification allows the Controller to set up a data
transfer between two devices and not directly participate in the exchange. The controller must know when
to gQ active again and regain control. The chip set accomplishes this through use of the "Continuous Acceptor Handshake cycling mode" and the ability to detect
EOI or EOS at the end of the transfer. See XFER in the
Software Driver Outline below.
If the 8292 is not the System Controller as determined
by the signal on its SYC pin, then it must be able to
respond to an IFC within 100 I-I-sec. This is accomplished by the cross-coupled NORs in ~e 7a which
deassert the 8293's internal version of CIC (Not Controller-in-Charge). This condition is latched until the
8292's firmware has received the IFCL (interface clear
received latch) signal by testing the IFCL input. The
firmware then sets its signals to reflect the inactive condition and clears the 8293's latch.
3-104
intJ
AP-66
+5
MODE 3
ATNO
~~
~
DAY
row
T/1I1
T/R1
Dm1-lI
DRii
liEN
Imn
~-
rnJ
l>iOO
T/1I2
DT04
iFC
mas
H
H
NRFD
0106
filOAe
j)j()7
V
~
~-
8291
rnJ
A'i'N
A'i'N
SiiQ
f---
OPTA
OPTB
DA Y*
010
010
-
01
-
010
~
~ r~ r~
0108
r-
010 5*
r-
0106*
010
010 8*
MODE 2
OPTA
-Y7
_3
OPTB
NDAC
~
DAY
mmi
$IR
T/R1
8292
j
IFC
IFC
SYC
SYC
liEN
liEN
SiiQ
sm:i
ATm
ATNI
V
~
I
t
T'C
SIR
TIC
~
ferSR
AfN
EOi2
EOi2
i
~r1T
rt->tR=
ATNO
EOi
ATiW
COUNT
SA
T/R2
iFC[
wer
CLTH
CLTH
eiC
CIC
NDAC*
NRFD*
IFC*
REN*
SRO*
ATN*
EOI*
TC
~
231324-8
Figure 8. Talker/Listener/Controller
3-105
inter
AP-66
In order for the 8292 to conduct a Parallel Poll the
8291 must be able to capture the PP response on the
010 lines. The only way to do this is to fool the 8291
by putting it into Listen-only mode and generating a
DAV condition. However, the bus spec does not allow
a DAV during Parallel Poll, so the back-to-back 3-state
buffers (see Figure 7b) in the 8293 isolate the bus and
allow the 8292 to generate a local DAV for this purpose. Note that the 8291 cannot assert a Parallel Poll
response. When the 8292 is not the controller-in-charge
the 8291 may respond to PPs and the 8293 guarantees
that the DIO drivers are in "open collector" mode
through the OR gate (Figure 7b).
Figure 9 shows the card's block diagram. The
ZT7488/18 plugs into the STD bus, a 56 pin 8 bit microprocessor oriented bus. An 8085 CPU card is also
available on the STD bus and will be used to execute
the driver software.
The 8291 uses I/O Ports 60H to 67H and the 8292 uses
I/O Ports 68H and 69H. The five interrupt lines are
connected to a three-state buffer at I/O Port 6FH to
facilitate polling operation. This is required for the
TCI, as it cannot be read internally in the 8292. The
other three 8229 lines (SPI, IBF, OBF) and the 8291's
INT line are also connected to minimize the number of
I/O reads necessary to poll the devices.
ZT7488/18 GPIB Controller
NDAC is connected to COUNT on the 8292 to allow
byte counting on data transfers. The example driver
software will not use this feature, as the software is
simpler and faster if an internal 8085 register is used for
counting in software.
Ziatech's GPIB Controller, the ZT7488/18 will be used
as the controller hardware in this Application Note.
The controller consists of an 8291, 8292, an 8 bit input
port and TTL logic equivalent to that shown in Figure 8.
DATA BUS
DO~D7
=U
8291
BUFFERS
AG-"
~
r---f---"3~STATE
....
~
r--lORa'
CARD
SELECT
DECODER
"-M
-
h
'"""--
10 EX'-
ADDRESS
r--
829.
BUFFERS
WT'
SVB AESET-
DMA
CONNECTOR
---INTERFACE
LOOIC
I-
CLOCKRD'
J.
f--~
"--ADDRESS
r-l-
U
~
-
~
~0---0
PORT
SELECT
DECODER
'---
_
INTERRUPT
PORT
II
r-'
~
f-
TRANS..
CIIVERS
-;:::
Jl
GPI 8
NNECTOR
co
I='--
231324-9
'INDICATES ACTIVE LOW LOGIC
Figure 9. ZT7488/18 GPIB Controller
3-106
inter
AP-66
READ REGISTERS
PORT #
WRITE REGISTERS
I 0171 016 I 0151 014 I 013 I 012 I 011 I 010 1 6cf>H 100710061 0051 0041 003 I 0021 001 I 0001
DATA IN
DATA OUT
ICPT I APT I GET I END I DEC
I ERR
INTERRUPT STATUS 1
I BO
I BI
ICPT I APT I GET I END 1 DEC
1 61 H
I ERR I BO I BI 1
INTERRUPT MASK 1
liNT ISPASI LLO I REM ISPAScl LLOC IREMCI Aosci 62H I 0 I 0 10MAOI OMAllsPAScl LLOclREMCIAOScl
INTERRUPT STATUS 2
INTERRUPT MASK 2
I S8
I S8
ISROsl S6 I S5 I S4 I S3 I S2 I S1 1 63H
SERIAL POLL STATUS
I ton \
I rsv 1 S6 I S5 1 S4 1 S3 I S2 I S1 1
SERIAL POLL MODE
Ion \ EOI \ LPAS \ TPAS \ LA \ TA \MJMNI 64H \ TO \ LO \
ADDRESS STATUS
0
\ 0 \ 0 \ 0
ADDRESS MODE
\AOM1\AOMOI
ICPT7\ CPT61cPT51 CPT41 CPT31 CPT21 CPT11 CPTO 1 65H ICNT21cNT11 CNTO ICOM41 COM31cOM21cOM11cOMOI
COMMAND PASS THROUGH
AUX MODE
X I OTO \ OLO IA05-01 A04-0 IA03-0IA02-0IA01-01 66H lARS 1 OT 1 OL 1 ADS I A04 \ AD3 I A02 I A01 1
ADDRESS 0
ADDRESS 0/1
X I OT1 \ OL1 \A05-11 A04-1IA03-1IA02-1\A01-11 67H I EC7\ EC6\ EC5
ADDRESS 1
I EC4\
EC3 \ EC21 EC1 \ ECO 1
EOS
Figure 10_ 8291 Registers
.1 .,
r-A,
AD
a
ilSIf
::
~ 03
IIIIIW
~
0,
,n .,
WA
imIII
a,
A,
.,~
mw
~---=¥t
r----'
101M
RESE
T
'NT A
V
'NT
D7-D 0_
l
:V'
1ft
.
fA
1ft
---y
l..J.,
:: Il=
I--
ClK
-
07·00
.
I-
Z
fA
ffl
~
~
es
8212
MD
...,
r--
8257-5
HAQ
HLD"
Aoy
ClK
DS1
~~
~
rI
~S~~
~(
825..,
CS AD
ISFI
OBFI
BPI
TC'
•
SAO
AEN
'FC
SAO
AEN
'FC
ATN
~ ~~~2
:~:I
NRFD
NDAC
OAV
r
T/R1
0101
0108
T/R2
ClK
ca
-
'I'r
ATHO
~~~H
I
0 0 0,0,0.
r...
2142
'
I-07·00 'r-
~
::I
~
I,n
F
cs
r
AO
r--
S
[
I
1293
MODE 2
11rplllll
~ ~
2142
!~~an~!gg!~~np~~
MODE 3
!;!
SYC
CS
~~ZZ~~fA1ft1ft • • • n~n"l
8213
...5
c~:;wf;U3
~N
I
I
Ur-
cc ... cc
. - 11
COUNT
EO'
AS'
AS'
ABO
I:
J
'NT
O A O O - DREQ
OACKO >--< DACK
r"
HOLD
HLDA
AaT AD WA
~
AD
(q;g~!
GPl8
~
. .. ;
:c c
A15· AO
231324-10
Figure 11. DMA/lnterrupt GPIB Controller Block Diagram
3-107
inter
AP-66
ister. Note the two letter mnemonics to be used in later
discussions. The CPU must not write into the 8292
while IBF (Input Buffer .Full) is a one, as information
will be lost.
The application example will not use OMA or interrupts; however, the Figure 11 block diagram includes
these features for completeness.
The 8257-5 OMA chip can be used to transfer data
between the RAM and the 8291 Talker/Listener. This
mode allows a faster data rate on the GPIB and typically will depend on the 8291's EOS or EO! detection to
terminate the transfer. The 8259-5 interrupt controller
is used to vector the five possible interrupts for rapid
software handling of the various conqitions.
Direct Commands
Both the Interrupt Mask (1M) and the Error Mask
(EM) register may be directly written with the LSB of
the address bus (AD) a "0". The firmware uses the MSB
of the data written to differentiate between 1M and EM.
8292 COMMAND DESCRIPTION
LOAD INTERRUPT MASK
This section discusses each command in detail and re~
lates them to a particular GPIB activity. Recall that
although the 8041A has only two read registers and one
write register, through the magic of on-chip firmware
the 8292 appears to have six read registers and five
write registers. These are listed in Figure 12. Please see
the 8292 data sheet for detailed definitions of each reg-
PORT #
READ FROM 8292
INTERRUPT STATUS
I SYC IERRI SRO lEVi
This command loads the Interrupt Mask with 07-00.
Note that 07 must be a "I" and that interrupts are
enabled by a corresponding "I" bit in this register. IFC
interrupt cannot be masked off; however, when the
8292 is the System Controller, sending an ABORT
command will not cause an IFC interrupt.
X IIFCR I IBF
D7
OBF
WRITE TO 8292
COMMAND FIELD
69H
11 I
6SH
111SP11 TCI ISYCIOBFII IBFI I
lOp I C I
C
I
C
C
0
I SRO !
Do
INTERRUPT MASK
ERROR FLAG"
X
X IUSERI X I X ITOUTsITOUT2ITOUT1!
D7
Do
ERROR MASK
CONTROLLER STATUS"
ICSBsl CA I
1 0 1 0 IUSERI
I
6SH
101 D
0
1 0 1 0 1 D
TIMEOUT*
1
6SH
10 1 0
0
1 0 I
GPIB (BUS) STATUS·
1 REN 10AVI EOI I X I SYC 1 IFC I ANTI I SRO
EVENT COUNTER STATUS"
D
0
I
D I
D
0
0
I
10 1 0 I D 1
TIME OUT STATUS·
1
0
0
D
I
I
I
0
0
D
0
o 1 0 1TOUT41 TOUTs 1TOUT11
EVENT COUNTER"
6SH
X I X ISYCSI IFC I REN I SRO
6SH
I
0
0
0
0
D
"Note: These registers are accessed by a special
utility command.
Figure 12.8292 Registers
3-108
o
1
inter
AP-66
When the 8292 has completed the command, IBF will
become a "0" and will cause an interrupt if masked on.
LOAD ERROR MASK
This command loads the Error Mask with 07-00.
Note that 07 must be a zero and that interrupts are
enabled by a corresponding "I" bit in this register.
Utility Commands
These. commands are used to read or write the 8292
registers that are not directly accessible. All utility
commands are written with AO = I, 07 = 06 = 05
= 1,04 = 0.03-00 specify the particular command.
For writing into registers the general sequence is:
1) wait for IBF = 0 in Interrupt Status Register
2) write the appropriate command to the 8292,
3) write the desired register value to the 8292 with AO
= 1 with no other writes intervening,
4) wait for indication of completion from 8292 (IBF =
0).
For reading a register the general sequence is:
1) wait for IBF = 0 in Interrupt Status Register
2) write the appropriate command to the 8292
3) wait for a TCI (Task Complete I~terrupt)
4) Read the value of the accessed register from the 8292
with AO = O.
WEVC-Write to Event Counter
(Command = OE2H)
The byte written following this command will be loaded into the event counter register and event counter
status for byte counting. The internal counter is incremented on a high to low transition of the COUNT (TI)
input. In this application example NOAC is connected
to count. The counter is an 8 bit register and therefore
can count up to 256 bytes (writing 0 to the EC implies a
count of 256). If longer blocks are desired, the main
CPU must handle the interrupts every 256 counts and
carefully observe the timing constraints.
Because the counter has a frequency range from 0 to
133 kHz when using a 6 MHz crystal, this feature may
not be usable with all devices on the GPIB. The 8291
can easily transfer data at rates up to 250 kHz and even
faster with some tuning of the system. There is also a
500 ns minimum high time requirement for COUNT
which can potentially be violated by the 8291 in continuous acceptor handshake mode (i.e., TNOOVI +
TOVN02 - C = 350 + 350 = 700 max). When
cable delays are taken into consideration, this problem
will probably never occur.
WTOUT-Write to Time Out Register
(Command = OEIH)
The byte written following this command will be used
to determine the number of increments used for the
time out functions. Because the register is 8 bits, the
maximum time out is 256 time increments. This is
probably enough for most instruments on the GPIB but
is not enough for a manually stepped operation using a
GPIB logic analyzer like Ziatech's ZT488. Also, the
488 Standard does not set a lower limit on how long a
device may take to do each action. Therefore, any use
of a time out must be able to be overridden (this is a
good general design rule for service and debugging considerations).
The time out function is implemented in the 8292's
firmware and will not be an accurate time. The counter
counts backwards to zero from its initial value. The
function may be enabled/disabled by a bit in the Error
mask register. When the command is complete IBF will
be set to a "0" and will cause an interrupt if masked on.
REVC-Read Event Counter Status
(Command = OE3H)
This command transfers the content of the Event
Counter to the OBBOUT register. The firmware then
sets TCI = 1 and will cause an interrupt if masked on.
The CPU may then read the value from the 8292 with
AO = O.
RINM-Read Interrupt Mask Register
(Command = OE5H)
This command transfers the content of the Interrupt
Mask register to the OBBOUT register. The firmware
sets TCI = 1 and will cause an interrupt if masked on.
The CPU may then read the value.
RERM-Read Error Mask Register
(Command = OEAH)
This command transfers the content of the Error Mask
register to the OBBOUT register. The firmware sets
TCI = 1 and will cause an interrupt if masked on. The
CPU may then read the value.
RCST-Read Controller Status Register
(Command = OE6H)
3-109
Ap·66
This command transfers,the content of the Controller
Status register to the DBBOUT register. The firmware
sets TCI = 1 and will cause an interrupt if masked on.
The CPU may then read the value.
Operation Commands. It is not meant to replace the
complete controller state diagram in the IEEE Standard.
RST-Reset (Command = OF2H)
RTOUT-Read Time Out Status Register
(Command = OE9H)
This command transfers the content of the Time Out
Status register to the DBBOUT register. The firmware
sets TCI = 1 and will cause an interrupt if masked on.
The CPU may then read the value.
If this register is read while a time-out function is in
process, the value will be the time remaining before
time-out occurs. If it is read after a time-out, it will be
zero. If it is read when no time-out is in process, it will
be the last value reached when the previous timing occurred.
RBST-Read Bus Status Register
(Command = OE7H)
This command causes the firmware to read the GPIB
management lines, DAV and the SYC pin and place a
copy in DBBOUT. TCI is set to "I" and will cause an
interrupt if masked on. The CPU may read the value.
This command has the same effect as an external reset
applied to the chip's pin #4. The 8292's actions are:
1) All outputs go to their electrical high state. This
means that SPI, TCI, OBFI, IBFI, CLTH will be
TRUE and all other GPIB signals will be FALSE.
2) The 8292's firmware will cause the above mentioned
five signals to go FALSE after approximately 17.5
/ks (at 6 MHz).
3) These registers will be cleared: Interrupt Status, Interrupt Mask, Error Mask, Time Out, Event Counter, Error Flag.
4) If the 8292 is the System Controller (SYC is TRUE),
then IFC will be' sent TRUE for approximately
100 /ks and the Controller function will end up in
charge of the bus. If the 8292 is not the System Controller then it will end up in an Idle state.
5) TCI will not be set.
RERF-Read Error Flag Register
(Command = OE4H)
AST
sye
This command transfers the content of the Error Flag
register to the DBBOUT register. The firmware sets
TCI = 1 and will cause an interrupt if masked on. The
CPU may then read the value.
This register is also placed in DBBOUT by an lACK
command if ERR remains set. TCI is set to "I" in this
case also.
,..-:--------------,
I
I
RST+
---..
ABORT· 6ye
I
lACK-Interrupt Acknowledge
(Command = Al A2 A3 A4 I A5 1 1)
I
L ____
This command is used to acknowledge any combinations of the five SPI interrupts (AI-A5): SYC, ERR,
SRQ, EV, and IFCR. Each bitAI-A5 is an individual
acknowledgement to the corresponding bit in the Interrupt Status Register. The command clears SPI but it
will be set again if all of the pending interrupts were not
acknowledged.
If A2 (ERR) is "1", the Error Flag register is placed in
DBBOUT and TCI is set. The CPl) may then read the
Error Flag without issuing an RERF command.
....!Y~'!£O~A~L~
I
I
_____
--.J
231324-11
Figure 13.8292 Command Flowchart
RSTI-Reset Interrupts (Command = OF3)
This command clears all pending interrupts and error
flags. The 8292 will stop waiting for actions to occur
(e.g., waiting for ATN to go FALSE in a TCNTR command or waiting for the proper handshake state in a
TCSY command). TCI will not be set.
ABORT-Abort all operations and Clear Interface
(Command = OF9H)
Operation Commands
The following diagram (Figure 13) is an attempt to
show the interrelationships among the various 8292
If the 8292 is not the System Controller this command
acts like a NOP and flags a USER ERROR in the Error Flag Register. No TCI will occur.
3-110
intJ
AP-66
If the 8292 is the system Controller then IFC is set
TRUE for approximately 100 ,""S and the 8292 becomes
the Controller-in-Charge and asserts ATN. TCI will be
set, only if the 8292 was NOT the CIC.
sets ATN FALSE and TCI TRUE. This command is
used as part of the Send, Receive, Transfer and Serial
Poll System commands (see next section) to allow the
addressed talker to send data/status.
STCNI-Start Counter Interrupts
(Command = OFEH)
Enables the EV Counter Interrupt. TCI will not be set.
Note that the counter must be enabled by a OSEC command.
If the data transfer does not start within the specified
Time-Out, the 8292 sets TOUT2 TRUE in the Error
Flag Register and sets SPI (if enabled). The controller
continues waiting for a new command. The CPU must
decide to wait longer or to regain control and take corrective action.
SPCNI-Stop Counter Interrupts
(Command = OFOH)
GSEC-Go To Standby and Enable Counting
(Command = OF4H)
The 8292 will not generate an EV interrupt when the
counter reaches O. Note that the counter will continue
counting. TCI will not be set.
This command does the same things as GTSB but also
initializes the event counter to the value previously
stored in the Event Counter Register (default value is
256) and enables the counter. One may wire the count
input to NDAC to count bytes. When the counter
reaches zero, it sets EV (and SPI if enabled) in Interrupt Status and will set EV every 256 bytes thereafter.
Note that there is a potential loss of count information
if the CPU does not respond to the EV/SPI before another 256 bytes have been transferred. TCI will be set
at the end of the command.
SREM-Set Interface to Remote Control
(Command = OF8H)
If the 8292 is the System Controller, it will set REN
and TCI TRUE. Otherwise it only sets the User Error
Flag.
SLOC-Set Interface to Local Mode
(Command = OF7H)
TCSY-Take Control Synchronously
(Command = OFDH)
If the 8292 is the System Controller, it will set REN
FALSE and TCI TRUE. Otherwise, it only sets the
User Error Flag.
EXPP-Execute Parallel Poll
(Command = OF5H)
If not Controller-in-Charge, the 8292 will treat this as a
NOP and does not set TCI. If it is the Controller-inCharge then it sets lOY (EO! & ATN) TRUE and
generates a local DAV pulse (that never reaches the
GPIB because of gates in the 8293). If the 8291 is configured as a listener, it will capture the Parallel Poll
Response byte in its data register. TCI is not generated,
the CPU must detect the BI (Byte In) from the 8291.
The 8292 will be ready to accept another command
before the BI occurs; therefore the 8291's BI serves as a
task complete indication.
GTSB-Go To Standby (Command = OF6H)
If the 8292 is not the Controller-in-Charge, it will treat
this command as a NOP and does not set TCI TRUE.
Otherwise, it goes to Controller Standby State (CSBS),
If the 8292 is not in Standby, it treats this command as
a NOP and does not set TCI. Otherwise, it waits for the
proper handshake state and sets ATN TRUE. The 8292
will set· TOUT3 if the handshake never assumes the
correct state and will remain in this command until the
handshake is proper or a RSTI command is issued. If
the 8292 successfully takes control, it sets TCI TRUE.
This is the normal way to regain control at the end of a
Send, Receive, Transfer or Serial Poll System Command. If TCSY is not successful, then the controller
must try TCAS (see warning below).
TCAS-Take Control Asynchronously
(Command = OFCH)
If the 8292 is not in Standby, it treats this command as
a NOP and does not set TCI. Otherwise, it arbitrarily
sets ATN TRUE and ECI TRUE. Note that this action
may cause devices on the bus to lose a data byte or
cause them to interpret a data byte as a command byte.
Both Actions can result in anomalous behavior. TCAS
should be used only in emergencies. If TCAS fails, then
the System Controller will have to issue an ABORT to
clean things up.
3-111
inter
GlDL-Go to Idle (Command
AP-66
=
OFIH)
If the 8292 is not the Controller in Charge and Active,
then it treats this command as a NOP and does not set
TCI. Otherwise, it sets ATN FALSE, becomes Not
Controller in Charge, and sets TCI TRUE. This command is used as part of the Pass Control System Command.
In order to use polling with the 8292 one must enable
Tel but not connect the pin to.the CPU's interrupt pin.
TCI must be readable by some means. In'this application example it is connected to bit 1 port 6FH on the
ZT7488/18. In addition, the other three 8292 interrupt
lines and the 8291 interrupt;lre also on that port (SPIBit 2, IBFI-Bit 4, OBFI-Bit 3, 8291 INT-Bit 0).
These drivers assume that only primary addresses will
be used on the GPIB. To use secondary addresses, one
must modify the test for valid talk/listen addresses
(range macro) to include secondaries.
TCNTR-Take (Receive) Control
(Command = OFAR)
If the 8292 is not Idle, then it treats this command as a
NOP and does not set TCI. Otherwise, it waits for the
current Controller-in-Charge to set ATN FALSE. If
this does not occur within the specified Time Out, the
8292 sets TOUTl in the Error Flag Register and sets
SP! (if enabled). It will not proceed until ATN goes
false or it receives an RSTI command. Note that the
Controller in Charge must previously have sent this
controller (via the 8291's command pass through register) a Pass Control message. When ATN goes FALSE,
the 8292 sets CIC, ATN and TCI TRUE and becomes
Active.
SOFTWARE DRIVER OUTLINE
The set of system commands discussed below is shown
in Figure 14. These commands are implemented in software routines executed by the main CPU.
The following section assumes that the Controller is the
System Controller and will not Pass Control. This is a
valid assumption for 99 + % of all controllers. It also
assumes that no DMA or Interrupts will be used. SYC
(System Control Input) should not be changed after
Power-on in any system-it adds unnecessary complexity to the CPU's software.
3-112
INIT
INITIALIZATION
Talker I Listener
SEND
SEND DATA
RECV
RECEIVE DATA
XFER
TRANSFER DATA
Controller
TRIG
DCLR
SPOL
PPEN
PPDS
PPUN
PPOL
PCTL
RCTL
SRQD
GROUP EXECUTE TRIGGER
DEVICE CLEAR
SERIAL POLL
PARALLEL POLL ENABLE
PARALLEL POLL DISABLE
PARALLEL POLL UNCONFIGURE
PARALLEL POLL
PASS CONTROL
RECEIVE CONTROL
SERVICE REQUESTED
System Controller
REME REMOTE ENABLE
LOCL
LOCAL
IFCL
ABORT IINTERFACE CLEAR
Figure 14. Software Drive Routines
intJ
AP-66
Initialization
8292-Comes up in Controller Active State when SYC
is TRUE. The only initialization needed is to enable the
TCI interrupt mask. This is done by writing OAOH to
Port 68H.
8291-Disable both the major and minor addresses because the 8291 will never see the 8292's commands/addresses (refer to earlier hardware discussion). This is
done by writing 60H and OEOH to Port 66H.
Set internal counter to 3 MHz to match the clock input
coming from the 8085 by writing 23H to Port 65H.
High speed mode for the handshakes will not be used
here even though the hardware uses three-state drivers.
No interrupts will be enabled now. Each routine will
enable the ones it needs for ease of polling operation.
The INT bit may be read through Port 6FH. Clear
both interrupt mask registers.
Release the chip's initialization state by writing 0 to
Port 65H.
Set Address Mode to Talk-only by writing 80H to Port
64H.
INIT;
Enable-8292
Enable TCI
Enable-8291
Disable major address
Disable minor address
ton
Clock frequency
All interrupts off
Immediate execute pon
;Set up In. pins for Port 6FH
;Task complete must be on
;In controller usage, the 8291
;Is set to talk only and/or listen only
;Talk only is our rest state
;3 MHz in this ap note example
;Releases 8291 from init. state
Talker/Listener Routines
SEND DATA
SEND
This system command sends data from the CPU to one
or more devices. The data is usually a string of ASCII
characters, but may be binary or other forms as well.
The data is device-specific.
My Talk Address (MTA) must be output to satisfy the
GPIB requirement of only one talker at a time (any
other talker will stop when MTA goes out). The MTA
is not needed as far as the 8291 is concerned-it will be
put into talk-only mode (ton).
This routine assumes a non-null listener list in that it
always sends Univeral Unlisten. If it is desired to send
data to the listeners previously addressed, one could
add a check for a null list and not send UNL. Count
must be 255 or less due to an 8 bit register. This routine
also always uses an EOS character to terminate the
string output; this could easily be eliminated and rely
on the count. Items in brackets ( ) are optional and will
not be included in the actual code in Appendix A.
3-113
AP-66
SEND:
Output-to-8291 MTA, UNL
Put EOS into 8291
While 20H S; listener S; 3EH
output-to-8291 listener
Increment listen list pointer
Output-to-8292 GTSB
Enable-8291
Output EOI on EOS sent
If count < > 0 then
While not (end or count
0)
(could check tout 2 here)
Output-to-8291 data
Increment data buffer pointer
Decrement count
Output-to-8292 TCSY
(If toutS then take control async)
Enable 8291
No output EOI on EOS sent
Return
;We will talk, nobody ~isten
;End of str.ing compare character
;GPIB listen addresses are
:" space n thru • > n ASCII
:Address all listeners
;8292 stops asserting ATN, go to standby
:Send EOI along with EOS character
;Wait for EOS or end of count
;Optionally check for stuck bus-tout 2
:Output all data, one byte at a time
;8085 CREG will count for us
;8292 asserts ATN, take control sync •.
:If unable to take control sync.
:Restore 8291 to standard condition
231324-12
Figure 15. Flowchart for Receive Ending Conditions
3-114
inter
AP-66
CONTROLLER
8291,8292
LITN
"I"
eTLR
~
E:~;~.:
.,'(
DEVICE
...
y
:'LsfN~J
'.~ "2"
d
TALK
"R"
...
y..................
" " " - - - - -. . . . . .
,.
.:.
,'.
" ..
DEVICE
LITN
"+"
~~~
...
...
10"
: '), ".
....
TALK
"K"
DEVICE
: LSTNj
">" "
TALK
"""
231324-13
Figure 16. SEND to "1", "2", ">"; "ABCD"; EOS = "D"
RECEIVE DATA
RECV
This system command is used to input data from a
device. The data is typically a string of ASCII characters.
This routine is the dual of SEND. It assumes a new
talker will be specified, a count of less than 257, and an
EOS character to terminate the input. EO! received
will also terminate the input. Figure 15 shows the flow
chart for the RECV ending conditions. My Listen Address (MLA) is sent to keep the GPIB transactions
totally regular to facilitate analysis by a GPIB logic
analyzer like the Ziatech ZT488. Otherwise, the bus
would appear to have no listener even though the 8291
will be listening.
Note that although the count may go to zero before the
transmission ends, the talker will probably be left in a
strange state and may have to be cleared by the controller. The count ending of RECV is therefore used as an
error condition in most situations.
3-115
AP-66
RECV:
Put EOS into 8291
If' 40H ~ talker ~ 5EH then
Output-to-8291 talker
Increment talker pointer
Output-to-8291 UNL, MLA
Enable-8291
Holdof'f' on end
End on EOS received
lon, reset ton
Immediate execute pon
Output-to-8292 GTSB
While not (end or count
0
(or tout2»
Input-f'rom-8291 data
Increment data buf'f'er pointer
Decrement count
(If' count = 0 then error)
Output-to-8292 TCSY
(If' Tout3 then take control async.)
Enable-8291
No holdof'f' on end
No end on EOS received
ton, reset lon
Finish handshake
Immediate execute pon
Return error-indicator
;End of' string compare character
;GPIB talk addresses are
;n@" thru n II" ASCII
;Do this f'or consistency's sake
;Everyone except us stop listening
;Stop when EOS character is
;Detected by 8291
;Listen only (no talk)
;8292 stops asserting ATN, go to standby
;wait f'or EOS or EOI or end of' count
;optionally check f'or stuck bus-tout2
;input data, one byte at a time
;Use 8085 C register as counter
;Count should not occur bef'ore end
;8292 asserts ATN take control
;If' unable to take control sync.
;Put 8291 back as needed f'or
;Controller activity and
;Clear holdof'f' due to end
;Complete holdof'f' due to end, if' any
;Needed to reset lon
ea._.
CONTROLLER
CONTROLLER
12t1.12112
Ea
"r
CTLR
TALK
·A·
LaTH
"'"
~
DEVICE
LSTN
"f·
"2"
TALK
"A"
DEVICE
,
,.
TALK
.0"
t:~J
z.
"
~
"R"
TALK
"0"
DEVICE
II.
DEVICE
LSTN
CTI.R
~.
TALK
"II"
DEVICE
,.
DEVICE
LSTN
[:zJ
TALK
'!C"
TALK
"."
"I<"
DEVICE
DEVICE
LlTN
">"
LSTN
"A"
231324-15
TALK
"""
">"
15:1
231324-14
Figure 18. XFER from" II" to "1", "2", "+ ";
EOS = ODH
Figure 17. RECV from "R"; EOS = ODH
3-116
inter
AP-66
This is accomplished through the use of the 8291's continuous acceptor handshake mode while in listen-only.
TRANSFER DATA
XFER
This system command is used to transfer data from a
talker to one or more listeners where the controller
does not participate in the transfer of the ASCII data.
This routine assumes a device list that has the ASCII
talker address as the first byte and the string (one or
more) or ASCII listener addresses following. The EOS
character or an EOI will cause the controller to take
take control synchronously and thereby terminate the
transfer.
XFER:
Output-to-829l: Talker, UNL
While 20H S listen S 3EH
Output-to-829l: Listener
. Increment listen list pointer
Enable-829l
lon, no ton
Continuous AH mode
End on EOS received
Immediate execute PON
Put EOS into 8291
Output-to-8292: GTSB
Upon end (or tout2) then
Take control synchronously
Enable-829l
Finish handshake
Not continuous AH mode
Not END on EOS received
ton
Immediate execute pon
Return
;Send talk address and unlisten
;Send listen address
;Controller is pseudo listener
;Handshake but don't capture data
;Capture EOS as well as EOI
;Initialize the 8291
;Set up EOS character
;Go to standby
;8292 waits for EOS or EOI and then
;Regains control
;Go to Ready for Data
Controller
GROUP EXECUTE TRIGGER
TRIG
This system command causes a group execute trigger
(GET) to be sent to all devices on the listener list. The
intended use is to synchronize a number of instruments.
TRIG:
Output-to-829l UNL
While 20H S listener S 3EH
Output-to-829l Listener
Increment listen list pointer
Output-to-829l GET
Return
;Everybody stop listening
;Check for valid listen address
;Address each listener
;Terminate on any non-valid character
;Issue group execute trigger
3-117
infer
AP-66
CONTROLLER
CONTROLLER
8291.8292
LSTN,
"'"
R
8291.8292
LSTN
",to
TALK
"A"
\
"
DEVICE
~]
"
"0"
OEVICE
LSTN
"2"
DEVICE
ffi
V'
DEVICE
Gf]
TALK
"""
"2" ,
DEVICE
ffi
TALK
"0"
"1"
"TALK
"R"
"-
;>
TALK
"A"
'"
TALK
"1"
R
DEVICE
LSTN
TALK
"K"
TALK
"K"
"+"
DEVICE
DEVICE
LSTN
TALK
LSTN
">"
IIA"
">"
231324-16
TALK
"""
231324-17
Figure 19. TRIG "1", "+"
Figure 20. DCLR "1", "2"
DEVICE CLEAR
DCLR < Listener list>
This system command causes a device clear (SDC) to
be sent to all devices on the listener list. Note that this
is not intended to clear the GPIB interface of the device, but should clear the device-specific logic.
DCLR:
Output-to-829l UNL
While 20H ~ listener ~ 3EH
Output-to-829l Listener
Increment listen list pointer
Output-to-829l SDC
Return
;Everybody stop listening
;Check for valid listen address
;Address each listener
;Terminate on any non-valid character
;Selective device clear
SERIAL POLL
SPOL
This system command sequentially addresses the designated devices and receives one byte of status from each.
The bytes are stored in the buffer in the same order as
the devices appear on the talker list. MLA is output for
completeness.
3-118
AP·66
SPOL:
Output-to-8291 UNL, MLA, SPE
;Unlisten, we listen, serial poll enable
;Only one byte at serial poll
;Status wanted tram each talker
;Check tor valid transter
;Address each device to talk
;One at a time
While 40H S; talker S; 5 EH
Output-to-8291 talker
Increment talker list pointer
Enable-8291
lon, reset ton
Immediate execute pan
Output-to-8292 GTSB
Wait tor data in (BI)
Output-to-8292 TCSY
Input-trom-8291 data
Increment butter pointer
Enable 8291
ton, reset lon
Immediate execute pan
Output-to-8291 SPD
;Listen only to get status
;This resets ton
;Go to standby
;Serial poll status byte into 8291
;Take control synchronously
;Actually get data tram 8291
;Reset lon
;Send serial poll disable atter all
devices polled
Return
-,-
CONTROLLER
~
",..
CTLA
".
CONTROLLER
_,1m
T.wc
-A"
LSTH
"~
El
TALK
"A"
'"
DEVICE
DEVICE
~
LSTH
"1"
,
v
"~"
LSTH
TALK
'~"
"Q"
DEVICE
"v
l" ..... ,.
rT~~~
LSTH
"2"
t
v
"K"
DEVICE
LITH
","
DEVICE
..",.
19
V
TALK
"K"
DEVICE
1\
LSTH
TALK
"A"
"2"
"-
r··"~
TALK
"+"
~
.
DEVICE
LSTH
DEVICE
LSTN
,;::"
..
231324-18
TALK
"An
231324-19
Figure 21. SPOL "Q", "R", "K", " /\"
Figure 22. PPEN "2"; IP3P2P1
= 0111B
PARALLEL POLL ENABLE
PPEN
This system command configures one or more devices to respond to Parallel Poll, assuming they implement subset
PPl. The configuration information is stored in a buffer with one byte per device in the same order as
3-119
Ap·66
devices appear on the listener list. The configuration byte has the format XXXXIP3P2Pl as defined by the IEEE
Std. P3P2Pl indicates the bit # to be used for a response and I indicates the assertion value. See Sec'. 2.9.3.3 of the
Std. for more details.
.
PPEN:
Output-to-829l UNL
While 20H !>: Listener !>: 3EH
Output-to-829l listener
Output-to-829l PPC, (PPE or data)
Increment listener list pointer
Increment buffer pointer
Return
;Universal unlisten
;Check for valid listener
;Stop old listener, address new
;Send parallel poll info
;Point to next listener
;One configuration byte per.listener
PARALLEL POLL DISABLE
PPDS
This system command disables one or more devices from responding to a Parallel Poll by issuing a Parallel Poll
Disable (PPD). It does not deconfigure the devices.
PPDS:
Output-to-829l UNL
While 20H !>: Listener !>: 3EH
Output-to-829l listener
Increment listener list pointer
Output-to-829l PPC, PPD
Return
;Universal Unlisten
;Check for valid listener
;Address listener
;Disable PP on all listeners
CONTROLLER
1291,8212
LSTN
"'"
B
CONTROLLER
8291,8292
TALK
"A"
LSTH
"'"
"
"
"
"v
"v
DEVICE
~
"'"
R
TALK
"A"
"
,/
TALK
DEVICE
LSTH
TALK
"'"
."0"
DEVICE
"0"
DEVICE
0-
)
LSTH
TALK
"2"
"A"
'"
DEVICE
REJ
V
"k"
DEVICE
"v
TALK
">"
TALk
"A"
DEVICE
"TALK
RFl
LaTH
"2"
LSTH
,,+..
TALK
"k"
DEVICE
LSTN
"""
">"
. ,,"
TALK
231324-21
231324-20
Figure 23. PPDS "1", "+", ">"
Figure 24. PPUN
3·120
inter
AP-66
PARALLEL POLL UNCONFIGURE
PPUN
This system command deconfigures the Parallel Poll response of all devices by issuing a Parallel Poll Unconfigure
message.
PPUN:
;Unconfigure all parallel poll
Output-to-8291 PPU
Return
CONDUCT A PARALLEL POLL
PPOL
This system command causes the controller to conduct
a Parallel Poll on the GPIB for approximately 12.5
JLsec (at 6 MHz). Note that a parallel poll does not use
the handshake; therefore, to ensure that the device
knows whether or not its positive response was ob-
served by the controller, the CPU should explicitly acknowledge each device by a device-dependent data
stnng. Otherwise, the response bit will still be set when
the next Parallel Poll occurs. This command returns
one byte of status.
PPOL:
Enable-8291
lon
Immediate execute pon
Output-to-8292 EXPP
Upon BI
Input-from-8291 data
Enable-8291
ton
Immediate execute pon
Return Data (status byte)
;Listen only
;This resets ton
;Execute parallel poll
;When byte is input
;Read it
;Talk only
;This resets lon
PASS CONTROL
PCTL < talker>
This system command allows the controller to relinquish active control of the GPIB to another controller.
Normally some software protocol should already have
informed the controller to expect this, and under what
conditions to return control. The 8291 must be set up
to become a normal device and the CPU must handle
all commands passed through, otherwise control cannot be returned (see Receive Control below). The controller will go idle.
perL:
If 40H ~ talker ~ 5EH then
i f talker < > MTA then
output-to-829l talker, TCT
Enable-8291
not ton, not lon
Immediate execute pon
My device address, mode 1
Undefined command pass through
(Parallel Poll Configuration)
Output-to-8292 GIDL
Return
;Cannot pass control to myself
;Take control message to talker
;Set up 8291 as normal device
;Reset ton and lon
:Put device number in Register 6
;Required to receive control
;Optional use of PP
;Put controller in idle
3-121
Ap·66
CONTROLLER
CONTROLLER
1291,8282
8291.8292
~~_~N_,__~~
~~~
OEVICE
LSTN
TALK
"I"
"0"
V
OEVICE
"
V
TALK
"R"
LSTH
"2"
DEVICE
LSTH
C
TALK
"."
">"
V
TALK
"0"
DEVICE
LSTN
TALK
"2"
"R"
DEVICE
TALK
"K"
LSTN
"
:;
':
DEVICE
LSTN
LSTN
"1"
"
:,':::
1------+1
DEVICE
~
,~,1
TALk
"A"
LSTN
"'"
231324-22
Figure 25. PPOl
eTLR
~
'.TALK
,"C" \
DEVICE
LSTN
TALK
">"
"A"
CONTROLLER
231324-23
RECEIVE CONTROL
Figure 26. PCTl "C"
RCTL
This system command is used to get control back from
the current ~ontroller-in-charge if it has passed control
to this inactive controller. Most GPIB systems do not
use more than one controller and therefore would not
need this routine.
whereby the controller-in"charge sends a data message
to the soon-to-be-active controller. This message should
give the current state of the system, why control is being passed, what to do, and when to pass control back.
Most of these issues are beyond the scope of this Ap
Note.
To make passing and receiving control a manageable
event, the system designer should specify a protocol
3-122
intJ
AP-66
RCTL:
Upon CPT
If (command=TCT) then
If TA then
Enable-8291
Disable major device number
ton
Mask off interrupts
Immediate execute pon
Output-to-8292 TCNTR
Enable-8291
Valid command
Return valid
Else
Enable-8291
Invalid command
Else
Enable-8291
Invalid command
Return invalid
;Wait for command pass through bit in 8291
;If command is take control and
;We are talker addressed
;Controller will use ton and Ion
;Talk only mode
;Take (receive) control
;Release handshake
;Not talker addr. so TCT not for us
;Not TCT, so we don't care
8291,8292
lSTN
"I"
,
SYSTEM
CONTROLLER
8291.8292
CONTROLLER
,.. ~
LSTN
CTLR
"I"
B
.
TALK
"A"
Z
a:
I
DEVICE
~
---,/
DEVICE
LSTN
TALK
LSTN
TALK
"1"
"Q"
"1"
"Q"
LSTN
TALK
"2"
"R"
LSTN
"2"
LSTN
TALK
LSTN
TALK
"."
"K"
" "
"K"
TALK
LSTN
DEVICE
"v
"""'v -
DEVICE
DEVICE
DEVICE
LSTN
"#"
~
TALK
"C"
.
DEVICE
I'..
-V
TALK
"R"
LSTN
","
DEVICE
..,,"
">"
TALK
"1\"
231324-25
Figure 28. REME
CONTROLLER
231324-24
Figure 27. RCTL
3-123
AP-66
SERVICE REQUEST
SRQD
This system command is used to detect the occurrence of a Service Request on the GPIB. One or more devices may
assert SRQ simultaneously, and the CPU would normally conduct a Serial Poll after calling this routine to determine
which devices are SRQing.
SRQD:
If SRQ then
Output-to-8292 IACK.SRQ
Return SRQ
Else return no SRQ
;Test 92 status bit
;Acknowledge it
System Controller
REMOTE ENABLE
REME
This system command asserts the Remote Enable line (REN) on the GPIB. The devices will not go remote until they
are later addressed to listen by some other system command.
RENE:
Output-to-8292 SREM
Return
;8292 asserts remote enable line
LOCAL
LOCL
This system command deasserts the REN line on the GPIB. The devices will go local immediately.
LoeL:
Output-to-8292 SLOC
Return
;8292 stops asserting remote enable
3-124
intJ
AP-66
SYSTEM
CONTROLLER
SYSTEM
CONTROLLER
8291.8292
LSTN
"'"
R
TALK
LITH
"A"
"I"
I~
•
TALK
"."
"!!.
DEVICE
DEVICE
LSTH
"1"
TALK
"0"
LSTN
TALK
"A"
LSTH
TALK
"2"
"A"
TALK
LSTN
UK"
"+"
TALK
LSTN
DEVICE
DEVICE
LSTH
"2"
DEVICE
DEVICE
LSTN
"."
DEVICE
DEVICE
LSTH
">"
TALK
"0"
"'"
",.."
">"
TALK
",.."
231324-27
231324-26
Figure 30. IFCL
Figure 29. LOCL
INTERFACE CLEARI ABORT
IFCL
This system command asserts the GPIB's Interface
Clear (IFC) line for at least 100 microseconds. This
causes all interface logic in all devices to go to a known
state. Note that the device itself mayor may not be
reset, too. Most instruments do totally reset upon IFC.
Soine devices may require a DCLR as well as an IFCL
to be completely reset. Th~ (system) controller becomes
Controller-in-Charge.
IFCL:
Output-to-8292 ABORT
Return
;8292 asserts Interface Clear
;For 100 microseconds
INTERRUPTS AND DMA
CONSIDERATIONS
The previous sections have discussed in detail how to
use the 8291, 8292, 8293 chip set as a GPIB controlle~
with the software operating in a polling mode and using
programmed transfer of the data. This is the simplest
mode of use, but it ties up the microprocessor for the
duration of a GPIB transaction. If system design constraints do not allow this, then either Interrupts and/ot
DMA may be used :to free up processor cycles.
The 8291 and 8292 provide sufficient interrupts that
one may return to do other work while waiting for such
things as 8292 Task Completion, 8291 'Next Byte In,
8291 Last Byte Out, 8292 Service Request In, etc. The
only difficulty lies in integrating these various interrupt
sources and their matching routines into the overall
system's interrupt structure. This is highly situationspecific and is beyond the scope of this Ap Note.
The strategy to follow is to replace each .of the WAIT
routines. (see Appendix A) with a return to· the main
code, and. provide for the corresponding interrupt to
bring the control back to the next section .of GPIB
3-125
Ap·66
MAl!" CODE
INTERRUPT CODE
OPIB SUBROUTINE
USER:
SEND:
~
__~____~~______________~(WAITO)
~INT:
~
________
O~O?
(WAIT 0)
~INT: _ _ _ _- - - - - - - ........ =
___
~
--...
OPIBBO?-
~
OPIBBO?-
===
(WAIT 0)
_--
~INT:==
..
(WAIT T)
~ INT: OPIB B O : " - - - - - - - - = = ..
OPIB TCI?
-
ETC.
231324-28
Figure 31. GPIB Interrupt and ~o·Routlne Flow of Control
code. For example WAITO (Wait for Byte Out of
8~91) would be replaced by having the BO interrupt
enabled and storing the (return) address of the next
instruction in a known place. This co-routine structure
will then be activated by a BO interrupt. Figure 31
shows an example of the flow of control.
DMA is also useful in relieving the processor if the
average length of a data buffer is long enough to over·
come the extra time used to set up a DMA chip. This
decision will also be a function of a data rate of the
instrument. The best strategy i~ to use the DMA to
handle only the data buffer transfers on SEND and
RECV an4 to do all the addressing and control just lIS
shown in the driver descriptions.
be found on the GPIB. The Ziatech ZT488 GPIB analyzer is used to single step the bus to facilitate debugging the system. It also serves as a training/familiarization aid for newcomers to the bus.
This example will set up the function generator to output a specific waveform, frequency and amplitUde. It
will then tell the counter to Illeasure the frequency and
Request Service (SRQ) when cOmplete. The program
will then read in the data. The assembled source code
will be found at the end of Appendix A.
ZT14881'.
CONTROLLER
Another major reason for using a DMA chip is to increase the data rate and therefore increase the overall
transaction rate. In this case the limiting factor becomes the time used to do the addressing and controi'of
the GPIB using software like that in Appendix A. The
data transmission time becomes insignificant at DMA
speeds I,Inles~ extremely long buffers are used.
LSTN
·r
TALK
"A"
CT\.R
HP 532....
COUNTER
"'"
Refc;r tc;! Figure 11 for a typical D~A and interrupt
based design using the 8291, 8292, 8293. A system like
this ~an achieve a 2S0K byte transfer rate while under
DMA control.
'
, '"
HP_
L8TN
"I"
3~126
TALK
"Roo
ZT_
"
This s~tiori will present the code required to 'operate II
tyPical GPIB ittsirument set up as shown in Figure 32.
Thc·HP5328A universal 'count~r and the HP3325 function generator are typical of many GPIB'devices; however, there are a wide variety of software protocols to
'"Q" ,
'
FUNCTION
GENERATOR
"
APPLICATION EXAMPLE
TALK
LSTN
GPII ANAtYZER
"
"
231324-29
Figure 32. GPIB Example Configuration
inter
SEND
LSTN: "2", COUNT:
;SETS UP FUNCTION
;COUNT EQUAL TO #
;EOS CHARACTER IS
AP-66
15, EOS: ODH, DATA: ".FU1FR37KHAM2VO (CR)"
GEN. TO 37 KHZ SINE, 2 VOLTS PP
CHAR IN BUFFER
(CR)
ODH
CARRIAGE
=
=
SEND
LSTN: "1", COUNT: 6, EOS: "T" DATA: "PR4G7T"
;SETS UP COUNTER FOR P:INITIALIZE, F4: FREQ CHAN A
G7:0.1 HZ RESOLUTION, T:TRIGGER AND SRQ
;COUNT IS EQUAL TO # CHAR
WAIT FOR SRQ
SPOL TALK: "Q", DATA: STATUS 1
;CLEARS THE SRO_IN THIS EXAMPLE ONLY FREQ CTR ASSERTS SRQ
RECV TALK: "Q", COUNT: 17, EOS: OAH,
DATA:"+
37000.0E+O" (CR) (LF)
;GETS 17 BYTES OF DATA FROM COUNTER
;COUNT IS EXACT BUFFER LENGTH
;DATA SHOWN IS TPYICAL HP5328A READING THAT WOULD BE RECEIVED
CONCLUSION
This Application Note has shown a structured way to
view the IEEE 488 bus and has given typical code sequences to make the Intel 8291, 8292, and 8293's behave as a controller of the GPIB. There are other ways
to use the chip set, but whatever solution is chosen, it
must be integrated into the overall system software.
The ultimate reference for GPIB questions is the IEEE
Std 488 -1978 which is available from IEEE, 345 East
47th St., New York, NY, 10017. The ultimate reference
for the 8292 is the source listing for it (remember it's a
pre-programmed UPI-41A) which is available from INSITE, Intel Corp., 3065 Bowers Ave., Santa Clara, CA
95051.
3-127
AP-66
, APPENDIX ,A
ISIS-II 8980/8085 MACHO ASSEMBLER, V3.0
G PI R CON'rHOLLER SUBROU'rINES
LOC
OHJ
LINE
SOUI~CE
ST~TEMEN'r
1 $'rI'fLE ('GPIR CONTROLLER SUBRQU'UNES ')
2
3
GPIB CONTROLLER SUBROUTINES
4
5
~
for Intel 8291, 8292 on ZT 748"/18
8ert Forbes, Ziatech Corporation
7
24H~ Broad Street
San Luis Ohispo, CA, USA t))4Al
8
9
1000
19
11
12
13
14
15
H
17
18
19
20
21
22
General Definitions & Equates
8291 Control Values
;
PRT91
;
DIN
OQUT
23 ;
0A61
0061
0092
0001
9910
0980
0962
0064
0080
0049
30C9
0091
9064
9920
0992
0001
24 INTI
25 IN'f'U'
26
27
28
29
30
31
BOM,
81M
ENDMK
CPT
,
,
9023
; ,:or ZT748A/18 w/8085
;8291 Base Port
Reg ,,, Data in & Data out
EOU
PRT91+9 : 91 Data in reg
PRT.91+(~,
EQU
Reg
EQU
EQU'
EOU
EOU
EQU
EQU
;91 Data out ceq
I 1 Interrupt 1 Constants
PRT91+1
PRT91+1
02
01
19H
; JNT Req 1
; IN'r Mask Reg. 1
; 91 80 I~'rRP Mask
; 91 81 INTRP M.sk
;91 END INTRP M.sk
R~H
:91 command pass thru int ,,?it
Req 12 Interrupt 2
32 INT2
33
EQU
34
35 ADRMD
n 'rON
37 LON
38 TLON
39 MODEl
40
41
42 ADHST
43 EOIST
44 TA
45 LA
46
47
48 AUXMD
49 CLKRT
Reg t4 A.ddress "'ode Constants
80U
PRT91+4 ; 91 adr'tress mode reg ister •
EQU
89H
;91 talk only morle & not listen only
EOU
4~H
;91 listen only & not ton
EQU
Be0H
;91 talk & listen only
EQU
PH
;mode 1 addressing for device
,
,
0965
ORG
EQU
Reg 14
EQU
EOU
EQU
EOU
PRT9l+2
(Read)
Adoress Status Reqister
PRT91+4 ; reg '4
20H
2
1
; listener active
Reg IS
(Write) AuxilIary Mode Register
EQU
EOU
PRT91+5 ;91 Rluxillary mode reqister
23H
; 91 3 Mhz clock input
231324-30
3-128
inter
0~03
0~06
0080
0001
0002
0003
0004
0088
000F
0807
001'.0
~001
50 FNHSK
51 SDEOI
52 AXRA
006~
0060
00E0
0068
0068
aBAg
0068
0an
9982
0004
0068
3068
0069
56
57
58
59
60
~1
~4
00~8
0968
0~68
IH,G8
0068
80F0
00F1
00F2
00F3
00F4
90F5
00F6
00F7
00F8
00F9
00FA
00FC
00FD
00FE
Reg IS
EQU
PRT91+S
Reg 16
EOU
EOU
EOU
Address ~/l reg. constants
PRT9l+6
60H
;Disable major talker & listener
0E0H
iD! sable minor talker & listener
Reg t7
EQU
EOS
PRT91+7
8292
CONTROL VALUES
PRT92
EQU
PRT9l+8 ; 8292 Base Port ,
INTMR
EQU
EQU
PRT92+11J ,92 INTRP
ERRM
TOUTI
TOUT2
TOUT3
EVREG
TOREG
EOU
EQU
EQU
EQU
EQU
EQU
PRT92+0 ,92
n
,92
,Q2
02
04
,92
PRT92+ft ,92
PRT92+ft ,92
CM092
EQU
PRT92+l ,92 Command Req i ster
INTST
EVaIT
IBFBT
SRQBT
EQU
EQU
EQU
EQU
PRT92+l ,9~ Interrupt Status Reg
10A
;Event Counter Bit
02
; Input Ruffer Full Bi t
2~H
;Seq bi t
ERF!.G
CLRST
BUSST
EVCST
TOST
PRT92+0
PRT92+0
PRT92+0
PRT92+0
PRT92+8
,92
,92
,92
,92
,
,,,
EQU
EQU
EQU
EQU
EQU
8292
OPERATION COMMANDS
SPCNI
GIDL
RSET
RSTI
GSEC
EXPP
GTSB
SLOC
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
8F0H
8F1.H
ftF2H
0F3H
0F4H
0F5H
0F6H
0F7H
0F8H
0F9H
0FAH
0FCH
0FDH
EDEOS
EOIS
VSC,~O
NVCMD
AXRB
,,
,,
65
66
67 ADR01
~8 DTDLI
59 DTDL2
70
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
0069
0018
8002
0020
CPTRG
54 HOEND
55 CAHCY
71
0067
0FH
97H
0A0H
01H
53 HOHSK
62
63
0365
CPTEN
EQU
EOU
EQIJ
EQU
EQU
EOU
EQU
EQU
EQU
EOU
EQU
EQU
93
94
95
95
97
98
99
!B0
101
102
103
104
105
106
107
lA8
189
110
111
112
113
114
115
116
117
,
,
,,,
,
EQSR
,
,INTM
,
,
,
SREM
ABORT
TeNTR
118 TCASY
119 TCSY
120 STCNI
121
122
,,
EQU
EQU
EQU
EQU
EQU
EQU
03
0~
8~H
1
?
3
4
8
,91
,91
,91
,91
,91
,91
,91
flninsh handshake command
senli EOI wi th next hyte
aux. req A pattern
hold off h"'nrlshake on all bytes
hoI" off handshake on ent1
continuous AH cycling
end on EOS r ece i ved
; 91 output EnI on EOS sent
,91 val id command pass throuqh
,91 lnval id command pass through
;Aux. r e 9· 8 pattern
;commanrl pass thru enable
(RelJd)
"A8H
BFEH
Character Reqister
r~ask
(CS7)
Reg
;TCI
Er ror Mask Reg
Time Out for Pass Control
'time Out for Standby
Time Out for Take Control Sync
Event Counter Pseudo Req
Time Out Pseudo Reg
Error Flaq Pseucto Reg
Controller Status Pseudo Reg
GPIB (Bus) Status Pseudo Reg
Event Counter Status Pseudo Req
;92 Time Out Status Pseudo Reg
;Stop Counter Interrupts
;Go to idle
;Reset
;Reset Interrupts
;Goto standby, enable countLng
;Execute parallel poll
;Goto standby
;Set ,local mode
;Set interface to remote
;Abort all operation, clear inter face
:Take control (Receive control)
;Take control asyncronously
;Take control syncronousl y
;Start counter interru!)ts
231324-31
3-129
intJ
AP~66
123
124 ,
00E1
0SE2
0BE3
09E4
00E5
08E~
BaE7
00E9
SBEA
\!Bsa
m~OUT
8292
UTILITY COMMA'IDS
BOU
EOU
EOU
EOU
EOU
0ElK
BE2H
BE3H
SE4H
BE5H
127
128
129
130
131
132
133
134
135
136
137
138
139
14S
WEVC
REVC
RERF
RINM
RCST
RSST
RTOUT
RERM
lACK
,
142
143
144
145
146
l47
l48
149
159
151
152
153
PRTF
TCIF
SPIF
08FF
ISFF
80F
EOU
EOU
BOU
EOU
EOU
EOU
,
,
GPIB
MDA
EQU
EOU
EOU
EOU
BOll
EQU
EOU
EOU
EOU
EOU
EQU
EQU
EQU
,
EOU
,Write to timeout req
,Wr 1te to event counter
,Read event counter status
, Read error flag reg
; Read interrupt mask reg
,Read controller status req
0E6H
EOU
EOU
0E7H
;Read OPIB Bus,. status req
EOU
BE9H
BEAH
;Read error mask reg
EOU
0BH
;Interrupt Acknowledqe
;Read timeout status req
PORT F BIT ASSIGNMENTS
141 ,
006F
0002
0094
0008
0010
~081
0901
0841
0921
0e3F
3098
0904
9018
0919
8005
0870
0060
8915
0009
MTA
MLA
1~4 UNL
155 GET
15~
SOC
157
158
159
H9
161
SPE
SPD
PPC
PPD
PPE
PPU
'fCT
1~2
1~3
164
H5 ,
PRT91+9FH
,ZT748A port 6F for interrupts
B2R
;Task complete interrupt
34H
,Special interrupt
08H
,92 Output (to CPU) Buffer full
10H
,92 Input (from CPU) Buffer empty
91H
,91 Int line (BO in this cos.)
~ESSAGES
(COMMANDS)
;My device address is 1
MDA+4RH ;My talk address is 1 ("AM)
1
MDA+20H
3FH
08
04H
18H
19H
95
70H
6BH
ISH
09
;My listen address is 1 (MrH)
;Universal un! isten
,Group Execute Triqqer
;Device Clear
;Serial poll enable
;Serial poll disable
;Parallel poll confiqure
;Parallel poll. disable
;Parallel poll disahle
;Parallel poll unconfiqured
;~rake control (pass control)
MACRO DEFINI'rIONS
1~6
1~7
168 ;
169 SETF
170
171
g~ ~AITO
174
175 WAITL:
176
177
178
179
IB~ ,
181 WAITI
182
183 WAIn:
184
185
18S
187
188 ,
189 WAITX
19B
191 WAITL:
192
193
194
195
MACRO
ORA
;Sets flags on A reqister
A
BND~
MACRO
LOCAL
Iii
ANI
JZ
;Wait for last 91 byte to be done
WAITL
I~Tl
BOM
WAITL
ENDM
MACRO
LOCAL
IN
MOV
ANI
JZ
WAITL
INTI
B,A
BIM
WAITL
ENDM
MACRO
LOCAL
IN
ANI
JNZ
;Get Inti status
;Check for bY,te out
; If not, try again
;until it is
;Wait for 91 byte to be input
;Get INTI status
,Save status in B
;Check for byte in
;If not, just try again
,until it Is
;Wait for 92 1 s Tel to 90 false
WAITL
PRTF
TCIF
WAITL
ENDM
231324-32
3-130
intJ
AP-66
196 WAIT'r
197
198 WAITI.:
199
200
201
~ACRO
[.OCA[.
IN
ANI
JZ
ENOM
WAITL
PRTF
TCIF
WAITL
MACRO
LOWE~,
;Get task complete int,etc.
;filllask it
,Walt for tlilsk to be complf'te
202
203 RANGE
UPPER, LABEL
204
;Checks for value in ranqe
;hranches to lahel if not
;In ranqe. Falls throuqh if
,lower (= ( (H) (I.) ) (= upper.
205
206
207
208
;Get next byte.
209
210
211
212
213
214
215
216 C[.RA
217
,
218
219
220
221
222
223
224
225
22"
227
1002
D3~8
1004 3E"a
1006 0361;
U~B 3EE0
103A 0361;
10~C ]g80
11"08 D3<4
1010 3~23
1~12 03"5
1014 AF
1015 0361
iB17 03"2
1019 031;5
1018 C9
A,M
LOWER
LABEL
UPPER+!
LABEL
~ACRO
XRA.
ENOM
A
;A XOR A .. 9
All of the followin!) routines have these common
assumptions about the state of the 8291 & q292 upon entry
to the routine and will exit the routinf' in an inentical state.
8291 :
BO is or has heen set,
All interrupts are maskeri off
'rON merle, not LA
228
No holdoffs in effect or enabled
229
230
231
232
233
234
235
23"
237
239
239
240
241
242
243
244
No holrtoffs waitinq for finish commC'lnri
8292:
8BBS:
ATN asserted (active cOl1troller)
note: RC'rL is an exception--- it expects
to not be active controller
Any previous task is completp & 92 is
ready to receive next command.
Pointer reqisters (DE,HL) enti one
heyond last leqal entry
•••••••• *********. ** ••• *. ft* ** •• *.*.*. 'II • • * •• 'II • • • • • 'II • • 'II • •
INITIALIZATION IWU'fINE
INPu'rs:
OUTPUTS:
CA['LS:
OES1'ROYS:
24~
1000 )gA0
MOV
CPI
JM
CPI
JP
ENeM
246
247
248
249
250
251
252
253
NIT:
None
None
None
A,l-'
A,DTDLI
o~'r
ADR01
254
.VI
ou'r
WI
A, 'rON
;'falk /)nl y morle
255
OU'f
25<;
.VI
OU'f
ADFlMO
A,CLJ(RT
,3 "HZ for rlelay timer
757
258
259.
A,J)TDL2
:Disahle minor talker/listener
ADR~l
AUX.D
CLI:{A
260
21;1
262
263
A,IN'rM
I""'rMR
, F1nahle Tel
,Output to 92's intr. mask req
;J)lsa~le major talker/listener
MVI
ou'r
.VI
,
X"'
ou'r
ou'r
A
OUT
AUXMJ)
IN'l'l
IN'f2
,A XOR A =0
;Disahle all 91 mi!sk hi ts
;Immertiate execute PO"
RE'r
264
2"5 I •• •••••• * ••• * •••• *.*** ••••• ** **** *** *.*-* ******* ••• ,. fr
26<;
2~7
268
SEND ROU'rINE
2~9
231324-33
3·131
intJ
191C 3E41
10lE 03'0
1020
1922
1924
1927
1029
1028
102C
102B
leU
1031
1034
1.3~
1039
1938
1030
1040
1941
1043
1044
0661
£602
CII20U
3B3F
0360
78
03'7
7F,
FE20
FA4710
,'E3F
F24710
DB~l
E602
CA39lA
7£
D3~0
23
C32EI0
1047 D861
1049 E602
1046 C1I4710
104£
1950
1052
1054
3EF6
D369
3E88
D365
105' DB6F
1058 E602
10511 C25'U
105D DBSF
le5~' E602
1061 CI\SD10
1064 79
1965
106'
1069
105A
18SC
87
CII8S10
V.
D3'.
sA
AP-66
27.
271
272
271
274
275
276
277
278
279
28.
281
2B2 END:
283
284
2R5+?UJ301 :
2B6+
2B7+
28B
289
290
291
292
293 S£~Dl:
294+
295+
29'+
297+
298+
299+
309+
381+
302+
303+
304
305+??0~02 :
306+
307+
308
309
31.
311
312
313 SEND2,
314+??0933:
315+
3H+
317
318
319
320
321
322
323
324+??.04,
325+
326+
327
328+119805:
329+
330.
331
332 ;
333 ;
334
335
336+
337
338 SEND3,
339
340
341
342
INPU'rs,
HL listener l~st pointer
DE data buffer pointer
C
OU'rPUTS:
CALLS,
DESTROYS:
MVI
ou'r
count-- 9 wi 11 cause no tiata to be sent
b F.OS ch"racter-- softwar.e detected
none
none
A, C, DE, HL,
A,MTA
OOUT
; Seni! ""fA to turn off any
;previous talker
INTI
;Get tntl status
;Check fOt" byte out
;If not, try aqain
WAITO
IN
ANI
BO~
JZ
??IHHH
~VI
ou'r
A,U"4L
OOUT
A,S
EOSR
RANGE
20H,3EH,SEND2
OUT
MOV
F
;Sen" universal unl lsten
Ito stop previous listeners
;Get EOS character
;Output it to B2ql
;while 1 istener .....
;Check next listen address
;Checks for value in ranqe
; hrilnches tl) label if not
; in range. Falls throWlh if
flower (= ( (H) (Ll ) <- upper.
;Get next byte.
MOV
CPI
A,M
CPI
28H
SEND2
3EA+l
JP
SEND?
JM
I~AITO
IN
ANI
IN'U
ROM
JZ
na002
MOV
A,M
ou'r
DOU'r
INX
H
SENDl
J~P
WAITO
IN
A~I
JZ
INT!
BOM
??0003
;Wait for previous listener sent
;Get tntI status
;Check for byte out
:If not, try again
:Get this listener
;Output to GPIB
;Increl'tent listener list pointer
:Loop till non-valid listener
:Enable' 91 en"'1n., conditions
;Wait for'lstn addr accepted
;Get IntI status
; Check for byte out
:If not, try aqain
;WAITO required for early versions
;of 8292 to avoid GTC;S before OAC
MVI
OUT
MVI
OUT
WAITX
IN
ANI
JNZ
WAITT
IN
ANI
JZ
A,GTSB
CMD92
;Goto stan-ihy
;
A, AXRA+EOIS
,Sfmli Eor wit'"' EOS character
AUX~D
;Wait for Tel to qo false
PRTF
TCIF
??91~~4
PRTF
TClr
110805
delete next
~OV
A,C
SETF
ORII
A
JZ
WIIX
OUT
C~P
;Wait for Tel on GTSa
;Get tasle complete int,etc.
;Mask it
~Wait for task to be complete
instructions to make count of 0=25fi
;Get count
;Set flaqs
SEND~
J)
DOU'r
B
: If count=0, send no data
;Get data byte
;Output to GPIB
;'rest EO~
this is faster
land uses less code than usinq
;91 1 5 END or EOI bits
4
...
231324-34
3-132
inter
l~'D CA7~'19
1070
1972
1974
1977
1978
1079
197C
107F
U80
DB~l
AP·66
343
344 SEND":
Ef;~2
34~+
CA791B
13
eD
347+
348
349
350
HI
352 SF-ND5:
353
354
C2~910
C38SH
13
UD
JZ
IN
'ANI
.JZ
INX
DCR
J'Z
J~P
INX
OCR
;Get IntI statu9
;Cfleck for byte out
;If n...,t, try aqilin
; IncreJ1'lent buf fer pointer
;Decrement count
, If count ( > 0, qo send
; Else qo finish
; fo r consi steney
80.
710U06
D
C
SEND3
SEND6
D
C
10BB 3E~'D
108A D3'9
lA8C 3EB0
108E 0365
359 SENM:
360
361
362
363
3t:;4+??IHHJ8:
ou'r
CMD92
MVI
OUT
WAITX
IN
A,AXRA
3~5+
A~I
TCIF
3'~+
JNZ
',ojAIT'f
IN
ANI
JZ
RET
??0IHJ8
INn
BO",
1?0007
3<;~
3~7
DB6F
E602
CA9710
C9
368+??0I!HJ9:
369+
370+
371
372
373
374
375
376
377
378
379
H9
381
382
383
384
385
"'VI
A,TCSY
AUX'~D
10B0
1082
1084
19B7
10B9
D861
£'02
CAB01B
3E3F
DH0
10BS 0861
10BO E692
10BF CABB10
;'fhis ensureS that the stltnliard entry
;Get Intl status
,Check for byte out
ilf not, try a1ain
;assumptions for the next su~routine are met
;Take control syncronously
:Reset send Ear on EOS
;Wait for Tcr false
PRTF
PRT~'
TCIF
??0AA9
;Wait for Tel
:Get task complete int,etce
:Mask it
,Wait for task to
complete
"e
HL talker pointer
INPU'r:
D~
OU'rpUT:
CALLS:
DESTROYS:
RETURNS:
riata buffer pointer
count (max buffer size) B impli@s 21l1l
EOS character
Fills huffer pointerl at by nE
None
C
B
A, BC, DE,
HL, F
Azil no rmal
term inati oo--E05 -ietE'cted
A=4R Error--- count overrUn
A(4R or A)SEH f.:rror--- ba('l talk adr'lress
"'av
OU'f
R~NGE
A,B
;Get Ens character
EOSR
;Output it to 91
40H,SEH,HECV6
;Checks for value in range
;branches to label if not
lin ranqe. Falls throuqh if
39~+
10AD D360
10AF 23
,
RECEIVE ROUTINE
3Rt]
7£
FE40
FA3911
F£5F
F23911
qo finish
*************************************** •• ************************--*
387
388
389
390 ECV:
391
392
393+
394+
395+
10A2
10A3
10A5
10A8
10M
eos
WAI'ro
355+??0"97 :
IN
356+
ANI
357+
.JZ
1097
1099
109B
109E
,
,If char
INTI
1081 OB61
1983 E602
lABS CAB110
1U90 DBH
1092 £'92
1994 C2931B
=
SeN!)<;
WArrD
345+??""~":
397+
398+
399+
400+
491+
402+
403
,lower (- ( (H) (L) )
;Get next byte.
MOV
CPI
A,M
JM
CPI
JP
RECV6
(=
upper.
49H
5EH+l
RECVC,
;valid if
40H<~
talk 9 go back' wait
;Else set error indicator
;And qo take control
INX
o
OCR
/lVI
C
B,0
:Retreive status
;Cheek for 81
:If 81 then qd input data
;Else wait for last BI
; In loop
:Get data byte
;Store it in buffer
:Incr data pointer
;Deerement count, but i1nore it
,Set normal completion indicators
MVI
OUT
A, TCSY
:Take control synchronously
CM092
ANI
JNZ
IN
JMP
IN
STAX
WAITX
INTI
RECV3
DIN
D
,Wait for TCI=0
IN
PRTF
I'.NI
TCIF
??0U5
JNZ
(7 toy)
471
WAITT
;'..,ait for Tel ... l
472+??00H. IN
PRTF
:Get task complete int,etc.
473+
ANI
TCIF
,Mask it
474+
JZ
??39H)
;Wait for task to be complete
475
475 ; if timeout
is to be checked, the above WAITT should
477 ,be o~itted & the appropriate code to look for Tel or
478 ITOU't3 inse['ted, here.
4H
480
~VI
A, AXR.'
;Pattern to clear 91 E~D conditions
481
ou'r
AUXMD
;
482
MVI
A,TON
:This bit pattern alrea"y in "A"
483
OUT
ADRiI4D
:Output TON
484
MVI
A,FNHSK' :Finish handshake
485
OUT
AUXMO
,
486
487+
CLRA
XRA
488
ou'r
489
490 RECVS.
MOV
RET
A
AUXMO
A,B
:A XOR A =21
; l1'trned iate execute POIIJ-Reset
:Get completion character
LO~
231324-36
3-134
inter
AP-66
491 ,
492 I
* * .. It ...... * It It """.It It It .... *.It .1t ...... It ...................... * *.It" It. * * *••• It • • • • *
493 ,
XFER
494 ,
495 ,
49~ ,INPU'fS:
497
498 ;OU'fPUTS:
499 ,CALLS:
508 ,DESTROYS:
501 ,RETURNS:
502
5~3
,
,
504 ,NOTE:
50S
506
507
113A
1138
1130
1140
1142
1145
1147
7E
FE40
FABB11
FE5F
F28B11
0350
23
1148
114A
114C
114F
1151
0861
£602
CA4B11
)E3F
0360
1153
1154
1156
1159
115B
7E
FE20
FA6Cll
FE3F
F26C11
11SE
1160
1162
1165
1166
1168
1169
0861
E602
CA5Ell
7E
0360
23
C35311
116C
116E
1178
1173
1175
1177
1179
OB61
E602
CA6C11
3E87
0365
3E48
0364
117B
117C
117£
117F
1181
1183
AF
0365
78
0367
3EF6
0369
~OU'rINE
HL nevice 11st pointer
B EOS character
None
None
A, HL, F
A-a
normal, A ( )
{!J
bat1 talker
XFER will not work 1 £ the talker
uses EOI to terminate the transfer.
Intel will be making hardware
modifications to tho 8291 that will
~08
correct this prohlem. Until that time,
509 ,
5U ,
511 XFER,
!H2+
513+
514+
515+
516+
517+
518+
only EO'; may be used without possible
loss of the last data byte transfered.
4AH, SEH, XFER4
,Check for val id talker
,Cheeks for value in ranqe
;branches to label if not
,In ranqe. Falls throu'lh if
:lower (a ( (H) (L) ) ( . upper.
;Get next byte.
RANGE
MOV
A,M
CPI
4RH
JM
XFER4
5EH+l
XFER4
DOUT
~19+
520+
521+
522
523
524
525+710917:
526+
527+
528
529
530 XFER1:
531+
532+
533+
534+
535+
536+
537+
538+
539+
548+
CPI
,TP
OUT
INX
I.vAI'rO
IN
ANI
JZ
~VI
H
;Send it to GPIB
lIner pointer
INTl
BOM
?7M17
A,UNL
;Get IntI status
;Check for byte out
;If not, try again
;Universal unllsten
OUT
RANGE
OOUT
MOV
A,M
2BH, 3EH,XFE~2
;Check for valid listener
;Checks for value in ranqe
; branches to label 1 f not
,In range. Falls through If
;lower
(a
(
CH) (L)
) (- upoer.
;Get next byte.
CPI
20H
JM
XFER2
3EH+l
XFER2
CPI
JP
WAITO
541
542+170018:
IN
ANI
543+
544+
JZ
545
~OV
546
OU'f
547
INX
548
JMP
549 XFER2: WAITO
559+718019:
IN
ANI
551+
552+
JZ
553
"IVI
554
OUT
555
"'VI
556
OUT
557
CLRA
558+
XRA
559
OU'f
560
~OV
INT1
BOM
710018
A,M
DOUT
;Get IntI status
;Check for byte out
IIf not, try again
;Get 1 i stener
XFER1
;Iner pointer
;Loop until non-valId listener
INTI
;Get IntI status
BOM
,Check for byte out
,If not, try again
; tnv! sible han<1shake
;Continuous "H mode
;Listen only
H
?1"019
A., A.XRA+CAHCY+EOEOS
AUX~D
AiLON
ADR~D
A
AUX~O
A,B
EOSR
5~1
ou'r
562
563
MVI
A.,GTSB
OU'f
CMD92
;A XOR A .B
I Immed. XEQ PON
;Get EOS
,Output I t to ql
;Go to standby
231324-37
3·135
inter
AP-66
554
11B~
OB~F
11B7 E~A2
11B9 C28511
11BC
118E
1190
1193
1195
1197
119A
119C
DB6F
E6A2
CA8C11
0861
E~10
CM311
3EFO
03~9
119E OB5F
11M E6n
111'.2 C29El1
111'.5
111'.7
111'.9
111'.C
111'.E
118A
1182
1184
11B6
nB6F
E602
C1'.I'.511
3E80
0365
3E03
0365
3E80
03~4
11B8 AF
11B9 0365
11BB C9
5~5+??A02"':
556+
567+
568
5';9+119321 :
570+
571+
572 XFER3:
573
574
575
57.;
517
578+110"22:
579+
580+
581
582+710023:
583+
584+
WAITX
IN
ANI
JNZ
WAITT
IN
ANI
JZ
IN
ANI
.JZ
MVI
otJ'r
PRTF
TCIF
??""2f1
;Wait for TCS
PRTF
TCIF
170021
INTI
ENDMK
XFER3
;Get task cnmplete int,etc.
;Mask it
;Wait for task to be complete
;Get END status ">1 t
A,TCSY
;'rake control syncronously
;Mask it
C~D92
WAI'rx
I~
ANI
JNZ
,WAITT
IN
ANI
JZ
PRTF
TCIF
710322
PRTF
Tcn'
??APl23
;Wait for TCI
;Get task complete int,etc.
;Mask it
;Wait for task to be complete
;Not cont Ali 0 rENO on EOS
5~5
"VI
A,AXRA
586
ou'r
AUXNlD
587
MVI
A, FNHSK ;Finish handshake
588
ou'r
AUX~O
589
~VI
A,TON
;Talk only
590
ou'r
ADRMn
591
CLRA
;Normal return A=A
592+
XRI'.
;A XOR A =9
593
OUT
I Immed iate XEO PON
594 XFr<4:
RET
595 ;
596 ; ***************** *******.*********** ***************
597
598
599
T~ IGGER ROUTINE
600
601 ;
602 ;INPu'rs:
HL listener list pointer
603 ;OUTPU'fS:
None
604 ;CALLS:
None
605 ; DESTROYS:
A, HL, F
~06
11BC 3E3F
llBE 03~0
607 ;
60B TRIG:
609
610 TRIGl:
511+
rH2+
MVI
ou'r
RANGE
~13+
614+
615+
1,lC0
11Cl
11C3
11CG
11C8
7E
FE20
FA0911
FE3F
F20911
l1ca
11CO
11CF
1102
1103
1105
1106
0861
E602
CACS11
7E
0360
23
C3CUI
~H+
617+
618+
619+
620+
621
~22+??0A24:
623+
624+
625
~26
627
628
~29
1109
110B
1100
11E0
11E2
OB61
E002
CA0911
3E08
0360
11E4 OB,l
11E6 E602
TRIG2:
630+1?0A25:
631+
632+
633
634
635
63 6+??0A26:
637+
MOV
CPI
JM
CPI
JP
WI'.ITO
IN
A"I
JZ
~OV
A,UNL
2~H
TRIG2
3EH+l
TRIG2
IN'rl
BOM
110324
A,M
OOUT
ou'r
INX
H
JMP
TRIGI
WAITO
IN
ANI
.JZ
,WI
OUT
;
:Send universal unlisten
20a,3EH,TRIG2
;Check for val in listen
;Checks for value in ranqe
;branches to label if not
: in range. Falls through if
; lower (== ( (H) (l) ) (- upper.
;Get next byte.
A,M
DOUT
IN'fl
ROM
710925
A,GET
DOUT
;wait for U"'IL to finish
;Get Intl status
;Check for byte out
;If not, try a'lain
:Get listener
;Sen~ Listener to GPIB
;Incr. pointer
;Loop until non-valid char
;wait fr')r last listen to finish
;Get tnt I st~tus
;Check for byte out
;If not, try aqain
;Sen,; qroup execute trifJqer
Ito all addresser! li1l>teners
\~AITO
IN
ANI
INTI
80M
;Get IntI status
;Check for byte out
3-136
231324-38
inter
11E8 CAE411
11EB C9
AP-66
638+
639
641 ,
641 ;
~!~
644
645
646
647
648
649
~50
11EC 3E3F
11EE 03~0
11F0 7E
UFl FE20
11F3 FA0912
11F6 FE3F
11F8 F20912
11FB
liFO
11FF
1202
1203
1205
1206
0861
E602
CAFBll
7E
0360
23
C3F011
1209
120B
1200
1210
1212
08~1
E602
CA0912
3E04
0360
1214
1216
1218
121B
D861
E602
CA1412
C9
121C 3E3F
121E 0360
1220
1222
1224
1227
1229
OB61
E602
CA2012
3E21
0360
1228
1220
122F
1232
1234
OB61
E602
CA2B12
3E18
0360
1236 OB61
JZ
;If not,
t~y
again
.-.* ....-..... _.. _._.-.-._. _____ .*._._ .. _.
;OEVICE CLEAR ROU'rINE
,
,
,INPUTS:
,OUTPUT:
,CALLS:
,DESTROYS:
,
DCLR:
MVI
OUT
DCLRl:
RANGE
651
652
653
654
655+
656+
657+
658+
659+
669+
661+
662+
~63+
664+
665
666+110027:
667+
668+
669
670
671
672
178826
RET
HL listener pointer
None
None
A, HL, F
... ,UNL
DQUT
20H, 3EH, OCLR2
,Checks for value In range
,branches to label if not
;In range. '"11s through If
,lower
<= (
(H) IL)
)
<-
upper.
;Get next byte.
MOV
CPI
JM
CPI
JP
WAITO
IN
ANI
JZ
"OV
OUT
INX
A,M
208
OCLR2
3EH+1
DCLR2
INTI
80M
110027
A,M
OOUT
;Get IntI status
;Check for byte out
;If not, try again
;Send listener to GPIS
H
JMP
OCLR1
673 OCLR2, WAITO
674+110028:
IN
INTI
ANI
675+
BOM
676+
JZ
110028
677
MVI
A,SOC
678
OUT
OOUT
679
WAITO
689+110029:
IN
INTI
681+
ANI
BOM
682+
JZ
170029
683
RET
684
685 ;; _._---_.-._.-._.
;Get IntI status
;Check for byte out
,If not, try aqain
;Sen~ device clear
;To all addressed listeners
;Get IntI status
;Check for byte out
;If not, try again
_._-*-.-•• __ .-__________ *_._. _____ _
686
687
SERIAL POLL ROUTINE
688 ,
689 ; INPUTS:
HL talker list pointer
690 ,
DE status buffer pointer
691 ,OUTPUTS:
Fills buffer pointed to by DE
692 ,CALLS:
None
1593 ; DESTROYS:
A., BC, DE, HL, F
694 ,
695 SPOL:
MVI
A,U~L
;Universal unlisten
696
DQUT
OUT
697
WAITO
698+770030:
IN
INT1
;Cet IntI status
699+
ANI
BOM
;Check for byte out
700+
JZ
11H03a ;If not, try again
701
MVI
A,MLA
;My listen address
702
OUT
DOUT
703
WAITO
704+110031:
IN
INT1
JGat IntI status
705+
ANI
80M
;Check for byte out
706+
JZ
110031 ;If not, try again
707
MVI
A,SPE
;Serial poll enable
708
OUT
DOUT
;To be forma} about 1 t
709
WAITO
7la+110032:
INTI
IN
;Get IntI status
<
231324-39
3-137
inter
1238 Ef')M2
123A CA3~12
1230
123E
1240
1243
124~
1248
1249
1248
124C
124E
7F.
FE40
FA9412
FE5F
F29412
7E
0360
23
3E40
D364
1250 0861
1252 E602
1254 CA5012
1257
1258
125.0.
125C
AF
0365
3EF6
0369
125E 086F
1260 E602
1262 C25El2
1265 DB6F
12~7
E~02
12~9
CM512
12SC DBfil
12fiE 47
12~F
Efi~1
1271 CA6C12
1274 3EFO
03S9
127~
1278 OBfiF
127A E602
127C C27812
127F
1281
1283
1286
1288
1289
128A
128C
D8fiF
E6n
CA7F12
OB6A
12
13
3E80
D3~4
128£ AF
128F 0365
1291 C33D12
1294 3U9
1296 0360
1298 0861
129A £602
129C CA9812
129F AF
12A0 D3fi5
12A2 C9
Ap·66
711+
712+
713 SPOLl:
714+
715+
71tH
717+
71R+
719+
720+
721+
722+
723+
724
725
726
727
728
729
730+1?0033:
731+
732+
733
734+
735
736
737
738
739+110034:
740+
741+
742
743+1100]5:
744+
745+
746
747+??a~35:
MI
JZ
RANGE
MOV
CPI
,'1'1
CPI
JP
,~OV
ou'r
INX
",VI
ou'r
WAITO
IN
ANI
JZ
BO~
;Check for byte out
:If not, try aqain
:Check for val id talker
:Checks for value In ran'1e
; hranches to la"el if not
1 in ranqe. Falls through I f
; lower (= ( (H) (L) ) (a upper ..
tGet next "yte.
1700]2
4OJ!-I,SF.H,SPOL2
h,M
40H
SPOL2
5EH+l
SPOL2
A,M
oou'r
;Get talker
; Sen" to GPIB
;Iner tl'tlker list pointer
;Listen only
H
A,LO'J
AORMO
;Wa 1t fo r tal k ar:tdress to complete
;Get IntI status
;Check for byte out
;If not, try again
;Pattern for imme-1iate XEQ PON
IN'rl
80",
710033
CLRA
XRA
ou'r
MVI
ou'r
WAITX
IN
ANI
JNZ
I.AITT
IN
ANI
JZ
A
AUXMO
A,GTSB
CMD92
;A XOR A ."
;Goto standhy
;Wait for TCI false
PRTF
TCIF
110~34
PRTF
TCIF
??0~35
WAIn
IN
MOV
ANI
;Wait for TCI
,Get task complete int,etc.
;Mask it
;Wait for task to he complete
;Wait for status byte input
;Get tNTI st,IJtus
I Save sta tus in B
,Cheek for byte in
,If not, just try aqain
,Take, control sync
INn
748+
B"A
749+
BIM
750+
JZ
17003fi
751
A,TCSY
MVI
752
ou'r
CMD92
753
14AITX
;Wait for Tel false
754+110037: IN
PRTF
755+
ANI
TCIF
756+
JNZ
110037
757
I'IAI1"r
;Wait for TCI
758+110338: IN
PRTF
;Get task complete int,ete.
759+
ANI
TCIF
JMask it
7fi0+
JZ
170038 ;wait for task to be complete
761
IN
DIN
;Get serial poll status hyte
762
STAX
D
;Store it in buffer
763
INX
0
;Incr pointer
764
MVI
~,TON
,Talk only for controller
765
ou'r
ADRMD
7fifi
CLRA
767+
XRA
A
;A XOR A =0
768
ou'r
AUXMO
; Immed i ta te xeQ PON
769
,CLR LA
779
JMP
SPOLI
,00 on to next deviee on'list
771
172 SPOL2: MVI
A,SPO
,Serial poll disable
773
OUT
OOUT
JWe know 80 we s se t (WAITO above)
774
WAnO
775+110039:
IN
INTI
;Get IntI status
776+
ANI
BOM
;Check for byte out
777+
JZ
110A39 ,If not, try a1ain
778
CLRA
779+
XRA
A
;A XOR A =~
780
OUT
AUX,~D
,Immediate XEQ PON to clear LA.
781
RET
782
783 ; ** * * ** ******* *** *. * ** ** *** ** ** ** ** * ***** ****. ** * ****."
784
<
,
231324-40
3-138.
intJ
AP-66
785 ,
PARALLEL POLL ENABLE ROUTINE
~:j ; INPUTS:
12A3 3£3F
12A5 D368
12A7
12A8
12AA
12AO
12AF
7E
FE28
FA0812
PE3F
F20812
12B2
1284
1286
1289
128A
DB61
Efi82
CAB212
7E
128C
12BE
12Cn
12C3
12C5
0861
EfiB2
CABC12
3E05
DH8
03~B
12C7
12C9
12Cd
12CE
12CF
1201
1203
1204
1205
OB61
D3fiO
23
13
C3A712
1208
120A
120C
12DF
OBfi1
E6B2
CA0812
C9
E6~2
CAC712
1A
'fin
788 ,
789 ,OUTPu'rs:
790 ,CALLS:
791 ,DESTROYS:
792 ,
793 ,
794 PPEN:
MVI
795
OUT
796 PPEN1:
RANGE
797+
79B+
799+
80A+
8Bl+
802+
MOV
803+
CPI
834+
J~
8a5+
CPI
886+
JP
837
WAITO
888+??8148 :
IN
809+
A'II
8t1+
JZ
811
MOV
HL listener list pointer
DE confil1uration byte pointer
None
1II0ne
A, D!, HL, F
;Universal unlisten
A,UlIIL
COUT
,Cheek for valid listener
,Checks for value in ranqe
2"H,3!H,PPE~2
,branches to label if not
lin ran~e. Falls throu1h if
,lower (m ( (HI (LI I (- upper.
,Get next byte.
A,M
28H
PP£N2
3EH+1
PPEN2
,Valid wait 91 dau out req
,Get IntI status
;Cheek for byte out
,If not, try aqatn
;Get listener
INT1
BOM
??0B4A
A,M
812
OUT
OOUT
813
'~AITO
814+??8041:
IN
INT1
;Get IntI status
815+
A'II
80M
;Check for byte out
816+
JZ
??B941
,If not, try aqaIn
817
MVI
A,PPC
,parallel poll Clonfiqure
818
ou'r
COUT
819
WAITO
821+??8842 :
IN
INT1
,Get Int! status
821+
80..
MI
,Check for byte out
822+
.JZ
??A942 ,If not, try a~aln
823
LOAX
D
,Get matching confiquration byte
B24
ORI
PPE
,Merge wi th parallel poll enable
825
DOUT
ou'r
826
INX
H
,Incl" pointers
827
INX
o
828
JMP
PPEN1
;Loop until inyali~ listener char
829 PPEN2: WAITO
830+??0A43:
IN
INT1
,Get IntI status
831+
ANI
BO~
;Check for byte out
832+
JZ
??8843 ;If not, try .98in
833
RET
834 ,
835 ,PARALLEL POLL DISABLE ROU'rINE
836
837 ,INPUTS:
HL listener list pointer
838 ,OUTPUTS:
None
839 ,CALLS:
None
,
840 ,DESTROYS:
l2EB 3E3F
12E2 0358
12E4
12E5
12E7
12£11
12EC
7E
FE28
FAF012
F£3F
'2F012
12EF DBfi1
12F1 Efi02
12F3 CAEF12
841
842 PPDS:
843
844 PPOS1:
845+
84H
847+
848+
849+
858+
851+
852+
853+
854+
855
85fi+??8844:
857+
858+
A,
HL,
F
;Universal unllsten
!lVI
A,U~L
ou'r
DOUT
RANG!
2BH,3BH,PPOS2
MOV
,Check for valid listener
,Checks for value in ranqe
;branches to label it not
rln ran,.e. Falls throuqh if
; lower <= ( (H) eLl ) <- upper.
;Get next byte.
JP
A,M
20R
PPDS2
3EH+l
PPOS2
WAITO
IN
ANI
BO'4
JZ
??IA44
CPI
J~
CPI
IN'rl
;Get IntI status
,Check for byte out
,If not, try aqatn
231324-41
3-139
inter
12F6 7E
12F7 D3~9
12F9 23
12PA C3E412
12FD D8~1
12FF F.~B2
1301 CAPD12
1304 3E05
130~
D3~0
1308
130A
130C
130P
1311
CA9813
3B7a
DH9
D861
1313
1315
1317
131A
DB61
£682
CA1313
C9
E~02
131B 3E15
13lD D360
13lF
1321
1323
1326
OB61
£602
CA1F13
C9
AP-66
~59
~OV
8~0
8~1
8~2
OUT
INX
H
lIner pointer
J~P
PPOS1
WAITO
IN
ANI
;Loop until Invalid 1 i stener
INTI
80'1
JZ
??8A4~
'4VI
OU'f
,Get IntI status
,Check for hyte out
;If not, try aqain
;Parallel poll confiqure
DOU'f
863 PPDS2:
8~4+71U45:
8~5,,"
85~+
8~7
8~8
8~9
A,M
DOUT
A,PPC
;Get llstener
WAlTa
IN
870+71804" :
INn
;Get IntI status
871+
A'II
801'1
,Check for byte out
872+
JZ
??"~Ufi
;If not', try aqain
873
"IVI
A,PPD
;Parallel poll disable
874
DOUT
ou'r
875
WAITO
R76+??B047:
INTI
IN
,Get Intl status
877+
80"!
ANI
;Check for byte out
878+
JZ
770047 ;If not, try aq.!n
879
RET
88B
881 ,
PARALLEL POLL UNCONPIG,UR£ ALL ROUTINE
882 ,
883 I
884 ; INPUTS:
None
885 ;OUTPUTS:
None
886 ,CALLS.
None
887 ,DESTROYS:
A, P
888 ;
889 PPUN,
A,PPU'
,Parallel poll unconfiqure
"VI
898
DOU'f
ou'r
891
WAITO
892+178048:
IN
INTI
;Get IntI status
893+
ANI
80M
;Check for byte out
894+
JZ
??U48 ;If not, try a~ain
895
RET
89~ ,
,
897 ; **************************************** *.********
: : : ;CONDUCT A PARALLEL POLL
980
1327 3U0
1329 D364
1328
132C
132£
1338
AF
D365
3EF5
DH9
1332
1334
1335
1337
133A
133C
DBH
47
E6Bl
CA3213
3EBa
D364
133£ AF
133F D3~5
1341 D8~0
1343 C9
981 ,
982 ;INPU'fS:
Nlone
983 ;OUTPUTS:
None
904 ,CALLS:
None
985 ,DESTROYS:
A, B, ..
986 ,RETURNS:
A= parallel poll status byte
987 ;
908 PPOL:
",VI
A,LON
;Listen ?nly
909
OU'f
AOR'ID
918
CLRA
,Immediate XEO PON
911+
XRA
,A XOR A -g
A
912
OUT
AUXMD
,Reset TO,..
913
A,EXPP ,Execute parallel poll
"'VI
914
OUT
CMD92
915
WAITI
;Wait for completlon= Bl on 91
916+??U49: IN
INT1
,Get INTI status
917+
MOV
B,A
;Save status in B
918+
ANI
9I"!
,Check for byte in
919+
JZ
??8349 :If not, iust try aqain
928
>lVI
,Talk only
A, TO'"
921
OUT
ADRMD
922
CLRA
,Iromed iate XEQ POl'
923+
XRA
A
,A XOR A ."
924
OU'f
AUX"ID
,Reset LO'"
925
IN
DIN
;Get PP byte
926
RET
927
928 *************.********************************
929 PASS CONTROL ROU'rINE
938
931 INPUTS:
HL pointer to talker
932 OU'fPUTS:
None
3·140
231324-42
inter
1344
1345
1347
134A
134C
134F
1351
1354
7E
FE40
FIIBA13
FE5F
F28AD
F£41
CA8A13
D3~0
1356 DB61
1358 EGe 1
135A CA5~13
1350 3£09
135F D3~0
1361 DB61
13n3 E602
13~5 CM113
1368 3£01
13nA 0364
13SC AF
1360 0365
3E01
1371 0366
1373 3EAl
1375 DH5
13~F
1377 3EFl
1379 D3fi9
137B
DB~F
1370 £602
137F C27813
1382
1384
138S
1389
138A
138B
1380
138F
1392
1394
D86F
E602
CA8213
23
C9
DB~l
E680
CACF13
OB65
F£09
AP-66
933 ;CALLS:
None
934 ; DESTROVS:
A, HL, f'
935 PCTL:
RANGE
40H,5EH,PCTLl
;Is it a valid talker
936+
;Checks for value in ran~e
937+
; hrltncheS to la':Jel if not
938+
:In ranqe. Falls throuqh if
939+
flower (= ( (H) (L) ) (= upper.
940+
;Get next byte.
941+
MOV
A,M
942+
CPI
40~
943+
PCTLI
J'
944+
CPI
5EH+l
945+
JP
PCTLI
946
CPI
MTA
rIs it my talker ad~ress
947
JZ
PCTLI
:Yes, just return
94R
OUT
DOUT
;Seno on GPI8
949
WAITO
950+??0~59:
IN
IN'r!
,Get IntI sta.tus
951+
A~I
BOM
;Check tor byte out
952+
JZ
??005~
;If not, try aqain
953
~VI
A,TCT
;Take control mess~qe
954
ou'r
DOUT
WAITO
955
95 6+??0051:
I"i·rl
IN
iGet IntI status
957+
ANI
80M
;Check for hyte out
958+
JZ
??0~51
;If not, try aqain
959
'1VI
A,MODEI ;Not talk only or listen 'Only
9n0
OU'f
ADRMO
;Enable ql ~nrlress mo~e I
9H
CLRA
9<;2+
XRA
A
;A XOR A ,.a
9n3
OUT
AUXMD
; Immed iate XEQ PON
904
A,MDA
;My device adnress
""VI
965
ou'r
ADRal
;enabled to talk and listen
96<;
MVI
A,AXR8+CPTE~
;Command pass thru en~ble
9n7
DU'r
AUX~D
968 :·······optional PP configuration goes here ••••••••
9<;9
MVI
A,GIOL
:92 go idle command
970
ou'r
CMD92
971
WAITX
972 .... ?10052: IN
973+
ANI
974+
JNZ
975
WAITT
:Wait for Tel
976+??0053, IN
PRTF
;Get task complete int,etc.
977+
ANI
;Mask it
TCIF
978+
JZ
??g~ 53
;Wait for task to be complete
INX
979
A
990 PCTLl:
RET
981
982 ;
983 ;****************** ••• ********************
:::
986
987
988
989
990
991
992
;R£CEIVE CONTROL ROUTINE
993
;NOTE:
;
J INPUTS:
;Ou'rpUTS:
;CALLS:
;DESTROYS:
;RETURNS:
994
995
996
997
998
999
1000 ;
1001 RCTL,
1002
1003
1004
1005
None
None
None
A, F
0= invalid (not take control to us or cP'r bit not on)
<.) 0 = valid take control-- 92 will now be in control
THIS CODE MUST BE TIGHTLY INTEGRATED IWfO ANY USp,q
SOFTWARE TH ... 'r FUNCTIONS "ITA 'rHE ~291 ... 5 ... DEVICE,
NORMALLY SO'~E AOVA"!CE WARNING OF IMPENDI"IG PASS
CONTROL SHOULD BE GIVE"! 'fO US ~Y rHE CONTROLLER
WITH O'fHER USEFUL INFO, THIS PROTOCOL IS SITUI\TION
SPECIFIC AND WILL NOT BE COVERED HERE.
IN
ANI
JZ
IN
CPI
IN'rl
CPT
RC'fL2
CPfRG
TC'f
;Get INTI retJ (i.e. cP'r etc.)
;Is command 'pass thru on ?
;No, invalid-- go return
;Get command
;Is it take control?
231324-43
3-141
AP-66
139~
C2CAlJ
1399 DB~4
139R E6a2
139D CACAlJ
13A~ 3E60
13A7 DH~
13A4 JE8P
13M DH4
13A8
13A9
13A8
13AO
13AF
1381
lJB3
1385
AF
0361
0352
0365
3EFA
0369
3EBF
D365
13S7 DMF
13B9 E602
13SB C28713
13dE
13ea
13C2
13C5
13C7
13CA
13CC
DB6F
£682
CABElJ
JE09
C3CF13
3ur
036S
13CE AF
lJCF C9
1806
1007
1808
1009
DR69
E628
CAE213
F6~B
0369
0869
E6U
CAOS13
C9
13£3 3EF8
lJE5 0369
13E7 DB6F
13£9 E602
13E8 C2E713
l3EE DB6F
13F0 E602
13F2 CAEE13
I~
A'll I
,JZ
",VI
1019
IP11
1012
ou'r
RCTL1
ADRqT
'rA
RCTl.1
;NO, go return inVAlid
;Get ad"ress status
,IsT"on?
,No -- qo return invalid
A,DTDLI ,DiRanle talker listener
ADRR1
A,TOt4
,Talk only
MVI
~DR~J)
OUT
1B14
CLRA
1B15+
XRA
~
,1\ XOR A =A
UH
OUT
IN"rl
,Mask off I~T hits
1017
OUT
INT2
1018
OUT
AUXMD
1819
MVI
II,TCN'rR :T.. ke (receive) contrni 92 command
ou'r
C",092
1120
1021
MVI
A. VSC,~l> ;val lit COlDmanri 'pl'ttern for 91
1022
OUT
AUX"D
1023 ; ******** optional TOUTl check could be put here ****.***
1024
WAITX
1825+110054 : IN
PRTF
1826+
ANI
TCIF
IB27+
3HZ
110054
1028
WAITT
;Wait for Tel
1829+119355: IN
PRTF
;Get task complete int,ete.
1030+
ANI
TCn
,Mask it
lB31+
JZ
??0366
,Walt for task to he complete
1837
MVI
A,TCT
;Val in return pattern
1833
3~P'
RC'rL2
,Only one return per routine
1834 RCTLI: MVI
A,VSCII1D ;Acknowledqe cP'r
1035
OUT
AUXMD
1836
CLRA
; Error return pattern
1037+
XRA
A
;A XOR A =B
1838 RCTL2:
RET
IB39 ,
1~1l
184M
,*************.*. **.***** ***********************.*
1~43
,
1041
1B42
13UO
1302
1304
1307
1309
lJ08
1300
l30F
13£2
.JNZ
SRO ROUTI'llE
le44 ; INPUTS;
None
1845 ;oU'rpUTS:
None
1046 ,CALLS:
None
lB47 ;RE'fURNS:
A~ A no SRO
lB48
A ( > 0 SRO occureti
1049
USB,
1051 SRQD:
IN
INTST
;Get 92 1 9 I~TRQ status
1852
ANI
;~ask off SRQ
SR9BT
1053
JZ
SRQD2
,Not set--- go return
1054
ORI
lACK
,Set--- must clear it with I"'C~
lB55
ou'r
CMD92
1056 SRQD1.
IN
I~TST
,Get ISF
1057
ANI
19FRT
;Mask 1 t
IM8
JZ
SRQDl
,WIIlt if not set
1059 SROD2: RET
10GB ,
1861 1 ** *** ************ ft"'''''''''''''''' ***** ** *** ********* *
1862 ,
1063 ,REMOTE ENARLE ROUTINE
1864 I
1A65 I INPUTS:
None
1066 ,oU'rpu'rs:
None
1067 ,CALLS:
NONE
1868 ;'DES,TROYS:
A, F
1369 ,
lB70 RE.. E:
MVI
",SREMo
,CMD92
OUT
1871
;92 asserts remote enahle
1072
WAITX
;Wait for Tel = "
1073+??0056: IN
PRTF
ANI
le74+
TCIF
1375+
3NZ
??H05~
1876
WAITT
,Wai t fOT TCI
1077+110057: IN
PRTF
;Get task complete lnt,ete.
lB78+
ANI
TCIF
,Mask i t
1079+
JZ
??A~57
;Wait for task to he complete
3-142
231324-44
AP·S6
13~'5
C9
13F6 3EF7
llFB 0369
13~'A
DB6F
llFC E632
13FE C2FA13
14Bl
1403
1405
140B
OBfiF
E602
CA0114
C9
IBBA
lABl
1082
1983
lA84
lABS
1086
lA87
1988
1989
1090
1091
1092
1993
1A94
,
RF.T
,.*****************************************
I
,LOCAL
ROU"rI~E
,
,INPU'l'S.
,OUTPUTS.
,CALLS.
,DESTROYS.
,
~VI
LOCL.
OUT
"'AITX
lA9~+??0958. IN
1096+
ANI
1097+
JNZ
1098
WAIT'r
1099+110059, IN
1190+
ANI
11Bl+
JZ
1102
RE'r
1193 I
None
None
None
A, F
A, SLOC
CMD92
;92 stops asserting remote enable
;Wait for Tel .. "
PH1'F
TCIF
??a0~R
tWa i t
PRn'
TCIF
?1~A
59
for TCl
;Get task complete int,etc.
,Mask it
,Wait for task to be complete
llA4 ;**********************************************
1195 ,
,
1106 ,I~TEHFACF. CLF. .. R I AROIIT ROU'rINE
11A7
1108
None
1109 ~INPU'rS:
None
l11A ~OU'rpUTS :
None
1111 ,CALLS.
1112 ; DESTROY'S:
A, F
1113
1114 ,
1115 IFCL,
MVI
A,ABORT
1116
OUT
; Send IFC
CMD92
1117
WAITX
,Wait for TCI =91
1118+110060, IN
PRTF
1119+
ANI
TCIF
1120+
JNZ
??AA6~
1121
WAITT
;1."a1 t for Tel
1122+11001;1: IN
PRTF
;Get task enmpletp. int,etc.
1123+
ANI
TCIF
,Mask It
,
1409 ]EF9
140~ DH9
1400 DBfiF
140F E602
1411 C20D14
1414 DBfiF
1415 Efi02
1418 CA1414
1124+
JZ
??~~~l
;Wait for task to be complete
1125 ;Delete both 'NAITX & WAITT if this routine
112~ ,is to be called while the !!292 is
11'7 ;Controller-in-Charqe. If not C.I.C. then
1418 C9
1128 ,'reI is set, else nothinq is set (IFC is sent)
1129 ;anr:t the WAIT'S will hanq forever
1139
RET
1132 ,
3-143
231324-45
inter
AP-66
0032
0931
0051
000D
003A
00~'"
0940
141C
142A
1424
1428
1421\
000F
1428
142F
00AI;
1431
1432
1433
1434
1435
143,
31
FF
32
FF
51
FF
1437
1439
143B
143£
1441
AI;0D
AEAF
111C14
213314
COIC10
46553141;
52333748
48414D32
51;4F
AD
50463447
3754
1444 ~<;54
1446 ~E06
1448 112a14
1448 213114
144E CDIC10
1451 CODa13
1454 CA5114
1457
145A
1450
1460
1461
1462
1464
11003C
213514
COIC12
18
lA
EI;40
CA7714
1467 0631\
1469 0Ell
213514
146E l1913C
1471 C09F10
1474 C27714
146~
1477 00
3C00
3C00
0all
1133
1134
1I35
113(,
1137
1138
1139
1I49
1141
1I42
1I43
; APPLICATION EXA"'IPLF. CODE FOR
8~8~
;
FGD'L
EQU
~'CDNL
EQU
FCDN'f
SRQM
€QU
EQU
EOU
EQU
EQU
~'GDI\1'A:
DB
CR
L~'
LE~D
;Fune qen devicE" num "2" ASCII,lstn
;Freq ctr device num "I" A~CII,lstn
;Freq etc ta 1 k add ress
;ASCII carriaqe return
;ASe II 1 ine feed
;List end fo r Tal kILl sten 1 ists
;Bi t indicatinq device sent SRO
'2 '
'I'
'Q'
"Ott
9A"
9F~'H
4AH
'FUIFR37KHA~2VO',CR
:Dat-l to set up func. qen
1144 LIMI
EQU
1145 FCDATA: DB
15
• PF4G7r I
;Data to 'set up freq etc
1I46 LIM2
1147 LLI :
EQU
DB
FCDNL, LEND
;Buffer length
; Li sten list for fceq etc
1148 LL2:
DB
FGDNL, LEND
; Li sten list for func. qen
1149 TLI :
DB
FCDNT,LgIIJD
;'ralk 1 ist for freq etc
1150
1151
1'152
1I53
1154
1155
1156
1157
1158
1159
11,0
llfil
1162
1163
1164
1165
11H
111;7
1168
1169
1170
1171
1172
1173
1174
1175
117,
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1195
1197
,8uffer lenqth
;
;SETUP
FU~CTION
MVI
MVI
LXI
LXI
CALL
;SETUP FREel
GENE.tA'roR
B,CR
:EOS
C,LIMI ;Count
O,FGf}A.T4
H,LL2
SEND
;Data pointer
; Li sten list pointer
COU~'rER
~VI
B, 'T'
MVI
LXI
LXI
CALL
C, Ltl'o12
;EOS
,Count
0, FCDATA
H,LLl
;Data pointer
; Li sten list pointer
SEND
;WAIT FOR SH.Q FROM FREO CTR
Loop:
CALL
JZ
SRQD
LOOP
;Has SRO occur red
;No, wa it for it
; SER IAL POLL TO CLEAR SRQ
LXI
LXI
CALL
DCX
LDIIX
liN I
JZ
D,SPBYTE
;Suffer pointer
H,TLI
SPOL
;Talk 1 i st po in ter
0
D
SRQM
ERROR
;BackuJ) bufffH pointer to ctr byte
;Get status byte
;Did ctr assert SRQ ?
;Ctr shoulti have said yes
;RECEIVE READING FROM COU'''TER
MVI
MVI
LXI
LXI
CALL
JNZ
B, LF
;EOS
;Count
;'l'alk list pointer
H,TLl
;Dat., In buffer pointer
D. FCDATI
C,LI~3
RECV
ERROR
;
;******* rest of user processing
~RROR:
ORG
NOP
ETC.
3Cn0H
SPBYTE:
OS
LI>l3
EQU
qoe~
here *****
;User depenr:lant error handl inq
1
17
; Location for ser ial poll byte
;Max freq counter input
231324-46
3-144
intJ
Ap·66
3C01
1198 FCDA'l'Io DS
1199
EII/D
I Freq ctr Input buffer
LIM3
PUBLIC SYMBOLS
EXTER'IAL
SYI~I!OLS
USEK SY.'ftWLS
A AlfF9
A801~T
81.
CLNS'f
.1\ AB91
A "B#j~
DCLR
A llEC
EDEOS
ERROR
lo'CONL
A 0004
GS~C
IFeL
IN'fST
LLI
I'ItODEl
PPO
PP~JIl2
H'NGE
REcvl
Rlm.lo'
SOEOI
SE~D6
SPIF
SROOI
reNTK
TOST
UVL
wou'r
AImB~
KOF
C"'092
DCLRI
e. . OIltK
A".,,,,,
A "'HH
A flDl;q
AUF"
"
BA1'1
EVdIT
FCDNr
A "~111
1".F4
GTS~
A 0AF6
1409
A BB~9
A 1431
RA01
A 007.
1208
+ 0905
A leEA
A AeE4
A H0H~
A 10BS
HUT
LA
LL2
_TA
PE-OS
PPOL
A 1477
A 0031
••
•
•
• •• H4
A l30B
•••
HdST
RECV2
RERM
SEND
SE'fF
SPOL
5"002
~"FA
TCsr
S.0f)8
'rOUT I
003F
A 'HH:t
vsc..,o
xr£a
.'SSEI~ilLY COJ~PLETE,
A '''''51
AD~~O
80.
CPT
DCLR2
EOlli
BVCST
I"TI
A 80141
LEND
LOCL
..
A
A
A
12EiiI
1327
e9E7
lIRe;
•
+ 0"":1
•
"3~A
A HUC
121C
A 13 .. 2
A "~f'D
•
PB~l
A CJ""P
A 113A
NO
" 0""2
~vc",n
PPiJC;1
PPU
ReST
RECV3
REVC
SE-IOI
SLOC
SPOll
St{OM
'reT
TOUT2
WAI'rI
XFE~l
AD~s'r
'JUSST
" III"·"
A 1209
CPTE'"
01.
" eftAP
EOYST
A "~~f'
FGDATA " 141C
Hoet.lO
A 0101'12
A 16'09
•A .041
1433
A 111111;4
A
A.
A
A
A
A
A
,
••
•
,•
"""1
flAFF
13FI;
911'017
12£"
Aue;
""EI;
lInl;
AAEl
1M2E
"9F7
A 1210
9840
01UI9
0\ AAA2
+ lHlJA2
•
1153
P.VR£G
PGr)'lL
HOIiSI(
[~T2
LF
L0_
OBFF
PPDS2
PPUN
~CTL
A c."O=;4
A CllfIll1R
•,
•• ~"""
•• "''''!H
•
•
• Ill.
••
•
AQI~l
0:'1'if1
A!H;q
A AAJ,
fI"~2
A tHlillA
III1UA
A
"~1A
12FD
A 131A
13~8
AUX"'D
CAHCY
CPTRG
flOUT
EOS'l
F!xpp
FNH'iK
lACK
I'fTrol
Lt"1
LOOP
PCTL
PPE
PRTCfl
Rt.::1'Ll
I~FCVc;
A
~IH':S
RI""
SE'\I02
1.47
SPSY'rr. A 3COO
C;POL2 A 1'94
SPCNt
SqP.Ni
C;TC''U
T'
RECVIf
'rLl
'rOUT)
'''''tTO
lCFP.tt2
HAFF.
A 14')Cj
" 0A~4
+ IlRCn
" lll;C
q"~T
SE~03
TLt)~
'rRIG
WI\ITT
XFERl
,
•• "~"'1
•,•
••
,
AMr;
"XiV. ,
CLK~'r
0"C;1)
CR
OTOLI
ERFLG
A 91"C;q
"HJ"1
0GtFI)
AA"'l
AQ'JB
IUlA"
A "GIlAl'
lot.:;1
A 13'"
Alit""
t.t""'i'll
A DCA
1117
00F2
A UH;q
A •• FB
A •• F~
A "~"2
,•
,
•
. "cn
• .IIRC
A
,
+
;Hl~4
11·3
FCOATA
G€T
IBFBT
I"lT~1
LPt2
.DA
PCTLI
PPE"
PH'f9'
RCTL2
RECV':'
QSTI
SE"JD4
SPO
SqoaT
rc,sy
'r01l1
TRIGl
I'Ih IT X
l(Fi':IU
,
, "Il'l"
.,
RCUB'
AX!\8
A
llIt~n
A
A
"~S;tlI
CLRA
DCL
OTDL2
,
••
~Pt;A
1.12'"
(H"'~
llU'
A 14:9';1
A 'HH'~
,•
qIJIH
119A
• DO
A "Afiq
•
,
13-:F
A 1119
A eAF3
1M7.
A AA19
A
fI .... FC
A "3q~
,,0'91
•
, llell
+
, 11131'\
A!l93
A9A!17
"""0
+
A "'1-'14
A BAE'
" ",,'Ut
ERR.oII
FCOATI A 3eAI
GIOt
A "AFI
ISFF
A "'JU'
I~T"'R
A
A
A
A
A
A
LlM3
"LA
PPC
PPF.:N1
PRTr
RECV
RP.ME
RTDtJ'r
SE"05
SPE
S~OO
',l'CIto'
TOt{EG
'rRIG2
"'Eve
•
143fi8
~.ll
RAn
0~"tS
12A7
""IiF
lA9P
A 13E3
A 9RE9
lH7F
A •• Ie
,
•,
A
1300
0~A2
AnliS
A 1109
A A'lF;'
~RRORS
231324-47
3-145
AP-66
APPENDIX B
Analyzer was used. This analyzer acted as a talker, listener or another controller as needed to execute the
tests. The, sequence of outputs are shown with each test.
All numbers are hexadecimal.
Test Cases for the Software Drivers
The following test cases were used to exercise the software routines and to pheck their ~ction. To provide
another device!controller on the GPIB a ZT488 GPIB
Send Test Cases
B=
C=
DE=
HL=
3E70:
3E80:
GPIB output:
Ending B=
EndingC=
Ending DE=
Ending HL=
44
30
3E80
3E70
20 30 3E 3F
11 44
41 ATN
3FATN
20ATN
30ATN
3EATN
11
44EOI
44
2
3E80
3E70
44
0
3E80
3E70
41 ATN
3FATN
20ATN
30ATN
3EATN
11
44EOI
41 ATN
3FATN
20ATN
30ATN
3EATN
44
2E
3E82
3E73
44
0
3E82
3E73
44
0
3E80
3E73
Receive Test Cases
B=
C=
DE=
HL=
3E70:
GPIB output:
ZT488 Data
In
EndingA =
Ending B =
EndingC =
Ending DE=
Ending HL=
44
30
3E80
3E70
40
40ATN
3FATN
21 ATN
1
2
3
4
44
0
0
2B
3E8S
3E71
44
30
3E80
3E70
50
50ATN
3FATN
21 ATN
1
2
3
4
5,EOI
0
0
2B
3E85
3E71
44
30
3E80
3E70
5E
5EATN
3FATN
21 ATN
1
2
3
44,EOI
44
30
3E80
3E70
5F
44
4
3E80
3E70
40
40ATN
3FATN
21 ATN
1
2
3
4
44
4
3E80
3E70
40
40ATN
3FATN
21 ATN
11
22
33
44
44
0=256
3E80
3E70
40
40ATN
3FATN
21 ATN
1
2
3
44
0
0
2C
3E84
3E71
SF
44
30
3E80
3E70
40
40
0
3E84
3E71
0
0
0
3E84
3E71
0
0
FC
3E84
3E71
3-146
inter
AP-66
Serial Poll Test Cases
C=
30
C=
DE=
HL=
3E70:
3E80
DE=
3E70
HL=
40
3E70:
50
GPIB output:
5E
SF
GPIB output: 3F ATN
EndingC =
output: 21 ATN
Ending DE=
output: 18 ATN
output: 40 ATN
Ending HL=
input": 00
output: 50 ATN
input": 41
output: SE ATN
input": 7F
output: 19 ATN
"NOTE: leave ZT488 in single step mode even on input
EndingC = 30
Ending DE = 3E83
Ending HL= 3E73
Ending 3E80: 00 41 7F
30
3E80
3E70
SF
3FATN
21 ATN
18ATN
19ATN
30
3E80
3E70
Pass Control Test Cases
HL=
3E70:
GPIB output:
Ending HL=
EndingA =
3E70
40
40 ATN
09ATN
-ATN
3E71
02
3E70
41 (MTA)
3E70
SF
3E70
41 (MTA)
3E70
SF
Receive Control Test Cases
GPIB input
Run Receive Control
GPIB Input
Ending A=
10 ATN
ATN
40ATN
09ATN
41 ATN
09ATN
ATN
o
o
ATN
09
3-147
inter
AP-66
Parallel Poll Enable Test Cases
OE=
HL=
3E70:
3E80:
3E80
3E70
20 30 3E
01 02 03
3FATN
20ATN
05ATN
61 ATN
30ATN
05ATN
62ATN
3EATN
05ATN
63ATN
3E83
3E73
GPIB output:
Ending OE=
Ending HL=
3F
3E80
3E70,
3F
3FATN
3E80
3E70
Parallel Poll Disable Test Cases
HL=
3E70:
3E70
20 30 3E
3FATN
20ATN
30ATN
3EATN
05ATN
70ATN
3E73
GPIB output:
Ending HL=
3F
3E70
3F
3FATN
05ATN
70ATN
3E70
Parallel Poll Unconfigure Test Case
GPIB output:
15 ATN
Parallel Poll Test Cases
Set 010 #
Ending A
1 2 3 4
1 2 4 8
5 6 7
10 20. 40
8
80
None
0
SRQTest
Ending A =
Set SRO momentarily
02
ResetSRO
00
inter
AP-66
Trigger Test
HL=
DE=
BC=
3E70:
GPIB output:
3E70
3E80
4430
20 30 3E 3F
3FATN
20ATN
30ATN
3EATN
08ATN
3E73
3E80'
4430
Ending HL=
DE=
BC=
Device Clear Test
HL=
DE=·
BC=
3E70:
GPIB output:
3E70
3E80
4430
20 30 3E
3FATN
20ATN
30ATN
3EATN
14ATN
3E73
3E80
4430
Ending HL=
DE=
RC=
3F
XFERTest
B=
HL=
3E70:
GPIB output:
44
3E70:
40 20 30 3E 3F
40ATN
3FATN
20ATN
30ATN
3EATN
o
GPIB input:
1
2
3
44
o
Ending A =
B=
HL =
44
3E74
~-149
intJ
Ap·66
Application Example
GPIB Output/Input
41 ATN
3FATN
32ATN
GPIB output:
46
55
31
46
52
33
37
4B
48
41
40
32
56
4F
OOEOI
41 ATN
3FATN
31 ATN
50
46
34
47
37
54EOI
SRO
GPIB input:
GPIB output:
3FATN
21 ATN
18ATN
51 ATN
GPIB input:
GPIB output:
40SRO
19ATN
51 ATN
3FATN
21 ATN
3·150
inter
AP-66
GPI8 input:
20
28
20
20
20
33
37
30
30
30
2E
30
45
28
30
00
OA
GPI8 output:
XXATN
Ap·66
APPENDIX C
REMOTE MESSAGE CODING
Bus Signal LlneCs) and
Coding That Asserts the
True Value of the Message
C
I D
D NN
I DRD A E S I R
Y a I
o AFA TOR F E
P s 0
Message Name e s 8 7 6 5 4 3 2 1 VDC N I Q C N
T
Mnemonic
ACG
ATN
DAB
0 o 0 XXXXXXX 1 X X
XXXXXXXXXX 1 X X
DDDDDDDXXX 0 X X
7 6 5 4 3 2 1
X X X X X X X XXO X X X
X X X X X X X 1XX X X X
0 0 1 0 1 o 0 XXX 1 X X
X X X X X X X XXX 0 1 X
E E E E E E E XXX 0 X X
7 6 5 4 3 2 1
0 0 0 1 0 0 0 XXX 1 X X
0 0 0 000 1 XXX 1 X X
X X X X X X X XXX X 1 X
X X X X X X X XXX X X X
0 1 X X X X X XXX 1 X X
0 0 1 000 1 XXX 1 X X
0 1 L L L L L XXX 1 X X
5 4 3 2 1
Y 1 0 T T T T T XXX 1 X X
543 2 1
Y 1 1 S S S S S XXX 1 X X
5 4 3 2 1
0 0 0 0 0 0 0 0 XXX X X X
(OSA = SCG II MSA)
(OTA = TAG II MTA)
(PCG = ACG V UCG V LAG V TAG)
Y 0 0 0 0 1 0 1 XXX1XX
Y 1 lOS P P P XXX 1 X X
321
Y 1 1 1 D D D D XXX 1 X X
432 1
X X X X X X X 1 XXX 1 1 X
X X X X X X 1 X XXX 1 1 X
X
X
X
X
X
X
X
X
X
X
GET
GTL
IDY
IFC
LAG
LLO
MLA
addressed command group
M AC Y
attention
U UC X
data byte
(Notes 1, 9) M DD D
8
data accepted
U HS X
data valid
U HS X
device clear
M UC Y
end
U ST X
end of string
(Notes 2, 9) M DD E
8
group execute trigger
M AC Y
go to local
M AC Y
identify
U UC X
interface clear
U UC X
listen address group
M AD Y
local lock out
M UC Y
(Note 3)
my listen address
M AD Y
X
X
X
1
X
X
X
X
X
X
X
X
X
X
MTA
my talk address
(Note 4)
M AD
X X
MSA
my secondary address
(Note 5)
M SE
NUL
OSA
OTA
PCG
PPC
PPE
null byte
other secondary address
other talk address
primary command group
parallel poll configure
parallel poll enable
(Note 6)
M
M
M
M
M
M
PPD
parallel poll disable
(Note 7)
M SE
PPR1
PPR2
parallel poll respons~ 1
parallel poll response 2
(Note 10)
U ST
U ST
DAC
DAV·
DCL
END
EOS
}
3-152
DD
SE
AD
-
AC
SE
X X
X X
X X
X X
X X
X X
X X
X X
X X
X X
inter
AP-66
REMOTE MESSAGE CODING (Continued)
Bus Signal Line(s) and
Coding That Asserts the
True Value of the Message
C
I
T
D
Y a I
P s 0
Mnemonic
s
Message Name e
PPR3
PPR4
PPR5
PPR6
PPR7
PPR8
PPU
REN
RFD
ROS
SCG
SDC
SPD
SPE
SRO
STS
parallel poll response 3
parallel poll response 4
(Note 10)
parallel poll response 5
parallel poll response 6
parallel poll response 7
(Note 10)
parallel poll response 8
parallel poll unconfigure
remote enable
ready for data
(Note 9)
request service
secondary command group
selected device clear
serial poll disable
serial poll enable
service request
(Notes 8, 9)
status byte
U
U
U
U
U
U
M
U
U
U
M
M
M
M
U
M
ST
ST
ST
ST
ST
ST
UC
UC
HS
ST
SE
AC
UC
UC
ST
ST
TCT
TAG
UCG
UNL
UNT
take control
talk address group
universal command group
un listen
untalk
M
M
M
M
M
AC
AD
UC
AD
AD
}
}
(Note 11)
8 7 6 5 4 3 2
X
X
X
X
X
XXXX1 X
XXX1 XX
XX 1 XXX
X1 XXXX
1 X X X X X
XXXXXX
D NN
I DRD A E S I R
0 AFA T 0 R F E
1 VDC N I Q C N
X
X
X
X
X
X
1
Y 001 0 1 0 1
XXXXX
XXXXX
X 1 XXX
Y 1 1 X X
XX
XX
XX
XX
X
X
X
X
Y 0 000 1 0 0
Y 0
1 1 0 0 1
Y 0
1 1 0 0 0
o
o
XXXXXXXX
XS S S S S S
S
8
Y
Y
Y
Y
Y
6 5 4
0
0 1
XX
1
0 0 1 X
0 1 1 1
1 0 1 1
o
o
XXX
XXX
XXX
XXX
XXX
XXX
XXX
XXX
XOX
XXX
XXX
XXX
XXX
XXX
XXX
XXX
3 2 1
0 0 1
XXX
X X X XXX
X X X XXX
1 1 1 XXX
1 1 1 XXX
1
1
1
1
1
1
1
1
1
1
1
1
1
X
X X
X X
0 X
1 X
1 X
1 X
1 X
X X
0 X
1
1
1
1
1
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
1 X
XX
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
1
The 1/0 coding on ATN when sen1 concurrent With multiline messages has been added to this revision for interpretive convenience.
NOTES:
1. 01-08 specify the device dependent data bits.
2. E1-E8 specify the device dependent code used to indicate the E08 message.
S. L1-L5 specify the device dependent bits of the device's
listen address.
4. T1-T5 specify the device dependent bits of the device's
talk address.
5. 81-85 specify the device dependent bits of the device's
secondary address.
6. 8 specifies the sense of the PPR.
S
Response
o
0
1
1
P1-PS specify the PPR message to be sent when a parallel poll is executed.
P3
P2
P1
o
o
o
PPR1
1
1
1
PPR8
PPRMessage
7.01-04 specify don't-care bits that shall not be decoded
by the receiving device. It is recommended that all zeroes
be sent.
8. 81-86, 88 specify the device dependent status. (0107
is used for the RQ8 message.)
9. The source of the message on the ATN line is always
the C function, whereas the messages on the 010 and EOI
lines are enabled by the T function.
10. The source of the messages on the ATN and EOI lines
is always the C function, whereas the source of the messages on the 010 lines is always the PP function.
11. This code is provided for system use, see 6.S.
3-153
Modem Products
4
inter
•
•
•
•
•
•
•
•
•
•
89024
2400 BPS INTELLIGENT MODEM CHIP SET
Customized Command Set and
• Easily
Features
Chip Intelligent Modem Solution
• Two
with Minimal External Components
No External ,...C Required
• Output
• Range Level Programmable over 16 dB
Dial and Re-dlal Capability
• Full
Set of Control Signals for DAA
• Interface
Local, External, or Slave Timing
• Options
In Synchronous Mode
Adaptive Equalization
• Capable of Detecting Dial, Busy,
• Ringback and Modem Answer Tones of
Most International Networks
• Auxiliary Relay Control Output
For Public Switched Telephone
Network and Unconditioned Leased
Lines Applications
V.22 bls, V.22 A/B, V.21, Bell 212A, and
Bell 103 Compatible
Serial Command Set Compatible with
Hayes Smartmodem 2400
Automatically Adapts to Remote
Modem Type with Recognition of Data
Rates
DTMF and Pulse Dialing, with Automatic
Selection of Dial Signaling
On-Chip Hybrid and B!lIIng Delay Timer
On-Chlp Serial Port and Handshake
Signals for R8-232/V.24 Intertace
Telephone Line Audio Monitor Output
Analog/Digital Loopback Diagnostics
with Mark/Space Pattern Generation
and Error Detection
Simple Serial Interface to External
NVRAM
89026
89027
HAYES COIoiMANDS
FSK IoIODULATOR/
DEIoiODULATOR
DTMF TONE GENERATOR
ANSWER TONE GEN.
TELEPHONE
LINE
INTERFACE
DTE
INTERFACE
(DAA)
QAIoI/PSK TRANSMITTER
SCRAMBLER/ENCODER
QAIoI/PSK RECEIVER
SIGNAL RECOVERY
DESCRAMBLER. DECODER
LINE CONTROL/STATUS
OM INTERFACE
270242-1
Figure 1.89024 System Block Diagram
4·1
October 1988
Order Number: 270242-003
89024
serial NVRAM, and RS-232 driver/receivers, represent the circuitry required for implementing an autodial, auto-answer, 300 to 2400 bps, full duplex
Hayes compatible intelligent modem.
GENERAL DESCRIPTION
The Intel 89024 chip set is a highly integrated, high
performance, intelligent modem, providing a complete system in two chips. The system conforms to
the following CCITT and Bell standards:
A complete set of industry standard AT commands
is provided for modem configuration and user interface. Virtually all PC software written for the Hayes
Smartmodem 2400 can also·be used with this·chip
set. Alternatively, in applications where user proprietary modem control commands and features are desired, the user can replace the 89024 internal command module with custom proprietary software resident in the 89026 microcontroller's on-chip ROM or
an external memory device.
• ccrr.r V.22.bis
2400 bps sync and ·async
1200 bps sync and async (fall-back)
• CCITT V.22 A & B
1200 bps sync and async
600 bps sync and async (fall-back)
• CCITT V.21
o to 300 bps anisochronous
• BELL 212A
1200 bps sync and async
300 bps faU-back mode
The 89024 has a set of default features. Upon power
up, the modem configuration will be in accordance
with these default options, unless a different configuration has been saved in the external NVRAM with
the &W command.
• BELL 103
o to 300 bps anisochronous
The 89024 system consists of a 16 bit application
specific processor (89026) and an analog front end
device (89027). The 89026 processor pertorms all
"Digital Signal Processing" algorithm execution for
processing the modem signals, as well as providing
all modem control functions typically performed by
an external processor. The analog front end provides for 2 wire and 4 wire telephone line interface,
0/ A conversion, and most of the complex filtering
functions required in QAM/DPSK/FSK modems.
Refer to Figure 1 for a simplified block diagram of
the system.
The 89024 modem has built in auto-dialing and autoanswering capabilities. It can be configured to the
proper line signaling mode (Tone. or pulse), and to to
the type (CCITT or Bell) and speed of the calling or
answering modem. It can also detect and identify
call set-up signals of telephone networks, allowing
unattended data call operation. .
A full set of diagnostic loop-test features compatible
with CCITT V.54 is supported. The chip set also provides a line signal for audio monitoring of call progress, a comprehensive set of DAA control lines for a
simple interface to the telephone network, and a full
complement of TTL level RS-232/ V.24 handshake
signals.
In stand-alone modem applications, the 89024 chip
set along with a Data Access Arrang.ement (DAA), a
NOTICE:
Hayes is a registered trademark of Hayes Microcomputer Products, Inc.
Smartmodem 2400 is a trademark of Hayes Microcomputer Products, Inc.
Smartcom!1 is ~ registered trademark of Hayes Microcomputer Products, Inc.
4-2
inter
89024
PACKAGING
Both devices are available in standard DIP packages
as well as PLCC packages for surface mount appli·
cations.
SCLK
SOATA
vcc
STR
TSYNC
ClKOUT
...,
~
u ~
~
~
f!!
"... 8
... Ill>
~
...:>
...u~
TX3
X2
TX2
vss
Xl
TX2
X2
AOl
NC
AVee
VSS
Xl
AOl
AVec
TXl
AGNO
TXl
NC
TXO
RST
TXO
AGNO
HYB
NC
HYB
RST
AMP
ED
AMP
NC
A02
AZ2
I
AZl
Q
VBB
N
0
-
000(
270242-2
0
CD ...
>IX>
N
N
N
000(
000(
Q
""'
270242-3
28 Pin PLCC
28·Pln Plastic DIP
ADO
Q
ADl
AGND
AD2
VREF
AD3
VPO
AD4
B/C
A05
RST
AD6
SOATA
AD7
SCLK
ADS
TClO
AD9
TCLl
A010
s/i.
ADll
RTS
AD12
CTS
AD13
STR
A014
DTR
A015
SH
XTClK
270242-5
68 Pin PLCC
Figure 2. Device Packages
4·3
89024
dem will initiate a disconnect only ~tter a Y1 command. The optional disconnect requests originated
by the remote modem, are of two types, (1) disconnect when receiving long-space, and (2) disconnect
when received carrier is dropped. The modem chipset can also be configured to transmit 'long-space'
just before disconnection, in each of the aforementioned cases.
CALL ESTABLISHMENT,
TERMINATION AND RETRAIN
The 89024 modem system incorporates all protocols and functions required for automatic (or manual) establishment, progress and termination of a
data call.
The modem Chip-set has a built in auto-dialer, both
DTMF and Pulse type, and is capable of automatically adapting to the telephone dial type. The dialing
sequence on the telephone link conforms to the
CCITT V.25 recommendations. An exception to the
V.25 is that the interrupted calling tone will not be
transmitted by the calling modem, as is suggested in
V.22 bis.
Because the CCITT and Bell modem connection
protocols are quite different from each other and do
not provide recognition of remote modem type (Le.
V.22 bis to 212A), the Intel Chip-set provides the additional capability of identifying the remote modem
type. This feature is beneficial during the migration
phase of the technology from the 1200 bps to 2400
bps. In North America, where the installed base of
1200 bps modems is mostly made-up of 212A type,
this feature allows a "Data Base Service Provider"
to easily upgrade the existing 212A modems to 2400
bps V.22 bis standard, transparently, to 212A users.
Similarly, a user with a 89024 based modem system
can automatically call data bases with either 212A or
V.22 bis modems, without concern over the difference. This feature's benefits are realized .in smooth
upgrading of data links, with minimum cost and reduced disruption in services. Refer to Table 1 for a
detailed description of remote modem Cbnlpatibility.
The modem can detect the dial, busy and ringback
signals at remote end, and will provide call progress
messages to the user'. The modem is capable of redialing the last number dialed, by one command.
The modem when configured for auto-answer, will
answer an incoming call, remain silent for the two
second billing delay interval, before transmitting the
answer tones. Afterwards modem to modem identification and handshaking will proceed at a speed and
operating mode acceptable to both ends of the link.
The data call can also be setup by manual dialing
with the modems set to data mode, or by voice to
data transfer by means of mechanical switch (exclusion key), using the SH pin. Once set to data mode,
the modem handshaking will proceed before the
modems will be ready to accept and exchange data.
SOFTWARE CONFIGURATION
COMMANDS
This section lists the 89024 commands and registers
that may be used while configuring the modem.
Commands instruct the modem to perform an action, the value in the associated registers determine
how the commands are performed, and the result
codes retl,lrned by the modem tell the user about the
execution of the commands.
During data transmission, if one of the modems finds
that the received data is likely to have a high bit error
rate (indicated by a large mean square error in the
adaptive equalizer), it initiates a retrain sequence.
This automatic retrain feature is only available at
2400 bps, and conforms to CCITT V.22 bis recommendations.
The commands may be entered in a string, with or
without spaces in between. Any spaces within or between commands will be ignored by the modem.
During the entry of any command, the 'backspace'
key (CNTRl H) can be used to correct any error.
Upper case or lower case characters can be used in
the commands. Commands described in the following paragraphs refer to asynchronous terminals using ASCII codes.
Disconnection of the data call can be initiated by the
DTE at the local end, or by the remote DTE, (if the
modem is configured to accept it). Whether DTR will
initiate a disconnect, depends on the last &0 Command. Receiving a long space from a remote mo-
4-4
inter
89024
Table 1. Remote Modem Compatibility
Originating
Answer Modem
CCITT
CCITT
89024
Bell
Bell
CCITT
CCITT
Modem
300
1200
300
600
1200
2400
300
1200'
300
1200
-
-
300'
1200
300'
1200
-
-
Bell
CCITT
300
1200
300
600
1200
2400
-
-
300
-
-
600
-
1200'
1200'
1200
1200
89024
Bell
Bell
Modem
300
1200
300
300
300
1200
1200
-
-
-
600
Answering
Bell
CCITT
300
1200
300
600
1200
2400
-
-
300'
300'
1200
1200
-
Originating Modem
CCITT
CCITT
-
300
-
-
-
-
-
1200
1200
1200
2400
CCITT
CCITT
600
1200
2400
-
1200
1200
1200
1200
-
-
-
1200
1200
-
-
1200
2400
• These connection data rates are obtained when connecting 89024 based modems end to end. The same results may not
be obtained when a 89024 based modem is connected to other modems.
& Command Set (Continued)
Command Set
AT
A
AI
Bn
Os
En
Hn
In
Ln
Mn
0
an
Sn=x
Sn
Vn
Xn
Yn
Z
+++
Attention code.
Go off-hook in answer mode
Repeat previous command string
BELLICCITT Protocol Compatibility at
1200 bps
The dialing commands
(0-9 ABC 0 • # P R T S W ,; @)
Echo command (En)
Switch-Hook Control
If &J1 option is selected, H1 will also
switch the auxiliary relay
Request Product Code and Checksum
Speaker Volume
Monitor On/Off
On-Line
Result Codes
Write S Register
Read S Register
Enable Short-Form Result Codes
Enable Extended Result Code
Enable Long Space Disconnect
Fetch Configuration Profile
The Default Escape Code
&C
&0
&F
&G
&J
&L
&M
&P
&R
&S
&T
&W
&X
&2
4-5
DCDOptions
DTR Options
Fetch Factory Configuration Profile
Guard Tone
Telephone Jack Selection
Leased/Dial-up Line Selection
Async/Sync Mode Selection
Make/Break Pulse Ratio
RTS/CTS Options
DSR Options
Test Commands
Write Configuration to Non Volatile Memory
Sync Clock Source
Store Telephone Number
89024
Dial Modifiers
CONFIGURATION REGISTERS
P
R
T
S
W
·The modem stores all the configuration information
in a set of registers. Some registers are dedicated to
special command and function, and others are bitmapped, with different commands sharing the register space to store the command status.
S•
S1
S2
S3
S4
S5
S6
S7
S8
S9
S10
S11
S12
S13
S14'
S15
S16
S17
518'
S19
S20
S21'
S22'
S23'
S24
S25'
S26'
S27'
Ring to Answer
Ring Count. (Read Only)
Escape Code Character
Carriage Return Character
Line Feed Character
Back Space Character
Wait for Dial Tone
Wait for Data Carrier
Pause Time for the Comma Dial Modifier
Carrier Detect Response Time
Lost Carrier to Hang Up Delay
Not Used
Escape Code Guard Time
Not Used
Bit Mapped Option Register
Not Used
Modem Test Options
Not Used
TestTimer
Not Used
Not Used
Bit Mapped Options Register
Bit Mapped Options Register
Bit Mapped Options Register
Not Used
Delay to DTR (Sync Only)
RTS to CTS Delay (Half Dup.)
Bit Mapped Options Register
@
Pulse Dial
Originate call in Answer Mode
Tone Dial
Dial a stored number
Wait for dial tone
Delay a dial sequence
Return to command state
Initiate a flash
Wait for quit
If neither P or T is specified in the command
string, the modem automatically selects the
proper dial mode.
.
Example:
Terminal: AT &Z T 1 (602) 555-1212
Modem: OK
Result:
Modem stores T16025551212 in the external NVRAM.
The number can be dialed from asynchronous mode
by issuing the following command:
Terminal: AT OS
Modem: T16025551212
or by turning on DTR when in Synchronous Mode 2.
Up to 33 symbols (dial digits and dial modifiers) may
be stored. Spaces and other delimiters are ignored
and do not need to be included in the count. If more
than 33 symbols are supplied, the dial string will be
truncated to 33.
APPLICATIONS OVERVIEW
The block diagram of a stand-alone 300 to 2400 bps
Hayes compatible modE;lm is depicted in Figure 3.
The DAA section shown in this diagram may be obtained with FCC registration, or implemented using
the suggested diagram in Figure 4.
NOTE:
• These S registers can be stored in the NVRAM.
4-6
inter
89024
POWER SUPPLY
DGND
RST
AGND
+5 VOLTS
AUDIO
-5 VOLTS
~ONITOR
0.01 }o'F
TELEPHONE LINE
INTERFACE
I~
!'
X1
X2
ClKIN
ED
STR
I
SERIAL
Q
DIGITAL
Vee
DAA
AND
HYB
4Wj2W
89027
VREF
89026
m
z >g >
«
Q
"«
AZ1
ClKOUT
AZ2
ED
-=
z"'
0
r
"TIP
RING
0.02}o'F
I
Q
INTERFACE
TSYNC
TSYNC
V.24j
SDATA
SOATA
RS232C
SClK
A01
TRXCAR
A02
TXO
RCVCAR
TX1
TX2
SCLK
TX3
~
VI
~
~
A~P
STR
VI
VI
t~""
lEVEL
SELECT
OTE
«
Q
z
;!
VI
w
~I
TIP
z
:J
w
z
RING ~
OH
Ali
5H
~IC
i!J
~
270242-6
NOTE:
Pin #22 and pin #19 are NO CONNECT for the 89024 modem application.
Figure 3. Typical Modem Configuration
~I
r------t-~TIP
AIi~---------------------------------r-~
.---1-----+-+ RING
OH~----------------------------~
~IC
AUXILIARY
BUSINESS
PHONE
10K
+SV
"b-_--++. RING
~
g A02~-1~---'--~
~
TELEPHONE
LINE OR
DATA PHONE
'"~
0>
'" A01
~~
b-+.....-++. TIP
________________
-;r~R~I~NG~~::::::::::::::::::~
DETECTOR
5H~_________________-f~E~X~C:L~U;SI~O:N~K~E~Y~-----------~
STATE DETECTOR
270242-7
Figure 4. Typical Telephone Line Interface with Built In Hybrid
4-7
inter
89024
SYSTEM COMPATIBILITY SPECIFICATIONS
Parameter
Synchronous
Asynchronous
Specification
2400 bps ± 0.01 %
1200 bps ± 0.01 %
600 bps ±0.01 %
V.22 bis
V.22 and BELL 212A
V.22A,B
2400,1200,600 bps, character asynchronous.
o-300 bps anisochronous.
Asynchronous Speed Range
+ 1 % - 2.5% default. Extended + 2.3% - 2.5% range of CCITT
standards optional via software customization.
Asynchronous Format
8,9,10,11 bits, including start, stop, parity. Bits 8, 9, 11 optional
via S/W customization.
Synchronous Timing Source
Internal, derived from the local oscillator.
External, provided by DTE through XTCLK.
Slave, derived from the received clock.
Telephone Line Interface
Two wire full duplex over public switched network or 4 wire
leased lines.
On-chip hybrid and billing delay timers.
Output level -1 to -16 dBm
Modulation
V.22 bis, 16 point QAM at 600 baud.
V.22 and 212A, 4 pOint DPSK at 600 baud.
V.21 and 103, binary phase coherent FSK
Output Spectral Shaping
Square root of 75% raised cosine, QAM/PSK.
Transmit Carrier Frequencies
V.22 bis, V.22, 212A
V.21
Bell 103 mode
Receive Carrier Frequency Limits
V.22 bis, V.22, 212A
V.21
Bell 103
Originate
Answer
Originate 'space'
Originate 'mark'
Answer 'space'
Answer 'mark'
Originate 'space'
Originate 'mark'
Answer 'space'
Answer 'mark'
1200 Hz
2400 Hz
1180 Hz
980 Hz
1850 Hz
1650 Hz
1070 Hz
1270 Hz
2020 Hz
2225 Hz
2400 Hz
Originate
Answer
1200 Hz
Originate 'space' 1850 Hz
Originate 'mark'
1650 Hz
1180 Hz
Answer 'space'
Answer 'mark'
980 Hz
Originate 'space' ..,/ 2020 Hz
Originate 'mark',.r 2225 Hz
Answer 'space' t/1070 Hz
Answer 'mark' 11'1270 Hz
.01 %
.01 %
.01 %
.01 %
.01 %
.01 %
.01 %
.01 %
± .01 %
± .01 %
±
±
±
±
±
±
±
±
± 7 Hz
± 7 Hz
± 12 Hz
± 12 Hz
± 12 Hz
± 12 Hz
± 12 Hz
± 12 Hz
± 12 Hz
± 12 Hz
Energy Detect Sensitivity
Greater than -43 dBm ED is ON. Less thah -48 dBm ED is
OFF. Signal in dBm measured at A02.
Line Equalization
Fixed compromise equali,zation, transmit.
Adaptive equalizer for DPSK/QAM, receive.
Diagnostics Available
Local analog loopback.
Local digitalloopback.
Remote digitalloopback.
Local interface loopback.
Self Test Pattern Generator
Alternate 'ones' and 'zeros' and error detector, to be used along
with most loopbacks.
A number indicating the bit errors detected is sent to DTE.
4-8
inter
89024
RECEIVER PERFORMANCE SPECIFICATIONS
Parameter
Specification
Test condition: Unconditioned 3002 line, across the full dynamic range.
The noise bandwidth is 3 KHz flat.
Random Noise
Typical Bit Error rate of 1 in 100000 or better at 12 dB SNR at 300 bps, 5 dB
SNR at 600 bps, 8 dB SNR at 1200 bps and 16 dB SNR at 2400 bps.
Frequency Offsets(1)
± 7Hz.
Phase Jitter(1)
2400 bps - 15° peak to peak, at up to 300 Hz.
600, 1200 bps - 45° peak to peak, at up to 300 Hz.
NOTE:
1. There are no observable data errors for the received signals, for the above limits of line impairments.
These impairments are applied one at a time in absence of noise.
PERFORMANCE SPECIFICATIONS
Parameter
Min
DTMFLevel
Typ
Max
1.0
dBm
-35
DTMF Second Harmonic
DTMF Twist (Balance)
3
dB
100
ms
Pulse Dialing Rate
10
pps
39/61
33/67
%
%
Pulse Interdigit Interval
785
2.1
Hz
dB
1800
-6
Hz
dB
Dial Tone Detect Duration
3.0
sec
Ringback Tone Detect
Duration
Cadence
0.75
1.5
sec
Busy Tone Detect
Duration
Cadence
Software Controlled
US
UK, Hong Kong
sec
540
-3
Frequency
Amplitude
HYB enabled into 600n
ms
Billing Delay Interval
Guard Tone Frequency
Amplitude
atA01
dB
DTMF Duration
Pulse Dialing Make/Break
Comments
Units
referenced to High
channel transmit.
QAM/DPSK Modes Only
,
Off/On Ratio
0.2
sec
0.67
1.5
4-9
Off/On Ratio
inter
89024
In the transmit operation, the 89026 synthesizes
DTMF tones and the 300 bps FSK modem signal
prior to transmitting them to the 89027 as digitized
amplitude samples. During 1200 and 2400 bps operation, DPSK and QAM is used to send 2 or 4 bits of
information respectively at 600 baud to 89027. Since
the QAM coding technique is an inherently synchronous transmission mechanism, during asynchronous
QAM transmission, the asynchronous data is synchronized by adding or deleting stop bits. Following
the synchronization process, the 89026 transmits
digitized phase and amplitude samples to 89027
over a high speed serial link.
89026 OVERVIEW
The 89026 processor performs data manipulation,
signal processing and user interface functions. It
supports an external ROM, for user designed software. This option allows customer designed code to
control the signal processing algorithms resident in
the 89026. For example proprietary modem control
and call progress management applications can be
implemented using EPROMs or alternatively by having it burnt in the processor ROM (done so by Intel
factory contracting). On-Chip ROM is 8 Kbytes. A
block diagram of 89026 is in Figure 5.
In the receive operation, the information is received
by 89026 from 89027 as two Signals which are 90
degrees phase shifted from each other. These analog signals are then digitized by the 89026's onboard AID converter, and using DSP software algorithms the Signals are gain adjusted, adaptively
equalized for telephone line delay and amplitude distortion, and demodulated. Following the demodulation process by the 89026, the data is unscrambled,
and if necessary, returned to asynchronous format.
89026 contains a TTL compatible serial link to DTE/
DCE equipment, along with a full complement of
V.24/RS-232-C control signals. Alternatively, UART
or USART may be used to directly transfer data to
and from a microcomputer bus. The industry standard AT command set is supported by the 89026,
faCilitating communications compatibility between
89024 and most PC software written for the AT com.
mand set.
!.-____
...---------:!-o
---L_ I
COMMAND INTERPRETER
AUTO BAUD-RATE/
DATA FORMAT
DETECTOR
TSYNC
SCLK
SDATA
270242-8
Figure 5. 89026 Block Diagram
4·10
inter
89024
89026 PINOUT
Symbol
Function (89026)
Direction
Pin No.
68 pin
CLKIN
RST
12.96 MHz master clock from 89027
Chip reset (active low)
In
In
67
16
I
Q
STR
ED
In-phase received signal
Quadrature-phase received signal
Symbol Timing from 89027
Energy Detect input
In
In
In
In
11
10
24
9
TSYNC
SDATA
SCLK
Transmitter sync pulse to 89027
Serial Data to 89027
Serial Clock to 89027
Out
Out
Out
35
17
18
OH
SH
RI
AR
Off-Hook control to DAA
Switch-Hook from dataphone
Ring Indicator from DAA
Aux Relay control to DAA
Out
In
In
Out
33
44
42
38
TCL1
TCLO
CONFIG
NVRAM Data 1/0
NVRAM CLK
103/v.21 default option
NVRAMCE
Dumb/Smart mode select
Custom Firmware Disable
1/0
Out
In
Out
In
In
20
19
15
21
6
8
TM
Test Mode Indicator
Out
39
TXD
RXD
RTS
CTS
DSR
DCD
DTR
RCLK
TCLK
XTCLK
SS
REMLB
LCLLB
Transmitted data from DTE
Received data to DTE
Request to send from DTE
Clear to Send to DTE
Data Set Ready to DTE
Data Carrier Detect to DTE
Data Termina'i Ready from DTE
Received clock to DTE
Transmit clock to DTE
External timing clock from DTE
Speed Indicator to DTE
Speed select from DTE(4)
Remote Loopback Command from DTE
Local Loopback Command from DTE
In
Out
In
Out
Out
Out
In
Out
Out
In
Out
In
In
In
27
29
22
23
30
31
25
34
28
26
32
5
7
4
Vee
VPD
VREF
VSS1
VSS2
AGND
VSSS
Positive power Supply ( + SV)
Ram back-up power
AID converter reference
Digital ground
Digital ground
Analog ground
Back-bias generator output
+5V
+SV
+5V
GND
GND
AGND
Out
1
14
13
36
68
12
37
EA
ADO-AD15
AA
JS
External Memory enable
External memory access address/data(5)
Auto Answer
Jack Select
In
1/0
Out
Out
BIC
SIft.
DIS
ST
4-11
2
60-45
60
59
inter
89024
89026 PINOUT (Continued)
Symbol
Function (89026)
Direction
NMI
X2
CLKOUT
TEST
INST
ALE
RO
READY
BHE
WR
No-maskable Interrupt(Vss)(1)
Crystal output(NC)(2)
Clk output (NC)(2)
Factory test(Vcc)(3)
External memory instruction fetch
Address latch enable
External memory read
Ex1ernal memory ready(Vcc)(3)
Ex1ernal memory bus high enable
Ex1ernal memory write
Pin No.
68 pin
In
Out
Out
In
Out
Out
Out
In
Out
Out
3
66
65
64
63
62
61
43
41
40
NOTES:
1. Pins marked with (VSS) must be connected to VSS.
2. Pins marked with (NC) are to be left unconnected.
3. Pins marked with (Vecl must be connected to Vee.
4. SS pin reserved for future use.
5. With internal ROM enabled, ADO-AD1 are used as AA and JS.
DCD
In async operation, OCO remains Low regardless of
data carrier (default), or it can be programmed to
indicate received carrier signal is within the required
timing and amplitude limits. In sync operation Low
indicates the received carrier signal is within the required timing and amplitude limits.
89026 PIN DESCRIPTION
XTCLK
Transmitter timing from OTE, when external clock
option is selected.
TXD
The serial data from OTE to be transmitted on the
line. A logic 'high' is mark. In synchronous mode,
89026 samples this data on the rising edges of
TCLK.
DSR
Low indicates modem is off-hook, and it is in data
transmission mode, and the answer tone' is being
exchanged. CTS Low indicates modem is prepared
to accept data.
TCLK
Clock output from 89026 as timing source for data
exchange from OTE to modem. Serial data is read
on the rising edges of the TCLK. This output is High
in asynchronous mode.
RTS
In async mode RTS i~nored. Under command
control, in sync mode RTS can be ignored, or the
modem can respond with a Low on CTS.
RXD
DTR
The serial data to OTE. 'Mark' is a logic High. In
synchronous mode, the rising edge of RCLK occurs
in the middle of RXO.
&00 command will cause the modem to ignore OTR.
For &01 the modem assumes the asynchronous
command state on a Low to High transition of the
OTR circuit. The &02 command does the same as
&01 except the state of OTR will enable/disable
auto answer. A Low to High transition of OTR after
the &03 command will cause the modem to assume
.
the initialization state.
RCLK
Synchronous clock output. Rising edge of RCLK occurs in the middle of each RXO bit. This pin remains
High in asynchronous mode.
VBBS
Blc
This pin to be connected to AGNO through a
0.01 IJ-F capacitor.
Low configures the modem to CCITT V.21. High will
configure the modem to Bell 103, when at 300 bps
speed. This pin only affects the modem in 300 bps
operation.
TM
A Low indicates maintenance condition in the modem.
4-12
inter
89024
TCl1, TClO
REMlB
A logic Low on thi!l pin initiates a remote loopback
condition.
These pins are used as the serial clock and data for
interface to an NVRAM. Refer to Figure 3. TClO is
used to output a clock and serial data is read in on
TCL1.
SI
Selects one of the two data rates or ranges of rates
in the DTE to correspond to the rate in modem. Low
selects the higher rate (2400 CCITT/1200 BELL) or
range of rates. High selects the Low rate or range of
rates.
AR
This Auxiliary r.elay control is for switching a relay for
voice or data calls. High is voice, Low is data.
RI
DIS
A Low Signal from DAA indicates line ringing. This
input is ignored when the modem is configured for
leased line. This signal should follow the ring cadence.
A Low on this pin will indicate the smart mode which
will respond to all commands. A High will ignore all
commands.
OH
VREF
Voltage reference for the analog to digital converter
should be connected to the 89027 AVcc.
Low controls off hook. High indicates on hook.
When dialing, this control is used to pulse dial the
line.
VPD
SH
The internal RAM power down supply voltage to be
connected to 5 Volts during normal operation.
Used as a telephone voice to data switch or vice
versa. Any logic level transition will toggle the modem state. This input is ignored, if a software command attempts to switch the modem between voice
and data.
sf!..
The function of this pin is re-defined as external
NVRAM CEo
AA
Used as an indicator for Auto Answer status and
Ring indicator. Active low.
CON FIG
Low indicates availability of custom software modules in off-chip memory.
lCllB
A Low will set the modem in the local analog loopback test mode. Logic Low levels applied simultaneously to REMLB and LCLLB pins, sets the modem
to the local digital loopback.
EA
When High, memory access from address 2000H to
4000H are directed to on-chip ROM. When Low, all
memory access is directed to off-chip memory.
JS
Low is used to pulse A and A1 leads to control a 1A2
Key System jack.
• Notice: Stresses above those listed under "Absolute Maximum Ratings" may cause permanent dam-.
age to the device. This is a stress rating only and
functional operation of the device at these or any
other conditions above those indicated in the operational sections of this sPecification is not implied. Exposure to absolute maximum rating conditions for
extended periods may affect device reliability.
89026 ABSOLUTE MAXIMUM
RATINGS"
TemperatureUnderBias .......... -10to +80·C
Storage Temperature ............ - 40 to + 125· C
Voltage from Any Pin to
Vss or AGND ................. -0.3V to + 7.0V
Average Output Current from Any Pin ....... 10 mA
NOTICE' Specifications contained within the
following tables are subject to change.
Power Dissipation ....................... 1.5 Watts
4-13
89024
OPERATING CONDITIONS
Symbol
Parameter
Min
Max
Units
TA
Ambient Temperature Under Bias
0
+70
C
VCC
Digital Supply Voltage
4.75
5.25
V
VREF
Analog Supply Voltage
4.75
Vcc-·3
5.25
Vcc+· 3
V
V
FREQ
ClKIN Frequency 12.96 Mhz
-0.01%
+0.01%
VPD
Power-Down Supply Voltage
4.75
5.25
V
NOTE:
Vees should be C9nnected to AGND through a 0,01 /-LF capacitor. AGND, Vss and the 89027 Vss, AGND must be nominally
at the same potential.
DC CHARACTERISTICS
Symbol
Min
Max
Units
Vil
Input low Voltage
Parameter
-0.3
+0.8
V
VIl1
Input Low Voltage,RST
-0.3
+0.7
V
VIH
Input High Voltage
2.0
Vee +·5
V
VIH1
Input High Voltage, RST Rising
2.4
Vee +·5
V
VIH2
Input High Voltage, RST Falling
2.1
Vee +·5
V
VIH3
Input High Voltage, NMI, ClKIN
2.4
Vcc +·5
V
VOL
Output low Voltage
0.45
V
See Note 1.
VOH
Output High Voltage
V
See Note 2.
Icc
Vee Supply Current
200
mA
All outputs disconnected
IpD
VPD Supply Current
1
mA
Normal operation and Power-Down
15
mA
±10
p.A
Vin=O to Vee See Note 3
IREF
VREF Supply Current
III
Input leakage Current
IIH
Input High Current to EA
IlL
Input low Current
2.4
Comments
ExceptRST
Except'R'S'f,
NMI,ClKIN
100
p.A
VIH=2.4V
-100
p.A
Vil = 0.45V See Note 4
IIL1
Input low Current to 'R'S'f
-2
mA
Vil =0.45V
11L2
Input low Curr~nt SI A; SR, RI, READY
-50
p.A
Vil =0.45V
Cs
Pin Capacitance (Any Pin to Vss>
10
pF
1 MHz
NOTES:
,
1. IOL = 0.36 mA for pins TClO, TCl1, B/C, RTS, C'fS, DSR, OCD, Si, AR, and OR. Alec if ADO - AD15 are configured as 1/
o ports.
,
IOL = 2.0 mA for TM, ClKOUT, ALE, BRE, RD, WR, RXD, 'i'C[j(, and ADO - AD15 when used as external memory bus.
2.loH = -20 /-LA forJllns TClO, TCL1, B/C, RiS, C'fS, DSR, OCD, Si, AR, and OR.
IOH = -200 /-LA for TM, ClKOUT, ALE, BHE, RD, WR, RXD, TClK, and ADO - AD15 when used as external memory bus.
ADO - AD15 when used as 110 ports, haveEopen-drain outputs. '
3. For pins l5'fR, XTrnJ<, TXD, DI'S, 'S'S, R MlB, lCllB, CONFIG, ADO-AD15.
4. TClO, TCl1, Bic, RTS. 5. Power must be applied to the device in the following sequence: Vss first, then Vco.
4-14
89024
AC CHARACTERISTICS (VCC. VPD
= 4.75 to 5.25 Volts; TA = O·Cto 70·C; ClKIN = 12.96 MHz)
Test Conditions: Load capacitance on output pins = 80 pF
Frequency = 12.96 MHz
Timing Requirements
Symbol
Parameter
TAVDV
TRLDV
Min
Max
Units
Address Valid to Input Data Valid
5Tosc-90
ns
RD Active to Input Data Valid
3Tosc-60
ns
Tosc-20
ns
TRXDX
Data Hold after RD Inactive (1)
TRXDZ
RD Inactive to Input Data Float (1)
0
ns
Timing Responses
Symbol
FXTAL
Parameter
CLKIN Frequency
Min
Max
-0.01%
+0.01%
Units
Tosc
CLKIN Period
TCHCH
ClKOUT Period (1)
3Tosc (2)
3Tosc (2)
ns
TCHCL
CLKOUT High Time
Tosc-20
Tosc+20
ns
ns
77
TCLLH
CLKOUT Low to ALE High
-5
20
ns
TLlCH
ALE Low to CLKOUT High
Tosc-20
Tosc+40
ns
TLHll
ALE Pulse Width
Tosc-25
Tosc+15
ns
TAVLl
Address Setup to End of ALE
Tosc-50
ns
TLLRL
End of ALE to RD or WR active
Tosc-20
ns
TlLAX
Address Hold after End of ALE
Tosc-20
ns
TWLWH
WR Pulse Width
2Tosc-35
ns
TQVWX
Output Data Setup to End of WR
2Tosc-60
ns
TWXQX
Output Data Hold after End of WR
Tosc-25
ns
TWXLH
End of WR to next ALE
2Tosc-30
ns
TRLRH
RD Pulse Width
3Tosc-30
ns
TRHLH
End of RD to next ALE
Tosc-25
ns
NOTES:
(1) This specification is not tested. but is verified by design analysis and/or derived from other tested parameters.
(2) CLKOUT is directly generated as a divide by 3 of the oscillator. The period will be 3Tosc ± 10 nsec if Tosc is constant
and the rise and fall times on XTAL are less than 10 nsec.
4-15
inter
89024
WAVEFORM
ClKIN
I
!-TC'HCH
ClK OUT
--J
-
I
I
~\
I
J
TCHCl
TCllH
TllCH
TLHLL
'.
ALE
"
j
J
TLlRL
,
TRLRH
~
TRHlH
TRXDZ
TAVLL
f-
TLLAX
f-..+
TRXDX
!-TRLDV_
ADDR OUT
AD
\
DATA IN
~
TAVDV
TLLRl
,
TWXLH---.,
!-TWLWH
TAVLL
~
TLLAX
IADDR OUT
AD
SHE. INST
TWXOX
!-TOVWX
"
VALID
DATA OUT
/
270242-9
Figure 6. Bus Signal Timings
4·16
inter
89024
ters, combined with the necessary guard tone,
smoothed by a low pass filter, and transmitted to the
line. Prior to transmitting either FSK or QAM signals
to the telephone line, the 89027 adjusts the signal
gain through an on-board programmable gain amplifier.
89027 OVERVIEW
The 89027 is a 28 pin CMOS analog front end device, which performs most of the complex filtering
functions required in modem transmitters and receivers. A general block diagram of this chip is provided in Figure 7. Most of the analog signal processing functions in this chip are implemented with
CMOS switched capacitor technology. The 89027
functions are controlled by 89026, through a high
speed serial data link.
During the receive operation, the received FSK and
QAM signals are passed through anti-alias filters,
bandsplit filters, automatic gain control and carrier
detect circuits, a Hilbert transform filter, and the output sent to the 89026 processor as analog signals.
During FSK transmit operation, the 89027 receives
digitally synthesized mark and space sinusoid amplitude information from the 89026. The 89027 converts the signal to its analog equivalent, filters it, and
transmits it to the telephone line. For QAM transmission, the signal constellation points are transferred
to the 89027. This information is modulated into an
analog signal, passed through spectral shaping fil-
Other functions provided by the 89027 are: an onboard two wire to four wire circuit with disable capability, an audio monitor output with software configurable gain, and a programmable gain transmit signal.
The 89027 is available in 28 pin plastic DIP and
PLCC packages.
.----------------------------------------------------------------I
r--------___
~--;.AMP
A02
Hya
ED
~------~~------------~
STR +0-----__0---41---1
...--...... '---i+ AO!
"-r--l----r---l---'----r-------Vee Vaa
AGND
Vss
RST
AVee
AZ2
AZ!
OUTPUT LEVEL
TX3-TXO
270242-10
Figure 7_ 89027 Block Diagram
4-17
inter
89024
89027 PINOUT
Direction
Pin No.
+5V
-5V
DGND
AGND
+5
28
15
24
21
7
Xtal Oscillator
Xtal Oscillator
12.96 MHz Clock Output to Microcontrolier
In
Out
Out
23
25
26
RST
HYB
AZ1
AZ2
Chip reset (active low)
Enable on-chip hybrid(1)
Auto-zero capacitor
Auto-zero capacitor
In
In
Out
In
20
10
16
17
SDATA
SCLK
TSYNC
Serial data from 89026
Serial clock from 89026
Transmitter sync from 89026
In
In
In
2
1
3
STR
ED
I
Q
Symbol timing to 89026
Receiver energy detect to 89026
In phase received signal to 89026
Quadrature-phase received signal to 89026
Out
Out
Out
Out
27
18
13
14
A01
A02
AMP
Transmitter output
Receiver input
Output to monitor speaker
Out
In
Out
6
12
11
TXO
TX1
TX2
TX3
Transmitter level control (LSB)(1)
Transmitter level control(1)
Transmitter level control(1)
Transmitter level control (MSB)(1)
In
In
In
In
9
8
5
4
Symbol
Function (89027)
Vee
Vss
Vss
AGND
AVee
Positive Power Supply (Digital)
Negative Power Supply
Digital Ground
Analog Ground
Positive Power Supply (Analog)
X1
X2
CLKOUT
NOTES:
1. When held high, these pins should be connected through 10K resistors to AVec.
2. Pins # 19 and # 22 are No Connect.
A01
89027 Pinout Description
Transmitter output. .
TXO-3
These four pins control the transmitted signal level.
A02
HYB
Receiver input.
This pin enables the on-chip hybrid. A line impedance matching network must be connected between
A01 and A02 when HYB is enabled. If HYB is disabled and an external 4W12W hybrid is used, the
hybrid receive path must be amplified by 6 dB.
This output can be used to monitor the cali progress
tones and operation of the line.
AMP
4-18
inter
89024
ABSOLUTE MAXIMUM RATINGS
Power Dissipation ........................ 1.35W
Temperature Under Bias .......... -10 to + 80° C
Voltage with Respect
to VSS(1) ....................... -0.3V to 6.5V
Storage Temperature ............ - 40 to + 125° C
All Input and Output Voltages
with Respect to Vss .......... - 0.3V to + 13.0V
NOTE:
1. Applies to pins SCLK, SDATA, TSYNC, RST,
All Input and Output Voltages
with Respect to Vee & AVee ..... -13.0V to 0.3V
HYB, TXO-TX3 only.
POWER DISSIPATION Ambient Temp = O°C to 70°C, Vee = AVee = 5V ±5%, Vss = AGND = OV.
Symbol
Parameter
Min
Typ
Max
Units
AlcC1
AVee Operating Current
19
25
mA
ICC1
Vee Operating Current
7
10
mA
Ibb1
Vss Operating Current
-19
-25
mA
Alccs
Vee Standby Current
0.2
1
mA
Iccs
Vee Standby Current
7
10
mA
Ibbs
Vss Standby
-0.6
-2
mA
Pdo
Operating Power Dissipation
225
300
mW
Pds
Standby Power Dissipation
40
70
mW
DC CHARACTERISTICS (Ta = 0°Cto70°C, AVee = Vee = 5V ±5%, Vss = 5V ±5%, AGND =
Vss = OV), supply voltage must be at the same potential as the 89026 power supply. Typical Values are for
Ta = 25°C and nominal power supply values. Power must be applied in the following sequence: Vss, AGND,
Vss, Vee, and AVee. Vee, AVee and 89026 VREF must be nominally at the same potential.
Inputs: TXO, TX1, TX2, TX3, HYB, RST
Outputs: CLKOUT
Symbol
Parameter
Min
Max
Units
Test Condition
Vss :S: Vin :S: Vee
iii
Input Leakage Current
-10
+10
/LA
Vii
Input Low Voltage
Vss
0.8
V
Vih
Input High Voltage
3.0
Vee
V
Vol
Output Low Voltage
0.4
V
Voh
Output High Voltage
V
Ich :S: 50/La, 1 TTL load
Vco1
CLKOUT Low Voltage
0.4
V
C1 = 60 pF
Vcoh
CLKOUT High Voltage
V
C1 = 60 pF
2.4
2.4
4-19
101
~
-1.6mA,1 TTL load
inter
89024
AC CHARACTERISTICS (Ta = 25°C, Vcc = AVcc = 5 V, Vss = AGND = 0, VBB '" -5 V)
ANALOGINPUTS:A02
Parameter
Typ
Min
Max
Units
-9
dBm
A02 Input Voltage Range
A02 Input Resistance
-3.5V
:::>
0
U
V»
'"
0-
V>
'"
...J
(.)
TX2
X2
AOl
vss
Xl
AVee
AGND
TXl
CLKSEL
TXO
RST
TXO
AGND
HYB
CLKOUT2
HYB
RST
A~P
ED
AMP
CLKOUT2
A02
AZ2
I
AZl
Q
vee
-0
N
0
I:D_NC
m NNW
> « «
«
290181-3
290181-2
28 Pin PLCC
28 Pin Plastic DIP
8
~~
~>
o
U
....
N
x
~ IYl~
0
tn~
~~ 10~
Q
ADO
I
ADl
AGNO
AD2
VREF
AD3
V pD
AD4
BIC
ADS
RST
AD6
SDATA
AD7
SClK
AD8
TelO
AD9
TCll
AD10
sli.
ADll
RTS
A012
CTS
A013
STR
A014
OTR
AD1S
XTClK
elKIN2
290181-4
68 Pin PLCC
Figure 2. Device Packages
4-24
inter
89C024XE
dem will initiate a disconnect only after a Y1 command. The optional disconnect requests originated
by the remote modem, are of two types, (1) disconnect when receiving long-space, and (2) disconnect
when received carrier is dropped. The modem chipset can also be configured to transmit 'long-space'
just before disconnection, in each of the aforementioned cases.
CALL ESTABLISHMENT,
TERMINATION AND RETRAIN
The 89C024XE modem system incorporates all protocols and functions required for automatic (or manual) establishment, progress and termination of a
data call.
The modem chip-set has a built in auto-dialer, both
DTMF and Pulse type, and is capable of automatically adapting to the telephone dial type. The dialing
sequence on the telephone link conforms to the
CCITT V.25 recommendations. An exception to the
V.25 is that the interrupted calling tone will not be
transmitted by the calling modem, as is suggested in
V.22 bis.
Because the CCITT and Bell modem connection
protocols are quite different from each other and do
not provide recognition of remote modem type (Le.
V.22 bis to 212A), the Intel chip-set provides the additional capability of identifying the remote modem
type. This feature is beneficial during the migration
phase of the technology from the 1200 bps to 2400
bps. In North America, where the installed base of
1200 bps modems is mostly made-up of 212A type,
this feature allows a "Data Base Service Provider"
to easily upgrade the existing 212A modems to 2400
bps V.22 bis standard, transparently, to 212A users.
Similarly, a user with a 89C024XE based modem
system can automatically call data bases with either
212A or V.22 bis modems, without concern over the
difference. This feature's benefits are realized in
smooth upgrading of data links, with minimum cost
and reduced disruption in services. Refer to Table 1
for a detailed description of remote modem compatibility.
The modem can detect the dial, busy and ringback
signals at remote end, and will provide call progress
messages to the user. The modem is capable of redialing the last number dialed, by one command.
The modem when configured for auto-answer, will
answer an incoming call, remain silent for the two
second billing delay interval, before transmitting the
answer tones. Afterwards modem to modem identification and handshaking will proceed at a speed and
operating mode acceptable to both ends of the link.
The data call can also be setup by manual dialing
with the modems set to data mode, or by voice to
data transfer by means of mechanical switch (exclusion key), using the SH pin. Once set to data mode,
the modem handshaking will proceed before the
modems will be ready to accept and exchange data.
SOFTWARE CONFIGURATION
COMMANDS
This section lists the 89C024XE commands and registers that may be used while configuring the modem. Commands instruct the modem to perform an
action, the value in the associated registers determine how the commands are performed, and the result codes returned by the modem tell the user
about the execution of the commands.
During data transmission, if one of the modems finds
that the received data is likely to have a high bit error
rate (indicated by a large mean square error in the
adaptive equalizer), it initiates a retrain sequence.
This automatic retrain feature is only available at
2400 bps, and conforms to CCITT V.22 bis recommendations.
The commands may be entered in a string, with or
without spaces in between. Any spaces within or between commands will be ignored by the modem.
During the entry of any command, the 'backspace'
key (CNTRl H) can be used to correct any error.
Upper case or lower case characters can be used in
the commands. Commands described in the following paragraphs refer to asynchronous terminals using ASCII codes.
Disconnection of the data call can be initiated by the
DTE at the local end, or by the remote DTE, (if the
modem is configured to accept it). Whether DTR will
initiate a disconnect, depends on the last &D command. Receiving a long space from a remote mo-
4-25
89C024XE
Table 1: Remote Modem Compatibility
Originating
89C024XE
Modem
Bell
CCITT
300
1200
300
600
1200
2400
Answering
89C024XE
Modem
Bell
CCITT
300
1200
300
600
1200
2400
Bell
300
Bell
1200
300
1200'
300
1200
-
Answer Modem
CCITT
CCITT
300
600
-
-
300
-
1200'
1200'
1200
1200
Bell
300
Bell
1200
300
300
1200
1200
300'
300'
600
-
Originating Modem
CCITT
CCITT
300
600
-
-
300
-
1200
1200
600
-
CCITT
1200
CCITT
2400
300'
1200
300'
1200
-
-
1200
1200
1200
2400
CCITT
1200
CCITT
2400
1200
1200
1200
1200
-
-
1200
1200
1200
2400
• These connection data rates are obtained when connecting 89C024XE based modems end to end. The same results may
not be obtained when a 89C024XE based modem is connected to other modems.
& Command Set (Continued)
Command Set
AT
A
AI
Bn
Ds
En
Hn
In
Ln
Mn
0
On
Sn=x
Sn
Vn
Xn
Yn
2
+++
Attention code.
Go off-hook in answer mode
Repeat previous command string
BELL/CCITT Protocol Compatibility at
1200 bps
The dialing commands
(0-9 ABC D • # P R T S W,; @)
Echo command (En)
Switch-Hook Control
If &J1 option is selected, H1 will also
switch, the auxiliary relay
Request Product Code and Checksum
Speaker Volume
Monitor On/Off
On-Line
Result Codes
Write S Register
Read S Register
Enable Short-Form Result Codes
Enable Extended Result Code
Enable Long Space Disconnect
Fetch Configuration Profile
The Default Escape Code
&C
&D
&F
&G
&J
&L
&M
&P
&R
&S
&T
&W
&X
&2
4-26
DCDOptions
DTR Options
Fetch Factory Configuration Profile
Guard Tone
Telephone Jack Selection'
Leased/Dial-up Line Selection
Async/Sync Mode Selection
Make/Break Pulse Ratio
RTS/CTS Options
DSR Options
Test Commands
Write Configuration to Non Volatile Memory
Sync Clock Source
Store Telephone Number
inter
89C024XE
Dial Modifiers
CONFIGURATION REGISTERS
P
R
T
S
W
The modem stores all the configuration information
in a set of registers. Some registers are dedicated to
special command and function, and others are bitmapped, with different commands sharing the register space to store the command status.
S'
S1
S2
S3
S4
S5
S6
S7
S8
S9
S10
S11
S12
S13
S14
S15
S16
S17
S18
S19
S20
S21
S22
S23
S24
S25
S26
S27
•
•
•
•
•
•
•
•
Ring to Answer
Ring Count. (Read Only)
Escape Code Character
Carriage Return Character
Line Feed Character
Back Space Character
Wait for Dial Tone
Wait for Data Carrier
Pause Time for the Comma Dial Modifier
Carrier Detect Response Time
Lost Carrier to Hang Up Delay
Not Used
Escape Code Guard Time
Not Used
Bit Mapped Option Register
Not Used
Modem Test Options
Not Used
Test Timer
Not Used
Not Used
Bit Mapped Options Register
Bit Mapped Options Register
Bit Mapped Options Register
Not Used
Delay to DTR (Sync Only)
RTS to CTS Delay (Half Dup.)
Bit Mapped Options Register
@
Pulse Dial
Originate call in Answer Mode
Tone Dial
Dial a stored number
Wait for dial tone
Delay a dial sequence
Return to command state
Initiate a flash
Wait for quit
If neither P or T is specified in the command
string, the modem automatically selects the
proper dial mode.
Example:
Terminal: AT &Z T 1 (602) 555-1212
Modem: OK
Result:
Modem stores T16025551212 in the external NVRAM.
The number can be dialed from asynchronous mode
by issuing the following command:
Terminal: AT OS
Modem: T16025551212
or by turning on DTR when in Synchronous Mode 2.
Up to 33 symbols (dial digits and dial modifiers) may
be stored. Spaces and other delimiters are ignored
and do not need to be included in the count. If more
than 33 symbols are supplied, the dial string will be
truncated to 33.
APPLICATIONS OVERVIEW
The block diagram of a stand-alone 300 to 2400 bps
Hayes compatible modem is depicted in Figure 3.
The DAA section shown in this diagram may be obtained with FCC registration, or implemented using
the suggested diagram in Figure 4.
NOTE:
• These S registers can be stored in the NVRAM.
4-27
inter
89C024XE
POWER SUPPLY'
DGND
RST
AUDIO
MONITOR
-5 VOLTS
AGND
+5 VOLTS
TELEPHONE LINE
INTERrACE
llii"'''~
XI
u
0
%
..
U
..
" "Vee
~ «
X2
VREF
CLKIN
N89C026XE
ED
STR
I
Q
TSYNC
89027
..'"
%
0
TIP
AZI
CLKOUT
ED
AZ2
STR
AMP
AO.
I
Q
SDATA
TXI
SCLK
SCLK
TX2
CLKOUT2
TX3
en
~
z
iii
~
TRXCAR
.1l
RCVCAR
;!
RING
O.02)"r
A02
TXO
TSYNC
SDATA
CLKIN2
...
DAA
AND
~W/2W
Hya
0
l~~·'
LEVEL
SELECT
%
en
...
...
%
MI
::;
TIP
%
OH
RING ~
t=
AR
MIC
j
SH
Ri
u
u
l;l
~
290181-5
Figure 3. Typical Modem Configuration
MI
.------+-+ TIP
AR~-------------------------------;--~
OH~-------------~
.--+----+--+ RING
AUXILIARY
BUSINESS
PHONE
MIC
10K
.....--++. RING
I:;
~
o
'"
~
TELEPHONE
LINE OR
DATA PHONE
N
o
'"
00
A01
....---lH'" TIP
~+
~--~----------~o
Ri~---------i~D:a~~~~~~O:R~::::::::::::::::~~
--~
SH..
__________________
~~EX~C~L~U~SI~O~N~K~E~Y~:::::::::::::::::::J~
STATE DETECTOR
290181-6
Figure 4. Typical Telephone Line Interface with Built In Hybrid
4-28
89C024XE
SYSTEM COMPATIBILITY SPECIFICATIONS
Parameter
Synchronous
Asynchronous
Specification
2400 bps ± 0.01 %
1200 bps ±0.01 %
600 bps ±0.01%
V.22 bis
V.22 and BELL 212A
V.22A,B
2400, 1200, 600 bps, character asynchronous.
o- 300 bps anisochronous.
Asynchronous Speed Range
+ 1 % - 2.5% default. Extended + 2.3% - 2.5% range of CCITT
standards optional via software customization.
Asynchronous Format
8,9,10,11 bits, including start, stop, parity. Bits 8, 9, 11 optional
via S/W customization.
Synchronous Timing Source
Internal, derived from the local oscillator.
External, provided by DTE through XTCLK.
Slave, derived from the received clock.
Telephone Line Interface
Two wire full duplex over public switched network or 4 wire
leased lines.
On-chip hybrid and billing delay timers.
Output level -1 to -16 dBm
Modulation
V.22 bis, 16 point QAM at 600 baud.
V.22 and 212A, 4 point DPSK at 600 baud.
V.21 and 103, binary phase coherent FSK
Output Spectral Shaping
Square root of 75% raised cosine, QAM/PSK.
Transmit Carrier Frequencies
V.22 bis, V.22, 212A
V.21
Bell 103 mode
Receive Carrier Frequency Limits
V.22 bis, V.22, 212A
V.21
Bell 103
Originate
Answer
Originate 'space'
Originate 'mark'
Answer 'space'
Answer 'mark'
Originate 'space'
Originate 'mark'
Answer 'space'
Answer 'mark'
1200 Hz
2400 Hz
1180 Hz
980 Hz
1850 Hz
1650 Hz
1070 Hz
1270 Hz
2020 Hz
2225 Hz
±
±
±
±
±
±
±
.01 %
.01 %
.01%
.01%
.01 %
.01 %
.01 %
± .01 %
± .01 %
± .01 %
Originate
Answer
Originate 'space'
Originate 'mark'
Answer 'space'
Answer 'mark'
Originate 'space'
Originate 'mark'
Answer 'space'
Answer 'mark'
2400 Hz
1200Hz
1850 Hz
1650 Hz
1180 Hz
980 Hz
2020 Hz
2225 Hz
1070 Hz
1270 Hz
±
±
±
±
±
±
±
±
±
±
7 Hz
7Hz
12 Hz
12 Hz
12 Hz
12 Hz
12 Hz
12 Hz
12 Hz
12 Hz
Energy Detect Sensitivity
Greater than -43 dBm ED is ON. Less than -48 dBm ED is
OFF. Signal in dBm measured at A02.
Line Equalization
Fixed compromise equalization, transmit.
Adaptive equalizer for DPSK/QAM, receive.
Diagnostics Available
Local analog loopback.
Local digital loopback.
Remote digitalloopback.
Local interface loopback.
Self Test Pattern Generator
Alternate 'ones' and 'zeros' and error detector, to be used along
With most loop backs.
A number indicating the bit errors detected is sent to OTE.
4-29
inter
8QC024XE
RECEIVER PERFORMANCE SPECIFICATIONS
Parameter
Specification
Test condition: Unconditioned 3002 line, across the full dynamic range.
The noise bandwidth is 3 KHz flat.
Random Noise
Typical Bit Error rate of 1 in 100000 or better at 12 dB SNR at 300 bps, 5 dB
SNR at 600 bps, 8 dB SNR at 1200 bps and 1'6 dB SNR at 2400 bps.
Frequency Offsets(1)
± 7 Hz.
Phase Jitter(1)
2400 bps - 15° peak to peak, at up to 300 Hz.
600, 1200 bps - 45° peak to peak, at up to 300 Hz.
NOTE:
1. There are no observable data errors for the received signals, for the above limits of line impairments.
These impairments are applied one at a time in absence of noise.
PERFORMANCE SPECIFICATIONS
Parameter
Min
Typ
DTMF Level
Max
Units
dBm
5.0
DTMF Second Harmonic
-35
dB
DTMF Twist (Balance)
3
dB
Default DTMF Duration
100
ms
10
pps
39/61
33/67
%
%
Pulse Dialing Rate
Pulse Dialing Make/Break
Pulse Interdigit Interval
785
2.1
Hz
dB
1800
-6
Hz
dB
Dial Tone Detect Duration
3.0
sec
Ringback Tone Detect
Duration
Cadence'
0.75
1.5
sec
Busy Tone Detect
Duration
Cadence
"
Software Controlled
US
UK, Hong Kong
sec
540
-3
Frequency
Amplitude
HYB enabled into 600n
ms
Billing Delay Interval
Guard Tone Frequency
Amplitude
Comments
atA01
referenced to High
channel transmit.
QAM/DPSK
Modes Only
,
Off/On Ratio
0.2
sec
0.67
1.5
4-30
OffiOn Ratio
inter
89C024XE
signal and transmits them to the 89027 as digitized
amplitude samples. During 1200 and 2400 BPS operation, DPSK and QAM is used to send 2 to 4 bits
of information respectively at 600 baud to the AFE.
Because the QAM coding technique is an inherently
synchronous transmission mechanism, in the case
of asynchronous QAM transmission, the asynchronous data is synchronized by adding or deleting stop
bits. Following the synchronization process, the
89C026XE transmits digitized phase and amplitude
samples to 89027 over the high speed serial link.
89C026XE OVERVIEW
The 89C026XE processor performs data manipulation, signal processing and user interface functions.
It supports external ROM and RAM to perform asynchronous, synchronous, and lor custom code with or
without high level protocol functions. These options
will allow proprietary modem control, functions, call
progress management applications to be implemented. A block diagram of the 89C026XE is provided in Figure 5.
In the receive operation, the information is received
by the 89C026XE from the 89027 as two signals
which are 90 degrees phase shifted from each other. These analog signals are then digitized by the
AID converter resident on the 89C026XE. By using
DSP algorithms, the received signals are processed
using adaptive equalization for telephone line delay,
amplitude distortion and gain adjustment is executed
and the signal demodulated. Following demodulation, the data is unscrambled, and if necessary, returned to asynchronous format.
89C026XE contains a TTL compatible serial link to
DTE equipment, along with a full complement of
V.24/RS-232-C control signals. Alternatively, a
UART or USART may be used directly to transfer
data to and from a microcomputer bus. The industry
standard AT command set is supported by the
89C026XE, facilitating compatability between
89C024XE and most PC software written for the AT
command set.
During transmit operation, the 89C026XE synthesizes DTMF tones and the 300 BPS FSK modem
e.
r------------------L--I
r-------i-Q
p __________________________________________________ . _ . __
I
I
I
I
I
I
COMMAND INTERPRETER
I
I
AUTO BAUD-RATE/
DATA FORMAT
DETECTOR
RXD(103)
TDX(104) ~
TCLK(114)
RCLK(115)
XTCLK( 113) ----1...-.-.+
RTS~ ~el
CTS
DTR
DSR
REMLB(140)
LCLLB(141)
... >-
--'---+ <5 ~
I
'" '"
---r--+ !z ~
8~
SS(lll1~ ~~
51
... en
fM
.... z
~s
oeD
TCLO~ ~~
:;i i3
TCLl
--'---+
S~-+-+
CON FIG
BIS. ---r--+
G~
08
TSYNC
SCLK
SDATA
OH
AR
I
SR~
Ri -..---.
D/S
---:---+
-F;K- ~
MUX
iiMTf ;-ANSWER
FSK
MOD : TONE:
I-:D~A~TA;'-'------------+I
. , GEN.'
TONE
GEN.
:
I
.!-- ED
I
~~~----__- - - -__~::::::::::::::~~~~~~~~:J~STR
~--I---r-l--l---r--l----r---l----------------------------!
RST
EA
VpD
Vee VSS1
VSS2
AGND
Vees
290181-7
Figure 5. 89C026XE Block Diagram
4-31
inter
89C024XE
89C026XE PINOUT
Symbol
Function (89026)
Direction
Pin No.
CLKIN
CLKIN2
RST
12.96 MHz master clock from 89027
270 KHz from 89027
Chip reset (active low)
In
In
In
67
44
16
I
Q
STR
ED
In-phase received Signal
Quadrature-phase received signal
Symbol Timing from 89027
Energy Detect input
In
In
In
In
11
10
24
9
TSYNC
SDATA
SCLK
Transmitter sync pulse to 89027
Serial Data to 89027
Serial Clock to 89027
Out
Out
Out
35
17
18
OH
SH
RI
AR
Off-Hook control to DAA
Switch-Hook from dataphone
Ring Indicator from DAA
Aux Relay control to DAA
Out
In
In
Out
33
5
42
38
TCL1
TCLO
BIC
S/A
D/S
CONFIG
NVRAM Data I/O
NVRAMCLK
103/V.21 default option
NVRAMCE
Dumb/Smart mode select
Custom Firmware Disable
I/O
Out
In
Out
In
In
20
19
15
21
6
8
TM
Test Mode Indicator
Out
39
TXD
RXD
RTS
CTS
DSR
DCD
DTR
RCLK
TCLK
XTCLK
REMLB
LCLLB
Transmitted data from DTE
Received data to DTE
Request to send from DTE
Clear to Send to DTE
Data Set Ready to DTE
Data Carrier Detect to DTE
Data Terminal Ready from DTE
Received clock to DTE
Transmit clock to DTE
External timing clock from DTE
Speed Indicator to DTE
Remote Loopback Command from DTE
Local Loopback Command from DTE
In
Out
In
Out
Out
Out
In
Out
Out
In
Out
In
In
27
29
22
23
30
31
25
34
28
26
32
7
4
Vee
VPD
VREF
VSS1
VSS2
AGND
VeBs
Positive power supply ( + 5V)
Ram back-up power
A/D converter reference
Digital ground
Digital ground
Analog ground
Back-bias generator output
+5V
+5V
+5V
GND
GND
AGND
Out
1
14
13
36
68
12
37
EA
ADO-AD15
AA
JS
External Memory enable
External memory access address/data(5)
Auto Answer
Jack Select
In
1/0
Out
Out
Si
4-32
2
60-45
60
59
intJ
89C024XE
89C026XE PINOUT (Continued)
Symbol
Function (89026)
NMI
X2
CLKOUT
TEST
INST
ALE
RD
READY
BHE
WR
No·maskable Interrupt(Vss)(1)
Crystal output(NC)(2)
Clk output
Factory test(Vcc)(3)
External memory instruction fetch
Address latch enable
External memory read
External memory ready(Vcc)(3)
External memory bus high enable
External memory write
Direction
In
Out
Out
In
Out
Out
Out
In
Out
Out
Pin No.
3
66
65
64
63
62
61
43
41
40
NOTES:
1. Pins marked with (Vss) must be connected to Vss.
2. Pins marked with (NG) are to be left unconnected.
3. Pins marked with (Ved must be connected to Vee.
4. With internal ROM enabled, ADO·AD1 are used as AA and JS.
DCD
89C026XE PIN DESCRIPTION
In async operation, DCD remains Low regardless of
data carrier (default), or it can be programmed to
indicate received carrier signal is within the required
timing and amplitude limits. In sync operation Low
indicates the received carrier signal is within the required timing and amplitude limits.
XTCLK
Transmitter timing from DTE, when external clock
option is selected.
TXD
The serial data from DTE to be transmitted on the
line. A logic 'high' is mark. In synchronous mode,
89026 samples this .data on the rising edges of
TCLK.
DSR
Low indicates modem is off-hook, and it is in data
transmission mode, and the answer tone is being
exchanged. CTS Low indicates modem is prepared
to accept data.
TCLK
Clock output from 89026 as timing source for data
exchange from DTE to modem. Serial data is read
on the rising edges of the TCLK. This output is High
in asynchronous mode.
RTS
In async mode RTS i~nored. Under command
control, in sync mode RTS can be ignored, or the
modem can respond with a Low on GTS.
RXD
DTR
The serial data to DTE. 'Mark' is a logic High. In
synchronous mode, the rising edge of RCLK occurs
in the middle of RXD.
&DO command will cause the modem to ignore DTR.
For &D1 the modem assumes the asynchronous
command state on a Low to High transition of the
DTR circuit. The &D2 command does the same as
&D1 except the state of DTR will enable/disable
auto answer. A Low to High transition of DTR after
the &D3 command will cause the modem to assume
the initialization state.
RCLK
Synchronous clock output. Rising edge of RCLK occurs in the middle of each RXD bit. This pin remains
High in asynchronous mode.
Vees
s/c
This pin to be connected to AGND through a
0.01 fJ-F capacitor.
Low configures the modem to CCITT V.21. High will
configure the modem to Bell 103, when at 300 bps
speed. This pin only affects the modem in 300 bps
operation.
TM
A Low indicates maintenance condition in the modem.
4-33
89C024XE
TCl1, TClO
Sf
These pins are used as the serial clock and data for
interface to an NVRAM. Refer to Figure 3. TCLOis
used to output a clock and serial data is read in on
TCL1.
Selects one of the two data rates or ranges of rates
in the DTE to correspond to the rate in modem. Low
selects the higher rate (2400 CCITT/1200 BELL) or
range of rates. High selects the Low rate or range of
rates.
AR
DIS
This Auxiliary relay control is for switching a relay for
voice or data calls. High is voice, Low is data.
RI
A Low on this pin will indicate the smart mode which
will respond to all commands. A High will ignore all
commands.
A Low signal from DAA indicates line ringing. This
input is ignored when the modem is configured for
leased line. This signal should follow the ring cadence.
Voltage reference for the analog to digital converter
should be connected to the 89027 AVcc.
VREF
OH
VPD
Low controls off hook. High indicates on hook.
When dialing, this control is used to pulse dial the
line.
The internal RAM power down supply voltage to be
connected to 5 Volts during normal operation.
SH
Used as a telephone voice to data switch or vice
versa. Any logic level transition will toggle the modem state. This input is ignored, if a software command attempts to switch the modem between voice
and data.
The function of this pin is re-defined as external
NVRAM CEo
S/A
CON FIG
Low indicates availability of custom software modules in off-chip memory.
AA
EA
Used as an indicator for Auto Answer status and
Ring indicator. Active low.
When high, memory access from address 2000H to
4000H are directed to on-chip ROM. When low, all
Memory access is directed to off-chip memory.
lCllB
A Low will set the modem in the local analog loopback test mode. Logic Low levels applied simultaneously to REMLB and LCLLB pins, sets the modem
to the local digital loopback.
JS
Low is used to pulse A and A 1 leads to control a 1A2
Key System jack.
REMlB
A logic Low on this pin initiates a remote loopback
condition.
• Notice: Stresses above those listed under "Absolute Maximum Ratings" may cause permanent damage to the device. This is a stress rating only and
functional operation of the device at thfJsfJ or any
othfJr conditions abovfJ thosfJ indicatfJd in thfJ operational sfJctions of this spfJcification is not implifJd. Exposure to absolutfJ maximum rating conditions for
fJxtfJndfJd pfJriods may afffJct dfJvicfJ rfJliability.
89C026XE ABSOLUTE MAXIMUM
RATINGS*
Temperature Under Bias .......... -10 to +800 C
Storage Temperature ............ - 40 to + 1250 C
Voltage from Any Pin to
Vss or AGND ................. -0.3V to + 7.0V
Average Output Current from Any Pin ....... 10 rnA
Power Dissipation ...................... 1.5 Watts
NOTICE: Specifications contained within the
following tables are subject to change.
4-34
inter
89C024XE
OPERATING CONDITIONS
Symbol
TA
Parameter
Min
Max
Units
Ambient Temperature Under Bias
0
+70
C
V
Vcc
Digital Supply Voltage
4.75
5.25
FREQ
CLKIN Frequency 12.96 Mhz
-0.01%
+0.01%
CLKIN2
Frequency 270 KHz
-0.01%
+0.01%
VPD
Power-Down Supply Voltage
4.75
5.25
V
NOTE:
VBBS should be connected to AGND through a 0.01 /LF capacitor. AGND, Vss and the 89027 Vss , AGND must be nominally
at the same pote"tial.
DC CHARACTERISTICS
Symbol
Parameter
Min
Max
Comments
Units
Vil
Input Low Voltage
-0.3
+0.8
V
VIL1
Input Low Voltage,RST
-0.3
+0.7
V
VIH
Input High Voltage
2.0
Vcc +·5
V
VIH1
Input High Voltage, RST Rising
2.4
Vcc +·5
V
VIH2
Input High Voltage, RST Falling
2.1
Vcc +·5
V
VIH3
Input High Voltage, NMI, CLKIN
2.4
V cc +·5
V
VOL
Output Low Voltage
VOH
Output High Voltage
Icc
V cc Supply Current
55
mA
All outputs disconnected
IpD
VPD Supply Current
1
mA
Normal operation and Power-Down
IREF
VREF Supply Current
III
Input Leakage Current
IIH
Input High Current to EA
III
Input Low Current
0.45
2.4
ExceptRST
Except RST,
NMI,CLKIN
V
See Note 1.
V
See Note 2.
15
mA
±10
/J- A
Vin=O to Vcc See Note 3
100
/J- A
VIH=2.4V
-100
/J-A
Vil = 0.45V See Note 4
IIl1
Input Low Current to RST
-2
rnA
Vil =0.45V
IIl2
Input Low Current SI A, SH, RI, READY
-50
/J- A
Vil =0.45V
Cs
Pin Capacitance (Any Pin to V ss)
10
pF
1 MHz
NOTES:
1. IOL = 0.36 mA for pins TClO, TCl1, B/C, RTS, CTS, DSR, DCD, Sf, AR, and 00. Also if ADO - AD15 are configured as 1/
o ports.
IOL = 2.0 mA for TM, ClKOUT, ALE, BHE, RD, WR, RXD, TClK, and ADO - AD15 when used as external memory bus.
2. IOH = - 20 /LA fo~s TClO, TCl1, B/C, RTS, CfS, DSR, DCD, Sf, AR, and OH.
IOH = -200 /LA for TM, ClKOUT, ALE, BHE, RD, WR, RXD, TClK, and ADO - AD15 when used as external memory bus.
ADO - AD15 when used as I/O ports, have open-drain outputs.
.
3. For pins DTR, XTClK, TXD, D/S, REMlB, lCllB, CONFIG, ADO-AD15.
4. TelO, TCl1, B/C, RTS.
5. Power must be applied to the device in the following sequence: Vss first, then Vee.
4-35
89C024XE
A.C. CHARACTERISTICS vee. VPD =
4.75V to 5.25V; TA = O·C to 70·C; CLKIN = 12.96 MHz
Test Conditions: Load capacitance on output pins
Tose = 1/12.96 MHz
=
80 pF
The memory system must meet these specifications to work with 89C026XE
Symbol
Parameter
TAVYV
Address Valid to READY Setup
TLLYV
ALE Low to READY Setup
TYLYH
Non READY Time
TeLYX
READY Hold after CLKOUT Low
hLYX
READY Hold after ALE Low
Min
Max
Units
2Tose-75
ns
Tose- 72
No upper limit
Notes
ns
ns
0
Tose- 3O
ns
(Note 1)
Tose- 15
2Tose-4O
ns
(Note 1)
TAVGV
Address Valid to Buswidth Setup
2Tose-7O
ns
hLGV
ALE Low to Buswidth Setup
Tosc- 7O
ns
ns
TeLGX
Buswidth Hold after CLKOUT Low
TAVDV
Address Valid to Input Data Valid
0
3Tose-6O
TRLDV
RS Active to Input Data Valid
Tose- 23
ns
TeLDv
CLKOUT Low to Input Data Valid
Tose- 5O
ns
TRHDZ
End of RD to Input Data Float
Tose- 2O
ns
TRXDX
Data Hold after RD Inactive
0
NOTES:
1. If max is exceeded, additional wait states will occur.
4-36
ns
ns
intJ
89C024XE
The 89C026XE will meet these specifications:
Symbol
Min
Max
Units
Notes
CLKIN Frequency
12.95870
12.96129
MHz
12.96 ± 0.01 %
FCLKIN2
CLKIN2 Frequency
269.973
270.027
KHz
270 ±0.01%
TXHCH
XTAL 1 High to CLKOUT High or Low
40
110
ns
(Note 1)
TCLCL
CLKOUT Cycle Time
TCHCL
CLKOUT High Period
Tosc+10
ns
FCLKIN
Parameter
ns
2Tosc
Tosc-10
TCLLH
CLKOUT Falling Edge to ALE Rising
-5
15
ns
TLLCH
ALE Falling Edge to CLKOUT Rising
-15
15
ns
TLHLH
ALE Cycle Time
TLHLL
ALE High Period
Tosc-10
TAVLL
Address Setup to ALE Falling Edge
Tosc-15
ns
TLLAX
Address Hold after ALE Falling Edge
Tosc-35
ns
TLLRL
ALE Falling Edge to RD Falling Edge
Tosc-40
TRLCL
RD Low to CLKOUT Falling Edge
TRLRH
RD Low Period
TRHLH
RD Rising Edge to ALE Rising Edge
TRLAX
RD Low to Address Float
TLLWL
ALE Falling Edge to WR Falling Edge
TCLWL
CLKOUT Low to WR Rising Edge
ns
4Tosc
10
Tosc+ 10
ns
30
Tosc+25
ns
ns
25
ns
TQVWH
Data Stable to WR Rising Edge
TCHWH
CLKOUT High to WR Rising Edge
TWLWH
WR Low Period
Tosc-30
ns
TWHQX
Data Hold after WR Rising Edge
Tosc-10
ns
TWHLH
WR Rising Edge to ALE Rising Edge
Tosc-10
TWHBX
SHE, INST HOLD after WR Rising Edge
Tosc-10
ns
Tosc-20
-10
(Note 2)
ns
10
Tosc-10
0
ns
ns
Tosc-5
Tosc
ns
10
Tosc+ 15
ns
ns
(Note 2)
ns
NOTES:
1. This specification is not tested, but is verified by design analysis and/or derived from other tested parameters.
2. Assuming back-to-back bus cycles.
4-37
inter
89C'024XE
WAVEFORM
CLKIN
CLKOUT
ALE
-1--- tLLRL -+1--
rBUS
tAVLL - I o f - ADDRESS OUT
;< tAVDVtLLWL
290181-8
Figure 6. Bus Signal Timings
4·38
89C024XE
shaping filters, combined with the necessary guard
tone, smoothed by a low pass filter, and transmitted
to the line. Prior to transmitting either FSK or QAM
signals to the telephone line, the 89027 adjusts the
signal gain through an on-board programmable gain
amplifier.
89027 OVERVIEW
The 89027 is a 28 pin CMOS analog front end device, which performs most of the complex filtering
functions required in modem transmitters and receivers. A general block diagram of this chip is provided in Figure 7. Most of the analog signal processing functions in this chip are implemented with
CMOS switched capacitor technology. The 89027
functions are controlled by 89C026XE, through a
high speed serial data link.
During the receive operation, the received FSK and
QAM signals are passed through anti-alias filters,
bandsplit filters, automatic gain control and carrier
detect circuits, a Hilbert transform filter, and the output sent to the 89C026XE processor as analog signals.
During FSK transmit operation, the 89027 receives
digitally synthesized mark and space sinusoid amplitude information from the 89C026XE. The 89027
converts the signal to its analog equivalent, filters it,
and transmits it to the telephone line. For QAM
transmission, the signal constellation pOints are
transferred to the 89027. This information is modulated into an analog signal, passed through spectral
Other functions provided by the 89027 are: an onboard two wire to four wire circuit with disable capability, an audio monitor output with software configurable gain, and a programmable gain transmit signal.
The 89027 is available in 28 pin plastic DIP and
PLCC packages.
.-------------------------------------------------------------.--I
....-----+--i+ AMP
A02
HYB
t - -...... AOl
.-r--l- --T---T- -'---T--- --- -Vee
vee
AGND
vss
RST
AVee
AZ2
AZl
OUTPUT LEVEL
TX3-TXO
290181-9
Figure 7. 89027 Block Diagram
4-39
89C024XE
89027 PINOUT
Symbol
Vee
Function (89027)
Direction
Pin No.
+5V
-5V
DGND
AGND
+5
28
15
24
21
7
AVee
Positive Power Supply (Digital) .
Negative Power Supply
Digital Ground
Analog Ground
Positive Power Supply (Analog)
X1
X2
CLKOUT
CLKOUT2
Xtal Oscillator
Xtal Oscillator
12.96 M Hz Clock Output to 89C026XE
270 KHz Clock Output to 89C026XE
In
Out
Out
Out
23
25
26
19
RST
HYB
AZ1
AZ2
Chip reset (active low)
Enable on-chip hybrid (1)
Auto-zero capacitor
Auto-zero capacitor
In
In
Out
In
20
10
16
17
SDATA
SCLK
TSYNC
Serial data from 89C026XE
Serial clock from 89C026XE
Transmitter sync from 89C026XE
In
In
In
2
1
3
STR
ED
I
Q
Symbol timing to 89C026XE
Receiver energy detect to 89C026XE
In phase received signal to 89C026XE
Quadrature-phase received signal to 89C026XE
Out
Out
Out
Out
27
. 18
A01
A02
AMP
Transmitter output
Receiver input
Output to monitor speaker
Out
In
Out
6
12
11
TXO
TX1
TX2
TX3
Transmitter level
Transmitter level
Transmitter level
Transmitter level
In
In
In
In
9
8
5
4
VBB
Vss
AGND
control (LSB) (1)
control(1)
control (1)
control (MSB)(1)
13
14
NOTE:
1. When held high, these pins should be connected through 10K resistors to AVGL
A01
89027 Pinout Description
Transmitter output.
TXO-3
A02
These four pins control the transmitted signal level.
The output level can be adjusted from -1 dBm to
-16 dBm in 1 dB steps.
Receiver input.
HYB
AMP
This pin enables the on-chip hybrid. A line impedance matching network must be connected between
A01 and A02 when HYB is enabled. If HYB is disabled and an external 4W/2W hybrid is used, the
hybrid receive path must be amplified by 6 dB.
This output can be used to monitor the call progress
tones and operation of the line.
4-40
inter
89C024XE
ABSOLUTE MAXIMUM RATINGS
Power Dissipation ........................ 1.35W
Temperature Under Bias .......... -10 to + 80° C
Storage Temperature ............ -40 to + 125° C
Voltage with Respect
to VSS(l) ....................... -0.3V to 6.5V
All Input and Output Voltages
with Respect to Vss .......... - 0.3V to + 13.0V
All Input and Output Voltages
with Respect to Vee & AVee ..... -13.0V to 0.3V
NOTE:
1. Applies to pins SCLK, SDATA, TSYNC, RST,
HYB, TXO-TX3 only.
POWER DISSIPATION Ambient Temp = 00t070°C,Vee= AVee= 5 ± 5%,Vss= AGND= O.
Symbol
Parameter
Min
Typ
Max
Units
19
25
mA
AlcCl
AVee Operating Current
ICCl
Vee Operating Current
7
10
mA
Ibbl
Vss Operating Current
-19
-25
mA
Alccs
AVee Standby Current
0.2
1
mA
Iccs
Vee Standby Current
7
10
mA
Ibbs
Vss Standby Current
-0.6
-2
mA
Pdo
Operating Power Dissipation
225
300
mW
Pds
Standby Power Dissipation
40
70
mW
DC CHARACTERISTICS (Ta=O°C to 70°C, AVee = Vee = 5V ±5%, Vss = 5V ±5%, AGND =
Vss = OV), supply voltage must be at the same potential as the 89C026XE power supply. Typical Values are
for Ta = 25°C and nominal power supply values. Power must be applied in the following sequence: Vss,
AGND, Vss, Vee, and AVee. Vee, AVee and 89C026XE VREF must be nominally at the same potential.
Inputs: TXO, TX1, TX2, TX3, HYB, RST
Outputs: CLKOUT
Symbol
Parameter
Min
Max
Units
Test Condition
Iii
Input Leakage Current
-10
+10
!LA
Vss s Vin s Vee
Vii
Input Low Voltage
Vss
0.8
V
Vih
Input High Voltage
2.0
Vee
V
Vol
Output Low Voltage
0.4
V
Voh
Output High Voltage
Veol
CLKOUT Low Voltage
Vcoh
CLKOUT High Voltage
2.4
0.4
2.4
4·41
101
~
-1.6mA,1 TTL load
V
Ich s 50 !La, 1 TTL load
V
Cl
V
Cl = 60 pF
=
60 pF
89C024XE
AC CHARACTERISTICS (Ta = 25·C, Vcc = AVcc = 5 V, Vss = AGND = 0, VBB = -5 V)
ANALOGINPUTS:A02
Parameter
Typ
Min
Max
Units
-9
dBm
A02 Input Voltage Range
A02 Input Resistance
-3.5V-I
II
I
~1_TD0N2
270073-3
Figure 3. General SLD Timing
5-3
intJ
SLD INTERFACE SPECIFICATION
General SLD Timing
Symbol
Parameter
Min
Typ
Max
Unit
150
ns
0
ns
200
ns
TOSM
Data Setup Time, Master(1)
TOHM
Data Hold Time, Mastedl)
Toss
Data Setup Time, Slave
150
TOHS
Data Hold Time, Slave
TOOFFI
SDIR to Slave Data High Z
TOONl
SDIR to Master Data On
70
ns
TOOFF2
Master Data High Z to SDIR
20
ns
TOON2
SDIR to Slave Data On
0
ns
TOIRR
Sel to SOIR Rising Edge(2)
-150
TOIRFR
Sel Rising Edge to SDIR Falling Edge(2)
-150
SOIR Falling Edge to Sel Falling Edge(2)
200
Sel Outy Cycle(3)
30
TOIRFF
ns
50
Sel Frequency(4)
100
ns
ns
ns
50
70
%
512
514.7
KHz
50
ns
Rise and Fall Times, All Signals
125
SOIR Period
ns
fJ-s
NOTES:
1. SLO master can receive on falling or rising edges.
2. It is the responsibility of the master to control SOIR properly to allow reception of data at SLO turn-around pOints. The
TOI R times above do not guarantee data reception on both rising and falling edges.
3. Not all slave devices will accept this duty cycle range. Refer to the timing for the specific slave devices the master will
interface with.
4. SCl may be 514.7 KHz (instantaneous) for 1.544 MHz system clocks. However. not all slave devices will accept this.
Refer to the timing for the specific slave devices the master will interface with. SCl must have 64 pulses per SOIR cycle in
any case.
5-4
inter
iATC 29C48
FEATURE CONTROL COMBO
External and User Programmable
• Transmit
and Receive Gain
Programmable External Hybrid Balance
• Network
Select
Programmable Analog, Digital, and
• Subscriber
Loopback
Programmable p.1 A-Law Select
• Secondary
Input Channel
• Low PowerAnalog
• External ToneConsumption
to Receive Path
• SLD AlB ChannelInjection
• Channel Line Cards)Select (for 16
The Intel iATC 29C48 Feature Control Combo is a low cost, user-programmable, fully integrated PCM Codec
with transmit/receive filters fabricated in a CMOS technology. This te'chnology is built on CHMOS and will
allow the 29C48 to realize the same excellent transmission performance as in the Intel 2913/2914 combo
while achieving the low power consumption typical of CMOS circuits.
The 29C48 supports the analog subscriber with a variety of added per-line features to the normal BORSCHT
functions associated with the analog line circuit. Some of these features include-secondary analog input
channel, programmable transmit and receive gain, custom hybrid balancing network selection, and programmable ,.., or A-law conversions. Additionally, the 29C48 can operate on either the A or B channel of the SLD
interface, allowing two combos to be connected to one SLD link. In order to facilitate the SLiC interface in this
configuration, the 29C48 generates SLiC' chip select signals for the proper routing of signaling information.
A unique feature of the 29C48 is programmable tone injection. This feature and its SLD interface makes it
particularly easy to use in conjunction with Intel's advanced tranceivers, such as the iATC 29C53AA, in
subscriber equipment environments. The 29C53AA handles transfer of voice and feature control information
to the 29C48.
Plastic Leaded Chip Carrier
&
I9S=~;
18-Lead Plastic Dual-In-Llne Package
VBB
VFR
EBN3IT1
EBN2
EBNl
EBN
ses
B/A
ONDD
NC'
NC
E8N2
NC
NC
NC
E8Nl
E8N
NC
vee
VFX
TOI
T02
ONDA
SAl
SLD
SDIR
seL
270153-1
TGI
TG2
NC
NC
NC
GNDA
SAl
NC
SLD
I~
'Not connected
I;
CI
...
a:
§l ~ ~
III
270153-26
Figure 1. Pin Configurations
October 1988
5-5
Order Number: 270153-004
iATC29C48
TRANSMIT GAIN ADJUST
~
~--+-.(lSAI
PROGRAMMABLE
BALANCE NETWORK
GAIN (1 or 2)
v,..
BALANCE
NETWORK
ENABLE
EIN
piA LAW
Bli
EBN1
FEATURE
CONTROL
REGISTERS
AND LOGIC
:k
ElM2
Tl/EBN3
SCL
SOIR
SLO
BALANCE
NETWORKS
SELECTION
UNIT
SCi
VFR
0-+-"'---<
RECEIVE PROGRAMMABLE GAIN
vee
VBB
GNDA
GNOD
270153-2
Figure 2. Block Diagram
5-6
inter
iATC29C48
Table 1. Pin Names
VFX
VFA
GNDD
GNDA
VCC
Analog Input
Analog Output
Digital Ground
Analog Ground
Power (+5V)
SCL
SLD
SDIA
TG1, TG2
EBN1f2
VBB
Power (-5V)
EBN3fTI
BfA
Channel Selection
SLiC Chip Select
EBN
SAl
SCS
Subscriber Clock
Subscriber Data Link
Subscriber Direction
Transmit Gain Adjust
External Balance Network
Selection Inputs
External Balance Network
Selection Input Or Tone
Injection
External Balance Input
Secondary Analog Input
Table 2. Pin Description
Symbol
Function
VCC
Most positive supply; input voltage is + 5V ± 5 %.
VBB
Most negative supply; input voltage is - 5V
GNDA
Analog ground return line. Not internally connected to GNDD.
GNDD
Digital ground return line. Not internally connected to GNDA.
± 5 %.
VFX
Analog voice input to transmit channel. Input impedance is typically larger than 100 K.n.
TG1
Inverting input to transmit gain adjusting op-amp. Feedback point for external gain adjusting
resistor network or frequency compensation network. Input impedance is typically larger than
10 M.n.
TG2
Output of the transmit gain adjusting op-amp. Will drive external gain adjusting resistor network as
well as frequency compensation network with an impedance of at least 10 K.n.
VFA
Aeceive voice output. Capable of directly driving transformer hybrids or impedance loads of 600 .n.
EBN
Input to the hybrid balancing circuit. Input impedance is typically larger than 10 MO.
EBN1
Input connected to a grounded switch. The switch's on resistance is not greater than 600 .n.
EBN2
Input connected to a grounded switch. The switch's on resistance is not greater than 600 .n.
EBN3fT1 This pin is multiplexed according to the feature control registers. When programmed to be EBN3, it
is an input connected to a grounded switch. The switch's on resistance is not greater than 600 .n. If
this pin is programmed to be TI, an analog signal applied on this pin will be added to the received
voice signal before the receive power amplifier.
SCL
Subscriber clock. This is an input which should be 512 KHz with a duty cycle ranging from 25 % to
75%. Input wi" accept TTL levels.
SDIA
Subscriber direction signal and frame sync input. When high, SLD becomes an input and data is
received by the 29C48. When low, the output buffer on the 29C48 SLD pin is enabled and data is
transmitted by the 29C48. Input will accept TTL levels.
SLD
Subscriber Line Datalink. A 512 Kbps bi-directional serial data port, which is clocked by SCL. SLD
becomes a TTL compatible input when SDIA is high and an output capable of driving one TTL load
when SDIA is low, during the appropriate SLD fields for the assigned channel.
BfA
Pin strapped to assign the 29C48 to process either A or B channel information from the SLD bus. A
low level (GNDD) on this pin selects channel A, a high level (VCC) channel B.
SCS
This pin is a TTL compatible output capable of driving one TTL load: when low, it informs a SLiC
device connected to the same SLD bus as the 29C48 that it can process the receive and transmit
signaling data of the present SLD frame.
SAl
Secondary analog input.
5-7
inter
iATC29C48
(See Figure 3 for a typical ISDN subscriber equipment application.)
FUNCTIONAL DESCRIPTION
The 29C48 is a combined channel filter and PCM
codec for use in ISDN subscriber equipment or analog line interface circuit boards in digital switching
systems.
For analog line interface circuit boards this device
resides between the circuitry which provides the
"BORSHT" functions for a given line, and the
shared line board controller. It provides the transmit
and receive voice-path filtering and companded analog-to-digital and digital-to-analog conversions necessary to interface a full duplex voice telephone circuit with the PCM highways of a time division multiplexed (TOM) system. (See Figures 4a and 4b for
typical line card applications.)
The 29C48 incorporates features which make it particularly suited to subsc:riber applications. Tone .injection allows easy implementation of DTMF feedback and side tone injection, and secondary analog
signal input allows remote control and monitoring.
SUBSCRIBER EQUIPMENT I
"s" INTERFACE
I
L
C
SCL
VFX
SDIR
29C41
29C53AA
SLD
VFR
270153-5
Figure 3. Subs~rlber Equipment
_.
~L
SLiC (.,6)
COMBD(.'6)
VFX
VFAU:S
SUCIA
Ci
SLD BUS (xl)
SELECT
~L
SCL
SOIR
L
.
SLDO
.
VFX· 29C46
OB
VFR
••
I - - 10M HWYS
LINE
CARD.
CONTROLLER
I-BlA SELECT
SIGNALING
"I)I
VI
f - - SIG HWY
I - - SYNC
SLD7-:-
scs
Ci
SUCOB
BACKPLANE
___ BlA
SCi
f~
,....
LCC(.')
~~
p.P
270153-3
Figure 4a. Analog Line Card with Discrete or Electronic Parallel Control SLiCs
5-8
intJ
IATC29C48
SUC(Xlll
:IT
COIlllO (xlII
VFX
SUCOA
CS
VFR
SCS
a.:::
LCC(xll
SLD BUS (xiI
I--SE~CT
SCL
SDIR
SLDO
~ TOIl
.•
:ft
Ci
sucoa
SCS_
VFX 08
VFR
BACKPUNE
SLD7~
i--BlA SELECT
UNECARD
CONTROLLER
HWYS
~ SIG HWY
I-- SYNC
~,..
"
.
r--"---,
IL _ _
lAP_ _ ...JI
270153-4
Figure 4b. Analog Line Card with SLD Compatible SLiCs
TRANSMIT AND RECEIVE
OPERATION
Decoding
The PCM word received on the SLO lead (first or
second byte of the receive half-frame, depending
upon the channel assignment of the device) is sent
to the decoder after a serial to parallel conversion.
The decoded value is held on an internal sample
and hold capacitor.
Transmit Filter
A low pass anti-aliasing section is included on chip.
This section typically provides 35 dB attenuation at
the sampling frequency. No external components
are required to provide the necessary anti-aliasing
function for the switched capacitor section of the
transmit filter.
Receive Filter
The receive seotion of the filter provides a passband
flatness and stopband rejection which fulfills the
AT&T 03/04 specification and the CCITT G.714
recommendation. It also provides additional loss at
12 KHz and 16 KHz. The receive filter transfer characteristics and specifications will be within the limits
shown in Figure 13.
The passband section provides flatness and stopband attenuation which fulfills the AT&T 03/04
specification and the CCITT G.714 recommendation. The 29C48 specifications meet the digital class
5 central office switching systems requirements. The
transmit filter transfer characteristics and specifications will be within the limits shown in Figure 12.
A high pass section configuration rejects low fre- '
quency noise from 50 and 60 Hz power lines, 17 Hz
European electric railroads, ringing frequencies and
their harmonics, and other low frequency noise. The
transmit filter also provides additional loss at 12 KHz
and 16 KHz to support metering pulses.
Encoding
The output of the transmit filter or the secondary
analog input is internally sampled by the encoder
and held on an internal sample and hold capacitor.
OC offset is corrected by an on-chip auto zero circuit. The signal is then encoded and presented as
PCM data on the SLO lead. (First or second byte of
the transmit half-frames depending upon the channel assignment of the device.)
GENERAL OPERATION
External Gain Setting
Both transmit and receive gain levels can be modified by external resistors during line card assembly.
The value of transmit gain is adjusted by connecting
resistors RT1 and RT2 (see Figure 5) at the two external gain setting control pins, TG1 and TG2. These
two pins are the input and output of ~n on-board
gain amplifier stage, and the resistors provide the
necessary input and feedback for gain control. External gain of up to 20 dB can be set, without degrading the performance of the amplifier. The value of
external gain is given by:
A = 1
+
RT1/RT2
For unity gain, pins TG1 and TG2 are tied together.
5-9
inter
iATC29C48
For the receive section, the external gain can be set
by the external resistors, RR1 and RR2. There are
two possible ways of implementing the gain control.
The first is illustrated in Figure 6a, where the value of
the receive gain is given by:
A = RR2/(RR1
+
filtered input channel. Narrow band analog signals
can be supplied through this channel for remote
loop testing and various control uses.
The secondary analog input channel is accessed under software control through the SAl input. When the
SAlE bit in the feature control register #3 is set to a
RR2)
The value of RR1 + RR2 should not be less than
6000 to avoid degrading the output power stage's
performance. The second way of implementing the
receive gain is shown in Figure 6b, where pin EBN3/
T1 is used. The value of the receive gain in this configuration is given by:
A = 1
+
An
-=
ATl
TG2
TGl
VFX o-J----,~--l
RR1/RR2
Hybrid Balancing Network
270153-6
Three external balancing networks can be applied to
the 29C48 by the user to accommodate varying subscriber loop characteristics (see Figure 7 for external
connections). Feature control allows the grounding
of any combination of these networks in order to
best suit a particular application. Feature control
also allows the user to select a gain of 0.0 or + 6.0
dB in the balance Signal path to suit the type of SLIC
used.
Figure 5. Transmit Gain Setting
29C48
VFR
RR1
FREQUENCY COMPENSATION
RR2
The user may, if desired, compensate for the frequency response characteristics of the SLIC by adjusting the frequency response of the transmission
chain. This can be accomplished in the same way as
the external gain setting is done in the transmit and
receive directions. But, instead of using purely resistive impedances, resistor and capacitor networks
have to be used to achieve complex impedances.
The two compensation schemes are shown in Figures 8a and 8b. The gains in the transmit and re- .
ceive directions are respectively:
-=
270153-7
Figure 6a. Receive Gain Setting
29C48
VFR
RR1
for Figure 8a
A
= 1 + ZX1/ZX2
for Figure 8b
A
= 1 + ZR1/ZR2
EBN3m
RR2
-=
SECONDARY ANALOG INPUT
270153-8
Figure 6b, Receive Gain Setting
Although the main application of the 29C48 will be
for voice transmission, it also offers a secondary un-
5-10
inter
IATC29C48
logical one, the 29C48 will encode and transmit the
Signal present at the SAl input. The 29048 will
switch back to transmission of the voice Signal as
soon as the SAlE bit is set back to a logical zero.
TONE INJECTION
When specified by the feature control memory, an
audio frequency signal applied to the EBN3/T1 pin
will be added to the receive voice signal at the power amplifier. This feature allows easy implementation
of DTMF feedback and side tone injection in ISDN
telephone applications, as well as injection of call
waiting or metering tones in line card applications. A
typical application is shown in Figure 9. Here VFR is
the combination of the receive voice signal (VO) and
two tones (V1 and V2).
VFR = 2VO - (V1
270153-9
+ V2)/2
Figure 7. Balance Networks
CHANNEL ASSIGNMENT
Two 29048s can be attached to the same SLD line
to exchange information with the SLD master during
each SLD frame.
The BIA pin of the 29048 is used to assign a voice
channel of the SLD frame to the device. When the
BIA pin is tied low, the 29C48 operates as an Achannel combo, receiving and tranSmitting voice
during the first and fifth bytes of the SLD frame.
When this pin is tied high, the 29C48 operates as a
B-channel combo, receiving and transmitting voice
during the second and sixth bytes of the SLD frame.
270153~10
Figure Sa. Transmit Frequency Compensation
VFR
110
EIN3ITI
2110
270153-11
V1--JVVY-_
2110
Figure ab. Receive Frequency Compensation .
270153-12
Figure 9. External Tone Injection
5-11
inter
iATC29C48
can be disabled through the feature control memory.
Operation of this signal in the transmit direction remains unaffected to allow continued monitorin.9...2!
subscriber status by a line card controller. The SCS
signal remains active in the power down mode.
The feature control receive and transmit channels of
the SLD frame are shared by the two 29C48s. A
29C48 will accept or return feature control information only if it has been instructed to do so during the
first byte of a feature control frame. This is accomplished by setting the logic level of the channel selection bit (LSB) in feature control byte #1 to 'match
the logic level of the BIA pin of the appropriate
29C48. The selected 29C48 will keep exchanging
feature control information until a new framing byte
makes a new selection. The status of the channel
selection bit is sent back during the seventh byte of
the SLD frame in which a 00 was received in the
F/WE bits of the 3rd byte of the same SLD frame.
The eight possible sequences for SCS are shown in
Figure 10.
Precision Voltage References
Voltage references are generated on-chip .and are
trimmed during the manufacturing process. Separate
references are supplied for both the transmit and
receive sections of the chip, each trimmed independently. These references determine the gain and dynamic range of the device and provide the user a
significant margin for error in other board components.
The 29C48 does not process data received in the
signaling channel. However, it generates chip select
signals during the appropriate time slots in order to
facilitate the SLiC interface. (See section on SLiC
Chip Select.) The 29C48 enters into a high impedance state during the signaling transmit channel, the
eighth byte of the SLD frame.
SLD Interface
The 29C48 is intended for use with the 29C53AA
ISDN transceiver or a SLD compatible line card controller. They manage the transfer of all voice and
feature control data to and from the Feature Control
Combo. The interface between the two consists of
just three leads, two of which are clock signals and
the third a serial bus for communication.
SLIC Chip Select
In order to facilitate interfacing to an SLD compatible
SLlC, especially when two SLiCs share the same
SLD line, the 29C48 includes a programmable chip
select signal.
During the receive cycle of the SLD frame, the SCS
pin of the 29C48 whose channel selection pin (B/A)
has the same logic state as the channel selection bit
(see previous section on Channel Assignment) is
pulled low during the receive signaling byte.
The subscriber direction (SDIR) lead provides an 8
KHz signal which divides each frame into transmit
and receive halves. During the first half when SDIR
is high (RCV half-cycle), the 29C48 receives data
and in the second (XMIT half-cycle) the 29C48
transmits data. Frame synchronization and all internal timing for the digital circuitry is derived from the
rising edge of the SDIR signal.
During the transmit cycle of the SLD frame, the SCS
signal can operate in two modes. In the first mode,
called 'byte mode,' the SCS pin of the selected
29C48 is pulled low during the transmit signaling
byte, as described above for the receive direction.
The subscriber clock (SCL) input generated by the
29C53AA is a fixed 512 KHz clock signal allowing 64
bits (8 bytes) of data to be transferred on the SLD
lead during each 125 fJ-s frame. The SCL duty cycle
can range from 25% to 75%.
A second mode, called the 'half-byte mode,' is provided. In this mode, during the transmit cycle of the
SLD frame, the SCS pin of the channel A combo is
pulled low during the least significant four bits (last
four bits) of the transmit signaling byte. During the
same frame, the SCS pin of the channel B combo is
pulled low during the most significant four bits (first
four bits) of the transmit signaling byte. This allows
Signaling data from both A and B channel SLD compatible SLiCs to be processed by a line card controller during the same frame.
The Subscriber Line Datalink (SLD) is a bi-directional serial bus that transfers four bytes of serial data to
and from the 29C48 each frame. During the first half
of each frame, RCV channel information is expected
by the 29C48 as one byte consisting of voice and
one byte of feature control information, while the
other two bytes of the RCV half-frame are simply
ignored. Similarly, during the second half-frame, one
To minimize power consumption, operation of the
SCS signal during the receive half of the SLD frame
5-12
IATC29C48
During this time, the 29C48 resets and enters the
power down mode, The SCS output remains high
until the 29C48 has been configured as an A or B
channel device by the first write to feature control
byte #1.
byte of voice and, if so instructed, one byte of feature control information is sent by the 29C48. The
29C48 places its SLD lead in a high impedance state
while the other device connected to the SLD line
transmits its own information, and also while the one
byte of signaling information is transmitted by an
SLD compatible SLiC. The most significant bit (bit 7)
of each byte is sent first on the SLD line. The data
format of an SLD frame is shown in Figure 11.
PROGRAMMABLE FEATURES
The 29C48 is configured by a set of five feature control bytes (FCB).
Upon power supply application, feature control read
or write of the 29C48 is disabled for 9 SLD frames.
Receive SCS Disabled (See Section on SLiC Chip Select)
1) A-Channel Selected (See Section on Channel Assignment)/Byte Mode
1-01.0-----
1-01-0----
RECEIVE HALF FRAME - - - - _ .
TRANSMIT HALF·FRAME
----..j.1
I
I
A CHANNEL
sa
a·CHANNEl
sa
270153-13
2) B-Channel Selected/Byte Mode
RECEIVE HALF·FRAME
TRANSMIT HALF-FRAME
...-CHANNEL iCS
B-cttANNEL SCi
270153-27
3) A-Channel Selected/Half-Byte Mode
!\-o.-----RECEIVEHALF.FRAME
I
A-cHANNEL
•.
- 11
I
I
-----.~I
- - - - T R A N S M , T HAlF·FRAME - - - -.....
SCi
B-CHANNEL SCi
270153-28
4) B-Channel Selected/Half·Byte Mode
RECEIVE HALF-FRAME
TRANSMIT HALF-FRAME
270153-29
Figure 10. SCS Timing Diagram
5-13
IATC 29C48
bits, feature control byte # 1 also includes a channel
selection bit (bit 0, LSB). This bit is used to designate one of the two 29C48s sharing an SLD link for
feature control information exchange. (See previous
section on channel Assignment.)
These bytes of information are stored in internal registers which are serially multiplexed to and from the
SLD interface in the third and .seventh bytelocations. The first two bits of each· byte consist of a
multiframe synchronization and write enable code.
The framing bit (bit 7, MSB) establishes the beginning of a feature control frame when set to a logical
zero, and increments the feature control counter
when set to one. The second (bit 6) enables the
writing to the 29C48 when it is the logical complement of the framing bit. In addition to the two header
When writing new feature control information to the
29C48, the first byte should contain a framing (F)
and write enable (WE) header of 01 (F = 0 and
WE = 1), and an appropriate channel selection bit.
This designates a new frame of information to trans-
Receive SCS Enabled
5) A-Channel Selected (See Section on Channel Assignment)/Byte Mode
1-01------
0+1•.-----
RECEIVE HALF FRAME - - - -......
TRANSMIT HALF FRAME
------I_I
I
I
A CHANNEL
SCs
B CHANNEL
SCs
270153-14
6) B-Channel Selected/Byte Mode
I-01.o------RECEIVE H A L F · F R A M E - - - - -...+1....- - - - TRANSM'THALF.FRAME _ _ _ _ _
.I
I
I
I
A-CHANNEL ia:
a-CHANNEL
sa:
270153-30
7) A-Channel Selected/Half·Byte Mode
l i - o . - - - - - R E C E I V E HALF·FRAME
I
A-CHANNEl
----__00.+\. .
-1\
- - - - - T R A N S M I T HALF·FRAME - - - -....
I
I
iCS
a-CHANNEL SCi
270153-31
8) B-Channel Selected/Half.Byte Mode
RECEIVE HALF·FRAME
A-CHANNEL
TRANSMIT HALF-FRAME
sa:
B-cttANNELSCS
270153-32
Figure 10. SCS Timing Diagram (Continued)
5-14
iATC29C48
I
:
I
RECEIVE HALf'oCYCLE
I
TRANSMIT HALf'oCYCLE
I
:
!---_~I
smR.-J
~I--~~--~--~----r---~---'----T---~I
8~----~~~~T-~~~~T-~1~T-~~~~T-~~~1~--IVOICEA
I
CONTROL
:
I
VOICE B
I
CONTROL
SIGNALING:
I
SIGNALING :
1 FRAIIE
14--------- (125 pi)
512 KBPS
:
-I
I
270153-15
Voice A, Voice B: A and B channel voice bytes respectively.
Control: Feature control information. This information is exchanged with the 29C48 whose channel selection pin matches the channel selection bit
of the latest framing feature control byte.
Signaling: Signaling information which controls the subscriber line. The 29C48 enters into a high Impedance state during the transmit signaling time
slot, and generates a chip select signal (see section on SLiC chip select).
Figure 11. 29C48 SLD Interface
fer. The subsequent bytes should each have F = 1
to advance the counter, and WE = 0 to enable the
write operation.
placed in a high impedance state, inhibiting voice
signals. A code of all ones will be output in the voice
byte on the SLD. Signaling and feature control information will continue to be processed to allow the
29C48 to be read or reprogrammed.
The SLD master can also request to verify the fea·
ture control register contents by sending a 00 or 11
at the beginning of the byte to be read. To read the
first byte, a 00 FIWE code and an appropriate chan·
nel selection bit should be sent while each subsea
quent byte should have a 11 header. An internal six·
stage counter is set on the first byte verified then
incremented once each 125 ILs frame. It is reset
only upon detection of a 01 or 00 F/WE. Once the
counter is greater than five, neither read nor write
modes may be selected by sending the 29C48 a 11
or 10 framing and write enable code. While in this
state, the 29C48 will then echo in byte 7 the data it
received in byte 3. Another feature control informa·
tion exchange cycle can only be initiated by establishing a new feature control frame (sending F = 0).
The state of the feature control combo can be
changed from standby to active by the first feature
control byte only. All other register contents will be
preserved during power down provided the power
supplies remain connected.
LOOP BACK MODE SELECT
Three modes of remote testing are incorporated in
the 29C48 and can be selected by appropriate coding in this register. The loop back features allow a
number of tests to be performed to determine line
quality and balancing. These include digital loop
back, analog loop back, and subscriber loop back.
In the digital loopback mode, the combo retransmits
the PCM word it receives in the voice A or B byte of
the SLD back to the SLD master in the same frame.
This feature allows path verification and testing of
the circuit up to the combo.
FCB # 1--Power Up/Down, Loop Back
Mode, ,....A/-Law, Channel Select
Register
POWER UP AND DOWN
When the analog loopback mode is selected, the
analog output VFR is internally connected to the analog input VFX. This feature allows functional testing
of the combo as well as gain adjustment.
The 29C48 can be instructed to go into the power
down or standby mode for reduced power consumption. In this mode, all analog inputs and outputs are
5-15
iATC29C48
MSB
Bit Number ___
B'tNlme
#71
no change
write lneb"
1
00
F
01
we
_down
_up
-17J'l'l 41 3
tive programming of this register. A range from 0 to
-15.5 in 0.5 dB increments can be set for the receive channel.
LSB
~1~
)1
PUP
-
DLB
-
MSB
BltNomel
#78
normal operation
dlgltolloop bock
noehangB
write
.Nlbte
11
10
normal operation
analog loop back
ALB
Galn(dB)
normal operation
lubecrlber loop bad!;
SLB
0
-0.5
-1.0
-1.5
00000
00001
00010
00011
-15.0
-15.5
11110
11111
A-Law
pA
,..Law
channel A
#12345
0
AB
channel B
w=}
-'}
RON2
RON3
RGN4
RON5
270153-17
270153-16
In the third test mode, subscriber loopback, the digital output of the AID converter is internally connected to the input of the 01 A converter. The analog
signal input to VFX is sent through the transmit filter,
encoded, then decoded, filtered ~md output to VFR.
This mode is used primarily for simplifying analog to
analog testing from the subscriber side of the line
card. Simultaneous selection of more than one loopback mode is prohibited.
FCB # 3-Secondary Analog Channel,
Chip Select, and Tone Injection
Register
SECONDARY ANALOG INPUT
The 29C48 can be instructed to switch the input of
its encoder to the secondary analog input by setting
the SAlE bit to a logical one. Transmission of the
voice signal will resume as soon as SAlE is set back
to a logical zero.
CONVERSION LAWS
The 29C48 can be selected for either p.-Iaw or A-law
operation. A user can select either conversion law
by assigning the corresponding bit. A logical 1 in bit
1 would select p.-Iaw while a logical 0 would select
A-law conversions. Both conversiQns follow CCITT
recommendation G.711.
PROGRAMMABLE SLIC CHIP SELECT
Although the 29C48 does not process signaling information, it generates chip select signals in order to
help in interfacing to SLD compatible SLiCs.
During the transmit half-frame, the chip select works
in two possible modes determined by the CSM bit. In
the byte mode, the. SCS pin of the 29C48 selected
by the channel selection. bit in feature control byte
# 1 will be pulled low during the transmit signaling
byte. In the half-byte mode, the SCS pin of the Achannel 29C48. will be pulled low during the four
least significant bits of the transmit signaling byte,
and the SCS pin of the B-channel 29C48 will be
pulled low during the four most significant bits .of the
transmit signaling byte.
FEATURE CONTROL EXCHANGE
CHANNEL SELECT
The LSB of feature control byte # 1 is the channel
selection bit. It is used to select one of the two
29C48s sharing an SLD line for feature control information exchange. A logical zero will select the channel A combo, and a logical one will select the channel B combo.
FCB # 2-Receive Programmable Gain
Register
Generation of chip select Signals during the receive
half frame can be disabled by setting the CSD bit to
a logical zero.
The receive gain levels can be adjusted by applying
external resistors as mentioned earlier, or by selec5-16
inter
iATC29C48
FCB # 5-Balance Network Select and
Gain Register
TONE INJECTION
When the TIE bit is set to a logical one, audio signal
applied at the EBN3/T1 pin will be added to the output of the receive programmable gain module. This
feature can be used for easy implementation of side
tone injection and DTMF feedback, as well as injection at the line card of call waiting tones, ringing or
metering pulses.
MSB
BALANCE NETWORKS
Three external balance networks can be used with
the 29C48. Feature control allows the selection of
network EBN1, EBN2, and EBN3 individually or in
combination in order to best suit a particular application.
L.SB
EBN3 selection is not effective when TIE is set to a
logical one.
BIT NUMBER -1716151413121 ' 1 0.1
M-l
11
#76
NO CHANGE
WRITE ENABLE
~
F}
,OWE
GAIN SETTING
An additional 6 dB gain in the balance signal path
can be realized by setting the BNG bit to a logical
one. A logical zero provides unity gain.
SECONDARY ANALOG INPUT
ENABLED
,
BYTE
0
DISABLED
0
SAlE
SCS MODE
HALF-BYTE
SCS DISABLE RECEIVE
SCS ENABLE RECEIVE
EBN3 PIN ENABLED
TI PIN ENABLED
,
,
,
MSB
CSM
#76
J
11
10
F}
WE-
LSB
Bll Number __ 171&151 4131 211101
BIIN·~l
0
CSD
0
no change
wrlte.n.t)le
TIE
RESERVED
III10nco Notworlc
dl .._
DON"T CARE
onobled
270153-1B
0_
,
0
BNE-
432
8BN3
no aetectlon
EBNII3 001_
EBN3
FCB # 4-Transmit Programmable
Gain Register
o
The gain setting of the transmit section of the chip
operates in the same manner as the receive gain
register. A 12 dB range from 0.0 dB to + 12.0 dB in
0.5 dB increments is available.
000
001
010
EBNl
IOlocted 011
EBN2
••Iocted 100
EBNII2J3 0.1_ 101
EBN213 .._
110
EBNII2 ••1 _ 111
8BN2
8BNl
Ballance Network Gain
OdBgaln
&dB gain
0
1
BNG
don't care
270153-20
+0.0
+0.0
11000
I1XXX
270153-19
5-17
inter
iATC29C48
• Notice: Stresses above those listed under "Absolute Maximum Ratings" may cause permanent damage to the device. This is a stress rating only and
functional operation of the device at these or any
. other conditions above those indicated in the operational sections of this specification is not implied Exposure to absolute maximum rating conditions for
extended periods may affect device reliability.
ABSOLUTE MAXIMUM RATINGS
Temperature Under Bias ......... -10·C to +85·C
Storage Temperature .......... - 65·C to + 150·C
All Input and Output Voltages
with Respect to Vss .............. - 0.3V to 13V
All Input and Output Voltages
with Respect to Vcc .............. -13V to 0.3V
Power Dissipation .•...................... 1.35W
~
NOTICE' Specifications contained within the
following tables are subject to change.
D.C. CHARACTERISTICS
TA = O·C to +70·C, Vcc = +5V ±5%, Vss = ~5V ±5%; SCL (50% duty), SOIR, SLO applied GNDD
OV, GNOA = OV. Typical values are for T A = 25·C and nominal power supply values
=
DIGITAL INTERFACE
Symbol
Parameter
Typ
Min
IlL
Input Leakage Current
VIL
Input Low Voltage
-0.3
VIH
Input High Voltage
2.0
VOL
Output Low Voltage
VOH
Output High Voltage
Max
±10
Units
p,A
0.8
V
Test Conditions
Os Vin s Vee
V
0.4
2.4
V
10L;;:: -1.6 mA, 1 TIL Load
V
10H s 50 IJ-A, 1 TIL Load
POWER DISSIPATION
Typ
Max
Units
ICC1
Vee Operating Current
7.5
10
mA
Idle Channel
ISS1
Vss Operating Current
7.0
10
mA
Idle Channel
Icco
Vee Standby Current
0.6
1.0
mA
Isso
Vss Standby Current
0.3
0.6
mA
Symbol
Parameter
Min
A.C. CHARACTERISTICS-TRANSMISSION PARAMETERS
(TG1 = TG2, Transmit Programmable Gain = 6 dB. Receive Programmable Gain =
Test Conditions
0 dB)
GAIN AND DYNAMIC RANGE
Max
Units
EmW
Symbol
Encoder Milliwatt Response
Tolerance
Parameter
Min
Typ
±0.25
dB
Signal Input of 0 dBmO
f = 1.02 KHz
DmW
Digital Milliwatt Response
Tolerance
±0.25
dB
f
DmWf.v
Digital Milliwatt Response VFR,
IJ--Iaw
6.11
1.564
dBm
Vrms
RL = 600n
f = 1.02 KHz
DmWAV
Digital Milliwatt Response VFR,
A-law
6.17
1.576
dBm
Vrms
RL = 600n
f = 1.02 KHz
OTLP,..,x
Zero Transmission Level Point
Transmit Channel (0 dBmO)
0.09
0.783
dBm
Vrms
IJ--Iaw, Referenced to 600n
OTLPAX
Zero Transmission Level Point
Transmit Channel (0 dBmO)
0.15
0.788
dBm
Vrms
A-law, Referenced to 600n
~Gp
Programmable Gain Accuracy
±0.20
5-18
dB
Test Conditions
f
= 1.02 KHz
= 1.02 KHz for All Steps
inter
iATC29C48
GAIN TRACKING
Reference level = 0 dBmO at 1.02 KHz, TG1 = TG2, Transmit Programmable Gain = 6 dB,
Receive Programmable Gain = 0 dB, AT&T PUB 43801 and CCITT G.714-Method 2
Symbol
Max
Units
Test Conditions
GTT
Transmit Gain Tracking Error
Sinusoidal Input; ,... or A-law
Parameter
±0.25
±0.50
± 1.2
dB
dB
dB
+3to -40dBmO
-40 to -50 dBmO
-50 to -55 dBmO
GTA
Receive Gain Tracking Error
Sinusoidal Input; ,... or A-law
±0.25
±0.50
± 1.2
dB
dB
dB
+3to -40dBmO
-40 to -50 dBmO
-50 to -55 dBmO
Min
Typ
ANALOG INTERFACE, RECEIVE CHANNEL
ROA
Output Resistance, VFR
VOSA1
Output Offset, VFR
CLA
Load Capacitance, VFR
VOA1
Max Output Voltage Swing
Across RL, VFR
1
n
50
mV
100
±3.2
Relative to GNDA
pF
Vp
RL Z 6000(1)
ANALOG INTERFACE, TRANSMIT PRIMARY AND SECONDARY CHANNELS
IBX
Input Leakage Current, EBN,
TG1, TI
100
nA
RIX1
Input Resistance, VFX
100
KO
RIX2
Input Resistance, EBN, TG1, TI
10
MO
TGmax
Max Transmit Gain Adjust
VOTG
Max Output Voltage Swing TG2
CLX
Load Capacitance, TG2
RLX
Load Resistance, TG2
RGND
On Resistance to GNDA, EBN1,
EBN2, EBN3
20
dB
±1.6
V
20
10
Operating
Range(2)
RL Z 10K 0(3)
pF
KO
150
600
0
NOTES:
1. The 29C48 power amplifier is designed to drive signals in excess of the maximum encoding level, which is 3.14 dBmO for
A-Law and 3.17 dBmO for ",-Law.
2. -3.2V < VFX, EBN, TI < +3.2V; -1.6V < TG1 < +1.6V.
3. Transmit programmable gain must be set to 0 dB to encode this level without clipping in later stages.
5-19
intJ
iATC29C48
DISTORTION (Primary Channel)
Symbol
Parameter
Min
SDx
SDR
Signal to Distortion, fJ- or A-law
Sinusoidal Input; CCITT G.714Method 2 Half Channel
35
29
25
DPx
DPR
Single Frequency Distortion
Products in Band (2nd or 3rd
Harmonic Half Channel)
IMD1
Typ
Max
dB
dB
dB
-60
Test Conditions
Units
Oto -30dBmO
-30 to -40 dBmO
-40 to -45 dBmO
-47
dBmO
Intermodulation Distortion, End to
End Measurement
-35
dB
CCITT G.712(7.1)
IMD2
Intermodulation Distortion, End to
End Measurement
-49
dBmO
CCITT G.712(7.2)
SOS
Spurious Out of Band Signals,
End to End Measurement
-25
dBmO
CCITT G. 712(6.1)
SIS
Spurious in Band Signals, End to
End Measurement
-40
dBmO
CCITT G.712(9)
DAX
Transmit Absolute Group Delay
fJ-s
odBmO, 1.4 KHz
220
Input = 1.02 KHz 0 dBmO
AT&T Advisory #64 (3.8)
Includes Delay Through AID
Dox
Transmit Differential
Delay; Relative to DAX
170
95
45
75
fJ-s
fJ-s
fJ-s
fJ-s
f
f
f
f
= 500-600 Hz
= 600-1000 Hz
= 1000-2600 Hz
= 2600-2800 Hz
DAR
Receive Absolute Group Delay
140
fJ-s
odBmO, 0.3 KHz
Includes Delay Through Df A
DOR
Receive Differential Envelope
Delay; Relative to DAR
35
35
110
135
fJ-s
fJ-s
fJ-s
fJ-s
f= 500-600 Hz
f= 600-1000 Hz
f = 1000-2600 Hz
f "7 2600-2800 Hz
NOISE (Primary Channel)
Symbol
Parameter
Min
Typ
T.est Conditions
Max
Units
15
dBrnCO
TG1 = TG2; Transmit
Programmable Gain =
-75
dBmOp
TG1 = TG2; Transmit
Programmable Gain = 6 dB
11
dBrnCO
Unity Gain; Idle Code;
Receive Programmable
Gain = OdB
Unity Gain; Idle Code;
Receive Programmable
Gain = OdB
NXC1
Transmit Noise, C-Message
Weighted
NXP1
Transmit Noise, Psophometrically
Weighted
NRC1
Receive Noise, C-Message
Weighted
NRP1
Receive Noise, Psophometrically
Weighted
-79
dBmOp
PSRR1
VCCorVBB
Power Supply Rejection
Transmit Channel
-30
dB
Idle Channel; 200 mV P-P
Signal on Supply,
DC to 50 KHz (1)
PSRR2
VCCorVBB
Power Supply Rejection
Receive Channel
-30
dB
Idle Channel; 200 mV P-P
Signal on Supply,
DC to 50 KHz (1)
6 dB
NOTE:
1. Measured at SLO Voice bytes for transmit channel. Measured at VFR for receive channel. Idle code on feature control
byte.
5-20
IATC29C48
CROSSTALK
Symbol
Parameter
Crosstalk, Transmit Voice to
CTTA
Receive Voice
CTAT
Min
Crosstalk, Receive Voice to
Transmit Voice
Typ
-90
Max
-75
Units
dB
-80
-72
dB
Test Conditions
Input = 0 dBmO, Unity Gain
1.02 kHz; Idle Code on SLD
Voice Byte
o dBmO, 1.02 KHz Signal at
SLD Receive Voice Byte;
VFX = GNDA
TRANSMIT VOICE FREQUENCY CHARACTERISTICS
TG1 = TG2, Transmit Programmable Gain = 6 dB
Symbol
GAX
Parameter
Gain Relative to Gain at 1.02 KHz
16.67 Hz
50Hz
60 Hz
200Hz
300 to 3000 Hz
3300 Hz
3400 Hz
4000 Hz
4600 Hz and Above
.,.. j
EXPANDED
SCALE
Typ
Min
Max
Units
Test Conditions
o dBmO Signal Input at VFX
-1.8
-0.125
-0.35
-0.70
-30
-25
-23
-0.125
+0.125
+0.03
-0.10
-14
-32
+~~;~:B
-O.125dB
dB
dB
dB
dB
dB
dB
dB
dB
dB
+0.125 dB
+0.03 dB
3000Hz·
../"'3300Hz
20~~"""""""""~-0.'Od'
3400Hz
Od8
-0.35 dB
3300Hz
-10dB
/r-
Od8
-10dS
-14dB
4000Hz
"'20dS
TYPICAL
-JOdS
-4-0 de
-SOdS
-60dS
10Hz
100Hz
1 KHz
10KHz
270153-21
Figure 12. Transmit Voice Frequency Characteristics
5-21
infef
iATC29C48
RECEIVE VOICE FREQUENCY CHARACTERISTICS
Receive Programmable Gain = 0 dB, Feature Control Bit TIE = 0
Symbol
GRR'
Parameter
Min
Typ
Max
Units
Test Conditions
o dBmO Input on SLD
Gain Relative to Gain at 1.02 KHz
Below 200 Hz
200 Hz
+0.125
dB
-0.5
+0.125
dB
300 to 3000 Hz
-0.125
+0.125
dB
3300 Hz
-0.35
+0.03
dB
3400 Hz
-0.70
-0.1
dB
4000 Hz
-14
dB
4600 Hz & Above
-30
dB
+1.0dB
+O.125d8 +O.12Sd8
EXPANDED
SCALE
+O.125d8
+O.03dB
(/ // // // // (/ ~~O/H:. //:~O/H: /////(/ /////////t~?~~:~,:zdB
DdB
/
3400Hz
-O.SOdB
200 Hz
-0.12SdB
3000 Hz
TYPICAL
-0.35 dB
3300 Hz
-0.70 dB
3400Hz
-1.DdB
'////
OdB
~
-10dS
~
-UdB
TYPICAL
4000 Hz
-20dB
-30dB
-30dB
4600 Hz
-40dB
-SDdB
-
-SOdB
I
10Hz
I
I
100Hz
1 KHz
I
10KHz
270153-22
NOTES:
1. Typical transfer function of the receive filter as a separate component.
2. Typical transfer function of the receive filter driven by the sample and hold output of the Intel 2910A and 2911 A
codecs. The combined filter I codec response meets the stated specifications.
Figure 13. Receive Voice Frequency Characteristics
5-22
inter
iATC29C48
A.C. CHARACTERISTICS-TIMING PARAMETERS
Symbol
Max
Units
TSCL
SCl Pulse Width
Parameter
486
1465
ns
TDC
SCl Duty Cycle
25
75
%
TRC
TFC
Rise, Fall Times, SCl
50
ns
TRD
TFD
Rise, Fall Times, SlD
50
ns
TRS
TFS
Rise, Fall Times, SCS
50
ns
TDIRR
SCl to SDIR Delay
-500
500
ns
Receive Cycle
TDIRF
SCLto SDIRDelay
-500
500
ns
Transmit Cycle
TDD
SCl to SlD Delay
0
200
ns
29C48 Transmitting
TSD
Set-up Time, SlD to SCl
100
ns
29C48 Receiving
THD
Hold Time, SCl to SlD
100
ns
29C48 Receiving
THZ1
SDIR to SlD Active
0
100
ns
Byte 1, Bit 1 29C48
Transmitting, Channel A
THZ2
SCl to SlD High Impedance
0
100
ns
Channel A, B, or Feature
Control as Appropriate
(Channel AlB Operation)
THZ3
SCl to SlD Active
0
100
ns
Channel A, B, or Feature
Control, as Appropriate
(Channel AlB Operation)
TSCSF
SCl to SCS low
TFS
250
ns
50 pF load
THZSCSF
SlD High Impedance
toSCS low
ns
Transmit Feature Control
TSCSR
SCl to SCS High
ns
50 pF load
'In cases where T DIRF
IS
positive, T DD
IS
Min
Typ
0
TRS
200
Test Conditions
50 pF load
to be measured from the SOIR edge.
RECEIVE CYCLE
SDIR
SLD
--<'----...JI ~___
SCS(AOR B)
270153-23
5-23
inter
iATC29C48
TRANSMIT CYCLE
SOIR
SLOCA)
SLOCB)
tSCSR
SCs CA OR B)
IRS
270153-24
A.C. TESTING INPUT, OUTPUT WAVEFORM
270153-25
A.C. Testing inputs are driven at 2.4 for a logic "1" and 0.45 for a
logic "0". Timing measurements are made at 2.0V for a logic "1"
and O.BV for a logic "0".
5-24
inter
•
•
•
•
•
•
iATC 29C53AA
DIGITAL LOOP CONTROLLER
•
•
•
•
•
•
4-Wire Full Duplex Digital Transceiver
CCITT 1.430 "S" Interface Compatible
ISDN Basic Rate 144K Bit Per Second
O-Channel Processing Support
Point-To-Point or Point-To-Multipoint
Bus Configuration
Same Device Used at Both Ends of
Loop
Exceeds 1K Meter Range
IATC Standard SLD Interface
MCS® Standard Microprocessor
Interface
Peripheral Interface/Status Port
Low Power, High Density CHMOS
Single
+ 5 Volt Supply
The Intel Advanced Telecommunication Component (iATC) 29C53AA Digital Loop Controller (DLC) is a 4-wire
transceiver/controller that is CCITT 1.430 compatible and can function at either loop end. This part has
integrated those features which are pertinent to the transceiver function and offers efficient interfacing to other
system components such as CODEC/Filters and microcontrollers through the SLD and microprocessor interface ports. It is primarily intended for use in Integrated Services Digital Networks (ISDN) as a basic rate digital
data transceiver which transfers data at 144 Kbps as three separate channels-two 64 Kbps digitized-voice/
data channels (8 channels), and a 16 Kbps signaling/data channel (D channel). The 8- and D-channel routing
along with D-channel processing (packet framing) is programmable through either the microprocessor or SLD
interface ports. The 29C53AA's loop interface uses a 100% pulse-width pseudo-ternary line code which meets
CCITT's "s" interface recommendations. It is capable of interfacing with up to eight 29C53AAs in a passive or
extended bus configuration as well as point-to-point.
Plastic Chip Carrier
350 x 550 MILS
28-Lead Dual-In-Llne Package
cs SLDINlDOAD1
SCL
AD2
SDIR
AD3
ALE
AD4
RES
CLK
vce
VSS
WR
ADS
RD
AD6
P4
AD7
P3
P1
INT
ADO
SLD
AD1
Cs
AD2
SCL
AD3
SOIR
AD4
ALE
CLK
RES
VSS
VCC
ADS
WR
AD6
RD
AD7
P4
P1
P3
LX+
LRP2
LXLR+
P2
LX+
LR+
LX-
LR-
270097-1
270097-2
Figure 1. 29C53AA Pin Configurations
5-25
October 1988
Order Number: 270097-004
intJ
Symbol
iATC 29C53AA
Pin No.
Function
+ 5V
Vee
8
POSITIVE SUPPLY: Input voltage is
Vss
CLK
22
GROUND:OV
23
MASTER CLOCK: The 3.84 MHz system clock input is the reference .for the
loop and the SLD interface.
Aes
7
LX+, LX-
13,14
LA-, LA+
±5%.
RESET: (Active high input). A high level on this pin initializes control registers
and places interface outputs in a high impedance state. Operation begins after
the high level is removed.
POLARIZED TRANSMIT LOOP INTERFACE PINS: These pins will directly
drive the twisted pair line through a pulse transformer. The transmitted line
code is 100% pulse width pseudo-ternary.
15,16
RECEIVE LOOP INTERFACE PINS: The receiver is not sensitive to polarity.
SLD
2
SUBSCRIBER LINE DATALlNK: This pin transfers serial data between the
29C53AA and other SLD based components (e.g., 29C48).
SCL
4
SUBSCRIBER CLOCK: 512 KHz signal may be either generated or received by
the 29C53AA. This signal clocks the data on the SLD pin.
SOIA
5
SUBSCRIBER DIRECTION: An 8 KHz signal may be either generated or
received by the 29C53AA to indicate SLD data direction and framing. A high
level indicates master to slave transfer; a low level indicates slave to master
transfers.
CS
3
CHIP SELECT: (Active low input). A low level on this pin enables the 29C53AA
bus interface for the next bus cycle. The value is latched by the falling edge of
ALE.
AD
10
READ STROBE: (Active low input). When low, data is transferred from the
selected register to the data pins AD (0-7). When no local microprocessor is
connected, this pin should be tied to Vss.
WR
9
WRITE STROBE: (Active low input). When WR changes from low to high, data
on pins AD (0-7) is latched into the 29C53AA. When no local microprocessor
is connected, this pin should be tied to Vss.
19-21,
24-28
ADDRESS/DATA PINS: This is a standard MCS microprocessor bus used to
transfer address and data between the local microprocessor and the internal
registers of the 29C53AA. When a local microprocessor is not used, these pins
should be tied to Vss.
ALE
6
ADDRESS LATCH ENABLE: Address is latched from AD(1-5) on falling edge
of this signal. State of CS is also latched at this time.
INT
1
INTERRUPT REQUEST: This is an open drain active low output. (See text for
the interrupt conditions.)
18,17
PERIPHERAL INTERFACE INPUTS: These are standard CHMOS high
impedance inputs that are sampled at a 4 KHz rate (once per "s" frame). The
sampled data is stored in the LPS register (bits 5 and 6). If any peripheral input
bits have changed value since the previous frame, an interrupt condition is
indicated; only present status is available.
P3
12
PERIPHERAL INTERFACE INPUT/OUTPUT PIN: When configured as an
input, this pin has the same characteristics as P1 and P2. The sampled data is
stored in the LPS register (bit 7). When programmed as an output, this pin
outputs the data stored in the PEC register (bit 1). The pin is configured by bit 2
of the PEC register. An alternate function of this pin and P4 is to indicate the
status of the SLD interface. See the section on the SLD interface.
P4
11
PERIPHERAL INTERFACE OUTPUT PIN: This pin outputs data stored in the
PEC register (bit 0) or SLD status.
AD (0-7)
P1, P2
5-26
(
r--------------------------~
LX+
OUTPUT
DRIVER
LX-
~
c
;
I,
~
XMIT FORMATTER
AND TIMING
0- CHANNEL PROCESSOR
SBUS
ANALOG
REF.
~
~
01
Cf' ~
~
~
ID
0'
()
~
LR+
CD
~I
FILTER
1
AND
LR- ~ DETECTORS
3
2
tZ
ill
3
Co)
SLD
INTERFACE
~
oen
~
LINE
INTERFACE
UNIT
SLD STATUS
AND
PERIPHERAL
INTERFACE
RBUS
XFER
TIMING
CONTROL
SLD
INTERFACE
UNIT
._--------------------------
"@
aID
270097-3
IiiiiI
IF'
~
0=
~
~
~
iATC 29C53AA
1.0 INTRODUCTION
The 29C53AA Digital loop Controller is an advanced, programmable digital transceiver providing
the layer one interface at the S or T reference point
in Integrated Services Digital Network (ISDN) basic
access applications. It provides access to the two B
channels and the 0 channel in accordance with
CCITT recommendation 1.430, and supports both
point-to-point and multipoint topologies. It can be
used in linecard (NT) applications, or with the 29C48
programmable CODEC/Filter and appropriate data
communications devices in voice/data subscriber
(TE) applications.
The 29C53AA may be incorporated at either end of
a subscriber loop interface (at the line card or digital
telephone/terminal). As shown in Figure 2, the
29C53AA has four separate interfaces: a serialSlD
system interface; a parallel peripheral interface; a
parallel microprocessor interface and a 4-wire
CCITT compatible S-interface (subscriber loop inter.
face).
or requests for service may be generated for conditions such as FIFO fullness level, loss of sync, frame
check error, overflows and aborts.
The line interface unit contains the line drivers and
receivers for the S interface. Connection is made to
the transmission lines through a pulse transformer.
Formatting, timing and synchronization are also
provided here. The receiver includes filters, AGC circuitry, threshold detectors and a loop delay shift register. The loop delay shift register maintains the
proper internal frame relationship regardless of loop
length (it allows extra propagation delay time for
long loops or line repeaters). The received D-channel bits are logically looped back to create the
E-channel bits in an NT application through the
E-channel circuitry.
The microprocessor interface circuitry allows the
29C53AA to function as a peripheral to a microcontroller or microprocessor. All internal registers are
directly accessible.
The spare bits processing block provides access to
the FA, N, and A bits. It also provides access to the
Sand M bits, and supports the Sand Q channels.
THE BLOCK DIAGRAM
Figure 2 represents a block diagram of the
29C53AA. Its three major blocks, the line interface
unit, the D-channel processor and the SlD interface
unit are interconnected by two buses. The parallel
bus (PBUS) is used to transfer processed D-channel
data and general status and control information,
while the serial bus (SBUS) is used to transfer
B-channel data and unprocessed D-channel data
between the line interface unit and the SlD interface
unit.
The peripheral interface circuitry provides an auxiliary port for controlling auxiliary peripherals such as
power controllers, etc. It can be programmed to provide SlD status as well.
The SlD interface unit consists of shift registers and
serial to parallel converters. Data from both the
SBUS and the SlD interface is stored here in appropriate parallel registers before it is loaded into shift
registers and passed on. All of the timing circuitry for
the SlD interface is located here. This block also
contains a command processor which is responsible
for executing commands received in the SlD C byte.
As shown in Figure 3, the SlD interface consists of
three lines: the SlD bidirectional data line; the
512 KHz SCl clock line; and the 8 KHz SDIR data
direction line. SlD data is updated on the rising edge
of SCl and is latched on its falling edge. The 125 ,""S
SlD frame period consists of 32 bits transferred in
master to slave direction followed by 32 bits in the
slave to master direction. The 32 bits compose four
8-bit bytes in the following order: B1 and B2 (voice
or data bytes); C (control byte); and S (signaling or
status byte). Unprocessed D-channel data may be
transported over the S-byte in bits and 1, or over
the B2 byte.
SLD INTERFACE
The SlD interface provides communication with other devices incorporating SlD interfaces.
The D-channel processor has three major sections.
An HDlC section performs some of the basic LAPD
protocol functions such as zero insertion or deletion,
flag recognition or insertion for frame delineation,
abort flag recognition, idle state transmission, and
end of packet frame check sequence for both data
directions. The FIFO section consists of two 32-byte
buffers, one for transmit and one for receive. The
control and status section monitors the FIFO data
levels and the HDlC section for progress. Interrupts
°
The 29C53AA can be operated as an SlD master or
slave. As an SlD master, it generates the SCl and
SDIR signals. When SDIR is high, the SlD pin outputs data. As a slave, it receives SCl and SDIR sig-
5-28
iATC 29C53AA
nals and SDIR enables the SLD output driver when it
is low. The SLD bus is always active; no powereddown or inactive mode is defined.
resistance (see Figure 12). The series resistance,
when used with protection diodes, provides additional protection against surges. It also increases the
output impedance.
In a network termination (NT) application (line card),
whether a microprocessor is connected to the
29C53AA or not, the SLD control and signaling
bytes may be used for 29C53AA configuration and
D-channel transfers. The command bytes are interpreted and executed by the 29C53AA's command
processor circuit. The command processor generates internal P8US cycles to carry out those commands. Internal prioritization resolves P8US collisions between microprocessor-interface generated
and command-processor generated cycles. In case
of collisions, the microprocessor interface has higher priority to minimize access time but both cycles
will be completed.
The nominal bit rate is 192 Kbps. Figure 4 shows the
frame structure. The 250 ,...S frame transfers two octets of 81, 82 and four bits of D data. The E bits in
the master to slave direction echo received D-channel data. The "S" interface slave compares the receive E-channel data to its transmitted D-channel
data for D-channel contention as defined in CCITI
recommendation 1.430. If these bits do not agree,
then the slave will abort its transmission effort. The
S, M, fA, A, and N bits are all accessible and programmable. The 29C53AA supports the layer 1
maintenance multiframing for the Q and S channels.
The activation protocol described in 1.430 is supported by the 29C53AA. An inactive receiver can
achieve bit synchronization to an incoming signal
with approximately 15 mark-mark transitions. Info 2
or 3 frame alignment is not officially recognized until
reception of 16 frames, to allow settling of the
29C53AA's adaptive receive data thresholds. The
full activation sequence will complete in approximately 10 ms.
"S" TRANSCEIVER
The 4-wire "S" transceiver circuit in the 29C53AA
conforms to CCITI recommendation. 1.430. This
transceiver provides the internal drivers for transformer coupling to standard telephone type twisted
pair cables.
The "S" transceiver line code is 100% pulse width
pseudo-ternary code, with binary ones represented
by no line signal, and binary zeros by a positive or
negative pulse. Pulses alternate polarity except
when a code violation is created for establishing the
frame reference timing. The nominal pulse amplitude
is 750 mV when a suitable pulse transformer is used.
The 29C53AA is not sensitive to the polarity of the
wire pair connected to LR + and LR -. Pulses are
always interpreted as zeros and framing relies on
violations; not on absolute polarity. System configurations-may dictate that care be taken in connecting
the LX outputs. In a multi-drop bus configuration all
TE transmitters must be connected with the same
polarity so that positive pulse to negative pulse contention does not take place in the framing and Dchannel bits.
The 29C53AA transmitter is typically connected to
the line through a pulse transformer and series
91
SLD
SDIR
J
92
91
S
C
I.
92
SLAVE MASTER -
C
S
MASTER
SLAVE
SCL
I.
125,uS
.1
270097-4
B1 - 64KBPS DATA
- 8 BIT BYTE
B2 - 64KBPS DATA
- 8 BIT BYTE
C· CONTROL/DATA ·8 BIT BYTE
S - SIGNALING/DATA· 8 BIT BYTE
ALL BYTES ARE MSB FIRST
Figure 3. SLD Interface
5-29
intJ
iATC 29C53AA
• MASTER TO SLAVE (NT TO TEl
F
L~-BI-8BITS-!E
'YLrE ~
D A FA N!-82-8BITS-!E
11111111
D MI-BI-881TS--!E
D SI-B2-8BITS-!E
D L
f ~ 111111 f~ 111111 { 8HP
• MASTER TO SLAVE (TE TO NT)
1--------1
2 BIT OFFSET
:rwr ffitfU1H ffibqJ} ffibqJ} ffitP1
F
L
~-BI-8
BITS
r
-I
L D L FA L
1- B2-8 BITS-! L
48 81T WIDE FRAME -
D L I- BI-8 BITS--! L
D L I-B2-8 81TS-! L
D L
250 MICRO SECONDS
270097-5
A· BIT USED FOR ACTIVATION
B1. 2·64 K BPS DATA
D· DCHANNEL BIT (16K BPS DATA)
E • D CHANNEL ECHO BIT
F· FRAME BIT
FA' AUX. FRAME BIT
L • DC BALANCING BIT
N • BIT = FA (NT to TE)
M • MULTIFRAMING BIT
S • S CHANNEL BIT
Figure 4. The S-Interface Frame Structure
The 29C53AA, functioning as an "S" interface master in a multi-drop application, can interface with up
to eight slave systems. In this multiplexing operation
a slave initiates a data transfer to the master, by
requesting access and transferring the data in accordance with the D-channel line access protocol
(1.440). Figure 5 shows typical applications of the
29C53AA.
internal registers are accessible and are available by
a single microprocessor cycle access. The
29C53AA latches address information from
POINT-TO-POINT
1-1-----1km-----....11
~~-------------------~
The frame alignment timing diagram Figure 6(b)
shows the relationship of the "S" interface data to
the SLD data. Figure 6(a) shows the block diagram
used for the timing diagram. The top timing diagram
of Figure 6(b) shows the transmitted "S" data
stream from the network terminator (master). The
dotted lines depict up to 20 f.Ls propagation delay to
the "S" receiver at the terminal equipment (slave)
end. The terminal equipment's transmitted "S" interface frame is designed to have a fixed 2-bit frame
alignment del""y from that pf its received, frame. The
adjustment for loop propagation delay is accounted
for in the network terminato(s r~cE:live circuitry (loop
delay section. of block diagram). The loop delay circuitry will compensate for up to 10 bit periods of
round trip propagation delay which allows line repeaters to be placed in a loop that is several thousand meters long.
PASSIVE BUS
,------100 M- 200 M
----·1
•••
EXTENDED PASSIVE BUS
r25-50M _'1~_--500 M - - _ . jI
0·· ·8
MICROPROCESSOR INTERFACE
This interface is designed to operate with stand,ard
Intel microprocessors such as the MCS®-48, MCS51, MCS-85 and 8086 families. All of the 29C53AA's
~
270097-6
Figure 5. 29C53AA Bus Configurations
5-30
inter
iATC 29C53AA
NT
TE
RECEIVE
DATA PATH
(B)
TRANSMIT
DATA PATH
(A)
4 WIRE"S"
TRANSMIT
DATA PATH
RECEIVE
DATA PATH
(D)
(E)
270097-7
Figure 6(a). Frame Alignment (Block Diagram)
AD1-AD5, and does not use ADO for addressing.
This provides compatibility with 16-bit microprocessors.
PERIPHERAL INTERFACE
The maskable interrupt pin is activated by the following interrupt status features: D-channel errors; loss
of sync on "S" loop; change in spare bits or peripheral interface data; FIFO data transfer requests.
The peripheral interface uses four pins to provide
control to, and to accept status from, external devices. Two pins are inputs, one is an output and one is
configurable either as an input or an output. The
configurable pin defaults to the input mode on power
up.
Alternatively, the 29C53AA can operate in the standalone mode in line card and NT applications. This
mode is determined after a reset, provided all the
microprocessor interface pins have been tied to
VSS, except for the interrupt pin. The 29C53AA is
then controlled using the C byte of the SLD interface.
The peripheral interface can also be used to indicate
SLD status. Figure 7 shows the timing diagram of P3
and P4. 81, 82 and D-channel data on the SLD pin
can be selected or gated by using these signals. As
noted on the P3 timing, the D-channel is imbedded
in the last two bits (0, 1) of the Signaling byte. (This
must be programmed in the DPC register).
r
B1
SLD
SDIR
J
B2
c
MASTER - - - SLAVE
I
S
: I,
2 BITS
B1
B2
c
SLAVE - - - MASTER
S
,
'r
,
,
,
'
rr
P3
,
_____r
270097-9
NOTE:
1. Status indicators are activated by the SST Bit in the PEG Register.
2. P3 changes two bits prior to P4 If raw D-channel data is routed over the SLD S byte.
Figure 7. 29C53AA SLD Status Indicators
5-31
(A)
NT
SX
f
Bl(a)
(B)
SR
...,z
"11
SLDX
...J""
SDIR
lEi
c:
0 ...
...,,,,
C1)
. . I-
~
:Eo
z;;;
"'...J
~VI
~
...
...,I
"11
III
,
B2(b)
l
t
1
"I
I "E"!!2
1
(C)
'"
55i
0.....,
...
Bl(b)
V
-:\, I-LOOP
"
DELAY
I-
B2(a)
T
SLDR
I-
~
3C1)
(D)
~
01
l:J
I\)
i!i
::J
3C1)
3-
(E)
'3
SR
N
SX
~
en
~
3
S'
ID
.
'"~
0
iii'
...
(F)
....
;;;...,
ID
"''-'
"'...,
III
3
SLDX
'--___r-
1-",
~~
~
0;;;
i!9
"'VI
z
SDIR
SLDR
~
.!.
z
2eJ
IiiiiJ
IF'
(A)
SX
~
o
o
co
....I
00
NOTE:
+ Depicts the beginning of the'S' Interface frame
.. (loading edge of F bit) and the beginning of the SLD interface frame.
~
~
~
2eJ
~
inter
IATC 29C53AA
Op Code Table
OpCode
Operation
Argument
-
000
Reserved For Status Poll (Call Verify) By Master
001
Single Byte Transfer To Slave
RegAdr
010
Prepare Single Byte For Transfer To Master
RegAdr
011
Multiple-Byte 0 Data Transfer To Slave
'Bytes
100
Multiple-Byte 0 Data Transfer To Master
Max' Bytes
101
Multiple-Byte Configuration Transfer To Slave
, Bytes
110
Multiple-Byte Status Transfer To Master
, Bytes
111
Reserved For Status Poll (Call Verify) Tail & Idle
are transferred or an EOP (end of packet) is detected. The EOP may occur even when there are additional bytes in the FIFO. The header byte contains
the byte count in the lowest five bits and the packet
status in the upper three bits.
INTERNAL CONTROL AND STATUS
REGISTERS
'
All of the 29C53AA's internal control and status registers may be accessed through the microprocessor
interface or through the SLO interface (when in SI,.O
slave mode). When a microprocessor accesses a
register, the address and CS inputs are latched on
the trailing edge of ALE. The address is latched from
pins A01-A05 of the microprocessor port.
Data transfers over the SLO line cannot be made in
both directions simultaneously. Multiple commands'
and data bytes may follow each other directly from
the line card controller to the 29C53AA if the previous command has been fully executed.
In an SLO access, the 29C53AA receives a control
byte containing an operation code and an argument.
The three most significant bits contain the operation
code and the remaining five bits contain the argument. The operation code defines eight transfer
types.
SLD Control Byte
It is possible to fully configure the 29C53AA over the
SLO interface. Provisions are also made to perform
this transfer at a 2 byte-per frame rate using both the
C and S bytes of the SLO. The first control byte of a
configuration transfer to the 29C53AA specifies the
type of operation to be performed and the number of
data bytes to follow. The system interface command
unit loads the internal registers with the information
as it is received. When the specified number of data
bytes have been transferred, the 29C53AA assumes
the next input is a control byte.
BITS
](
-
Argument
OpCodo
The order of the bytes in a configuration or status
block transfer is determined by the addresses of the
internal registers. A multiple-byte transfer, beginning
with register OOH, transfers the data to or from that
register and increments the address counter.
The 3-bit operation code in the control byte from the
SLO master should normally be 111, indicating the
idle state. The transferring of data to and from the
29C53AA is accomplished by indicating the type and
the number of bytes to transfer in a non-idle control
byte. When a polle,d response is requested, the
29C53AA responds to the poll operation code 000.
This can be used for the transfer of one or several
bytes of information.
The register table below identifies the address of
each 29C53AA register. The status registers are
read-only registers while all control registers are
read/write reg,isters. Because all the register addresses do not fit into the 5-bit address space, a
register test mode has been included which permits
reading the contents of control registers at addresses which normally are status registers. Where no
register is assigned a location in the register test
mode, the normal status register located at this address is read.
The O-channel block transfers from the 29C53AA to
the SLO master preface the data bytes with a byte
header specifying'the number of following bytes
(less than or equal to the maximum specified) and
the status of the packet they belong to. All transferred data bytes belong to the same packet; the
transfers occur until the selected number of bytes
5-33
intJ
IATC 29C53AA
Table 1. 29C53AA Registers
Parallel
Port
Address
00
00
02
02
04
04
06
08
08
OA
OA
Internal
Address(1)
Access
Symbol
-00000
RD
WR (RT)
RD
WR (RT)
EXS
OC
OC
OE
10
12
14
16
18
1A
1C
1C
00000
00001
00001
00010
00010
00011
00100
00100
00101
00101
00110
00110
00111
01000
01001
01010
01011
01100
01101
01110
01110
1E
1E
20
22
24
26
30
32
34
36
38
01111
01111
10000
10001
10010
10011
11000
11001
11010
11011
11100
RD
WR (RT)
3A
3C
3E
11101
11110
11111
RD
WR (RT)
RDWR
RD
WR(RT)
RD
WR(RT)
RD
WR(RT)
RDWR
RD
WR
RDWR
RDWR
ROW
RDWR
RD
WR (RT)
EXM
DPS
DPC
LPS
LCR
PEC
RFN
SCR
XFN
SOC
SBR
SBX
LLB
RFO
XFI
GCR
DPR
RFXF
XFXF
PLENH
DUTH
Function
Interrupt Status
Interrupt Mask
D-Channel Processor Status
D-Channel Processor Control
Loop and Peripheral Interface Status
Loop Interface Control
-Peripheral Interface and E-Channel Control
' Receive FIFO Status - " of Bytes Used
SLD Interface Control
Transmit FIFO Status - " of Free Bytes
SLD Data Transfer Configuration
RDWR
RDWR
RD
RD
RDWR
PLENL
DOTH
SBC
PSR
RSR
XSR
81LS
RDWR
RDWR
RDWR
RDWR
B2LS
CR
SR
B1SL
Spare Bits Receive Status
Spare Bits Transmit
Loop Interface Loopback Control
Receive FIFO Output
Transmit FIFO Input
General Command Register
D-Channel Priority Counter
Receive FIFO Interrupt Level
Transmit FIFO Interrupt Level
Packet Length High Byte
D-Channel Byte Counter Underflow
and Overflow Threshold
Packet Length Low Byte
D-Channel Byte Counter Overflow Threshold
Spare Bit Control
Position Selection
Receive Service Request
Transmit Service Request
B1 Data in Loop to SLD Direction
B2 Data in Loop to SLD Direction
Control Byte from SLD
Signaling Byte from SLD
B1 Data in SLD to Loop Direction
RDWR
RDWR
RDWR
B2SL
CX
SX
B2 Data in SLD to Loop Direction
Control Byte to SLD
Signa,ling Byte'toSLD
NOTE:
1. Address represents AD1-AD5. ADO is not used by the 29C53AA for addressing.
5-34
intJ
IATC 29C53AA
CR Control Byte Receive 11010 R, W
29C53AA Register Definitions
7
In the register descriptions that follow, the acronym,
name, five bit address, and whether the register can
be written or read (or read only in RT mode) are
provided in the heading. For easy reference, the registers are listed in alphabetical order.
6
5
4
3
2
o
CX Control Byte Transmit 11110 R, W
This register provides access to the B1 channel data
flow in the direction from the "S" loop to SLD interface. Data can be read or overwritten by the microprocessor in Intercept mode (see SCR register).
Also, data can be accessed so the MSB is in bit 7
(default mode) or flipped so that the LSB Is in bit 7
by issuing the appropriate GCR command.
7
5
2
4
o
7
4
6
B1 data
7
5
4
3
2
5
6
4
ORT
unused
3
I I
B20
o
2
D-Ch. Routing
DRT D-channel routing through B2 on the SLD if bits
2-0 are 101.
BITS
B2SL B2 Data SLD to "S" Direction 11101 R, W
6
o
2
DPC D-Channel Processor Control 00001 W (RT)
This register provides access to the B1 channel data
flow in the direction from the SLD interface to the
"S" loop. Data can be read or overwritten by the
microprocessor in intercept mode (see SCR register). Also, data can be accessed so the MSB is in bit
7 (default mode) or flipped so that the LSB is in bit 7
by issuing the appropriate GCR command.
7
3
4
5
This overflow threshold (maximum packet length)
may be specified in the range 1-4095. An exception
is generated (see DPS register) if the threshold is
equaled or exceeded. Setting this register to OOH
(default) disables this function. The most significant
four bits of the overflow threshold are set in the
DUTH register.
o
3
o
2
Overflow Threshold Bits 0-7
B1SL B1 Data SLD to "S" Direction 11100 R, W
5
3
DOTH Overflow Threshold (Low Byte) 01111 W (RT)
This register provides access to the B2 channel data
flow in the direction from the "S" loop to SLD interface. Data can be read or overwritten by the microprocessor in intercept mode (see SCR register).
Also, data can be accessed so the MSB is in bit 7
(default mode) or flipped so that the LSB is in bit 7
by issuing the appropriate GCR command.
6
4
This address provides access to the transmit control
byte register pair in the SLD register bank. In SLD
master mode, data placed in this register is transmitted over the SLD link in the C byte. This is typically
control information sent to an SLD slave device
such as the 29C48. Data is only transmitted in SSM
(SLD master) mode.
B2data
7
5
6
data
B2LS B2 Data "S" to SLD Direction 11001 R, W
6
o
2
This address provides access to the receive control
byte register pair in the SLD register bank. In SLD
master mode, this register contains the received
control (C) byte from the SLD link. This is typically
control information read back from an SLD slave device such as the 29C48. Register contents are only
valid in SSM (SLD master) mode.
B1 data
7
3
4
data
B1 LS B1 Data "S" to SLD Direction 11000 R, W
7
5
6
o
",2 data
This register provides access to the B2 channel data
flow in the direction from the SLD interface to "S"
loop. Data can be read or overwritten by the microprocessor in intercept mode (see SCR register).
Also, data can be accessed so the MSB is in bit 7
(default mode) or flipped so that the LSB is in bit 7
by issuing the appropriate GCR command.
5
4
0
0
route through B2 bits 0, 1
0
1
route through B2 bits 2, 3
1
0
route through B2 bits 4, 5
1
1
route through B2 bits 6, 7
B2D When the rSw 0 channel is routed to the SLD in
the B2 byte (DPC bits 2-0 = 101), this bit sets
the value for the unused bits of the transmit
direction B2 byte (all zeroes or all ones).
5-35
intJ
iATC29C53AA
Transmit status, encodep as follows:
D-channel routing is programmed in bits 2-0 of this
register for both NT and TE operation. D-channel
processing can be bypassed to provide a clear 16K
bits per second channel over the SLD line if desired .
Bit 1/3/5/7 of the B2 channel or bit 1 of the S channel will be the first one transferred over the "S" bus
in this case.
BITS
Bit 4 if set to 1, the packet being transmitted was
aborted due to FIFO Underrun. The FIFO was
emptied, and no EOP tag was found.
Bit 5 if set to 1, the packet being entered to the FIFO
by the microprocessor was aborted due to
FIFO overrun. The FIFO was written to when
full.
Bit 6 if set to 1, the packet being transmitted was
aborted due to loss of priority, or loss of sync.
At a TE, priority is lost if the E-channel bit just
received does not match the last transmitted D
bit.
D-CHANNEL MODE
2
1
0
0
0
0
Processor inactive, disconnect
from SBUS
0
0
1
Loopback test mode (1)
0
1
0
Reserved
0
1
1
Processor active on SBUS,
normal operation
1
0
0
Processor inactive, raw D
through SLD S byte bits 1, 0
1
0
1
Processor inactive, raw D
through SLD B2 byte as set in
DPC4,5
1
1
0
Reserved
1
1
1
Reserved
RB Receiver busy. This bit is set when a packet is
currently being received. This bit does not affect
the RDP bit in EXS, or cause an interrupt.
Receive status. The status of the packet which the
microprocessor has access to (appears at RFO) is
encoded as follows:
BITS
Receive Status
2 1 0
0 0 0 Still receiving, no EOP yet
0 0 1 Good EOP
0 1 0 FCS error
NOTE:
1. Bit PEC.4 (EMO) must also be set to one to use the Dchannel loopback test mode when operating as a loop
slave (TE) if the loop interface is not synchronized.
0 1 1 FIFO underrun (read when empty)
1 0 0 FIFO overrun
received)
6
5
4
3
I ZIS I
unused
2
0
unused
PRI
1 1 0 Packet overflow (packet too long,
threshold set in DOTH)
ZIS When ZIS = 1, the transmitter will not perform
zero insertion on the outgoing D-channel
frame. The data in the FIFO will be transmitted
as is. When ZIS = 0, zero insertion is enabled
which is normal operation. The default for this
bit is o.
1 1 1 Abort or loss of sync
DUTH Underflow and
Threshold 01110 W (RT)
7
PRI When PRI = 0, the higher priority class (8) is
selected for the D-channel priority logic. When
PRI = -1, the lower priority class (10) is selected. This bit defaults to 1, selecting the lower
priority class.
I XB I
6
5
4
transmit status
3
I RD I
2
6
5
underflow threshold
4
Overflow
3
2
(High
Byte)
o
overflow threshold bits 11 -6
The underflow threshold (minimum packet length)
may be specified in the range 1-15. An exception is
generated (see DPS register) if the threshold is not
exceeded. Setting this register to OOH (default) disables this function. The upper four bits of the overflow threshold are also contained here.
DPS D-Channel Processor Status 00001 R
7
full when next byte
1 0 1 Packet underflow (packet too short,
threshold set in DUTH)
DPR D-Channel Priority 01011 R, W
7
(~IFO
0
receive status
XB Transmitter busy. This bit is set to 1 whenever
D-channel processor is transmitting. This bit
does not affect the XDP bit in EXS, or cause an
interrupt. This bit is zero when the transmitter is
inactive or awaiting priority on the D-channel.
5-36
inter
IATC 29C53AA
EXM Exception Mask 00000 W (RT)
76543210
I
0
I XSR I RSR I PC I sx I LS I XDP I RDP I
RSR request for receive FIFO data transfer. A complete D-channel packet has been received, or
the FIFO is full to the programmed level (set in
RFXF).
PC
Setting a bit to 1 in this register enables the associated exception to generate an interrupt, and to appear in the S byte of the SLD line. This register is
initialized to OOH, all interrupt sources masked.
change noted in peripheral interface inputs.
Read LPS bits 5-7 for status.
SX
exception noted in spare bit unit (multiframing
or A bit change). Read SBC for more information.
EXS Exception Status 00000 R
LS
loss or gain of synchronization to the "S" loop.
Read LPS for loop status.
7
I
X
6
5
4
3
2
1
0
I XSR I RSR I PC I sx I LS I XDP I RDP I
RDP D-channel processor exception, receive side.
Read DPS bits 0-2 to determine cause.
This is the main status register. It should be polled
first when investigating the source of an exception.
Some status is expanded in additional registers.
When unmasked, bits set in EXS cause an interrupt,
and affect the SLD Signaling byte status.
X
XDP D-channel processor exception, transmit side.
Read DPS bits 4-6 to determine cause.
GCR General Command Register 01010 R, W
7
6
5
XSR request for transmit FIFO data transfer. The
transmit FIFO is at the programmed level of
emptiness (set in XFXF). Or, if XFXF = 0, the
closing flag of a packet has been transmitted.
CODE
COMMAND
GRST
011XXX11
GDRAB
3
2
Writing one of the listed codes to the GCR register
causes the specified event to execute once. A new
command should not be written to GCR for five cycles of CLK. Where the code contains X's, those bits
have no effect. Reading the GCR register reads the
previous command.
EVENT.
Reset all internal units.
Clear receive FIFO to next EOP (ignore data from loop
until FLAG if none presently in FIFO).
011XXX10
GDRCL
Clear entire receive FIFO.
011XXX01
GDXAB
Abort and clear the transmit packet currently being
constructed by the microprocessor.
011XXXOO
GCXCL
Stop D-channel transmission, clear transmit FIFO, and
indicate idle on transmitted D-channel.
01 OXXX1 0
GDXMK
Mark EOP in transmit FIFO (no effect if FIFO empty).
010XXXT1
GLMX4,
GLMX2
010XXXOO
GSSY
Transmit INFO 4 (T= 0) or INFO 2 (T= 1) regardless of
receive state. GLMX2 must be issued once before
GLMX4 will cause INFO 4 to be transmitted. GTD must
be issued to after GLMX4 return to normal operation.
Synchronize S frame to the next SLD frame (valid only
when the loop is inactive).
001XXXNF
GB1F,
GB2F
N = select B1 (0) or B2 (1).
F == 0, don't flip (bit reverse) B 1IB2 between
PBUS and SBUS (MSB first).
F = 1, flip B1 IB2 between PBUS and SBUS (LSB first).
OOOXXXOA
GTST
Set PBUS address A5 to A (A = 1 for register test
mode).
000XXX1D
GTA,
Set 0 = 1 for loop activation command, set 0 = 0 for
loop deactivation command.
GTD
otherwise
no effect
o
command code
reserved for future use, should be masked.
111XXXXX
4
no action taken.
5-37
inter
iATC 29C53AA
(SLD) interface, the loopback occurs at the. interface
to the internal SBUS. None of the data formating, or
analog Circuitry is included. The loop interface must
be active and synchronized to use these loop back
features.
DL 1 = Loopback D toward loop, 0 = disable loopback
B2L 1 = Loopback B2 toward loop, 0 = disable loopback
B1 L 1 = Loopback B1 toward loop, 0 = disable loopback
DS 1 = Loopback D toward system, 0= disable
loopback
B2S 1 = Loopback B2 toward system, 0= disable
loopback
B1S 1 = Loopback B1 toward system, O=disable
loopback
LCR Loop Interface Control 00010 W (RT)
7
6
unused
5
4
3
2
I B1E I B2E IXMIT I
1
0
MODE
B1 E; B2E B-Channel Transmit Enables (no effect in
LSM modes)
o disable transmitter for Bn subframes
1 enable transmitter for Bn subframes
XMIT Transmitter Enable (no effect in LSM modes)
o power/down/disable transmitter (output is
high impedance)
1 enable transmitter
MODE Loop Interface Mode
bits
210
o0
0
LOFF power down/disable transceiver
o0
1
LOFF power down/disable transceiver
When operating as a loop slave (TE), bit PEC.4
(EMO) must also be set to one to use the D-channel
loopback toward the system interface (set by the DS
bit) if the loop interface is not synchronized.
o
0
reserved
LPS Loop, Peripheral Interface Status 00010 R
o
o
reserved
1 0 0
LSSA Adaptive Receive Timing, Slave (TE)
1 0 1
LSMH Hybrid Receive Timing, Master (NT)
Extended passive bus or point-to-point
P3S state of peripheral interface pin P3 when configured as an input
P2S state of peripheral interface pin P2
LSMA Adaptive Receive Timing, Master
P1 S state of peripheral interface pin P1
o
6
7
5
4
3
2
encoded loop interface status
(NT)
Loop interface status code:
LSMF Fixed Receive Timing, Master (NT)
Short passive bus
BITS
LLB Loop Interface Loopback Control 00111 R, W
7
I
0
6
5
432
I DL I B2L I B1L I
0
1
0
I DS I B2S I B1S I
4
3
reserved for future use, should be zero
mode: master(1)/slave(0)
2
transmitter enable (both LCR.3 AND LCR.2 are
set)
1, 0 11
10
01
11
For data looped back towards the loop, the analog
circuitry and data formating and deformating is included. For data looped back towards the system
5-38
=
=
=
=
active
initialize (init)
initialize
inactive
intJ
IATC 29C53AA
29C53AA LOOP INTERFACE STATES
BITS
Description
43210
1XXXX
Reserved for future use
01111
LSM3 active: sending INF04
01110
LSM2 remote init: receiving INFO 1
01101
LSM1 local inlt: send INFO 2 on local request
01100
LSMO inactive, powered up (receiver active)
01011
-(unused)LMP2 passive resync,
01001
LMP1 passive resync,
01000
-(unused)-
00111
LSS3 active: sending INF03
00110
LSS2 remote init: sync to INFO 21INFO 4
00101
LSS1 local init: send INFO 1 on local request
00100
LSSO inactive, powered up (receiver active)
00011
LSP3 active, receive only, successful passive resync
00010
LSP2 passive resync,
LSP1 passive resync,
00000
LOFF inactive, powered down (receiver inactive)
P30EN P3 output enable (also enabled by SST). 0
= input, 1 = output
R,W
I
6
0
AA
AA
< 16 frames correct
< 3 Pulses per frame
00001
PEC Peripheral Interface, E Channel Control 00011
7
< 16 frames correct
< 3 pulses per frame
01010
5
I EM1
4
3
2
I EMO I SST Ip3DENI P3
0
P3
P3 output value
P4
P4
P4 output value
PLENH D-Channel Packet Length High Byte 01110 R
auto-answer mode enabled (1), or disabled
(0)
7
6
5
4
Master, LSM modes
generate E channel from received D
10
force E channel to logical zero
11
force E channel to logical one
PLENL D-Channel Packet Length Low Byte 01111 R
normal E-channel function, contention resolution mechanism is enabled
01
ignore E channel, always transmit D-channel data without waiting for priority. Loss of
priority exception is suppressed
11
Force loss of priority
SST
present SLD status on P3 and P4 if 1, or if 0,
P3 and P4 are 1/0 pins controlled by PEC
bits 0-2.
o
This' register holds the upper byte of the length of
the current D-channel packet. The count is updated
as the packet is read out of the receive FIFO. Reads
of PLENH should be done a minimum of 3 CLK cycles after reading RFO..
Slave, LSS mode
XO
2
length
EM1, EMO
OX
3
7
6
5
4
3
2
o
length
This register holds the lower byte of the length of the
current D-channel packet. The count is updated as
the packet is read out of the receive FIFO. Reads of
PLENL should be done a minimum of 3 CLK cycles
after reading RFO.
5-39
lATe 29C53AA
RFXF Receive FIFO Excepti!)n pull ness 01100 R, W
PSR Position Selection Register 10001 R, W
7
6
5
4
3
2
.
0
7
any bit set
This register allows the processor to poll up to eight
29C53AA transceivers on the same microprocessor
bus at one time, with each having its own status bit
position in the byte. Using this method the processor
can check status on all 29C53AA devices with a single read.
See also RSR (Receive Service Request) and XSR
(Transmit Service Request).
This register cannot be accessed via SlD command.
RFN Receive FIFO Number 00100 R
7
6
543
EOP IMOREI FULL I
2
0
number of bytes avail.
MORE If MORE = 1, more information is available
in the receive FIFO beyond the first packet,
delineated by an EOP marker. If MORE =
0, no data lies beyond the first packet.
7
3
2
o
RFXF
654
3
2
0
All bits in this register reflect the same status, the
state of the RSR bit in the EXS register. When this
register is read, only those bits indicated by a 1 in
the corresponding bit positions in the PSR register
are enabled onto the microprocessor bus. The remaining bit positions on the microprocessor port
pins remain in a high impedance state during a read.
This allows up to eight 29C53AA transceivers connected to the same microprocessor bus to be polled
for status with one read. This feature is useful, for
example, in linecard applications where multiple
29C53AA devices are controlled by one microprocessor.
See also PSR (Position Selection Register) and XSR
(Transmit Service Request).
SBC Spare Bit Control 10000 R, W
76543210
I MFE I MDX I MS I SIE I MIE I MX I AXE I AX
All exceptions are generated at the beginning of the
ISDN frame following the event which causes the
exception.
MFE Multiframe function enable. When MFE = 1,
the spare bit unit is In the multlframe mode.
When MFE = 0, the 29C53AA will not perform
any of the multiframing procedures.
MDX Multiframe Q/S data change exception indication. When MFE = 1, this bit is set to 1 if a
Q/S bit quartet is received that is different
from the previous one received, and a spare
bit exception (SX in EXS) is generated. This bit
is cleared upon reading SBC.
MS Multiframe sync indication. When MFE = 1,
this bit indicates the multiframe synchronization status (1 = in sync, 0 = out of sync).
When MS changes from 1 to 0, a spare bit
exception is generated (SX in EXS). When
MFE = 0, this bit is always a one.
RFO Receive FIFO Output 01000.R
4
-
2
each bit set to state of RSR
The entire FIFO is filled if 1. The FIFO. is not
full if O.
number If at least one EOP is marked, this value is
the number of bytes to the first EOP.· If no
EOP is marked, this value indicates the
number of valid bytes in the receive FIFO.
5
3
RSR Receive Service Request 10010 R
FUll
6
4
If the number of bytes accumulated in the FIFO is
equal to or exceeds this 5-bit number, or if the receive FIFO contains a byte marked EOP, the receive
FIFO exception RSR is activated. Setting this register to zero disables this function. However, a packet
tagged EOP will still set the RSR exception.
This register indicates the number of bytes in the
receive FIFO as detailed below.
EOP
Minimum of one byte in the receive FIFO is
marked as the end of a packet if EOP = 1.
If EOP = 0, no byte marked as end of packet.
7
5·
unused
A one in any bit of this register enables that bit onto
the microprocessor bus when the XSR and RSR
registers are read. Those bits of PSR in the zero
state disable the corresponding bit positions of the
microprocessor bus of the 29C53AA so that those
bits remain in a high impedance state when RSR or
XSR are read.
I
6
o
data
Read from this register to read from the· receive
FIFO. Do not write to this location, as one byte will
be lost from the packet (read out ·from the FIFO).
Reads from this location should be separated by 4
ClK cycles.
5-40
inter
iATC 29C53AA
SIE Single frame interrupt enable. Setting this bit to
a 1 enables the generation of a spare bit exception (SX in EXS) every ISDN frame. The
single frame exception does not have an indication as such, but the indication should be
inferred if the SX bit in EXS and the SIE bit are
set. If SIE = 0, no single frame exception is
generated.
MIE Multiframe interrupt enable. When MFE = 1,
setting MIE to a 1 enables the generation of a
spare bit exception (SX in EXS) when the MX
bit becomes set. MIE = 0 masks the MX bit
from producing a spare bit exception.
SSX Spare Sit Transmit 00110 W (RT)
(MFE = 1/MFE = 0)
OS1OS4
are only valid when MFE = 1. OS1 is transmitted first.
FAE# FA echo enable. Valid only when MFE = 0
and in LSS (TE) mode. If FAE# is 0, the
29C53AA automatically echoes the received FA bit from the NT in the FA bit position of its transmit frame. If FAE# is 1, the
transmitted FA bit follows the state of bit
SSR.1. The default is FAE# = 0, and the
FA bit is echoed.
S
S bit transmitted. Valid only in LSM (NT)
modes. When MFE = 1, the S bit is located
at SSR.3, and when MFE=O, at SSRA.
When MFE = 1, the S bit is transmitted in
the frames of the multiframe when FA is not
equal to 1.
M
M bit transmitted. Valid only in NT mode
and MFE = o.
N = FA Control for the N bit. Valid only in the "NT
mode. If N = FA is set to 1 the N bit transmitted will equal the FA bit value. The N =
FA bit should be set toO for normal operation so that the N bit will be the complement
of the FA bit. The default is N = FA set to
MX
Multiframe exception indication. When MFE =
1, this bit becomes set to 1 on the first frame of
the 20 frame multiframe, indicating that new 0
or S transmit data can be written to SSX, and
that new 0 or Sreceive data is available in
SSR. MX is cleared upon reading SSC. If MFE
= 0, MX is not set. At the TE the multiframe
exception indication is not dependent on multiframe sync being established.
AXE Activation bit change exception enable. Setting AXE to a 1 enables the generation of a
spare bit exception (SX in EXS) when AX becomes set. For AXE = 0, the A bit exception is
suppressed.
AX Activation bit exception indication. This bit becomes set to 1 after a change in the received
A bit value at the TE, only after the loop interface has acquired synchronization. The state
of the A bit can be read in SSR. This bit is
cleared upon reading SSC.
o.
FA
FA bit transmitted. When MFE = 0 (and
FAE# = 1 for LSS mode) this bit controls
the value of the transmitted FA bit (normally
0). If MFE = 1, this bit controls the value of
the transmitted FA bit during frames not involved in the multiframe procedure.
Control for the A bit. Valid only in the NT
mode. The complement of this bit is sent in
the A bit position of the transmit frame. For
the default value of zero the A bit is transmitted as a one. During activation, the A bit
is set to zero during INFO 2 regardless of
the state of A # .
SSR Spare Sit Receive 00110 R
7
6
5
4
3
las4/xlaS3/xlaS2/xlaslIsi S/M
2
I
N
0
I
FA
A
0 or S bit quartet transmission. These bits
I
A#
(MFE = 1/MFE = 0)
OS1- 0 or S bit quartet received. These bits are
OS4 only valid when MFE = 1. OS1 is received
first.
S
S bit reCeived. Valid only in LSS (TE) mode.
When MFE = 1 the S bit is located at SSR.3,
and when MFE = 0, at SSR.4.
M
M bit received. Valid only in LSS mode. This
bit is not indicated in SSR when MFE = 1.
N
N bit received. Valid only in LSS mode.
FA
FA bit received.
A
A bit received. Valid only in LSS mode.
SCR System Interface Control 00100 W (RT)
7
6
unused
5
4
82M
o
2
3
81M
81M
This register configures the system, or SLD interface. It defaults to OOH upon power up, which is the
NOTE:
The 0 and S bit quartets are updated every 20
frames, while the remaining bits are updated every
frame.
"
5-41
inter
iATC 29C53AA
SLO slave mode. In this mode, the 29C53AA expects to receive its timing reference from the SLO
interface. Therefore, in a terminal or other application where the SLO interface will be a signal source,
the SLO mode master mode should be programmed
immediately after reset.
MCS Multiple Byte Configuration and Status Transfer
o use control byte only (one byte per SLO frame)
use both control and signaling bytes (two bytes
per SLO frame)
MF Multiple Byte FIFO transfers (both directions)
Bits 5, 4 B2 Mode
o
use control byte only (one byte per SLO frame)
o 0 enable normal SlO transfers (default mode).
use both control and signaling bytes (two bytes
per SLO frame)
1 0 microprocessor intercept of B2
o 1 loop back B2 toward system interface
SS
Single Status Byte Transfer (29C53AA to SLO
master)
o
respond to poll command received in SLO control byte
1 1 loop back B2 toward loop interface
Bits 3,2 B1 Mode
o 0 enable normal SlO transfers (default mode).
SC
1 0 microprocessor intercept of B1
o
respond immediately beginning in the next half
of the SLO frame
Single Command/Configuration Byte· Transfer
(SLO master to 29C53AA)
data follows in control byte of next frame
data follows in the same frame's signaling byte
o 1 loop back B 1 toward system interface
SR Signaling Byte Receive 11011 R, W
1 1 loop back B1 toward loop interface
7
6
5
3
4
Bits 1, 0 System Interface Mode
2
o
data
00 SSS SlO slave (default mode). The
29C53AA SIOR and SCL pins are
inputs, and the 29C53AA transmits
data on SLO when SOIR is low
1 0 SSN SLO interface for intelligent NT2. The
29C53AA generates SCL and SOIR,
and transmits data on SLO when SOIR
is low
o 1 SSM SLO master. The 29C53AA generates
SCl and SOIR, and transmits data on
SLO when SOIR is high.
1 1 reserved
This address provides access to the receive signaling byte register pair in the SLO register bank. In
SLO master mode, this register contains the received signaling (S) byte from the SLO link. This is
typically signaling or status information read back
from an SLO slave device. Register contents are
only valid in SSM (SLO Master) mode.
SX Signaling Byte Transmit 11111 R, W
7
6
543
2
0
data
SOC SLO Data Transfer Configuration 00101 W (RT)
7
6
unused
543
2
1
0
I CE I MP I MC5 I MF I 55 I 5C I
This register has no effect in SLO master mode
(SSM).
CE
Command Enable
o
Ignore commands received on the SLO line
(except when RO and WR are both low during
reset)
1
Enable execution of SLO commands
MP
Multiple Transfer to SLO Master
o
respond to poll command received in control
byte
This address provides access to the transmit signaling byte register pair in the SLO register bank. In
SLO master mode, data placed in this register is
transmitted over the SLO link in the S byte. This is
typically signaling or status information sent to an
SLO slave device. Register contents are only transmitted in SSM (SLO Master) mode.
XFI Transmit FIFO Input 01001 W
7
6
5
4
3
2
o
data
This is the input address for the transmit FIFO. This
register should not be read, as it will cause the previous contents of XFI to be entered into the FIFO, and
the FIFO count (XFN) to be incremented. Writes ·to
this register should be separated by 3 ClK cycles.
respond immediately beginning in the next half
of the SLO frame
5-42
IATC 29C53AA
XFN Transmit FIFO Number 00101 R
7
6
4
5
3
2
I I I
0
XSR Transmit Service Request 10011 R
7
6
5
4
3
2
o
each bit set to state of XSA
number of free bytes
0
All bits in this register reflect the same status, the
state of the XSR bit in the EXS register. When this
register is read, only those bits indicated by a 1 in
the corresponding bit positions in the PSR register
are enabled onto the microprocessor bus. The remaining bit positions on the microprocessor port
pins remain in a high impedance state during a read.
This allows up to eight 29C53AA transceivers connected to the same microprocessor bus to be polled
for status with one read. This feature is useful, for
example, in linecard applications where multiple
29C53AA devices are controlled by one microprocessor.
This register indicates the number of empty bytes in
the transmit FIFO. The count requires 5 ClK cycles
to update after a write to XFI.
XFXF Transmit FIFO Exception Fullness 01101 R,
W
7
6
unused
5
4
3
2
o
o
XFXF
If the number of untransmitted bytes in the transmit
FIFO is equal to this 5-bit number, the transmit service request (XSR) bit is set in EXS.
See also PSR (Position Selection Register) and RSR
(Receive Service Request).
5-43
IATC 29C53AA
• Notice: Stresses above those listed under '~bso
lute Maxif11um Ratings" may cause permanent damage to the device. This is a stress rating only and
functional operation of the device at these or any
other conditions above those indicated in the operational sections of this specification is not implied. Exposure to absolute maximum rating Conditions for
extended periods may affect device reliability.
ABSOLUTE MAXIMUM' RATINGS
Temperature Under Bias ......... - 10'C to + SO'C
Storage Temperature .......... -65'C to + 150'C
Voltage on any Pin .... Vss -0.5V to Vcc to +0.5V
Maximum Voltage on Vee
with Respect to Vss ..................... + 7V
T()tal Power Dissipation ..... '............. 500 mW
NOTICE: Specifications contained within the
following tables are subject to change.
D.C. CHARACTERISTICS Vee = +5V ±5%;Vss = OV;TA
Typical Values are at TA = 25'C and Nominal Power Supply Values
= 0'Ct070'C;
DIGITAL INTERFACES
Symbol
Parameter
Typ
Min
IILK
IOLK
Input/Output leakage Current
(Excluding lR+, lR-, LX+, LX-)
VIL
Input low Voltage
VIH
Input High Voltage
VOL
Output low Volta~e
VOH1
Output High Voltage
2.4
VOH2
Output High Voltage
0.9 Vee
C
Pin Cap. (ex. lR±, LX±)
Max
Units
±10
p.A
O.S
Test
Conditions
Vss
s: VIN s: Vee
V
2.0
V
0.45
V
IOL = +2.0mA
IOL = 1.2 mA for
P1-P4, SlD
V
IOH
V
=
IOH =
-400 p.A
-40 p.A
pF
10
POWER SUPPLY CURRENT (Averaged over 1 ms)
Symbol
Typ
Max
Units
Test Conditions
ICC(p)
Power Down (Standby)
4
8
mA
SlD and ClK Active
ICC (I)
Idle Operating Current
8
12
mA
Receiver, SlD, ClK
Active
Vee(N)
Normal Operating Current
20
mA
Everything is Active
(Excluding Current
for Output loads)
Parameter
A.C. Characteristics
Vcc
Min
= 5V ± 5%; Vss = OV; TA = 0'C-70'C; ClK = 3.S4 MHz
RECEIVER
Symbol
Parameter
VRD
Minimum Received Differential
Pulse Voltage
llR
lR + , lR - Input Impedance
CIR
lR+, lR- Input Capacitance
Min
30
Typ
Max
Units
300
400
mV
60
10
5-44
20
Test Conditions
KO
Each Pin
pF
Each Pin
inter
IATC 29C53AA
TRANSMITTER
Symbol
Min Typ Max Units
Parameter
Test Conditions
1900 2000 2100 mV Rl = 2500 (Note 1)
VXD
Transmit Differential Pulse Voltage
ZOXI
LX+, LX- Output Impedance
KO
Each Pin, Transmitting Binary One
ZOX2
LX+, LX- Output Impedance
2
5
0
Transmitting Binary Zero, Each Pin
Cox
Output Capacitance
30
40
pF
Each Pin
Cl
Capacitive Load between LX + , LX-
1500
pF
Parallel with 3000 Directly
across LX + and LX - (Note 2)
tMR
Transmit Pulse Rise Time
400
ns
Test Load
IXl
Source, Sink Current Limit
14.4
mA Rl = 75
PHU
Pulse Height Unbalance
tpw
Pulse Width
30
60
10
0.5
3
5.16 5.21 5.26
%
Test Load
,...s
CLK = 3.84 MHz ± 100 ppm (Note 3)
TIMING
Symbol
Min Typ Max Units
Parameter
0
J
Timing Extraction Jitter ("S" Slave Mode)
PO
Total Phase Deviation lX with Respect to lR -7
±5
%
+15
%
Test Conditions
ClK = 3.84 MHz ± 100 ppm
NOTES:
1. This is essentially the open circuit voltage.
2. This is a stability test. Overshoot less than 25%, damping time less than 1.5 !Ls.
3. Free running, measured between zero crossing of adjacent pulses. During DPLl adjustment in lSS (TE) mode, the
framing pulse may be wider or narrower by one cycle of elK (260 ns).
Lx3]
2S0pF
LX-
_
39.0.
160.0.
39.0.
270097-16
270097-15
Differential Output
across LX+, LX- for VXD
across 160n lest circuit
load for IMR, tpw
Transmitter Test Load
5-45
iATC 29C53AA
TKDV
SLDouT-----1-1c::::::::::::::::t~c:::::::::::!
TSDV 1-TKDV
-TKDE
~SJ=ji_
SLD'N ~,.--------------------------------~S r---- TEST POINTS
~~8
0.45
< O~~
2.0:
270097-13
A.C. Testing: Inputs are driven at 2.4V for a Logie "1" and 0.45V
for a Logic "0". Timing measurements are made at 2.0V for a
Logic "1" and 0.8V for a Logic "0". Load capacitance CL =
100 pF.
Figure 11. A.C. Testing Input, Output Waveform
5-48
inter
iATC 29C53AA
3.84 MHz :I: 100 ppm
SLD
SDIR
+5
(5)
INT
CS
R
if""
ALE
ADO-AD7
270097-14
Figure 12. 29C53AA Application Diagram
NOTES:
1. The SLD port will be connected to an SLD master in NT applications, or to SLD slave devices such as the 29C48
programmable CODEC/Filter or appropriate data communication devices in TE applications.
2. Series resistance is used to increase the output impedance during transmission of a binary zero to greater than 200 on
the loop side. It also serves as protection against surges when used in combination with external protection diodes.
3. A lower turns ratio (e.g., 1:1.8) may be used at the cost of a lower ratio of received signal to locally generated noise.
4. Appropriate protection circuitry can be added depending upon the application.
5. Pullup selected for approximately 1 mA IOL.
5-49
intJ
89151
T-LINK COMMUNICATIONS CONTROLLER
•
Complete Implementation of the T -Link
Rate Adaptlon Protocol in a Single
Device
•
•
•
Adapts Synchronous or Asynchronous
Terminals to 64 Kbitts Clear or
Restricted Channels
Rate Adaption of Synchronous or
Asynchronous Data at Rates of 300
Bitts to 64 Kbit/s
Provides Interworking Capability to the
ISDN
•
•
•
•
•
•
•
Supports Exchange of Terminal Status
Indicators
Provides Error Correction for Data Rate
of 9600 Bltls or Less
General Purpose Parallel
Microprocessor Interface
Serial Terminal Interface Including
Handshake Signals
Serial Synchronous Network Interface
SLD Compatible
IDL Compatible
The 89151 T-Link Communications Controller (TCG) is a highly integrated communications controller which
provides a complete implementation of the T-Link rate adaption protocol. The T-Link Communications Controller is used to rate adapt synchronous and asynchronous terminals to the public switched digital network, or an
ISDN, providing transparent, digital end to end communications. The 89151 TCC includes a terminal interface
port supporting synchronous or asynchronous terminals, a synchronous network interface port, and a general
purpose parallel microprocessor port. The 89151 TCC can operate as a peripheral to a wide variety of microprocessors.
89151
T-LiNK COMMUNICATIONS
CONTROLLER
CSB A1 AO D7D6D5D4D3D2D1DO RDBWRB RDYTDR RDR
i
Parallel Microprocessor Interface
290197-1
Figure 1.89151 T·Link Communications Controller
5-50
October 1988
Order Number: 290197-001
inter
89151
The T·Llnk Rate Adaptlon Protocol
T-Llnk Communications Controller Overview
T-Link is a full duplex byte oriented rate adaptation
protocol designed to transfer either asynchronous or
asychronous data over a switched digital circuit at
data rates from 300 bitls to 64 Kbitls. T-Link can
operate over a 64 Kbitls clear channel, or over a
64 Kbitls restricted channel with a 1's density requirement. T-link can also be used on a 64 Kbitls
channel with capacity restricted to 56 Kbitls due to
the use of inband signaling or a 1's density requirement of today's T1 networks. T-link provides:
The 89151 T-Link Communications Controller provides a T·Link building block for implementing a Terminal Adaption Device that may be used for an ISDN
TA or other TAD application. The complete rate
adaption protocol is built into the 89151. The 89151
includes three interfaces which facilitate its use in
DCE applications~ supporting the T-Link rate adaption protocol. There are the serial terminal interface,
the serial network interface and the parallel microprocessor interface. Refer to Figure 1.
The terminal interface supports synchronous and
asynchronous serial terminals. As T-Link carries the
terminal status across the connection, the standard
EIA handshake leads are provided. Clocking can be
sourced by the attached device or by the 89151.
End to End Synchronization
Support of terminals with synchronous data rates
from 1200 bit! s to 64 Kbitl s
Support of terminals with asynchronous data rates
from 300 bitls to 19.2 Kbitls
The network interface is designed to pass serial
data between the 89151 and the network side of the
terminal adaptor. It can operate. in one of two
modes. In one mode, the network interface consists
of a serial input, serial output, a 2.56 MHz bit clock,
and an 8 KHz synchronization clock. This mode is
called IDL. In the second mode, it supports the SLD
interface.
Exchange of EIA or CCITT DTEIDCE lead status
User data (synchronous or asynchronous) transfer
Error correction for user data rates of 9600 bitls or
less
The microprocessor interface is used to pass commands and status between a local microprocessor
and the 89151. Options for T-Link control can be
selected. This interface includes an eight bit parallel
data bus, read (RDS) and write (WRS) Signals, a
ready (ROY) signal and address lines (AO, A 1). This
port supports a wide variety of microprocessors and
microcontrollers.
Networks providing circuit switched 64 Kbitls data
transmission are ideal for providing high speed, wide
area data transfer. T-link provides a rate adaption
protocol which can be used by a Terminal Adaption
Device (TAD) to connect present DTEs to such networks. The T-link protocol can be used on existing
networks as well as on the ISDN (Figure 2).
290197-2
Figure 2. Rate Adaption for the Switched Digital Network
5-51
inter
89151
A specific example of an ISDN terminal adaptor is
shown in Figure 4. Here the 89151 is used along
with the 29C53 Digital Loop Controller, which provides access to the "S" reference point of the ISDN'
basic rate interface. The 89151 T-Link Communications Controller connects directly to the SLD interface of the 29C53, and is used to rate adapt a nonISDN terminal to one of the 64 Kbitls basic rate 8
channels. The TCC can operate over either the 81
or 82 channel, and so it can share the SLD interface
with another SLD slave device, such as the 29C48
programmable CODEC/Filter. Channel data can be
complemented by a TCC package pin. The layer 2
and 3 ISDN signaling functions are performed by the
80188.
Applications
Figure 3 illustrates atypical TAD implemented using
the 89151 T-Link communications Controller. The
serial terminal interface can support a variety of protocols, such as RS232CIV.24, V.35, RS449, etc.
The human interface provides keypad, switches and
display for example. The network interface block
provides the physical connection to the network and
is dependent on the type of network involved. The
microprocessor is in charge of responding to user
inputs, setting up the connection and controlling
T-link options. The entire T-Link rate adaption protocol is performed by the 89151, providing a transparent data link once the connection is setup.
SERIAL
'TERMINAL
INTERFACE
SERIAL
NETWORK
INTERFACE
89151
T-LINK
CONTROLLER
i
HUMAN
INTERFACE
MICROPROCESSOR
290197-3
Figure 3. Terminal Adaption Device (TAD) Based on the 89151
RS232C
80188
290197-4
Figure 4. ISDN Terminal Adaptor Using T-Link
5-52
intJ
ISP188
ISDN SOFTWARE PACKAGE FOR THE 80188
•
•
•
•
•
•
•
•
•
•
Complies with CCITT
Recommendations for Layers 1, 2 and
3 of the ISDN User Network Interface
Device Drivers for Intel's
IATC29C48/C50A, IATC29C53,
and 82530
IntellAPX 80188 Based
Software License and Source Code
Included
Written in Microsoft "C" Language
IBM PC Development Environment
PC Plug-In Development Boards
Available
Debug MonitorlDisplay Supported
Comprehensive Support Services
Available from DGM&S, Inc."
Reference Sold by Intel
The ISDN Software Package for the 80188 (ISP188) is specifically designed for ISDN terminal applications
using Intel's Advanced Telecommunication Components (iATC). The software supports the iATC 29C53 Digital
Loop Controller, the iATC 29C48/29C50A Feature Control CODEC/filter combos (for voice conversion), and
the 82530, Serial Communications Controller.
ISP188 is based on the 8086 architecture and can be used with the 80188/186,80286 and 80386 microprocessors. The software source modules are written in "C" language using the Microsoft compiler. The modules
are well defined to permit integration with customer supplied software.
ISP188 supports the recommendations set forth by CCITT for the datalink and network layers (1.440, 1.441, and
1.450,1.451) of the OSI Reference Model. The iATC 29C53 supports the physical layer (1.430). Combined, the
29C53 and ISP188 implement the standards now in place for the "S" reference point (layers 1, 2, and 3).
ISP188 package includes a software license for incorporation into OEM products and a copy of the source
code is provided on a 5% inch floppy disk.
A PC co-processor board is available that contains the Intel components and other necessary hardware to use
ISP188 to establish a voice call and simultaneous circuit switched data or PC to PC file transfer through ISDN
switched access. In addition, demonstration routines are included to show examples of the same capabilities
in a back to back PC environment (local, no switch involved). Additionally, a debug port is provided on the
board and supported by the software so that diagnostic messages can be enabled and sent to a printer or
terminal over an RS 232·C connection.
The PC card and software combined can be used for ISDN hardware or software development or be included
in an OEM product. Typical applications for ISP188 include digital telephones, feature telephones, integrated
voice/data terminals (IVDT), and terminal adapters.
"Dale, Gesek, McWilliams & Sheridan, Inc.
APPLICATION
PRESENTATION
SESSION
TRANSPORT
NETWORK
DATA LINK
PHYSICAL
81
B2
CHANNELS
LAYERS
290149-1
Figure 1. OSI Reference Model
5-53
November 1987
Order Number: 290149-001
inter
ISP188
D-channel and link control (29C53)
B-channel control (82530, 29C48/C50A)
B-channel data transfer (82530)
Voice analog control (29C48/C50), DTMF generation, alerting tones
PC bus interface via 8K x 8 FIFO (SM1 & SM2)
FUNCTIONAL DESCRIPTION
ISP1 BB is designed to establish, maintain, and teardown vOice and circuit switched data links on the
basic rate 2B + D "S" bus interface. The software
package provides the "out of band" "D" channel
Signalling software for call control. This includes layer 2 LAPD, and layer 3 for basic voice services and
circuit switch data calls on the B channels.
The D-channel and link control driver interfaces the
software to t!1e 29C53 Digital Loop Controller. It supports the activation, deactivation, error detection
and D-channel data transfer functions on the "S"
bus. The device driver supports the following primitives as its interface to layer 2 of the ISDN D-channel:
PH-DATA (Transmit and receive packets from layer
The software was designed and tested with a PC
plug-in card which functions as a communication coprocessor in an IBM PC, XT, or AT host environment. The co-processor board contains the Intel
ISDN components for which the software was designed. All of the software modules run on the
board, while some support software runs under MSDOS. A Shared Memory Interface (SM1 and SM2)
which is contained on the co-processor is used for
communication between the host environment and
the board. Figure 2 outlines the software modules,
where they run and devices for which drivers are
supplied.
2)
PH-ACTIVATE (Activate or sense activation of the S
bus link)
PH-DEACTIVATE (Deactivate or sense the deactivation of the S bus link)
PH-MPH_ERROR (Detect and report link level error
conditions to the management entity)
ISP188 is configured to be compatible with the
AT&T #5ESS Central Office switch and is compatible with the 5E4.1 Generic Basic Rate Interface
specification. A PC/XT / AT host configured with the
coprocessor board and loaded with ISP188 may be
connected to an AT&T #5ESS Basic Rate Interface.
The B-channel control driver is used to control access to the B-channels. Access is through the following procedures:
Enable/Disable voice to B1 or B2 (29C48/C50A)
Enable/Disable 82530 channel A to B1 or B2
Enable/Disable 82530 channel B to B1 or B2
Enable/Disable B2530 channel A to 29C48/C50Athis permits tone generation to speaker or ear piece
Layer 1, ISDN Hardware Device Drivers
The device drivers allow the software to interface
with the hardware components. The following hardware device drivers are provided:
5-54
inter
ISP188
PC SIDE
MS DOS
INSTALLABLE "5 DOS DRIVER
CO-PROCESSOR SIDE
W
A
MULTI-TASKING REALTIME KERNEL
"
A
G
E
M
E
N
T
DEBUG PROCESS
RS232-C
ASYNC
HOOK
SWITCH
PORT
SLD BUS
ALERTING
DEVICE
L...---o-~ ~
SPEAJ--1~--'
L....IIM...-
....- - I LX-
~VV~~~~--ILR+
·~~;·;-310
~
LX+
29C53
V220MA48
---1_--'
o..JOM.....- ....- - I
LR-
270209-4
Figure 4. Protection
may not exceed the power supply by more than 500
mY. The 5V and ground connections to the diodes
should be as close as possible to the 29C53 power supply pins, which in tum should be decoupled by a 0.1 ,...F
capacitor. The capacitor serves a secondary function of
bypassing surge currents. The particular diodes chosen
are dependent on the expected surge current, however,
BAT85 from Philips used in this application can withstand 200 rnA forward current while presenting a maximum of 10 pF capacitance across it. The maximum
current through the diodes can be limited by placing a
resistor in series with the diodes and the transformer.
The value of this resistance can be extracted from the
transformer design discussion. To further limit the current to the 29C53, the series resistance can be split,
with part of it on the 29C53 side of the diodes, and part
of it on the transformer side of the diodes. For the
receive direction it is possible to replace the diode
bridge by placing a resistance in series with the 29C53
receive pins. This series resistance will limit the surge
current that the 29C53 is exposed to. The value of this
resistance is limited by the input impedance presented
by the 29C53 and the loss that can be tolerated in the
received signal. The receive differential input imped-
ance of the 29C53 is 100 KO, hence a 10 KO resistor in
each arm will reduce the received signal by 17%.
In case of a mains cross, the loop can be made to self
recover by using thermal devices such as the positive
temperature coefficient thermister (PTC). Keystone
Carbon Company has a range of PTCs specific to telephone line applications that they refer to as resettable
fuses. Economic considerations may make this unjustifiable in which case a fusible resistor or link may be
used.
Further protection may be deemed necessary, in which
case two varistors can be placed across the line close to
the transformer. The varistor has a volt-current relationship similar to a diode i.e. after a specified voltage
across the varistor is reached, the current through it
will rise dramatically; thus clamping the voltage to the
specified level. A typical varistor that may be used as a
back-up protection is the GE V220MA4B. This device
typically presents a 21 pF capacitance.
The ideas discussed thus far are encompassed in Figure
5 for a minimal component count protection scheme.
5-81
inter
AP-282
270209-5
Figure 5. Protection with Minimal Components
For the core RM6PLOO-3E2A
LINE TRANSFORMER
AL = 6710
A transformer is used at both the terminal and the line
card to provide isolation from the line. A well balanced
1.430 transformer resolves the issue of DC currents
since they induce self-cancelling fluxes. Generally
speaking, a pulse transformer with minimum leakage
inductance and· self capacitance is required. The impedance templates in 1.430 specify the minimum value of
the inductance required at the line side. This value can
be calculated to be 20 mHo A further requirement is to
minimize the winding resistance, so that a minimal
voltage is dropped across it. A 2.5: I ratio transformer
can be used with the 29C53 to produce the proper pulse
amplitude. The transformer design discussed below can
be used with the 29C53 at either the line card or the
terminal. Alternatively it can be used for example purposes to aid designs.
±
25%
Therefore minimum
AL = 5032 '" 5000
The number of turns, Ns, required for 20 mH is given
by:
Ns = 103 ~LlAL
Ns = 70 turns
L - required inductance in mH
- assume 25 mH is required
The 29C53 side winding will require 2.5 times this
number of turns.
Np = 175 turns
The transformer is now ready to be wound, the 32
gauge wire will just fill the RM6PCBI bobbin. The
bobbin is started by bifilar winding the 175 turns. Bifilar winding is accomplished by taking two separate
pieces of wire and winding them simultaneously. The
finish of one winding is then soldered to the start of the
other and often, as is the case in this implementation,
the point of connection of the two wires (center tap) is
brought out to a pin of the transformer. The remaining
ends (start and finish) now comprise the winding. The
transformer is now followed by I Y4 layers of insulating
tape. The insulating tape used was the Permacel P-256
which forms a dielectric capable of withstanding 5 KV,
this serves to protect the line card and the subscribers
The RM series of ferrite cores are chosen to facilitate
easy winding and PCB mounting, additionally the RM
series is available internationally from various vendorsFerroxcube in the U.S. and Mullard in Europe, to name
two. The RM6 core was selected to be the smallest size
that accommodates wiring which does not exceed the
maximum allowable DC resistance. The core material
has to have a high enough permeability to allow the 20
mH inductance with a minimum number of turns
hence, the Ferroxcube core material 3E2A was selected. This material has a very high inductance factor, AL.
This is given by the manufacturer as the inductance (in
mH) per 1000 turns.
5-82
inter
AP-282
from lightning induced surges. The 70 turns are then
bifilar wound; this results in a well balanced transformer. The start of one winding should be connected to the
finish of the other and brought out to a pin, thus creating a center tap on the line winding. The transformer is
then finished with 11/. layer of insulating tape. The
transformer thus designed gave satisfactory results in
the lab and is characterized by the following:
Secondary inductance
Ls=26mH
Secondary leakage inductance
Is = 20l£H
Secondary winding resistance
Rs = 1.50
Primary winding resistance
Rp = 2.70
larger core will make it possible to use a thicker wire.
Both of these factors will contribute to reduce the winding resistance, hence a larger value diode protection resistor may be used. Alternatively, the transformer turns
ratio can be decreased so that the output voltage is increased and hence more of it can be dropped across the
series resistance. This in tum means that the value of
this protection resistor can be increased. However, note
that the 29CS3 is only capable of driving loads greater
than 2000. If a turns ratio of 1.8:1 is used then the
overall series resistance can be 640. This also increases
the output impedance to 200 while transmitting a
pulse. As discussed earlier this resistor can be larger on
the 29C53 receive pins.
The capacitance between the two bifilar windings was
measured to be 100 pF and this may be too high for
certain applications. For this case the bifilar winding
can be replaced by the cross winding technique shown
in Figure 6a. The two windings are now wound in opposite directions, one wire is on top on the top side
while the other is on top on the bottom side. This technique reduced the above mentioned capacitance to less
than SO pF.
Some establishments may require further line isolation
from the transformer in which case a Faraday shield
can be placed in between the primary and the secondary windings. The Faraday shield can be made by
wrapping 1'14 layers of a copper tape (such as the permacel P-389) between the two windings. The copper
tape should be insulated from the windings and should
be brought out to the local ground. As well as isolating,
the Faraday shield also serves to reduce the interwinding capacitance.
The transformer designed was connected up as shown
in Figure 6b to measure its longitudinal balance.
2500HM
50 OHM :t 0.02%
270209-7
Figure 6a. erosswlndlng
The 29CS3 has been designed to drive voltages as specified in the 1.430, since the transformer presents a series
resistance, some of this voltage will be dropped across
it. For the transformer designed above, the overall series resistance is (2.7 + I.S.6.25) = 120 which will
result in a 3.8% error over the allowed peak transmit
signal in 1.430. This is acceptable as 1.430 allows a 10%
error for the peak voltage. If series resistors are required to protect the Schottky diodes, their value may
be calculated by having the maximum allowed peak
voltage error. Note that equal value resistors should be
placed on both arms of the line. If larger values of protection resistors are required, the above procedure may
be repeated with a larger core. This will allow the same
inductance to be achieved with a fewer turns and the
50 OHM :t 0.02%
270209-6
Figure 6b. longitudinal Balance
Lei v = vf/2.S
Then longitudinal balance is given by: 20 Log VIVo
Measurements conducted showed this figure to be better than 70 dB for the frequency range of 10 KHz to 1
MHz.
The center tap on the primary (29C53 side) is coupled
to ground via a 10 nF capacitor. In this manner longitudinal signals on the primary are bypassed to ground.
Measurements produced greater than 70 dB of longitudinal signal rejection.
5-83
inter
Ap·282
When designing the System board, special care should
be paid to the layout. The transformer and the 29C53
should both be placed on a ground plane. The connecting tracks from the 29C53 to the transformer should be
as short as possible. The two devices should be placed
close to the edge where the transmission lines interface,
while the high frequency logic should be placed on the
opposite edge. The analog ground wiring should follow
a star configuration and should have a separate isolated
lead originating from the system ground where it enters
the board.
can be obtained without overshoot is for the critically
damped case and is given by:
Though the analysis of pulse transformers is beyond the
scope of this brief (2), one should be aware of the pertinent parameters affecting the good reproduction of the
pulse. The pulse transformer is generally analyzed by
different equivalent circuits, depicting the varying phases of the pulse.
The fall period is characterized by the second order
circuit of Figure 7c; the primary concern here to prevent severe undershoot or backswing when the 29C53
transmitter is in the high impedance mode. This can
best be achieved by having an overdamped system,
which is the case when:
Ir = 3.35
race
where a = RL / (Rg
+
Ru
For the top period, there will be sonie decay leading to
a fractional droop, this is given by:
0'"
7'
Lp
R
where
7' =
pulse widlh
R = RL and Rg in parallel
Lp> 4CRL2
Figure 7 shows these circuits. The pulse shape is then
optimized by considering the transient response of the
equivalent circuits.
Commercially available pulse transformers exist which
are compatible with the 29C53. Some examples are given in Table 1. Most manufacturers will modify their
design to meet the requirements of a particular application.
The pulse response of the transformer is characterized
by a finite rise time, a decaying top period and finite fall
time as depicted in Figure 7d. The fastest rise time that
RL - Load impedance
c - Shunt capacitance
L - Leakage inductance
lp - Primary inductance
a) RISE PERIOD
b) TOP AND DECAY PERIOD
d) PULSE RESPONSE
c) FALL PERIOD
270209-8
Figure 7. (a) Equivalent Circuits for Rise Period
(b) Top and Decay Period (c) Fall Period (d) The Pulse Response
5-84
inter
AP-282
TABLE 1. Manufacturers of Pulse Transformers
Manufacturer
Location
Winding Ratio
Part No.
AlE Magnetics
St. Petersburg, FL
(813) 347-2181
1.8:1
2.5:1
325-0228
325-0172
Schott Corporation
Nashville, TN
(615) 889-8800
1.8:1
2.5:1
11207
11124
CTM Magnetics
Tempe,AZ
(602) 967-9447
1.8:1
2.5:1
22087
25585
Pulse Engineering
San Diego, CA
(619) 268-2400
1.8:1
2.5:1
64994
64996
POWER EXTRACTION
The same transformer can be used at both the line card
and the terminal, and the same protection scheme can
be used at both ends of the loop. The need now arises to
provide power to the terminal. There are a number of
ways of providing power to the terminal, for instance a
secondary cell can be used as battery back-up in con- .
junction with a main supply. There is also some scope
for trickle charging secondary cells from the line or .
from a small solar cell array, but the drawback with
secondary cells tends to be their short life span. This
disadvantage can be offset by using special purpose primary cells as a back-up supply, these do not need any _
charging circuitry and can be expected to have life expectancy twice that of the secondary cells. Finally, the
power can be fed from the switch, in which case a regulator is required at the terminal to extract the power off
the line. Figure 8 illustrates this approach.
-
TERMINAL
A DC to DC converter is required to convert the line
voltage to 5V for the local circuitry. In order to obtain
the lowest losses in the conversion process, it is necessary to use a high efficiency regulator, specifically, a
switched mode regulator. Basically, there are three
types of switched mode power supplies, the forward,
the push pull and the flyback converter (3). This sec-'
tion is devoted to the flyback implementation of a DC
to DC converter. The flyback is the most suitable converter for this application, as it provides the highest
achievable efficiency and the simplest drive circuitry.
Figure 9 shows a block diagram of a flyback converter.
OUT
SWITCH
270209-10
Figure 9. Flyback Converter
270209-9
Figure 8. Power Extraction
l
::!!
a::a
...?~
UI
c
o_
ex.
0
J>
'P
~
m C
~
o
oo
~
CD
i.,
270209-13
AP·282
In the flyback inductor, energy is inductively stored
during the switch on period, and then passed to the
load during the switch off, or the flyback period. During the switch on period, the output didde does not
conduct so that the energy in the choke (although appearing as a transformer, this element will be referred
to as the choke in accordance with its function) builds
up with rising current. While the switch is off the choke
voltage reverses in polarity causing the output diode to
conduct whereupon the inductive energy is discharged
into the output capacitor to form a DC voltage. Regulation is achieved by modulating the oscillator duty cycle,
which effectively varies the switch on/off periods. In
Figure 9 the diode bridge ensures the correct polarity
for the converter while the opto-isolator completes the
input to output isolation.
current. The current through the regulating diode is
proportional to the voltage difference between the output and the reference. This device is available from
Texas Instruments and Motorola amongst others. Figure 11 illustrates its function.
.......J
Rl0
VREF
I".~
VOUT
• TL431
R9
270209-11
Figure 11. Regulator
Figure 10 shows a discrete circuit implementation of a
DC to DC converter. This circuit was designed to regulate a 5V output for 20-60V input voltage. This implementation provides a maximum power of at least 450
mW. The DC to DC converter consists of an oscillator,
a pulse width modulator incorporating an error amplifier and isolating stage, the start up circuitry and the
flyback converter. When T5 is on, the choke stores energy and reverse biases diodes 08,09 and 010. While
T5 is off, the choke voltage is negative, hence diodes
08, 9 and 10 are all forward biased and thus build a
DC voltage on their respective capacitors. Note that
due to the reverse winding technique, the voltage in the
output windings are opposite in polarity to the switch
winding. The 5V output is regulated by comparing it to
a reference voltage, the error in the comparison is then
used to modify the transistor T5 on time in such a way
so as to keep the 5V output constant.
For the regulator diode, the output voltage is given by:
Vout = (1 + RlO IR9) Vref
where Vref is typically 2.5V.
If Rl0 = Rg
then Vout = 5V
The current through the regulating diode will increase
or decrease with a respective change in the output voltage. This change in current is coupled to the output of
the oscillator through the opto-isolator. The opto-isolator used is a Hewlett Packard 6N139, which has Darlington transistor stage providing high current gain that
results in a lower power dissipation in the opto-isolator.
The current through the isolator differentiates the output of the oscillator through capacitor C3. This differentiated signal is then squared off to define the switching transistor T5 on period. T5 is an IRFDIIO MOSFET and is available from International Rectifier. The
isolator current and hence the output voltage control
the amount of differentiation or the transistor T5 on
period as illustrated in Figure 12. Thus regulation is
achieved, as the on period is reduced with increasing
output voltage and vice versa.
The diode bridge 01-04 ensures a certain polarity of
the DC voltage for the converter, this is necessary in
case the network uses polarity reversal for signaling.
The decoupling capacitor CI serves a secondary function of bypassing any induced surge current. One half
of the Schmitt NAND gate CD4093 is used to form a
25 KHz oscillator.
At the output, the opto-isolator in conjunction with the
regulating diode TL431 is used to generate an error
OSCILLATOR OUTPUT
-fU --- ~ --- JTL..S--o
b
Figure 12. Pulse Width Modulation
5-87
c
TO T5
270209-12
inter
AP-282
The resistor R6 and transistor T4 provide current overload protection. Transistor T4 will conduct when the
voltage across R6 exceed 0.6V or conversely, the current through it is greater than ISO mAo With T4 conducting, the drive to the MOSFET is nulled by the
associated NAND gate.
At full load, the incomplete energy transfer mode exhibits a lower peak switching transistor current, while
the complete mode at lower power assures a smaller
core. The inductance required to achieve this is 6.S mH
for the switch winding. The core used was an
RM6CA400-3B7. The number of turns required to
achieve this inductance is 130 and for a 20-60V line
voltage, 50:turns are required for a + SV output, hence
use SO turns for the- 5V too. The self bias winding uses
70 turns. The transformer was wound with 130 turns of
34AWG, followed by 50 bifilar turns of 32AWG and
finished off with 70 turns of 32AWG. The dot scheme
in Figure 10 should be adhered to. The bobbin is then
immersed in varnish such as the Dolph's BC356 to dispel any moisture and to provide a protective coating.
Alternatively, a commercially available DC to DC converter transformer such as the 326-0S33 can be purchased from AlE Magnetics.
The transformer choke is a three winding transformer
consisting of the switching winding, the output winding, which is split for the + 5V and - SV and the selfbias winding. The transformer is designed for complete
energy transfer under no load conditions and incomplete energy transfer under full load conditions. Figure
13 shows the wave forms of the two modes.
At start up, the converter is powered by the linear regulator DS, Rl and TI, which sets the power supply at
S.3V. After start up the self bias winding forces the
voltage on C4 to be between 7 and IS volts, which will
back bias diode D6, thus turning off the linear regulator. Under this condition the power supply provides a
self bias voltage to keep it running, while little power is
The two transistors T2 and T3 provide a low source
impedance driving stage for the switching transistor.
The fast current sinking and sourcing will ensure fast
switching of transistor TS.
The input capacitance of the MOSFET IRFDIIO is a
maximum of 200 pF. Without the buffer stage the
MOSFET will stay in the linear region longer before
saturating, thus resulting in a slower switching speed.
The slow switching in turn will result in a lower overall
efficiency for the converter.
T5 DRAIN VOLTAGE
Lf1-,
T5 DRAIN-SOURCE
A
_
CURRENT - - - / l...-.-../"
~
(b)
(0)
Figure 13..(a) Current Voltage Waveforms for Complete Energy Transfer
(b) Waveforms for Incomplete Energy Transfer
5-88
270209-14
inter
AP-282
GATE VOLTAGE
DRAIN VOLTAGE
5V SECONDARY
CURRENT
l00MAIDV
270209-15
GATE VOLTAGE
DRAIN VOLTAGE
5VPRlMARY
CURRENT
50 MAIOV
270209-16
Figure 14. Converter Oscillograms
dissipated in the start up regulator. Transistor Tl is selected so that the base-collector can sustain the high
voltage stress when it is off. The - 5V supply will only
be regulated if the load on that winding is the same as
that on the + 5V winding. If this is not possible, it may
be necessary to use a linear post regulator to obtain a
regulated - 5V supply.
placed as close to the gate lead as possible. These precautions will avoid undesired oscillations in the MOSFET. The output stage uses Schottky diode and low
ESR capacitors to reduce power dissipation. In the
event of any undesired EMI radiation the transformer
can be placed in an electromagnetic container and the
converter can be enclosed in a copper container.
Figure 14 shows the volt-current oscillograms for a 30V
line voltage and 400 m W output power. This shows the
flyback converter working in the incomplete energy
transfer mode. The results obtained in the lab gave an
overall efficiency of better than 67% and a power supply ripple of less than 25 mV. The no load power consumption was less than 50 mW. Regulation of the output voltage was better than 150 mY.
lif
/
The design was wire wrapped to illustrate the concept
of power extraction and can of course, be optimized for
better performance. Special care should be paid to the
layout; Figure 15 shows good layout principles. Use
star ground connections to avoid current loops in the
ground.
MAGNETIC FIELDS
DUE TO FORWARD
AND RETURN
CURRENTS CANCEL
All lead lengths goirig to the switching MOSFET
should be minimized and in particular the gate lead.
The resistor in series with the MOSFET should be
270209-17
Figure 15. Good Layout Principles
5-89
inter
Ap·282
POWER FAILURE CONSIDERATIONS
ap-
Without power the line interface pins of the 29(:53
pear as diode drops across the line. This means that the '
transmitter of the Network Terminator and, the powered on terminals in a multidrop configuration will be
terminated by a diode instead of the usual SOO. In the
event of a failure, it therefore becomes necessary to iSolate the offending terminal from the line. This can be
done by providing a switch in the transmit paj:h that is
nonna1ly closed and opens when no power is applied.
LX+
When there is power, the two MOSFETS will be on
appear l1li a small on resistance, which has to be
included in the line transformer design analysis. When
thete,js, ,n6 power, the MOSFETS appear as back to
back diodes, thuntopping any AC flow. The VN0300
MOSFE'}'S 'maillitactured by Siliconix may be used,
when on, they present,a 1.20 resistance each. Note that
in order to ensure that the MOSFETS conduct it is
necessary to h&ve a 10V supply in the system. If this is
not possible the MOSFETS can be replaced by a Reed
relay which presents a lower on resistance and capacitance but ,has th~' disadvantage of consuming more
power. A low power relay could not be located hence a
vendor was requested to customize one. Figure 17
shows the isolatiOn' technique using the Wabash
1992-2-1 25 mW relay which will operate at 3.8V and
release at 0.5V.
and
1------,.
TRANSMIT
29C53
LX+
1------,.
I
I
1-----"
LXLR+ I--'W\r---,.
29053
"3
'
I
II :
LR- I--'W~=~
LX270209-18
C
I
LR+
Figure 16. Isolation of Equipment In '
Case of Power Failwe
c
In the receive path, it is only necessary, to increase the
impedance seen by the line. One way to implement this
principle is to use a MOSFET bilateral switch in the
transmit path and to place series resistors in the receive
path, such that the impedance seen by the line is greater
than 25000.' Figure 16, illustrates this approach. A
noteworthy point is that the series resistors in the receive path not only provide terminal isolation in case of
failure but also protect the terminal from current
surges.
LR-
1-----"
270209-19
Figure 17. Power FaIlure Isolation
5-90
inter
Ap·282
The protection circuits and the transformer, however,
can only be provided in discrete form at the present
time. The concepts presented in the protection section
emphasized low capacitance and maximum protection.
The section took an overkill approach and as such a
subset of the discussed ideas should suffice most applications. The transformer designed pointed out the relevant parameters to consider and can be used as it is or
modified to the particular application. Of course the
ISDN transformer is also commercially available.
CONCLUSION
Specific implementations have been provided for the
general aspects of line interfacing at both the line card
and the terminal end. These solutions can be taken as
they are and placed in the particular application or
used to aid a system design.
The fixed voltage or constant current feed are both simpler and more economical to realize in discrete form;
however the constant current variable voltage scheme
may be more suitable in an integrated form. The power
converter discussed was based on a low cost simple implementation and it is certainly possible to optimize it
to obtain conversion efficiencies in the 75% range. As
an alternative to discrete implementations, a low power
switch mode power supply is commercially available
from Fairchild and Motorola, to name two.
REFERENCES
1. Protecting against surge voltages in short and long
branch circuits. By Shanawaz M. Khan, Communications Systems Equipment Design, December 1984
2. Transformers for electronic circuits. By Nathan R.
Grossner, McGraw Hill
3. Design of solid state power supplies. By Eugene R.
Hnatek, Von Nostrand Reinhold Company
5-91
inter
APPLICATION
BRIEF
AP-4do
October 1988
ISDN Applications with
29C53 and 80188
HERBERT WEBER
TELECOM OPERATIONS
Order Number: 270247-003
5-92
inter
AB-400
TERMINAL ADAPTOR (TA)
A terminal adaptor, or "TA", is the link between existing non-ISDN equipment like terminals, facsimile,
printers and the ISDN network. The (unction of this
application is to effectively replace equipment such as a
modem. Usually provided as a separate box, it processes RS232 or X.21 data and places it on the 4 wire'S'
loop. No change at the terminal is required to make it
ISDN compatible.
• Upper portion of link access procedure (CCITT
1.440) handling:
- Multiple logic channels
- Sequence control
- Error correction (retransmission)
- Flow control
The design is based on a 29C53 transceiver for the
ISDN connection and an 80188 microprocessor in combination with an 82530 communications controller for
the data connection. Benefits of the application are:
• Data rates up to 19.2 Kb!s using an RS232 interface
or up to 48 Kb!s using an X.21 interface.
• Compact design and low cost.
• Virtually error free transmission.
EPLD
• Interface conversion,' serial to!from SLD
• B-channel assignment
29C53
• Physical level interface (CCITT 1.430)
• Lower portion of the link access procedure:
- Zero insertion!deletion
- CRC generation and checking
- Flag appending and detection
• D-channel message buffering
Link Setup
The user sets up a call in the same manner as a Hayes·
modem user does, i.e. a command is transferred to the
adaptor via the RS232 interface. The command takes
the form of an ASCII string in which the first 2 characters are "AT".
The 80188 passes the information for the D-channel
messages via the parallel bus into the FIFO's of the
29C53.
C
The 80188 accepts the command and begins the call
setup procedure by communicating the call's destination to the NT (or CO). This is achieved by passing call
setup messages to a link level protocol, which is passed
to the NT over the physical level (S bus). The partitioning of the tasks is as follows:
The NT grants a B-channel (if available) to the TA and
the channel is now ready for data transfer.
Data Transfer
An indication is given to the user's terminal via the
RS232 or X.21 port that communication may commence. Any subsequent data, from the terminal, is
treated as follows:
82530
Full duplex, dual channel serial communications controller capable of working in asynchronous, bit or byte
synchronous modes. The 82530 receives commands
from the terminal's RS232 or X.21 interface and passes
them on to the 80188.
Data from the terminal passes via the 82530 to RAM
via one of the 80188 DMA channels.
The 80188 fetches the data from RAM, depacketizes
and packetizes it before sending it back to the 82530
where a protective HDLC protocol is added.
80188
After having received the dialing information from the
keyboard, the 80188 sets up the call via the 29C53 Dchannel by sending the appropriate CCITT message up
the link.
• Call setup message generation (CCITT 1.451).
From the 82530 the data reaches the EPLD to be inserted into the B1 or B2 channel on the SLD bus. The
29C53 sends it out over the "S" interface.
• Hayes is a registered trademark of Hayes Microcomputer
Products, Inc.
5-93
inter
AB-400
SLD
P3/4
RS 232 C
300 - 19 200 blt/s
oR
X.21
600 - 48 000 blt/s
ill-
:Jl.l
CH B
~
HDLC
29C53
CS
AID
it
I
.. ~
CHANNEL
SELECT
c::::
c:::
4W 'S' Interface
INn
PCSI
....
INTO
82530
SEL
D/C
...
.
"
~
~
,
4
~
PCS5
...
...
IAPX188
AID
UCS
LCS
. ,.
'II
,
AID
AID
EPROM
RAM
270247-1
Figure 1. Terminal Adaptor
5-94
inter
AB·400
ISDN PHONE WITH BUILT IN TERMINAL ADAPTOR (TA)
Figure 2 shows the concept of an ISDN phone with
hookup to standard sync/async terminals. No change
at the terminal is required to make it ISDN compatible.
The design is based on a 29C53 transceiver for the
ISDN connection, a 29C48 combo for the voice connection and an 80188 microprocessor in combination with
an 82530 communications controller for the data connection. Benefits of the application are:
• Data rates up to 19.2 kb/s using an RS232 interface
o~ up to 48 j<.b/susing an X.21 interface.
• Compact design and low cost.
• Virtually error free transmission.
Link Setup
Applies both for speech and dat~ links. The 80188 accepts the command and begins the call setup procedure
by communicating the call's destination: to the NT (or
CO):This-is achieved by passing call setup messages to
a link level protocol, which is passed to the NT over'the
physical level (S-bus). The partitioning of the tasks is as
follows:
- Error correction (retransmission)
- Flow control
EPLD
• Interface conversion, serial to/from SLD
• B-channel assignment
29C53
• Physical level interface (CCITT 1.430)
• Lower portion of the link access procedure:
- Zero insertionldeletion
- CRC generation and checking
- Flag appending and detection
• D-channel message buffering
The 80188 passes the information for the D-channel
messages via the parallel bus into the FIFO's of the
29C53.
The NT grants a B-channel (if available) to the TA and
,the channel is now ready for data transfer.
8279
The 8279 keyboard and display controller scans the telephone number pad and supports a small telephone display. Calls are initiated either through the terminal
keyboard using an extended Hayes Smart Modem command set or via the telephone number pad.
82530
Full duplex, dual channel serial communications controller capable of working in asynchronous, bit or byte
synchronous modes. The 82530 receives commands
from the terminal's RS232 or X.21 interface and passes
them on to the 80188.
80188
After having received the dialing information from either keyboard, the 80188 sets up the call via the 29C53
D-channel by sending the appropriate message up the
link.
• Call setup message generation (CCITT 1.451)
• Upper portion of link access procedure (CCITT
1.440) handling:
- Multiple logic channels
- Sequence control
Information Transfer
VOICE
The voice transfer is supported by the 29C48 which
transmits the voice on either the BI or B2 channel
(controlled by the EPLD) into the 29C53 and onward
to the S-bus.
DATA
An indication is given to the user's terminal via the
RS232 or X.21 port that communication may commence. Any subsequent data, from the terminal, is
treated as follows:
Data from the terminal passes via the 82530 to RAM
via one of the 80188 DMA channels.
The 80188 fetches the data from RAM, depacketizes
and packetizes it before sending it back to the 82530
where a protective HDLC protocol is added.
From the 82530, the data reaches the EPLD to be inserted into the BI or B2 channel on the SLD bus. The
29C53 sends it out over the "S" interface.
inter
AB-400
,
It'
29C48
.......
~
SLO
SLO
81/82
P3/4
.,Jj
..
4W 'S' Interface
CS
A/O
"
.~
c:::::
Ir:::::
I
29C53
'
EPLO
RS 232 C
300 - 19200, blt/s
OR
X.21
600 - 48 000 blt/s
~
:IJ.L
CHANNEL
SELECT
INn
'PCSl
HOLC
INTO
82530
SEL
O/C
PCSS
....
'"
"I
A ~
..
r
~
A
...r-
.
IAPX188
A/O
UCS
LCS
PCS4
"I
,.
~
"
A/O
A/O
EPROM
RAM
"I
,.
INT3
I
A/O CS INT
OUT
8279
~OISPLAY
RL ~KEY80ARO
270247-2
Figure 2. ISDN Phone With Built In Terminal Adaptor
5-96
inter
AB-400
PERSONAL COMPUTER INTERFACE
Like the terminal adaptor, the ISDN PC adaptor
provides a link to the ISDN network. The ISDN CoProcessor shown in Figure 3 implements the hardware
functions required to support the CCITI I-series "S"
interface.
29C48
Voice conversion and interface to the four wire handset
is performed by this software programmable integrated
Codec/filter combo. Designed for ISDN terminal applications it offers programmable gain in transmit and
receive direction for user loudness control and adaptation to local network requirements as well as sidetone
insertion and tone injection for locally produced feedback signals.
The ISDN Co-Processor is using the 80188 microprocessor in combination with an 82530 serial communications controller for data processing, dual port RAM as
interface and buffer to the host bus, the 29C48 Codecl
filter for voice support and the 29C53 transceiver for
the ISDN connection.
The 29C48 can access either B1 or B2 channel by setting the B Sel pin accordingly.
The ISP188 ISDN Software Package is optimized for
this hardware configuration.
29C53
82530
"s" bus transceiver and D channel controller in a single
chip. The 29C53 provides the physica1level interface to
the "s" bus in accordance to CCITI 1.430 and the
lower portion of the link access protocol. Activation,
deactivation, zero insertiOn/deletion, CRC generation
and checking and flag appending and detection are performed by the 29C53, the higher level portions of
LABD are executed on the 80188 and passed on to the
29C53 via the parallel bus into the FIFO's.
Full duplex, dual channel serial communications controller. One of the two channels is attached to either of
the B channels and operates at 64 kb/s. The second
channel is available to external datacom equipment via
an optional serial port, or for connection to the second
B channel.
B channel access is via the SLD serial port. Voice signals are directly passed on to the 29C48. Data is
extracted and injected by the EPLD (Erasable, Programmable Logic Device) which performs the B channel assignment and the interface conversion to the
82530.
Co-Processor
The PC adaptor is an intelligent communications subsystem designed to function as a slave processor board
in the PC. This relieves the host processor of much of
the communications function.
c::
4W 'S. Injrlace :
RAil
DUAL PORT RAIl
80188
ROil
270247-4
Figure 3. Personal Computer Interface
5-97
AB-400
FULL FEATURE ISDN LINE CARD
:
:
PCMl
PCM2
LINE CARD
CONTROLLER
CS INT
:
:
4W
's'
I
Interface
HOLC
TOM BACKPLANE
+-+ ;~~~RL~~~
SLO
29C53
I
PACKET NETWORK
~~~~;;~~t~~
PCS4
UCS
LCS
INT3
PCSO.1
PSC2.3
270247-3
Figure 4. Full Feature ISDN Line Card
The addition of ISDN line cards to a PABX provides
the user with access to the ISDN network. While the
analog line card provides access for standard telephone
as well as for modems, ISDN terminal adaptors, terminals and phones are connected to the ISDN line card
via a 4 wire'S' loop. The described application provides
all functions to separate voice and switched data (Bchannels) from signaling and packetized data (D-channe1).
4. The 80188 determines whether the data is for signaling (S-packet) or is a message to be sent out over the
packet (P-packet) switched network.
Signaling information can be processed locally or
sent via the linecard controller.
If the data is of "P" type, meant for the packet
switched network, it is DMA'd into the 82530 serial
communications controller which performs the nee.essary HDLC transmission, again without any CPU
involvement.
The 29C53 and 80188 together handle the processing of
D-channel protocols and messages as follows:
5. The 80188 software is responsible for sending out
acknowledgements for received messages from the
29C53's D-channe1 and can thus support large window sizes.
1. The 29C53 executes all bit level HDLC processing,
puts the "raw" messages into its FIFO and raises the
interrupt signal.
2. A special status register in the 29C53s allows the
80188, through a single status read operation, to determine which of the 29C53s is requiring interrupt
servicing, i.e. has D-channel messages(s) in its FIFO.
B-channel information is directly passed from the "S"
loop over the 29C53 and line card controller to the
switch backplane.
3. The 80188 accesses the FIFO concerned and the
data is transferred to RAM.
For transmission in the opposite direction, the procedure is equivalent to the one described above.
5-98
intJ
AB-400
OTHER AVAILABLE TELECOM LITERATURE
Order Number
Title
29C53 Reference Manual
270151-001
29C53 Line Card Evaluation Kit
(LEK) Manual
29C53 Terminal Evaluation Kit
(TEK) Manual
ISP188
ISDN Software Package
for the 80188
IDK29C53
ISDN Development Kit for 29C53
PC53 ISDN Board
5-99
290149-001
PCM Codec fFilter
andCombo
6
I-n+_f
•• ~
2910A
PCM CODEC - p.LA W
8-BIT COMPANDED AID AND 01 A CONVERTER
Per Channel, Single Chip Codec
• CCITT
G711 and G712 Compatible, ATT
• T1 Compatible
with 8th Bit Signaling
Microcomputer Interface with On-Chip
• Timeslot Computation
Direct Mode Interface When
• Simple
Fixed Tlmeslots are Used
• ±S% Power Supplies: + 12V, +SV, -SV
78dB Dynamic Range, with Resolution
• Equivalent
to 12-Blt Linear Conversion
•
•
•
Around Zero
Precision On-Chip Voltage Reference
Low Power Consumption 230 mW Typ.
Standby Power 33mW Typ.
Fabricated with Reliable N-Channel
MOS Process
The Intel 2910A is a fully integrated PCM (Pulse Code Modulation) Codec (Coder-Decoder), fabricated with
N-channel silicon gate technology. The high density of integration allows the sample and hold circuits, the
digital-to-analog converter, the comparator and the successive approximation register to be integrated on the
same chip, along with the logiC necessary to interface a full duplex PCM link and provide in-band signaling.
The primary applications are in telephone systems:
• Transmission
-T1 Carrier
• Switching
• Concentration
-Digital PBX's and Central Office Switching Systems
-Subscriber Carrier IConcentrators
The wide dynamic range of the 2910A (78dB) and the minimal conversion time (80/J-sec minimum) make it an
ideal product for other applications, like:
• Date Acquisition
• Telemetry
• Secure Communications Systems
• Signal Processing Systems
@SIGX_-J_ _ _ _ _ _ _T..;.R;.;AN..:.;SM..;.;.;IT...;S.;;;EC;.;T...;IO;.;N....,A/O
®
o
VFx
r......JL------l-~~_
---ir---t
AUTO
SA':PLE
CD CAP 1x
0 CAP2 x - - - t - - - - t
1--_ _ _-;
HOLD
SUCCESSIVE
TS x
Ox
@
@
AfPROXIMATION
CLKx@
REGISTER
FSx @
006785-1
Figure 2. Pin
Configuration
r-'-if-+-Oc @
I---t-- Cl"c
®
L.....---.Jr-T- PON ®
®
1---t--ClKR ®
I--+__ FSR ®
r-L-t-_I-_OR
@
®
VFR
---f.--cC
Holding Capacitor
VFx
Analog Input
VFR
Analog Output
DR. Dc.SIGx
Dlgrtallnput
SIGR. Ox. TSx
Digital Output
ClKc ClKx. ClKR Clock Input
9GR_-+_ _ _ _ _ _ _ _ _ _ _ _ _ _ _
OPINNLMIER
CAP1X CAP2x
GROA
GROO
®
@
~
006785-2
Figure 1. Block Diagram
FSx FSR
Frame Sync Input
AUTO
Auto Zero Output
VBB
Power (-5V)
Vee
Power (+5V)
Voo
Power (+ 12V)
PDN
Power Down
GRDA
Analog Ground
GRDD
Digital Ground
NC
No Connect
Figure 3. Pin Names
6-1
November 1986
Order Number: 006785-002
2910A
Pin Description
Pin ,No.
Symbol
Function
Hold
Connections for the transmit holding capacitor. Refer to .
Applications section.
Description
1
CAP1x
2
CAP2x
3
VFx
Input
Analog input to be encoded into a PCM word. The signal on this
lead is sampled at the same rate as the transmit frame
synchronization pulse FSx, and the sample value is held in the
external capacitor connected to the CAP1 x and CAP2x leads
until the encoding process is completed.
4
AUTO
Output
Most significant bit of the encoded PCM word ( + 5V for negative,
- 5V for positil(e inputs). Refer to tlJe Codec Applications
section.
5
GRDA
Ground
Analog return common to the transmit and receive analog
circuits. Not connected to GRDD internally.
6
SIGR
Output
Signaling output. SIGR is updated with the 8th bit of the receive
PCM word on signaling frames, and is latched between two
signaling frames. TIL interface.
7
VDD
Power
+ 12V±5%; referenced to GRDA.
8
DR
Input
Receive PCM highway (serial bus) interface. The Codec serially
receives a PCM word (8 bits) through this lead at the proper time
defined by FSR, CLKR, Dc, and CLKe.
9
PDN
Output
Active high when Codec is in the power down state. Open drain
output.
10
VFR
Output
Analog output. The voltage present on VFR is the decoded value
of the PCM word received on lead DR. This value is held
constant between two conversions.
11
NC
Recommended practice is to strap these NC's to GRDA.
12
NC
No
Connects
13
GRDD
Ground
Ground return common to the logic power supply, Vee.
14
Dx
Output
Output of the transmit side onto the send PCM highway (serial
bus). The 8-bit PCM word is serially sent out on this pin at the
proper time defined by FSx, CLKx, Dc, and CLKe. TIL threestate output.
15
TSx
Output
Normally high, this signal goes low while the Codec is
transmitting an 8-bit PCM word on the Dx lead. (Timeslot
information used for diagnostic purposes and also to gate the
data on the Dx lead.) Open drain output.
16
Vee
Power
+5V±5%, referenced to GRDD.
17
CLKR
Input
Master receive clock defining the bit rate on the receive PCM
highway. Typically 1.544 Mbps for a T1 carrier system. Maximum
rate 2.1 Mbps. 50% duty cycle. TIL interface.
18
FSR
Input
Frame synchronization pulse for the receive PCM highway.
Resets the on-chip timeslot counter for the receive side.
Maximum repetition rate 12 KHz. Also used to differentiate
between non-signaling frames and signaling frames on the
receive side. TTL interface.
6-2
inter
2910A
Pin Description (Continued)
Pin No.
Symbol
Function
19
CLKx
Input
Master transmit clock defining the bit rate on the transmit PCM
highway. Typically 1.544 Mbps for a T1 carrier system. Maximum
rate 2.1 Mbps. 50% duty cycle. TIL interface.
20
FSx
Input
Frame synchronization pulse for the transmit PCM highway.
Resets the on-chip timeslot counter for the transmit side.
Maximum repetition rate 12 KHz. Also used to differentiate
between non-signaling frames and signaling frames on the
transmit side. TIL interface.
21
SIGx
Input
Signaling input. This digital input is transmitted as the 8th bit of
the PCM word on the Ox lead, on Signaling frames. TIL
interface.
22
Vss
Power
- 5V ± 5%, referenced to GRDA.
23
De
Input
Data input to program the Codec for the chosen mode of
operation. Becomes an active low chip select when CLKe is tied
to Vee. TTL interface.
24
CLKe
Input
Clock input to clock in the data on the De lead when the timeslot
assignment feature is used; tied to Vee to disable this feature.
TIL interface.
Description
previously described and substitute the signal present on lead SIGx for the least significalJt bit of the
encoded PCM word. Similarly, on a receive signaling
frame, the Codec will decode the 7 most significant
bits according to the CCITI G733 recommendation
and will output the least significant bit value on the
SIGR lead until the next signaling frame. Signaling
frames on the send and receive sides are independent of each other, and are selected by a doublewidth frame sync pulse on the appropriate channel.
FUNCTIONAL DESCRIPTION
The 2910A PCM Codec provides the analog-to-digital and the digital-to-analog conversions necessary
to interface a full duplex (4 wires) voice telephone
circuit with the PCM highways of a time division mUltiplexed (TOM) system.
In a typical telephone system the Codec is used between the PCM highways and the channel filters.
The Codec provides two major functions:
• Encoding and decoding of analog signals (voice
and call progress tones)
r----------------------
• Encoding and decoding of the signaling and supervision information
I
PA&X' C 0 SWITCHING SYSTEM I CHANNel BANK
I
I
I
I .....-.1...--,
I SUPERVISION
I PROTECTION
I
On a non-signaling frame, the Codec encodes the
incoming analog signal at. the frame rate (FSx) into
an 8-bit PCM word which is sent out on the Ox lead
at the proper time. Similarly, the Codec fetches an 8bit PCM word from the receive highway (DR lead)
and decodes an analog value which will remain constant on lead VFR until the next receive frame.
Transmit and receive frames are independent. They
can be asynchronous .(transmission) or synchronous
(switching) with each other.
BATTERY
FEED
RINGING
L _____
~
__ --. _________
~M~I~~YS
006785-4
For channel associated Signaling, the Codec transmit side will encode the incoming analog signal as
Figure 4. Typical Line Termination
6-3
inter
2910A
";'" ,
The 2910A Codec is intended to be used on line and,
trunk terminations. The call progress tones (dial
tone, busy tone, ring-back tone, re-order tone), and
the prerecorded, announcements, can be sent
through the voice-path; digital signaling (off hook
and disconnect supervision, rotary dial pulses, ring
control) is sent through the signaling path.
4
5
6
7
8
Tlmeslot
0
0
0
0
0
0
0
0
0
0
0
1
1
2
•
•
•
•
•
1
1
1
•
1
1
1
64
The Codec will retain the control word (or words)
until a new word is loaded in or until power is lost.
This feature permits dynamic allocation of timeslots
for switching applications.
Codec Control
The operation of the 2910A is defined by serially
loading an a-bit word through the Dc lead (data) and
the CLKc lead (clock). The loading is asynchronous
with the other operations of the Codec, and takes
place whenever transitions occur on the CLKc lead.
The Dc input is loaded in during the trailing edge of
the CLKc input.
I--
3
•
•
COOEC OPERATION
BI14
Standby
Bit
In the power-down mode, most functions of the Codec are directly disabled to reduce power dissipation
to a minimum.
BIT 3
Mode
'X&R
X
R
'0
1
0
1
0
0
1
1
Circuitry is provided within the Codec to internally
define the transmit and receive timeslots. In small
systems this may eliminate the need for any external
timeslot exchange; in large systems it provides one
level of concentration. This feature can be bypassed
and discrete timeslots sent to each Codec within a
system.
I BI~~Ec:T21
BIt2
Bit 1
~~N xB~.
MODE --l------nME SLOT'
BIT 7
BIT
Microcomputer Control Mode
In the microcomputer mode, each Codec performs
its own timeslot computation independently for the
tral:lsmit and receive channels by counting clock
pulses (CLKx and CLKR). All Codecs tied to the
same data bus receive identical framing pulses (FSx
and FSR). The framing pulses reset the on-Chip
timeslot counters every frame; hence the timeslot
counters of all devices are synchronized. Each Codec is programmed via CLKc and Dc for the desired
transmit and receive timeslots according to the description in the Codec Control Section. All Codecs
tied to the same DR bus will, in general, have different receive timeslots, although that is not a device
requirement. There may be separate busses for
transmit and receive or all Codecs may transmit and
receive over the same bus, in which case the transmit and receive channels must be synchronous
(CLKx = CLKR). There are no other restrictions on
timeslot assignments; a device may have the same
transmit and receive timeslot even if a Single bus is
used.
i
"X~
006785-3
The control word contains two fields:
Bit 1 and Bit 2 define whether the subsequent 6 bits
apply to both the transmit and receive side (00), the
transmit side only (01), the receive side only (10), or
whether the Codec should go into the standby, powerdown mode (11). In the last case (11), the following 6 bits are irrelevant.
There are several requirements for using the
CLKc-Dc interface in the microcomputer mode.
1) A complete timeslot assignment, consisting of
eight negative transitions of CLKc must be made
in less than one frame period. The assignment
The last 6 bits of the control word define the timeslot
assignment, from 000000 (timeslot 1) to 111111
(timeslot 64). Bit 3 is the most significant bit and bit a
the least significant bit and last into the Codec.
6-4
2910A
can overlap a framing pulse so long as all 8 control bits are clocked in within a total span of
125 /Ls (for an 8 KHz frame rate). GLKe must be
left at a TIL low level when not assigning a timeslot.
2) A dead period of two frames must always be observed between successive timeslot assignments. The two frame delay is measured from the
rising edge of the first GLKe transition of the previous times lot assigned.
3) When the device is in the power-down state
(Standby), the following three-step sequence
must be followed to power-up the codec to avoid
contention on the transmit PGM highway.
a) Assign a dummy transmit timeslot. The dummy
should be at least two timeslots greater than
the maximum valid system timeslot (usually 24
or 32). For example, in a 24 timeslot system,
the dummy could be any timeslot between 26
and 64. This will power-up the transmit side,
but prevent any spurious Ox or TSx outputs.
b) Two frames later, assign the desired transmit
timeslot.
c) Two frames later assign the desired receive
timeslot.
4) Initialization sequence: The device contains an
on-chip power-on clear function which guarantees that with proper sequencing of the supplies
(Vee or VOO on last), the device will initialize with
no timeslot assigned to either the transmit or receive channel. After a supply failure or whenever
the supplies are applied, it is recommended that
either power down assignment be made first, or
the first timeslot assignment be a transmit timeslot or a transmit/receive timeslot. The consequence of making a receive timeslot assignment
first, after supply application, is that the transmit
channel will assume timeslot 1, potentially producing bus contention.
5) Transmit only/receive only operation is permitted
provided that a power down assignment is made
first. Otherwise, special circuits which use only
one channel should be physically disconnected
from the unused bus; this allows a timeslot to be
made to an unused channel without consequence.
6) Both frame synchronizing pulses (FSx FSR) must
be active at all times after power on 'clear (after
power supplies are turned on). This requirement
must be met during powerdown and receive only
or transmit only operation, as well as during normal transmit and receive operation.
Example of Microcomputer Control Mode:
The two words 01000001 and 10000010 have been
loaded into the Godec. The transmit side is now programmed for timeslot 2 and the receive side for
timeslot 3. The Godec will output a PGM word on the
transmit PGM highway (bus) during the timeslot 2 of
the transmit frame, and will fetch a PGM word from
the receive PGM highway during times lot 3.
rSEPARATEO BY AT LEAST TWO FRAMESl
~~
~~c
:
I
~~:
Dc
I
I
I
I
I
I
I
I
I
I
I
I
I
I.
I
01000001
"
'.
10000010
Figure 5. Microcomputer Mode Programming Example
_,
006785-5
inter
2910A
XMT TIME SLar 1
FSx
XMT TIME SLOT 3
IMY TIME SLOT 2
--I
IN
eLK, IN
Rev TIME $LOl' 3
RCV TIME SLOT \
Fs., IN
0"
IN
PCM WORD CLOCKED IN
006785-8
Figure 6. Microcomputer Mode PCM Highway Example
In this example the Codec interface to the PCM
highway then functions as shown above. (FSx and
FSR may be asynchronous.)
fied limits. This assumes that CLKc is tied to Vee
and that all clocks are available at the time the supplies have settled.
Direct Control Mode
General Control Requirements
The direct mode of operation will be selected when
the CLKc pin is strapped to the + 5 volt supply
(Vee). In this mode, the Dc pin is an active low chip
select. In other words, when Dc is low, the device
transmits and receives in the timeslots which follow
the appropriate framing pulses. With Dc high the device is in the power down state. Even though CLKc
characteristics are simpler for the 2910A it will oper·
ate properly when plugged into a 2910 board.
All bit and frame clocks should be applied whenever
the device is active. In particular, an unused channel
cannot be deactivated by removal of its associated
frame or bit clock while the other channel of the
same device remains active.
A single channel cannot be deactivated except by
physical disconnection of the data lead (Dx or DR)
from the system data bus. A device (both transmit
and receive channels) may be deactivated in either
control mode by powering down the device. Both
channels are always powered down together.
Deactivation of a channel by removal of the appro·
priate framing pulse (FSx or FSR) is not permitted.
Specifically, framing pulses must be applied for a
minimum of two frames after a change in state of Dc
in order for the Dc change to be internally sensed. In
particular, when entering standby in the direct mode,
framing pulses must be applied as usual for two
frames after Dc is brought high.
Encoding
The VF signal to be encoded is input on the VFx
lead. An internal switch samples the signal and the
hold function is performed by the external capacitor
connected to the CAP1 X and CAP2x leads. The
sampling and conversion is synchronized with the
The Godec will enter the direct mode within three
frame times (375 ,""s) as measured from the time the
device power supplies settle to within the speci·
""I
, - - - - '. .
XcLK.-------o--l!
....
N.J___~(··_C_~_~_L~S~~M-I~-~--D~-----~==~~~~~L-------_ ____
~~
••••••••••• u u •• u
••
;;~:~:.=3
u
•• m
••••
;.~
006785-7
Figure 7. Transmit Encoding
6-6
intJ
2910A
• A frame synchronization pulse which is a full
clock period in duration (CLKx period for FSx,
CLKR period for FSR) deSignates a non-signaling
frame.
• A frame synchronization pulse which is two full
clock periods in duration (two CLKx periods for
FSx two CLKR periods for FSR) deSignates a signaling frame.
transmit timeslot. The PCM word is then output on
the Ox lead at the proper timeslot occurrence of the
following frame. The AID converter saturates at approximately ± 2.2 volts RMS (± 3.1 volts peak).
Decoding
The PCM word is fetched by the DR lead from the
PCM highway at the proper timeslot occurrence. The
decoded value is held on an internal sample and
hold capacitor. The buffered non-return to zero output signal on the VFR lead has a dynamic range of
approximately ± 2.2 volts RMS (± 3.1 volts peak).
On the encoding side, when the FSx pulse is widened, the 8th bit of the PCM word will be replaced by
the value on the SIGx input at the time when the 8th
bit is output on the Ox lead.
Signaling
On the decoding side, when the FSR pulse is widened, the 8th bit of the PCM word is detected and
transmitted on the SIGR lead. That output is latched
until the next receiving signaling frame.
The duration of the FSx and FSR pulses defines
whether a frame is an information frame or a signaling frame:
.
I-
TS..
The remaining 7 bits are decoded according to the
value given in the CCITT G733 recommendation.
The SIGR lead is reset to a TTL low level whenever
the Codec is in the power-down state.
"liT....
"'
.92 iTS.. I-
I
-,'
"I
ClKx~,~,.rt.rLJn.I·"1..fl..I1.J1..
192 I
_IT SIGNAL PRAM.
In
FSx J
, "~7
___.I-_ _ _ _ _ _
_
.~.
~ ---------,-----------------;~;:ummm-:7~
S/Gx :.:-::::: ::::: : : : : : : ::: :::::
L::: :: ::::: :: ::::: :x::::=:=-=~::t=======:O==-=
006785-8
Figure 8. Transmit 8th Bit Signaling
I"
TSI,
".'
TSn"
"'
d- TS"
..
1'
T....
"I
CLKR~'.f1.Il...ILJ"LJJ1Jl..I1U'l..fU1..fl..JlS
192
REC SIGNAL FRAME
.JI
_ _ _ _ _ _ _ _ __
~
0,.
SIG R
.~,
.
==========:=========.= , ; :
SIGR
:::~::::::::::::::::::::::::::::::::::::!:~::::~::::~::::::::::::::~:::
Figure 9. Receive 8th Bit Signaling
6-7
'~
XV
008785-9
2910A
T1 Framing
Precision Voltage Referer:'lce for the
01A Conyerter
..
The Codec will accept the standard 03/04 framing
format of 193 clock pulses per frame (equivalent to
CLKx, CLKR of 1.544 Mb/s). However, the 193rd bit
may be blanked (equivalent to CLKx, CLKR of
1.536 Mb/s) if desired.
The voltage reference is generated on the chip and
is calibrated during the manufacturing process. The
technique uses the difference in sub-surface charge
density between two suitably implanted MOS devices to derive a temperature stable and bias stable
reference voltage..
.
.
Standby Mode-Power Down
A gain setting op amp, programmed during m~nufac
turing, "trims" the reference voltage source to the
final precision voltage reference value provided to
the 01 A converter. The precision voltage reference
determines the initial gain and dynamic range characteristics described in the A.C. Transmission Specification section.
To minimize power consumption and heat dissipation a standby mode is provided where all Codec
functions are disabled except for De and CLKe
leads. These allow the Codec to be reactivated. In
the microcomputer mode the Codec is placed into
standby by loading a control word (De) with a "1" in
bits 1 and 2 locations. In the direct mode when De is
brought high, the all "1's" control word is internally
transferred to the control register, invoking the
standby condition.
,...·Law Conversion
~-Iaw represents a particular implementation of a
piece-wise linear approximation to a logarithmic
compression curve which is:
While in the standby mode, the Ox output is actively
held in a high impedance state to guarantee that the
PCM bus wi" not be driven. The SIGR output is held
low to provide a known condition and remains this
way upon activation until it is changed by signaling.
F(x) = Sgn(x) In(1 + ~Ixl) 0
In(1 +~)
The power consumption in the standby mode is typica"y·33 m'!".
:s:
Ixl
:s:
1
where x = input signal
Sgn(x) = sign of input signal
Power·On Clear
~
Whether the device is used in the direct or microcomputer mode, an internal reset (power-on clear) is
generated, forcing the device into the power down
state, when power is supplied by any of the following
methods. (1) Device power supplies are turned on in
a system power-up situation where either Vee or
Voo is applied last. (2) A large supply transient causes either of the two positive supplies to drop to less
than approximately 2 volts. (3) A board containing
Codecs is plugged into a "hot" system where Vee or
Voo is the last contact made. It may be necessary to
trim back the edge connector pins or fingers on Vee
or Voo relative to the other supply to guarantee that
the power-on clear will operate properly when a
board is plugged into a "hot" system. Furthermore,
the Codec will inhibit activity on TSx and Ox during
the application of power supplies.
= 255 (defined by AT & T)
The 291 OA ~ = 255 law Codec uses a 15 segment
approximation to the logarithmic law. Each segment
consists of 16 steps. In adjacent segments the step
sizes are in a ratio of two to one. Within each segment the step size is constant except for the first
step of the first segment of the encoder, as indicated
in the attached table. The output levels are midway
between the corresponding decision levels. The out~
put levels Yn are related to the input levels xn by the
expression:
Yn =
xn +xn+1 for 1 :s:
2
n
:s:
127
Yo=xo=Oforn=O
These relationships are implicit in the following table.
The device is also tolerant of transients in the negative supply (Vss) so long as Vss remains more negative than -3.5 volts. Vss transients which exceed
this level should be detected and followed by a system reinitialization.
6-8
inter
2910A
Theoretical WLaw-Positive Input Values (for Negative Input Values, Invert Bit 1)
1
2
3
4
5
Segment
Number
No. of Steps
x Step Size
Value.t
Segment
End
Points
Decision
Value
Numbern
Declalon
Valuexn(1)
8159(5)
(128)
(8159)
127
7903
I
I
I
I
I
I
I
I
6
7
8
PCMWord(3)
Normalized
Value
at Decoder
Output Yn(4)
Decoder
Output
Value
Number
8031
127
MSB Bit Number LSB
1 2 3 4 5 6 7 8
1 a a a a a a a
8
16 x 256
4063
7
16 x 128
2015
6
16 x64
113
4319
112
4063
I
I
I
I
I
I
I
I
I
(see Note 2)
I
I
1 a a a 1 1 1 1
97
2143
96
2015
I
I
I
I
I
I
I
I
1055
I
I
80
991
5
I
I
I
I
16x32
479
4
16x 16
I
I
I
I
65
511
64
479
I
I
I
I
I
I
I
I
49
239
48
223
I
I
I
I
I
I
I
I
3
16 x 8
33
103
32
95
I
I
I
I
I
I
I
I
2
16 x 4
17
35
16
31
15x2
I
I
I
I
I
I
I
I
2
3
1
1
a
a
-
1023
80
-
I
I
I
I
I
I
495
I
I
I
I
I
I
64
-
I
I
I
I
I
I
231
I
I
I
I
I
I
-
99
32
-
I
I
I
I
I
I
33
I
I
I
I
I
I
16
I-
I
I
I
I
I
I
2
I
I
I
I
I
I
1
a
a
I
I
I
(see Note 2)
I
I
I
(see Note 2)
I
I
I
(see Note 2)
I
I
I
(see Note 2)
I
I
1 1 1 1 1 1 1 0
1
-I-
I
I
I
I
I
I
I
I
I
I
I
I
I
1 1 1 a 1 1 1 1
31
112
I
I
I
I
I
I
96
(see Note 2)
1 1 a 1 1 1 1 1
95
4191
I
I
I
I
I
I
I
I
1 1 a a 1 1 1 1
223
I
I
I
I
I
I
2079
I
1 a 1 1 1 1 1 1
I
I
I
I
I
I
-
(see Note 2)
1 a 1 a 1 1 1 1
991
~
I
(see Note 2)
1 a a 1 1 1 1 1
81
-
I
I
I
I
I
I
48
I
I
I
I
I
I
1 1 1 1 1 1 1 1
1 xl
NOTES:
1. 8159 normalized value units correspond to the value of the on-chip voltage reference.
2. The PCM word corresponding to positive input values between two successive decision values numbered nand n + 1
'(see column 4) is (255-n) expressed as a binary number.
3. The PCM word on the highways is the same as the one shown in column 6.
4. The voltage output on the VFR lead is equal to the normalized value given in the table, augmented by an offset. The
offset value is approximately 15 mY.
5. x128 is a virtual decision value.
6-9
inter
2910A
VFR
_
. . . . __ ...... _ _ . . . __ • _ _ _ _ _ _ ............ u
...... _ . . . . . _ . . . . . . . . . ..
VFx
006785-10
Figure 10. Codec Transfer Characteristic
During signaling frames, a 7-bit transfer characteristic is implemented in the decoder. This characteristic
is derived from the decoder values in the attached
table by assuming a value of "1" for the LSB (8th
bit) and shifting the decoder transfer characteristics
one half-step away from the origin. For example, the
maximum decoder output level for signaling frames
has normalized value 7903, whereas it has value
8031 in normal (non-signaling) frames.
APPLICATIONS
VFx
r-------------,
8 KHz
CO DEC
---'\1'11\
5001"1
R,
I
150 Kn :
+CAP1x
CAPx
1.
2000 pF
I
'r
GRDA I
-=-
I
I
I
VF., I
I
I
I
2 mV OFFSET
I
L-!?RDA --~,------ J
006785~11
Figure 11. Circuit Interface-without External Auto Zero
6-10
inter
2910A
For an 8 KHz sampling system the transmit holding
capacitor CAPx should be 2000 pF ± 20%.
The circuit interface with auto zero drawing shows a
possible connection between the VFx and AUTO
leads with the recommended values of C1 = 0.3 ""F,
R1 = 150 Kn., R2 = 330 Kn., and R3 = 470 Kn..
Auto Zero
Filters Interface
The 291 OA contains a transparent on-chip auto zero
plus a device pin for implementing a sign-bit driven
external auto zero feedback loop. The on-chip auto
zero reduces the input offset voltage of the encoder
(VFx) to less than 3 mV. For most telephony applications, this input offset is perfectly acceptable, since it
insures the encoder is biased in the lower 25% of
the first segment.
The filters may be interfaced as shown in the circuit
interface diagrams. Note that the output pulse
stream is of the non-return-to-zero type and hence
requires the (sin x)/x correction provided by the
2912A filter.
Where lower input offset is required the external
auto zero loop may be used to bias the encoder exactly at the zero crossing point. The consequence of
the external auto zero loop, aside from extra components, is the addition of the dithering auto-zero signal to the input signal, resulting in slightly higher idle
channel noise (approximately 2dB) than when the,
external loop is not used. Consequently, where the
application permits, it is recommended that the external auto zero loop not be used. When not used,
the AUTO pin should float.
For higher drive capability or increased system reliability it may be desirable that the Ox output of a
group of Codecs be buffered from the system PCM
bus with an external three-state or open collector
buffers. A buffer can be enabled with the I!EPropriate
Codec generated TSx signal or signals. TSx Signal
may also beused to activate external zero code suppression logiC, since the occurrence of an active
state of any TSx implies the existence of PCM voice
bits (as opposed to transparent data bits) on the
bus.
Holding Capacitor
Ox Buffering
r-------,
I
I
I
r---
I
VFx
I
t---"""""'----1
AUTO
IIa
R.
470KO
33011
":"" GRDA
I __ _
L
006785-12
Figure 12. Circuit Interlace-with External Auto Zero
6-11
2910A
• Notice: Stresses above those listed under '~bso
lute Maximum Ratings" may cause permanent damage to the device. This is a stress rating only and
functional operation of the device at these or any
other conditions above those indicated in the operational sections of this specification is not implied. Exposure to absolute maximum rating conditions for
extended periods may affect device reliability.
ABSOLUTE MAXIMUM RATINGS*
Temperature Under Bias ......... -10·C to + 80·C
Storage Temperature .......... - 65·C to + 150·C
All Input or Output Voltages with
Respect to Vss .... " .... , ..... -O.3V to + 20V
Vcc Voo GRDD, and GRDA with
Respect to Vss ................ - O.3V to + 20V
Power Dissipation ........................ 1.35W
D.C. CHARACTERISTICS
TA=O·C to +70·C, Voo= +12V ±5%, Vcc= +5V ±5%, Vss= -5V ±5%, GRDA=OV, GRDD=OV,
unless otherwise specified
DIGITAL INTERFACE
Symbol
Limits
Parameter
Min
Typ(l)
Units
I,l
Low Level Input Current
10
p.A
10
p.A
I'H
High Level Input Current
V,l
Input Low Voltage
V,H
Input High Voltage
VOL
Output Low Voltage
VOH
Output High Voltage
Test Conditions
Max
0.6
Y,N < V,l
Y,N >V,H
V
2.0
V
0.4
2.4
V
Ox. 10l = 4.0 mA
SIGR. 10l = 0.5 mA
'fSx. 10l = 3.2 mAo Open Drain
PDN, 10l = 1.6 mAo Open Drain
V
Dx.IOH = 15 mA
SIGR 10H = 0.08 mA
ANALOG INTERFACE
Symbol
Limits
Parameter
Min
Typ(1)
Max
Units
Test Conditions
ZAI
Input Impedance when
Sampling, VFx
125
300
500
Ii
in Series with CAPx to GRDA.
-3.1V < Y,N < 3.W
ZAO
Small Signal Output
Impedance, VFR
100
180
300
Ii
-3.W
VOR
Output Offset Voltage at VFR
±50
mV
all "1 s.. code sent to DR
V,X
Input Offset Voltage at VFx
±5
mV
VFx Voltage Required to
Produce all "1 s.. Code at Ox
VOL
Output Low Voltage at AUTO
(Vss+2)
V
400 Kli to GRDA
VOH
Output High Voltage at AUTO
V
400 Kli to GRDA
Vss
(Vcc- 2)
Vcc
< VOUT < 3.W
POWER DISSIPATION
Symbol
Limits
Parameter
Min
Typ(l)
Max
Units
Test Conditions
mA
Auto Output = Open Clock
Frequency = 2.048 MHz
IDDO
Standby Current
0.7
1.1
Icco
Standby Current
4
7.0
mA
Isso
Standby Current
1
2.5
mA
IDDI
Operating Current
11
16
mA
Icci
Operating Current
13
21
mA
Issl
Operating Current
4
6.0
mA
NOTE:
1. Typical values are for T A = 25°C and nominal power supply values.
6-12
intJ
2910A
A.C. CHARACTERISTICS
TA=O°c to + 70°C, VDD= +12V ±5%, VCC= +5V ±5%, VBB= -5V ±5%, GRDA=OV, GRDD=OV,
unless otherwise specified
TRANSMISSION
Symbol
Limits
Parameter
Typ(1)
Min
SID
Signal/Tone Distortion Ratio,
C-Message Weighted
Half Channel
(See Figure 1)
Unit
Test Conditions
dB
dB
dB
VFx = 1.02 KHz, Sinusoid
-30 dBmO ,;; VFx ,;; 0 dBmO
-40 dBmO ,;; VFx < -30 dBmO
-45 dBmO ,;; VFx < -40 dBmO
Max
36
30
27
±0.25
±0.60
±1.5
±0.30
±0.70
±1.8
dB
dB
dB
VFx = 1.02 KHz, Sinusoid
-37 dBmO ,;; VFx';; +3 dBmO
-50 dBmO';; VFx < -37 dBmO
-55 dBmO ,;; VFx < -50 dBmO
AG
Gain Tracking Deviation
Half Channel(2)
Reference Level 0 dBmO
AGv
AG Variation with Supplies
Half Channel
±0.0002
±0.0004
±0.0004
±0.0008
dB/mY
dB/mY
-37 dBmO';; VFx ,;; +3 dBmO
-50 dBmO ,;; VFx < -37 dBmO
AGT
AG Variation with Temperature
Half Channel
±0.001
±0.002
±0.002
±0.005
dBI"C
dBI"C
-37 dBmO';; VFx ,;; +3 dBmO
-50 dBmO ,;; VFx < -37 dBmO
NIC1
Idle Channel Noise, C-Message
Weighted
2
7
dBrncO
No Signaling(3)
NIC2
Idle Channel Noise, C-Message
Weighted
10
13
dBrncO
with 6th and 12th Frame
Signaling(3)
NIC3
Idle Channel Noise, C-Message
Weighted
14
18
dBrncO
with 1 KHz Sign Bit Toggle
HD
Harmonic Distortion (2nd or 3rd)
-48
-44
dB
IMD
Intermodulation Distortion
2nd Order
3rd Order
-45
-55
dB
dB
VFx = 1.02 KHz, 0 dBmO;
Measured at Decoder Output VFR
4-Tone Stimulus in Accordance
with BSTR PUB 41009
NOTES:
1. Typical values are for TA = 25°C and nominal supply values.
2. Measured in one direction, either decoder or encoder and an ideal device, at 23°C, nominal supplies.
3. If the external auto-zero is used NIC1 has a typical value of 8 dBrncO and NIC2 has a typical value of 13 dBrncO.
4. DR of Device Under Test (D.U.T.) driven with repetitive digital word sequence specified in CCITT recommendation G.711.
Measurement made at VFR output.
5. With the D.C. method the positive and negative clipping levels are measured and AIR is calculated. With the A.C. method
a sinusoidal input signal to VFx is used where AIR is measured directly.
..
~~
-----------------
30 / /
/
/
..
AT&T 03 CHANNEL
BANI( COMPA flalllTV
SPECIFICATION
33
/
(ISSUE 3 10 77}
ATIT
D3 CHANNEL lANK
I1---:i;-~:;--:;;:====::j3
-55
-50
-37
•
COMPAna'LllY
SPECIFtCATtOH
CiSlUE 110.77)
END-Y()'END
INPUT
LEVEL
cl8mO
-2
-20
-\0
INPUT lEVEL !dBmO}
006785-13
006785-14
Figure 13. Signal/Total Distortion Ratio
(Half-Channel)
Figure 14. Gain Tracking Deviation
(Half·Channel)
6-13
(~G)
inter
2910A
A.C. CHARACTERISTICS
+5V ±5%, Vss= -5V ±5%, GRDA=OV, GRDD=OV,
TA=O·Cto +70·C, VDD=+12V ±5%, Vcc
unless otherwise specified (Continued)
GAIN AND DYNAMIC RANGE
Symbol
Limits
Parameter
Min
DmW
Digital Milliwatt Response
Unit
Typ(1)
5.53
Test Conditions
Max
23°C, Nominal Supplies(4)
5.63
5.73
dBm
-0.001
-0.002
dBI"C
Relative to 23·C(4)
±0.07
dB
Supplies ±5%(4)
2.23
VRMS
DmWT
DmWo Variation with
Temperature
DmWs
DmWo Variation with
Supplies
AIR
Input Dynamic Range
AIRT
Input Dynamic Range with
Temperature
-0.5
AIRS
Input Dynamic Range with
Supplies
±18
mVRMS
AOR
Output Dynamic Range, VFR 2.13
2.19
VRMS
AoRT
AoR Variation with
Temperature
-0.5
AORS
AOR Variation with Supplies
±18
2.17
2.20
2.16
Using D.C. and A. C. Tests(5)
23°C, Nominal Supplies
mVRMSI"C Relative to 23·C
Supplies ±5%
23·C, Nominal Supplies
mVRMSI"C Relative to 23·C
mVRMS
Supplies ±5%
SUPPLY REJECTION AND CROSSTALK
Symbol
Limits
Parameter
Min
Typ(1)
Unit
Test Conditions
dB
Decoder Alone(2)
Max
PSRRl
VDD Power Supply Rejection Ratio
45
PSRR2
Vss Power Supply Rejection Ratio
35
dB
Decoder Alone(2)
Decoder Alone(2)
PSRR3
Vcc Power Supply Rejection Ratio
50
. dB
PSRR4
VDD Power Supply Rejection Ratio
50
dB
Encoder Alone(3)
PSRR5
Vss Power Supply Rejection Ratio
45
dB
Encoder Alone(3)
PSRRs
Vcc Power Supply Rejection Ratio
50
dB
Encoder Alone(3)
CTR
Crosstalk Isolation, Receive Side
75
dB
(Note 4)
CTT
Crosstalk Isolation, Transmit Side
75
80
dB
(Note 5)
CAPX
Input Sample and Hold Capacitor
1600
200
80
2400
pF
NOTES:
1. Typical values are for T A = 25'C and nominal power supply values.
2. D.U.T. decoder; impose 200 mVp.p, 1.02 KHz on appropriate supply; measurement made at decoder output;
idle channel conditions.
3. D.U.T. encoder; impose 200 mVp.p, 1.02 KHz on appropriate supply; measurement made at encoder output;
idle channel conditions.
4. VFx of D.U.T. encoder = 1.02 KHz, 0 dSmO. Decoder under quiet channel conditions; measurement·made
output.
5. VFx = 0 Vrms. Decoder = 1.02 KHz, 0 dSmO. Encoder under quiet channel conditions; measurement made
output.
6-14
decoder in
encoder in
at decoder
at encoder
inter
2910A
A.C. CHARACTERISTIC-TIMING SPECIFICATION(1)
TA=O·Cto +70·C, voo= + 12V ±5%, vcc= +5V ±5%, vss= -5V ±5%, GRDA=OV, GRDD=OV,
unless otherwise specified
CLOCK SECTION
Symbol
Limits
Parameter
Min
tcy
Clock Period .
tr• tf
Clock Rise and Fall Time
tclK
Clock Pulse Width
215
Clock Duty Cycle (tClK + tCY)
45
tcoc
Units
Comments
ns
CLKx. CLKR (2.048 MHz Systems), CLKc
ns
CLKx. CLKR. CLKc
ns
CLKx. CLKR. CLKc
Max
485
0
30
55
.%
CLKx. CLKR
TRANSMIT SECTION
Symbol
Limits
Parameter
Min
Units
Comments
Timeslot
from Leading Edge of Transmit Timeslot (2)
Max
tVFX
Analog Input Conversion
tozx
Data Enabled on TS Entry
50
180
ns
0< ClOAO < 100 pF
tOHX
Data Hold Time
80
230
ns
o < ClOAO < 100 pF
tHZX
Data Float on TS Exit
75
245
ns
ClOAO = 0
tSON
Timeslot X to Enable
30
220
ns
o < CLOAO < 100pF
tSOFF
Timeslot X to Disable
70
225
ns
ClOAO = 0
tss
Signal Setup Time
0
ns
Relative to Bit 7 Falling Edge
tSH
Signal Hold Time
100
ns
Relative to Bit 8 Falling Edge
tFSO
Frame Sync Delay
15
20
150
ns
RECEIVE AND CONTROL SECTIONS
Symbol
Parameter
Limits
Min
Max
9 "Ae
9 "A6
Units
Comments
Timeslot
from Leading Edge of the Channel Timeslot
tVFR
Analog Output Update
tOSR
Receive Data Setup
20
ns
tOHR
Receive Data Hold
60
ns
tSIGR
SIGR Update
tFso
Frame Sync Delay
15
tosc
Control Data Setup
115
ns
Microcomputer Mode Only
tOHC
Control Data Hold
115
ns
Microcomputer Mode Only
1
/Ls
150
ns
from Trailing Edge of the Channel Timeslot
NOTES:
1. All timing Pl!rameters referenced to 1.5V. except tHZX and tSOFF which reference to high impedance state.
2. The 20 timeslot minimum insures that the complete AID conversion will take place under any combination of receive
interrupt or asynchronous operation of the Codec.. If the transmit channel only is operated. the AID conversion can be
completed in a minimum of 11 timeslots. Refer to the Codec Control General Requirement section for instructions on setting
a channel in an idle condition.
6-15
-f
:D
~
3:
G')
rn
:::j
ClK)(
~
2
3
tr -
-
4
tf
5
---
6
1
8
_
~
i
Z
~
i
z
A1
I
+CAP1x
CAP,
2000 pF
I
I
I
l
I
I
150 KO
I
I
DECODER
FILTER
c,
R,
.3,F
'&OKO
I
I
AUTO
...
3300
I
.". QRDA
I _I;-______
....:Y~F.~If__.l
YF., I I
I
..
I
L!"~~~
r---
r -____~YF~xl~_ _
I
r-------------,
I+-":":"='-+.--.J
YFxo
,
For an 8 KHz sampling system the transmit holding
capacitor CAPx should be 2000 pF ± 20%.
IIII
1~__I"I__
:
ENCODER
FILTER
L __ _
__ -.J
270158-10
Figure 12. Circuit Interface-With
External Auto Zero
1
2 mY OFFSET
I
Auto Zero
L-1;D;---------J
The 2911 A contains a transparent on-chip auto zero
plus a device pin for implementing a sign-bit driven
external auto zero feedback loop. The on-chip auto
zero reduces the input offset voltage of the encoder
(VFx) to less than 3 mY. For most telephony applications, this input offset is perfectly acceptable, since it
insures the encoder is biased in the lower 25% of
the first segment.
270158-9
Figure 11. Circuit Inter1ace-Wlthout
External Auto Zero
Filters Interface
The filters may be interfaced as shown in the circuit
interface diagrams. Note that the output pulse
stream is of the non-return-to-zero type and hence
requires the (sin x)/x correction provided by the
2912A filter.
Where lower input offset is required the external
auto zero loop may be used to bias the encoder exactly at the zero crossing point. The consequence of
the external auto zero loop, aside from extra components, is the addition of the dithering auto-zero signal to the input Signal, resulting in slightly higher idle
channel noise (approximately 2 dB) than when the
external loop is not used. Consequently, where the
application permits, it is recommended that the external auto zero loop not be used. When not used,
the AUTO pin should float.
Ox Buffering
For higher drive capability or increased system reliability it may be desirable that the Ox output of a
group of Codecs be buffered from the system PCM
bus with an external three-state or open collector
buffers. A buffer can be enabled with the ~ropriate
Codec generated ~x signal or signals. TSx signal
may also be used to activate external zero code suppression lo~ since the occurrence of an active
state of any TSx implies the existence of PCM voice
bits (as opposed to transparent data bits) on the
bus.
The circuit interface with external auto zero drawing
shows a possible connection between VFx and
AUTO leads with the recommended values of
C1 =0.3 ,...F, R1 = 150 Kn, R2=330n, and
R3=470 Kn.
6-27
intJ
2911A-1
• Notice: Stresses above those listed under ''llbsolute Maximum Ratings" may cause permanent damage to the device. This is a stress rating only and
functional operation of the device at these or any
other conditions above those indicated in the operational sections of this specification is not implied. Exposure to absolute maximum rating conditions for
extended periods may affect device reliability.
ABSOLUTE MAXIMUM RATINGS*
Temperature Under Bias ......... -10°C to + 80°C
Storage Temperature .......... -65°C to + 150°C
All Input or Output Voltages with
Respect to Vss ................ -0.3V to + 20V
Vee, Voo, GRDA, and GRDA with Respect
to Vss ....................... - 0.3V to + 20V
Power Dissipation ........................ 1.35W
D.C. CHARACTERISTICS
TA = O°C to + 70°C, Voo = + 12V ±5%, Vee
unless otherwise specified.
=
+5V ±5%, Vss
=
-5V ±5%, GRDA
= OV, GRDD =
OV,
DIGITAL INTERFACE
Symbol
limits
Parameter
Min
Typ(1)
Test Conditions
Unit
Max
IlL
Low Level Input Current
10
/LA
VIN
IIH
High Level Input Current
10
/LA
VIN
VIL
Input Low Voltage
VIH
Input High Voltage
VOL
Output Low Voltage
VOH
Output High Voltage
0.6
< VIL
> VIH
V
2.2
V
0.4
2.4
V
Dx, IOL = 4.0 mA
TSx, IOL = 3.2 mA, open drain
PDN, IOL = 1.6 mA, open drain
V
Dx, IOH
=
15 mA
ANALOG INTERFACE
Symbol
Limits
Parameter
Min
Typ(1)
Max
Unit
Test Conditions
ZAI
Input Impedance when
Sampling, VFx
125
300
500
!l
In series with CAPx to GRDA,
-3.1V < VIN < 3.1V .
ZAO
Small Signal Output
Impedance, VFR
100
180
300
!l
-3.1V
VOR
Output Offset Voltage at VFR
-50
50
mV
Minimum code to DR
VIX
Input Offset Voltage at VFx
-5
5
mV
Minimum positive code
produced at Dx
VOL
Output Low Voltage at AUTO
Vss
(Vss +2)
V
400 K!l to GRDA
VOH
Output High Voltage at AUTO (Vee -2)
Vee
V
400 K!l to GRDA
6-28
< VOUT < 3.1V
inter
2911A-1
D.C. CHARACTERISTICS
TA = O·Cto +70·C, voo = + 12V ±5%, vcc
unless otherwise specified. (Continued)
= +5V ±5%, vss = -5V ±5%, GRDA = av, GRDD = av,
POWER DISSIPATION
Limits
Parameter
Symbol
Typ(1)
Min
Unit
Test Conditions
Max
1000
Standby Current
0.7
1.1
mA
IccO
Standby Current
4.0
7.0
mA
Isso
Standby Current
1.0
2.5
mA
11
16
mA
1001
Operating Current
Icci
Operating Current
13
21
mA
Issl
Operating Current
4.0
6.0
mA
Auto Output = Open
Clock Frequency = 2.048 MHZ
NOTE:
1. Typical values are for T A
= 25°C and nominal power supply values.
A.C. CHARACTERISTICS
TA = O·Cto +70·C, Voo = + 12V ±5%, Vcc
unless otherwise specified.
= +5V ±5%, Vss = -5V ±5%, GRDA = OV, GRDD = OV,
TRANSMISSION
Symbol
Limits
Parameter
Min
SID
aG
aGv
aGT
Typ(1)
Unit
Signal to Total Distortion Ratio. 37
CCITT G.712 Method 2
dB
Signal level 0 dBmO to
-30 dBmO
(Half Channel)
31
dB
Signal level to - 40 dBmO
26
dB
Signal level to -45 dBmO
dB
dB
dB
VFx = 1.02 KHz, sinusoid
-40 dBmO ~ VFx ~ + 3 dBmO
- 50 dBmO ~ VFx < - 40 dBmO
- 55 dBmO ~ VFx < - 50 dBmO
2911A
Gain Tracking Deviation
Half Channel(3)
Reference Level -10 dBmO
aG Variation with Supplies
Half Channel
~G Variation with
Temperature Half Channel
±0.25
±0.60
±1.5
±0.30
±0.70
±1.8
±0.0002 ±0.0004 dB/mY -40 dBmO
±0.0004 ±0.0008 dB/mY - 50 dBmO
±0.001
±0.002
±O.002
±0.005
NIC
Idle Channel Noise
-85
-78
HD
Harmonic Distortion
(2nd or 3rd)
-48
-44
IMD1
IMD2
Test Conditions
Max
Intermodulation Distortion
G.712(7.1)
G.712(7.2)
-45
-50
6-29
dBrC -40 dBmO
dBrC - 50 dBmO
~
~
~
~
VFx
VFx
VFx
VFx
~
+3 dBmO
< - 40 dBmO
~
+3 dBmO
< - 40 dBmO
dBmOp Quiet Code. (Note 2)
dB
VFx = 1.02 KHz, 0 dBmO;
measured at decoder output VFR
dB
CCITTG.712
dBmO Two Tone Method
intJ
2911A-1
A.C. CHARACTERISTICS
TA = O°Cto + 70°C, VDD = +12V ±5%, VCC
unless otherwise specified. (Continued)
=
+5V ±5%, VSS
=
-5V ±5%,GRDA
=
OV,GRDD
=
OV,
GAIN AND DYNAMIC RANGE
Symbol
Parameter
Min
DmW
Digital Milliwatt Response
DmWT
DmWo Variation with
Temperature
DmWs
DmWo Variation
with Supplies
AIR
Input Dynamic Range
AIRT
5.58
Limits
Typ(1)
Unit
5.66
5.78
dBm
-0.001
-0.002
dBrC
±0.07
dB
2.243
VRMS
Input Dynamic Range
vs Temperature
-0.5
mVRMSrC
AIRS
Input Dynamic Range
vsSupplies
±18
mVRMS
AOR
Output Dynamic Range,
VFR
2.20
VRMS
AORT
AOR Variation with
Temperature
-0.5
mVRMSrC
AORS
AOR Variation with Supplies
±18
mVRMS
2.183
2.14
2.213
2.17
Test Conditions
Max
23°C, nominal supplies(4)
Relative to 23°C(4)
Supplies ± 5%(4)
Using D.C. and A.C. tests(5)
23°C, nominal supplies
Relative to 23°C
Supplies ±5%
23°C, Nominal Supplies
Relative to 23°C
Supplies ±5%
SUPPLY REJECTION AND CROSSTALK
Symbol
Parameter
Min
Limits
Typ(1)
Unit
Test Conditions
Max
PSRR1
VDD Power Supply Rejection Ratio
45
dB
decoder alone(6)
PSRR2
Vss Power Supply Rejection Ratio
35
dB
decoder alone(6)
PSRR3
Vcc Power Supply Rejection Ratio
50
dB
decoder alone(6)
PSRR4
VDD Power Supply Rejection Ratio
50
dB
encoder alone(7)
PSRR5
. Vss Power Supply Rejection Ratio
45
dB
encoder alone(7)
PSRR6
Vcc Power Supply Rejection Ratio
50
dB
encoder alone(7)
CTR
Crosstalk Isolation, Receive Side
75
80
dB
(Note 8)
CTT
Crosstalk Isolation, Transmit Side
75
80
dB
(Note 9)
CAPX
Input Sample and Hold Capacitor
1600
2000
2400
pF
NOTES:
1. TYPical values are for TA = 25°C and nominal power supply values.
2. If the external auto zero is used NIC has a typical value of - 76 dSmO.
3. Tested and guaranteed at 23'C, nominal supplies.
4. DR of Device Under Test (D.U.T.) driven with repetitive digital word sequence specified in CCITT recommendation G.711.
Measurement made at VFR output.
5. With the D.C. method the positive and negative clipping levels are measured and AIR is calculated. With the A.C. method
a sinusoidal input signal to VFx is used where AIR is measured directly.
6. D.U.T. decoder; impose 200 mVpp, 1.02 KHz on appropriate supply; measurement made at decoder output; decoder in
idle channel conditions.
7. D.U.T. encoder, impose 200 mVpp, 1.02 KHz on appropriate supply; meaurement made at encoder output; encoder in idle
channel conditions.
8. VFx of D.U.T encoder = 1.02 KHz, 0 dSmO. Decoder under quiet channel conditions; measurements made at decoder
output.
9. VFx = 0 Vrms. Decoder = 1.02 KHz, 0 dSmO. Encoder under quiet channel conditions; measurement made at encoder
output.
6-30
2911A·1
4,G
41111 •
•3
••7
INPUT
~~~~----~~------------------~~~~::L
-.7
-I
-1.8
-3
270158-11
Figure 13. Tracking Deviation (~G) (Half Channel)
-.Jl
;u~_______a~"~~~1"~C~______
Cd_
270158-12
Figure 14. Signal,to Total Distortion Ratio (Half Channel)
6-31
intJ
2911A-1
A.C. CHARACTERISTICS-TIMING SPECIFICATION(1)
= +5V ±5%, vaa = -5V
TA = O'Cto +70·C, voo = +12V ±5%, vcc
unless otherwise specified.
±5%, GRDA
=
OV, GRDD
=
OV,
CLOCK SECTION
Symbol
LImits
Parameter
Min
tCY
Clock Period
t r, tf
Clock Rise and Fall Time
tCLK
Clock Pulse Width
215
tcDC
Clock Duty Cycle (loLK + loy)
45
Max
Unit
Comments
ns
CLKx, CLKR (2.048 MHz systems), CLKc
ns
CLKx, CLKR, CLKc
ns
CLKx, CLKR, CLKc
%
CLKx, CLKR
485
0
30
55
TRANSMIT SECTION
Symbol
LImits
Parameter
Min
tVFx
Analog Input Conversion
20
tozx
Data Enabled on TS Entry
50
tOHX
Data Hold Time
80
tHZX
Data Float on TS Exit
75
tSON
Timeslot X to Enable
30
tsOFF
Timeslot X to Disable
tFso
Frame Sync Delay
Max
Unit
Timeslot
180
Comments
From Leading Edge of Transmit Timeslot(2)
ns
0< CLOAO < 100 pF
230
ns
0< CLOAO < 100 pF
245
ns
CLOAO
185
ns
0< CLOAO < 100 pF
70
225
ns
CLOAO
15
150
ns
=0
=0
RECEIVE AND CONTROL SECTIONS
Symbol
Parameter
LImits
Min
Max
e1j,e
e1j,e
Unit
Comments
Timeslot
From Leading Edge of the Channel Timeslot
tvFR
Analog Output Update
tOSR
Receive Data Setup
20
ns
tOHR
Receive Data Hold
60
ns
tFSO
Frame Sync Delay
15
tosc
Control Data Setup
115
ns
Microcomputer Mode Only
tDHC
Control Data Hold
115
ns
Microcomputer Mode Only
150
ns
NOTES:
1. All timing parameters referenced to 1.5V. except tHzx and tsOFF. which reference a high impedance state.
2. The 20 timeslot minimum insures that the complete AID conversion will take place under any combination of receive
interrupt or asynchronous operation of the Codec. Consult an Intel applications specialist or Intel Corporation for applications information which would allow operation with less than 20 timeslots.
6-32
2911A-1
TIMING WAVEFORMS(1)
TRANSMIT TIMING
270158-13
RECEIVE TIMING
270158-14
CONTROL TIMING
270158-15
NOTE:
1. All timing parameters referenced to 1.5V, except tHzx and tSOFF which reference a high impedance state.
6-33
intJ
2912A
PCM TRANSMITIRECEIVE FILTER
Consumption:
• 60LowmWPower
Typical without Power
•
•
•
Gain in Both Directions
• Adjustable
Fully Compatible with the Industry
• Standard
Intel 2912
Amplifiers
80 mW Typical with Power Amplifiers
0.5 mW Typical Standby
Low Idle Channel Noise:
2 dBrncO Typical, Receive
6 dBrncO Typical, Transmit
Excellent Power Supply Rejection:
40 dB Typical on VCC @ 50 KHz
30 dB Typical on VBB @ 50 KHz
Transmit Filter Rejects Low
Frequency Noise:
23 dB @ 60 Hz
25 dB @ 50 Hz
50 dB @ 16-2/3 Hz
•
•
•
•
•
D3/D4 and CCITT G712 Compatible
Common Mode Op Amp Input Rejection
75 dB Typical
Direct Interface to the Intel
2910Al2911A PCM Codecs Including
Stand-By Power Down Mode
Direct Interface with Transformer or
Electronic Hybrids
Fabricated with Reliable N-Channel
MOS Process
The Intel 2912A 2nd generation PCM line filter is a fully integrated monolithic device containing the two filters
of a PCM line or trunk termination. It has improved key parameters of power consumption, idle channel noise,
and power supply rejection. A single part exceeds both AT&T" 03/04 and CCITT transmission specs, exceeds digital Class 5 central office switching system stringent specifications, and is fully compatible with the
2912. The primary application for the 2912A is in telephone systems for transmission, switching, or remote
concentration.
An advanced version of the switched capacitor technique used for the 2912 is used to implement the transmit
and receive passband filter sections of the 2912A. The device is fabricated using Intel's reliable two layer
polysilicon gate NMOS technology. (See Intel Reliability Report RR-24 on the 2910A, 2911 A, and 2912.) The
combination of advances in the switched capacitor techniques first used on the 2912 and the NMOS technology results in a monolithic 2912A filter which is packaged in a standard 16-pin DIP.
o
0
Pin Names
~h
0\1FJCI+
YFkl~
os.
YFxo@
I
VFxl~
~G
(!) PWRO'
0PWRo-
VFAO
VFAI@
I
'DN
eLf(
PWRI
VfAI
@
@
Vee
270159-2
ClKO@
PWIU Vf"o
OPINNUMBER
Yea
Vee GROO GADA
00 00
@ @
VFXI+. VFxl
GSx
-VFxO
VFRI
VFRO
PWRI
PWRO+,PWRO
CLK
CLKO
PDN
Vee
Vaa
GRDD
GRDA
Analog Inputs
Gain Control
Analog Output
Analog Input
Analog Output
Driver Input
Driver Output
Clock Input
Clock Selection
Power Down
Power (+5V)
Power (-5V)
Digital Ground
Analog Ground
Figure 2. Pin Configuration
270159-1
Figure 1. Block Diagram
'AT&T is a registered trademark of American Telephone and Telegraph Corporation.
6-34
September 1988
Order Number: 270159·002
intJ
2912A
Table 1. Pin Description
Symbol
VFxl +
Pin No.
1
Function
Input
VFxl -
2
Input
GSx
3
Output
VFRO
4
Output
PWRI
5
Input
PWRO+
6
Output
PWRO-
7
Output
VBB
Vcc
VFRI
8
9
10
Power
Power
Input
GRDD
CLK(1)
11
12
Ground
Input
PDN
13
Input
CLKO(1)
14
Input
GRDA
15
Ground
VFxO
16
Output
Description
Analog input of the transmit filter. The VFxl + signal comes
from the 2 to 4 wire hybrid in the case of a 2 wire line and goes
through the frequency rejection and the antialiasing filters
before being sent to the Codec for encoding.
Inverting input of the gain adjustment operational amplifier on
the transmit filter.
Output of the ~in adjustment operational amplifier on the
transmit filter. sed for gain setting of the transmit filter.
Anal9 output of the receive filter. This output provides a
direct Interface to electronic hybrids. For a transformer hybrid
application, VFRO is tied to PRWI and a dual balanced output
is provided on pins PWRO + and PWRO -.
Input to the power driver amplifiers on the receive side for
interface to transformer hybrids. High impedance input. When
tied to VBB, the power amplifiers are powered down.
Non·inverting side of the power amplifiers. Power driver output
capable of directly driving transformer hybrids.
Inverting side of the power amplifiers. Power driver output
capable of directly driVing transformer hybrids.
-5V ±5% referenced to'GRDA
+ 5V ± 5% referenced to GRDA
Analog input of the receive filter, interface to the Codec
analog output for PCM applications. The receive filter provides
Sinx
the correction needed for sample and hold type Codec
x
outputs to give unity gain. The input voltage ran~e is directly
compatible with the Intel 2910A and 2911A Co ecs.
Digital ground return for internal clock generator.
Clock input. Three clock frequencies can be used: 1.536 MHz,
1.544 MHz or 2.048 MHz; pin 14, CLKO, has to be strapped
. accordingly. High impedance input, TTL voltage levels.
Control input for the stand-by power down mode. An internal
pull up to + 5V is provided for interface to the Intel 291 OA and
2911 A PDN outputs. TTL voltage levels.
Clock (pin 12, CLK) frequency selection. If tied to VcrB, CLK
should be 1.536 MHz. If tied to Ground, CLK shoul be
1.544 MHz. If tied to Vee, CLK should be 2.048 MHz.
Analog return common to the transmit and receive analog
circuits. Not connected to GRDD internally.
Analog output of the transmit filter. The output voltage range
is directly compatible with the Intel 2910A and 2911A Codecs.
NOTE:
1. The three clock frequencies are directly compatible with the Intel 2910A and 2911A Codecs. The following table should
be observed in selecting the clock frequency.
CodecClock
Clock Bits/Frame
ClK, Pin 12
ClKO, Pin 14
1.536 MHz
192
1.536 MHz
VBB (-5V)
1.544 MHz
193
1.544 MHz
GRDD
2.048 MHz
256
2.048 MHz
Vcc(+5V)
6-35
2912A
alog conversion. Gain adjustment is provided in the
receive and transmit directions.
FUNCTIONAL DESCRIPTION
The 2912A provides the transmit and receive filters
found on the analog termination of a PCM line or
trunk. The transmit filter performs the anti-aliasing
function needed for an 8 KHz sampling system, and
the 50/60 Hz rejection. The receive filter has a low
pass transfer characteristic and also provides the
Sinx/x correction necessary to interface the Intel
2910A (,... Law) and 2911A (A Law) Codecs which
have a non-return-to-zero output of the digital to an"
r
A stand-by, power down mode is included in the
2912A and can be directly controlled by the 2910Al
2911 A Codecs.
The 2912A can interface directly with a transformer
hybrid (2 to 4 wire conversion) or with electronic hybrids; in the latter case the power dissipation is reduced by powering down the output amplifier provided on the 2912A.
PABX I C.O. SWITCHING SYSTEM I CHANNEL BANK
I
I
I
--,
OFF·HOOIC/ROTARY DIAl. PULSES
HYBRID
TELEPHONE SET
I
RINGING
I
I
L
RING CONTROL
PCM
HIGHWAYS
_..J
270159-3
Figure 3. Typical LIne Termination
FILTER OPERATION
aUA
Transmit Filter Input Stage
The input stage provides gain adjustment in the
pass-band. The input operational amplifier has a
common mode range of ± 2.2 volts, a DC offset of
less than 25 mY, a voltage gain greater than. 3000
and a unity gain bandwidth of 1 MHz. It can be connected to provide a gain of 20 dB without degrading
the noise performance of the filter. The load impedance connected to the amplifier output (GSx) must
be greater than 10K n in parallel with 25 pF. The
input signal on lead VFxl + can be either AC or DC
coupled. The input Op Amp can also be used in the
inverting mode or differential amplifier mode. The remaining portion of the transmit filter provides a gain
of + 3 dB in the pass band.
..
VFx l+
t...
VF)(I~
.,
.,
GAIN = 1 •
Gs,.
270159-4
Figure 4. Transmit Filter Gain Adjustment
6-36
.,
.!!!
infef
2912A
load resistance of 600n to the amplifier in the
bridged configuration. A typical connection of the
output driver amplifiers is shown in Figure 6. These
amplifiers can also be used with loads connected to
ground.
Receive Filter Output
The VFAO lead is capable of driving high impedance
electronic hybrids. The gain of the receive section
from VFAI to VFAO is:
(~)
When the power amplifier is not needed it should be
deactivated to save power. This is accomplished by
tying the PWRI pin to Vss before the device is powered up.
Sin(~)
8000
which when multiplied by the output response of the
Intel 2910A and 2911A Godecs results in a 0 dB gain
in the pass band. The filter gain can be adjusted
downward by a resistor voltage divider connected as
shown in Figure 5. The total resistive load RLA on
VFAO should not be less than 10K n.
Power Down Mode
Pin 13, PDN, provides the power down control.
When the signal on this lead is brought high, the
2912A goes into a standby, power down mode. Power dissipation is reduced to 0.5 mW. In the stand-by
mode, all outputs go into a high impedance state.
This feature allows multiple 2912As to drive the
same analog bus on a time-shared basis .
.....
When power is restored, the settling time of the
2912A is typically 15 ms.
R,
The PDN interface is directly compatible with the In·
tel 2910A and 2911A PDN outputs. Only one command from the common control is then necessary to
power down both the Godec and the Filters of the
line or trunk interface.
.
z· LOAD
R2
270159-5
VFAO
Roo
It....
Figure 5. Receive Filter Output Gain Adjustment
R.
PWRI
Receive Filter Output Driver Amplifier
Stage
R,
A balanced power amplifier is provided in order to
drive low-impedance loads in a bridged configuration. The receive filter output VFRO is connected
through gain setting resistors R1 and R2 to the amplifier input PWRI. The input voltage range on PWRI
is ± 3.2 volts and the gain is 6 dB for a bridged output.
Rs
-=-
PWRO+
PWRO-
With a 600n load connected between PWRO + and
PWRO -, the maximum voltage swing across the
load is ± 5.0 volts. The series combination of Rs and
the hybrid transformer must present a minimum A.G.
270159-6
Figure 6. Typical Connection of
Output Driver Amplifier
6·37
2912A
• Notice: Stresses above those listed under ':Absolute Maximum Ratings" may cause permanent damage to the device. This is a stress rating only and
functional operation of the device at these or any
other conditions above those indicated in the operational sections of this specification is not implied. Exposure to absolute maximum rating conditions for
extended periods may affect device reliability.
ABSOLUTE MAXIMUM RATINGS'"
Storage Temperature .......... - 65'C to
+ 80'C
+ 150'C
Supply Voltage with Respect
to Vee ...................... - 0.3V to
+ 14.0V
All Input and Output Voltages with
Respect to Vee .............. -0.3V to
+ 14.0V
Temperature Under Bias ......... -1 O'C to
All Output Currents ..................... ± 50 mA
Power Dissipation ........................ 1 Watt
D.C. CHARACTERISTICS T A = O'C to
GRDD = OV; unless otherwise specified
+ 70'C; Vee =
5V ± 5%; Vee
= -
5V ± 5%; GRDA
=
OV;
DIGITAL INTERFACE (CLK, CLKO, and PDN Pins)
Symbol
Parameter
Min
Typ(1)
Max
Unit
Test Conditions
'LIe
Input Load Current, CLK
10
p.A
VIN
'LIC
Input Load Current, CLKO
10
p.A
VIN
'LIP
Input Load Current, PDN
-100
p.A
VIN
VIL
Input Low Voltage (except CLKO)
0.8
V
VIH
Input High Voltage (except CLKO)
VILO
Input Low Voltage, CLKO
2.0
VIIO
Input Intermediate Voltage, CLKO
VIHO
Input High Voltage, CLKO
Vee- 0.5
GRDD to Vee
Vee to Vee
GRDD to Vee
V
Vee
GRDD-0.5
=
=
=
Vee+ O.5
V
0.8
V
Vee
V
POWER DISSIPATION
Symbol
Typ(1)
Max
Unit
Vee Standby Current
50
100
p.A
Parameter
Min
Test Conditions
leeo
Vee Standby Current
50
100
p.A
lee1
Vee Operating Current, Power
Amplifiers Inactive
6
10
mA
= VIH Min
PDN = VIH Min
PWRI = Vee(2)
lee1
Vee Operating Current, Power
Amplifiers Inactive
6
10
mA
PWRI
lee2
Vee Operating Current
8
14
mA
lee2
Vee Operating Current
8
14
mA
leeo
NOTES:
1. Typical values are for TA = 25'C and nominal power supply values.
2. To place the power amplifiers in the inactive mode PWRI must be tied to Vee prior to power-up.
6-38
PDN
=
Vee(2)
inter
2912A
D.C. CHARACTERISTICS TA = O°Cto +70°C;Vcc
GRDD = OV; unless otherwise specified (Continued)
=
5V ±5%;Vss
=
-5V ±5%;GRDA
=
OV;
ANALOG INTERFACE, TRANSMIT FILTER INPUT STAGE
Symbol
Parameter
Isxl
Input Leakage Current, VFxl + , VFxl-
Rixi
Input Resistance, VFxl + , VFxl-
VOSXI
Input Offset Voltage, VFxl + , VFxl-
Min Typ(1) Max Unit
10
60
AVOL
DC Open Loop Voltage Gain, GSx
3000
c
Open Loop Unity Gain Bandwidth, GSx
VOXI
Output Voltage Swing, GSx
Load Capacitance, GSx
RLXI
Minimum Load Resistance, GSx
< VIN < 2.2V
M!l
25 mV
CMRR Common Mode Rejection, VFxl + , VFxl-
CLXI
Test Conditions
100 nA - 2.2V
dB -2.2V < VIN < 2.2V,
o dBmO == 1.1 VRMS, Input at VFxl-
75
1
MHz
±2.5
V
25
10
RL~10K!l
pF
K!l MinimumRL
ANALOG INTERFACE, TRANSMIT FILTER (See Figure 9)
Symbol
Parameter
Min
Typ(1)
Max
Unit
20
35
!l
100
mV
VFxl + Connected to GRDA,
Input Op Amp at Unity Gain
Test Conditions
Rox
Output Resistance, VFxO
Vosx
Output DC Offset, VFxO
PSRR1
Power Supply Rejection of Vcc at
1 KHz, VFxO
30
40
dB
Note 2
PSRR2
Power Supply Rejection of Vss at
1 KHz, VFxO
25
30
dB
Note 2
CLX
Load Capacitance, VFxO
RLX
Minimum Load Resistance, VFxO
VOX1
. VOX2
25
pF
2.7
K!l
Output Voltage Swing, 1 KHz, VFxO
±3.2
V
RL ~ 10 K!l or with 2910A
or2911A
Output Voltage Swing, 1 KHz, VFxO
±2.5
V
RL ~ 2.7 K!l
NOTES:
1. Typical values for TA = 25'C and nominal power supply values.
2. PSRR1.2 include op amp in transmit section.
6-39
MinimumRL
inter
2912A
D.C. CHARACTERISTICS TA = O·C to + 70·C; VCC = 5V ± 5%; VBB = -'-- 5V .± 5%; GRDA= OV;
GRDD = OV; unless otherwise specified (Continued)
ANALOG INTERFACE, RECEIVE FILTER (See Figure 10)
Symbol
IBR
Parameter
Min
'Typ(1)
Max
Unit
3
,..,A
Input Leakage Current, VFRI
1
Input Resistance, VFRI
ROR
Output Resistance, VFRO
VOSR
Output DC Offset VFRO
PSRR3
Power Supply Rejection of V CC at
1 KHz, VFRO
30
45
dB
PSRR4
Power Supply Rejection of VBB at
1 KHz, VFRO
30
35
dB
Load Capacitance, VFRO
RLR
Minimum Load Resistance, VFRO
VOR
Output Voltage Swing, VFRO
< VIN < 3.2V
. Mn
RIR
CLR
Test Conditions
- 3.2V
100
0.
100
mV
VFRI Connected to GRDA
pF
25
10
Kn
Minimum RL
±3.2
V
RL = 10 Kn
ANALOG INTERFACE, RECEIVE FILTER DRIVER AMPLIFIER STAGE
Symbol
Parameter
IBRA
Input Leakage Current, PWRI
RIRA
Input Resistance, PWRI
RORA
Output Resistance, PWRO + , PWRO-
VOSRA
Output DC Offset, PWRO + , PWRO-
CLRA
Load Capacitance, PWRO + , PWRO-
VORA1
Output Voltage Swing Across RL,
PWRO + , PWRO - Single Ended
Connection
VORA2
Differential Output Voltage Swing,
PWRO+, PWROBalanced Output Connection
NOTE:
1. Typical values are for T A
Min Typ(1) Max Unit
3
10
,..,A
< VIN < 3.2V
Mn
1
±3.2
0.
< 3.0V
mV PWRI Connected to GRDA
100
pF
V
V
±2.5
V
±6.4
V
±5.8
V
±5.0
V
= 25'C and nominal power supply values.
IIOUTI < 10 mA
-3.0V < VOUT
50
±2.9
6-40
Test Conditions
-3.2V
RL = 10 Kn RL Connected
toGRDA
RL = 6000.
fo ~ 200 Hz
RL = 3000.
RL = 20 Kn RL Connected
between PWRO +
RL = 12000.
andPWRO RL = 6000. fo ~ 200 Hz
2912A
A.C. CHARACTERISTICS TA = O·Cto +70·C; vee = 5V ±5%; VSB = -5V ±5%; GRDA = OV;
GRDD = OV; unless otherwise specified
Clock Input Frequency: ClK = 1.536 MHz ± 0.1 %; ClKO = VILO (Tied to VSS)
ClK
ClK
= 2.048 MHz ±0.1 %; ClKO = VIHO (Tied to Vee)
= 1.544 MHz ± 0.1 %; ClKO = VIIO (Tied to GRDD)
TRANSMIT FILTER TRANSFER CHARACTERISTICS
(See Transmit Filter Transmit Characteristics, Figure 7)
Parameter
iSymbol
~RX
Min
Typ(1)
Max
Unit
Test Conditions
o dBmO Input Signal
Gain Relative to Gain at 1 KHz
-56
-50
dB
Gain Setting Op Amp
50 Hz
-25
dB
Unity Gain
60Hz
-23
dB
16.67 Hz
-1.8
-0.125
dB
o dBmO Signal ==
300 Hz to 3000 Hz
-0.125
0.125
dB
Input at VFxl-
3300 Hz
-0.35
0.03
dB
3400 Hz
-0.7
-0.1
dB
o dBmO Signal ==
4000 Hz
-14
dB
Output at VFxO
4600 Hz and Above
-32
dB
3.1
dB
200 Hz
~AX
Absolute Passband Gain at 1 KHz,
VFxO
~AXT
Gain Variation with Temperature at
1 KHz
~AXS
Gain Variation with Supplies at 1 KHz
PTRT
Cross Talk, Receive to Transmit,
Measured at VFxO
VFxO
20 log
VFR
2.9
3.0
1.1 VRMS
1.6 VRMS
RL = 00(3)
0.0002 0.002
dBI"C
o dBmO Signal level
0.07
dBN
o dBmO Signal level,
0.01
Supplies ±5%
-75
-65
dB
-----0
VFRI = 1.6 VRMS, 1 KHz
Input, VFxl +, VFxlConnected to GSx, GSx
Connected through 10 KO to
GRDA
Nex1
Total C Message Noise at Output, VFxO
6
11
dBrncO Gain Setting Op Amp at
(Note 2) Unity Gain
Nex2
Total C Message Noise at Output, VFxO
9
13
dBrncO Gain Setting Op Amp at
(Note 2) 20dB Gain
Dox
Differential Envelope Delay, VFxO
1 KHz to 2.6 KHz
60
/kS
DAX
Absolute Delay at 1 KHz, VFxO
110
/ks
DPX1
Single Frequency Distortion Products
-48
dB
o dBmO Input Signal at 1 KHz
DPX2
Single Frequency Distortion Products at
Maximum Signal level of + 3 dBmO at
VFxO
-45
dB
0.16 VRMS 1 KHz Input
Signal at VFxl +; Gain
Setting Op Amp at 20 dB
Gain. The + 3 dBmO Signal
at VFxO is 2.26 VRMS
6-41
2912A
A.C. CHARACTERISTICS TA = O·Cto +70·C;Vee = 5V ±5%;Vss = -5V ±5%;GRDA = OV;
GRDD = OV; unless otherwise specified (Continued)
Clock Input Frequency: CLK =1.536 MHz ± 0.1 %; CLKO = VILa (Tied to Vss)
CLK = 1.544 MHz ± 0.1 %; CLKO = Vila (Tied to GRDD)
CLK = 2.048 MHz ± 0.1 %; CLKO = VIHO (Tied to Vee>
RECEIVE FILTER TRANSFER CHARACTERISTICS (See Receive Filter Transfer Characteristics, Figure 8)
~ymbol
~RR
Parameter
Min
Typ(1) Max
Unit
o dBmO Input Signal
Gain Relative to Gain at 1 KHz with
Sinx/x Correction of 2910A or 2911A
Below 200 Hz
200Hz
Test Conditions
0.125
dB
-0.5
0.125
dB
300 Hz to 3000 Hz
-0.125
0.125
dB
3300 Hz
-0.35
0.03
dB
3400 Hz
-0.7
-0.1
dB
-14
dB
-30
dB
+0.1
dB
4000 Hz
4600 Hz and Above
odBmO Sign.al ==
1.6 VRMS X
. ( 7Tf )
Sin 8000
Input at VFRI
(8;~0)
~AR
~ART
Absolute Passband Gain at 1 KHz, VFRO -0.1
~ARS
Gain Variation with Supplies at 1 KHz
0.01
PTTR
Cross Talk, Transmit to Receive,
Measured at VFRO;
20 log (VFRO/VFXO)
NCR
Total C Message Noise at Output, VFRO
DOR
Differential Envelope Delay, VFRO,
1 KHz to 2.6 KHz
DAR
Absolute Delay at 1 KHz, VFRO
110
JLs
DPR1
Single Frequency Distortion Products
-48
dB
o dBmO Input Signal at 1 KHz
PPR2
Single Frequency Distortion Products at
Maximum Signal Level of + 3 dBmO at
VFRO
-45
dB
+ 3 dBmO Signal Level of
2.26 VRMS, 1 KHz Input at
VFRI
Gain Variation with Temperature at
1 KHz
0
RL = 00(3,4)
0.0002 0.002 dBI"C
o dBmO Signal Level
0.07
dBN
o dBmO Signal Level,
-70
-60
dB
2
6
Supplies ±5%
100
VFxl = 1.1 VRMS, 1 KHz
Output, VFRI Connected to
GRDA
dBrncO VFRO Output or PWRO + and
(Note 2) PWRO - Connected with
Unity Gain
JLs
NOTES:
1. Typical Values are for TA = 25°e and nominal power supply values.
2. A noise measurement of 12 dSrnc into a 6000 load at the 2912A device is equivalent to 6 dSrncO.
3. For gain under load refer to output resistance specs and perform gain calculation.
4. Output is non-inverting.
6-42
2912A
TRANSFER CHARACTERISTICS
+~~;~:B
+1.0dB
+0.125 dB
3000Hz
-0.125dB
20~~ «
EXPANDED
SCALE
«( «
«"
("""
'::::~3~~g~:
-0.125 dB
3000 Hz
OdB
TYPICAL
+0.03 dB
/'3300Hz
-0.70dB
3400Hz
-O.35dB
3300 Hz
-1.0dB
:/r
OdB
-10dB
-14dB
4000 Hz
-20dB
TYPICAL
-30 dB
-4-0 dB
-50 dB -+'""""~"
-SO dB
10Hz
1 KHz
100Hz
10KHz
270159-7
Figure 7. Transmit Filter
6-43
inter
2912A
~
,,/~.
,/
Typical Filter (1)
Transfer Function
+1.0 dB
«?et ««c/cecc,. «
",/'
\
+0.12SdB +0.12SdB
200 Hz
300 Hz
EXPANDEO
SCALE
...
,/~-"\
,
,,
+2.0dB
,< «, ,. . t<.
:::
-O.SOdB
200Hz
I
I
, ... '"
",-'
«
«
«
I
+0.12SdB
+0.03 dB
3000 Hz ~300 Hz
"
< «
OdB
,
«
«
0/
~
/
«!!
_~
-0.12SdB
3000Hz
Typical
-0.10dB
3400Hz
-0.3SdS
3300Hz
-0.70dS
3400Hz
-1.0 dB
OdS
-10dS
Typlcal---------~
-14dB
4000Hz
Fllt,r Transfer Function (2)
When multiplied by
-20dB
r. .In ~~o)J
J
L
-30dS
(8000)
which Is the SI~X output
-30dS
4600 Hz
response of the INTEL
2910A and 2911 A COaECS.
Where X ==
-40dS
8~O •
-SOdB
-60dB
10Hz
1 KHz
100Hz
10KHz
270159-8
Figure 8. Receive Filter
NOTES:
1. Typical Transfer Function of the Receive Filter as a Separate Component.
2. Typical Transfer Function of the Receive Filter Driven by the Sample and Hold Output of the Intel 2910A and 2911A
CODECS. The Combined Filter/CODEC Response Meets the Stated Specifications.
6·44
intJ
2912A
POWER SUPPLY REJECTION TYPICAL VALUES OVER 3 RANGES
..
.. -,
All VFXO wilh VFxl Connected to GRDA;
Input Op Amp at Unity Gain
vee
vee
vee
OIl
3D
I-
v••
VII.
~
2D ~
..§
I
10
270159-9
Figure 9. Transmit Filter
..
.
All VFRO with VFRI Connected to GRDA
vee
vee
OIl
-
~
VIla
3D
-
2D
r
v••
~
.g
.i
:I
10
270159-10
Figure 10. Receive Filter
6-45
2913 AND 2914
COMBINED SINGLE-CHIP PCM CODEC AND FILTER
•
2913 Synchronous Clocks Only, 300 Mil
Package
•
2914 Asynchronous Clocks, 8th Bit
Signaling, Loop Back Test Capability
•
•
•
AT&T 03/04 and CCITT Compatible for
Synchronous Operation
Pin Selectable ,..,·Law or A·Law
Operation
•
•
•
•
•
•
Two Timing Modes:
- Fixed Data Rate Mode
1.536, 1.544, or 2.048 MHz
- Variable Data Rate Mode
64 KHz 2.048 MHz
Exceptional Analog Performance
28·Pln Plastic Leaded Chip Carrier
(PLCC) for Higher Integration
Low Power HM08-E Technology:
- 5 mW Typical Power Down
-140 mW Typical Operating
Fully Differential Architecture Enhances
Noise Immunity
On·Chip Auto Zero, Sample and Hold,
and Precision Voltage References
Direct Interface with Transformer or
Electronic Hybrids
The Intel 2913 and 2914 are fully integrated PCM codecs with transmit/receive filters fabricated in a highly
reliable and proven N-channel HMOS silicon gate technology (HMOS-E). These devices provide the functions
that were formerly provided by two complex chips (2910A or 2911A and 2912A). Besides the higher level of
integration, the performance of the 2913 and 2914 is superior to that of the separate devices.
The primary applications for the 2913 and 2914 are in telephone systems:
• Switching-Digital PBX's and Central Office Switching Systems
• Transmission-D3/D4 Type Channel Banks and Subscriber Carrier Systems
• Subscriber Instruments-Digital Handsets and Office Workstations
The wide dynamic range of the 2913 and 2914 (78 dB) and the minimal conversion time make them ideal
products for other applications such as:
• Secure Communications Systems
• Voice Store and Forward
• Satellite Earth Stations
• Digital Echo Cancellers
~
v••
Vee
Yeo
PWFlO+
OS,
PWRO+
Gs,
PWRO-
YFI(I-
PWAO-
Y'.I -
GS.
YF.I+
VFxl +
PON
GADA
V..
os.
PiiN
GRDA
CLKSEL
ASEL
LOOP
SIG.IABEL
SIc,a..
TixlDCLKx
O.
FSo
GADO
TSIC/DCLK.
D,
FS,
CLKx
I
I
< <
+ •
8
Jl
Ne
YFxl-
os.
YFxl+
Ne
CLKSEL
DCLK..
0
Ne
0,
DClK..
FS,
O.
Fl.
elK.
GRDD
elK"
PON
NC
-.
SlGx/ASEL
CLKSEL
TSxIOCLKx
LOOP
Ne
OCLKo
0,
DR
NC
210629-1
210629-2
rlff~
210629-3
Figure 1. Pin Configurations
6-46
October 1987
Order Number: 210629-003
TRANSMIT
SECTION
~..
VFx l
I
:1 ~ lii~
GSx ..
I
REFERENCE
AUTO
ZERO
1--1 COMPARATOR I-
I
L...--
iil
.....
!!!
0
::::=;::<:=:=:::-:::::-::::::::-::::.=::;=:::::-:"::.-;: ::::.:::
RECEIVE
n
~
SECTION
C
iii'
cc
DI
3
ANALOG
TO
DIGITAL
CONTROL
lOGIC
PWRO-~-1r----
I..
OUTPUT
IIEGISTER
'I..
I_
I ..
SlGxlASEl
CLKX
...
CD
0"·'·,·,·,·,·;"~,,,,·,···,·,·,·,·,,··,·,·,·,·,·,.'.:"""""'''''''''':''''''''=''''''''
(0)
II)
~
CONTROL
SECTION
hR
_____.....K
FSx
N
:::::-:::::-:-:::::::.;:::::::::-::::::;:::.::::::::::::::::~:::::::::::::::.;;::.;:::::.:::
Q.
CONTROL
lOGlIC
~
GSA
PWRO+4--1t-lr
~
III _ .TSx/OCLKx
f
,
C'::7:-:::
SUCCESSIVE
APPROXIMAnoN
REGISTER
• ..
c
C7l
.".
....
------......,
-Ox
SAMPLE
AND HOLD
ANOOAC
:!!
cc
~
l
I
BUFFER
~lOOP
...
~
]II:::oJ
~
SAMPLE
AND HOLD
AND DAC
REFERENCE
t::::t:==SEl
N
CD
I
I-
DIGITAL
TO
ANALOG
CONTROL
lOGIC
•
I+-
t
INPUT
REGISTER
...
DR
I"
DClKR
L-------1r--.-SlGR
"@
aID
IiiiiI
t t t t
Vee
Va.
GROO
GROA
If'"
c:::o
FlIR
~
cue,.
c:::o
210629-4
~
~
~
~
inter
2913 and 2914
Table 1. Pin Names
Name
Description
Power (-SV)
Name
Description
Power Amplifier Outputs
GSx
VFxl-, VFxl +
Transmit Gain Control
GSR
PDN
Receive Gain Control
GRDA
Analog Ground
Power Down Select
NC
No Connect
CLKSEL
Master Clock Frequency
Select
SIGx
Tral1smit Signaling Input
VBB
PWRO +, PWRO-
Analog Inputs
LOOP
Analog Loop Back
ASEL
/L- or A-Law Select
SIGR
Receive Signaling Output
TSx
Timeslot Strobe/Buffer Enable
DCLKR
Receive Variable Data Clock
DCLKx
Transmit Variable Data Clock
DR
FSR
Receive PCM Input
Dx
Transmit PCM Output
Receive Frame
Synchronization Clock
FSx
Transmit Frame
Synchronization Clock
GRDD
Digital Ground
CLKx
Transmit Master Clock
Vee
Power (+SV)
CLKR
Receive Master Clock (2914
Only, Internally Connected
toCLKx on 2913)
Table 2 Pin Description
Symbol
Function
VBB
Most negative supply; input voltage is - 5V ± 5 %.
PWRO+
Non-inverting output of power amplifier. Can drive transformer hybrids or high impedance
loads directly in either a differential or Single ended configuration.
PWRO-
Inverting output of power amplifier. Functionally identical and complementary to PWRO + .
GSR
Input to the gain setting network on the output power amplifier. Transmission level can be
adjusted over a 12 dB range depending on the voltage at GSR.
PDN
Power down select. When PDN is TTL high, the device is actiVe. When low, the device is
powered down.
CLKSEL
Input which
CLKSEL =
CLKSEL =
CLKSEL =
LOOP
Analog loopback. When this pin is TTL high, the analog output (PWRO + ) is internally
connected to the analog input (VFxl + ), GSR is internally connected to PWRO -, and
VFxl- is internally connected to GSx. A 0 dBmO digital Signal input at DR is returned as a
+ 3 dBmO digital signal output at Dx.
SIGR
Signaling bit output, receive .channel. In fixed data rate mode, SIGR outputs the logical
state of the eighth bit of the PCM word in the most recent signaling frame.
DCLKR
Selects the fixed or variable data rate mode. When DCLKR is connected to VBB, the fixed
data rate mode is selected. When DCLKR is not connected to VBB, the device operates in
the variable data rate mode. In this mode DCLKR becomes the receive data clock which
operates at TTL levels from 64 Kb to 2.048 Mb data rates.
L
must be pinstrapped to reflect the master clock frequency at CLKx, CLKR.
VBB ....................... 2.048 MHz
GRDD .................... 1.544 MHz
Vee ....................... 1.536 MHz
6-48
2913 and 2914
Table 2. Pin Description (Continued)
Symbol
Function
DR
Receive PCM input. PCM d,ata is clocked in on this lead on eight consecutive negative
transitions of the receive data clock; CLKR in- the fixed data rate mode and DCLKR in
variable data rate mode.
'
FSR
8 KHz frame synchronization clock inputltimeslot enable;receive channel. A multi-function
input which in fixed data rate mode distinguishes between signaling arid non-signaling
frames by means of a double or single wide pulse respectively. In variable data rate mode
this signal must remain high for the entire length of the timeslot. The receive channel
enters the standby state whenever FSR is TTL low for 300 milliseconds.
GRDD
Digital ground for all internal logic circuits. Not internally tied to GRDA.
CLKR
Receive master and data clock for the fixed data rate mode; receive master clock only in
variable data rate mode.
CLKx
........
FSx
Transmit master and data clock for the fixed data rate mode; transmit master clock only in
variable data rate mode.
•
8 KHz frame synchronization clock inputltimeslot enable, transmit channel. Operates
'.
'
independently but in an analogous manner to FSR.
The transmit channel enters the standby state whenever FSx is TTL low for 300
milliseconds.
Dx
Transmit PCM output. PCM data is clocked out on this lead on eight consecutive positive
transitions of the transmit data clock: CLKx. in fixed data rate mode and DCLKx in variable
data rate mode.
TSx/DCLKx
Transmit channel timeslot strobe (output) or data clock (input) for the transmit channel. In
fixed data rate mode, this pin is an open drain output designed to be used as an enable
signal for a three-state buffer. In variable data rate mode, this pin becomes the transmit
data clock which operates at TTL levels from 64 Kb to 2.048 Mb data rates.
SIGx/ASEL
A dual purpose pin. When connected to VBB. A-law operation is selected. When it is not
connected to VBB this pin is a TTL level input for signaling operation. This input is
transmitted as the eighth bit of the PCM word during signaling frames on the Dx lead. If not
used as an input pin, ASEL should be strapped to either Vee or GRDD.
NC
No connect.
GRDA
Analog ground return for all internal voice circuits. Not internally connected to GRDD.
VFxl +
Non-inverting analog input to uncommitted transmit operational amplifier.
VFxl -
Inverting analog input to uncommitted transmit operational amplifier.
GSx
Output terminal of transmit channel input op amp. Internally, this ill the voice signal input to
the transmit filter.
Vee
Most positive supply; input voltage is + 5V ± 5%.
6-49
inter
2913 and 2914
'Fhe following major functions are provided:
FUNCTIONAL DESCRIPTION
• Bandpass filtering of the analog signals prior to
.
encoding and after decoding
The 2913 and 2914 provide the analog-to-digital and
the digital-to-analog conversions and the' transmit
and receive filtering necessary to interface a full duplex (4 wires) voice telephone circuit with the PCM
highways of a time division multiplexed (TOM) system. They are intended to be used at the analog
termination of ~ PCM line or trunk.
• EncOding and decoding of voice and call progress informatlTESTPOINTS<
0.8
0.8
x=
210629-17
A.C. Testing: Inputs are driven at 2.4V for a Logic "1" and 0.45V
for Logic "0". Timing measurements are made at 2.0V for a Logic
"1" and 0.8V for a Logic "0".
6·66
inter
2916/2917
HMOS COMBINED SINGLE CHIP PCM CODEC AND FILTER
,u.-Law, 2.048 MHz Master Clock
• 2916
2917 A-Law, 2.048 MHz Master Clock
• New 16-Pln Package for Higher
• Llnecard Density
03/04 and CCITT Compatible
• AT&T
Variable Timing Mode for Flexible
• Digital Interface: Supports Data Rates
from 64 KB to 2.048 MB
Differential Internal Architecture
• Fully
Enhances Noise Immunity
Timing Mode for Standard
• Fixed
32-Channel Systems: 2.048 MHz
•
Master Clock
Low Power HMOS-E Technology
- 5 mW Typical Power Down
-140 mW Typical Operating
On Chip Auto Zero, Sample and Hold,
and Precision Voltage References
•
with Direct Mode Intel
• Compatible
2910A, 2911A, and 2912A Designs
The Intel 2916 and 2917 are limited feature versions of Intel's 2913 and 2914 combination codec/filter chips.
They are fully integrated PCM codecs with transmit/receive filters fabricated in a highly reliable and proven
N-channel HMOS silicon gate technology (HMOS-E). These devices provide the functions that were formerly
provided by two complex chips (2910A or 2911 A and 2912A). Besides the higher level of integration, the
performance of the 2916 and 2917 is superior to that of the separate devices.
The primary applications for the 2916 and 2917 are in telephone systems:
• Switching-Digital PBX's and Central Office Switching Systems
• Subscriber Instruments-Digital Handsets and Office Workstations
Other possible applications can be found where the wide dynamic range (78 dB) and minimum conversion time
(125 p.s) are required for analog to digital interface functions:
• High Speed Modems
• Secure Communications
• Voice Store and Forward
• Digital Echo Cancellation
vcc
Vaa
PWRO+
GSx
PWRO-
VFXI -
PDN
GRDA
DClKR
TSX/DClKx
DR
Ox
FSR
FSx
GRDD
ClK
270156-1
Figure 1. Pin Configuration
6-67
October 1987
Order Number: 270156-002
2916/2917
XMIT
SECTION
GS,
AUTO
ZERO
---ll---..--.
.ftxlDCLK,
D,
YF.I-
SAMPLE
AND HOLD
SUCCESSIVE
COMPARATOR
~PPROXIMATION
AND DAC
REGISTER
ANALOG
TO
DIGITAL
CONTROL
OUTPUT
REGISTE"
I---------...---f--'.I,
.~~~~~~====~~~~==~~==~:::LOG~,c~~~~~~~~~~;::::::r~CLK
"ev
SECTION
IUFFER
SAMPLE
AND HOLD
AND DAC
_WAO -
_-+....____-..J
Fe.
270156-2
Figure 2; Block Diagram
Table 1. Pin Names
Name
Description
VBB
PWRO+, PWRO-
Name
Description
Power (-5V)
GSx
Transmit Gain Control
Power Amplifier Outputs
VFxl -
Analog Input
PDN
Power Down Select
GRDA
Analog Ground
DClKR
Receive Variable Data Clock
iSx
Timeslot Strobe/Buffer Enable
DR
Receive PCM Input
DClKx
Transmit Variable Data Clock
FSR
Receive Frame
Synchronization Clock
Dx
Transmit PCM Output
FSx
GRDD
Digital Ground
Transmit Frame
Synchronization Clock
Vee
Power (+5V)
ClK
Master Clock
inter
2916/2917
Table 2. Pin Description
Symbol
Function
Vss
Most negative supply, input voltage is - 5 volts ± 5%.
PWRO+
Non-inverting output of power amplifier. Can drive transformer hybrids or high impedance loads
directly in either a differential or single ended configuration.
PWRO-
Inverting output of power amplifier. Functionally identical and complementary to PWRO + .
PDN
Power down select. When PDN is TIL high, the device is active. When low, the device is
powered down.
DCLKR
Selects the fixed or variaolE\ data rate mode. When DCLKR is connected to Vss, the fixed data
rate mode is selected. Wtlen DCLKR is not connected to Vss, the device operates in the
variable data rate mode. In .this mode DCLKR becomes the receive data clock which operates
at TIL levels from 64 Kb to 2.048 Mb data rates.
DR
Receive PCM input. PCM data is clocked in on this lead on eight consecutive negative
transitions of the receive data clock; CLK in the fixed data rate mode and DCLKR in variable
data rate mode.
FSR
8 KHz frame synchronization clock input/timeslot enable, receive channel..Jn variable data rate
mode this signal must remain high for the entire length of the timeslot. Tile receive channel
enters the standby state whenever FSR is TIL low for 300 milliseconds.
GRDD
Digital ground for all internal logic circuits. Not internally tied to GRDA.
CLK
Master and data clock for the fixed data rate mode; master clock only in variable data rate
mode.
FSx
8 KHz frame synchronization clock input/timeslot enable, transmit channeL Operates
independently but in an analogous manner to FSR~ The transmit channel enters the standby
state whenever FSx is TIL low for 300 milliseconds.
Ox
Transmit PCM output.·PCM data is clocked out on this lead on eight consecutive positive
transitions of the transmit data clock; CLK in fixed data rate mode and DCLKx in variable data
rate mode.
TSx/DCLKx Transmit channel timeslot strobe (output) or data clock (input) for the transmit channel. In fixed
data rate mode, this pin is an open drain output designed to be used as an enable signal for a
three-state buffer. In varia!>le data rate mode, this pin becomes the transmit data clock which
operates at TIL levels from 64Kb to 2.048 Mb data rates.
GRDA
Analog ground return for all internal voice circuits. Not internally connected to GRDD.
VFx l -
Inverting analog input to uncommitted transmit operational amplifier.
GSx
Output terminal of on-chip transmit channel input op amp. Internally, this is the voice signal
input to the transmit filter.
Vee
Most positive supply; input voltage is + 5 volts ± 5%.
6-69
inter
2916/2917
To enhance system reliability, TSx and Ox will be
placed in a high impedance state approximately
30 Iks after an interruption of CLK.
FUNCTIONAL DESCRIPTION
The 2916 and 2917 provide the analog-to-digital and
the digital-to-analog conversions and the transmit
and receive filtering necessary to interface a full duplex (4 wires) voice telephone cirCUit with the PCM
highways of a time division multiplexed (TOM) system. They are .intended to be used at the analog
termination of a PCM line.
Power Down and Standby Modes
To minimize power consumption, two power down
modes are provided in which most 2916/2917 functions are disabled. Only the power down, clock, and
frame sync buffers, which are required to power up
the device, are enabled in these modes. As shown in
Table 3, the digital outputs on the appropriate channels are placed in a high impedance state until the
device returns to the active mode.
The following major functions are provided:
• Bandpass filtering of the analog signals prior to
encoding and after decoding
• Encoding and decoding of voice and call progress information
The Power Down mode utilizes an external control
Signal to the PDN pin. In this mode, power consumption is reduced to an average of5 mW. The device is
active when the signal is high and inactive when it is
low. In the absence of any signal, the PDN pin floats
to TTl:. high allowing the device to remain active continuously.
• Encoding and decoding of the signaling and supervision information
GENERAL OPERATION
System Reliability Features
The Standby mode leaves the user an option of
powering either channel down ·separately or powering the entire device down by selectively removing
FSx and/or FSR. With both channels in the standby
state, power consumption isreduqed.to an average
of 12 mW. If transmit qnly operation is desired, FSx
should be applied to the device while FSR is held
low. Similarly, if receive only operation is desired;
FSR should be applied while FSx is held low.
The combochip can be powered up by pulsing FSx
and/ or FSR while a TTL high voltage is applied to
PDN, provided that all clocks and supplies are connected. The 2916 and 2917 have internal resets on
power up (or when Vss or Vee are re-applied) in
order to ensure validity of the digital outputs and
thereby maintain integrity of the PCM highway.
On the transmit channel, digital outputs Dx and TSx
are held in a high impedance state for approximately
four frames .(500 Iks) after power up or ae.e!ication of
Vss or Vee. After this delay, .ox and TSx will be
functional and will occur in the proper timeslot. The
analog circuits on the transmit side require approximately 60 milliseconds to reach their equilibrium value due to the autozero circuit settling time.
Fixed Data Rate Mode
Fixed data rate timing, which is 2910A and 2911 A
compatible, is selected by connecting OCLKR to
Vss. It employs master clock CLK, frame synchronization clocks FSx and FSR, and output TSx.
Table 3. Power-Down Methods
Device Status
Power-Down
Method
Typical
Power
Consumption
Digital Output Status
Power Down Mode PDN = TTL Low
5mW
TSx and Dx are placed in a high impedance
state within 10 Iks.
Standby Mode
FSx and FSR are TTL Low
12mW
TSx and Dx are placed in a high impedance
state within 300 milliseconds.
Only Transmit is
on Standby
FSx is TTL Low
70mW
TSx and Dx are placed in a high impedance
state within 300 millisecond.s.
Only Receive is
on Standby
FSR is TTL Low
110mW
6-70
2916/2917
ClK serves as the master clock to operate the codec and filter sections and as the bit clock to clock
the data in and out from the PCM highway. FSx and
FSR are 8 KHz inputs which set the sampling frequency. 'i'Sx is a timeslot strobe/buffer enable output which gates the PCM word onto the PCM highway when an external buffer is used to drive the line.
Separate references are supplied to the transmit
and receive sections and each is trimmed independently during the manufacturing process. The reference value is then further trimmed in the gain setting
op-amps to a final precision value. With this method
the ,combochip can achieve the extremely accurate
Digital Milliwatt Responses specified in the transmission parameters, providing the user a significant
margin for error in other board components.
Data is transmitted on the highway at Ox on the first
eight positive transitions of ClK following the rising
edge of FSx. Similarly, on the receive side, data is
received on the first eight falling edges of ClK. The
frequency of ClK must be 2.048 MHz. No other frequency of operation is allowed in the fixed data rate
mode.
TRANSMIT OPERATION
Transmit Filter
The input section provides gain adjustment in the
passband by means of an on-Chip operational amplifier. This operational amplifier has a commoon mode
range of ± 2.17 volts, a maximum DC offset of
25 mV, a minimum open loop voltage gain of 5000,
and a unity gain bandwidth of typically 1 MHz. Gain
of up to 20 dB can be set without degrading the
performance of the filter. .The load impedance to
ground (GRDA) at the amplifier ,output (GSx) must
be greater than 10 kilohms in parallel with less than
50 pF. The input signal on lead VFxJ - can be either
AC or DC coupled. The input op amp can only be
used in the inverting mode as shown in Figure 3.
Variable Data Rate Mode
Variable data rate timing is selected by connecting
DClKR to the bit clock for the receive PCM highway
rather than to Vee. It employs master clock ClK, bit
clocks DClKR and DClKx, and frame synchronization clocks FSR and FSx.
Variable data rate timing allows for a flexible data
frequency. It provides the ability to vary the frequency of the bit clocks, from 64 KHz to 2.048 MHz. The
master clock is still restricted ,to 2.048 MHz.
A low pass anti-aliasing seption is included on-Chip.
This section typically provides 35 dB attenuation at
the sampling frequency. No external components
are required to provide the necessary anti-aliasing
function for the switched capacitor section of the
transmit filter.
In this mode, DClKR and DClKx become the data
clocks for the receive and transmit PCM highways.
While FSx is high, PCM data from Dx is transmitted
onto the highway on the next eight consecutive positive transitions of DClKx. Similarly, while FSR is
high, each PCM bit from the highway is received by
DR on the next eight consecutive negative transitions of DClKR.
On the transmit side, the PCM word will be repeated
in all remaining timeslots in the 125 jJ.s frame as long
as DClKx is pulsed and FSx is held high. This feature allows the PCM word to be transmitted to the
PCM highway more than once per frame, if desired,
and is only available in the variable data rate mode.
AZ
r--v
GS.
VF.I-
~
PreCision Voltage References
No external components are required with the combochip to provide the voltage reference function.
Voltage references are generated on-Chip and are
calibrated during the manufacturing process. The
technique uses a difference in sub-surface charge
density between two suitably implanted MOS devices to derive a temperature and bias stable reference
voltage. These references determine the gain and
dynamic range characteristics of the device.
Al
.
f>
Galn=_~
Al
6
Input
270156-3
Figure 3. Transmit Filter Gain Adjustment
6-71
inter
2916/2917
The passband section provides flatness and stopband attenuation which fulfills the AT&T 03/04
channel bank transmission specification and CCITT
recommendation G.714. The 2916 and 2917 specifications meet or exceed digital class 5 central office
switching systems requirements. The transmit fUter
transfer characteristics and specifications will be
within the limits shown in Figure 4.
RECEIVE QPERATION
Decoding
The PCM word at the DR lead is serially fetched on
the first eight data clock .bits of the frame. A DIA
conversion is performed on the digital word and the
corresponding analog sample is held on an internal
sample and hold capacitor. This sample is then
transferred to the receive filter.
A high pass section configuration was chosen to reject low frequency noise from 50 and 60 Hz power
lines, 17 Hz European electric, railroads, ringing frequencies and their harmonics, and other low frequency noise. Even though there is high rejection at
these frequencies, the sharpness of the band edge
gives low attenuation at 200 Hz. This feature allows
the use of low-cost transformer hybrids without external components. ,
Receive Filter
The receive filter provides passband flatness and
stopband rejection which fulfills both the AT&T 031
04 specification am;! CCITT recommendation G.714.
The filter contains the required compensation for the
(sin x)/x response of such, decoders. The receive
filter characteristics and· specifications will be within
the limits shown in Figure 5.
Encoding
The encoder internally samples the output of the
transmit filter and holds each sample on an interrial
sample and hold capacitor. The encoder then performs an analog to digital conversion on a switched
capacitor array. Digital data representing the sample
is transmitted on the first eight data clock bits of the
next frame:
Receive Output Power Amplifiers
A balanced output amplifier is provided in order to
allow maximum flexibility in output configuration. Either of the two outputs can be used single ended
(referenced to GRDA) to drive single ended loads.
Alternatively, the differential output will drive a
bridged load directly. The output stage is capable of
driving loads as low as 300 ohms single ended or
600 ohms differentially.
An on-chip autozero circuit corrects for DC-offset on
the input signal to the encoder. This autozero circuit
uses the sign bit averaging technique; the sign bit
from the encoder output is long term averaged and
subtracted from the input to the encoder. In this way,
all DC offset is removed from the encoder input
waveform.
Transmission levels are specified relative to the receive channel output under digital milliwatt conditions, that is, when the digital input at DR is the eightcode sequence specified in CCITT recommendation
G.711.
Table 4. Zero Transmission Level Points
Symbol
Parameter
Value
Units
Test Conditions
OTLP1x
Zero Transmission Level Point
Transmit Channel (OdBmO) p.-Iaw
+2.76
+1.00
dBm
dBm
Referenced to 600n
Referenced to 900n
OTLP2x
Zero Transmission Level Point
Transmit Channel (OdBmO) A-law
+2.79
+1.03
dBm
dBm
Referenced to 600n '
Referenced to.900n
OTLP1R
Zero Transmission Level Point
Receive Channel (OdBmO) p.-Iaw
+5.76
+4.00
dBm
dBm
Referenced to 600n
Referenced to 900n
OTLP2R
Zero Transmission Level Point
Receive Channel (OdBmO) A-law
+5.79
+4.03
dBm
dBm
Referenced to 600n
Referenced to 900n
"'
6-72
inter
2916/2917
• Notice: Stresses above those listed under '~bso
lute Maximum Ratings" may cause permanent damage to the device. This is a stress rating only and
functional operation of the device at these or any
other conditions above those indicated in the operational sections of this specification is not implied. Exposure to absolute maximum rating conditions for
extended periods may affect device reliability.
ABSOLUTE MAXIMUM RATINGS
Temperature Under Bias ......... -1 O·C to + 80·C
Storage Temperature .......... - 6S·C to + 150·C
Vcc and GRDD with Respect
toVss ....................... -0.3Vto +15V
All Input and Output Voltages
with Respectto Vss ........... - 0.3V to + 1SV
Power Dissipation ........................ 1.35W
NOTICE: Specifications contained within the
following tables are subject to change.
D.C. CHARACTERISTICS
(TA = O·C to 70·C. Vcc = +SV ±S%. Vss = -SV ±S%. GRDA = OV. GRDD = OV. unless otherwise
specified)
Typical values are for TA = 25·C and nominal power supply values.
DIGITAL INTERFACE
Symbol
IlL
Parameter
Min
Typ
Low Level Input Current
Max
Unit
Test Conditions
10
/A-A
GRDD :s;; VIN :s;; VIL (Note 1)
VIH :s;; VIN :s;; Vcc
IIH
High Level Input Current
10
/A-A
VIL
Input Low Voltage
0.8
V
VIH
Input High Voltage
VOL
Output Low Voltage
2.0
V
0.4
2.4
V
IOL = 3.2 mA at Ox. TSx
,
V
IOH = 9.6 mA at Ox
pF
VOH
Output High Voltage
Cox
Digital Output Capacitance(2)
5
CIN
Digital Input Capacitance
5
10
pF
POWER DISSIPATION
All measurements made at fOCLK = 2.048 MHz. outputs unloaded.
Symbol
Parameter
ICC1
Vcc Operating Current(4)
Min
Typ
Max
Unit
14
19
mA
Test Conditions
ISS1
Vss Operating Current
-18
-24
mA
Iceo
VCC Power Down Current
0.5
1.0
mA
PDN :s;; VIL; after 10 /A-s
Isso
Vss Power Down Current
-O.S
-1.0
mA
PDN :s;; VIL; after 10 /A-s
Ices
VCC Standby Current
1.2
2.4
mA
FSx. FSR :s;; VIL; after 300 ms
FSx. FSR :s;; VIL; after 300 ms
Isss
Vss Standby Current
-1.2 ' -2.4
mA
P01
Operating Power Dissipation(3)
140
200
mW
Poo
Power Down Dissipation(3)
S
10
mW
PDN :s;; VIL; after 10 /A-s
PST
Standby Power Dissipation(3)
12
25
mW
FSx. FSR :s;; VIL
NOTES:
1. "'IN is the voltage on any digital pin.
2. Timing parameters are guaranteed based on a 100 pF load capaCitance. Up to eight digital outputs may be connected to
a common PCM highway without buffering. assuming a board capaCitance of 60 pF.
3. With nominal power supply values.
4. Vee applied last or simultaneously with Vee.
6-73
2916/2917
ANALOG INTERFACE, TRANSMIT CHANNEL INPUT STAGE
Symbol
Parameter
Typ
Min
lex1
Input Leakage Current, VFxl- .
RIXI
Input.Resistance, VFxl-
VOSXI
Input Offset Voltage, VFxl-
~ax
Unit
100
nA
10
AVOL
DC Open Loop Voltage Gain, GSx
Open Loop Unity Gain Bandwidth, GSx
CLXI
Load Capacitance; GSx
RLXI
Minimum Load Resistance, GSx
S;
VIN
S;
2.17V
MG
mV
2S
fe
Test Conditions
-2.17V
SOOO
1
MHz
SO
pF
10
KG
ANALOG INTERFACE, RECEIVE CHANNEL DRIVER AMPLIFIER STATE
Symbol
Parameter
Min
Typ
'Max
Unit
RORA
Output Resistance, PWRO +, PWRO-
1
G
VOSRA
Single-Ended Output DC Offset, PWRO + ,
PWRO-
7S
mV
CLRA
Load Capacitance, PWRO +, PWRO-
,100
Test Conditions
Relative to GRDA
pF
A.C. CHARACTERISTICS-TRANSMisSION PARAMETERS
Unless otherwise noted, the analog input is a 0 dBmO, 1020 Hz sine wave.( 1) Input amplifier is set for unity
gain, inverting. The digital input is a PCM bit stream generated by passing, a 0, dBmO, 1020 Hz sine wave
through an ideal encoder. Receive output is measured single ended. All output levels are (sin x)/x corrected.
Typical values are for TA = 2S'C and nominal power supply values. (TA = O"C to + 70'C; Vee = + sv ± S%;
Vee = -SV ±S%; GRDA = OV; GRDD = OV; unless otherwise specified).
GAIN AND DYNAMIC RANGE
Symbol
EmW
Parameter
Min
Typ
Max
Units
Test Conditions
Encoder Milliwatt Response -0.18 ±0.04 +0.18 dBmO Signal Input of 1.064 Vrms ",,-law
(Transmit Gain Tolerance)
Signal Input of 1.068 Vrms A-law
TA = 2SoC, Vee = -SV,
Vee = +SV
EmWTS EmW Variation with
Temperature and Supplies
-0.07 ±0.02 +0.07
DmW
-0.18
Digital Milliwatt Response
(Receive Gain Tolerance)
DmWTS DmW Variation with
Temperature and Supplies
dB
± S,% Supplies, 0 to 70"C
Relative to Nominal Conditions
±0.04 +0.18 dBmO Measu're Relative to OTLPR. Signal
Input per CCITT Recommendation
G.711. Output Signal of 1000 Hz.
RL =: 00
TA = 25'C;VBB = -SV,
Vee = +SV.
-0.07 ±O'.02 +0.07
dB
±S% Supplies, 0 to 70"C
NOTE:
1. 0 dBmO is defined as the zero reference point of the channel under test (OTLP). This corresponds to an analog Signal
input of 1.064 volts rms or an output of 1.503 volts rms (for ,...Iaw).
'
6-74
inter
2916/2917
GAIN TRACKING
Reference Level = -10 dBmO
Symbol
2916
Parameter
Min
GT1x
Transmit Gain Tracking Error
Sinusoidal Input; ,...Iaw
GT2x
Transmit Gain Tracking Error
Sinusoidal Input; A-law
GTIR
Receive Gain Tracking Error
Sinusoidallnput;/L-Iaw
.
GT2R
2917
Max
Min
Unit
±0.25
±0.5
±1.2
±0.25
±0.5
±1.2
±0.25
±O.5
±1.2
,
Receive Gain Tracking Error
Sinusoidal Input; A-law
Test Conditions
Max
±0.25
±0.5
±1.2
dB
dB
dB
+3to -40.dBmO
-40 to -50dBmO
-50 to -55 dBmO
dB
dB
dB
+3to -40dBmO
-40 to -50 dBmO
-50 to -55 dBmO
dB
dB
dB
+3to -40dBmO
-40 to -50 dBmO
-50 to -55 dBmO
Measured at PWRO+,
Rl = 3000
dB
dB
dB
+3to -40dBmO
-40 to -50 dBmO
-50to -55dBmO
Measured at PWRO + ,
Rl = 3000
NOISE (All receive channel measurements are single ended)
Symbol
2916
. : Parameter
Min
Typ
2917
Max
Min
Typ
Test Conditions
Unit
Max
NXC1
Transmit NOise, C-Message
Weighted
15
Nxp
Transmit NOise,Psophometrically
Weighted
NRC1
Receive Noise, C-Message
Weighted: Quiet Code
11
dBrncO DR
NRC2
Receive Noise, C-Message
Weighted: Sign Bit Toggle
12
dBrncO
Input to DR is Zero Code
with Sign Bit Toggle at 1 KHz
Rate
NRP
Receive Noise, Psophorrietrically
Weighted
.,
-79
dBmOp
DR = Lowest Positive
Decode Level
NSF
Single Frequency Noise
End to End Measurement
-50
dBmO
PSRR1
VCC Power Supply Rejection,
Transmit Channel
-30
-30
dE!
Idle Channel; 200 mV pop
Signal on Supply; 0 to 50
KHz, Measure at Ox
PSRR2
VBB Power Supply Rejection,
Transmit Channel
-30
-30
dB
Idle Channel; 200 mV pop
Signal on Supply; 0 to 50
KHz, Measure at Ox
PSRR3
Vee Power Supply Rejection,
Receive Channel
-25
-25
dB
Idle Channel; 200 mV pop
Signal on Supply; Measure
Narrow Band at PWRO + ,
Oto 50 KHz
PSRR4
VBB Power Supply Rejection,
Receive Channel.
-25
-25
dB
Idle Channel; 200 mV pop
Signal on Supply; Measure
Narrow Band at PWRO + ,
Oto 50 KHz
CTTR
Crosstalk, Transmit to Receive
-71
-71
dB
Input = 0 dBmO, Unity
Gain, 1.02 KHz, DR =
Lowest Positive Decode
Level, Measure at PWRO+
CTRT
Crosstalk, Receive to Transmit
-71
-71
dB
DR = 0 dBmO, 1.02 KHz,
Measure at Ox
-75
dBrncO
Unity Gain
dB mOp
Unity Gain
,
-50
6-75
=
11111111
CCITT G.712.4.2
Measure at PWRO +
inter .
2916/2917
DISTORTION
Symbol
Parameter
Min Typ Max
Test Conditions'
Unit
odBmO to -
Transmit Signal to Distortion, ~-law
Sinusoidal Input;
cCln G.714-Method 2 (2916)
36
30
25
dB
dB
dB
Transmit Signal to Distortion, A-law
, Sinusoidal Input;
cCln G.714-Method 2 (2917)
36
30
25
dBmO to -30 dBmO
dB
dB· -30 dBmO to-40 dBmO
-40 dBmO to -45 dBmO
dB
Receive Signal to Distortion, ~-law
Sinusoidal Input; cCln G.714-Method
2 (2916)
36
30
25
dB
dB
dB
dBmO to - 3Q dBmO
- 30 demO to -40 dBmO
- 40 dBmO to - 45 dBmO
SD2R
Receive Signal to Distortion, A-law
Sinusoidal Input; cCln G.714-Method
2 (2917)
36
30
25
dB
dB
dB
o dBmO to - 30 dBmO
-30 dBmO,to ;-.40 dBmO
-40 dBmO to -45 dBmO
DPx
Transmit Single Frequency Distortion
Products (2916)
-46 dBmO AT&T Advisory #64 (3.8)
o dBmO Input Signal
DPR
Receive Single Frequency Distortion
Products (2916)
-46 dBmO AT&T Advisory #64
o dBniO Input Signal
IMD1
Intermodulation Distortion,
End to End Measurement
-35
IMD2
Intermodulation Distortion,
End to End Measurement .
-49 dBmO cCln G.712 (7.2)
SOS
Spurious Out of Band Signals,
End to End Measurement
-25 dBmO CClnG.712 (6.1)'
SIS
Spurious In Band Signals,
End to End Measurement
-40 dBmO cCln G.712 (9)
DAX
Transmit Absolute Delay
245
~s
Fixed Data Rate. ClKx = 2.048
MHz; OdBmO, 1.02 KHz Input
Signal, Unity Gain. Measure
atDx·
Dox
Transmit Differential Envelope Delay
Relative to DAX
170
95
45
105
~s
f = 500 Hz to 600 Hz
f = 600 Hz to 1000 Hz
f = 1000 Hz to 2600 Hz
f = 2600 Hz to 2800 Hz
SD1x '
SD2x
SD1R
.,
30 dBmO
-30dBmOto -40dBmO
-40 dBmO to -45 dBmO
o
dB
~s
~s
~s
DAR
Receive Absolute Delay
190
~s
DOR
Receive Differential Envelope Delay
Relative to DAR
45
35
85
110
~s
6-76
~s
~s
~s
o
(3.~)
CCITTG.712 (7.1)
Fixed Data Rate; ClK = 2.048
MHz; Digital Input is DMW
Codes. Measure at PWRO +
f = 500 Hz to 600 Hz
f = 600 Hz to 1000 Hz
f = 1000 Hz to 2600 Hz
f = 2600 Hz to 2800 Hz
2916/2917
TRANSMIT CHANNEL TRANSFER CHARACTERISTICS
Input amplifier is set for unity gain, inverting.
Symbol
Parameter
GRX
Gain Relative to Gain at 1.02 KHz
Typ
Min
Max
Unit
16.67 Hz
-30
dB
50Hz
-25
dB
60Hz
-23
dB
-1.8
-0.125
dB
200Hz
Test Conditions
odBmO Signal Input at VFxl-
300 to 3000 Hz
-0.125
+0.125
dB
3300 Hz
-0.35
+0.03
dB
3400 Hz
-0.7
-0.10
dB
4000Hz
-14
dB
4600 Hz and Above
-32
dB
6·77
2916/2917
+1.0 dB
EXPAND£O
SCALE
OdB
-1.0dB
OdB
-10dS
-20dB
TYPICAL
-30dS
-40 dB
-50dS
-SOdB
10Hz
100Hz
1 KHz
10KHz
270156-4
Figure 4. Transmit Channel
6-78
inter
2916/2917
RECEIVE CHANNEL TRANSFER CHARACTERISTICS
Symbol
Parameter
GRR
Gain Relative to Gain at 1.02 KHz
Min
Max
Unit
+0,125
dB
-0.5
+0.125
dB
+0.125
+0.125
dB
3300 Hz
-0.35
+0.03
dB
3400 Hz
-0.7
-0.1
dB
4000 Hz
-14
dB
4600 Hz and Above
-30
dB
300 to 3000 Hz
Test Conditions
o dBmO Signal Input at DR
Below 200 Hz
200Hz
Typ
6-79
inter
2916/2917
+1.0dB
+0.125dB +0.125dB.
200 Hz
300 Hz
EXPANDED
SCALE
+0.125dB
-0.03dB
3000 Hi ~300 Hz
««««««({«.«'«««««««««««~
--...::
OdB
-0.50 dB
/.
200 Hz
-0.125dB
3000 Hz
-0.10dB
3400Hz
-0.35 dB
3300Hz
-0.70 dB
3400Hz
-1.0dB
OdB
-10dB
TYPICAL - - - - - - - - - : ; , ; .
-20dB
-30 dB
-40dB
-50 dB -
-SO dB
10Hz
100Hz
1 KHz
10KHz
270156-5
Figure 5. Receive Channel
6·80
inter
2916/2917
A.C. CHARACTERISTICS-TIMING PARAMETERS
CLOCK SECTION
Symbol
Typ
Parameter
Min
tCY
Clock Period, ClK
488
ns
tCLK
Clock Pulse Width, ClK
220
ns
tOCLK
Data Clock Pulse Width
220
ns
tcoc
Clock Duty Cycle, ClK
45
t r, tf
Clock Rise and Fall Time
Max
50
5
Unit
55
%
30
ns
Test Conditions
fCLK = 2.048 MHz
64 KHz ~ fOCLK ~ 2.048 MHz
TRANSMIT SECTION, FIXED DATA RATE MODE(1)
.Parameter
Min
Max
Unit
tozx
Data Enabled on TS Entry
0
145
ns
o<
toox
Data Delay from ClK
0
145
ns
0< CLOAO < 100 pF
tHZX
Data Float on TS Exit
60
215
ns
CLOAO = 0
tSON
Timeslot X to Enable
0
145
ns
0< CLOAO < 100 pF
tSOFF
Timeslot X to Disable
60
215
ns
CLOAO = 0
tFSO
Frame Sync Delay
100
tcLK
ns
Symbol
Typ
Test Conditions
CLOAD < 100 pF
RECEIVE SECTION, FIXED DATA RATE MODE
Symbol
Parameter
Min
tOSR
Receive Data Setup
10
tOHR
Receive Data Hold
60
tFSD
Frame Sync Delay
100
Typ
Max
Unit
ns
ns
tCLK
NOTE:
1. Timing parameters TDZX, THZX, and TSOFF are referenced to a high impedance state.
6·81
ns
Test Conditions
2916}2917
WAVEFORMS
Fixed Data Rate Timing
TRANSMIT TIMING
~
i ~~
~
ICLK
Fl.
'
I
CLK
2
3
4
~j
5
•
7
•
I,
.
270156-6
CLK
D.
'--_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
-_I-I~'~"
270156-7
NOTE:
1. All timing parameters referenced to VIH and VIL except tozx. tsoFF and tHZX which reference a high Impedan~e state.
RECEIVE TIMING
CYTtMEILOT
!eLK'
CLK
FIR
~
'-1' ,..
j
2,
:,
4
to
I
"
7
•
.
~------------------------------------------270156-8
STAILE
270156-9
NOTE:
1. All timing parameters referenced to VIH and VIL.
6·82
2916/2917
TRANSMIT SECTION, VARIABLE DATA RATE MODE(1)
Symbol
Parameter
tTSOX
Timeslot Delay from DCLKx(2)
tFSO
Frame Sync Delay
Max
Unit
140
tox-140
ns
100
tCy-100
ns
Min
Typ
toox
Data Delay from DCLKx
0
100
ns
tOON
Timeslot to Ox Active
0
50
ns
tOOFF
Timeslot to Ox Inactive
tox
Data Clock Period
tOFSX
Data Delay from FSx
0
80
ns
488
15620
ns
0
140
ns
Test Conditions
o < CLOAO < 100 pF
o < CLOAO < 100 pF
o < CLOAO < 100 pF
RECEIVE SECTION, VARIABLE DATA RATE MODE
Symbol
Parameter
Min
Max
Unit
tTSOR
Timeslot Delay from DCLKR(3)
140
Typ
tOR-140
ns
tFSO
Frame Sync Delay
100
tCy-100
ns
tOSR
Data Setup Time
10
tOHR
Data Hold Time
60
tOR
Data Clock Period
488
tSER
Timeslot End Receive Time
60
Test Conditions
ns
ns
15620
ns
ns
64 KB OPERATION, VARIABLE DATA RATE MODE
Unit
Test Conditions
488
ns
FSx is TIL High for Remainder of
Frame
1952
ns
FSR is TIL High for Remainder of
Frame
Symbol
Parameter
Min
tFSLX
Transmit Frame Sync Minimum
Downtime
tFSLR
Receive Frame Sync Minimum
Downtime
tOCLK
Data Clock Pulse Width
Typ
Max
10
J.Ls
NOTES;
1. Timing parameters tOON and tOOFF are referenced to a high impedance state.
2. tFSLX minimum requirements overrides tTSOX maximum spec for 64 KHz operation.
3. tFSLR minimum requirements overrides tTSOR maximum spec for 64 KHz operation.
6·83
2916/2917
VARIABLE DATA RATE TIMING
TRANSMIT TIMING
270156-10
RECEIVE TIMING
270156-11
NOTE:
.
1. All timing parameters referenced to VIH and VIL except tDON and tOFF which reference a high impedance state.
A.C. TESTING INPUT, OUTPUT WAVEFORM
INPUTIOUTPUT
2.4=>(
0.45
2.0
2.0
>TEST POINTS<
0.8
)C
0.8
270156-12
A.C. Testing: Inputs are driven at 2.4V for a Logic "1" and 0.45V for a Logic "0". Timing measurements are made at 2.0V for a Logic "1" and
O.BV for a Logic "0".
6-84
inter
APPLICATIONS INFORMATION
2910A/2911A/2912A
CODECINTERFACE
CLOCK INTERFACE
The 2912A PCM Filter is designed to directly interface to the 2910A and 2911A Codecs as shown below. The transmit path is completed by connecting
the VFxO output of the 2912A to the coupling capacitor associated with the VFx input of the 2910A
and 2911 A codecs. The receive path is completed
by directly connecting the codec output VFR to receive input of the 2912A VFRI. The PDN input of the
2912A should be connected to the PDN output of
the codec to allow the filter to be put in the powerdown standby mode under control of the codec.
To assure proper operation, the ClK input of the
2912A should be connected to the same clock provided to receive bit clock, ClKR of 2910A or 2911A
Codec as shown below. The ClKO input of the
2912A should be set to the proper voltage depending on the standard clock frequency chosen for the
codec and filter.
DIGITAL
2110A
~
SIGx ••- - - ' - - - - - - - - - - - - - - - - - - - - - - - ,
SIG".'- - - - - - - - - - - - - - - - - - - ,
r------t-VDD
POWER SUPPLY
INPU~S
CONTROL
} FROM SYSTEM
LINE
~
2112A
OUTPUT TO
ELECTRONIC HYBRIDS
PCM FRAME SYNCH
AND 81T CLOCKS
POWER AMPLIFIER INPUT
r-:-±---' r--:::-:;-i:-,--+-INPUT FROM PCM HIGHWAY
POWER AMPLIFIER OUTPUT
{
TO TRANSFORMER HYBRIDS
GRDA
~
GRDO
*
=-~:~D };:'~~ES
~------------------------------------~---vu
111 OECOUPLING CAPACITORS
~GRDA
270219-1
Figure 1. A Typical 2910A Codec and 2912A Filter Configuration
6-85
October 1986
Order Number: 270219-001
intJ
2910A/2911A/2912A
10) The optimum grounding configuration is to maintain separate digital and analog grounds on the
circuit boards, and to carry these grounds back
to the power supply with a low il'11pedance connection. This keeps the grounds'separate over
the entire system except at the power supply.
11) The voltage difference between ground 'leads
GRDA and GRDD (analog and digital ground)
should not exceed two volts. One method of
preventing any substantial voltage difference between leads GRDA and GRDD is to connect two
diodes back to back in opposite directions
across these two ground leads ori each board.
12) C()dec~filter pairs should be aligned so that pins
9 through 16 of the filter face pins 1 through 12
of the codec. This minimizes the distance for analog connections between devices and with no
crossing analog lines.
13) No digital or high voltage level (such as ringing
supply) lines should run under or in parallel with
these analog VF connections. If the analog lines
are on the top (component side) of the PC
board, then GRDD, GRDA, or power supply
leads should be directly under them, on the bottom to prevent analog/digital coupling.
14) Both the codec and filter devices should be
shielded from traces on the bottom of the PCB
by using ground or power supply leads on the
top side directly under ,the device (like a ground
plane).
GROUNDING, DECOUPLING, AND
LAYOUT RECOMMENDATIONS' '
The most important steps in designing a low noise
line card are to insure that the layout of the circuit
components and traces'results in a minimum of
cross coupling between analog and digital signals,
and to provide well bypassed and clean power sup·
plies, solid ground planes, and miriimallead lengths
between components.
1) All power source leads should be bypassed to
ground on each printed circuit board (PCB),on
which codecs are provided. At least one electrolytic bypass capacitor (at least 50 J-LF) per board
is recommended at the point where all power
traces from the codecs and filters join prior to
interfacing with the edge connector pins assigned to the power leads,
2) When using two-sided PCBs, use both corresponding pins on opposite sides of the board for
the same power lead. Strap them together both
on the PCB and on the back of the edge connector.
3) Layout the traces on cod~c- and filter-equipped
boards such that analog signal and capacitor
leads are separated as widely as possible from
the digital clock and data 'leads.
4) Connect the codec sample and hold capacitor
with the shortest leads possible. Mount it as
close to the codec CAP1 X, CAP2X pins as possible. Shield the capacitor traces with analog
ground.'
,
15) Two +5V power supply leads (Vee> should be
used on each PCB, one to the filters, the other
to the codecs. These leads should be separately
decoupled at the PCB where they then join to a
single 5V supply at the backplane connector.
Decoupling can be accomplished with either a
series resistor/parallel capacitor (RC lowpass)
or a series RF choke and parallel capacitor of
each 5V lead. The capacitor should be at least
10 J-LF in parallel with a 0.1 J-LF ceramic. This
filters both high and low frequencies and accommodates large current spikes due to switching.
16) Both grounds and power supply leads must have
low resistance and inductance. This should be
accomplished by using a ground plane whenever possible. When narrower traces must be
used, a minimum width of 4 millimeters should
be maintained. Either multiple or extra large plated through holes should be used when passing
.the ground connections through the PCB.
5) Do not layout any board traces (especially digital) that pass between or near the leads of the
sample and hold capacitor(s) since they are in
high impedance circuits which are sensitive to
noise coupling.
6) Keep analog voice circuit leads paired on their
layouts so that no intervening circuit leads are
permitted to run parallel to. them and/or between them.
7) Arrange the layout for each duplicated line, trunk
or channel circuit in identical form.
8) Line circuits mounted extremely close to adjacent line circuits inorease the possibility of interchannel crosstalk.
9) Avoid assignment of edge connector pins to any
analog Signal adjacent to any lead carrying digital (periodic) signals or power,'
6-86
inter
2910A/2911A/2912A
17) The 2912A PCM filter should have all power
supplies bypassed to analog ground (GRDA).
The 2910Al2911A Codec +5V power supplies
should be bypassed to the digital ground
(GRDD). This is appropriate when separate
+ 5V power supply leads are used as suggested
in item 15. The - 5V and + 12V supplies should
be bypassed to analog ground (GRDA). Bypass
capacitors at each device should be high frequency capacitors of approximately 0.1 to 1.0
J.tF value. Their lead lengths should be minimized by routing the capacitor leads to the appropriate ground plane under the device (either
GRDA or GRDD).
18) Relay operation, ring voltage application, interruptions, and loop current surges can produce
enormous transients. Leads carrying such signals must be routed well away from both analog
and digital circuits on the line card and in backplanes. Lead pairs carrying current surges
should be routed closely together to minimize
possible inductive coupling. The microcomputer
clock lead is particularly vulnerable, and should
be buffered. Care should also be used in the
backplane layout to prevent pickup surges. Any
other latching components (relay buffers, etc.)
should also be protected from surges.
19) When not used, the AUTO pin should float with
minimum PC board track area.
ZERO TRANSMISSION LEVEL POINTS
2910A/2912A 0 dBmO
TRANSMIT
FILTER
2.85 dBm
DECOOER
DIGITAL
MILLIWATT
CODES
(OR EQUIV.1
5.85 dim
1.52 Vrm.
1.08 Vrml
RECEIVE
ENCODER
POWER
AMPLIFIERS
FILTER
5.85 dBm
S.Udlm
1.... Vrm.
1.52 Vrml
, SINGLE ENDED,IOO0
us dam
1.12 Vrmt
BALANCED. ICIO
11 .• dim
n
UMVrm,
270219-2
2911A/2912A 0 dBmO
TRANSMIT
ALTER
2.88d8m
1.08 Vrml
ENCODER
5.81 dBm
1.52 Vrml
DECODER
DIGITAL
MILLIWAn
CODES
(OR EQUIV.1
5.88 dBm
1.49 Vrm.
RECEIYE
POWER
FILTER
AMPLIFIERS
5.88 dIm
i.S2Yrms
SINGLE ENDED. 800n
U8dam
1.52 Vrmt
BALANCED, 800 n
11.edBm
3.05 Vrms
270219-3
6-87
inter
APPLICATION
NOTE
AP-142
November 1986
Designing Second-Generation
Digital Telephony Systems
Using the Intel 2913/14
Codec/Filter Combochip
ROBERT E. HOLM
TELECOM TECHNICAL SUPPORT
JOHN HUGGINS
TELECOM DESIGN ENGINEERING
Order Number: 210314-002
6-88
intJ
AP-142
Note: See data sheet for latest specifications. Values given In this application
note are for reference only, and were considered correct at the time of publication (Feb. 1982).
each feature and specifications for timing and performance levels. This application note, in conjunction with
the data sheet, describes in more detail how the new
and improved features help in the design of second-generation linecards first by comparing the two generations
of components to see where the improvements have
been made, and then by discussing specific design considerations.
1.0 INTRODUCTION
This application note describes the features and capabilities of the' 2913 and 2914 codec/filter combochips,
and relates these capabilities to the design and manufacturing of transmission and switching li~ecards.
1.1 Background
1.2 Comparison of Flrst- and SecondGeneration Component
Capabilities
The first generation of per line codecs (Intel
2910A/IIA) and'filters (Intel 2912A) economically integrated the analog-digital conversion circuits and
PCM formatting circuits into one chip and the filtering
and gain setting circuits into another chip. These two
chips helped to make possible the rapid conversion to
digital switching systems that has taken place in the last
few years.
The combochip represents a higher level of component
integration than the devices it replaces and, because of
the economics of LSI (replacing two chips with one),
ultimately will cost significantly less at the component
level. But comparison of the combochip block diagram
with first-generation single-chip codec and filter reveals
few major functional differences. Figure I compares the
first-generation codec and filter chips to the combochip. Both provide rigidly specified PCM capabilities of
voice signal bandlimiting and nonlinear companded
AID and D/A convet'l!ion. The first on-chip reference
voltage was introduced in the 2910/2911 single-chip
codecs and is included in the combochip. The provision
of uncommitted buffer amplifiers for flexible transmission level adjustment and enhanced analog output drive
was a feature ofthe now standard 2912 switched-capacitor PCM filter is available on the combochip. Like-
The second generation of Intel LSI PCM telephony
components, the 2913/14 Combochip, extends the level
of integration of the linecard by combining the codec
and filter functions for each line on a single LSI chip.
In the process of combining both functions, circuit design improvements have also improved performance,
reduced external component count, lowered power dissipation, increased reliability, added new features, and
maintained architectural transparency.
The 2913 and 2914 data sheet contains a complete description of both parts, including detailed discussions of
I
I
It ..
°lli
!I....
I
I
I
I
I
I
TRANSFORMER TRANSMISSION
DRIVER
LEVEL CONTROL
PCM
LOWPASS
I
SINGLE-CHIP PCM CODI!C
: .' 8INGLE'-C;:HIP PCM FILTER
I
I
COMBOCHIP
210314-1
Figure 1. LSI Partitioning of Codec/Filter Functions
6-89
inter
Ap-142
4iagnostia software, the bulk of the production, costs
are in the high-volume linecards. The combochip addresses these cost pressures and defers the appetite for
new integrated functions to a'future generation ofPCM
components.
wise, independent transmit (AID) and receive (0/A)
analog voice channels which pemit the two channels t.o'
be timed from independent (asynchronous) clocksources is common to the first- and second-generation devices. Finally, the ability to multiplex signalling bits on a
bit-stealing basis from the digital side of the device has
been duplicated on the combochip.
Figure 2 contains the block diagram of the 2913/14
combochip which illustrates not only the basic companding and filtering functions but also some of the
changes and new features contained in the second-generation devices, such as internal auto zero, separate
ADC and DAC for transmit and receive sections, respectively, precision gain setting (RCV section), and in"
put!output registers for both fixed and variable data
rates. Table 1 lists many of the features that are important to linecard design and performance. A direct comparison between first-and second-generation products
Data traffic-conscious systems manufacturers now provide dedicated codec, filter, and subscriber interface
functions on a per-subscriber basis, which in tum puts
intense cost pressures on these functions. The functional duplication of first-generation components addresses
the needs of the system manufacturer who wants to
cost reduce existing fixed-architecture system designs.
Whereas the bulk of the system development costs (and
time) are in the switching machine call processing and
Table 1. Comparison between 2913/14 Combochlp and the
2910A/11A/12A Single-Chip Codecs and Filters
Features
Power
Operating
Standby
2910A/11A plus 2912A'
2913/14
280-310mW
140mW
33mW
5mW
38-40
20-24
Pins
Board Area Including Interconnects
Data Rates
-Fixed
Normalized = 1.0
0.33
1.536, 1.544, 2.048 Mbps
Same
-Variable
Companding Law
None
-,u.-Law
2910
-A-Law
2911
+ 2912
+ 2912
64 Kbps -
2.048 Mbps
Strap Selectable
30dB
>35dB
NotSpec'd
> 35dB
Trim Using Pot Necessary
Precision Resistors
Eliminate Trim Req.
Direct
Yes
Yes
Timeslot ASSign
Yes
No
Yes
Yes
15 dBrncO Transmit
11 dBrncO Receive
15 dBrncO Transmit
11 dBrncO Receive
SID - Half Channel Improvement
See Data Sheet
See Section 2.0
GT -
See Data Sheet
See Section 2.0
PDN Pin
Frame Sync Removal or PDN Pin
Signalling
2910-8th Bit
2914-8th Bit
Auto Zero
External
Internal
S&HCaps
External Transmit
Internal Receive
Internal
Test Modes
None
Design Tests
Manufacturing Test
On-Line Operational Tests
Resistive Ladder
Capacitive Charge Redistribution
Ladder
Fuse Blowing ± 0.2 dB
Fuse Blowing ± 0.04 dB
PSRR
1 KHz
> 10 KHz
Gain Setting
Operating Modes
On-Chip VREF
ICN - Half Channel Improvement
Half Channel Improvement
Power Down (Standby)
Encoder Implementation
Filter/Gain Trim
6-90
inter
AP-142
XMIT
SECTION
AUTO
ZEAO
D.
VFXI+
SAMPLE
AND HOLD
AND DAC
VFXI-
8UCCEII'VE
APPROXIMATION
COMPARATOR
REOIITER
OUTPUT
Tlx/DCLKX
REGISTER
SIOx/ASEl
GI,
-1--;::=~.,
ANALOG
TO
OIGITAl
CONTROL
t-------------1r-- FS,
L~LO;G:'C_J-----------l--CLKX
ACV
SECTION
CLKSEL
PDIi
GS,
LOOP
PWAO+
--t--...--..,
PWAO-
_-+'-+__...J
D.
DCLKA
Yee
V..
GRDD
GRDA
Fa.-
elK"
210314-2
(a) Combochlp Block Diagram
Vee
PWRO +. PWROGSR
PDN
CLKSEL
LOOP
SIGR
DCLKR
DR
FSR
GRDD
Vee
Power (-5V)
Power Amplifier Outputs
Receive Gain Control
Power Down Select
Master Clock Frequency
Select
Analog Loop Back
Receive Signaling Bit Output
Receive Variable Data Clock
Receive PCM Input
Receive Frame
Synchronization Clock
Digital Ground
Power (+5V)
GSx
VFxl-. VFxl +
GRDA
NC
SIGx
Transmit Gain Control
Analog Inputs
Analog Ground
No Connect
Transmit Signaling Input
ASEL
TSx
DCLKx
Dx
FSx
p.- or A-law Select
Timeslot Strobe/Buffer Enable
Transmit Variable Data Clock
Transmit PCM Output
Transmit Frame
Synchronization Clock
Transmit Master Clock
Receive Master Clock
CLKx
CLKR
(b) Combochlp Pin Names
Figure 2. Block Diagram of 2913/14 Combochip
6-91
AP-142
shows the significant improvement in the combochip
both in performance levels and system flexibility.
Table 3. 2914 Factors which Increase Linecard
Manufacturing Yields and Efficiency
• Higher Reliability
-Fewer connections and components
-More integrated packaging
-More margin to specs
-Lower power
-NMOS proven process
-Less sensitive to parameter variations
2.0 DESIGN CONSIDERATIONS
The key point with the 2913/14 is that it will result in a
linecard that performs better and costs less than any
two-chip codec/filter solution. The lower cost results
from many factors, as seim in Table 2. Both direct replacement costs and less tangible design and manufacturing time savings combine to yield lower recurring
and nonrecurring costs. As an example, the wider margins to transmission specs and the higher power supply
rejection ratios of the 2913/14 will both shorten the
design time needed to build and test the linecard prototype and reduce the reject rate on the manufacturing
line.
• Fewer Manufacturing Steps
-No gain trimming
-On chip VREF
-Wide power supply tolerance
-On chip test modes
-Wide margins to spec
Table 2. 2913/14 Factors which Lower the Cost
of Llnecard Design and Manufacturing
• Lower LSI Cost (2914 vs. 2910/11
2912)
• Fewer External Components
• Less Board Area
• Shorter Design/Prototype Cycle
• Better Yields/Higher Reliability
• Lower Power/Higher Density
+
Table 4. Design Factors for 2914 which Reduce
Llnecard PCB Area
• Integrated Packaging
-2914 vs. 2910/11 + 2912
= 1/3 board area
-2913 takes even less space
• Fewer Interconnects/Components
-Codec/filter combined
-On-chip reference voltage
-On-chip auto zero
-On-chip capacitors
-No gain trim components
-No voltage regulators
Part of the recurring cost of linecard production is the
efficiency of the manufacturing line in turning out each
board. This is measured in both parts cost and time.
Average manufacturing time is strongly effected by the
line yield, i.e., the reject rate reliability. A linecard using the 2913/14 has many labor-saving features, which
also increases the reliability of the manufacturing process. Some of these features are detailed in Table 3.
The combination of fewer parameters to trim (gain, reference voltage, etc.), tolerance to wider power supply
variations, and on-chip test modes make the linecard
very manufacturable compared to first-generation designs.
• Efficient Layout (Facilitates Auto Insertion)
-Analog/digital sections separated on
chip
-Digital traces can cross under chip
-Two power supplies only
-Low powerlhigh density
Probably the most obvious improvement in linecard design based around the 2913/14 is the reduction in linecard PCB area needed compared to two-chip designs.
The combination of the codec and filter into a single
package alone reduced the LSI area by one-third. Table
4 shows many of the other ways in which board area is
conserved. In general, it reduces to fewer components,
more on-chip features, and layout of the chip resulting
in an efficient board layout which neatly separates the
analog and digital signals both inside the chip and on
the board.
6-92
intJ
AP-142
Table 5. 2913/14 Operating Mode Options Add Flexibility to Llnecard Design
Option
Results of Mode Selection
Mode Control Pins
2914 (24 Pin)
+ Signalling
I ' 2913 (20 Pin)
I A-Law/,...-Law. no Signalling
Companding Law
SIGX/ASEL
A-Law or ,...-Law
PowerOown
PDN
Transmit & Receive Side Go To Standby Power (5 mW)
Data Rate
Test Modes
FSx & FSR Removed
Ssme (12 mW)
FSxRemoved
Transmit Side Goes to Standby (110 mW)
FSRRemoved
Receive Side Goes to Standby (70 mW)
- Vcc/GRDOlVee
DCLKR = Vee
1.536/1.544/2.048 Mbps in Fixed Data Rate Mode
- Vee1GRDDIVee
DCLKe = Clock
Variable Data Rate Mode from 64 Kbps to 2.048 Mbps,
No Signalling
= Vee
Pl5N = Vee
Implements Analog Loopback
LOOP
DR - Vee
I No Loopback Capability
Provides Access to Transmit Codec Through ASEL and TSX
Pins
Provides Access to RCV Filter Input at DCLKR and Transmit
Filter Outputs at ASEL and 'fSX Pins
Many of the factors discussed-which result in efficient, cost-effective linecard designs-are discussed in
more detail both in the 2913/14 data sheet and in the
following sections of this note.
without significant system timing, control, or software
modifications. To this end, two distinct user-selectable
timing modes are possible with the combochip. For
purposes of discussion, these are designated (a) fixed
data rate timing (FORT) and (b) variable data rate tim"
ing (VDRT).
'
2.1 Operating and Test Mode
Selection
A key to designing with the 2913/14 combo is the wide
range of options available in configuring, either with
strap options or in real time, the different mOdes of
operation. The 2913 combochip (20 pins) is specifically
aimed at synchronous switching systems (remote concentrators, PABXs, central offices) where small package size is especially desirable. The 2914 combochip (24
pins) has additional features which are most suitable for
applications requiring 8th-bit signalling, asynchronous
operation" and remote testing of transmission paths
(e.g., channel banks). Once the specific device is selected, there is a wide range of operating modes to use in
the card design, as seen in Table 5. This table lists the
optional parameters and the pins which control the operating mode. The result of selecting a mode is listed for
both the 2913 and 2914.
The purpose of offering these options is to ensure that
the 2913/14 combo will accommodate any existing
linecard design with architectural transparency. At the
same time, features were designed in to facilitate design
'and manufacturing testing to reduce overall cost of development and production.
,2.2 Data Rate Modes
Any rapid conversion scerulrio presumes that the combochip will fit existing system architeCtures (retrofit)
FORT is identical to the 2910/2911 cOdec timing in
which a single high-speed clock serves both as master
clock for the codec/fIlter internal conversion/filtering
functions and as PCM bit clock for the high-speed serial PCM data bus over which the combochip transmits
and receives its digitized voice code words. In this
mode, PCM bit rates are necessarily confined to one of
three distinct frequencies (1.536 MHz, 1.544 MHz, or
2.048 MHz). Many recently designed systems employ
this type of timing which is sometimes referred to as
burst-mode timing because of the low duty cycle of
each timeslot (i.e., channel) on the time division multiplexed PCM bus. It is possible for up to 32 active combochips to share the same seria1 PCM bus with FORT.
VORT (sometimes referred to as shift register timing),
by comparison, utilizes one high-speed master clock for
the combochip internal conversion/filtering functions
and a separate, variable frequency, clock as the PCM
bit clock for the serial PCM data bus. Because the serial
PCM data rate is independent of internal conversion
timing, there is considerable flexibility in the choice of
PCM data rate. In this mode the master clock is permitted to be 1.536 MHz, 1.544 MHz, or 2.048 MHz,
while the bit clock can be any rate between 64 KHz and
2.048 MHz. In this mode it is possible to have a dedicated serial bus for each combochip or to share a single
serial PCM bus among as many as 32 active combo'chips.
6-93
inter
AP-142
Thus, the two predominant timing configurations of
present system architectures are served by the same device, allowing, in many cases, linecard redesign without
modification of any common system hardware or software. Additional details relating to the design of systems using either mode are found in section 3.0.
have its effect on line circuit costs even though the system transmission specifications may not reflect the improved performance margin. ,
2.3 Margin to Performance
Specifications
Gain Tracking-Figure 3 shows the gain tracking data
for both the transmit, and receive sides of the combo
using both sine wave testing (CCITT 0712.11 Method
2) and white noise testing (CCITT 0712.11 Method 1).
The data shows a performance very nearly equal to, the
theoretically best achievable using both test techniques.
End to end measurements, although not spec'd, also
show a corresponding· good performance with errors
less than or equal to the sum of the half channel values.
Half channel measurements have been made of the
transmission parameters-gain tracklng (QT), signal to
distortion ratio (SID), and idle channel noise (ICN).
The combochip benefits from design, manufacturing,
and test experience with first-generation PCM products
on the part of the system manufacturer, component
suppliers, and test equipment suppliers. The sub-millivolt PCM measurement levels and tens of microvolts
accuracy requirements on the lowest signal measurements often result in tester correlation problems, yield
losses, and excess costs for system and PCM component manufacturers alike. Thus additional performance
margin built into the PCM components themselves will
Signal to Distortion Ratio-This is a measure of the
system linearity and the accuracy in implementing the
companding codes. Figure 4 shows the excellent perfor-
Gain Tracking Error Versus Signal Level
2914 Combo AID
Sinusoidal Test (CCITT G712.11 Method 2)
Gain Tracking Error Versus Signal Level
2914 Combo DIA
Sinusoidal Test (CCITT G712.11 Method 2)
2 "
!
iii'
~
II:
o
II:
1
f5
.5
!
0
~
-1
~
II:
f5
.5
o
!
~
0
o
...
~ -1
o
I
~--I
1
~---------_I
~
=
... -.5
: -.5
1
1
I
1
INPUT
W.
1
I
1 1LEVEL
-55 -50 -40- - - - - - - - - - '0+3
1--":
dBmO
1
1
i
I
0"
1
1
1
I
-2
-2
210314-4
210314-3
Gain Tracking Error Versus Signal Level
2914 Combo AID
White Noise Test (CCITT G712.11 Method 1)
,Gain Tracking Error Versus Signal Level
2914 Combo DIA
White Noise Test (CCITT G712.11 Method 1)
1
1
1
1
1
1
1
iii'
~
~
i"'
!
~-I
II:
~
1':- _ _ _ _ _ _ _ _ _ _ _ _ J1
0
-2
r-+-+-..
1
-55 -50-:40
, I
L..l
1- - - - - - - - _ _ _ _ _ _ 11
~ .5
.5
gc -.5
::z -1
3
1
"'~
INPUT
1 1 LEVEL
0 +3
0
gc -.5
r------------ldB"!O
1
I
::z
I-~
~
1
I
I
i"i"--~
-55 ~50
't
-40
I
-1
I Il~~r
0 +3
r - - - - - - - - - - ---ldBmO
1
1--'
1
1
-2
1
210314-6
210314-9
Figure ,3. 2914 Half Chl!nnel Gain Tracking Performance Measurements
for Both Sine and Noise Testing
6·94
intJ
AP-142
--
i
0'40
.
~
~
~30
~
i
0'40
!i
.
~30
AID SINEWAYE TEST
~
!e2O
Q
5~
~
~
~
10
S!
D/A SINEWAYE TEST
0
1;;20
is
..
~
-
10
Z
~
0
-45 -40 -35 -30 -25
-15
-5
0
0
-45 -40 -35 -30 -25
5
INPUT LEVEL (dBmOl
-15
210314-7
2
.
Ii
Z30
0
is
~
I)
i
0
5
210314-8
ii
i40
~
1;;20
-5
INPUT LEYEL (dirnDl
/
!.4O
/--ft'''H~
0
\
1 Vfi-'."~
'-.
.
~
30
1;;20
is
FULL CHANNEL SPEC-
FULL CHANNEL SPEC
....
g
10
~
Z
0
50 -45 -40 -35 -30 -25
-15
-5
0
"in
5
INPUT LEYEL (dirnDl
10
0
50 -45 -40 -35 -30 -25
-15
-5
0
5
INPUT LEYEL (dirnDl
210314-9
210314-10
Figure 4. 2914 Half Channel Signal to Distortion Ratio (SID) Performance Measurements
for Both Sine and Noise Testing
mance of the 2914 for both the transmit (AID) and
receive (DI A) channels using sine wave and noise testing. The margin is greater than 3 dB above the half
channel spec which means that a larger error budget is
available to the rest of the channel.
Power Supply Rejection-Circuit innovation in the internal combochip design has resulted in significant improvements in power supply rejection in the 5 to 50
KHz range (Figure 7), and it is this frequency band
which usually contains the bulk of the switching regulator noise. These higher frequencies, outside the audio
range as they are, are not objectionable or even detectable in the transmit direction except to the extent that
they alias into the audio range as a result of internal
sampling processes in the transmit filter and AID converter. Sampling techniques in the combochip minimize
this aliasing. In the receive direction, excess high frequency noise which propagates onto the subscriber loop
can interfere with signals in adjacent wires and is thus
objectionable even without aliasing. The symmetrical
true differential analog outputs of the combochip are an
improvement from earlier designs which failed to maintain true power supply symmetry through the output
amplifiers. Not only does the differential design improve transmission performance, but it also reduces the
need for power supply bypass capacitors, thereby saving component cost on the linecard.
Statistical Analysis-A statistical analysis of G.T. and
SID measurements over many devices shows a very
tight distribution, as seen in Figure 5. There are several
consequences resulting from this highly desirable distribution: (1) the device performance is controllable, resulting in high yields, (2) the device circuit design is
tolerant of normal process variations, thereby ensuring
predictable production yields and high reliability, and
(3) understanding of the circuit design and process fundamentals is clearly demonstrated-largely as a result
of previous telephony experience with the Intel NMOS
process.
Idle Channel Noise-The third transmission parameter
is idle channel noise (ICN). Figure 6 gives half channel
ICN measurements which show a substantial margin to
specification.
6-95
inter
AP-142
2
ii
i
!a:
I
I~ENYELOPE
1
l _
1
15
.5
i
0
g-.5
... -1
~
MINIMAX
~40
1
1
1
1 INPUT
LEYEL
i
L ________ J
I
::J-50
I -55
-41/
~30
~
0
I
1
11 I+
________
0 3
1--1
1
1
Ii0
idBmO
~
(MIWMAX
ATaT SPEC. To\. 14
2114 COMaoCHIP
DIA IINIWAVE TEST
20
~
1
1
I
~
10
z
-2
S
210314-11
0
-45 -40 -25 -20 -2&
-15
INPUT LEYEL C-I
-I
0
5
210314-12
Figure 5. Statistical Analysis of Transmission Performance Showing
Tight Distribution Over Many Devices
I
I
AID
DIA
Weighting
ICN
C Message
15 dBrnCO
CMessage
11 dBrnCO
Figure 6. 2914 Idle Channel Noise (ICN)
Measurements
Autozero-The autozero circuit is contained completely on-chip. It automatically centers the signal/noise distribution at the encoder input., This ensures minimal '
ICN due to bit toggling and also maintains maximum
sensitivity to the AC signals of interest.
2.4 Power Conservation
Figure 8 illu*at~ typical power consumption and office equipment dissipation for a resistive line biasing
arrangement (with no loop current limiting) and for the
per-line PCM components. It can be seen that overall
line circuit power consumption and dissipation are
strong functions of subscriber loop resis~ce, and are
dominated by line biasing current regardless of loop
length. It can also be seen that the combochlp achieves
significant reductions in PCM component contributions relative to both the 291OA/2912A and
2910/2912. Present residential traffic characteristics
are such that the PCM components are active less than
10% of the time, and in its low-power standby state,
the combochip power dissipation drops t() typically
5 mW as the line Icurrent (and dissipation) goes to its
background on-hook leakage level of typically a few
milliwatts (but for very leaky lines, as much as 50 mW 500mW).
The concern for linecard power consumption and dissipation is related both to the cost of providing power
and to the system density problem involving convection
heat removal from the linecards. Consequently, much
recent line circuit development activity centers on elimination of the inefficient resistive line current feed both
by current limiting in short loops and by more exotic
and expensive per-line dc-dc converters. For both pres:
ent-generation designs and cost-reduction redesigns,
the typical combochip dissipation of 140 mW
active/5 mW standby will allow system board packing
density improvements and, power supply cost reductions.
A closer look at the effect ofloading (duty cycle) on the
average power dissipation of a combochip is given in
Table 6. Typical loading percents run as low as 5% for
very large switching systems (thousands of lines) up to
100% in nonswitching applications such as channel
banks. Clearly, the average power dissipation in a typical switching system is below 35 mW which facilitates
board packing density and cost of power considerations.
Table 6. Typical Power Dissipation Per Line
Using 2914 Combochip
6-96
Duty
Cycle
Power
Dissipation
Central
Office
5%
12mW
PABX
15%
25mW
Peak Hour
C.O.
50%
73mW
Channel
Bank
100%
140mW
inter
AP-142
POWER LINE
HARMONICS
VOICEBAND
100
SWITCHING REGULATOR
l0000HZ
1000HZ
-ZODB
-3ODB
-40DB
-50DB
210314-13
Figure 7. Wldeband 2914 Power Supply Rejection Ratio (PSRR)
72 VOLT BATTERY
900 OHM FEED RESISTOR
NO CURRENT LIMITING
200
400
800
800
1000
1200 1400
SUBSCRIBER LOOP RESISTANCE (OHMS)
1800
1800
2000
210314-14
Figure 8. Line Circuit Power Consumption and Dissipation Curves
6-97
inter
AP-142
has previously been in the nominal insertion loss of the
PCM filter and in the uncertainty of the reference voltage of the codec. With this cumulative 0.15 dB uncertainty in the PCM components themselves, the system
manufacturer had no choice but to resort to the cost
and manufacturing complexity of the active trim. The
combochip, however, can be trimmed during its manufacture to a nominal tolerance of ±0.04 dB which includes uncertainties in both the filter and codec voltage
reference functions. This leaves 0.21 dB uncertainty to
variations in the other line circuit elements and to temperature and supply variations.
2.5 Elimination of Gain Trim in the Line
Circuit
Four resistors-Rl- R4 of Figure 9-on the transformer side of the PCM components are used to establish
appropriate transmission levels at the PCM components and are, at first glance, equivalent in the two cases. However, a significant reduction in linecard manufacturing costs associated with individual line trim (or
mop-up) is possible with the combochip. The need for
this trim is dictated by system gain contrast specifications which typically require that the line-to-line gain
variation shall not exceed 0.5 dB, which translates to
0.25 dB for each (transmit and receive) channel. Table
7 shows that the major portion of this gain variation
The variation in combochip gain with supply and temperature has also been imprOVed to allow as low as
2910111
PCMCODEC
RING
TRANSFORM".:E~A~~=:::;-,,...:;;:::::.~
.----;
-------n1
I
~I
1:1
l____________~::~~~~~~~~~~~~~~~~~~~VCC
GRDD
Vss
GRDA
210314-15
(a) Line Circuit Utilizing Single-Chip PCM Codec and Filter
TRANSFORMER~::~--~~::;;;:~~-r~
r-41
~---t"--"I-ri.j.---..:t
1~ :f
TIP
1
1
1
r-+--..J
~--~
1
.......1_ _ _ _-+.......
'- _ _ _ _ _ ..J
210314-16
(b) Line Circuit Using Combochip
Figure 9. Schematics of the Codec/Filter Function and the 2/4 Wire Hybrid Transformers
6-98
inter
AP-142
Table 7. Gain Trim Budget for Codec/Fllter Functions
Device
2910
2912
2914
aT
Manufacturing Uncertainty
(Initial)
.aSupplles
Total
Variation· Budget
for Other. Components
±0.1
±0.05
±0.15
±0.1
±0.05
±0.15
±0.3dB
OdB
±0.04
±0.08
±0.12 dB
±0.13dB
,
• Assumes 0.5 dB end to end gain contrast specifications.
0.08 dB variation over supplies and temperature so that
more than half the system specification could be reserved for transformer, wiring, and resistor uncertainties. This possibility of using fixed precision gain trim
components and abandoning the active trim holds the
potential for simplification and cost reduction of the
line board manufacturing process.
version, Switching, and Transmission using the Intel
2910A/2911A codec and 2912 PCM filter) also describes the basics of using the fixed data rate mode for
first-generation codecs and filters which is essentially
the same as for the 2913/14 second-generation combo'.
chip.
'
3.2 Variable Data Rate Mode
2.6 Power Up/Down Considerations
The VDRT mode is described in some detail both in
section 2.2 and in the 2913/14 data sheet. This section
focuses on two design asPects: (I) the Iwvantage of
clocmg data on the rising edges of the clock for transmit and receive data, respectively, and (2) making the
2913/14 transparent in previously designed systems (a
retrofit" cost reduction redesign).
Power Supply Sequene&-There are no requirements
for a particular sequence of powering up the combochip. All discussions of power up or power down timing assume that both Vee and VBB are present.
Power Up Delay-Upon application of power supplies,
or coming out of the standby power down mode, three
circuit time constants must be observed: (1) digital signal timing, (2) autozero timing, and (3) filter settling.
An internal timing circuit activates SIFr , Dx. and TSx
approximately two or three frames after power up. Until this time, SIGr is held low and the other two signals
are in a tIj-state mode. During tlJis time, SIGx will have
no effect on the PCM output.
.
qock Timing-.-The 2913/14 is ideally set up to transmit and receive data, using the same clock, with no race
conditions or other marginal timing requirements. This
is accomplished by transmitting data on the rising edge
of the first clock pulse following the data enable pulse
FSx and receiving data on the falling edge of the clock,
which is directly in the mid91e of the Dx data, pulse.
Several manufacturers use leading edge timing for both
transmit and receive requiring an inversion of the receive clock.
Power 'Down Modes-These modes are described in detail in Table 3 of the +91~/14 data sheet except for a
fail-safe mode in ~e CLKx is inte~rupted. If this
should happen, both Dx and TSx go into the tri-state
mode until the clock is restored. This ensures the safety
of the PCM highway should the interrupted clock be a
loCal problem,
Figure 10 shows the transmit and receive clock and
data timing for an entire time slot of data. A closer look
at the timing functions is given in Figure 11 which
looks specifically at the first clock cycle after the transmit data enable FSx.
According to the 29i3/14 data sheet, the fram~ sync/
data enable fSx must. precede the clock (DCLKx) by
at ICllllt T tsdx or nominally 1~ ns for that clock pulse to
be recognized as the first clock pulse in the time slot. In
actuality, the 2914 will allow FSx to lag up to 80 ns the
DCLKx rising ~ge and recognize it as the first clock
pulse in a 2.048 MHz system.
3.0 OPERATING MODES
There are three basic operating modes'that are supported by the 291~/14: fixed data rate timing (FDRT), variable data rate timing (VDRT), and on-line testing.
3.1 Fixed Data R',t~ Mode
On'1c FSx has reached VIH of about 2V, the Dx output
The FORT mode is described in some detail in both
section 2.2 of this note and in the 2913/14 data sheet.
In addition, Intel Application Note AP-64 (Data Con-
will remain in the tii-state high-impedance mode for
6-99
AP·142
'Transmit Timing
210314-17
'Receive Timing
210314-18
NOTE:
All timing parameters referenced to VIH and VIL except tOON and klFF whiph reference a high impedance state.
Figure 10. Variable Data Rate Timing for an Entire Time Slot
Tdon or about 34 ns longer. It then comes out of tristate
and will represent some data which is invalid until the
valid data is available TDDX or about 75 ns (100 ns
worst case) after the clock rising edge. This means there
is about 90 ns of invalid data after the tri-state mode.
At this point there is valid data on the Dx highway
that lasts for approximately one full clock cycle.
Since the Dx highway is tied directly to the Dr highway in digital loopback, the valid data above is now
available to the receive channel with some propagatibn
delay. The receiver is only interested in the data for
about a 50 ns (110 ns worst case) window centered
about the falling edge of the DCLKr clock which occurs about half a clock cycle from the FSr rising edge.
The window width is equal to the data set-up time.
Tdsr, plus the clock fall time, Te, plus the data hold
time, T dhr. Information at any other time, on the Dr
highway falls into the DON'T CARE category.
Retrofitting the 2913/14-Severa1 switching/transmission systems have been designed using first-generation
codecs which operate at data rates from 64 Kbps to
2.048 MBps. In addition, they may 'have been designed
using the rising clock edges for both transmit and receive data.
Other aspects of these older designs could be relative
skewing between the sync pulses (Data Enable) and the
clock pulses in such a way that the. sync pulse occurs
after (Lags) the first clock pulse rising edge. All of these
conditions can be easily handled using the variable data
rate timing mode of the 2913/14 plus some simple externallogic. By the addition of this logic, the 2913/14
becomes transparent to the older deSign thereby allowing an upgrade in performance while having no impact
on backplane wiring or on system control hardware/
software. In addition, many of the features of the
2913/14 may be incorporated, such as the test modes,
which provide additional capabilities beyond those
available in the' original design and at a lower cost.
The circuit diagram in Figure 12 shows the maximum
amount of additional random logic that could be necessary to make the 2913 or 2914 completely transparent
at the linecard level (no im:pact on backplane wiring or
timing). The inverter on DCtKR inverts all the receive
clocks for each linecard. This inverter is only needed if
(1) the transmit and receive clocks are inverted at the
system/backplane level (as opposed to the linecard level) and (2) $e previous design used only rising (or falling) edgeS to clock the transmit/receive data.
6-100
inter
AP-142
DIGITAL LOOP BACK
VARIABLE DATA RATI! MODI!
Fix,.....
2::Iv - -
-;f('"
~JI
Ttadll=15 nHe
-IlI 1,,-----I
DCLK..,
I I
1,,-,/TdeI.=100 nHe I
~ ,.?~
I
~~~I~lnlr-------~I-+------------~
1
I
D.
TRI·STATE
MODE
7
I
I
I
I
1
!.-
TRANSMIT DATA VALID
I
I
I
I
Tdon2:35 nHe I
I
DON'T
CARE
Dr
I'
I
I RECEIVE DATA
1
Dr
Trdo-50nHe
(SETUP TIME)
210314-19
Figure 11. Waveform Timing Diagrams for the 2913/14
3.3 On-Line Test Modes
4.1 DeSign/Prototype Testing
Two modes are available which permit maintenance
checking of the linecard up to the SLIC/combochip
interface, including the PCM highways and time slot
interchanges. Tests include time slot-dependent error
checking. The two test modes are called "redundancy
testing" and "analog loopback." These test modes are
described in detail in Section 4.3.
In the design of a linecard prototype or in the qualification of a device, it is often helpful to have direct access
to the internal nodes at key points in the LSI system.
Some manufacturers even dedicate pins specifically for
this function. The Intel 2913/14 approach was to reduce cost by using multifunction pins and smaller packages to achieve this goal. Measurements through these
multipurpose pins will typically yield full device capability against performance specifications, however these
measurements are not included in the device specifications. This is done for two reasons: first, to save manufacturing cost by eliminating unnecessary tests and
specifications, and, second, more cost effective manufacturing test techniques are available, as discussed in
section 4.2.
4.0 MULTIMODE TEST CAPABILITIES
The 2913/14 was designed with every phase of design,
manufacturing, and operation taken into consideration.
In particular, several test modes have been implement·
ed within the device with essentially no increase in the
package size or pin count. These test modes fall into
three categories: design/prototype tests, manufacturing
tests, and on-line operation tests; see Table 8.
6-101
inter
AP-142
2913 HOOKUP
2914 HOOKUP
VBB
VBB
PWRO+
PWRO-
GSR
4
PDN
CLKSEL• L
,..-DClKR-{
DRC
FSR-(
GRDD [
7
8
9
10
-
VCC
GSx
VFXIVFXI+
GRDA
1-'.ASEl
14 !=J-i'SX/DClKX13pDX
12 P.FSX 11 ClKx
1
PWRO-
21
GSR
2914
SIGR L. 8
,DelKR-£:
DR C
r--FSR-£:
GRDDC
P
9
10
11
12
VCC
GSx
VFXIVFXI+
GRDA
NC
SIGX/ASEl
17 f-/"'i'S XIDClK X18pDX
ISP.FSX U pClKX
13
ClKR
P
I
I
I
DClKR
I
I
.'1.
, ...
I
~
TSXI
I
TSRI
210314-20
NOTE:
(1) One inverter per linecard.
Figure 12. Circuit Diagram Showing Connections Needed to Retrofit the 2913/14
into Existing Variable Data Rate Systems
Transmit Coded (Encoder)-The transmit filter can be
bypassed by directly accessing the differential input of
the transmit encoder with an analog differential drive
signal. Table 9 shows the control pin voltages and the
input pins for this test. This test mode permits DC testing of the encoder which is otherwise blocked by the
AC coupling (low frequency reject filter) of the transmit filter.
Table 8. Multimode Testing for Each Level from
Design to On-Line Operation
• Design/Prototype Testing
- Direct access to transmit codec inputs
- Direct access to the receive filter input
and the transmit filter differential outputs
Transmit and Receiver Filter-Table 9 shows the control values that permit access to the differential' outputs
of the transmit filter and the single-ended input to the
receive filter. The voltage difference between the transmit filter outputs represents the filtered output that will
be encoded. By driving VFxI (single ended or differentially), the transmit filter response is obtained as a differential output. The final stage is the 60 Hz reject filter
which is a switched capacitor filter sampled at an
8 KHz rate. When measured digitally (after the encoder), the filter characteristic is obtained directly: however, when measured in analog, a sin (CJ)T/2)/CJ)T/2 correction factor must be included.
• Manufacturing Tests
- Standard half channel tests for combined codec/filters
- Filter response half channel measurements,
• Operation On-Line Tests
- Analog loopback for testing PCM and
codec analog highways
- Redundancy checks with repeatable
DX outputs
Table 9 gives the input control pin values and the corresponding functions assigned to the key test pins on the
2914 for the design test modes.
6-102
Ap-142
Table 9. 2914 Te.t Function. and Control Input. for the Design Test Mod••
Input
Pin Function (24-Pln)
Teat
Function
PDN
DR
Pin 9
DCLKR
Pin 17
TSx/DCLKx
Pin 18
SIGx/ASEL
O-Vee
O-Vee
DCLKR
TSx/DCLKx
SIGx/ASEL
Normal Operation
Vee
O-Vee
-
+VFX
-VFX
Encoder
O-Vee
Vee
VFRI
+VFXO
-VFXO
RCV, XMIT Filter
NOTES:
The terms used above are deflnad as:
±VFX ,. Encoder Input
± VFXO = XMIT Filter Output
VFRI = RCV Filter Input
The input to the receive filter nrst passes through a
sample and hold. This is necessary to simulate the
sin (ClIT/2)/ClIT/2 characteristic that results from the
decoder D/A output. The net result is a filter characteristic that can be compared directly to the specincations.
Start-up Procedure for Test Modes-To place the
2913/14 in the test mode it is first necessary to operate
the deviCe for a few ms in normal operation. Then vim
can be applied to the control pins to select the desired
test access.
4.2 Production Testing
While it may be convenient for the designer to have
access to both the niter and the codec inputs and outputs during the design or evaluation phase the nnaI
product will always use the filter and codec circuits
together with all signals passing through both on the
way to or from the PCM highways. It therefore makes
sense to perform all manufacturing measurements with
the device configured in its normal operating mode, i.e.,
all measurements should be complete nlter/codec half
channel measurements. This approach not only tests
the combo as it will actually be used, but also saves
time and money by eliminating separate measurements
and correlation exercises to determine the full half
channel performance.
Since the transmission specincations of SID, gain
tracking, and ICN all require measurements which are
"in-band" or "filter independent," the codec functions
can be easily tested using conventional half channel
measurement equipment. The apparent difficulty arises
in trying to fully measure the filter characteristics beyond the half sampling frequency of 4 KHz. In fact,
this- is not really a problem with today's computerbased testing plus an understanding of the sampled data
process which is discussed under "FUter Testing".
ENCODER/DECODER TESTING
Transmission specifications are AC-coupled in-band
measurements when using either CCITT G.712.11
methods 1 & 2 (white noise testing and sinusoidal testing, respectively) or AT&T Pub 43801 (Sinusoidal
Testirig). The noise testing uses a narrowband of flat
noise from 300 to 500 Hz to drive the filter/codec (either in aruilog or the equivalent digital sequence for the
transmit/receive channels, respectively). The resulting
harmonic products are used to determine SID. Likewise, gain tracking is also determined from this signal
input. Sinusoidal testing uses a tone at 1.020 KHz for
SID measurements and gain tJ:acking measurements.
Idle channel noise measurements require the combined
filter/codec since it has long been shown that separate
measurements of filters and codecs are difficult to relate
to the combined measurement (usually there is no specinc relationship because of the non-linear properties of
the encoder/deCoder operations). Typically the frequency response of ICN measurements is primarily determined by the weighting filter (either C message or
psophometric, which are both AC-coupled, bandpass
type filters).
The conclusion is that combined filter/codec testing in
no way limits the measurement of half channel transmission parameters of SID, G.T., or ICN.
FILTER TESTING
Testing the filter response, of the transmit and receive
channels presents two separate test situations which, in
some ways, are mirror images of one another. With the
transmit side, signals may be introduced at any frequency to test the filter response. At the output of the
filter, the resulting signals are sampled at 8 KHz and
digitized resulting in a sequence of PCM words representing the samples of filtered input signal. On, the receive Side, a digital PCM sequence of samples representing the driving signal is converted to an analog signal by the decoder and can be measured at the filter
output in analog form.
.
6-103
AP-142
Sampling Process-In both cases, of testing the filter,
the signal eventually is in a sampled form. Since the
sampling rate is fixed at S KHz, all signals must be
represented below 4 KHz (half the sampling frequency). This means that the PCM bit stream can only represent signals at frequencies below 4 KHz. If a signal
above 4 KHz is 'sampled, those samples appear exactly
as if the signal was at a frequency ,mirror imaged about
4 KHz. Two examples include signals at 5 KHz and
7 KHz which will result in samples that look like signals of 5-S KHz = 3 KHz and 7-S KHz = 1 KHz,
respectively.
Conversely, the sampling process produces replicas (aliasing) of the sampled signal around multiples of the
sampling frequency. Therefore, if two signals are introduced digitally representing 1 KHz and 2 KHz, there
will also be frequency components located at S KHz =
± I KHz and S KHz = ± 2 KHz, and so on for all
multiples of S KHz. Thus it is possible to generate frequencies at arbitrary values after sampling by controlling the frequency of each signal within the 4 KHz input band regardless of whether it is in analog or PCM.
When an analog signal is sampled, the frequency components generated are all of the same amplitude as the
corresponding input spectral components. Therefore,
on the transmit side, measurements made from the
PCM data will' have a throughput gain of unity except
where components are superimposed (e.g., a 4 KHz input signal will have -an alias component at 4 KHz
which may double the amplitude at 4 KHz when the
two components are combined).
are generated to determine spectral frequencies and amplitudes at the codec output, or (2) use an "ideal" D/A
converter on the PCM samples to convert the digital
data back to analog so that the spectral amplitudes and
frequencies can be determied using analog circUits such
as spectrum analyzers or filter banks. In either case, the
effects of sampling will be the same. Figure 13 shows
two spectral diagrams of amplitude versus frequency.
The top diagram represents the locations of nine test
frequencies corresponding to the seven specified frequencies in the 2913/14 data sheet plus a component at
7 KHz and one at 10 KHz. The bottom figure shows
the "equivalent" spectral component locations when
carried in the PCM bit stream. As an example, frequency "S is located at 7 KHz. The corresponding PCM
frequency is seen in the lower figure at 1 KHz. Note
also that the analog component at 9 KHz (see "S·)
would also generate the I KHz component in the PCM
data.
To test the filter, the desired test frequencies are introduced in analog to the filter input in such a way that
there is no confusion as to where the resulting component will be after sampling (Le., don't simultaneously
put in 1 KHz and 7 KHz since both of the,se il1puts
result in a 1 KHz component in the PCM data). Then,
using either technique (FFT or analog) mentioned
above, measure the amplitude of the corresponding
When an analog signal is reconstructed from digital
samples, it goes through a sample and hold stage which
has the effect of imposing'll weighting function on the
resulting spectral components that ,is represented by
smo
o
[~Tl ~ ~:)
234
•
7
.'.
10
FRIO
IcH&
210314-21
8m
ratin/.! systt'm for rt'v('n·lay~r thin·wlr~ solution with:
sI'CLlNK2. GNr:'I'XGVR, XCVRCBL·5
.rc:UNIK.ZDEVIK.IT Nt'lBIOS i)I'Ve1opcr's Kit with:
2·sI'CI.INK2CNET"ITs. Nl'tBIOS
pmgl'ammer kit
PO.DOSRBIRO
RI~llll'st Block l)evelopcr's Software
with iNA 961 for PCLlNK2
.rc:UNIK.ZIU"
t
MS·NET
IBM PC LAN
sPCLlNK2TWKIT
Is Session
sPCLlNK2
10 1
14 Transport
INA 961
sPCLlNKIIBD
" Network
f3
7
12 Data Link
XCVItCBL 5
5.Foot cable
4
IAI
l1)
1).
./
sPCLlNK2NIA
11 p~slcal
~
lAJ
~
--11 ...'.... 1!hln.wl,.
"---' T,.nseelver
7-6
fPl[p,3[EUrn.!tlOINl~[p,3W
VAX/VIIS· OlteaNETTli NETWORKING SOFTWARE
tJOMrUI'E O"e.NBI"" SOUJ'I'ION I'OIl
I'BE ..AX
\.\X/HIS \('(\\orklnlj soft\\af'(' (VMSNF.'I) providl'!! tlK'
Oprn\ET mnJlt'('tion for a \·\X· or \lirroVO\X II· IIYlItt'm 10
IR\lX. \E\I\, \18-1)08, lllljlX SystE'm \ and iNRM SYlItI'nltl.
\ \lS\ET I'nahles a \lirro\:\X or VAX s~stt'm ttl at'l·as 1m
Oprn\I':T firt' ser\er s~stem allo\\,lng an~' OIK'nN~:T
ronsuml'l' node transpal'l'nl me acct'tls ttl flit's nn till' .
\lirro\-\\ OJ' \-\X.·
Thl' \ ~IS\~;T pl'llduct Indudl's oOt' I~' 1110 tYIN'S of ~:th!'I'IK1
runtl'llllt'r hoard!!: a liMBUS· hoard [or th!' VO\X or a (,I-IIIIS·
hoard [nr Ihl' ~hl:I'II\:\X.
\ ~ISN~:'I' lIoft\\8l'1' IIl'rfnrms tht' OIH'nN~:T fllnrlmns VIII an
Impll'ml'ntation or tilt, 'II1'11I1)I'~ ~'III' '\In'Ss (NWI) Oil' SI'r\1'I'
jll'llhK'ols. \ ~IS c'nnsunK'I'IMIiI'l'l'tinnill fill' Imnsfc'l' IIlIhIH'S.
and Inlt'l's iN·\ 960 translKlrt laYl'I' !lOflllill'I' I'unmng on till'
sllJlJlhl~1 i1l1l'IIlgl'nl IAN mntl'lllll'\'!!.
\ St~ of nplllor~ managl'lIIl'nl IIIIIIIII'S 111'11\111(' (~hl'I'\))\AX
IIsprs II ith m[ormatioll and statistil's ahout \ ~ISI\l~:'I'
aetll 1111'S
PIU; AtJtJESS
• Trallspan'nt fill' U(\'I-:'":; LN'IIIl"n a \ \M ~IS st'rwr llml
\IS·DOS. iR\lX. \E\I.\' l'\1\ S~slt'm \ and iNRM
laMPe ATIXT
s~stt'ms
• DECIlt'l rnmpatihj)it~ mnSllnl('I' nodi'S mu~ arct'S!!
rpmott' files usmg \ \IS loglral namt'tl owr DBCm't (no fll('
loclmg or rompatihilit~ moclt' Opl'IIS)
iRMX System 120
rlltllllJfJl'fJflDES
\ \V\ \IS ~I'l\\orking Sol'tllart' for
\.\.\ fanlll~
\.\V\ ~IS 'o/('tllorling Soflw81'1' fOl'
\h('l'0\ \\ II
.'SI'II.Ef)IJIII.EIfIEN'I'S
• \-\.\ 75(). 780. 782, 783
• \-\\ 8200. 8250. 8300. 8:i30. 11600. 116:;0
• \1I1'I1)H.\ II
• (\lirl'\))\ \IS \(,!'Slon!! ~.2·j.0
BAII.IIWAII.E I'EAI'IJII.ES
• 801116J82586·basc'ri L\'-oj Boards
• l'nibu~ powt'r rt'quirPml'nLs: +:; \'DC at ~.5 amps,
6 amps ma~lmum, - 15 VDC al .5 amps. :1 amp surgl'
• QhU8 ptl\\rr rt'quireml'nts: +;; \'DC at 6 amlls, 6 oml's
ma~lmum.
• Internal t'ablt'S, mountmg hard\\'arl' anti lIll1'r munllu)s al't'
Inr)udl~1.
liurd\Ian' installation and sc'r\'i('(' mntrm'tK should hI'
IIlth Digital F.quipmt'nt ServiN' l't'rsonnl'l.
arrall~('d
7-7
I
[P>L9J~1!J IilMJOINl~IPd'\f
I~TEL SYSTEM V Ope.~ETTM. ~ETWORIU~G SOFTWARE'
COMPU'I'E OpeaNET"' SOt.lJ'I'lON FOR
IJNIX St'S'I'EM "
S\ ·Oprn\ET connects Int!'1 S) STEM V/386 systt'ms with all
the Open\~T nodes. S\·Openr\ET is available for Mlll:I'IBUS
I and \ll'LTIBL'S 11. The product includes a complete
solution: commUJllcatlons board. Mail. VT. prlOt spooling,
nameserll'r IOterface IJbrar~ (NSII, and network
management.
S\·Open\~:T aiJolls application interfacing through thl' lINIX
'I'Ll hbrar~. o\pplicalions IIIay also access SV·()pt'nN~;T via
the hlgher·lt>\el !'oSI librar~. S\'·Open \jF.T can also coexist
II ith the U"IIX network. Kf'S,
FEA'I'fJRES
\etllork File o\ccess (:'>E>\) based
• Core, E.\tended, and Intel protocols supported
• Both Sener and Consuml'r functionality supported
• Remote Batch BxecullOn (RBE) through "rexe('"
NE'I'WOR.M. ADMINIS'I'RA'I'ION AND.
MANAGEMENT
PRINT SPOOLING
• Compatilil(' II Itll XE~I.\-'IJET
• Supports Core prinl.('I' splxlllllg IJroto('ol
• Interfal1' through "I'prmt"
• File·hast'(1 \ameserl('l' compatible IIlth XENIX·I\F.T
Jnel/data files
IJNIX STANDARD INTERFACE
MAIL
• Interface Via AT&T suppli(~1 '1'1.1 (Strl'ams) hbra!':"
aiJowmg all TLI applications Ul mU'rtllX'l'ote II Ith SV·
OpenNET
• Supports \I\!DF (,1 2BSD l'''IX lIIall)
• Intf'ropel'atL~ lIith XEIIJIX·\ET
"'RTfJAL TERIfIINAL (t'T)
•
Opcn:-'BT/~IS·\jET
\'T prolCK~lls supported
• Both Server and Consumer functionality supportt>d
• SV·OpenN~:T pmVJ(l<~ a lihrary, NSI. for high·level Virtual
CircUlt (Ve) tTl'ullon ano naml' to aodl't'ss t.rHlIsl~ti()lI,
The NSI tht'n rommunJ('a\l'S r1lr(x'tly lIith the UNIX TLI
HOST REl)fJlREMENTS
Intl'l SYST~;~I V3.1 l NIX O(lt'ratin/.i Systt'm on MULTIBUS 1
or MliLTlBlIS II
'ROBIlCT CODES
SVNt;T5SZ"
SVIU:T5:JO
7-8
S\·()pPnN~:T
lIith iSBC ~~2A on
\1l'1:l'lkl'S I
S\-Opl'nIlJKI' IIlth ISBC 186/530 on
\JlII:l'lBlIS II
iP>fRl~U ~o 1NlLA\!Rl'(f
MAP/TOP OpeaNET TII NETWORKING SOFTWARE
I'E~TrJBES
'SO/OS'CONPORM~NTNETWORM
SOITW~RE
Intel's MAPNE1"" provides all seven layers the industry·
standard ISOIOSI specificatIon ror both Broadband (IEEE
802.4) and Ethernet (IEEE 802.3) envIronments.
or
The MAPNET sortware comes preconfigured or configura hie
to allow the OJ<:M to change parameters as neeessary. In
addition. MAPNET provides multIple implementation
methods (MAP on Broadband, \IAP on ~:thernet, and the
cOt'xistence or Broadband and J<:thcrnet) to get startt'd with
MAP. The open software architecture allows an easy port to
other operating systems and hardware.
PRECONI',GrJRED M~P:lISXM
The preconfigured rorm (MAP21SXM) provides ISOIOSI
Layers 3 through 7 of the MAP2.1 specification, It is
prt'conrlgured wIth INA 960 to run on Inlt'l's iSBC·554 I~:E~:
802.4 Token Bus MAP hoard to provide a seven layt'r
solutIon. The precnnrlgured MAP21SXM software product is
supplied wIth IRMX dt'Vice drIvr.rs, user int.erface Utilities.
and the conlormance tested MAPNET sortware.
The MAPN~;T products Ilrovide sesSion services. directory
st'rvlrt's. network management. F'TAM. and CASE as
SIJt'<'ifll'd in tht' MAP2.1 specification.
Using the S('r\iet's of \IAI'I\ET. users can initiate
communications with other users on a MAP network. access
mformatlon regarding j't'sources available on the network.
transft'r filt'S 3(,(,OSS the netwurk, and address others by
logIcal namt's mtht'r than numhered addresses.
Th(' ~Ianllfa('turmg ~1('Ssagmg SpecifIcation (R8-511 or MIAS)
fur M:WNr:" on IRMX·86 is also available from independent
softMlrt' vt'ndors.
PRODrJCTCODES
M.tPNET21
M.tP21 SIMKO
Cunfigurable ISOIOSI Layers 5
through 7 of I he MAP2.1
I'reconfigured ISO/oSI Layers 3
through 7 of the MAP2.1
CONI'IGrJB~Bf,E M~PNET:l1
The conflgurable MAPNET21 implcmen~ layers 5 through 7
or the \IAP2 1 specification. MAPNET21 is designed to
Interface wIth 1M 960 and the iSBC·554 til provide a
complete seven lay!'r wnfigurable MAP solution for OEMs.
/
I
I
I./
I./
I./
I
I
1
Dlrwctory
ServICes
1)
~
FTAM
Consumer
~
Z
Presentation
w
:IE
SessIon
c
Transport
~z
:IE
~
w
Z
I
Network
-
FTAM
-fl
/]
1
Jf)
_12.1
1
l1
l1
.~
MAP2,18X1I
IA
-/
Data Link
IA
-/
Physical
7-9
1
[Fl:Rl~U~~INl&'IRl¥
IN" 9 60 Open NET TN NET W 0 R KIN G S 0 F T W" R E
FIlU)' CO/tlrUAIU' ISOIOSI
TIlANSrollT AND NETWOIl"
1\ \ 960 IS a complete lJetI\OI'~ and Transport (ISO/OSI
La~ers 3 and 4) software s~stem plus a rompr('hensiw set
of nelllor~ managemenl funclions, Data Link (OSI Layer 2)
drhers for II<:~:~: B02.3 Ethernet and II<:EE B02.4 Token Bus
(\1 WI, anel s~ stem em ironment featul'l's.
FLEXIBLE AND HIGH")'
CONFIGIlIlABLE
1\-\ 960 IS a mature, ne\ible .. and read~'lo·ust' software
bUilding block for Og~1 suppliers of networ~ed systems for
both manufacturing and office applications (e.g .. ~I:\P
rfacffi. RS232C and
RS-l22·VRS449 ('()mp..1tlhll'
•
6 MHz 8()IR6 mll'rupnJ('l'lAAII'
•
128" Ii~tl'~ uf duul'purt K,\M c'xllltndableo
un·board tu 2561\ b~ll's
• Slx'kc'ls lilr up to 1921-: b)tffi of JRDEC
28·pin mandant mc'mnr~ drvlrt'S
• PntdlK't (''(Kt(~ SS1lC186:' I
1SII~ISXIfl'·
lJlJllti IfIIJ£rIBIJS I
IEEE 8,,11. :lIEr.EIINEr NEr,"",,, INI'EB.,.tI~E tlIMPI'EB.
CPU .. .. .. ... .... .. .......................80186 (8 MHz)
LAN Coprocessor. . .
. ..............82586
RAM (Bytes) . . . . . . . . . . . . . . . . . .
. ...............256K
EPROM (Bytes) . . . . . . . . .
. . .. 128K (27512), 16K (2764)
MULTI BUS'" Address . . . . . . . . . . . . . . . . . .. Any 64 KB boundary.
with a 16 MB address space
Software Support .. .. .. .. .. .. .. ... ... .... ... .iNA 9601961
Power ReqUirements + 5V . . . ... . .. .. .. .............6,2 A
+12V ............................O.SA
• HIgh f'torforman('t' IEE~: 8112.:lIl·;ttwrJll't
compatiblt' nf't\lnrk fnmt-end pnl('('ssClr
• Residl'm n('l\lork soft\lal'l' ran bc' dnwn·
loadl'd Cl\l'I' IhI' bus ur thl' LAN
• On·hoard diagnClstir and txXlt flrmW81'l'
• ISXM'" 552·\ versccm is a prrcnnflgurl'cl
controller [or executing iNA 961 (ISO 8073
Transport and ISO 8473 'IIet\\urk
soft\lare) In System 310 and 320 family
pntducts
• Product Qxje: pSBC552A. pSXM552A
7-11
1F>1Rl~ILD~D~~~IPl'jf
MIJLTIBIJS@I1 ,Ope.NETTli ~,ETWORK~NG "ARDWARE
I
ISBt;e IB61lJ30 ItIIff,TIBlfse"
IEEE BO:l. 31ETIIEIlNEI' NETWOIll( INTEIlP,4(JE ,4B4,.."EIl
• PrOl ides Ethrrl1t't(!) (lg~:~: 1102.3)
compatlhll' net\\orkmg capahihty lill' all
\lL'I:rnWS"'1I systems
•
CPU ....... , ..... , .. , , , ,. ....., ......••••..80186 (8 MHz)
DRAM ............................ , ........ 512 KB on-board '
EPROM .... , ......... 4 28-pln JEDEC s~es,up to 256 KB (max.)
using 27512 devices. up to 512 KB (tolal) using'iSBce 341 module'
Ethernet 110 .........................1 channel 15-pin q:>nnector
Controller.. .. . .. . . . .. " ....... 82586 LAN Coprocessor
Serial 1/0 . . . . . . . . . .
. . . .. 1 channel RS232C, 15-pin connector
Controller.... , ............... " ...................•8031
Leads Supported.
. ... '. . .............. TO, RD
Timers ....................... " ....................... '.3
Interrupts. .........
5 levels with 5 on-board sources
and 255 sources from iPSB Bus
Power Requirements + 5V . . . . .
.8 8 A (excludes power for
user-installed memory devices)
+12V
, ...•....... SOmA
-12V ... .
.. .............SOmA
\ll'LTlBlIS"'1I IPSB (parallel SysU'm Bus)
Interlac/' wlt,h full M('SS8/.W Passing
rapahlht~
• Kl'SIUl'JIt Ilrmwa!'/' to support, RUilt -m-Sell·
Test (BlST) pO\\l'r-up dlagnosl.I{·s. ann hll$t·
to-controller softwarr download
• ~hur 28-1.1111 JEDf:C SIIffi. expanuahle to 8
Sites \\Ith ISBC'" 341 MlIl:rIMODlIL~:iII) for
a 1lI!l\lmum of r, 121\ hylffi of EPROM
• Provldl'S onl' KS232C serra I port fol' ust' III
drhug and Iffitmg
• Product CAlde: pSBCI1l6530
PC HilS OpenNETTli NETWORKING "ARD,WARE
PtJ £INI(:I NETWOIlK INTEIlP,4(JE ,4B4,.."EIl (PtJ UNI(:I NI,4)
CPU. .. .. .. .. .. . .. . . ' " .................80186 (8 MHz)
LAN Communications Controlier .. . . . . . . . • . . .. . ... .' ... ,82586
Ethernet Interface. .. . .....15-pln connector. 82501 serial interface
DRAM 256 KB (dual-port), 0 wait-state memory access by the CPU
EPROM ................... , ........................16 KB
Size ...................... "., ......... 4.15 In H x13.3 in W
Power Requirements + 5V
.. . ........... ,... . .. 2.0, A
+12V .', .........................0.5 A
• Intelligent high performanCt' hardw81't' with
on-hoard nllcroproct'Ssor, 16K bytes
EPROM and 256K b~tes RAM.
• Full slot PC AT. PC XT (or compatihle
computer system) board
• 80186 microprocessor, 82586 LA~
coprocessor. 8 MHz zero-walt-state
memory access.
• ~A \I ~hlll't~1 h) tht' PC host and PC I.II1k2 hOllrd \ ra an 8/1: memory
windo\\.
• ,Iumlx'r st'I(~'lInn for ~:lIll'rm1
•
~;rf('('tl\l'
st'lf drallnOslI(·s.
• Pl'tllJU('t nKIl': sI'CI.I\I..2NI·\
7·12
()f'
II':~:~:
B()2.:l
,---_ _ _ _ _ _ _~=_=:_:_::_:_:_-------..,~a=ilIEU~UINl~IRlW
OpeaNET™ NETWORKING ACCESSORIES I
ISBX'" (JBB IM'I'II UN" ENGINE /fIll£'I'IItIODll£E~ BOIIIlD
LAN Coprocessor
....... - . , , .. - .. , ..... , .. ,82586 (8 MHz)
RAM (Bytes) .
. .. .................. . ...16K (dual-port)
Software Support
........................ .iNA 960/961
Power Requirements +5V.
.2.0 A
+12V...........
.. ...lOA
•
•
Pr()\ Ides an IEEE 802 3/Eth('rnt't
compatible connertioll for 8086 and
801H6-based host boards OWl' a 16-IIiL
iSBX" mtcrfarp
• 011111':1111111' 111111 1\ \ Il!iOl!)(il ISO H07:l Tl'1Inspurl und ISO 8473
NI'\llol'k sollllat'l'
Singlt'-lIld(' ISBX'" MliLTIMOf)l'I.W·
•
I'I'OIl(it'S all 11,:10:10: 1102 :llo 1~:Io:I': H02. t ~outt'r ('a)labllit\ II ht'n UM\'d
willi 11I"ISBe'" ~~ 111o:1·:E H02.1 L \\ (111111'H1I('1'
-
•
1'1'011111'1 Clld." sSB\'iBti
ID(]/fl fJlI-IIN'I'EUlNIr" I'tlN-fJll'l' llN.'I'
Size ..... , , . . . . . . . . . . . . . . .. .. 14 in W x 7 8 in H x 5.5 in D
Power Requirements ........... .100n20/220/240 VAC, 47-64 Hz
• Connecls up to nmp Rtht'rnt't mmpatihlt'
lIorkstatlons without !.II(' "t\'dlo!'
tranSl't'lIers or maxial cablc
•
•
Casl':!d"III.' 10 ~III'IHIII II-HI IlIlIblolltllll'
•
I'I"HIIII'I (Jill!- I'IlC\1!1\ II
Connt\'ts dll'l.'('ll~ to thl' ~:tht'l'n('t ('mlxrul
('able through a stanclard tranSt\'lwr ('ubll'
E'I'HEIlNE'I'/'EEE BOZ.3 .,"'N-W'IlI: 'I'lltiNSCI:• .,,:1l
Size
..
Power Requirements + 12V
(from transceIver cable)
•
DiN'asl metal cast' for protection. I'('du('('d
E\11. and efftclent heat dissipation
•
IAlII mrush current at pOIlt'r-up. auto
shutd()\1 n II hen IOII-mput lultage OCCUl'S.
and surge protection
•
IE~:g 1l()2.3-compllant. Ethernet V1.0/\,20
2 81n x3.6 in. x3.8 in
.375mA
•
Th"~'I.~:lls 1Ill1llilol' pmll'l' ~lalll~ p:lckl'l mllisions and sl~nal qllullt~
•
Rt'mOlallll' B\C I~IK' (ahlt, IiiI'
•
llsl'r-mnl'lglll'alllt' lill'us(' 11111101' 1IIIII0UIIlI'ilI'Ihl'at
•
Pl'tJdllct eml(' C\I-:'I'\C\ ~
compatible
7-13
OJteaNETTII NETWORKING ORDERING IN'ORItlATION
R.IINET
RIIllUNIT
IRMX-NET for IRMX 86 operating system
IRMX-'lET for iRMX II operating system
ePClUNKIMA
ePClUNKl
ePClUNKIlBD
I'C Llnk2 Network lnl.erfHCt' i\dllllLl,' lIurdwul'l' Olily
Seven-layer Solution with sPCLINI\2NIi\, iNi\96I, NI'tBlOS intl'r£8C(', M8-NET
five-layer Solutkm with sPCLIJl.II.2J1.Ii\, iNA!J6I, Nt'tBIOS intl'r.l'at\'
Seven· layer Thln-wlI~ Solutkm with sPCLlN"2, CN~m\(''VR, )lCVRCBL·[j
NetBIOS Dt'VClopcr's Kit wiUI 2-sPCLlN"2CN~:'I'''I'I'l1, NI'tBI(X:; programml'r kit
R(~IUl:Mt BIIX:k Dt~:IOIK:r'll SOnWII1\' with INA 061 fur PCI,I'II"2
RlI)alty fee for I'CI.DOSDRBIRO
INA!J61 WI to R2 migration I!lJftWUI'l: for 1'(; I,Ilk Hlld RI to W3 COl' 1'<: 1,lIIk2
Royalty fee for PCLNKSWlJl'RO
.raJNKZnIUT
III'CI.INUDEWKIT
I'CLDOSII_.
rc:tD08IlBIRF
I'CmUWIlP.
PCUlUWIlPRF
t'.4X/t'BS o,.eaNI:'I' PllflDIIfl'l'S
Jl.l'tworking SoI'twal'l" for VAX family
WIlMET
\(bJUVMS Networking Software for MlcnJVAX II
IIIWIIIMIT
"NIX SI'S'IDI t' OJINNE'I' .....IIflFS
U:-lIX SV.()penNET with iSBC 552A on MULTIBUS I
SWNITSSZA
UNIX SV-openNET with iSBC 186/530 on MlILTIBUS II
SWNIT1I30
III,,"ITZ 1
IIIAPNITZ 1RF
IIIAPZ 1SliM.
IIIAPZISIM.,
SllCSII41
SKSS43
Umfigurable ISOIOSI Layen; 5 throul!h 7 of tilt, Mi\1'2.1
Royalty fet:' for MAPNET21
Pl'Ct:'Onfigured ISOIOSI Layt'l'S 3 thl'llUllh 7 of tlx' Mi\P2.I, in!'lUlk'S license
Ro~alty fet:' for MAP21SXM
iSBC554-1 MULTIBUS I MAP Communiration~ ~:ngil1l'. Xmit: CII 3', 4' Rev: CII P. 0
ISHC554·3 Ml!I,TIBlJS I MAP Commumratf(m~ ~:Illllnl', )lmit: C1I6', ~'M I' Rev: CH T. U
1N.4 __ O".,aNE'I' 1S010SI .....1Jflrs
INA......
INA..HIII'
1801001 Transport and Network layen;. Inclum's iNA!l61
Royalty fee for INA960
B"U'1IIflS • .4NIJ B"£I'II111S " IEEE 802. 3/E'1'11E1lNE'I' PIlOIIiJIJFS
88IM:la.llt
J8BCSSZ.t
,sllIllSSZ.t
,sIlCI . . 53.
ISBC 186/51 MULTIBUS IIE~:~: 802.31Ethernet \AJIIlmuniration ('Almputrr
iSBC 552i\ MULTI BUS I IEEE B02.3lEtIlernet Network Intrr\'8C(' A~apter
ISBC 552A preconfigured for Intel System 310 and 320, inrludt'll iNA 961 royalty
iSBC 186/530 MULTIBUS II IEEE B02.31Ethernt't Nt'twork 1ntt'r£aCt' Adapter
ISBX 586 MUI:r1MODUI,Fo IFoFoFo 802.3iELhcrnct Data I,lnk board
IDCM 911·1 Intellink Pan-olt Unit
Thin-wire transrelver. Requires transreiver cablt' (XCVRCHI..5)
five-foot transceiver cable
7·14
I
OpenNETTM NETWORKING LITERi\TlJRE
--------~------------
Ik'lKrlpU.D
IRMX-NE'l' OpeRNE'l' PRODIlC'l'S
IRMX·I\ET Software Rfleosc 3.0 Installation and Configuration CUIlecute the application and networking software written in higher-level
languages.
'
Self Clocking Polnt-to-Polnt Interface
The iSBC 88/45 ADCP board is used in an asynchronous mode interface when configured as shown
in Figure' 4. The point-to-point RS232C example
uses the self-clocking mode interface for NRZI encoding/decoding of data. The digital phase-lock'
loop allows operation of the interface in either halfduplex or full/duplex implementation with or without
modems.
CONNECTOR
J1 J2 OR J3
ToC
ToO
RTS
,SBC' Hl4S CTS
BOARD RoC
RoD
DTR
DSR
BOARD
This architectural support includes four 16-bit byte
addressable data registers, two 16-bit memory base
pointer registers and two 16-bit index registers.
These registers are addressable through 24 different
operand addressing modes for comprehensive
memory addressing and for high-level language data
structure manipulation.
The stack-oriented architecture readily supports
Intel's iRMX executives and iMMX multiprocessing
software. Both software packages are designed for
modular application programming. Facilitating the
fast inter-module communications, the 4-byte instruction queue supports program constructs needed for real-time systems.
CONNECTOR
J1 J2 OR J3
RoC
RoD
RTS
CTS ,sac "'4$
hC BOARD
Since programs are segmented between pure procedure and data, four segment registers (code,
stack, data, extra) are available for addressing 1
megabyte of memory space. These registers contain
the offset values used to address a 64K byte segment. The registers are controlled explicitly through
program control or implicitly by high-level language
functions and instructions.
210372-5
Figure 4. SelfooClocklng or Asynchronous Pointto-Point Modem Interface Configuration
Example-RS232C
Synchronous Polnt-to-Polnt Interface
The real-time system software can also utilize the
programmable timers as shown in Table 2 and various interrupt control modes available on the ADCP
board to have responsive and effective application
solutions.
Figure 5 shows a synchronous pOint-to-point mode
of operation for the ISBC 88/45 ADCP board. This
RS232C example uses a modem to generate the
receive clock for coordination of the data transfer.
The iSBC 88/45 ADCP board generates the transmit
synchronizing clock for synchronous trans"!ission.
Table 2. Programmable Timer Functions
Function
CONNECTOR
J1, J2 OR J3
RTS
eTS
ISBC' 1110 ToO
BOARD RoD
DTR
DSR
CONNECTOR
, J1, J2 OR J3
Operation
CTS
RoD ,SBC' 11'45
ToO BOARD
Interrupt on Terminal An interrupt is generated on
Count
terminal count being reached.
This function Is useful for
generation of real-time
clocks.
DSR
DTR
Rate Generator
Divide by N counter. Based
on the input clock period, the
output pulse remains low until
the count is expired.
Square Wave
Generator
Output remains high for onehalf the count, goes low for
the remainder of the count.
Software Triggered
Strobe
Output remains high until
count expires, then goes low
for one clock period.
210372-6
Figure 5. Synchronous Polnt-to-Polnt Modem
Interface Configuration Example-RS232C
Central Processing Unit
The central processor for the iSBC 88/45 Advanced
Data Communications Processor board Is Intel's
iAPX 8088 microprocessor operating at 8 MHz. The
microprocessor interface to other functions is illustrated In Figure 6. The microprocessor arc,hitec-
8-4
inter
ISBCGI> 88/45 BOARD
Numeric Data Processor Extension
Interrupt Capability
The 8088 instruction set includes 8-bit and 16-bit
signed and unsigned arithmetic operators for binary,
BCD, and unpacked ASCII data. For enhanced numerics processing capability, the iSBC 337 MULTIMODULE Numeric Data Processor extends the
8088 architecture and data set.
The iSBC 88/45 ADCP board provides nine vectored interrupt levels. The highest level is the NMI
(Non-Maskable Interrupt) line. The additional eight
interrupt levels are vectored via the Intel 8259A Programmable Interrupt Controller (PIC). As shown in
Table 3, four priority processing modes are available
to match interrupt servicing requirements. These
modes and priority assignments are dynamically
configurable by the system software.
The extended numerics capability includes over 60
numeiic instructions offering arithmetic, trigonometric, transcendental, logarithmic, and exponential instructions. Many math-oriented applications utilize
the 16-, 32-, and 64-bit integer, 32- and 64-bit floating point, 18-digit packed BCD, and 80-bit temporary
data types.
Table 3. Programmable Interrupt Modes
Operation
Mode
16K Bytes Static Ram
The iSBC 88/45 ADCP board contains 16K bytes of
high-speed static RAM, with 12K bytes dual-ported
which is addressable from other MULTIBUS devices. When coupled with the high-speed DMA capability of the iSBC 88/45 ADCP board, the dual-ported
memory provides effective data communication buffers. The dual-ported memory is useful for interprocessor message transfers.
Nested
Interrupt request line priorities
fixed; interrupt 0 is the highest
and 7 is the lowest.
Auto-Rotating
The interrupt priority rotates;
once an interrupt is serviced it
becomes the lowest priority.
Specific Priority
System software assigns
lowest level priority. The other
levels are sequenced based on
the level assigned.
Polled
System software examines
priority interrupt via interrupt
status register.
EPROM
14K InES
IOUL_
ADDIIIIUIITI
ADflt.'·ADIIJt1
CHANNEL C
ICONNECTOR J1l
210372-7
Figure 8. Block Diagram of the ISBCIt 88/45 ADCP Board
8-5
ISBC@ 88/45 BOARD
In addition to specialized or custqm, designed iSBX
boards, the customer has a broad range of Intel
iSBC MULTIMOOULEs available, including parallel
I/O, analog I/O, iEEE 488 GPIB, floppy disk, magnetic bubbles, video, and serial I/O boards.
Interrupt Request Generation
Listed in Table 4 are the devices and functions supported by interrupts on the iSBC 88/45 AOCP board.
All interrupt signals are brought to the interFupt jumper matrix. Any of the 23 interrupt sources are
strapped to the appropriate 8259A PIC request level.
The PIC resolves requests according to the software
selected mode and, if the interrupt is unmasked, issues an interrupt to the CPU.
The serial I/O MULTIMOOULE board~' include the
iSBX 351 (one ASYNC/SYNC serial channel) the
iSBX 352 (one HOLC/SOLC serial channel) and the
iSBX 354 (two SYNC/ ASYNC, HOLC/SOLC serial
channels) boards. Adding two iSBX 352 MULTIMODULE boards to the iSBC 88/45 AOCP provides
a total of five HOLC/SOLC channels.
EPROM/RAM Expansion
In addition to the 9n-board RAM, the iSBC 88/45
AOCP board provides four 28-pin JEOEC sockets for
EPROM expansion. By using 2764 EPROMs, the
board has 32K bytes of program storage. Three of
the JEOEC standard sockets also support byte-wide
static RAMs or iRAMs; using 8K x 8 static RAMs
provides an additional 24K bytes of RAM.
MULTIBUS® Multimaster Capabilities
OVERVIEW
The MULTIBUS system is Intel's industry standard
microcomputer bus structure. Both' 8- and 16-bit single board computers are supported on the MULTIBUS structure' with 24 address and 1G data lines. In
addition to expanding functions contained on a single board computer (e.g., memory and digital I/O),
the MULTIBUS structure allows very powerful distributed processing configurations with multiple
processors, intelligent slaves, and peripheral
boards.
Inserting the optional iSBC341 MULTIMOOULE
EPROM expansion board onto the iSBC 88/45
AOCP board provides four additional 28-pin JEOEC
sites. This expansion doubles the available program
storage or extends the RAM capability by 32K bytes.
ISBXTM MULTIMODU,LETM Expansion
Two 8-bit iSBX MULTIMOOULE connectors are provided on the iSBC 88/45 microcomputer. Through
these connectors, additional iSBX functions extend
the I/O capability of the microcomputer. The iSBX
connectors provide the necessary signals to inter"
face to the local bus.
Multimaster Capability
The iSBC 88/45 AOCP board provides full MULTIBUS arbitration control logic. This con,trol
Table 4. Interrupt Request Sources
Device
Function
No. of
Interrupts
MULTIBUS Interface
Select 1 interrupt from MULTIBUS resident peripherals
or other CPU boards.
8
8273 HOLC/SOLC
Controller
Transmit buffer empty and receive buffer full
2
8274 HOLC/SOLC
SYNC/ ASYNC Controller
Software examines register for status of communication
operation
1
8254-Timer
Counter 2 of both PIT devices
2
iSBX Connectors
Function determined by iSBX MULTIMOOULE Board
(2 interrupts per socket)
4
Bus Fail Safe Timer
Indicates MULTIBUS addressed device has not
responded to command within 4 msec
1
Power Une Clock
Source of 60 MHz signal from power supply
1
Bus Flag Interrupt
Flag interrupt in byte location 1000H signals board reset
or data handling request
2
iSBC 337A Board
Numeric Data Processor generated status information
1
8237A-5
Signals end of 8237 OMA operation
1
-
8-6
iSBC® 88/45 BOARD
logic allows up to three iSBC 88/45 ADCP boards or
other bus masters, including iSBC 286, iSBC 86 and
iSBC 86 family boards to share the system bus using
a serial (daisy chain) priority scheme. By using an
external parallel priority decoder, the MULTIBUS
system bus could be shared among sixteen masters.
to support assembler, PLlM, PASCAL, and FORTRAN software development environments. The
modular building block software lends itself well to
customized application solutions.
SPECIFICATIONS
The Intel standard MULTIBUS Interprocessor Protocol (MIP) software, implemented as the Intel iMMX
800 package for iRMX 86 and iRMX 88 Real-Time
Executives, fully supports multiple 8- and 16-bit distributed processor functions. The software manages
the message passing protocol between microprocessors.
Word Size
Instruction: 8, 16, 24, or 32 bits
Data: 8 or 16 bits
System Clock
8 MHz: ±0.1%
System Development Capabilities
NOTE:
The application development cycle for an iSBC
88/45 ADCP board is reduced and simplified
through the usage of several Intel tools. The tools
include the Intellec Series Microcomputer Development System, the ICE-88 In-Circuit Emulator, the
iSDM 86 debug monitor software, and the iRMX 86
and iRMX 88 run-time support packages.
Jumper selectable for 4 MHz operation with iSBC
337 Numeric Data Processor module or ICE-88
product.
Cycle Time
Basic Instruction Cycle at 8.00 MHz: 1.25 JLS, 250 ns
(assumes instruction in the queue)
The Intellec Series Microcomputer Development
System offers a complete development environment
for the iSBC 88/45 software. In addition to the operating system, assembler, utilities and application debugger features provided with the system, the user
optionally can utilize higher-level languages like
PL/M, PASCAL, and FORTRAN.
NOTE:
Basic instruction cycle is defined as the fastest instruction time (i.e., two clock cycles).
Memory Cycle Time
The ICE-88 In-Circuit Emulator provides a link between the Intellec system and the target iSBC
88/45-based system for code loading and execution. The ICE-88 package assists the developer with
the debugging and system integrating processes.
RAM: 500 ns (no wait states)
EPROM: jumper selectable from 500 ns to 625 ns.
On-Board RAM·
KBytes
Run-Time Building Blocks
16 (total)
12 (dual-ported)
Intel offers run-time foundation software to support
applications which range from general purpose to
high-performance solutions. The iRMX 88 Real-time
Multitasking Executive provides a multitasking structure which includes task scheduling, task management, intertask communications, and interrupt servicing for high-performance applications. The highly
configurable modules make the system tailoring job
easier whether one uses the compact executive or
the complete executive with its variety of peripheral
devices supported.
Hex Address
Range
00OO-3FFF
1000-3FFF
"Four ISSC 88/45 EPROM sockets support JEDEC 24/28·
pin standard EPROMs and RAMs (3 sockets); iSBC 341 (4
sockets)
Environmental Characteristics
Temperature: O·C to + 55·C, free moving air across
the base board and MULTIMODULE board
Humidity: 90%, non-condensing
The iRMX 86 Operating System provides a very rich
set of features and options to support sophisticated
applications solutions. In addition to supporting realtime requirements, the iRMX 86 Operating System
has a powerful, but easy-to-use human interface.
When add.ed to the sophisticated I/O system, the
iRMX 86 Operating System is readily extended
Physical Characteristics
Width: 30.48 cm (12.00 in)
Length: 17.15 cm (6.75 in)
Height: 1.50 cm (0.59 in)
Weight: 6.20 gm (22 oz)
8-7
inter
ISBC e 88/45 BOA'AD
Memory ~apacltyI Addressing
Electrical Characteristics
On-Board EPROM'
DC Power Dissipation-28.3 Watts
Device
Total
KByte8
Hex Addres8
Range
2716
2732A
2764
27128
8
16
32
64
FEOOO-FFFFF
FCOOO.-FFFFF
F8000-FFFFF
FOOOO-FFFFF
DC Power Requirements
Without EPROM(l)
With optional
ISBCGl> 341 MULTIMODULETN EPROM
Device
Total
KByte8
Hex Addre88
Range
2716
2732A
2764
27128
16
32
64
128
FCOOO-FFFFF
F8000-FFFFF
FOOOO-FFFFF
EOOOO-FFFFF
+0.14A
With 16K EPROM
(Using 2732A)
+0.20A
With 32K EPROM
(Using 2764)
+0.24A
20mA
20mA
-
-
-
-
Serial Communication Characteristics
± 0.1 %
Channel Device
A
Interfaces
iSBXTM Bus-All signals TIL compatible
B
Serial RS232C SignalsCTS
CLEAR TO SEND
OSR
DATA SET READY
OTE TXC TRANSMIT CLOCK
OTR
DATA TERMINAL READY
FG
FRAME GROUND
RTS
REQUEST TO SEND
RXC
. RECEIVE CLOCK
RXD
RECEIVE DATA
SG
SIGNAL GROUND
TXO
TRANSMIT DATA
C
. Supported
Interface
Max. Baud
Rate
8274(1) RS442A/449 800K SOLC/HOLC
RS232C
125K Synchronous
CCITIV.24 50K Asynchronous
125K Synchronous(2)
8274 RS232C
CCITIV.24 50K Asynchronous
8273(3) RS442A1449 64K SOLC/HOLC(3)
RS232C
9.6K SELF CLOCKING
CCITIV.24
NOTES:
1. 8274 supports HOLC/SOLC/SYNC/ASYNC multiprotocol
2. Exceed RS232C/CCITT V.24 rating of 20K baud
3. 8273 supports HOLC/SOLC
BAUD RATE EXAMPLES (Hz)
Asynchronous
+16 +32 +64
KBaud
8254
Synchronous
Timer Divide
KBaud
C.ountN
Serial RS422A/449 SignalsCS
OM
RC
RD
RS
RT
SC
SO
SG
TR
TI
5.1A
With 8K EPROM
(Using 2716)
With 64K EPROM
+0.24A
(Using 27128)
NOTE:
1. AS SHIPPED-no EPROMs in sockets, no iSBC 341
module. Configuration includes terminators for two
RS422A1449 and one RS232C channels.
"Four ISBC 88/45 EPROM sockets support JEOEC 24/28pin standard EPROMs and RAMs (static and iRAM, 3 sockets); iSBC 341 sockets also support EPROMs and RAMs.
Timer Input Frequency-8.00 MHz
Current Requirements
(All Voltage8 ±,%)
-12V
+12V
+5V
Configuration
CLEAR TO SEND
DATA MODE
.
RECEIVE COMMON
.RECEIVE DATA
REQUEST TO SEND
RECEIVE TIMING
SEND COMMON
SEND DATA
SIGNAL GROUND
TERMINAL READY
TERMINAL TIMING
10
26
31
52
104
1·25
143
Hj7
417
833
EQUATION
8-8
800
300
256
154
76.8
64
56
48
19.2
9.6
8,000,000
N
50.0
19.2
16.1
9.6
4.8
4.0
3.5
3.0
25.0
9.6
8.06
4.8
2.4
2.0
1.7
1.5
- -- --
.
500K 250K
N
N
12.5
4.8
4.03
2.4
1.2
1.0
0.87
0.75
125K'
N
inter
ISBe@ 88/45 BOARD
SERIAL INTERFACE CONNECTORS
Interface
RS232C
RS232C
RS449
RS449
Mode(1)
MULTIMODULETM
Edge Connector
Cable
Connector
DTE
DCE
DTE
DCE
26-pin(4), 3M-3462-0001
26-pin(4), 3M-3462-0001
40-pin(5), 3M-3464-0001
40-pin(5), 3M-3464-0001
3M(2)-3349/25
3M(2)-3349/25
3M(3)-3349/37
3M(3)-3349/37
25-pin(6),3M-3482-1000
25-pin(6),3M-3483-1000
37-pin(7),3M-3502-1000
37-pin(7),3M-3503-1000
NOTES:
1. DTE-Data Terminal Equipment Mode (male connector); DCE-Data Circuit Equipment mode (female connector) requires
line swaps.
2. Cable is tapered at one end to fit the 3M-3462 connector.
3. Cable is tapered to fit 3M-3464 connector.
4. Pin 26 of the edge connector is not connected to the flat cable.
5. Pins 38, 39, and 40 of the edge connector are not connected to the flat cable.
6. May be used with the cable housing 3M-3485-1000.
7. Cable housing 3M-3485-4000 may be used wih the connector.
Line Drivers (Supplied)
Reference Manual
Device
Characteristic
Qty
Installed
1488
1489
3486
3487
RS232C
RS232C
RS422A
RS422A
3
3
2
2
1
1
2
2
143824-iSBC 88/45 Advanced Data Communications Processor Board Hardware Reference Manual
(not supplied).
Reference manuals may be ordered from any Intel
sales representative, distributor office or from Intel
Literature Department, 3065 Bowers Avenue, Santa
Clara, CA 95051.
ORDERING INFORMATION
Part Number Description
SBC 88/45
8-bit 8088-based Single Board Computer with 3 HDLC/SDLC serial
channels
8-9
inter
iSBC® 188/56
ADVANCED COMMUNICATING COMPUTER
•
•
•
•
•
7 On-Board DMA Channels for Serial
• 110,280188
DMA Channels for the
iSBC® Single Board Computer or
Intelligent Slave Communication Board
iSBXTM MULTIMODULETM Board
8 Serial Communications Channels,
Expandat)le to 12 Channels on a Single
MULTIBUS® Board
•
8 MHz 80188 Microprocessor
•
•
•
Supports RS232C Interface on6
Channels, RS422A/449 or RS232C
Interface Configurable on 2 Channels
Supports Async, Bisync HDLC/SDLC,
On-Chip Baud Rate Generation, Half/
Full-Duplex, NRZ, NRZI or FM
Encoding/Decoding
•
MULTIBUS Interface for System
Expansion and Multimaster
Configuration
Two iSBX Connectors for Low Cost I/O
Expansion
256K Bytes Dual-Ported RAM On-Board
Two 28-pin JEDEC PROM Sites
Expandable to 6 Sites with the iSBC
341 MULTIMODULE Board for a
Maximum of 192K Bytes EPROM
Resident Firmware to Handle up to 12
. RS232C Async Lines
The iSBC 188/56 Advanced Communicating Computer (COMMputerTM) is an intelligent 8-channel single
board computer. This iSBC board adds the 8 MHz 80188 microprocessor-based communications flexibility to
the Intel line of OEM microcomputer systems. Acting as a stand-alone CPU or intelligent slave for communication expansion, this board provides a high performance, low-cost solution for multi-user systems. The features
of the iSBC 188/56 board are uniquely suited to manage higher-layer protocol requirements needed in today's
data communications applications. This single board computer takes full advantage of Intel's VLSI technology
to provide state-of-the-art, economic, computer based solutions for OEM communications-oriented applications.
280715-1
'IBM is a registered trademark of International Business Machines
'UNIX is a trademark of Bell Laboratories
'XENIX is a trademark of Microsoft Corporation
8-10
November 1986
Order Number: 280715-002
inter
ISBC® 188/56 ADVANCED COMM COMPUTER
incoming and outgoing messages at data rates up to
19.2K baud. Two channels are supported for continuous data rates greater than 19.2K baud. Each serial
channel can be individually programmed for different
baud rates to allow system configurations with differing terminal types. The firmware supplied on the
iSBC 188/56 board supports up to 12 asynchronous
RS232C serial channels, provides modem control
and performs power-up diagnostics. The high performance of the on-board. CPU provides intelligence
to handle protocols and character handling typically
assigned to the system CPU. The distribution of intelligence results in optimizing system performance
by releasing the system CPU of routine tasks.
OPERATING ENVIRONMENT
The iSBC 188/56 COMMputer™ features have
been designed to meet the needs of numerous communications applications. Typical applications include:
1. Terminal/cluster controller
2. Front-end processor
3. Stand-alone communicating computer
Terminal/Cluster Controller
A terminal/cluster controller concentrates communications in a central area of a system. Efficient
handling of messages coming in or going out of the
system requires sufficient buffer space to store
messages and high speed I/O channels to transmit
messages. More sophisticated applications, such as
cluster controllers, also require character and format
conversion capabilities to allow different types of terminals to be attached.
Front-End Processor
A front-end processor off-loads a system's central
processor of tasks such as data manipulation and
text editing of characters collected from the attached terminals. A variety of terminals require flexible terminal interfaces. Program code is often dynamically downloaded to the front-end processor
from the system CPU. Downloading code requires
sufficient memory space for protocol handling and
program code. Flow control and efficient handling of
interrupts require an efficient operating system to
manage the hardware and software resources.
The iSBC 188/56 Advanced Communicating Computer is well suited for multi-terminal systems (see
Figure 1). Up to 12 serial channels can be serviced
in mUlti-user or cluster applications by adding two
iSBX 354 MULTIMODULE boards. The dual-port
RAM provides a large on-board buffer to handle
ISac~
ISBX'" 354
BOARD
ISBX'" 354
BOARD
c:::=::::J
c:::::::::::J
ISac'" 188/56
BOARD
86/30 BOARD
,...---r.--~
FIRMWARE
1/
SYSTEM
PROCESSOR
MULTIBUS" ,SYSTEM BUS
280715-2
Figure 1_ Terminal/Cluster Controller Application
8-11
inter
ISBC® 188/56 ADVANCED COMM COMPUTER
The iSaC 188/56 board features are designed to
provide a high performance solution for front-end
processor applications (see Figure 2). A large
amount of random access memory is provided for
dynamic storage of program code. In addition, local
memory sites are available for storing routine programs such as X.25, SNA or bisync protocol software. The serial channels can be configured for links
to mainframe systems, point-to-point terminals, modems or multidrop configurations.
The MULTISUS interface can be used to access additional system functions. Floppy disk control and
graphics capability can be added to the iSSC standalone computer through the is ax connectors.
ARCHITECTURE
'The four major functional areas are Serial I/O, CPU,
Memory and OMA. These areas are illustrated in Figure 4.
Stand-Alone COMMputer™
Application
Serial 110
A stand-alone communication computer is a complete computer system. The CPU is capable of managing the resources required to meet the needs of
multi-terminal, multi-protocol applications. These applications typically require multi-terminal support,
floppy disk control, local memory allocation, and
program execution and storage.
Eight HOLC/SOLC serial interfaces are provided on
the iSaC 188/56 board. The serial interface can be
expanded to 12 channels by adding 2 iSaX 354
MULTIMOOULE boards. The HOLC/SOLC interface
is compatible with laM' system and terminal equipment and with CCITI's X.25 packet switching interface.
To support stand-alone applications, the iSaC
188/56 COMMputer board uses the computational
capabilities of an on-board CPU to provide a highspeed system solution controlling 8 to 12 channels
of serial I/O (see Figure 3). The local memory available is large enough to handle special purpose
code, execution code and routine protocol software.
Four 82530 Serial Communications Controllers
(SCC) provide eight channels of half/full duplex serial I/O. Six channels support RS232C interfaces. Two channels are RS232C/ 422/ 449 configurable and can be tri-stated to allow multidrop networks.
The 82530 component is designed to satisfy several
serial communications requirements; asynchronous,
o
•
ISBX'" 354
ISBX'" 354
BOARD
BOARD
C==::J c::=::::J
ISBC~ 188/56
r----,,---,
BOARD
MULTIBUS@ SYSTEM BUS
280715-3
Figure 2. Front-End Processor Application
8-12
Isec® 188/56 ADVANCED COMM COMPUTER
byte-oriented synchronous (HOLC/SOLC) modes.
The increased capability at the serial controller point
resl,llts inoff,loading the CPU of tasks formerly assigned to the CPU or its associated hardware. Configurability of the 82530 allows the user to configure
it to handle all asynchronous data formats regardless of data size, number of start or stop bits, or
parity requirements. An on-chip baud rate generator
allows independent baud rates on each channel.
Central CPU
The 80188 central processor component provides
high performance, flexibility and powerful processing. The 80188 component is a highly integrated microprocessor with an 8-bit data bus interface and a
16-bit internal architecture to give high performance.
The 80188 is upward compatible with 86 and 186
software;
The clock can be generated either internally with the
SCC chip, with an external clock or via the NRZ1
clock encoding mechanism.
The 80188/82530 combination with on-board
PROM/EPROM sites, and dual-port RAM provide
the intelligence and speed to manage multi-user,
multi-protocol communication operations.
All eight channels can be oonfigured as Data Terminal Equipment (OTE) or Data Communications
Equipment (OCE). Table 1 lists the interfaces supported.
Table 1.ISBC® 188/56 Interface Sl,Ipport
Connection
Synchronous
Memory
There are two areas of memory on-board: dual-port
RAM and universal site memory. The iSBC 188/56
board contains 256K bytes of dual· port RAM that is
addressable by the 80188 on-board. The dual-port
memory is configurable anywhere in a 16M byte address space on 64K byte boundaries as addressed
from the MULTIBUS port. Not all of the 256K bytes
are visible from the MULTIBUS bus side. The
amount of dual-port memory visible to the
Asynchronous
Modem to Direct Modem to Direct
Point-to-Point
Multidrop
Loop
X"
X
Channels
o and 1
Channels
o and 1
X
N/A
•• All 8 channels are denoted by X.
rFlWll
ROUTINE
PROGRAMS
80188
D
L...JL.......I
EXECUTION
CODE
STAND-ALONE
PROCESSOR
MULTIBUSs SYSTEM BUS
280715-4
Figure 3. Stand-Alone COMMputer™ Application
8-13
ISBCiID 188/56 ADVANCEDCOMM COMPUTER
MULTIBUS side can be set (with jumpers) to none,
16K bytes, or 48K bytes. In a multiprocessor system
these features provide local memory for each ·processor and shared system memory configurations
whereihe total system memory size can exceed one
megabyte without addressing conflicts.
On-Board DMA
Seven, channels of Direct Memory Access (DMA)
are provided between serial 110 and on-board dual
port RAM by two 8237-5 components. Each of channels 0, 1, 2, 3, 5, 6, and 7 is supported by their own
DMA line. Serial channels 0 and 1 are configurable
for full duplex DMA. Configuring the full duplex DMA
option for Channels 0 and 1 would require Channels
2 and 3 to be interrupt driven or polled. Channel 4 is
interrupt driven or polled only.
The second area of memory is universal site memory providing flexible memory expansion. Two 28-pin
JEDEC sockets are provided. One of these sockets
is used for the. resident firmware as described in the
FIRMWARE section.
Two DMA channels are' integrated in the 80188
processor. These additional channels can be connected to the iSBX interfaces to provide DMA capability to iSBX MULTIMODULE boards such as the
iSBX 21M Floppy Disk Controller MULTIMODULE
board.
The default 'configuration of the boards supports
16K byte EPROM devices such as the Intel 27128
component. However, these sockets can contain
ROM, EPROM, Static RAM, or EEPROM. Both soqkets must contain the same type of component (i.e.
as the first socket contains an EPROM for the resident firmware, the second must also contain an
EPROM with the same pinout). Up to 32K bytes can
be addressed per socket giving a maximum universal site memory size of 64K bytes. By using the iSBC
341 MULTI MODULE board, a maximum of 192K
bytes of universal site memory is available. This provides sufficient memory space for on-board network
or resource management software.
OPERATING SYSTEM SUPPORT
Intel offers run-time foundation software to support
applications that range from general purpose to
high-performance solutions.
CHANNELS
CHANNEL
7·2
1-11
RS232C1
4221441
RS232C
258KFIAM
MULTlBUS· SYSTEM BUS
280715-5
Figure 4. Block Diagram of ISBCe 188/56 Board
8-14
inter
iSBC® 188/56 ADVANCED COMM COMPUTER
Release 6 of the iRMX 86 Operating System provides a rich set of features and options to support
sophisticated stand-alone communications applications on the iSBC 188/56 Advanced Communicating
Computer. In addition to supporting real-time requirements, the iRMX 86 Operating System Release
6 has a powerful, yet easy to use human interface.
Services provided by the iRMX 86 Operating System
include facilities for executing programs concurrently, sharing resources and information, servicing
asynchronous events and interactively controlling
system resources and utilities. The iRMX 86 Operating System is readily extended to support assembler, PL/M, PASCAL, and FORTRAN software development environments. The modular building
block software lends itself well to customized application solutions. If the iSBC 188/56 board is acting
as an intelligent slave in a system environment, an
iRMX 86 driver resident in the host CPU can be written by following the examples in the manual "Guide
to Writing Device Driven for iRMX 86 and iRMX 88
1/0 Systems".
vanced Communicating COMMputer board. The
monitor contains the necessary hardware, software
and documentation required to interface the iSBC
188/56 target system to an Intel microcomputer development system for debugging application software.
The XENIX' 286 Operating System, Release 3, is a
fully licensed adaptation of the Bell Laboratories
System III UNIX' Operating System. The XENIX system is an interactive, protected, multi-user, multi~
tasking operating system with a powerful, flexible
human interface. Release 3 of XENIX 286 includes a
software driver for the iSBC 188/56 board (and up to
two iSBX 354 MULTIMODULE Boards) acting as an
intelligent slave for mUlti-user applications requiring
multiple persons running independent, terminal-oriented jobs. Example applications include distributed
data processing, business data processing, software
development and engineering or scientific data analysis. XENIX 286 Release 3 Operating System services include device independent 1/0, tree-structured
file directory and task hierarchies, re-entrant/shared
code and system accounting and security access
protection.
The iSDMTM 86 System Debug Monitor supports target system debugging for the iSBC 188/56 Ad-
Table 2. Features of the ISBC@ 188/56 Firmware
Feature
Description
Asynchronous Serial
Channel Support
Supports the serial channels in asynchronous ASCII mode.
Parameters such as baud rate, parity generation, parity
checking and character length can be programmed
independently for each channel.
Block Data Transfer
(On Output)
Relieves the host CPU of character-at-a-time interrupt
processing. The iSBC 188/56 board accepts blocks of data for
transmission and interrupts the processor only when the entire
block is transmitted.
Limited Modem Control
Provides software control of the Data Terminal Ready (DTR)
line on all channels. Transitions on the Carrier Detect (CD) line
are sensed and reported to the host CPU.
Tandem Modem Support
Transmits an XOFF character when the number of characters
in its receive buffer exceeds a threshold value and transmits an
XON character when the buffer drains below some other
threshold.
Download and
Execute Capability
Provides a capability for the host CPU to load code anywhere in
the address space of the iSBC 188/56 board and to start
executing at any address in its address space.
Power Up
Confidence Tests
On board reset, the firmware executes a series of simple tests
to establish that crucial components on the board are
functional.
8-15
intJ
iSBC® 188/56 ADVANCED COMM COMPUTER
80188 processor and the other in the 80130 component. The two controllers are configured with the
80130 controller as· the master and the 80188 controller as the slave. Two of the 80130 interrupt inputs
are connected to the 82530 serial controller components to provide vector interrupt capabilities by the
serial controllers. The iSBC 188/56 board provides
22 interrupt levels. The highest ,level is the NMI
(Non-Maskable Interrupt) line which is directly tied to
the 80188 CPU. This interrupt is typically used for
signaling catastrophic events (e.g. power failure).
There are 5 levels of interrupts internal to the 80188
processor. Another 8 levels of interrupts are available from the 80130 component. Of these 8, one is
tied to the programmable interrupt controller (PIC) of
the 80188 CPU. An additional 8 levels of interrupts
are available at the MULTIBUS interface. The iSBC
188/56 board does not support bus vectored interrupts. Table 3 lists the possible interrupt sources.
FIRMWARE
The iSBC 188/56 Communicating COMMputer
board is supplied with resident firmware that supports up to 12 RS232C asynchronous serial channels. In addition, the firmware provides a facility for a
host CPU to download and execute code on the
iSBC 188/56 board. Simple power-up confidence
tests are also included to provide a quick diagnostic
service. The firmware converts the iSBC 188/56
COMMputer board to a slave communications controller. As a slave communications controller, it requires a separate MULTIBUS host CPU board and
requires the use of MULTIBUS interrupt line to signal
the host processor. Table 2 summarizes the features of the firmware.
INTERRUPT CAPABILITY
The iSBC 188/56 board has two programmable interrupt controllers (PICs). One is integrated into the
Table 3 Interrupt Request Sources
Function
Number of
Interrupts
MULTIBUS Interface
INTO-INT7
Requests from MULTIBUS resident peripherals or other
CPU boards.
8
82530 Serial Controllers
Transmit buffer empty, receive buffer full and channel
errors 1 and external status.
Internal 80188
Timer and DMA
Timer 0, 1, 2 outputs and 2 DMA channel interrupts.
80130 Timer Outputs
Timer 0, 1, 2 outputs of 80130.
3
Interrupt from Flag
Byte Logic
Flag byte interrupt set by MULTIBUS master (through
MULTIBUS® 1/0 Write).
1
Bus Flag Interrupt
Interrupt to MULTIBUS® (Selectable for INTO to INT?)
generated from on-board 80188 1/0 Write.
1
iSBX Connectors
Function determined by iSBX MULTIMODULE board.
Device
8 per 82530
Total = 32
5
4 (Two per
Connector)
2
iSBXDMA
DMA interrupt from iSBX(TDMA).
Bus Fail-Safe Timeout
Interrupt.
Indicates iSBC 188/48 board timed out either waiting for
MULTIBUS access or timed out from no acknowledge
while on MULTIBUS System Bus.
1
Latched Interrupt
Converts pulsed event to a level interrupt. Example:
823?A-5 EOP.
1
OR-Gate Matrix
Concentrates up to 4 interrupts to 1 interrupt (selectable
by stake pins).
1
Ring Indicator
Interrupt
Latches a ring indicator event from serial channels 4, 5,
6, or?
1
NOR-Gate
Matrix
Inverts up to 2 interrupts into 1 (selectable by stake
pins).
1
8-16
inter
ISBC~
188/56 ADVANCED COMM COMPUTER
The Multimaster capabilities of the iSBC 188/56
board offers easy expansion of processing capacity
and the benefits of multiprocessing. Memory and
I/O capacity may be expanded and additional functions added using Intel MULTIBUS compatible expansion boards.
SUPPORT FOR THE 80130
COMPONENT
Intel does not support the direct processor execution of the iRMX nucleus primitives from the 80130
component. The 80130 component provides timers
and interrupt controllers.
SPECIFICATIONS
EXPANSION
Word Size
EPROM Expansion
Instruction-8, 16, 24 or 32 bits
Data Path-8 bits
Processor Clock
82530 Clock
8 MHz
4.9152 MHz
Memory may be expanded by adding Intel compatible memory expansion boards. The universal site
memory can be expanded to six sockets by adding
the iSBC 341 MULTIMODULE board for a maximum
total of 192K bytes of universal site memory.
DMAClock
4MHz
Dual Port RAM
iSBC 188/56 Board-256 bytes
iSBXTM MULTIMODULETM Expansion
Module
As viewed from the 80188-64K bytes
Two 8-bit iSBX MULTIMODULE connectors are provided on the iSBC 188/56 board. Using iSBX modules additional functions can be added to extend the
I/O capability of the board. In addition to specialized
or custom designed iSBX boards, there is a broad
range of iSBX MULTIMODULE boards from the Intel
including parallel I/O, analog I/O, IEEE 488 GPIB,
floppy disk, magnetic bubbles, video and serial I/O
boards.
As viewed from the MULTIBUS System BusChoice: 0, 16K or 48K
EPROM
iSBC® 188/56
On Board
Size
Address Range
Board Using:
Capacity
2732
2764
27128
27256
27512
The serial I/O MULTIMODULE boards available include the iSBX 354 Dual Channel Expansion MULTIMODULE board. Each iSBX 354 MULTIMODULE
board adds two channels of serial I/O to the iSBC
188/56 board for a maximum of twelve serial channels. The 82530 serial communications controller on
the MULTIMODULE board handles a large variety of
serial communications protocols. This is the same
serial controller as is used on the iSBC 188/56
board to offer directly compatible expansion capability for the iSBC 188/56 COMMputer board.
4K
8K bytes FEOOO-FFFFFH
8K 16K bytes FCOOO-FFFFFH
16K 32K bytes F8000-FFFFFH
32K 64K bytes FOOOO-FFFFFH
64K 128K bytes EOOOO-FFFFFH
Memory Expansion
MULTIBUS® INTERFACE
The iSBC 188/56 Advanced COMMputer board can
be a MULTIBUSmaster or intelligent slave in a multimaster system. The iSBC 188/56 board incorporates a flag byte signalling mechanism for use in
multiprocessor environments where the iSBC
188/56 board is acting as an intelligent slave. The
mechanism provides an interrupt handshake from
the MULTIBUS System Bus to the on-board-processor and vice-versa.
EPROM with
ISBC® 341
Board Using:
Capacity
Address Range
2732
2764
27128
27256
24K bytes
48K bytes
96K bytes
192Kbytes
F8000-FFFFFH
FOOOO-FFFFFH
EOOOO-FFFFFH
COOOO- FFFFFH
I/O Capacity
Serial-8 programmable lines using four 82530 components
iSBX MULTIMODULE-2 iSBX single-wide boards
8-17
inter
iSBC® 188/56 ADVANCED COMM COMPUTER
Serial Communications Characteristics
SERIAL RS232C SIGNALS
Synchronou&-Internal or external character synchronization on one or two synchronous characters
CD
CTS
DSR
DTE TXC
DTR
RTS
RXC
RXD
SG
TXD
RI
Asynchronous-5-8 bits and 1, 1%, or 2 stop bits
per character; programmable clock factor; break detection and generation; parity, overrun, and framing
error detection.
Baud Rates
Synchronous
X1 Clock
Carrier
Clear to Send
Data Set Ready
Transmit Clock
Data Terminal Ready
Request to Send
Receive Clock
Receive Data
Signal Ground
Transmit Data
Ring Indicator
RS422A/449 SIGNALS
Baud Rate
82530 Count Value
(Decimal)
64000
48000
19200
9600
4800
2400
1800
1200
300
36
49
126
254
510
1022
1363
2046
8190
Receive Common
Receive Data
Receive Timing
Send Data
Terminal Timing
RC
RD
RT
SD
n
Environmental Characteristics
Temperature: 0 to 55·C at 200 Linear Feet/Min.
(LFM) Air Velocity
Humidity:
Asynchronous
X16Clock
to 90%, non-condensing (25°C to
70°C)
Physical Characteristics
Baud Rate
82530 Count Value
(Decimal)
19200
9600
4800
2400
1800
1200
300
110
6
14
30
62
83
126
510
1394
Width:
Length:
Height:
Weight:
30.48 cm (12.00 in)
17.15 cm (6.75 in)
1.04 cm (0.41 in)
595 gm (21 oz)
Electrical Characteristics
The power required per voltage for the iSSC 188/56
board is shown below. These numbers do not include the current required by universal memory sites
.
or expansion modules.
Interfaces
iSBXTM BUS
The iSSC 188/56 board meets iSSX compliance level D8/8 DMA"
Voltage
(Volts)
Current
(Amps)typ.
Power
(Watts) typo
+5
+12
-12
4.56A
0.12A
" 0.11A
22.8W
1.5W
1.3W
Reference Manual
iSSC 188/56 Advanced Data Communications Computer Reference Manual Order Number 148209-001.
MULTIBUS® SYSTEM BUS
The iSSC 188/56 board meets MULTISUS compliance level Master/Slave D8 M24 116 VO EL.
ORDERING INFORMATION
Part Number
iSSC 188/56
8-18
Description
8-Serial Channel Advanced Communicating Computer
inter
iSBC® 534
FOUR CHANNEL COMMUNICATION EXPANSION BOARD
•
•
•
•
Serial I/O Expansion Through Four
Programmable Synchronous and
Asynchronous Communications
Channels
•
•
Individual Software Programmable
Baud Rate Generation for Each Serial
I/O Channel
•
Two Independent Progammable 16·Bit
Interval Timers
•
•
Sixteen Maskable Interrupt Request
Lines with Priority Encoded and
Programmable Interrupt Algorithms
Jumper Selectable Interface Register
Addresses
16·Blt Parallel I/O Interface Compatible
with Bell 801 Automatic Calling Unit
RS232C/CCITT V.24 Interfaces Plus 20
mA Optically Isolated Current Loop
Interfaces (S~ckets)
Programmable Digital Loopback for
Diagnostics
Interface Control for Auto Answer and
Auto Originate Modems
The iSBC 534 Four Channel Communication Expansion Board is a member of Intel's complete line of memory
and I/O expansion boards. The iSBC 534 interfaces directly to any Single board computer via the MULTIBUS
to provide expansion of system serial communications capability. Four fully programmable synchronous and
asynchronous serial channels with RS232C buffering and provision for 20 mA optically isolated current loop
buffering are provided. Baud rates, data formats, and interrupt priorities for each channel are individually
software selectable. In addition to the extensive complement of EIA Standard RS232C signals provided, the
iSBC 534 provides 16 lines of RS232C buffered programmable parallel I/O. This interface is configured to be
directly compatible with the Bell Model 801 automatic calling unit. These capabilities provide a flexible and
easy means for interfacing Intel iSBC based systems to RS232C and optically isolated current loop compatible
terminals, cassettes, asynchronous and synchronous modems, and distributed processing networks.
280238-1
8-19
November 1986
Order Number: 280238-001
inter
ISBC® 534 COMMUNICATION BOARD
FUNCTIONAL DESCRIPTION
Table 1. Programmable Timer Functions
Communications Interface
Four programmable communications interfaces. using Intel's 8251A Universal Synchronous/Asynchronous Receiver/Transmitter (USART) are contained
on the board.· Each USART can be programmed by
the system software to individually select the desired
asynchronous or synchronous serial data transmission technique (including IBM Bisync). The mode of
operation (i.e., synchronous or asynchronous), data
format, control character format, parity, and baud
rate are all under program control. Each 8251A provides full duplex, double buffered transmit and receive capability. Parity, overrun, and framing error
detection are all incorporated in each USART. Each
set of RS232C command lines, serial data lines, and
signal ground lines are brought out to 26-pin edge
connectors that mate with RS232C flat or round cables.
Function
Operation
Interrupt on
terminal count
When terminal count is
reached an interrupt request is
generated. This function is
used for the generation of realtime clocks.
Rate generator
Divide by N counter. The output
will go low for one input clock
cycle and high for N-1 input
clock periods.
Square wave
rate generator
Output will remain high for onehalf the count and low for the
other half of the count.
Interrupt Request Lines
Two independent Intel 8259A programmable interrupt controllers (PIC's) provide vectoring for 16 interrupt levels.· As shown in Table 2, a selection of
three priority processing algorithms is available to
the system deSigner. The manner in which requests
are serviced may thus be configured to match system requirements. Priority assignments may be reconfigured dynamically via software at any time during system operation. Any combination of interrupt
levels may be masked through storage, via software,
of a single byte to the interrupt mask register of each
PIC. Each PIC's interrupt request output line may be
jumper selected to drive any of the nine interrupt
lines on the MlJLTIBUS.
16·Blt Interval Timers
The iSBC 534 provides six fully programmable and
independent BCD and binary 16-bit interval timers
utilizing two Intel 8253 programmable interval
timers.· Four timers are available to the systems designer to generate baud rates for the USARTs under
software control. Routing for the outputs from the
other two counters is jumper selectable. Each may
be independently routed to the programmable interrupt controller to provide real time clocking or to the
USARTs (for applications requiring different transmit
and receive baud rates). In utilizing the iSBC 534,
the systems designer simply configures, via software, each timer independently to meet system requirements. Whenever a given baud rate or time delay is needed, software commands to the programmable timers select the desired function. Three
functions of these Jimers are supported on the iSBC
534, as shown in Table 1. The contents of each
counter may be. read at any time during system operation.
Table 2. Interr!Jpt Priority Options
Algorithm
Fully
nested
8-20
Operation
. Interrupt request line priorities
fixed at 0 as highest, 7 as
lowest.
Autorotating
Equal priority. Each level, after
receiving service, becomes the
lowest priority level until next
interrupt occurs.
Specific
priority
System software assigns
lowest priority level. Priority of
all other levels based in
sequence numerically on this
assignment.
l
11
fa
C
iii
~
(j)
til
()
..
8
en
W
"II
0
...
C
()
:r
•
CUIIREtIT
RIZI2C
CUIIItEJft'
RIiIIIIC
CUIIIIBIT
RaUC
COMMn81E
LOOP
~
LOOP
COIIPATHILE
CURRENT
LOOP
DEVICE
COMPAnBlE
DEVIC£
LOOP
DEVICE
DEVICE
DEVICE
DEVICE
DEVICE
DEVICE
RSU2C
~~
~~
~~
~~
~~~~~~~~
'y' .=:u'
'y'
'r'
'--'
~E
~
~
m
o18
en
:::J
:::J
Co)
!!.
o
o
()
0
iii:
iii:
3
en 3
c
~
c:
... g.
}$
•=:!:
0
:::J
1/1
m
z
B
6
>C
z
i0
lJ
1
~
:::J
C
til
•a.0
!!!
g
:IIr
2
•
fa
ii1
3
IUNES
tUNES
280238-2
ISBC@ 534 COMMUNICATION BOARD
Interrupt Request Generation-As shown in Table,
3, interrupt requests may originate from 16 sources.
Two jumper selectable interrupt requests (8 total)
can be automatically generated by each USART
when a character is ready to be transferred to the
MULTIBUS system bus (i.e., receive buffer is full). or
a character has been transmitted (transmit buffer is
empty). Jumper selectable requests can be generat.
ed by two of the programmable timers (PITs), and ,six
lines are routed directly from peripherals to accept
carrier detect (4 lines), ring indicator, and the Bell
801 present next digit request lines.
Asynchronous- 5-8 bit characters; break character
generation; 1, 1Y2, or 2 stop bits;
false start bit detection.
Sample' Baud Rates(1)
I
Frequency(2) ,
Baud Rate (Hz)
(kHz, Software
Selectable)
Synchronous Asynchronous
-
153.6
76.8
38.4
19.2
9.6
4.8
6.98
Systems Compatibility
The iSBC 534 provides 16 RS232C buffered parallel
I/O lines implemented utilizing an Intel 8255A pro·
grammable peripheral interface (PPI) configured to
operate in mode 0. 0 These lines are configured to
be directly compatible with the Bell 801 automatic
calling unit (ACU). This capability allows the
iSBC 534 to interface to Bell 801 type ACUs and up
to four modems or other serial communications de·
vices. For systems not requiring interface to an ACU,
the parallel I/O lines may also be used as general
purpose RS232C compatible control lines in system
implementation.
38400
19200
9600
4800
6980
0
1
2
3
4
5
6
7
PORTO RxRDY
PORTOTx RDY
PORT 1 RxRDY
PORT 1 TxRDY
PORT 2 RxRDY
PORT2Tx RDY
PORT 3 RxRDY
PORT 3 Tx RDY
PIT 1 counter 1
PIT 2 counter 2
Ring Indicator (all ports)
Present next digit
Carri~r detect port 0
Carrier detect port 1
Carrier detect port 2
Carrier detect port 3
-
Input Frequency (On· Board Crystal Oscillator)1.2288 MHz ± 0.1 % (0.813 ,...S period, nominal)
Function
PIC 1
2400
1200
600
300
150
75
110
Interval Timer and Baud Rate
Generator Frequencies
Table 3. Interrupt ASSignments
PICO
+ 64
9600
4800
2400
1200
600
300
NOTES:
1. Baud rates shown here are only a sample subset of possible software programmable rates available. Any frequen·
cy from 18.75 Hz to 614.4 kHz may be generated utilizing
on·board crystal oscillator and 16-bit programmable inter·
val. timer (used here as frequency divider).
2. Frequency selected by 1/0 writes of appropriate 16-bit
frequency factor to Baud Rate Register.
o NOTE:
Complete operational details on the Intel 8251A
USART, the Intel 8253 Programmable Interval Tim·
er, the Intel 8255A Programmable Peripheral Inter·
face, and the Intel 8259A Programmable Interrupt
Controller are contained in the Intel Component
Data Catalog.
Interrupt
Request
Line
+ 16
Real·Time
Interrupt
Interval
Sln!!le Timer
DuallTlmer
Counter
(Two Timers
cascaded)
Min
Max
Min
Max
1.63/,s
53.3ms
3.26/,s
58.25
minutes
Rate
Generator
18.75 Hz 614.4 kHz 0.0029 Hz 307.2 kHz
(Frequency)
SPECIFICATIONS
Serial Communications Characteristics
Synchronous- 5-8 bit characters; internal or exter·
nal character synchronization; auto·
matic sync insertion.
8-22
inter
ISBC® 534 COMMUNICATION BOARD
Interfaces-RS232C Interfaces
Physical Characteristics
EIA Standard RS232C Signals provided and supported:
Carrier detect
Receive data
Clear to send
Ring indicator
Data set ready
Secondary receive data
Data terminal ready Secondary transmit data
Request to send
Transmit clock
Receive clock
Transmit data
Width:
12.00 in. (30.48 cm)
Height: 6.75 in. (17.15 cm)
Depth: 0.50 in. (1.27 cm)
Weight: 14 oz. (398 gm)
Parallel I/o-a input lines, 8 output lines, all Signals
RS232C compatible
Average DC Current
Electrical Characteristics
Without
With
Opto-Isolators Opto-lsolators(1)
1.9 A, max
1.9A, max
Vee = +5V
420mA, max
Voo=+12V 275mA, max
VAA = -12V 250·mA, max
400mA, max
Voltage
Bus-All signals MULTIBUS system bus compatible
1/0 Addressing
NOTE:
The USART, interval timer, interrupt controller, and
parallel interface registers of the iSBC 534 are configured as a block of 16 1/0 address locations. The
location of this block is jumper selectable to begin at
any 16-byte 1/0 address boundary (Le., OOH, 10H,
20H, etc.).
1. With four 4N33 and four 4N37 opto·isolator packages
installed in sockets provided to implement four 20 mA current loop inteliaces.
Environmental Characteristics
Operating Temperature: O°C to + 55°C
110 Access Time
400
400
400
400
ns
ns
ns
ns
USART registers
Parallel 1/0 registers
Interval timer registers
Interrupt controller registers
Reference Manual
502140-002-iSBC 534 Hardware
al (NOT SUPPLIED)
Pins Centers
Mating Connectors
(qty.) (In.)
Bus
0.156
Viking 2KH43/9 AMK12
86
Serial and
3m 3462-0001 or
26
0.1
parallel 1/0
TI H312113
Interface
ORDERING INFORMATION
Part Number Description
SBe 534
Four Channel Communication Expansion Board
I e 0'P t 0- IsoIat ors
Compafbi
Receiver
Supplier
Fairchild
General EI,ectric
Monsanto
Fairchild
General Electric
Monsanto
Manu-
Reference manuals are shipped with each product
only if designated SUPPLIED (see above). Manuals
may be ordered from any Intel sales representative,
distributor office or from Intel Literature Department,
3065 Bowers Avenue, Santa Clara, California 95051.
Compatt'ble Connectors
Function
Driver
Referenc~
Part Number
4N33
4N37
8-23
iSBC® 544
INTELLIGENT COMMUNICATIONS CONTROLLER
• iSBC®
Communications Controller
Acting as a Single Board
Communications Computer or an
Intelligent Slave for Communications
Expansion
•
On-Board Dedicated 808SA
Microprocessor Providing
Communications Control and Buffer
Management for Four Programmable
Synchronous/ Asynchronous Channels
•
•
Sockets for Up To 8K Bytes of EPROM
•
16K Bytes of Dual Port Dynamic Read/
Write Memory with On-Board Refresh
•
Ten Programmable Parallel I/O Lines
Compatible with Bell 801 Automatic
Calling Unit
•
•
•
•
Twelve Levels of Programmable
Interrupt Control
Individual Software Programmable
Baud Rate Generation for Each Serial
I/O Channel
Three Independent Programmable
Interval Timer/Counters
Interface Control for Auto Answer and
Auto Originate Modem
Extended MULTIBUS® Addressing
Permits ISBC 544 Board Partitioning
Into 16K-Byte Segments In a
1-Megabyte Address Space
The iSSC 544 Intelligent Communications Controller is a member of Intel's family of single-board computers,
memory, I/O, and peripheral controller boards. The iSSC 544 board is a complete communications controller
on a single 6.75 x 12.00 inch printed circuit card. The on-board 8085A CPU may perform local communications
processing by directly interfacing with on-board read/write memory, nonvolatile read only memory, four synchronous/asynchronous serial I/O ports, RS232/RS366 compatible parallel I/O, programmable timers, and
programmable interrupts.
280239-1
8-24
November 1986
Order Number: 280239-001
inter
ISBC® 544 COMMUNICATIONS CONTROLLER
8085A CPU to coordinate up to four serial channels.
Using the iSBC 544 as an intelligent slave, multichannel serial transfers can be managed entirely onboard, freeing the bus master to perform other system functions.
FUNCTIONAL DESCRIPTION
Intelligent Communications Controller
Two Mode Operation - The iSBC 544 board is
capable of operating in one of two modes: 1) as a
single board communications computer with all computer and communications interface hardware on a
single board; 2) as an "intelligent bus slave" that
can perform communications related tasks as a peripheral processor to one or more bus masters. The
iSBC 544 may be configured to operate as a standalone single board communications computer with
all MPU, memory and I/O elements on a single
board. In this mode of operation, the iSBC 544 may
also interface with expansion memory and I/O
boards (but no additional bus masters). The iSBC
544 performs as an intelligent slave to the bus master by performing all communications related tasks.
Complete synchronous and asynchronous I/O and
data management are controlled by the on-board
Architecture - The iSBC 544 board is functionally
partitioned into three major sections: I/O, central
computer, and shared dual port RAM memory (Figure 1). The I/O hardware is centered around the four
Intel 8251A USART devices providing fully programmable serial interfacing. Included here as well is a
10-bit parallel interface compatible with the Bell 801
automatic calling unit, or equivalent. The I/O is under full control of the on-board CPU and is protected
from access by system bus masters. The second
major segment of the intelligent communications
controller is a central computer, with an 8085A CPU
providing powerful processing capability. The 8085A
together with on-board EPROM/ROM, static RAM,
programmable timers/counters, and programmable
SERiAL iiO - -
-
-
-
SERiAL UQ -
-
-
-
;ARAUELii'o -
-,
I
I
I
INPUT
I
I
I
I
I
I
I
I
I
PROGRAMMABLE 110
:
-r--------i
I
I
I
I
I
I
I
I
I
I
,1K.8
DYNAMIC
RAM
I
I
I
I
I
I
I
I
I
I
I
I
I
I
J
___ y~L..!ORT~A~ M!M~~Y
MULTIIUS
280239-2
Figure 1. iSBC® 544 Intelligent Communications Controller Block Diagram
8-25
inter
iSBC® 544 COMMUNICATIONS CONTROLLER
interrupt control provide the intelligence to manage
sophisticated communications operations on-board
the iSBC 544 board. The timer/counters and interrupt control are also common to the I/O area providing programmable baud rates to the USARTs and
prioritizing interrupts generated from the USARTs.
The central computer functions are protected for access only by the on-board 8085A. Likewise, the onboard 8085A may not gain access to the system bus
when being used as an intelligent slave. When the
iSBC 544 is used as a bus master, the on-board
8085A CPU controls complete system operation accessing on-board functions as well as memory and
I/O expansion. The third major segment, dual port
RAM memory, is the key link between the iSBC 544
intelligent slave and bus masters managing the system functions. The dual port concept allows a common block of dynamic memory to be accessed by
the on-board 8085A CPU and off-board bus masters. The system program can, therefore, utilize the
shared dual port RAM to pass command and status
information between the bus masters and on-board
CPU. In addition, the dual port concept permits
blocks of data transmitted or received to accumulate
iii the on-board shared RAM, minimizing the need
for a dedicated memory board.
Bell Model 801, or eqlJivalent, and can also be used
for auxiliary functions. All signals are RS232C compatible, and the interface cable signed assignments
meet RS366 specifications. For systems not requiring an ACU interface, the parallel I/O port can be
used for any general purpose interface requiring
RS232C compatibility.
Central Processing Unit
Intel's powerful 8-bit n-channel 808SA CPU, fabricated on a single LSI chip, is the central processor for
the iSBC 544. The 8085A CPU is directly software
compatible with the Intel 8080A CPU. The 808SA
contains six 8-bit general purpose registers and an
accumulator. The six general purpose registers may
be addressed individually or in pairs, providing both
single and double precision operators. The minimum
instruction execution time is 1.45 microseconds. The
808SA CPU has a 16-bit program counter. An external stack, located within any portion of iSBC 544
read/write memory, may be used as a last-in/firstout storage area for the contents of the program
counter, flags, accumulator, and all of the six general purpose registers. A 16-bit stack pointer controls
the addressing of this external stack. This stack provides subroutine nesting bounded only by memory
size.
Serial I/O
Four programmable communications interfaces using 'Intel's 8251 A Universal Synchronous/ Asynchronous Receiver/Transmitter (USART) are contained
on the board and controlled by the on-board CPU in
combination with the on-board interval timer/counter to provide all common communication frequencies. Each USART can be programmed by the system software to individually select the desired asynchronous or synchronous serial data transmission
technique (including IBM Bisync). The mode of operation (i.e., synchronous or asynchronous), data format, control character format, parity, and baud rate
are all under program control. Each 8251A provides
full duplex, double-buffered, transmit and receive capability. Parity, overrun, and framing error detection
are all incorporated in each USART. Each channel is
fully buffered to provide a direct interface to RS232C
compatible terminals, peripherals, or synchronous/
asynchronous modems. Each channel of RS232C
command lines, serial data lines, and signal ground
lines are brought out to 26-pin edge connectors that
mate with RS232C flat or round cable.
EPROM/ROM Capacity
Sockets for up to 8K bytes of nonvolatile read only
memory are provided on the iSBC 544 board. Read
only memory may be added in 2K byte increments
up to a maximum of 4K bytes using Intel 2716
EPROMs or masked ROMs; or in 4K byte increments up to 8K bytes maximum using Intel 2732
EPROMs. All on-board EPROM/ROM operations
are performed at maximum processor speed.
RAM Capacity
The iSBC 544 contains 16K bytes of dynamiC read/
write memory using Intel 2117 RAMs. Power for the
on-board RAM may be provided on an auxiliary power bus, and memory protect logic is included for
RAM battery backup requirements. The iSBC 544
contains a dual port controller, which provides dual
port capability for the on-board RAM memory. RAM
accesses may occur from either the on-board 8085A
CPU or from another bus master, when used as an
intelligent slave. Since on-board RAM accesses do
not require the MULTIBUS, the bus is available for
concurrent bus master use. Dynamic RAM refresh is
accomplished automatically by the iSBC 544 for accesses originating from either the CPU or from the
MULTIBUS.
Parallel I/O Port
The iSBC 544 provides a 10-bit parallel I/O interface
controlled by an Intel 8155 Programmable Interface
(PPI) chip. The parallel I/O port is directly compatible with an Automatic Calling Unit (ACU) such as the
8-26
inter
iSBC® 544 COMMUNICATIONS CONTROLLER
vals. The sixth PIT timer/counter (TINT1) can be
used to generate interrupt intervals to the on-board
8085A. In addition to the timer/counters on the 8253
PITs, the iSBC 544 has a 14-bit timer available on
the 8155 PPI providing a third general use timer /
counter (TINTO). This timer output is jumper selectable to the interrupt structure of the on-board 8085A
CPU to provide additional timer/counter capability.
Addressing - On board RAM, as seen by the onboard 8085A CPU, resides at address 8000HBFFFH. On-board RAM, as seen by an off-board
CPU, may be placed on any 4K byte address boundary. The iSBC 544 provides extended addressing
jumpers to allow the on-board RAM to reside within
a one megabyte address space when accessed via
the MULTIBUS. In addition, jumper options are provided which allow the user to protect 8K or 12K
bytes on-board RAM for use by the on-board 8085
CPU only. This reserved RAM space is not accessible via the MULTIBUS and does not occupy any system address space.
Timer Functions - In utilizing the iSBC 544 board,
the systems designer simply configures, via software, each timer independently to meet systems requirements. Whenever a given baud rate or interrupt
interval is needed, software commands to the programmable timers select the desired function. The
on-board PITs together with the 8155 provide a total
of seven timer/counters and six operating modes.
Mode 3 of the 8253 is the primary operating mode of
the four dedicated USART baud rate generators.
The timer/counters and useful modes of operation
for the general use timer/counters are shown in Table 1.
Static RAM - The iSBC 544 board also has 256
bytes of static RAM located on the Intel 8155 PPI.
This memory is only accessible to the on-board
8085A CPU and is located at address 7FOOH7FFFH·
Programmable Timers
The iSBC 544 board provides seven fully programmable and independent interval timer/counters utilizing two Intel 8253 Programmable Interval Timers
(PIT), and the Intel 8155. The two Intel 8253 PITs
provide six independent BCD or binary 16-bit interval
timer/counters and the 8155 provides one 14-bit binary timer/counter. Four of the PIT timers (BDGO-3)
are dedicated to the USARTs providing fully independent programmable baud rates.
Interrupt Capability
The iSBC 544 board provides interrupt service for up
to 21 interrupt sources. Any of the 21 sources may
interrupt the intelligent controller, and all are brought
through the interrupt logic to 12 interrupt levels. Four
interrupt levels are handled directly by the interrupt
processing capability of the 8085A CPU and eight
levels are serviced from an Intel 8259A Programmable Interrupt Controller (PIC) routing an interrupt request output to the INTR input of the 8085A (see
Table 2).
Three General Use Timers - The fifth timer
(BDG4) may be used as an auxiliary baud rate to any
of the four USARTs or may alternatively be cascaded with timer six to provide extended interrupt inter-
Table 1. Programmable Timer Functions
Function
Operation
Interrupt on Terminal
Count (Mode 0)
When terminal count is reached, an interrupt request is
generated. This function is useful for generation of realtime clocks.
Rate Generator
(Mode 2)
Divide by N counter. The output will go low for one input
clock cycle and high for N - 1 input clock periods.
Square-Wave Rate
Generator (Mode 3)
Output will remain high until one-half the TC has been
completed, and go low for the other half of the count.
This is the primary operating mode used for generating a
Baud rate clocked to the USARTs.
Software Triggered
Strobe (Mode 4)
When the TC is loaded, the counter will begin. On TC
the output will go low for one input clock period.
Single Pulse
Single pulse when TC reached.
Counter
8253
TINT1
8253
BDG4*
8253
BDGO-4
TINT1
8253
BDG4*
TINT1
8155
TINTO
Repetitive Single Pulse
Repetitive single pulse each time TC is reached until a
new command is loaded.
8155
TINTO
• BDG4 is jumper selectable as an auxiliary baud rate generator to the USARTs or as a cascaded output to TINT1. BDG4
may be used in modes 2 and 4 only when configured as a cascaded output.
8-27
inter
iSBC® 544 COMMUNICATIONS CONTROLLER
to the 808SA interrupt inputs, TRAP, RST 7.5, RST
6.5 and RST 5.5 have a unique vector memory address. An 8085A jump instruction at each of these
addresses then provides ·software linkage to interrupt service routines located independently anywhere in the Memory. All interrupt inputs with the
exception of the TRAP may be masked via software.
Table 2 Interrupt Vector Memory Locations
Interrupt
Source
Vector
Location
. Interrupt
Level
Power Fail
TRAP
24H
8253TINT1
RST7.5
3CH
8155 TINTO.
Ring Indicator(1) RST 6;5
34H
Carrier Detect
Flag Interrupt
RST5.5
2CH
INTO/-INT7/(10f8)
RXRDYO
INTR
Programmable
TXRDYO
RXRDY1
TXRDY1
RXRDY2
TXADY2
RXRDY3
TXRDY3
1
2
3
8259A Interrupts - Eight interrupt sources signal.
ing transmitter and receiver ready from the four
USARTs are channeled directly to the Intel 8259A
PIC. The PIC then provides vectoring for the next
eight interrupt levels. Operating mode and priority
assignments may be reconfigured dynamically via
software at any time during system operation. The
PIC accepts transmitter and receiver interrupts from
the four USARTs. It then determines which of the
incoming requests is of highest priority, determines
whether this request is of higher priority than the level currently being serviced, and , if appropriate, issues an interrupt to the CPU. The output of the PIC
is applied directly to the INTR input of the 808SA.
Any combination of interrupt levels may be masked,
via software, by storing a single byte in the interrupt
mask register of the PIC. When the !3085A responds
to a PIC interrupt, the PIC will generate a CALL instruction for each interrupt level. These addresses
are equally spaced at intervals of 4 or 8 (software
selectable) bytes. Interrupt response to the PIC is
software programmable to a 32- or 64-byte block of
memory. Interrupt sequences may be expanded
from this block with a single 8085A jump instruction
at each of these addresses.
4
5-12
NOTE:
1. Four ring indicator interrupts and four carrier detect interrupts are summed to the RST 6.5 input. The 8155 may be
interrogated to inspect anyone of the eight signals.
Interrupt Sources - The 22 interrupt sources originate from both on-board communications functions
and the MULTIBUS. Two interrupts are routed from
each of the four USARTs (8 interrupts total) to indicate that the transmitter and receiver are ready to
move a data byte to or from the on-board CPU. The
PIC is dedicated to accepting these 8 interrupts to
optimize USART service request. One of eight interrupt request lines are jumper selectable for direct
interface from a bus master via the system bus. Two
auxiliary timers (TINTO from 8155 and TINT1 from
8253) are jumper selectable to provide general purpose counter/timer interrupts. A jumper selectable
Flag Interrupt is generated to allow any bus master
to interrupt the iSBC 544 by writing into the base
address of the shared dual port memory accessable
to the system. The Flag Interrupt is then cleared by
the iSBC 544 when the on-board processor reads
the base address. This interrupt provi(jes an interrupt link between a bus master and intelligent slave
(see System Programming). Eight inputs from the
serial ports are monitored to detect a ring indicator
and carrier detect from each of the four channels.
These eight interrupt sources are summed to a single interrupt level of the 808SA CPU. If one of these
eight interrupts occur, the 8155 PPI can then be interrogated to determine which port caused the interrupt. Finally, a jumper selectable Power Fail Interrupt
is available from the MULTIBUS to detect a power
down condition.
Interrupt Output - In addition, the iSBC 544 board
may be jumper selected to generate an interrupt
from the on-board serial output data (SOD) of the
8085A. The SOD signal may be jumpered to anyone
of the 8 MULTIBUS interrupt lines (INTOI-INT7/) to
provide an interrupt signal directly to a bus master.
Power-Fail Control
Control logic is also included to accept a power-fail
interrupt in conjunction with the AC-Iow Signal from
the iSBC 635 Power Supply or equivalent.
Expansion Capabilities
When the iSBC 544 board is used as a single board
communications controller, memory and I/O capacity may be expanded and additional functions added
using Intel MULTIBUSTM compatible expansion
boards. In this mode, no other bus masters may be
configured in the system. Memory may be expanded
to a 65K byte capacity by adding user specified combinations of RAM boards, EPROM boards, or combination boards. Input/output capacity may be increased by adding digital 1/0 and analog I/O expan-
8085 Interrupt - Thirteen of the twenty-two interrupt sources'· are available directly to four interrupt
inputs of the on-board 8085A CPU. Requests routed
8-28
iSBC® 544 COMMUNICATIONS CONTROLLER
vides a linker, object code locater, and library manager. A unique in-circuit emulator (ICE-85) option
provides the capability of developing and debugging
software directly on the iSBC 544 board.
sion boards. Furthermore, multiple iSBC 544 boards
may be included in an expanded system using one
iSBC 544 board as a single board communications
computer and additional controllers as intelligent
slaves.
SPECIFICATIONS
System Programming
Serial Communications Characteristics
In the system programming environment. the
iSBC 544 board appears as an additional RAM
memory module when used as an intelligent slave.
The master CPU communicates with the iSBC 544
board as if it were just an extension of system memory. Because the iSBC 544 board is treated as memory by the system, the user is able to program into it
a command structure which will allow the iSBC 544
board to control its own I/O and memory operation.
To enhance the programming of the iSBC 544
board, the user has been given some specific tools.
The tools are: 1) the flag interrupt, 2) an on-board
RAM memory area that is accessible to both an offboard CPU and the on-board 808SA through which a
communications path can exist, and 3) access to the
bus interrupt line.
Synchronous -
5-8 bit characters; automatic
sync insertion; parity.
Asynchronous -
5-8 bit characters; break character generation; 1, 1%, or 2
stop bits; false start bit detection; break character detection.
Baud Rates
Frequency (KHz)(1)
Baud Rate (Hz)(2)
(Software
Selectable)
Synchronous Asynchronous
Flag Interrupt - The Flag Interrupt is generated
anytime a write command is performed by an offboard CPU to the base address of the iSBC 544
board's RAM. This interrupt provides a means for
the master CPU to notify the iSBC 544 board that it
wishes to establish a communications sequence. In
systems with more than one intelligent slave, the
flag interrupt provides a unique interrupt to each
slave outside the normal eight MULTIBUS interrupt
lines (INTO/ -INT7 I).
153.6
76.8
38.4
19.2
9.6
4.8
6.98
38400
19200
9600
4800
6980
+16
+64
9600
4800
2400
1200
600
300
2400
1200
600
300
150
75
110
-
NOTES:
1. Frequency selected by I/O writes of appropriate 16-bit
frequency factor to Baud Rate Register.
2. Baud rates shown here are only a sample subset of possible software programmable rates available. Any frequency from 18.75 Hz to 614.4 KHz may be generated utilizing
on-board crystal oscillator and 16-bit Programmable Interval Timer (used here as a frequency divider).
On-Board RAM - The on-board 16K byte RAM
area that is accessible to both an off-board CPU and
the on-board 8085A can be located on any 4K
boundary in the system. The selected base address
of the iSBC 544 RAM will cause an interrupt when
written into by an off-board CPU.
Bus Access - The third tool to improve system
operation as an intelligent slave is access to the
MULTIBUS interrupt lines. The iSBC 544 board can
both respond to interrupt signals from an off-board
CPU, and generate an interrupt to the off-board CPU
via the MULTIBUS.
8085A CPU
Word Size -
8, 16 or 24 bits/instruction; 8 bits of
data
Cycle Time - 1.45/I-I-S ±0.01 % for fastest executable instruction; i.e., four clock cycles.
Clock Rate- 2.76 ~Hz ± 0.1%
System Development Capability
The development cycle of iSBC 544 board based
products may be significantly reduced using the Intellec series microcomputer development systems.
The Intellec resident macroassembler, text editor,
and system monitor greatly simplify the design, development and debug of iSBC 544 system software.
An optional ISIS-II diskette operating system pro-
System Access Time
Dual port memory -
740 ns
NOTE:
Assumes no refresh contention.
8-29
inter
iSBC®544 COMMUNICATIONS CONTROLLER
Memory Capacity
Interrupts
On-Board ROM/PROM installed ROM or EPROM
On-Board Static RAM -
4K, or 8K bytes of user
Address for 8259A Registers (Hex notation, I/O
address space)
256 bytes on 8155
E6
E6
E7
E6
E7
E6
On-Board Dynamic RAM (on-board access) 16K bytes. Integrity maintained during power failure
with user-furnished batteries (<>ptional)
On-Board Dynamic RAM (MULTIBUS access) 4K, 8K, or 16K bytes available to bus by swtich selection
Memory Addressing
NOTE:
Several registers have the same physical address:
Sequence of access and one data bit of the control
word determine,s which register will respond.
Interrupt levels routed to the 8085 CPU automatically vector the processor to unique memory locations:
On-Board ROM/PROM - O-OFFF (using 2716
EPROMs or masked ROMs); 0-1 FFF (using 2732A
EPROMs)
On-Board Static RAM -
Interrupt request register
In-service register
Mask register
Command register
Block address register
Status (polling register)
24 TRAP
3C RST 7.5
34 RST 6.5
2C RST 5.5
256 bytes: 7FOO-7FFF
On-Board Dynamic RAM (on-board access) 16K bytes: 8000-BFFF.
On-Board Dynamic RAM (MULTIBUS® access) any 4K increment OOOOO-FFOOO which is switch and
jumper selectable. 4K, 8K or 16K bytes can be made
available to the bus by switch selection.
Timers
Addresses for 8253 Registers (Hex notation, 1/0
address space)
Programmable Interrupt Timer One
08
Timer 0
BOGO
09
Timer 1
BDG1
DA
Timer 2
BDG2
DB
Control register
1/0 Capacity
Serial - 4 programmable channels using four
8251A USARTs
Programmable Interrupt Timer Two
DC
Timer 0
DO
Timer 1
,DE
Timer 2
OF
Control register
Parallel - 10 programmable lines available for Bell
801 ACU, or equivalent use. Two auxiliary jumper
selectable signals
BDG3
BDG4
TINT1
Address for 8155 Programmable Timer
E8
Control
Timer (LSB)
TINTO
Timer (MSB)
TINTO
ED
1/0 Addressing
On-Board Programmable I/O
Port
Data
Control
USARTO
USART 1
USART2
USART3
8155 PPI
DO
02
04
06
E9 (PortA)
EA (Port B)
EB (PortC)
01
03
05
07
E8
Inpot Frequencies - Jumper selectable reference
1.2288 MHz ± 0.1% (0.814 /A-s period nominal) or
1.843 MHz ± 0.1 % crystal (0.542 /A-s period, nominal)
8-30
inter
ISBC~
544 COMMUNICATIONS CONTROLLER
Output Frequencies (at 1.2288 MHz)
Function
Single
Timer/Counter
Min
Dual Timer/Counter
(two timers cascaded)
Max
Min
Max
Real-Time Interrupt Interval
1.63,...s
53.3,...s
3.26,...s
58.25 min
Rate Generator (frequency)
18.75 Hz
614.4 KHz
0.00029 Hz
307.2 KHz
Interfaces
Connectors
Serial I/O - EIA Standard RS232C signals provided and supported:
Carrier Detect
Clear to Send
Data Set Ready
Data Terminal Ready
Request to Send
Receive Clock
Receiver Data
Ring Indicator
Secondary Receive Data"
Secondary Transmit Data "
Transmit Clock
Transmit Data
DTE Transmit clock
• Optional if parallel 1/0 port is not used as Automatic Calling Unit.
Centers
(In.)
Mating
Connectors
Bus
86
0.156
Viking
2KH43/9AMK12
Parallel I/O
50
0.1
3M 3415-000 or
AMP 88083-1
Serial I/O
26
0.1
3M 3462-000 or
AMP 88373-5
Memory Protect
Parallel I/O - Four inputs and eight outputs (includes two jumper selectable auxiliary outputs). All
Signals compatible with EIA Standard RS232C. Directly compatible with Bell Model 801 Automatic
Calling Unit, or equivalent.
MULTIBUS -
Pins
(qty)
Interface
An active-low TTL compatible memory protect signal
is brought out on the auxiliary connector which,
when asserted, disables read/write access to RAM
memory on the board. This input is provided for the
protection of RAM contents during the system power-down sequences.
Compatible with iSBC MULTIBUS.
On-Board Addressing
Bus Drivers
All communications to the parallel and serial I/O
ports, to the timers, and to the interrupt 'controller,
are via read and write commands from the on-board
8085A CPU.
Auxiliary Power
Function
Characteristic
Sink
Current (mA)
Data
Address
Commands
Tri-state
Tri-state
Tri-state
50
15
32
NOTE:
Used as a master in the single board communications
computer mode.
An auxiliary power bus is provided to allow separate
power to RAM for systems requiring battery backup
of read/write memory. Selection of this auxiliary
RAM power bus is made via jumpers on the board.
Physical Characteristics
Width:
Depth:
8-31
30.48 cm (12.00 inches)
Thickness:
17.15 cm (6.75 inches)
1.27 cm (0.50 inch)
Weight:
3.97 gm (14 ounces)
ISBC@,544 COMMUNICATIONS CONTROLLER
,
,
'"
Electrical Characteristics
.
DC Power Requlr.ments
.,1,
Current Requirements
Vee = +5V ±5%
(max),
VDD = ± 12V ±5%
(max)
Vaa = - 5V(3) ± 5%
(max)
VAA= -12V ±5%
(max)
With 4K EPROM
(using 2716)
Icc = 3.4A max
100 = 350 mA max
lee = 5mAmax
IAA =' 200 mA max
Without EPROM
Configuration
3.3Amax
350mAmax
5mAmax
200 mA max
RAMonly(1)
390mAmax
176 mA max
5mAmax
-
RAM(2) refresh
only
390mAmax
20mAmax
5mAmax
NOTES:
1. For operational RAM only, for AUX power supply rating.
2. For RAM refresh only. Used for battery backup requirements. No RAM accessed.
3. Vee is normally derived on-board from VAA, eliminating the need for a Vee supply. If it is desired to supply Vee from the
bus, the current requirement is as shown.
Reference manuals are shipped with each product
only if designated SUPPLIED (see above). Manuals
may be ordered from any Intel sales representative,
distributor office or from Intel Literature Department,
3065 Bowers Avenue, Santa Clara, California 95051.
Environmental Characteristics
Operating Temperature: O°C to 55°C (32"F to 131°F)
Relative Humidity: To 90% without condensation
Reference Manual
ORDERING INFORMATION
502160 - iSBC 544 Intelligent Communications
Controller Board Hardware Reference Manual (NOT
SUPPLIED)
8-32
Part Number
Description
iSBC 544
Intelligent Communications Controller
ISBt® 548/549 TERMINA ... tONTRO ...... ERS
HIGH PERI'fJRMA.Nt:E 'I'ERMINA.£ t:ONTIlfIUER BOA.RDS 1'011
MIJ£'I'IBIJS@I
The iSBC 548 and iSBC 549 are intelligent terminal controllers for MULTIBUS I applications. The
iSBC 548 provIdes baSic multiuser support with 8 channels of RS 232 Asynchronous interface. The
iSBC 549 combines 4 srrial channels with a real-time clock and a line printer interface. Acting as
intelligent slaves for communication expansion, these boards provide high performance, low cost
solutions for multi-user systems.
I'EA.TIJRES
ISBC 548 FEATURES
• Supports eight channels asynchronous
RS232 interface
ISBC 549 FEATURES
• Supports four channels asynchronous RS232
interface
• Line printer interface
• Real-time clock/calendar with battery backup
STANDARD ISBC 548/549 FEATURES
• 8 MHz 80186 Microprocessor
• Supports transfer rates up to 19.2K Baud
• 128K Bytes Zero \Vail State DRAM (32K Dual
Port)
• Supports t'ull Duplex Asynchronous
Transmissions
• Jumprr sriectahir memory mappmg, 1/0
mapping and MULTIBUS Interrupts
intel'---------In(('1 Corporation assuml'~ nu I'('SptmSllllllt~ fnr tht' O:oi/' uf 3n\ rtr('Ullr) nlill'r lhan ('11'('tlltr~ ('mhrwlwtlln dO Intel prorjll('l NtllIt.ht'I'l'il'fUil pau.'nt 1i(\'MI'<{ Ill'('
Implied Irlfurmatlon ronl311lrd m'rt'ln sUp!.'fSt'dt'!\ prt·\ IlluSI~ pUhl~'1ht'tl ~JX'rlflnlllum; 1m IIlt'St' dfVII't'S fmm InLl'! and IS subll'rt 10 I'hang.:: wlIhmn nutu~·
Scptcmhl'r. 198B
@ Intel CorporatIOn 1988
Order Numht'f 2H0674 001
8-33
FEATURES
IISI'NCHRONOllS RS232 INTERFIIQ:·
..
SllPPORT
. .. .
The ISBC 5481549 .\s~ nchronous RS232 Internal suppurt is
presented in DTE Configuration. 825~Q Sl'riHI
Communications Controllers (SCCS) pro\Ide channel~ of halfl
full duple\ senalllO. Conflgurabj)it~ of the 82530 alli)l\s
handling all as~ nchronous data formats regardless of data
,iU'. rlumhrJ' of start or stop bits. or parit~ reqUlrcments.
The s~ nchronous transmission features of the 82530 are
not supported ..\n on-chip baud rate generator allows
independent baud rate~ on each channel. The serlallil1t's
can be brought to the bac~-panel Iia -W-Pln connectors and
nbbon c a b l e . ·
.
LINE PRINTER INTERFIICE
The iSBC 549 mcorporates astandarcl line printer intel'farl'
rumpatible Ilith IB'" or Centronics" line printers.
Intelligent buffering on the iSBC 3·19 allolls the CPl' to
offload pnntmg tas~s and return to higher priorit~ lobs.
REIIL-TIME CLOCIVCIILENDIIR
MEMOR},
TheiSBG ;'481549 have three areas o(memory rm-board:
dual-port RAM, private RAM, and EPROM. J<:ach board
contains 128K bytes of on-bo3f'
.....
co
co
......
7
,......
SERIAL
COMMUNtCATIONS
0
aJ
00
0.
CO
CONTROLLER
(82530)
..
0
I»
C.
."
:::s
!l
0"
'"<
aJ
c
iii"
COMMUNICATIONS
CONTROLLER
(82530)
Ui
INTERRUPT
iSBX·
isaX"
CONTROl.
(2-8259As)
IIULTlIIODULE"
-MULTIMOOULE'·
CONNECTOR
CONNECTOR
1~~PL7
OPTION
82258ADMA
DMACONTRDL
(OPTION)
{
80186
CPU
8 MHZ
10
iil
11
3
....,.
......
...
1 I
512KBYTES
DRAM
~
....00®
0)
I'
{
FOUR 2a.P1N SITES
JEDEC
MEMORY
I
(OPTION)
FOUR 28-PIN SITES
L
~iJ'
o
)
ON·BOARO flO LOCAL BUS
:::s
!!!.
~
1
SERIAL
}
..0:
~
C
0"
()
SERIAL
COMMUNICATIONS
CONTROUER
(82530)
I
I
..J
~
rv
IIULTIBUS' II
iPSB
INTERFACE
~
f'rV
8751
,.coNTROLLER
(INTERCONNECTI
BlST)
;..
ON"BOARD MEMORY LOCAL BUS
A
MULTIBUS" II PARALLEL SYSTEM BUS
1.1
280268-4
intJ
ISBC® 186/410
DIRECT MEMORY ACCESS (DMA) FUNCTION
SERIAL I/O SUBSYSTEM
The iSBC 186/410 board provides 13 channels of
DMA to support serial I/O, iPSB interlace, and/or
iSBX bus transfer operations. The 80186 microprocessor provides two DMA channels, the 82258 Advanced (ADMA) controller supports three "direct"
channels of DMA, and the ADMA multiplexer circuit
uses the fotJrth 82258 ADMA channel providing
eight additional multiplexed DMA channels. The allocation of the board's DMA channels to on-board resources is listed in Table 1.
Six serial interlaces are provided on the iSBC
186/410 board: two interlaces support full asynchronous, byte-synchronous, and bit-synchronous
(HDLC/SDLC) communication and four interlaces
support asynchronous-only communication. The two
RS422A configurable ports can also be tri-stated to
allow multi-drop networks. The board's serial capability can be expanded to 10 channels by adding two
iSBX 354 Dual Channel Serial I/O MULTIMODULE
boards. Each added iSBX 354 board uses an
Table 1.ISBC@ 186/410 Board DMA Channel Allocation
Channel
Count
DMA Configuration
Local Bus Resource
Channel
Number
80186
1
DMAChannel
0
Half-Duplex High Speed Serial Interlace (SCC1 Channel A)
(-High Density 15·Pin Connector)
2
DMAChannel
1
Full-Duplex Serial Interlace (SCC1 Channel A) or SBX1 DMA Request
0
Input DMA from MPC (Message Passing Coprocessor)
82258ADMA
3
DMAChannel
4
DMAChannel
1
Output DMA to MPC
5
DMAChannel
2
Half-Duplex High Speed Serial Interlace (SCC1 Channel B)
(-High Density 15-Pin Connector) or SBX1 DMA REQ
DMAChannel
3
Full-Duplex High Speed Serial Interlace (SCC1 Channel B) or
INT2 DMA REQ from DMA Multiplexer
DMA Multiplexer"
6
DMAChannel
0
Half-Duplex Serial Interlace (SCC2 Chan. A, 9-pin conn.)
7
DMAChannel
1
Full-Duplex Serial Interlace (SCC2 Chan. A)
8
DMAChannel
2
Half-Duplex Serial Interlace (SCC2 Chan. B, 9-pin conn.)
9
DMAChannel
3
Full-Duplex Serial Interlace (SCC2 Chan. B) or SBX1 DMA Request
or Half-Duplex SCC1 Channel B.
10
DMAChannel
4
Half-Duplex Serial Interlace (SCC3 Chan. A, 9-pin conn.)
Full-Duplex Serial Interlace (SCC3 Chan. A) or SBX2 DMA Request
11
DMAChannel
5
12
DMAChannel
6
Half-Duplex Serial Interlace (SCC3 Chan. B, 9-pin conn.)
13
DMAChannel
7
Full-Duplex Serial Interlace (SCC3 Chan. B) or INT1 SBX1 for
SBX344
NOTE:
• ADMA Channel 3 is used to add the DMA Multiplexer.
8-57
inter
iSBC® 186/410
SOLe) modes. The increased capability at the serial
controller pOint results in off-loading a CPU of tasks
normally assigned to the CPU or its associated hardware. Configurability of the 82530 allows the user to
configure it to handle all asynchronous data formats
regardless of data size, number of start or stop bits,
or parity requirements. An on-chip baud rate generator allows independent baud rates on each channel.
82530 SCC component to provide two independent
full duplex serial channels configurable as either
RS232C or RS422A interfaces. It also supports both
asynchronous or programmable byte and bit synchronous (HOLC/SOLe) protocols. The HOLel
SOLC interface is compatible with IBM system and
terminal equipment and with CCITT's X.25 packet
switching interface.
Three 82530 Serial Communications Controllers
(SCCs) provide six channels of half/full serial 1/0.
Two channels are configurable as either RS232C or
RS422 on two high density 15-pin female O-shell
connectors. Four more channels are RS232C-only
using IBM standard 9-pin male O-shell connectors.
All six channels directly support the Data Terminal
Equipment (OTE) configuration, with the Data Communication Equipment (OCE) pin-out supported by
changes in the cable wiring.
Memory Subsystem
The iSBC 186/410 board's on-board memory subsystem consists of a large DRAM array and a set of
universal memory sites. Access to the on-board
memory subsystem resources, as well as off-board
iPSB bus access, is accomplished by observing the
iSBC 186/410 board memory map (see Figure 4).
The mapping occurs within the 1 megabyte memory
space of the 80186 microprocessor, and is split into
three main areas: DRAM reserved, iPSB window,
and EPROM reserved. The first 0 to 512K bytes is
always reserved for local DRAM, the next 128K or
The 82530 component is designed to satisfy several
serial communications requirements; asynchronous,
pyte-synchronous, and bit-synchronous (HOLCI
IPSB
MEMORY
MAP
D'''-MBII
MEMORY
186/410
MEMORY
MAP
1024K
ONBOARD
EPROM
768K
WINDOW MAY BE
128K OR 256K
640K
-
IPSB
WiNDOW-
MBII
WINDOW
BASE ADDRESS IS ANY MULTIPLE OF 128K
_ - "+-;':';;';:'::";;'':'':'''''1-- OR 256K (SIZE OF MULTIPLE =WINDOW SIZE)
512K
ON·
BOARD
DRAM
o
....._ _....1 0
280268-5
Figure 4. iSBC® 186/410 Board Memory Map Diagram
8-58
inter
ISBC® 186/410
256K bytes (or up to 768K) is the iSPB window, and
the remaining 384K or 256K byte area is reserved
for local EPROM. The iPSB window maps a 128K or
256K byte local memory area into the 4 gigabyte
global physical address range of the MULTIBUS II
iPSB bus. This window is programmable and allows
the 80186 processor to access the complete 4 gigabyte memory space of the iPSB bus.
tervals under software control. The outputs may be
independently routed to a PIC to count external
events. The system software configures each timer
independently and can read the contents of each
counter at any time during system operation.
In a MULTIBUS II system, external interrupts (interrupts originating from off-board) are interrupt type
messages over the iPSB bus rather than signals on
individual lines. Interrupt type messages are handled
by the bus interface logic, the MPC Message Passing Coprocessor chip. The MPC component interrupts the 80186 processor via an 8259A Programmable Interrupt Controller (PIC) indicating a message has been received. This means that 1 Interrupt
line can handle interrupts from up to 255 sources.
The board's memory map also supports a 64K byte
access window for 1/0 space between local arid
iPSB bus access. The 64K bytes of local 1/0 space
is mapped 1-to-1 to the iPSB bus' 64K byte 1/0
space and is not programmable. The upper 32K
bytes access the iPSB bus 1/0 space, and the lower
32K bytes are reserved for local on-board 1/0.
Two on-board 8259A PICs are used in a masterslave configuration for processing on-board interrupts. One of the interrupt lines handles the interrupt
messages received from the iPSB bus. Table 2 includes a list of devices and functions supported.
DRAM CAPABILITIES
The iSBC 186/410 board comes standard with a
512K byte DRAM memory array on-board.
EPROM MEMORY
ISBXTM BUS 110 EXPANSION
A total of four 28-pin JEDEC universal sites reside
on the iSBC 186/410 board. These sockets support
addition of byte-wide ROM and EPROM devices in
densities from 8K bytes (2764) to 64K bytes (27512)
per device. Two of the four sockets contain a pair of
27812 EPROM devices installed at the factory(1).
These devices contain 128K bytes of firmware providing both the Host-to-controller download routine
and the Built-In-Self-Test (BIST) power-up diagnostics routine. The remaining two sockets allow the
user to add either two additional devices or an iSBC
341 EPROM MULTIMODULE for a maximum of
512K bytes.
NOTE:
(1) These devices may be removed by the user for
access to the two 28-pin sites.
Two 8/16-bit iSBX bus (IEEE P959) connectors are
provided for modular, low-cost 1/0 expansion. The
iSBC 186/410 board supports both 8-bit and 16-bit
iSBX MULTIMODULEs through these mating, gastight pins and socket connectors. DMA is also supported to the iSBX connectors and can be configured by programming the DMA multiplexor attached
to the 82258 ADMA component. The iSBX connectors on the iSBC 186/410 board support a wide variety of standard iSBX compatible boards from Intel
and other independent vendors providing add-on
functions such as, floppy control, %" tape control,
bubble memory, parallellserialllO, BITBUSTM interface, math, graphics, IEEE 488, and analog 110.
Custom iSBX module designs are also supported as
per the IEEE P959 iSBX bus specification.
General 1/0 Subsystem
IPSB Bus Interface Subsystem
The 1/0 subsystem provides timers, interrupt control
and two IEEE P959 iSBX connectors for 1/0 expansion or customization.
This subsystem's main component is the Message
Passing Coprocessor chip. Subsystem services provided by the MPC bus interface component include
full message passing support and memory, 1/0, and
interconnect access to the iPSB bus by the 80186
processor. The single-chip Message Passing Coprocessor is a highly integrated CHMOS. device implementing the full message passing protocol and
performing all the arbitration, transfer, and exception
cycle protocols specified in the MULTIBUS II Architecture Specification Rev. C., Order Number
1'46077.,
PROGRAMMABLE TIMERS AND INTERRUPT
CONTROL
The 80186 microprocessor on the iSBC 186/410
board provides three independent, ,fully programmable 16-bit interval timerslevent counters for use by
tile systems designer to generate accurate time in-
8-59
inter
iSBC® 186/410
Table 2.ISBC® 186/410 Board Interrupt Devices and Functions
Device
Function
Number of
Interrl,lpts
iPSB Bus Interface (MPC)
Message-Based Interrupt Requests from the iPSB
bus via MPC Messag~ Passing Coprocessor
1 interruptfor
up to 255
sources
8751 Interconnect Controller
Interconnect Space
1
80186 Timers & Interrupt
Timers 0 and 1 and Interrupt Acknowledge 1
3
82530 SCCs (3 devices)
SCC # 1 and SCC # 2 or SCC #3 for Transmit
Buffer Empty, Receive Buffer Full, and Channel
Errors
2
iPSB Bus Interface (MPC)
Indicates Transmission Error on iPSB Bus
1
82258ADMA
DMA Transfer Complete
1
iEEE P959 iSBX Bus Connectors (2)
Functions Determined by iSBX Bus
MULTIMODULE Boards
IEEE P959 iSBX Bus Connectors (2)
4
(2/ connector)
DMA Interrupt from iSBX (TDMA)
2
for the exclusive use of the download program. Host
CPUs must not overwrite this area with download
commands.
Interconnect Subsystem
MULTIBUS II interconnect space is a standardized
set of software configurable registers designed to
hold and control board configuration information as
well as system and board level diagnostics and test·
ing information. Interconnect space is implemented
with the 8751 microcontroller and the MPC silicon
resident on the iSBC 186/410 board.
Software on the host is responsible for accessing
the iSBC 186/410 board's firmware on disk or from
ROM visible to the host and translating it into linear
sequences of bytes suitable for downloading (see
Figure 5). After downloading the firmware, the host
issues a command for the loader routine on the controller to begin execution of the downloaded software.
The read-only registers store information such as
board type, vendor 1.0., firmware rev. level, etc. The
software configurable registers are used for autosoftware configurability and remote/local diagnostics and testing.
BUILT·IN SELF·TEST DIAGNOSTICS
On-board built-in self-test (BISn diagnostics provide
a customer confidence test of the various functional
areas on the iSBC 186/410 board. The initialization
checks are performed by the 8751 microcontroller,
while the BIST package is executed by the 80186
microprocessor. On-board tests includ~d in the BIST
package are: DRAM, EPROM, 80186, 82530 SCCs,
and the MPC.
Firmware Capability
HOST/CONTROLLER SOFTWARE DOWNLOAD
ROUTINE
Resident in ROM on this controller is a host-to-controller software download routine to support the
downloading of communication firmware into the
iSBC 186/410 Serial Communication Computer.
This loader adheres to the MULTIBUS II Download
Protocol and responds to commands issued by software running on a host CPU board. The host CPU
passes these commands to the loader via registers
defined in the board's interconnect space. A download function, a commence execution function, and
an examine local memory function are all provided in
the routine. Data transfers are supported by both
shared memory systems and message based systems. The top 1K of DRAM on the board is reserved
Additional activities performed include initialization
at power-up using the Initialization and Diagnostics
Executive and a program table check, a feature allowing users to add custom code in EPROM while
still maintaining full use of factory supplied BISTs.
Immediately after power-up and initialization of the
8751 microcontroller, the 80186 microprocessor begins its own initi~lizatiqn and on-board diagnostics.
Upon successful completion of these ac;tivities, the
Initialization and Diagnostics Executive invokes the
user-defined program table. A check is made of the
program table which then executes user-defined
custom programs.
8-60
inter
iSBC® 186/410
FIRMWARE
r--+......H_O_S_T.,
os
CONTROLLER
ROM BASED
DOWNLOAD
ROUTINE
IPSB BUS
280268-6
Figure 5. Download Routine
The BIST package provides a valuable testing, error
reporting and recovery capability on MULTIBUS II
boards enabling the OEM to reduce manufacturing
and maintenance costs. An LED on the board's front
panel indicates the status of power-up diagnostics. It
is on when BIST diagnostics start running and is
turned off upon successful completion of the BISTs.
NOTE:
Basic instruction cycle is defined as the fastest instruction time (Le., 4 clock cycles).
Memory Capacity
Local Memory
SPECIFICATIONS
DRAM-512K bytes on-board (64K x 4-bit devices);
8 sockets provided to support additional 256K bytes
Word Size
EPROM-Number of sockets-four 28-pin JEDEC
sites
Instruction: 8-, 16-, 24-, 32-, 40-, or 48-bits
Data: 8- or 16-bits
EPROM
Device Size
(Bytes)
Max. Memory
Capacity
System Clock
2764
27128
27256
27512
8K
16K
32K
64K
32K bytes
64K bytes
128K bytes
256K bytes
CPU: 8.0 MHz
NOTE:
**EPROM Expansion to up to a maximum of 512K bytes is
achieved via attachment of the iSBC 341 EPROM (256K
byte) MULTIMODULE board.
Cycle Time
Basic Instruction: 8.0 MHz-500 ns
I/O Capability
Serial-Six programmable serial channels using
three 82530 Serial Communications Controller components.
8-61
inter
iSBC® 186/410
I/O Expansion-Two 8/16-bit IEEE P959 iSBX connectors (DMA supported). (The board supports either two single wide or one double-wide form factor
iSBX module(s).)
Baud Rates
Synchronous X1 Clock
(Channels 0,1)
Timers-Three programmable timers on the 80186
microprocessor.
Baud Rate
82530 Count Value
(Decimal)
64000
48000
19200
9600
4800
2400
1800
1200
300
36
49
126
254
510
1022
1363
2046
8190
Input Frequencies-Frequencies supplied by the internal 80186 16 MHz crystal; 82530 SCCs: crystal
driven at 9.8304 MHz div. by two; iSBX Connector:
crystal driven at 9.8304 MHz.
Serial Communications Characteristics
Synchronous-Internal or external character synchronization on one or two synchronous characters.
Asynchronous X16 Clock
(Channels 0-5)
Asynchronous-5-8 data bits and 1, 1% or 2 stop
bits per character; programmable clock factor; break
detection and generation; parity, overrun, and framing error detection.
Baud Rate
82530 Count Value
(Decimal)
19200
9600
4800
2400
1800
1200
300
110
6
14
30
62
83
126
510
1394
Serial Signals/Pin-Outs
RS232C Interface Pin Assignment for High Density 15-Pin Connectors
J2
Pin
1
2
3
4
5
6
RS-232C Pin
Number
1
2
3
4
5
6
7
7
8
9
10
11
12
13
14
15
8
9
10
11
12
13
14
15
RS-232C Signal
Name
RS-232C Signal Function
TXD
RTS
RXD
CTS
RXC
DSS
DTR
DSR
bCD
STXC
SGD
LCLPBK
RMLPBK
TSTMD
RNG
Transmit Data
- Request To Send
Receive Data
Clear To Send
Receive Clock
Data Signal Select
Data Terminal Ready
Data Set Ready
Carrier Detect
Transmit Clock
Signal Ground
Local Loopback
Remote Loopback
Test Mode Indicator
Not Supported
8-62
ISBC@ 186/410
RS422A Interface Pin Assignment for High Density 1S-Pln Connectors
J1
Pin
Signal Name
1
2
3
4
5
6
RS42211
On Board
RS-422A Signal
Name
TR(a)
(a)
RD(a)
(a)
(a)
TR (b)
(b)
RD(b)
(b)
(b)
RS4229
RS42212
7
8
9
10
11
12
13
14
15
RS-422A Signal Function
RS42290
Transmit Data
Control
Receive Data
Indication
Signal Timing
Transmit Data
Control
Receive Data
Indication
Signal Timing
Signal Ground
Not Used
Not Used
Not Used
Chassis Ground
NOTE:
The iSBC® 186/40 board does not support the unused signals.
RS232C Interface Pin Assignment for IBM® Compatible g-Pln Connectors
Pin Number
Signal Name
Function
In/Out
1
2
3
4
5
6
7
8
9
CD
RXD
TXD
DTR
SG
DSR
RTS
CTS
RI
Carrier Detect
Received Data
Transmit Data
Data Terminal Ready
Signal Ground
Data Set Ready
Request To Send
Clear To Send
Ring Indicator
. In
In
Out
Out
Interrupt Capability
In
Out
In
Not Supported
Connectors
Interface
Potential Interrupt Sources from iPSB Bus-255 individual and 1 Broadcast
iPSB
bus (P1)
Interrupt Levels-12 vectored requests using two
8259As and 1 input to the master PIC from the slave
PIC
Connector
96-pin DIN, right
angle female
Part #
603-2-IEC-C096-F
RS232CI 15-pin high density,
F1S422A
Interrupt Requests-All levels TTL compatible
RS232Conly
Interfaces
iPSB Bus-Compliance Level RQAlRPA D16M32
iSBX Bus-Compliance Level 08/16 DMA
o type, right
angle female
(see note)
9-pin IBM compatible, 0 type, right
angle male (see
note)
NOTE:
The manufacturers below provide connectors which
will mate with the connectors supplied on the iSBC
186/410 board front-panel.
Serial 1/0-2 ch. RS232C or RS422A compatible,
configured DTE only; 4 ch. RS232C IBM compatible
only, configured DTE only.
8-63
inter
ISBC~
186/410
Mating Connectors, Shells and Cables
Connectors and Shells
Manufacturer
High Density D·type Plug (male)
High Density D-type Plug (male)
D-type Receptacle (female)
D-type Receptacle (female)
Connector Shells
AMP
Positronic
AMP
ITT-Cannon
AMP
ITT-Cannon
3M,
Cable Description
15 Conductor-Shielp,
15 Conductor-Shield,
10 Conductor-Shield,
9 Conductor-Shield,
Pins
Part No.
15
15
9
9
(For 15 or
9-pin connect.
above).
204501-1
DD-15M
205203-3
DE-9S
745171-X
DE-51218
358-2100
Manufacturer
Part No.
5120/15
Alpha
Beldon
Alpha
Beldon
Round
Round
Round
Round
9541
5120/10
9539
NOTE:
All cable referenced is available in 100 ft. minimum lengths.
PHYSICAL DIMENSIONS
ELECTRICAL CHARACTERISTICS
The iSBC 186/410 board meets all MULTIBUS II
mechanical specifications as presented in the
MULTIBUS II Architecture Specification Handbook
(#146077, Rev. C)
The maximum power required per voltage is shown
below.
Eurocard Form Factor
Depth: 220 mm (8.7 inches)
Voltage
(volts)
Max. Current
(amps)
Max. Power
(watts)
+5V
+12V
-12V
8.22A
150mA
150mA
43.16W
1.89W
1.89W
Height: 233 mm (9.2 inches)
Front Panel Width: 20 mm (0.76 inches)
Weight: 822 gm (29 ounces)
REFERENCE MANUALS
iSBC 186/410 Serial Communications Computer User's Guide (#148941-001)
ENVIRONMENTAL
CHARACTERISTICS
Intel MULTIBUS II Architecture Specification Handbook (# 146077)
Manuals may be ordered from any Intel Sales. Representative, Distribution Office, or from the Intel literature Department, 3065 Bowers Avenue, Santa
Clara, CA 95051.
Temperature
Inlet air at 200 LFM airflow over all boards
Non-operating: - 40·C to + 75·C
Operating: O· to + 55·C
ORDERING INFORMATION
Humidity
Part Number
Non-operating-95% Relative Humidity
non-condensing
Operating-90% Relative Humidity
condensing
@
@
+ 55·C,
Description
iSBC 186/410 MULTIBUS II Serial Communications Computer
+ 55·C, non-
8-64
inter
~aJ:.. #2
--
DOMESTIC SALES OFFICES
.-
T.. (2OI)_O
E~-
-
T.. _ _18
m
'!'.L.._
8u/8tU8
=8)~
rm=._
_A
_125
~~.J:
UTAH
n.~~SauIh
_104
=~DrlWtN.E
-w___
¥:~~L1
2nd"-
i:TM&r::'II'r.r
........
_101
=~81.
=:p:f~o
T"(8041_
Til: (818) 3
Source Exif Data:
File Type : PDF
File Type Extension : pdf
MIME Type : application/pdf
PDF Version : 1.3
Linearized : No
XMP Toolkit : Adobe XMP Core 4.2.1-c043 52.372728, 2009/01/18-15:56:37
Create Date : 2014:07:23 19:51:47-08:00
Modify Date : 2014:07:23 19:48:43-07:00
Metadata Date : 2014:07:23 19:48:43-07:00
Producer : Adobe Acrobat 9.55 Paper Capture Plug-in
Format : application/pdf
Document ID : uuid:202756f9-88f5-ac4a-ad68-f029cf77d294
Instance ID : uuid:ca5ca103-4d55-a248-af70-df4404ff4dd8
Page Layout : SinglePage
Page Mode : UseNone
Page Count : 1443
EXIF Metadata provided by EXIF.tools