Industrologic SIO-1000

RS-232 Data Acquisition Interface

Reference Manual

version 12/3/02



Industrologic, Inc.
3201 Highgate Lane
St. Charles, MO
63301
USA

Phone: (636) 723-4000
WWW: http://www.industrologic.com
Email: info@industrologic.com




Trademark and Copyright Information

SIO-1000 is a Trademark of Industrologic, Inc. 1998

This document is Copyright (c) 1998 by Industrologic, Inc.
All rights reserved.

No part of this manual may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying or scanning, for any purpose other than the personal use by the purchaser of this product. Industrologic, Inc. reserves the right to revise this document at any time without obligation to notify any person of such revision. Industrologic, Inc. assumes no responsibility for any errors that may appear in this document.

The software distributed with and the firmware contained in this product is Copyright (c) 1998 by Industrologic, Inc.


Warning/Disclaimer

Whereas effort has been made to make the information in this document as useful and accurate as possible, Industrologic, Inc. assumes no responsibility for the application, usefulness, or completeness, of the information contained herein. Under no circumstance will Industrologic, Inc. be responsible or liable for any damages or losses including indirect or consequential damages or losses arising from either the use of any information contained within this manual or the use of any products or services referenced within this manual.

Industrologic, Inc. reserves the right to change any product's features, specifications, documentation, warranties, fee schedules, and conditions at any time and without notice.

Industrologic products are provided as printed circuit board level assemblies. Some Industrologic products may include mechanical packaging assessories which are provide for the purchaser's convenience, and are not intended to be final assembly enclosures.

Industrologic products are provided with the understanding that the purchaser will determine fitness for any particular application as well as achieve compliance with any particular specifications or regulations as required or desired for that application.


Warranty

Industrologic, Inc. products are warranted to be free from defects in workmanship or material under normal use and service for a period of one year from date of purchase. Industrologic's warranty is to the original purchaser only, but is extended to you by the Distributor or OEM from whom you purchased the product.

Industrologic's obligation under this Warranty is limited to replacement with a new or repaired unit to the original purchaser. The unit must be returned, and replacements obtained from Industrologic, Inc. or the Distributor or OEM from whom it was purchased.

This warranty will not apply if, in the judgment of Industrologic, Inc., damage or failure of the product has resulted from accident, alteration, misuse, abuse, connection to or operation with incompatible signals or power sources, or improper installation.

Under no circumstances shall Industrologic, Inc. be liable to purchaser or any third party for any loss of profits or other direct or indirect costs, expenses, losses, or consequential damages arising out of or as a result of any defects in or failure of Industrologic products or any part or parts thereof.

THIS WARRANTY IS IN LIEU OF ANY OTHER WARRANTY, EITHER EXPRESSED OR IMPLIED, AS TO DESCRIPTION, QUALITY, MERCHANTABILITY, FITNESS FOR ANY PARTICULAR PURPOSE OR USE, OR ANY OTHER MATTER.


Return and Repair Policy

Products purchased in single piece quantities may be returned, if in resellable condition, for a full refund of the purchase price only, to the original purchaser, within 30 days of purchase.

Products must be returned by original purchaser with a Return Materials Authorization (RMA) number issued by Industrologic, Inc. or the Distributor or OEM from whom it was purchased, authorizing its return. Current repair or replacement fees and procedures will be related during the issue of the RMA number.

Warranty or repair units must be returned with postage and insurance paid by purchaser. Industrologic, Inc. is not responsible for damages or loss during shipment.





Industrologic SIO-1000

RS-232 Data Acquisition Interface

The Industrologic SIO-1000 is designed to allow easy interface to a wide variety of signals using a common RS-232 serial port on a computer or other device.



picture of SIO-1000   picture of SIO-1000



Summary of Features

Based on an Intel 80C51 microcontroller operating at 11.0592 MHZ.

Self-contained printed circuit board assembly with no wiring or connections necessary except those required to connect power, communication, and user signals.

Includes an ABS plastic enclosure for protection and ease of mounting.

