Receiver Synchronization

Some infrared transceivers use information in the infrared signal itself to synchronize with that signal so that they can receive incoming frames. Depending on hardware that some infrared transceivers use, different amounts of time are required for those infrared transceivers to synchronize to the point that they can reliably receive data. Typically, infrared transceivers synchronize with the infrared signal while they receive Beginning of Frame (BOF) flags at the beginning of each incoming frame. Due to the requirements of some hardware, infrared transceivers might require one or more BOF flags to achieve receiver synchronization.

The IrDA miniport driver must always have information about the extra number of BOF flags that its transceiver requires to synchronize on the incoming infrared signal. The IrDA miniport driver uses OID_IRDA_EXTRA_RCV_BOFSto specify the required extra BOF flags. IrLAP can send an OID_IRDA_EXTRA_RCV_BOFS query to the IrDA miniport driver at any time to retrieve the local transceiver's number of extra BOF flags. The IrDA miniport driver must also be informed of the extra BOF flags that the remote receiving station requires. After IrLAP negotiates link speed with the remote receiving station and sets the IrDA miniport driver's link speed, the IrDA miniport driver must determine the required number of extra BOF flags using the scaling table that follows.

The value specified in OID_IRDA_EXTRA_RCV_BOFS applies to a Serial Infrared (SIR) link speed of 115.2 kilobits per second (Kbps). The values for all other SIR link speeds are scaled from that value. IrDA miniport drivers use the following scaling table to determine the required extra BOF flags from link speeds for those drivers.

Speed Required Extra BOF Flags

2400

1

0

0

0

0

0

0

0

9600

4

2

1

0

0

0

0

0

19200

8

4

2

1

0

0

0

0

38400

16

8

4

2

1

0

0

0

57600

24

12

6

3

1

1

0

0

115200

48

24

12

6

3

2

1

0

 

To determine the OID_IRDA_EXTRA_RCV_BOFS value that an IrDA miniport driver should indicate to the IrDA protocol driver:

  1. Find the link speed to which the NIC's transceiver is set in the left-most column.

  2. In that row, find the required number of extra BOF flags for the transceiver at that speed.

  3. Go down that column to the row for 115.2 Kbps. The number of extra BOF flags that the scaling table specifies for 115.2 Kbps is the number of extra BOF flags that the miniport driver should indicate to the IrDA protocol driver.

The following examples show how an IrDA miniport driver uses the preceding scaling table to determine the appropriate OID_IRDA_EXTRA_RCV_BOFS value to specify:

  • At 2,400 bps, if the NIC's transceiver requires one extra BOF flag for synchronization, the IrDA miniport driver must specify 48 for the OID_IRDA_EXTRA_RCV_BOFS value.

  • At 57.6 Kbps, if the NIC's transceiver requires eight extra BOFs for synchronization, the IrDA miniport driver must specify 24 for the OID_IRDA_EXTRA_RCV_BOFS value. Because eight is between values 6 and 12 in the table, the IrDA miniport driver uses the higher number 12 to determine the OID_IRDA_EXTRA_RCV_BOFS value to specify.

  • At 115.2 Kbps, if the NIC's transceiver requires one extra BOF flag for synchronization, the IrDA miniport driver must specify one for the OID_IRDA_EXTRA_RCV_BOFS value.

Note that an infrared transceiver for the MIR, FIR, and VFIR link speeds must work with the exact number of BOF flags for that speed.

To honor the number of extra BOF flags that are required by the remote station, IrLAP must specify the number of extra BOF flags along with every packet that it sends to the IrDA miniport driver for transmission. This value is always the number of extra BOF flags required at the current link speed. Because IrLAP specifies the number of extra BOF flags along with every packet, the IrDA miniport driver is not required to use the preceding scaling table each time the IrDA miniport driver prepares a packet for transmission. The IrLAP protocol specifies the number of extra BOF flags for a packet in the media-specific member of the packet's associated out-of-band (OOB) data block. For more information, see Sending and Receiving Packet Arrays.

 

 

Send comments about this topic to Microsoft