IrDA Stack Architecture (Windows CE 5.0)
The following illustration shows how an application communicates with an IR port.
Infrared Sockets
Windows CE supports socket-based infrared communications called Infrared Sockets (IrSock) by using industry standard Infrared Data Association (IrDA) Protocols. Applications implement Infrared Sockets in the same way as conventional Winsock, although several Winsock functions are used differently. For more information, see Creating an Infrared Winsock Application.IrDA Stack
Core infrared communication protocols according to the IrDA specification. For more information about IrDA standards, see this Official IrDA Web site.This is implemented in Irdastk.dll. The following list shows the layers of the IrDA stack:
- Infrared Link Management Protocol (IrLMP) adds multiple session support to IrLAP. Multiple applications can use IrLMP to monitor for incoming connections without interfering with each other. A single application can also use IrLMP to open a control connection and a data connection at the same time. IrLMP also adds per-connection flow control to the flow control provided by the single IrLAP connection. IrLMP lets an application offer data in large blocks to the IrDA protocol stack. The IrDA protocol stack can then send this data at optimal speeds. Using IrLMP, applications are not required to monitor lost data or flow control.
- Information Access Service (IAS) runs directly on top of IrLMP. IAS maps an ASCII service name to a LSAP-SEL. LSAP-SEL is a protocol element that is used to select one application from possibly many applications running on the server. This service name is a friendlier abstraction that is exposed to applications.
- IrDA Infrared Link Access Protocol (IrLAP) is a compliant link protocol that is responsible for detecting infrared devices, establishing a link between local and remote devices, and reliably delivering data between local and remote devices.
- Tiny TP provides a data stream channel to IrCOMM along with a flow control mechanism.
IrCOMM
An IrCOMM port is a simulated port and not a real device, which provides an easy way to use the standard communication functions for transferring data over the IR port. This causes some differences with a real serial port. For example, an application cannot configure an IrCOMM port.Microsoft Windows CE transparently uses Infrared Sockets (IrSock) to configure an IrCOMM port to communicate with the IrDA stack. With the IR link managed by IrSock, issues such as signal collision, signal interruption, and remote device detection are handled by the IrDA stack. This relieves an application of these tasks and simplifies programming for IR communications.
IrCOMM requires exclusive access to the IrDA link. This limits the use of IrCOMM to only one application and no other applications may access IrDA while an IrCOMM connection exists.
IrCOMM configurations are stored in the registry. To determine the port number created by IrCOMM, open the HKEY_LOCAL_MACHINE\Drivers\Builtin\IrCOMM key and query the Index value. For more information about these registry settings, see IrDA Registry Settings.
This functionality is implemented in Ircomm.dll.
Serial IR Miniport Driver
The NDIS miniport driver that implements the Serial Infrared (SIR) MAC layer that binds to the IrDA stack. It translates NDIS requests from the IrDA protocol driver into corresponding serial port requests. This driver is implemented in Irsir.dll. For more information see Infrared Serial Driver (IrSIR).
See Also
Infrared Communications | IrDA OS Design Development | IrDA Application Development
Send Feedback on this topic to the authors