Operates on 11 to 16 volts AC or 13.5 to 20 volts regulated or unregulated DC, with a coaxial power connector for connection to a wallblock transformer, as well as screw terminals for other voltage sources.

RS-232 pinout matches the 9-pin serial port of IBM PC compatible computers for easy connection to these computers.

Shipped with all items needed to quickly and immediately connect to an IBM PC compatible computer and begin collecting data and controlling devices-

Interface board, power supply, RS-232 cable, and demonstration/test software.


The SIO-1000 interfaces the following signals:


Digital inputs and ouputs to rack I/O:

The 8 digital inputs and 8 outputs connect to a 50-pin 0.1" double-row header for easy connection to industry standard 16 channel digital I/O "racks" (mounting boards for opto-isolated modules), typical of Potter and Brumfield 2IO-16 and Gordos PB-16 racks. The SIO-1000 digital inputs 0 through 7 are associated with rack I/O channels 0 through 7, and SIO-1000 digital outputs 0 through 7 are associated with rack I/O channels 8 through 15 respectively.


The following signals connect to screw terminals for quick discrete connection:


Mechanical specifications

Double-sided .062" FR-4 glass epoxy printed circuit board.

P.C. Board assembly has 4 holes available for mounting to enclosure or #6 standoffs.

P.C. Board Dimensions: 5.25 inches by 4.00 inches
Enclosure: Bud Industries CU-387-MB utilibox
Enclosure Dimensions: 5.50L x 4.25W x 1.75D (6.5L including mounting flange)


Enclosure dimensions:

mechanical drawing of SIO-1000



Electrical specifications

Power Supply:

Power supply voltage: 11 to 16 volts AC or 13.5 to 20 volts DC, regulated or unregulated
Power supply current: 60 ma relay off, 100 ma relay on, (plus any external
load on the +5 or +12 terminal blocks)
Power supply connector: 5.5 mm outside diameter, 2.1 mm inside diameter

Special note on power supplies:

These specifications are for actual measured voltages at the SIO-1000. Be advised that all unregulated wall pack power supplies produce their rated voltage only at their specified current, and will actually produce a much higher voltage at lower current drains. For example, a 12 volt unregulated supply rated at 800 ma may actually produce 20 volts when connected to the SIO-1000. Use either the wall block power supply provided with the SIO-1000, or a supply rated for 12 volts at 100 ma or less, or one you have measured with a meter and know to be an appropriate voltage.

On-board LED's:
The green power LED (PWR) indicates power applied to SIO-1000. The red overvoltage LED (OV) indicates a voltage over 20 volts internal to the SIO-1000 and that excessive power is being dissipated by the internal voltage regulators.

Power available at the screw terminals:
The +5 volt and +12 volt supplies used on-board the SIO-1000 are made available at discrete screw terminals to allow quick interfacing to certain devices requiring power without having the need to provide separate power supplies. However, the current drawn from these terminals should not exceed 100 milliamperes from either supply.

Operating Environment:

Temperature: 0-50 degrees Celsius (32-122 Fahrenheit)
Humidity: 30 to 80 percent, non-condensing
Optional conformal coating as a special order item.
(Contact Industrologic, Inc. for more information.)

Digital Inputs:
(4.7K pull-up resistor to +5, .01uf capacitor to ground)
Voltage input high: 2.2 volts minimum
Voltage input low: 0.8 volts maximum

Digital Outputs:
(Isolated open-collector transistors.)
Voltage switched: 36 volts DC
Current sink: 36 ma maximum

Analog Inputs:
Voltage range: 0 to +5 volts
Input capacitance: .01uf
Input Impedance: 5000 ohms or less for best results
Accuracy: +/- 1 LSB
Resolution: 12 bits

Analog Outputs:
Voltage range: 0 to +5 or 0 to +10 volts, jumper selectable
(Power supply must be at least 11.1 volts for the 0 to 10 volt range)
Output impedance: 1000 ohms minimum
Accuracy: 2 % (D/A is +/- 1 LSB, plus op amp buffer)
Resolution: 12 bits

