Use NI Serial Hardware with Baud Rates Over 3 Megabaud

Overview

Note that this article replaces KnowledgeBase 58KEI82F: How Can I Use NI Serial Hardware with Baud Rates Over 3 Megabaud? Some NI manuals may still reference the previous document. If you were redirected from the previous KnowledgeBase URL, please update your bookmarks accordingly.

Contents

Supported NI Serial Hardware

Under certain conditions, some RS-485/RS-422 NI Serial products can be successfully used with baud rates over 3 MBd. The following boards support higher baud rates up to 10 MBd MBd using a Windows or Phar Lap operating system:

  • PXIe-8431/8
  • PXIe-8431/16

Note: NI Linux RT does not support baud rates higher than 3 MBd

Enable Higher Baud Rate Support

Enabling the high baud rate support will allow you to disable the NI-Serial driver check that verifies baud rate settings sent by the user. 

Caution: This will result in all PCI/PXI/PCIe/PXIe boards to have this check disabled in the driver even though using some of these with unsupported baud rates may result in errors.

Enable on Windows OS

  1. Open the Windows Registry Editor.
  2. Navigate to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NiSerP
  3. Right-click on the blank panel. Select New >> DWORD (32-bit Value).
  4. Right-click on the value name and select Rename. Enter the value name OverrideMaxBaudRate.
  5. Right click on the value name and select Modify. Enter 1 into the value data field. The registry editor should look like the image below.Windows Registry Editor
  6. Close out of the Registry Editor and reboot the system.


Optionally, you can use the attached windows registry file, EnableOverrideMaxBaudRate.REG, to add this registry value.

At any point, you can disable the ability to specify higher baud rates by deleting this value, setting it to 0, or using the attached DisableOverrideMaxBaudRate.REG file to delete the value automatically.

Enable on Phar Lap ETS Real-Time OS

  1. FTP the NiSerial.dbs file located in the /ni-rt/system directory of the real-time (RT) target to the host.
  2. In the NiSerial.dbs file, add OverrideMaxBaudRate = 1 to the System section of the file.
  3. FTP the modified file back to the RT target.
  4. Reboot the RT target for the changes to take effect.


Note:
This only applies to Phar Lap ETS Real-Time targets. NI Linux Real-Time OS does not support higher baud rates. 

Supported Baud Rates

These products support any arbitrary baud rate up to 3 MBd with an accuracy of 1.3% of the selected baud rate. Above 3 MBd only certain baud rates can be generated. The specific baud rates that can be set above 3 MBd can be calculated using the following formula:

Baud Rate = 400 / (m*n)

where m is an integer between 4 and 16 and n is an integer between 8 and 31. The specific baud rates above 3 MBd are also listed in the table below.

Table 1: Supported Baud Rates (MBd) above 3MBd

3.0075

3.3613

3.8462

4.4444

5.3333

7.1429

3.0303

3.4188

3.9216

4.5455

5.5556

7.2727

3.0769

3.4483

4.0000

4.7059

5.7143

7.4074

3.1250

3.4783

4.0404

4.7619

5.8824

7.6923

3.1746

3.5088

4.0816

4.9383

6.0606

8.0000

3.2000

3.5714

4.1667

5.0000

6.1538

8.3333

3.2258

3.6364

4.2105

5.1282

6.2500

8.8889

3.3058

3.7037

4.3478

5.1948

6.3492

9.0909

3.3333

3.8095

4.3956

5.2632

6.6667

10.0000

If you require a baud rate that is not listed:
  1. Identify the closest listed baud rate to your desired baud rate.
  2. Calculate the percent difference between the listed baud rate and the baud rate of the connected device. It is recommended to have no more than a 2% difference in baud rate between serial devices.


An indication of a difference in baud rates is the presence of framing errors in communication. You may experience over-run errors at baud rates higher than 3 MBd when no flow control is used. Because of this, NI recommends you use some form of flow control (CTS/RTS or Xon/Xoff) when using high baud rates. This will allow you to properly communicate with a device at the high baud rate without over-run errors or missing data.

Expected Throughput

The theoretical maximum throughput for baud rates can be calculated by this formula:

Maximum Throughput = Port Count * Baud Rate / Number of serial bits in a byte

The number of serial bits in a byte is usually 10 (1 start bit, 8 data bits, no parity bit, 1 stop bit). There are several factors and considerations that can affect the maximum throughput:

  • Number of bytes sent in a call: Since it takes a set amount of time to set up a DMA transfer to the serial card, you will have better throughput performance when large numbers of bytes are transferred at once. The best throughput is experienced when thousands of bytes are sent in a single call.
  • Flow control results in pauses in communication: The reason why over-run errors stop when flow control is enabled is because the sender stops sending. When these pauses in communication happen, the time it takes to transfer the bytes increases, resulting in less throughput.
  • Number of simultaneously active ports: Each active port competes for bandwidth, so while all ports can operate simultaneously, the amount of data each port can receive at a time is limited by the maximum throughput.
  • System specifications: current CPU workload, operating system, application software efficiency, etc.

Other factors such as system specifications, current CPU workload, operating system, application software efficiency, etc. also can impact the throughput performance.


    Figure 1: Typical Throughput vs. Baud Rate of one PXIe-8431/16

NI Serial devices share bandwidth across all active ports, therefore, for baud rates higher than 3MBd the devices are more suitable for applications involving data transmissions in short, fast bursts. Applications that have large amounts of data transmitting at or near the theoretical maximum throughput will be slowed by flow control.

Was this information helpful?

Yes

No