ASSURED 104-ICOM-2S, 104-COM-2S Communications Board User Manual
- September 19, 2024
- ASSURED
Table of Contents
MODEL 104-ICOM-2S AND
104-COM-2S
USER MANUAL
ACCES I/O 104-ICOM-2S Get Quote
FILE: M104-ICOM-2S.B1k
104-ICOM-2S, 104-COM-2S Communications Board
Notice
The information in this document is provided for reference only. ACCES does
not assume any liability arising out of the application or use of the
information or products described herein. This document may contain or
reference information and products protected by copyrights or patents and does
not convey any license under the patent rights of ACCES, nor the rights of
others.
IBM PC, PC/XT, and PC/AT are registered trademarks of the International
Business Machines Corporation.
Printed in USA. Copyright 2001, 2005 by ACCES I/O Products, Inc. 10623 Roselle
Street, San Diego, CA
92121. All rights reserved.
WARNING!!
ALWAYS CONNECT AND DISCONNECT YOUR FIELD CABLING WITH THE COMPUTER POWER OFF.
ALWAYS TURN COMPUTER POWER OFF BEFORE INSTALLING A BOARD. CONNECTING AND
DISCONNECTING CABLES, OR INSTALLING BOARDS INTO A SYSTEM WITH THE COMPUTER OR
FIELD POWER ON MAY CAUSE DAMAGE TO THE I/O BOARD AND WILL VOID ALL WARRANTIES,
IMPLIED OR EXPRESSED.
Warranty
Prior to shipment, ACCES equipment is thoroughly inspected and tested to
applicable specifications. However, should equipment failure occur, ACCES
assures its customers that prompt service and support will be available.
All equipment originally manufactured by ACCES which is found to be defective
will be repaired or replaced ubject to the following considerations.
Terms and Conditions
If a unit is suspected of failure, contact ACCES’ Customer Service department.
Be prepared to give the unit model number, serial number, and a description of
the failure symptom(s). We may suggest some simple tests to confirm the
failure. We will assign a Return Material Authorization (RMA) number which
must appear on the outer label of the return package. All units/components
should be properly packed for handling and returned with freight prepaid to
the ACCES designated Service Center, and will be returned to the
customer’s/user’s site freight prepaid and invoiced.
Coverage
First Three Years: Returned unit/part will be repaired and/or replaced at
ACCES option with no charge for labor or parts not excluded by warranty.
Warranty commences with equipment shipment.
Following Years: Throughout your equipment’s lifetime, ACCES stands ready to
provide on-site or in-plant service at reasonable rates similar to those of
other manufacturers in the industry.
Equipment Not Manufactured by ACCES
Equipment provided but not manufactured by ACCES is warranted and will be
repaired according to the terms and conditions of the respective equipment
manufacturer’s warranty.
General
Under this Warranty, liability of ACCES is limited to replacing, repairing or
issuing credit (at ACCES discretion) for any products which are proved to be
defective during the warranty period. In no case is ACCES liable for
consequential or special damage arriving from use or misuse of our product.
The customer is responsible for all charges caused by modifications or
additions to ACCES equipment not approved in writing by ACCES or, if in ACCES
opinion the equipment has been subjected to abnormal use. “Abnormal use” for
purposes of this warranty is defined as any use to which the equipment is
exposed other than that use specified or intended as evidenced by purchase or
sales representation. Other than the above, no other warranty, expressed or
implied, shall apply to any and all such equipment furnished or sold by ACCES.
Introduction
This serial communications board is designed for use in PC/104 compatible
computers. Two isolated serial data ports are provided on the board. Model
COM-2S is simply a non-isolated version of the ICOM-2S.
Multipoint Opto-isolated Communications
The board allows for multipoint transmission on long communication lines in
noisy environments using RS422 or RS485 differential line drivers. The data
lines are opto-isolated from the computer and from each other to assure
communication when large common mode noise are superimposed. The on-board DC-
DC converters provide isolated power for the line driver circuits.
A crystal oscillator is located on the board. This oscillator permits precise
selection of baud rates from 50 to 115,200. Baud rates up to 460,800 baud may
be provided as a factory option. The Programming section of this manual
contains a table to use when selecting baud rate.
The output transceivers used, type 75176B, are capable of driving extremely
long communication lines at high baud rates. They can drive up to ±60mA on
balanced lines and receive inputs as low as ±200mV differential signal. Opto-
isolators on the board provide protection to maximum 500 V. In case of
communication conflict, the transceivers feature thermal shutdown.
COM Port Compatibility
Type ST16C550 UARTs are used as the Asynchronous Communication Element (ACE)
which include a 16-byte transmit/receive buffer to protect against lost data
in multitasking operating systems, while maintaining 100 percent compatibility
with the original IBM serial port.
You can select a base address anywhere within the I/O address range 000 to 3E0
hex.
Communication Modes
This model supports a variety of 2-wire and 4-wire cable connections. 2 wire
or Half-Duplex allows traffic to travel in both directions, but only one
direction at a time. In 4 wire or Full-Duplex mode data travels in both
directions at the same time.
Line Bias and Termination
For increased noise immunity, the communication lines may be loaded at the
receiver and biased at the transmitter. RS485 communications requires that one
transmitter supply a bias voltage to ensure a known “zero” state when all
transmitters are off, and the last receiver input at each end of the network
be terminated to prevent “ringing”. The board supports these options with
jumpers on the board. See Chapter 3, Option Selection for more details.
Transceiver Control
RS485 communication requires the transmitter driver to be enabled and disabled
as needed, to allow all boards to share the communications line. The board has
automatic driver control. When the board is not transmitting, the receiver is
enabled and the transmitter driver is disabled. Under automatic control, when
data is to be transmitted, the receiver is disabled and the driver is enabled.
The board automatically adjusts its timing to the baud rate of the data.
Specification
Communications Interface
-
Serial Ports:
Two shielded male D-sub 9-pin IBM AT style connectors compatible with RS422 and RS485 specifications. Serial communications ACE used is type ST16C550. Transceivers used are type 75176. -
Serial Data Rates:
50 to 115,200 baud. 460,800 baud as a factory installed option.
Asynchronous,Type 16550 buffered UART. -
Address:
Continuously mappable within 000 to 3FF (hex) range of AT I/O bus addresses. -
Multipoint:
Compatible with RS422 and RS485 specifications. Up to 32 drivers and receivers allowed on line. -
Input Isolation:
500 Volts, from computer and between ports. -
Receiver Input Sensitivity: ±200 mV, differential input.
-
Transmitter Output Drive Capability: 60 mA (100 mA short-circuit current capability).
Environmental
- Operating Temperature Range: 0 to +60 °C.
- Industrial Version: -30º to +85º C.
- Storage Temperature Range: -50 to +120 °C.
- Humidity: 5% to 95%, non-condensing.
- Power Required: +5VDC at 200 mA typical, 300 mA maximum.
Installation
A printed Quick-Start Guide (QSG) is packed with the board for your
convenience. If you’ve already performed the steps from the QSG, you may find
this chapter to be redundant and may skip forward to begin developing your
application.
The software provided with this PC/104 Board is on CD and must be installed
onto your hard disk prior to use.
To do this, perform the following steps as appropriate for your operating
system.
CD Installation
The following instructions assume the CD-ROM drive is drive “D”. Please
substitute the appropriate drive letter for your system as necessary.
DOS
- Place the CD into your CD-ROM drive.
- Type to change the active drive to the CD-ROM drive.
- Type to run the install program.
- Follow the on-screen prompts to install the software for this board.
WINDOWS
- Place the CD into your CD-ROM drive.
- The system should automatically run the install program. If the install program does not run promptly , click START | RUN and type , click OK or press .
- Follow the on-screen prompts to install the software for this board.
LINUX
- Please refer to linux.htm on the CD-ROM for information on installing serial ports under linux.
Installing the Hardware
Before installing the board, carefully read Chapter 3 and Chapter 4 of this
manual and configure the board according to your requirements. The SETUP
Program can be used to assist in configuring jumpers on the board. Be
especially careful with Address Selection. If the addresses of two installed
functions overlap, you will experience unpredictable computer behavior. To
help avoid this problem, refer to the FINDBASE.EXE program installed from the
CD. The setup program does not set the options on the board, these must be set
by jumpers.
This multi-port serial communication board uses software-programmable address
ranges for each UART, stored in an onboard EEPROM. Configure the address of
the EEPROM using the onboard Address Selection jumper block, then use the
provided Setup program to configure addresses for each onboard UART.
To Install the Board
- Install jumpers for selected options and base address according to your application requirements, as mentioned above.
- Remove power from the PC/104 stack.
- Assemble standoff hardware for stacking and securing the boards.
- Carefully plug the board onto the PC/104 connector on the CPU or onto the stack, ensuring proper alignment of the pins before completely seating the connectors together.
- Install I/O cables onto the board’s I/O connectors and proceed to secure the stack together or repeat steps 3-5 until all boards are installed using the selected mounting hardware.
- Check that all connections in your PC/104 stack are correct and secure then power up the system.
- Run one of the provided sample programs appropriate for your operating system that was installed from the CD to test and validate your installation.
Installing COM Ports in Windows Operating Systems
*NOTE: COM boards can be installed in virtually any operating system and
we do support installation in earlier versions of windows, and are very likely
to support future version as well. For use in WinCE, contact the factory for
specific instructions.
Windows NT4.0
To install the COM ports in Windows NT4 you’ll need to change one entry in the
registry. This entry enables IRQ sharing on multi-port COM boards. The key is
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Serial\. The name of the
value is
PermitShare and the data should be set to 1.
You’ll then add the board’s ports as COM ports, setting the base addresses and
IRQs to match your board’s settings.
To change the registry value, run RegEdit from the START|RUN menu option (by
typing REGEDIT [ENTER] in the space provided). Navigate down the tree view on
the left to find the key, and double click on the name of the value to open a
dialog allowing you to set the new data value. To add a COM port, use
START|CONTROL PANEL|PORTS applet and click ADD, then enter the correct UART
address and Interrupt number.
When the “Add New Port” dialog is configured click OK, but answer “Don’t
Restart Now” when prompted, until you’ve added any other ports as well. Then
restart the system normally, or by selecting “Restart Now.”
Windows XP
To install the COM ports in Windows XP you will be manually installing
“standard” communications ports, then changing the settings for resources used
by the ports to match the hardware.
Run the “Add Hardware” applet from the Control Panel.
Click “Next” at the “Welcome to the Add New Hardware Wizard” dialog.
You’ll briefly see a “…searching…” message, then
Select “Yes, I have already connected the hardware” and Click “Next” Select
“Add a new hardware device” from the bottom of the list presented and Click
“Next.”
Select “Install the hardware that I manually select from a list” and Click
“Next.”
Select “Ports (COM & LPT) and Click “Next”
Select “(Standard Port Types)” and “Communications Port” (the defaults), Click
“Next.” Click “Next.” Click the “View or change resources for this hardware
(Advanced)” link. Click the “Set Configuration Manually” button.
Select “Basic Configuration 8″ from the “Settings Based on:” drop-down list.
Select “I/O Range” in the “Resource Settings” box and Click the “Change
Settings…” button.
Enter the base address of the board, and Click “OK” Select “IRQ” in the
“Resource Settings” box and Click the “Change Settings” button.
Enter the IRQ of the board and Click “OK”.
Close the “Set Configuration Manually” dialog and Click “Finish.”
Click “Do Not Reboot” if you wish to install more ports. Repeat all of the
above steps, entering the same IRQ but using the configured Base address for
each additional UART.
When you are done installing ports, reboot the system normally.
Option Selection
The following paragraphs describe the functions of the various jumpers on the
board.
A5 through A9
Place jumpers at locations A5 through A9 to set the board’s base address on
the I/O bus.
Installing a jumper sets that bit to a zero, while no jumper will leave the
bit a one.
See chapter 4 of this manual for more details on selecting an available I/O
address.
IRQ3 through IRQ15
Place a jumper at the location that corresponds to the IRQ level that your
software will be able to service. One IRQ services both serial ports.
485A/B and 422A/B
A jumper at the 485 location sets that port for 2 wire RS485 (Half Duplex)
mode.
A jumper at the 422 location sets that port for 4 wire RS422 (Full-Duplex)
mode.
For 4 wire RS485 applications install the 422 jumper if the port is the
master, if the port is a slave install both the 422 and 485 jumpers.
TRMI and TRMO
The TRMI jumpers connect the on board RC termination circuits to the input
(receive) lines.
These jumpers should be installed for 4 wire RS422 mode.
The TRMO jumpers connect the on board RC termination circuits to the
output/input lines.
These jumpers should be installed for 2 wire RS485 mode under certain
conditions.
See the following paragraph for more details.
Terminations and Bias
A transmission line should be terminated at the receiving end in its
characteristic impedance. Installing a jumper at the location labeled TRMO
applies a 120Ω load in series with a 0.01μF capacitor across the output for
RS422 mode and across the transmit/receive output/input for RS485 operation. A
jumper at the TRMI location applies a load on RS422 inputs.
Full or Half-Duplex
Full-Duplex allows simultaneous bi-directional communications. Half-Duplex
allows bi-directional transmit and receiver communication but only one at a
time, and is required for RS485 communications.
Proper selection depends on the wire connections used to connect the two
serial ports. The following table shows how two serial communication boards
would be interconnected for the various modes. Tx designates the transmit
wires and Rx designates the receive wires.
Communication Modes and Cabling Options
| | | Cable
---|---|---|---
Mode| | | Board A| Board B
Simplex| 2-wire Receive Only| Rx-| Pins
1| Pins
2
Simplex| 2-wire Transmit Only| Rx+| 9| 3
Tx+| 2| 9
Half- Duplex| 2-wire| Tx-| 3| 1
TRx+| 2| 2
Full-Duplex| 4-wire w/o local echo| TRx-| 3| 3
Tx+| 2| 9
| | Tx-| 3| 1
Rx-| 1| 3
Rx+| 9| 2
Address Selection
The board’s base address can be selected anywhere within the I/O bus address
range 000-3E0 hex, providing that the address does not overlap with other
functions. If in doubt, refer to the table below for a list of standard
address assignments. (The primary and secondary binary synchronous
communication ports are supported by the Operating System.) The base address
locator program FINDBASE provided on CD (or diskettes) will assist you to
select a base address that will avoid conflict with other installed
computer resources. Then, the SETUP program will show you where to position
the address jumpers when you have selected a base address.
The following provides background information to help you better understand
this process.
Table 4-1: Standard Address Assignments for Computers
HEX RANGE | USAGE |
---|---|
000-00F | 8237 DMA Controller 1 |
020-021 | 8259 Interrupt |
040-043 | 8253 Timer |
060-06F | 8042 Keyboard Controller |
070-07F | CMOS RAM, NMI Mask Reg, RT Clock |
080-09F | DMA Page Register |
0A0-0BF | 8259 Slave Interrupt Controller |
0C0-0DF | 8237 DMA Controller 2 |
0F0-0F1 | Math Coprocessor |
0F8-0FF | Math Coprocessor |
170-177 | Fixed Disk Controller 2 |
1F0-1F8 | Fixed Disk Controller 1 |
200-207 | Game Port |
238-23B | Bus Mouse |
23C-23F | Alt. Bus Mouse |
278-27F | Parallel Printer |
2B0-2BF | EGA |
2C0-2CF | EGA |
2D0-2DF | EGA |
2E0-2E7 | GPIB (AT) |
2E8-2EF | Serial Port |
2F8-2FF | Serial Port |
300-30F | |
310-31F | |
320-32F | Hard Disk (XT) |
370-377 | Floppy Controller 2 |
378-37F | Parallel Printer |
380-38F | SDLC |
3A0-3AF | SDLC |
3B0-3BB | MDA |
3BC-3BF | Parallel Printer |
3C0-3CF | VGA EGA |
3D0-3DF | CGA |
3E8-3EF | Serial Port |
3F0-3F7 | Floppy Controller 1 |
3F8-3FF | Serial Port |
Board Address jumpers are marked A5-A9. The following table lists jumpers name
vs. the address line controlled and the relative weights of each.
Table 4-2: Board Base Address Setup
Board Address Settings | 1st Digit | 2nd Digit | 3rdDigit |
---|---|---|---|
Jumper Name | A9 | A8 | A7 |
Address Line Controlled | A9 | A8 | A7 |
Decimal Weight | 512 | 256 | 128 |
Hexadecimal Weight | 200 | 100 | 80 |
In order to read the address jumper setup, assign a binary “1” to jumpers that
are OFF and a binary “0” to the jumpers that are ON. For example, as
illustrated in the following table, address selection corresponds to binary 11
000x xxxx (hex 300). The “x xxxx” represents address lines A4 through A0 used
on the board to select individual registers. See Chapter 5, Programming in
this manual.
Table 4-3: Example Address Setup
Jumper Name| A9| A8| A7| A6| A5| |
---|---|---|---|---|---|---|---
Setup| OFF| OFF| ON| ON| ON| |
Binary Representation| 1| 1| 0| 0| 0| |
Conversion Factors| 2| 1| 8| 4| 2| |
HEX Representation| 3| 0| 0
Review the Address Selection Table carefully before selecting the board address. If the addresses of two installed functions overlap you will experience unpredictable computer behavior.
Programming
A total of 32 consecutive address locations are allocated to the board, 17 of
which are used. The
UARTs are addressed as follows:
Table 5-1: Address Selection Table
I/O Address | Read | Write |
---|---|---|
Base +0 thru 7 | COM A UART | COM A UART |
Base +8 thru F | COM B UART | COM B UART |
Base +10h | Board IRQ Status | N/A |
Base +11 thru 1F | N/A | N/A |
The Read / Write registers for the UARTs match the industry-standard 16550
registers. The Board IRQ status register is compatible with Windows NT. COM A
will set bit 0 hi on interrupt, COM B will set bit 1 hi on interrupt.
Sample Programs
There are sample programs provided with the 104-ICOM-2S board in C, Pascal,
QuickBASIC, and several Windows languages. DOS samples are located in the DOS
directory and Windows samples are located in the WIN32 directory.
Windows Programming
The board installs into Windows as COM ports. Thus the Windows standard API
functions can be used.
In particular:
- CreateFile() and CloseHandle() for opening and closing a port.
- SetupComm(), SetCommTimeouts(), GetCommState(), and SetCommState() to set and change a port’s settings.
- ReadFile() and WriteFile() for accessing a port.
See the documentation for your chosen language for details.
Under DOS, the process is very different. The remainder of this chapter describes DOS programming.
Initialization
Initializing the chip requires knowledge of the UART’s register set. The
first step is to set the baud rate divisor. You do this by first setting the
DLAB (Divisor Latch Access Bit) high. This bit is Bit 7 at Base Address +3. In
C code, the call would be:
outportb(BASEADDR +3,0×80);
You then load the divisor into Base Address +0 (low byte) and Base Address +1
(high byte). The following equation defines the relationship between baud rate
and divisor: desired baud rate = (crystal frequency) / (32 * divisor)
The UART clock frequency is 1.8432MHz. The following table lists popular
divisor frequencies.
Table 5-2: Baud Rate Divisors
Baud Rate| Divisor| Divisor (Factory Option)|
Notes| **Max. Diff’l. Cable Length***
---|---|---|---|---
460800| | 1| | 550
230400| | 2| | 1400
115200| 1| 4| | 3000 ft.
57600| 2| 8| | 4000 ft.
38400| 3| 12| | 4000 ft.
28800| 4| 16| | 4000 ft.
19200| 6| 24| | 4000 ft.
14400| 8| 32| | 4000 ft.
9600| 12| 48| Most Common| 4000 ft.
4800| 24| 96| | 4000 ft.
2400| 48| 192| | 4000 ft.
1200| 96| 384| | 4000 ft.
These are theoretical maximums based on typical conditions and good quality cables based on the EIA 485 and EIA 422 standard for balanced differential drivers.
In C, the code to set the chip to 9600 baud is:
outportb(BASEADDR, 0x0C);
outportb(BASEADDR +1,0);
The second initializing step is to set the Line Control Register at Base
Address +3. This register defines word length, stop bits, parity, and the
DLAB.
Bits 0 and 1 control word length and allow word lengths from 5 to 8 bits. Bit
settings are extracted by subtracting 5 from the desired word length.
The third step of the initialization sequence is to set the Modem Control
Register at Base Address +4.
This register controls functions on some boards. Bit 1 is the Request to Send
(RTS) control bit. This bit should be left low until transmission time.
(Note: When operating in the automatic RS485 mode, the state of this bit
is not significant.) Bits 2 and 3 are user-designated outputs. Bit 2 may be
ignored on this board. Bit 3 is used to enable interrupts and should be set
high if an interrupt-driven receiver is to be used.
The final initialization step is to flush the receiver buffers. You do this
with two reads from the receiver buffer at Base Address +0. When done, the
UART is ready to use.
Reception
Reception can be handled in two ways: polling and interrupt-driven. When
polling, reception is accomplished by constantly reading the Line Status
Register at Base Address +5. Bit 0 of this register is set high whenever data
are ready to be read from the chip. Polling is not effective at high data
rates above because the program cannot do anything else when it is polling or
data could be missed. The following code fragment implements a polling loop
and uses a value of 13, (ASCII carriage return) as an end-of-transmission
marker:
do
{
while (!(inportb(BASEADDR +5) & 1)); /Wait until data ready/
data[i++]= inportb(BASEADDR);
}
while (data[i]!=13); /Reads the line until null character rec’d/
Interrupt-driven communications should be used whenever possible and is
required for high data rates.
Writing an interrupt-driven receiver is not much more complex than writing a
polled receiver but care should be taken when installing or removing your
interrupt handler to avoid writing the wrong interrupt, disabling the wrong
interrupt, or turning interrupts off for too long a period.
The handler would first read the Interrupt Identification Register at Base
Address +2. If the interrupt is for Received Data Available, the handler then
reads the data. If no interrupt is pending, control exits the routine. A
sample handler, written in C, is as follows:
readback = inportb(BASEADDR +2);
if (readback & 4) /Readback will be set to 4 if data are available/
data[i++]=inportb(BASEADDR);
outportb(0x20,0x20); /Write EOI to 8259 Interrupt Controller*/
return;
Transmission
RS485 transmission is simple to implement. The AUTO feature automatically
enables the transmitter when data is ready to send so no software enabling
procedure is needed.
Connector Pin Assignments
The popular 9-pin D subminiature connector (male) is used for interfacing to
communication lines. The connectors are equipped with 4-40 threaded standoffs
(female screw lock) to provide strain relief. The connector labeled P2 is for
COM A, and P3 is COM B.
Table 6-1: P2/P3 Connector Pin Assignments
Pin No. | RS422 Four-Wire | RS485 Two-Wire |
---|---|---|
1 | Rx- | |
2 | Tx+ | T/Rx+ |
3 | Tx- | T/Rx- |
4 | Not Used | |
5 | Isolated GND | Isolated GND |
6 | Not Used | |
7 | Not Used | |
8 | Not Used | |
9 | Rx+ |
Note
If the unit is CE-marked, then CE-certifiable cabling and breakout methodology
(cable shields grounded at the connector, shielded twisted-pair wiring, etc)
must be used.
Customer Comments
If you experience any problems with this manual or just want to give us
some feedback, please email us at:
manuals@accesio.com. Please detail any errors
you find and include your mailing address so that we can send you any manual
updates.
Assured Systems
Assured Systems is a leading technology company with over 1,500 regular
clients in 80 countries, deploying over 85,000 systems to a diverse customer
base in 12 years of business. We offer high-quality and innovative rugged
computing, display, networking and data collection solutions to the embedded,
industrial, and digital-out-of-home market sectors.
US
sales@assured-systems.com
Sales: +1 347 719 4508
Support: +1 347 719 4508
1309 Coffeen Ave
Ste 1200
Sheridan
WY 82801
USA
EMEA
sales@assured-systems.com
Sales: +44 (0)1785 879 050
Support: +44 (0)1785 879 050
Unit A5 Douglas Park
Stone Business Park
Stone
ST15 0YJ
United Kingdom
VAT Number: 120 9546 28
Business Registration Number: 07699660
References
- Industrial Embedded Computers and Displays - Assured Systems
- Industrial Embedded Computers and Displays - Assured Systems
- Industrial Embedded Computers and Displays - Assured Systems
Read User Manual Online (PDF format)
Read User Manual Online (PDF format) >>