Pulse Counter Input:
(4.7K pull-up resistor to +5)
Input voltage: +/- 30 volts, any non-harmonic waveform
Maximum count: 65535 before rollover
Maximum frequency: 10,000 HZ

Waveform Generator Output:
(Open-collector transistor with 4.7K pull-up resistor to +5)
Voltage switched: 36 volts DC
Current sink: 36 ma maximum

Form "C" Relay Circuit:
Voltage switched: 30 volts DC or AC maximum
Current switched: 5.0 amps
Manufacturer's type: Omron G5LE-14 series or equivalent


On-Board Configuration Jumpers

The SIO-1000 uses plastic jumpers or "shunts" placed on pins on the printed circuit board to select various circuit and software options. The pins are arranged in groups of three, with selections being made by placing the individual jumpers between the center pin and one of the outside pins depending on the option selected.

Analog Output Range:
Jumpers AO0 and AO1 are individual 3 pin jumpers that select the analog output range on each output to be either 0 to 5 volts or 0 to 10 volts depending on which position you place the jumpers, to the top or to the bottom.

           AO0                       AO1
           top position     0-10     top position  0-10 volts
(default)  bottom position  0-5      bottom position  0-5 volts

Baud Rate and Character Echo:
Jumpers SEL0, SEL1, SEL2, and SEL3 are arranged in a group of 12 pins that select the baud rate and echo options depending on which position you place the jumpers, to the left or to the right.

The following is a table of jumper arrangements and baud rates available.

baud rate    19.2K    9600     4800    2400    1200    600     300     150
SEL0         left     right    left    right   left    right   left    right
SEL1         left     left     right   right   left    left    right   right
SEL2         left     left     left    left    right   right   right   right
                    (default)

Jumper SEL3 selects whether or not the SIO-1000 will echo characters sent to it.

echo     yes      no
SEL3     left     right
                (default)

Waveform Output Polarity:
Jumper WO is an individual 3 pin jumper that selects the polarity of the waveform generator output. When placed in the "H" position which is to the left, the transistor will be turned off when waveforms are generated, thereby providing a high-going logic level from the pull-up resistor. When placed in the "L" position which is to the right, the transistor is turned off upon power-up or reset of the SIO-1000, and waveforms will cause it to be turned on. Use this option when connecting devices to the waveform output that you do not wish to draw current on reset, such as a speaker or a relay.

            left position     H  high-going waveform
(default)   right position    L  low-going waveform

Pulse Counter Input Filter:
Jumper CI is an individual 3 pin jumper that selects whether or not a filter capacitor is placed between the pulse counter input and ground. When placed in the "NF" position which is to the left, the capacitor is not connected. Use this option when connecting devices to the pulse counter input that will produce bounce-free ("clean") pulses. When placed in the "F" position which is to the right, the capacitor is connected. Use this option when connecting devices to the pulse counter such as a pushbutton switch which will have a mechanical bounce (producing multiple contact closures) in its contacts. Use of the filter in this case will allow the pulse counter input to recognize each press of the switch as just one count.

(default)   left position     NF  no filter capacitor connected
            right position    F   filter capacitor connected



Serial port pinout

The SIO-1000 serial port connector and its pinout matches the 9-pin serial port of IBM PC compatible computers and can be easily connected to these computers using a pin-to-pin cable. The SIO-1000 does not require hardware handshake signals and can be used with only the transmit, receive, and ground signals connected. Certain programs, however, may require that some of the input handshake signals be asserted going into the PC. In order to make this easier, the SIO-1000 has the common PC handshake signals looped back on the board, so that when a 9-wire cable is used, the signals are asserted without further connection.

The following is a pinout of the serial port signals:

SIO signal  Pin  PC signal

            1    DCD in
transmit    2    receive
receive     3    transmit
            4    DTR out
ground      5    ground
            6    DSR in
            7    RTS out
            8    CTS in
            9    RI in

