2.1 COM Enumerator Detection

The COM Enumerator software shall do the following things visible on the COM port:

(Optional) Monitor the port when idle to detect device attach/detach.

The COM Enumerator will make two attempts to elicit a PnP ID:

The entire interval can be drawn as follows:

Figure 1.  Example COM Enumerator External Timing Diagram


interval---->|check|<---1st--->|<1st>|<2nd>|<2nd>|<--Idle----
             | dev |   Setup   | Wait|Setup| Wait|
             |     |     |     |     |     |     |
time         |  T1 |  T2 |  T3 |  T4 |  T2 |  T4 |
             ______       ___________       _____________
DTR(108)  XXX      \_____/           \_____/        
             |     |     |     |     |     |     |
                                _____       _____
RTS(105)  XXX__________________/     \_____/     \_________
             |     |           |     |     |
reference    |2.1.2|   2.1.3   |2.1.4|2.1.5|2.1.6|

T1: minimum interval to hold DTR high while waiting for DSR

T2: minimum interval for external device to power down or detect the port state

T3: DTR-RTS enumerator signature delay

T4: maximum interval to wait for DSR and/or first received character

T5: PNP COM ID per/character timeout (not shown)

T6: PNP COM ID EndPNP timeout (not shown)

T7: Disconnect Verification timout (not shown)

Note Figure 1 is drawn with characters to survive translation to plain ASCII.

2.1.1 COM port initialization, check for port availible

If the port IRQ is in use by another device driver, don't enumerate this port.

2.1.2 COM port initialization, check for device enumerate

2.1.3 COM port Setup, 1st phase

2.1.4 Wait for response, 1st phase

2.1.5 COM port Setup, 2nd phase

2.1.6 Wait for response, 2nd phase

2.1.7 Collect PnP COM device ID(s)

2.1.8 Verify Disconnect

This step verifies that the device has actually been removed. This accounts for modems and other devices that lower DSR briefly when DTR drops in order to reset, etc. The enumerator assumes the device is not present if DSR is low after a timeout.

2.1.9 Connect Idle

Note GIDEI = General Input Device Emulating Interface. These devices are used to provide accessibility for some computer users with disabilities.

2.1.10 Disconnect Idle

This step is optional, if the enumerator software is going to monitor idle ports for dynamic device removal, or attempt to detect non-Plug and Play devices.