Introduction
Top Next

This Document System was last updated on 31 MAY 2005
Update history can be found here

WELCOME to Tibbo Document System!

This Document System consists of four parts:

· Hardware Manuals describe the hardware of Tibbo Device Servers

· Firmware Manuals describe internal software (called "firmware") of Tibbo Device Servers

· Software Manuals describe available PC software

· Application Notes part is a collection of articles on practical use of Tibbo Device Servers


Hardware Manuals
Top Previous Next

This part of documentation describes all hardware supplied by Tibbo.

All hardware manufactured by Tibbo is divided into three categories:

· Ethernet-to-serial Modules for onboard installation

· Ethernet-to-serial Boards

· Ethernet-to-serial Servers for external use

Additionally, Tibbo supplies a number of Accessories and Kits.


Ethernet-to-Serial Modules

This part of documentation describes Ethernet-to-serial Modules for onboard installation supplied by Tibbo.

The following Modules are currently manufactured:

· EM100 Ethernet-to-serial Module

· EM120 Ethernet-to-serial Module

· EM200 Ethernet-to-serial Module

· EM202 Ethernet-to-serial Module

To simplify choosing between Ethernet-to-serial Modules we provide the following comparison chart.


Comparison Chart for Ethernet-to-Serial Modules

The following table compares main characteristics of Tibbo Ethernet-to-serial Modules.

Item
EM100
EM120
EM200
EM202
Form factor
"IC Chip"
RJ45 conn.
Ethernet port type
10BaseT
100/10BaseT
Ethernet magnetics
Built-in
External
Built-in
Ethernet (RJ45) connector
External
Built-in
Serial port type
TTL
Serial port capabilities
Baudrates: 150-115200bps; parity: none, even, odd, mark, space; 7 or 8 bits/byte
Serial port lines
RX, TX, RTS, CTS, DTR, DSR
Number of additional general-purpose I/O lines
2
5
0
Routing buffer size (bytes)
510*2
12KBytes*2
Average current consumption (mA)
40
50
220
230
Average operating temperature (C)
(Room)
(Room)
55
40
Mechanical dimensions (mm)
46.2x28x13
35x27.5x9.1
32.1x18.5x7.3
32.5x19x15.5


EM100 Ethernet-to-Serial Module

The EM100 is an Ethernet Module for onboard installation. Module hardware includes one 10BaseT Ethernet port (standard Ethernet magnetics are integrated into the Module), one serial port (CMOS-level) with a number of additional general-purpose I/O lines, and an internal processor, whose firmware acts as a bridge between the Ethernet and serial ports. Ethernet "side" of the Module connects directly to a standard RJ45 connector. Serial "side" interfaces directly to the serial port pins of most microcontrollers, microprocessors, UARTs, etc.

From the hardware standpoint, the EM100 can be viewed as a universal platform suitable for running a variety of network and serial communications-related applications. It is the application firmware, not hardware that gives the EM100 most of its functionality.

The Application firmware EM100 is supplied with, currently in its 3rd generation ("Release3"), turns the EM100 into a Serial Device Server used to connect serial devices to the Ethernet (TCP/IP) networks.

The application firmware of the EM100 can be upgraded through the module's serial port or Ethernet port*. Serial upgrades are facilitated by a so-called Monitor- a fixed "service" firmware inside the EM100. The Monitor itself cannot be upgraded. Network upgrades rely on the NetLoader firmware component that, like the application firmware itself, can be upgraded through the serial port of the EM100 (using the Monitor). The EM100 is supplied with the application firmware and the NetLoader already pre-loaded into the module.

Since most of the EM100's operation is defined by its firmware the major part of the EM100's functional description can be found in the Device Server Application Firmware Manual. This EM100 Ethernet Module Manual focuses on the hardware portion of the EM100.

* Network upgrades are only possible on the latest EM100-03 modification of the device (see specifications and EM100 modifications for details)


I/O Pin Assignment and Pin Functions

EM100 pin assignment is shown below.

em100- pin assignment

Click on the pin in the diagram above or one of the links provided below to learn more about EM100's I/O pins:

· Ethernet port lines

· Serial port and general-purpose I/O lines

· LED lines

· Power, reset, and mode selection lines


Ethernet Port Lines

#10
TX+
Output
Positive line of the differential output signal pair
#9
TX-
Output
Negative line of the differential output signal pair
#2
RX+
Input
Positive line of the differential input signal pair
#1
RX-
Input
Negative line of the differential input signal pair

Ethernet port of the EM100 is of 10BaseT type. The EM100 is compatible with all 10BaseT Ethernet hubs and also 99% of 100BaseT hubs. This is because most 100BaseT hubs are actually 100/10 machines that auto-detect the type of device connected to each port.

The EM100 is designed to attach directly to the RJ45 Ethernet connector. Standard magnetics circuitry (YCL part 20F001N) has been included onboard to provide a "glueless" interface to the Ethernet network.

It is important to make the PCB wire connections between the Ethernet port pins and the RJ45 as short as possible. Making the wires too long may cause the noise level generated by your PCB surpass the maximum radiated emission limits stipulated by FCC and CE regulations. Additionally, longer Ethernet lines on the PCB will make your board more susceptible to the damage from the ESD (electrostatic discharge).


Serial Port and General-Purpose I/O Lines*

#16
TX
Output
Serial transmit line
#15
RX
Input
Serial receive line
#18
P5
(RTS/DIR)
Input/output
(output)
General-purpose input/output line
Request to send output (full-duplex mode)
Data direction control output (half-duplex mode)
#17
P4
(CTS/SEL)
Input/output
(input)
General-purpose input/output line
Clear to send input
Full-/half-duplex selection input
#20
P3
(DTR)
Input/output
(output)
General-purpose input/output line
Data terminal ready output
#19
P2
(DSR)
Input
(input)
General-purpose input line
Data set ready input
#13
P1
Input/output
General-purpose I/O line
#12
P0
Input/output
General-purpose I/O line

Line functions defined by the application firmware are shown in blue

The EM100 features a serial port (RX, TX lines) and several general-purpose I/O lines (P0-P5). All of the above lines are of CMOS type. From the hardware point of view, all general-purpose I/O lines except P2 can serve as inputs or outputs. Line P2 can only work as an input. Maximum load current for all CMOS lines is 10mA.

Simplified structure of EM100's I/O lines is shown on the circuit diagram below. All lines are "quasi-bidirectional" and can be viewed as open collector outputs with weak pull-up resistor. There is no explicit direction control. To "measure" an external signal applied to a pin the OUT line must first be set to HIGH. It is OK to drive the pin LOW externally when the pin outputs HIGH internally.

EM100_io pin circuit

The application firmware of the EM100 maps certain serial port functions onto the general-purpose I/O pins- these functions are shown in blue in the table at the top of this topic. For example, P5 is a universal input/output but the application firmware can be set to turn this line into the RTS output of the serial port. Therefore, depending on your application you can view P5 as a general-purpose I/O line or specific control line of the serial port (RTS).

Being of CMOS type, the serial port and I/O lines of the EM100 can be connected directly to the serial port pins and I/O lines of most microcontrollers, microprocessors, etc. An interface IC* must be added to the EM100 externally if you want to connect the module to a "true" serial port (for example, COM port of the PC).

Logical signals on the serial port lines of the EM100 are active LOW. TX and RX lines are high when idle, start bit is LOW, stop bit is HIGH; LOW on CTS and RTS lines means "transmission allowed" and HIGH means "transmission not allowed". This is standard for CMOS-level serial ports and is exactly opposite to the signalling on the RS232 cables. Logical signals on the EM100 are inverted because standard interface ICs* invert the signals internally too.

As explained earlier, actual functionality of the I/O lines is firmware-dependent. See serial port and serial communications for details.

* Such as MAX232 for RS232, MAX485 for RS485, etc.


LED Lines*

#4
L1 (ER)
Output
LED output 1, Red Ethernet status LED
#5
L2 (EG)
Output
LED output 2, Green Ethernet status LED
#6
L3 (SG)
Output
LED output 3, Green status LED
#7
L4 (SR)
Output
LED output 4, Red status LED, Watchdog reset line

Line functions defined by the application firmware are shown in blue

The EM100 has four LED control lines. All lines have the same internal structure and the LEDs should be connected to these lines as shown on the schematic diagram below. Maximum load for each line is 10mA.

The firmware of the EM100 assigns specific functions to these LED control lines- these functions are shown in blue in the table at the top of this topic.

ER and EG lines reflect the status of the Ethernet port. The EG LED is normally ON, and is temporarily turned off whenever the EM100 receives a network packet. The EG is normally OFF, and is temporarily turned on whenever a data collision is detected on the Ethernet*.

Additionally, ER line serves as a watchdog reset line. A very short (<10us) pulses are generated on this line at a rate of about 100Hz. When connected to the watchdog reset pin of external reset/watchdog IC, ER line keeps the watchdog "in check" preventing it from resetting the EM100. Watchdog reset pulses do not interfere with the main function of the line (that is, to indicate the status of Ethernet port). This is because the pulses are so short that they are not visible on the LED connected to the ER line.

The SR and SG LEDs display various status information depending on what firmware is running at the moment. Follow the links below to learn more about the behaviour of these LEDs under different conditions:

· SR/SG behavior in the monitor firmware.

· SR/SG behavior in the NetLoader.

· SR/SG behavior in the application firmware.

* Strictly speaking, the ER and EG lines are under firmware control. Their behavior is described here because they are always made to work as standard Ethernet status LEDs (like the ones found next to the RJ45 connector on the PC network cards).


Power, Reset, and Mode Selection Lines*

#3
VCC
Input
Positive power input, 5V nominal, +/- 5%, app. 40mA
#8
GND

Ground
#11
RST
Input
Reset, active high
#14
MD (MD)
Input
Mode selection pin

Line functions defined by the application firmware are shown in blue

The EM100 should be powered from a stabilized DS power supply with output nominal voltage of 5V (+/- 5% tolerance). Current consumption of the EM100 is approximately 40mA.

Proper external reset is a must! Reset pulse should be an active HIGH. We strongly advise against using low-cost RC-networks and other unreliable methods of generating reset pulse. Reset should be applied for as long as the power supply voltage is below 4.6V. We recommend using a dedicated reset IC with brownout detection, such as MAX810. Reset pulse length should be no less than 50ms, counting from the moment the power supply voltage exceeds 4.6V.

For added reliability, external reset IC with watchdog function may be selected. Watchdog reset pulses are provided on the ER line of the EM100.

If the EM100 is used to serve as a communications co-processor in a larger system that has its own CPU it is also OK to control the RST line of the EM100 through a general-purpose I/O pin of the "host" microcontroller. I/O pins of many microcontrollers default to HIGH after the powerup and this means that the reset will be applied to the EM100 at the same time when the host microcontroller is reset. All the host microcontroller has to do is release the EM100 from reset at an appropriate time by switching the state of the I/O line to LOW.

The MD line of the EM100 is used to select the operating mode of the EM100 and/or its application firmware. The reason why the pin name is shown as MD(MD) is because the functionality of this pin is in part hardwired and in part depends on the application firmware:

· Hardwired functionality. When the EM100 powers up it verifies the state of the MD input. If the MD input is at HIGH the EM100 proceeds to verifying and running the application firmware loaded into its internal FLASH memory. If the MD input is at LOW the EM100 enters the serial upgrade mode. For more information see Monitor.

· Application firmware-dependent functionality. When the application firmware is already running the MD line is typically used to make the EM100 enter the serial programming mode. For more information see serial programming.

When the EM100 is used as a co-processor in a host system the MD line can be also controlled by the host microcontroller. Ability to control both the RST and DS lines allows the host microcontroller to switch between the operating modes of the EM100.


Mechanical Dimensions

L | Max. | 46.2 | Module length
W | Max. | 28.0 | Module width
H | Max. | 13.0 | Module height
I | Min. | 4.5 | Lead length
m | Max. | 1.0 | Lead "flash"
d | Aver. | 40.6 | Distance between lead rows
p | Aver. | 2.0 | Pin pitch

All dimensions are in millimeters


Specifications and EM100 Modifications

The EM100 has had three modifications, so there are four different EM100 submodels in circulation: EM100-00, EM100-01, EM100-02, and EM100-03. Currently, only the EM100-03 is being manufactured so the information on EM100-00, EM100-01, and EM100-02 is provided for your reference only.

The EM100-00, EM100-01, and EM100-02 devices were basically the same, with only the minor changes made to the internal hardware (such as bypass capacitors on the internal PCB, etc.). We will refer to all three modifications as EM100-02.

The EM100-03 has extended functionality compared to the EM100-02. There are two notable differences:

· Memory size inside the device has been increased so the routing buffers of the EM100-03 are double the size of the buffers inside the EM100-02 (510 bytes in each direction vs. 255 bytes in each direction).

· Ability to upgrade the application firmware through the network was added (this is facilitated by the NetLoader firmware) to the EM100-03. The EM100-02 cannot run the NetLoader and cannot be upgraded through the network.

Apart from the above differences all EM100 modifications are fully compatible with each other*.

Device specifications are presented in the table below.

Parameter | EM100-03 (EM100-00/01/02)
Ethernet interface | 10BaseT Ethernet, standard magnetics built-in
Serial interface and I/O lines | CMOS-level; TX, RX, and 6 additional I/O lines with RTS, CTS, DTR, DSR implemented in application firmware
Routing buffers size | 510 bytes x 2 (255 bytes x 2)
Maximum load current of I/O lines | 10mA
Power requirements | DC 5V, +/- 5%, app. 40 mA
Operating temperature | -10 to +70 degrees C
Operating relative humidity | 10-90%
Mechanical dimensions (excl. leads) | 46.2x28x13mm
Packing | Plastic tray, 30 modules/tray

* On the functional level, the application firmware files to be loaded into the devices are different!


EM120 Ethernet-to-Serial Module

em120-small

The EM120 is an Ethernet Module for onboard installation. Module hardware includes one 10BaseT Ethernet port (standard Ethernet magnetics are NOT integrated into the Module), one serial port (CMOS-level) with a number of additional general-purpose I/O lines, and an internal processor, whose firmware acts as a bridge between the Ethernet and serial ports. Ethernet "side" of the Module connects directly to a standard Ethernet magnetics circuit (such as YCL-20F001N) or RJ45 connector with integrated magnetics. Serial "side" interfaces directly to the serial port pins of most microcontrollers, microprocessors, UARTs, etc.

From the hardware standpoint, the EM120 can be viewed as a universal platform suitable for running a variety of network and serial communications-related applications. It is the application firmware, not hardware that gives the EM120 most of its functionality.

The Application firmware EM120 is supplied with, currently in its 3rd generation ("Release3"), turns the EM120 into a Serial Device Server used to connect serial devices to the Ethernet (TCP/IP) networks.

The application firmware of the EM120 can be upgraded through the module's serial port or Ethernet port. Serial upgrades are facilitated by a so-called Monitor- a fixed "service" firmware inside the EM120. The Monitor cannot be upgraded. Network upgrades rely on the application firmware itself- there is a self upgrade algorithm that will be detailed later.

Since most of the EM120's operation is defined by its firmware the major part of EM120's functional description can be found in the Device Server Application Firmware Manual. This EM120 Ethernet Module Manual focuses on the hardware portion of the EM120.


I/O Pin Assignment and Pin Functions

em120- pin assignment

Click on the pin in the diagram above or one of the links provided below to learn more about EM120's I/O pins:

· Ethernet port lines

· Serial port and general-purpose I/O lines

· LED lines

· Power, reset, and mode selection lines


Ethernet Port Lines

#6
TX+
Output
Positive line of the differential output signal pair
#7
TX-
Output
Negative line of the differential output signal pair
#3
RX+
Input
Positive line of the differential input signal pair
#4
RX-
Input
Negative line of the differential input signal pair

Ethernet port of the EM120 is of 10BaseT type. Onboard electronics of the EM120 do not include Ethernet magnetics, so magnetic circuitry must be connected externally. You can use either a standalone magnetics part (such as YCL-20F001N) or RJ45 connector with integrated magnetics.

It is important to make the PCB wire connections between the Ethernet port pins of the EM120 and external magnetics circuitry as short as possible. Making the wires too long may cause the noise level generated by your PCB surpass the maximum radiated emission limits stipulated by FCC and CE regulations. Additionally, longer Ethernet lines on the PCB will make your board more susceptible to the damage from the ESD (electrostatic discharge).


Serial Port and General-Purpose I/O Lines

#8
P8
Input/output
General-purpose input/output line
#9
P7
Input/output
General-purpose input/output line
#10
P6
Input/output
General-purpose input/output line
#11
P1
Input/output
General-purpose input/output line
#12
P0
Input/output
General-purpose input/output line
#15
P3
(DTR)
Input/output
(output)
General-purpose input/output line
Data terminal ready output
#16
P2
(DSR)
Input/output
(input)
General-purpose input/output line
Data set ready input
#17
TX

Serial transmit line
#18
RX

Serial receive line
#19
P4
(CTS/SEL)
Input/output
(input)
General-purpose input/output line
Clear to send input
Full-/half-duplex selection input
#20
P5
(RTS/DIR)
Input/output
(output)
General-purpose input/output line
Request to send output (full-duplex mode)
Data direction control output (half-duplex mode)

Line functions defined by the application firmware are shown in blue

The EM120 features a serial port (RX, TX lines) and several general-purpose I/O lines (P0-P8). All of the above lines are of CMOS type. From the hardware point of view, all general-purpose I/O lines can serve as inputs or outputs. Maximum load current for all CMOS lines is 10mA.

Simplified structure of EM120's I/O lines is shown on the circuit diagram below. All lines are "quasi-bidirectional" and can be viewed as open collector outputs with weak pull-up resistor. There is no explicit direction control. To "measure" an external signal applied to a pin the OUT line must first be set to HIGH. It is OK to drive the pin LOW externally when the pin outputs HIGH internally.

The application firmware of the EM120 maps certain serial port functions onto the general-purpose I/O pins- these functions are shown in blue in the table at the top of this topic. For example, P5 is a universal input/output but the application firmware can be set to turn this line into the RTS output of the serial port. Therefore, depending on your application you can view P5 as a general-purpose I/O line or specific control line of the serial port (RTS).

Being of CMOS type, the serial port and I/O lines of the EM120 can be connected directly to the serial port pins and I/O lines of most microcontrollers, microprocessors, etc. An interface IC* must be added to the EM120 externally if you want to connect the module to a "true" serial port (for example, COM port of the PC).

Logical signals on the serial port lines of the EM120 are active LOW. TX and RX lines are high when idle, start bit is LOW, stop bit is HIGH; LOW on CTS and RTS lines means "transmission allowed" and HIGH means "transmission not allowed". This is standard for CMOS-level serial ports and is exactly opposite to the signalling on the RS232 cables. Logical signals on the EM120 are inverted because standard interface ICs* invert the signals internally too.

As explained earlier, actual functionality of the I/O lines is firmware-dependent. See serial port and serial communications for details.

* Such as MAX232 for RS232, MAX485 for RS485, etc.


LED Lines

#1
EG
Output
Green Ethernet status LED
#2
EY
Output
Yellow Ethernet status LED
#21
L3 (SG)
Output
LED output 3, Green status LED
#22
L4 (SR)
Output
LED output 4, Red status LED

Line functions defined by the application firmware are shown in blue

The EM120 has four LED control lines. All lines have the same internal structure and the LEDs should be connected to these lines as shown on the schematic diagram below. Maximum load for each line is 10mA.

EG and EY lines reflect the status of the Ethernet port. The EG LED is normally ON, and is temporarily turned off whenever the EM120 receives a network packet. The EY is normally OFF, and is temporarily turned on whenever a data collision is detected on the Ethernet.

SG and SR lines are under firmware control and display various status information depending on what firmware is running at the moment. Follow the links below to learn more about the behaviour of these LEDs under different conditions:

· SR/SG behavior in the monitor firmware.

· SR/SG behavior in the application firmware.


Power, Reset, and Mode Selection Lines

#13
VCC
Input
Positive power input, 5V nominal, +/- 5%, app. 50mA
#5
GND

Ground
#14
GND

Ground
#23
RST
Input
Reset, active high
#24
MD (MD)
Input
Mode selection pin

Line functions defined by the application firmware are shown in blue

The EM120 should be powered from a stabilized DS power supply with output nominal voltage of 5V (+/- 5% tolerance). Current consumption of the EM120 is approximately 50mA.

Proper external reset is a must! Reset pulse should be an active HIGH. We strongly advise against using low-cost RC-networks and other unreliable methods of generating reset pulse. Reset should be applied for as long as the power supply voltage is below 4.6V. We recommend using a dedicated reset IC with brownout detection, such as MAX810. Reset pulse length should be no less than 50ms, counting from the moment the power supply voltage exceeds 4.6V.

If the EM120 is used to serve as a communications co-processor in a larger system that has its own CPU it is also OK to control the RST line of the EM120 through a general-purpose I/O pin of the "host" microcontroller. I/O pins of many microcontrollers default to HIGH after the powerup and this means that the reset will be applied to the EM120 at the same time when the host microcontroller is reset. All the host microcontroller has to do is release the EM120 from reset at an appropriate time by switching the state of the I/O line to LOW.

The MD line of the EM120 is used to select the operating mode of the EM120 and/or its application firmware. The reason why the pin name is shown as MD(MD) is because the functionality of this pin is in part hardwired and in part depends on the application firmware:

· Hardwired functionality. When the EM120 powers up it verifies the state of the MD input. If the MD input is at HIGH the EM120 proceeds to verifying and running the application firmware loaded into its internal FLASH memory. If the MD input is at LOW the EM120 enters the serial upgrade mode. For more information see Monitor.

· Application firmware-dependent functionality. When the application firmware is already running the MD line is typically used to make the EM120 enter the serial programming mode. For more information see serial programming.

When the EM120 is used as a co-processor in a host system the MD line can be also controlled by the host microcontroller. Ability to control both the RST and DS lines allows the host microcontroller to switch between the operating modes of the EM120.


Mechanical Dimensions

L | Max. | 35.0 | Module length
W | Max. | 27.5 | Module width
H | Max. | 9.1 | Module height
I | Min. | 5.0 | Lead length
m | Max. | 0.5 | Lead "flash"
d | Aver. | 30.0 | Distance between lead rows
p | Aver. | 2.0 | Pin pitch

All dimensions are in millimeters


Specifications and EM120 Modifications

The EM120 has one submodel in circulation- EM120-00.

Device specifications are presented in the table below.

Parameter | EM120-00
Ethernet interface | 10BaseT Ethernet, magnetics not built-in
Serial interface and I/O lines | CMOS-level; TX, RX, and 9 additional I/O lines with RTS, CTS, DTR, DSR implemented in application firmware
Routing buffers size | 12Kbytes x 2*
Maximum load current of I/O lines | 10mA
Power requirements | DC 5V, +/- 5%, app. 50mA
Operating temperature | -10 to +70 degrees C
Operating relative humidity | 10-90%
Mechanical dimensions (excl. leads) | App. 35x27.5x9.1mm
Packing | Plastic tray, 50 modules/tray

* Maximum possible buffer size. Actual size may be smaller depending on how much RAM is "consumed" by the firmware


EM200 Ethernet Module

em200-small

The EM200 is an Ethernet Module for onboard installation. Module hardware includes one 100BaseT Ethernet port (standard Ethernet magnetics are NOT integrated into the Module), one serial port (CMOS-level) with a number of additional general-purpose I/O lines, and an internal processor, whose firmware acts as a bridge between the Ethernet and serial ports. Ethernet "side" of the Module connects directly to a standard Ethernet magnetics circuit (such as YCL-PH163112) or RJ45 connector with integrated magnetics. Serial "side" interfaces directly to the serial port pins of most microcontrollers, microprocessors, UARTs, etc.

From the hardware standpoint, the EM200 can be viewed as a universal platform suitable for running a variety of network and serial communications-related applications. It is the application firmware, not hardware that gives the EM200 most of its functionality.

The Application firmware EM200 is supplied with, currently in its 3rd generation ("Release3"), turns the EM200 into a Serial Device Server used to connect serial devices to the Ethernet (TCP/IP) networks.

The application firmware of the EM200 can be upgraded through the module's serial port or Ethernet port. Serial upgrades are facilitated by a so-called Monitor- a fixed "service" firmware inside the EM200. The Monitor cannot be upgraded. Network upgrades rely on the application firmware itself- there is a self upgrade algorithm that will be detailed later.

Since most of the EM200's operation is defined by its firmware the major part of the EM200's functional description can be found in the Device Server Application Firmware Manual. This EM200 Ethernet Module Manual focuses on the hardware portion of the EM200.


I/O Pin Assignment and Pin Functions

em200- pin assignment

Click on the pin in the diagram above or one of the links provided below to learn more about EM200's I/O pins:

· Ethernet port lines

· Serial port and general-purpose I/O lines

· LED lines

· Power, reset, and mode selection lines


Ethernet Port Lines

#6
TX+
Output
Positive line of the differential output signal pair
#7
TX-
Output
Negative line of the differential output signal pair
#3
RX+
Input
Positive line of the differential input signal pair
#4
RX-
Input
Negative line of the differential input signal pair
#5
3.3V
Output
"Clean" 3.3V power for magnetics circuitry

Ethernet port of the EM200 is of 100BaseT type. Onboard electronics of the EM200 do not include Ethernet magnetics, so magnetic circuitry must be connected externally. You can use either a standalone magnetics part (such as YCL-PH163112) or RJ45 connector with integrated magnetics.

It is important to make the PCB wire connections between the Ethernet port pins of the EM200 and external magnetics circuitry as short as possible. Making the wires too long may cause the noise level generated by your PCB surpass the maximum radiated emission limits stipulated by FCC and CE regulations. Additionally, longer Ethernet lines on the PCB will make your board more susceptible to the damage from the ESD (electrostatic discharge).


Serial Port and General-Purpose I/O Lines

#8
P8
Input/output
General-purpose input/output line
#9
P7
Input/output
General-purpose input/output line
#10
P6
Input/output
General-purpose input/output line
#11
P1
Input/output
General-purpose input/output line
#12
P0
Input/output
General-purpose input/output line
#15
P3
(DTR)
Input/output
(output)
General-purpose input/output line
Data terminal ready output
#16
P2
(DSR)
Input/output
(input)
General-purpose input/output line
Data set ready input
#17
TX

Serial transmit line
#18
RX

Serial receive line
#19
P4
(CTS/SEL)
Input/output
(input)
General-purpose input/output line
Clear to send input
Full-/half-duplex selection input
#20
P5
(RTS/DIR)
Input/output
(output)
General-purpose input/output line
Request to send output (full-duplex mode)
Data direction control output (half-duplex mode)

Line functions defined by the application firmware are shown in blue

The EM200 features a serial port (RX, TX lines) and several general-purpose I/O lines (P0-P8). All of the above lines are of CMOS type. From the hardware point of view, all general-purpose I/O lines can serve as inputs or outputs. Maximum load current for all CMOS lines is 10mA.

Simplified structure of EM200's I/O lines is shown on the circuit diagram below. All lines are "quasi-bidirectional" and can be viewed as open collector outputs with weak pull-up resistor. There is no explicit direction control. To "measure" an external signal applied to a pin the OUT line must first be set to HIGH. It is OK to drive the pin LOW externally when the pin outputs HIGH internally.

The application firmware of the EM200 maps certain serial port functions onto the general-purpose I/O pins- these functions are shown in blue in the table at the top of this topic. For example, P5 is a universal input/output but the application firmware can be set to turn this line into the RTS output of the serial port. Therefore, depending on your application you can view P5 as a general-purpose I/O line or specific control line of the serial port (RTS).

Being of CMOS type, the serial port and I/O lines of the EM200 can be connected directly to the serial port pins and I/O lines of most microcontrollers, microprocessors, etc. An interface IC* must be added to the EM200 externally if you want to connect the module to a "true" serial port (for example, COM port of the PC).

Logical signals on the serial port lines of the EM200 are active LOW. TX and RX lines are high when idle, start bit is LOW, stop bit is HIGH; LOW on CTS and RTS lines means "transmission allowed" and HIGH means "transmission not allowed". This is standard for CMOS-level serial ports and is exactly opposite to the signalling on the RS232 cables. Logical signals on the EM200 are inverted because standard interface ICs* invert the signals internally too.

As explained earlier, actual functionality of the I/O lines is firmware-dependent. See serial port and serial communications for details.

* Such as MAX232 for RS232, MAX485 for RS485, etc.


LED Lines

#1
EG
Output
Green Ethernet status LED
#2
EY
Output
Yellow Ethernet status LED
#21
L3 (SG)
Output
LED output 3, Green status LED
#22
L4 (SR)
Output
LED output 4, Red status LED

Line functions defined by the application firmware are shown in blue

The EM200 has four LED control lines. All lines have the same internal structure and the LEDs should be connected to these lines as shown on the schematic diagram below. Maximum load for each line is 10mA.

EG and EY lines reflect the status of the Ethernet port. The EG LED is switched on whenever a live Ethernet connection is detected by the EM200's Ethernet port. The EG LED is momentarily switched off whenever the EM200 receives a network packet. The EY shows whether current Ethernet link is of 10BaseT type (EY off) or 100BaseT (EY on).

SG and SR lines are under firmware control and display various status information depending on what firmware is running at the moment. Follow the links below to learn more about the behaviour of these LEDs under different conditions:

· SR/SG behavior in the monitor firmware.

· SR/SG behavior in the application firmware.


Power, Reset, and Mode Selection Lines

#13
VCC
Input
Positive power input, 5V nominal, +/- 5%, app. 220mA
#14
GND

Ground
#23
RST
Input
Reset, active high
#24
MD (MD)
Input
Mode selection pin

Line functions defined by the application firmware are shown in blue

The EM200 should be powered from a stabilized DS power supply with output nominal voltage of 5V (+/- 5% tolerance). Current consumption of the EM200 is approximately 220mA (in 100BaseT mode).

Proper external reset is a must! Reset pulse should be an active HIGH. We strongly advise against using low-cost RC-networks and other unreliable methods of generating reset pulse. Reset should be applied for as long as the power supply voltage is below 4.6V. We recommend using a dedicated reset IC with brownout detection, such as MAX810. Reset pulse length should be no less than 50ms, counting from the moment the power supply voltage exceeds 4.6V.

If the EM200 is used to serve as a communications co-processor in a larger system that has its own CPU it is also OK to control the RST line of the EM200 through a general-purpose I/O pin of the "host" microcontroller. I/O pins of many microcontrollers default to HIGH after the powerup and this means that the reset will be applied to the EM200 at the same time when the host microcontroller is reset. All the host microcontroller has to do is release the EM200 from reset at an appropriate time by switching the state of the I/O line to LOW.

The MD line of the EM200 is used to select the operating mode of the EM200 and/or its application firmware. The reason why the pin name is shown as MD(MD) is because the functionality of this pin is in part hardwired and in part depends on the application firmware:

· Hardwired functionality. When the EM200 powers up it verifies the state of the MD input. If the MD input is at HIGH the EM200 proceeds to verifying and running the application firmware loaded into its internal FLASH memory. If the MD input is at LOW the EM200 enters the serial upgrade mode. For more information see Monitor.

· Application firmware-dependent functionality. When the application firmware is already running the MD line is typically used to make the EM200 enter the serial programming mode. For more information see serial programming.

When the EM200 is used as a co-processor in a host system the MD line can be also controlled by the host microcontroller. Ability to control both the RST and DS lines allows the host microcontroller to switch between the operating modes of the EM200.


Mechanical Dimensions

L | Max. | 32.1 | Module length
W | Max. | 18.5 | Module width
H | Max. | 7.3 | Module height
I | Min. | 2.2 | Lead length
m | Max. | 0.5 | Lead "flash"
d | Aver. | 28.0 | Distance between lead rows
p | Aver. | 1.27 | Pin pitch

All dimensions are in millimeters


Specifications and EM200 Modifications

The EM200 has one submodel in circulation- EM200-00.

Device specifications are presented in the table below.

Parameter | EM200-00
Ethernet interface | 10/100BaseT Ethernet, magnetics not built-in
Serial interface and I/O lines | CMOS-level; TX, RX, and 9 additional I/O lines with RTS, CTS, DTR, DSR implemented in application firmware
Routing buffers size | 12Kbytes x 2*
Maximum load current of I/O lines | 10mA
Power requirements | DC 5V, +/- 5%, app. 220mA
Device temperature during operation | +55 degrees C** (in 100BaseT mode)
Operating temperature | -10 to +70 degrees C
Operating relative humidity | 10-90%
Mechanical dimensions (excl. leads) | App. 32.1x18.5x7.3mm
Packing | Plastic tray, 50 modules/tray

* Maximum possible buffer size. Actual size may be smaller depending on how much RAM is "consumed" by the firmware

** As measured on top of the device


EM202 Ethernet-to-Serial Module

em202
The EM202 is a "RJ45 form factor" Ethernet Module for onboard installation. Module hardware includes one 100BaseT Ethernet port (standard Ethernet magnetics and RJ45 connector are integrated in the EM202*), one serial port (CMOS-level), and an internal processor, whose firmware acts as a bridge between the Ethernet and serial ports. Standard Ethernet cable plugs directly into the RJ45 connector on the network "side" of the Module. Serial "side" interfaces directly to the serial port pins of most microcontrollers, microprocessors, UARTs, etc.

From the hardware standpoint, the EM202 can be viewed as a universal platform suitable for running a variety of network and serial communications-related applications. It is the application firmware, not the hardware that gives the EM202 most of its functionality.

The Application firmware EM202 is supplied with, currently in its 3rd generation ("Release3"), turns the EM202 into a Serial Device Server used to connect serial devices to the Ethernet (TCP/IP) networks.

The application firmware of the EM202 can be upgraded through the module's serial port or Ethernet port. Serial upgrades are facilitated by a so-called Monitor- a fixed "service" firmware inside the EM202. The Monitor itself cannot be upgraded. Network upgrades rely on the application firmware itself- there is a self upgrade algorithm that will be detailed later.

Since most of the EM202's operation is defined by its firmware the major part of the EM202's functional description can be found in the Device Server Application Firmware Manual. This EM202 Ethernet Module Manual focuses on the hardware portion of the EM202.

*Or, to put it another way, the electronics of the EM202 are built into RJ45 connector.


I/O Pin Assignment and Pin Functions

EM202 pin assignment is shown below.

EM202- pin assignment

#1
MD (MD)
Input
Mode selection pin
#2
RST
Input
Reset, active high
#3
P3
(DTR)
Input/output
(output)
General-purpose input/output line
Data terminal ready output
#4
P2
(DSR)
Input/output
(input)
General-purpose input/output line
Data set ready input
#5
L3
(SG)
Output
(output)
LED output 3
(Green status LED)
#6
L4
(SR)
Output
(output)
LED output 4
(Red status LED)
#7
VCC

Positive power input, 5V nominal, +/- 5%, app. 220mA
#8
GND

Ground
#9
RX
Input
Serial receive line
#10
TX
Output
Serial transmit line
#11
P4
(CTS/SEL)
Input/output
(input)
General-purpose input/output line
Clear to send input
Full-/half-duplex selection input
#12
P5
(RTS/DIR)
Input/output
(output)
General-purpose input/output line
Request to send output (full-duplex mode)
Data direction control output (half-duplex mode)

Line functions defined by the application firmware are shown in blue

Click on one of the links provided below to learn more about EM202's I/O pins:

· Serial port lines

· LED lines

· Power, reset, and mode selection lines


Serial Port and General-Purpose I/O Lines

#3
P3
(DTR)
Input/output
(output)
General-purpose input/output line
Data terminal ready output
#4
P2
(DSR)
Input/output
(input)
General-purpose input/output line
Data set ready input
#9
RX

Serial receive line
#10
TX

Serial transmit line
#11
P4
(CTS/SEL)
Input/output
(input)
General-purpose input/output line
Clear to send input
Full-/half-duplex selection input
#12
P5
(RTS/DIR)
Input/output
(output)
General-purpose input/output line
Request to send output (full-duplex mode)
Data direction control output (half-duplex mode)

Line functions defined by the application firmware are shown in blue

The EM202 features a serial port (RX, TX lines) and several general-purpose I/O lines (P2*-P5). All of the above lines are of CMOS type. From the hardware point of view, all general-purpose I/O lines can serve as inputs or outputs. Maximum load current for all CMOS lines is 10mA.

Simplified structure of EM202's I/O lines is shown on the circuit diagram below. All lines are "quasi-bidirectional" and can be viewed as open collector outputs with weak pull-up resistor. There is no explicit direction control. To "measure" an external signal applied to a pin the OUT line must first be set to HIGH. It is OK to drive the pin LOW externally when the pin outputs HIGH internally.

EM202_IO pin circuit

The application firmware of the EM202 maps certain serial port functions onto the general-purpose I/O pins- these functions are shown in blue in the table at the top of this topic. For example, P5 is a universal input/output but the application firmware can be set to turn this line into the RTS output of the serial port. Therefore, depending on your application you can view P5 as a general-purpose I/O line or specific control line of the serial port (RTS).

Being of CMOS type, the serial port and I/O lines of the EM202 can be connected directly to the serial port pins and I/O lines of most microcontrollers, microprocessors, etc. An interface IC** must be added to the EM202 externally if you want to connect the module to a "true" serial port (for example, COM port of the PC).

Logical signals on the serial port lines of the EM202 are active LOW. TX and RX lines are high when idle, start bit is LOW, stop bit is HIGH; LOW on CTS and RTS lines means "transmission allowed" and HIGH means "transmission not allowed". This is standard for CMOS-level serial ports and is exactly opposite to the signalling on the RS232 cables. Logical signals on the EM202 are inverted because standard interface ICs** invert the signals internally too.

As explained earlier, actual functionality of the I/O lines is firmware-dependent. See serial port and serial communications for details.

* There are no lines P0 and P1. Line names were selected for naming compatibility with the EM100

** Such as MAX232 for RS232, MAX485 for RS485, etc.


LED Lines

#5
L3* (SG)
Output
LED output 3, Green status LED
#6
L4* (SR)
Output
LED output 4, Red status LED

Line functions defined by the application firmware are shown in blue

The EM202 has two LED control lines. Both lines have the same internal structure. Each line drives one internal LED (see figure below). If you want to connect an external LEDs as well you may do so but we recommend using a TTL buffer element to reduce the load on the I/O line of the EM202's internal microcontroller. Maximum load for each line without the buffer is 2mA.

The firmware of the EM202 uses L3 and L4 as "status LEDs" which display various status information depending on what firmware is running at the moment. Follow the links below to learn more about the behaviour of these LEDs under different conditions:

· SR/SG behavior in the monitor firmware.

· SR/SG behavior in the application firmware.

* There are no lines L1 and L2. Line names were selected for naming compatibility with the EM100


Power, Reset, and Mode Selection Lines

#7
VCC
Input
Positive power input, 5V nominal, +/- 5%, app. 230mA
#8
GND

Ground
#2
RST
Input
Reset, active high
#1
MD (MD)
Input
Mode selection pin

Line functions defined by the application firmware are shown in blue

The EM202 should be powered from a stabilized DS power supply with output nominal voltage of 5V (+/- 5% tolerance). Current consumption of the EM202 is approximately 230mA (in 100BaseT mode).

Proper external reset is a must! Reset pulse should be an active HIGH. We strongly advise against using low-cost RC-networks and other unreliable methods of generating reset pulse. Reset should be applied for as long as the power supply voltage is below 4.6V. We recommend using a dedicated reset IC with brownout detection, such as MAX810. Reset pulse length should be no less than 50ms, counting from the moment the power supply voltage exceeds 4.6V.

If the EM202 is used to serve as a communications co-processor in a larger system that has its own CPU it is also OK to control the RST line of the EM202 through a general-purpose I/O pin of the "host" microcontroller. I/O pins of many microcontrollers default to HIGH after the powerup and this means that the reset will be applied to the EM202 at the same time when the host microcontroller is reset. All the host microcontroller has to do is release the EM202 from reset at an appropriate time by switching the state of the I/O line to LOW.

The MD line of the EM202 is used to select the operating mode of the EM202 and/or its application firmware. The reason why the pin name is shown as MD(MD) is because the functionality of this pin is in part hardwired and in part depends on the application firmware:

· Hardwired functionality. When the EM202 powers up it verifies the state of the MD input. If the MD input is at HIGH the EM202 proceeds to verifying and running the application firmware loaded into its internal FLASH memory. If the MD input is at LOW the EM202 enters the serial upgrade mode. For more information see Monitor.

· Application firmware-dependent functionality. When the application firmware is already running the MD line is typically used to make the EM202 enter the serial programming mode. For more information see serial programming.

When the EM202 is used as a co-processor in a host system the MD line can be also controlled by the host microcontroller. Ability to control both the RST and DS lines allows the host microcontroller to switch between the operating modes of the EM202.


Built-in LEDs

The EM202 features four built-in LEDs (shown on figure below) that are placed on the front of the device, next to the RJ45 connector.

EM202-face

LEDs have the following function:

· Status LED (red) is internally connected to the L4(SR) LED control line.

· Status LED (green) is internally connected to the L3(SG) LED control line.

· 100BaseT LED (yellow) is turned on when the EM202 links with the hub at 100Mb. The LED is off when the link is established at 10Mb

· Link/Data LED (green) is turned on when "live" Ethernet cable is plugged into the Module. The LED is temporarily switched off whenever an Ethernet packet is received.


Built-in RJ45 Ethernet Connector

Ethernet port of the EM202 is of 10/100BaseT type (auto-switching).

Connector is of RJ45 type, pin assignment is as follows:

#1 | TX+
#2 | TX-
#3 | RX+
#4 | <No connection>
#5 | <No connection>
#6 | RX-
#7 | <No connection>
#8 | <No connection>


Mechanical Dimensions

L | Max. | 32.3 | Module length
W | Max. | 20.0 | Module width including mounting holders
w | Max. | 19.0 | Module width excluding mounting holders
H | Max. | 16.0 | Module height
I | Min. | 4.5 | Lead length
M | Min. | 1.9 | Height of mounting holders and solder pins
t1 | Aver. | 2.45 | Mounting holder diameter
t2 | Aver. | 1.5 | Solder pin width
t3 | Aver. | 0.25 | Solder pin thickness
p | Aver. | 1.27 | Pin pitch
s1 | Aver. | 29.7 | Distance from device "face" to the leads
s2 | Aver. | 6.3 | Distance from leads to the center of "pockets"
s3 | Aver. | 19.0 | Distance from leads to the mounting solder pins
s4 | Aver. | 23.0 | Distance from leads to the mounting holders
s5 | Max. | 5.0 | "Pocket" length
h1 | Aver. | 17.5 | Distance between center lines of mounting holders
h2 | Aver. | 18.5 | Distance between center lines of mounting solder pins

All dimensions are in millimeters


Specifications and EM202 Modifications

The EM202 has one submodel in circulation- EM202-00.

Device specifications are presented in the table below.

Parameter | EM202-00
Ethernet interface | 10/100BaseT Ethernet, standard magnetics and RJ45 connector built-in
Serial interface and I/O lines | CMOS-level; TX, RX, and 4 additional I/O lines with RTS, CTS, DTR, DSR implemented in application firmware
Routing buffers size | 12Kbytes x 2*
Maximum load current of I/O lines | 10mA
Power requirements | DC 5V, +/- 5%, app. 230 mA (in 100BaseT mode)
Device temperature during operation | +40 degrees C** (in 100BaseT mode)
Operating temperature | -10 to +70 degrees C
Operating relative humidity | 10-90%
Mechanical dimensions (excl. leads) | App. 32.5x19x15.5mm
Packing | Plastic tray, 30 modules/tray

* Maximum possible buffer size. Actual size may be smaller depending on how much RAM is "consumed" by the firmware

** As measured on top of the device


Ethernet-to-Serial Boards

This part of documentation describes Ethernet-to-serial Boards supplied by Tibbo. These boards can be used for convenient evaluation and testing of Tibbo Ethernet-to-serial Modules. At the same time, some boards are also suitable for use in production devices as "faster implementation" alternatives to Modules.

The following Boards are currently manufactured:

· EM100-EV Evaluation Board

· EM120/EM200-EV Evaluation Board

· EM202-EV Ethernet-to-RS232 Board


EM100-EV Evaluation Board

Em100sk

The EM100-EV Evaluation Board offers a convenient way of testing EM100 Ethernet Module. The board features the following components:

· A socket for EM100 Module installation

· Power jack and a linear voltage regulator circuitry (12VDC-->5VDC, adaptor current rating must be no less than 500mA)

· RJ45 connector

· DB9M RS232 connector and RS232 transceiver (supported signals are RX, TX, RTS, CTS)

· Setup button (connected to the MD line of the EM100)

· Ethernet LEDs and Status LEDs (connected to LED lines of the EM100)


Power Jack

Power Jack of the EM100-EV accepts "large" power connectors with 5.5mm diameter. Use ARP-1014, ARP-1015A, or ARP-1018A power adaptor supplied by Tibbo or similar adaptor. Nominal voltage is 12VDC and adaptor current rating should be at least 500mA. On the power jack, the ground is "on the outside", as shown on the figure below.

pjack


Ethernet Port Pin Assignment

RJ45 Ethernet connector has the following pin assignment:

#1 | TX+
#2 | TX-
#3 | RX+
#4 | <No connection>
#5 | <No connection>
#6 | RX-
#7 | <No connection>
#8 | <No connection>


RS232 Port Pin Assignment

DB9M RS232 connector has the following pin assignment:

Db9m

#1 | <No connection>
#2 | RX (input)
#3 | TX (output)
#4 | <No connection>
#5 | Ground
#6 | <No connection>
#7 | RTS (output)
#8 | CTS (input)
#9 | <No connection>


EM120/EM200-EV Evaluation Board

The EM120/200-EV Evaluation Board offers a convenient way of testing EM120 and EM200 Ethernet Modules. The board features the following components:

· A socket for EM120 or EM200 installation

· Power jack and a switching power regulator (12VDC-->5VDC, adaptor current rating must be no less than 500mA)

· RJ45 connector and 10/100BaseT Ethernet Magnetics (EM120 and EM200 do not have built-in magnetics)

· DB9M RS232 connector and RS232 transceiver (supported signals are RX, TX, RTS, CTS, DTR, DSR)

· Setup button (connected to the MD line of EM120/EM200)

· Two Ethernet LEDs and two status LEDs (connected to LED lines of EM120/200)

· Five additional LEDs connected to lines P0, P1, P6-8 of the EM120/EM200

· 15-pin expansion connector provides access to EM120/EM200's serial and general-purpose I/O pins (therefore, all I/O lines on this connector are of TTL type)


Power Jack

Power Jack of the EM120/EM200-EV accepts "large" power connectors with 5.5mm diameter. Use ARP-1014, ARP-1015A, or ARP-1018A power adaptor supplied by Tibbo or similar adaptor. Nominal voltage is 12VDC and adaptor current rating should be at least 500mA. On the power jack, the ground is "on the outside", as shown on the figure below.

pjack


RS232 Port Pin Assignment

DB9M RS232 connector has the following pin assignment:

Db9m

#1 | <No connection>
#2 | RX (input)
#3 | TX (output)
#4 | DTR (output)
#5 | Ground
#6 | DSR (input)
#7 | RTS (output)
#8 | CTS (input)
#9 | <No connection>


Expansion Connector Pin Assignment

15-pin expansion connector has the following pin assignment:

P0 | Connected to pin P0 of EM120/EM200
P1 | Connected to pin P1 of EM120/EM200
P6 | Connected to pin P6 of EM120/EM200
P7 | Connected to pin P7 of EM120/EM200
P8 | Connected to pin P8 of EM120/EM200
GND | Ground
VCC | +5V from the EM120/EM200-EV board. Available "spare" current about 50mA
RST | Reset (active high) from the EM120/EM200-EV board. The signal is generated by an onboard reset IC. The same signal is applied to pin RST of EM120/EM200
MD | Connected to the download/setup button on the EM120/EM200-EV board. The signal is connected to pin MD of EM120/EM200
DTR | Connected to pin P3(DTR) of EM120/EM200
RTS | Connected to pin P5(RTS) of EM120/EM200
TX | Connected to pin TX of EM120/EM200
RX | Connected to pin RX of EM120/EM200
CTS | Connected to pin P4(CTS) of EM120/EM200
DSR | Connected to pin P2(DSR) of EM120/EM200

Output signals that are present both on the DB9M and expansion connectors (DTR, RTS, TX) need not be switched. So, for example, the TX (output) line from the EM120/EM200 is connected to the RS232 transceiver IC and to the expansion connector. For input signals (RX, CTS, DSR) there must be a way to disconnect the RS232 transceiver IC from the EM120/EM200. Three jumpers (combined with pins RX, CTS, DSR of the expansion connector) serve this purpose.

For example, when the RX jumper is closed the RX pin of the EM120/EM200 receives a signal from the RS232 transceiver. When the jumper is opened you can use the RX pin on the expansion connector to supply a TTL RX signal from your own external board. Figure below illustrates this.

Maximum load for all CMOS-type lines (P0, P1, ... RX, TX...) is 10mA.


EM202-EV Ethernet-to-Serial Board

Em202-sk

EM202-EV Evaluation Boards offer a convenient way of testing EM202 Ethernet Module. The boards are small enough to also be used in production devices- instead of making your own PCB to accommodate the EM202 you can piggyback the whole EM202-EV board onto your device's main PCB. Power Jack, RJ45 "face" of the EM202 (also featuring four status LEDs), and the download/setup button are conveniently placed on the same side of the EM202-EV and aligned- this way you can, for example, make necessary opening on the back cover of your Product and mount the EM202-EV behind this cover. Two sets of mounting holes with smaller and larger diameters are provided for board mounting.

The EM202-EV is supplied in three modifications:

 | EM202-EV-RS (RS232) | EM202-EV-TM (TTL master) | EM202-EV-TS (TTL slave)
EM202 Module with RJ45 | YES
Download/setup button | YES
RS232 transceiver | YES | NO
DB9M connector | YES | NO
Status LEDs on top | YES | NO
TTL interface connector | NO | YES*
Power Jack | YES |  | NO
Switching power supply | YES |  | NO
Reset IC | YES |  | NO
* Meaning that this connector can be used

The EM202-EV-RS is the most "complete" of three boards as it contains all necessary parts for standalone operation. This board can be used to build an external Serial Device Server similar in function to the DS100.

The EM202-EV-TM and EM202-EV-TS do not have RS232 transceiver and DB9M connector. Instead, you have access to an 8-pin TTL interface connector (only through-hole pads on the PCB are provided). This TTL interface is convenient when you want to interface the board to some other IC (microcontroller, UART, etc.).

The difference between the EM202-EV-TM and EM202-EV-TS is that -TM modification (stands for "TTL master") has reset IC, switching power supply, and power jack onboard, while -TS requires your board to supply regulated 5VDC power and reset signal.

Onboard power supply of the EM202-EV-TM has a "spare" power capacity of about 100mA, which can probably used to power your device's main board as well.


Power Jack

Power Jack of the EM202-EV accepts "small" power connectors with 3.5mm diameter. Use ARP-P0005, ARP-P0006, or ARP-P0007 power adaptor supplied by Tibbo or similar adaptor. Acceptable supply power range is 10-25VDC. Adaptor current rating should be at least 500mA. On the power jack, the ground is "on the outside", as shown on the figure below.

pjack2


RS232 Port Pin Assignment

DB9M RS232 connector (only available on EM202-EV-RS) has the following pin assignment:

Db9m

#1 | <No connection>
#2 | RX (input)
#3 | TX (output)
#4 | DTR (output)
#5 | Ground
#6 | DSR (input)
#7 | RTS (output)
#8 | CTS (input)
#9 | <No connection>


TTL Interface Connector Pin Assignment

10-pin TTL interface connector (available on EM202-EV-TM and EM202-EV-TS) has the following pin assignment:

 | EM202-EV-TM | EM202-EV-TS
#1 | P5(RTS/DIR) of EM202
#2 | P4(CTS/DIR) of EM202
#3 | TX of EM202
#4 | RX of EM202
#5 | P2(DSR) of EM202
#6 | P3(DTR) of EM202
#7 | MD (wire AND)
#8 | RST (output) | RST (input)
#9 | Ground
#10 | +5V VCC (output) | +5V VCC (input)

Notice, that MD is a "wire AND" line and is pulled low internally when the download/setup button is pressed on the board. Therefore, if your circuit needs to control this line it needs to do so through an open collector output.

Another point where care should be exercised is related to RST and VCC pins. On the EM202-EV-TM these are outputs, while on the EM202-EV-TS these pins are inputs.

Maximum load for all CMOS-type lines (TX, RX, P2,...) is 10mA.


Mechanical Dimensions

L | Aver. | 52.6 | Board length
l | Aver. | 2.7 | Distance from the PCB edge to the front face of EM202, power jack, and setup button
W | Aver. | 38.0 | Board width
H | Max. | 17.5 | Board height excluding the heing of the tallest component on the bottom side of the PCB
t | Aver. | 1.6 | PCB thickness
m1 | Aver. | 26.0 | Distance between mounting holes
m2 | Aver. | 14.0 | Distance to the mounting holes
m3 | Aver. | 19.0 | Distance to the mounting holes
m4 | Aver. | 45.0 | Distance to the mounting holes
m5 | Aver. | 31.0 | Distance between mounting holes
m6 | Aver. | 21.0 | Distance between mounting holes
d1 | Aver. | 4.2 | Mounting hole diameter
d2 | Aver. | 2.3 | Mounting hole diameter
d3 | Aver. | 5.0 | LED diameter
d4 | Aver. | 3.3 | Setup button diameter
n1 | Aver. | 11.0 | PCB outline dimension
n2 | Aver. | XXX | PCB outline dimension
n3 | Aver. | 40.5 | Distance to the LEDs
n4 | Aver. | 46.9 | Distance to the TTL interface connector
n5 | Aver. | 50.1 | PCB outline dimension
n6 | Aver. | 33.0 | PCB outline dimension
n7 | Aver. | 6.0 | Distance between LEDs
n8 | Aver. | 15.0 | Distance to the power jack
n9 | Aver. | 5.1 | Power jack width
n10 | Aver. | 14.5 | Distance to the setup button
h1 | Aver. | 7.5 | Power jack height
h2 | Aver. | 5.9 | Distance to the center of setup button
h3 | Max. | 2.5 | Height of the tallest component on the bottom side of the PCB
h4 | Aver. | 6.2 | Distance to the RS232 (DB9) connector
h5 | Max. | 9.0 | LED height
p | Aver. | 2.0 | TTL interface connector pitch

All dimensions are in millimiters


Ethernet-to-Serial Servers

This part of documentation describes Ethernet-to-serial Servers (for external use) supplied by Tibbo.

The following devices are currently manufactured:

· DS100 Serial Device Server

· DS202 Serial Device Server

To simplify choosing between Ethernet-to-serial Devices we provide the following comparison chart.


Comparison Chart for Ethernet-to-Serial Servers

The following table compares main characteristics of Tibbo Ethernet-to-serial Devices.

Item
DS100R
DS100B
DS202R
Ethernet port type
10BaseT
100/10BaseT
Serial interface
RS232
RS232/422/485
RS232
Serial port capabilities
Baudrates: 150-115200bps; parity: none, even, odd, mark, space; 7 or 8 bits/byte
Serial port lines
RX, TX, RTS, CTS
RX, TX, RTS, CTS, DTR, DSR*
Routing buffer size (bytes)
510bytes*2

12KB*2
Power supply voltage
12VDC
10~25VDC
Mechanical dimensions
95x57x30mm
60x47x30mm
Firmware**
Below V3.5x
V3.5x or above

* For DS100B this refers to the RS232 mode of the serial port.

** V3.5 has introduced new features that are not supported by earlier firmware released.


DS100 Serial Device Server

The DS100 is a Serial Device Server for external use. Device hardware includes one 10BaseT Ethernet port, one serial port and an internal processor that "glues" network and serial sides together. Internally, the DS100 is based on the EM100 Ethernet Module.

The DS100 is supplied in two modifications:

· DS100R with RS232 serial port.

· DS100B with universal RS232/422/485 serial port.

From the hardware standpoint, the DS100 can be viewed as a universal platform suitable for running a variety of network and serial communications-related applications. It is the application firmware, not the hardware that gives the DS100 most of its functionality. The firmware is currently in its 3rd generation ("Release3").

The application firmware of the DS100 can be upgraded through the device's serial port or Ethernet port. Serial upgrades are facilitated by a so-called Monitor- a fixed "service" firmware inside the DS100. The Monitor itself cannot be upgraded. Network upgrades rely on the NetLoader firmware component that, like the application firmware itself, can be upgraded through the serial port of the DS100 (using the Monitor). The DS100 is supplied with the application firmware and the NetLoader already pre-loaded.

Since most of the DS100's operation is defined by its firmware the major part of the functional description can be found in the Device Server Application Firmware Manual. This DS100 Serial Device Server Manual focuses on the hardware portion of the DS100.

* Network upgrades are only possible on the latest DS100-03 modification of the device (see specifications and EM100 modifications for details)


DS100 Connectors and Controls

Click on the area on the picture above or one of the links provided below to learn more about the DS100:

· Power Jack (input power is 12VDC, adaptor current rating must be no less than 500mA)

· Ethernet port pin assignment.

· Serial port pin assignment and interface selection.

· Status LEDs.

· Setup button.


Power Jack

Power Jack of the DS100 accepts "large" power connectors with 5.5mm diameter. Use ARP-1014, ARP-1015A, or ARP-1018A power adaptor supplied by Tibbo or similar adaptor. Nominal voltage is 12VDC and adaptor current rating should be at least 500mA. On the power jack, the ground is "on the outside", as shown on the figure below.

pjack


Ethernet Port Pin Assignment

Ethernet port of the DS100 is of 10BaseT type. The DS100 is compatible with all 10BaseT Ethernet hubs and also 99% of 100BaseT hubs. This is because most 100BaseT hubs are actually 100/10 devices that auto-detect the type of device connected to each port.

Connector is of RJ45 type, pin assignment is as follows:

#1 | TX+
#2 | TX-
#3 | RX+
#4 | <No connection>
#5 | <No connection>
#6 | RX-
#7 | <No connection>
#8 | <No connection>


Serial Port Pin Assignment and i/f Selection

Db9m

The serial port connector of the DS100 is of DB9M type. The DS100 is supplied in two models: the DS100R with RS232 port and DS100B with universal RS232/RS422/RS485 serial port. Notice, that there are no terminators (usually required at the ends of RS422 and RS485 buses) inside the DS100B. Termination circuits are present on the TB100 Terminal Block Adaptor that can be optionally supplied with the DS100B.

 | DS100R | DS100B
 | RS232 (full-duplex op.) | RS232 (full-duplex op.) | RS422 (full-duplex op.) | RS485 (half-duplex op.)
#1 | <No connection> | <No connection> | RTS- (output) | <No connection>
#2 | RX (input) | RX (input) | RX- (input) | RX- (input)
#3 | TX (output) | TX (output) | TX+ (output) | TX+ (output)
#4 | <No connection> | DTR (output) | TX- (output) | TX- (output)
#5 | Ground | Ground | Ground | Ground
#6 | <No connection> | DSR (input) | RX+ (input) | RX+ (input)
#7 | RTS (output) | RTS (output) | RTS+ (output) | <No connection>
#8 | CTS (input) | CTS (input) | CTS+ (input) | <No connection>
#9 | <No connection> | <No connection> | CTS- (input) | <No connection>

The difference between the RS422 and RS485 modes of the DS100B is not just in that there are no RTS+ and RTS- signals in the RS485 mode. Notice that the table above also details whether the serial port is running in the full-duplex or half-duplex mode when a particular interface is selected. When RS422 is selected the serial port is in the full-duplex mode and the TX+/TX- and RTS+/RTS- signal pairs are active at all times (i.e. output the data). When RS485 is selected the TX+/RX+ signal pair outputs the data only when the DS100 needs to send the data out through the serial port. The incoming data is ignored at this time. When the DS100 is not outputting the data the TX+/TX- signal pair is tri-stated and the DS100 is "listening" to the incoming data on the RX+/RX- signal pair. This allows you to arrange a 2-wire RS485 bus by externally connecting TX+ to the RX+ and TX- to the RX- (this can be conveniently done by using TB100 Terminal Block Adaptor).

Interface selection for the DS100B is done through the DIP switches located on the bottom of the device, next to the setup button (DS100B only). Only switches 1 and 2 are used at the moment, switch 3 is reserved.

Interface | Switch 1 | Switch 2
RS232 | OFF | OFF
RS422 | OFF | ON
RS485 | ON | ON

If you change interface selection you need to power the DS100B off and back on again for the new selection to be recognized by the device. Also, for the interface selection to work you need to make sure that the Serial Interface (SI) setting of the application firmware is programmed to 2 (auto).


Status LEDs

The Green and Red status LEDs are located on the top of the DS100. The LEDs display various status information depending on what firmware is running at the moment. Follow the links below to learn more about the behaviour of these LEDs under different conditions:

· Status LED behavior in the monitor firmware

· Status LED behavior in the NetLoader

· Status LED behavior in the application firmware

There are also two Ethernet Status LEDs- Green and Red- located next to the RJ45 Ethernet connector. The Green LED is normally ON, and is temporarily turned off whenever the EM100 receives a network packet. The Red LED is normally OFF, and is turned on momentarily whenever a data collision is detected on the Ethernet.


Setup Button

The setup button is located on the bottom side of the DS100. The button can be pushed by a sharp tip of a pencil, pen, etc.

The Button is used to select an operating mode of the DS100:

· When the DS100 is powered up with the button pressed it enters a serial upgrade mode in which new application firmware file can be uploaded into the DS100 through its serial port. If the DS100 is powered up with the setup button not pressed the Device proceeds to running its current application firmware. This functionality is delivered by the Monitor firmware component of the DS100.

· When the application firmware is already running the setup button is used to make the DS100 enter the serial programming mode (hence, the name of a button)*.

* Strictly speaking, this is a functionality that is defined by the application firmware, not the DS100 hardware.


Specifications and DS100 modifications

There are two models of the DS100: the DS100R with RS232 serial interface and the DS100B with RS232/RS422/RS485 serial interface.

The DS100R has had three modifications, so there are four different DS100R submodels in circulation: DS100R-00, DS100R-01, DS100R-02, and DS100R-03. Currently, only the DS100R-03 is being manufactured so the information on DS100R-00, DS100R-01, and DS100R-02 is provided for your reference only.

The DS100B has only be supplied in a single modification- DS100B-00.

The DS100R-00, DS100R-01, and DS100R-02 devices were basically the same, with only the minor changes made to the internal hardware (such as bypass capacitors on the internal PCB, etc.). We will refer to all three modifications as DS100R-02.

The DS100R-03 and DS100B-00 have extended functionality compared to the DS100R-02. There are two notable differences:

· Memory size inside the devices has been increased so the routing buffers of the DS100R-03 and DS100B-00 are double the size of the buffers inside the DS100R-02 (510 bytes in each direction vs. 255 bytes in each direction).

· Ability to upgrade the application firmware through the network was added (this is facilitated by the NetLoader firmware) to the DS100R-03 and DS100B-00. The DS100R-02 cannot run the NetLoader and cannot be upgraded through the network.

Apart from the above differences all DS100 models and modifications are fully compatible with each other*.

Device specifications are presented in the table below.

Parameter | DS100R-03 (DS100R-00/01/02) | DS100B-00
Ethernet interface | 10BaseT Ethernet
Serial interface and I/O lines | RS232 (TX,RX,RTS,CTS) | RS232 (TX,RX,RTS,CTS,DTR,DSR) RS422 (TX+/-,RX+/-,RTS+/-,CTS+/-) RS485 (half-duplex, TX+/-,RX+/-)
Routing buffers size | 510 bytes x 2 (255 bytes x 2)
Power requirements | DC 12V, app. 100mA
Operating temperature | -5 to +70 degrees C
Operating relative humidity | 10-90%
Mechanical dimensions | 95x57x30mm
Carton dimensions ("bare" DS100) | 130x100x65mm
Gross weight ("bare" DS100) | 170g.
Carton dimensions (DS100-KIT) | 325x45x90mm
Gross weight (DS100-KIT) | 950g.

* On the functional level, the application firmware files to be loaded into the devices are different!


DS202 Serial Device Server

The DS202 is a Serial Device Server for external use. Device hardware includes one 10/100BaseT Ethernet port, one RS232 serial port and an internal processor that "glues" network and serial sides together. Internally, the DS202 is based on the EM202 Ethernet Module.

From the hardware standpoint, the DS202 can be viewed as a universal platform suitable for running a variety of network and serial communications-related applications. It is the application firmware, not the hardware that gives the DS202 most of its functionality. The firmware is currently in its 3rd generation ("Release3").

The application firmware of the DS202 can be upgraded through the device's serial port or Ethernet port. Serial upgrades are facilitated by a so-called Monitor- a fixed "service" firmware inside the DS202. Network upgrades rely on the application firmware itself- there is a self upgrade algorithm that will be detailed later. The DS202 is supplied with the application firmware already pre-loaded.

Since most of the DS202's operation is defined by its firmware the major part of the functional description can be found in the Device Server Application Firmware Manual. This DS202 Serial Device Server Manual focuses on the hardware portion of the DS202.


DS202 Connectors and Controls

Click on one of the links provided below to learn more about the DS202:

· Power Jack (input power is 10-25VDC, adaptor current rating must be no less than 500mA)

· Ethernet port pin assignment

· RS232 port pin assignment

· Status LEDs

· Setup button


Power Jack

Power Jack of the DS202 accepts "small" power connectors with 3.5mm diameter. Use ARP-P0005, ARP-P0006, or ARP-P0007 power adaptor supplied by Tibbo or similar adaptor. Acceptable power supply voltage range is 10-25VDC. Adaptor current rating should be at least 500mA. On the power jack, the ground is "on the outside", as shown on the figure below.

pjack2


Ethernet Port Pin Assignment

Ethernet port of the DS202 is of 10/100BaseT type.

Connector is of RJ45 type, pin assignment is as follows:

#1 | TX+
#2 | TX-
#3 | RX+
#4 | <No connection>
#5 | <No connection>
#6 | RX-
#7 | <No connection>
#8 | <No connection>


Status LEDs

The DS202 has two pairs of status LEDs: one on the Ethernet connector itself (left side), and one on top of the Device. Both pairs are controlled by the same internal circuitry and exhibit exactly the same behavior.

Status LEDs display various status information depending on what firmware is running at the moment. Follow the links below to learn more about the behaviour of these LEDs under different conditions:

· Status LED behavior in the monitor firmware

· Status LED behavior in the application firmware

There are also two Ethernet Status LEDs- Green and Yellow- located on the Ethernet connector (right side):

· Link/Data LED (green) is turned on when "live" Ethernet cable is plugged into the Module. The LED is temporarily switched off whenever an Ethernet packet is received.

· 100BaseT LED (yellow) is turned on when the EM202 links with the hub at 100Mb. The LED is off when the link is established at 10Mb.


Setup Button

The setup button is located next to the Ethernet port of the DS202.

The Button is used to select an operating mode of the DS202:

· When the DS202 is powered up with the button pressed it enters a serial upgrade mode in which new application firmware file can be uploaded into the DS202 through its serial port. If the DS202 is powered up with the setup button not pressed the Device proceeds to running its current application firmware. This functionality is delivered by the Monitor firmware component of the DS202.

· When the application firmware is already running the setup button is used to make the DS202 enter the serial programming mode (hence, the name of a button)*.

* Strictly speaking, this is a functionality that is defined by the application firmware, not the DS202 hardware.


Specifications and DS202 Modifications

The DS202 has one submodel in circulation- DS202R-00.

Device specifications are presented in the table below.

Parameter | DS202R-00
Ethernet interface | 10/100BaseT Ethernet
Serial interface and I/O lines | RS232 (TX,RX,RTS,CTS,DTR,DSR)
Routing buffers size | 12Kbytes x 2*
Power requirements | DC 10-25V, use adaptor with current rating of at least 500mA
Operating temperature | -5 to +70 degrees C
Operating relative humidity | 10-90%
Mechanical dimensions | 60x47x30mm
Carton dimensions ("bare" DS202) | 125x95x52mm
Gross weight ("bare" DS202) | 110g.
Carton dimensions (DS202-KIT) | 325x45x90mm
Gross weight (DS202-KIT) | 950g.

* Maximum possible buffer size. Actual size may be smaller depending on how much RAM is "consumed" by the firmware


Kits and Accessories

Tibbo supplies the following Accessories:

· WAS-P0004(B) DS-to-device serial cable (replaces now obsolete WAS-1404)

· WAS-P0005(B) DS-to-PC serial cable (replaces now obsolete WAS-1455)

· WAS-1499 "straight" Ethernet cable (DS-to-hub cable)

· WAS-1498 "crossover" Ethernet cable (DS-to-device cable)

· TB100 Terminal Block Adaptor

· 12VDC/500mA Power Adaptors

· DMK100 DIN Rail/Wall Mounting Kit

The following Starter Kits are available:

· DS100R-SK Starter Kit. The Kit includes all necessary parts for evaluation of the DS100R Serial Device Server:

· DS100R Serial Device Server;

· WAS-P0004(B) DS-to-device serial cable;

· WAS-P0005(B) DS-to-PC serial cable;

· WAS-1499 "straight" Ethernet cable;

· WAS-1498 "crossover" Ethernet cable;

· 12VDC/500mA Power Adaptor.

· DS202R-SK Starter Kit. The Kit includes all necessary parts for evaluation of the DS202R Serial Device Server:

· DS202R Serial Device Server;

· WAS-P0004(B) DS-to-device serial cable;

· WAS-P0005(B) DS-to-PC serial cable;

· WAS-1499 "straight" Ethernet cable;

· WAS-1498 "crossover" Ethernet cable;

· 12VDC/500mA Power Adaptor.

· DS100B-SK Starter Kit. The Kit includes all necessary parts for evaluation of the DS100B Serial Device Server:

· DS100B Serial Device Server;

· WAS-P0004(B) DS-to-device serial cable;

· WAS-P0005(B) DS-to-PC serial cable;

· WAS-1499 "straight" Ethernet cable;

· WAS-1498 "crossover" Ethernet cable;

· 12VDC/500mA Power Adaptor;

· TB100 Terminal Block Adaptor.

· EM202-SK Starter Kit. The Kit includes all necessary parts for evaluation of the EM202 Ethernet-to-serial Module:

· EM202-EV-RS Evaluation Board with one EM202 Module (soldered in);

· WAS-P0004(B) DS-to-device serial cable;

· WAS-P0005(B) DS-to-PC serial cable;

· WAS-1499 "straight" Ethernet cable;

· WAS-1498 "crossover" Ethernet cable;

· 12VDC/500mA Power Adaptor.

· EM200-SK Starter Kit. The Kit includes all necessary parts for evaluation of the EM200 Ethernet-to-serial Module:

· EM120/EM200-EV Evaluation Board with one EM200 Module (installed on a socket);

· WAS-P0004(B) DS-to-device serial cable;

· WAS-P0005(B) DS-to-PC serial cable;

· WAS-1499 "straight" Ethernet cable;

· WAS-1498 "crossover" Ethernet cable;

· 12VDC/500mA Power Adaptor.

· EM120-SK Starter Kit. The Kit includes all necessary parts for evaluation of the EM120 Ethernet-to-serial Module:

· EM120/EM200-EV Evaluation Board with one EM120 Module (installed on a socket);

· WAS-P0004(B) DS-to-device serial cable;

· WAS-P0005(B) DS-to-PC serial cable;

· WAS-1499 "straight" Ethernet cable;

· WAS-1498 "crossover" Ethernet cable;

· 12VDC/500mA Power Adaptor.

· EM100-SK Starter Kit. The Kit includes all necessary parts for evaluation of the EM100 Ethernet-to-serial Module:

· EM100-EV Evaluation Board with one EM100 Module (installed on a socket);

· WAS-P0004(B) DS-to-device serial cable;

· WAS-P0005(B) DS-to-PC serial cable;

· WAS-1499 "straight" Ethernet cable;

· WAS-1498 "crossover" Ethernet cable;

· 12VDC/500mA Power Adaptor.


WAS-P0004(B) DS-to-Device Serial Cable

WAS-P0004(B) is a female-male serial cable that can be used to connect Tibbo Device Server or Board to the serial port of your device.

DB9M (Male) | DB9F (Female)
#2 | #2
#3 | #3
#4 | #4
#5 | #5
#6 | #6
#7 | #7
#8 | #8

The cable is of blue color, approximately 1.5m long.


WAS-1404 DS-to-Device Serial Cable

This cable is now obsolete and superseded by WAS-P004(B).

WAS-1404 is a female-male serial cable that can be used to connect Tibbo Device Server or Evaluation Board to the serial port of your device.

DB9M (Male) | DB9F (Female)
#2 | #2
#3 | #3
#5 | #5
#7 | #7
#8 | #8

The cable is of black color, approximately 1.5m long. Notice, that the cable doesn't have DTR/DSR lines!


WAS-P0005(B) DS-to-PC Serial Cable

WAS-1455 is a female-female cable that can be used to connect Tibbo Device Server or Evaluation Board to the COM port of your PC.

DB9F (Female) | DB9F (Female)
#2 | #3
#3 | #2
#4 | #6
#5 | #5
#6 | #4
#7 | #8
#8 | #7

The cable is of green color, approximately 1.5m long.


WAS-1455 DS-to-PC Serial Cable

This cable is now obsolete and superseded by WAS-P005(B).

WAS-1455 is a female-female cable that can be used to connect Tibbo Device Server or Evaluation Board to the COM port of your PC.

DB9F (Female) | DB9F (Female)
#2 | #3
#3 | #2
#5 | #5
#7 | #8
#8 | #7

The cable is of white color, approximately 1.5m long. Notice, that the cable doesn't have DTR/DSR lines!


WAS-1499 "Straight" Ethernet Cable

WAS-1499 can be used to connect Tibbo Device Server or Evaluation Board to an Ethernet hub.

Side A | Side B
#1 (pair 1) | #1
#2 (pair 1) | #2
#3 (pair 2) | #3
#6 (pair 2) | #6

The cable is of blue color, approximately 1.5m long.


WAS-1498 "Crossover" Ethernet Cable

WAS-1499 can be used to connect Tibbo Device Server or Evaluation Board directly to some other Ethernet device (i.e. Ethernet port of the PC). This is a so called "crossover" cable that can interconnect two Ethernet devices without a hub.

Side A | Side B
#1 (pair 1) | #3
#2 (pair 1) | #6
#3 (pair 2) | #1
#6 (pair 2) | #2

The cable is of green color, approximately 1.5m long.


TB100 Terminal Block Adaptor

The TB100 Terminal Block Adaptor attaches to the DB9M serial port connector. The TB100 provides a convenient way of attaching wires in RS422 and RS485 systems. The wires are inserted into the terminal contacts and the terminals are then tightened using a screwdriver.

tb100

The following table details terminal block contact functions in case the terminal block is connected to the DS100:

 | DS100R | DS100B
 | RS232 (full-duplex op.) | RS232 (full-duplex op.) | RS422 (full-duplex op.) | RS485 (half-duplex op.)
#2 | <No connection> | <No connection> | RTS- (output) | <No connection>
#7 | RX (input) | RX (input) | RX- (input) | RX- (input)
#8 | TX (output) | TX (output) | TX+ (output) | TX+ (output)
#9 | <No connection> | DTR (output) | TX- (output) | TX- (output)
#10 | Ground | Ground | Ground | Ground
#6 | <No connection> | DSR (input) | RX+ (input) | RX+ (input)
#1 | RTS (output) | RTS (output) | RTS+ (output) | <No connection>
#3 | CTS (input) | CTS (input) | CTS+ (input) | <No connection>
#4 | <No connection> | <No connection> | CTS- (input) | <No connection>

As explained in serial port pin assignment the DS100B supports half-duplex RS485 communications, but the RX and TX line pairs on the DB9M connector of the DS100B are separated. In order to arrange a half-duplex two-wire RS485 bus you need to externally connect RX+ to TX+ and RX- to TX-. On the TB100 this is conveniently done by closing (putting to ON position) two switches- SW1 and SW2- located on the back of the TB100.

Additionally, the TB100 provides termination circuits typically needed at the end of the RS422 or RS485 bus. There are four identical terminators that can be switched on individually using switches located on the back of the TB100. The following table details which line pairs the terminators can be connected to:

SW3 | CTS+/CTS-
SW4 | RTS+/RTS-
SW5 | RX+/RX-
SW6 | TX+/TX-

Schematic diagram for one of the terminators is shown on figure below.

terminator

Notice, that if you are using RS485 half-duplex mode (SW1 and SW2 are closed) and you want to terminate the RS485 bus, then you only need to close either SW5 or SW6. Having both switches closed will effectively add two termination circuits to the bus!


12VDC/500mA Power Adaptor

Six different Adaptor models are supplied:

DS100R/B, EM120/EM200-EV, EM100-EV ("large" connector, 5.5mm in diameter)
U.S. style | European style | U.K. style
ARP-1014 | ARP-1015A | ARP-1018A
DS202R, EM202-EV-RS, EM202-EV-TM ("small" connector, 3.5mm in diameter)
U.S. style | European style | U.K. style
ARP-P0005 | ARP-P0006 | ARP-P0007


DMK100 DIN Rail/ Wall Mounting Kit

DMK100 DIN Rail/Wall Mounting Kit is used for wall or DIN-rail mounting of DS100 and DS202 Serial Device Servers. The kit includes:

· Metal Plate x1

· DIN Rail Mounting Bracket x2

· Screw x6

Wall installation of the DS100/DS202

The Metal Plate has two pairs of mounting holes- one for "permanent" installation and another one for "easy removal".

Attach the Metal plate to the DS100/DS202 as shown below.

DIN Rail installation of the DS100/DS202

First, assemble the parts as shown on Figure below.

Next, attach the Metal Plate to the DS100/DS202:

Latch the DS100/DS202 onto the DIN Rail as shown below. IMPORTANT! Be careful when removing the DS100/DS202 from the DIN rail. Applying too much force may damage the Mounting Brackets or render them too loose.


Firmware Manuals

This part of the documentation describes all firmware components related to Tibbo Device Servers.

Three firmware components are currently available:

· Monitor is a "fixed" firmware that is responsible for starting the application firmware and firmware upgrades through the serial port of the Device Server.

· Device Server Application Firmware (currently in its V3.0x/3.5x) is what gives Tibbo Device Servers their functionality. The firmware can be uploaded into the Device Server through its serial port or through the network. Firmware release history can be found here.

· NetLoader is a firmware component that facilitates application firmware upgrades through the network in the following devices: EM100-03, DS100R-03, DS100B-00. Like the application firmware itself, the NetLoader can be uploaded into the Device Server through the serial port (but not through the network- the NetLoader cannot network-upgrade itself!).

All EM100-03, DS100R-03, DS100B-00 devices come from the factory with the NetLoader already installed. Certain earlier devices- EM100-00/ -01/ -02, DS100-00/ -01/ -02- cannot be upgraded through the network at all. All other devices have "self-upgrading" firmware that doesn't require the NetLoader.


Monitor (for Serial Firmware Upgrades)

The Monitor is a fixed firmware component inside Tibbo Device Server (DS) that is responsible for booting up the DS, verifying and starting application firmware, and also performing application firmware upgrades via the serial port of the DS.


Status LED Signals

Tibbo Device Servers ("DS") feature two status LEDs*- Status Red (SR) and Status Green (SG)- that display various states of device operation. DS states are indicated by way of playing "LED patterns". Patterns in this topic are represented graphically in the following manner:

The pattern above means that both green and red status LEDs blink together three times. The following pattern means that red LED makes one long blink followed by two short ones:

When the Monitor is running status LEDs display a number of conditions:

... Fast-blinking pattern means that neither application firmware, nor the NetLoader can be found in the FLASH memory of the DS. The way out of this situation is to upload application firmware and the NetLoader into the device via its serial port (see serial upgrade mode, also upgrading DS firmware).

Slow-blinking Green Status LED means that the serial upgrade was completed successfully.

Slow-blinking Red Status LED means that there was a timeout while waiting for the XMODEM data. If this happens right in the beginning of the serial upgrade then most probably this is caused by incorrect serial settings on the PC side, incorrect serial cable wiring, or incorrect XMODEM start procedure- XMODEM must be started on the PC first, and only then the DS is switched on (with he Setup button pressed).
Communications error. This pattern means that an error was detected on the protocol level in XMODEM communications. Most often this means that incorrect communications parameters are set on the PC side.

Firmware file is too big. This pattern means that the file you are trying to upload into the DS is too big. Check if you have selected a correct file.

FLASH failure. This pattern means that internal FLASH memory of the DS is malfunctioning.


DS Startup Procedure

The following describes what happens when the Device Server is powered up:

· After the powerup the Monitor starts running.

· The first thing that is verified is whether the Setup button is pressed (on EM100, EM120, EM200, EM202- whether the MD line is low). If yes then the Monitor goes into the firmware upgrade mode and is ready to receive new application firmware file through the serial port of the DS (see serial upgrade mode).

· If the Setup button is not pressed the Monitor verifies the presence and validity of the application firmware. If the firmware checks OK the control is passed to it and the DS starts running its application.

· If the application firmware is not present or invalid the Monitor verifies the presence and validity of the NetLoader. If the NetLoader checks OK the control is passed to it and the DS starts waiting for the application firmware upload over the network.

· If the NetLoader is not present or invalid the Monitor displays the "no firmware loaded" pattern (shown below) and halts.

This is a "fast-blinking" pattern that means that the DS doesn't have any firmware to run. Click here to see all available patterns.

In simple terms, the Monitor always attempts to make the DS as accessible as possible. It runs the application firmware if available and, if not, the NetLoader if present. The Monitor halts if neither application firmware, nor the NetLoader are available.


Serial Upgrade Mode

In the serial upgrade mode the application firmware file can be uploaded into the Device Server through the serial port. The upload mechanism uses a simple and popular XMODEM protocol. Communications parameters are 38400-8-N-1.

The XMODEM upload is initiated by the Device Server side. When the DS boots up with the Setup button pressed (on EM100, EM120, EM200, EM202- with the MD line pulled low) the Monitor enters the serial upgrade mode and sends the first character in the XMODEM exchange (SOH character, ASCII code 01). When the "sending side" receives this character it starts uploading the file into the DS.

Serial firmware upgrades can be performed from any communications software that supports XMODEM protocol, such as a HyperTerminal (supplied with Windows OS). Tibbo's own DS Manager (part of the Device Server Toolkit) also supports serial upgrades- see upgrading DS firmware.

A number of errors can be displayed by the Monitor while in the serial upgrade mode. These errors are displayed in the form of "patterns" that are "played" on the Red and Green Status LEDs of the DS. See status LED signals for details.


Device Server Application Firmware (V3.24/V3.54)

Looking for firmware revision history? Click here

Application firmware is what turns Tibbo hardware into a fully-functional Device Server (DS). Tibbo Device Servers usually ship from the factory with the latest officially released application firmware pre-installed (unless an alternative version is requested by the Customer).

This Manual describes application firmware V3.24/3.54. These two firmware versions are an upgrade to the previously available firmware V3.14/3.51, which is used as a "baseline" firmware for this Documentation. All changes that were made after V3.14/3.51 are clearly marked throughout this Documentation (like this: [V3.24/3.54]) Firmware revision history can be found here.

· V3.24 is a part of Release3 branch of application firmware. This firmware runs on first-generation Tibbo Device Servers. 3.1x is currently reaching its maturity so you won't see a lot of new features released within 3.1x branch in the future. V3.1x is available in "w", "s", and "sn" builds. Table below details which build should be used for which model of Tibbo Device Servers.

· V3.54 is a part of Release3.5 branch of application firmware. This firmware runs on second-generation Tibbo Device Servers. V3.5x is available in "r" and "d" builds. Table below details which build should be used for which models of Tibbo Device Servers.

As active firmware development continues, Release3.5 is gradually gaining numerous and powerful advantages over Release3. New features of Release3.5 that are not supported by earlier firmware versions are clearly marked throughout this Documentation (like this: [V3.54]).

Table below details firmware version/build compatibility:

First-generation devices (work with firmware V3.1x firmware)
EM100-00, -01, -02; DS100R-00, -01, -02
EM3.1xW (serial upgrades only)
EM100-03; DS100R-03; DS100B-00*
EM3.1xS (serial/network upgrades)
EM3.1xSN (serial upgrades)
Second-generation devices (work with firmware V3.5x firmware)
EM120-00
EM3.5xR (serial/network upgrades)
EM200-00; EM202-00; EM202-EV-xx-00;
DS202R-00
EM3.5xD (serial/network upgrades)

* These devices support network upgrades through a separate firmware component called NetLoader. This component can only be uploaded into the DS through the serial port. "SN" build for serial upgrades contains application firmware and the NetLoader. "N" build for network upgrades only contains application firmware ("SN" build cannot be used for network upgrades because the NetLoader cannot upgrade itself).

Notice that certain Boards- EM100-EV and EM120/EM200-EV- are not included in the table above. This is because these Boards have sockets for Module installation. Therefore, the type of file you should use depends on a currently installed Module, not the Board itself.


Status LED Signals

Tibbo Device Servers ("DS") feature two status LEDs*- Status Red (SR) and Status Green (SG)- that display various states of device operation. DS states are indicated by way of playing "LED patterns". Patterns in this topic are represented graphically in the following manner:

The pattern above means that both green and red status LEDs blink together three times. The following pattern means that red LED makes one long blink followed by two short ones:

Status LEDs of the DS display a number of conditions, some of which can exist at the same time. Because status LEDs can reflect only one condition at any given time there is a certain hierarchy that defines which conditions are more important and displayed in favor of other conditions.

Listed below are all patterns generated by this firmware**. Patterns are arranged in order of decreasing priority. For example, serial programming mode pattern is listed above the error mode pattern which means that if the DS is running in the serial programming mode and error mode at the same time it is the serial programming mode pattern that will be played by the status LEDs.

Most LED patterns correspond to states of various flags contained in response to the Echo (X) command. Where this is true a short note was added to reflect this fact (like this: s flag='S').

Patterns that are played once in response to a certain event:

Powerup pattern. This pattern is played once when the DS is switched on.

Buzz pattern. Both LEDs blink fast- this pattern is played when the DS receives the Buzz (B) command. This is used to identify a particular DS.

Patterns that are played repeatedly until replaced by another pattern:

Serial programming mode (s flag= 'S').

Error mode (e flag= 'E').

Ethernet port failure (e flag= 'N'). Indicates that the Ethernet port hardware is malfunctioning and network communications with the DS is not possible.

IP-address not obtained (i flag= '*'). Occurs at startup when DHCP (DH) setting is 1 (enabled) and the DS has not yet obtained its IP-address from the DHCP server.
[V3.54+]: PPPoE link is being established (details- p flag). Occurs at startup when PPPoE Mode (PP) setting is 2 (on powerup).

[V3.54+]: PPPoE login failed (p flag= 'D'). Occurs at startup and means that either PPPoE login name and password (defined by PPPoE Login Name (PL) and PPPoE Login Password (PD) settings) are incorrect or PAP authentication protocol used by the DS is not supported by Access Concentrator.

Data connection is closed (c flag= '*'). This pattern means that no data connection (TCP or UDP) with any network host is currently established so the DS is idle.

Sending ARP (c flag= 'A'). Displayed when the DS is sending ARP requests to find out MAC-address of the destination network host with which the DS is about to establish a connection.
[V3.54+]: PPPoE link is being established (p flag= 'B'). This happens when PPPoE Mode (PP) setting is 1 (on connection) and the DS needs to create a PPPoE link in order to connect to remote network host.

TCP connection is being opened (c flag= 'O'). Indicates that TCP connection (either incoming or outgoing) is being established (i.e. SYN-SYN-ACK exchange is in progress).

TCP connection reset (rejected) by the network host (c flag= 'R'). Means that the TCP connection has been reset (using RST packet) by the network host to which the DS has tried to connect.

Link Server login in progress (c flag= 'L'). Means that the DS has already established TCP connection to the Link Server and is now attempting to login.

Link Server login failed (c flag= 'F'). Means that data connection to the Link Server could be established but the server has rejected this DS (because the data in the Owner Name (ON), Device Name (DN), or Password (PW) setting is incorrect or for some other reason).

Data connection is established or being closed (c flag= 'U' or 'C'). Means that data UDP "connection" or TCP connection is currently established or that TCP connection is being closed (i.e. FIN-ACK-FIN-ACK exchange is in progress).

When the data connection is established the following patterns are additionally displayed:

Data is being routed, no overruns detected (E flag= '*' and S flag= '*'). This pattern is played when the data connection is established and the data is being routed through the DS;

Buffer overrun, no data routing (E flag= 'E' or S flag= 'S'). This pattern is displayed when the data connection is established and the routing buffer overrun has been detected (within the present data connection);
Buffer overrun + data routing. Data routing and overrun can be displayed at the same time.

* For modules such as EM100, EM120, EM200, EM202 there are two control lines to connect external status LEDs.

** Patterns related to the NetLoader and the Monitor are not shown here!


Operation

The DS has two ports- Ethernet port and serial port. Typically, the serial port of the DS is connected to a certain serial device ("attached serial device"). Ethernet port links the DS to the Ethernet (TCP/IP) network (see figure below). Potentially, any network host (including another DS) on the network can communicate with the DS and the serial device "behind" it.

The job of the DS (i.e. the firmware described in this Manual) is to ensure transparent communications between the network host and the attached serial device by routing the data between the Ethernet and serial ports of the DS. Routing means that the data received into the Ethernet port is sent out via the serial port and vice versa. Routing is effected through two routing buffers- one for each routing direction*. In addition to routing the serial data itself, the DS allows the network host and the attached serial device to exchange the state of RTS, CTS, DTR, and DSR lines.

DS operation is governed by settings, parameters, and instructions:

Settings are permanent functioning parameters that are stored in the non-volatile memory (EEPROM) of the DS. Once programmed, they remain intact even when the DS is powered off. Many (but not all) settings require the DS to be rebooted for the new setting value to take effect. For example, the Baudrate (BR) setting defines the baudrate of the serial port. When the DS boots up it sets the baudrate of its serial port according to the value of this setting.

Parameters are temporary overrides for settings. Parameters are not saved into the EEPROM and have immediate effect (no rebooting required). For example, there is a Baudrate (BR) parameter that can be used to immediately change communications speed of the serial port (and override the permanent value defined by the Baudrate (BR) setting).

Instructions are used to make the DS perform a certain action. For example, Establish Connection (CE) instruction makes the DS establish a data connection with a specified network host.

Because parameters can override settings this Manual will sometimes make references to current values. For example, current Baudrate (BR) will mean, quite literally, the baudrate at the moment, regardless of what caused it to be such- a permanent value obtained from the setting or a temporary overriding parameter value.

Settings and parameters are manipulated and instructions are issued by sending commands to (and getting replies from) the Ethernet or serial port of the DS- the process that will be referred to as programming.

* The size of routing buffers is hardware-dependent and is different for different models and modifications of Tibbo Device Servers. Routing buffer size can be verified using the Status (U) command.


Ethernet Port and Network Communications

Just like any other Ethernet device, the DS has a unique MAC-address (defined by the MAC-address (FE) setting) and must be assigned a valid IP-address (defined by the IP-address (IP) setting) to function properly on the network. Unique MAC-address is preset during the production. Assigning a valid IP-address is the responsibility of the user. IP-address can be assigned manually or automatically, through DHCP (must be enabled through the DHCP (DH) setting).

To route the data between attached serial device and the network host the DS needs to establish and maintain a data connection. Depending on current Transport Protocol [setting/ parameter] the data connections can use TCP/IP or UDP/IP.

The DS only allows for a single data connection. This is because the serial port is not a shared media and cannot be controlled by more than a single network source at any given time. This is analogous to the COM port of the PC, which can only be opened by one program at a time.

The DS is capable of both accepting incoming connections (passive opens) and establishing outgoing connections of its own (active opens). Whether passive and/or active opens are allowed is defined by the current Routing Mode (RM) [setting/ parameter].

Passive opens, when allowed, are accepted from any network host as long as correct transport protocol is used (must match current Transport Protocol [setting/ parameter]) and connection is made to a correct data port (defined by the Data Port (DP) setting). [V3.24/3.54+]: Current Source IP Filtering [setting/parameter] defines whether an incoming connection will be accepted from any network host or only the host whose IP-address matches the one specified by current Destination IP-address (DI) [setting/parameter/instruction].

When performing an active open the DS attempts to connect to the current Destination IP-address (DI) [setting/parameter/instruction] and current Destination Data Port (DP) [setting/parameter/instruction]. When the destination is located on a different subnet, which is derived from comparing the destination IP-address, IP-address of the DS itself, and the netmask (defined by the Netmask (NM) setting), the DS connects through default gateway or [V3.54+] PPPoE Access Concentrator:

· When PPPoE is not used connection is made through default gateway defined by the Gateway IP-address (GI) setting

· [V3.54+]: When PPPoE is enabled (through PPPoE Mode (PP) setting) connection is made through PPPoE Access Concentrator. For more information see PPPoE.

Exactly when the DS attempts to establish an outgoing connection (when such connections are allowed) depends on the selected connection mode (see Connection Mode (CM) setting). Attached serial device can optionally control and monitor connection establishment and termination through a dedicated set of instructions known as modem commands (serial-side parameters and instructions), or through the DSR line manipulation (when enabled through the Connection Mode (CM) setting) and DTR line monitoring (see DTR mode (DT) setting). Data connections can also be closed automatically, on timeout (see Connection Timeout (CT) setting).

In addition to "normal" data connections the DS supports data connections through the Link Server.

Besides the user-definable data port there are also two identical UDP command ports with numbers 65535 (FFFF Hex) and 32767 (8FFF Hex). Network programming of the DS is effected by sending programming commands (as UDP datagrams) to either port. Additionally, programming commands can be sent (under certain conditions) right within the data connection itself- see inband (TCP) commands and command-phase (TCP) commands.

Programming of the DS and data routing can be performed concurrently, these processes are completely independent from each other.

The DS also supports ARP and ICMP protocols- it can be PINGed just like any other network device.


UDP Data "Connections"

This topic details UDP data connections (current Transport Protocol (TP) [setting/ parameter]= 0).

The notion of data connection is native to TCP/IP since this is a connection-based protocol. UDP/IP, however, is a connection-less protocol in which all packets (UDP datagrams) are independent from each other. How, then, the term "DS data connection" applies to the UDP transport protocol?

With UDP transport protocol true data connections (in the "TCP sense" of this term) are not possible (hence, parenthesis around the word "connection"). The DS, however, attempts to mimic the behavior of TCP data connection whenever possible. Follows is the detailed description of UDP "connections" and their similarities and differences from TCP connections.

Incoming "connections"*. There is no connection establishment phase in UDP so an incoming UDP "connection" is considered to be "established" when the first UDP packet is received by the DS from the network host (on the port defined by the Data Port Number (PN) setting). Similarity with TCP is in that after having received the packet from the network host the DS knows who to send its own UDP packets to. [V3.24/3.54]: When Current Source IP Filtering [setting/parameter] is 1 (enabled) the DS ignores UDP datagrams that arrive from any IP-address other than the one matching current Destination IP-address (DI) [setting/parameter/instruction] (unless Destination IP-address is set to 255.255.255.255- see broadcast UDP communications).

Outgoing "connections"**. The DS establishes outgoing UDP connection by sending a UDP datagram to the targeted destination (defined by the current Destination IP-address (DI) [setting/parameter/instruction] and current Destination Data Port (DP) [setting/parameter/instruction]). If there is a data that the DS needs to send to the network host then the DS sends the first UDP datagram with (part of) this data. If there is no immediate data that needs to be sent to the network host then the DS sends the first UDP datagram of zero length. This happens when the Connection Mode (CM) setting is 0 (connect immediately). The purpose of this is to let the other side know the MAC-address, IP-address, and the data port of the DS.

Data transmission and destination switchover. Once the "connection" is established the DS and the network host can exchange the data. The difference with TCP is that if another network host sends a datagram to the DS then the DS will interpret this as a new incoming "connection"*, forget about the IP-address of the first network host and start sending its own UDP datagrams to the IP-address of the second network host. In other words, the DS will always send its own UDP datagrams to the IP-address of the "most recent sender". The only exception is the case when the current Destination IP-address is 255.255.255.255- see broadcast UPD communications.

The situation with the port to which the DS will address its UDP datagrams is a little bit more complex and depends on the current Routing Mode (RM) [setting/ parameter]:

· When the current Routing Mode is 0 (server) the DS sends its own UPD datagrams to the port number from which the most recent incoming data UDP packet was received. In other words, the DS always switches over not only to the IP-address of the most recent sender, but also to the port number from which the most recent UDP datagram was received.

· When the current Routing Mode is 1 (server/client) or 2 (client) the DS always sends its UDP datagrams to the port number specified by the current Destination Data Port (DP) [setting/parameter/instruction]. This means that even if the DS switches over to the IP-address of the most recent sender it will still address its own UDP datagrams to the data port specified by current Destination Data Port.

"Connection" termination. There is no connection termination phase in UDP so DS "terminates" its UDP connections by simply "forgetting" about them and the only event that can trigger UDP "connection" termination is connection timeout (defined by the Connection Timeout (CT) setting).

* Assuming that incoming connections are allowed (i.e. current Routing Mode [setting/parameter] is either "server", or "server/client") AND [V3.24/3.54]: Current Source IP Filtering [setting/parameter] is 0 (disabled)

** Assuming that outgoing connections are allowed (i.e. current Routing Mode [setting/parameter] is either "client", or "server/client").


Broadcast UDP Communications

With UDP transport protocol (current Transport Protocol (TP) [setting/ parameter]= 0) it is possible to send and receive broadcast UDP datagrams.

Sending broadcast UDP datagrams. When current Destination IP-address (DI) [setting/parameter] is 255.255.255.255 the DS sends out its own UDP datagrams as link-level broadcasts i.e. with destination MAC-address of UDP datagrams set to 255.255.255.255.255.255. The DS continues to broadcast its data even if it receives an incoming UDP datagram. In other words, the DS doesn't switch over to the most recent sender as described in UDP data "connections".

Receiving broadcast UDP datagrams. Whether or not the DS will accept data UDP datagrams sent in the broadcast mode is defined by the Broadcast UDP (BU) setting.


TCP Data Connections

This Section details TCP data connections (current Transport Protocol (TP) [setting/ parameter]= 1).

TCP protocol implementation in the DS has the following differences from the standard:

TCP reconnects. When the data TCP connection between the DS and the network host is already established and another network host (with a different IP-address) attempts to connect to the data port of the DS this connection attempt is rejected (because the DS only allows for a single data connection at a time). However, if the second connection is attempted from the same IP-address (as the IP-address with which existing TCP connection is established) then the DS will "switchover" to this new connection. This means that the DS will forget the first connection and accept the second one. Such behavior is implemented to avoid DS stalling by hanged connection. Consider this scenario: the application on the network host has a TCP connection to the DS in progress. Suddenly, the application crashes- connection is left hanging because it wasn't properly terminated. When the application is relaunched it attempts to establish a TCP connection with the DS again. If the reconnect feature wasn't implemented the DS would have considered this to be an attempt to establish a second concurrent data connection and would have rejected it. Owing to reconnect feature the DS will recognise that this new connection attempt has originated from the same IP-address and switch over to this new connection. The downside of this arrangement is that two (or more) applications communicating with the DS from the same host can interfere with each other's connections- each new connection attempt will take over the existing one.

TCP retransmissions. Standard protocol implementation defines "exponential backoff" retransmit times whereas each subsequent retransmissions is attempted after a longer and longer periods of time. Such behaviour is not very suitable for real-time systems. For any situation that requires a TCP packet to be retransmitted the DS will perform five retransmission attempts at even, 2.5 second, intervals.


DHCP

The DS supports Dynamic Host Configuration Protocol (DHCP). DHCP is used to automatically configure the following settings: IP-address (IP), Gateway IP-address (GI), and Netmask (NM). For the DHCP to work there must be a DHCP server on the network where the DS is installed.

The DHCP is enabled and disabled through the DHCP (DH) setting. When DHCP (DH) setting is at 1 (enabled) the DS uses DHCP protocol to obtain its IP-address immediately upon startup. The DS does not start its normal operation until it receives an IP-address from the DHCP server. Gateway IP-address and netmask configuration is optional so the DS does not require these two parameters to be received from the DHCP server.

"IP-address not obtained" pattern is displayed by the status LED's of the DS while the IP-address is being configured through DHCP. This condition corresponds to the value '*' of the i flag returned by the Echo (X) command.

When requesting an IP-address for itself, the DS asks for a maximum possible lease time (this is the period of time during which the DS will be allowed to use the IP-address). The DS memorizes the lease time actually offered by the DHCP server and applies for a lease extension well before the lease expires. If the lease is extended the DS continues normal operation. If the lease is not extended the DS reboots.

While communicating with the DHCP server, the DS supplies its name. The name consists of the values of Owner Name (ON) and Device Name (DN) settings joined by hyphen. For example, the name might look like this:

abccorp-dev1

Names supplied by DHCP clients are usually supplied (by the DHCP server) to a local DNS server (DNS and DHCP servers often work together on the same physical server PC). This typically allows you to "see" your DS as a member of your local workgroup, for example:

abccorp-dev1.workgroup1.mainserver

When using DHCP the DS detects Ethernet cable disconnects and re-requests its IP-address from the DHCP server once the cable is plugged back in. The following outcomes are possible:

· If the DHCP server confirms that the IP-address that was leased to this DS can still be used the DS continues uninterrupted operation

· If the DHCP server informs the DS that the IP-address that was leased to this DS can no longer be used the DS reboots (naturally, this aborts any data communications in progress). During the boot process the DS will attempt to interact with the DHCP server repeatedly until the IP-address of the DS is properly configured

· If there is no reply from the DHCP server the DS repeats its request. If there is still no reply the DS reboots. During the boot process the DS will attempt to interact with the DHCP server repeatedly until the IP-address of the DS is properly configured.


PPPoE [V3.54+]

ATTENTION! This topic covers firmware functionality that is only supported in firmware V3.54+ and, hence, only available on second-generation Devices (EM120-00, EM200-00, EM202-00, DS202-00).

PPPoE family of protocols is mostly used by ADSL modems. Some ADSl links (modems) are of "always on" type and do not require any link establishment. Other ADSL links require link establishment procedure based on PPPoE protocol that is very similar to that of old-style POTS dial-up modems. In fact, PPPoE means "PPP over Ethernet"- it is an Ethernet adaptation of an old PPP (point-to-point protocol) used with dial-up modems. If the DS is directly connected to such an ADSL modem it will need to establish a PPPoE link in order to connect to any remote network host (i.e. network host residing on a different network segment)*.

PPPoE only affect communications with remote network hosts, i.e. hosts that reside on a different network segment (local segment boundaries are defined by the Netmask (NM) setting). With PPPoE enabled, all communications with remote hosts are effected through PPPoE link and not default gateway (therefore, Gateway IP-address (GI) setting is irrelevant in this case).

PPPoE is enabled through PPPoE Mode (PP) setting. PPPoE protocol includes authentication phase (login). PPPoE login name and password are defined by PPPoE Login Name (PL) and PPPoE Login Password (PD) settings. Several authentication protocols are defined for PPPoE. Currently, the DS only supports authentication through a protocol called PAP.

The PPPoE Mode (PP) setting offers two options that define when PPPoE link is established. When this setting is at 1 (on connection) the link is established when the DS needs to open a data connection to a remote host. The link is terminated 30 seconds after the data connection is closed. When this setting is at 2 (on powerup) the PPPoE link is established during powerup procedure. The DS then attempts to maintain this link at all times and re-establishes the link if it is broken.

With any PPPoE link both sides have to agree on the IP-addresses that will be used on each side of the link. IP-address on the DS side is requested from and supplied by the Access Concentrator. This IP-address has nothing to do with the "main" IP-address of the DS which is defined by IP-address (IP) setting or supplied by DHCP server when DHCP (DH) setting= 1 (enabled). Just like on PC, a PPPoE link becomes a "virtual" network card (interface) of the DS. As such, it has its own IP-address. This does not affect operation of the DS in any way since it is, actually, not important which IP-address is used for PPPoE link- as long as the Access Concentrator is "satisfied" with this address.

The status of PPPoE link can be obtained via Echo (X) and Status (U) commands. Status LEDs of the DS also display PPPoE-related patterns.

* PPPoE is not required if the DS is connected to the ADSL modem through a router that supports PPPoE. In this case it is the job of this router to take care of PPPoE link management.


Link Server Support

Link Server is a separate software package that makes working with remote Device Servers more convenient. With Link Server large distributed systems consisting of multiples Device Servers can easily be built. This section does not cover Link Server operation in details. For more information see dedicated Link Server documentation.

From the Device Server's point of view the Link server offers two distinct services and there are several settings and parameters that are related to these services:

· Link Service:

· Link Service (TL) setting and parameter

· LS Auto-registration (AR) setting

· Owner Name (ON) setting

· Device Name (DN) setting

· Password (PW) setting

· Dynamic DNS (dDNS) Service:

· dDNS Service Registration (DD) setting

· dDNS Service IP-address (LI) setting

· dDNS Service Port (LP) setting


DS Powerup Procedure

This topic details steps that the DS takes after the powerup. Shown on the left are status LED patterns that are displayed during each step of powerup procedure.

Step 1: powerup and initialization. The DS boots up and prepares for operation. At this time all internal settings of the DS are verified and the hardware is checked.
If at least one of the settings is found to be invalid the DS enters the error mode. In this mode the DS is still accessible through the network but its functionality is limited.
Ethernet port malfunctions are also detected at this stage.

Step 2: IP-address configuration. When the DHCP (DH) setting is at 0 (disabled) the DS simply uses IP-address that is set in the IP-address (IP) setting, in which case IP-address configuration is instantaneous. When DHCP setting is at 1 (enabled) the DS attempts to obtain its IP-address using DHCP protocol. The DS stays on this step of powerup procedure until the IP-address is properly configured.

[V3.54+]: Step 3 (optional): PPPoE link establishment. If PPPoE Mode (PP) setting is at 2 (on powerup) the DS attempts to establish a PPPoE link. The DS will stay on this step of powerup procedure until the PPPoE link is successfully established.
PPPoE login failure. If PPPoE authentication fails (because the data in the PPPoE Login Name (PL) or PPPoE Login Password (PD) settings is incorrect or because Access Concentrator doesn't support PAP authentication protocol) the DS indefinitely continues attempts to establish the link.

<Several different patterns> Step 4 (optional): registration at dDNS. If dDNS Service Registration (DD) setting is at 1 (enabled) the DS attempts to connect to the dDNS Service of the Link Server. Destination IP-address and port are specified by the dDNS Service IP-address (LI) and dDNS Service Port (LP) settings. At this point the DS goes through several different steps- just like for a normal outgoing TCP data connection.

dDNS login failure. dDNS login may fail (because the data in the Owner Name (ON), Device Name (DN), or Password (PW) settings is incorrect or for some other reason). When LS Auto-registration (AR) setting is at 1 (enabled) and the DS is informed that it is not currently registered on this Link Server it will attempt to register.

Procedure completed: idle state. At this point the DS is fully configured and operational. If Routing Mode (RM) setting is 1 (server/client) or 2 (client only) AND Connection Mode (CM) setting is 0 (immediately) the DS proceeds straight to attempting to establish an outgoing data connection.


Data Connection Establishment Procedure

This topic details steps that the DS takes when it needs to establish an outgoing data connection (this is also known as "performing an active open") or after it accepts an incoming connection ("passive open").

Procedure for active opens. Exactly what triggers outgoing connection establishment is defined by the Connection Mode (CM) setting. Outgoing connections are not allowed when current Routing Mode (RM) [setting/parameter] is 0 (server).

Procedure for passive opens. This procedure starts by another network host. Incoming connections are not allowed when current Routing Mode (RM) [setting/parameter] is 2 (client). Source IP Filtering (SF) setting defines who can connect to the DS. Incoming connection must match current Transport Protocol (TP) [setting/parameter] and Port Number (PN).

Entire data connection establishment procedure is presented below. Shown on the left are status LED patterns that are displayed during each step of this procedure.

Active opens start here

Step 1: determining location of destination host. The DS first compares its own IP-address (IP) with current Destination IP-address (DI) [setting/parameter] and Netmask (NM) to determine whether the destination host is located on the same or different network segment. Depending on the outcome of this comparison and the data in [V3.54+] PPPoE Mode (PP) setting the DS may choose step 2a, 2b, 2c, or 2d.

Step 2a: destination IP is on the same network segment. The DS sends ARP request to this IP-address in order to "resolve" it into the MAC-address. This is done each time connection needs to be opened- the DS does not maintain "ARP cache".

Step 2b: destination is "remote", [V3.54+] PPPoE Mode= 0 (disabled). The DS sends ARP request to the default gateway specified by the Gateway IP-address (GI) setting. This is done each time connection needs to be opened- the DS does not maintain "ARP cache".

[V3.54+] Step 2c: destination is "remote", PPPoE Mode= 1 (on connection). The DS attempts to establish a PPPoE link.

--- [V3.54+] Step 2d: destination is "remote", PPPoE Mode= 2 (on powerup). The DS doesn't have to do anything on this step because PPPoE link has already been established during powerup procedure.

PPPoE link failure. PPPoE link establishment can fail (because the data in the PPPoE Login Name (PL) or PPPoE Login Password (PD) setting is incorrect or because Access Concentrator doesn't support PAP authentication protocol).

Step 3: establishing data connection. The DS opens a TCP connection or UDP "connection" to the remote host as defined by current Transport Protocol (TP) [setting/parameter] and Destination Port (DP) setting. This done, procedure continues- see common portion of connection establishment.

Connection rejection. In case of TCP transport protocol connection can be rejected by the destination network host which will be reflected by a corresponding LED pattern.

Passive opens start here

Step 1: accepting data connection. The DS accepts the data connection (provided that this connection can be accepted).

Common portion of connection establishment

Step 1 (optional): performing Link Server login. If current Transport Protocol (TP) [setting/parameter] is at 1 (TCP) AND Link Server Login (TL) setting is at 1 (enabled) the DS assumes that the destination host with which connection has just been established is a Link Server. The DS then initiates Link Service login sequence.

Link Server login failure. Link Server login may fail (because the data in the Owner Name (ON), Device Name (DN), or Password (PW) setting is incorrect or for some other reason). This will be reflected by a corresponding LED pattern. When LS Auto-registration (AR) setting is at 1 (enabled) and the DS is informed that it is not currently registered on this Link Server it will attempt to register.

Step 2 (optional): command portion of TCP connection. If current Transport Protocol (TP) [setting/parameter] is at 1 (TCP) AND Data Login (DL) setting is at 1 (enabled) the DS enters command-phase programming mode. Network host doesn't have access to the serial port of the DS yet but it can already send network commands to the DS. This step ends with network host using Logout (O) command.

Connection established. Network host has access to the serial port of the DS.


Serial Port and Serial Communications

Serial port of the DS has two modes of operation:

Data routing mode. Incoming serial data is routed to the Ethernet port and Ethernet data is routed to the serial port. It is in this mode that the DS performs its routing function. After the powerup the DS is running in the data routing mode.

Serial programming mode. In this mode the serial port is used for serial programming and all data received into the serial port is interpreted as programming commands.

Data connection with the network host can still be established and maintained while in the serial programming mode but the data received from the network host will be discarded and the data received into the serial port will be interpreted as commands. Therefore, data exchange with the network host and serial programming cannot be concurrent. DS can only perform one of the two at any given time. This is different from the network programming that can be performed concurrently with the data routing.

Operation of the serial port in the data routing mode is governed by several settings (see below), some of which (baudrate, parity, etc.) have corresponding parameters. These parameters are delivered to the DS via the network Parameter (P) command and are commonly known as on-the-fly commands (or, more officially, network-side parameters). On-the-fly commands provide a way for the network host to immediately change communications mode of the serial port without rebooting the DS. There are also network-side instructions (Set I/O Pin Status (Sx) and Get I/O Pin Status (Gx)) that are used to set and sense the state of RTS, CTS, DTR, DSR, and also additional P0 and P1 lines* of the DS.

Serial port of the DS has the following capabilities:

· Half-duplex or full-duplex operation as defined by the Serial Interface (SI) setting;

· Baudrates of up to 115200 bps as defined by the current Baudrate (BR) [setting/ parameter];

· 7 or 8 bits/byte as defined by the current Bits Per Byte (BB) [setting/ parameter];

· Several parity options as defined by the current Parity (PR) [setting/ parameter]**;

· There are also several options related to the RTS, CTS, DTR, and DSR lines:

· In full-duplex communications the RTS and CTS lines can be programmed to serve as flow control lines between the DS and attached serial device- this is defined by the current Flow Control (FC) [setting/ parameter];

· In half-duplex serial communications the RTS line serves as a direction control line (see Serial Interface (SI) setting for details). This is why this line is called "RTS/DIR";

· The CTS line optionally serves as an additional function of selecting between full- and half-duplex communications (see "auto" selection of the Serial Interface (SI) setting).

· DTR line can be programmed to reflect current data connection status- see the DTR Mode (DT) setting;

· DSR line can be programmed to control data connection establishment and termination- see the Connection Mode (CM) setting;

· Once again, the status of RTS and DTR lines can be controlled (set) by another network host using the Set I/O Pin Status (Sx) instruction, while the status of CTS and DSR lines can be monitored (polled) using Get I/O Pin Status (Gx) instruction;

· Additionally, the DS can be programmed to notify another network host of the state changes of its RTS, CTS, DTR, DSR, P0, and P1 lines*. Which lines are monitored for changes is defined by the current Notification Bitmask (NB) [setting/parameter]. Notifications are delivered in the form of Notification (J) messages to the port defined by the Notification Destination (ND) setting.

* Whether or not these lines are physically implemented depends on the DS model.

** There is not way to set the number of stop bits directly but the second stop-bit can be emulated by setting current Parity (PR) to 3 (mark).

*** HI and LOW states are described with respect to the serial ports of DS100R, DS100B, DS202R, EM100-EV, EM120/EM200-EV, EM202-EV. For EM100, EM120, EM200, EM202 the signaling is exactly opposite.


Opened and Closed States of the Serial Port

Depending on the current setup and data connection state the serial port of the DS may be opened or closed. When the serial port is opened it is ready to record incoming data into the serial-to-Ethernet buffer* when in the data routing mode or accept a serial command when in the serial programming mode. When the serial port is closed it ignores all incoming serial data except the escape sequences (when enabled through the Soft Entry (SE) setting).

The following details when the serial port is closed or opened:

· When the serial port is in the serial programming mode it is always opened (i.e. ready to accept programming commands);

· When the serial port is in the data routing mode:

· While the IP-address is being obtained from the DHCP server** the port is closed;

· After the IP-address has been obtained successfully:

· If the current Routing Mode (RM) [setting/ parameter] is 0 (server):

· If the data connection is not established the port is closed;

· If data connection is established the port is opened;

· If the current Routing Mode (RM) is 1 (server/client) or 2 (client):

· If the Connection Mode (CM) setting is 0 (immediately) or 1 (on data or command) the port is opened;

· If the Connection Mode (CM) setting is 2 (on command) or 3 (on command or DSR=HIGH):

· If the data connection is not established the port is closed;

· If the data connection is established the port is opened.

* Not all incoming data will necessarily be recorded into the buffer- see serial-to-Ethernet data routing

** Happens at startup when the DHCP (DH) setting is 1 (enabled)


Data Routing

Data routing between the Ethernet and serial ports of the DS is effected through two routing buffers*, one for each routing direction. Buffers are necessary because Ethernet and serial ports operate in fundamentally different ways and at different speeds. Ethernet port receives and sends the data in packets (groups) while the serial port sends and receives serial data stream where each data byte is independent. Here is how the DS transforms Ethernet packets into the serial stream and back:

Ethernet-to-serial data routing. The DS outputs the contents of arriving Ethernet data packets byte by byte via the serial port. The DS does not check or filter the contents of the data arriving from the network host.

Serial-to-Ethernet data routing. This requires grouping arriving serial data into Ethernet packets of suitable size. Several settings define what data is accepted into the buffer and when and how this data is combined into the Ethernet packets and sent out- see serial-to-Ethernet data routing for details.

Routing buffers are initialized (their data discarded) each time the data connection is closed.

* The size of routing buffers is hardware-dependent and is different for different models and modifications of Tibbo Device Servers. Routing buffer size can be verified using the Status (U) command.


Serial-to-Ethernet Data Routing

The challenge of serial-to-Ethernet data routing is to choose how to group the serial data into the Ethernet packets of reasonable size. Carrying too little data in each packet increases network load while sending packets with too much data slows down the delivery of this data to the network host (because all this data needs to be accumulated in the buffer first). A dedicated group of packet encapsulation settings controls how and when the serial data is turned into the Ethernet packets and sent out to the network host.

When in the data routing mode the serial port of the DS treats all incoming serial data as a sequence of serial data blocks*. In many cases serial traffic to and from the attached serial device is structured in some way (i.e. using some sort of data packets). Since it is only logical to apply the same division to the outbound network packets the DS can be programmed to recognize the beginning and the end of serial data blocks. This does not mean that the DS can only work with structured serial data- absolutely random data stream can simply be thought of as one continuous serial data block.

Serial data blocks begin when the start condition is detected and end when the stop condition is detected. After the start condition is detected the DS begins recording all incoming serial data into the serial-to-Ethernet routing buffer**. Thus, the start condition is said to open a data block. When the stop condition is detected the DS stops recording incoming serial data into the buffer (closes the serial data block) and commits all the data in the serial-to-Ethernet routing buffer. Committed data is the data that the DS will attempt to route to the network host at the earliest possible opportunity. Before the data is committed the DS does not attempt to route it. Therefore, the number of committed bytes in the serial-to-Ethernet buffer may be smaller than the total number of bytes.

The DS ignores all data between the serial data blocks.

Besides the start and stop conditions there is also a break condition. When the break condition is detected the DS commits the data in the buffer but does not close the serial data block. Break conditions provide a way to subdivide large serial data blocks.

Follows is the description of available start, stop, and break conditions:

Start conditions. It is possible to make the DS either open a new serial data block after it receives any character (past the end of the previous data block) or a specific preset character- this is defined by the Start On Any Character (SA) setting. When this setting is 0 (disabled) then two other settings- Use Start Character (F1) and Start Character Code (S1) are used to enable and select specific start character. New serial data block is opened only if this start character is received. All characters between the end of the previous serial data block and the start character are ignored. Start characters received after the serial data block has been opened are treated as normal data characters and do not "reopen" the serial data block.

Stop condition is defined by the stop character which is enabled and selected via two separate settings- Use Stop Character (U1) and Stop Character Code (E1). When the stop character is disabled no stop conditions are generated at all i.e. once opened, the serial data block never ends. Additionally, the Number Of Post Characters (P1) setting defines the number of characters past the stop character that will be counted as belonging to the same data block.

Break conditions are generated depending on two settings: Maximum Intercharacter Delay (MD) and Maximum Data Length (ML). The first one defines the maximum time, in milliseconds, the DS will wait for the arrival of the next serial character. If this time is exceeded the break condition is generated. The second setting defines the number of bytes in the serial-to-Ethernet buffer, which, when exceeded, will generate a break condition.

Note, that all settings described above do not directly define the length of individual Ethernet packets generated by the DS, but only define when the data in the serial-to-Ethernet buffer is committed. Once the data is committed the DS will attempt to deliver this data to the network host as soon as possible but not necessarily in one "chunk".

Factory defaults for the packet generation settings provide a simple and usually acceptable schema: start on any character is enabled, stop-character is disabled, maximum intercharacter delay is set to 1 (10ms), and maximum data length is 255 bytes for UDP transport protocol and 127 bytes for TCP (see Maximum Data Length (ML) setting for explanation). This setup is universal and can handle random data of any size. All data is recorded into the serial-to-Ethernet buffer and committed either when the maximum size is reached or when there is a gap in the serial data arrival.

* The term "serial data blocks" was coined to avoid using the word "packets" that might cause a confusion with the network packets.

** The serial port must be opened for this to happen.


Programming

The DS is programmed using programming commands that can be sent through the serial port of the DS or via the network. For each command the DS issues a reply.

All DS commands have the following format:

C.C.
Optional parameter(s)

· C.C. is the command code. Command code always consists of a single ASCII character. All available commands and their codes are listed in the command table at commands, messages, and replies.

· Optional parameter(s) field contains necessary data if required by the command.

All DS replies have the following format:

R.C.
Optional data

· R.C. is the reply code. Reply codes inform the sender of the command about the result of command execution. All available reply codes are listed in the reply code table at commands, messages, and replies.

· Optional Data field contains necessary data if requested by the command.

Example: here is a sample exchange between a certain device (performing the programming) and the DS. This device can be a network host (programming through the network) or attached serial device (programming through the serial port):

-->DS: GIP
DS-->: A192.168.100.90

In the above example programming device requests the IP-address of the DS. This is done by issuing the Get Setting (G) command with parameter "IP" (for IP-address (IP) setting). The DS replies with the OK (A) reply code indicating that command was processed successfully, followed by the current value of the IP-address (IP) setting, which is 192.168.100.90.

All commands and replies sent to the DS always have the same format, regardless of which interface is used. What is interface-dependent is the encapsulation that is used to mark the beginning and the end of commands (replies) and how these commands and replies are sent. For more information see serial programming and network programming.


Serial Programming

When the DS is powered up its serial port is running in the data routing mode (see serial port and serial communications). To enable DS programming via the serial port the latter must be switched into the serial programming mode.

Status LEDs of the DS are playing a serial programming mode pattern when the serial port of the DS is in the serial programming mode (click here to see all available patterns).

There are two methods of putting the serial port of the DS into the serial programming mode:

By pressing setup button (for DS100R, DS100B, DS202R, EM100-EV, EM120/EM200-EV, EM202-EV; for EM100, EM120, EM200, EM202- by pulling MD line low for at least 100 ms). This forces the DS to enter the serial programming mode with default communication parameters of 38400-8-N-1, half-duplex mode (regardless of the value of corresponding settings). This method always works and cannot be disabled.

By sending an escape sequence to the serial port (at a current baudrate). Once the escape sequence is recognized the DS will enter the serial programming mode at a current baudrate. Other communications parameters will still default to 8-N-1, half-duplex mode. For the escape sequence to work it must be previously enabled through the Soft Entry (SE) setting. Additionally, this setting provides two different escape sequences to choose from.

Notice, that while in the serial programming mode the serial port of the DS uses half-duplex mode of operation (suitable for RS485 communications). In this mode the RTS line provides direction control and the CTS line is unused. When the DS is waiting for the serial command to arrive the RTS line is HI*. When the DS outputs its reply to the serial command the RTS line is LOW* for as long as it takes to output this reply. Such behavior is intended to allow the RTS line to control the direction pin of RS485 interface ICs and RS232-to-RS485 converters.

Just because the DS is using the half-duplex operation in the serial programming mode doesn't mean that programming through RS232 or RS422 is not supported. If the actual hardware port on the DS is RS232 (RS422) then TX and RX lines should be used to send commands and receive replies while the RTS line should simply be ignored (i.e. RTS/CTS flow control must be disabled on the serial device connected to the DS). This was the rationale for choosing the half-duplex mode: it does not interfere with programming through RS232 or RS422 while making the DS also ready for programming via RS485.

All serial commands and replies use the following format:

STX
Command/reply
CR

STX (ASCII code 2) and CR (ASCII code 13) characters provide necessary encapsulation. All data before the STX and after the CR is ignored. Command/reply field contents has been explained in programming.

Example: here is a sample exchange between a serial device and the DS. Special characters are represented as follows: STX- J, CR- Ã.

Serial device-->DS: JGIPÃ
DS-->Serial device: JA192.168.100.40Ã

* HI and LOW states are described with respect to the serial ports of DS100R, DS100B, DS202R, EM100-EV, EM120/EM200-EV, EM202-EV. For EM100, EM120, EM200, EM202 the signaling is exactly opposite.


Network Programming

Unlike serial programming that requires the serial port of the DS to be in the serial programming mode, in which the serial port cannot exchange data with the network host, network programming can continue concurrently with the data routing between the network host and attached serial device. Therefore, network programming is not a "mode" of the Ethernet port.

There are three methods of network programming:

Out-of-band UDP programming is effected by sending programming commands as UDP datagrams to one of the two UDP command ports- either 65535 or 32767*. This programming method is called out-of-band programming since commands are sent outside of (separately from) the data connection. Programming through UDP command ports does not depend on any prior setup, always available and cannot be disabled.

Inband TCP programming is effected by sending programming commands within the TCP data connection itself, commands and replies are mixed right into the routing data stream (hence, the term "inband"). Inband programming is only possible when the current Transport Protocol (TP) [setting/parameter] is 1 (TCP) and Inband (IB) setting is 1 (enabled). Therefore, certain prior setup is needed for this programming method to work.

Command-phase TCP programming is also effected by sending programming commands within the data TCP connection. The difference with the inband programming is that the routing data and commands are not intermixed. Instead, the TCP connection itself is divided into two phases: command-phase in which programming can be performed (hence, the name of this programming method) and the data phase in which the data is routed. Command-phase TCP programming is only possible when the current Transport Protocol (TP) [setting/parameter] is 1 (TCP) and the Data Login (DL) setting is 1 (enabled). Therefore, certain prior setup is needed for this programming method to work.

"Telnet" TCP programming (supported by firmware V3.50 and above) is effected by establishing a TCP connection to the "telnet" port (port 23) of the DS. Such connection can be established regardless of whether current Transport Protocol (TP) [setting/parameter] is 0(UDP) or 1(TCP). Several TCP connections to port 23 can be established at the same time but only one of them will be at "logged in" state at any given time. With this new functionality, port 23 cannot be used as the data port of the DS.

* Existence of two identical command ports is historical. Originally, only one UDP port 65535 was allocated for programming. Later it was discovered that some routers can only forward traffic to port numbers 0-32767. Consequently, another command port at 32767 was introduced.


Out-of-Band (UDP) Programming

With out-of-band UDP programming commands and replies are sent as UDP datagrams, one command or reply per datagram. As explained in network programming the DS accepts commands on two UDP ports- 65535 and 32767. Reply to a particular command is always sent to the IP-address and the port number from which this command was received.

Because each command and reply is sent in a separate UDP datagram no additional encapsulation (i.e. using STX and CR characters as in serial command/replies) is necessary.

Example: here is a sample exchange between the network host and the DS. Each line represents the data in a separate UDP datagram.

Host-->DS: SBR4
DS-->Host: A

One additional feature supported by the DS is the ability to receive and process multiple out-of-band commands. The network host can send up to eight such commands and the DS will receive and process them all one-by-one. This dramatically increases the speed with which the DS programming can be performed over the network.

Since delivery of UDP packets is not guaranteed and packets can also arrive out-of-order the DS supports an optional command ID field. This field can be up to four ASCII characters long and contain any characters in the 0-9 and A-z range. ID field is added in the end of the command itself, '|' character (ASCII code 166) is used as a separator. When the DS receives a command that contains the ID field it issues the reply with the same ID field at the end. By sending commands with changing command ID the network host can match commands and replies.

Example: here is a sample exchange of two commands and replies between the network host and the DS. Each line represents the data in a separate UDP datagram. Replies arrive out of order but owing to the ID field the network host can still match each reply to its respective command.

Host-->DS: SBR4|1923
Host-->DS: SPR0|1924
DS-->Host: A|1924
DS-->Host: A|1923

Once again, the ID field is added at the end of all command data, which includes all command fields (mandatory or optional) described for individual commands. For example, Parameter (P) command can have an optional password field so command ID is added past this field (when it is present):

Host-->DS: PBR4/123pwd|1925

In the above example the password is "123pwd".


Broadcast Out-of-Band (UDP) Programming

Several DS commands are intended to be sent as broadcast UDP datagrams (column 'B' in the command table at commands, messages, and replies details which commands are accepted in broadcast packets). For example, the Echo (X) command, when sent as UDP broadcast, makes all locally attached DS send back a reply. This way it is possible to "auto-discover" all Device Servers on the local network segment and also receive their current status.

All other commands, not marked with a '+' in the 'B' column are supposed to address specific DS. When sent in the broadcast mode they are ignored by all Device Servers except the one that has been pre-selected using the Select In Broadcast Mode (W) command. This method provides a way to program the DS with invalid IP-address (address, that is incompatible with the network) when it is not possible to communicate with this DS in a "normal" way (i.e. by sending UDP datagrams to its IP-address). Once a certain DS has been pre-selected commands such as Set Setting (S) sent in the broadcast mode are accepted and processed by this DS as if they were regular non-broadcast datagrams.


Inband (TCP) Programming

Inband commands and replies are sent within the TCP data connection itself and can be mixed with the data being routed between the network host and attached serial device. As explained in network programming this method only works when the current Transport Protocol (TP) [setting/parameter] is 1 (TCP) and the Inband (IB) setting is 1 (enabled).

Since inband commands and replies are intermixed with the data a special escape character called Inband Escape Character (IEC) is needed to mark the beginning of the command (reply) in the data stream. IEC code is 255. When the Inband (IB) setting is 1 (enabled) and the DS receives a character with code 255 followed by any character other than 255, the DS considers this to be a beginning of the inband command. If the network host wants to send a data character with code 255 it needs to send two consecutive characters with code 255. This will be interpreted by the DS as a single data character with code 255. Therefore, it is the responsibility of the network host to parse through the data it is sending to the DS and "double" all data characters with code 255.

When sending a reply back to the network host, the DS will also prefix this reply with the IEC. When sending a data byte with code 255 the DS will automatically double this character. It is the responsibility of the network host to parse through the data it receives from the DS and replace all double characters with code 255 with a single one.

All inband commands and replies use the following format:

IEC
STX
Command/reply
CR

IEC character followed by STX (ASCII code 2) mark the beginning of command (reply). CR (ASCII code 13) marks the end of command (reply). All characters before the IEC/STX and after the CR are considered to be a "regular" routing data. Command/reply field contents has been explained in programming.

Example: here is a sample exchange between the network host and the DS. Shown below is the data passed within a data TCP connection. Special characters are represented as follows: IEC- u, STX- J, CR- Ã.

Host-->DS: ABCuuDEFuJGIPÃGHIK
DS-->Host: LMNuJA192.168.100.40ÃXYZ

In the above exchange the network host is sending the following data string: "ABCuDEFGHIK". There is a single character with code 255 (u) but the DS has to double this character. Command inserted into this data stream is "GIP" (Get Setting (G) command, setting to be read is IP-address (IP)). Command is preceded with IEC (u)followed by STX (J) and ended by CR (Ã).

The DS sends the following data string to the network host: "LMNXYZ". At some point, when the reply to the command is ready, the DS inserts this reply into the data stream. Reply contains current IP-address of the DS.

Unlike out-of-band UDP programming, inband programming does not support multiple commands. It is not possible to send several commands and receive several replies back. The network host should only send the next command after having received a reply to the previous command.

Very important! Since inband commands are transmitted together with data execution of such commands by the DS can be delayed indefinitely if the data cannot be transmitted by (sent out of) the serial port of the DS. This will happen if current Flow Control (FC) [setting/parameter] is at 1 (enabled) and the CTS input of the DS is held in the "do not transmit" state. In this case the DS will not be sending out data and the inband command "embedded" within this data stream won't be processed (until all data before this command is finally transmitted).


Command-Phase (TCP) Programming

Another method of programming is called command-phase programming. As explained in network programming it only works when the current Transport Protocol (TP) [setting/parameter] is 1 (TCP) and the Data Login (DL) setting is 1 (enabled). In this mode, the TCP data connection between the network host and the DS is split into two phases: command phase and data phase.

When the Data Login (DL) setting is 1 (enabled) and the data TCP connection is established the DS enters the command phase. In this phase the DS interprets all data sent by the network host as programming commands. Because no routing data can be transmitted in this phase an escape character (like the one used in the inband programming) is not needed.

All command-phase commands and replies use the following format:

STX
Command/reply
CR

Thus, command-phase commands and replies have the same format as those used in serial programming. STX (ASCII code 2) and CR (ASCII code 13) characters provide necessary encapsulation. All data before the STX and after the CR is ignored. Command/reply field contents has been explained in programming.

To switch the data connection from the command phase into the data phase the network host has to issue the Logout (O) command. After this command is sent* and accepted the DS switches into the data phase. From this moment on and until the TCP connection is terminated the network host can exchange the data with the attached serial device in the normal way.

Logout (O) command is only accepted after the network host logs in using Login (L) command, and this requires a valid password (if set in the Password (PW) setting). Therefore, setting Data Login (DL) to 1 (enabled) also enables network host authentication for data exchange with the attached serial device(hence, the name of this setting).

Example: here is a sample exchange that switches the DS into the data phase. Shown below is the data passed within a data TCP connection. Special characters are represented as follows: STX- J, CR- Ã. Login password is "123pwd"

---TCP connection established, command phase---
Host-->DS: JL123pwdÃ 'network host logs in
DS-->Host: JAÃ 'OK
Host-->DS: JOÃ 'exit into the data phase (no reply)
---data phase from this point and until the TCP connection is closed---

Command-phase programming should not be confused with inband programming. The first one is enabled by the Data Login (DL) setting, the second one- by the Inband (IB) setting. Both can be enabled at the same time! After the DS exits into the data phase inband commands can still be sent (this time, with proper escape character), provided that inband programming is enabled.

Command-phase programming is disabled automatically when current Link Service Login (TL) [setting/parameter] is 0 (disabled).

*Command-phase inband programming is the only programming method in which no reply is returned upon successful completion of the Logout (O) command. The DS simply switches into the data phase.


Telnet TCP Programming [V3.50 and Above]

"Telnet" TCP programming is the new programming method that is supported by firmware V3.50 or higher. Telnet programming is called so because it is effected through a TCP connection to port 23 of the DS (This is a standard telnet port). Such connection can be established regardless of whether current Transport Protocol (TP) [setting/parameter] is 0(UDP) or 1(TCP).

Several TCP connections to port 23 can be established at the same time but only one of them will be at "logged in" state at any given time i.e. have a programming session in progress (see authentication and programming priorities).

Because port 23 is now allocated for telnet programming which cannot be disabled you cannot set the Port Number (PN) to 23 when using TCP/IP transport protocol. This is because the DS will interpret any TCP connection to port 23 as a programming, not data connection. Older firmware (below V3.50) that did not support telnet programming does not impose this limitation for port 23 so the port can be used for data connections.

All telnet commands and replies use the following format:

STX
Command/reply
CR

Thus, telnet commands and replies have the same format as those used in serial programming. STX (ASCII code 2) and CR (ASCII code 13) characters provide necessary encapsulation. All data before the STX and after the CR is ignored. Command/reply field contents has been explained in programming.


Authentication

Certain commands, when sent through the network, require authentication. To authenticate itself the network host must provide a password, that matches the one defined by the Password (PW) setting.

From the authentication standpoint, all commands can be divided into three groups:

Commands that do not require authentication. These commands can be sent at any time and by any network host.

Commands with immediate authentication. In these commands the password is supplied in the command body itself and authenticates this particular command. For some of these commands authentication is optional.

Commands that require prior login. These commands are only accepted after the network host has logged in using the Login (L) command. Login is performed once and is said to open a programming session.

The DS memorizes the source IP-address from which the Login (L) command is sent as well as the mode in which it is sent: out-of-band, inband, etc. Programming session must continue from the same IP-address and using the same way of command delivery. So, if the session was opened using out-of-band Login (L) command and the network host sends inband Set Setting (S) command (this command requires prior login) then this command is not considered to be a part of the opened programming session and is rejected.

Programming sessions are ended either by switching the DS off or using Logout (O) or Reboot (E) commands. There is also a two-minute programming session timeout: if no command (that requires prior login) is issued for two minutes the session is ended automatically. Inband, command-phase, and telnet-mode programming sessions are also closed when their TCP connection is closed.

The DS makes sure that only one programming session is opened at any given time- see programming priorities for details.

Command table at commands, messages, and replies details which commands require authentication (see 'L' and 'I' columns).

Sending Login (L) command to open a programming session is required even when the DS is running in the error mode but sending login password in this case is not necessary.


Programming Priorities

The DS has five programming methods: serial, out-of-band UDP, inband TCP, command-phase TCP, and telnet programming. For the subject discussed below inband and command-phase programming are the same since they both take place within a data TCP connection. Therefore, four programming methods will be discussed: serial, out-of-band, inband/command-phase, and telnet.

Since all four programming methods can be used at the same time the DS maintains priority mechanism to avoid conflicts that might arise if attached serial device and the network host(s) attempted to program the DS at the same time.

Serial programming has the highest priority of all- any command sent to the DS via the serial interface (in the serial programming mode) is always accepted and processed*, regardless of whether any form of network programming is (has been) taking place at the time.

As explained in authentication, all network commands can be divided into those that do not require any authentication, commands that require immediate authentication, and commands that require prior login using Login (L) command (commands that need a programming session to be opened).

Network commands that do not require authentication can be sent at any time, using any method. For example, network Echo (X) command will be accepted and processed even when the DS is in the serial programming mode.

Network Commands that require immediate authentication can be sent at any time and using any method, as long as the DS is not in the serial programming mode. When the DS is in the serial programming mode these commands are rejected (R reply code).

For network commands that require prior login the following hierarchy of priorities is applied:

· Serial programming (highest priority)

· Out-of-band programming session

· Telnet programming session

· Inband or command-phase programming session (lowest priority)

The above should be understood as follows:

· Programming session using lower-priority programming method cannot start while higher-priority programming session is in progress. For example, programming session using out-of-band commands cannot start while the DS is in the serial programming mode. Programming session using TCP connection to telnet port cannot start while out-of-band session is in progress.

· Higher-priority programming can start at any time, even when lower-priority programming session was already in progress. In this case lower-priority programming session is aborted immediately. Thus, if out-of-band programming session was already opened and the DS enters a serial programming mode then out-of-band programming session is aborted.

· Programming session that is already opened cannot be interrupted by the same priority level programming session. The DS allows several simultaneous TCP connections to telnet port 23. Only one of these connections, however, can carry a programming session at any given time. Attempt to login through another TCP connection to port 23 will be rejected for as long as the earlier session remains opened.

* As long as this command is allowed to be sent through the serial port at all. Command table at commands, messages, and replies details which commands can be issued through the serial port (see 'S' column).


Error Mode

The value of each DS setting (stored in the EEPROM) is protected by its own checksum. Every time the DS stores new setting value into the EEPROM it recalculates the checksum and saves it into the EEPROM along with the new setting data. Every time the DS reads out the value of a certain setting it verifies this setting's checksum. If the checksum error is detected (for any setting) the DS enters an error mode.

Status LEDs of the DS are playing an error mode pattern when the DS is in the error mode (unless the serial port of the DS is in the serial programming mode. Click here to see all available patterns).

Once entered, the error mode cannot be exited other then by rebooting the DS- either by power-cycling it or executing the Reboot (E) command.

DS operation in the error mode is characterized by the following:

· Status LEDs of the DS are displaying an error mode pattern (unless the DS is in the serial programming mode);

· Error status (e flag) returned by the Echo (X) command is set to 'E';

· For every invalid setting the DS takes the default value* of this setting (which is fixed and does not depend on the EEPROM data) and assumes this default value as a run-time parameter. For example, if the DHCP (DH) setting is found to be invalid the DS will boot up with DHCP off because the default value of the DHCP (DH) setting is 0 (disabled);

· For two setting- Routing Mode (RM) setting and Password (PW) setting- the DS uses their default values in any case, even if these settings are valid. This means that:

· The DS will be in the slave routing mode (default value of the Routing Mode (RM) setting);

· Password authentication will be disabled (default value of the Password (PW) setting is <NULL>). Consequently:

· No password is to be supplied in the Login (L) command, although this command itself must still be executed before sending commands that require prior authentication (such as the Initialize (I) command);

· Login password doesn't need to be supplied in commands that require immediate authentication, such as on-the-fly (network side) Parameter (P) command, even if the On-the-fly Password (OP) setting is 1 (enabled).

The above also applies to two most important settings that define DS visibility on the network- the MAC-address (FE) setting and the IP-address (IP) setting. When invalid, actual values of these settings are substituted with default ones, which are 0.1.2.3.4.5 and 192.168.100.40 respectively. This means that the DS will still be accessible through the network, but at default MAC and IP.

It is best to reinitialize the DS as soon as it is found to be in the error mode. This can be done through the Initialize (I) command or by using quick initialization.

* Default values can be changed through custom profile


Quick Initialization

Quick initialization is a way to completely reinitialize the DS without using any commands. This feature is handy when the DS is running in the error mode and needs to be repaired.

Quick initialization provides the same result as the serial Initialize (I) command. See individual setting description for the information on how each settings will behave during the initialization (some settings will be initialized unconditionally and some- only when found to be invalid).

To quick-initialize the DS:

· Make sure the DS is powered;

· Press and release the Setup button* to enter the serial programming mode. Status LEDs will play the serial programming mode pattern;

· Wait for at least three seconds;

· Press and hold the Setup button for at least three seconds- both status LEDs will be switched off and this will indicate that the initialization has been started;

· Initialization takes about one second to complete. Initialization result will be shown by the status LEDs- green LED will be switched on for about 2 seconds indicating successful initialization. (If the red LED is switched on this means that the DS is malfunctioning).

· Switch the DS off and back on again to exit the error mode if necessary.

* For EM100, EM120, EM200, EM202 pull the MD line low


Custom Profiles

Default setting values (i.e. values that settings assume after they are initialized through the Initialize (I) command or by using quick initialization) can be changed by adding a custom profile to the firmware file loaded into the DS.

Request more information on the subject via email.


Reference

Reference contains all necessary information on:

· DS commands, messages and replies. Commands are used to control the DS and can be issued through the network or through the serial port. The DS replies to the commands- reply codes indicate the result of command execution. Messages are different in that they are not replied to. For more information see programming.

· DS settings. Settings are permanent functioning parameters that are stored in the non-volatile memory (EEPROM) of the DS. Once programmed, they remain intact even when the DS is powered off. Many (but not all) settings require the DS to be rebooted for the new setting value to take effect.

· DS parameters and instructions. Parameters are temporary overrides for settings. Parameters are not saved into the EEPROM and take immediate effect (no rebooting required). Instructions are used to make the DS perform a certain action.


Commands, messages, and replies

This section contains a reference for all DS commands and messages.

Commands are used to control the DS and can be issued through the network or through the serial port. The DS replies to the commands- reply codes indicate the result of command execution. Messages are different in that they are not replied to. For more information see programming.

Command and message description format can be found here.

Table below lists all available commands and messages:

C.C.
N
B
L
I
S
Description
L
+

Login command
O
+

+

+
Logout command
E
+

+

+
Reboot command
I
+

+

+
Initialize command
S
+

+

+
Set Setting command
G
+

+

+
Get Setting command
P
+

(+)
+
Parameter command
X
+
+

+
Echo command
U
+
+

+
Status command
B
+

Buzz command
R
+

Reset Overflow Flags command
A
+
+

+

Assign IP-address command
W
+
+

Select In Broadcast Mode command
V
+
+

+
Get Firmware Version command
N
+

+

Jump To NetLoader command [R3.0]
N
+

+

Set Programming Request Flag [R3.5]
Q
+

+

Reset Upload Process [R3.5]
D
+

+

Upload Data Block [R3.5]
J
+

Notification message

Notes:

· C.C.- command codes;

· N- '+' in this column indicates that command can be issued through the network;

· B- '+' in this column indicates that command can be issued in the broadcast mode (when sent through the network) without the need to pre-select a particular DS using Select In Broadcast Mode (W) command first;

· L- '+' in this column indicates that command, when issued through the network, requires prior login using the Login (L) command;

· I- '+' in this column indicates that command, when issued through the network, requires immediate authentication. '(+)' indicates that immediate authentication is optional;

· S- '+' in this column indicates that command can be issued through the serial port.

Listed below are all available reply codes:

R.C.
Description
A
OK (command completed successfully)
C
Error (incorrect command was issued)
R
Rejected (command was rejected by the DS)
D
Denied (access was denied by the DS)
F
Failed (command execution failed)
S
Bad Sequence (D command only)
O
Out-of-range (D command only)

Notes:

· R.C.- reply code.


Command & message description format

All commands in this section are described using the following format:

Function: Command function in brief

Can be issued through: Describes whether command can be issued through the network and/or serial port, or both; also lists additional conditions- whether or not prior login is required for network command, etc.

Command format: Shows command syntax

Possible replies: Lists all possible reply status codes that can be returned in response to this command

First introduced: Describes whether this command has been available right from the "baseline" firmware version of 3.14/3.51 or was introduced in a later firmware release

See also: Additional relevant links

Details

Additional information about the command.


Login (L) command

Description (see command description format info here)

Function: Authenticates the network host and opens the network programming session

Can be issued through: Network (broadcasts ignored*)

Command format: Lpp...p, where pp...p is the login password, 0-8 characters long

Possible replies: A, R, D

First introduced: Earlier than "baseline" V3.14/V3.51

See also: Authentication, Programming priorities, Error mode

Details

Login command is used to authenticate the network host, which is a necessary step to perform before attempting to execute certain commands over the network (such as Set Setting (S). Check the "L" column of the command table at commands, messages, and replies to find out which commands require prior authentication.

Login password to supply in the Login command body is defined by the Password (PW) setting. Note, that to execute commands that require prior login you need to use the Login command even when the password is not set (i.e. it is <NULL>).

OK (A) reply code is returned if login is accepted by the DS. Rejected (R) reply code is returned if the DS is in the serial programming mode or a higher-priority programming session is already in progress (see programming priorities for details). Denied (D) reply code is returned if incorrect password is supplied.

Login command is said to open a programming session. For more information on programming sessions see authentication.

The DS memorizes the IP-address of the network host from which the Login command is sent. If subsequent commands (that require login) are sent from a different IP-address then these commands are replied to with the Denied (D) reply code.

Login password is not verified when the DS is running in the error mode. Login command should still be used as usual but it is not necessary to supply any password, leaving the pp...p field blank in this situation is OK.

* Without prior selection using Select In Broadcast Mode (W) command.


Logout (O) command

Description (see command description format info here)

Function: Network command: logs out the network host (ends the programming session); serial command: ends the serial programming mode

Can be issued through: Network (broadcasts ignored*, login required); serial port

Command format: O

Possible replies: A, D

First introduced: Earlier than "baseline" V3.14/V3.51

See also: Authentication, Out-of-band (UDP) commands, Inband (TCP) commands, Command-phase (TCP) commands, Serial programming

Details

Logout command performs a different action depending on whether it was issued through the network or through the serial port.

When the Logout command is issued through the network it closes the programming session that was opened using the Login (L) command. Denied (D) reply code is returned if the programming session is not in progress or if it doesn't belong to the sender of the Logout command- the DS remembers the IP-address of the network host that opens the programming session and requires that all subsequent commands (that require prior login) are sent from the same IP.

OK (A) status code is returned if command is accepted, but only if this command was sent as an out-of-band (UDP) or inband (TCP) command. No reply is sent in case of command-phase (TCP) command, the DS simply switches into the data phase (Denied (D) reply code is still returned).

When the Logout command is issued through the serial port it makes the DS exit the serial programming mode (and into the data routing mode). Since no authentication is required for DS programming through the serial port the only possible reply code in this case is OK (A).

Executing Logout command does not make the DS reboot. If it is necessary to reboot the DS (i.e. to make it reread updated setting values) the Reboot (E) command should be used instead.

* Without prior selection using Select In Broadcast Mode (W) command.


Reboot (E) command

Description (see command description format info here)

Function: Causes the DS to reboot

Can be issued through: Network (broadcasts ignored*, login required); serial port

Command format: E

Possible replies: D

First introduced: Earlier than "baseline" V3.14/V3.51

See also: Authentication

Details

Reboot command causes the DS to reset (restart).

When issued through the network, this command requires prior login using the Login (L) command (programming session must be opened). Denied (D) reply code is returned if the programming session is not in progress or if it doesn't belong to the sender of the Reboot command- the DS remembers the IP-address of the network host that opens the programming session and requires that all subsequent commands (that require prior login) are sent from the same IP.

No reply code is returned if command is accepted- the DS simply reboots. This makes the DS "lose" any data connection that might be in progress so the network host must discard such a connection if it was established before.

Reboot command can be used to exit the serial programming mode or end the network programming session. This may be necessary, for instance, to make the DS reread new setting values that were programmed prior to the reboot. If it is necessary to end the programming without rebooting the DS the Logout (O) command should be used instead.

* Without prior selection using Select In Broadcast Mode (W) command.


Initialize (I) command

Description (see command description format info here)

Function: Initializes the settings of the DS

Can be issued through: Network (broadcasts ignored*, login required); serial port

Command format: I

Possible replies: A, D, F

First introduced: Earlier than "baseline" V3.14/V3.51

See also: Authentication

Details

Initialize command restores the settings of the DS to their default factory values**. Some settings are initialized each time this command is executed. Other settings are initialized or left intact depending on the interface (network or serial) through which the Initialize command was issued and also on whether or not a particular setting contained a valid or invalid value.

All settings can be divided into three groups:

· Settings that are initialized unconditionally, no matter whether the Initialize command is issued through the network or through the serial port. For example, the Routing Mode (RM) setting is always reset to 0 (server) after the initialization.

· Settings that are initialized unconditionally for the serial Initialize command, but are only initialized in case they contained an invalid value (or found to be corrupted)*** for the network Initialize command. One of such settings is the IP-address (IP). Since resetting the IP-address might possibly make the DS inaccessible through the network the risk is minimized by leaving the setting intact unless it is "bad".

· Settings that are only initialized when they contained an invalid value, no matter whether command was issued through the network or through the serial port. For example, the MAC-address (FE) setting is never altered unless found to be invalid. This is because the MAC-address is preset during the production and should not be altered unless absolutely necessary.

When issued through the network, the Initialize command requires prior login using the Login (L) command (programming session must be opened). Denied (D) reply code is returned if the programming session is not in progress or if it doesn't belong to the sender of the Initialize command- the DS remembers the IP-address of the network host that opens the programming session and requires that all subsequent commands (that require prior login) are sent from the same IP.

Failed (F) reply code is returned if the DS fails to reset one or more settings. This usually indicates a hardware malfunction (EEPROM failure).

* Without prior selection using Select In Broadcast Mode (W) command.

** Or the values defined by the Custom profile created by the User.

*** Each setting's data is protected by an individual checksum.


Set Setting (S) command

Description (see command description format info here)

Function: Sets (writes) new setting value

Can be issued through: Network (broadcasts ignored*, login required); serial port

Command format: Sssvv...v, where ss: setting mnemonic, vv...v: new setting value

Possible replies: A, D, C, F

First introduced: Earlier than "baseline" V3.14/V3.51

See also: Get Setting (G) command

Details

Set Setting command assigns new values to the selected setting. ss is the setting mnemonic, i.e. "IP" for the IP-address (IP) setting.

Example: to set IP-address to 192.168.100.40 issue the following command**:

-->DS: SIP192.168.100.40
DS-->: A

When issued through the network, this command requires prior login using the Login (L) command (programming session must be opened). Denied (D) reply code is returned if the programming session is not in progress or if it doesn't belong to the sender of the Set Setting command- the DS remembers the IP-address of the network host that opens the programming session and requires that all subsequent commands (that require prior login) are sent from the same IP.

Error (C) reply code is returned if the setting mnemonic and/or supplied setting value is/are invalid. Failed (F) reply code is returned if the DS fails to write new setting value. This usually indicates a hardware malfunction (EEPROM failure).

* Without prior selection using Select In Broadcast Mode (W) command.

** Encapsulation characters such as IEC, STX, CR are not shown.


Get Setting (G) command

Description (see command description format info here)

Function: Gets (reads) new setting value

Can be issued through: Network (broadcasts ignored*, login required); serial port

Command format: Sss, where ss is the setting name

Possible replies: Avv...v, D, C, F, where vv...v is current setting value

First introduced: Earlier than "baseline" V3.14/V3.51

See also: ---

Details

Get Setting command reads out current value of the selected setting. ss is the setting mnemonic, i.e. "IP" for the IP-address (IP) setting.

Example: to read current IP-address issue the following command**:

-->DS: GIP
DS-->: A192.168.100.40

When issued through the network, this command requires prior login using the Login (L) command (programming session must be opened). Denied (D) reply code is returned if the programming session is not in progress or if it doesn't belong to the sender of the Get Setting command- the DS remembers the IP-address of the network host that opens the programming session and requires that all subsequent commands (that require prior login) are sent from the same IP.

Error (C) reply code is returned if the setting mnemonic is invalid. Failed (F) reply code is returned if the DS fails to read out the setting value, setting value is not valid, or if the data is found to be corrupted***. This may indicate a hardware malfunction (EEPROM failure).

Invalid setting can be repaired using the Set Setting (S) command or (recommended) using the Initialize (I) command or quick initialization (this will initialize all other invalid settings).

* Without prior selection using Select In Broadcast Mode (W) command.

** Encapsulation characters such as IEC, STX, CR are not shown.

*** Each setting's data is protected by an individual checksum.


Parameter (P) command

Description (see command description format info here)

Function: Sends parameter or instruction to the DS

Can be issued through: Network (broadcasts ignored*, login not required, immediate authentication for this command can be enabled); serial port

Command format: P<relevant data> (see description of individual parameters and instructions for details)

Possible replies: A, C, D, R

First introduced: Earlier than "baseline" V3.14/V3.51

See also: Parameters and instructions, Authentication

Details

Command code 'P' (Parameter) serves as a "common entry point" for sending a variety of parameters and instructions.

Network Parameter command can be made to require immediate authentication. To enable this feature:

· On-the-Fly Password (OP) setting must be programmed to 1 (enabled);

· Password (PW) setting must contain a password (i.e. a string of non-zero length).

When two above conditions are met each network Parameter command sent to the DS must contain a password, which is to be added at the end of the command after a slash character.

Example: below is the parameter command that changes the baudrate. The password is "123pwd"**:

-->DS: PBR4/123pwd
DS-->: A

If no password or incorrect password is supplied when the password is expected the Denied (D) reply code is returned.

* Without prior selection using Select In Broadcast Mode (W) command.

** Encapsulation characters such as IEC, STX, CR, and the command ID field are not shown.


Echo (X) command

Description (see command description format info here)

Function: Returns DS status information

Can be issued through: Network (broadcasts OK, login not required); serial port

Command format: X[v], where v is an optional "command version" parameter (decimal number up to 255, when omitted defaults to 1). Command version is only recognized in firmware V3.54+

Possible replies (network): Annn.nnn.nnn.nnn.nnn.nnn/ppppp/mseic[p]/ES/oo...o/dd...d, where
nnn.nnn.nnn.nnn.nnn.nnn- MAC-address of the DS;
ppppp- data port number of the DS;
m- fixed to 'N' (means that the application firmware, not the NetLoader is running);
s- programming mode: '*' (none), 'S' (serial), 'U' (out-of-band UDP), 'T' (inband TCP or command-phase TCP);
e- error status: '*' (no errors detected), 'E' (running in the error mode); 'N' (Ethernet port failure)
i- IP-address status: '*' (not obtained yet), 'I' (obtained via DHCP), 'M' (fixed, set manually);
c- data connection status: '*' (closed), 'A' (sending ARP OR [V3.54+] establishing PPP link), 'O' (being established), 'C' (TCP connection established or being closed), 'U' (UDP connection established), 'R' (reset by remote host), 'F' (Link Server login failed), 'L' (Link Server login in progress);
[V3.54+] p- only returned when command version parameter of >1 is supplied: '*' (PPPoE disabled), 'D' (PPPoE login denied), 'N' (PPPoE link not opened), 'B' (PPPoE link is being established), 'P' (PPPoE link established);
E- Ethernet-to-serial buffer overflow: '*' (no overflow), 'E' (overflow detected);
S- serial-to-Ethernet buffer overflow: '*' (no overflow), 'S' (overflow detected);
oo...o- owner name;
dd...d- device name.

Possible replies (serial): Amseic[p]/ES (see field description above)

First introduced: Earlier than "baseline" V3.14/V3.51, functionality extended in V3.54

See also: Network programming, Serial programming, PPPoE

Details

The primary use of the network Echo command is to auto-discover Device Servers on the network: when the network host sends this command in the broadcast mode, it collects the replies from all locally attached Device Servers (hence, the name of the command). Reply from each DS contains all necessary information (MAC-address, etc.) that is needed to continue communicating with each specific DS in a non-broadcast mode.

Information returned by the Echo command contains the following data:

· MAC-address is the most important field that can be used to uniquely identify each DS*! Besides, the MAC-address is used (and, therefore, must be known in advance) as a reference to the particular DS in such commands as Assign IP-address (A) and Select in Broadcast Mode (W).

· Data port number field is read directly from the Port Number (PN) setting of the DS.

· Follow are several one-character flag fields that tell the network host about the present status of the DS:

· m flag always returns 'N'. This is meant to indicate that the DS is running (this) application firmware. In contrast, when the NetLoader is running this flag shows 'L' (NetLoader also supports Echo command);

· s flag shows whether or not any form of programming is in progress. 'S' is returned when the serial port of the DS is in the serial programming mode. If the network programming session is in progress the 'U' is returned for out-of-band (UDP) programming session and 'T' is returned for inband (TCP) or command-phase (TCP) programming sessions;

· e flag indicates whether or not the DS is running in the error mode. Additionally, for serial Echo command this flag can be set to 'N' indicating hardware failure of the Ethernet port;

· i flag reflects current IP-address status. It is useful when the DHCP is enabled (see the DHCP (DH) setting). The flag is set to '*' while the DS is trying to obtain the IP-address from the DHCP server. When this is done the flag is set to 'I'. When the DHCP is off this flag returns 'M' (for "manual");

· c flag reflects the connection state;

· [V3.54+] p flag reflects PPPoE link state. This flag is only returned when optional command version parameter is supplied and is >1;

· E and S flags display routing buffer overflows. Both flags are reset automatically when the data connection is closed or aborted. The flags can also be reset manually through the Reset Overflow Flags (R) command.

· oo...o and dd...d fields return the data from the Owner Name (ON) and Device Name (DN) settings. Using meaningful names simplifies identification of a particular DS.

Optional command version parameter has been introduced in firmware V3.54. Command version is a decimal number (up to 255). When command version is omitted it is assumed to be 1. Earlier firmware releases do not support this parameter and will simply ignore it (result will be the same as having command version set to 1). When command version of 2 or higher is supplied Echo command returns an additional p flag in the reply. This flag reflects the state of PPPoE link.

Example #1: supposing X command returns the following reply**:

-->DS: X
DS-->: A0.150.30.213.55.74/1001/NS*IC/*S/BigCorp/Device1

This means that the MAC-address of this DS is 0.150.30.213.55.74, data connections are accepted on port 1001, the DS is operating normally, has serial programming in progress. The IP-address of this DS was successfully obtained via the DHCP, TCP connection is currently established, serial-to-Ethernet buffer overrun has been detected (within current data connection). The owner name and device name of this DS is "BigCorp" and "Device1" respectively.

Example #2: here is a command with version parameter**:

-->DS: X2
DS-->: A0.150.30.213.55.74/1001/N**MUP/**/BigCorp/Device1

In this example the DS is operating normally, is not being programmed, has a fixes IP-address (DHCP is off), has UDP "connection" in progress and PPPoE link established.

It is noteworthy that reply to Echo command should not be parsed basing on the optional command version parameter. Remember that older firmware ignores this parameter so there is no guarantee that extended information (p flag) will be returned by the DS. Of course, it is always possible to process the reply basing on the firmware version of the DS but recommended solution is to simply check the presence of additional ASCII character before the forward slash that separates flags mseic[p] from flags E and S.

Some comment should also be made about flag c. Status 'A' of this flag now means that either ARP packets are being sent in order to discover the destination network host OR PPPoE link establishment is currently in progress. The usage of a single status to designate these two different processes is possible because they are never needed at the same time. When PPPoE is enabled (PPPoE Mode (PP) setting is either 1 or 2) and the destination host is on a different network segment the DS doesn't need an ARP but needs to establish a PPPoE link (for more information see PPPoE). In all other cases the DS doesn't need PPPoE but has to send ARP.

When issued through the serial port, the Echo command returns the same information minus the MAC-address, data port number, owner name, and device name fields. This is because these fields are only needed to discover and identify the DS on the network and are not required on the serial side. The primary application of the serial Echo command is for the attached serial device to inquire current data connection and routing status of the DS. This may be used by the serial device, in conjunction with the modem commands (serial-side parameters and instructions) to control and monitor data connection establishment and termination by the DS.

There is also a Status (U) command that returns additional information about the status of the DS.

* This is because each DS, like any other Ethernet device, has a unique MAC-address preset during the production.

** Encapsulation characters such as IEC, STX, CR, and the command ID field are not shown


Status (U) command

Description (see command description format info here)

Function: Returns additional DS status information

Can be issued through: Network (broadcasts OK, login not required); serial port

Command format: U[v], where v is an optional "command version" parameter (decimal number up to 255, when omitted defaults to 1). Command version is only recognized in firmware V3.54+

Possible replies (network): Addd.ddd.ddd.ddd/ppppp/eee/ttt/ccc/sss/fff/r/sdfpb/RCTS[/iii.iii.iii.iii], where
ddd.ddd.ddd.ddd- IP-address of the network host with which the data connection is (was/ to be) established;
ppppp- data port number on the network host with which the data connection is (was/ to be) established;
eee- total number of characters in the Ethernet-to-serial buffer;
ttt- capacity of the Ethernet-to-serial buffer;
ccc- number of committed characters in the serial-to-Ethernet buffer;
sss- total number of characters in the serial-to-Ethernet buffer;
fff- capacity of the serial-to-Ethernet buffer;
r- current baudrate (same numbering is used as in the Baudrate (BR) setting);
s- serial port state: '*' (closed), 'O' (opened);
d- serial port mode: 'F' (full-duplex), 'H' (half-duplex);
f- flow control: '*' (disabled), 'R' (RTS/CTS flow control);
p- parity: '*' (none), 'E' (even), 'O' (odd), 'M' (mark), 'S' (space);
b- bits per byte: '7' (7 bits), '8' (8 bits);
R- current state of the RTS (output) line: '*' (LOW*), 'R' (HIGH*);
C- current state of the CTS (input) line: '*' (LOW*), 'C' (HIGH*);
T- current state of the DTR (output) line: '*' (LOW*), 'T' (HIGH*);
S- current state of the DSR (input) line: '*' (LOW*), 'S' (HIGH*);
[V3.54+] iii.iii.iii.iii- only returned when command version parameter of >1 is supplied- IP-address of the DS on the PPPoE link.

Possible replies (serial): Addd.ddd.ddd.ddd/ppppp[/iii.iii.iii.iii] (see field description above)

First introduced: Earlier than "baseline" V3.14/V3.51, functionality extended in V3.54

See also: Network programming, Serial programming, Data routing, Serial-to-Ethernet data routing, PPPoE

Details

Status command returns additional information about the status of the DS. In conjunction with the Echo (X) command it can be used to obtain extensive information about the state of the DS.

The following data is returned:

· ddd.ddd.ddd.ddd and ppppp fields. IP-address and port number of the network host with which the data connection is (was/ to be) established. IP-address in this field shows the following:

· After the power-up the fields returns the IP-address and port defined by the Destination IP-address (DI) setting and Destination Port Number (DP) setting;

· If these default values are overridden by the Destination IP-address (DI) parameter, Destination Port Number (DP) parameter, or Establish Connection (CE) instruction, then the fields show new overriding values;

· While the data connection is established and after it is closed (aborted) the fields show the IP-address and port of the network host with which this connection is (was) established. Notice that this may be different from the above- if the DS has accepted an incoming connection.

· eee and ttt fields show the total number of data bytes in the Ethernet-to-serial buffer and the capacity of this buffer. Capacity information is included because the buffer size is different for different models of the DS.

· ccc, sss, and fff fields show the number of committed bytes in the serial-to-Ethernet buffer, total number of bytes in this buffer, and the buffer capacity. Again, buffer capacity is included because it differs depending on the DS model.

· r, d, f, p, and b flags show current serial port setup. This information is useful because on-the-fly commands (network-side parameters and instructions) can change serial port communications parameters at any time.

· d flag reflects whether the serial port is in the half-duplex or full-duplex mode. This data may be of interest when the Serial Interface (SI) setting is 2 (auto) and you need to verify what mode the DS has assumed at startup.

· R, C, T, and S flags reflect current status of the RTS, CTS, DTR, and DSR lines of the serial port. This information may be useful in debugging communications problems between the DS and the attached serial device.

· [V3.54+] iii.iii.iii.iii field- only returned when command version parameter of >1 is supplied- IP-address of the DS on the PPPoE link. As explained in PPPoE the DS negotiates a separate and different IP-address for PPPoE communications.

Optional command version parameter has been introduced in firmware V3.54. Command version is a decimal number (up to 255). When command version is omitted it is assumed to be 1. Earlier firmware releases do not support this parameter and will simply ignore it (result will be the same as having command version set to 1). When command version of 2 or higher is supplied Status command returns an additional iii.iii.iii.iii field.

Example #1: supposing U command returns the following reply**:

-->DS: U
DS-->: A192.168.100.90/37150/0/8192/0/3/8192/5/OFR*8/R*TS

This means that the data connection is (was/ to be) established with the network host at 192.168.100.90, port number 37150. No data is currently in the Ethernet-to-serial buffer, buffer capacity is 8192 bytes. No committed data is in the serial-to-Ethernet buffer, there are 3 bytes of (uncommitted) data there, and the total capacity is 8192 bytes. The baudrate is 38400, serial port is opened, uses full-duplex mode. RTS/CTS flow control is enabled, parity is set to none, data is 8 bits/byte. RTS, DTR, and DSR lines are in the HIGH* state, CTS line is LOW*.

Example #2: here is a command with version parameter**:

-->DS: U2
DS-->: A192.168.100.90/37150/0/8192/0/3/8192/5/OFR*8/R*TS/161.1.1.110

In this reply an additional field is present. This field shows that current IP-address on the PPPoE link is 161.1.1.110

When issued through the serial port, the Status command returns less data. The primary use of the serial Status command is to let the attached serial device inquire the IP-address and port number of the network host with which the connection is (was/ to be) established (as well as current "PPPoE" IP-address). This may be used by the serial device, in conjunction with the modem commands (serial-side parameters and instructions) to control and monitor data connection establishment and termination by the DS.

* HI and LOW states are described with respect to the serial ports of DS100R, DS100B, DS202R, EM100-EV, EM120/EM200-EV, EM202-EV. For EM100, EM120, EM200, EM202 the signaling is exactly opposite.

** Encapsulation characters such as IEC, STX, CR, and the command ID field are not shown.


Buzz (B) command

Description (see command description format info here)

Function: Makes the status LEDs of the DS play a recognizable pattern

Can be issued through: Network (broadcasts ignored*, login not required)

Command format: B

Possible replies: A

First introduced: Earlier than "baseline" V3.14/V3.51

See also: Status LED signals

Details

Buzz command, when received by the DS, makes the device "play" a recognizable fast-blinking pattern on its status LEDs. This can be used to match an IP-address to a physical DS.

* Without prior selection using Select In Broadcast Mode (W) command.


Reset Overflow Flags (R) command

Description (see command description format info here)

Function: Resets routing buffer overflow flags

Can be issued through: Network (broadcasts ignored*, login not required)

Command format: R

Possible replies: A

First introduced: Earlier than "baseline" V3.14/V3.51

See also: Status LED signals, Routing buffers

Details

Reset Overflow Flags command clears routing buffer overflow flags. Buffer overflow condition is returned by the Echo (X) command (flags E and S) and also displayed by the status LEDs of the DS. Overflow flags are cleared automatically when the data connection to the network host is closed or aborted or can also be reset manually using the Reset Overflow Flags command.

* Without prior selection using Select In Broadcast Mode (W) command.


Assign IP-address (A) command

Description (see command description format info here)

Function: Assigns new IP-address to the DS which is referenced by its MAC-address

Can be issued through: Network (broadcasts OK, login not required)

Command format: Ammm.mmm.mmm.mmm.mmm.mmm/pp...p/iii.iii.iii.iii, where
mmm.mmm.mmm.mmm.mmm.mmm- MAC-address of the target DS;
pp...p- password (defined by the Password (PW) setting);
iii.iii.iii.iii- new IP-address to be assigned to the DS

Possible replies: A, D, C, F

First introduced: Earlier than "baseline" V3.14/V3.51

See also: Authentication, Broadcast out-of-band commands

Details

Assign IP-address command is used to set the new IP-address of a certain DS over the network. Command should be sent in the broadcast mode, the target DS is referenced by its MAC-address (supplied in the command body). All locally attached devices receive the broadcast but only the DS with matching MAC-address reacts to it.

Assign IP-address is a command of immediate authentication type which means that the password (defined by the Password (PW) setting) is supplied in the command body itself.

Example: if the MAC-address of the target DS is 0.150.30.213.55.74, the password is "pass1" and the new IP-address is to be 192.168.100.41 then the following command should be sent:

-->DS: A0.150.30.213.55.74/pass1/192.168.100.41
DS-->: A

Note: password field in this command should be present even if the Password (PW) setting is empty (<NULL>):

-->DS: A0.150.30.213.55.74//192.168.100.41

New IP-address is saved into the IP-address (IP) setting, just as if the Set Setting (S) command (i.e. "SIPiii.iii.iii.iii") was executed. Differences with the Set Setting (S) command are in that the DS starts using the new IP-address immediately (no rebooting required) and that the target DS is referenced by its MAC-address.

Rejected (R) reply code is returned if the serial programming mode is in progress. Denied (D) reply code is returned if the password is incorrect. Error (C) reply code is returned if command structure is incorrect (a field or field separator is missing) or if the field data is wrong. Failed (F) reply code is returned when the DS failed to write new IP-address into the EEPROM. This usually indicates a hardware malfunction (EEPROM failure). Since this is a broadcast command no reply is returned if no DS on the network has the MAC-address specified in the command.

When the Assign IP-address command is issued while the DS has a data connection in progress this data connection is aborted. No packet (even RST in case of TCP data connection) is sent to the network host that was communicating with the DS.


Select In Broadcast Mode (W) command

Description (see command description format info here)

Function: Selects the DS as the target in broadcast out-of-band UDP programming

Can be issued through: Network (broadcasts OK, login not required)

Command format: Ammm.mmm.mmm.mmm.mmm.mmm, where mmm.mmm.mmm.mmm.mmm.mmm- MAC-address of the target DS

Possible replies: A

First introduced: Earlier than "baseline" V3.14/V3.51

See also: Broadcast out-of-band commands

Details

Select In Broadcast Mode command is used to pre-select a certain DS for subsequent programming via broadcast out-of-band (UDP) commands. Only a small portion of DS commands (such as Echo (X)) are accepted when sent in broadcast UDP datagrams. All other commands are only accepted if they address a specific DS. Such specific addressing normally involves sending UDP datagrams with the IP-address of the targeted DS as the destination (i.e. non-broadcast datagrams). This requires the IP-address of the DS to be configured reachable which is not always possible or convenient.

Select In Broadcast Mode command provides a way around this. Target DS, referenced by its MAC-address, is first pre-selected using this command. After that, all broadcast commands that are normally ignored when sent as broadcasts, are not ignored and processed by this pre-selected DS.

When Select In Broadcast Mode command is issued all devices whose MAC-addresses do not match the target MAC-address supplied in the command body de-select themselves. This means that to switch onto programming of another DS in the broadcast mode, you need to send the new Select In Broadcast Mode command with the new target MAC-address. This will pre-select a different DS while at the same time de-selecting the DS that was selected before. To de-select all DS on the network send Select In Broadcast Mode command with no MAC-address field.

This command only influences which DS responds when it is addressed using broadcast UDP commands. Command has no influence over any other form of programming that involves addressing the DS by its IP-address.

The only possible reply to this command is OK (A). It is issued by the DS that has recognised its MAC-address in the command body. If no DS on the local network recognizes its MAC then there will be no reply received to this command.


Get Firmware Version (V) command

Description (see command description format info here)

Function: Returns firmware version of this firmware

Can be issued through: Network (broadcasts OK, login not required); serial port

Command format: V

Possible replies: Avv...v, where vv...v is the version string

First introduced: Earlier than "baseline" V3.14/V3.51

See also: ---

Details

Get Firmware Version command returns current firmware version string.

The version string is always encapsulated in '<' and '>', begins with the version number in Vx.xx format, and possibly contains a small comment after a space.

Example:

-->DS: V
DS-->: A<V3.20 R3 final>


Jump To Netloader (N) command [Release3.0]

Jump To NetLoader (N) command

Description (see command description format info here)

Function: Jumps to (launches) the NetLoader

Can be issued through: Network (broadcasts ignored*, login required)

Command format: N

Possible replies: A, D, F

First introduced: Earlier than "baseline" V3.14, not supported by Release3.5 firmware branch

See also: NetLoader

Details

This command is only used on first-generation Devices (i.e. it is implemented on Release3 firmware only).

Jump To NetLoader command verifies NetLoader presence and integrity, then launches it. NetLoader integrity is verified by calculating the checksum on its code and comparing this checksum with the stored one. The NetLoader is not launched if the checksum is found to be invalid.

This command requires prior login using the Login (L) command (programming session must be opened). Denied (D) reply code is returned if the programming session is not in progress or if it doesn't belong to the sender of the Jump To NetLoader command- the DS remembers the IP-address of the network host that opens the programming session and requires that all subsequent commands (that require prior login) are sent from the same IP.

Failed (F) reply code is returned if the NetLoader is found to be corrupted.

* Without prior selection using Select In Broadcast Mode (W) command.


Set Programming Request Flag (N) command [Release 3.5]

Description (see command description format info here)

Function: Sets a flag that will make the DS upgrade its firmware after the reboot

Can be issued through: Network (broadcasts ignored*, login required)

Command format: N

Possible replies: A, D, F

First introduced: Earlier than "baseline" V3.51, not supported by Release3 firmware branch

See also: NetLoader

Details

This command is only used on second-generation Devices (i.e. it is implemented on Release3.5 firmware only).

Set Programming Request Flag command programs a special word of data into the FLASH memory of the DS. When the DS reboots and the Monitor gains control it verifies the state of the flag. If the flag is set the Monitor copies new firmware file from the data FLASH memory of the DS into the program FLASH memory of the DS. After the programming is finished the Monitor resets the flag automatically. Before attempting to write into the program FLASH memory the Monitor verifies integrity of the data in the data FLASH. If the data is found to be corrupted the Monitor aborts the programming.

Set Programming Request Flag command is supposed to be used after the new application firmware file is uploaded into the data FLASH memory of the DS using Reset Upload Process (Q) and Upload Data Block (D) commands. Once the flag is set the DS should be rebooted with Reboot (E) command (to start FLASH copying process).

This command requires prior login using the Login (L) command (programming session must be opened). Denied (D) reply code is returned if the programming session is not in progress or if it doesn't belong to the sender of the command- the DS remembers the IP-address of the network host that opens the programming session and requires that all subsequent commands (that require prior login) are sent from the same IP.

Failed (F) reply code is returned if the flag could not be set (written into the FLASH memory).

* Without prior selection using Select In Broadcast Mode (W) command.


Reset Upload Process (Q) command [Release 3.5]

Description (see command description format info here)

Function: Reset application firmware upload into the data FLASH memory of the DS

Can be issued through: Network (broadcasts ignored*, login required)

Command format: Q

Possible replies: A, D

First introduced: Earlier than "baseline" V3.51, not supported by Release3 firmware branch

See also: NetLoader

Details

This command is only used on second-generation Devices (i.e. it is implemented on Release3.5 firmware only).

Reset Upload Process command initializes application firmware file upload into the data FLASH memory of the DS. This command should always be used before upload itself, which is performed with Upload Data Block (D) command. To make the DS upgrade the contents of its program FLASH (i.e. copy the application from the data FLASH into the program FLASH) two other commands should be used: Set Programming Request Flag (N), followed by Reboot (E).

This command requires prior login using the Login (L) command (programming session must be opened). Denied (D) reply code is returned if the programming session is not in progress or if it doesn't belong to the sender of the command- the DS remembers the IP-address of the network host that opens the programming session and requires that all subsequent commands (that require prior login) are sent from the same IP.

* Without prior selection using Select In Broadcast Mode (W) command.


Upload Data Block (D) command [Release 3.5]

Description (see command description format info here)

Function: Uploads a 128-byte data block into the data FLASH memory of the DS

Can be issued through: Network (broadcasts ignored*, login required)

Command format: Dnnddd..dd, where nn: data block number in binary format (exactly 2 bytes), ddd..dd- 128 bytes of data in binary format

Possible replies: A, D, C, S, 0, F

First introduced: Earlier than "baseline" V3.51, not supported by Release3 firmware branch

See also: NetLoader

Details

This command is only used on second-generation Devices (i.e. it is implemented on Release3.5 firmware only).

Upload Data Block command sends a 128-byte block of data to the data FLASH memory of the DS. This command is used for application firmware upgrades through the network.

Upgrade starts with Reset Upload Process (Q) command. After that, Upload Data Block is used necessary number of times until entire application firmware file is uploaded block by block. The first command sent should have its nn field set to 0x00 0x00, next- 0x00 0x01, etc. Each command should supply exactly 128 bytes of data. If the file cannot be split into N full 128-byte blocks the last block should be padded with any data. Once entire file has been uploaded two additional commands should be used: Set Programming Request Flag (N), followed by Reboot (E). After the DS emerges from reset the Monitor will copy new firmware file from the data FLASH into the program FLASH.

This command requires prior login using the Login (L) command (programming session must be opened). Denied (D) reply code is returned if the programming session is not in progress or if it doesn't belong to the sender of the command- the DS remembers the IP-address of the network host that opens the programming session and requires that all subsequent commands (that require prior login) are sent from the same IP.

Error (C) reply code is returned if command length wasn't exactly 131 byte in length (command code + 2-byte block number + 128 bytes of data). Bad Sequence (S) reply code is issued if data blocks were not consecutive (for example, after block 3 came block 5). The DS replies with Out-of-range (O) reply code if file size has exceeded data FLASH capacity. Failed (F) reply code is returned if there was an error writing into the data FLASH.

Upload Data Block command is different from all other commands in that its fields are of binary type (all other commands are ASCII strings).

* Without prior selection using Select In Broadcast Mode (W) command.


Notification (J) message

Description (see command description format info here)

Function: Reports I/O pin status change

Send through: Network

Format: Jsss, where sss is the byte value in the 0-255 range containing the status of all I/O lines of the DS

First introduced: Earlier than "baseline" V3.14/V3.51

See also: Serial port and serial communications

Details

Notification message in not a command, it is a message that the DS sends to the network host when one of the monitored I/O lines of the DS changes its state (for longer than 0.5 seconds). The status of all lines is rolled into a single byte of data and sent out even when a single I/O line changes its state.

Which I/O lines are being monitored is defined by the current Notification Bitmask (NB) [setting/ parameter].

Notification messages are only generated when the data connection is in progress and are sent to the network host with which this data connection is established. Notification Destination (ND) setting defines which port on this network host notifications are sent to.

How notifications are sent (out-of-band, inband, etc.) is defined by several factors:

· If the Data Login (DL) setting is 1 (enabled), current Transport Protocol (TP) [setting/ parameter] is 1 (TCP), and the data TCP connection is in the command phase then notifications are sent via this TCP connection (IEC character is not used). Otherwise...

· If the Inband (IB) setting is 1 (enabled), and the current Transport Protocol (TP) is 1 (TCP) then notifications are sent inside this TCP connection as inband messages (IEC character is used). Otherwise...

· Notifications are sent as out-of-band UDP datagrams.

The value in each Notification message should be interpreted as a collection of binary bits, with each position corresponding to a certain I/O line of the DS. Bit positions are exactly the same as those of the Notification Bitmask (NB) Setting. Bit values correspond to the states of the I/O lines of Modules. Line states on the RS232 connectors of Serial Device Servers and Boards that incorporate RS232 transceivers are inverted relative to the states reported in the notification message.

Example: supposing, the following Notification message is sent*:

J027

Decimal 27 converts to binary 00011011. This means that:

· For devices such as EM100: P2/DSR and P5/RTS lines are LOW; P0, P1, P2/DSR, and P4/CTS lines are HIGH;

· For devices such as DS100: DSR and RTS lines are HIGH; DTR and CTS lines are LOW.

Notification messages are not commands so they do not require any reply from the receiving end.

If it is the DS that receives a Notification message from another DS, then the following happens:

· If current Flow Control (FC) [setting/ parameter] on the receiving DS is 0 (disabled) and current Serial Interface is full-duplex then this DS will set its RTS line according to the value of CTS bit (bit 4) supplied by the Notification message; otherwise the status of the RTS line will not be changed.

· If the DTR Mode (DT) setting on the receiving DS is 0 (idle) then this DS will set its DTR line according to the value of DSR bit (bit 2) supplied by the Notification message; otherwise the status of the DTR line will not be changed.

The above means that the Notification message links RTS-CTS and DTR-DSR signals on two communicating DS: when the CTS input on one end changes its status the RTS output on the other end changes its status accordingly (same with the DTR-DSR pair).

* Encapsulation characters such as IEC, STX, CR are not shown.


Settings

This section contains a reference for all DS settings.

Settings are permanent functioning parameters that are stored in the non-volatile memory (EEPROM) of the DS. Once programmed, they remain intact even when the DS is powered off.

Setting description format can be found here.

All settings are divided into four groups:

· Network settings include basic set of parameters that define "networking environment" of the DS. For more information see Ethernet port and network communications.

· Connection Settings define how and in which fashion the DS establishes connections to and accepts connections from other hosts. For more information see Ethernet port and network communications

· Serial settings define the operation of the DS serial port. For more information see serial port and serial communications.

· Encapsulation settings define what incoming serial data is recorded into the serial-to-Ethernet routing buffer and when and how this data is combined into the network packets and sent to the network host. For more information see serial-to-Ethernet data routing.


Setting description format

All settings in this section are described using the following format:

Function: Setting function in brief

Set (S) command format: Syntax of the corresponding Set (S) command that is used to set new setting value

Get (G) command format: Syntax of the corresponding Get (S) command that is used to read out current value of the setting

Init (I) command effect: Explains under what additional conditions the setting is initialized when the Initialize (I) command is issued or quick initialization is launched. Some settings are always initialized, some are initialized only when invalid, etc.

Post-initialization value: Shows factory initialization value that will be assigned to the setting after the initialization (factory initialization values may be overridden by the custom profile)

Change takes effect: Explains when the new setting value takes effect. Changes to some settings have immediate effect, for some settings rebooting is required, etc.

Overriding parameter: Certain settings have corresponding overriding parameters that can be supplied through the Parameter (P) command

Relevance conditions: Some settings are relevant to the operation of the DS only when other settings have certain values

First introduced: Describes whether this setting has been available right from the "baseline" firmware version of 3.14/3.51 or was introduced in a later firmware release

See also: Additional relevant links

Details

Additional information about the setting.


Network Settings

Network settings include basic set of parameters that define "networking environment" of the DS. For more information see Ethernet port and network communications.

The following settings belong to this group:

Setting | Description
Owner Name (ON) setting | Defines the owner name identificator for the DS
Device Name (DN) setting | Defines the device name identificator for the DS
MAC-address (FE) setting | Defines MAC-address of the DS
DHCP (DH) setting | Enables/disables DHCP for the DS
IP-address (IP) setting | Defines the IP-address of the DS
Port Number (PN) setting | Defines the data port number of the DS
dDNS Service Registration (DD) setting [V3.24/3.54+] | Defines whether the DS will register its IP-address with dDNS Service of Link Server at startup
dDNS Service IP-address (LI) setting [V3.24/3.54+] | IP-address for dDNS registration
dDNS Service Port (LP) setting [V3.24/3.54+] | Port number for dDNS registration
PPPoE Mode (PP) setting [V3.54+] | Defines whether and when the DS will use PPPoE
LS Auto-registration (AR) setting [V3.24/3.54+] | Defines whether, if rejected by the Link Server, the DS will try to auto-register
PPPoE Login Name (PL) setting [V3.54+] | Defines login name for PPPoE Access Concentrator
PPPoE Login Password (PD) setting [V3.54+] | Defines login password for PPPoE Access Concentrator
Gateway IP-address (GI) setting | Defines the IP-address of the default gateway
Netmask (NM) setting | Defines the IP-address range for the local subnet
Password (PW) setting | Defines login password network programming


Owner Name (ON) setting

Description (see setting description format info here)

Function: Defines the owner name identificator for the DS

Set (S) command format: SONoo...o, where oo...o is the name string, 0-8 characters long

Get (G) command format: GON

Init (I) command effect: Only initialized if invalid, through network command, serial command, or quick initialization

Post-initialization value: <NULL>

Change takes effect: Immediately

Overriding parameter: ---

Relevance conditions: ---

First introduced: Earlier than "baseline" V3.14/V3.51

See also: ---

Details

This setting, together with the Device Name (DN) setting forms a name identificator for the DS. Owner name and device name are returned by the Echo (X) command.

Owner Name also serves two other purposes:

· It is used to form device name supplied to the DHCP server

· It is also used for logins onto the Link Server


Device Name (DN) setting

Description (see setting description format info here)

Function: Defines the device name identificator for the DS

Set (S) command format: SDNdd...d, where dd...d is the name string, 0-8 characters long

Get (G) command format: GDN

Init (I) command effect: Only initialized if invalid, through network command, serial command, or quick initialization

Post-initialization value: <NULL>

Change takes effect: Immediately

Overriding parameter: ---

Relevance conditions: ---

First introduced: Earlier than "baseline" V3.14/V3.51

See also: ---

Details

This setting, together with Owner Name (ON) setting forms a string identificator for the DS. Owner name and Device name are returned by the Echo (X) command.

Device Name also serves two other purposes:

· It is used to form device name supplied to the DHCP server

· It is also used for logins onto the Link Server


MAC-address (FE) setting

Description (see setting description format info here)

Function: Defines MAC-address of the DS

Set (S) command format: SFExxx.xxx.xxx.xxx.xxx.xxx, where xxx.xxx.xxx.xxx.xxx.xxx is the MAC-address in the dot-decimal notation (i.e. 0.2.3.4.120.240)

Get (G) command format: GFE

Init (I) command effect: Only initialized if invalid, through network command, serial command, or quick initialization

Post-initialization value: 0.1.2.3.4.5

Change takes effect: After reboot

Overriding parameter: ---

Relevance conditions: ---

First introduced: Earlier than "baseline" V3.14/V3.51

See also: Ethernet port and network communications

Details

Each DS is shipped from the factory with unique MAC-address already assigned to it. DO NOT change this address unless you have a good reason to do so. If you do change the address remember that the first digit of the address must be even!

Since the MAC-address of each DS is unique it may be used for device identification. It is returned by the Echo (X) command and also used to address a particular DS in the Assign IP-address (A) command and Select in Broadcast Mode (W) command.

This setting's mnemonic- "FE"- has to do with the previous name of the setting- "Factory Ethernet Address". Mnemonic was preserved to ensure compatibility with previous firmware versions.


DHCP (DH) setting

Description (see setting description format info here)

Function: Enables/disables DHCP for the DS

Set (S) command format: SDHx, where x: 0 (disabled), 1 (enabled)

Get (G) command format: GDH

Init (I) command effect: Initialized unconditionally, through network command, serial command, or quick initialization

Post-initialization value: 0 (disabled)

Change takes effect: After reboot

Overriding parameter: ---

Relevance conditions: ---

First introduced: Earlier than "baseline" V3.14/V3.51

See also: DHCP

Details

This setting defines whether the DS will use a fixed IP-address, defined by the IP-address (IP) setting or will obtain its IP-address from the DHCP server at powerup. DHCP server must be present on the network for this to work. The DS will not start normal operation until it receives the IP-address.

IP-address obtained from the DHCP server is saved into the IP-address (IP) setting thus overwriting the previous setting value that might have been set manually.

IP-address status (obtained/ not obtained) of the DS is returned by the Echo (X) command and also displayed by status LEDs of the DS.

In addition to the IP-address configuration, the DHCP server is usually configured to provide default Gateway IP-address and netmask. If this is the case, then Gateway IP-address (GI) and Netmask (NM) settings will also be overwritten by the data from the DHCP server.


IP-address (IP) setting

Description (see setting description format info here)

Function: Defines the IP-address of the DS

Set (S) command format: SIPxxx.xxx.xxx.xxx, where xxx.xxx.xxx.xxx is the IP-address in dot-decimal notation (i.e. 192.168.100.40)

Get (G) command format: GIP

Init (I) command effect: Initialized unconditionally through serial command or quick initialization, initialized only if invalid through network command

Post-initialization value: 127.0.0.1

Change takes effect: After reboot

Overriding condition: ---

Relevance conditions: DHCP (DH) setting=0 (disabled)

First introduced: Earlier than "baseline" V3.14/V3.51

See also: Ethernet port and network communications

Details

IP-address must be compatible with the network on which the DS is installed. Many networks have DHCP server, in this case it is better to make the DS obtain the IP-address automatically on startup (this is enabled by programming the DHCP (DH) setting to 1 (enabled)).

When DHCP is activated the IP-address obtained from the DHCP server is saved into the IP-address setting thus overwriting older value that might have been set before.

Some IP-addresses are not valid in principle. Many devices and operating systems (including Windows) automatically discard network packets that refer to such incorrect IPs. The DS will allow such an IP-address to be saved into the EEPROM but will assume a modified address on startup:

Invalid IP-address IP-address that the DS will actually use

x.x.x.0 x.x.x.1

x.x.x.255 x.x.x.1

>223.x.x.x 223.x.x.x

Example: if the IP-address is 224.168.100.255 then the DS will actually use 223.168.100.1. The EEPROM data will not be modified and GIP command will still return original data (224.168.100.255) but the actual IP-address used by the DS will be corrected according to the above rules.


Port Number (PN) setting

Description (see setting description format info here)

Function: Defines the data port number of the DS

Set (S) command format: SPNppppp, where ppppp is the port number in the 0-65534 range. Also, port 32767 cannot be used when current Transport Protocol (TP)[setting/parameter] is 0(UDP). Additionally, for firmware 3.5x and above, port 23 cannot be used when current Transport Protocol is 1(TCP)

Get (G) command format: GPN

Init (I) command effect: Initialized unconditionally, through network command, serial command, or quick initialization

Post-initialization value: 1001

Change takes effect: After reboot

Overriding parameter: ---

Relevance conditions: ---

First introduced: Earlier than "baseline" V3.14/V3.51

See also: Ethernet port and network communications, Network programming

Details

This setting defines the Data Port on which the DS is accepting incoming data connections.

For UDP communications, outgoing UDP datagrams are also sent from this port. For TCP communications the DS accepts incoming data connections on the data port but establishes outgoing connections from a pool of ephemeral ports in the 10000-10255 range (port number is incremented with each new connection).

Port 65535 is excluded from the allowable range because port 65535 is a programming port of the DS- command UDP datagrams are sent to this port. Technically, this only affects UDP communications, TCP connections should still be able to use this port but the port 65535 was not allowed to be selected as the data port from the early versions of DS firmware so this restriction is now preserved for "historical" reasons.

Since programming UDP datagrams can now also be sent to port 32767, this port cannot be used for UDP data communications when current Transport Protocol (TP)[setting/parameter] is 0 (UDP). The DS will allow the Port Number to be programmed to 32767 but all data sent to this port in the UDP mode will be interpreted as programming commands. Using port 32767 for TCP communications won't cause any problems.

New telnet programming method introduced in firmware V3.5x uses telnet port 23 for DS programming as well. Any connection established to port 23 of the DS is interpreted by the DS as a programming connection. Therefore, this port cannot be used for data connections when the current Transport Protocol (TP) is 1(TCP). Older firmware does not use port 23 for programming so this restriction does not apply.


dDNS Service Registration (DD) setting

Description (see setting description format info here)

Function: Defines whether the DS will register its IP-address with dDNS Service of the Link Server at powerup

Set (S) command format: SDDx, where x: 0 (disabled), 1 (enabled)

Get (G) command format: GDD

Init (I) command effect: Initialized unconditionally, through network command, serial command, or quick initialization

Post-initialization value: 0 (disabled)

Change takes effect: After reboot

Overriding parameter: ---

Relevance conditions: ---

First introduced: V3.24/3.54

See also: Ethernet port and network communications

Details

This setting defines whether the DS will register its IP-address with dDNS Service of the Link Server at powerup. For more information on dDNS see Link Server Documentation.

dDNS Service registration involves login onto the Link Server and uses the data from the following settings of the DS: Owner Name (ON), Device Name (DN), and Password (PW) setting). The password is supplied in the encrypted form so the registration process is secure.


dDNS Service IP-address (LI) setting

Description (see setting description format info here)

Function: IP-address for dDNS registration

Set (S) command format: SLIxxx.xxx.xxx.xxx, where xxx.xxx.xxx.xxx is the IP-address in dot-decimal notation (i.e. 192.168.100.40)

Get (G) command format: GLI

Init (I) command effect: Initialized unconditionally, through network command, serial command, or quick initialization

Post-initialization value: 127.0.0.1

Change takes effect: After reboot

Overriding condition: ---

Relevance conditions: dDNS Service Registration (DD) setting= 1 (enabled)

First introduced: V3.24/3.54

See also: Ethernet port and network communications

Details

This setting defines the IP-address to which the DS will try to connect in order to register its IP-address with dDNS Service. For more information on dDNS see Link Server Documentation.

dDNS Service IP-address is irrelevant when dDNS Service Registration (DD) setting= 0 (disabled).


dDNS Service Port (LP) setting

Description (see setting description format info here)

Function: Port number for dDNS registration

Set (S) command format: SLPppppp, where ppppp is the port number in the 0-65535 range

Get (G) command format: GLP

Init (I) command effect: Initialized unconditionally, through network command, serial command, or quick initialization

Post-initialization value: 6450

Change takes effect: After reboot

Overriding parameter: ---

Relevance conditions: dDNS Service Registration (DD) setting= 1 (enabled)

First introduced: V3.24/3.54

See also: Ethernet port and network communications

Details

This setting defines the port number to which the DS will try to connect in order to register its IP-address with dDNS Service. For more information on dDNS see Link Server Documentation.

dDNS Service Port is irrelevant when dDNS Service Registration (DD) setting= 0 (disabled).


LS Auto-registration (AR) setting

Description (see setting description format info here)

Function: Defines whether, if rejected by the Link Server the DS will attempt to auto-register

Set (S) command format: SARx, where x: 0 (disabled), 1 (enabled)

Get (G) command format: GAR

Init (I) command effect: Initialized unconditionally, through network command, serial command, or quick initialization

Post-initialization value: 0 (disabled)

Change takes effect: After reboot

Overriding parameter: ---

Relevance conditions: dDNS Service Registration (DD) setting= 1 (enabled) OR
Current Link Service Login (TL) [setting/parameter]= 1 (enabled)

First introduced: V3.24/3.54

See also: Ethernet port and network communications

Details

The DS logs onto the Link Server in two cases: when it needs to register its IP-address with the dDNS Service (dDNS Service Registration (DD) setting= 1 (enabled)), or when the DS needs to communicate through the Link Service (current Link Service Login (TL) [setting/parameter]= 1 (enabled)).

When LS Auto-registration is set to 1 (enabled) the DS will attempt to register on the Link Server if, during login process, the DS is rejected and the reason for this rejection is that this DS is not yet registered (i.e. Link Server does not recognize Owner Name (ON) and Device Name (DN) of this DS). Auto-registration is convenient because it allows the user to avoid manual editing of the list of client Device Servers on the Link Server.

WARNING! Auto-registration process involves sending DS password (defined by the Password (PW) setting) to the Link Server. In this particular case the password is sent "unprotected" (as is) which constitutes a potential security vulnerability.


PPPoE Mode (PP) setting [V3.54+]

Description (see setting description format info here)

Function: Defines whether and when the DS will use PPPoE

Set (S) command format: SPPx, where x: 0 (disabled), 1 (on connection), 2 (on powerup)

Get (G) command format: GPP

Init (I) command effect: Initialized unconditionally, through network command, serial command, or quick initialization

Post-initialization value: 0 (disabled)

Change takes effect: After reboot

Overriding parameter: ---

Relevance conditions: ---

First introduced: V3.54

See also: PPPoE

Details

This setting enables/disables PPPoE and also defines when, if at all, PPPoE login will be performed. PPPoE Mode only affects communications with network hosts located on remote network segments (local segment boundaries are defined by the Netmask (NM) setting). When PPPoE is used all communications with remote network hosts are effected through PPPoE "channel".

The setting offers three options:

0 (disabled) PPPoE is not used. When the DS needs to establish an outgoing connection to remote network host it sends the data to a default gateway as defined by the Gateway IP-address (GI) setting.

1 (on connection) PPPoE is enabled. PPPoE login is performed when the DS needs to establish a data connection to the remote network host. All communications with remote hosts are effected through PPPoE link (Access Concentrator), so default gateway is not used in any way. PPPoE link is terminated app. 30 seconds after the data connection is closed.

2 (on powerup) PPPoE is enabled. PPPoE login is performed at startup, after IP-address configuration is completed in case DHCP (DH) setting is 1 (enabled). The DS attempts to maintain PPPoE link at all times. If the DS detects that the PPPoE link is broken it reestablishes this link. All communications with remote hosts are effected through this PPPoE link (Access Concentrator), so default gateway is not used in any way.

PPPoE authentication uses PAP protocol (this is the only authentication protocol currently supported). Login name and password for PPPoE Access Concentrator are defined by PPPoE Login Name (PL) and PPPoE Login Password (PD) settings.

Notice that PPPoE is only available in firmware V3.54+. This means that first-generation Devices (EM100-00/ -01/ -02, DS100-00/ -01/ -02) do not support PPPoE.


PPPoE Login Name (PL) setting [V3.54+]

Description (see setting description format info here)

Function: Defines login name for PPPoE Access Concentrator

Set (S) command format: SPLnn...n, where nn...n is login name (0-20 characters long)

Get (G) command format: GPL

Init (I) command effect: Initialized unconditionally, through network command, serial command, or quick initialization

Post-initialization value: <NULL>

Change takes effect: After reboot

Overriding parameter: ---

Relevance conditions: PPPoE Mode (PP) setting= 1 (on connection) or 2 (on powerup)

First introduced: V3.54

See also: PPPoE

Details

This setting defines login name for PPPoE Access Concentrator. Login name can be up to 20 characters long.

This setting is irrelevant when PPPoE Mode (PP) setting is 0 (disabled).

Notice that PPPoE is only available in firmware V3.54+. This means that first-generation Devices (EM100-00/ -01/ -02, DS100-00/ -01/ -02) do not support PPPoE.


PPPoE Login Password (PD) setting [V3.54+]

Description (see setting description format info here)

Function: Defines login password for PPPoE Access Concentrator

Set (S) command format: SPDpp...p, where pp...p is login password (0-20 characters long)

Get (G) command format: GPD

Init (I) command effect: Initialized unconditionally, through network command, serial command, or quick initialization

Post-initialization value: <NULL>

Change takes effect: After reboot

Overriding parameter: ---

Relevance conditions: PPPoE Mode (PP) setting= 1 (on connection) or 2 (on powerup)

First introduced: V3.54

See also: PPPoE

Details

This setting defines login password for PPPoE Access Concentrator. Login name can be up to 20 characters long.

This setting is irrelevant when PPPoE Mode (PP) setting is 0 (disabled).

Notice that PPPoE is only available in firmware V3.54+. This means that first-generation Devices (EM100-00/ -01/ -02, DS100-00/ -01/ -02) do not support PPPoE.


Gateway IP-address (GI) setting

Description (see Setting description format info here)

Function: Defines the IP-address of the default gateway

Set (S) command format: SGIxxx.xxx.xxx.xxx, where xxx.xxx.xxx.xxx is the IP-address of the default gateway in dot-decimal notation (i.e. 192.168.100.1)

Get (G) command format: GGI

Init (I) command effect: Initialized unconditionally, through network command, serial command, or quick initialization

Post-initialization value: 127.0.0.1

Change takes effect: After reboot

Overriding condition: May be automatically updated by the gateway IP-address provided by the DHCP server (in case DHCP (DH) setting is 1 (enabled))

Relevance conditions: Current Routing Mode (RM) [setting/ parameter]= 1 (server/client) or 2 (client)
AND [V3.54+] PPPoE Mode (PP) setting= 0 (disabled)

First introduced: Earlier than "baseline" V3.14/V3.51

See also: Ethernet port and network communications

Details

Gateway IP-address defines the IP-address of default gateway through which the DS will (attempt to) establish a connection to the destination network host at current Destination IP-address (DI) [setting/ parameter/ instruction] in case this host is not on the same subnet with the DS.

Whether or not the destination network host is on the local subnet is determined by comparing the IP-address (IP) setting, current Destination IP-address (DI), and the Netmask (NM) setting (see this setting's description for details).

Gateway IP-address is irrelevant when the current Routing Mode (RM) [setting/ parameter] is 0 (server) since in this mode outgoing connections are not allowed. [V3.54+] This setting is also irrelevant when PPPoE is used i.e. PPPoE Mode (PP) setting is 1 (on connection) or 2 (on powerup). This is because with PPPoE all communications with remote hosts go through PPPoE link (Access Concentrator), not default gateway.

When DHCP is activated (DHCP (DH) setting is 1(enabled)) the Gateway IP-address obtained from the DHCP server is saved into this setting thus overwriting older value that might have been set before. This only happens when the DHCP server is configured to provide gateway IP-address data.


Netmask (NM) setting

Description (see setting description format info here)

Function: Defines the IP-address range for the local subnet

Set (S) command format: SGInn...n, where nn...n is the netmask for the local subnet in dot-decimal notation (i.e. 255.255.255.0)

Get (G) command format: GNM

Init (I) command effect: Initialized unconditionally, through network command, serial command, or quick initialization

Post-initialization value: 0.0.0.0

Change takes effect: After reboot

Overriding condition: May be automatically updated by the netmask provided by the DHCP server (in case DHCP (DH) setting is 1 (enabled))

Relevance conditions: Current Routing Mode (RM) [setting/ parameter]= 1 (server/client) or 2 (client)

First introduced: Earlier than "baseline" V3.14/V3.51

See also: Ethernet port and network communications

Details

Netmask defines the boundaries of a local subnet. When establishing an outgoing connection to the destination network host at current Destination IP-address (DI) [setting/ parameter/ instruction] the DS compares this address with the Netmask and its own IP-address (IP) to determine if the destination is on the local or foreign subnet. The DS will (attempt to) connect directly to the current Destination IP-address (DI) if the destination host is found to reside on the local subnet or to the Gateway IP-address (GI) if the destination is found to reside on a foreign subnet.

Comparison is done as follows:

· All four bytes of the IP-address (IP) are ANDed with four bytes of the Netmask.

· All four bytes of the current Destination IP-address (DI) are ANDed with four bytes of the Netmask.

· Results of previous two steps are compared: if they are equal then the destination is on the same subnet with the DS, if different- the destination is on the foreign subnet and the DS will be connecting through the gateway.

Example: supposing, the IP-address (IP) of the DS is 192.168.100.40 (C0.A8.64.28 in HEX representation), current Destination IP-address (DI) is 192.168.100.90 (C0.A8.64.5A in HEX) and the Netmask is 255.255.255.0 (FF.FF.FF.00 in HEX). Then:

· C0.A8.64.28 AND FF.FF.FF.00 will result in C0.A8.64.00

· C0.A8.64.5A AND FF.FF.FF.00 will result in C0.A8.64.00

· Resulting numbers are the same so the destination is on the same subnet

Here is another way of explaining how the Netmask works. When printed in binary representation, the Netmask always consists of a number of 1s on the left and the number of 0s on the right (for the example above the Netmask value is 1111111. 11111111. 11111111. 00000000). Positions with 1s (left side) represent the part in which the current Destination IP-address (DI) must match the IP-address (IP) of the DS to be considered local. Positions with 0s (right side) represent the range of IP-addresses belonging to the same subnet. If the Netmask is 255.255.255.0 then any IP-address that starts with 255.255.255 will be on the same subnet.

Netmask is irrelevant when the Current Routing Mode (RM) [setting/ parameter] is 0 (server) since in this mode outgoing connections are not allowed.

When DHCP is activated (DHCP (DH) setting is 1(enabled)) the Gateway IP-address obtained from the DHCP server is saved into this setting thus overwriting older value that might have been set before. This only happens when the DHCP server is configured to provide netmask data.


Password (PW) setting

Description (see setting description format info here)

Function: Defines login password for network programming

Set (S) command format: SPWpp...p, where pp...p: is the password string, 0-6 characters long

Get (G) command format: GPW

Init (I) command effect: Initialized unconditionally, through network command, serial command, or quick initialization

Post-initialization value: <NULL>

Change takes effect: Immediately

Overriding parameter: ---

Relevance conditions: ---

First introduced: Earlier than "baseline" V3.14/V3.51

See also: Authentication

Details

Certain network commands require authentication. To authenticate itself the network host must provide a password that matches the one defined by the Password setting.

Password setting also serves one other purpose- it is used for logins onto the Link Server.


Connection Settings

Connection settings define how and in which fashion the DS establishes connections to and accepts connections from other hosts. For more information see Ethernet port and network communications.

The following settings belong to this group:

Setting | Description
Connection Timeout (CT) setting | Defines connection timeout (in minutes)
Transport Protocol (TP) setting | Defines whether UDP or TCP protocol will be used for data connections
Broadcast UDP (BU) setting | Defines whether DS will accept or reject broadcast UDP datagrams
Link Service Login (TL) setting [V3.24/3.54+] | Enables/disables Link Service login procedure after a TCP data connection is established
Inband Commands (IB) setting | Defines whether inband command passing is enabled or disabled
Data Login (DL) setting | Enables or disables command-phase TCP programming
Routing Mode (RM) setting | Defines whether incoming and/or outgoing data connections are allowed
Source IP Filtering (SF) setting [V3.24/3.54+] | Defines whether the DS will accept incoming data connections from any network host or specific host only
Connection Mode (CM) setting | Defines conditions under which the DS will attempt to establish an outgoing connection to the remote host
Destination IP-address (DI) setting | Defines the IP-address of the destination network host to which the DS will attempt to connect to (by default)
Destination Port Number (DP) setting | Defines the port on the destination network host to which the DS will attempt to connect to (by default)
Notification Destination (ND) setting | Defines which UDP port the DS will send I/O line status change notifications to


Connection Timeout (CT) setting

Description (see setting description format info here)

Function: Defines data connection timeout

Set (S) command format: SCTttt, where ttt is connection timeout, 0-99 minutes; 0 means connection never times out

Get (G) command format: GCT

Init (I) command effect: Initialized unconditionally, through network command, serial command, or quick initialization

Post-initialization value: 5 (5 minutes)

Change takes effect: After reboot

Overriding parameter: ---

Relevance conditions: ---

First introduced: Earlier than "baseline" V3.14/V3.51

See also: Ethernet port and network communications

Details

Connection Timeout defines after how many minutes an idle connection is terminated. Setting Connection Timeout to 0 disables automatic timeouts. Setting Connection Timeout to any value in the 1-99 range enables automatic timeouts: when no packets are transferred across a connection in either direction for a corresponding number of minutes the connection is terminated. The DS terminates TCP connections by sending an RST packet, while UDP "connections" are simply discarded (the other party is not informed in any way).

Connection Timeout prevents an idle ("hanged") connection from occupying the DS indefinitely thus keeping other network hosts from communicating with the DS. Note, that idle connection is defined as the one across which no packets are transferred for a period of time (not the one across which no data is transferred for a period of time). This provides a way of maintaining the connection even in the absence of data (this is known as "keepalive"). For TCP connections remote host can send empty ACK packets, for UDP "connection" remote host can send UDP datagrams of zero length.

Connection Timeout is relevant even when the Connection Mode (CM) setting is 0 (immediately). In this case, when timeout comes the DS terminates an existing connection to the network host and immediately opens a new one. This can be used to "auto-repair" hanged connections in systems where permanent connection to the network host must be maintained indefinitely.


Transport Protocol (TP) setting

Description (see setting description format info here)

Function: Defines whether UDP or TCP protocol is used for data connections

Set (S) command format: STPx, where x: 0 (UDP), 1 (TCP)

Get (G) command format: GTP

Init (I) command effect: Initialized unconditionally, through network command, serial command, or quick initialization

Post-initialization value: 0 (UDP)

Change takes effect: After reboot

Overriding parameter: Transport Protocol (TP) Parameter

Relevance conditions: ---

First introduced: Earlier than "baseline" V3.14/V3.51

See also: Ethernet port and network communications

Details

Transport Protocol defines which communications protocol- TCP/IP or UDP/IP will be used by the DS for exchanging data with the network host.

Some aspects of UDP and TCP implementation in the DS are different from standard or commonly used implementation. See UDP data "connections" and TCP data connections for more info on the subject.


Broadcast UDP (BU) setting

Description (see setting description format info here)

Function: Defines whether DS will accept or reject broadcast UDP datagrams

Set (S) command format: SBUx, where x: 0 (disabled), 1 (enabled)

Get (G) command format: GBU

Init (I) command effect: Initialized unconditionally, through network command, serial command, or quick initialization

Post-initialization value: 0 (disabled)

Change takes effect: After reboot

Overriding parameter: ---

Relevance conditions: Current Transport Protocol (TP) [setting/ parameter]= 0 (UDP)

First introduced: Earlier than "baseline" V3.14/V3.51

See also: Broadcast UDP communications

Details

When Broadcast UDP is 1 (enabled), the DS will accept and route the data received in broadcast UDP datagrams, as if these packets were addressed directly to this DS. Broadcast packets must still be addressed to the correct Port Number (PN). DS will ignore broadcast UDP packets when Broadcast UDP is 0 (disabled).

This setting only allows/disallows the reception of broadcast UDP packets and has no influence over whether the DS can send out its own broadcast UDP datagrams or not. The DS can be made to send the broadcast packets by setting current Destination IP-address (IP) [setting/ parameter/ instruction] to 255.255.255.255.

This Setting is irrelevant when current Transport Protocol (TP) [setting/ parameter] is 1 (TCP) because TCP protocol cannot use broadcast packets to carry data.


Link Service Login (TL) setting

Description (see setting description format info here)

Function: Enables/disables Link Service login procedure after a TCP data connection is established

Set (S) command format: STLx, where x: 0 (disabled), 1 (enabled)

Get (G) command format: GTL

Init (I) command effect: Initialized unconditionally, through network command, serial command, or quick initialization

Post-initialization value: 0 (disabled)

Change takes effect: After reboot

Overriding parameter: ---

Relevance conditions: Current Transport Protocol (TP) [setting/parameter]= 1 (TCP)

First introduced: V3.24/3.54

See also: Ethernet port and network communications, Link Service

Details

This setting defines whether the DS will perform Link Service login procedure after a TCP data connection with another network host is established. For more information on Link Service see Link Server Documentation.

Link Service logins use the data from the following settings of the DS: Owner Name (ON), Device Name (DN), and Password (PW) setting). The password is supplied in the encrypted form so Link Service logins are secure.

Link Server Login is irrelevant when Current Transport Protocol (TP) [setting/parameter]= 0 (UDP) because UDP/IP cannot be used for communications with the Link Server.


Inband Commands (IB) setting

Description (see setting description format info here)

Function: Enables or disables inband (TCP) programming

Set (S) command format: SIBx, where x: 0 (disabled), 1 (enabled)

Get (G) command format: GIB

Init (I) command effect: Initialized unconditionally, through network command, serial command, or quick initialization

Post-initialization value: 0 (disabled)

Change takes effect: After reboot

Overriding parameter: ---

Relevance conditions: Current Transport Protocol (TP) [setting/ parameter]= 1 (TCP) AND
current Link Service Login (TL) [setting/parameter]= 0 (disabled)

First introduced: Earlier than "baseline" V3.14/V3.51

See also: Inband (TCP) commands

Details

Inband Commands setting defines whether inband (TCP) programming is enabled or disabled.

This Setting is irrelevant when the current Transport Protocol (TP) [setting/ parameter] is 0 (UDP) because inband command passing is only possible when TCP/IP is used for data connections between the network host and the DS.

Inband Commands setting is also irrelevant when current Link Service Login (TL) [setting/parameter]= 1 (enabled) because inband commands are always enabled when Link Service is used.


Data Login (DL) setting

Description (see setting description format info here)

Function: Enables or disables command-phase (TCP) programming

Set (S) command format: SDLx, where x: 0 (disabled), 1 (enabled)

Get (G) command format: GDL

Init (I) command effect: Initialized unconditionally, through network command, serial command, or quick initialization

Post-initialization value: 0 (disabled)

Change takes effect: After reboot

Overriding parameter: ---

Relevance conditions: Current Transport Protocol (TP) [setting/ parameter]= 1 (TCP) AND
current Link Service Login (TL) [setting/parameter]= 0 (disabled)

First introduced: Earlier than "baseline" V3.14/V3.51

See also: Command-phase (TCP) commands, Inband (TCP) commands

Details

Data Login defines whether command-phase TCP programming is enabled or disabled.

This setting is irrelevant when the current Transport Protocol (TP) [setting/ parameter] is 0 (UDP) because command-phase programming is only possible when TCP/IP is used for data connections between the network host and the DS.

Command-phase programming is disabled automatically when current Link Service Login (TL) [setting/parameter] is 0 (disabled).


Routing Mode (RM) setting

Description (see setting description format info here)

Function: Defines whether incoming and/or outgoing data connections are allowed

Set (S) command format: SRMx, where x: 0 (server), 1 (server/client), 2 (client)

Get (G) command format: GRM

Init (I) command effect: Initialized unconditionally, through network command, serial command, or quick initialization

Post-initialization value: 0 (server)

Change takes effect: After reboot

Overriding parameter: Routing Mode (RM) parameter

Relevance conditions: ---

First introduced: Earlier than "baseline" V3.14/V3.51

See also: Ethernet port and network communications, Error mode

Details

Routing Mode defines whether the DS will accept incoming connections (passive opens) and/or establish outgoing connections (perform active opens):

0 (server) Only incoming connections are accepted, the DS never attempts to establish an outgoing connection to the network host. There is no restriction on which network host can connect to the DS- connection from any IP-address will be accepted as long as the remote host is connecting to the correct Port Number (PN) using current Transport Protocol (TP) [setting/ parameter].

1 (server/client) Both incoming and outgoing connections are allowed*. Outgoing connections are established with current Destination IP-address (DI) [setting/ parameter/ instruction] and current Destination Port (DP) [setting/ parameter/ instruction]. Exactly when the DS attempts to establish an outgoing connection is defined by the Connection Mode (CM) setting.

2 (client) Only outgoing connections are allowed, the DS rejects all incoming connections. This is a newly implemented routing mode.

Current Routing Mode of the DS is changed to 0 (server) if the DS enters the error mode (the value of the Routing Mode setting itself remains intact).

* Since the DS only allows for a single data connection at any given time this should be understood as "whichever comes first".


Source IP Filtering (SF) setting

Description (see setting description format info here)

Function: Defines whether the DS will accept incoming data connections from any network host (filtering disabled) or specific host only (filtering enabled)

Set (S) command format: SSFx, where x: 0 (disabled), 1 (enabled)

Get (G) command format: GSF

Init (I) command effect: Initialized unconditionally, through network command, serial command, or quick initialization

Post-initialization value: 0 (disabled)

Change takes effect: After reboot

Overriding param/instr: Source IP Filtering (SF) parameter

Relevance conditions: Current Routing Mode (RM) [setting/parameter]= 0 (server) or 1 (server/client)

First introduced: V3.24/3.54

See also: Ethernet port and network communications

Details

When Source IP Filtering is 0 (disabled) the DS will accept an incoming data connection from any network host.

When Source IP Filtering is 1 (enabled) the DS will accept an incoming data connection only from host whose IP-address matches the one specified by current Destination IP-address [setting/parameter].

Since out-of-band on-the-fly commands (network-side parameters issued using Parameter (P) command) can also be considered a part of a data connection the DS will reject any such command that comes from a "wrong" IP-address while source IP-address filtering is enabled.

This setting is irrelevant when current Routing Mode (RM) [setting/parameter] is 2 (client) because in this mode the DS won't accept incoming connections at all.


Connection Mode (CM) setting

Description (see setting description format info here)

Function: Defines conditions under which the DS will attempt to establish an outgoing connection to the remote host

Set (S) command format: SCMx, where x: 0 (immediately), 1 (on data or command), 2 (on command), 3 (on command or DSR=HI*)

Get (G) command format: GCM

Init (I) command effect: Initialized unconditionally, through network command, serial command, or quick initialization

Post-initialization value: 1 (on data or command)

Change takes effect: After reboot

Overriding parameter: ---

Relevance conditions: Current Routing Mode (RM) [setting/ parameter]= 1 (server/client) OR 2 (client)

First introduced: Earlier than "baseline" V3.14/V3.51

See also: Ethernet port and network communications, Serial-to-Ethernet data routing, UDP data "connections"

Details

Connection Mode defines under which condition the DS attempts to establish an outgoing connection** to current Destination IP-address (DI) [setting/ parameter/ instruction] and current Destination Port Number (DP) [setting/ parameter/ instruction]:

0 (immediately) The DS attempts to establish an outgoing connection right after the powerup***. The DS will also make this connection "persistent". If the connection is closed (aborted) by the network host the DS will (attempt to) establish it again. Connection timeout (defined by the Connection Timeout (CT) setting) still works in this mode: when the current connection times out the DS aborts it and immediately establishes a new connection. Such behavior "auto-repairs" hanged connections.

1 (on data or command) The DS attempts to establish an outgoing connection when the first serial data is received into the serial port and committed OR when Establish Connection (CE) instruction is issued.

2 (on command) The DS attempts to establish an outgoing connection only when Establish Connection (CE) instruction is issued.

3 (on command or DSR=HI) The DS attempts to establish an outgoing connection only when Establish Connection (CE) instruction is issued OR when the DSR line of the serial port is brought HI* (for at least 20ms).

Existing connection can always be terminated by using the Close Connection (CC) instruction or Abort Connection (CA) instruction. With Connection Mode 3 (on command or DSR=HI*) it is also possible to close the connection by bringing the DSR line LOW*.

Connection Mode is irrelevant when the current Routing Mode (RM) is 0 (server) since in this mode outgoing connections are not allowed at all.

* HI and LOW states are described with respect to the serial ports of DS100R, DS100B, DS202R, EM100-EV, EM120/EM200-EV, EM202-EV. For EM100, EM120, EM200, EM202 the signaling is exactly opposite.

** Since the DS only allows for a single data connection at a time all conditions described here only apply to a situation when no data connection is established yet.

*** After the IP-address is obtained from the DHCP server if the DHCP (DH) setting is 1 (enabled).


Destination IP-address (DI) setting

Description (see setting description format info here)

Function: Defines the IP-address of the destination network host to which the DS will attempt to connect to (by default)

Set (S) command format: SDIxxx.xxx.xxx.xxx, where xxx.xxx.xxx.xxx is the IP-address of the destination in dot-decimal notation (i.e. 192.168.100.41)

Get (G) command format: GDI

Init (I) command effect: Initialized unconditionally, through network command, serial command, or quick initialization

Post-initialization value: 127.0.0.2

Change takes effect: After reboot

Overriding param/instr: Destination IP-address (DI) parameter, Establish Connection (CE) instruction

Relevance conditions: For outgoing connections:
Current Routing Mode (RM) [setting/parameter]= 1 (server/client) or 2 (client)

[V3.24/3.54+] For incoming connections:
Current Routing Mode (RM) [setting/parameter]= 0 (server) or 1 (server/client)
AND current Source IP Filtering (SF) [setting/parameter]= 1 (enabled)

First introduced: Earlier than "baseline" V3.14/V3.51, functionality extended in V3.24/3.54

See also: Ethernet port and network communications

Details

Destination IP-address serves two purposes:

· It defines the IP-address of the network host to which the DS will attempt to establish an outgoing data connection. Exactly when the DS will attempt to establish such a connection is specified by the Connection Mode (CM) setting. Destination port the DS will attempt to connect to is specified by the current Destination Port Number (DP) [setting/ parameter/ instruction].

· [V3.24/3.54+] This address also specifies the only network host from which an incoming data connection will be accepted when current Source IP Filtering (SF) [setting/parameter] is 1 (enabled).

Destination IP-address of 255.255.255.255 means "link-level broadcasts". This is a special case so the following considerations should be taken into account:

· For outgoing connections:

· When current Transport Protocol (TP) [setting/parameter] is 0 (UDP) the DS will be sending out its own UDP datagrams as link-level broadcasts i.e. with destination MAC-address set to 255.255.255.255.255.255. Furthermore, there will be no destination switchover that happens when UDP datagram is received from a network host (therefore, the DS will keep sending its datagrams as broadcasts). For more information see UDP data "connections" and broadcast UDP communications.

· When current Transport Protocol (TP) [setting/parameter] is 1 (TCP) the DS will not attempt to establish an outgoing connection at all. This is because TCP is strictly a point-to-point protocol and does not support broadcasting.

· [V3.24/3.54+] For incoming connections:

· With Destination IP-address set to 255.255.255.255 the DS will accept incoming connections from any network host even if current Source IP Filtering (SF) [setting/parameter] is 1 (enabled).

Destination IP-address is irrelevant in the following cases:

· For outgoing connections:

· When current Routing Mode (RM) [setting/parameter] is 0 (server) because the DS does not establish outgoing connections in this mode at all

· [V3.24/3.54+] For incoming connections:

· When current Routing Mode (RM) [setting/parameter] is 2 (client) because the DS does not accept any incoming connections in this mode at all

· When current Source IP Filtering (SF) [setting/parameter] is 0 (disabled).


Destination Port Number (DP) setting

Description (see Setting description format info here)

Function: Defines the port on the destination network host to which the DS will attempt to connect to

Set (S) command format: SDPppppp, where ppppp is the port number of the destination in the 0-65535 range

Get (G) command format: GDP

Init (I) command effect: Initialized unconditionally, through network command, serial command, or quick initialization

Post-initialization value: 1001

Change takes effect: After reboot

Overriding param/instr: Destination Port Number (DP) Parameter, Establish Connection (CE) instruction

Relevance conditions: Current Routing Mode (RM) [setting/ parameter]= 1 (server/client) or 2 (client)

First introduced: Earlier than "baseline" V3.14/V3.51

See also: Ethernet port and network communications

Details

Destination Port Number defines the port of the network host to which the DS will attempt to establish an outgoing connection. When the DS will attempt to establish a connection to the destination host is defined by the Connection Mode (CM) setting. Destination IP-address the DS will attempt to connect to is defined by the current Destination IP-address (DI) [setting/ parameter/ instruction].

Destination Port Number is irrelevant when the current Routing Mode (RM) [setting/parameter] is 0 (server) since in this mode outgoing connections are not allowed.


Notification Destination (ND) setting

Description (see setting description format info here)

Function: Defines which UDP port the DS will send I/O line status change notifications to

Set (S) command format: SNDx, where x: 0 (last known port), 1 (port 65535)

Get (G) command format: GND

Init (I) command effect: Initialized unconditionally, through network command, serial command, or quick initialization

Post-initialization value: 0 (last known port)

Change takes effect: After reboot

Overriding parameter: ---

Relevance conditions: Notification Bitmask (NB) setting<>0 AND notifications are sent as out-of-band UDP datagrams (see Notification Bitmask (NB) setting for details)

First introduced: Earlier than "baseline" V3.14/V3.51

See also: Ethernet port and network communications, Serial port and serial communications

Details

Notification (J) messages are generated when one of the monitored I/O lines of the DS changes its state. Which I/O lines are monitored for changes is defined by the Notification Bitmask (NB) setting. Notifications are only sent when the data connection is established and are sent to the network host with which this connection is established. Notification Destination defines which UDP port on the destination host notifications are sent to when notifications are being sent as UDP datagrams (out-of-band):

0 (last known port) Notifications are sent to the UDP port from which the most recent programming UDP datagram was received. Therefore, notifications are sent after at least one such datagram is received (since the data connection is established). This option is useful when the DS has to send notifications to the PC. Port number from which PC applications are sending their programming UDP datagrams are usually ephemeral which means that they are always changing. Therefore, the DS will wait for the first programming UDP datagram to arrive.

1 (port 65535) Notifications are always sent to the UDP port 65535. This option is useful when the DS is communicating with another DS. In this case the port to send notifications to is fixed and known so there is no need to wait for the programming UDP datagram to arrive.

Notification Destination is irrelevant when the Notification Bitmask (NB) is set to is 0 because this means that no I/O lines of the DS are monitored for changes (so there will be no notifications to generate). Notification Destination is also irrelevant when notifications are being sent inside the data TCP connection itself (see Notification (J) message for more information on when this happens).


Serial Settings

Serial settings define operation of the serial port of the DS. For more information see serial port and serial communications.

The following settings belong to this group:

Setting | Description
Serial Interface (SI) setting | Selects full-duplex or half-duplex mode for the serial port of the DS
Flow Control (FC) setting | Enables or disables hardware (RTS/CTS) flow control for the serial port of the DS
DTR Mode (DT) setting | Defines the function of the DTR line of the serial port of the DS
Baudrate (BR) setting | Defines the baudrate of the serial port of the DS
Parity (PR) setting | Defines the parity mode of the serial port of the DS
Bits Per Byte (BB) setting | Defines the bits/byte mode of the serial port of the DS
Soft Entry (SE) setting | Disables or enabled serial programming mode entry through escape sequence and selects escape sequence type
Escape Character (EC) setting [V3.24/3.54+] | Defines ASCII code of character used in escape sequence
On-the-fly Commands (RC) setting | Enables or disables on-the-fly command processing by the DS
On-the-fly Password (OP) setting | Enables or disables password protection for on-the-fly commands
Notification Bitmask (NB) setting | Defines which I/O lines of the DS are monitored for changes


Serial Interface (SI) setting

Description (see setting description format info here)

Function: Selects full-duplex or half-duplex mode for the serial port of the DS (when in the data routing mode)

Set (S) command format: SSIx, where x: 0 (full-duplex), 1 (half-duplex), 2 (auto)

Get (G) command format: GSI

Init (I) command effect: Initialized unconditionally, through network command, serial command, or quick initialization

Post-initialization value: 2 (auto)

Change takes effect: After reboot or exiting the serial programming mode

Overriding parameter: ---

Relevance conditions: ---

First introduced: Earlier than "baseline" V3.14/V3.51

See also: Serial port and serial communications

Details

Serial port of the DS can operate in full-duplex or half-duplex mode. "Full-duplex" and "half-duplex" here refers exclusively to the logical operation of the DS, not to the hardware implementation of the serial port, which depends on the DS model.

The setting only influences the operation of the serial port in the data routing mode. When the serial port is in the serial programming mode it is always using the half-duplex interface- see serial programming for details.

0 (full-duplex) Suitable for RS232 and RS422 communications. RTS (output) and CTS (input) lines are used in a "normal" way i.e. for flow control between the DS and attached serial device (when current Flow Control (FC) [setting/ parameter]= 1 (enabled)), or signaling between the network host and attached serial device (through Set I/O Pin Status (Sx) instructions, Get I/O Pin Status (Gx) instructions, and Notification (J) messages).

1 (half-duplex) Suitable for RS485 communications. In this mode the RTS line provides direction control and the CTS line is unused. When the Ethernet-to-serial buffer of the DS is empty (nothing to send out through the serial port) the RTS line is HI*. When there is some data to send out the RTS line is LOW* for as long as the data is being output. Such behavior is intended to allow the RTS line to control the direction pin of the RS485 interface ICs and RS232-to-RS485 converters.

2 (auto) In this mode the DS selects full-duplex or half-duplex mode automatically, depending on the hardware. For Ethernet Modules selection is done by interconnecting or not interconnecting a pair of I/O pins. External Device Servers carry necessary selection circuit internally. Table below details interface selection through "hardware".

Hardware selection of full-duplex/half-duplex mode on Tibbo Device Servers

When Serial Interface is at 2 (auto) the DS selects full-duplex or half-duplex mode for its serial port basing on "hardware". Table below details hardware-based mode selection.

DS Model | For full-duplex mode | For half-duplex mode | Comments
EM100 | Leave CTS/SEL and ER/WS unconnected | Connect CTS/SEL to ER/WS** |
EM120 EM200 EM202 | Leave CTS/SEL and SR unconnected | Connect CTS/SEL to SR** |
DS100 EM100-EV | Always selected | --- | These products are based on the EM100; they only support RS232 i/f so CTS/SEL and ER/WS are left unconnected internally
DS100B | Depends on jumpers |  | This product is based on the EM100; jumpers "decide" whether CTS/SEL and ER/WS are interconnected
DS202 EM202-EV EM120/EM200-EV | Always selected | --- | These products are based on the EM120 or EM200; they only support RS232 i/f so CTS/SEL and SR are left unconnected internally

* HI and LOW states are described with respect to the serial ports of DS100R, DS100B, DS202R, EM100-EV, EM120/EM200-EV, EM202-EV. For EM100, EM120, EM200, EM202 the signaling is exactly opposite.

** Whether or not these two lines are interconnected is tested once at powerup. Connecting or separating these line during device operation will not cause immediate change of selected interface mode.


Flow Control (FC) setting

Description (see setting description format info here)

Function: Enables or disables hardware (RTS/CTS) flow control for the serial port of the DS (when in the data routing mode)

Set (S) command format: SFCx, where x: 0 (disabled), 1 (enabled)

Get (G) command format: GFC

Init (I) command effect: Initialized unconditionally, through network command, serial command, or quick initialization

Post-initialization value: 1 (enabled)

Change takes effect: After reboot or exiting the serial programming mode

Overriding parameter: Flow Control (FC) parameter

Relevance conditions: current Serial Interface (SI)= 0 (full duplex)

First introduced: Earlier than "baseline" V3.14/V3.51

See also: Serial port and serial communications, Data routing

Details

Flow Control setting defines the behavior of the RTS and CTS lines of the DS, unless overridden by the Flow Control (FC) parameter.

When the Flow Control is 0 (disabled) the status of the CTS input is ignored and the RTS line is at HIGH* unless changed by the remote host. Remote host can control the RTS line through Set I/O Pin Status (Sx) instructions or Notification (J) messages.

When the Flow Control is 1 (enabled) the RTS (output) and CTS (input) lines are used to regulate the flow of data across the serial cable connecting the DS to the attached serial device.

RTS is used to regulate the flow of data from the attached serial device to the DS. When the serial-to-Ethernet buffer of the DS has free space the RTS is HIGH* and the serial device is free to send the data. When the buffer becomes (almost) full the DS sets the RTS line to LOW* thus telling the serial device to stop sending the data. The RTS is set to LOW* when there are less than 20 free bytes left in the serial-to-Ethernet buffer. Additionally, the RTS line is set to LOW* in all cases when the serial port is closed.

CTS is used to regulate the flow of data from the DS to the attached serial device. As long as the DS detects HIGH* on its CTS input it is free to send out the data to the attached serial device. To stop the DS from sending out the data, the serial device must set the CTS line to LOW*. The DS won't send out the data for as long as it detects LOW* on its CTS input.

When the Flow Control is 1 (enabled) remote host cannot remotely control the status of the RTS line. Set I/O Pin Status instructions addressing the RTS pin are ignored by the DS (although the OK (A) status code is still returned) and incoming Notification (J) messages also have no effect on the state of the RTS line.

Remote host can get current status of RTS and CTS lines at any time using the Get I/O Pin Status (Gx) instruction, regardless of whether the Flow Control is 0 (disabled) or 1 (enabled). Status change monitoring for RTS and CTS lines can also be enabled and Notification (J) messages generated regardless of the value of the Flow Control setting.

Flow Control is irrelevant when the current serial interface is half-duplex.

* HIGH and LOW states are described with respect to the serial ports of DS100R, DS100B, DS202R, EM100-EV, EM120/EM200-EV, EM202-EV. For EM100, EM120, EM200, EM202 the signaling is exactly opposite.


DTR Mode (DT) setting

Description (see setting description format info here)

Function: Defines the function of the DTR line of the serial port of the DS

Set (S) command format: SDTx, where x: 0 (idle), 1 (connection status)

Get (G) command format: GDT

Init (I) command effect: Initialized unconditionally, through network command, serial command, or quick initialization

Post-initialization value: 0 (idle)

Change takes effect: After reboot

Overriding parameter: ---

Relevance conditions: ---

First introduced: Earlier than "baseline" V3.14/V3.51

See also: Ethernet port and network communications, Serial port and serial communications

Details

When the DTR Mode is 0 (idle) the DTR line is at HIGH* unless changed by the remote host. Remote host can control the RTS line through Set I/O Pin Status (Sx) instructions or Notification (J) messages.

When the DTR Mode is 1 (connection status) the DTR (output) line of the DS reflects current connection status: the DTR line is LOW* when no data connection is established at the moment and HIGH* when there is a data connection in progress.

Remote host can get current status of the DTR line at any time using the Get I/O Pin Status (Gx) instruction, regardless of whether the DTR Mode is 0 (idle) or 1 (connection status). Status change monitoring for the DTR line can also be enabled and Notification (J) messages generated regardless of the value of the DTR Mode setting.

* HIGH and LOW states are described with respect to the serial ports of DS100R, DS100B, DS202R, EM100-EV, EM120/EM200-EV, EM202-EV. For EM100, EM120, EM200, EM202 the signaling is exactly opposite.


Baudrate (BR) setting

Description (see setting description format info here)

Function: Defines the baudrate of the serial port of the DS

Set (S) command format: SBRx, where x: 0 (1200bps), 1 (2400bps), 2 (4800bps), 3 (9600bps), 4 (19200bps), 5 (38400bps), 6 (57600bps), 7 (115200bps), 8 (150bps), 9 (300bps), 10 (600bps), 11 (28800bps)

Get (G) command format: GBR

Init (I) command effect: Initialized unconditionally, through network command, serial command, or quick initialization

Post-initialization value: 5 (38400bps)

Change takes effect: After reboot or exiting the serial programming mode

Overriding parameter: Baudrate (BR) parameter

Relevance conditions: ---

First introduced: Earlier than "baseline" V3.14/V3.51

See also: Serial port and serial communications

Details

Baudrate setting defines the baudrate of the serial port of the DS.

This baudrate is used by the serial port in the data routing mode (unless overridden by the Baudrate (BR) parameter) and also in the serial programming mode, but only if the serial programming mode was entered through the escape sequence. If the serial programming mode is entered by pressing the setup button the baudrate becomes 38400bps regardless of the value of the Baudrate setting.


Parity (PR) setting

Description (see setting description format info here)

Function: Defines the parity mode of the serial port of the DS (when in the data routing mode)

Set (S) command format: SPRx, where x: 0 (off), 1 (even), 2 (odd), 3 (mark), 4 (space)

Get (G) command format: GPR

Init (I) command effect: Initialized unconditionally, through network command, serial command, or quick initialization

Post-initialization value: 0 (off)

Change takes effect: After reboot or exiting the serial programming mode

Overriding parameter: Parity (PR) parameter

Relevance conditions: ---

First introduced: Earlier than "baseline" V3.14/V3.51

See also: Serial port and serial communications

Details

Parity setting defines the parity mode of the serial port of the DS, unless overridden by the Parity (PR) parameter.

DS hardware does not have an option of two stop bits. The way around this is to set the Parity to 3 (mark). Since this means that the parity bit will always be set to 1 and since the parity bit is always transmitted in front of the stop bit, this will have the same result as having two stop bits.

The DS transmits the serial data with the parity bit correctly set but does not verify correctness of parity bits in the received data.

Parity is always off when the serial port is in the serial programming mode.


Bits Per Byte (BB) setting

Description (see setting description format info here)

Function: Defines the bits/byte mode of the serial port of the DS (when in the data routing mode)

Set (S) command format: SBBx, where x: 0 (7 bits), 1 (8 bits)

Get (G) command format: GBB

Init (I) command effect: Initialized unconditionally, through network command, serial command, or quick initialization

Post-initialization value: 1 (8 bits)

Change takes effect: After reboot or exiting the serial programming mode

Overriding parameter: Bits per byte (PR) parameter

Relevance conditions: ---

First introduced: Earlier than "baseline" V3.14/V3.51

See also: Serial port and serial communications

Details

Bits per byte setting defines the bits/byte mode of the serial port of the DS, unless overridden by the Bits per byte (BB) parameter.

8 bits/byte are always used when the DS is in the serial programming mode.


Soft Entry (SE) setting

Description (see setting description format info here)

Function: Disables or enabled serial programming mode entry through escape sequence and selects escape sequence type

Set (S) command format: SSEx, where x: 0 (disabled), 1 (type 1), 2 (type 2)

Get (G) command format: GSE

Init (I) command effect: Initialized unconditionally, through network command, serial command, or quick initialization

Post-initialization value: 0 (disabled)

Change takes effect: After reboot or exiting the serial programming mode

Overriding parameter: ---

Relevance conditions: ---

First introduced: Earlier than "baseline" V3.14/V3.51

See also: Serial programming, Data routing

Details

Soft Entry controls serial programming mode entry through escape sequence:

0 (disabled) Serial programming mode entry through escape sequence is disabled.

1 (type 1) Type 1 escape sequence consists of three consecutive escape characters (ASCII code of escape character is defined by the Escape Character (EC) setting). For the escape sequence to be recognized each of the escape characters must be preceded by a time gap of at least 100ms:

...previous data
<--100ms-->
E.C.
<--100ms-->
E.C.
<--100ms-->
E.C.

If the time gap before a certain escape character exceeds 100ms then this character is considered to be a part of the escape sequence and is not recorded into the serial-to-Ethernet buffer. If the time gap before a certain escape character is less than 100ms than this character is considered to be a normal data character and is saved into the serial-to-Ethernet buffer. Additionally, escape character counter is reset and the escape sequence must be started again. The following example illustrates one important point (escape characters are shown as <). Supposing, attached serial device sends the following string:

ABC<--100ms--><<--100ms--><<DE

First two escape characters is this example had correct time gap before them, so they were counted as a part of the escape sequence and not saved into the buffer. The third escape character did not have a correct time gap so it was interpreted as a data character and saved into the buffer. The following was routed to the network host:

ABC<DE

The side effect and the point this example illustrates is that first two escape characters were lost- they neither became a part of a successful escape sequence (because this sequence wasn't completed), nor were saved into the buffer.

2 (type 2) Type 2 escape sequence is not based on any timing. Escape sequence consists of escape character (defined by the Escape Character (EC) setting) followed by any character other than escape character. To send a data character whose ASCII code matches that of escape character the serial device needs to send this character twice. This will result in a single character being saved into the serial-to-Ethernet routing buffer. It is the responsibility of the serial device to parse through the data it sends to the DS and "double" all characters whose code matches that of escape character.

Example: the following sequence will make the DS enter the serial programming mode (that is, if current escape character is not 'D'):

ABC<D

In the sequence below two consequtive escape characters will be interpreted as data (data routed to the network host will contain only one such character- the DS will automatically eliminate the second one):

ABC<<

It should be noted that attached serial device should parse the data and double certain characters only for the data it sends to the DS. Reverse operation is not needed for the data being received by the serial device from the DS. Characters with ASCII code matching that of escape character arrive from the DS in a normal way- i.e. they are not "doubled".


Escape Character (EC) setting

Description (see setting description format info here)

Function: Defines ASCII code of character used in escape sequence

Set (S) command format: SECccc, where ccc is the ASCII code of escape character

Get (G) command format: GEC

Init (I) command effect: Initialized unconditionally, through network command, serial command, or quick initialization

Post-initialization value: 1

Change takes effect: After reboot or exiting the serial programming mode

Overriding parameter: ---

Relevance conditions: Soft Entry (SE) setting= 1 (type 1) or 2 (type 2)

First introduced: V3.24/3.54

See also: Serial programming

Details

This setting defines the ASCII code of character used in escape sequence. Which escape sequence, if any, is used is defined by the Soft Entry (SE) setting.

Escape Character is irrelevant when the Soft Entry (SE) setting is 0 (disabled).


On-the-fly Commands (RC) setting

Description (see setting description format info here)

Function: Enables or disables on-the-fly command processing by the DS

Set (S) command format: SRCx, where x: 0 (disabled), 1 (enabled)

Get (G) command format: GRC

Init (I) command effect: Initialized unconditionally, through network command, serial command, or quick initialization

Post-initialization value: 0 (disabled)

Change takes effect: After reboot

Overriding parameter: ---

Relevance conditions: ---

First introduced: Earlier than "baseline" V3.14/V3.51

See also: Serial port and serial communications, Authentication, On-the-fly (network-side) Parameters and instructions

Details

When On-the-fly Commands setting is 1 (enabled) the DS will accept on-the-fly commands (network-side parameters and instructions) from the network host. When On-the-fly Commands setting is 0 (disabled) the DS will reject on-the-fly commands from the host (Denied (D) reply code will be returned).

On-the-fly commands do not require prior authentication through Login (L) command. Password protection specifically for on-the-fly commands can be enabled through the On-the-fly Password (OP) setting.

On-the-fly commands provide a way of remotely controlling the serial port of the DS, hence, the name of this setting- "Remote Control".


On-the-fly Password (OP) setting

Description (see setting description format info here)

Function: Enables or disables password protection for on-the-fly commands

Set (S) command format: SOPx, where x: 0 (disabled), 1 (enabled)

Get (G) command format: GOP

Init (I) command effect: Initialized unconditionally, through network command, serial command, or quick initialization

Post-initialization value: 0 (disabled)

Change takes effect: After reboot

Overriding parameter: ---

Relevance conditions: On-the-fly Commands (RC) setting= 1 (enabled)

First introduced: Earlier than "baseline" V3.14/V3.51

See also: Serial port and serial communications, Authentication

Details

On-the-fly commands (network-side parameters and instructions) do not require prior authentication through Login (L) command. On-the-fly Password enables password authentication specifically for on-the-fly commands, i.e. for the Parameter (P) command that carries them.

When On-the-fly Password is 1 (enabled) and the Password (PW) setting is set (not <NULL>) the network host must supply a valid password with every Parameter (P) command it sends (see this command's description for more information on how to do this).

On-the-fly Password is irrelevant when the On-the-fly Commands (RC) setting is 0 (disabled) because in this case the DS doesn't accept on-the-fly commands at all.


Notification Bitmask (NB) setting

Description (see setting description format info here)

Function: Defines which I/O lines of the DS are monitored for changes

Set (S) command format: SNBbbb, where bbb is a "collection" of bit flags each of which disables (when 0) or enables (when 1) status change monitoring for a specific I/O line of the DS. Allowable value range is 0-255.

Get (G) command format: GNB

Init (I) command effect: Initialized unconditionally, through network command, serial command, or quick initialization

Post-initialization value: 0 (status change monitoring is disabled for all I/O lines)

Change takes effect: After reboot

Overriding parameter: ---

Relevance conditions: ---

First introduced: Earlier than "baseline" V3.14/V3.51

See also: Serial port and serial communications, Notification Destination (ND) setting

Details

Notification Bitmask defines which I/O lines are monitored for changes. When the line being monitored changes its state a Notification (J) message is generated and sent to the network host with which the DS has an established data connection.

Notification Bitmask is a byte value each bit of which disables (when 0) or enables (when 1) status change monitoring for a specific I/O line. Bit assignment is as follows:

Bit position
DS100R, EM100-EV
DS100B, DS202R, EM120/EM200-EV*, EM202-EV-RS
0 (LSB)
<Not implemented>
<Not implemented>
1
<Not implemented>
<Not implemented>
2
<Not implemented>
DSR (input)
3
<Not implemented>
DTR (output)**
4
CTS (input)
CTS (input)
5
RTS (output)**
RTS (output)**
6
<Not implemented>
<Not implemented>
7 (MSB)
<Not implemented>
<Not implemented>

Bit position
EM100
EM120, EM200
EM202, EM202-EV-TM, EM202-EV-TS
0 (LSB)
P0
<Not implemented>
<Not implemented>
1
P1
<Not implemented>
<Not implemented>
2
P2/DSR(input)***
P2/DSR(input)***
P2/DSR(input)***
3
P3/DTR(output)***
P3/DTR(output)***
P3/DTR(output)***
4
P4/CTS(input)***
P4/CTS(input)***
P4/CTS(input)***
5
P5/RTS(output)***
P5/RTS(output)***
P5/RTS(output)***
6
<Not implemented>
P6
<Not implemented>
7 (MSB)
<Not implemented>
P7
<Not implemented>

* This data is for the case when you are using RS232 FB9M connector of the EM120/EM200-EV. If you are using expansion connector (three jumpers removed) then use I/O data for the EM120 and EM200 Modules

** From firmware standpoint, these are general-purpose I/O lines. These I/O lines, however, are connected to the CMOS inputs of RS232 (RS422, RS485) transceivers and that dictates that the lines can only be used as outputs. Therefore, it is meaningless to enable notifications for such lines

*** These are general-purpose input/output pins. Application firmware uses these pins to implement specific serial port functionality (shown in blue) and this defines "logical" direction of the pins

Example: if Notification Bitmask is set to 20 then status change monitoring is enabled for lines DSR and CTS (binary representation of this value is 00010100, bits 2 and 4 are set, corresponding I/O lines are DSR and CTS).

Be sure to keep the mask bit for unimplemented and reserved lines at 0.

For the line status change to be detected, the new status must be preserved for at least 0.5 second. Shorter "pulses" are ignored.

Note, that there is no bit for line P8 found on EM120 and EM200 Modules.


Encapsulation Settings

Encapsulation settings define what incoming serial data is recorded into the serial-to-Ethernet routing buffer and when and how this data is combined into the network packets and sent to the network host. For more information see serial-to-Ethernet data routing.

The following settings belong to this group:

Setting | Description
Maximum Packet Length (ML) setting | Defines after how many new bytes recorded into the serial-to-Ethernet buffer a break condition will be generated
Maximum Intercharacter Delay (MD) setting | Defines the maximum time gap between two consecutive characters recorded into the serial-to-Ethernet buffer, exceeding which will trigger a break condition
Start On Any Character (SA) setting | Defines whether the (next) data block can be opened by a specific character or any character
Use Start Character (F1) setting | Enables or disables the use of the start character
Start Character Code (S1) setting | Defines ASCII code of the start character
Use Stop Character (U1) setting | Enables or disables the use of the stop character
Stop Character Code (E1) setting | Defines ASCII code of the stop character
Number of Post Characters (P1) setting | Defines the number of post characters for the stop character


Maximum Packet Length (ML) setting

Description (see setting description format info here)

Function: Defines after how many new bytes recorded into the serial-to-Ethernet buffer a break condition will be generated

Set (S) command format: SMLlll, where lll is the number of new bytes in the 1-255 range

Get (G) command format: GML

Init (I) command effect: Initialized unconditionally, through network command, serial command, or quick initialization

Post-initialization value: 255 (bytes)

Change takes effect: After reboot or exiting the serial programming mode

Overriding parameter: ---

Relevance conditions: Current Transport Protocol (TP) [setting/ parameter]= 0 (UDP)

First introduced: Earlier than "baseline" V3.14/V3.51

See also: Serial-to-Ethernet data routing

Details

Maximum Packet Length defines after how many new bytes recorded into the serial-to-Ethernet buffer a break condition will be generated. Break conditions are related to routing the data in the serial-to-Ethernet direction. See serial-to-Ethernet data routing for more information.

Maximum Packet Length is irrelevant when current Transport Protocol (TP) [setting/ parameter] is 1 (TCP) because in this mode the DS ignores the value of the Maximum Packet Length setting and uses the run-time parameter of 127 bytes.


Maximum Intercharacter Delay (MD) setting

Description (see setting description format info here)

Function: Defines the maximum time gap between two consecutive characters recorded into the serial-to-Ethernet buffer, exceeding which will trigger a break condition

Set (S) command format: SMDddd, where ddd is the time gap in the 0-255 range (0-2550 ms), value of 0 deactivates break condition generation on time gaps

Get (G) command format: GMD

Init (I) command effect: Initialized unconditionally, through network command, serial command, or quick initialization

Post-initialization value: 1 (10 ms)

Change takes effect: After reboot or exiting the serial programming mode

Overriding parameter: ---

Relevance conditions: ---

First introduced: Earlier than "baseline" V3.14/V3.51

See also: Serial-to-Ethernet data routing

Details

Maximum Intercharacter Delay defines the maximum time gap between two consecutive characters recorded into the serial-to-Ethernet buffer, exceeding which will trigger a break condition. Break conditions are related to routing the data in the serial-to-Ethernet direction. See serial-to-Ethernet data routing for more information.

Intercharacter delay can be set in 10 ms increments. Delay tracking is disabled when Maximum Intercharacter Delay is set to 0.

Intercharacter delay is not counted when the Flow Control (FC) setting is 1 (enabled) and the DS is holding the RTS line in the LOW* state thus indicating to the attached serial device that the DS is not ready to receive the data. This is done to prevent the DS from generating the break conditions on time gaps caused by the DS itself.

* HIGH and LOW states are described with respect to the serial ports of DS100R, DS100B, DS202R, EM100-EV, EM120/EM200-EV, EM202-EV. For EM100, EM120, EM200, EM202 the signaling is exactly opposite.


Start On Any Character (SA) setting

Description (see setting description format info here)

Function: Defines whether the (next) serial data block can be opened by a specific character or any character

Set (S) command format: SSAx, where x: 0 (disabled), 1 (enabled)

Get (G) command format: GSA

Init (I) command effect: Initialized unconditionally, through network command, serial command, or quick initialization

Post-initialization value: 1 (enabled)

Change takes effect: After reboot or exiting the serial programming mode

Overriding parameter: ---

Relevance conditions: ---

First introduced: Earlier than "baseline" V3.14/V3.51

See also: Serial-to-Ethernet data routing

Details

When Start On Any Character is 1 (enabled) then any character received into the serial port past the end of the previous serial data block will open a new serial data block. When the Start On Any Character is 0 (disabled) then only a selected specific character defined by the Start Character Code (S1) setting (must be enabled through the Use Start Character (F1) setting) will be able to open the new serial data block. All data between the end of the previous serial data block and this start character will be ignored.

Serial data blocks are related to routing the data in the serial-to-Ethernet direction. For more information see serial-to-Ethernet data routing.


Use Start Character (F1) setting

Description (see setting description format info here)

Function: Enables or disables the use of the start character

Set (S) command format: SF1x, where x: 0 (disabled), 1 (enabled)

Get (G) command format: GF1

Init (I) command effect: Initialized unconditionally, through network command, serial command, or quick initialization

Post-initialization value: 0 (disabled)

Change takes effect: After reboot or exiting the serial programming mode

Overriding parameter: ---

Relevance conditions: Start On Any Character (SA) setting= 0 (disabled)

First introduced: Earlier than "baseline" V3.14/V3.51

See also: Serial-to-Ethernet data routing

Details

This setting enables the use of specific character code as the start character that can open the serial data block. Start character code itself is defined by the Start Character Code (S1) setting. Serial data blocks are related to routing the data in the serial-to-Ethernet direction. See serial-to-Ethernet data routing for more information.

Use Start Character is irrelevant when the Start on Any Character (SA) setting is 1 (enabled) because in this case the new serial data block is opened by any character and there is no need to set a specific start character.

Care should be taken not to disable Use Start Character and Start on Any Character (SA) setting at the same time. No data will ever be accepted into the serial port of the DS in this case!


Start Character Code (S1) setting

Description (see setting description format info here)

Function: Defines ASCII code of the start character

Set (S) command format: SS1ccc, where ccc is the ASCII code of the start character in the 0-255 range

Get (G) command format: GS1

Init (I) command effect: Initialized unconditionally, through network command, serial command, or quick initialization

Post-initialization value: 0

Change takes effect: After reboot or exiting the serial programming mode

Overriding parameter: ---

Relevance conditions: Start On Any Character (SA) setting= 0 (disabled) AND Use Start Character (F1) setting= 1 (enabled)

First introduced: Earlier than "baseline" V3.14/V3.51

See also: Serial-to-Ethernet data routing

Details

This setting defines the ASCII code of the start character that can open the serial data block. Start character must be enabled separately through the Use Start Character (F1) setting. Serial data blocks are related to routing the data in the serial-to-Ethernet direction. See serial-to-Ethernet data routing for more information.

Start Character Code is irrelevant when the Start on Any Character (SA) setting is 1 (enabled) because in this case the new serial data block is opened by any character and there is no need to set a specific start character.


Use Stop Character (U1) setting

Description (see setting description format info here)

Function: Enables or disables the use of the stop character

Set (S) command format: SU1x, where x: 0 (disabled), 1 (enabled)

Get (G) command format: GU1

Init (I) command effect: Initialized unconditionally, through network command, serial command, or quick initialization

Post-initialization value: 0 (disabled)

Change takes effect: After reboot or exiting the serial programming mode

Overriding parameter: ---

Relevance conditions: ---

First introduced: Earlier than "baseline" V3.14/V3.51

See also: Serial-to-Ethernet data routing

Details

This setting enables the use of specific character code as the stop character that can close the serial data block. Stop character code itself is defined by the Stop Character Code (S1) setting. It is also possible to have the serial data block closed not on the stop character itself but after a predefined number of characters after the stop character. This is done through the Number Of Post Characters (P1) setting.

Serial data blocks are related to routing the data in the serial-to-Ethernet direction. See serial-to-Ethernet data routing for more information.

If Use Stop Character is 0 (disabled) the serial data block, once opened, never closes.


Stop Character Code (E1) setting

Description (see setting description format info here)

Function: Defines ASCII code of the stop character

Set (S) command format: SE1ccc, where ccc is the ASCII code of the stop character in the 0-255 range

Get (G) command format: GE1

Init (I) command effect: Initialized unconditionally, through network command, serial command, or quick initialization

Post-initialization value: 0

Change takes effect: After reboot or exiting the serial programming mode

Overriding parameter: ---

Relevance conditions: Use Stop Character (U1) setting= 1 (enabled)

First introduced: Earlier than "baseline" V3.14/V3.51

See also: Serial-to-Ethernet data routing

Details

This setting defines the ASCII code of the stop character that can close the serial data block. The usage of the stop character must be enabled separately through the Use Stop Character (U1) setting. It is also possible to have the serial data block closed not on the stop character itself but after a predefined number of characters after the stop character. This is done through the Number Of Post Characters (P1) setting.

Serial data blocks are related to routing the data in the serial-to-Ethernet direction. See serial-to-Ethernet data routing for more information.


Number Of Post Characters (P1) setting

Description (see setting description format info here)

Function: Defines the number of post characters for the stop character

Set (S) command format: SP1x, where x: is the number of post characters in the 0-15 range

Get (G) command format: GP1

Init (I) command effect: Initialized unconditionally, through network command, serial command, or quick initialization

Post-initialization value: 0

Change takes effect: After reboot or exiting the serial programming mode

Overriding parameter: ---

Relevance conditions: Use Stop Character (U1) setting= 1 (enabled)

First introduced: Earlier than "baseline" V3.14/V3.51

See also: Serial-to-Ethernet data routing, Stop Character Code (E1) setting

Details

Number Of Post Characters defines the number of characters received past the stop character that will still be counted as belonging to the same serial data block. Serial data blocks are related to routing the data in the serial-to-Ethernet direction. See serial-to-Ethernet data routing for more information.

Number of Post Characters is irrelevant when the Use Stop Character (U1) setting is 0 (disabled) because in this case the stop character is disabled.


Parameters and Instructions

This section contains a reference for all DS parameters and instructions.

Parameters are temporary overrides for settings. Parameters are not saved into the EEPROM and take immediate effect (no rebooting required). Instructions are used to make the DS perform a certain action.

Parameter and instruction description format can be found here.

All parameters and instructions can be divided into two groups:

· On-the-fly (network-side) parameters and instructions are delivered to the DS via the network Parameter (P) command and are used to change communications mode of the serial port of the DS without rebooting (i.e. "on-the-fly") and also set and sense the state of the I/O lines of the DS. For more information see serial port and serial communications;

· Modem (serial-side) parameters and instructions are delivered to the DS via the serial Parameter (P) command and are used to control data connection establishment and termination by the DS. For more information see Ethernet port and network communications.


Parameter & Instruction Description Format

All parameters and instructions in this section are described using the following format:

Function: Parameter (instruction) function in brief

Parameter (P) cmd format: Syntax of the Parameter (P) command that is used to send this parameter (instruction)

Possible replies: Lists all possible reply status codes that can be returned in response to the Parameter (P) command carrying this parameter (instruction)

Relevance conditions: Some parameters (instructions) are relevant to the operation of the DS only when other settings (or their overriding parameters) have certain values

First introduced: Describes whether this parameter (instruction) has been available right from the "baseline" firmware version of 3.14/3.51 or was introduced in a later firmware release

See also: Additional relevant links

Details

Additional information about the parameter (instruction).


On-the-fly (Network-Side) Parameters & Instructions

On-the-fly (network-side) parameters and instructions are delivered to the DS via the network Parameter (P) command and are used to change communications mode of the serial port of the DS without rebooting (i.e. "on-the-fly") and also set and sense the state of the I/O lines of the DS. For more information see serial port and serial communications.

The following parameters and instructions belong to this group:

Parameter/ instruction | Description
Flow Control (FC) parameter | Overrides Flow Control (FC) setting
Baudrate (BR) parameter | Overrides Baudrate (BR) setting
Parity (PR) parameter | Overrides Parity (PR) setting
Bits Per Byte (BB) parameter | Overrides Bits Per Byte (BB) setting
Notification Bitmask (NB) parameter | Overrides Notification Bitmask (NB) setting
Get I/O Pin Status (Gx) instruction | Reads the status of a certain I/O line of the DS
Set I/O Pin Status (Sx) instruction | Sets the status of a certain I/O line of the DS


Flow Control (FC) parameter

Description (see parameter description format info here)

Function: Overrides Flow Control (FC) setting

Parameter (P) cmd format: PFCx, where x: 0 (disabled), 1 (enabled)

Possible replies: A, C, D, R

Relevance conditions: current Serial Interface (SI)= 0 (full duplex)

First introduced: Earlier than "baseline" V3.14/V3.51

See also: Serial port and serial communications

Details

Flow Control parameter overrides the Flow Control (FC) setting.

Error (C) reply code is returned if the data supplied in the command is invalid. Denied (D) reply code is returned if:

· On-the-fly Commands (RC) setting is 0 (disabled).

· If no password or incorrect password is supplied while the On-the-fly Password (OP) setting is 1 (enabled) and the password is set (value of the Password (PW) setting is not <NULL>).

Rejected (R) reply code is returned if this command is sent while the DS is in the serial programming mode.


Baudrate (BR) parameter

Description (see parameter description format info here)

Function: Overrides Baudrate (BR) setting

Parameter (P) cmd format: PBRx, where x: 0 (1200bps), 1 (2400bps), 2 (4800bps), 3 (9600bps), 4 (19200bps), 5 (38400bps), 6 (57600bps), 7 (115200bps), 8 (150bps), 9 (300bps), 10 (600bps), 11 (28800bps)

Possible replies: A, C, D, R

Relevance conditions: ---

First introduced: Earlier than "baseline" V3.14/V3.51

See also: Serial port and serial communications

Details

Baudrate parameter overrides the Baudrate (BR) setting.

Error (C) reply code is returned if the data supplied in the command is invalid. Denied (D) reply code is returned if:

· On-the-fly Commands (RC) setting is 0 (disabled).

· If no password or incorrect password is supplied while the On-the-fly Password (OP) setting is 1 (enabled) and the password is set (value of the Password (PW) setting is not <NULL>).

Rejected (R) reply code is returned if this command is sent while the DS is in the serial programming mode.


Parity (PR) parameter

Description (see parameter description format info here)

Function: Overrides Parity (PR) setting

Parameter (P) cmd format: PPRx, where x: 0 (off), 1 (even), 2 (odd), 3 (mark), 4 (space)

Possible replies: A, C, D, R

Relevance conditions: ---

First introduced: Earlier than "baseline" V3.14/V3.51

See also: Serial port and serial communications

Details

Parity parameter overrides the Parity (PR) setting.

Error (C) reply code is returned if the data supplied in the command is invalid. Denied (D) reply code is returned if:

· On-the-fly Commands (RC) setting is 0 (disabled).

· If no password or incorrect password is supplied while the On-the-fly Password (OP) setting is 1 (enabled) and the password is set (value of the Password (PW) setting is not <NULL>).

Rejected (R) reply code is returned if this command is sent while the DS is in the serial programming mode.


Bits Per Byte (BB) parameter

Description (see parameter description format info here)

Function: Overrides Bits Per Byte (BB) setting

Parameter (P) cmd format: PBBx, where x: 0 (7 bits), 1 (8 bits)

Possible replies: A, C, D, R

Relevance conditions: ---

First introduced: Earlier than "baseline" V3.14/V3.51

See also: Serial port and serial communications

Details

Bits Per Byte parameter overrides the Bits Per Byte (BB) setting.

Error (C) reply code is returned if the data supplied in the command is invalid. Denied (D) reply code is returned if:

· On-the-fly Commands (RC) setting is 0 (disabled).

· If no password or incorrect password is supplied while the On-the-fly Password (OP) setting is 1 (enabled) and the password is set (value of the Password (PW) setting is not <NULL>).

Rejected (R) reply code is returned if this command is sent while the DS is in the serial programming mode.


Notification Bitmask (NB) parameter

Description (see parameter description format info here)

Function: Overrides Notification Bitmask (NB) setting

Parameter (P) cmd format: PNBbbb, where bbb is a "collection" of bit flags each of which disables (when 0) or enables (when 1) status change monitoring for a specific I/O line of the DS. Allowable value range is 0-255

Possible replies: A, C, D, R

Relevance conditions: ---

First introduced: Earlier than "baseline" V3.14/V3.51

See also: Serial port and serial communications

Details

Notification Bitmask parameter overrides the Notification Bitmask (NB) setting. See Notification Bitmask (NB) setting for the bit position assignment within the bbb value.

Error (C) reply code is returned if the data supplied in the command is invalid. Denied (D) reply code is returned if:

· On-the-fly Commands (RC) setting is 0 (disabled).

· If no password or incorrect password is supplied while the On-the-fly Password (OP) setting is 1 (enabled) and the password is set (value of the Password (PW) setting is not <NULL>).

Rejected (R) reply code is returned if this command is sent while the DS is in the serial programming mode.


Get I/O Pin Status (Gx) instruction

Description (see instruction description format info here)

Function: Reads the status of a certain I/O line of the DS

Parameter (P) cmd format: PGx, where x is the I/O line number

Possible replies: As, C, D, R, where s is the state of I/O line (0 or 1)

Relevance conditions: ---

First introduced: Earlier than "baseline" V3.14/V3.51

See also: Serial port and serial communications

Details

Get I/O Pin Status instruction returns the status of the DS I/O line specified by the x parameter:

Value of x
DS100R, EM100-EV
DS100B, DS202R, EM120/EM200-EV*, EM202-EV-RS
0
<Not implemented>
<Not implemented>
1
<Not implemented>
<Not implemented>
2
<Not implemented>
DSR (input)**
3
<Not implemented>
DTR (output)**
4
CTS (input)
CTS (input)**
5
RTS (output)**
RTS (output)**
6
<Not implemented>
<Not implemented>
7
<Not implemented>
<Not implemented>
8
<Not implemented>
<Not implemented>

Value of x
EM100
EM120, EM200
EM202, EM202-EV-TM, EM202-EV-TS
0
P0
<Not implemented>
<Not implemented>
1
P1
<Not implemented>
<Not implemented>
2
P2/DSR(input)***
P2/DSR(input)***
P2/DSR(input)***
3
P3/DTR(output)***
P3/DTR(output)***
P3/DTR(output)***
4
P4/CTS(input)***
P4/CTS(input)***
P4/CTS(input)***
5
P5/RTS(output)***
P5/RTS(output)***
P5/RTS(output)***
6
<Not implemented>
P6
<Not implemented>
7
<Not implemented>
P7
<Not implemented>
8
<Not implemented>
P8
<Not implemented>

* This data is for the case when you are using RS232 FB9M connector of the EM120/EM200-EV. If you are using expansion connector (three jumpers removed) then use I/O data for the EM120 and EM200 Modules

** From firmware standpoint, these are general-purpose lines of the Ethernet Modules that can be used as inputs. These I/O lines, however, are connected to the CMOS inputs of RS232 (RS422, RS485) transceivers and that dictates that the lines can only be used as outputs.

*** These are general-purpose input/output pins. Application firmware uses these pins to implement specific serial port functionality (shown in blue) and this defines "logical" direction of the pins

I/O line status (s) returned by the Get I/O Pin Status instruction indicates current status of the I/O lines of Modules. For Serial Device Servers and Boards that incorporate RS232 transceivers actual line status on the RS232 connector actual line status is exactly opposite to the value of s: if s=0 then the line is at HIGH, if s=1- the line is at LOW. Notice, that not only inputs, but also outputs can be monitored using this command.

Error (C) reply code is returned if the data supplied in the command is invalid. Denied (D) reply code is returned if:

· On-the-fly Commands (RC) setting is 0 (disabled).

· If no password or incorrect password is supplied while the On-the-fly Password (OP) setting is 1 (enabled) and the password is set (value of the Password (PW) setting is not <NULL>).

Rejected (R) reply code is returned if this command is sent while the DS is in the serial programming mode.

I/O line status can be set using Set I/O Pin Status (Sx) instruction.


Set I/O Pin Status (Sx) instruction

Description (see instruction description format info here)

Function: Sets the status of a certain I/O line of the DS

Parameter (P) cmd format: PSxs, where x is the I/O line number and s is the desired status of the I/O line (0 or 1)

Possible replies: A, C, D, R

Relevance conditions: ---

First introduced: Earlier than "baseline" V3.14/V3.51

See also: Serial port and serial communications

Details

Sets I/O Pin Status instruction allows the network host to remotely set the status of the DS I/O line. Parameter x specifies the I/O line:

Value of x
DS100R, EM100-EV
DS100B, DS202R, EM120/EM200-EV*, EM202-EV-RS
0
<Not implemented>
<Not implemented>
1
<Not implemented>
<Not implemented>
2
<Not implemented>
DSR (input)**
3
<Not implemented>
DTR (output)
4
CTS (input)**
CTS (input)**
5
RTS (output)
RTS (output)
6
<Not implemented>
<Not implemented>
7
<Not implemented>
<Not implemented>
8
<Not implemented>
<Not implemented>

Value of x
EM100
EM120, EM200
EM202, EM202-EV-TM, EM202-EV-TS
0
P0
<Not implemented>
<Not implemented>
1
P1
<Not implemented>
<Not implemented>
2
<Cannot be set>***
P2/DSR(input)****
P2/DSR(input)****
3
P3/DTR(output)****
P3/DTR(output)****
P3/DTR(output)****
4
P4/CTS(input)****
P4/CTS(input)****
P4/CTS(input)****
5
P5/RTS(output)****
P5/RTS(output)****
P5/RTS(output)****
6
<Not implemented>
P6
<Not implemented>
7
<Not implemented>
P7
<Not implemented>
8
<Not implemented>
P8
<Not implemented>

* This data is for the case when you are using RS232 FB9M connector of the EM120/EM200-EV. If you are using expansion connector (three jumpers removed) then use I/O data for the EM120 and EM200 Modules

** From firmware standpoint, these are general-purpose lines of the Ethernet Modules that can be used as outputs. These I/O lines, however, are connected to the CMOS outputs of RS232 (RS422, RS485) transceivers and that dictates that the lines must only be used as inputs.

*** Hardware limitation

**** These are general-purpose input/output pins. Application firmware uses these pins to implement specific serial port functionality (shown in blue) and this defines "logical" direction of the pins

Desired I/O line state (s) corresponds to the status of I/O lines of Modules. For Serial Device Servers and Boards that incorporate RS232 transceivers actual line status on the RS232 connector is exactly opposite to the value of s: if s=0 then the line will be set to HIGH, if s=1- the line will be set to LOW.

Error (C) reply code is returned if the data supplied in the command is invalid. Denied (D) reply code is returned if:

· On-the-fly Commands (RC) setting is 0 (disabled).

· If no password or incorrect password is supplied while the On-the-fly Password (OP) setting is 1 (enabled) and the password is set (value of the Password (PW) setting is not <NULL>).

Rejected (R) reply code is returned if this command is sent while the DS is in the serial programming mode.

There are several cases when the Set I/O Pin Status (Sx) instruction is ignored by the DS:

· When the current Flow Control (FC) [setting/ parameter] is 1 (enabled) or current Serial Interface (SI) is 1 (half-duplex) the DS ignores SP5s commands (i.e. commands that attempt to set the status of the RTS line). This is because in this case the RTS line is under the internal control of the DS.

· When the DTR Mode (DT) setting is 1 (connection status) the DS ignores SP3s commands (i.e. commands that attempt to set the status of the DTR line). This is because in this case the DTR line is under the internal control of the DS.

Note, that in all above cases the DS still returns OK (A) reply code but the commands are discarded internally.


Modem (Serial-Side) Parameters & Instructions

Modem (serial-side) parameters and instructions are delivered to the DS via the serial Parameter (P) command and are used to control data connection establishment and termination by the DS. For more information see Ethernet port and network communications.

The following parameters and instructions belong to this group:

Parameter/ instruction | Description
Transport Protocol (TP) parameter | Overrides Transport Protocol (TP) setting
Link Server Login (TL) parameter [V3.24/3.54+] | Overrides LS Login (TL) setting
Routing Mode (RM) parameter | Overrides Routing Mode (RM) setting
Source IP Filtering (SF) parameter | Overrides Source IP Filtering (SF) setting
Destination IP-address (DI) parameter | Overrides Destination IP-address (DI) setting
Destination Port Number (DP) parameter | Overrides Destination Port Number (PN) setting
Establish Connection (CE) instruction | Makes the DS establish data connection with the network host
Close Connection (CC) instruction | Makes the DS close data connection with the network host, reset buffer overflow flags
Abort Connection (CA) instruction | Makes the DS abort data connection with the network host, reset buffer overflow flags


Transport Protocol (TP) parameter

Description (see parameter description format info here)

Function: Overrides Transport Protocol (TP) setting

Parameter (P) cmd format: PTPx, where x: 0 (UDP), 1 (TCP)

Possible replies: A, C, R

Relevance conditions: ---

First introduced: Earlier than "baseline" V3.14/V3.51

See also: Ethernet port and network communications

Details

Transport Protocol parameter overrides the Transport Protocol (TP) setting.

Error (C) reply code is returned if the data supplied in the command is invalid. Rejected (R) reply code is returned if:

· Command is issued while the IP-address of the DS is not properly configured (DHCP (DH) setting is 1 (enabled) and the DS hasn't yet obtained the IP-address from the DHCP server).

· Current data connection state is not "closed". Transport protocol cannot be changed while the connection is in progress. Close (or shut) the connection using the Close Connection (CC) instruction or Abort Connection (CA) instruction first. Current connection status can be verified using Echo (X) command (c flag).


Link Server Login (TL) parameter

Description (see parameter description format info here)

Function: Overrides Link Server Login (TL) setting

Parameter (P) cmd format: PTLx, where x: 0 (disabled), 1 (enabled)

Possible replies: A, C

Relevance conditions: Current Transport Protocol (TP) [setting/parameter]= 1 (TCP)

First introduced: V3.24/3.54

See also: Ethernet port and network communications

Details

Link Server Login parameter overrides the Link Server Login (TL) setting.

Error (C) reply code is returned if the data supplied in the command is invalid.


Routing Mode (RM) parameter

Description (see parameter description format info here)

Function: Overrides Routing Mode (RM) setting

Parameter (P) cmd format: PRMx, where x: 0 (server), 1 (server/client), 2 (client)

Possible replies: A, C, R

Relevance conditions: ---

First introduced: Earlier than "baseline" V3.14/V3.51

See also: Ethernet port and network communications

Details

Routing Mode parameter overrides the Routing Mode (RM) setting.

Error (C) reply code is returned if the data supplied in the command is invalid. Rejected (R) reply code is returned if this command is issued while the IP-address of the DS is not properly configured (DHCP (DH) setting is 1 (enabled) and the DS hasn't yet obtained the IP-address from the DHCP server).


Source IP Filtering (SF) parameter

Description (see parameter description format info here)

Function: Overrides Source IP Filtering (SF) setting

Parameter (P) cmd format: PSFx, where x: 0 (disabled), 1 (enabled)

Possible replies: A, C

Relevance conditions: Current Routing Mode (RM) [setting/parameter]= 0 (server) or 1 (server/client)

First introduced: V3.24/3.54

See also: Ethernet port and network communications

Details

Source IP Filtering parameter overrides the Source IP Filtering (SF) setting.

Error (C) reply code is returned if the data supplied in the command is invalid.


Destination IP-address (DI) parameter

Description (see parameter description format info here)

Function: Overrides Destination IP-address (DI) setting

Parameter (P) cmd format: PDIxxx.xxx.xxx.xxx, where xxx.xxx.xxx.xxx is the IP-address of the destination in dot-decimal notation (i.e. 192.168.100.41)

Possible replies: A, C, R

Relevance conditions: For outgoing connections:
Current Routing Mode (RM) [setting/parameter]= 1 (server/client) or 2 (client)

[V3.24/3.54] For incoming connections:
Current Routing Mode (RM) [setting/parameter]= 0 (server) or 1 (server/client)
AND current Source IP Filtering (SF) [setting/parameter]= 1 (enabled)

First introduced: Earlier than "baseline" V3.14/V3.51, functionality extended in V3.24/3.54

See also: Ethernet port and network communications, Establish Connection (CE) instruction

Details

Destination IP-address parameter overrides the Destination IP-address (DI) setting. Notice that this setting's functionality has been extended in V3.24/3.54.

Error (C) reply code is returned if the data supplied in the command is invalid. Rejected (R) reply code is returned if:

· Command is issued while the IP-address of the DS is not properly configured (DHCP (DH) setting is 1 (enabled) and the DS hasn't yet obtained the IP-address from the DHCP server).

· Current data connection state is not "closed". Destination IP-address cannot be changed while the data connection is in progress. Close (or shut) the connection using the Close Connection (CC) instruction or Abort Connection (CA) instruction first. Current connection status can be verified through Echo (X) command (c flag).


Destination Port Number (DP) parameter

Description (see parameter description format info here)

Function: Overrides Destination Port Number (PN) setting

Parameter (P) cmd format: PDPppppp, where ppppp is the port number of the destination in the 0-65535 range

Possible replies: A, C, R

Relevance conditions: Current Routing Mode (RM) [setting/ parameter]= 1 (server/client) or 2 (client)

First introduced: Earlier than "baseline" V3.14/V3.51

See also: Ethernet port and network communications, Establish Connection (CE) instruction

Details

Destination Port Number parameter overrides the Destination Port Number (DI) setting.

Error (C) reply code is returned if the data supplied in the command is invalid. Rejected (R) reply code is returned if:

· Command is issued while the IP-address of the DS is not properly configured (DHCP (DH) settingis 1 (enabled) and the DS hasn't yet obtained the IP-address from the DHCP server).

· Current data connection state is not "closed". Destination port number cannot be changed while the data connection is in progress. Close (or shut) the connection using the Close Connection (CC) instruction or Abort Connection (CA) instruction first. Current connection status can be verified through Echo (X) command (c flag).


Establish Connection (CE) instruction

Description (see instruction description format info here)

Function: Makes the DS establish the data connection with the network host

Parameter (P) cmd format: PCE or PCExxx.xxx.xxx.xxx/ppppp, where
xxx.xxx.xxx.xxx is the IP-address of the destination host;
ppppp is the port number on the destination in the 0-65535 range

Possible replies: A, C, R

Relevance conditions: Current Routing Mode (RM) [setting/ parameter]= 1 (server/client) or 2 (client)

First introduced: Earlier than "baseline" V3.14/V3.51

See also: Ethernet port and network communications

Details

Establish Connection instruction makes the DS establish an outgoing connection with the network host. Which transport protocol is used (UDP or TCP) is defined by the current Transport Protocol (TP) [setting/ parameter].

This command has two syntax options: with and without destination IP-address and destination port number fields. Both fields must be either supplied or not supplied, it is not possible to have only one of the fields in the command body.

When destination IP-address and destination port number fields are supplied they are interpreted exactly as data fields in Destination IP-address (DI) parameter and Destination Port Number (DP) parameter i.e. override the Destination IP-address (DI) setting and Destination Port Number (DP) setting. This means that sending PCExxx.xxx.xxx.xxx/ppppp command is equivalent to sending PDIxxx.xxx.xxx.xxx, then PDPppppp, followed by the PCE command.

When destination fields are not provided the DS will use the following destination IP-address and port number to connect to:

· If, since the last time the PDI (Destination IP-address (DI) parameter) and PDP (Destination Port Number (DP) parameter) commands were issued the DS hasn't received any incoming connections from other network hosts then the DS will attempt to connect to the destination IP-address and port number defined by these recent PDI and PDP commands;

· If (since the most recent PDI and PDP commands) the DS has accepted an incoming data connection then the DS will reread the values of Destination IP-address (DI) setting and Destination Port Number (DP) setting and attempt to connect to the destination host defined by these settings.

TCP data connections are established in a normal way by initiating the SYN-SYN-ACK exchange with the network host. UDP data "connections" are established by sending a UDP datagram of zero length.

OK (A) reply code is returned if command is accepted. This does not mean that the data connection has been established already, only that the DS has accepted the command. Actual connection status can be verified at any time using the Echo (X) command (see c flag). Actual IP-address and port number of the destination host with which the DS has a data connection can be verified using the Status (U) command.

Error (C) reply code is returned if the data supplied in the command is invalid (or only one of the data fields is present). Rejected (R) reply code is returned if:

· Command is issued while the IP-address of the DS is not properly configured (DHCP (DH) setting is 1 (enabled) and the DS hasn't yet obtained the IP-address from the DHCP server);

· Current data connection state is not "closed". Close (or shut) the connection first using the Close Connection (CC) instruction or Abort Connection (CA) instruction;

· Current Routing Mode (RM) [setting/ parameter] is 0 (server), because in this state the DS is not allowed to establish outgoing connections.


Close Connection (CC) instruction

Description (see instruction description format info here)

Function: Makes the DS close the data connection with the network host, reset buffer overflow flags

Parameter (P) cmd format: PCC

Possible replies: A

Relevance conditions: ---

First introduced: Earlier than "baseline" V3.14/V3.51

See also: Ethernet port and network communications, Establish Connection (CE) instruction.

Details

Close Connection instruction makes the DS close current data connection (if existed) and also reset routing buffers overflow flags (overflows are displayed by the status LEDs, overflow status is also returned by the Echo (X) command- see S and E flags).

As a result of Close Connection instruction execution UDP data "connections" are simply discarded. TCP data connections are properly shut down (using FIN-ACK-FIN-ACK sequence).

Close Connection instruction can be used at any time, even if the data connection is already closed and if the data connection was not established by the DS itself (i.e. it was a passive open).

OK (A) reply code is returned if command is accepted. This does not mean that the connection has been shut down already, only that the DS has accepted the command. Actual connection status can be verified at any time using the Echo (X) command (see c flag).

Another instruction- Abort Connection (CA)- can be used to abort the TCP connection (using the RST packet). For UDP data "connections" there is no difference between the Close Connection instruction and the Abort Connection (CA) instruction.


Abort Connection (CA) instruction

Description (see instruction description format info here)

Function: Makes the DS abort the data connection with the network host, reset buffer overflow flags

Parameter (P) cmd format: PCA

Possible replies: A

Relevance conditions: ---

First introduced: Earlier than "baseline" V3.14/V3.51

See also: Ethernet port and network communications, Establish Connection (CE) instruction.

Details

Abort Connection instruction makes the DS end current data connection (if existed) and also resets routing buffers overflow flags (overflows are displayed by the status LEDs, overflow status also returned by the Echo (X) command- see S and E flags).

As a result of Abort Connection instruction execution UDP data "connections" are simply discarded. TCP data connections are reset (using RST packet).

Abort Connection instruction can be used at any time, even if the data connection is already closed and if the data connection was not established by the DS itself (i.e. it was a passive open).

OK (A) reply code is returned if command is accepted. This does not mean that the connection has been reset already, only that the DS has accepted the command. Actual connection status can be verified at any time using the Echo (X) command (see c flag).

Another instruction- Close Connection (CC)- can be used to properly shut down the TCP connection (using the FIN-ACK-FIN-ACK sequence). For UDP data "connections" there is no difference between the Abort Connection instruction and the Close Connection (CC) instruction.


Firmware Revision History

This topic briefly describes application firmware genesis from V2.21 (considered to be the first "really useful" firmware version) and up until current official version. This information is provided for your reference only; Tibbo is not obliged to elaborate on or explain detailed meaning of any item listed below.

----------
Release V3.24/3.54 [the latest published and documented version]

Two firmware versions has been released simultaneously: V3.24 for first-generation devices (EM100-00/ -01/ -02, DS100-00/ -01/ -02) and V3.54 for second-generation devices (EM120-00, EM200-00, EM202-00, DS202-00). Majority of all changes was implemented in parallel in both firmware releases. In several selected cases changes were made to only one of the versions- such changes are marked with the version label like this one: [V3.24 only].

· New: several major new features and corresponding settings/parameters have been added:

· Support for Link Server (new Link Server- some trial version of Link Server existed before):
· New Link Server Login (TL) setting and parameter
· New LS Auto-Registration (AR) setting
· New dDNS Service Registration (DD) setting
· New dDNS Service IP-address (LI) setting
· New dDNS Service Port (LP) setting

· [V3.54 only] PPPoE support has been added to second-generation devices (first-generation devices do not have sufficient "spare" resources for PPPoE to "fit in"):
· New PPPoE Mode (PP) setting
· New PPPoE Login Name (PL) setting
· New PPPoE Login Password (PD) setting
· Extended Echo (X) command
· Extended Status (U) command
· Extended Status LED patterns

· New option to accept incoming connections from any remote host or only remote host whose IP matches the one set in current Destination IP-address (DI) [setting/parameter]:
· Source IP Filtering (SF) setting and parameter

· Option to choose which ASCII character will serve as escape character:
· Escape Character (EC) setting

· New: custom profiles now work with firmware for second-generation Devices (V3.54). Unfortunately, there remains a limitation on firmware V3.54. In order for the custom profile to work correctly the upgrade process (that will load firmware file with custom profile attached) has to be performed through the network. Upgrading through the serial port will (unfortunately!) delete custom profile data from internal FLASH of the DS. This limitation does not apply to Release3 branch of application firmware (i.e. firmware that runs on first-generation Device Servers).

· Improvement: when DHCP (DH) setting is 1 (enabled) the DS now detects Ethernet cable disconnects and re-requests its IP-address once the cable is plugged back in (see ).

· Bug fix: serial port was not getting opened (i.e. did not accept any data from attached serial device) when current Transport Protocol (TP) [setting/parameter] was 0 (UDP) and Connection Mode (CM) setting was 0 (immediately).

· Bug fix: when current Transport Protocol (TP) [setting/parameter] was 0 (UDP) and DS was establishing a UDP "connection" to another network host the first UDP datagram sent by the DS always had zero length (contained no data) even if there was some data to send. This has now been corrected.

· Bug fix: DHCP client of the DS had a slight problem. As a last step of IP-address configuration the DS sends out an ARP request with IP-address that was offered by the DHCP server. This is a way recommended by RFC to make sure that no other station on the network is using this IP. With some switching Ethernet hubs this request could actually go back to the DS itself. The DS would then reply to itself (again, through the hub), receive this reply and decide that somebody else was, indeed, using this IP-address. This resulted in endless rejection of whatever IP was offered by the DHCP server. The problem has been corrected: the DS now checks the sender of ARP reply and ignores the reply if the sender was the DS itself.

· Bug fix: when the DS received an on-the-fly command (network-side parameter) that disabled RTS/CTS flow control (i.e. PFC0) this did not make any actual changes and the DS continued to work with RTS/CTS enabled (although Status (U) command reply indicated that flow control has been turned off). This has now been corrected.

· [V3.54 only] Bug fix: second-generation devices did not boot up when Ethernet cable was unplugged in case DHCP (DH) setting was at 1 (enabled). The after the cable was plugged in that the DS started to operate normally. This has now been corrected.

· Bug fix: Ethernet-to-serial buffer was erroneously set to 1024 bytes. This has now been corrected and both routing buffers have equal capacity of 8192 bytes.

· Bug fix: "type 1" escape sequence (see Soft Entry (SE) setting) for entering the serial programming mode had a slight problem: time gap before the first escape character was never counted. As a result, even when the time gap between a data character with ASCII code matching that of escape character and preceding data character was <100ms this was erroneously counted as the beginning of escape sequence. For example, supposing that the following string was sent into the serial port without any gaps: "ABC<<ABC" (< depicts escape character). In this case the data routed to the network host would be "ABC<DEF". In other words, one character would be lost! This has now been corrected.

· Several minor fixes and adjustments were made to improve reliability of DS operationg and (especially) network communications.

----------
Release V3.16/3.51

· Bug fix: serial port did not work properly with baudrate of 300bps

----------
Release V3.15/3.51

· Bug fix: several small issues related to Link Server communications

· New: added support for dDNS (not thoroughly documented yet)

· Adjustment: now Ethernet-to-serial buffer is not cleared when data connection is closed

· Adjustment: in DHCP now process "name field" so the DS also supplies its name to the DHCP server

----------
Release V3.14/3.51

· Bug fix: several small fixes in TCP/IP protocol stack, related to UDP communications

· Bug fix: related to remote control of RTS/CTS lines

----------
Release V3.13-BETA

· Bug fix: several small fixes related to inband command processing

· Bug fix: several small fixes in DHCP implementation

· Improvement: adjusted TCP/IP protocol stack (several small issues)

----------
Release V3.12-BETA

· Bug fixes: several minor adjustments in DHCP implementation

· New: additional escape sequence, extended Soft Entry (SE) setting

· New: accept out-of-band UDP commands on port 32767 also

· New: extented Connection Mode (CM) setting- added options 2 (on command) and 3 (on command or DSR=HIGH)

· Adjustment: many small fixes and improvements in the TCP/IP protocol stack

· New: processing of profiles (see "define your own default setting values")

· New: add ability to send data UDP packets as broadcasts (when Destination IP-address (DI) setting is 255.255.255.255)

· New: optional password protection for on-the-fly commands (On-the-fly Password (OP) setting)

----------
Release V3.00-BETA

· New: Connection Mode (CM) setting has been added (only with options 0 and 1)

· Adjustment: multiple small improvements in TCP/IP stack, data routing

· New: inband command processing

· New: error mode added- now it is possible to setup the DS through the network even when one or several settings are invalid

· New: Echo (X) command extented to return status info

· New: Logout (O) command to exit programming mode without rebooting

· New: network programming source tracking. For example, in out-of-band UDP programming make sure that all subsequent commands after login come from the same IP

· New: serial-side parameters and instructions (modem commands)

· New: automatic login timeout for network programming

· New: Buzz (B) command

· New: Status (U) command

· New: routing buffer overrun tracking, special pattern that reflects overruns

· New: sequence numbers in out-of-band UDP commands (for "gang" command execution)

· New: serial-side parameters and instructions (modem commands)

· New: escape sequence change: "silence gap" is now required before each escape character

· Bug fixes: several small issues related to serial commands

· New: selection of particular device in the broadcast out-of-band mode using Select In Broadcast Mode (W) command

· New: DHCP support

· New: quick initialization

· Adjustment: Echo (X) command reply changed and extended

· New: Data Login (DL) setting and command-phase programming

· New: processing of broadcast UDP data packets and Broadcast UDP (BU) setting

· Adjustment: decrease total number of start and stop characters- now can only have one of each

· Adjustment: Status (U) command reply changed and extented

· New: Add Link Server support

· New: Notification (J) messages, Notification Destination (ND) setting, Notification Bitmask (NB) setting

· New: DTR Mode (DT) setting

----------
Release V2.53

· Serious bug fix: found that initialization routine for the network controller inside the DS was wrong. This caused the network interface of the DS to not be properly initialized. In practice, this looked like sporadic "disappearance" of the DS from the network

----------
Release V2.52

· Adjustment: on startup verify and correct IP-address (IP) and MAC-address (FE) if they are invalid. This makes sure that the DS will always be visible at least on a local network segment

· New: make Version (V) Command return "+N" if the NetLoader is present

----------
Release V2.50

· New: UDP broadcast storm protection. Now, under heavy load conditions the DS selectively ignores broadcast messages thus making room for processing "useful" UDP packets

· New: Parity (PR) Setting gets 3 (Mark) and 4 (Space) parity options

· Adjustment: TCP packet retransmission algorithm has been improved

· Bug fix: several small things related to the data transmission with UDP/IP

----------
Release V2.22 has been released

· New: accept TCP "reconnects" from same IP but different port. Now, when TCP connection is already established and new connection attempt is made from the same IP the old connection will be "forgotten" and the new one will be accepted. More on this here.

· Adjustment: now firmware recognizes that when UDP packet arrives with its checksum field set to zero this means that checksum is not set. Before such packet would have been rejected and now it will be accepted

· Bug fix: related to the TCP connection termination procedure

----------
Version 2.21 (original "base" version)


NetLoader (For Network Firmware Upgrades, V1.10)

The NetLoader is a separate firmware component that facilitated application firmware upgrades over the network in the following devices: EM100-03, DS100R-03, DS100B-00. Without the NetLoader the only way to upgrade the application firmware of these devices would be through the serial port. Serial upgrades are made possible by the Monitor, which is a "fixed" component that is always present.

The NetLoader is not used in newer EM120-00, EM200-00, EM202-00, DS202-00 device(s). The firmware of these devices has the ability to self-upgrade itself, so NetLoader is not required.

From the Monitor's point of view the NetLoader is just another application firmware. Therefore, the NetLoader can be loaded into the DS through the serial port of the DS. The NetLoader is written in such a way that it can coexist with an actual application firmware so both can be present in the FLASH memory of the DS at the same time.

To facilitate smooth interaction between the application firmware and the NetLoader the following provisions are made:

· The application firmware can verify the presence of the NetLoader and "jump" (pass control) to the NetLoader when needed. This way the application firmware can start its "self-upgrade".

· The NetLoader can receive new firmware file from the network host over the network, save this file into the FLASH memory of the DS, verify the presence of and a validity of the application firmware and "jump" (pass control) to this firmware.

To the User the above looks like a fully automatic self-upgrade of the application firmware.


Status LED Signals

Status LED signaling of the NetLoader is very simple. When the NetLoader is entered the Green Status LED is switched on. The LED remains on at all times except when the data block is being programmed into the FLASH memory. The Green Status LED is off for the duration of the data block programming. Visually this makes the Green Status LED blink during the firmware file upload into the DS.


MAC- and IP-address Under the NetLoader

When the NetLoader is started it attempts to read out the values of the IP-address (IP) setting and MAC-address (FE) setting used by the application firmware. If the readout is successful the NetLoader uses current values of these settings and this means that the DS continues running under the same IP and MAC that was just used by the application firmware.

Although all efforts have been taken to make sure that the DS continues running under the NetLoader using the same IP- and MAC-address there are few cases when the NetLoader may not be able to read out one or both of the above settings successfully (for example, when the data in the EEPROM memory that keeps setting values was corrupted).

The following happens in this situation:

· When the NetLoader is unable to read out the IP-address (IP) setting it assumes a default IP-address of 127.0.0.1.

· When the NetLoader is unable to read out the MAC-address (FE) setting it assumes a default MAC-address of 0.1.2.3.4.5.


NetLoader Communications

Communications with the NetLoader is effected by sending programming commands as UDP datagrams to port 65535 of the DS. For each command the NetLoader sends a reply, also in the form of a UDP datagram. Reply to a particular command is always sent to the IP-address and the port number from which this command was received.

Because each command and reply is sent in its own UDP datagram no additional encapsulation is necessary.

All NetLoader commands have the following format:

C.C.
Optional parameter(s)

· C.C. is the command code. Command code always consists of a single ASCII character. All available commands and their codes are listed in the command table at available commands.

· Optional parameter(s) field contains necessary data if required by the command.

All NetLoader replies have the following format:

R.C.
Optional data

· R.C. is the reply code. Reply codes always consist of a single ASCII character and inform the sender of the command about the result of command execution.

· Optional Data field contains necessary data (if any).

Example: here is a sample exchange between the network host and the DS running NetLoader. Each line represents the data in a separate UDP datagram.

Host-->DS(NetLoader): V
DS(NetLoader)-->Host: A<NV1.10 Netloader>

This method of exchanging commands and replies is exactly the same as the one used by the application firmware of the DS where it is called out-of-band (UDP) programming. UDP communications with the application firmware and the NetLoader are the same except for the following small differences:

· Latest versions of the application firmware accept UDP commands on two ports- 65535 and 32767. The NetLoader can only accept UDP commands on port 32767.

· To speed up command execution the application firmware accepts multiple UDP commands (this is based on using additional command ID field). The NetLoader doesn't supports this feature and all commands should be sent strictly one-by-one i.e. the network host should not intentionally send the next command without first receiving (waiting for) a reply to the previous command.

Except for the above two differences UDP communications with the NetLoader is the same as UDP communications with the application firmware. Just like the application firmware, the NetLoader supports broadcadt UDP programming, which is initiated by the Select In Broadcast Mode (W) command. There are other commands that have similar or identical "parallel" commands in the application firmware- Echo (X) command, Verify and Start Firmware (E) command, Get Firmware Version (V) command.

UDP programming is called (in the Application Firmware Manual) out-of-band (UDP) programming because there is also inband (TCP) programming that relies on TCP communications with the DS. Because of size constraints the NetLoader doesn't support TCP communications and the only available method of exchanging commands and replies is the one based on UDP commands.


How the NetLoader is Started

The NetLoader is started in one of the two ways:

· If the application firmware is not loaded or corrupted the Monitor starts the NetLoader automatically when the DS is powered up (see DS startup procedure).

· When the application firmware is running remote host can make the application firmware jump (pass control) to the NetLoader by sending a Jump To Netloader (N) command.

In both cases the presence and validity of the NetLoader is verified before the control is passed to it.

The network host can verify whether the application firmware or the NetLoader is running by sending the Echo (X) command [application firmware/ NetLoader]. This command is supported by both firmware components but returns different replies. Specifically, there is an m (mode) flag that is set to 'N' by the application firmware but to 'L' by the NetLoader.


Firmware Upload Procedure

The network host should use the following procedure in order to upload an application firmware file into the DS:

· First, it is necessary to verify if the NetLoader is already running. This is done by sending the Echo (X) command [application firmware/ NetLoader] and checking the m flag in the reply data (see how the NetLoader is started). If the NetLoader is not started yet then the following steps should be taken:

· The network host should login (if not logged in yet) using the Login (L) command;

· Next, the network host should send Jump To Netloader (N) command. This will start the NetLoader

· It is better to verify that the NetLoader is, indeed, running, by sending another Echo (X) command and checking the status of the m flag.

· Once the NetLoader is started the network host should send Start Over (Q) command to reset the data upload process.

· Then, the network host should issue as many Data Block (D) commands as necessary to upload the entire firmware file.

· When the upload is completed the host should send the Verify and Start Firmware (E) command to start the newly loaded firmware. The host should wait about 2 seconds (to allow the firmware to start) before proceeding to the next step.

· As the last step of the procedure it is better to issue the Echo (X) command again to verify that the new firmware is, indeed, running.

The above procedure is, of course, simplified, as it does not take into account all kind of possible errors that can potentially arise practically on every step of the firmware upload. The "entity" performing the upgrade should carefully analyse the result of every step in the above procedure and correctly react to different error codes returned by the DS.

Also, the procedure above doesn't show the use of the Select In Broadcast Mode (W) command that provides a way to program the DS whose IP-address is unreachable (see broadcadt UDP programming for explanation). The NetLoader also support a similar command (see Select In Broadcast Mode (W) command). Important point to realize is that since the NetLoader is a separate firmware component the Select In Broadcast Mode (W) command should be used twice:

· The W command should be used to first time before sending the Login (L) command and Jump To Netloader (N) command. This will pre-select the DS for broadcast access while still in the application firmware.*

· The W command should be used the second time when the NetLoader starts, before starting the file upload (Start Over (Q) command, Data Block (D) commands, and Verify and Start Firmware (E) command)*.

* These commands should, of course, be sent as UDP broadcasts in this case.


Available Commands

Table below lists all available NetLoader commands:

C.C.
B
Description
X
+
Echo command
W
+
Select In Broadcast Mode command
S

Start Over command
D

Data Block command
E

Verify And Start Firmware command
V

Get Firmware Version command

Notes:

· C.C.- command codes.

B- '+' in this column indicates that command can be issued in the broadcast mode (when sent through the network) without the need to pre-select a particular DS using Select In Broadcast Mode (W) command first.


Command Description Format

All commands in this section are described using the following format:

Function: Command function in brief

Command format: Shows command syntax

Possible replies: Lists all possible reply status codes that can be returned in response to this command

See also: Additional relevant links

Details

Additional information about the command.


Echo (X) command

Description (see command description format info here)

Function: Returns NetLoader status

Command format: X

Possible replies: Annn.nnn.nnn.nnn.nnn.nnn/ppppp/m, where
nnn.nnn.nnn.nnn.nnn.nnn- MAC-address of the DS;
ppppp- fixed at "65535";
m- fixed to 'L' (means that the NetLoader, not the application firmware is running).

See also: How the NetLoader is started, Echo (X) command in the application firmware

Details

The primary use of the Echo command is to auto-discover Device Servers on the network and to verify that the NetLoader is running. When the network host sends this command in the broadcast mode, it collects the replies from all locally attached Device Servers (hence, the name of the command). Reply from each DS contains all necessary information (MAC-address, etc.) that is needed to continue communicating with each specific DS in a non-broadcast mode. This command has its counterpart in the application firmware (see Echo (X) command).

Information returned by the Echo command contains the following data:

· MAC-address is the most important field that can be used to uniquely identify each DS! Besides, the MAC-address is used (and, therefore, must be known in advance) as a reference to the particular DS in the Select In Broadcast Mode (W) command.

· Data port number field is fixed at 65535. The NetLoader doesn't use any data ports so this field is provided for format compatibility with the Echo (X) command in the application firmware.

· m flag always returns 'L'. This is meant to indicate that the NetLoader is running. In contrast, when the application firmware is running this flag shows 'N'.

* This is because each DS, like any other Ethernet device, has a unique MAC-address preset during the production.


Select In Broadcast Mode (W) command

Description (see command description format info here)

Function: Selects the DS as the target in broadcast communications

Command format: Ammm.mmm.mmm.mmm.mmm.mmm, where mmm.mmm.mmm.mmm.mmm.mmm- MAC-address of the target DS

Possible replies: Avv...v, where vv...v is the version string

See also: Firmware upload procedure, Broadcast out-of-band (UDP) programming, Select In Broadcast Mode (W) command of the application firmware

Details

Select In Broadcast Mode command has exactly the same function as the Select In Broadcast Mode (W) command of the application firmware.

This command is used to pre-select a certain DS for subsequent firmware upload. Only few NetLoader commands (such as Echo (X)) are accepted when sent in broadcast UDP datagrams. All other commands are only accepted if they address a specific DS. Such specific addressing normally involves sending UDP datagrams with the IP-address of the targeted DS as the destination (i.e. non-broadcast datagrams). This requires the IP-address of the DS to be reachable.

Select In Broadcast Mode command provides a way around this. Target DS, referenced by its MAC-address, is first pre-selected using this command. After that, all broadcast commands that are normally ignored when sent as broadcasts, are not ignored and processed by this pre-selected DS.

When Select In Broadcast Mode command is issued all devices whose MAC-addresses do not match the target MAC-address supplied in the command body de-select themselves. This means that to switch onto working with another DS in the broadcast mode you need to send the new Select In Broadcast Mode command with the new target MAC-address. This will pre-select a different DS while at the same time de-selecting the DS that was selected before. To de-select all DS on the network send Select In Broadcast Mode command with no MAC-address field.

This command only influences which DS responds when it is addressed using broadcast UDP commands. Command has no influence over commands sent using normal IP addressing.

The only possible reply to this command is OK (A). It is issued by the DS that has recognised its MAC-address in the command body. If no DS on the local network recognizes its MAC then there will be no reply received to this command.

Select In Broadcast Mode command should be issued (when necessary) right after the NetLoader is started as all subsequent commands, such as Start Over (Q), Data Block (D), and Verify And Start Firmware (E) won't work when send as broadcasts without prior pre-selection.

It is important to understand that W command should be used within the NetLoader even if it has already been used in the application firmware before the NetLoader was started. This is because the application firmware and the NetLoader are separate firmware components and the pre-selection made in the application firmware will not be "passed" to the NetLoader.


Start Over (Q) command

Description (see command description format info here)

Function: Initializes (reset) firmware file upload

Command format: Q

Possible replies: A

See also: Firmware upload procedure

Details

Start Over command is used to reset the firmware upload. This resents internal data block counter of the NetLoader and the first Data Block (D) command will be expected to carry data block 0.

This command is recommended to be used after the NetLoader is started to make sure that the upload process is properly initialized.


Data Block (D) command

Description (see command description format info here)

Function: Supplies one 128-byte block of firmware file to the NetLoader

Command format: Dnndd...d, where
nn- block number (binary format, two bytes, high byte first);
dd...d- 128 bytes of file data.

Possible replies: Ann, Cnn, Snn, Onn, Inn, Fnn, where nn is the number of the next expected data block (binary format, two bytes, high byte first)

See also: Firmware upload procedure

Details

Data Block command carries a 128-byte block of application firmware file. Entire application firmware file is to be uploaded using multiple Data Block commands and the NetLoader expects that the firmware file size will consist of an integer number of 128-byte blocks.

The data blocks must be sent in consecutive order i.e. the first block (block 0) must carry first 128 bytes of the firmware file, block 1 should supply next 128 bytes, etc. Because NetLoader communications is based on UDP commands and UDP packets can get lost each data block is sent with its own block number. This way the NetLoader can make sure that all data blocks received are in sequence.

The nn field in the command body carries the block number. The block number is supplied in a binary form. Since block numbers can exceed 255 two bytes are needed for the block number. High byte goes first so, for example, to denote block #300 the first two bytes should be 01H 2CH. Block numbers start from 0.

Following two block number bytes are 128 bytes of firmware file data. Again, the data is supplied in a binary form, that is, a part of the firmware file is "cut out" and attached to the command.

Like all other commands, the Data Block command returns an appropriate reply status code. The difference is that all reply status codes are followed by the number of the next expected data block. Next data block is present even in replies indicating that the command was not processed successfully. In this case the next expected data block simply remains the same (is not incremented). If the command was completed successfully the nn field in the reply will "point at" the next data block to be sent. For example, if the nn field in the command was 300 (01H 2CH) and the command was completed successfully the reply will have the nn field of 301 (01H 2DH). If command failed the nn field in the reply will still be at 300 (01H 2DH).

OK (A) reply status code is returned if the data block was programmed successfully or if the Data Block command has carried a data block that has already been programmed. That is, if the NetLoader expects the block number to be 10 and the network host supplies block 5 the NetLoader will reply with A code and discard this data block.

Error (C) reply status code is returned if the total length of nn and dd...d fields in the command is not 130 bytes.

Sequence Error (S) reply code is returned if the NetLoader receives the data block with nn field greater than the one expected (for example, block 7 when block 6 was expected).

Out-of-range (O) reply code is returned if the total size of the firmware file received by the NetLoader exceeds the size detected in the beginning of the file upload. Total file size information is contained in the firmware file itself (in block 1). For example, if the file size was expected to be 40064 bytes then the total number of data blocks had to be 40064/128=313. Therefore, the range of expected data block numbers is 0...312. The NetLoader will return the O code if any data block with the number greater than 312 is received.

Invalid Data (I) reply code is retuned if the NetLoader detects that the file data sent by the network host is invalid. This can only be generated for data blocks 0 and 1. These blocks contain certain "service" information (such as the total file size- see above) that the NetLoader checks to make sure that the firmware file being uploaded is acceptable.

Failed (F) reply code is returned if the NetLoader fails to program the data block into the FLASH memory of the DS.

We recommend that the network host sends the Start Over (Q) command before beginning file upload with the Data Block commands.


Verify And Start Firmware (E) command

Description (see command description format info here)

Function: Verifies and starts the application firmware

Command format: E

Possible replies: I

See also: Firmware upload procedure, Reboot (E) command of the application firmware

Details

Verify And Start Firmware command instructs the NetLoader to verify the checksum of the application firmware and, if OK, to start application firmware execution. This command is similar to the Reboot (E) command of the application firmware in that it ends the execution of the current firmware (NetLoader).

Invalid (I) reply code is returned if the checksum is wrong and the NetLoader continues running. No reply is returned if the checksup is OK, the NetLoader simply passes control to the application firmware.

This command should be used as the last step of the firmware upload through the network.


Get Firmware Version (V) command

Description (see command description format info here)

Function: Returns the version of this NetLoader

Command format: V

Possible replies: Avv...v, where vv...v is the version string

See also: Get Firmware Version (V) command in the application firmware

Details

Get Firmware Version command returns the version of this NetLoader. This command is similar to the Get Firmware Version (V) command of the application firmware.

The version string is always encapsulated in '<' and '>', begins with the version number in NVx.xx format, and possibly contains a small comment after a space. "N" in front stands for "NetLoader".

Example:

-->DS: V
DS-->: A<NV1.10 Netloader>


Software Manuals

This part of the documentation describes all PC software supplied by Tibbo.

At the moment, two software packages are available:

· Device Server Toolkit (DST) software for Windows, currently in its V3.6.6 (revision history).

· Virtual Serial Port Driver for LINUX (VSPDL), current version is 1.0.

· LinkServer software, current version is 2.0.


Device Server Toolkit (DST) Software for Windows (Release 3.6.6)

Looking for Device Server Toolkit (DST) revision history? Click here

Tibbo Device Server Toolkit (DST) for Windows is supplied free of charge with all Device Servers manufactured by Tibbo. The DST runs under all versions of Windows* starting from Windows 98. At the time of writing this includes Windows 98, Me, NT(SP4), 2000, XP, 2003 (server).

The Device Server Toolkit includes five components:

· Device Server Manager (DS Manager) is used to locate, setup, manage, monitor, and upgrade Tibbo Device Servers. The DS Manager works with all Tibbo Device Servers, regardless of their model number and internal firmware version.

· Virtual Serial Port Driver* (VSPD) powers Virtual Serial Ports (VSPs) that are used to network-enable legacy serial systems. To any Windows application the VSP "looks and feels" just like any standard COM port, while in reality the VSP is transparently routing the data between the application and the serial port of the Device Server.

· Virtual Serial Port Manager (VSP Manager) is used to add, delete, and setup VSPs. The VSPD and the VSP Manager are different entities (one is a driver, another one- a setup utility). This Manual offers combined description of the two and all VSPD features are explained "through" the VSP Manager and its dialogs.

· Port Monitor is a supplementary program that logs the activity of VSPs on your system. Every action of the VSP (port opening, port closing, establishing connection with a particular Device Server, etc.) is recorded by the Port Monitor. This makes the Monitor an indispensable debugging tool that can be used to pinpoint VSP-related problems.

· Connection Wizard assists you in setting up typical data links involving Tibbo Device Servers and Virtual Serial Ports. Although the description of the Connection Wizard comes last in this Manual this is the program you should probably try out first. Chances are, this will be the only program of the DST you'll ever use!

* Windows is a registered trademark of Microsoft Corporation.

* Also known as "COM redirector".


DS Manager

Device Server Manager (DS Manager) is a part of the Device Server Toolkit.

The DS Manager is used to locate, setup, manage, monitor, and upgrade Tibbo Device Servers ("DS").

Shown below is the screenshot of the DS Manager's main window. Click on the picture area to jump to the related topic or select the topic from the list under the screenshot.

The main window has the following areas and controls:

· Access mode drop-down box provides a selection of three different access modes (auto-discovery, address book, and COM). Access modes define how the DS Manager locates and accesses the Device Servers.

· Device list. The data shown in the device list depends on the selected access mode. The status icons displayed in the auto-discovery and address book access modes reflect the current state of each DS in the list.

· Status area. When you select a different access mode this area displays a brief mode introduction. Single-clicking on a particular DS in the device list displays extended information about the current status of this DS (auto-discovery and address book access modes only).

· Refresh button is used to refresh the device list (auto-discovery and address book access modes only)

· Actions of the following function buttons apply to a single DS (or COM port to which this DS is connected) selected in the device list:

· Settings button opens the settings dialog that allows you to view and edit the settings of a particular DS;

· Upgrade button launches the upgrade of the internal DS firmware;

· Initialize button is used to initialize the settings of the DS to their default values;

· Routing Status button (auto-discovery and address book access modes only) opens the routing status dialog that displays additional information on the current DS state (data connection state, amount of data in the routing buffers, serial port setup, etc.);

· Buzz button (auto-discovery and address book access modes only) causes the status LEDs of the DS to "play" a fast-blinking pattern. This can be used to match a particular entry in the device list to an actual physical device;

· Change IP button (auto-discovery mode only) is used to assign new IP-address to the DS over the network (using MAC-address of the DS as a reference).

· Add, Remove, and Edit buttons are used to edit the address book (address book is a manually created list of Device Servers in the address book access mode). Add button is visible both in the auto-discovery and address book access modes, while Remove and Edit buttons are only visible in the address book access mode.


DS Status Icons

Status field of the device list (available in the auto-discovery and address book access modes) displays a status icon for each DS. The status icon reflects current DS state and is updated each time the Refresh button is pressed. Listed below are all DS states that may be reflected in the device list.

The following two states can only be displayed in the address book mode:

--- When no icon is displayed for an address book entry then this means that there was no response to the PING sent by the DS Manager. This indicates that there is no device whatsoever at the IP-address specified by the address book entry. For more information see troubleshooting (address book mode).

Unknown device. This icon means that there was a response to the PING sent by the DS Manager (which proves that there is at least some device at the specified IP-address) but that the DS Manager cannot make sure that this is really a Tibbo Device Server. For more information see troubleshooting (address book mode).

Note. The reason why the above two states can only be encountered in the address book access mode is because in the auto-discovery mode the device list only displays Tibbo Device Servers that have actually responded to the refresh.

All remaining icons may be displayed both in the auto-discovery and address book access modes.

The status icon consists of three parts:

· The central part depicts the DS and reflects its general status and well-being:

No status info available. The DS is running old firmware (2.xx or older) and the status information cannot be obtained remotely.

Normal state. The DS is online and appears to function properly.

Error mode. The DS is running in the error mode and requires initialization;

IP-address not obtained. The DS is online but hasn't yet obtained its IP-address from the DHCP server (when the DHCP (DH) setting is 1 (enabled)). In this state the DS is not performing its data routing function. If the DS is also in the error mode (see above) at the same time then it is the error mode status that will be shown by the icon;

Firmware upload mode. The DS is in the firmware upload mode and is ready to accept new firmware file. If the DS enters this mode right after the powerup then this means that no firmware is loaded or that the firmware is corrupted.

· Left part of the icon shows current data connection status:

--- Idle. No data connection is established, the DS is idle (so no icon is displayed);

ARP. The DS is sending ARP requests in order to find the MAC-address of the destination network host (or gateway) before attempting to establish a data connection;

Opening. TCP data connection is being established. This icon cannot be displayed for the UDP transport protocol since there is no connection establishment phase for UDP data "connections";

Established (or being closed), no overrun. TCP data connection or UDP UDP data "connection" is established or TCP connection is being closed (there is not connection closing phase for UDP). Routing buffer overflow is not detected (within current data connection).

Established (or being closed), overrun detected. Same as the above but routing buffer (Ethernet-to-serial and/or serial-to-Ethernet) overflow has been detected.

Reset. TCP data connection has been reset by the network host (not the DS itself). This icon cannot be displayed for UDP data "connections".

· Right part of the icon displays current programming status:

--- No programming. The serial port of the DS is not in the serial programming mode and no network programming session* is opened;

Programming in progress. Either the serial port of the DS is in the serial programming mode or network programming session* has been opened.

Central, left, and right icon parts described above are combined into a single status icon.

Example: the following "combination" icon means that the DS is running in the error mode, data connection is currently established (but no overrun has been detected), and some form of programming (either serial or network) is in progress:

In addition to different states described above the whole status icon can be displayed in full color or grayed (see sample icons below). This only applies to local Device Servers and the auto-discovery mode).

Full color. This means that the DS Manager can communicate with the DS using "normal" IP addressing.

Grayed**. When the status icon is grayed then this means that the DS Manager can see the DS but cannot communicate with the DS using normal IP-addressing. Full details on what this means are provided in the following topics: broadcast access, troubleshooting (auto-discovery mode).

Additional (and more full) status information for the selected DS (i.e. the DS whose line is highlighted in the device list) is displayed in the status area below the device list. For example, while the status icon may show that some sort of programming is in progress the status area message will detail that the "UDP network programming session is in progress". Each status message has a clickable link that opens a corresponding help topic (all such topics can be found at DS status messages).

Programmer's info:

The DS Manager collects DS status information (and detects DS presence) using the Echo (X) command.

* More info on network programming sessions can be found in the following topics: authentication, programming priorities.

** Actually, "watered down" as colors can still be distinguished.


Access Modes

The DS Manager has three fundamental modes of operation, called access modes, that define how it finds, connects to and works with Device Servers. Desired access mode is selected from the access mode drop-down box, located at the top of the main window of the DS Manager (see figure below):

Available access modes are:

· Local Device Servers (auto-discovery by broadcast). In this mode the DS Manager automatically finds all local Device Servers* and displays them in the device list (remote Device Servers located behind one or several routers cannot be auto-discovered). Device list is updated each time Refresh button is pressed, only devices that have actually responded to the refresh appear in the list.

· Device Servers from the Address Book. In this mode the list of available Device Servers- called "the address book"- is created manually by the User and the DS Manager does not attempt to locate Device Servers automatically. Device list displays all entries from the address book at all times, even if corresponding Device Servers are not online. Actual availability of each Device Server is reflected in the status icon for this DS. In this mode the DS Manager can communicate both with local and remote Device Servers (i.e. located behind the routers on different network segments)**. Since local Device Servers can easily be accessed using the auto-discovery mode the primary use of the address book mode is to access remote Device Servers.

· Device Servers attached to the COM port (of the PC). In this mode the DS Manager communicates with the DS connected (by its serial port) to the COM port of the PC. Device list displays all available physical COM ports of the PC and the refresh button is hidden. Since the DS is accessed through its serial port it must be in the serial programming mode for this access method to work. Therefore, the User must press the setup button*** to make the DS enter the serial programming mode before the DS Manager will be able to access the DS.

Note:

Status LEDs of the DS are playing a serial programming mode pattern (shown on the left) when the serial port of the DS is in the serial programming mode (click here to see all available patterns).

* I.e. the Device Servers located on the same network segment. The definition of the network segment implies that there are only network hubs (and no routers, bridges, firewalls, etc.) between the PC and all other devices on the segment.

** Ability to access remote Device Servers also depends on the configuration of the network, routers, and Device Servers.

*** On EM100, EM120, EM200, EM202- pull the MD line LOW for at least 100ms.


Auto-Discovery Access Mode

Can't find your Device Server in the device list of the auto-discovery mode?
The status icon is grayed indicating that the IP-address of this DS is "unreachable"?
See troubleshooting!

Auto-discovery access mode is selected by choosing "Local Device Servers (Auto-discovery by broadcast)" from the access mode drop-down box, located at the top of the DS Manager's main window.

In this mode the DS Manager finds all local Device Servers* automatically. Device Servers located behind the routers (remote Device Servers) cannot be auto-discovered by the DS Manager because broadcast UDP datagrams used to find the Device Servers on the network cannot pass through routers. Address book access mode should be used to work with remote Device Servers.

All discovered Device Servers are displayed in the device list. Each DS is uniquely identified by its MAC-address which is different for every DS manufactured. The device list will correctly display all local Device Servers even if some of them have the same IP-address, as well as devices whose IP-address is unreachable. Correctly configured IP-address is not required for the DS Manager to be able to access local Device Servers in the auto-discovery mode (see broadcast access for more information).

Device list is updated each time Refresh button is pressed. Only Device Servers that have replied to the DS Manager's request appear in the list, the DS Manager does not "remember" previous refresh results. Status area under the device list displays extended status information for the DS selected in the list.

In the auto-discovery mode the device list has the following fields:

· DS status icon. See DS status icons for more information.

· MAC-address of the DS. It is the MAC, not the IP-address, that uniquely identifies each DS in the list.

· IP-address of the DS. Comment next to the IP-address shows that this device is local (same for all devices in the list since auto-discovery mode only shows local Device Servers). If the DS is running with DHCP enabled the note "DHCP" is also displayed next to the IP-address (as in line 2 of the screenshot above). As you can see from the screenshot, correct IP-address is not required for the DS to be discovered. IP-address in line 4 is invalid yet the DS Manager can "see" this DS as well.

· Owner name and device name fields displays the data from the Owner Name (ON) and Device Name (DN) settings of the DS. The purpose of these settings is to simplify distinguishing between the Device Servers in the device list.

Device list of the auto-discovery mode is sorted by MAC-address, then by IP-address.

Programmer's info:

When the Refresh button is pressed the DS Manager sends out a broadcast Echo (X) command. This command reaches all local Device Servers, even the ones with unreachable IP-address. Devices shown in the device list are those that have replied to the broadcast

* I.e. the Device Servers located on the same network segment. The definition of the network segment implies that there are only network hubs (and no routers, bridges, firewalls, etc.) between the PC and all other devices on the segment.


Broadcast Access

In the auto-discovery access mode the DS Manager can detect and access all local Device Servers, even those whose IP-address is "unreachable" (incompatible with the network settings of the PC, conflicts with the same IP-address set on another Ethernet device, etc.).

Device Servers with unreachable IP-address are accessed using broadcast communications (broadcasts do not depend on the IP-address of the device in any way)*. The downside of this method is that broadcasts cannot pass through the routers so only local Device Servers can be accessed this way (hence, the method is only used in the auto-discovery mode).

Devices with unreachable IP-address are displayed in the device list with their status icon "grayed" (see sample icon on the left). For complete list of all icons please turn to DS status icons.

Note, that conditions that cause the IP-address of the DS to appear to be unreachable may be temporary. See troubleshooting (auto-discovery mode) for details.

Programmer's info:

The DS Manager determines which Device Servers can be accessed using "normal" IP-addressing (and which- cannot) by performing the following procedure:

· When the Refresh button is pressed (in the auto-discovery mode) the DS Manager sends out a broadcast Echo (X) command. This command reaches all local Device Servers, even the ones with unreachable IP-address. Devices shown in the device list are those that have replied to the broadcast.

· Next, the DS Manager sends out non-broadcast Echo (X) commands directly addressing each DS in the device list (so as many commands are sent as there are devices detected in the previous step). If there is a reply to a command addressing a particular DS then the DS Manager considers the IP-address of this device to be reachable. Otherwise, the DS Manager marks this DS as having an unreachable IP-address and accesses it using broadcasts.

The ability to access and program Device Servers using broadcast communications is delivered through the use of the Select In Broadcast Mode (W) command. You can also read about how this works in the following topic: Broadcast out-of-band commands.

* Broadcast programming is not supported by Device Servers with the older firmware (earlier than V3.xx). Such Devices must be assigned a reachable IP-address before they can be accessed by the DS Manager.


Troubleshooting (Auto-Discovery Mode)

This topic provides a list of hints that can help you figure out why you cannot "find" your Device Server in the device list of the DS Manager or why the DS is shown as having an unreachable IP-address (status icon is "grayed"). The topic only covers the auto-discovery access mode. See troubleshooting (address book mode) and troubleshooting (COM mode) for hints on other two access modes.

Here is why you may not be able to see the DS in the device list:

· The DS may be switched off or not connected to the network*.

· The DS may not be on the local network segment. In the auto-discovery access mode the DS Manager can only "see" Device Servers on the same network segment as your PC (local Device Servers). Remote Device Servers located behind routers (firewalls, etc.) cannot be accessed. Use address book access mode to work with remote Device Servers.

· Firewall software on your PC may be preventing communications between the DS Manager and Device Servers. This communications relies on UDP traffic between port 65534 of the PC and port 65535 of the Device Servers. Make sure that your firewall software does not ban this traffic! Our experience shows that many Users are not aware of the firewall software installed on their own PCs! Some firewalls come as part of larger "protection" suites (anti-virus, anti-intrusion, etc. programs). Some operating systems, such as Windows XP, include the firewall software too!

· If your DS is running an older firmware (V2.xx) then it will not be accessible through the network and visible to the DS Manager in the following cases:

When the DS is in the serial programming mode (status LEDs of the DS "play" the pattern as shown on the left)**;

When the DS is in the error mode (status LEDs of the DS "play" the pattern as shown on the left)**.

This does not apply to the Device Servers running DS firmware V3.xx or higher. In this firware the DS is visible on the network at all times.

· If there are many devices shown in the device list the DS you are looking for may actually be in the list! A very useful buzz feature allows you to match device list entries to their actual physical Device Servers. Use this function and you will probably "find" your DS (buzz feature is only supported by DS firmware V3.xx or higher).

Here is why the DS may be shown in the device list as having an unreachable IP-address:

· Because the IP-address of the DS is really unreachable. This means that it is outside of the IP-address range defined for the subnet to which your PC is connected. For example, if the IP-address of your PC is 192.168.100.30 and the netmask is 255.255.255.0 then your local subnet has the IP-address range from 192.168.100.1 to 192.168.100.254***. So, if you connect the DS to the local network segment and set its IP-address to 192.168.100.40 then the DS Manager will be able to access this DS. If you set the IP-address to 192.168.10.40 then your PC will decide that this IP-address is on some other subnet and will relate all communications (related to this IP) to the "default gateway". This means that network packets addressing this DS won't even be released into the network to which the DS is physically connected.

· Because the DS Manager has cached a different MAC-address for the IP-address currently assigned to the DS in question. This can happen if you connect different Device Servers one by one to the same network segment and then assign the same IP-address to each Device Server. This is often reported by our Users that want to pre-program or test several Device Servers. What happens here is that after the first DS is detected/accessed by the DS Manager the PC finds out the MAC-address that corresponds to the IP-address of the DS****. If you quickly connect another DS in place of the first one and assign the same IP-address to it the PC won't bother to "resolve" the IP-address again and will attempt to communicate with the "cached" MAC-address instead. Since MACs are unique for each DS the DS Manager won't be able to communicate with the new DS using "normal" IP-addressing. This problem will be resolved automatically after IP-MAC mapping data kept by the PC expires (about 20 minutes later). If your task is to pre-program/test several Device Servers then you don't have to wait until this happens- the DS Manager automatically chooses broadcast access for Device Servers that (temporarily) cannot be addressed using their IP-address.

· Because the IP-address of the DS is the same as the IP-address of some other device on the network segment. The best way to find out if this is so is to switch the DS off and try to PING the IP-address in question. If you still get PING replies then this means there is some other network device that is using this IP!

· Because of the firewall software installed on your PC. We have seen cases when the DS Manager could discover the Device Servers (broadcast UDP communications to port 65535 were allowed) but could not address these devices using normal IP addressing (non-broadcast UDP communications to port 65535 were blocked). When this is the cause of the problem all of your devices will be seen in the DS Manager with grayed icons.

* Really sorry for this "hint"... it's just that this is the root cause of many problems!

** See status LED signals for the full list of all available patterns.

*** .0 and .255 are not allowed in principle.

**** MAC-address is an actual physical network address used by all Ethernet devices. When connecting to the target device with a specified IP-address the "connectee" first finds out what MAC-address corresponds to the targeted IP-address. This way IP-addresses are mapped onto the MAC-addresses. This process is called "address resolution" and is performed using a special Address Resolution Protocol (ARP). Mapping information is memorized ("cached") by the PC and is remembered for about 20 minutes. The information is reused until it expires. This means that instead of using the ARP again the PC simply uses cached data instead.


Address Book Access Mode

Can't access your Device Server in the address book mode?
The device list shows "no response" or "unknown device" status?
See troubleshooting!

Address book access mode is selected by choosing "Device Servers from the address book" from the access mode drop-down box, located at the top of the DS Manager's main window.

In this mode the DS Manager displays a manually created list ("the address book") of Device Servers. Each entry in the list specifies the IP-address (and port number) at which the DS is (supposed to be) located or through which the DS can be accessed. The address book is edited using three buttons- Add, Remove, and Edit.

Address book mode allows the DS Manager to communicate both with local and remote Device Servers (i.e. located behind the routers)*. Since local Device Servers can easily be accessed using the auto-discovery access mode the primary use of the address book mode is to access remote Device Servers.

Modern routers offer a bewildering array of routing arrangements and security (firewall) options. To adjust for all this complexity the address book mode provides a flexibility of defining access parameters separately for each entry in the list. This includes, apart from the IP-address, the access method and the access port number.

In the address book mode the device list always displays all entries from the address book (this is different from the auto-discovery mode which only shows online devices). Each time Refresh button is pressed the DS Manager verifies which Device Servers are online and reflects this by displaying an appropriate icon for each entry in the list. Status area under the device list displays extended status information for the DS selected in the list.

In the address book mode the device list has the following fields:

· DS status icon. See DS status icons for more information. Since the address book consists of addresses, not actual devices, there is no guarantee that there is definitely a functioning DS at each specified location. On the sample screenshot above no device is found at location specified by line 3 (no status icon displayed) and unknown device (not a Tibbo Device Server) is found at location specified by line 4 ( [image] is displayed).

· IP-address of the DS itself or the forwarding IP-address on the router through which this DS can be accessed (this depends on the router setup**). Comment next to the IP-address shows whether the DS is local (otherwise it is remote). If the DS is running with DHCP enabled the note "DHCP" is also displayed next to the IP-address.

· Access method and programming port number of the DS itself or the forwarding port on the router through which this DS can be accessed (this depends on the router setup**). Access parameters for the address book mode topic provides detailed info on the subject.

· Owner name and device name fields displays the data from the Owner Name (ON) and Device Name (DN) settings of the DS. The purpose of these settings is to simplify distinguishing between the Device Servers in the device list.

· Comment field (unlike owner name and device name) is associated with the address book entry and is stored on the PC.

Device list of the address book mode is not sorted and is kept in the original order of entry. You can rearrange the list by dragging and dropping the entries.

Programmer's info:

In the address book access mode broadcast commands are not used. Clicking Refresh button makes the DS "poll" each address book entry individually. Polling consists of sending a PING and (if there is a reply to the PING) an Echo (X) command. If there is no reply to the PING no response status is displayed for this DS. If there is a reply to the PING but no reply to the Echo (X) command then the DS Manager assumes that this is an unknown device.

Notice that address book entries with inband access method are not polled at all when you click Refresh (see access parameters for the address book mode).

* Ability to access remote Device Servers also depends on the configuration of the network, routers, and Device Servers.

** Here we touch on a very complicated subject. Modern routers offer a bewildering array of setup options. We will attempt to cover this in details in our upcoming white papers.


Access Parameters for the Address Book Mode

Modern routers offer a bewildering array of routing arrangements and security (firewall) options*. To adjust for all this complexity the address book mode provides a flexibility of defining access parameters separately for each entry in the list. This includes, apart from the IP-address, an access method and an access (command) port number.
Both parameters are set in the address book entry dialog (see editing the address book).

The access method defines how the DS Manager communicates with the DS:

· When out-of-band UDP access method is selected the DS Manager communicates with the DS using command UDP datagrams sent to command port 65535 (or 32767) of the DS. Out-of-band UDP commands is a primary way of network programming that requires no preliminary setup on the DS side. In other words, it always works as long as the routers and firewall do not ban UDP traffic to port 65535 (32767). Therefore, we suggest you to always use this access method whenever possible. The DS Manager allows you to input any port number but actually only two UDP command ports are provided on the DS- 65535 and 32767 (either one can be used).

· When inband TCP access method is selected the DS Manager communicates with the DS by sending commands through the TCP connection established to the data port of the DS (this is the port number defined by the Data Port Number (PN) setting). Inband TCP commands provide a secondary method of network programming that can be used in situations when out-of-band UDP access is impossible. You can use any access port number- this is an additional flexibility- just make sure that you program the same port number on the DS and in the address book entry. There are several limitations associated with inband access:

· For "inband" address book entries the DS Manager does not automatically verify DS presence when the Refresh button is pressed. Therefore, after the Refresh button is clicked all Device Servers for which the inband access is defined initially appear in the list with the [image] icon. If you want to check if such a DS is accessible then attempt to execute the desired action: press Settings button or Buzz button and see the result (Upgrade, Initialize, and Routing Status functions are not available for "inband" address book entries). At this point the DS Manager will attempt to establish a TCP connection to the DS and find out if the DS is accessible. This will be reflected in the device list.

· For the inband access to work the DS must be preset in a certain way first- read preparing the DS for inband access for step-by-step instructions.

· It is not possible to access the DS using inband access method when the DS is already engaged in a data TCP connection with another application and/or network host. Since inband commands are, by definition, the commands that are passed within the data connection itself the DS Manager actually establishes a data TCP connection with the DS in order to program it (this is why this connection is made to the data port of the DS, not the command port). The DS only allows for a single data connection at a time, so if it is already engaged in a data connection with another application and/or network host the DS Manager will be rejected.

· When telnet TCP access method is selected the DS Manager performs programming through a TCP connection established to port 23 of the DS (see telnet TCP programming). Unlike inband access method, this does not require any prior setup of the DS side but will only work with newer Device Servers that run on firmware V3.50 or higher.

* Here we touch on a very complicated subject. Modern routers offer a bewildering array of setup options. We will attempt to cover this in details in our upcoming white papers.


Preparing the DS for Inband Access

As explained in access parameters for the address book mode a certain pre-programming must be made on the DS side before this DS can be accessed using inband access method. Inband access method is usually used for remote Device Servers at locations with which out-of-band communications are not possible. Therefore, it may be not possible to pre-program the DS for inband access when it is already installed in its intended remote location!

There are two ways in which the pre-programming can be done:

· Use the auto-discovery access mode to pre-program the DS from a PC that is located on the same network segment as this DS. Alternatively, you can temporarily connect the DS to a local network segment, pre-program it, then return it to its intended remote location.

· Use the COM access mode. Connect the serial port of the DS to the COM port of the PC and make the pre-programming through the serial port.

Here is what you need to do:

· Select the DS:

· If the pre-programming is to be done through the network select the auto-discovery access mode and double-click on the DS in the device list- this will open the settings dialog. You don't have to change the IP-address of the DS- in this mode the DS Manager will be able to access even Device Servers with unreachable IP-address;

· If the pre-programming is to be done through the serial port select the COM access mode and double-click on the COM port (to which the DS is connected) in the device list. You will be asked to press the setup button* and then the settings dialog will be opened.

· In the settings dialog make the following choices:

· Set desired IP-address for this DS (IP-address (IP) setting). Once the DS is installed in its intended remote location you won't be able to access it unless it already has a suitable and known IP-address;

· Set desired data port number (Port Number (PN) setting). Once the DS is installed in its intended remote location you won't be able to access it unless it already has a suitable and known port number;

· Select 1 (TCP) for the Transport Protocol (TP) setting. Inband access is only possible when the TCP transport protocol is selected.

· Select 0 (server) or 1 (server/client) for the Routing Mode (RM) setting. The DS won't accept data connections when the Routing Mode is 2 (client) and the inband programming is performed through the data connection.

· Select 1 (enabled) for the Inband Commands (IB) setting.

· Press OK to close the settings dialog and reboot the DS.

Note on DHCP servers

Procedure above includes the setup of the IP-address. This should only be done if the remote network segment doesn't have DHCP service. If there is a DHCP service then it is better to run with the DHCP (DH) setting at 1 (enabled) and let the DHCP server handle the IP-address of the DS automatically.

The problem here is that the DHCP server may change the IP-address of the DS in the future and you will not know about this! If you want to prevent this from happening then set the IP-address of the DS manually and configure this IP-address as manually managed on the DHCP server's side (most DHCP servers provide an option to exclude certain IPs from automatic management).

* On EM100, EM120, EM200, EM202- pull the MD line LOW for at least 100ms.


Troubleshooting (Address Book Mode)

This topic provides a list of hints that can help you figure out why the device list of the address book mode shows a particular DS (address book entry) with "no response" or "unknown device" status. See troubleshooting (auto-discovery mode) and troubleshooting (COM mode) for hints on other two access modes.

In the address book access mode you do not encounter a situation when you cannot "see" some entries in the device list. This is because this list is created manually by you and all address book entries are displayed at all times, even when corresponding Device Servers cannot be reached. Instead, you often have to solve the problem of why the DS Manager cannot contact the DS specified in the particular address book entry.

The problem can manifest itself in two different ways:

--- The DS Manager indicates that there is no response from the IP-address specified in the address book entry (no status icon is displayed at all).

The DS Manager indicates that there is some kind of device at the specified IP-address but it doesn't seem to be a Tibbo Device Server (the question mark is displayed).

"No response" status is displayed when the DS Manager cannot PING the IP-address specified in the address book entry.

Here is why you may get "no response" status:

· The DS may be switched off or not connected to the network*.

· Incorrect IP-address may be specified for this address book entry. Think carefully what IP-address you input. Depending on the router setup you may need to input the IP-address of the DS itself or the access (forwarding) IP-address on the router**.

· Firewall software on your PC or on the router may be set to disallow PINGs (a very common situation on many networks). For the DS Manager to work you must have PING (ICMP) traffic enabled. Attention here! Our experience shows that many Users are not aware of the firewall software installed on their own PCs! Some firewalls come as part of larger "protection" suites (anti-virus, anti-intrusion, etc. programs). Some operating systems, such as Windows XP, include the firewall software too.

· If your DS is running an older firmware (V2.xx) then it will not be accessible through the network and won't respond to PINGs in the following cases:

When the DS is in the serial programming mode (status LEDs of the DS "play" the pattern as shown on the left)**;

When the DS is in the error mode (status LEDs of the DS "play" the pattern as shown on the left)**.

This does not apply to the Device Servers running DS firmware V3.xx or higher. In this firware the DS is visible on the network at all times.

"Unknown device" status is displayed when there is no reply to the echo command sent by the DS Manager. This command is unique to Tibbo Device Servers and is used to identify them on the network (and also collect status information). Depending on the access method specified for this address book entry the echo command may be sent as out-of-band UDP command or inband TCP command.

Here is why you may get "unknown device" status:

· If out-of-band (UDP) access method is selected for this address book entry:

· In certain cases this may be because the DS is switched off or not connected to the network. It is true that if the DS Manager displays the [image] icon this means that it has already got the reply to the PING request but in some router modes the PING reply actually comes from the router, not the DS itself**. Therefore, do make sure that the DS is online;

· Incorrect programming port number may be specified for this address book entry. Think carefully what port number you input. Depending on the router setup you may need to input the command port number on the DS itself (i.e. 65535 or 32767, you can use either one) or the access (forwarding) port on the router**;

· Firewall software on your PC or on the router may be set to disallow UDP traffic (a very common situation on many networks). For the DS Manager to work you must enable UDP traffic to the command port specified in this address book entry. In some router setups** UDP traffic through the router is very unreliable or completely impossible. In this case you may need to use inband access method which relies on TCP protocol.

· If inband TCP access method is selected for this address book entry:

· First of all remember, that for "inband" address book entries the DS Manager does not automatically verify DS presence when the Refresh button is pressed. Therefore, after the Refresh button is clicked all Device Servers for which the inband access is defined initially appear in the list with the [image] icon. If you want to check if such a DS is accessible then attempt to execute the desired action: press Settings button or Buzz button and see the result (upgrade, initialize, and routing status functions are not available for "inband" address book entries). At this point the DS Manager will attempt to establish a TCP connection to the DS and find out if the DS is accessible. This will be reflected in the device list.

· Incorrect programming port number may be specified for this address book entry. Think carefully what port number you input. Depending on the router setup you may need to input the data port number on the DS itself (this is the port number specified by the Data Port Number (PN) setting of the DS) or the access (forwarding) port on the router**;

· The DS may not be configured for inband programming- read preparing the DS for inband access for step-by-step instructions.

· The DS may be already engaged in a data TCP connection with another application and/or network host. Since inband commands are, by definition, the commands that are passed within the data connection itself the DS Manager actually establishes a data TCP connection with the DS in order to program it (this is why this connection is made to the data port of the DS, not the command port). The DS only allows for a single data connection at a time, so if it is already engaged in a data connection with another application and/or network host the DS Manager will be rejected***.

· If telnet TCP access method is selected for this address book entry:

· Telnet TCP access method is only supported by newer Device Servers running firmware V3.50 or higher. Make sure you are not attempting to use this access method for the Device Server that doesn't support it;

· Incorrect programming port number may be specified for this address book entry. Think carefully what port number you input. Depending on the router setup you may need a standard telnet port of 23 or some other access (forwarding) port on the router**.

* Really sorry for this "hint"... it's just that this is the root cause of the problem in many cases!

** Here we touch on a very complicated subject. Modern routers offer a bewildering array of setup options. We will attempt to cover this in details in our upcoming white papers.

*** We understand that this is a limitation and are working to remove it.


COM Access Mode

Can't access your Device Server through the serial port?
See troubleshooting!

COM mode is selected by choosing "Device Servers attached to the COM ports" from the access mode drop-down box, located at the top of the DS Manager's main window. In the COM access mode the DS is accessed through its serial port. Therefore, you must connect the serial port of the DS to the unused COM of your PC using a DS-to-PC cable (like WAS-1455 supplied by Tibbo).

In the COM access mode the device list displays all physical COM ports of your PC. The DS Manager is not able to determine which COM the DS is connected to so you have to make a correct selection by yourself.

For the DS Manager to access the DS the latter must be in the serial programming mode. To put the DS into this mode press the setup button*.

Note:

Status LEDs of the DS are playing a serial programming mode pattern (shown on the left) when the serial port of the DS is in the serial programming mode (click here to see all available patterns).

* On EM100, EM120, EM200, EM202- pull the MD line LOW for at least 100ms.


Troubleshooting (COM Mode)

This topic provides a list of hints that can help you figure out why you cannot access the DS through the serial port. See troubleshooting (auto-discovery mode) and troubleshooting (address book mode) for hints on other two access modes.

Here are the reasons why the DS Manager may not able to access the DS in the COM access mode:

· The DS may be switched off*.

· Incorrect cable is used to connect the serial port of the DS to the COM port of the PC. Use WAS-1455 supplied by Tibbo!

· Wrong COM port is selected in the device list.

· The serial port of the DS is not in the serial programming mode. To put the DS into this mode press the setup button**.

Note:

Status LEDs of the DS are playing a serial programming mode pattern (shown on the left) when the serial port of the DS is in the serial programming mode (click here to see all available patterns).

* Really sorry for this "hint"... it's just that this is the root cause of the problem in many cases!

** On EM100, EM120, EM200, EM202- pull the MD line low for at least 100ms.


Functions

This section lists all "functions" (features) of the DS Manager. These functions are associated with the function buttons located in the DS Manager's main window.


Editing DS Settings (Settings Button)

Internal settings of DS are viewed and edited in the settings dialog. This function is available in all access modes.

To open the settings dialog either double-click on the DS in the device list (COM port to which the DS is connected if you are in the COM access mode). Alternatively, you can single-click on the DS (COM port) in the device list and then press the Settings button.

When the settings dialog is opened it reads out current values of all settings available on the DS and displays them in a setting table. All settings are divided into groups and each group is placed on its own group tab. Dialog caption displays the version of firmware running on this DS. If "+N" is displayed next to the version number then this means that the NetLoader is present and the firmware of this DS can be upgraded through the network.

Settings dialog can correctly display the settings for Device Servers with different application firmware versions- correct setting table will be displayed for each supported firmware version. The list of settings available in different firmware versions comes from the *.sdf files ("setting definition files") located in the /sdf subfolder of the DST's program folder.

The only setting that is not shown in the table is the Password (PW) setting. This setting defines the login password that will have to be entered when you want to access the DS through the network (i.e. open the settings dialog, upgrade or initialize the DS, or change the IP-address). Click Password button to set the password (edit the Password (PW) setting).

Relevance (or irrelevance) of certain settings depends on the current values of other settings. Setting reference section describes which settings "depend" on which other settings. Additionally, some settings can be relevant but their value can be modified automatically by the DS.

The settings displayed in the table may be in one of the following three states:

· Relevant- setting name and its value appear in solid black. This means that the setting can be edited.

· Irrelevant- setting name is grayed and the line "[irrelevant]" is displayed instead of the setting value. This means that the setting is currently irrelevant and cannot be edited. To edit such a setting make it relevant first by adjusting the values of other settings. For example, the Gateway IP-address (GI) setting is shown as irrelevant on the screenshot above because the Routing Mode (RM) setting is 0 (server). Select the Routing Mode of 1 (server/client) or 2 (client) and the Gateway IP-address will become relevant.

· Modifiable- setting name is shown in solid black and the setting value is shown in dark red. This means that the setting can be edited but the new value can be automatically overwritten by the DS. For example, the IP-address (IP) setting is relevant at all times but when the DHCP (DH) setting is 1 (enabled) the DS will overwrite original IP-address with the (new) address supplied by the DHCP server.

The settings dialog also lets you save current values of DS settings into a file (click Save button) and load setting values from file (click Load button). Configuration files have the .ds extension.

Programmer's info:

The DS Manager reads and writes the values of settings using the Get Setting (G) and Set Setting (S) commands.

In case of network access (auto-discovery and address book modes) the DS Manager has to login first (open the network programming session) and this is done using the Login (L) command. Serial programming (COM access mode) doesn't require this step.

Network programming sessions and serial programming are ended either with Reboot (E) command (this makes the DS "recognize" new setting values) or with Logout (O) command (no reboot).


Upgrading DS Firmware (Upgrade Button)

Internal firmware of the DS can be upgraded in the field. This function is available in all access modes with the following limitations:

· Some earlier Tibbo devices (EM100-00/ -01/ -02, DS100-00/ -01/ -02) did not support network upgrades so their firmware can only be upgraded through the serial port (COM access mode).

· All other devices do support network upgrades but such an upgrade is only possible if a functioning (albeit older) firmware file is already found on the device. This implies that loading a wrong file into the device renders all future network upgrades impossible until a correct upgrade is performed through the serial port.

· Additionally, for the network upgrade to work the DS Manager must be able to access the DS using an out-of-band UDP access method. Therefore, Device Servers defined by the "inband" address book entries (in the address book mode) cannot be upgraded through the network (access methods are described in access parameters for the address book mode).

To upgrade the DS firmware:

· Select (single-click) the DS you want to upgrade in the device list (or COM port to which the DS is connected in the COM access mode) and click Upgrade button. Upgrading the Device Server dialog will appear.

· Browse to a file you want to upload into the DS and click OK. Be sure to select correct firmware file- this depends on the DS model and also the way upgrade is done (through the network or through the serial port).

· What happens next depends on the access mode:

· For network upgrades (auto-discovery and address book modes) the upgrade will start automatically. After the upgrade is finished the DS Manager will reboot the DS. The DS Manager will also make sure that the DS starts running with the newly loaded firmware and let you know if the DS enters the error mode, which means that its settings must be initialized;

· For serial upgrades (COM access mode) the procedure is more "manual". You will be asked to switch the DS off, press the setup button*, and switch it back on while keeping the button pressed. Upgrade will start after that. At the end of the upgrade you will be asked to reboot the DS manually (switch it off and on). You will have to also manually check if the DS requires initialization.

Programmer's info:

The DS Manager verifies the NetLoader presence and passes control to it using the Jump To Netloader (N) command.

* On EM100, EM120, EM200, EM202- pull the MD line LOW for at least 100ms.


Initializing the DS (Initialize Button)

Internal settings of the DS can be initialized. Initialization restores all settings to their default values*. This function can be used to return the DS to the "known setup" and/or "repair" the DS when one or more settings are found to be invalid (i.e. the DS is in the error mode). This function is available in all access modes with the following limitation:

· When you are working in the address book mode the DS Manager won't let you initialize the DS for which inband access method is set. This is because initialization would have disabled inband access** and this would have made further interactions with this DS impossible. If you need to initialize such a DS then connect it temporarily to the same network segment as your PC (and use auto-discovery mode) or to the COM port of your PC (and use COM access mode), and then perform initialization.

To initialize the settings of the DS select (single-click) the DS you want to upgrade in the device list (or COM port to which the DS is connected in the COM access mode) and click Initialize button.

Initialization results differ depending on the access mode. Some settings are always initialized when the initialization command is issued through the serial port (COM access mode) but are only initialized if were invalid when the initialization command is issued through the network (auto-discovery and address book access modes). Some settings are never initialized (no matter what the access mode is) unless found to be invalid.

Example: the IP-address (IP) setting is only affected by the initialization if the DS is accessed through the serial port. When you initialize the DS through the network this setting won't be initialized unless it was invalid. This is done to make sure that the DS can still be accessed through the network after the initialization.

Setting reference provides complete information on each setting of the DS including default factory values and conditions under which a particular setting will be initialized.

Programmer's info:

This function relies on the Initialize (I) command.

* These are either default factory values or default values defined by the user (if custom profile is added to the firmware).

** Default factory value for the Inband (IB) setting is 0 (disabled) and Transport Protocol (TP) setting is 0 (UDP). Inband access must be enabled and the transport protocol must be TCP for the inband access to work.


Monitoring DS Status (Routing Status Button)

DS operation can be monitored remotely, using a routing status dialog. To open the dialog click the Routing status button. This feature is a very useful debugging tool that lets you determine the DS state at any moment. The information in the dialog is updated each time Refresh button is pressed (this is the button in the dialog, not in the main window).

This function is available in the auto-discovery and address book modes with the following limitations:

· When you are working in the address book mode you won't be able to use this feature on Device Servers for which inband access method is set. Routing status feature requires out-of-band access! This is because inband access implies sending commands through the TCP data connection and the DS only allows for a single data connection at a time. Since the feature is created mainly to monitor the DS while it is routing the data (i.e. has a data connection with some other network host/application), the only available data connection should not be occupied by the DS Manager.

· Routing status feature is not supported by the Device Servers running older firmware (earlier than V3.xx).

Routing status dialog displays the following information:

· Current state of routing buffers. Routing buffers are used as a temporary storage for the data being routed between the Ethernet and serial ports of the DS. The routing status dialog reports the number of committed bytes (for serial-->Ethernet buffer), total number of bytes in each buffer ("data"), and the capacity of the buffers. Read serial-to-Ethernet data routing topic to learn what "committed" means. Capacity information is provided because different DS models have buffers of different size.

· Information on current data connection. This partially doubles the data reflected by the status icons (displayed in the device list) and the status area of the main window. Additional information provided by the routing mode dialog includes the IP-address and the port number of the network host with which the DS has been/is/will be in a data connection. Here is what these two fields show:

· After power-up the fields show the IP-address and port defined by the Destination IP-address (DI) setting and Destination Port Number (DP) setting;

· If these default values are overridden by serial-side parameters and instructions (a.k.a. "modem commands") then the fields show new overriding values;

· While the data connection is established and after it is closed (aborted) the fields show the IP-address and port of the network host with which this connection is (was) established. Notice that this may be different from the above- if the DS has accepted an incoming connection!

· Current serial port setup. This data may be of interest because it will not necessarily match the serial port setup defined by the serial port-related DS settings. The values of settings can be overridden by the network-side parameters (a.k.a. "on-the-fly commands")*. Therefore, the routing status dialog can be used to verify actual current serial port setup.

· Current state of RS232 control lines. The state of control lines is displayed in the correct polarity for DS100R, DS100B, DS202R, EM100-EV, EM120/EM200-EV, EM202-EV. For EM100, EM120, EM200, EM202 the state is exactly opposite. So, if the state of RTS line (output) is shown as HIGH then this means that the DS is ready to receive the data from attached serial device.

Programmer's info:

The DS Manager uses two commands- Echo (X) and Status (U)- to read out the current status of the DS.

* On-the-fly commands are used, for instance, by Virtual Serial Ports (VSPs) to change serial port configuration of the DS. This way PC application that has opened the VSP can change the setup of the DS serial port as needed.


"Buzzing" the DS (Buzz Button)

The buzz feature allows you to match an entry in the device list to an actual physical DS. The feature is available in the auto-discovery and address book modes with the following limitation:

· The buzz feature is not supported by the Device Servers running older firmware (earlier than V3.xx).

Clicking on the Buzz button causes the DS (selected in the device list) to play a fast-blinking pattern on its status LEDs (shown at the left). This way you can easily identify which device a particular device list entry corresponds to.

Programmer's info:

This function relies on the Buzz (B) command.


Changing IP-address (Change IP Button)

The DS Manager provides a way to assign a new IP-address to the DS over the network. This is done by sending a broadcast command that refers to the target DS by its MAC-address*. All Device Servers on a local network segment will receive the broadcast but only the one whose MAC-address matches the one specified in the broadcast will react.

The feature will work even if the DS had an unreachable or invalid IP-address. The disadvantage is that, since the broadcasts cannot pass through the routers, the feature can only be used with local Device Servers and, therefore, is limited to the auto-discovery access mode.

To assign a new IP-address to the DS click the Change IP button, input the new IP-address and click OK.

Programmer's info:

This function relies on the Assign IP-address (A) command.

*MAC-addresses are unique for all Device Servers (and, in fact, all Ethernet devices).


Editing the Address Book (Add, Remove, Edit Buttons)

Add, Remove, and Edit buttons are used to edit the address book. Address book is a fixed list of Device Servers displayed in the address book access mode. Remove and Edit buttons are only visible in the address book access mode, while the Add button is also available in the auto-discovery mode. This allows you to add the DS "found" in the auto-discovery mode to a permanent list in the address book mode.

Clicking Add or Remove button brings up the address book entry dialog.

The dialog has the following fields:

· IP-address. This is the IP-address of the DS itself or the forwarding IP-address on the router through which this DS can be accessed (this depends on the router setup*).

· Comment. This comment is stored on the PC (not in the DS) and can contain any useful information (i.e. "Remote device #1").

· Access method. The DS Manager can access a particular DS using out-of-band (UDP), inband (TCP), or telnet (TCP) access method. See access parameters for the address book mode topic for more information.

· Access port. This is the access port on the DS to which the DS Manager will send programming commands. Depending on the router setup this may be a port on the DS itself or the forwarding port on the router*. The port number on the DS is different depending on the selected access method. See access parameters for the address book mode topic for more information.

* Here we touch on a very complicated subject. Modern routers offer a bewildering array of setup options. We will attempt to cover this in details in our upcoming white papers.


Warnings And Messages

This reference section contains the following information:

· Additional information on the status messages displayed in the status area of the DS Manager's main window.

· Additional information on the warning and error messages displayed by the DS Manager.


DS Status Messages

This section provides additional information on the status messages displayed in the status area of the DS Manager's main window.

The list of messages is arranged in the alphabetical order.


Error Mode

Description

Message text: Device Server is running in the error mode and must be reinitialized

Corresponding status icon:

May appear in: Auto-discovery and address book access modes

Details

This status means that some settings on this DS are invalid and require initialization. The DS should not be allowed to operate in this condition and must be reinitialized as soon as possible.

Programmer's info:

The DS Manager collects DS status information (and detects DS presence) using the Echo (X) command. Whether or not the DS is in the error mode is determined from the state of the e flag in the command response.


Firmware Upgrade Mode

Description

Message text: Device Server is running in the firmware upgrade mode and is ready to accept new firmware file

Corresponding status icon:

May appear in: Auto-discovery and address book access modes

Details

This status means that the DS is running the NetLoader. NetLoader is a separate firmware component that facilitates application firmware upgrades over the network. Normally, this icon is displayed during the network firmware upgrade. After the network upgrade is finished the DS Manager reboots the DS and after that the DS is supposed to start running the newly loaded firmware.

If the DS enters the firmware upgrade mode unexpectedly and if this mode "persists" then this means that DS firmware is corrupted, or that incorrect firmware file was uploaded, or that the upload was incomplete.

Programmer's info:

The DS Manager collects DS status information (and detects DS presence) using the Echo (X) command. This command is supported both by the application firmware and by the NetLoader. Whether the DS is running its application firmware or is in the firmware upgrade mode is determined from the m flag in the command response (it is 'N' for the application firmware and 'L' for the NetLoader).


IP-address Not Obtained

Description

Message text: Device Server has not yet obtained its IP-address from the DHCP server

Corresponding status icon:

May appear in: Auto-discovery and address book access modes

Details

This status means that the DS is running with DHCP enabled (DHCP (DH) setting is 1 (enabled)) and the DS hasn't yet received its IP-address from the DHCP server. The DS attempts to configure its IP-address after the powerup and won't perform its routing function until IP configuration is completed. Typically, IP configuration takes only 1-2 seconds to complete. If the DS is "stuck" in this state for much longer then this means that DHCP service may not be available on your network.

Programmer's info:

The DS Manager collects DS status information (and detects DS presence) using the Echo (X) command. IP configuration status is determined from the state of the i flag in the command response.


No Response

Description

Message text: No response received from this IP-address (and port)

Corresponding status icon: --- (no icon is displayed for this status)

May appear in: Address book access mode

Details

See troubleshooting (address book mode) for a list of hints on why you might be getting no reply for this address book entry.

Programmer's info:

---


No Status Info Available

Description

Message text: Device Server did not return the status information. This means that this DS is running an older firmware version

Corresponding status icon:

May appear in: Auto-discovery and address book access modes

Details

In the V3.xx firmware the DS returns its status information along with the response to the echo request, sent by the DS Manager during the refresh. In older firmware versions (V2.xx) the response from the DS does not contain any status information. You are recommended to upgrade your firmware to the latest version.

Programmer's info:

The DS Manager collects status information (and detects DS presence) using the Echo (X) command. In the old firmware versions this command only returned the first two fields (nnn.nnn.nnn.nnn.nnn.nnn and ppppp).


Programming in Progress

Description

Message text: Out-of-band (UDP) network programming session is in progress;
Inband (TCP) network programming session is in progress;
The DS is in the serial programming mode

Corresponding status icon:

May appear in: Auto-discovery and address book access modes

Details

Three separate status messages are displayed for three possible forms of DS programming: serial, out-of-band (UDP), and inband (TCP). Serial programming is considered to be in progress whenever the serial port of the DS is in the serial programming mode. Out-of-band (UDP) or inband (TCP) programming session is considered to be in progress after the network host has logged in using a corresponding access method (out-of-band or inband)- see authentication*. Inband (TCP) access method is only used in the address book mode (see access parameters for the address book mode).

All three forms of programming are mutually exclusive- see programming priorities.

Programmer's info:

The DS Manager collects DS status information (and detects DS presence) using the Echo (X) command. Whether or not any form of programming is in progress is determined from the state of the s flag in the command response. Network logins are performed using the Login (L) command.

* Just sending commands that do not require prior login does not constitute a programming session.


Routing Buffer Overflow

Description

Message text: Ethernet-to-serial buffer overflow;
Serial-to-Ethernet buffer overflow;
Serial-to-Ethernet and Ethernet-to-serial buffer overflow

Corresponding status icon: (overflow condition is displayed only in conjunction with "connection established" icon)

May appear in: Auto-discovery and address book access modes

Details

These messages are displayed when one or both routing buffer overflow is detected. Routing buffers are used for temporary data storage when routing data between the Ethernet and serial ports of the DS.

In general, do the following to avoid overflows:

· For Ethernet-to-serial buffer: using TCP/IP transport protocol (see Transport Protocol (TP) setting) guarantees that this buffer never overflows.

· For serial-to-Ethernet buffer: using RTS/CTS flow control (see Flow Control (FC) setting) guarantees that this buffer never overflows*.

Programmer's info:

The DS Manager collects DS status information (and detects DS presence) using the Echo (X) command. Buffer condition is determined from the state of the E and S flags in the command response.

* Naturally, attached serial device must also support RTS/CTS flow control for this to work.


Unknown Device

Description

Message text: Although there is SOME device at this IP-address it appears that this is not a Device Server

Corresponding status icon:

May appear in: Address book access mode

Details

See troubleshooting (address book mode) for a list of hints on why you might be getting this status for an address book entry.

Programmer's info:

---


Unreachable IP-address

Description

Message text: Current IP-address is unreachable with your network

Corresponding status icon: (The whole icon is grayed)

May appear in: Auto-discovery access mode

Details

This status means that the DS Manager has detected the DS on the local network segment but is unable to communicate with this DS by using a "normal" IP addressing. See troubleshooting (auto-discovery mode) for a list of hints on why this could happen.

Programmer's info:

---


Warning and Error Messages

This section provides additional information on the warning and error messages displayed by the DS Manager.

The list of messages is arranged in the alphabetical order.


Broadcast Access Not Supported

Description

Message text: The IP-address of this DS is unreachable and the DS can only be accessed in the broadcast mode. The firmware on this Device Server is outdated and does not support broadcast access. Assign a compatible IP-address or upgrade to firmware V3.xx or higher (recommended)

May appear in: Auto-discovery access mode; Settings, Initialize, Buzz functions

Details

This message means that the DS Manager cannot communicate with the DS using a normal IP-addressing. Possible reasons for why this could happen are outlined in troubleshooting (auto-discovery mode).

The DS Manager can access local Device Servers even when normal IP communications is impossible. This is done through a so called broadcast access. This functionality, however, is only supported by DS firmware V3.xx or higher.

The way out of this situation is to make normal IP communications possible or/and to upgrade the DS firmware to V3.xx or higher. Depending on how old the DS firmware is you may not be able to upgrade the firmware over the network and will need to do this through the serial port of the DS (in the COM access mode).

Programmer's info:

Broadcast access is based on the Select In Broadcast Mode (W) command that was only introduced in firmware V3.xx.


Could Not Connect to the DS (Inband Access)

Description

Message text: Inband (TCP) access method is defined for this Device Server and the DS Manager was unable to establish a TCP connection to the DS

May appear in: Address book access mode; Settings, Initialize, Buzz functions

Details

When inband (TCP) access method is specified for a particular address book entry and the DS Manager needs to access the DS it must establish a TCP connection to this DS first. This message indicates that TCP connection could not be established. Read troubleshooting (address book mode) for hints on what might be causing the problem.

Programmer's info:

---


Data Link In Progress

Description

Message text: This Device Server has a data connection in progress. Performing requested operation will abort this connection. Continue still?

May appear in: Auto-discovery and address book access modes; Settings, Upgrade, Initialize functions

Details

---

Programmer's info:

The DS Manager verifies whether the DS is engaged in a data connection by sending the Echo (X) command and analysing the status of the c flag in the reply. If this flag is not '*' then this means that the data connection is not closed (is in progress).


DS Lost (After Changing IP)

Description

Message text: IP-address was changed successfully but the DS Manager cannot locate this Device Server on the network

May appear in: Auto-discovery access mode; Change IP function

Details

After having changed the IP-address the DS Manager makes sure that the DS is online and using the IP-address that was just assigned. This message appears when the DS has confirmed that command was accepted but later could not be found among local Device Servers. This situation is not normal and may indicate that the new IP-address is (for some reason) blocked by your PC or network equipment.

Note, that this is more serious than the case when the IP-address turns out to be unreachable (this situation is reported by the unreachable IP-address status message). If this was the case the DS Manager would still be able to detect the DS on the network. Watch out for some special firewall settings of your PC or similar reasons why communications with a certain IP-address might be blocked (also see troubleshooting (auto-discovery mode)).

Programmer's info:

IP-address is changed using Assign IP-address (A) command. This message means that OK (A) status code was actually received for this command but the DS could not be found during subsequent refresh operation.


DS Lost (After Entering NetLoader)

Description

Message text: DS Manager cannot locate the Device Server after making it enter the firmware upgrade mode. This may be because the IP-address (or MAC-address) of this Device Server has changed

May appear in: Auto-discovery and address book access modes; Upgrade function

Details

Firmware upgrades over the network are facilitated by a separate firmware component called the NetLoader. To upgrade the application firmware over the network the DS Manager makes the DS switch to the NetLoader first.

When control is passed to the NetLoader, it attempts to read the values of IP-address (IP) and MAC-address (FE) settings and use these values. This way the switchover to the NetLoader is "seamless" and the DS is still accessible at the same IP and MAC as when it was running the application firmware.

In selected cases, the readout of those two settings can fail (for instance, when one or both of these settings is/are invalid). In this case the DS will replace the invalid value(s) with a default one: 127.0.0.1 for the IP-address, 0.1.2.3.4.5 for the MAC-address.

If you are accessing the DS using the address book mode and the DS assumes these default values you may not be able to access it (at least temporarily). We recommend you to connect the DS to the same network segment with your PC and use the auto-discovery access mode.

Programmer's info:

---


DS Lost (After Exiting NetLoader)

Description

Message text: Upgrade completed successfully but the DS Manager was unable to locate this Device Server on the network after rebooting it

May appear in: Auto-discovery and address book access modes; Upgrade function

Details

The cause of this message is similar to that of the DS lost (after entering NetLoader) message (but "in reverse"). After the NetLoader has finished working and the DS was rebooted its IP-address and/or MAC-address have probably changed. To the DS Manager this will look like "disappearance" of the DS from the network.

To "find" the DS connect it to the same network segment as the PC and run the DS Manager in the auto-discovery access mode. To find out which device in the list is the one you are looking for either disconnect all other Device Servers from the network (this will leave only one DS in the list) or use the Buzz function to locate the DS.

Programmer's info:

---


DS Lost (After Initialization)

Description

Message text: Initialization was completed successfully but the DS Manager cannot locate this Device Server on the network

May appear in: Auto-discovery access mode; Initialize function

Details

After having performed the initialization the DS Manager makes sure that the DS is online. Network initialization does not change the IP-address unless the IP-address (IP) setting were found to be invalid. The default factory value for this setting is 127.0.0.1*, so see if there is a DS now that has this IP-address. If so then this may be your "lost" Device Server!

Programmer's info:

---

* Unless another default value has been defined through a custom profile.


Duplicate Address Book Entry

Description

Message text: Such address book entry already exists

May appear in: Auto-discovery and address book access modes; Add or Edit function

Details

Each DS in the address book is identified by the combination of the IP-address, access port number, and the access method (see access parameters for the address book mode). This message means that your input matches another address book entry that already exists.

Programmer's info:

---


Error Mode (Initialization Required)

Description

Message text: Device Server is currently running in the error mode, which means that some of its settings are invalid. You are recommended to initialize the Device Server first. Continue still?

May appear in: Auto-discovery and address book access modes; Settings function

Details

This message appears when you attempt to open the settings dialog while the DS is in the error mode. Because some settings are invalid the DS Manager is unable to read out their values and display them in the settings dialog.

Once the error mode is detected it is better to initialize the DS as soon as possible. Continuing DS operation is this state may lead to incorrect (unexpected) DS behavior and also exposes the DS to unauthorized access- password protection is disabled when the DS is in the error mode!

Programmer's info:

The DS Manager verifies whether the DS is running in the error mode by sending the Echo (X) command and analysing the status of the e flag in the reply.


Failed to Start the NetLoader

Description

Message text: Failed to put the Device Server into the firmware upgrade mode. NetLoader may not be installed

May appear in: Auto-discovery and address book access modes; Upgrade function

Details

Firmware upgrades through the network are facilitated by a separate firmware component called the NetLoader. When you click Upgrade button the DS Manager instructs the application firmware of the DS to pass the control to the NetLoader. Before doing this application firmware checks if the NetLoader is actually loaded. This message is displayed when the NetLoader appears to be absent.

Here is why the NetLoader may be missing:

· If your DS model is EM100-00/ -01/ -02, DS100-00/ -01/ -02 then this DS cannot be upgraded through the network in principle. The only way to upgrade such a DS is through the serial port (in the COM access mode).

· For EM100-03, DS100R-03, DS100B-00 network upgrades are possible, but only if the NetLoader is installed. When the NetLoader is not present the only way to upgrade the DS is through the serial port (in the COM access mode). If you choose the upgrade file that has "SN" in its name then you will be able to upgrade the firmware and install the NetLoader at the same time! From this moment on you will be able to perform network upgrades as well. Firmware download page at <WEB> provides complete info on what file to choose.

Programmer's info:

The DS Manager instructs the application firmware of the DS to switch to the NetLoader by sending Jump To NetLoader (N) command. This message is displayed when Failed (F) reply code is returned.


Function Not Available (Upgrade Mode)

Description

Message text: This Device Server is currently running in the firmware upgrade mode. Requested function is not available at this time

May appear in: Auto-discovery and address book access modes; Settings, Initialize, Routing Status, Buzz, Change IP functions

Details

Network upgrade mode is a separate mode of operation facilitated by an independent firmware component called the NetLoader. The NetLoader allows you to upgrade the main application firmware of the DS over the network. Naturally, when the NetLoader is running the DS is not executing the application firmware and all functions related to the "normal" operation of the DS are not available. The only available function in this mode is Upgrade.

Programmer's info:

---


Function Not Supported

Description

Message text: The firmware on this Device Server is outdated and does not support this function. You are recommended to upgrade to firmware V3.xx or higher

May appear in: Auto-discovery and address book access modes; Upgrade, Routing Status, Buzz functions

Details

This message means that the firmware on a particular DS you are accessing is outdated (earlier than V3.xx). The function you have requested requires firmware V3.xx or higher.

We recommend you to upgrade to V3.xx (or higher) firmware. This will allow you to fully use all the features of the DS Manager. Depending on how old the firmware is you may not even be able to upgrade the firmware over the network (and this is one of the reasons why you may be reading this message). In this case upgrade the DS firmware via the serial port (in the COM access mode).

Programmer's info:

---


Incorrect Password

Description

Message text: You have entered an incorrect login password. Please, try again

May appear in: Auto-discovery and address book access modes; Settings, Upgrade, Initialize, Change IP functions

Details

Login password is the one you have set by clicking on the Password button in the settings dialog. You cannot access the DS through the network without this password.

If you have forgotten the password then you can either:

· Access the DS in the COM access mode (this does not require password), or...

· Quick-initialize the DS- this will erase the password (only supported by firmware V3.xx or higher).

Programmer's info:

Login password is the one defined by the Password (PW) setting of the DS. Also see authentication topic.


Initialization Failed

Description

Message text: This Device Server is (still) running in the error mode. Press Retry to repeat the initialization. If the problem persists the Device Server may be malfunctioning

May appear in: Auto-discovery and address book access modes; Initialize function

Details

This message appears when the DS initialization fails. Initialization restores all DS settings to their default values and, therefore, "repairs" invalid settings that caused the DS to enter the error mode. It is not normal that the DS is still in the error mode after the initialization and may indicate DS hardware failure.

Programmer's info:

The DS Manager verifies whether the DS is running in the error mode by sending the Echo (X) command and analysing the status of the e flag in the reply.


Initialization Not Allowed

Description

Message text: Inband (TCP) access method is selected for this Device Server. Initialization is not allowed since this would disable inband access and subsequent communications with the DS Manager

May appear in: Address book access mode; Initialize function

Details

This message is only shown when inband (TCP) access method is selected for a particular address book entry. Inband TCP access to the DS is only possible when the Inband (IB) setting is 1 (enabled) and the Transport Protocol (TP) setting is 1 (TCP). Default value of these settings is 0*. Therefore, initialization would result in the inability to access this DS using inband communications!

To initialize this DS find some other way to communicate with it:

· Temporarily connect the DS to the same network segment with your PC and initialize the DS in the auto-discovery access mode (this mode always uses out-of-band (UDP) access method).

· Temporarily connect the serial port of the DS to the COM port of your PC and initialize it in the COM access mode.

Programmer's info:

---

* Unless another default value has been defined through a custom profile (the DS Manager won't detect this and will still disallow the device to be initialized while accessing using inband commands).


Initialization Required

Description

Message text: This Device Server is running in the error mode. This means that newly loaded firmware has some new (different) settings that need to be initialized. Do you want to do this right now?

May appear in: Auto-discovery and address book access modes; Upgrade function

Details

Newly loaded firmware may have new or different settings that have never been initialized on this particular device. After the DS has started running the newly loaded application firmware it has detected that these settings contain invalid values and entered the error mode. You are recommended to initialize the DS as soon as possible.

Programmer's info:

The DS Manager verifies whether the DS is in the error mode by sending the Echo (X) command and analysing the status of the e flag in the reply.


Input Login Password

Description

Message text: Input login password for this Device Server

May appear in: Auto-discovery and address book access modes; Settings, Upgrade, Initialize, Change IP functions

Details

Login password is the one you have set by clicking on the Password button in the settings dialog. You cannot access the DS through the network without this password.

If you have forgotten the password then you can either:

· Access the DS in the COM access mode (this does not require password), or...

· Quick-initialize the DS- this will erase the password (only supported by firmware V3.xx or higher).

Programmer's info:

Login password is the one defined by the Password (PW) setting of the DS. Also see authentication topic.


Invalid Firmware File (or Comm Error)

Description

Message text: Firmware upgrade has failed. This may be because you are trying to upload an invalid file or because of communications error

May appear in: COM access mode; Upgrade function

Details

This message means that either you tried to upload an invalid file or that there was a communications error. Check the file you are trying to upload, your serial connection (cable, baudrate, etc.) and try again.

The firmware file you are supposed to upload into the DS depends on the DS model number and also on the way you are performing the upgrade- through the network (auto-discovery and address book modes) or through the serial port (COM access mode). Firmware download page at <WEB> provides complete info on what file to choose. Be sure you understand this information and select a correct firmware file.

Programmer's info:

---


Invalid Firmware Uploaded

Description

Message text: After firmware upload and reboot the Device Server has still entered the firmware upgrade mode. This means that you have downloaded an invalid file or that the upload was incomplete

May appear in: Auto-discovery and address book access modes; Upgrade function

Details

When the DS powers up its internal "operating system" verifies if the application firmware is loaded and correct (this is done by verifying the checksum). If the firmware is found to be corrupted the operating system checks if the NetLoader is present. When this is so, control is passed to the NetLoader so you have a chance to upload correct application firmware.

When this message is displayed this means that the firmware upload process has completed successfully and the DS was rebooted with the intention to launch the newly loaded application firmware but has emerged from reboot in the firmware upgrade mode again.

If you are sure that the firmware upgrade has completed successfully then you must have uploaded a wrong file. Firmware download page at <WEB> provides complete info on what file to choose.

Programmer's info:

---


Invalid IP-address

Description

Message text: This IP-address is invalid. Setting it will result in the inability to access the Device Server through the network

May appear in: Auto-discovery access mode; Change IP function

Details

Certain IP-addresses are invalid in principle and should never be used. Many devices and operating systems (including Windows) automatically discard network packets that refer to such invalid IPs. Assigning an invalid IP to the DS can make it inaccessible over the network.

Here is the list of IP-addresses that should not be used:

· x.x.x.0 (i.e. 0 in the last number, as in 192.168.100.0).

· x.x.x.255 (i.e. 255 in the last number, as in 192.168.100.255).

· >223.x.x.x (i.e. a number that is more than 223 in the first number, as in 224.168.100.40).

Latest firmware versions of the DS prevent such invalid IPs from being used- the DS will automatically assume a modified and correct IP-address if invalid one is set (see IP-address (IP) setting for more information). Older firmware versions did not have this protection so the DS Manager itself also prevents invalid IP-addresses from being set.

Programmer's info:

IP-address is changed using the Assign IP-address (A) command.


Network Firmware Upload Aborted

Description

Message text: Firmware upgrade was aborted by the Device Server. This may be because of communications error or because you are trying to upload a wrong file

May appear in: Auto-discovery and address book access modes; Upgrade function

Details

This message indicates that the DS manager has aborted the upload of a firmware file. Typically, this happens when the DS has detected an error in the data being uploaded. This means that you are trying to upload an incorrect firmware file.

The firmware file you are supposed to upload into the DS depends on the DS model number and also on the way you are performing the upgrade- through the network (auto-discovery and address book modes) or through the serial port (COM access mode). Firmware download page at <WEB> provides complete info on what file to choose. Be sure you understand this information and select a correct firmware file.

Programmer's info:

---


New Password Not Accepted

Description

Message text: Password and re-typed password do not match

May appear in: All access modes, Settings function

Details

When you attempt to set new login password the DS Manager asks you to input the same password twice. This is to make sure that you know what password you have entered. This message appears when the password you have entered the first time does not match the password you have entered the second time.

Programmer's info:

Login password is the one defined by the Password (PW) setting of the DS. Also see authentication topic.


No Response From the DS (Network)

Description

Message text: There was no response from this Device Server. Make sure it is online, connected to the network, and (for address book access mode) is being accessed correctly

May appear in: Auto-discovery and address book access modes; Settings, Upgrade, Initialize, Routing Status, Buzz, Change IP functions

Details

This message indicates that the DS Manager has attempted to access the DS (using out-of-band (UDP) programming commands) but did not get any reply. The reasons for this depend on the selected access mode: see troubleshooting (auto-discovery mode) and troubleshooting (address book mode).

Programmer's info:

---


No Response From the DS (Serial)

Description

Message text: There was no response from the Device Server. Make sure it is powered, its serial port is connected to the COM port of this PC, and the Device Server is in the serial programming mode

May appear in: COM access mode; Settings, Initialize functions

Details

This message indicates that the DS Manager has attempted to access the DS through the serial connection (serial port of the DS to the COM port of the PC) but did not get any reply back. See troubleshooting (COM access mode) for the list of hints on why this might happen.

Programmer's info:

---


Operation Cannot Be Executed

Description

Message text: Requested operation cannot be completed because the Device Server is in the serial programming mode or the network programming session is in progress

May appear in: Auto-discovery and address book access modes; Settings, Upgrade, Initialize, Change IP functions

Details

When you click Settings, Upgrade, Initialize, or Change IP button the DS Manager needs to login before it can execute requested operation (see authentication). Login is required even if the login password is not set and is only accepted if no programming with the same priority level is already in progress.

Programmer's info:

Before executing any of the operations listed above the DS Manager attempts to login using the Login (L) command. This message is displayed when the response to this command is Rejected (R).


Out-of-Band (UDP) Access Required

Description

Message text: This function requires out-of-band (UDP) access to the Device Server. Inband (TCP) access is currently selected for this Device Server so the function cannot be used

May appear in: Address book access mode; Upgrade, Routing Status functions

Details

This message means that the inband (TCP) access method is selected for this particular address book entry. It is not possible to use the Upgrade and Routing status functions with "inband" address book entries (see function topics for an explanation).

Programmer's info:

---


Password Will Be Disabled

Description

Message text: Password for this Device Server will be disabled

May appear in: All access modes, Settings function

Details

You have pressed OK without entering any password string. This means that no password will be set and the password protection for this DS will be disabled.

Programmer's info:

Login password is the one defined by the Password (PW) setting of the DS. Also see authentication topic.


Potential DHCP Conflict

Description

Message text: This Device Server has DHCP enabled. New IP-address may work but the use of this new IP will neither be authorized, nor noted by the DHCP server. Do you still want to continue?

May appear in: Auto-discovery access mode; Change IP function

Details

This message is shown when the Change IP function is used while the IP-address of the DS appears to be configured through the DHCP (which means that DHCP (DH) setting is 1 (enabled) and IP-address appears to have been successfully received from the DHCP server i.e. the DS is not in the IP-address not obtained state)*.

Technically, the DS will work fine when you assign an IP-address manually (while the network has the DHCP service) as long as you find an unused IP-address**. The problem is that the DHCP server will not know that you have occupied this IP and may assign it to some other device in the future***.

Finally, keep in mind that the IP-address you set manually may be changed next time the DS reboots. This is because, when the DHCP (DH) setting is 1 (enabled), the DS negotiates its IP-address with the DHCP server each time it powers up or reboots and the DHCP server may assign a different IP-address at this time. This new IP will be saved into the IP-address (IP) setting thus overwriting the value you may have set.

Programmer's info:

The DS Manager verifies whether the IP-address of the DS is configured through the DHCP by sending the Echo (X) command and analysing the status of the i flag in the reply. If the flag is set to 'I' then this means that the DHCP is enabled and the DHCP server is actually present on the network.

* In other words, the DS Manager does not detect the presence of DHCP server directly but instead relies on the "indirect evidence" from the DS. Unfortunately, this means that the DS Manager won't be able to alert you when the DHCP server is actually present but DHCP (DH) setting is 0 (disabled) on the DS.

** This can always be done by PINGing different IPs on the local subnet. No reply means that the IP is probably unused.

*** Unless you have specifically banned the DHCP server from using this IP-address (this can usually be done).


Power Up With Setup Button Pressed

Description

Message text: Power the Device Server off, press and hold the setup button*, and power the Device Server back on while keeping the button pressed. The upgrade process will start after that

May appear in: COM access mode; Upgrade function

Details

Powering the DS up while keeping the setup button pressed puts the DS into the serial upgrade mode.

Programmer's info:

---

* On EM100, EM120, EM200, EM202- pull the MD line LOW and power up while holding this line LOW.


Press Setup Button

Description

Message text: Press the setup button* on the Device Server

May appear in: COM access mode; Settings, Initialize function

Details

The DS can be programmed through the serial port only when the latter is in the serial programming mode. To switch the serial port into the serial programming mode press the setup button*.

Programmer's info:

---

* On EM100, EM120, EM200, EM202- pull the MD line LOW for at least 100ms.


Serial Firmware Upload Failed

Description

Message text: Communications error was detected during the serial firmware upload. Firmware upgrade has failed

May appear in: COM access mode; Upgrade function

Details

This message means that there was some communications error while transferring the firmware file from the PC to the DS. The message does not mean that the file itself was found to be invalid. Check your serial connection (cable, baudrate, etc.) and try again.

Programmer's info:

---


Serial Upgrade Completed

Description

Message text: Serial upgrade completed successfully. Switch the Device Server off and back on to start normal operation. DS initialization may be required after the upgrade

May appear in: COM access mode; Upgrade function

Details

After the serial upgrade the DS is not able to reboot by itself. You need to power it off and back on again to test the newly uploaded firmware. Since the new firmware can have new or different settings that were not present on a previous one the DS may require initialization (watch out for the error mode after the DS reboots).

Programmer's info:

---


Setting Description File Error

Description

Message text: Setting description file contains error(s)

May appear in: All access modes, Settings function

Details

Setting description files (SDFs) contain the list of all settings found on a specific firmware version of the DS. During the installation SDFs are copied into the /SDF subfolder inside the target installation folder of the Device Server Toolkit (DST). This message indicates that the SDF file required to correctly display the settings dialog for a particular DS firmware appears to contain invalid information. This problem can be corrected by reinstalling the software.

Programmer's info:

---


Unable to Find Setting Description Files

Description

Message text: Corrupted installation: unable to find SDF files

May appear in: All access modes, Settings function

Details

Setting description files (SDFs) contain the list of all settings found on a specific firmware version of the DS. During the installation SDFs are copied into the /SDF folder inside the target installation folder of the Device Server Toolkit (DST). This message indicates that the /SDF folder is empty. This problem can be corrected by reinstalling the software.

Programmer's info:

---


Unexpected NetLoader Error

Description

Message text: Unexpected NetLoader error. Firmware upgrade has failed

May appear in: Auto-discovery and address book access modes; Upgrade function

Details

The NetLoader is a separate firmware component that facilitates application firmware upgrades through the network. This message indicates that the NetLoader was entered but firmware upload could not be started because of an unexpected reply from the DS.

This message should not appear under normal circumstances. Please, contact us if the problem persists!

Programmer's info:

---


Unreachable IP-address

Description

Message text: New IP-address is unreachable

May appear in: Auto-discovery access mode; Initialize function

Details

After assigning new IP-address the DS Manager performs an automatic refresh and verifies that the DS is still online. This message appears when the DS is detected to be online but the DS Manager is unable to communicate with this DS using a "normal" IP addressing (see broadcast access for details).There are actually several reasons why this may be so- see troubleshooting (auto-discovery mode).

Programmer's info:

---


Unable to Send a Broadcast

Description

Message text: Unable to send an auto-discovery broadcast because a local port from which this broadcast packet is supposed to be sent is currently in use by another program

May appear in: Auto-discovery access mode

Details

In the auto-discovery access mode the DS Manager is finding all locally connected Device Servers by sending an Echo (X) command as UDP broadcast. All Devices that receive this broadcast reply to it and the DS Manager is building a list of available Devices basing on received replies.

This message means that the DS Manager is unable to send the broadcast because local port from which the broadcast is supposed to be sent is currently opened by some other program.

This situation is extremely rare. If you encounter it please contact Tibbo for instructions on how to change the port from which the DS Manager is sending the broadcasts! By default, the port number used for the purpose is 65534.

Programmer's info:

---


VSPD and VSP Manager

Virtual Serial Port Driver (VSPD) and Virtual Serial Port Manager (VSP Manager) are parts of the Device Server Toolkit (DST).

The VSPD powers Virtual Serial Ports (VSPs) that emulate "real" COM ports under Windows OS. The VSP Manager is used to add, delete, and setup VSPs.

The VSPD is an "engine" that powers Virtual Serial Ports (VSPs). To any Windows application the VSP "looks and feels" just like a "normal" COM port. In reality, the VSP transparently reroutes all data sent by the application to the Tibbo Device Server ("DS") and the serial device behind it ("attached serial device"). Likewise, all the data sent by the serial device is received by the DS and routed to the VSP, which, in turn, passes this data to the application. Both the software application on the PC and the serial device communicate with each other just as if they were interconnected by a "normal" serial cable, without knowing that there is a network in between. This allows you to network-enable your existing serial system without changing the serial device itself or its PC software.

The VSPD is a driver and is running in the very "guts" of the Windows OS. Its presence is only manifested by the VSPs available to Windows applications.

The VSP Manager is an application that allows you to add, remove, and setup VSPs. The VSPD and the VSP Manager are different entities (one is a driver, another one- a setup utility). This Manual offers combined description of the two and all VSPD features are explained "through" the VSP Manager.

Closely related to the work of the VSPD is the Port Monitor, another member of the DST, that is used to log the activity of the VSPs.


How VSP Works

When designing the VSPD we have attempted to emulate the work of a standard serial port driver as closely as possible. All system calls supported by the COM driver were carefully ported into the VSPD and the behavior of the VSPs closely mimics that of COMs.

Shown above is a VSP block diagram:

· COM interface presents an application interface, compatible with the standard COM port driver. Windows applications are not able to tell the difference between a VSP and a regular COM port.

· TX and RX buffers (8KBytes each) are used to pass the data between the application and the DS. It is noteworthy that VSP operation is fully asynchronous, and this is different from the operation of a standard COM. When the application "writes" the data into the VSP the data is stored into the TX buffer and the control is returned to the application immediately, not when this data is actually sent out (as is the case with COM ports). This subtle difference has important implications- see Tx error handling.

· Network interface communicates (through the TCP/IP network) with the target DS. The VSP transparently establishes and accepts data connections with/from the DS as needed.

· On-the-fly logic (when enabled) is responsible for adjusting communications parameters of the serial port on the DS to the requirements of the application. For example, if the application wants the serial port to run at 19200 bps a special on-the-fly command will be sent to the DS telling it to change the serial port baudrate to 19200. Thus, the DS serial port functions just like the COM and the PC!

· VSP properties define different aspects of VSP operation. The properties are stored in the system registry and edited using the VSP Manager.


VSP Manager

VSP Manager is used to add, remove, and setup VSPs. Shown below is the screenshot of the VSP Manager's main window and the VSP properties dialog for one of the VSPs. The VSP properties dialog has two tabs:

· General properties tab (shown on the screenshot) provides a set of "main" controls that guide VSP operation. For more information select the topic from the list under the screenshot.

· Outbound packets tab provides several options that define how the VSP combines the data (sent by the application) into the network packets and when these packets are sent out to the DS.

· Control lines tab offers additional options for control line inputs CTS, DSR, and DCD. You can choose to receive input line status updates from the DS, "fix" these inputs at high or low, or "connect" CTS to RTS and DSR to DTR.

· Defaulf serial settings tab exists purely for compatibility with regular COM ports. Under Windows, each COM port has a set of default parameters associated with it, and so does VSP. These parameters do not affect operation of the VSP in any way.

The main window and the properties dialog (general properties tab) have the following areas and controls:

· VSP list. The list shows all VSPs currently found on your PC.

· Add, Remove, and Edit buttons are used to add VSPs, delete VSPs, and edit VSP properties. Clicking Add or Edit brings up the VSP properties dialog shown on the screenshot above. You can also open the dialog by double-clicking on the VSP in the VSP list.

· VSP name drop-down box selects the port name that will be associated with this VSP (i.e. "COM3", etc.).

· Tx error handling drop-down box defines what the VSP will do when it is unable to send the data to the DS and the Tx buffer becomes full: discard the data or prompt the User.

· Enable data logging option. Another software component- the Port Monitor- has a Hex dump feature that allows you to monitor data traffic through the VSP. You must enable this option for the feature to work (this will allocate a memory buffer through which the dump will "grab" the data).

· Transport protocol drop-down box defines which transport protocol- TCP/IP or UDP/IP will be used for data communications with the DS.

· On-the-fly commands drop-down box disables or enables the generation of on-the-fly commands, used to adjust the serial port parameters on the DS as needed by the application software (that uses the VSP). There is also a choice of how the on-the-fly commands will be sent when enabled (as out-of-band or inband commands).

· Connection timeout parameter defines after how many minutes of inactivity (no data transmitted across the data connection between the VSP and the DS) the current data connection will be aborted.

· Routing mode drop-down box defines whether the VSP will accept incoming connections (passive opens) and/or establish outgoing connections (perform active opens).

· Connection mode drop-down box defines when the VSP will attempt to establish an outgoing connection to the destination: right after the VSP is opened by the application or when the application sends the first data.

· Listening port parameter defines the listening port that will be associated with this VSP. The VSP will be accepting incoming connections (passive opens) on this port (when allowed by the routing mode).

· Destination mode drop-down box offers two destination modes that define how the VSP will choose its destination DS: a simple single destination mode that targets one DS and a more complex multi-destination mode that makes the VSP switch between several Device Servers basing on the outgoing data sent by the application.


VSP Name Selection

VSP name drop-down box selects the port name that will be associated with this VSP.

The number of ports you can have under Windows is virtually unlimited. The VSP Manager lets you create any port in the range between COM1 and COM255*.

There are no rules on what name to choose, just make sure that you pick the name that can be selected in the application software you plan to use this VSP with. Most programs provide a limited selection of ports (typically, up to COM2 or COM4). Therefore, choosing "COM100" wouldn't be suitable as you will not be able to select this VSP in such software.

The VSP name drop-down box shows the list of available port names. On the screenshot above COM3 is not listed- this happens when the VSP with this name already exists. Notice, however, that ports COM1 and COM2 are not excluded from the list and are marked with icons identifying them as "real" COMs**. Even though these port names are "occupied" the VSP Manager can still "grab" them. For example, if you select COM1 the VSP Manager will automatically substitute a standard COM port driver with the VSPD and assign the name "COM1" to this VSP. From this moment on the COM1 will seize working as a regular COM and will start working as a VSP. Substitution may be necessary when you are dealing with an old application software that only provides a choice of COM1 and COM2 which are usually occupied by real COMs.

When you delete the VSP that substituted a standard COM port the VSP Manager will attempt to restore the original driver. This mostly works but on some systems you may encounter problems (especially under Windows ME). We have conducted an extensive "research" into the port substitution, only to conclude that it just doesn't work reliably on all systems!

We recommend that you do not use port substitution unless absolutely necessary!

All VSPs appear under the Ports section of the device manager's device list (Control Panel--> System Properties--> Device Manager)***:

* We could extend the number even further but feel that the current range is sufficient for all practical purposes.

** This is system-dependent. Some modern PCs don't have any real COMs.

*** VSP properties cannot be edited from within the device manager


Tx Error Handling

This selection defines how the VSP will behave in case its TX buffer becomes full and the VSP is unable to send the data to the DS (within 5 seconds). This can happen when the TCP transport protocol is used, the TCP connection with the DS is broken (or cannot be established) and the application software keeps sending out the data*.

There are two choices:

Auto-discard If the TX buffer is full and the VSP is unable to send any part of the data within 5 seconds then the VSP will abort current TCP connection, discard all data in the TX buffer, report to the application that the data has been successfully sent out, and ignore (discard) all subsequent data sent by the application for another 3 seconds- this is called a "blackout period". At the end of the "blackout period" the VSP will start reacting to the data in a normal way. Yes, this means that some part of the data will be lost but this also means that the User will have a chance to interact with the application (for example, switch it off).

Prompt user When the 5-second time elapses the VSP will show a message telling the User that the data transmission has failed and that two choices are possible- retry or abort. If the User chooses retry the VSP will try to resend the data in the buffer for another 5 seconds. If the User chooses abort the VSP will discard the data and start the 3-second "blackout period".

The first option is selected by default and should be used whenever possible, as it provides a fully automatic VSP recovery from all communication problems. The second option requires User input and is typically used temporarily, for data connection troubleshooting.

See more info on the Tx buffer overflows if you want to understand why the VSP handles data error as described above.

* Such a situation is impossible with UDP since this protocol doesn't have any "feedback mechanism" that would inform the sender of any problems or bottlenecks on the receiving end.


More Info on the Tx Buffer Overflows

Understanding why the data error handling option exists requires an explanation of how a standard COM driver works.

One of little known (and very ridiculous aspects) of the Windows OS is the way the data passing from the application to the serial port driver is arranged. Under Windows, after the application sends a portion of data to the serial port it cannot continue its execution immediately but instead has to wait until this data is actually sent out (through the hardware serial port). What that means is, if the serial port driver cannot send out the data this will halt the application too! The application will literally appear to be hanged up, it will not respond to your clicks, and the only way to exit it will be through <CTRL>+<ALT>+<DEL>.

The VSPD solves this problem (at least partially) by making VSP operation asynchronous (this has been already mentioned in how VSP works). With VSP, the application doesn't have to wait until the data it sends is actually delivered to the DS. When the VSP receives Tx data from the application it simply puts this data into the Tx buffer and returns control back to the application*.

Unfortunately, there is one situation when the application will still have to wait- this is when the TX buffer becomes full. In this case the VSP won't be able to accept the data from the application immediately- the application will have to wait until enough space is freed in the Tx buffer to put in the new data. To the User this will look as if the application has "hanged up". Since this waiting can be indefinite we have devised a protective mechanism that prevents the VSP from hanging the application.

VSP operation under these conditions is illustrated by a diagram below:

· In phase A the application starts sending the data to the VSP, the VSP establishes a TCP connection and the data is being sent to the DS.

· In phase B the TCP connection gets stuck (because the DS is suddenly switched off, temporary malfunction on the network, etc.). The data sent by the application starts accumulating in the Tx buffer. The application is still responding.

· In phase C the Tx buffer becomes full and the application appears to hang up- this is because the VSP is making it wait since the data the application wants to send cannot be put into the Tx buffer. The VSP starts counting a 5-second timeout period. If, within this period, the VSP is unable to send out any portion of the data in the buffer (not even a single byte) the VSP considers this transmission to have failed and takes the following actions:

· The TCP connection is aborted;

· All data in the Tx buffer is discarded;

· The data that the application was waiting to pass to the VSP is discarded also;

· The application is told that this data has been sent out- this allows the application to continue running;

· At the end of phase C the VSP takes an action basing on the selected Tx error handling option:

· If the Tx error handling is set to "auto-discard" the VSP proceeds to phase D;

· If the Tx error handling is set to "prompt user" the VSP shows a message asking the User to either retry (the VSP will go back to phase C) or abort (the VSP proceeds to phase D).

· In phase D, called the "blackout period", the VSP is discarding all data received from the application without trying to send this data to the DS. This means that all data send by the application during this period is lost but this also means, that the application is responding to the User input, so the User has a chance to switch the application off, stop the data transmission, or take some other corrective action.

· In phase E, when the 3-second "blackout" period is over, the VSP returns to a normal state and starts processing the data as usual (if the application sends the data the VSP attempts to establish a TCP connection, etc).

If the fact that the VSP simply discards the data under certain circumstances seems strange to you consider that 99% of all serial communications use some sort of command-reply protocols, data retransmissions mechanisms, etc. Stubbornly trying to put through every bit of data would actually harm the operation of such systems! It is much better to just get rid of the old data in order to be able to process the "current" one.

As an example, imagine a system in which the application software is constantly polling a serial device for data. Once the TCP connection gets stuck (beginning of phase B) the application stops getting any responses to its polls but often still keeps sending out its polling commands. Therefore, when the buffer fillies up (beginning of phase C), the data in it consists entirely of polling commands! Not only the storage of these commands is useless, but it also prevents you from interacting with the application.

* Once again, this is different from the standard COM port driver that makes the application wait until the data is actually sent out (in case of VSP this would have read "delivered to the DS").


Transport Protocol

Transport protocol drop-down box selects which communications protocol- TCP/IP or UDP/IP will be used by the VSP for data communications with the DS.

For the data connection with the DS to work the same transport protocol must be selected on the DS side- see the Transport Protocol (TP) setting.

Unless you have a specific reason why the UDP should be used (very rare!) we recommend you to stick to the TCP/IP. The TCP/IP is a "reliable delivery" protocol that makes sure that no data is lost "in transit" between the VSP and the DS. The UDP, on the contrary, does not guarantee data delivery.

Some considerations and additional info on the TCP and UDP implementation in the VSP can be found in the next topic.


Additional Info on UDP and TCP Connections

UDP data connections

The notion of data connection is native to TCP/IP since this is a connection-based protocol. UDP/IP, however, is a connection-less protocol in which all packets (UDP datagrams) are independent from each other. How, then, the term "data connection" applies to the UDP transport protocol?

With UDP transport protocol true data connections (in the "TCP sense" of this term) are not possible (hence, parenthesis around the word "connection"). The VSP, however, attempts to mimic the behavior of TCP data connection whenever possible. Follows is the detailed description of UDP "connections" and their similarities and differences with TCP connections.

Incoming "connections"*. There is no connection establishment phase in UDP so an incoming UDP "connection" is considered to be "established" when the first UDP packet is received by the VSP (on the listening port). Similarity with TCP is in that after having received the packet from the DS the VSP knows who to send its own UDP packets to.

Outgoing "connections"**. The VSP establishes outgoing UDP connection by sending a UDP datagram to the targeted destination. If there is a data that needs to be transmitted the VSP sends the first UDP datagram with (a part of) this data. If there is no immediate data that needs to be transmitted to the DS the VSP sends the first UDP datagram of zero length (this happens when the connection mode is set to "connect immediately"). The purpose of this is to let the other side know the IP-address of the VSP (PC it is running on), as well as the data port currently used by the VSP.

Data transmission and destination switchover. Once the "connection" is established the VSP and the DS exchange the data using UDP datagrams. The difference with TCP is that if another DS sends a datagram to the VSP, then the VSP will interpret this as a new incoming connection*, forget about the first DS and start sending its own UDP datagrams to the second one. In other words, the VSP will always communicate with the "most recent sender". Such behavior is not possible in TCP, in which a third party cannot interfere with an existing connection.

"Connection" termination. There is no connection termination phase in UDP so VSP "terminates" its UDP connections by forgetting about them and the only event that can trigger UDP "connection" termination (except for the closing of the VSP) is connection timeout.

Local port used by the VSP depends on the selected routing mode:

· In the server routing mode the VSP sends the UDP datagrams from an "automatic" port selected by the OS;

· In the server/client and client routing modes the VSP sends and receives UDP datagrams through the port, defined by the listening port parameter.

TCP data connections

Only one connection at a time. TCP protocol stack on the PC is capable of supporting thousands of concurrent TCP connections but the VSPD strictly enforces that only a single TCP connection exists for each VSP at any time. This is because the serial port is not a shared media and allowing, say, two Device Servers to connect to the same VSP would have created a data chaos***. Allowing only a single connection at a time follows a "serial port culture" of "one serial port- one application"! If the VSP is already engaged in a data connection with the DS and another DS attempts to establish a connection to this VSP then this DS will be rejected.

Separate ports for outgoing and incoming connections. The VSP establishes its outgoing connections** from an "automatic" port selected by the OS. Each time such outgoing connection is established the source port number on the VSP side will be different. The VSP accepts incoming connections* on a fixed listening port, whose number is defined by the listening port parameter. When the incoming connections are not allowed the listening port is closed.

* Assuming that incoming connections are allowed (i.e. the routing mode is either "server", or "server/client").

** Assuming that outgoing connections are allowed (i.e. the routing mode is either "client", or "server/client").

*** What if both Device Servers started sending the data to the VSP at the same time? Then the PC application using the VSP would have received a mix of data consisting of an input from both Device Servers! And if two Device Servers were connected to the same VSP and the PC application needed to send out the data then which DS of the two the VSP would have to send this data to?


On-the-fly Commands

On-the-fly commands are used to change the serial port configuration of the DS as needed (i.e. "on the fly"). Serial port configuration made through the on-the-fly commands overrides the permanent one, defined by the serial port settings of the DS. The difference between the changes made using on-the-fly commands and changes made through altering DS settings is that, unlike serial settings, on-the-fly commands have immediate effect and do not require the DS to be rebooted in order for the new values to be recognized.

With on-the-fly commands enabled, the serial port of the DS is always setup as required by the PC application that communicates with this DS through the VSP. When the PC application opens the VSP (or some communications parameters are changed) the application informs the VSP about required changes* and the VSP relates this information to the DS by sending on-the-fly commands.

Additionally, on-the-fly commands are used by the VSP to control the RTS and DTR outputs of the DS serial port. The status of the CTS and DSR input of the DS serial port can be passed to the VSP too- this is done using so-called "notification messages". For more information see handling of RTS, CTS, DTR, and DSR signals.

On-the-fly commands drop-down box provides four choices:

Disabled On-the-fly commands are not sent at all, so the serial port of the DS will use "permanent" serial port configuration defined by the serial port settings. In this mode it doesn't matter what serial port parameters are set in the PC software application- the DS will not be aware of them!

Out-of-band On-the-fly commands are enabled and sent in the form of out-of-band (UDP) commands. On-the-fly commands (RC) setting of the DS must be programmed to 1 (enabled) for the out-of-band on-the-fly commands to be accepted.

Inband On-the-fly commands are enabled and sent in the form of inband (TCP) commands. On-the-fly commands (RC) setting of the DS must be programmed to 1 (enabled) for the on-the-fly commands to be accepted. Additionally, there are some other programming steps that must be performed before the DS will recognize inband commands- see preparing the DS for inband access.

Disabled (w FF esc.) On-the-fly commands are not sent, but the VSP treats all incoming and outgoing data as if inband mode was used (i.e. it doubles all "escape" characters (ASCII code 255) in the data sent by the application and expects all escape characters to be doubled in the data stream sent by the DS). See disabled (with FF escape) mode of the VSP for details.

In general, we recommend you to keep on-the-fly commands enabled (unless there are some special reasons preventing you from doing so). Enabling on-the-fly commands keeps the serial port setup of the DS "in sync" with the requirements of the software application using the VSP.

As for choosing between out-of-band and inband modes, follow these recommendations:

Out-of-band commands work most of the time, especially when the PC (running VSP) and the DS are located on the same network segment**. Out-of-band commands may not work very well or not work at all for the remote Device Servers located behind the routers, firewalls, etc***. This is because:

· The routers are known to "drop" UDP datagrams (on which out-of-band on-the-fly commands are based) under heavy network traffic.

· UDP traffic is banned by the firewalls of many networks (hence, out-of-band on-the-fly commands cannot be used at all). If you want out-of-band on-the-fly commands to work then your network must allow UDP traffic to port 65535!

If you encounter one of the above situations then you should use inband on-the-fly commands or not use on-the-fly commands at all!

There is one other reason why out-of-band commands may not be suitable- this is when on-the-fly commands must be synchronized with the data sent by the VSP. For more information see synchronization issues.

On-the-fly command-related activity of the VSP is best observed using the Port Monitor, as all on-the-fly commands as well as the result of their execution are logged- see next section for details.

* This is standard for Windows COM ports.

** The definition of the network segment implies that there are only network hubs (and no routers, bridges, firewalls, etc.) between the PC and all other devices on the segment.

*** Here we touch on a very complicated subject. Modern routers offer a bewildering array of setup options. We will attempt to cover this in details in our upcoming white papers.


When the VSP Sends On-the-fly Commands

This topic details when and what on-the-fly commands the VSP sends to the DS.

At certain times the VSP sends an entire "parameter block" of required communications parameters to the DS:

· Parameter block is sent when the VSP is just opened, except when the routing mode is "server".

· Additionally, parameter block is sent each time the data connection is established (no matter whether this was an incoming or outgoing connection).

Parameter block includes all communications parameters needed by the serial port, such as the baudrate, parity, etc.

In addition to sending parameter blocks the VSP also sends individual commands whenever some parameter is changed within the application. For example, if the User chooses a different baudrate (while the application is already running and the VSP is opened) the VSP won't send out entire parameter block again but will instead send just the on-the-fly command to change the baudrate of the DS.

Such individual on-the-fly commands are sent immediately after the serial communications parameters are changed in the software application, except for the case when the routing mode is "server" and no data connection is established at the moment. In this case the VSP will have to wait until it receives an incoming connection, and this will trigger an entire parameter block to be sent, as described above.

Here is an example log from the Port Monitor detailing one "cycle" of the VSP operation (out-of-band on-the-fly commands are enabled, routing mode is not "server"):

--- application is started ---
12/15/03 14:22:47 - COM3 (INFO): Port opened
--- beginning of parameter block (this block is sent because the VSP has been opened) ---
12/15/03 14:22:47 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: get DSR pin status...success
12/15/03 14:22:47 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: get CTS pin status...success
12/15/03 14:22:47 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: set DTR to high...success
12/15/03 14:22:47 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: set RTS to high...success
12/15/03 14:22:47 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: set baud rate to 38400 bps...success
12/15/03 14:22:47 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: set parity to none...success
12/15/03 14:22:47 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: set data bits to 8 bits...success
12/15/03 14:22:47 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: set flowcontrol to RTS/CTS...success
12/15/03 14:22:47 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: enabling line change notification for DSR...success
--- end of parameter block ---
---
--- connection is established (i.e. because the application sends data) ---
12/15/03 14:22:54 - COM3 (INFO): Established TCP connection with node 192.168.100.92:1001
--- beginning of parameter block (this block is sent because the connection has been established) ---
12/15/03 14:22:54 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: get DSR pin status...success
12/15/03 14:22:54 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: get CTS pin status...success
12/15/03 14:22:54 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: set DTR to high...success
12/15/03 14:22:54 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: set RTS to high...success
12/15/03 14:22:54 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: set baud rate to 38400 bps...success
12/15/03 14:22:54 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: set parity to none...success
12/15/03 14:22:54 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: set data bits to 8 bits...success
12/15/03 14:22:54 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: set flow control to RTS/CTS...success
12/15/03 14:22:54 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: enabling line change notification for DSR...success
--- end of parameter block ---
---
--- the following commands are sent in response to the User changing the baudrate within the application ---
12/15/03 14:22:56 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: set baud rate to 19200 bps...success
12/15/03 14:22:58 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: set baud rate to 9600 bps...success
12/15/03 14:22:59 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: set baud rate to 19200 bps...success
12/15/03 14:23:00 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: set baud rate to 9600 bps...success
--- application is closed ---
12/15/03 14:23:02 - COM3 (INFO): TCP connection closed
12/15/03 14:23:02 - COM3 (INFO): Port closed

A slightly different behavior is observed when the inband mode is selected for on-the-fly commands. Since inband commands are passed within the TCP data connection, the VSP establishes such a connection in case it needs to send on-the-fly command(s) and no connection is established at the moment. Again, this is only done when the routing mode is not "server".

Here is another output, this time for inband on-the-fly commands (routing mode is not "server"):

--- application is opened ---
12/17/03 09:30:13 - COM3 (INFO): Port opened
--- TCP connection is established because the VSP needs to send a parameter block ---
12/17/03 09:30:13 - COM3 (INFO): Established TCP connection with node 192.168.100.92:1001
--- beginning of parameter block ---
12/17/03 09:30:13 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: get DSR pin status...success
12/17/03 09:30:13 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: get CTS pin status...success
12/17/03 09:30:13 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: set DTR to high...success
12/17/03 09:30:13 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: set RTS to high...success
12/17/03 09:30:13 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: set baud rate to 38400 bps...success
12/17/03 09:30:13 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: set parity to none...success
12/17/03 09:30:13 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: set data bits to 8 bits...success
12/17/03 09:30:13 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: set flowcontrol to none...success
12/17/03 09:30:14 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: (unknown)...success
12/17/03 09:30:14 - COM3 (INFO): Line status change notification: DSR:low CTS:low
--- end of parameter block ---
---
--- connection is aborted because no data is being transmitted across this connection
12/17/03 09:31:14 - COM3 (INFO): TCP connection aborted by remote node
---
--- flow control mode must be changed, and the VSP establishes the TCP connection again
12/17/03 09:34:00 - COM3 (INFO): Established TCP connection with node 192.168.100.92:1001
12/17/03 09:34:00 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: set flowcontrol to RTS/CTS...success

The VSP employs a retry mechanisms that makes up to 3 additional attempts in case no reply is received from the DS. If, after 4 attempts there is still no reply the VSP disables on-the-fly command generation:

12/16/03 10:55:58 - COM3 (WARNING): "On-the-Fly" command for 192.168.100.92: set baud rate to 9600 bps...timed out, still trying...
12/16/03 10:56:01 - COM3 (WARNING): "On-the-Fly" command for 192.168.100.92: set baud rate to 9600 bps...timed out, still trying...
12/16/03 10:56:04 - COM3 (WARNING): "On-the-Fly" command for 192.168.100.92: set baud rate to 9600 bps...timed out, still trying...
12/16/03 10:56:04 - COM3 (ERROR): "On-the-Fly" command for 192.168.100.92: set baud rate to 9600 bps...timed out
12/16/03 10:56:05 - COM3 (INFO): "On-the-Fly" commands disabled (until port opened next time)

No additional attempts are made if the DS denies or rejects any on-the-fly command:

12/16/03 11:03:33 - COM3 (ERROR): "On-the-Fly" command for 192.168.100.92: get DSR pin status...access denied
12/16/03 11:03:34 - COM3 (INFO): "On-the-Fly" commands disabled (until port opened next time)


Handling of RTS, CTS, DTR, and DSR Signals

The status of RTS, CTS, DTR, and DSR lines can be exchanged between the VSP and the DS. This means that the VSP can remotely control the state of RTS and DTR outputs of the serial port on the DS while the DS can notify the VSP of the state changes on the CTS and DSR inputs of its serial port. This topic provides detailed information on the subject.

RTS and DTR outputs of the DS serial port

Whenever the application requires the state of the RTS or DTR line to be changed the VSP sends an appropriate on-the-fly command to the DS. Here is how this is reflected in the Port Monitor:

12/16/03 09:46:24 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: set RTS to low...success
12/16/03 09:46:27 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: set RTS to high...success
12/16/03 10:05:06 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: set DTR to low...success
12/16/03 10:05:06 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: set DTR to high...success

The DS always replies to each such command with the A (OK) status code*. Whether or not the DS actually processes the command depends on the current DS setup:

If the application is running with RTS/CTS flow control disabled (which means the VSP has sent a Flow Control (FC) parameter of 0) the DS does process all RTS-related on-the-fly commands. If the application is running with RTS/CTS flow control enabled (the VSP has sent a Flow Control (FC) parameter of 1) the DS ignores all RTS-related on-the-fly commands (but still replies with A). This is because in this mode the DS controls the RTS line on its own and the function of the RTS line is to regulate the flow of data from the attached serial device into the serial port of the DS (also see Flow Control (FC) setting).

As for the DTR line, whether or not the DS actually processes DTR-related on-the-fly commands depends on the DTR Mode (DT) setting. If this setting is 0 (idle) the DS does process all DTR-related on-the-fly commands. If this setting is 1 (connection mode) the DS ignores all such commands. This is because in this mode the DS controls the DTR line on its own and the function of the DTR line is to reflect current status of the data connection.

CTS and DSR inputs of the DS serial port

Changes in the states of CTS and DTR inputs of the DS serial port are delivered to the VSP through Notification (J) messages. For the notifications to work the DS must first be informed the status change of which lines should be reported to the VSP. This is done through the Notification Bitmask (NB) parameter. Depending on the flow control mode selected by the application the VSP sets the bitmask in one of the two ways:

· If the application is running with RTS/CTS flow control disabled, the VSP programs the DS to react to the changes of both the CTS and DSR lines.

· If the application is running with RTS/CTS flow control enabled, the VSP programs the DS to react to the changes of the DSR line only. This is because when the flow control is enabled the CTS line is handled on the DS "level"- it is used to regulate the flow of serial data from the DS into the serial device.

Since the bitmask depends on the selected flow control it is re-programmed each time the application changes the flow control mode:

--- application disables RTS/CTS flow control so the bitmask is set to include the CTS line ---
12/16/03 10:10:18 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: set flowcontrol to none...success
12/16/03 10:10:18 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: enabling line change notification for DSR, CTS...success
---
--- application enables RTS/CTS flow control so the bitmask is set to exclude the CTS line ---
12/16/03 10:10:20 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: set flowcontrol to RTS/CTS...success
12/16/03 10:10:20 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: enabling line change notification for DSR...success

Additional considerations concerning notification messages

Just as on-the-fly commands can be sent using out-of-band or inband access method, notification messages can also be sent out-of-band or inband. When the Inband (IB) setting of the DS is programmed to 1 (enabled) the DS sends inband notifications (otherwise, the DS sends out-of-band notifications).

For the inband notifications to work no additional DS setup is required (past the pre-programming needed to make the DS accept inband commands in principle- see preparing the DS for inband access).

For the out-of-band notifications to work properly the Notification Destination (ND) setting of the DS must be programmed to 0 (last known port). In this case the DS will send its notifications to the port from which it last received an on-the-fly command. Because the VSP sends on-the-fly commands from an "automatic" port the DS has no way of knowing beforehand what this port number will be. Therefore, the DS won't send notifications unless it receives at least one on-the-fly command from the VSP. This is not a limitation since on-the-fly commands are generated by the VSP as soon as it is opened and/or connection is established (see when the VSP sends on-the-fly commands).

There are certain limitations associated with notification messages:

· Notifications are only generated when the data connection is established between the VSP and the DS. This is different from on-the-fly commands which can be sent by the VSP at any time, even when the data connection is not established yet.

· The change in the state of the CTS or DSR input of the DS serial port is recognized with a 0.5 second delay. That is, the line must change the state and remain in this new state for at least 0.5 second for this change to be detected and notification to be sent to the VSP.

* That is, if on-the-fly commands are enabled in principle.


Synchronization issues for on-the-fly commands

This topic details a subtle difference between the timing of out-of-band and inband on-the-fly commands (relative to the data being sent by the VSP).

In certain serial systems transmission of data by the PC is synchronized with toggling of RTS or DTR outputs (or with changing of the serial port setup). Consider the following two examples:

Example 1: The RTS line is used to mark the beginning and the end of the data transmission by the PC.

The diagram of such data transmission is shown below. When the PC wants to send out the data it does the following:

· Sets the RTS line to HIGH.

· Transmits the data.

· Sets the RTS line to LOW.

The positive pulse on the RTS line is said to envelope or encapsulate the data.

Example 2: mark and space parity bits are used by the serial device to distinguish between the address and data bytes transmitted by the PC.

In most RS485 systems (where there are multiple serial devices attached to the serial bus) the PC needs to select a particular "node" it wants to communicate with by transmitting the address of this node. Such systems often use the parity bit to distinguish between the node address and the actual data, i.e. (parity= mark means an address byte, parity= space means a is data byte, or vise versa).

Since a standard COM driver does not allow the application software to control the parity bit directly, such software uses the following algorithm to transmit the node address followed by the data:

· Change the parity to mark.

· Send the node address.

· Change the parity to space.

· Send the data for this node.

The point here is that changes in the parity mode must be synchronized with the data being sent out.

How the use of VSP affects synchronization

As explained in Tx error handling, the operation of the VSP is more asynchronous than that of a standard serial port. When the application sends out the data the VSP just puts this data into the Tx buffer and returns control back to the application. To the application this means that the data has been sent out. Obviously, this is not so and there will be a certain delay before this serial data actually comes out of the serial port on the DS side.

Out-of-band commands (such as the command that tells the DS to change the state of the RTS line) are sent separately from the data. For example, when the application tells the VSP to change the state of the RTS line the VSP sends a required out-of-band command immediately.

For the example 1 the above means that the pulse on the RTS line will be completely out of sync with the serial data itself (the diagram below illustrates this). For the example 2 this means that the switching of the parity mode will occur at wrong (and unpredictable) times and, therefore, there is no guarantee that the address byte will be output with mark parity bit and the data byte will be output with space parity bit!

The solution

Fortunately, there is a solution to this problem- use inband mode when trying to achieve full synchronization between the Tx data and on-the-fly commands! Because inband on-the-fly commands are mixed into the data stream itself there is no chance that these commands will somehow "pass over" the data. The DS will receive the data and corresponding on-the-fly commands in exactly the same order as generated by the application.


Disabled (With FF Escape) Mode of the VSP

Disabled (with FF escape) mode

Some comments should be made on this mode of the VSP. The mode exists so that you could prevent the VSP from sending on-the-fly commands to the DS while at the same be able to program the DS from the DS Manager using inband access method.

Inband programming is usually used when out-of-band access is not possible. For the inband programming to work the DS must be configured for inband access. In this case the DS treats all data characters with ASCII code 255 (FF Hex) in a special way: all ASCII code 255 characters sent from the VSP to the DS must be doubled, or the DS will mistake these data characters for a beginning of inband commands (see inband commands for details). In the inband on-the-fly mode the VSP does this "doubling" but it also sends on-the-fly commands. If you don't want the on-the-fly commands to be sent then use the disabled (with FF escape) on-the-fly mode- the VSP will refrain from sending any on-the-fly commands but will still "double" all outgoing FF characters. Likewise, the VSP will correctly handle all "double" FF characters sent by the DS.


Connection Timeout

Connection timeout parameter sets the timeout (in minutes) for the data connections between the VSP and the DS. If no data is transmitted across the data connection (TCP or UDP) for a specified number of minutes the VSP aborts the connection.

Setting connection timeout parameter to 0 disables the feature and the connection is never closed on timeout.

Notice, that this feature will work even when the connection mode is set to "immediately". When the timeout comes the VSP closes the connection first and immediately reopens it (timeout counter is reloaded). This provides additional reliability since hanged connections are automatically "repaired".

Connection timeout parameter works like the Connection Timeout (CT) setting of the DS.


Routing Mode

Routing mode defines whether the VSP will accept incoming connections (passive opens) and/or establish outgoing connections (perform active opens).

Routing Mode drop-down box provides three choices:

Server Only incoming connections are accepted, the VSP never attempts to establish an outgoing connection to the DS. There is no restriction on which DS can connect to the VSP- connection from any IP-address will be accepted as long as the DS is connecting to the correct listening port using correct transport protocol.

Server/client Both incoming and outgoing connections are allowed. Outgoing connections are established with the destination, specified in the destination section of the dialog. Exactly when the VSP attempts to establish an outgoing connection is defined by the selected connection mode. Incoming connections are accepted from any IP-address, just like with the server routing mode.

Client Only outgoing connections are allowed, the VSP rejects all incoming connections.

Routing mode option works like the Routing Mode (RM) setting on the DS.


Connection Mode

Connection mode defines when the VSP attempts to establish an outgoing connection to the destination, specified in the destination section of the dialog.

Connection mode drop-down box provides two choices:

Immediately The VSP attempts to establish an outgoing connection right after it is opened by the application. The VSP also tries to make this connection "persistent". If the connection is aborted by the DS, the VSP will (attempt to) re-establish it immediately. Connection timeout (defined by the connection timeout parameter) still works in this mode: when the current connection times out the VSP aborts it and immediately establishes a new connection. Such behavior "auto-repairs" hanged connections.

On data The VSP attempts to establish an outgoing connection when the first "serial" data (since the VSP was opened or previous connection was closed/aborted) is sent by the PC application into the VSP.

Connection mode option is irrelevant when the routing mode is "server", since in this mode outgoing connections are not allowed in principle.

Connection mode option works like the Connection Mode (CM) setting of the DS (modes 0 and 1 only).


Listening Port

Listening port parameter defines the listening port number that will be associated with this VSP.

Listening port usage is slightly different for TCP/IP and UDP/IP transport protocols:

· For TCP/IP transport protocol this parameter defines a listening port on which incoming connections are to be accepted. Listening port is closed and irrelevant when the routing mode is "client", since in this mode incoming connections are not allowed in principle. Outgoing connections, when allowed (i.e. in the "client" and "server/client" routing modes), are established from an "automatic" port, so the listening port number has nothing to do with this.

· For UDP/IP transport protocol the situation is as follows:

· When the routing mode is "client" (incoming "connections" are not allowed) the listening port parameter is irrelevant and the VSP sends it own UDP datagrams from an "automatic" port.

· When the routing mode is "server" or "client/server" the listening port parameter defines the listening port on which incoming UDP datagrams are accepted and is also used as the port from which outgoing UDP datagrams are sent.

Listening port parameter is similar to the Port Number (PN) setting of the DS.


Destination Modes

The VSP has two "destination" modes that define which destination the VSP will attempt to connect to*:

· In the single-destination mode there is only one destination specified either by its IP-address or MAC-address.

· In the multi-destination mode the VSP maintains a table of destinations. The VSP switches between these destinations basing on the data sent by the application. Multi-destination mode is a "logical" equivalent of a "multi-node" RS485 network.

* When outgoing connections are allowed in principle, i.e. in the client or client/server routing mode.


Single-destination Mode

Single-destination mode is selected by choosing "single destination" from the destination mode drop-down box (see the screenshot below). Single destination mode allows you to specify one particular DS to which the VSP will be establishing its outgoing connections (when allowed by the routing mode and according to the connection mode option).

The destination DS can be specified either by its IP-address, or its MAC-address:

· When Enable MAC-->IP mapping optionbox is not checked the DS is specified by its IP-address.

· When Enable MAC-->IP mapping optionbox is checked the DS is specified by its MAC-address. This option exists to make the VSP-to-DS communications independent of the IP-address of the DS. If the DS is running with DHCP enabled (DHCP (DH) setting is 1 (enabled)) the IP-address may eventually change but the MAC-address will remain the same.

With mapping enabled, the VSP "discovers" current IP-address of the DS each time it needs to communicate with this DS. The process is illustrated by the following log in the Port Monitor:

12/17/03 17:11:00 - COM3 (INFO): Port opened
12/17/03 17:11:06 - COM3 (INFO): MAC --> IP mapping for MAC 0.2.3.4.61.189...ok, mapped to 192.168.100.92
12/17/03 17:11:06 - COM3 (INFO): Established TCP connection with node 192.168.100.92:1001
12/17/03 17:11:29 - COM3 (INFO): TCP connection closed
12/17/03 17:11:29 - COM3 (INFO): Port closed
--- IP-address of the DS has changed ---
12/17/03 17:17:03 - COM3 (INFO): Port opened
12/17/03 17:17:05 - COM3 (INFO): MAC --> IP mapping for MAC 0.2.3.4.61.189...ok, mapped to 192.168.100.91
12/17/03 17:17:05 - COM3 (INFO): Established TCP connection with node 192.168.100.91:1001

In the above example the IP-address of the DS has changed between the "communications sessions" but the VSP was able to connect to the same DS by using the MAC-->IP mapping.

Because the VSP is using broadcast UDP communications to "find" the DS with matching MAC-address, the MAC-->IP mapping feature only works for local Device Servers, i.e. devices located on the same network segment* with the PC (running VSP).

Also specified in the destination section of the VSP properties dialog is the port number on the DS. This must be the same number as the one specified in the Port Number (DP) setting of the destination DS.

Instead of entering the destination data manually, you can press the Select Device Server from the list... button and choose the DS from the list. The button brings up the dialog, similar to the main window of the DS Manager. In fact, it is the DS Manager, with the following two differences:

· There is an additional Select button. To select a particular DS as a destination for the VSP single-click on the DS in the device list and press Select. Alternatively, you can double-click on the DS in the device list.

· There is no COM access mode available in the access mode drop-down box. This is because you are choosing a network destination for the VSP so the target DS has to be selected from the list of devices accessible through the network!

When you select the DS from the list the VSP Manager selects or deselects the MAC-->IP mapping automatically:

· Mapping is deselected if the DS is not local (no matter the DS is running with DHCP enabled or disabled).

· Mapping is deselected if the DS is local but is running with DHCP disabled.

· Mapping is selected if the DS is local and is running with DHCP enabled.

Additionally, when you select the DS from the list the destination port is set automatically to the one, defined by the Port Number (DP) setting of the selected DS.

* The definition of the network segment implies that there are only network hubs (and no routers, bridges, firewalls, etc.) between the PC and all other devices on the segment. Broadcast messages cannot pass through the routers and cannot reach the Device Servers located behind those routers.


Multi-destination Mode

Multi-destination mode allows you to communicate with several Device Servers (and the serial devices behind them) through a single VSP. To understand the usefulness of this feature consider the following example:

Example

Let's assume there is a multi-drop (RS485) network with several serial data terminals connected to it (see diagram below). The RS485 "bus" is attached to the PC's COM port via a 485-to-232 converter. An application software on the PC (App.) can address each terminal individually by sending a formatted command that contains a "node address" of the terminal. All terminals on the RS485 bus receive the command but only the one with a matching node address will respond to the command. This is a very common way of multi-drop communications. The PC acts as a "master" and the terminals act as "slaves".

The formatted command typically has a start character (STX, ASCII code 2 in this example), followed by the node address (transmitted, for example, as two ASCII characters representing the number, i.e. "01", "02", etc.). The address characters are followed by the command contents and some sort of end character (for example, CR, ASCII code 13):

STX
Addr1
Addr2
Command contents
CR

Now let's suppose that you need to network-enable this system. The simplest way to do so would be to connect the RS485 bus to the DS, create a VSP on the PC and let the application software access the terminals through the VSP and the DS.

This will work, but only if the distance between the terminals is small. If the terminals are to be located far away from each other the RS485 network connecting them would have become very long thus defying the purpose of network-enabling this system! Much better solution would be to connect each terminal individually to its own DS (see figure below). This way there would be no RS485 network whatsoever.

The problem here is that each DS (and hence, each terminal) will now have its own IP-address and this means that a single VSP will have to switch between these IPs as needed (remember that on the original RS485 system the application software communicated with all terminals on the RS485 bus through a single COM port!).

The solution

The multi-destination mode of the VSP allows you to define several destination Device Servers and switch between these destinations basing on the outgoing data stream sent by the PC application. As explained above, the multi-drop RS485 system (almost) always has some form of node addressing and the VSP can be programmed to filter out this addressing information and automatically switch between the destinations.

The data in the outgoing data stream the VSP reacts to is divided into two portions:

· Prefix string- this is a fixed string that signals to the VSP that the actual node address will follow. Prefix can be any string of (almost) any length but it cannot be NULL (empty). Only one prefix string can be defined for each VSP.

· Switch string- this is the data that immediately follows the prefix. The switch string is different for each destination listed in the destination table. Switch strings can also be of (almost) any length but cannot be NULL (empty).

For the example used in this topic the prefix string is a single character with ASCII code 2 (STX) and the destination table looks like this:

Switch string | Destination IP-address
"01" | 192.168.100.40
"02" | 192.168.100.41
"03" | 192.190.0.15

Once the VSP detects the prefix string in the data stream sent by the application software it starts checking if the subsequent data will match one of the defined switch strings. When the match is detected the VSP closes current data connection (if any) and switches to the new destination, corresponding to the detected switch string.

Here is how this is reflected in the log of the Port Monitor:

12/18/03 10:39:49 - COM3 (INFO): Port opened
12/18/03 10:40:04 - COM3 (INFO): Switching to 192.168.100.40:1001 ("01")...
12/18/03 10:40:04 - COM3 (INFO): Established TCP connection with node 192.168.100.40:1001
12/18/03 10:40:15 - COM3 (INFO): TCP connection closed
12/18/03 10:40:15 - COM3 (INFO): Switching to 192.168.100.41:1001 ("02")...
12/18/03 10:40:15 - COM3 (INFO): Established TCP connection with node 192.168.100.41:1001

Setting up the multi-destination VSP

To switch into the multi-destination mode and create the list of destinations select "multi-destination" from the destination mode drop-down box and click Edit destination table... button- Edit destination table dialog will open (shown on the screenshot below). The multi-destination mode is only available when the routing mode is "client" and when the connection mode is "on data". "Server/client" routing mode is not allowed because the VSP is supposed to act as a master and establish all connections by itself. "Connect immediately" mode is not allowed because the VSP needs to receive a switch string from the application in order to know which destination to connect to.

The prefix string is entered into the Prefix (ASCII) or Prefix (Hex) textboxes. These textboxes are synchronized with each other. Prefix (ASCII) texbox records the characters as you type them. For example, if you press <A> key this will be interpreted as ASCII character 'A'. The Prefix (Hex) texbox will reflect the ASCII HEX code of this character- 41. Typing "02" (ASCII code of the STX character) into the Prefix (Hex) textbox will cause the image of this character (smiley face) to appear in the Prefix (ASCII) textbox. Special characters, such as STX, can also be entered in the Prefix (ASCII) textbox using the <CTRL> key (<CTRL>+<B> for STX).

Available destinations are entered into the destination table- there are Add, Edit, and Delete buttons. Pressing Add or Edit button opens the Edit destination entry dialog (see the screenshot below).

Switch (ASCII) and Switch (Hex) textboxes are used to enter the switch string for a particular destination.

Substs (ASCII) and Subst (Hex) textboxes provide additional functionality that haven't been mentioned yet. If the data is entered into those fields then the VSP will automatically substitute the switch string encountered in the data stream sent by the application with this substitution string.

For example, if the switch string is "01" and the substitution string is "00" then the following will happen (STX character is represented as J):

Application-->VSP: J01ABC
VSP-->DS: J00ABC

The destination portion of the Edit destination entry dialog is similar to that displayed in the VSP properties dialog in the single-destination mode. The destination DS can be defined by its IP-address or by its MAC-address, depending on whether the MAC-->IP mapping option is enabled or not. Destination port must match the one specified by the Port Number (DP) setting of the destination DS. Instead of typing in the data manually, you can press the Select Device Server from the list... button and choose the DS from the list.

How multi-destination errors are handled

· If, after the VSP is opened, the application starts sending "random" data without sending a prefix and a switch string first, or if the data after the prefix does not match any switch string, the VSP will be discarding this data until a valid prefix and switch are detected.

· If, after a valid prefix and switch have already been detected and the VSP has established a connection with a certain destination DS, the VSP receives the prefix string that is not followed by any valid switch string, then the VSP will keep sending the data across the existing data connection.


Outbound packets Tab

The challenge of sending the data from the application to the DS (and the serial device behind it) is in deciding how to group this data into the network packets of reasonable size. Carrying too little data in each packet increases network load while sending packets with too much data slows down the delivery of this data to the DS.

Outbound packets tab of the VSP properties dialog (shown on the screenshot below) offers several options that define how the VSP combines serial data into network packets. Functionality provided by this tab is very similar to the one provided by the encapsulation settings of the DS (also see serial-to-Ethernet data routing).

The simplest way to subdivide the data into packets is by sending the data out in exactly the same "chunks" as this data was sent in by the software application. Under Windows OS the application can "write" a number of data bytes into the VSP "in one go" (i.e. it is possible to "write" an "ABC" string at once, without the need to first send "A", then "B", then "C"). When the Send data immediately option is selected the VSP does just that. As soon as the application "writes" the data, the VSP takes this data and combines it into a single network packet, unless the data size exceeds the limit specified by the Maximum packet length option.

The Maximum packet length option breaks the large chunks of data into smaller portions. This option can never be disabled, so there is always a maximum limit for the packet size. When the TCP/IP transport protocol is selected the maximum packet length is fixed at 255 bytes and cannot be changed. For UDP/IP transport protocol you can set your own maximum length in the 1-255 range.

Using Send data immediately option (almost) always works but may not be the ideal choice. Some (badly written) applications send the data in very small portions (sometimes even byte-by-byte). You won't notice this with a regular COM but on the VSP this will result in a flood of packets carrying a single data byte each. This will noticeably slow down the performance of your system and also put an unnecessary strain on the available network bandwidth.

Advanced packet generation options

Selecting Use advanced packet generation option prevents this from happening as you can precisely define how the VSP will combine the data into network packets. With this option selected, the VSP doesn't send the data to the DS immediately after it is received from the application but instead waits for certain conditions to be met:

· When maximum intercharacter delay option is enabled the VSP sends out all the data in its Tx buffer when no new data is received from the application for a pre-defined period of time (in milliseconds). Using this option you can combine the data that is sent by the application in "rapid succession" into a larger packets (but still not exceeding the maximum packet length).

· When Use start/stop characters option is enabled the VSP accepts the data from the application selectively and generates outgoing data packets when a certain character is discovered in the data stream.

Using start and stop characters

Start and stop characters offer an effective method of setting the packet generation rules in systems that use some sort of data packets (we will call them data blocks to avoid possible confusion with network packets). Data blocks usually have encapsulation, which means that they start and end with specific ASCII characters. Since the data block is a basic unit of data transmission in such systems it is only logical to divide the data sent by the VSP into network packets basing on these data blocks.

To specify the data block boundaries enable Use start/stop characters option, then click Details...- the Start/stop characters dialog will open (see the screenshot below).

· Data block starts. Your data blocks can either start on any character or on specific start characters only (up to three start characters can be defined). In the first case the data block starts on the first character received (past the end of the previous data block). In the second case the data block is opened only when the start character is encountered and the VSP ignores (discards) all data between the data blocks. Start characters received past the beginning of the data block are treated as normal data characters and do not reopen the data block in any way.

· Data block ends. The data block ends on one of (up to three) stop characters. If you don't set any stop characters then the data block, once started, will never end, so all data sent by the application may be viewed as one continuous data block. If you select the stop characters the VSP will start discarding all data received after the stop character (or N characters after the stop character- see below) until the new data block is opened. Once the stop character is detected the VSP sends the data in its Tx buffer to the DS. If no stop characters are defined the VSP can only send the data when the maximum packet size is reached or when the intercharacter delay is exceeded (when this option is enabled).

· Post-characters. In some systems there can be a fixed number of data characters behind the stop-character (check characters are sometimes added this way). For each stop character you can specify a number of post-characters that will be counted as belonging to the same data block. The data block is closed and the data is sent to the DS only after those post-characters are received.

All of the above options can be combined. For example, you can have the VSP generate the data packet when the maximum packet size is reached (one again, this option cannot be disabled), or intercharacter delay is exceeded, or the stop character is encountered.

Clicking Restore defaults... button returns you to the simplest way of outbound packet generation- send immediately option is selected and the maximum packet size is set to 255.


Control lines Tab

Control lines tab allows you to define the "operating mode" for CTS, DSR, and DCD "inputs" of the VSP. CTS, DSR, and DCD are actually real physical input lines found on serial ports/cables (they exist alongside RTS and DTR outputs). It is a standard COM port functionality to be able to report the status of CTS, DSR, and DCD inputs to the application software that is working with this COM port.

The following options are available for each input line:

· Normal (reported by Device Server). In this mode the application software working with the VSP is updated (or queries) the status of actual physical lines on the serial port of the DS*.

· Fixed at HIGH. When this option is selected for a particular line this line appears to always be at HIGH ("enabled"), no matter what actual state of the corresponding physical line on the Device Server's serial port is.

· Fixed at LOW. When this option is selected for a particular line this line appears to always be at LOW ("disabled"), no matter what actual state of the corresponding physical line on the Device Server's serial port is.

· Connected to RTS (DTR). When this option is selected for CTS input it appears to be connected to the RTS output. When this option is selected for DSR input it appears to be connected to the DTR output. To the application software, this really looks like there is a wire interconnecting CTS and RTS (or DTR and DSR) lines. DCD line doesn't have a "pair" so this option is not available for DCD.

Fixed at HIGH, fixed at LOW, and connected to RTS (DTR) options are handy when certain serial control input lines are not physically implemented but the application software requires these lines to be in a specific state. For example, DTR and DSR lines are not implemented on the DS100R Device Server, yet some application software might wait for the DSR input to become HIGH as an indication that the serial device is ready to accept the data. To make sure that the software receives the state it is looking for the DSR line can be set to fixed at HIGH.

* This functionality depends on so-called notifications that are automatically generated by the DS and sent to the VSP and also on-the-fly commands (network-side parameters) generated by the VSP.


Default serial settings Tab

Default serial settings tab allows you to define a set of communications parameters associated with this VSP. This tab exists purely for compatibility with regular COM ports. Under Windows, each COM port has a set of default parameters associated with it, and so does VSP. These parameters do not affect operation of the VSP in any way.


Unsupported Features and Limitations

This topic describes existing limitations of the VSP.

· Password protection for on-the-fly commands. On the DS side this feature is enabled through the On-the-fly Password (OP) setting. The VSP does not support this yet so the password protection for on-the-fly commands must be disabled on the DS.

· Password protection for data connections. On the DS side this feature is enabled through the Data Login (DL) setting. The VSP doesn't support data logins yet and so the password protection for data connections must be disabled on the DS.

· The VSP doesn't work through proxies. See below for the explanation.

Why VSP doesn't work through proxies

Some proxy clients, such as the client for the Microsoft ISA server, install themselves on the system by substituting standard sockets interface* through which user-mode Windows applications interact with TCP/IP networks. Being a kernel-mode application, the VSPD is working with the network using a low-level network interface, not the "sockets" interface whose place in the Windows hierarchy is higher than that of the VSPD. Because of that the VSPD is not aware of the proxy client and behaves as if the proxy client is not installed at all!

* Terrible idea!


Warnings and Messages

This reference section contains additional information on the warning and error messages displayed by the VSP Manager.


Listening Port is In Use

Description

Message text: Listening port associated with this VSP is already in use, possibly by another VSP. Set another listening port number and try again

Details

Listening port is the port number the VSP is accepting incoming connections on*. This message appears when the VSP attempts to open this port (which usually happens when the VSP is opened) and the port is already in use by another application (possibly, another VSP).

To solve this problem select another number for the listening port and try again.

* When incoming connections are allowed by the routing mode.


No Start Characters defined

Description

Message text: You haven't defined any start-characters. Close still?

Details

This message appears when you are closing the start/stop characters dialog and you haven't defined any start characters while the start on any character option is disabled. This means that there are no conditions whatsoever that will open the data block and no data will ever be accepted from the application.

For more information on the data blocks see outbound packets tab.


Port Substitution Required

Description

Message text: You have chosen the name that is currently assigned to a standard COM port. The COM driver for this port will be substituted with the VSPD. Are you sure you want to continue?

Details

This message appears when you select the port name for the VSP that is currently in use by the real COM port. Typically, these are "COM1" and "COM2" port names.

For more information on the subject see VSP name selection.


VSP Is in Use

Description

Message text: This VSP is currently opened by another application. Port properties cannot be altered at this time

This VSP is currently opened by another application and cannot be deleted

Details

You can only edit VSP properties or delete a VSP when it is not currently opened (i.e. not in use by another application).


Port Monitor

Port Monitor is a parts of the Device Server Toolkit.

The Port Monitor is used to log the activity of Virtual Serial Ports (VSPs) installed on your Windows system.

When the Port Monitor is running its icon appears in the system tray, as shown on the screenshot below.

Double-clicking on the Port Monitor's icon in the system tray brings up the main window:

The main window displays the log of registered events. The simplest way to observe the work of the Port Monitor is to open the VSP from some application program and check what kind of data appears in the Monitor (sample output is shown on the screenshot above).

You can erase all data in the Port Monitor's window by choosing File--> Clear log from the main menu or clicking clear monitor log button (shown below).

You can also copy the log data into the clipboard by first selecting the desired part of the data in the Port Monitor's window and then choosing File--> Copy from the main menu or clicking copy button (shown below).

All events logged by the Monitor can be divided into informational, warning, and error events. Preferences dialog (general and event tabs) defines which events are logged, what format is used to displays those events, and what action the Monitor will take when an error event is encountered.

The Monitor also features a dump function which can be used to track the data passing through a particular VSP.


Preferences Dialog (General Tab)

General tab of the preferences dialog (shown on the screenshot below) offers a number of options that define how the Port Monitor logs events. To display the tab choose File-->Preferences from the main menu of the Port Monitor or click Preferences button (shown below).

Preferences button

· Event prefix format defines how each event in the log will look like. There are three fields that can be added to each event line:

· Port name placeholder (%p). Adding %p to the format string will make the Monitor print the VSP name (i.e. "COM3", "COM4") for which the event was generated.

· Timestamp placeholder (%t). Adding %t to the format string will make the Monitor print current date and time stamp for each event line (i.e. "12/30/03 14:57:13").

· Message type placeholder (%m). Adding %m to the format string will make the Monitor print the type of event (i.e. "INFO", "WARNING", "ERROR") for each event line.

You can combine the placeholders, for example: "%t- %p (%m):". This will make the Wizard print all events like this:

12/30/03 15:06:51 - COM4 (INFO): Port opened
12/30/03 15:06:52 - COM3 (INFO): Port closed

· Write events to file option, when enabled, allows you to choose a file to which the Monitor will save all logged events. The Monitor will create a plain text file that can be viewed using any text editor.

· Notify on error option, when enabled, allows you to choose what the Monitor should do if any error events are logged. You have two choices:

· Popup main window. The main window of the Port Monitor will be displayed automatically whenever an error event is registered.

· Blink system tray icon. The main window will not be opened but the Monitor's icon in the system tray will have a blinking exclamation point.

· Additionally, you can enable play sound file option and choice the sound that will be generated each time an error event is logged.


Preferences Dialog (Event Tab)

Events tab of the preferences dialog (shown on the screenshot below) allows you to enable/disable logging of and set the font for individual events and event groups. To display the tab choose File-->Preferences from the main menu of the Port Monitor (or click Preferences button), then click events tab.

Preferences button

When the Monitor is installed all events are enabled and three different font types are selected for the informational, warning, and error events:

12/30/03 15:44:45 - COM3 (INFO): Port opened <---- info event
12/30/03 15:44:48 - COM3 (WARNING): "On-the-Fly" command for 192.168.100.95: get DSR pin status...timed out, still trying... <---- warning event
12/30/03 15:44:54 - COM3 (ERROR): "On-the-Fly" command for 192.168.100.95: get DSR pin status...timed out <---- error event

To enable/disable entire event group click on the option box next to the group name. To change the font for the entire group select the group name in the list and press Change font button.

To enable/disable individual event "expand" the event group (by clicking on the "+" sign or double-clicking on the group name), then click on the option box next to the event name. To change the font for an individual event select this event in the list, deselect the inherit font option, then press Change font button.


Data Dump Feature

The Port Monitor can be used to capture the "serial data" passing through the VSP. The data is displayed in the Hex dump window, both in the HEX and ASCII format, as shown on the screenshot below:

Before you can open the Hex dump for a particular VSP you need to enable RX/TX data logging option for this VSP (this option can be found in the VSP properties dialog of the VSP Manager). After that choose View--> Hex dump from the main menu of the Port Monitor- the choose VSP to monitor dialog will open. Select desired VSP and click OK.

The only two functions available in the Hex dump window are save (to save all captured data into a data file) and clear (to erase all data).


Connection Wizard

Connection Wizard is a part of the Device Server Toolkit.

Connection Wizard assists you in setting up typical data links involving Tibbo Device Servers and Virtual Serial Ports (VSPs).

Shown below is the welcome screen of the Connection Wizard.

Connection Wizard offers a selection of jobs that help you setup several kinds of typical data links involving Tibbo Device Servers and Virtual Serial Ports (VSPs). For example, a VSP-to-DS job helps you create a VSP on the PC, and then configure this VSP and the Device Server (DS) of your choice to work with each other.

Creating a VSP-to-DS link through the Wizard produces the same effect as when you manually set up the VSP using the VSP Manager and then configure the DS with the DS Manager. The difference is that after you have answered several simple questions the Wizard does all necessary adjustments automatically. As a result you save tremendously in terms of time and debugging effort spent on setting up this data link. After you have familiarized yourself with the Wizard you can expect to complete typical data links in under 1 minute! Even when the link you need to create is not exactly the one this Wizard can help you with, you still can run the closest Wizard job, then make remaining setup changes manually.

This Manual follows the actual "flow" of Wizard steps. Pressing Next in the welcome screen of the Wizard moves you to the next step, on which you choose the kind of data link you want to create. Likewise, the next topic of this Manual (choosing the Wizard job) details this next step.


Choosing the Wizard Job

On this step you choose the kind of job you want the Connection Wizard to perform.

Four choices are currently available:

· Create a link between a Virtual Serial Port and a Device Server

· Configure a Device Server for direct communications with an application on this PC

· Create a link between two Device Servers

· Finish remote job


VSP-to-DS Link

This job is selected by choosing create a link between a Virtual Serial Port and a Device Server from the list of available jobs.

When performing this job the Connection Wizard creates a VSP (on the PC the Wizard is running on) and then configures this VSP and the DS of your choice to work with each other. Use this job if you want to make your "serial" PC software* communicate with the serial device through the VSP and the DS. This way your PC software and the serial device can communicate with each other as if they were still interconnected by a normal serial cable. This is a fast and economical way of network-enabling a legacy serial system that you are unwilling or not able to modify- both the PC software and the serial device will require no modification whatsoever to work through the network.

* I.e. the software that can only communicate through COM ports. If your software supports communications through TCP/IP networks use direct-to-DS connection.


VSP Name Selection

On this step you select the name of the VSP that will be configured on the PC side of the VSP-to-DS connection. VSP names look like the numbers of regular COMs, i.e. COM1, COM2, COM3.

· Choosing select existing VSP option displays the list of VSPs that are already found on your system (i.e. the ones that have been created before).

· Choosing create new VSP option displays the list of unused VSP names (shown above). The number of ports you can have in Windows is virtually unlimited- the Connection Wizard lets you create any port in the range between COM1 and COM255*.

There are no rules on what VSP name to choose but some considerations are provided here.

* We could extend the number even further but feel that the current range is sufficient for all practical purposes.


Choosing the VSP Name

This topic provides additional information on choosing a proper VSP name.

There are no rules on what VSP name to choose, just make sure that you pick the name that can be selected in the application software you plan to use with this VSP. Most programs provide a limited selection of ports (typically, up to COM2 or COM4). Therefore, choosing "COM100" won't be suitable as you will not be able to select this VSP in such a program.

On the screenshot above COM3 is not listed- this is because the VSP with this name already exists. Notice, however, that ports COM1 and COM2 are not excluded from the list and are marked with icons identifying them as "real" COMs*. This is because even though these port numbers are "occupied" the Connection Wizard can still "grab" them. For example, if you select COM1 the Wizard will automatically reassign COM1 to be a VSP (from this moment on COM1 will seize working as a normal COM port and will start working as a VSP). Substitution may be necessary when you are dealing with an old application software that only provides a choice of COM1 and COM2 which are usually occupied by real COMs.

When you delete the VSP (this can be done through the VSP Manager) that substituted a standard COM port the VSP Manager will attempt to restore the original driver (make this port become a normal COM again). This mostly works but on some systems you may encounter problems (especially under Windows ME). We have conducted an extensive "research" into the port substitution, only to conclude that it just won't work reliably on all systems!

We recommend that you do not use port substitution unless absolutely necessary!

* This is system-dependent. Some modern PCs don't have any real COMs.


Target DS

On this step you select the DS that the VSP (selected on the previous step) will be communicating with.

In most cases you complete this step as follows:

· Select Device Server is accessible from this PC.

· Click Select DS button and choose the DS from the list. The button brings up the dialog, similar to the main window of the DS Manager. In fact, it is the DS Manager, with the following two differences:

· There is an additional Select button. To select a particular DS single-click on the DS in the device list (in the auto-discovery or address book access mode) and press Select. Alternatively, you can double-click on the DS in the device list.

· The COM access mode is not available when the DS Manager is called from within Wizard. This is because you are choosing a network destination for the VSP so the DS has to be selected from the list of devices, accessible through the network!

· Click Next.

This step provides a choice of several access options for the target DS- read additional info on accessing the DS for more information.

When you click Next the Wizard attempts to contact the target DS and verifies if this DS is local or remote. The DS of your choice must be available on the network, or the Wizard won't allow you to continue. Moreover, the IP-address of this DS must be reachable*. If everything is OK the Wizard reads out all current setting values of this DS.

What if the DS is not visible from the PC

If the PC and the DS are located on different network segments it may well be that the DS is not "visible" from this PC but the PC is visible from the DS. This is normal as many networks are not symmetrical. For example, if the PC has a public (real) IP-address and the DS is located on a firewalled network segment then the DS can connect to the PC (VSP), but the PC (VSP) cannot connect to the DS.

To specify that the DS is not visible from this PC select the Device Server is not accessible from this PC option and click Next.

There are two implications of this choice:

· In this VSP-to-DS connection it is the DS that will always be connecting to the VSP, since VSP cannot connect to the DS.

· The Wizard won't be able to setup the DS through the network (this is because it cannot "see" the DS). You will have a chance to setup this inaccessible DS through its serial port or through a temporary network connection. You will be given a choice to do this within current Wizard job or generate a configuration script and finish the setup later, using the finish remote job feature of the Connection Wizard.

* The DS Manager and the Connection Wizard have the ability to "see" local Device Servers even if the IP-address of these devices is unreachable (this is done by using broadcast communications- read about this here). The reason why the Wizard demands that the Device Server has a proper IP-address is because the VSP will have to establish a real data connection with this DS and that requires a reachable IP-address.


Additional Info on Accessing the DS

This topic provides additional information on the access options available for the target DS.

The target DS can be selected from the list (using Select DS button) or its address and access parameters can be input manually. The first option is usually more convenient and requires less manual input and decisions on your behalf.

Specifying the target address

The target DS can be specified either by its IP-address or MAC-address:

· When Enable MAC-->IP mapping option is not checked the DS is specified by its IP-address.

· When Enable MAC-->IP mapping option is checked the DS is specified by its MAC-address. If the DS is running with DHCP enabled its IP-address may eventually change but the MAC-address will remain the same. This option exists to make the communications with this DS "IP-address independent": each time the VSP needs to connect to the DS it will find out the current IP-address of the DS with the target MAC-address, and only then access this IP-address. The MAC-->IP mapping feature only works for local Device Servers. If the target DS is remote it can only be specified by its IP-address.

When you choose the DS from the list (through the Select DS button) the Wizard selects or deselects the mapping option automatically:

· Mapping is deselected if the DS is not local (no matter the DS is running with DHCP enabled or disabled).

· Mapping is deselected if the DS is local but is running with DHCP disabled (DHCP (DH) setting is 0).

· Mapping is selected if the DS is local and is running with DHCP enabled (DHCP (DH) setting is 1).

Specifying the access method and port

Besides the IP (or MAC) you need to specify the access method and access port for this DS. Access method is the way the Wizard will access the DS in order to program it. Access port is the port to which the Wizard will send its programming commands. These options are not directly related to how the VSP will be accessing the DS, they just specify how the Wizard is going to access the DS.

There are two access methods:

· When out-of-band (UDP) access method is selected the Wizard communicates with the DS using command UDP datagrams sent to the command port 65535 of the DS. Out-of-band commands offer a primary way of network programming that requires no preliminary setup on the DS side. This access method is suitable for all local Device Servers. It will also work with remote Device Servers unless the UDP traffic is banned by the network routers (firewalls, etc).

· When inband (TCP) access method is selected the Wizard communicates with the DS by sending commands through the TCP connection established to the data port of the DS (this is the number defined by the Port Number (PN) setting of the DS). Inband (TCP) commands provide a secondary method of network programming that can be used in situations when out-of-band UDP access is impossible (for remote Device Servers). The downside is that a certain pre-programming must be done on the DS before it can be accessed using inband access method- read preparing the DS for inband access for step-by-step instructions.

When you select the DS from the address book (through the Select DS button) the Wizard copies the access method and access port from the address book entry.


Initiator of the Data Exchange

On this step you select which side of the VSP-to-DS connection will be the first to send the data.

Notice, that asking "who will be the first to send the data?" is not the same as asking "which side will be establishing the data connection to the other side?"* When making your choice imagine that there is no network at all and the serial device is attached to the COM port of the PC directly. Now, which side sends the data first?

There are three choices:

· Virtual Serial Port. Select this option if it is the application software that will be sending the first data. This is typical for the kind of serial devices that we, at Tibbo, came to call "slave terminals". Such terminals communicate with the PC software using some sort of command-reply communication protocol and it is the PC software that usually plays the role of a "master": the terminal won't send any data unless the PC sends a command first (and this is the "first data"!).

· Device Server. Select this option if it is the serial device that will be sending the first data. This is typical for the kind of serial devices that we call "scanners" (readers)**. This class of serial devices differs from "slave terminals" in that they send out the data spontaneously, without any prior prompt from the PC software.

· Any side. In some systems the data may first come from any side. For example, there are some "active terminals" out there that can send out the data spontaneously and at the same time respond to the commands from PC. Also choose this option if you are not sure which side of your system sends the data first.

* Although these two questions are connected- see how the Wizard decides which side open the connection.

** Meaning barcode scanners or magnetic card readers.


Netmask & Gateway for the DS

This step comes in two options: you are either requested to input the gateway and netmask information that the DS needs to connect to this PC (left screenshot) or you are shown a screen informing you that the entry of this data is not necessary (right screenshot).

The gateway and netmask need only be set when two conditions are observed:

· The DS may need to (or must) establish data connections to the PC (this is determined by the Wizard).

· The DS and the PC are located on different network segments (there is at least one router between the PC and the DS).

Setting gateway and netmask information for the DS that only accepts incoming connections is not necessary*. If the DS is local there are no routers between this DS and the PC, so the gateway and netmask are not necessary even if the DS has to connect to the PC.

How to set the gateway and netmask

There is no straight way of finding out what data to enter. You need to obtain this information from somebody with a knowledge of your network's topology. Here is one hint, though.

If the IP-address of the target DS is configured through DHCP (DHCP (DH) setting is 1 (enabled)), then the DHCP server might have configured this Device Server's gateway and netmask as well. When you reach this step of the Wizard the Gateway IP-address and the Netmask fields are filled with the data from the Gateway IP-address (GI) and Netmask (NM) settings of the target DS**. This data may already be correct!

What if the PC is not visible from the DS

When the PC and the DS are located on different network segments it may well be that the PC is not "visible" from this DS. This is normal as many networks are not symmetrical. For example, if the DS has a public (real) IP-address and the PC is located on a firewalled network segment then the PC (VSP) can connect to the DS, but the DS cannot connect to the PC (VSP).

To provide for this situation the option box at the top of this step's screen allows you to specify that this PC is not accessible from the Device Server. Choose the option if this is so and if the option is available.

The option to specify that the PC is not accessible from the DS is disabled (not allowed to be chosen) when you have previously specified (at the target DS step) that the DS is not accessible from the PC. The reason is obvious: at least one side of the connection must be able to "see" the other side!

After you have completed this step the Wizard has enough information to decide which side of the VSP-to-DS link will be responsible for establishing the data connections.

* We found that some people hold a passionate belief that these parameters are necessary in any case. This is not true! If your network device doesn't have to establish outgoing connections you never have to bother about the gateway and netmask!

** Unless you have specified that "the DS is inaccessible from this PC" at the target DS step of the Wizard, in which case the Wizard cannot obtain this information.


How the Wizard Decides Who Opens Connections

When you click Next on the netmask and gateway step the Wizard has enough information to decide which side of the VSP-to-DS connection will be responsible for establishing data connections with the other side.

In doing this, the Wizard decides on the future values of the Routing Mode (RM) and Connection Mode (CM) settings of the DS, as well as the Routing Mode and Connection Mode properties of the VSP.

In general, the Wizard tries to follow the natural flow of data between the application and the serial device. In the initiator of the data exchange step you have already specified which side sends the data first, so the Wizard will have this side open a data connection to the other side as soon as the first data needs to be sent from this side of the connection.

For example, if you are dealing with the "slave terminal" type of serial device, then the first data is always sent by the application (and the VSP). Therefore, the Wizard will set the Routing Mode property of the VSP to "client" and the Routing Mode (RM) setting of the DS to "slave".

Lines 1-3 of the following table illustrate what's just been said. Notice that the Connection Mode (CM) setting is always set to "on data". As the first data is received (by one side of the link) it triggers an attempt to open a data connection with the other side of the link:

 | Which side can "see" the other side of the connection | Which side sends the first data | Routing Mode on the VSP | Connection Mode on the VSP | Routing Mode on the DS | Connection Mode on the DS
1 | Both sides can see each other | Application | Client | On data | Server | ---
2 | Both sides can see each other | Serial device | Server | --- | Client (server/client) | On data
3 | Both sides can see each other | Any side | Server/client | On data | Server/client | On data
4 | Only PC can see the DS | Application | Client | On data | Server | ---
5 | Only PC can see the DS | Serial device | Client | Immediately | Server | ---
6 | Only PC can see the DS | Any side | Client | Immediately | Server | ---
7 | Only DS can see the PC | Application | Server | --- | Client | Immediately
8 | Only DS can see the PC | Serial device | Server | --- | Client | On data
9 | Only DS can see the PC | Any side | Server | --- | Client | Immediately

The situation becomes more complicated when only one side of the connection can "see" the other side. Consider the case in line 5 of the table. The serial device has to send the data first, but it cannot "see" the VSP. Therefore, even when the DS receives the first data into its serial port it will be unable to establish a connection to the VSP and send this data!

The way out is to have the VSP connect to the DS as soon as the VSP is opened (so, connection mode for the VSP is set to "immediately"). This way, by the time the DS needs to send the first data to the VSP the connection is already established. This kind of connections are called "reverse".

A special comment should be made on line 2 of the table, where the Routing Mode on the DS is designated to be either "client" or "server/client". The Wizard chooses "client" if DS programming is effected using out-of-band access method (you have selected this on the target DS step of the Wizard). If inband access method was selected the Wizard will set the mode to "server/client". This is because choosing "client" would cause it DS to reject all incoming connections in the future and this means that you wouldn't be able to program the DS using inband access in the future!

* This is the case when you have specified that "the Device Server is not accessible from this PC" on the target DS step, or that "the PC is not accessible from this Device Server" on the netmask and gateway for the DS step of the Wizard.


Transport Protocol & Listening Ports

On this step you select the protocol that will be used for exchanging the data between the VSP and the DS. You also choose the listening port number on the side(s) of the link that will be receiving incoming connections from the other side.

In general, we recommend you to stick to the TCP/IP, unless you have a good reason (which is very rare!) why you have to use UDP/IP protocol.

There is one case when the UDP/IP selection is not available and the TCP protocol is pre-selected for you- this is when you have specified an inband access method on the target DS step of the Wizard. Since inband access requires a TCP/IP data connection with the DS you must use TCP/IP transport protocol!

Listening ports

This screen also provides an option of entering the port number on the listening side(s) of the VSP-to-DS link. By now the Wizard has already decided which side opens the connections. Connecting side needs to know the number of the listening port on the other side. For example, if it is the VSP that will always be connecting to the DS, then you only have to specify the listening port on the DS side. Consequently, the listening port on the DS textbox will be enabled, and the listening port on the PC textbox will be disabled. If both sides will need to establish the connection, then you have to specify the listening ports on both sides too, and both textboxes will be active.

There is one case when the listening port on the DS side is fixed and pre-selected for you- this is when you have specified an inband access method for this DS. In this case you have already specified the listening port (as the access port) on the target DS step of the Wizard (listening port and the access port are the same for inband mode).

Once the listening port on one side is known, the Wizard sets the destination port on the other side accordingly. If the VSP will need to connect to the DS the destination port on the VSP will be the same, as the value of the Port Number (PN) setting on the DS side. Likewise, if the DS will have to connect to the VSP the Destination Port (DP) setting on the DS will be the same as the local port number on the VSP.

How the listening port numbers are chosen

In most cases the choice of listening ports is automatic so when you get to this step suggested port numbers are already entered by the Wizard.

On the VSP side the number is calculated as 998+ the number of COM. For example, if you are dealing with COM3 then the Wizard will suggest the number of 998+3=1001*. Tying the listening port number to the VSP name provides a simple and effective way of making sure that all VSPs on your system use a different listening port (listening port cannot be shared between the VSPs).

On the DS side you can choose any port of your liking, except the 65535 (65535 is a special command port). What the Wizard is showing you by default is the default value of the Port Number (PN) setting of the DS (1001).

The only reason to change suggested port numbers is if your network's firewall bans most of the traffic so only specific ports are opened for communications. In this case you may need to adjust the port numbers to the requirements of your network.

* There is no any special reason for this, we cannot even remember why we start from 998.


On-the-fly Commands

On this step you decide whether the PC application will be controlling the setup of the serial port of the DS.

The VSP-to-DS connection can be arranged in such a way that the serial port of the DS is always setup as required by the "serial" application. For example, if the application that opens the VSP selects the baudrate of 9600 bps, then the baudrate of the DS serial port is immediately set to this baudrate as well.

This functionality is delivered through the so-called on-the-fly commands (or, more officially, network-side parameters). Just like programming commands, on-the-fly commands can be sent using out-of-band or inband access method, so you have a total of three choices:

· No, disable on-the-fly commands. On-the-fly commands are not sent at all, the DS is not aware of the serial port settings required by the application and is running with "permanent" serial parameters defined through the serial settings. For example, even if the application requires 9600 bps, but the Baudrate (BR) setting of the DS is programmed to 5 (38400 bps), the serial port of the DS will be running at 38400.

· Yes, enable on-the-fly commands, use out-of-band access method. On-the-fly commands will be sent as UDP datagrams to the command port 65535 of the DS. This access method is suitable for all local Device Servers. It will also work with remote Device Servers unless the UDP traffic is banned by the network routers (firewalls, etc). We suggest that you select this option whenever possible.

· Yes, enable inband on-the-fly commands, use inband access method. On-the-fly commands will be sent through the TCP connection established to the data port of the DS (this is the port number defined by the Data Port Number (PN) setting). This method can be used in situations when out-of-band on-the-fly commands cannot get through.

In certain cases the Wizard will automatically disallow the out-of-band option:

· If you have specified inband access on the target DS step of the Wizard then the Wizard will assume that this is because out-of-band access is impossible. Since the VSP will be running on the same PC as this Wizard, the same constraints (probably) apply to the VSP as well, so Wizard disallows out-of-band access.

· If the Wizard has decided that the VSP is to run in the server routing mode then the VSP cannot sent out-of-band commands too. This is because sending out-of-band commands would be like establishing outgoing UDP "connections" to the DS, and selected routing mode doesn't allow this. On the contrary, inband on-the-fly commands are OK- after the DS connects to the VSP the latter can send these commands across this existing data connection.

If you choose to disable on-the-fly commands the Wizard will select either "disabled" or "disabled (with FF escape)" on-the-fly mode on the VSP side depending on how the DS is being accessed for programming (you have selected this on the target DS step of the Wizard). See disabled (with FF escape) mode for details.

Enabling on-the-fly commands also has another effect: it allows the status of RTS, CTS, DTR, and DSR lines to be transmitted between the VSP and the DS.

More information regarding on-the-fly commands

· Serial port and serial communications (Firmware Manual)

· On-the-fly (network-side) parameters and instructions (Firmware Manual)

· On-the-fly commands (VSPD and VSP Manager Manual)


Parameters for the Serial Port of the DS

This step comes in two options: you are either requested to input communication parameters for the serial port of the DS (right screenshot) or you are shown a screen informing you that this information is not required (left screenshot).

Values entered on this screen are saved into the serial settings of the DS. Once set, they remain unchanged even after the DS is switched off. The serial port of the DS will always use these values unless temporary overriding parameters are received from the VSP (in the form of the on-the-fly commands- if you have enabled them on the previous step).

The screen with permanent serial port values is shown in two cases:

· You have disabled on-the-fly commands on the previous step of the Wizard. This means that the DS won't be aware of the serial parameters required by the application and will use the permanent values you are to set now.

· You have enabled on-the-fly commands, but the Wizard has decided earlier that the Routing Mode (RM) setting of the DS is to be either 2 (client) or 1 (server/client). This deserves an explanation- see below for details.

The empty screen is shown when on-the-fly commands are enabled and the Routing Mode (RM) setting of the DS is to be 0 (server). Follows is the explanation on why this is so.

When the "permanent" serial port parameters are relevant or irrelevant

When the DS is in the server Routing Mode its serial port is not opened until an incoming data connection is received from the network host (VSP in our case)*. When on-the-fly commands are enabled the VSP sends on-the-fly commands to the DS as soon as the VSP is opened**. Therefore, the serial port of the DS is configured with on-the-fly commands right when it is opened. This means, that the "permanent" values defined by the serial settings are never actually used.

It's a different story when the Routing Mode of the DS is server/client or client. In this case the serial port of the DS is opened right from the moment the DS is powered up*. This means, that the serial port is opened before the VSP is opened and the on-the-fly commands are sent to the DS. Therefore, there is a chance that the DS will receive some serial data before the serial port is configured by the VSP. This is why the parameters defined by the serial settings are not irrelevant***!

* This is described in the opened and closed states of the serial port topic.

** Unless the VSP is in the server routing mode but this cannot be so for the case in question: if the DS is in the server routing mode then the VSP has to be in the client or client/server mode!

*** Of course, when the VSP is opened it will still send the on-the-fly commands and the data received before that can simply be ignored by the application. In this case you can still say that it doesn't matter what the permanent settings of the serial port are.


Programming Inaccessible DS

If this screen is shown then you have specified on the target DS step step that the Device Server is not accessible from this PC. Now you have to decide how you will setup this DS.

There are two choices:

· Generate configuration script file and configure the Device Server later. The script file can later be fed into the Connection Wizard, possibly running on a different PC (see finishing remote job). Choose this option if you cannot physically bring the DS to this PC for programming. Input the path and filename for the script file and press Next.

· Configure the Device Server now via the serial port. Choose this option if you can temporary bring the DS to this PC for programming. Connect the serial port of the DS to the unused COM port of your PC (using WAS-1455 or similar cable), make sure the DS is powered up and press the setup button* (this will put the DS into the serial programming mode). Click Next to continue (the Wizard will read out current setting values of the DS).

Note:

Status LEDs of the DS are playing a serial programming mode pattern (shown on the left) when the serial port of the DS is in the serial programming mode (click here to see all available patterns).

* On EM100, EM120, EM200, EM202- pull the MD line low for at least 100ms.


Application-to-DS Link

This job is selected by choosing configure a Device Server for direct communications with an application on this PC from the list of available jobs.

When performing this job the Connection Wizard configures the DS of your choice to work with the "network" software application* on this PC. Use this job if you want to make your PC application communicate directly with the DS and the serial device behind it.

When working on this job the Wizard can only setup the DS side of the link. It is your responsibility to setup the software as needed (expected by the Wizard).

* I.e. an application that is capable of communications through the TCP/IP networks. If your application can only communicate through COM ports use the VSP-to-DS connection instead.


Target DS

On this step you select the DS that the application on this PC will be communicating with. Notice, that the Wizard can only setup the DS side of the link. It is your responsibility to correctly setup the PC application!

In most cases you complete this step as follows:

· Select Device Server is accessible from this PC.

· Click Select DS button and choose the DS from the list. The button brings up the dialog, similar to the main window of the DS Manager. In fact, it is the DS Manager, with the following two differences:

· There is an additional Select button. To select a particular DS single-click on the DS in the device list (in the auto-discovery or address book access mode) and press Select. Alternatively, you can double-click on the DS in the device list.

· The COM access mode is not available when the DS Manager is called from within Wizard. This is because you are choosing a network destination so the DS has to be selected from the list of devices, accessible through the network!

· Click Next.

This step provides a choice of several access options for the target DS- read additional info on accessing the DS for more information.

When you click Next the Wizard attempts to contact the target DS and verifies if this DS is local or remote. The DS of your choice must be available on the network, or the Wizard won't allow you to continue. Moreover, the IP-address of this DS must be reachable*. If everything is OK the Wizard reads out all current setting values of this DS.

What if the DS is not visible from the PC

If the PC and the DS are located on different network segments it may well be that the DS is not "visible" from this PC but the PC is visible from the DS. This is normal as many networks are not symmetrical. For example, if the PC has a public (real) IP-address and the DS is located on a firewalled network segment then the DS can connect to the PC (application) , but the PC (application) cannot connect to the DS.

To specify that the DS is not visible from this PC select the Device Server is not accessible from this PC option and click Next.

There are two implications of this choice:

· In this application-to-DS connection it is the DS that will always be connecting to the application, since the application cannot connect to the DS.

· The Wizard won't be able to setup the DS through the network (this is because it cannot "see" the DS). You will have a chance to setup this inaccessible DS through its serial port or through a temporary network connection. You will be given a choice to do this within current Wizard job or generate a configuration script and finish the setup later, using the finish remote job feature of the Connection Wizard.

* The DS Manager and the Connection Wizard have the ability to "see" local Device Servers even if the IP-address of these devices is unreachable (this is done by using broadcast communications- read about this here). The reason why the Wizard demands that the Device Server has a proper IP-address is because the PC application will have to establish a real data connection with this DS and that requires a reachable IP-address.


Additional Info on Accessing the DS

This topic provides additional information on the access options for the target DS.

The target DS can be selected from the list (using Select DS button) or its IP-address and access parameters can be input manually. The first option is usually more convenient and requires less manual input and decisions on your behalf.

Besides the IP (or MAC) you need to specify the access method and access port for this DS. Access method is the way the Wizard will access the DS in order to program it. Access port is the port to which the Wizard will send its programming commands. These options are not directly related to how the application will be accessing the DS, they just specify how the Wizard is going to access the DS.

There are two access methods:

· When out-of-band (UDP) access method is selected the Wizard communicates with the DS using command UDP datagrams sent to the command port 65535 of the DS. Out-of-band commands offer a primary way of network programming that requires no preliminary setup on the DS side. This access method is suitable for all local Device Servers. It will also work with remote Device Servers unless the UDP traffic is banned by the network routers (firewalls, etc).

· When inband (TCP) access method is selected the Wizard communicates with the DS by sending commands through the TCP connection established to the data port of the DS (this is the number defined by the Port Number (PN) setting of the DS). Inband (TCP) commands provide a secondary method of network programming that can be used in situations when out-of-band UDP access is impossible (for remote Device Servers). The downside is that a certain pre-programming must be done on the DS before it can be accessed using inband access method- read preparing the DS for inband access for step-by-step instructions.

When you select the DS from the address book (through the Select DS button) the Wizard copies the access method and access port from the address book entry.


Initiator of The Data Exchange

On this step you select which side of the application-to-DS connection will be the first to send the data.

Notice, that asking "who will be the first to send the data?" is not the same as asking "which side will be establishing the data connection to the other side?"*.

There are three choices:

· Your application. Select this option if it is the application software that will be sending the first data. This is typical for the kind of serial devices that we, as Tibbo, came to call "slave terminals". Such terminals communicate with the PC software using some sort of command-reply communication protocol and it is the PC that usually plays the role of a "master": the terminal won't send any data unless the PC sends a command first (and this is the "first data"!).

· Device Server. Select this option if it is the serial device that will be sending the first data. This is typical for the kind of serial devices that we call "scanners" (readers)**. This class of serial devices differs from "slave terminals" in that they send out the data spontaneously, without any prior prompt from the PC software.

· Any side. In some systems the data may first come from any side. For example, there are some "active terminals" out there that can send out the data spontaneously and at the same time respond to the commands from PC. Also choose this option if you are not sure which side of your system sends the data first.

* Although these two questions are connected- see how the Wizard decides which side open the connection.

** Meaning barcode scanners or magnetic card readers.


Netmask & Gateway for the DS

This step comes in two options: you are either requested to input the gateway and netmask information that the DS needs to connect to this PC (right screenshot) or you are shown a screen informing you that the entry of this data is not necessary (left screenshot).

The gateway and netmask need only be set when two conditions are observed:

· The DS may need to (or must) establish data connections to the PC (this is determined by the Wizard).

· The DS and the PC are located on different network segments (there is at least one router between the PC and the DS).

Setting gateway and netmask information for the DS that only accepts incoming connections is not necessary*. If the DS is local there are no routers between this DS and the PC, so the gateway and netmask are not necessary even if the DS has to connect to the PC.

How to set the gateway and netmask

There is no straight way of finding out what data to enter. You need to obtain this information from somebody with a knowledge of your network's topology. Here is one hint, though.

If the IP-address of the target DS is configured through DHCP (DHCP (DH) setting is 1 (enabled)), then the DHCP server might have configured this Device Server's gateway and netmask as well. When you reach this step of the Connection Wizard the Gateway IP-address and the Netmask fields are filled with the data from the Gateway IP-address (GI) and Netmask (NM) settings of the target DS**. This data may already be correct!

What if the PC is not visible from the DS

When the PC and the DS are located on different network segments it may well be that the PC is not "visible" from this DS. This is normal as many networks are not symmetrical. For example, if the DS has a public (real) IP-address and the PC is located on a firewalled network segment then the PC (application) can connect to the DS, but the DS cannot connect to the PC (application).

To provide for this situation the option box at the top of this step's screen allows you to specify that this PC is not accessible from the DS. Choose the option if this is so and if the option is available.

The option to specify that the PC is not accessible from the DS is disabled (not allowed to be chosen) when you have previously specified (at the target DS step) that the DS is not accessible from the PC. The reason is obvious: at least one side of the connection must be able to "see" the other side!

After you have completed this step the Wizard has enough information to decide which side of the application-to-DS link will be responsible for establishing the data connections.

* We found that some people hold a passionate belief that these parameters are necessary in any case. This is not true! If your network device doesn't have to establish outgoing connections you never have to bother about the gateway and netmask!

** Unless you have specified that "the DS is inaccessible through the network" at the target DS step of the Wizard, in which case the Wizard cannot obtain this information.


How the Wizard Decides Who Opens Connections

When you click Next on the netmask and gateway step the Wizard has enough information to decide which side of the application-to-DS connection will be responsible for establishing data connections with the other side.

In doing this, the Wizard decides on the future values of the Routing Mode (RM) and Connection Mode (CM) settings of the DS. With VSP-to-DS connections, the Wizard would also be able to set the routing and connection modes on the VSP side. For the application-to-DS connection, the Wizard can only setup the DS side. It is your responsibility to set the application side as expected by the Wizard. For the discussion below we will assume that the application also has "imaginary" routing and connection options, similar in function to the ones found in VSP. Here is what this means:

VSP properties | Corresponding expected application behavior
Server routing mode | Once the application is opened it is ready to accept incoming connections. The application never establishes outgoing connections.
Server/client routing mode | Once the application is opened it is ready to accept incoming connections and establish outgoing connections to the specified IP-address and port number (whichever happens first)
Client routing mode | The application only establishes outgoing connections to the specified IP-address and port number. Incoming connections are not accepted
On data connection mode | The application establishes an outgoing connection when it has the data to send (that is, if outgoing connections are allowed)
Immediate connection mode | The application establishes an outgoing connection as soon as it is started, even if there is no data to transmit (that is, if outgoing connections are allowed)

In general, the Wizard tries to follow the natural flow of data between the application and the serial device. In the initiator of the data exchange step you have already specified which side sends the data first, so the Wizard will have this side open a data connection to the other side as soon as the first data needs to be sent from this side of the connection.

For example, if you are dealing with the "scanner" type of serial device, then the first data is always sent by the serial device. Therefore, the Wizard will program the Routing Mode (RM) setting of the DS to "client". Consequently, the DS will be opening the data connections to the PC application so the application needs to be ready to accept those connections (in VSP terms this is the server routing mode).

Lines 1-3 of the following table illustrate what's just been said. Notice that the Connection Mode (CM) setting is always set to "on data". As the first data is received (by one side of the link) it triggers an attempt to open a data connection with the other side of the link:

 | Which side can "see" the other side of the connection | Which side sends the first data | Routing Mode on the appl**. | Connection Mode on the appl**. | Routing Mode on the DS | Connection Mode on the DS
1 | Both sides can see each other | Application | Client | On data | Server | ---
2 | Both sides can see each other | Serial device | Server | --- | Client (server/client) | On data
3 | Both sides can see each other | Any side | Server/client | On data | Server/client | On data
4 | Only PC can see the DS | Application | Client | On data | Server | ---
5 | Only PC can see the DS | Serial device | Client | Immediately | Server | ---
6 | Only PC can see the DS | Any side | Client | Immediately | Server | ---
7 | Only DS can see the PC | Application | Server | --- | Client | Immediately
8 | Only DS can see the PC | Serial device | Server | --- | Client | On data
9 | Only DS can see the PC | Any side | Server | --- | Client | Immediately

The situation becomes more complicated when only one side of the connection can "see" the other side. Consider the case in line 7 of the table. The application has to send the data first, but it cannot "see" the DS. Therefore, even when the application needs to transmit the data it will be unable to establish a connection to the DS!

The way out is to have the DS connect to the PC (application) as soon as the DS is powered (so, the Connection Mode (CM) setting is 0 (immediately)). This way, by the time the application needs to send the first data to the DS the connection is already established. This kind of connections are called "reverse".

A special comment should be made on line 2 of the table, where the Routing Mode on the DS is designated to be either "client" or "server/client". The Wizard chooses "client" if DS programming is effected using out-of-band access method (you have selected this on the target DS step of the Wizard). If inband access method was selected the Wizard will set the mode to "server/client". This is because choosing "client" would cause it DS to reject all incoming connections in the future and this means that you wouldn't be able to program the DS using inband access in the future!

* This is the case when you have specified that "the Device Server is not accessible from this PC" on the target DS step, or that "the PC is not accessible from this Device Server" on the netmask and gateway for the DS step of the Wizard.

** "Imaginary" options of the PC application.


Transport Protocol & Listening Ports

On this step you select the protocol that will be used for exchanging the data between the application and the DS. You also choose the listening port number on the side(s) of the link that will be receiving incoming connections from the other side.

In general, we recommend you to stick to the TCP/IP, unless the application requires that the UDP/IP protocol is used. Since the Wizard can only setup the transport protocol on the DS side of this connection, it is your responsibility to setup the application side accordingly.

There is one case when the UDP/IP selection is not available and the TCP protocol is pre-selected for you- this is when you have specified an inband access method on the target DS step of the Wizard. Since inband access requires a TCP/IP data connection with the DS you must use TCP/IP transport protocol!

Listening ports

This screen also provides an option of entering the port number on the listening side(s) of application-to-DS link. By now the Wizard has already decided which side opens the connections. Connecting side needs to know the number of the listening port on the other side. For example, if it is the PC application that will always be connecting to the DS, then you only have to specify the listening port on the DS side. Consequently, the listening port on the DS textbox will be enabled, and the listening port on the PC textbox will be disabled. If both sides will need to establish the connection, then you have to specify the listening ports on both sides too, and both textboxes will be active.

There is one case when the listening port on the DS side is fixed and pre-selected for you- this is when you have specified an inband access method for this DS. In this case you have already specified the listening port (as the access port) on the target DS step of the Wizard (listening port and the access port are the same for inband mode).

Once again, proper setup of the application side is your responsibility. For example, if you choose the listening port on the DS to be 1001 the Wizard will program this number into the Port Number (PN) setting on the DS automatically, and your job will be to set the destination port number on the application side to 1001. Likewise, if you choose the listening port on the application side to be 3500, then the Wizard will automatically set the Destination Port (DP) setting of the DS to 3500, but you need to make sure that the same listening number is actually selected in the application.

How the listening port numbers are chosen

You can choose any port numbers of your liking. The only limitations are:

· PC applications often have fixed destination and/or listening ports so the DS settings may need to be adjusted to suit the requirements of your application.

· Certain firewall or router setup may require you to use specific port numbers for communications between the application and the DS.

The DS can be adjusted to use any destination and local port numbers. The only limitation is that the Port Number (PN) setting cannot be programmed to 65535 (this is a special command port number).


Parameters for the Serial port of the DS

On this step you select communication parameters for the serial port of the DS.

Unlike with the VSP-to-DS link, the serial port parameters of the DS, involved in the application-to-DS link, cannot be adjusted via on-the-fly commands. You have to define fixed parameters that will be used by the DS at all times.


Programming an Inaccessible DS

If this screen is shown then you have specified on the target DS step step that the Device Server is not accessible from this PC. Now you have to decide how you will setup this DS.

There are two choices:

· Generate configuration script (left screenshot). The script file can later be fed into the Connection Wizard, possibly running on a different PC (see finishing remote job). Choose this option if you cannot physically bring the DS to this PC for programming. Input the path and filename for the script file (left screenshot) and press Next.

· Configure the DS through the serial port (right screenshot). Choose this option if you can temporary bring the DS to this PC for programming. Connect the serial port of the DS to the unused COM port of your PC (using WAS-1455 or similar cable), make sure the DS is powered up and press the setup button* (this will put the DS into the serial programming mode). Click Next to continue (the Wizard will read out current setting values of the DS).

Note:

Status LEDs of the DS are playing a serial programming mode pattern (shown on the left) when the serial port of the DS is in the serial programming mode (click here to see all available patterns).

* On EM100, EM120, EM200, EM202- pull the MD line low for at least 100ms.


DS-to-DS Link

This job is selected by choosing create a link between two Device Servers from the list of available jobs.

When performing this job the Connection Wizard configures two Device Servers of your choice to communicate with each other. This effectively creates a "virtual serial cable" that interconnects the serial ports of these two Device Servers. Not only the serial data, but also the state of the RTS, CTS, DTR, and DSR signals can be seamlessly transmitted across this virtual cable!

There are two possible applications for the DS-to-DS link:

· To interconnect two non-PC devices (shown on the diagram above).

· To interconnect a serial device with a non-Windows PC software. Tibbo Virtual Serial Ports can only work under Windows so if you have a case where you need to network-enable a system involving a non-Windows software (i.e. DOS, etc.) you can do this by using a second DS located on the PC side.

In this case the software still communicates through a real COM port, but the DS on the PC side connects this COM to the network. This is effectively the same kind of "virtual serial cable" connection. Device Servers do not know (nor care) what kind of serial devices are communicating through them.

To setup the DS-to-DS link through the Wizard you need to use a Windows PC the Wizard will run on (shown on both diagrams as "configuration" PC). Once the link is created this PC is no longer needed as it is not directly participating in the data link.

One limitation that the Wizard applies to the DS-to-DS link is that at least one of the Device Servers in the link must reside on the same network segment* as the configuration PC. The other DS may be located anywhere (be local or remote).

* I.e. there must be no routers (firewalls, etc.) between the configuration PC and the DS.


DS #1 (Must be Local)

On this step you select the first DS in the DS-to-DS link (it is called the "DS #1").

As explained earlier, the DS #1 must be local, i.e. it must be located on the same network segment as the PC on which this Wizard is running (DS #2 can be local or remote). Because of that, the accessibility option is fixed at Device Server is assessable from this network segment (if the DS is local it is definitely must be accessible).

Several access options that exist for the DS are also disabled because they are only necessary when you are dealing with the remote DS and the DS #1 cannot be remote.

The only editable option is the IP-address of the DS. You can input this IP-address manually or select the DS from the list:

· Click Select DS button and choose the DS from the list. The button brings up the dialog, similar to the main window of the DS Manager. In fact, it is the DS Manager, with the following two differences:

· There is an additional Select button. To select a particular DS single-click on the DS in the device list (in the auto-discovery access mode) and press Select. Alternatively, you can double-click on the DS in the device list.

· The address book and COM access mode are not available. The DS #1 must be local and so you must be able to find it in the auto-discovery mode.

· Click Next.

When you click Next the Wizard attempts to contact the target DS and makes sure that the DS is local and reachable*. If everything is OK the Wizard reads out all current setting values of this DS.

* The DS Manager and the Connection Wizard have the ability to "see" local Device Servers even if the IP-address of these devices is unreachable (this is done by using broadcast communications- read about this here). The reason why the Wizard demands that the DS #1 has a proper IP-address is because the DS #2 will have to establish a real data connection to this DS and that requires a reachable IP-address.


DS #2 (Can be Local or Remote)

On this step you select the second DS in the DS-to-DS link (it is called the "DS #2").

The DS #2 can be located anywhere, i.e. be local or remote.

In most cases you complete this step as follows:

· Select Device Server is accessible from this network segment.

· Click Select DS button and choose the DS from the list. The button brings up the dialog, similar to the main window of the DS Manager. In fact, it is the DS Manager, with the following two differences:

· There is an additional Select button. To select a particular DS single-click on the DS in the device list (in the auto-discovery or address book access mode) and press Select. Alternatively, you can double-click on the DS in the device list.

· The COM access mode is not available when the DS Manager is called from within Wizard. This is because you are choosing a network destination for the VSP so the DS has to be selected from the list of devices, accessible through the network!

· Click Next.

This step provides a choice of several access options for the DS #2- read additional info on accessing the DS for more information.

When you click Next the Wizard attempts to contact the target DS and verifies if this DS is local or remote. The DS of your choice must be available on the network, or the Wizard won't allow you to continue. Moreover, the IP-address of this DS must be reachable*. If everything is OK the Wizard reads out all current setting values of this DS.

What if the DS #2 is not visible from the PC

If the PC and the DS #2 are located on different network segments it may well be that the DS #2 is not "visible" from this network segment (and hence, from the DS #1) but the DS#1 is visible from the DS #2. This is normal as many networks are not symmetrical. For example, if the DS #1 has a public (real) IP-address and the DS #2 is located on a firewalled network segment then the DS #2 can connect to the DS #1, but the DS#1 (and this PC) cannot connect to the DS #2.

To specify that the DS is not visible from this PC select the Device Server is not accessible from this network segment option and click Next.

There are two implications of this choice:

· In this DS-to-DS connection it is the DS #2 that will always be connecting to the DS #1, since DS #1 cannot connect to the DS #2.

· The Wizard won't be able to setup the DS through the network (this is because it cannot "see" the DS). You will have a chance to setup this inaccessible DS through its serial port or through a temporary network connection. You will be given a choice to do this within current Wizard job or generate a configuration script and finish the setup later, using the finish remote job feature of the Connection Wizard.

* The DS Manager and the Connection Wizard have the ability to "see" local Device Servers even if the IP-address of these devices is unreachable (this is done by using broadcast communications- read about this here). The reason why the Wizard demands that the DS #2 has a proper IP-address is because the DS #1 will probably have to establish a real data connection with this DS and that requires a reachable IP-address.


Additional Info on Accessing the DS

This topic provides additional information on the access options for the DS #2.

The DS #2 can be selected from the list (using Select DS button) or its IP-address and access parameters can be input manually. The first option is usually more convenient and requires less manual input and decisions on your behalf.

Besides the IP (or MAC) you need to specify the access method and access port for this DS. Access method is the way the Wizard will access the DS #2 in order to program it. Access port is the port to which the Wizard will send its programming commands. These options are not directly related to how the application will be accessing the DS, they just specify how the Wizard is going to access the DS.

There are two access methods:

· When out-of-band (UDP) access method is selected the Wizard communicates with the DS using command UDP datagrams sent to the command port 65535 of the DS. Out-of-band commands offer a primary way of network programming that requires no preliminary setup on the DS side. This access method is suitable for all local Device Servers. It will also work with remote Device Servers unless the UDP traffic is banned by the network routers (firewalls, etc).

· When inband (TCP) access method is selected the Wizard communicates with the DS by sending commands through the TCP connection established to the data port of the DS (this is the number defined by the Port Number (PN) setting of the DS). Inband (TCP) commands provide a secondary method of network programming that can be used in situations when out-of-band UDP access is impossible (for remote Device Servers). The downside is that a certain pre-programming must be done on the DS before it can be accessed using inband access method- read preparing the DS for inband access for step-by-step instructions.

Inband access method is usually utilized when out-of-band access is not possible (i.e. because of restrictions on the network). To allow future programming of the DS #2 the Wizard will preserve inband access in the DS #2 and this means that the Inband (IB) setting of the DS will be kept at 1 (enabled). Because in this mode ASCII characters with code 255 (FF) are handled in a special way the Inband (IB) setting of the DS #1 will also be set to 1 (enabled). This will ensure correct transmission of FF characters between the Device Servers.

When you select the DS #2 from the address book (through the Select DS button) the Wizard copies the access method and access port from the address book entry.


Initiator of the Data Exchange

On this step you select which side of the DS-to-DS connection will be the first to send the data.

Notice, that asking "who will be the first to send the data?" is not the same as asking "which side will be establishing the data connection to the other side?"* When making your choice imagine that there is no network at all and that two serial devices are interconnected via the serial cable. Now, which side sends the data first?

There are three choices:

· Device Server #1. Select this option if the first data will be sent by the serial device connected to the DS #1.

· Device Server #2. Select this option if the first data will be sent by the serial device connected to the DS #2.

· Any side. In some systems the first data may come from any side. Also choose this option if you are not sure which side of your system sends the data first.

* Although these two questions are connected- see how the Wizard decides which side open the connection.


Netmask & Gateway for the DS #1

This step comes in two options: you are either requested to input the gateway and netmask information that the DS #1 needs to connect to the DS #2 (right screenshot) or you are shown a screen informing you that the entry of this data is not necessary (left screenshot).

The gateway and netmask need only be set when two conditions are observed:

· The DS #1 may need to (or must) establish data connections to the DS #2.

· The DS #1 and the DS #2 are located on different network segments (there is at least one router between them).

Setting gateway and netmask information for the DS that only accepts incoming connections is not necessary*. If both Device Servers are located on the same network segment, the gateway and netmask are not necessary even if the DS #1 has to connect to the DS #2.

How to set the gateway and netmask

Since the DS #1 is located on the same network segment with this PC the gateway and netmask values that need to be set for this DS are probably the same as the ones set for the PC. Clicking Set as on the PC button copies the gateway and netmask information from the PC.

If the IP-address of the DS #1 is configured through DHCP (DHCP (DH) setting is 1 (enabled)), then the DHCP server might have configured this Device Server's gateway and netmask as well. When you reach this step of the Connection Wizard the Gateway IP-address and the Netmask fields are filled with the data from the Gateway IP-address (GI) and Netmask (NM) settings of the target DS. This data may already be correct!

What if the DS #2 is not visible from the DS #1

When the DS #1 and the DS #2 are located on different network segments it may well be that the DS #2 is not "visible" from the DS #1. This is normal as many networks are not symmetrical. Since the DS #1 and this PC are located on the same network segment the visibility of the DS #2 is the same for the PC and the DS #1. This is why the options at the top of the screen are disabled and cannot be changed:

· The DS #2 is accessible from the DS #1 is selected if you have specified that the Device Server #2 is accessible from this network segment on the DS #2 step of the Wizard.

· The DS #1 is not accessible from the DS #1 is selected if you have specified that the Device Server is not accessible from this network segment on the DS #2 step of the Wizard.

* We found that some people hold a passionate belief that these parameters are necessary in any case. This is not true! If your network device doesn't have to establish outgoing connections you never have to bother about the gateway and netmask!


Netmask & Gateway for the DS #2

This step comes in two options: you are either requested to input the gateway and netmask information that the DS #2 needs to connect to the DS #1 (right screenshot) or you are shown a screen informing you that the entry of this data is not necessary (left screenshot).

The gateway and netmask need only be set when two conditions are observed:

· The DS #2 may need to (or must) establish data connections to the DS #1.

· The DS #2 and the DS #1 are located on different network segments (there is at least one router between them).

Setting gateway and netmask information for the DS that only accepts incoming connections is not necessary*. If both Device Servers are on the same network segment, the gateway and netmask are not necessary even if the DS #2 has to connect to the DS #1.

How to set the gateway and netmask

There is no straight way of finding out what data to enter. You need to obtain this information from somebody with a knowledge of your network's topology. Here is one hint, though.

If the IP-address of the DS #2 is configured through DHCP (DHCP (DH) setting is 1 (enabled)), then the DHCP server might have configured this Device Server's gateway and netmask as well. When you reach this step of the Connection Wizard the Gateway IP-address and the Netmask fields are filled with the data from the Gateway IP-address (GI) and Netmask (NM) settings of the DS #2**. This data may already be correct!

What if the DS #1 is not visible from the DS #2

When two Device Servers are located on different network segments it may well be that the DS #1 is not "visible" from the DS #2. This is normal as many networks are not symmetrical. For example, if the DS #2 has a public (real) IP-address and the DS #1 is located on a firewalled network segment then the DS #1 can connect to the DS #2, but the DS #2 cannot connect to the DS #1.

To provide for this situation the option box at the top of this step's screen allows you to specify that the DS #1 is not accessible from the DS #2. Choose the option if this is so and if the option is available.

The option to specify that the DS #1 is not accessible from the DS #2 is disabled (not allowed to be chosen) when you have previously specified (at the DS #2 step) that the DS #2 is not accessible from the DS #1. The reason is obvious: at least one side of the connection must be able to "see" the other side!

After you have completed this step the Wizard has enough information to decide which side of the DS-to-DS link will be responsible for establishing the data connections.

* We found that some people hold a passionate belief that these parameters are necessary in any case. This is not true! If your network device doesn't have to establish outgoing connections you never have to bother about the gateway and netmask!

** Unless you have specified that "the Device Server is not accessible from this network segment" at the DS #2 step of the Wizard, in which case the Wizard cannot obtain this information.


How the Wizard Decides Who Opens the Connection

When you click Next on the netmask and gateway for the DS #2 step the Wizard has enough information to decide which side of the DS-to-DS connection will be responsible for establishing data connections with the other side.

In doing this, the Wizard decides on the future values of the Routing Mode (RM) and Connection Mode (CM) settings of both Device Servers.

In general, the Wizard tries to follow the natural flow of data between the Device Servers. In the initiator of the data exchange step you have already specified which side sends the data first, so the Wizard will have this side open a data connection to the other side as soon as the first data needs to be sent.

For example, if the first data is supposed to come from the DS #1 side the Wizard will program the Routing Mode of the DS #1 to 2 (client) and the Routing Mode of the DS #2 to 0 (server).

Lines 1-3 of the following table illustrate what's just been said. Notice that the Connection Mode (CM) setting is always set to "on data". As the first data is received (by one side of the link) it triggers an attempt to open a data connection with the other side of the link:

 | Which side can "see" the other side of the connection | Which side sends the first data | Routing Mode on the DS #1 | Connection Mode on the DS #1 | Routing Mode on the DS #2 | Connection Mode on the DS #2
1 | Both sides can see each other | DS #1 | Client | On data | Server | ---
2 | Both sides can see each other | DS #2 | Server | --- | Client (server/client) | On data
3 | Both sides can see each other | Any side | Server/client | On data | Server/client | On data
4 | Only DS #1 can see the DS #2 | DS #1 | Client | On data | Server | ---
5 | Only DS #1 can see the DS #2 | DS #2 | Client | Immediately | Server | ---
6 | Only DS #1 can see the DS #2 | Any side | Client | Immediately | Server | ---
7 | Only DS #2 can see the DS #1 | DS #1 | Server | --- | Client | Immediately
8 | Only DS #2 can see the DS #1 | DS #2 | Server | --- | Client | On data
9 | Only DS #2 can see the DS #1 | Any side | Server | --- | Client | Immediately

The situation becomes more complicated when only one side of the connection can "see" the other side*. Consider the case in line 5 of the table. The DS #2 has to send the data first, but it cannot "see" the DS #1. Therefore, even when the DS #2 receives the first data into its serial port it will be unable to establish a connection to the DS #1 and send this data!

The way out is to have the DS #1 connect to the DS #2 as soon as the DS #1 is powered up (so, the Connection Mode (CM) setting of this DS is to be 0 (immediately)). This way, by the time the DS #2 needs to send the first data to the DS #1 the connection is already established. This kind of connections are called "reverse".

A special comment should be made on line 2 of the table, where the Routing Mode on the DS #2 is designated to be either "client" or "server/client". The Wizard chooses "client" if DS #2 programming is effected using out-of-band access method (you have selected this on the DS #2 step of the Wizard). If inband access method was selected the Wizard will set the mode to "server/client". This is because choosing "client" would cause it DS to reject all incoming connections in the future and this means that you wouldn't be able to program the DS using inband access in the future!

* This is the case when you have specified that the "Device Server is not accessible from this network segment" on the DS #2 step, or that the "DS #1 is not accessible from DS #2" on the netmask and gateway for the DS #2 step of the Wizard.


Transport Protocol & Listening Ports

On this step you select the protocol that will be used for exchanging the data between the Device Servers. You also choose the listening port number of the side(s) of the link that will be receiving incoming connections.

In general, we recommend you to stick to the TCP/IP, unless you have a good reason (which is very rare!) why you have to use UDP/IP protocol.

There is one case when the UDP/IP selection is not available and the TCP protocol is pre-selected for you- this is when you have specified an inband access method on the DS #2 step of the Wizard. Since inband access requires a TCP/IP data connection with the DS you must use TCP/IP transport protocol, or the configuration PC won't be able to access the DS #2 in the future.

Listening ports

This screen also provides an option of entering the port number on the listening side(s) of the DS-to-DS link. By now the Wizard has already decided which side opens the connections. Connecting side needs to know the number of the listening port on the other side. For example, if it is the DS #1 that will always be connecting to the DS #2, then you only have to specify the listening port on the DS #1 side. Consequently, the listening port on the DS #2 textbox will be enabled, and the listening port on the DS #1 textbox will be disabled. If both sides will need to establish the connection, then you have to specify the listening ports on both sides too, and both textboxes will be active.

There is one case when the listening port on the DS #2 side is fixed and pre-selected for you- this is when you have specified an inband access method for this DS. In this case you have already specified the listening port (as the access port) on the DS #2 step of the Wizard (listening port and the access port are the same for inband mode).

Once the listening port on one side is known, the Wizard sets the destination port on the other side accordingly. If the DS #1 will need to connect to the DS #2 the Destination Port (DP) setting on the DS #1 will be the same, as the value of the Port Number (PN) setting on the DS #2 side. Likewise, if the DS #2 will have to connect to the DS #1 the Destination Port (DP) setting on the DS #2 will be the same as the Port Number (PN) setting on the DS #1.
ration for both connection directions, so the Destination Port on one side will point at the Porn Number on the other side.

How the listening port numbers are chosen

You can choose any port numbers of your liking, except the 65535. This is because 65535 is a special command port. What the Wizard is showing you by default is the default value of the Port Number (PN) setting of the DS on the receiving end of the connection (1001).

The only reason to change suggested port numbers is if your network's firewall bans most of the traffic so only specific ports are opened for communications. In this case you may need to adjust the port numbers to the requirements of your network.


Remote Exchange for RTS, CTS, DTR, DSR

On this step you select whether the status of RTS, CTS, DTR, and DSR lines will be exchanged between the Device Servers.

When this feature is enabled, a change in the state of the CTS (DSR) input on one DS causes a corresponding change on the RTS (DTR) output of the other DS. In effect, this achieves compete emulation of the serial cable over the network: not only the serial data is seamlessly transmitted between the serial ports of two Device Servers, but also the control lines appear to be interconnected.

Exchange of signal states is enabled separately for the RTS/CTS and DTR/DSR signal pairs (there are two checkboxes- exchange the state of RTS and CTS lines and exchange the state of DTR and DSR lines).

If you enable the status exchange for the RTS and CTS lines you won't be able to enable RTS/CTS flow control for the serial ports of the DS (on parameters for the serial port of the DS #1 and parameters for the serial port of the DS #2 Wizard steps.

Control line status exchange and the connection mode of the DS

Exchange of the control line states is done through Notification (J) Messages sent between the Device Servers. Notification messages are sent only when the data connection is already established. This means that if there is no data connection between the Device Servers remote exchange of control line states doesn't work too. This may be a problem on some serial system that may need to exchange the state of control lines even before any data is sent.

To avoid this problem the Wizard will program the Connection Mode (CM) setting of one of the Device Servers to 0 (connect immediately) whenever control line status exchange is enabled for at least one of the signal pairs (RTS/CTS or DTR/DSR). "Connect immediately" option makes the DS establish a data connection with its destination as soon as this DS is switched on. Connection is then maintained at all times and control line status exchange will also work at all times, even when no data is transmitted across the serial connection.

Notice, that the decision on the Connection Mode of both Device Servers has already been taken before and the Wizard might have already decided that "connect immediately" option must be enabled on one of the Device Servers (this is needed for "reverse" connections). If this is so then the "connect immediately" option will stay, no matter whether the control line status exchange is enabled on this step or not.

If the Wizard haven't previously decided that the "connect immediately" option is necessary for one of the Device Servers and you have opted to enable control line status exchange for at least one signal pair (RTS/CTS or DTR/DSR) then the Wizard will decide that the Connection Mode (CM) setting of the DS #1 is to be 0 (connect immediately).


Parameters for the Serial Port of the DS #1

On this step you select communication parameters for the serial port of the DS #1.

Unlike with the VSP-to-DS link, the serial port parameters of the DS, involved in the DS-to-DS link, cannot be adjusted via on-the-fly commands. You have to define fixed parameters that will be used by this DS at all times.

If you have previously enabled status exchange for the RTS/CTS signal pair then the RTS/CTS flow control option will be pre-set and fixed at disabled or remote. This is because the remote exchange and "local" flow control are mutually exclusive options.


Parameters for the Serial Port of the DS #2

On this step you select communication parameters for the serial port of the DS #2.

Unlike with the VSP-to-DS link, the serial port parameters of the DS, involved in the DS-to-DS link, cannot be adjusted via on-the-fly commands. You have to define fixed parameters that will be used by this DS at all times.

If you have previously enabled status exchange for the RTS/CTS signal pair then the RTS/CTS flow control option will be pre-set and fixed at disabled or remote. This is because the remote exchange and "local" flow control are mutually exclusive options.


Programming an Inaccessible DS

If this screen is shown then you have specified on the DS #2 step that the Device Server is not accessible from this network segment. Now you have to decide how you will setup this DS.

There are two choices:

· Generate configuration script (left screenshot). The script file can later be fed into the Connection Wizard, possibly running on a different PC (see finishing remote job). Choose this option if you cannot physically bring the DS to this PC for programming. Input the path and filename for the script file (left screenshot) and press Next.

· Configure the DS through the serial port (right screenshot). Choose this option if you can temporary bring the DS to this PC for programming. Connect the serial port of the DS to the unused COM port of your PC (with the WAS-1455 or similar cable), make sure the DS is powered up and press the setup button* (this will put the DS into the serial programming mode). Click Next to continue (the Wizard will read out current setting values of the DS and proceed to the next step).

Note:

Status LEDs of the DS are playing a serial programming mode pattern (shown on the left) when the serial port of the DS is in the serial programming mode (click here to see all available patterns).

* On EM100, EM120, EM200, EM202- pull the MD line low for at least 100ms.


Finishing a Remote Job

This job is selected by choosing "Finish remote job" from the list of available jobs. This feature allows you to finish the programming of the DS that was marked as inaccessible from the "programming" PC when running one of the three connection jobs.

Inaccessibility of the DS from the "programming" PC is not an uncommon situation in wide-area networks (WANs). Such WANs are often not symmetrical i.e. only one side of the data link can "see" the other side. For example, in the VSP-to-DS link the DS may be able to "see" (and connect to) the PC (VSP) but the PC (VSP) won't be able to "see" the DS. The Wizard easily deals with this kind of networks by correctly identifying which side of the link will be responsible for establishing data connections with the other side.

The problem, however, is that if the DS is not visible from the PC, then the Wizard cannot configure it through the network as well! The way out is either to program the DS via its serial port immediately or generate configuration script file that can be used later (you have been offered this choice on the programming inaccessible DS step* of the Wizard). "Later" programming of the DS is done by choosing Finish remote job on the Wizard job step of the Wizard.


Programming Method for the DS

On this screen you select how the Wizard will program the DS.

There are two options to choose from:

· Through the serial port (right screenshot). Choose this option if you can temporary bring the DS to this PC for programming. Connect the serial port of the DS to the unused COM port of your PC (with the WAS-1455 or similar cable), make sure the DS is powered up and press the setup button* (this will put the DS into the serial programming mode). Click Next to continue (the Wizard will read out current setting values of the DS and proceed to the next step).

Status LEDs of the DS are playing a serial programming mode pattern (shown on the left) when the serial port of the DS is in the serial programming mode (click here to see all available patterns).

· Through a temporary network connection (left screenshot). Choose this option if this PC resides on the same network segment with the DS or if you can temporarily connect the DS to the same network segment with this PC. In any case the DS and the PC must be on the same network segment.

Programming the DS through a temporary network connection

Since the DS has to be local the access options are disabled because they are only necessary when you are dealing with the remote DS.

The only editable option is the IP-address of the DS. You can input this IP-address manually or select the DS from the list:

· Click Select DS button and choose the DS from the list. The button brings up the dialog, similar to the main window of the DS Manager. In fact, it is the DS Manager, with the following two differences:

· There is an additional Select button. To select a particular DS single-click on the DS in the device list (in the auto-discovery access mode) and press Select. Alternatively, you can double-click on the DS in the device list.

· The address book and COM access mode are not available. The DS #1 must be local and so you must be able to find it in the auto-discovery mode.

· Click Next.

When you click Next the Wizard attempts to contact the target DS. If everything is OK the Wizard reads out all current setting values of this DS.

* On EM100, EM120, EM200, EM202- pull the MD line low for at least 100ms.


Configuration Script File

On this screen you choose the configuration script file that will be used to setup the DS.

Browse to a file of your choice and click Next.


Reviewing Setup Details

On this step you can review the setup this Wizard is about to apply to both sides of the connection. There is nothing to select or decide on here- the step is provided for your information only. Screenshot below shows the configuration of the VSP and the target DS for the VSP-to-DS link.

Once you click Next the Wizard starts configuring the link.


Final Screen

If you got to this screen then this means that the Wizard has successfully configured your connection. Clicking on the internet-style links in the middle of the screen opens configuration dialogs for the "participants" of this connection.

For example, if you've just finished the VSP-to-DS job then you will see two links as shown on the screenshot above. The first one opens the VSP properties dialog, the second one- DS settings dialog. This provides a comfortable way of reviewing the setup and making changes (if necessary) right from inside the Wizard.

Click Finish if you want to close the Wizard. Click Restart to run another Wizard job.


Warnings and Messages

This reference section contains additional information on the warning and error messages displayed by the Connection Wizard.


Inband Access for Local DS

Description

Message text: It makes no sense to use inband (TCP) access method for local Device Servers. Do you still wish the Connection Wizard to use it?

Details

This message was displayed because the Connection Wizard has determined that the DS you've specified is local (i.e. located on the same network segment as this PC) yet you have opted to program this DS using inband (TCP) access method.

The primary method of programming Device Servers is by using out-of-band (UDP) access method. This method always works and should be used for all local Device Servers. Inband programming is meant as an alternative method for remote Device Servers that cannot be accessed using out-of-band method.


MAC-->IP Mapping Advised

Description

Message text: It is recommended to use the MAC --> IP mapping option because this Device Server is running with DHCP enabled and its IP-address can change in the future. Do you still wish to reference this DS by its IP-address?

Details

MAC-->IP mapping option was created as a means to avoid communication problems with Device Servers that run with DHCP (DH) setting programmed to 1 (enabled). The IP-address of such Device Servers is configured by the DHCP server and there is no guarantee that this IP-address won't change in the future. When this happens the VSP won't be able to communicate with the DS since the target IP-address specified for this VSP will no longer belong to this DS.

The solution is to reference the DS by its MAC-address, which is done by enabling the MAC-->IP mapping option. More on the subject can be found here: additional info on accessing the DS.

If you choose to not enable the mapping the data connection will work, but only until the DHCP server assigns a different IP-address to the DS.


DS #1 Must be Local

Description

Message text: Device Server #1 must be local (located on the same network segment with this PC)

Details

This is a limitation imposed by the Connection Wizard. When you are creating a link between two Device Servers the Wizard requires that at least one of the Servers is located on the same network segment as the PC on which the Wizard is running. Another DS may be local or remote.


Non-zero Port Number Required

Description

Message text: Listening port number cannot be zero

Details

When you choose a port number for the listening port on the VSP side you can input any number in the 1-65535 range. Port 0 is a special number that instructs the PC to choose an actual port automatically. Since the port number of the listening port must be fixed and known you are not allowed to input "0".


Port is in Use

Description

Message text: This port is in use. Choose another port number

Details

A port cannot be used by several applications simultaneously. This message means that the port is already opened by another application (possibly, another VSP!). Select a different port number and try again.


VSP is Opened by Another Application

Description

Message text: This VSP is currently opened by another application. Close this application first to allow the Wizard to change VSP properties

Details

When the VSP is opened by another application its properties are locked and cannot be changed.


Different IP-address Required

Description

Message text: You cannot select the same Device Server twice

Details

This message is displayed in the cause of the DS-to-DS connection job when you select the same DS on both DS #1 and DS #2 steps of the Wizard.


Unable to Find Setting Description File

Description

Message text: Unable to find serial settings definition file (wizserial.sdf)

Details

Wizserial.sdf contains the list of settings related to the serial port of the DS. During the installation this file is copied into the /SDF folder inside the target installation folder of the Device Server Toolkit (DST). This message indicates that there is no such file in the /SDF folder. This problem can be corrected by reinstalling the software.


Invalid IP-address

Description

Message text: You cannot select this Device Server because its IP-address is unreachable

Details

This message is displayed when the Connection Wizard has determined that local DS of your choice cannot be communicated with using normal IP-addressing.

As explained in broadcast access, a local Device Server can be accessed for programming even if its IP-address is not configured properly. Therefore, the Connection Wizard itself would be able to access and program any local Device Server, even if the IP-address of this DS is unreachable. Data communications with the DS, however, require the IP-address to be reachable. For example, the VSP won't be able to connect to the DS with a "wrong" IP-address. This is why the Wizard demands that you assign a proper IP-address to the DS before continuing with the connection job.

There are several reasons why the IP-address of the Device Server may (appear to) be unreachable. See troubleshooting (auto-discovery mode) for more information.


The DS is Not Local

Description

Message text: This Device Server is not local. Is this correct?

Details

This message means that the Wizard has verified if the target Device Server is located on the same network segment with this PC and has determined that the DS is not local, i.e. located on some other network segment and there is at least one router (firewall, bridge, etc.) between this PC and the DS.

Understanding whether the target DS is local or remote is important for several Wizard steps that will follow.

If you believe that the DS is actually local press Retry to make the Wizard re-check the location of the DS.


Avoid Data Characters with ASCII code FF

Avoid FF

Description

Message text: You must make sure that your application won't send any characters with ASCII code 255 (FF).

Details

This message is displayed when you have specified inband access method for the target DS. Inband access method is usually utilized when out-of-band access is not possible (i.e. because of restrictions on the network). To allow future programming of the target DS the Wizard will preserve inband access in the DS and this means that the Inband (IB) setting of the DS will be kept at 1 (enabled).

When the Inband (IB) setting of the DS is at 1 (enabled) the DS can accept commands sent by the remote host across the data connection and ASCII character with code 255 (FF Hex) is used as an "escape" character that signifies the beginning of a command and two FF characters need to be sent to transmit one data FF character (see inband programming for details).

If your application sends any FF characters the DS will interpret this as a beginning of an inband command, which is obviously a problem as all subsequent data will not be routed to the serial port of the DS. There are three solutions to this problem:

· Find a way to program the DS using out-of-band access method. In this case the Wizard will disable inband commands on the DS side and all FF characters will be interpreted by the DS in a "normal" way.

· Find a way to avoid sending ASCII characters with code FF between your application and the DS (your serial device).

· Alter how your application handles all FF characters in a way compatible with the inband mode. This means that:

· Whenever your application needs to send ASCII character FF it actually sends two consecutive FF characters;

· Whenever your application receives two FF characters it interprets this as a single data character with code FF.


Unable to Send a Broadcast

Description

Message text: Unable to send an auto-discovery broadcast because a local port from which this broadcast packet is supposed to be sent is currently in use by another program

Details

After you have selected a particular DS in the Connection Wizard the latter attempts to detect whether this DS is local or remote. This is done by sending an Echo (X) command as UDP broadcast. Only locally attached Device Servers will receive the broadcast, as broadcast packets cannot pass through the routers. Therefore, if the DS you have selected replies to the broadcast then this DS is local, otherwise it is remote.

This message means that the Wizard is unable to send the broadcast because local port from which the broadcast is supposed to be sent is currently opened by some other program.

This situation is extremely rare. If you encounter it please contact Tibbo for instructions on how to change the port from which the Wizard is sending the broadcasts! By default, the port number used for the purpose is 65534.


DST Revision History

This topic briefly describes DST software genesis from V3.56 (considered to be the "baseline" version for this revision history). This log is provided for your reference only; Tibbo is not obliged to elaborate on or explain detailed meaning of any item listed below.

----------
Release V3.6.6 [the latest published and documented BETA-version]

· New feature in VSP Manager. The Manager is now based on a COM object. You can interact with this object from within your application software. This provides a way for a full control programmatic control over creation, setup, and deletion of Virtual Serial Ports.

· New feature: additional options for serial (port control) lines CTS, DSR, and DCD (see serial lines tab).

· New feature: default serial property page (see default serial settings tab).

· Bug correction in VSPD. In previous VSPD versions some special characters (such as XOFF, ESC) when sent by a DOS-based program (running under Windows NT/2000/XP) were incorrectly handled by the VSP. The problem has now been corrected.

· Bug correction: VSP properties could not be opened from within Windows Device Manager. This problem has now been corrected. Under Windows98 you will see default serial property page only. Under Windows NT/2000/XP you will see all VSP properties- just like with VSP Manager.

· Several other minor bugs and problems have been corrected.

----------
Release V3.56 [baseline for this revision history]


Virtual Serial Port Driver for Linux (VSPDL)

Virtual Serial Port Driver for LINUX (VSPDL) powers Virtual Serial Ports (VSPs) that emulate "real" serial ports under LINUX OS.

The VSPDL is an "engine" that powers Virtual Serial Ports (VSPs). To any LINUX application the VSP "looks and feels" just like a "normal" serial port. In reality, the VSP transparently reroutes all data sent by the application to the Tibbo Device Server ("DS") and the serial device behind it ("attached serial device"). Likewise, all the data sent by the serial device is received by the DS and routed to the VSP, which, in turn, passes this data to the application. Both the software application on the PC and the serial device communicate with each other just as if they were interconnected by a "normal" serial cable, without knowing that there is a network in between. This allows you to network-enable your existing serial system without changing the serial device itself or its PC software.

VSPDL operation is defined by configuration file named vspd.conf. This manual explains the features of the VSPDL through the structure and parameters of the vspd.conf.


How VSP Works

When designing the VSPDL we have attempted to emulate the work of a standard serial port as closely as possible. All system calls supported by the serial port driver were carefully ported into the VSPDL and the behavior of the VSPs closely mimics that of "real" serial ports.

Shown above is a VSP block diagram:

· Serial interface presents an application interface, compatible with the standard serial port driver. LINUX applications are not able to tell the difference between a VSP and a "real" COM port.

· TX and RX buffers are used to pass the data between the application and the DS.

· Network interface communicates (through the TCP/IP network) with the target DS. The VSP transparently establishes and accepts data connections with/from the DS as needed.

· On-the-fly logic (when enabled) is responsible for adjusting communications parameters of the serial port on the DS to the requirements of the application. For example, if the application wants the serial port to run at 19200 bps a special on-the-fly command will be sent to the DS telling it to change the serial port baudrate to 19200. Thus, the DS serial port functions just like the serial port and the PC!

· Configuration file (vspd.conf) define different aspects of VSPDL operation.


VSPDL Device Files

Two types of device files are created by the VSPDL:

· /dev/vspsn are virtual serial port device files (n is the port number, so actual names look like this: /vsps0, /vsps1, etc.). These are the files that your "serial" application should open for input/output

· /dev/vspdn or /dev/vsp/vspdn (depending on your LINUX kernel version) are system files created by the VSPDL for its internal needs (n is the port number, so actual names look like this: /vsps0, /vsps1, etc.). Do not attempt to access these files.


Installation

The VSPLD is supplies in four different versions:

· Statically linked executable, gzipped TAR archive.

· Dynamically linked executable, gzipped TAR archive.

· Statically linked executable, RPM package.

· Dynamically linked executable, RPM package.

To install statically linked version you will need the following:

· LINUX system (kernel 2.2.x-2.6.x).

· GNU C compiler.

· Linux kernel headers/sources of the Linux kernel you are running now.

· binutils-2.7.0 or above.

· make-3.74 or above.

· bash

To install dynamically linked version you will need the following:

· LINUX system (kernel 2.2.x-2.6.x).

· GNU C compiler.

· Linux kernel headers/sources of the Linux kernel you are running now.

· make-3.74 or above.

· binutils-2.7.0 or above.

· bash

· libc.so.6

· libexpat.so.0

· libgcc_s.so.1

· libm.so.6

· libstdc++.so.5

Further, you will need either

· gunzip-1.2.4 or above to process TAR archive, or

· RPM tool of your choice to process RPM package.

The Virtual Serial Port Driver for LINUX (VSPDL) distribution includes the following:

· VSPModule - Linux kernel module that creates Virtual Serial Ports (VSPs) on your system (in lib/* of your distribution).

· VSPDaemon - interacts with the VSPModule, facilitates data transfers between the VSPs and the network (in sbin/* of your distribution).

· Documentation - current documentation set in HTML format (in man/* of your distribution).

· Sample configuration files (in etc/* of your distribution).

· VSPModule/VSPDaemon startup scripts ( in bin/vspm, bin/vspd of your distribution).

To install from TAR archive:

· Login from console as a superuser (root).

· Copy the TAR archive into a temporary directory (i.e. /root/vsptmp):
· #mkdir /root/vsptmp
· #cp ./vspd-1.00.tar.gz /root/vsptmp
· #cd /root/vsptmp

· Unpack the TAR archive and go to the destination directory:
· #tar xvf ./vspd-1.00.tar.gz -z
· #cd ./vspd-1.00-dist

· Install the VSPDL into /usr/local/vspd : #./install.sh /usr/local/vspd (the shell script will install all files automatically):
· The script will check system dependencies for VSPModule compilation;
· The script will then compile the VSPModule;
· Finally, the script will install all files into their target location (/usr/local/vspd) and necessary startup shell scripts (vspd and vspm)- into /etc/rc.d/init.d/.

To install from RPM archive:

· Login from console as a superuser (root).

· Go to the directory containing RPM archive and execute the following command: #rpm --install ./vspd-X.YY-linux.i586.rpm (you can also use any other tool of your choice to install RMP).

· RPM subsystem will check package dependencies and let you know if something is missing;

· If all dependencies check out successfully an installation directory will be created (normally, /usr/local/vspd-X.YY-dist);

· Next, the VSPModule will be compiled and installed into the package installation directory (normally, to /usr/local/vspd);

· Finally, the RPM subsystem will check the distribution installation directory and package installation directory to see if both were successfully created.

If the VSPDL installs successfully, you will have the following:

· In /etc/rc.d/init.d/vspd and /etc/rc.d/init.d/vspm - standard UNIX startup scripts for VSPDaemon and VSPModule.

· In /usr/local/vspd/bin/* - VSPDL services (startup and VSPTty).

· In /usr/local/vspd/etc/* - VSPDL configuration files.

· In /usr/local/vspd/lib/vspm.ko - VSPModule.

· In /usr/local/vspd/sbin/vspd - VSPDaemon.

· In /usr/local/vspd/man/* - VSPD documentation.


Controlling VSPDL Operation

Use the following commands to start the VSPDL:

· #/etc/rc.d/init.d/vspm start (must report [OK] if started successfully).

· #/etc/rc.d/init.d/vspd start.

As explained in how VSP works, the VSPLD configuration is stored in the configuration file vspd.conf. After the file is edited and changes saved you must "update" driver configuration by using the following command:

/etc/rc.d/init.d/vspd reloadconf

This will make the VSPDL re-read the file and start using new configuration. Configuration can be updated even when the VSPDL is working i.e. some VSPs are opened and in use.


VSPDL Configuration File (vspd.conf)

Functioning parameters of the VSPDL, and also configurations of individual VSPs are all defined by a single configuration file vspd.conf. The file usually resides at /usr/local/vsp/etc/. You must be logged in as a superuser to be able to edit this file. Editing can be done with any text editor of your choice.

After the file is edited and changes saved you must "update" driver configuration by using the following command:

/etc/rc.d/init.d/vspd reloadconf

This will make the VSPDL re-read the file and start using new configuration. Configuration can be updated even when the VSPDL is working i.e. some VSPs are opened and in use.

Vspd.conf has the following structure* (see a sample file in the next topic for actual configuration example):

<!-- **** VIRTUAL SERIAL PORT DRIVER FOR LINUX (VSPDL) CONFIGURATION FILE **** -->
<vspdconfig>

  <!-- ==================== GENERAL CONFIGURATION ==================== -->

    <!-- Root directory for the daemon -->
    <root dir="directory"/>

    <!-- Path and prefix for device files -->
    <devprefix value="value"/>

    <!-- Host to bind by default -->
    <bind host="IP_address"/>

    <!-- Timeout for basic I/O operations -->
    <timeout [exec="exec(100)"] [priority="priority(10)"]/>

    <!-- VSPdaemon event logging configuration -->
    [<log type="syslog|pipe|file" level="EMR|ALR|CRT|ERR|WRN|NTC|INF|DBG" path="path"/>]
    ...
    ...
    [<log type="syslog|pipe|file" level="EMR|ALR|CRT|ERR|WRN|NTC|INF|DBG" path="path"/>]

  <!-- ======= CONFIGURATION OF INDIVIDUAL VIRTUAL SERIAL PORTS (VSPs) ======= -->

    <!-- -------------------- VSP0 CONFIGURATION -------------------- -->

    <!-- VSP number -->
    <vsp num="0">

        <!-- HOST AND PORT TO BIND -->
        <bind host="[IP_address]" port="port"/>

        <!-- Connection parameters -->
        <connection [rmode="client|server|server/client"] [proto="udp|tcp"] [conmode="ondata|immediately"]
        [timeout="timeout(5)"] [onthefly="outofband|inband|disabled"] [clogin="pwd"] [dlogin="pwd"] />

        <!-- Destination device parameters -->
        <destination ip="IP_address"|mac="MAC_address" [port="port(1001)"] [cport="cport(65535)"] />

        <!-- Outbound packet generation options -->
        <packets [maxlen="len(255)"] [maxdelay="delay(0)"] [starton="any|char"] [startchar="hex"] [stopchar="hex"] />

        <!-- Event logging configuration for this VSP -->
        [<log type="syslog|pipe|file" level="EMR|ALR|CRT|ERR|WRN|NTC|INF|DBG" path="path"/>]
        ...
        ...
        [<log type="syslog|pipe|file" level="EMR|ALR|CRT|ERR|WRN|NTC|INF|DBG" path="path"/>]

        <!-- Data dump section -->
        [<dump port="no|yes" path="path"/>]

    </vsp>
    <!-- -------------------- END OF VSP0 CONFIGURATION -------------------- -->

    <!-- -------------------- VSP1 CONFIGURATION -------------------- -->
        <vsp num="1">
        ...
        ...
        </vsp>
    <!-- -------------------- END OF VSP1 CONFIGURATION -------------------- -->

</vspdconfig>
<!-- **** END OF VIRTUAL SERIAL PORT DRIVER FOR LINUX (VSPDL) CONFIGURATION FILE **** -->

* Some comments found in the actual vspd.conf that comes with the driver were omitted. Default values for optional parameters are shown in purple


Sample Configuration File

Here is a sample configuration file (some optional parameters are at default values and were included for clarity):

<!-- **** VIRTUAL SERIAL PORT DRIVER FOR LINUX (VSPDL) CONFIGURATION FILE **** -->
<vspdconfig>

  <!-- ==================== GENERAL CONFIGURATION ==================== -->

    <!-- Root directory for the daemon -->
    <root dir="/usr/local/vsp"/>

    <!-- Path and prefix for device files -->
    <devprefix value="/dev/vsp/vspd"/>

    <!-- Host to bind by default -->
    <bind host="192.168.100.40"/>

    <!-- Timeout for basic I/O operations -->
    <timeout exec="100" priority="10"/>

    <!-- VSPdaemon event logging configuration -->
    <log type="file" level="EMR" path="var/vspd.log"/>
    <log type="file" level="ALR" path="var/vspd.log"/>
    <log type="file" level="CRT" path="var/vspd.log"/>
    <log type="file" level="ERR" path="var/vspd.log"/>
    <log type="file" level="WRN" path="var/vspd.log"/>
    <log type="file" level="NTC" path="var/vspd.log"/>
    <log type="file" level="INF" path="var/vspd.log"/>

  <!-- ======= CONFIGURATION OF INDIVIDUAL VIRTUAL SERIAL PORTS (VSPs) ======= -->

    <!-- ==================== VSP0 CONFIGURATION ==================== -->

    <!-- VSP number -->
    <vsp num="0">

        <!-- HOST AND PORT TO BIND -->
        <bind host="192.168.100.40" port="3500"/>

        <!-- Connection parameters -->
        <connection rmode="server/client" proto="tcp" conmode="ondata" timeout="2" onthefly="outofband" clogin="pwd" dlogin="pwd"/>

        <!-- Destination device parameters -->
        <destination ip="192.168.100.90" port="1001" cport="32767"/>

        <!-- Outbound packet generation options -->
        <packets maxlen="255" maxdelay="0" starton="any"/>

        <!-- Event logging configuration for this VSP -->
         <log type="file" level="EMR" path="var/vspd.log"/>
         <log type="file" level="ALR" path="var/vspd.log"/>
         <log type="file" level="CRT" path="var/vspd.log"/>
         <log type="file" level="ERR" path="var/vspd.log"/>
         <log type="file" level="WRN" path="var/vspd.log"/>
         <log type="file" level="NTC" path="var/vspd.log"/>
         <log type="file" level="INF" path="var/vspd.log"/>

    </vsp>
    <!-- ===================== END OF VSP0 CONFIGURATION ==================== -->

</vspdconfig>
<!-- **** END OF VIRTUAL SERIAL PORT DRIVER FOR LINUX (VSPDL) CONFIGURATION FILE **** -->


General VSPDL Configuration

General configuration options define the configuration of the VSPDL as a whole. The format for the VSPDL configuration header is as follows (purple marks default values that will be used if corresponding parameter is omitted):

<!-- **** VIRTUAL SERIAL PORT DRIVER FOR LINUX (VSPDL) CONFIGURATION FILE **** -->
<vspdconfig>

  <!-- ==================== GENERAL CONFIGURATION ==================== -->

    <!-- Root directory for the daemon -->
    <root dir="directory"/>

    <!-- Path and prefix for device files -->
    <devprefix value="value"/>

    <!-- Host to bind by default -->
    <bind host="IP_address"/>

    <!-- Timeout for basic I/O operations -->
    <timeout [exec="exec(100)"] [priority="priority(10)"]/>

    <!-- VSPdaemon event logging configuration -->
    [<log type="syslog|pipe|file" level="EMR|ALR|CRT|ERR|WRN|NTC|INF|DBG" path="path"/>]
    ...
    ...
    [<log type="syslog|pipe|file" level="EMR|ALR|CRT|ERR|WRN|NTC|INF|DBG" path="path"/>]

  <!-- ======= CONFIGURATION OF INDIVIDUAL VIRTUAL SERIAL PORTS (VSPs) ======= -->

</vspdconfig>
<!-- **** END OF VIRTUAL SERIAL PORT DRIVER FOR LINUX (VSPDL) CONFIGURATION FILE **** -->


Root Directory for the Daemon (<root> Section)

<Root> section defines root directory for the VSPdaemon. We do not recommend you changing the default value of dir parameter unless necessary (and you know what you are doing). The section has the following syntax:

<root dir="/usr/local/vsp/"/>


Path and Prefix for Device Files (<devprefix> Section)

<Devprefix> section defines the prefix for the device name used by the daemon. For example, if prefix is "/dev/vsp/vspd" then the daemon will access device 0 as /dev/vsp/vspF0. We do not recommend you changing the value parameter unless necessary (and you know what you are doing). The section has the following syntax:

<devprefix value="/dev/vsp/vspd"/>


Host to Bind By Default (<bind> Section)

<Bind> section selects the IP-address to which the VSPDL will "bind". LINUX servers often have several network interfaces (with each interface having its own IP-address) and it is necessary to specify which interface the VSPs will work on. All VSPs will bind to the same IP-address, except for those whose configuration specifies a different bind host.

The section has the following syntax:

<bind host="IP_address"/>


Timeout for Basic I/O Operations (<timeout> Section)

We do not recommend you changing this section unless absolutely necessary (and you know what you are doing). The section has the following syntax (purple marks default values that will be used if corresponding parameter is omitted):

<timeout exec="exec(100)" priority="priority(10)"/>

Exec parameter specifies a sleep timeout in milliseconds, which is performed after all VSPs has been polled. This value can be decreased if you have many VSPs and experience problems with VSPDL performance. Setting exec to 0 causes your PC to poll the ports at maximum possible speed. This leads to high CPU utilization by the VSPLD but may be necessary if you want to achive best possible performance in a system with a large number of virtual ports.

Priority parameter specifies priority level for the VSPdaemon process.


VSPdaemon Event Logging Configuration (<log> Section)

<Log> section describes the logging options for events generated by the VSPdaemon. Notice, that <log> section can be included into the VSP configuration itself (i.e. inside <VSP> .... </VSP>) thus defining individual logging options for this particular VSP.

The section has the following syntax:

[<log [type="syslog|pipe|file"] level="EMR|ALR|ERR|WRN|NTC|INF|DBG" [path="path"]/>]

Type parameter defines the output destination for the event. If type is set to "syslog", all events are logged to a syslog facility "USER". If omitted, this parameter defaults to "syslog".

Level parameter defines the type of event for which this entry is created. Standard level names are used.

Path parameter is only needed when type="pipe" or "file" and defines the file to which events will be saved or a program that will accept events into its STDIN.

Because each entry in the format shown above specifies logging only for one type of events (level) the configuration file can have several entries, for example:

       <log type="file" level="EMR" path="var/dev.0.log"/>
       <log type="file" level="ALR" path="var/dev.0.log"/>
       <log type="file" level="CRT" path="var/dev.0.log"/>
       <log type="file" level="ERR" path="var/dev.0.log"/>
       <log type="file" level="WRN" path="var/dev.0.log"/>
       <log type="file" level="NTC" path="var/dev.0.log"/>
       <log type="file" level="INF" path="var/dev.0.log"/>

In general, we recommend you to keep the list of logged events like the one shown above. Logging "DBG" events is not necessary.


VSP Configuration (<vsp> Section)

VSP configuration options define individual functioning parameters for each VSP. Each VSP has to be described in the following format (purple marks default values that will be used if corresponding parameter is omitted):

    <!-- -------------------- VSP0 CONFIGURATION -------------------- -->

    <!-- VSP number -->
    <vsp num="0">

        <!-- HOST AND PORT TO BIND -->
        <bind host="ip_address" port="port"/>

        <!-- Connection parameters -->
        <connection [rmode="client|server|server/client"] [proto="udp|tcp"] [conmode="ondata|immediately"]
        [timeout="timeout(5)"] [onthefly="outofband|inband|disabled"] [clogin="pwd"] [dlogin="pwd"] />

        <!-- Destination device parameters -->
        <destination ip="IP_address"|mac="MAC_address" [port="port(1001)"] [cport="cport(65535)"] />

        <!-- Outbound packet generation options -->
        <packets [maxlen="len(255)"] [maxdelay="delay(0)"] [starton="any|char"] [startchar="hex"] [stopchar="hex"] />

        <!-- Event logging configuration for this VSP -->
        [<log type="syslog|pipe|file" level="EMR|ALR|CRT|ERR|WRN|NTC|INF|DBG" path="path"/>]
        ...
        ...
        [<log type="syslog|pipe|file" level="EMR|ALR|CRT|ERR|WRN|NTC|INF|DBG" path="path"/>]

        <!-- Data dump section -->
        [<dump port="no|yes" path="path"/>]

    </vsp>
    <!-- -------------------- END OF VSP0 CONFIGURATION -------------------- -->

Click on the links above to jump to parameter group and individual parameter description topics.


VSP Number (<vsp> Section)

Syntax: <vsp num="num"]/>, where num is the port number in the 0-127 range

Default value (if omitted): this parameter is mandatory and must be present

Relevance conditions: ---

See also: VSP name selection

Num (VSP number) parameter defines the number for the VSP. The number can be in the 0-127 range.

This parameter is similar to the port name of the VSP for Windows.


Host and Port to Bind for the VSP (<bind> Section)

<Bind> section defines the IP-address and the port number of the VSP on its side. The section has the following syntax (purple marks default values that will be used if corresponding parameter is omitted):

<bind host="[IP_address]" port="port"/>

Click on the links above to jump to individual parameter description topics.


Bind Host (<host> Parameter)

Syntax: <bind ... host="[IP_address]"/>

Default value (if omitted): Parameter is mandatory; if the value is NULL (i.e. host="") then the value of "general" bind parameter will be used

Relevance conditions: ---

See also:

Host parameter selects the IP-address to which this VSP will "bind". LINUX servers often have several network interfaces (with each interface having its own IP-address) and it may be necessary to specify which interface this particular VSP will work on.

This parameter must not be omitted. Defining Host="" makes the VSP bind to the "general" bind IP-address.


Bind Port (<port> Parameter)

Syntax: <bind ... port="[port]"/>

Default value (if omitted): Parameter is mandatory

Relevance conditions: rmode="server" or "server/client"

See also: Port Number (PN) setting (DS), listening port (VSP for Windows)

Port parameter specifies the port number on the PC that will be associated with this VSP. This port serves as a "listening port" for incoming data connections, when such connections are allowed by the routing mode of the VSP. Additionally, in case of UDP transport protocol and server/client routing mode, the port is also used to send outgoing UDP datagrams. For more details see additional info on UDP and TCP connections.

This parameter must be specified and cannot be omitted.

Port parameter works like the Port Number (PN) setting of the DS and listening port option of the VSP for Windows.


Connection Parameters (<connection> Section)

<Connection> section specifies several different parameters that define how VSP will communicate and interact with the DS. The section has the following syntax (purple marks default values that will be used if corresponding parameter is omitted):

<connection [rmode="client|server|server/client"] [proto="udp|tcp"] [conmode="ondata|immediately"] [timeout="tout(5)"] [onthefly="outofband|inband|disabled"] [clogin="pwd"] [dlogin="pwd"]/>

Click on the links above to jump to individual parameter description topics.


Routing Mode (<connection rmode>)

Syntax: <connection ... [rmode="server|client|server/client"]/>

Default value (if omitted): "server"

Relevance conditions: ---

See also: Routing Mode (RM) setting (DS), Routing Mode option (VSP for Windows)

Rmode (routing mode) parameter defines whether the VSP will accept incoming connections (passive opens) and/or establish outgoing connections (perform active opens).

The following choices are available:

"server" (default) Only incoming connections are accepted, the VSP never attempts to establish an outgoing connection to the DS. There is no restriction on which DS can connect to the VSP- connection from any IP-address will be accepted as long as the DS is connecting to the correct bind port using correct transport protocol.

"client" Only outgoing connections are allowed, the VSP rejects all incoming connections.

"server/client" Both incoming and outgoing connections are allowed. Outgoing connections are established with the destination, specified in the destination section of the configuration file. Exactly when the VSP attempts to establish an outgoing connection is defined by the selected connection mode. Incoming connections are accepted from any IP-address, just like with the server routing mode.

Rmode parameter works like the Routing Mode (RM) setting on the DS and the Routing Mode option of the VSP for Windows.


Transport Protocol (<connection proto>)

Syntax: <connection ... [proto="udp|tcp"]/>

Default value (if omitted): "udp"

Relevance conditions: ---

See also: Transport Protocol (TP) setting (DS), transport protocol (VSP for Windows)

Proto (transport protocol) selects which communications protocol- TCP/IP or UDP/IP will be used by the VSP for data communications with the DS. Omitting the parameter selects the UDP/IP protocol.

For the data connection with the DS to work the same transport protocol must be selected on the DS side- see the Transport Protocol (TP) setting. This parameter has the same function as the transport protocol option of the VSP for Windows.

Unless you have a specific reason why the UDP should be used (very rare!) we recommend you to stick to the TCP/IP. The TCP/IP is a "reliable delivery" protocol that makes sure that no data is lost "in transit" between the VSP and the DS. The UDP, on the contrary, does not guarantee data delivery.

Some considerations and additional info on the TCP and UDP implementation in the VSP can be found in the next topic.


Additional Info on UDP and TCP Connections

UDP data connections

The notion of data connection is native to TCP/IP since this is a connection-based protocol. UDP/IP, however, is a connection-less protocol in which all packets (UDP datagrams) are independent from each other. How, then, the term "data connection" applies to the UDP transport protocol?

With UDP transport protocol true data connections (in the "TCP sense" of this term) are not possible (hence, parenthesis around the word "connection"). The VSP, however, attempts to mimic the behavior of TCP data connection whenever possible. Follows is the detailed description of UDP "connections" and their similarities and differences with TCP connections.

Incoming "connections"*. There is no connection establishment phase in UDP so an incoming UDP "connection" is considered to be "established" when the first UDP packet is received by the VSP (on the bind port). Similarity with TCP is in that after having received the packet from the DS the VSP knows who to send its own UDP packets to.

Outgoing "connections"**. The VSP establishes outgoing UDP connection by sending a UDP datagram to the targeted destination. If there is a data that needs to be transmitted the VSP sends the first UDP datagram with (a part of) this data. If there is no immediate data that needs to be transmitted to the DS the VSP sends the first UDP datagram of zero length (this happens when the connection mode is set to "immediately"). The purpose of this is to let the other side know the IP-address of the VSP (PC it is running on), as well as the data port currently used by the VSP.

Data transmission and destination switchover. Once the "connection" is established the VSP and the DS exchange the data using UDP datagrams. The difference with TCP is that if another DS sends a datagram to the VSP, then the VSP will interpret this as a new incoming connection*, forget about the first DS and start sending its own UDP datagrams to the second one. In other words, the VSP will always communicate with the "most recent sender". Such behavior is not possible in TCP, in which a third party cannot interfere with an existing connection.

"Connection" termination. There is no connection termination phase in UDP so VSP "terminates" its UDP connections by forgetting about them and the only event that can trigger UDP "connection" termination (except for the closing of the VSP) is connection timeout.

Local port used by the VSP depends on the selected routing mode:

· In the server routing mode the VSP sends the UDP datagrams from an "automatic" port selected by the OS;

· In the server/client and client routing modes the VSP sends and receives UDP datagrams through the port, defined by the bind port parameter.

TCP data connections

Only one connection at a time. TCP protocol stack on the PC is capable of supporting thousands of concurrent TCP connections but the VSPDL strictly enforces that only a single TCP connection exists for each VSP at any time. This is because the serial port is not a shared media and allowing, say, two Device Servers to connect to the same VSP would have created a data chaos***. Allowing only a single connection at a time follows a "serial port culture" of "one serial port- one application"! If the VSP is already engaged in a data connection with the DS and another DS attempts to establish a connection to this VSP then this DS will be rejected.

Separate ports for outgoing and incoming connections. The VSP establishes its outgoing connections** from an "automatic" port selected by the OS. Each time such outgoing connection is established the source port number on the VSP side will be different. The VSP accepts incoming connections* on a fixed listening port, whose number is defined by the bind port parameter. When the incoming connections are not allowed the bind port is closed.

* Assuming that incoming connections are allowed (i.e. the routing mode is either "server", or "server/client").

** Assuming that outgoing connections are allowed (i.e. the routing mode is either "client", or "server/client").

*** What if both Device Servers started sending the data to the VSP at the same time? Then the PC application using the VSP would have received a mix of data consisting of an input from both Device Servers! And if two Device Servers were connected to the same VSP and the PC application needed to send out the data then which DS of the two the VSP would have to send this data to?


Connection Mode (<connection conmode>)

Syntax: <connection ... [conmode="ondata|immediately"]/>

Default value (if omitted): "ondata"

Relevance conditions: rmode= "client" or "server/client"

See also: Connection Mode (CM) setting (DS), connection mode (VSP for Windows)

Conmode (connection mode) parameter defines when the VSP attempts to establish an outgoing connection to the destination, specified in the destination section of the configuration file.

Connection mode drop-down box provides two choices:

"ondata" (default) The VSP attempts to establish an outgoing connection when the first "serial" data (since the VSP was opened or previous connection was closed/aborted) is sent by the PC application into the VSP.

"immediately" The VSP attempts to establish an outgoing connection right after it is opened by the application. The VSP also tries to make this connection "persistent". If the connection is aborted by the DS, the VSP will (attempt to) re-establish it immediately. Connection timeout still works in this mode: when the current connection times out the VSP aborts it and immediately establishes a new connection. Such behavior "auto-repairs" hanged connections.

Connection mode option is irrelevant when the routing mode is "server", since in this mode outgoing connections are not allowed in principle.

Connection mode option works like the Connection Mode (CM) setting of the DS (modes 0 and 1 only) and connection mode option of the VSP for Windows.


Connection Timeout (<connection timeout>)

Syntax: <connection ... [timeout="tout"]/>, where tout- connection timeout in minutes ("0" means "never timeout"); maximum value is 65535

Default value (if omitted): 5 minutes

Relevance conditions: ---

See also: Connection Timeout (CT) setting (DS), connection timeout (VSP for Windows)

Timeout (connection timeout) parameter sets the timeout (in minutes) for the data connections between the VSP and the DS. If no data is transmitted across the data connection (TCP or UDP) for a specified number of minutes the VSP aborts the connection.

Setting connection timeout parameter to 0 disables the feature and connection never times out. If omitted, this parameter defaults to 5 minutes.

Notice, that this feature will work even when the connection mode is set to "immediately". When the timeout comes the VSP closes the connection first and immediately reopens it (timeout counter is reloaded). This provides additional reliability since hanged connections are automatically "repaired".

Connection timeout parameter works like the Connection Timeout (CT) setting of the DS and the connection timeout option of the VSP for Windows.


On-the-fly Commands (<connection onthefly>)

Syntax: <connection ... [onthefly="outofband|inband|disabled"]/>

Default value (if omitted): "outofband"

Relevance conditions: ---

See also: Connection Timeout (CT) setting (DS), connection timeout (VSP for Windows)

On-the-fly commands are used to change the serial port configuration of the DS as needed (i.e. "on the fly"). Serial port configuration made through the on-the-fly commands overrides the permanent one, defined by the serial port settings of the DS. The difference between the changes made using on-the-fly commands and changes made through altering DS settings is that, unlike serial settings, on-the-fly commands have immediate effect and do not require the DS to be rebooted in order for the new values to be recognized.

With on-the-fly commands enabled, the serial port of the DS is always setup as required by the PC application that communicates with this DS through the VSP. When the PC application opens the VSP (or some communications parameters are changed) the application informs the VSP about required changes and the VSP relates this information to the DS by sending on-the-fly commands.

Additionally, on-the-fly commands are used by the VSP to control the RTS and DTR outputs of the DS serial port. The status of the CTS and DSR input of the DS serial port can be passed to the VSP too- this is done using so-called "notification messages".

On-the-fly commands drop-down box provides three choices:

"outofband" On-the-fly commands are enabled and sent in the form of out-of-band (UDP) commands. On-the-fly commands (RC) setting of the DS must be programmed to 1 (enabled) for the out-of-band on-the-fly commands to be accepted.

"inband" On-the-fly commands are enabled and sent in the form of inband (TCP) commands. On-the-fly commands (RC) setting of the DS must be programmed to 1 (enabled) for the on-the-fly commands to be accepted. Additionally, there are some other programming steps that must be performed before the DS will recognize inband commands- see preparing the DS for inband access.

"disabled" On-the-fly commands are not sent at all, so the serial port of the DS will use "permanent" serial port configuration defined by the serial port settings. In this mode it doesn't matter what serial port parameters are set in the PC software application- the DS will not be aware of them!

In general, we recommend you to keep on-the-fly commands enabled (unless there are some special reasons preventing you from doing so). Enabling on-the-fly commands keeps the serial port setup of the DS "in sync" with the requirements of the software application using the VSP.

As for choosing between out-of-band and inband modes, follow these recommendations:

Out-of-band commands work most of the time, especially when the PC (running VSP) and the DS are located on the same network segment*. Out-of-band commands may not work very well or not work at all for the remote Device Servers located behind the routers, firewalls, etc**. This is because:

· The routers are known to "drop" UDP datagrams (on which out-of-band on-the-fly commands are based) under heavy network traffic.

· UDP traffic is banned by the firewalls of many networks (hence, out-of-band on-the-fly commands cannot be used at all). If you want out-of-band on-the-fly commands to work then your network must allow UDP traffic to port 65535 or 32767!

If you encounter one of the above situations then you should use inband on-the-fly commands or not use on-the-fly commands at all!

* The definition of the network segment implies that there are only network hubs (and no routers, bridges, firewalls, etc.) between the PC and all other devices on the segment.

** Here we touch on a very complicated subject. Modern routers offer a bewildering array of setup options. We will attempt to cover this in details in our upcoming white papers.


Password for On-the-fly Commands (<connection clogin>)

Syntax: <connection ... [clogin="pwd"]/>

If omitted: Password will not be added to on-the-fly commands

Relevance conditions: onthefly= "outofband" or "inband"

See also: Out-of-band (UDP) programming, Login (L) command, On-the-fly Password (OP) setting, Password (PW) setting

Clogin (command login) parameter specifies the password that should be added to the on-the-fly commands. On-the-fly commands can be sent without prior login using Login (L) command. Instead, the password can be added to each command individually (see out-of-band (UDP) programming). On-the-fly Password (OP) setting on the DS must be programmed to 1 (enabled) to make the DS check the password. Password specified by the clogin parameter must match the one defined through the Password (PW) setting of the DS.

When clogin parameter is omitted all on-the-fly commands are sent without password. This parameter is only relevant when on-the-fly commands are not disabled.


Data Login (<connection dlogin>)

Syntax: <connection ... [dlogin="pwd"]/>

If omitted: Data login procedure will not be performed

Relevance conditions: proto= "tcp"

See also: Command-phase (TCP) programming , Data Login (DL) setting, Password (PW) setting

Dlogin (data login) parameter specifies whether a "data login" procedure will be performed when a TCP connection is established between the VSP and the DS. When the data login is required the VSP cannot start exchanging the data with the DS immediately, but needs to login with a valid password first. This provides a password protection for the data connection with the DS. on the DS side, data logins are enabled through the Data Login (DL) setting (additional info on data logins can be found in command-phase (TCP) programming).

Password specified by the clogin parameter must match the one defined through the Password (PW) setting of the DS.

Note, that omitting dlogin parameter is not the same as and specifying dlogin=""! In the first case the VSP will expect to be able to start the data exchange with the DS as soon as the connection is established. In the second case the VSP will still perform a data login procedure with NULL password.

Dlogin parameter is irrelevant when the transport protocol is "udp" because data logins are only supported for TCP connections.


Destination Device Parameters (<destination> section)

<Destination> section contains parameters that define the target DS to which the VSP will be establishing connections and also port numbers on the destination DS. The section has the following syntax (purple marks default values that will be used if corresponding parameter is omitted):

<connection ip="IP_address"|mac="MAC_address" [port="port(1001)"] [cport="cport(65535)"]/>

Click on the links above to jump to individual parameter description topics.


Destination IP-address (<ip> parameter)

Syntax: <destination ... ip="IP-address"/>

If omitted: mac parameter will be used (at least one- ip or mac must be specified)

Relevance conditions: rmode= "client" or "server/client"

See also: ---

Ip (IP-address) parameter specifies the IP-address of the target DS to which the VSP will be establishing outgoing connections.

This parameter is irrelevant when the routing mode is "server" because in this mode the VSP never establishes outgoing connections.

If both the ip and mac parameter are specified the ip parameter takes precedence and mac parameter is ignored. At least one of the two parameters has to be specified to define the target DS.


Destination MAC-address (<mac> parameter)

Syntax: <destination ... mac="MAC-address"/>

If omitted: ip parameter will be used (at least one- ip or mac must be specified)

Relevance conditions: rmode= "client" or "server/client"

See also: DHCP (DH) setting (DS), single-destination mode (VSP for Windows)

Mac (MAC-address) parameter specifies the MAC-address of the target DS to which the VSP will be establishing outgoing connections. Before establishing a connection the VSP will perform a so-called "MAC->IP mapping" to find out which IP-address currently corresponds to a specified MAC-address. When the IP-address is "resolved" the VSP will proceed in a normal way i.e. attempt to establish a data connection with the DS at this IP-address.

Specifying MAC-address instead of the IP-address is useful in cases when the DS is running with DHCP enabled (see DHCP (DH) setting) and its IP-address can potentially change over time. If the target DS is specified by its MAC the VSP will still be able to find it. Note, that MAC->IP mapping only works for local* Device Servers, remote Device Servers have to be referenced by their IP-address.

If both the ip and mac parameter are specified the ip parameter takes precedence and mac parameter is ignored. At least one of the two parameters has to be specified to define the target DS.

This parameter is irrelevant when the routing mode is "server" because in this mode the VSP never establishes outgoing connections.

MAC->IP mapping works just like the one on the VSP for Windows (see single-destination mode).

* I.e. Device Servers located on the same network segment with the PC. The definition of the network segment implies that there are only network hubs (and no routers, bridges, firewalls, etc.) between the PC and all other devices on the segment.


Destination Data Port (<port> parameter)

Syntax: <destination ... port="port"/>

Default value (if omitted): "1001"

Relevance conditions: rmode= "client" or "server/client"

See also: Port Number (PN) setting (DS), single-destination mode (VSP for Windows)

Port (Destination data port) parameter specifies the port number on the DS to which the VSP will try to connect when establishing outgoing connections. If omitted, this parameter defaults to port 1001.

For the connection to work, the port number specified by this parameter must match the one defined by the Port Number (PN) setting of the DS.

This parameter is irrelevant when the routing mode is "server" because in this mode the VSP never establishes outgoing connections.

Port option works like the port parameter of the VSP for Windows (see single-destination mode).


Destination Command Port (<cport> parameter)

Syntax: <destination ... cport="cport"/>

Default value (if omitted): "65535"

Relevance conditions: onthefly= "outofband"

See also: Out-of-band (UDP) programming

Cport (command port) parameter specifies the port number on the DS to which the VSP will send its on-the-fly commands (when commands are sent in the out-of-band mode). If omitted, this parameter defaults to port 65535.

Cport parameter allows you to set any command port number but the DS itself actually accepts out-of-band UDP commands on two fixed ports: 65535 and 32767 (either port can be used). For more information see out-of-band (UDP) programming.


Outbound Packet Generation Options (<packets> section)

The challenge of sending the data from the application to the DS is in deciding how to group this data into the network packets of reasonable size. Carrying too little data in each packet increases network load while sending packets with too much data slows down the delivery of this data to the DS. <Packets> section contains parameters that define how the VSP will divide the "serial" data sent by the application into network packets.

To give you a better understanding of the options available in this section we will use the concept of data blocks. Many serial systems use some sort of communication packets (we will call them data blocks to avoid possible confusion with network packets). Since the data block is a basic unit of data transmission in such systems it is only logical to divide the data sent by the VSP into network packets basing on these data blocks.

Parameters in the <packets> section allow you to define conditions that "open" the data blocks (see starton and startchar), "close" the data block (stopchar), and "break" the data block into smaller chunks of data without closing the block (maxlen, maxdelay). The VSP ignores all the data received from the application past the end of the previous data block and before the beginning of the next data block (this means, the data is not even recorded into the TX buffer). The VSP sends out the data in the TX buffer as soon as the break or close condition is encountered.

Of course, not all systems rely on formatted data blocks, many just send unformatted "random" data. This data can be viewed as one endless data block that starts on the first character received from the application.

The section has the following syntax (purple marks default values that will be used if corresponding parameter is omitted):

<packets [maxlen="len(1024)"] [maxdelay="delay(0)"] [starton="any|char"] [startchar="hex"] [stopchar="hex"]/>

Click on the links above to jump to individual parameter description topics.

Note, that default values of this section's parameters will work fine for most applications. Therefore, simply defining this section as <packets/> will (most probably) be OK.


Maximum Packet Length (<maxlen> parameter)

Syntax: <packets ... maxlen="len"/>, where len has the range of 32...255 bytes

Default value (if omitted): 255 bytes

Relevance conditions: ---

See also: Maximum Packet Length (ML) setting (DS), maximum packet length (VSP for Windows)

Maxlen (maximum packet length) parameter breaks the large chunks of data sent by the application into smaller portions. Once the number of bytes in the TX buffer reaches the limit defined by the maxlen parameter the VSP sends all the data in the buffer to the DS. This does not close the data block and all subsequently received data is still considered to be a part of the same data block. If omitted this parameter defaults to 255 bytes.

For the UDP transport protocol this parameter directly defines the (maximum) packet size of each UDP packet sent by the VSP. In TCP there is no guarantee that individual packets won't occasionally carry larger chunks of data.

Maxlen option works like the Maximum Packet Length (ML) setting of the DS and maximum packet length option of the VSP for Windows.


Maximum Intercharacter Delay (<maxdelay> parameter)

Syntax: <packets ... maxdelay="delay"/>, where delay is in milliseconds

Default value (if omitted): 0 milliseconds (i.e. "immediately")

Relevance conditions: ---

See also: Maximum Intercharacter Delay (MD) setting (DS), maximum intercharacter delay (VSP for Windows)

When the data block is already opened the VSP sends out all the data in its TX buffer when no new data is received from the application for a period of time defined by the maxdelay parameter (in milliseconds). This does not close the data block and all subsequently received data is still considered to be a part of the same data block. If omitted, this parameter defaults to 0 milliseconds, which means that the data is sent out as soon as it is received from the application.

By using this option you can combine the data that is sent by the application in "rapid succession" into a larger packets (but still not exceeding the maximum packet length).

Maxdelay option works like the Maximum Intercharacter Delay (MD) setting of the DS and maximum intercharacter delay option of the VSP for Windows.


Start on Any Character (<starton> parameter)

Syntax: <packets ... [starton="any|char"]/>

Default value (if omitted): "any"

Relevance conditions: ---

See also: Start On Any Character (SA) setting (DS), use start/stop characters (VSP for Windows)

Starton (start on character) parameter defines what will constitute the beginning of the data block:

"any" (default) First character received from the application past the end of the previous data block will open a new data block. This option is very suitable both for unformatted and formatted data.

"char" Only a specific character (defined by the start character parameter will open a new data block). All characters received from the application between the end of the previous data block and the start character will be ignored and not recorded into the VSP's TX buffer. This option is suitable for formatted data only.

This option works like the Start On Any Character (SA) setting of the DS and use start/stop characters option of the VSP for Windows.


Start Character (<startchar> parameter)

Syntax: <packets ... startchar="hex"/>, where hex is the ASCII code of the start character in the HEX form (i.e. "0D" for <CR>)

If omitted: start character is not defined

Relevance conditions: starton= "any"

See also: Start Character Code (S1) setting (DS), start characters (VSP for Windows)

Startchar (start character code) parameter defines the ASCII code of the character that will open the data block in case the starton parameter is "char". Parameter is irrelevant if starton= "any".

This option works like the Start Character Code (S1) setting of the DS and start characters option of the VSP for Windows.


Stop Character (<stopchar> parameter)

Syntax: <packets ... stopchar="hex"/>, where hex is the ASCII code of the stop character in the HEX form (i.e. "0D" for <CR>)

If omitted: stop character is not defined

Relevance conditions: ---

See also: Stop Character Code (E1) setting (DS), stop characters (VSP for Windows)

Stopchar (stop character code) parameter defines the ASCII code of the character that will close the data block. If the stop character is not defined the data block is never closed (although it is still subdivided using "breaking" parameters maxlen and maxdelay).

This option works like the Stop Character Code (E1) setting of the DS and stop characters option of the VSP for Windows.


Event Logging Configuration for the VSP (<log> section)

<Log> section describes the logging options for events generated by the VSP. Notice, that the <log> section within the VSP section itself (i.e. inside <VSP> .... </VSP>) defines logging options for this particular VSP only. Logging options can also be defined for the VSPdaemon itself.

The section has the following syntax:

<log [type="syslog|pipe|file"] level="EMR|ALR|ERR|WRN|NTC|INF|DBG" [path="path"]/>

Type parameter defines the output destination for the event. If type is set to "syslog", all events are logged to a syslog facility "USER". If omitted, this parameter defaults to "syslog".

Level parameter defines the type of event for which this entry is created. Standard level names are used.

Path parameter is only needed when type="pipe" or "file" and defines the file to which events will be saved or a program that will accept events into its STDIN.

Because each entry in the format shown above specifies logging only for one type of events (level) the configuration file can have several entries, for example:

       <log type="file" level="EMR" path="var/dev.0.log"/>
       <log type="file" level="ALR" path="var/dev.0.log"/>
       <log type="file" level="CRT" path="var/dev.0.log"/>
       <log type="file" level="ERR" path="var/dev.0.log"/>
       <log type="file" level="WRN" path="var/dev.0.log"/>
       <log type="file" level="NTC" path="var/dev.0.log"/>
       <log type="file" level="INF" path="var/dev.0.log"/>

In general, we recommend you to keep the list of logged events like the one shown above. Logging "DBG" events is not necessary.


Data Dump (<dump> section)

<Dump> section offers an option of capturing the data that flows between the VSP and the DS. The section has the following syntax:

[<dump port="no|yes" path="path"/>]

Port parameter defines whether the data sent between the VSP and the DS will be logged.

Path parameter defines the file to which the data will be "dumped".

Dump section can be omitted completely. If it is present then both parameters must be present.


LinkServer Software

splash

Tibbo LinkServer is an integration software that helps you connect to your remote Device Servers. The LinkServer saves costs and simplifies setup when trying to create a network of Device Servers and computers (hosts) which are spread over a wide-area network (WAN) or the Internet (which is just a large WAN).

In a WAN environment your Device Servers may be distributed over multiple network segments, located behind firewalls, routers, bridges, etc. To connect to such Device Servers you will usually need to obtain and assign real and static IP-addresses -- and these are quite expensive and difficult to manage. Often, you will also have to perform special configuration changes on your firewalls and gateways to allow incoming connections, etc.

Tibbo LinkServer solves this problem by acting as a middle-man. Instead of communicating with your remote Device Servers directly, you do so through the LinkServer. As will be explained in the introduction this eliminates the need to obtain multiple real static IP-addresses and dramatically simplifies the setup of your system.

LinkServer is a JAVA-based product that runs on Windows 9x, 2000, XP and 2003, as well as many flavors of Linux.


Quick Start Guide

Here is the list of steps you need to take in order to deploy and test out the LinkServer software:

· Make sure your PC can run the LinkServer.

· Download, Install LinkServer, and run the LinkServer software (the software is posted on Tibbo website).

· Obtain an AuthKey (click here if you don't know what an AuthKey is).

· Configure the AuthKey using the DS Manager (part of Device Server Toolkit software).

· Access LinkServer Web Admin interface.

· Login onto administrator account, default login name is admin, default password is admin (change default login and password as soon as possible).

· Configure the LinkServer to use your AuthKey.

· Register a "test" Device Server (DS) on the LinkServer.

· Configure your DS using the DS Manager (Further instructions appear under AN007. Installing and Configuring LinkServer).

· Make sure your DS connects to the LinkServer.

· Access your DS through the LinkServer from a client. For example, use HyperTerminal and the Virtual Serial Port for testing.

If this procedure did not work as planned for some reason, please read the rest of the manual before contacting Support. This is a complex product and might have a learning curve.


Introduction

What is Tibbo LinkServer?

This section explains an overall purpose of the LinkServer software. To better understand the need the system serves, let us review the existing scene.

The basic assumption of the LinkServer system is that you have a WAN which contains many Device Servers. Naturally, to use these Device Servers, you would have to communicate with them. The LinkServer allows you to do so, in a simple and flexible way.

Next topic- The Problem- explains why it is often difficult to connect to your Device Servers distributed across a WAN. Subsequent topics- Solution 1: Link Service and Solution 2: Dynamic DNS (dDNS) Service- explain how the LinkServer helps you overcome the difficulties.


The Problem

Under normal circumstances, on a WAN, communicating with another node (host) on the network can be difficult due to the following factors:

Scarcity of Static IP Addresses

IP addresses on many networks (especially, the Internet) are now in short supply. This gave rise to several technologies that allow you to use available IP addresses more economically. Some examples of these technologies include:

· Dynamic IP addresses, whereby IP addresses of the hosts change from time to time,

· NAT (Network Address Translation) whereby several hosts communicate with the outside world through a single "external" IP address on a gateway.

These technologies allow for each host to make outgoing connections (for example, to visit a website). However, it may be difficult (or actually impossible) to establish an incoming connection to such a host -- you either don't know its current address (because it's dynamic), or it doesn't even have an external address of its own.

The only standard solution to this problem is to assign a static IP address to each host you need to connect to. These static IP addresses have to be obtained first. For example, you might need to lease them from your ISP. A single IP-address wouldn't cost much but when a given system is to have many nodes you end up spending considerable amounts of money. Even when the WAN is private and IP addresses are free, there are administration costs related to allocation of static IP addresses.

Firewalls blocking inbound traffic

Even assuming one has obtained necessary number of static IP addresses, there is still one more challenge: you have to actually connect to the Device Server. This may mean passing through firewalls. Firewalls usually restrict inbound traffic, so you will need to arrange opening ports, etc. This requires more work and increases the chances for possible security breaches (the more internal IP addresses or ports accessible from the outside, the greater the risk).

One possible solution to this is to configure all of the Device Servers for outbound connections, and have them connect to one specific network host. This could save leasing multiple IP addresses, so you would just need a single IP address for this host. Unfortunately, this also means that just this single host would be able to communicate with your Device Servers, as it would be configured as their destination. As you can see, this solution, too, is not an ideal one.

So, what is the best way to interconnect Device Servers and their "client" hosts, when they are on different network segments, located behind firewalls, and have no static IP addresses? Enters the Link Service.


Solution 1: Link Service

As explained in The Problem, it is usually much easier for a network host to connect out than to accept an incoming connection. Unfortunately, with a normal link, at least one side must accept an incoming connection.

Tibbo LinkServer provides a workaround for this problem by letting both sides of the link to communicate through a "middle-man" (Link Service), to which they both can establish outbound connections.

When you and your friend use ICQ or MSN, you both connect to a central server. Neither of you typically has a static IP address, but the server has a static IP -- and this is what lets the "magic" happen. Both parties make outbound connections, so no firewalls have to be configured and neither side needs a static IP.

The Link Service is a very similar solution, only it is tailor-made for Tibbo Device Servers! Your Device Servers in the field connect to the Link Service (make outbound connections). Hosts that wish to communicate with Device Servers also connect to the LinkServer using outbound connections. Both sides meet 'at' the LinkServer and can thereby communicate through it. For more information on the Link Service click here.


Link Service: Further Details

Each Device Server that needs to use the Link Service has to be registered on the LinkServer first. The LinkServer recognizes Device Servers through a combination of data in the following settings: Device Name (DN), Owner Name (ON) and Password (PW). Each registered DS is assigned a unique port number during the registration. This is a port on the LinkServer to which any client wishing to communicate with this particular Device Server should connect.

The Device Server logs on to the LinkServer using its device name, owner name and password. Typically, the DS is preset to do so immediately when it boots (starts up). The LinkServer has a single port for Device Server logons -- 6450 by default. Because Device Servers are uniquely identified by their device name, owner name and password, a single login port for all Device Servers is sufficient.

A "client" host who wishes to communicate with a particular Device Server establishes a connection to the LinkServer, to the specific port that was assigned to this Device Server during registration. The link is thus created and both sides may exchange data.

A client host does not need any special login procedure to create this connection to the Device Server via the LinkServer. Instead of connecting to the IP address and port of the DS directly, it connects to the IP address of the LinkServer and to the port associated with a particular DS-- the difference is in parameter values only.

Unique "client-side" ports assigned to Device Servers are selected from a range of available ports as defined by three dedicated LinkServer configuration options (lowest number of port assigned to Device Servers, highest number of port assigned to Device Servers, list of ports never assigned to Device Servers).


Solution 2: Dynamic DNS (dDNS) Service

The Link Service is the most universal and easiest way to connect. The downside is that it is slower than direct connection, because all the data must go through the LinkServer.

This isn't critical for systems that do not produce a lot of traffic per each node. Still, there are times where you might want to create a direct connection to a device (for the sake of speed), but the IP address of this device changes from time to time (this is the case with most ADSL connections).

You need a way to track the device down -- a way to overcome this and connect to one 'stable' address. You need to know that this address belongs to the Device Server you want, and be able to rely on it.

This is where the LinkServer dDNS Service comes in. With dDNS Service each of your Device Servers gets a "host name", which looks something like dev1.abccorp.dev.srv1.com (in this example the domain name of your server is srv1.com). You can always connect to your device using this hostname. This URL stays the same even when the IP address of the Device Server changes. Further info on dDNS Service can be found here.

Since actual connection is established directly to the Device Server you would have to be able to reach it -- i.e, if it has a firewall protecting it, you must configure the firewall appropriately. Configuration would be more complex than with the Link Service, but you would gain an increase in communications speed.


dDNS Service: Further Details

On the Device Server side dDNS is enabled through dDNS registration (DD) setting. When this setting is at 1 (enabled) the DS registers on the dDNS Service as soon as it is powered up. During registration, the LinkServer creates two DNS entries: one for the external IP-address of the DS, and another one for its "internal" IP address.

Example of two DNS entries for the same Device Server:

For external IP address: dev1.abccorp.dev.srv1.com

For internal IP address:dev1.abccorp.int.srv1.com

Dev1 is the device name, it comes from the Device Name (DN) setting of the DS.

Abccorp is the owner name, it comes from the Owner Name (ON) setting of the DS.

Resulting host names are no different from any other host name (or URL) that you have ever used. Input such a name as a destination in any software that can connect to your Device Server and this name will be automatically resolved into current IP-address of this Device Server! This functionality is based on an industry-standard DNS protocol, so special drivers or software are required for this to work.

Only those Device Servers that are registered at the LinkServer can connect to the dDNS Service. Each DS is identified by the LinkServer through a combination of data in its Device Name (DN), Owner Name (ON), and Password (PW) settings.

Difference between Internal and External Addresses

The difference between the two types of addresses is rather simple. Usually the DS connects to a WAN through a router (firewall) which, in effect, "masks" the IP of the DS. So the DS can be, for instance, at 192.168.2.100 within its network segment (this is its "internal" IP), but the outside world sees it under a different IP address. This is the "external" IP of the DS. So, to recap:

· The "internal" IP is the actual IP address of the DS itself, such as 192.168.1.40. It is used within that specific network segment.

· The "external" IP is the IP of the router which is set to forward the data to the DS on the inside.

To reach a DS from outside of its network segment you would need to use the external IP address. However, if you connecting from the same network segment you will need to know the device's "internal" IP address. This is why the LinkServer employs two types of dDNS records.


Deployment and Administration

This chapter describes the deployment and administration of the LinkServer. The LinkServer is a JAVA-based product that can run on multiple platforms and is optimized for easy and fast installation.

For further information, see LinkServer installation and LinkServer configuration.


LinkServer Installation

This chapter describes installation of the LinkServer software. Before installing the software be sure to check installation requirements and procedure.


Requirements

The LinkServer can potentially run under virtually any flavor of Windows, Linux, FreeBSD, etc. At the time of writing, the LinkServer has been tested and verified to correctly run under the following OS versions:

· Windows 2000/XP "line"
· Linux (V2.4 kernel)
· FreeBSD

The LinkServer needs the following software for proper functioning:

Java Virtual Machine (JVM)

JVM is the only absolute requirement to run the LinkServer. The JVM can be pre-installed on the target system or bundled with the installer itself (see installation). Minimal version of JVM required to run the LinkServer is 1.4 (J2RE 1.4).

Relational Database Management System (RDBMS)

The LinkServer requires an RDBMS to operate. Distribution packages supplied by Tibbo include a simple database engine that is used by default. For large-scale systems we recommend using "industrial-grade" stand-alone RDBMS. The LinkServer is compatible with a wide range of such third-party database servers:

· Oracle
· Microsoft SQL Server
· Sybase
· DB2
· MySQL
· Informix
· PostgreSQL
· and many others..

The LinkServer and the RDBMS don't have to be installed on the same server. Is is also possible to configure the LinkServer to work with remote database, but in this case its performance will depend on the network conditions.

Domain Name System (DNS) Server

To use the Dynamic DNS Service you need an RFC-2136 compliant DNS Server. This can be local or remote server. RFC-2136 (Request For Comments) specification is called "Dynamic Updates in the Domain Name System". Dynamic updates are supported by most present-day DNS Servers, including an industry-standard BIND and Windows 2000/2003 DNS service.


Installation

Tibbo supplies pre-packaged installation files for the following operating systems:

· Windows 98, NT, 2000, XP, and 2003 Server

· Different versions of Linux

· Generic UNIX package (for FreeBSD/OpenBSD/NetBSD and other Unices)

To install the product, just run the installer executable file and follow the instructions. On some systems, you need to make the installation package 'executable' before running it.

Installation can run in GUI or console mode. GUI mode is selected by default, to switch to console mode installer should be launched with '-console' parameter. Console mode is suitable for installation on systems that have no graphical user interface (this is the case with most UNIX servers).

There are two flavors of LinkServer distribution for each operating system:

· Package with bundled Java Virtual Machine (JVM)

· Package without JVM

The first flavor installs JVM during the setup process. This JVM is used to run the LinkServer. In this case, the JVM is also removed when the LinkServer is uninstalled. Second version requires JVM to be pre-installed on the target system. Normally, JVM is detected and automatically used by the installer, but you can also specify the JVM path explicitly. This is done by adding -is: javahome <path_to_JVM> command line switch.

Additional installer options:

-is:tempdir <dir> Temporary directory to be used by the Launcher.
-is:log <file> Log debug messages to <file>.
-is:extract Extract the contents of the archive.
-is:nospacecheck Turn off disk space checking by the Launcher.


Startup and Shutdown

The LinkServer is started by a special Launcher created during the installation process. Launcher type depends on the operating system: Under Unix, it's the LinkServer.sh shell script, etc.

Under Windows, it is a small exe file accessible through the Start menu (Start > Programs > Tibbo > LinkServer) or as a desktop shortcut (shown below).

LinkServer Icon

The Launcher can be added to the auto-start sequence of the OS. This is also an OS-dependent operation. For example, under Windows you put a shortcut to the LinkServer Launcher in the Startup folder. Under FreeBSD, you create a simple shell script executing LinkServer.sh in background and put it to /usr/local/etc/rc.d/ directory. For further details, please see your operating system documentation.

The LinkServer Launcher accepts a number of command line parameters. These parameters are divided into two groups: The first group is interpreted by the launcher itself and the second is passed directly to the LinkServer application. For more info, please see Launcher command line parameters and LinkServer command line parameters.


Launcher Command Line Parameters

The following command line options are accepted by LinkServer Launcher:

-is:javahome <dir> JRE home which points to the directory containing bin/java.
-is:tempdir <dir> Temporary directory to be used by the Launcher.
-cp:a <classpath> Append <classpath> to the Launcher's class path.
-cp:p <classpath> Prepend <classpath> to the Launcher's class path.
-is:log <file> Log debug messages to <file>.

NEW TERM: A class path is the directory path specifying where compiled Java files are located on the local system.


LinkServer Command Line Parameters

The following command line options are accepted by LinkServer:

-c Create database structure.
-d<directory> Set home directory to <directory>.
-h Print list of command line options and exit.
-l<filename> Load configuration from file <file> and store it internally.
-s<filename> Save configuration to file <file> and exit.
-u Update database structure.
-p<user>/<pass> Set new password <pass> for account <user>.

Please note that there is no space before the argument for each switch. i.e, the correct form would be -pjohndoe/123 and not -p johndoe/123. This is different from Launcher command line parameters.


Shutting Down the Server

Only an administrator can remotely shut down the LinkServer. This is done from within the Web Admin interface, and is described in Stop Server. The server can also be shut down using the System Tray Icon menu or using the Net Admin interface.

When shutting down the machine the LinkServer is running on, the LinkServer shutdown sequence is automatically executed as well.


Net Admin

Net Admin is a feature used to shut down or restart the server when the Web Admin interface becomes unavailable for some reason, and the System Tray icon is also unavailable (i.e. on a system without graphical user interface).

Net Admin is accessed using Telnet or any other Telnet-like software. You have to telnet from the PC on which the LinkServer is running. You cannot access the Net Admin from any other host.

To access the Net Admin:

· Make sure you are working on the server actually running LinkServer.

· Telnet to 127.0.0.1 (localhost), port 6440. You should get a connection, and no prompt.

· To shut the server down: Type S and hit Enter.

· To restart the server: Type R and hit Enter.

· If the command was successful, you will get an A (Ack).

· If the command failed, you will get an E (Error).

The Net Admin interface is enabled by default. It is used during automatic upgrade or uninstallation of the LinkServer. If untrusted users have local access (by Unix shell or physical access) to the host running LinkServer, this feature should be disabled for security reasons. It can be disabled using the Web Admin interface.


System Tray Icon

After the LinkServer starts under Windows, a new icon appears in the System Tray, near the clock. It looks like this:

Systray Icon

Clicking this icon will bring up the following menu:

Systray Menu

The options in the menu are self-explanatory. They allow the you to easily open the Web Admin interface, restart the server or stop it.


Account Types

The LinkServer is built as a multi-user server. This means that usually one person installs and manages the LinkServer, and numerous other persons use the Product to access their Device Servers. These users can all belong to the same company, or they can be paying customers who purchase LinkServer access from a vendor who installed LinkServer on his own servers.

The person in control of the system is called Administrator. This person has full control over every aspect of the system. There can be several administrators for each LinkServer installation, though this is not recommended.

Regular users access the server through their user accounts. The users can see their own settings, register Device Servers they wish to communicate with, etc. They cannot change settings for other users or perform any administration operation which will affect the whole system (such as shutting the server down or restarting it). User accounts are completely independent. Device Servers registered to one account are not visible from other accounts.

Summary of Permission Levels

All users of the LinkServer Web Admin are granted certain access permissions:

· None. No permissions assigned for this user. It is a special permission level that is assigned for any user who is browsing the Web Admin pages but isn't logged in. This permission level allows browsing only the home, login, and registration pages.

· User. This is the default permission level for all registered users. Any Web Admin client must log in to gain user permissions. This permission level allows all "normal" activities like registering Device Servers, changing account info, etc.

· Admin. This permission level allows the execution of any administrative actions: make changes to LinkServer global configuration, create/edit/remove user accounts etc. Immediately following LinkServer installation, the default administrator account login and password are:

· Login: admin

· Password: admin

You are advised to change default administrator login name and password as soon as possible.


Accessing Administrator Account

Having correctly installed the LinkServer, you will probably want to access the Web Admin interface next, as admin (the default administrative user). This would let you configure the system for correct operation, set up user accounts, add other administrators, etc.

To access the LinkServer Web Admin interface as the default administrator, perform the following steps:

· Start the server, as described under Startup and Shutdown.

· Open a web browser, such as Internet Explorer or Mozilla Firefox.

· In the address bar, type https://xxx.xxx.xxx.xxx:8443, where xxx.xxx.xxx.xxx is the IP address of the server (if you're actually working locally on the server, this would be 127.0.0.1). This step is further described under Accessing the Web Admin Interface.

· In the login dialog that will appear, enter the following default username and password for administrator account:
· Login: admin
· Password: admin

For security reasons, it is highly recommended to change the password for this account as soon as possible following installation.


AuthKey

One of the challenges in setting up a communications channel over a WAN is authenticating the other side. Legacy interfaces, such as RS232, rarely made any provisions for authentication.

In a WAN scenario, the authentication factor gains importance. What if someone 'hijacked' the connection to your devices, so that your serial data went to a 'fake' server?

Similarly, it is necessary for the LinkServer to know that the Device Servers it is communicating with are "genuine" -- meaning, they're the actual devices from which data is expected. If there is no way to know this for sure, it might be possible for a third party to 'inject' false data into your system.

Such security breaches may have serious consequences in a production environment. This is why Tibbo LinkServer system incorporates a powerful authentication mechanism, implemented in hardware -- The AuthKey. The authentication itself is done by the "black box"-- the AuthKey -- which makes it impossible to spoof or reverse-engineer the authentication process by analysing LinkServer operation or its source code.

magenta-device

The AuthKey is similar in appearance to the DS202 Device Server, but its housing is red (magenta, actually). In terms of hardware, it is the DS202 with certain enhancements. The AuthKey is used to run a totally different firmware, which handles the authentication procedure. Regular "stock" DS202 can be converted into a "trial" AuthKey.

The authentication procedure is performed every time a Device Server logs onto the LinkServer to start communicating. At this point the DS sends certain identification parameters to the LinkServer. Instead of verifying these parameters directly, the LinkServer passes the data on to the AuthKey. The AuthKey then verifies this information, and answers back to the LinkServer if it's OK to establish a connection or not.

The DS also verifies authenticity of the LinkServer and AuthKey. This two-way authentication mechanism makes sure that both the Device Server and the LinkServer/AuthKey are "genuine".

The AuthKey also plays a role of a licensing key that enforces the maximum number of Device Servers connected to your LinkServer (The price for the LinkServer depends on the number of Device Servers that can be used with it).


Obtaining the AuthKey

You can create a trial AuthKey by yourself, purchase a "real" AuthKey, or use an AuthKey offered by Tibbo on the Internet.

Convert a normal DS202 to create a trial AuthKey

This method can be used for testing the LinkServer software. To get a trial AuthKey, simply download the appropriate AuthKey firmware file from Tibbo website and upgrade your DS202 with it. It will then allow you to use the LinkServer with up to 5 "simultaneously" connected Device Servers.

Notice that this upgrade cannot be performed through the network, in this specific case you have to upgrade the DS202 through its serial port (using COM access mode).

Obtain a dedicated AuthKey by purchasing a LinkServer license

This is done by contacting the Tibbo Sales Team and purchasing a LinkServer license for a specific amount of "simultaneously" connected Device Servers. You would then receive a dedicated AuthKey device (which looks like the DS202 in a magenta housing).

Use a trial AuthKey offered by Tibbo on the Internet

For a limited time, Tibbo may offer to use its own AuthKey connected to a real static IP-address on the Internet. The LinkServer can be setup to connect to this trial AuthKey. Check with Tibbo for details and availability of AuthKey on the Internet.

Note that both the AuthKey and the LinkServer must be properly setup to be able to work with each other. For more information see the following topics:

· Setting up AuthKey using DS Manager.

· Configuring LinkServer to work with AuthKey.


Licensing Details

LinkServer license cost varies according to the maximum number of "simultaneous" Device Server connections allowed. No more than a certain number of Device Servers can be connected to your LinkServer at any given moment. This limit is enforced by the AuthKey.

The AuthKey does not actually track connection itself -- it does not constantly check to see if a certain Device Server is still connected to the server. The AuthKey only takes note of Device Servers when they are logging in. Connection is considered to last from the moment the DS logs in and for the next 24 hours after that.

This means that when the Device Server logs in to the LinkServer, the AuthKey takes note of this and starts a 24-hour timer for this specific Device Server. If this Device Server disconnects and reconnects within the next 24 hours since previous login the timer is restarted. If this Device Server disconnects and does not re-connect for 24 hours or more, then this Device Server is no longer considered to be connected and another Device Server can "take its place".

Example:

· Supposing, you have a license for 5 connections.

· A Device Server called "DS1" connects. Now you have 4 connections available.

· After two hours, "DS1" disconnects. You still only have 4 connections available.

· 22 more hours pass, and "DS1" does not try to connect again. Now you have 5 connections available.

· Device Server called "DS2" connects. You have 4 available connections left.

· "DS1" connects again. You have 3 connections left.

· "DS2" disconnects. You still have 3 connections left.

It is noteworthy that one AuthKey can serve several servers running LinkServer software. This is possible, legal, and does not change the total number of Device Servers that can be simultaneously connected to all servers that rely on this single AuthKey.


Setting up AuthKey Using DS Manager

The AuthKey can be setup using the DS Manager (part of Device Server Toolkit (DST) software). Just like "normal" Device Servers, the AuthKey can be accessed in Auto-discovery or Address Book access modes. COM access mode is not supported by the AuthKey.

The list of settings available on the AuthKey is very different from that of a regular Device Servers. To view AuthKey settings correctly your DST installation should include a special file called v10-00.sdf (sdf files are configuration templates, you can read about them here). DST installation files include v10-00.sdf starting from DST version 3.6.5.

DS Manager with Settings

The highlighted portion of the window caption in the above screenshot contains the Serial Number (in this case, 12345678) required for licenses upgrades, and the current license limit (in this case, 2000 simultaneously connected Device Servers- see Licensing Details for more information).

Follows is a brief description of each setting:

Owner name This setting is the Owner Name (ON) Setting also found on all Device Servers. On the AuthKey it exists purely for easy identification in the DS Manager, so an entry such as "Auth" (like in the screenshot) can be quite appropriate.

Device name This setting is the Owner Name (ON) Setting also found on all Device Servers.

MAC-address This is the MAC address (FE) setting also found on all Device Servers. Each AuthKey comes with unique MAC address preset at the factory. Do not modify this MAC address unless you have to.

IP-address This is the IP address (IP) setting also found on all Device Servers. You have to select an IP-address that is compatible with the network segment to which the AuthKey is connected. IP address of the AuthKey must also be set in the LinkServer (click here for more info).

Port This is the IP address (IP) setting also found on all Device Servers. This is a port to which the LinkServer will have to send its authentication requests. The port must also be programmed on the LinkServer side (click here for more info).

Desired license limit This setting is unique to the AuthKey. It defines the number of "simultaneous" Device Server connections that you wish the LinkServer to accept (see upgrading your license). This number must match the data in the License verification string setting (described below).

License verification string This setting is unique to the AuthKey. It contains a special code that verifies desired license limit (see above).This code will be provided by Tibbo once you purchase a LinkServer license for a specific number of simultaneously connected Device Servers (see upgrading your license).

Licence verification string should be entered without any modifications. It works in tandem with the Desired license limit setting, the two must match for the desired number to be accepted. Whenever there is a mismatch between these two settings the AuthKey defaults to 5 "simultaneously" connected Device Servers. This is also the case for trial AuthKey made by "converting" the DS202- the limit in this case is always 5 Device Server.


Upgrading Your License

The LinkServer can be used free for up to 5 "simultaneous" connections. If you need to connect more than 5 Device Servers you will have to obtain an actual AuthKey device and/or purchase (upgrade) a license for the LinkServer software. LinkServer license cost varies according to the maximum number of "simultaneous" connections allowed.

After purchasing a license for a certain number of simultaneous connections you will have to upgrade the licensing information in the AuthKey.

This is what you need to do (note that this will only work for actual AuthKey and won't work for "converted" DS202)

· Using DS Manager (part of Device Server Toolkit (DST) software), open the Settings dialog for the AuthKey.

DS Manager with Settings

· In the caption of the Settings dialog you will see a Serial Number of your AuthKey. Send this number to Tibbo.

· You will receive an email in reply, which will confirm the number of simultaneous connections for which you have purchased the license. You will also receive a License Verification String.

· Enter the number of units for which you have obtained the license in the Desired license limit line in the Settings dialog.

· Enter the License Verification String received from Tibbo into the corresponding line in the Settings dialog.

· Click OK- this will save new setting values and also make the AuthKey reboot.

· Open the Settings dialog again- you should see new number of simultaneously accepted connections (i.e. L=2000 if you have purchased the license for 2000 connections).

If desired license limit and verification string do not match the AuthKey will revert to the trial limit of 5 simultaneous connections.


Configuring LinkServer to Work with AuthKey

The LinkServer Web Admin interface allows you to specify the IP-address and port of the AuthKey. These parameters can be found in the AuthKey settings portion of the General Configuration page.


LinkServer Configuration

This section is a LinkServer configuration guide. There are two ways to configure the LinkServer:

· Through the web-interface using standard browser like Internet Explorer or Mozilla Firefox.

· Using an XML file.

Normally, the first method should be used. File-based configuration helps to correct one or two settings when LinkServer can't start and web-interface is not available.

For details about both configuration methods, see:

· Web-based configuration

· File-based configuration


Web-based Configuration

LinkServer Web Admin is available immediately after startup. Its default URL is https://xxx.xxx.xxx.xxx:8443, where xxx.xxx.xxx.xxx is the IP address of any network interface of the server. Note, that the protocol used is HTTPS, not HTTP, because LinkServer accepts only secure connections. Default port number is set to 8443 because the default HTTPS port (443) is often occupied by another web server. You can always change port number back to 443 if this port is not busy- then you don't have to explicitly specify the port when accessing the LinkServer: https://xxx.xxx.xxx.xxx.

If it is not convenient to access LinkServer Web Admin by the IP address of its host, you can define one or more host names for it. You may add a DNS record defining a host name that points to the IP address of the server running the LinkServer software. After that, you can access Web Admin using a URL such as https://linkserver.serv1.com. For more info, see Web Admin settings.

Only an administrator can configure the LinkServer so you will have to login to an administrator account. Default login name and password are:

· Login: admin.
· Password: admin.

Once you have logged in, select Administration > Global configuration. Configuration options are divided into several groups, as described in following sub-topics.

When finished editing configuration, click on Save configuration and restart server button.

Restart process may take several minutes on slow servers. Web-interface is not available during restart, please wait some time before continuing to use it. You will also have to re-login.


File-based Configuration

File-based configuration should be used if LinkServer fails to start and its web-interface is not available. LinkServer accepts two command line options responsible for reading and writing configuration files:

-s[filename] This option will force the server to save its internal configuration to file filename. If filename is not specified, configuration will be written to file named linkserver.xml in LinkServer working directory. LinkServer is terminated immediately after configuration is saved.

-l[FILENAME] When this option is specified LinkServer tries to load configuration from file filename. If filename is not specified it looks for a file named linkserver.xml in the working directory. Configuration loaded from file only updates LinkServer internal settings, so all options omitted in configuration file stay unchanged in LinkServer's internal preferences.

LinkServer stores its configuration data internally. This is a persistent storage, so all settings remain unchanged if server is stopped and started up again. You need to specify the -l option to load configuration file only once, loaded settings will be stored internally and used in subsequent launches. For example, if the LinkServer was started with -l option and than your server was rebooted after a power loss, the LinkServer uses all settings loaded previously from file. You do not need to specify -l option again.

Configuration file is in XML (eXtensible Markup Language) format. Here is an excerpt from it:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE preferences SYSTEM 'http://java.sun.com/dtd/preferences.dtd'>
<preferences EXTERNAL_XML_VERSION="1.0">
<root type="system">
<map />
<node name="com">
<map />
<node name="linkserver">
<map>
<entry key="DeviceServerPort" value="6450" />
...
</map>
<node name="Database">
<map>
<entry key="DatabaseDriver" value="org.hsqldb.jdbcDriver" />
...
</map>
</node>
...
...
</node>
</node>
</root>
</preferences>

Usually you do not need to add options to this file manually. File structure is generated automatically by the LinkServer. The only thing you need to do is to change value field in the correct <entry> nodes (as indicated by their names, which are contained in the key fields).

Configuration options are divided hierarchically into several groups. The root group ("node", in XML terms) is called linkserver and highlighted in italics in the listing above. Its options are contained in another node- <map>- and represented by the <entry> elements. Each <entry> element includes a "key" field which contains the name of the option, and a "value" field which contains a value for this option. The root node contains sub-nodes, which are also encapsulated by <node> elements.

The structure of each sub-node reproduces the structure of the root node. For example, the option group called "Database" is contained in an element marked as <node name="Database"> (marked in italics on listing).

You can find detailed description of options and option groups under Global configuration.


Configuring Logging

As with most server software, the primary method to report all events and activities of the LinkServer is logging. The LinkServer has an advanced logging facility which is easily configurable through an ordinary text file. One of the key advantages is that logging configuration can be changed at runtime without restarting the LinkServer.

LinkServer uses Apache Log4J logging library for log output. It is highly customizable and allows multiple levels and sources of logging information along with numerous log destinations. Logging output can be redirected to:

· Console
· Text files
· XML files
· Windows event logs
· UNIX syslog
· Database
· Remote network server
· E-mail messages
· Java Message Service (JMS)
· And many other destinations..

LinkServer logging configuration file is located in the installation directory and is called logging.xml. The structure of this file is briefly described in logging configuration file section.


Logging Configuration File

This section describes default logging configuration file along with some details common to LinkServer logging configuration.

Here is a listing of default config:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration debug="false" xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p [%t] %C.%M (%F:%L) - %m%n"/>
</layout>
</appender>
<appender name="FILE" class="org.apache.log4j.DailyRollingFileAppender">
<param name="file" value="linkserver.log"/>
<param name="append" value="true"/>
<param name="DatePattern" value=".yyyy-MM-dd"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p [%t] %C.%M (%F:%L) - %m%n"/>
</layout>
</appender>
<category name="com.linkserver">
<priority value="info"/>
</category>
<root>
<priority value="info"/>
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
</root>
</log4j:configuration>

Default logging configuration is represented by a root configuration element, two appenders and one logging category. Root element (<root>) defines that global logging level is set to info: <priority value="info"/> (see logging levels topic for more info). It also defines a list of two appenders named CONSOLE and FILE. Appender is a destination for logging output. It can correspond to a text file, e-mail message etc.

Each appender is configured by its own <appender> element. This element must also specify a name of Java class responsible for this appender (consult manuals or books mentioned in logging framework documentation sources chapter for more information). In the listing above both appenders include elements named <layout> that defines the presentation of logged info. "FILE" appender also includes several <param> elements containing some additional options.

The <category> element defines which level is used for logging from each subsystem of LinkServer. Normally, users should not deal with <category> elements.


Logging Levels

LinkServer uses five predefined logging levels:

Fatal logging level is used to report only the most severe messages. The LinkServer usually stops if a fatal error is detected and reported.

Error messages do not cause LinkServer to stop immediately when they are reported, but they indicate that there are serious problems with the server operation and that action is needed to prevent server failure.

Warning messages show that something has gone wrong, but usually LinkServer can recover from such issues automatically and no immediate action is required.

Info messages reflect normal LinkServer activities. These messages should be used for monitoring by a system administrator.

Debug messages are used to solve problems if LinkServer does not behave as expected. Debug output is disabled by default. Enabling debug-level logging for all categories can lead to extremely high volume of logged messages and seriously affect LinkServer performance. Enable debug output temporarily only if you are absolutely sure that you need this. This level of logging is usually only enabled if advised by Tibbo support team.

To modify the logging level, perform the following steps:

· Edit logging.xml.

· Find the section that says:

<category name="com.linkserver">
<priority value="info"/>
</category>

· Change the priority value entry (info above) to the logging level you want to specify.

· Restart the LinkServer (this step is recommended but not mandatory).

The string priority value= appears in other sections of the file. Most importantly, it appears under the section </root>. Modifying this value under the section root (especially to higher logging levels, such as debug) may affect performance considerably, and even cause the LinkServer to halt or freeze.


Logging Framework Documentation Sources

LinkServer uses the Log4j library for logging output. This is a highly scalable, robust, and versatile logging framework. A full description of its features goes beyond the extent of this manual. You can find additional information about Log4j in the following books and web resources:

· Log4j official site

· The Complete Log4j Manual

· Logging in Java with the JDK 1.4 Logging API and Apache log4j


Operation Using Web Admin

This chapter outlines usage of LinkServer Services in operational conditions.

It includes a description of all of the features in the Web Admin interface, from adding and viewing new Device Servers through managing your user profile and up to administration of the server (for administrators).


LinkServer Web Admin

LinkServer Web Admin is a web-interface that gives remote control capabilities to LinkServer. Since Web Admin is a web application (an application that can be accessed using a standard web browser) it needs a web server to run. This web server is built into the LinkServer and tightly integrated with its functions. Is starts automatically each time the LinkServer is launched and shuts down when the LinkServer is stopped.

The Web Admin reference section contains further information about the purpose of each page available in Web Admin application.


Navigating the Web Admin Interface

The following screenshot shows the Web Admin interface as it appears after an administrator has logged on:

Link Server Admin Page

Click on the links below to jump to a detailed description of a specific menu item:

· Device Servers- this item displays a list of all Device Servers currently registered to this account.

· Events- displays event log.

· Settings- contains configuration options, personal profile info (such as contact details), etc.

· Administration- contains global configuration options for the LinkServer. This section of the interface is visible only to administrators.

The LinkServer dynamically generates each webpage when this page is accessed for the first time after the LinkServer was installed. This causes a slight delay when any page is first opened. This only happens once for each page after LinkServer installation.


Web Admin Page Reference

This section provides a description for each menu item (and page) of the LinkServer Web Admin interface.

The topics are laid out according to the hierarchy in the Web Admin main menu. Please note that not all pages are visible at all times. Certain pages maybe not available because of your current login status, permissions, or LinkServer configuration settings.

To get around the Web Admin interface, use the Navigation Bar at the top of the window:

Navigation Bar

The following menu items are available:

· Home
· Registration
· Login
· Device Servers
· Events
· Settings
· Logout


Home

Full page path: Home

Permission level: none

Welcome

This page is the starting point for LinkServer Web Admin. It contains a Welcome frame with the LinkServer logo, version number, and operating system details. This is what you see when you first log in.

Notes:

· When LinkServer is restarted using Web Admin, the current user is redirected to the Home page. Login and session information is discarded so all users need to login again. Server startup may take considerable time and the Web Admin application will stay unavailable for this period.

· The user is also redirected to the home page in case of successful login.


Registration

Full page path: Registration

Permission level: none

This page contains new user registration form. It is available for anybody who is browsing Web Admin pages, as long as users self registration option is enabled.

To register a new user account, perform the following steps:

· Enter new account name into the Username field.

· Enter the password for this account into the Password field.

· Reenter the password into the Repeat password field.

· Click Save

If registrations is successful you will be redirected to the login page. Enter the username and password specified during registration to log into this new LinkServer account.

Notes:

Username (also referred to as login) must contain between 4 and 32 characters and include only letters, numbers and underscore ("_") sign. It must also be unique within this LinkServer installation. All Device Servers that will be registered to this account must have their Owner Name (ON) setting programmed with the same name.

Password must contain between 4 and 32 characters as well.


Login

Full page path: Log in

Permission level: none

Login

This page allows you to log onto your account. Enter your account name (a.k.a. login name and user name) and password in the Authorization frame and click Log in".

If the LinkServer has just been installed and no accounts have been registered yet there is only one default account available: this is the administrator account. You can login to it using the following name and password:

· Login: admin.
· Password: admin.

For security reasons, it is higly recommended to change the password for this account as soon as possible following installation.


Device Servers

Full page path: Device Servers

Permission level: user

Device Servers

This page shows a list of Device Servers registered to this account. The following info is shown for each Device Server:

· Current status (offline, online, etc.).

· Device Server name (from the Device Name (DN) setting).

· Port number associated with this Device Server (see Link Service: further details).

· Date and time of the most recent login by the Device Server.

· IP address and port number from which this Device Server has establish the most recent connection (logged in).

Click on the column header to sort the list by this column. Click on the same header once again to reverse sort order (ascending vs. descending).

Click on Device Server's name to view detailed information for this Device Server.


View Device Server

Full page path: Device servers

Permission level: user

Device Server Info VIEW

This page shows detailed information for the selected Device Server.

There are two command links at the top of the page:

· Edit Device Server

· Remove Device Server

Click on the Remove link to remove this Device Server from current account. Once you do this the Device Server will be disconnected immediately (if it was connected to the LinkServer at that time).


Add/edit Device Server

Full page path: Device Servers > Add Device Server

Permission level: user

Device Server Info EDIT

To add (register) new Device Server, go to Device Servers > Add Device Server.

To edit an existing Device Server click on the name of a device on the Device Servers page, then click edit on the view Device Server page.

The following fields are available:

Device server name Must contain from 2 to 8 alphanumeric characters. It must be unique within current account. Same name must be programmed into the Device Name (SN) setting of the corresponding Device Server.

Device server password Must be from 4 to 8 characters long. Same password must be programmed into the Password (PW) setting of the corresponding Device Server.

Blocked When the Device Server is blocked it won't be able to login to the LinkServer. This option is useful when you need to temporary prevent Device Server from connecting without actually deleting its record from the LinkServer.

Inband commands allowed for client Inband commands are used for Device Server setup. This option needs to be enabled if the "client" will need to send inband commands to the Device Server.

Data buffering enabled The LinkServer can optionally buffer the data it will send to the client when client connects. Depending on your application you may choose to discard the data that is send by the Device Server when client is not connected or buffer the data. The LinkServer can buffer up to 100KB of data per each Device Server.

Register Device Server in DNS Enables the Dynamic DNS (dDNS) Service for this Device Server which means that whenever this Device Server logs in the DSN record will be updated.


Device Server Auto-registration

This feature allows Device Servers which are unknown to the LinkServer ("new" Device Servers, from the LinkServer's viewpoint), to register themselves automatically with the server.

For this to work, LS Auto-registration (AR) setting has to be enabled on the Device Server that is supposed to auto-register itself.

Once this setting is enabled, and the Device Server tries to connect to the LinkServer when it is not yet registered, the following sequence occurs:

· The Device Server tries to log on.

· If the Owner Name (ON) setting of this Device Server already exists on the server (as a registered account), yet the Device Name (DN) setting of this DS does not correspond to any registered DS for this account, the server responds with a special error code.

· In response, the DS sends additional registration data.

· The LinkServer registers the DS with default settings.

· The DS now logs on normally. From this point on it is also visible in the Device Servers list.

For this to work, an administrator must enable auto-registration for the whole account first, using Change User Settings screen.


Events

Full page path: Events

Permission level: user

Event Log

This page displays even log for current account.

The buttons labeled First, Previous, Next and Last are used to navigate the log. The Rows/page textbox controls how many rows (lines) appear in each page of the log -- this might affect the loading time required for the page.

Time Time column notes the most recent date/time when certain event has happened. The time is formatted according to the current user's date/time configuration (Regional Settings under Windows, for instance).

Date/time listed are adjusted for the current accounts timezone. For example, the server is located in London (GMT+0) and the user is located in Denver (so his account specifies GMT-7). An event occurs at 17:30 (U.K. time). Local time for the user in Denver is 10:30. When the user in Denver opens the log, that event will be shown as having occurred at 10:30.

Device Server Device Server column designates what is the Device Server associated with this event. This is the same name as the one programmed into the Device Name (DN) setting of the Device Server.

Event Event column provides event description and also how many times in a row this event has occurred.


Settings

Full page path: Settings

Permission level: user

General Account Info

This page contains a "General Account Info" frame. The fields are self-explanatory.

Two sub-menu items available on this page are:

· User profile

· General settings


User profile

Full page path: Settings > User Profile

Permission level: user

Three sub-menu links available on this page are:

· General information

· Contact information

· Change password

There are two tables on this page containing information concerning the user account:

General Info:

General Info

The first table includes the following data about the account:

· Username
· First name
· Last name
· E-mail
· Company
· Department
· Comments
· Time zone

Contact Info:

Contact Info

The second table, Contact Info, contains the following details:

· Phone no.
· Fax no.
· Address 1
· Address2
· City
· Region / State / Province / Area
· ZIP / Postal code
· Country

None of these fields are mandatory.


General Information

Full page path: Settings > User Profile > General Information

Permission level: user

General Info Config

This page contains a form allowing the user to change the following fields:

· First name
· Last name
· E-mail
· Company
· Department
· Comments
· Local Time Zone


Contact Information

Full page path: Settings > User Profile > Contact Information

Permission level: user

Contact Info Config

This page contains a form allowing the user to change the following fields:

· Phone no.
· Fax no.
· Address 1
· Address 2
· City
· Region / State / Province / Area
· ZIP / Postal code
· Country


Change Password

Full page path: Settings > User Profile > Change Password

Permission level: user

Change Password

This page contains a form used to change the current user's password. Enter password and password confirmation in the form and click Change password. There's no need to re-login after changing password.


General Settings

Full page path: Settings > General Settings

Permission level: user

Local Time Zone This setting affects date/time displayed in the event log (see this topic for explanation).

Date/time format Allows you to select date/time display format.


Administration

Full page path: Administration

Permission level: admin

Administration

This portion of the Web Admin interface is visible to administrators only, and allows them to perform various management tasks with the LinkServer.

It contains a list of available areas:

· User management

· Global configuration

· Restart server

· Stop server


Global Configuration

Full page path: Administration > Global configuration

Permission level: admin

This page contains a list of LinkServer configuration options. Edit one or more options and click on the Save configuration and restart server button. LinkServer will be rebooted and all changes will take effect.

The following setting groups are available:

· General settings

· Database settings

· Web Admin settings

· Dynamic DNS settings

· AuthKey settings


General Settings

Description: This group defines LinkServer global parameters that do not belong to any subcategory.

Group name in Web Admin: General settings

Group name in configuration file: linkserver

General Settings

Port number to listen for Device Servers

Key name in the configuration file: DeviceServerPort
Value type: Integer
Possible values: 1-65535
Default value: 6450

This option defines login port number for Device Servers, i.e. port to which Device Servers should establish connections (login). All Device Servers login to the same port, as described here.

Lowest number of port assigned to Device Servers

Key name in the configuration file: DeviceServerPortRangeMin
Value type: Integer
Possible values: 1-65535
Default value: 50000

This option defines the lowest port number that can be assigning to Device Servers being registered on the LinkServer. As explained in Link Service: further details each Device Server is assigned (upon registration) a port on the LinkServer to which clients that wish to communicate with this Device Server should connect.

Highest number of port assigned to Device Servers

Key name in the configuration file: DeviceServerPortRangeMax
Value type: Integer
Possible values: 1-65535
Default value: 60000

This option defines the highest port number that can be assigning to Device Servers being registered on the LinkServer. As explained in Link Service: further details each Device Server is assigned (upon registration) a port on the LinkServer to which clients that wish to communicate with this Device Server should connect.

Comma-separated list of ports never assigned to Device Servers

Key name in the configuration file: DeviceServerPortRangeExceptions
Value type: String
Possible values: 1-65535
Default value: "" (empty)

This option defines the list of ports that may not be assigned to Device Servers being registered on the LinkServer. This option allows you to exclude certain ports (that are used by other software on your server) from being occupied by the LinkServer. As explained in Link Service: further details each Device Server is assigned (upon registration) a port on the LinkServer to which clients that wish to communicate with this Device Server should connect.

Enable users self-registration

Key name in the configuration file: UsersSelfRegistration
Value type: Boolean
Possible values: true or false
Default value: true

If this option is enabled, anybody who has access to Web Admin can register a user account, log in and use LinkServer Services. When this option is disabled only an administrator can add new user accounts.

Enable gui mode (yes, no, or auto)

Key name in the configuration file: GuiMode
Value type: String
Possible values: yes, no, auto
Default value: auto

This option defines whether the LinkServer will make any output to the GUI (Graphical User Interface) of the server. Instances where GUI output is currently used include: Splash Screen at startup, icon in the System Tray, and error message boxes. When this option is disabled no output to GUI will be made.

Enable Net Admin feature

Key name in the configuration file: NetAdminEnabled
Value type: Boolean
Possible values: true or false
Default value: true

This option enables or disables local Telnet access to the Net Admin interface. It is recommended to turn this option off if untrusted users have local (physical or shell) access to the host running the LinkServer.

Set Net Admin Port

Key name in the configuration file: NetAdminPort
Value type: Integer
Possible values: 1-65535
Default value: 6440

This is an advanced option which is not accessible via the Web Admin interface. This option defines the port on which local Net Admin connections will be accepted. If this option is changed automatic uninstallation on upgrade of the LinkServer will fail.


Database Settings

Description: Options in this group control how LinkServer stores its data in the database.

Group name in Web Admin: Database settings

Group name in configuration file: linkserver/Database

Database Settings

Database driver

Key name in the configuration file: DatabaseDriver
Value type: String
Possible values: Any Java class name corresponding to a JDBC driver
Default value: org.hsqldb.jdbcDriver

This option defines which JDBC (Java Database Connectivity) database driver will be used. For example, to use MySQL database for data storage set this option to "com.mysql.jdbc.Driver". Consult JDBC driver documentation to find out the proper value.

Note: To allow LinkServer load any third-party JDBC database driver, a JAR (Java Archive) file containing this driver must be added to the path of the LinkServer Launcher. This is done by adding the following command line option to the Launcher:

-cp:a </path/to/driver/DriverName.jar>

D atabase URL

Key name in the configuration file: DatabaseUrl
Value type: String
Possible values: Database-dependent path string
Default value: jdbc:hsqldb:file:db/linkserver

Database URL is a database-specific string that defines database type, network or local filesystem path to a database containing LinkServer data tables, and any additional options. Consult JDBC driver documentation to find out the proper value. Default value for this option means that embedded HSQL database is used to store data using ordinary text files placed in db/ subdirectory of LinkServer installation.

Database username

Key name in the configuration file: DatabaseUsername
Value type: String
Possible values: Any username suitable for the database server
Default value: sa

This option defines which username is used to log on to the database server. The default value allows to connect to the database server embedded into the LinkServer.

Database password

Key name in the configuration file: DatabasePassword
Value type: String
Possible values: Any password suitable for the database server
Default value: "" (empty)

This option defines which password is used to log on to the database server. Default value allows to connect to the database server embedded into the LinkServer.

Database SQL dialect

Key name in the configuration file: DatabaseSqlDialect
Value type: String
Possible values:

Value
Database server
org.hibernate.dialect.DB2Dialect
DB2
org.hibernate.dialect.DB2400Dialect
DB2 AS/400
org.hibernate.dialect.DB2390Dialect
DB2 OS390
org.hibernate.dialect.PostgreSQLDialect
PostgreSQL
org.hibernate.dialect.MySQLDialect
MySQL
org.hibernate.dialect.OracleDialect
Oracle (any version)
org.hibernate.dialect.Oracle9Dialect
Oracle 9/10g
org.hibernate.dialect.SybaseDialect
Sybase
org.hibernate.dialect.SybaseAnywhereDialect
Sybase Anywhere
org.hibernate.dialect.SQLServerDialect
Microsoft SQL Server
org.hibernate.dialect.SAPDBDialect
SAP DB
org.hibernate.dialect.InformixDialect
Informix
org.hibernate.dialect.HSQLDialect
HypersonicSQL
org.hibernate.dialect.IngresDialect
Ingres
org.hibernate.dialect.ProgressDialect
Progress
org.hibernate.dialect.MckoiDialect
Mckoi SQL
org.hibernate.dialect.InterbaseDialect
Interbase
org.hibernate.dialect.PointbaseDialect
Pointbase
org.hibernate.dialect.FrontbaseDialect
FrontBase
org.hibernate.dialect.FirebirdDialect
Firebird

Default value: org.hibernate.dialect.HSQLDialect

This option defines Java class name for the database SQL dialect. For example, use com.hibernate.dialect.MySQLDialect if you use MySQL database to store data. If your database server is not listed in the table above, please contact the technical support team.

Disable connection pooling

Key name in the configuration file: DisableConnectionPooling
Value type: Boolean
Possible values: true or false
Default value: false

Connection pooling should be switched off in case of problems with the database. This can resolve some issues or, at the very minimum, lead to more understandable logging output.


Web Admin Settings

Description: Options in this group control the behaviour of the LinkServer Web Admin.

Group name in Web Admin: Web admin settings

Group name in configuration file: linkserver/WebAdmin

Web Admin Settings

Comma-separated list of aliases

Key name in the configuration file: Aliases
Value type: String
Possible values: One or more network host names separates by commas
Default value: "" (empty)

This option defines host name(s) by which LinkServer Web Admin can be accessed. This option will work if specified host names are correctly setup in the DNS. This option should be set in addition to configuring your DNS server.

Port number to listen for HTTPS connections

Key name in the configuration file: SslPort
Value type: Integer
Possible values: 1-65535
Default value: 8443

Defines port number on which Web Admin application will be available. You can change this option's value to 443 if there are no other web servers listening on this port. 443 is the default HTTPS port number. It is not recommended to use 80 as the value of this option, because 80 is default port number for non-secure HTTP protocol.


Dynamic DNS Settings

Description: Options in this group are responsible for the Dynamic DNS service.

Group name in Web Admin: Dynamic DNS settings

Group name in configuration file: linkserver/DynamicDNS

Dynamic DNS Settings

Enable dynamic DNS updates

Key name in the configuration file: Enabled
Value type: Boolean
Possible values: true or false
Default value: false

This option enables registration of all connecting Device Servers in the DNS.

Zone name

Key name in the configuration file: Zone
Value type: String
Possible values: Any valid DNS domain name
Default value: "" (empty)

This option defines DNS zone (domain) name to which LinkServer will add hosts corresponding to Device Servers. Zone name can be domain name in your company's local DNS or global domain name like "serv1.com".

Host pattern for registering external IPs

Key name in the configuration file: HostPatternForExternalIPs
Value type: String
Possible values: String containing special tokens
Default value: %n.%o.ext

Defines host name pattern to use for registering external IP addresses of Device Servers. Value of this option is parsed and the following substitutions are made:

%n is changed to the device name of a particular Device Server
%o is changed to the owner name of a particular Device Server

The result is prepended to the zone name to form a fully qualified domain name.

Host pattern for registering internal IPs

Key name in the configuration file: HostPatternForInternalIPs
Value type: String
Possible values: String containing special tokens
Default value: %n.%o.int

Defines host name pattern to use for registering internal IP addresses of Device Servers. Value of this option is parsed and the following substitutions are made:

%n is changed to the device name of a particular Device Server
%o is changed to the owner name of a particular Device Server

The result is prepended to the zone name to form a fully qualified domain name.

IP address of DNS server

Key name in the configuration file: ServerIP
Value type: String
Possible values: Any IP address
Default value: "" (empty)

Defines IP address of the DNS server used for Dynamic DNS updates.

Port number on DNS server to communicate with

Key name in the configuration file: ServerPort
Value type: Integer
Possible values: 1-65535
Default value: 53

Defines destination port number on DNS server used for Dynamic DNS updates.

Enable Transaction Signature (TSIG) keys

Key name in the configuration file: UseTSIGKeys
Value type: Boolean
Possible values: true or false
Default value: false

This option enables using Transaction Signature (TSIG) keys destined for making communication with DNS server secure.

TSIG key name

Key name in the configuration file: TSIGKeyName
Value type: String
Possible values: Any string value conforming to the Dynamic DNS specification
Default value: "" (empty)

Defines name of key to be used for Transaction Signatures.

TSIG key value

Key name in the configuration file: TSIGKeyValue
Value type: String
Possible values: Any string value conforming to the Dynamic DNS specification
Default value: "" (empty)

Defines value of key to be used in Transaction Signatures.

Enable TCP mode

Key name in the configuration file: TCPMode
Value type: Boolean
Possible values: true or false
Default value: true

If this option is set to true, TCP protocol is used for DNS updates, otherwise all transactions are performed using UDP.

Timeout for DNS operations, seconds

Key name in the configuration file: Timeout
Value type: Integer
Possible values: Any integer number
Default value: 10

Defines timeout for DNS update operations. If no answer is received from the DNS server within this time, DNS update operation is considered unsuccessful.

TTL for new DNS records, seconds

Key name in the configuration file: TTL
Value type: Integer
Possible values: Any integer number
Default value: 600

Defines Time To Live (TTL) interval that is set for all newly created DNS records. Low value of this setting leads to high number of requests to the DNS server. High value results in slower update of information. This value is counted in seconds (600 equals 10 minutes).


Authentication Key Settings

AuthKey settings

Description: Options in this group are used to select the IP-address and the port number of the AuthKey.

Group name in Web Admin: AuthKey settings

Group name in configuration file: AuthKey

Authkey Settings

IP address (broadcast addresses allowed)

Key name in the configuration file: IP
Value type: String
Possible values: Any valid IP address
Default value: 255.255.255.255

This option specifies the IP address of the AuthKey. This AuthKey must be reachable from the LinkServer. The AuthKey can be located on the same or different subnet. IP-address specified here must match the IP address setting of the AuthKey (unless a broadcast address is specified- see below).

Notice that AuthKey itself may need to be properly set up as well.

Broadcast addresses are allowed. Communications between the LinkServer and the AuthKey are based on the UDP protocol so default "broadcast" (255.255.255.255) value for this setting can also be used. In this case all requests to the AuthKey will be made as link-level broadcasts so any local AuthKey will reply. This allows you to start using your AuthKey without any configuration- just connect it to the same network segment with the LinkServer.

Port number

Key name in the configuration file: Port
Value type: Integer
Possible values: 1-65535
Default value: 65535

This option specifies the UDP port on the AuthKey to which the LinkServer will be sending its authentication requests. It must be identical to the port setting of the AuthKey itself.


User Management

Full page path: Administration > User management

Permission level: admin

UserList

This page shows a list of all user accounts. Each account entry includes the following details:

· Username for this account

· First and Last name of the account owner

· E-mail address

Click on any column header to sort the list by this column. Click on the same header once again to reverse sort order.

Click on a username to view user information.


Create New User Account

Full page path: Administration > User management > Create new user account

Permission level: admin

This option allows an administrator to create user accounts. You can only create account itself but not set any of the profile details (such as name, address, etc). Only this account's owner can set those details.


View User Information

Full page path: Administration > User management

Permission level: admin

ViewUserInfo

This page shows a table with all the details about selected user account. This table is divided into three parts, and each part has an Edit link which leads to a corresponding edit info page.

The last part of the table, Settings, allows you to also change user permissions and allow him to automatically register Device Servers.

The top of the table also contains a remove user link. Clicking this link causes the selected account to be removed and all of its Device Servers to be disconnected immediately.


Change User Settings

Full page path: Administration > User management > Specific user > General Settings > Edit

Permission level: admin

EditUserGeneralSettings

Permissions

Value type: String
Possible values: none, user, admin
Default value: user

This allows you to make the user into an administrator, thus giving him full control over the server, or to disable his account (similar to deleting the account), by setting permissions level to none.

Local Time Zone

This allows you to configure the timezone for this account. This influences time displayed in logs within the Web Admin interface.

Date/time format

This allows you to configure the user's current locale, used for correctly formatting the date and time when displaying logs.

Enable automatic registration of Device Servers

This lets the user's Device Servers automatically register with the LinkServer as soon as they try to log on. It is described in further details under Device server auto-registration.


Restart Server

Full page path: Administration > Restart Server

Permission level: admin

Restart Server

Selecting this menu item causes the server to be restarted. After you select this link the LinkServer displays the message "Server is being restarted." All current communications sessions are dropped and all logged users are disconnected. Connections may resume once the server has restarted.

The server can also be restarted using the System Tray Icon menu.


Stop Server

Full page path: Administration > Stop Server

Permission level: admin

Stop Server

Selecting this menu item causes the server to be stopped. After you select this link the LinkServer displays the message "Server is being stopped". All current communications sessions are dropped and all logged users are disconnected.

Exercise caution when stopping the server remotely- the Web Admin interface won't be available after that so you won't have an easy way to start the LinkServer again.

The server can also be stopped using the System Tray Icon.


Logout

Full page path: Log out

Permission level: user

Select logout to log off your account. You will be automatically redirected to the login page.


Troubleshooting

Something went wrong? Please read below. Also, check our Knowledge Base to see if your issue appears there.

And if all else fails, you can always ask for Technical Support.


Errors in Accessing AuthKey

When trying to load the AuthKey's settings the "normal" way (using the DS Manager), you may get an error looking like this:

DS Manager Error

And when clicking the link here, you will get a dialog similar to this:

DS Manager Error 1

This means that you're missing a file, called v10-00.sdf. This file should be located in the sdf subfolder of the Device Server Toolkit folder. If you are indeed missing this file, please download the most recent version of the Device Server Toolkit from the Tibbo website. If for some reason this fails, request the sdf from the technical support team.

Once this file is properly located, you will no longer get an error, and will instead get the normal settings for the AuthKey, which look like this:

DS Manager with Settings NoCircle

These settings are more fully described under Setting up AuthKey using DS Manager.


DS Has Trouble Connecting to Server

Here is a list of error patterns that you might encounter if there is a problem with your setup:

IP address not obtained. This has nothing to do with Dynamic DNS itself. It just means that your Device Server is configured to obtain its IP from the DHCP server and for some reason this is not working properly. The Device Server will only attempt to register at tibbo.net after it has successfully configured of its own IP.

Sending ARP. You have specified an incorrect Gateway IP-address/ NetMask or your network router is not setup correctly.

TCP connection is being opened. You have entered incorrect dDNS Server IP-address or your network router is not setup correctly.

TCP connection reset by the network host. You have specified incorrect dDNS Server Port/ dDNS Server IP-address.

led_LS Login Failed Login failed. LinkServer has rejected login from your Device Server. Make sure that Owner Name= Unique User ID, Device Name= Device Name, and Login Password= Login Password.


Only 5 Devices Can Connect

If you bought over 5 licenses but only 5 devices can connect to the LinkServer, there is probably a mismatch between the license verification string setting and the desired license limit setting in the AuthKey.

To resolve this, please browse to Setting up AuthKey using DS Manager.


User Forgot His Password

It sometimes happens that a user, or even the administrator of the system, forgets his password. In such a case, the user must alert the system administrator, who will re-set his password.

Resetting the password is done using the -p command line option. The syntax for this option is -p<username>/<password>.

So, assuming the user johndoe forgets his password and alerts the administrator, here's what the administrator would do to reset johndoe's password to foobar:

· Shut down LinkServer (see Stop Server).

· Run LinkServer once more, with the command line argument -pjohndoe/foobar. Notice there is no space between the argument and its parameters.

· johndoe's password would now be foobar and he would be able to login.


Server not Responding

Sometimes, there may be situations where the server cannot be accessed, but is still running. You can see that the process is running, but when trying to access the Web Admin interface, the request times out.

This means that the LinkServer is running, but with errors. You have two options to resolve this:

Using Net Admin

This is the recommended option. Access the Net Admin interface via telnet to port 6440, and use it to shut the server down (S command) or restart it (R command).

Manually kill the processes

This option is not recommended, as it might kill other Java processes running on the host. To use it, you must kill the server and the JVM (Java Virtual Machine) processes manually, and then start the server again.

Under Windows, the processes to kill are Linkserver.exe, and java.exe. Kill all instances of these processes using the Task Manager (Ctrl+Shift+Esc under Windows 2000/XP).

Under Unix, the processes to kill are linkserver.sh and java. There are many Java processes active at any one time. Kill the process with the lowest PID (Process ID). This is important. Killing another process will not resolve the problem.

There are specific instances where one should kill another process than the one with the lowest PID, but these are special cases, which depend on specific server configurations. Killing the process with the lowest PID will most likely resolve this situation.


Application Notes

This part contains all our Application Notes in chronological order:

· AN001. Customization options in our Products

· AN002. Practical advice on integrating EM Module into your device

· AN003. Time delays when the DS is opening TCP connection to the PC

· AN004. How to send the same data to several DS

· AN005. Remotely controlling I/O lines on the DS

· AN006. Using Device Server Toolkit with Windows Firewall (XP/SP2)


AN001. Customization Options in Our Products

What's in this Application Note

Our Customers that supply Tibbo Device Servers with their own equipment (systems) often wonder if it is possible to alter default setting values of the DS, hide certain settings so they could not be seen and edited in the DS Manager, hide some installation components (for example, VSP Manager), display their Company name instead of Tibbo, etc. This article describes an array of customization options that are available.

Contents:

- Define your own default (post-initialization) setting values
- Hide settings so they cannot be viewed (edited) through the DS Manager
- Select which DST components should be installed on your User's PC
- Replace default name and logo (bitmap) with your own name and logo in the installation program
- Prepare your own installation file (distribution CD)

Define your own default (post-initialization) setting values

Important note: Release3.5 branch of application firmware (i.e. firmware for second-generation devices) only supports custom profiles starting from V3.54. Unfortunately, there remains a limitation regarding how the firmware file with custom profile attached can be loaded into the DS. Custom profile will only work if upgrade was performed through the network. If firmware file (with custom profile attached) was loaded through the serial port then custom profile will not work correctly. We apologize for inconvenience but nothing can be done to remove this limitation. Release3.0 branch of application firmware does not have this limitation.

It is now possible to define your own, different, post-initialization setting values. Why would you want this? Well, if you supply a system in which the DS is always used in TCP/IP mode, then you might want to make the Transport Protocol (TP) setting default to 1(TCP) instead of 0(UDP), as it is "by default". And if you know that your serial device works at 19200bps, then wouldn't it be good to set this baudrate as a default value for the Baudrate (BR) setting (instead of the "factory default" of 38400bps).

The process of defining your own post-initialization defaults starts with creating a profile file. This file should have a .txt extension. You can use a Notepad or any other simple text editor to create this file. In our example we will create a profile for a Company named "XYZCORP". We will create a custom profile that will make the following changes to the original post-initialization values of the DS:

-Transport Protocol (TP) setting= 1(TCP)
-Routing Mode (RM) setting= 2(client)
-Baudrate (BR) setting= 4(19200bps)
-Parity (PR) setting= 2(odd)

Open the notepad and create the file named profile.txt that contains the following data:

_XYZCORP
TP1
RM2
BR4
PR2

Note: put <CR> even on the last line so this line is complete.

Each line of this file except the first one corresponds to a particular setting. Setting mnemonics and desired values are exactly the same as the ones used for DS programming via the serial port or network- you can find this data here.

The first line of this file is reserved for the profile name. This name is displayed by the DS Manager in the caption of the settings dialog. This feature is provided so that it was possible to tell whether the DS is running a "profile-modified" firmware or default firmware. The profile name must start with the underscore sign ("_") or it will not be recognized.

Now that your profile is created you need to merge it with the DS firmware file. To do this, you need to use a small DOS program called add_prof.exe. The program can be emailed to you on request.

Put all three files (firmware file, profile file, and add_prof.exe) into the same directory. The firmware file should be of "W" or "S" type (i.e. em_314w.bin or em_314s.bin). As explained above, this means that only "older" devices (EM100-00/ -01/ -02, DS100-00/ -01/ -02) can use profile files at the moment.

The executable is a DOS program, so open a DOS session and run the program like this:

add_prof input_firmware_file profile_file output_binary_file

Note: you don't need to specify file extensions, the program will assume that input_firmware_file and output_binary_file have .bin extension, and the profile_file has the .txt extension. So, in our example you should type:

add_prof em_312s.bin profile em_xyz

The output file, em_xyz.bin will contain exactly the same firmware code plus the profile data you have defined. Now upgrade your DS using this new file.

After the upgrade launch the DS Manager and open the settings dialog of the DS that you've just upgraded. Notice that dialog caption now displays the name of your profile.

Now close the dialog and initialize the DS. After the initialization is finished open the settings dialog again and observe new default setting values that have been set.

Hide settings so they cannot be viewed (edited) through the DS Manager

Custom initialization profiles allow you to alter the initial post-initialization values of settings but they do not protect those settings from being edited by the User. Sometimes it makes a good sense to hide certain settings. For example, if you know that in your system the DS is always used in TCP/IP mode then it may be a good idea to hide the Transport Protocol (TP) setting so it is not displayed by the DS Manager at all. The principle here is: "less choices offered- less questions asked".

In our DST software the list of settings displayed for the DS by the DS Manager is defined by the .sdf files (SDF= Setting Definition File). During installation those files are copied into the .../Program files/Tibbo/Device Server Toolkit/sdf folder. Filenames correspond to the firmware versions of DS (except for the file wizserial.sdf- this one is used by the Connection Wizard and must be always kept as is). For example, your /sdf folder can contain the files V2-21.sdf and V3-00.sdf. These files correspond to firmware V2.21 or higher and V3.00 or higher. That is, when the DS Manager encounters the DS with firmware V2.53 it will use the file V2-21.sdf because 2.53 is later that 2.21 but earlier than 3.00.

The data structure inside the .sdf file is very straightforward: each line represents one Setting or Setting group. Here is one (abstracted) example of such a file:

I=$NET;D=Network Settings;T=GROUP
I=ON;D=Owner name;T=STRING;C=EDIT;MAXLEN=8;F=R
I=DN;D=Device name;T=STRING;C=EDIT;MAXLEN=8;F=R
...
...
I=E1;D=Stop-character (ASCII code);T=INT;C=STATIC;M=CHARDLG;V=E1>255? "ASCII code cannot exceed 255":""
I=P1;D=Number of post-characters;T=INT;C=EDIT/SPIN/0/1/1/1;V=P1>15? "Maximum number of post-characters is 15":""

The first line in the above example creates a setting group "Network Settings". Each group gets its own tab in the settings dialog of the DS Manager. All other lines in the above example represent individual settings. You can change the way the DS Manager displays the settings by rearranging and/or editing the data in the .sdf file. For example, supposing you want to create another group of settings called "Advanced" and put two settings there: Owner Name (ON), and Device Name (DN). All you have to do is add three lines to the end of the .sdf file:

...
...
I=$ADVANCED;D=Advanced;T=GROUP
I=ON;D=Owner name;T=STRING;C=EDIT;MAXLEN=8;F=R
I=DN;D=Device name;T=STRING;C=EDIT;MAXLEN=8;F=R

Save the file and reopen the settings dialog: you will see the new tab:

To hide settings simply remove corresponding lines from the .sdf file.

All .sdf files are supplied to the User as a part of the Device Server Toolkit installation. To see those files download the .zip archive of our distribution to your PC and unzip this archive into a separate folder. You can change the .sdf files and then prepare your own installation that you will distribute with your system (see below for details)

Select which DST components should be installed on your User's PC

You can hide certain DST components from being installed on your User's PC. This may come handy sometimes. For example, if you distribute the DS in a system that does not utilize the VSPD then why install the VSP Manager? This will only create confusion and extra questions!

Components that can be selected/deselected are listed in the tdst.ini file found inside the DST distribution. To see the tdst.ini file download the .zip archive of our distribution to your PC and unzip this archive into a separate folder. Open the file using any simple text editor (i.e. Notepad). You will see that the file contains the following data:

...
showdlg = 1
conwizard = 1
vsp = 1

The first line specifies whether the User will be presented with the screen asking him to choose which components to install. When showdlg = 1 the screen will be shown during the installation. When showdlg = 0 the screen will not be shown. The second line defines the default choice for the Connection Wizard: 1- "install", 0- "do not install". When showdlg = 1 the User will still have a chance to reverse this default selection, but when the showdlg = 0 the User won't be able to choose and the Connection Wizard will be installed or not installed according to the value of conwizard entry in tdst.ini. This means that if you set showdlg = 0 and conwizard = 0 then the Wizard will never be installed (and the User won't even know that there is such an option).

The third line (vsp=x) defines whether the VSP Manager and the Port Monitor will be installed (Port Monitor is always installed together with the VSP Manager). Currently, there is no any way to disable the DS Manager so this component is always present.

It is not enough to just change the file tdst.ini. You need to "sign it up" in order for the installation program to recognize this changed file. See below for more information.

Replace default name and logo (bitmap) with your own name and logo in the installation program

When you distribute the DST as part of your own system you may wish to display your own Company name and logo in the installation screens.

You can achieve this by editing the data in the tdst.ini file. To see the tdst.ini file download the .zip archive of our distribution to your PC and unzip this archive into a separate folder. Open the file using any simple text editor (i.e. Notepad). You will see that the file contains the following data:

companyname = Tibbo Inc.
companyshortname = Tibbo
productname = Device Server Toolkit
setupimage = Tibbo.bmp
setupimageparams = 1;;;255,0,255
...

Companyshortname and productname define the default installation directory of the software. Directory is:

.../Program Files/companyshortname/productname

So, if your Company name is "XYZCorp" and you wish the software to be called "DST" then input the following data:

companyshortname = XYZCorp
productname = DST

In this case the default installation directory for the software will be:

.../Program Files/XYZCorp/DST

Productname is also shown during the software installation. You can define your own setupimage as well. This is a bitmap that is displayed in the installation screens. Unfortunately, there is no way to define the position of this bitmap in the window- InstallShield software used to generate installation files doesn't provide this flexibility. So, the bitmap position is fixed. The only thing you can do is define if this bitmap will contain a transparent color.

Setupimageparams line has several parameters. The first one specifies if there is a transparent color (1 for "yes" and 0 for "no"). Last three numbers specify which color is to be transparent. For example, if you don't want any transparency then set setupimageparams=0;;;0,0,0. And if you want the white color to be considered transparent then set setupimageparams=1;;;255,255,255.

One remaining parameter that we haven't mentioned yet is companyname. It is not displayed anywhere in the software itself but it is saved into the Windows registry upon installation.

Prepare your own installation file (distribution CD)

If you have made changes to the file tdst.ini or have modified the bitmap specified by the setupimage line then you need to signup your changes first. Signup process calculates the hash on the file contents and saves this hash in the signature= line of the tdst.ini. When the signature and the contents of the files do not match the changes you have made are ignored. You need to perform the signup process after you have made all the changes. Signup does not include the .sdf files so if you just changed these files you don't need to do it.

Here is what you need to do to signup your changes. First, request (from us) an archive called signup.zip. After you receive the file unzip it into the same directory where you unzipped all the installation files for the DST. Signup.exe is a DOS program and you run it like this:

signup tdst.ini

If everything is OK the program will generate the following output:

tdst.ini has been successfully signed up

You can distribute the modified version of the DST as a set of files or you can create a self-extracting ZIP archive (recommended). Signup.exe and tdstsign.dll files should not be included with your distribution. Please, make sure these files don't get included by mistake!


AN002. Practical Advice on Integrating EM Module into Your Device

What's in this Application Note

Over the cause of the past several years we have been in constant contact with Companies that are using our Ethernet-to-serial Modules (such as EM100) to network-enable their products. Invaluable experience and feedback that we have received in the process has helped us realize that some practical aspects of the Module integration are not always understood early enough in the product design cycle. As a result some devices that utilize our Modules were designed without proper consideration for the practical issues that may arise during the manufacturing or operation of the Device. This Application Note summarizes our experience. Follow the suggestions below and you may well save yourself a lot of headache in the future.

Contents:

- Position the Module as close as possible to the RJ45 connector, do proper layout
- Make sure you supply good power at required current
- Proper reset is a must!
- Provide status LEDs, prog/init button, and serial access connector
- Let your main CPU control the Module...
- ...Or let the EM Module control your main CPU

Position the Module as close as possible to the RJ45 connector, do proper layout

Note: this part applies to all Tibbo Modules except EM202 which has a built-in RJ45 connector and Ethernet magnetics.

Improperly positioned EM Module will generate a lot of noise (EMI or Electro-Magnetic Emission). Put the EM, its Ethernet magnetics (if not built into the Module), and RJ45 connector as close as possible to each other. Failing to do so will make passing CE (FCC) EMI test very difficult! Additional problems may include communications problems and susceptibility to electrostatic discharge (ESD) damage.

There is a common misunderstanding regarding the CE/FCC EMI certification of our Modules. Being Modules, they are not certified "as is" but are tested on a particular PCB, usually our Evaluation Board. These boards have proper PCB layout and a conclusion is drawn that if the EM Module can pass the test on such a board then it can pass a test on another board with a proper layout. So, even though the EM Module itself is pre-tested your whole device may require CE/FCC certification.

Shown below is a proper layout for the EM100 Ethernet Module. This Module has Ethernet magnetics built-in, so only RJ45 connector must be added externally. The main point here is the length of wires that link the pins of the RJ45 connector to the RX-, RX+, TX-, TX+ pins of the EM100. The shorter the length, the lower the noise.

Another important point. Do not create a ground plane in the vicinity of the RJ45 connector and RX-, RX+, TX-, and TX+ lines. The ground plane should "wrap around" the RJ45 area, but not cross any of the 4 interface wires. This is very important! Providing a ground plane beneath the connector area will make your device very susceptible to the ESD.

Make sure you supply good power at required current

Tibbo EM Modules are just like IC chips- they require a regulated DC power source, 5V nominal, +/- 5% deviation. Some Modules (such as EM202) consume relatively high current (~230mA)! We provide this data in our Documentation and yet we still have cases where our Customers use "bad" power supplies. So, this advise is simple: make sure you supply regulated 5V DC and that your power supply can offer necessary current.

Proper reset is a must!

Tibbo EM Modules do not have internal reset circuits so you must provide an external power-on reset. It is not enough to just tie the RST pin to VCC, this won't work! We also do not recommend using a simple RC-circuit. Such circuits are not reliable because they do not monitor the supply voltage and won't work properly under many circumstances.

For example, if you have a power supply that "starts slowly" (i.e. its voltage rises slowly after the powerup) then the reset pulse generated by the RC circuit may end before the VCC comes to within 5V-5%. Another problem condition is a "brownout" (this is when the VCC momentarily goes below 5V-5%). Brownouts can cause the EM Module to hang up. Use a proper reset IC instead- this will give you a very reliable reset both on startup and in case of a brownout. Some reset ICs (for example MAX810 from MAXIM) have a very attractive price now (about USD0.5). Reset IC you use must have the following spec: (1) active high reset, (2) reset pulse of at least 100ms, (3) reset threshold of around 4.7V. If your device already has a matching reset IC then you can use its output for the EM Module as well.

Another possible reset arrangement is to use a free I/O pin of your device's main CPU. I/O pins of most CPUs default to HIGH state upon hardware reset. For example, supposing that your device is based on the x51 microcontroller. You already have a reset circuit for this microcontroller so why would you add yet another one to reset the EM Module? You can connect an unused I/O pin of the x51 to the RST pin of the EM. On startup the x51 will receive a proper reset from the reset circuit and its I/O pins will be in the HIGH state. This will provide a reliable reset to the EM100. You can modify the code of your main microcontroller to switch the "reset" I/O pin to LOW after a delay of, say, 100ms.

We recommend you to use this "CPU-controlled reset" approach whenever possible. Not only it lowers your cost (no need for an extra reset IC) but also gives your main CPU the ability to reset the EM Module at any time. This, as we will show later, can come very handy if you want to enable your CPU to program the settings of the EM and/or upgrade its internal firmware. Of course, it is not always possible to control the reset from the main CPU (no spare I/O lines may be available, it may be impossible to modify the firmware of the main CPU, etc.). In this case just go with a proper reset IC.

Provide status LEDs, prog/init button, and serial access connector

Note: part about LEDs applies to all Modules except EM202 which has all status LEDs built-in.

Tibbo EM Modules have four LEDs control lines (ER, EG, SR, SG). We strongly recommend you to provide these LEDs on your board. Not having them leaves you "blind". Supposing, the EM in your device is not working as expected. If you have those LEDs then you can solve the problem much easier. SR and SG LEDs display many different signal patterns so one glance at them can tell you a lot about the current EM status. ER and EG LEDs tell you about the Ethernet connection, which is also important.

Ideally, you should make those LEDs visible from the outside (left figure). This way your Users can also see them. If this is impossible then at least provide these LEDs on your board so they can be observed when your device's cover is removed (right figure).

Besides LEDs, we strongly recommend you to provide a setup button that is connected to the MD pin of the EM. Again, it is best to make this button "pushable" from the outside (left figure above). If this is impossible you can provide an internal button or a simple jumper on your board (right figure above). Why you need this? Because in the life of your device you (or your Users) can encounter a situation when they need to do one of the following: (1) initialize the EM, (2) program the EM through the serial port, or (3) upgrade internal firmware of the EM.

Initialization may be required because the EM has somehow lost its settings (due to powerful ESD or for some other reason) or was incorrectly setup. To initialize the EM using the setup button you use the quick init procedure.

Programming through the serial port may be required if the EM Module cannot be programmed through the network for some reason. In this case you just press the setup button to put the EM into the serial programming mode and do all the programming through the serial port. Of course, you need to have an access to the EM's serial port for this. Read on, we will come to that.

Finally, the firmware upgrade through the serial port cannot be ruled out. Of course, you can mostly use network upgrades, but don't count on this. Upgrade through the serial port is the most reliable way that will always work. To do the serial upgrade, you need to have a button. You also need to have access to the EM's serial port, so we will now discuss the subject.

Our last suggestion is that you provide a simple way to break the serial connection between the EM and your main CPU. You can pass the TX and RX lines of the EM through two jumpers. These jumpers are to be closed during the normal operation so the EM is connected to your CPU (see figure below). When you need to access the serial port of the EM100 directly you remove the jumpers and plug in a simple serial cable. It only needs to have three lines: TX, RX, and Ground. Because the EM has a TTL serial port you cannot connect this cable to the COM port of your PC directly. Use a simple board with RS232 IC installed on it to provide TTL<-->RS232 signal translation.

By providing the jumpers you are leaving a back-door access to the EM AND to the serial port of your main CPU. This may prove very useful during repairs, field service, etc. One final note: if you thing that jumpers are too unreliable or you simply don't have enough space for them on the board then you can use solder jumpers instead.

Let your main CPU control the Module...

One other important suggestion: let your main CPU control the EM Module. Under "control" we understand the following: (1) ability to reset (restart) the EM at any time, (2) ability to program the EM, (3) ability to upgrade internal firmware of the EM100. Implementing this is optional but so easy to do that there is no real reason why you shouldn't (if you can). True, the EM doesn't have to be programmed through the serial port, you can do all the programming through the network using the DS Manager. But this is not always consistent with the rest of your device's features.

Here is an example: your device has an LCD screen and a keypad and there is a setup mode that allows you to set all the functioning parameters (time, date, etc.). To be consistent, you should include EM-related settings into this onscreen setup as well (for example, IP-address of the device). For this, you must provide a way for your main CPU to put the EM into a serial programming mode.

Another possibility is to have the main CPU upgrade the firmware of the EM. Again, EM Module can be upgraded through the network using the DS Manager, and in those few cases when the network upgrade is not possible you can just use the "plug-in cable" method described in the previous section. Still, it is much more "neat" if the firmware can be upgraded by your main CPU itself. We have had a case in which the EM100 was used in a terminal device that also was field-upgradeable. Our Customer has implemented a system, under which the upgrade file for the main CPU contained the firmware of the EM100 as well (EM100 firmware file was merged into the firmware file of this "host" device). After the terminal was loaded with the new firmware it automatically initialized itself and also downloaded the new firmware into the EM100! This gave the Users an overall feeling of "one-ness" of the device they use.

To achieve all this flexibility you only need to have your main CPU control two extra lines: RST and MD (because TX and RX lines are already there, right?). We have already discussed how to connect the RST line. MD line is connected in this same fashion. So, you only need two extra CPU I/O lines.

Note, that we still recommend you to provide all the bits and pieces that we have suggested in the previous section. This means that we suggest you to have the MD line of the EM connected to your main CPU and the setup button at the same time. Many CPUs and microcontrollers have the I/O pins that allow them to be driven low externally and high internally at the same time (for example, the x51 microcontroller is like that). In this case you can simply parallel the CPU output and the setup button (Fig. 4a). If this is not permissible you can use two (Shottky) diodes to separate the I/O pin from the button (Fig. 4b).

In some cases it is not possible, of course, to have the main CPU control the RST and MD lines. You may have no spare I/O pins or interconnection between PCBs in your device may have no spare wires to carry RST and MD signals. In this case you won't be able to put the EM into the firmware upgrade mode but you can still have your main CPU program the EM's settings whenever necessary. There is an alternative method (two methods, actually) of putting the EM into the serial programming mode- by sending a so-called escape sequence.

The only complication is that appropriate escape sequence must be enabled for this to work. This is defined by the Soft Entry (SE) setting, which defaults to the post-initialization value of 0 (escape sequence disabled). Yes, you can manually enable this by using the DS Manager but if the EM gets initialized the escape sequence will stop working and you will have to manually edit the SE setting again!

To avoid this situation you can define your own post-initialization setting values. Instead of going with the factory default of 0(disabled), you can choose to have the EM default to 1 or 2 (escape sequence type1 or type2). Our Application Note 1 ("Customization options in our Products") explains how to do this.

...Or let the EM Module control your main CPU

And here is a complete reversal of the idea: sometimes it may be better to have the EM Module control the main CPU in your device. We have had a case in which the EM100 was used in a very simple serial machine. This machine also had a firmware upgrade feature. The User had to press a special button, then power the device up and upload the firmware through the serial port. After we have added the EM100 the serial port of the device was connected to the serial port of the EM100. Of course, new firmware could be loaded into the device through the EM100 (hence, through the network) as well. This could have allowed for the remote firmware upgrades if it wouldn't have been for a small problem- the "upgrade" button still had to be pressed on the machine itself- and this killed the whole "remote upgradeability" idea.

To solve this we have connected the download line of the device's main CPU to a general-purpose I/O pin of the EM100. By remotely controlling the state if this I/O line we can now put the main CPU into the firmware upgrade mode! Now the upgrades are truly remote.


AN003. Time Delays When the DS is Opening TCP Connection to the PC

What's in this Application Note

Some of our Customers have noticed that sometimes, when the DS is trying to establish a TCP connection to the PC, it takes pretty long time to connect. It looks as if PC is ignoring a connection request. This problem is often encountered when the DS is trying to "re-connect" after an abrupt reboot (i.e. due to power loss). This Application Note explains why this happens and what can be done to counter the problem.

Contents:

- How connection delay happens
- Using "connect immediately" mode to let the DS handle reconnects
- Using modem commands and DTR line to monitor connection status and repair connections

How connection delay happens

Connection delay problem is related to how "TCP stack" on the PC handles existing TCP connections. We will explain this on the example of one frequent communications scenario:

· The DS establishes a TCP connection to the PC (for example, because it has some serial data to send). Connection is accepted immediately. PC identifies this connection by a combination of three parameters: remote host's IP (i.e. IP-address of the DS), remote host's port (i.e. port number on the DS from which this connection was established- 10001 by default), and local port on the PC to which this connection was established (i.e. "listening" port of your application or VSP).

· The DS suddenly reboots, for instance due to power loss. Your PC doesn't know about this so it thinks that this TCP connection is still alive.

· The DS is powered on again and makes an attempt to connect to the PC. Once again, it tries to open a connection from port 10001. PC responds with "ACK", as if this was a regular data packet. Basically, PC just ignores this connection attempt. Long time needs to pass before PC realizes that this connection is dead already.

· The DS notices that the PC did not respond to the connection request and sends "RST" packet to reset the connection. At the same time, the DS discards the data it was going to send to the PC and goes to "IDLE" state.

· When new serial data is received by the DS the latter makes another attempt to make a connection. This time the source port on the DS is 10002, not 10001. This is because source port from which the DS is establishing its TCP connection is incrementing with each connection attempt (this is normal, PC does this too).

· PC gets this new connection attempt and treats it as a completely new connection. This is because in the unique combination of source IP + source port + destination port something is now different: the source port number has changed. Because of this, PC accepts this new connection immediately.

The following network log made by WinDUMP sniffer software illustrates the above scenario. The DS is at 192.168.100.97 and the PC is at 192.168.100.90.

==========
*** DS makes an attempt to connect to the PC ***

192.168.100.97.10001 > 192.168.100.90.1002: S 640000:640000(0) win 1024 <mss 255> (DF)
192.168.100.90.1002 > 192.168.100.97.10001: S 10461646:10461646(0) ack 640001 win 8415 <mss 1460> (DF)
192.168.100.97.10001 > 192.168.100.90.1002: . ack 1 win 1024 (DF)

*** Connection is now established ***

*** DS reboots abruptly ***

*** DS makes an attempt to establish connection again ***

192.168.100.97.10001 > 192.168.100.90.1002: S 256000:256000(0) win 1024 <mss 255> (DF)

*** PC replies with ACK which is not correct, so DS resets this connection attempt, discards data ***

192.168.100.90.1002 > 192.168.100.97.10001: . ack 1 win 8415 (DF)
192.168.100.97.10001 > 192.168.100.90.1002: R 640001:640001(0) win 8415 (DF)

*** DS tried to connect again, this time from a different port, this time connection is accepted ***

192.168.100.97.10002 > 192.168.100.90.1002: S 640000:640000(0) win 1024 <mss 255> (DF)
192.168.100.90.1002 > 192.168.100.97.10002: S 10470652:10470652(0) ack 640001 win 8415 <mss 1460> (DF)
192.168.100.97.10002 > 192.168.100.90.1002: . ack 1 win 1024 (DF)
==========

Bottom line: the first connection attempt by the DS after an abrupt reboot can fail. If your serial device just sends several bytes of data and waits for TCP connection to be established then this may never happen. You serial device needs to resend the same data second time after a delay- only then TCP connection may be finally accepted by the PC.

There are two ways of speeding thins up and prevent the PC from delaying the connection.

Using "connect immediately" mode to let the DS handle reconnects

Program Connection Mode (CM) setting to 0 (connect immediately)- this way the DS will make infinite attempts to connect unstill succeeded. This way your serial device doesn't need to send data repeatedly to have connection established. Most of the time connection will be ready.

Using modem commands and DTR line to monitor connection status and "repair" connections

Modem commands (officially called serial-side parameters and instructions) give your serial device a way to monitor connection status and control connection establishment/termination. Instead of sending serial data and hoping it will pass through your serial device you can first make sure that connection is, indeed, established.

Here is a brief description of how this might work:

· Your serial device first makes the DS enter the serial programming mode.

· Your serial device then uses Establish Connection (CE) instruction to make the DS start connection establishment procedure.

· After this, your serial devices uses Echo (X) command to check the result (c flag in the reply). If connection is not found to be established rather quickly and c flag is unexpectedly returns to "*" then your serial device can conclude that the DS has returned to idle mode because the PC did not respond to the connection establishment request.

· Then, the serial device can quickly issue another Establish Connection (CE) instruction and, again, monitor connection status via Echo (X) command.

· After the Echo command shows that connection is established (c flag="C") the serial device uses Logout (O) command to make the DS exit the serial programming mode. Data exchange can start after that.

The above procedure, although seemingly lengthy, takes only a fraction of a second to complete.

One remaining question is: how to detect that connection has been broken while being in the "normal mode". Indeed, when the DS in the serial programming mode connection status can be verified at any time through an Echo command. But how to do this when the DS is in the data mode and Echo command cannot be issued?

This is done by programming the DTR Mode (DM) setting to 1 (connection status). In this case the DTR line of the DS shows whether network connection is established or not. Once the line is "dropped" the serial device will know that something has happened to the connection. At this time the serial device should force the DS into the serial programming mode and use modem commands to "repair" the connection.


AN004. How to Send the Same Data to Several DS

What's in this Application Note

We are often asked if it is possible to send the same data to several DS at the same time. We understand why such need may arise. For example, in RS485 systems there is often a master "node" that sends commands to several slaves. Every slave receives the command but only a particular one will reply back. This is because the frame (packet) sent by the master contains an address of the slave being addressed.

Network-enabling such system requires that this "send to all" communications method is somehow adopted to network communications. This Application Note explains how this can be done.

Contents:

- Using UDP broadcasts to emulate multi-drop communications
- Limitations

Using UDP broadcasts to emulate multi-drop communications

The only way to arrange multi-drop communications system on the TCP/IP network is by using UDP/IP protocol and sending data as UDP broadcasts. TCP protocol is, by definition, a point-to-point protocol and cannot be used for data delivery to several nodes simultaneously. UDP, on the contrary, can and is often used to send the data to several nodes on the network.

To make one DS (we will call it "master") send data to several other DS ("slaves") through the network perform the following setup (only "important" setup changes are shown):

· On the master DS side make the following setup changes:

· Routing Mode (RM) setting: 1 (server/client) or 2 (client);

· Transport Protocol (TP) setting: 0 (UDP);

· Destination IP-address (DI) setting: 255.255.255.255- this will make the master DS send data as link-level UDP broadcasts.

· On each slave DS make the following setup changes:

· Routing Mode (RM) setting: 0 (server);

· Transport Protocol (TP) setting: 0 (UDP);

· Broadcast UDP (BU) setting: 1 (enabled)- this will make slave Device Servers accept the data sent in broadcast packets.

Same can be applied to using Virtual Serial Port as a "master". Use VSP Manager and set the properties of the VSP in a way similar to the setup of the master DS.

Limitations

It is important to understand the limitations of such a system:

· Unreliable data transmission. UDP, as opposed to TCP, does not guarantee data delivery. If any UDP packet is lost the UDP protocol itself won't be able to detect this. UDP packets are considered to be "less important" (compared to TCP traffic) so many routers drop such packets first when becoming overloaded. The bottom line is that you should not base your system on the assumption that all UDP packets will always be received by all slaves. This is usually not a problem since most multi-drop systems include some sort of retry algorithm.

· The system is limited to local network segments only. This second limitiation is more serious. Broadcast UDP packets are not routed by network equipment such as routers, bridges, etc. This means that UDP broadcasting is only possible within a single network segment. Do not expect to be able to make such a system work throught the Internet, for instance.


AN005. Remotely Controlling I/O Lines on the DS

What's in this Application Note

Many of our Customers have asked us if it possible to make our Modules (such as EM100) or "finished" devices (DS100) work as a sort of remote I/O i.e. use the DS to control "loads" (switch something on/off) and monitor "sensors" (detect if the switch is closed or opened). The answer is "YES" and this Application Note examines how this can be done.

Contents:

- General-purpose I/O lines of Tibbo Device Servers
- Controlling I/O lines through a Virtual Serial Port
- Setting and sensing the status of I/O lines using on-the-fly commands
- Using notifications to get the status of I/O lines

General-purpose I/O lines of Tibbo Device Servers

You probably know that every DS model we manufacture contains some number of lines that can be used as remote I/O. For example, the serial port of our DS100R Serial Device Server contains RTS (output) and CTS (input) serial lines. From the serial port's standpoint, RTS and CTS have a specific serial port-related function but at the same time they can be used as generic output and input!

Other "external" Serial Device Servers, such as DS100B and DS202 also have DTR (output) and DSR (input) lines. Together with RTS/CTS, this brings the total number of available lines to two outputs and two inputs.

Most embedded Modules such as EM100 and EM200 have even larger number of I/O lines, some of which are not related to the standard serial port control lines in any way. For example, in addition to RTS, CTS, DTR, and DSR the EM200 has five additional I/O lines- P0, P1, P6, P7, P8. All 9 lines can be used as universal inputs/outputs- on the Module level there are no dedicated "input only" or "output only" pins*.

Controlling I/O lines through a Virtual Serial Port

The simplest way to control I/O lines of the DS is through a Virtual Serial Port. Naturally, this will be limited to setting the status of RTS and DTR lines and sensing the status of CTS and DSR lines. Extra lines such as P0, P1, etc. cannot be controlled this way. Additionally, RTS/DTR will only work as outputs and CTS/DSR- as inputs, even on embedded Modules whose I/O pins are bi-directional (see above). The advantage of using VSP is in simplicity- you don't need to write a lot of additional code.

To test how VSP works with I/O lines of the DS you can create a simple application in Visual Basic. Use MSComm ActiveX control to work with the VSP. Remember, that same rules that apply to a regular COM port of the PC also apply to the remote control of the serial port on the DS:

· If you want to set RTS and sense CTS you need to set MSComm.Handshaking="None". If you set handshaking to "ComRTS" your VB program won't be able to work with RTS/CTS directly.

· After you set MSComm.Handshaking="None" you can control RTS through MSComm.RTSEnable and sense CTS state through MSComm.CTSHolding.

· Likewise, DTR state can be controlled through MSComm.DTREnable while DSR state can be sensed through MSComm.DSRHolding.

· To be able to control DTR remotely, you need to program the DTR Mode (DT) setting of the DS to 0 (idle). Also, to have the DSR work as a pure input line program do not set Connection Mode (CM) to 3 (on command or DSR=HI). These two settings will be taken care of automatically by the Connection Wizard when you use it as described below.

Before you can make this test you need to have a proper setup for the VSP and DS. Run Connection Wizard and make the following choices. Important points:

· Job: choose to create a link between the Virtual Serial Port and the Device Server.

· Initiator of data exchange: Virtual Serial Port.

· On-the-fly commands: yes, enable on-the-fly commands, use out-of-band access method.

(all remaining choices are obvious or irrelevant).

After the Wizard has done its job and is at the last screen you need to do the following:

· Click "open COM settings"- the properties of the VSP will be opened (you can reach the same screen from the VSP Manager).

· Change Connection Mode of the VSP to "immediately".

· Click OK to close the dialog.

Here are some comments on the setup that we've just described. On-the-fly commands are enabled because control of the state of I/O lines is effected through these on-the-fly commands. Connection mode of the VSP was set to "immediately" to enable so called status change notifications to be sent from the DS to the VSP (PC) right from the moment the VSP is opened. More on this can be found in one of the sections below (see "using notifications to get the status of I/O lines").

After the setup is finished you can use your VB program to work with RTS, CTS, DTR, and DSR lines. While you are playing with the system take a look at what is recorded by the Port Monitor. Here is a sample output:

...
COM4 (INFO): "On-the-Fly" command for 192.168.100.97: enabling line change notification for DSR, CTS...success <--- notifications setup
...
...
COM4 (INFO): "On-the-Fly" command for 192.168.100.97: set DTR to low...success <--- command from VSP to DS
COM4 (INFO): "On-the-Fly" command for 192.168.100.97: set DTR to high...success <--- command from VSP to DS
COM4 (INFO): "On-the-Fly" command for 192.168.100.97: set RTS to low...success <--- command from VSP to DS
COM4 (INFO): "On-the-Fly" command for 192.168.100.97: set RTS to high...success <--- command from VSP to DS
COM4 (INFO): Line status change notification: DSR:low CTS:high <--- notification from DS to VSP
COM4 (INFO): Line status change notification: DSR:low CTS:low <--- notification from DS to VSP

As you can see from this log, an individual command is sent from the VSP to the DS when it is necessary to change the state of a particular output. A notification containing the status of both inputs are sent from the DS to the VSP when at least one of the inputs (DSR or DTR) is found to have changed the state. Notifications are explained below (see "using notifications to get the status of I/O lines").

Setting and sensing the status of I/O lines using on-the-fly commands

Virtual Serial Port works with RTS, CTS, DTR, and DSR lines using so-called on-the-fly commands. On-the-fly commands are officially known as "network-side parameters and instructions". As the name implies, these commands are sent through the network. The word "on-the-fly" refers to the fact the sending any command causes an immediate corresponding change in the serial port or I/O pin of the DS.

Related to the discussion of controlling I/O lines are two instructions:

· Set I/O Pin Status (Sx) instruction

· Get I/O Pin Status (Gx) instriction

For these instructions to work, the DS must be preset to accept them. This is done by setting On-the-fly Commands (RC) setting to 1 (enabled).
On-the-fly commands are send just like all other network programming commands which means that delivery method can be out-of-band, inband, etc. Out-of-band on-the-fly commands can be optionally password-protected by programming On-the-fly Commands (RC) setting to 1 (enabled) and defining a password in the Password (PW) setting.

If you are planning to work with P2(DSR), P3(DTR), P4(CTS), or P5(RTS) lines you need to disable their "special" functions to turn them into "pure" I/O lines. When you control those lines:

· Disable RTS/CTS flow control by programming Flow Control (FC) setting to 0 (idle or remote).

· Program DTR Mode (DT) setting of the DS to 0 (idle).

· Also, to have the DSR work as a pure input line program do not set Connection Mode (CM) to 3 (on command or DSR=HI).

Note: when you are using the VSP you don't need to make these changes by yourself. Running Connection Wizard as described above will take care of everything.

We are not going into "much" details regarding the use of Set I/O Pin Status and Get I/O Pin Status instructions here as this would be a repetition of information already found in the topics highlighted above.

Using notifications to get the status of I/O lines

Get I/O Pin Status (Gx) instriction mentioned above offers a way to get the state of any I/O pin of the DS but in a "polled" way. If you want to monitor the status of a particular pin you need to send this command repeatedly (i.e. "poll" this pin).

Another, more convenient, possibility is make use of Notification (J) message. With proper preset, you can make the DS send a special message to the PC whenever one of "monitored" pins of the DS changes its state. Read Notification (J) message topic and you will get complete picture on how this works.

One important point that needs to be understood: notification messages are only sent when there is a data connection between the network host (that is supposed to get notifications) and the DS. This is why we have asked you to change the Connection Mode of the VSP to "connect immediately". If you didn't do this you would have to have the data connection established first (i.e. send some data). Only after that the DS would start sending notifications.

* The only exception is pin P2 of EM100 which can only work as an input.


AN006. Using Device Server Toolkit with Windows Firewall (XP/SP2)

What's in this Application Note

This Application Note explains how to use Tibbo Device Server Toolkit (DST) on PCs running Windows XP with Service Pack2 (XP/SP2). One of the new components included in the SP2 is a Windows Firewall. Unless setup correctly, the Firewall will prevent certain features of DST software from operating properly.

This Application Note assumes that you are running DST version 3.56 (or later one). This version had certain adjustments made to enable DST use under Windows Firewall.

Contents:

- Using auto-discovery access mode of DS Manager with Windows Firewall
- Manual way of making the auto-discovery mode work
- Why Windows Firewall needs configuration for auto-discovery to work
- Opening the Firewall for DS data connections

Using auto-discovery access mode of DS Manager with Windows Firewall

One difference you will immediately notice after XP2 is installed and the Firewall is enabled is that the DS Manager can no longer find local Device Servers in the auto-discovery access mode (address book mode continues to operate properly). You can find an explanation on why this is happening later in this Note.

Once you run the DS Manager (or click Refresh in the auto-discovery mode), and provided that your Firewall is using default configuration, you will get this warning message:

This message means that Windows Firewall has detected certain network activity that is currently not allowed. Application name is "Run DLL as an App" and, believe it or not, this is how Windows sees the DS Manager (yes, DS Manager is a "DLL" but Windows should be smart enough to understand its "real name".... alas, it isn't that smart). Click Unblock and the DS Manager will be able to auto-discover local Device Servers again.

If, when you run the DS Manager (click Refresh), the warning is not displayed (and the DS Manager is still unable to find Device Servers) then this may be because the Firewall is not allowing "exceptions" and/or firewall notifications are not enabled.

Run the Firewall (Start--> Control Panel--> Windows Firewall) and make sure that Don't allow exceptions checkbox is unchecked (clear):

Next, click on the Exceptions tab and make sure that Display a notification when Windows Firewall blocks a program checkbox is checked:

After you "unblock" the DS Manager the Firewall puts it into the list of "exceptions" i.e. programs whose traffic is allowed to pass through the Firewall:

Manual way of making the auto-discovery mode work

Same result can be achieved by telling the Firewall which port on the PC should be opened. To do this click on the Exceptions tab of the Windows Firewall dialog, then press Add Port... button- Edit a port dialog will open:

Input any meaningful name into the Name textbox (i.e. "DSMan bcast"- this is because what we are opening here is a port for DS Manager's auto-discovery broadcasts to work). In the Port number textbox input 65534- this is the port number that must be opened on your PC. Finally, select UDP- this is a protocol the DS Manager is using to find Device Servers on the network. Click OK when finished.

New entry will appear in the list of exceptions and the DS Manager will start working properly:

Why Windows Firewall needs configuration for auto-discovery to work

This section explains why auto-discovery access mode will work only after you configure the Windows Firewall properly while address book access mode will require no adjustment to the Firewall setup. You can happily skip this section if you are not that interested to know.

In the auto-discovery access mode the DS Manager finds Device Servers on the network by sending Echo (X) command as UDP broadcast. Every Tibbo Device that receives this broadcast will respond to it and the DS Manager will build a list of available Device Servers basing on received responses.

Trouble with Windows Firewall arises because the Firewall cannot link received responses to the broadcast sent from the PC. So, from the Firewall's point of view these responses are individual incoming UDP "connections" and by defaults the firewall blocks any incoming connection unless it is explicitly allowed. By unblocking "Run DLL as an App" or manually opening UDP port 65534 you let the responses from Device Servers to pass through. Port 65534 is the port from which the DS Manager is sending its broadcasts and to which all local Device Servers send their replies.

Contrary to what you'd probably expected, Windows Firewall does not interfere with DS Manager's operation in the address book access mode. This is because in this mode the DS Manager sends Echo (X) command individually to each DS in the device list (no broadcasts are used at all). When replies are received from Device Servers the Firewall is able to link those replies to the requests that were sent by the DS Manager earlier. The Firewall then assumes that these were outgoing connections initiated by a program on the PC and doesn't block incoming replies.

Opening the Firewall for DS data connections

Windows Firewall monitors all incoming connections and that means that if your DS is supposed to connect to the VSP on the PC (or directly to your application) then a specific port (to which the DS will be connecting) must be opened on the Firewall.

For example, if you know that the DS will be opening a TCP connection to the VSP "COM3" with listening port number 1001 then you need to "open" this port in the Firewall. Use Add port... feature to do this:

Notice, that you only need to open ports if your DS is going to connect to your PC. If it is the VSP (or application) on your PC that is going to connect to the DS then you don't need to setup the Firewall. This is because the Firewall doesn't block any connections that originate from within the PC.


AN007. Installing and Configuring LinkServer

This application note discusses the actual processes involved in installing and using LinkServer. If you work along with it, it will walk you through, step by step, in doing the following procedures:

· Downloading and Installing Software and Firmware

· Creating Trial AuthKey

· Initial LinkServer Configuration

· Creating a User Account

· Adding DS as User

· Configuring Device Server

· Configuring Virtual Serial Port

· Testing with HyperTerminal

Each of these sub-topics can also stand on its own -- you can click on a sub-topic to see the step-by-step explanation on how perform that specific procedure.

The application note does not replace the LinkServer Software manual, but adds to it, and discusses the practical aspects of deploying LinkServer.


Downloading and Installing Software and Firmware

The first step in setting up Tibbo LinkServer is downloading and installing all of the needed software and firmware.

Downloading the Needed Software and Firmware

· Go to http://www.tibbo.com/betazone.php.

· Navigate to the heading Download LinkServer software

· You will see two versions for your platform (Linux or Windows): One with "bundled JVM" and one without. JVM stands for Java Virtual Machine. If you're not sure whether you have JVM installed already, download the "bundled JVM" version.

· Next, you have to download the new firmware for all of your Device Servers. It is listed lower down the page. Make sure you download the appropriate firmware for your Device Server, according to the description.

· Now download the firmware for the AuthKey. It comes as an EXE file, titled something like AK_xxxD.exe (where xxx is the current version).

· Now download the latest Device Server Toolkit. You must use this version to test the LinkServer.

Installing the Software and Firmware

· Install the most recent Device Server Toolkit by clicking on the file you've downloaded and working through the wizard.

· Install the LinkServer in the same way (by clicking on the file and working through the wizard).

· Configure any firewalls you may have so they would allow access to TCP port 6450 and to TCP ports 50000 to 60000 (access should be allowed from the subnet in which the Device Servers are connected, and from the subnet in which the client hosts are connected).

· Note down the IP address of the server, and keep it from changing (buy a "real" static IP for the server, if needed). You will use this information for Configuring a Device Server.

· Next, upgrade the Device Servers you would like to work with using the firmware you've downloaded, according to these instructions.

That's it! Now proceed to the next step (Creating Trial AuthKey).


Creating Trial AuthKey

To start using the LinkServer, you first need to create a trial AuthKey. This is done using a DS202.

After upgrading, don't forget to perform Quick Initialization -- press the setup button, release it, and then press it again for 4 seconds.

Perform the following:

· Connect the DS202 you want to convert to a Trial AuthKey to the computer, using a cross serial cable. Don't connect the power cable yet.

· Double-click the EXE file containing the AuthKey firmware -- you should have downloaded this, as described under Downloading and Installing Software and Firmware.

· Extract the file -- it contains a BIN file (firmware) and a README. Note the location of the BIN file.

· Run DS Manager.

· Under Access Mode, select Device Servers attached to the COM port.

· Click Upgrade.

· Select the BIN file.

· Now press the SETUP button on the DS202. After pressing the button, connect the power cable.

· The firmware will start transferring over to the DS202, and you will see a progress bar.

· Once you get a message that the process is done, disconnect the DS202 from the power.

· Power the DS202 again. Wait for a few seconds. Now you have to initialize it by Quick Initialization -- press the setup button, release it, and then press it again for 4 seconds.

· That's it! Don't forget to set an IP address for the AuthKey, and you're ready to move on.


Initial LinkServer Configuration

To begin configuring LinkServer, you must run it first. This is described under Startup and Shutdown in the LinkServer manual.

Once LinkServer is running, you should see the System Tray Icon.

Now, open the Web Admin interface as the default administrator, as described under Accessing Administrator Account. After logging in, you should see the following screen:

Link Server Admin Page

The first thing you should do is configure the AuthKey. Without a properly configured AuthKey, your Device Servers will not be able to connect to the server. Perform the following:

· In the top bar, click Administration.

· Under Administration, click Global configuration.

· Go to the bottom of the screen, and find the section titled AuthKey settings:

Authkey Settings

· Under IP address enter the address you've assigned to the AuthKey in th previous step (Creating Trial AuthKey).

· Under Port number enter the port which is listening on the AuthKey. The default value is 65535 -- make sure it corresponds with the port number in the AuthKey settings.

· Click Save configuration and restart server. After restarting, your server could connect to the AuthKey and use it to authenticate incoming connections. Further details can be found under AuthKey, in the LinkServer manual.


Creating a User Account

The next step is creating a user account (which is not an administrator account). You can read more about Account Types in the LinkServer manual. Perform the following, while logged on as administrator:

· Go to Administration > User management.

· At the bottom line of the top bar, click Create new user account.

· Enter a username and a password (repeat the password for verification). Click Save.

· Now log off the administrator account, and log on as the user you've just created. Do so by clicking Logout on the top bar.


Adding a DS as User

Before a Device Server can communicate with the LinkServer, it must be registered with the LinkServer. There are two ways to register a DS: Automatically and manually. For our purposes, we will use the manual method:

· Before you begin, make sure you're logged on as the user you've created in the previous step. In our examples, this user will be called johndoe.

· Once logged on as johndoe, click Device Servers in the top bar.

· Next, click "Add Device Server" (Also on the top bar, one line below the main commands).

· The Device Server Info screen will appear:

Device Server Info EDIT

· Select a name for the Device Server which you will be able to easily recognize in the list. Note down this name for later.

· Select a password you will remember (for our example, this is Vlf6Lr!). It has to be at least 4 characters long. Remember this password, as you will need it in the next step (Configuring a Device Server).

· Leave the other entries at their default values.

· Click Save.

· You will now find yourself back at the Device Servers page, and your device will show up on the list. Note down the number under the port column. You will need it for later (for Configuring a Virtual Serial Port).


Configuring a Device Server

In this step you will configure a Device Server to connect to the LinkServer. Perform the following:

· Connect a Device Server to the network and power it.

· Run DS Manager (Start > Programs > Tibbo > DS Manager).

· You should see the Device Server in the list. If you can't see it, use the Address Book Access Mode.

· Select the Device Server and click Settings. This is the first tab you will see:

· Set Owner name to the same name as your account in the previous step (Adding a DS as User). In our example, this is johndoe.

· Set Device name to the same name as your Device Server in the previous step. In our example, this is dev1.

· Don't forget to make sure your Device Server has a valid IP -- by enabling DHCP, or setting a valid IP address manually.

· Set Gateway IP-address to the correct gateway for your subnet, so the Device Server could get reach the LinkServer (assuming the LinkServer is not on the local subnet).

· Click the Password button and set a password for the DS. This has to be the same password you configured for it in the previous step. In our example, this is Vlf6Lr!.

· Now, click the Connection tab:

· Set Transport Protocol to TCP.

· Set Link Service login to Enabled.

· Set Connection mode to Immediately (on powerup).

· Set Destination IP-address to the IP address of the server (which you've noted down in step 1, Downloading and Installing Software and Firmware).

· Set Destination Port to 6450.

· Now, click the Serial Port tab:

· Set the serial settings according to your device (RTS/CTS flow control, DTR mode, Baud rate, Parity, Data bits)

· Set On-the-Fly commands to Disabled.

· Click OK to apply the settings and close the dialog.

· DS Manager will reset the Device Server.

· Assuming you did everything correctly up to here (including all previous steps), the DS should now blink the green LED a few times and then light it steadily. This means that a connection has been established. If you get another LED pattern, find out what it is under Status LED Signals and try to troubleshoot it from there.

· If you now log-on to your account in the LinkServer, you will see the Device Server as Online under Device Servers.


Configuring a Virtual Serial Port

The next step, which is actually the very last configuration test, is configuring the Virtual Serial Port. This is done as follows:

· Run VSP Manager (Start > Programs > Tibbo > VSP Manager).

· Click Add.

· If you get a Windows XP warning messagebox, click Continue Anyway.

· Set Transport protocol to TCP.

· Set On-the-fly commands to Disabled.

· Set Routing mode to Client.

· Set Port to the port which was assigned to your Device Server in the LinkServer. If you're not sure what this is, check it under the Device Servers page. This must be correct for the process to work.

· Set IP-address to the address of the host running LinkServer. Make sure the computer running the Virtual Serial Port can reach this host.

· The screenshot below shows the correct settings:


Testing with HyperTerminal

You will now test the connection you've created, using HyperTerminal. Perform the following steps:

· Connect the DS you have configured previously (under Configuring a Device Server) to the network and power. Make sure the green LED lights steady -- to show you have a connection.

· Take this DS, and create a connection between serial pin #2 and serial pin #3 on its connector. This is just a temporary connection. Pin #3 is the output pin and pin #2 is the input pin -- so whatever gets out, immediately goes back in again. This is called a loopback and we will use it for the test. After the test the connection won't be necessary anymore, so don't solder the connector itself or anything of the sort. The connection should be like this:

· On the PC where you have configured the Virtual Serial Port, run HyperTerminal. Do this by clicking Start > Programs > Accessories > Communication > HyperTerminal.

· Choose a name for the connection.

· in the next screen, under "connect using", select the Virtual Serial Port you have created (such as COM6).

· On the next screen select any serial settings you would like, but make sure Flow Control is set to None.

· Click OK. You should now get a white screen where you can type:

· Type any text on the keyboard. You should see it on-screen now. If you see what you type, it means that the following sequence happens:

· The HyperTerminal session sends the data to the Virtual Serial Port.

· The Virtual Serial Port sends the data to the LinkServer.

· The LinkServer sends the data to the Device Server.

· The DS gets the data and immediately sends it back (using the loopback we created in the beginning of this step).

· The LinkServer gets the data from the DS and sends it back to the host running HyperTerminal.

· The Virtual Serial Port gets the data back, and passes it to HyperTerminal.

· You see the data you type on-screen.

The simplest way to make sure that this is really what happens, is to remove the loopback from the DS. You will continue sending data but you will not get anything back -- this means it worked!


Update history
Top Previous

This topic details update history for this document system.

· Firmware release V3.14/3.51 is now used as a "baseline" release and any feature or change that was made in a later firmware version is marked with the sign that looks like this: [V3.24/3.54+] (this one means: this feature is available in firmware release V3.24/3.54 or higher). This brings to an end tracking of changes from much older firmware V2.5x which was done previously. All references to V2.5x has been removed.

· In connection with the above individual command, setting, and parameter (instruction) description topics (under reference section) now state clearly if a particular setting has existed in a baseline V3.14/3.51 or was added later

· Updated topics (this excludes some minor corrections):

· Status LED signals
· Ethernet port and network communications
· UDP data connections
· DHCP
· Inband (TCP) programming
· Commands, messages and replies
· Echo (X) command
· Status (U) command
· Jump to Netloader (N) command [Release 3.0]
· Settings
· Network settings
· Owner Name (ON) setting
· Device Name (DN) setting
· Gateway IP-address (GI) setting
· Password (PW) setting
· Inband Commands (IB) setting
· Destination IP-address (DI) setting
· Serial settings
· Soft Entry (SE) setting
· Serial Interface (SI) setting
· Modem (serial-side) parameters and instructions
· Destination IP-address (DI) parameter
· Firmware revision history
· VSP Manager
· AN001. Customization options in our Products

· New topics:

· PPPoE [V3.54+]
· Link Server support
· DS powerup procedure
· Data connection establishment procedure
· Set Programming Request Flag (N) command [Release 3.5]
· Reset Upload Process (Q) command [Release 3.5]
· Upload Data Block (D) command [Release 3.5]
· dDNS Service Registration (DD) setting
· dDNS Service IP-address (LI) setting
· dDNS Service Port (LP) setting
· LS Auto-registration (AR) setting
· PPPoE Mode (PP) setting [V3.54+]
· PPPoE Login Name (PL) setting [V3.54+]
· PPPoE Login Password (PD) setting [V3.54+]
· Connection settings
· Link Server Login (TL) setting
· Source IP Filtering (SF) setting
· Escape Character (EC) setting
· Link Server Login (TL) parameter
· Source IP Filtering (SF) parameter
· Control lines tab
· Default serial settings tab
· DST revision history

----------
31MAY2005 release
· Added AN007, Installing and Configuring LinkServer.

----------
15MAY2005 release
· Added entire LinkServer branch.
----------
21JAN2005 release

· Updated topics:

· Corrected EM200 pin assignment drawing. Pin assignment itself was correct but the Module on the drawing was erroneously marked as "EM120"

· EM202-EV->Power Jack and DS202->Power Jack topics referred to incorrect power adaptor numbers. We have corrected this

· Updated Firmware Revision History

----------
03JAN2005 release

· Updated topics:

· Corrected mistake for Power Adaptor models. Power adaptors with "small" connector are: ARP-P0005 ("US"), ARP-P0006 ("Europe"), and ARP-P0007 ("OK")

· Corrected mistake in Password (PW) setting description: maximum password length is 6, not 8 characters

· Corrected the diagram depicting the layout of LEDs on the front of EM202

· Installation document for VSPDL incorrectly stated that kernels up to 2.5 were supported. Actually, we also support kernel 2.6.x

----------
14DEC2004 release

· New topics:

· Added AN006

· Added Unable to send a broadcast error message description for DS Manager

· Added Unable to send a broadcast error message description for Connection Wizard

· Updated topics:

· DTR and DSR lines were erroneously not shown here: RS232 port pin assignment

· By mistake, watchdog reset function of the ER line of EM100 was not described

----------
30OCT2004 release

· New topics:

· Created new part- Application Notes and added AN001, AN002, AN003, AN004, and AN005

· Updated topics:

· Corrected pin number errors in the following topics: LED lines (of EM120), LED lines (of EM200)

----------
21SEP2004 release

Minor error corrections

----------
20SEP2004 release

· New topics:

· DK100 DIN Rail/Wall Mounting Kit

· Comparison chart for Ethernet-to-serial Servers

· DS202 Serial Device Server (and all child topics)

· Additional features in firmware V3.5x (later deleted)

· Telnet programming

· Updated topics (this excludes some minor corrections):

· Device Server Application Firmware (V3.14/V3.51)

· Network programming

· Authentication

· Programming priorities

· Port Number (PN) setting

· Access parameters for the address book mode

· Troubleshooting (address book mode)

· Editing the address book (Add, Remove, Edit buttons)

----------
28JUL2004 release

· Power Jack (in EM100-EV Evaluation Board)

· Power Jack (in EM200-EV Evaluation Board)

· Power Jack (in EM202-EV Evaluation Board)

· Power Jack (in DS100 Serial Device Server)

· DHCP

· Firmware version history

· Updated topics (this excludes some minor corrections):

· Owner Name (ON) setting

· Device Name (DN) setting

· Destination IP-address (DI) setting

· Gateway IP-address (GI) setting

· Netmask (NM) setting

· Update history (this very topic)

----------
01JUL2004 ("base") release

Updates are tracked from this point