Products Download Partner Contact

 SUPPORT   FAQs   Baudrate-Calculation PCI 

Calculation of Baudrates on VScom PCI-Cards

VScom 110H,200H,210H,400H,410H,800H, 100L,110L,200L,210L,400L,800L PCI


Deutsche Version  Wechsel zur deutschsprachigen Version ...

Problem:

One question asked again and again is about supported baudrates. In most cases the customer wants to know, if a special baudrate is supported, which is required by certain devices. Since there are more than 60000 baudrates supported, there is no use in enumerating them in a list. Instead here are instructions to calculate the required parameters for realisation. If such a configuration can be found, the requested baudrate is supported. Otherwise the baudrate can not be realised.

To make things easy, there is a Program for DOS. This also operates in DOS-boxes of all Windows Versions as well as in OS/2. Even not tested, it should also operate correct in the DOS-Emulations of various operating systems. Just enter the requested baudrate, and the result is the best matching configuration. If the achieved baudrate deviation is less than 2%, a reliable data transmission is assured.

Calculation:

Maximum speed:

The maximum speed with PCI-cards from VScom normally is 921600 Baud. On most cards this can be reduced to the standard value 115200 Baud, by setting a jumper. Some of the cards offer more intermediate values as 460800 Baud or 230400 Baud. By the way, this also applies to ISA-cards from VScom.

This maximum speed is a hardware option. the only way to change it is by Hardware (jumper block). There is no option in the driver to change the maximum speed. This value is based on the crystal frequency, divided by 16.

Special case of H-Series:

The UARTs of type 16C950 on the VScom H-Series cards offer a programmable prescaler. This divides the basic maximum speed by a value from 1  to 32, in steps/parts of one eight. More precise, the range is from 1.0 to 31.875 in steps of 0.125, these are 248 possible settings. The basic maximum speed is divided by this value, the result is the basis for all following calculations. The driver automatically selects the optimal value. It is not required to set a certain configuration manually.

Since the UARTs of type 16C550 on VScom L-Series and other cards do not have this prescaler, for calculation purposes a value of 1 is used in all cases.

Configuration by Division:

In all UARTs the available maximum Baudrate is reduced by a Divider. I.e. the value is divided by a number ranging from 1 to 65535 (a value of 16-bit). The result is the achieved Baudrate in reality. So this explains the more than 60000 possible Baudrates of the top paragraph. In the following calculations the maximum Baudrate is named B (for Base), the target speed is T, the divisor is D and the realised speed is named as S.

To check, if a certain Baudrate is technically possible, one must find the required configuration for that speed. In the first step B is divided by T, yielding the Divisor D. In many situations D is not an integer number. It is required to round it up and down, yielding divisors D1 and D2. The next step in calculation is to divide the maximum speed B by D (or D1 and D2). This results in the achievable speed S (S1 and S2). These results have to be compared with T. If the deviation of one of the results is less than 2%, T is a possible configuration.

D = B / T (calculate the divisor)
S = B / D  (calculate the speed)
E = 100 * (S - T) / T (deviation in percent)

In the case of the UARTs type 16C950 (on H-series cards) the calculation must be done for all possible prescaler values from 1 to 32..

Of course the driver performs all of these calculations. And also the check for the optimum value for D. The Program SPEED-H+L performs the same calculations, including the display of the deviation (absolute and relative).

Fictitious calculation example:

Maximum speed is 921600 Baud. The target speed is 33600 Baud.

D = B / T D = 921600 / 33600 = 27,43 Rounding required. D1 = 27, D2 = 28
S1 = B / D1 S1 = 921600 / 27 = 34133,33
S2 = B / D2 S2 = 921600 / 28 = 32914,29
E1 = 100 * (S1 - T) / T E1 = 100 * (34133,33 - 33600) / 33600 = 1,59% Result acceptable
E2 = 100 * (S2 - T) / T E2 = 100 * (32914,29 - 33600) / 33600 = -2,04% Result not acceptable

33600 Baud can be realised. The deviation in speed of 1,6% does not prevent a successful transmission.


VS Vision Systems GmbH      
                            Aspelohe 27 A               
                            D-22848 Norderstedt         
                            Fon : +49 40 528401-0       
                            Fax : +49 40 528401-99      
                            http://www.visionsystems.de 
                            Mail: info@visionsystems.de