Pins 1, 4, and 6 are tied together on the SIO-1000, and pins 7 and 8 are tied together.



50 pin RACKIO connector pinout

The 8 digital inputs and 8 digital outputs on the SIO-1000 connect to a 50-pin 0.1" double-row header for easy connection via a 50 pin ribbon cable to industry standard 16 channel digital I/O "racks" (mounting boards for opto-isolated modules), typical of Potter and Brumfield 2IO-16 and Gordos PB-16 racks.

The following is a pinout of the connector.

no connection         1    2      ground
no connection         3    4      ground
no connection         5    6      ground
no connection         7    8      ground
no connection         9    10     ground
no connection        11    12     ground
no connection        13    14     ground
no connection        15    16     ground
digital output 7     17    18     ground
digital output 6     19    20     ground
digital output 5     21    22     ground
digital output 4     23    24     ground
digital output 3     25    26     ground
digital output 2     27    28     ground
digital output 1     29    30     ground
digital output 0     31    32     ground
digital input 7      33    34     ground
digital input 6      35    36     ground
digital input 5      37    38     ground
digital input 4      39    40     ground
digital input 3      41    42     ground
digital input 2      43    44     ground
digital input 1      45    46     ground
digital input 0      47    48     ground
+5                   49    50     ground


Communicating with the SIO-1000

Serial port connection

RS-232, 8 data bits, 1 stop bit, no parity. Jumper selectable baud rates of 19200, 9600, 4800, 2400, 1200, 600, 300, 150. Jumper selectable echoing of characters received.

Serial protocol

Commands are based on printable ASCII characters for ease of programming and troubleshooting.

Commands are followed by a carriage return, and responses are followed by a carriage return/line feed sequence to make testing the unit with a terminal program possible.

Commands not understood by the SIO-1000 or commands sent with an improper or out of range value are responded to with a question mark and a carriage return/line feed sequence.

To verify the correct receipt of data sent from the SIO-1000 in response to a command, the command can be repeated, since responses are very short.

To verify the correct receipt of commands by the SIO-1000, two methods may be used. A jumper selection is provided that causes all characters received to be echoed back to the transmitting device. The echoed characters from a command can be compared one by one to the characters sent, and if any character in a command fails the comparison, an escape character can be sent instead of the final carriage return to reset the software and abort the command. Alternately, since all output commands have a corresponding command that allows reading back the value set with the output command, these separate commands may be used to insure that the value has been properly set.

Values sent and received are in ASCII encoded hexidecimal where:
x can be a value from 0 to 7 hex (0 to 7 decimal)
y can be the value 0 or 1 hex (0 or 1 decimal)
xx or yy can be an 8 bit value from 00 to FF hex (0 to 255 decimal)
xxx can be a 12 bit value from 000 to FFF hex (0 to 4095 decimal)
xxxx or yyyy can be a 16 bit value from 0000 to FFFF hex (0 to 65535 decimal)
<CR> is a carriage return character: 0D hex (13 decimal)
<LF> is the line feed character: 0A hex (10 decimal)
<ESC> is the escape character: 1B hex (27 decimal)


Commands

Command response time

Response time to commands sent to the SIO-1000 are dependent mostly on the baud rate selected with which to communicate with the device. The SIO-1000 can begin processing a received command after it has received all 8 data bits from the last character in the command and has determined that the stop bit is present, which is about one half bit time later. The processing time specified for each command that transmits a response is based on this time reference to the beginning of the response's transmission. The processing time specified for each command that performs a hardware function is based on this same time reference to the completion of the hardware function.

Hardware and Software Resets

Commands are available to reset the SIO-1000 hardware and software to their initialized states and to confirm connection to the SIO-1000.

Request identification characters from SIO and reset SIO hardware to the power up initialized state. (All output signals will be off.) The equivalent of this command is done when the SIO is powered up.
Sent to SIO: r<CR>
Range: n/a
Received from SIO: SIO<CR><LF>
Processing time: 1.2 ms

