PRB: Generic Serial Plug-and-Play ID String Warning

Last reviewed: November 4, 1996
Article ID: Q158497

The information in this article applies to:

  • Microsoft Win32 Device Development Kit (DDK) for Windows 95 4.0

SYMPTOMS

The documentation for general serial plug-and-play enumeration for devices goes into some detail. Yet some OEM's have noticed that their PNP ID string is being corrupted by characters added to the front of the ID.

CAUSE

If your device is primarily using RTS to gate the PNP string transmission to the PC, there is an initial RTS pulse before the carefully-timed PNP RTS pulses generated as part of the PNP enumeration. In addition, the enumerator opens and purges the COM port only once at the start of the enumeration, prior to its two PNP attempts. This means that long PNP ID's will run over into the now-cleared receive buffer if not cut off right away when RTS goes false. Also, a failed first attempt that generates any characters may cause the same problem.

RESOLUTION

It is extremely important to understand that an RTS pulse occurs before the time you would expect it. Therefore, if your device starts to send on the initial "Open" RTS pulse, you must immediately STOP ALL DATA to the PC if the RTS signal goes false while you are sending.

MORE INFORMATION

The timing diagram for PNP serial adapted from the PNP specification Figure 1 (as it appears on an oscilloscope) is as follows (note the added Open/Purge intervals):

interval---->Open|purg|check|<---1st--->|<1st>|<2nd>|<2nd>|<--Idle----

             COM |COM | dev |   Setup   | Wait|Setup| Wait|
                      |     |     |     |     |     |     |
time                  |  T1 |  T2 |  T3 |  T4 |  T2 |  T4 |
             _______________       ___________       _____________
DTR(108)                    \_____/           \_____/
                      |     |     |     |     |     |     |
               _                         _____       _____
RTS(105)     _/ \_______________________/     \_____/     \_________
                      |     |           |     |     |
reference             |2.1.2|   2.1.3   |2.1.4|2.1.5|2.1.6|


KBCategory: kbprg kbprb
KBSubcategory: DdkComm
Additional reference words: 4.00 kbdsd PNP plug-and-play comm enumerate



THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: November 4, 1996
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.