PRB: Generic Serial Plug-and-Play ID String WarningID: Q158497
|
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.
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.
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.
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|
Additional query words: 4.00 kbdsd PNP plug-and-play comm enumerate
Keywords : DdkComm
Version : 4.00
Platform : WINDOWS
Issue type :
Last Reviewed: March 4, 1999