Request identification characters from SIO to confirm connection. This command will allow you to determine if an SIO-1000 is connected and communicating.
Sent to SIO: R<CR>
Range: n/a
Received from SIO: SIO<CR><LF>
Processing time: 120 us

Reset SIO software to beginning of command. This command can be used when an error has been made entering a command and you want the SIO-1000 to ignore the characters entered since the last carriage return.
Sent to SIO: <ESC>
Range: n/a
Received from SIO: nothing
Processing time: 37 us

Digital Inputs

The digital inputs can be read with either a byte wide data word that involves all 8 bits at once, or with a single bit command for each of the 8 inputs: These port and bit values represent the on/off status of the inputs.

The byte wide command is:

Read digital input port
Sent to SIO: P<CR>
Range: 00-FF
Received from SIO: Pxx<CR><LF>
Processing time: 300 us

The single bit command is:

Read digital input bit
Sent to SIO: Dx<CR>
Range: 0-7
Received from SIO: Dxy<CR><LF>
Processing time: 300 us

Digital Outputs

The digital outputs can be set and read with either a byte wide data word that involves all 8 bits at once, or with a single bit command for each of the 8 outputs. These port and bit values represent the on/off status of the outputs.

The byte wide commands are:

Set digital output port
Sent to SIO: Pxx<CR>
Range: 00-FF
Received from SIO: nothing
Processing time: 340 us

Read digital output port set value
Sent to SIO: p<CR>
Range: 00-FF
Received from SIO: pxx<CR><LF>
Processing time: 220 us

The single bit commands are:

Set digital output bit
Sent to SIO: Dxy<CR>
Range: x = 0-7, y = 0-1
Received from SIO: nothing
Processing time: 340 us

Read digital output bit set value
Sent to SIO: dx<CR>
Range: 0-7
Received from SIO: dxy<CR><LF>
Processing time: 220 us

Analog Inputs

The analog inputs are read with 3 byte data words that represent the voltages present at the analog inputs.

Read Analog input 0 (channel A)
Sent to SIO: A<CR>
Range: 000-FFF
Received from SIO: Axxx<CR><LF>
Processing time: 520 us

Read Analog input 1 (channel B)
Sent to SIO: B<CR>
Range: 000-FFF
Received from SIO: Bxxx<CR><LF>
Processing time: 550 us

Analog Outputs

The analog outputs are set and read with 3 byte data words that represent the voltages present at the analog outputs.

Set analog output 0 (channel A)
Sent to SIO: Axxx<CR>
Range: 000-FFF
Received from SIO: nothing
Processing time: 460 us

Read Analog output 0 (channel A) set value
Sent to SIO: a<CR>
Range: 000-FFF
Received from SIO: axxx<CR><LF>
Processing time: 280 us

Set analog output 1 (channel B)
Sent to SIO: Bxxx<CR>
Range: 000-FFF
Received from SIO: nothing
Processing time: 480 us

Read Analog output 1 (channel B) set value
Sent to SIO: b<CR>
Range: 000-FFF
Received from SIO: bxxx<CR><LF>
Processing time: 300 us

Pulse Counter Input

The pulse counter input count is stored in a 2 byte data word that represents the number of pulses that have occurred at the input since the last time the counter was read, or since power-up. Since the counter is based on a 16 bit register, the value will roll over to zero after reaching 65,535 counts. Therefore, the value must be read often enough to prevent loss of counts due to rollover. A separate command is provided to reset the counter value to zero after reading the count if so desired. The pulse counter input can count pulses at the rate of 10,000 pulses per second.

Read counter value
Sent to SIO: C<CR>
Range: 0000-FFFF
Received from SIO: Cxxxx<CR><LF>
Processing time: 420 us

Read counter value and reset count to zero
Sent to SIO: c<CR>
Range: 0000-FFFF
Received from SIO: cxxxx<CR><LF>
Processing time: 420 us

Waveform Generator Output

Please note: The waveform generator output is a software generated signal and not entirely a hardware counter or timer, therefore, accuracies and ranges associated with hardware generated waveforms are not possible.

