INFO: Possible Serial Baud Rates on Various Machines

Article translations Article translations
Article ID: 99026 - View products that this article applies to.
This article was previously published under Q99026
Expand all | Collapse all

SUMMARY

Computers running Microsoft Windows NT, Windows 2000, or Windows XP may be unable to set the same serial baud rates due to differences in serial port hardware on various platforms and computers. These differences may be important to note when writing a serial communications application that runs on different Windows NT, Windows 2000, or Windows XP platforms.

The simplest way to determine what baud rates are available on a particular serial port is to call the GetCommProperties() application programming interface (API) and examine the COMMPROP.dwSettableBaud bitmask to determine what baud rates are supported on that serial port.

MORE INFORMATION

Some baud rates may be available on one machine and not on another because of differences in the serial port hardware used on the two machines. Most Intel 80x86 machines use a standard 1.8432 megahertz (MHz) clock speed on serial port hardware, and therefore most Intel machines can set the same baud rates. However, on other platforms, such as MIPS, there is no standard serial port clock speed. MIPS serial ports are known to exist with 1.8432 MHz, 3.072 MHz, 4.2336 MHz, and 8.0 MHz serial port clock chips. Future NT implementations on other platforms may have different serial port clock speeds as well.

Furthermore, certain requested baud rates are special-cased in the Windows NT serial driver so that they will work. The following are these special cases:
   MHz     Requested Baud    Divisor   Resulting Baud Rate (+/- 1)
  ---------------------------------------------------------------

   1.8432      56000            2              57600
   3.072       14400           13              14769
   4.2336       9600           28               9450
   4.2336      14400           18              14700
   4.2336      19200           14              18900
   4.2336      38400            7              37800
   4.2336      56000            5              52920
   8.0         14400           35              14286
   8.0         56000            9              55556
				
The actual baud rate can be calculated by dividing the divisor multiplied by 16 into the clock rate. For example, for a 1.8432 MHz clock and a divisor of 2, the baud rate would be:
1843200 Hz / (2 * 16) = 57600
For all other cases, as long as the requested baud rate is within 1 percent of the nearest baud rate that can be found with an integer divisor, the baud rate request will succeed.

Properties

Article ID: 99026 - Last Review: November 21, 2006 - Revision: 4.1
APPLIES TO
  • Microsoft Win32 Application Programming Interface, when used with:
    • Microsoft Windows NT Advanced Server 3.1
    • Microsoft Windows NT 4.0
    • Microsoft Windows NT 3.51 Service Pack 5
    • Microsoft Windows NT 4.0
    • Microsoft Windows 2000 Standard Edition
    • the operating system: Microsoft Windows XP
Keywords: 
kbinfo kbapi kbcommport kbkernbase kbserial KB99026

Give Feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com