Frequency resolution:
The frequency generated by the waveform generator is a software approximation of the frequency specified in the command. The software in the SIO-1000 calculates the number of periods required to produce the waveform based on the period of the processor clock, which is not an exact multiple of most frequencies desired. This calculation must round off the number of periods used to produce waveforms at certain frequencies, therefore, different frequencies specified with the command might actually generate the same waveform frequency. This effect is even more pronounced at the higher frequencies.

The waveform generator output can be used in three different modes.
1. Frequency generator
2. Pulse width modulation generator
3. Digital output


1. Frequency generator mode:

In the frequency mode, the waveform generated is a 50 percent duty cycle waveform at the frequency specified, which can be anywhere from 15 hertz to 5000 hertz. Frequency accuracy is 1 percent. This waveform can be generated continuously by specifying only the frequency in the command, or if an additional parameter is given, the frequency can be generated only for a specified number of pulses before stopping.

The frequency mode commands are:

Set continuous frequency output
Sent to SIO: Fxxxx<CR>
Range: xxxx = 000F-1388, frequency from 15HZ to 5KHZ, or 0000 to turn off the waveform
Received from SIO: nothing
Processing time: 3.0 ms

Set frequency output for number of pulses
Sent to SIO: Fxxxxyyyy<CR>
Range: xxxx = 000F-1388, frequency from 15HZ to 5KHZ, or 0000 to turn off the waveform
Range: yyyy = 0000-FFFF, number of pulses from 1 to 65535, or 0000 for a continuous waveform
Received from SIO: nothing
Processing time: 3.1 ms

Read frequency output set value
Sent to SIO: f<CR>
Range: xxxx = 0000-1388
Received from SIO: fxxxx<CR><LF>
Processing time: 460 us

2. Pulse width modulation generator mode

In the pulse width modulation mode (PWM), the waveform generated is one of 6 different frequencies based on multiples of 100 periods, which provides a duty cycle selectable from 1 to 99 percent at the lower frequency selections. At the higher frequencies the range of possible duty cycles is narrowed due to the short amount of time available for the software to do the necessary work to produce an accurate waveform.

The pulse width modulation (PWM) mode commands are:

Set PWM output
Sent to SIO: Wxyy<CR>
Received from SIO: nothing
Processing time: 480 us

Range: x = frequency selection        yy = duty cycle in percent
       0 = none (off)                 00 = waveform off
       1 = nominal 92                 01H-63H (1-99D)
       2 = nominal 128                01H-63H (1-99D)
       3 = nominal 252                01H-63H (1-99D)
       4 = nominal 498                01H-63H (1-99D)
       5 = nominal 972                02H-62H (2-98D)
       6 = nominal 2052               07H-5DH (7-93D)
Read PWM output set value
Sent to SIO: w<CR>
Range: x = 0-6, y = 1-99
Received from SIO: Wxyy<CR><LF>
Processing time: 440 us

3. Digital output mode

In the digital output mode the waveform generator output can be used as an extra digital output which can turn on and off an open collector transistor. (Since a pull-up resistor is included at the collector of the transistor, the on/off commands will be inverted if the output is used as a logic level output.)

The waveform generator transistor output used in digital output mode is turned on and off with single bit commands:

Set extra digital output on/off
Sent to SIO: Vy<CR>
Range: 0 or 1
Received from SIO: nothing
Processing time: 400 us

Read extra digital output on/off set value
Sent to SIO: v<CR>
Range: n/a
Received from SIO: vy<CR><LF>
Processing time: 400 us

Relay Output

The relay is turned on and off with single bit commands:

Set relay on/off
Sent to SIO: Ky<CR>
Range: 0 or 1
Received from SIO: nothing
Processing time: 400 us

Read relay on/off set value
Sent to SIO: k<CR>
Range: n/a
Received from SIO: ky<CR><LF>
Processing time: 400 us




The following is a drawing of the SIO-1000 P.C. board showing the jumpers and connections:

SIO-1000 P.C. board drawing


end of manual
log file