IrCOMM - Serial Communication
The IrCOMM layer uses the IrLMP/IrTTP and IrLAP layers to offer serial data and control services by simulating RS232 over IrDA.
As for RS232, IrCOMM flow control between two nodes may use XON/XOFF, RTS/CTS lines or none.
IrCOMM supports these services:
IrCOMM services add a 2-byte overhead to the IrLMP frame with the appending of the IrTTP credit and IrCOMM control channel length after the IrLMP header.
There are four flavours of IrCOMM:
Briefly, 3-wire raw connects directly to IrLMP, ie does not use the IrTTP layer, uses a different service name for IAS lookup and is data only, ie no control channel. 3-wire cooked is a subset of 9-wire cooked. Centronics is a simulation of a printer interface.
For 9-wire cooked, as well as supporting XON/XOFF flow control, RTS/CTS flow control is also supported.
Connection and disconnection services are handled by the control channel. An IrCOMM connect occurs where the first IrCOMM frame immediately after the IrLMP/IrTTP connect contains the IrCOMM link parameters and current DTE/DCE control line status.
As for IrLMP/IrTTP, all IrCOMM frames are I frames. There are three IrCOMM frame types:
The IrCOMM frame type is indicated by the control channel length in the IrCOMM header field.
Service 1 of 2 - Control Info
The control channel contains link parameters and flow control information.
For an IrCOMM frame, the control channel has precedence over the data channel, ie any control data must be processed first.
The control channel serves as the IrCOMM connect which then allows payload data to be transferred. As part of the IrCOMM connect, an initial credit value is specified.
As for RS232, there are several IrCOMM link parameters among which are:
These parameters are independent of the IrLAP parameters, eg for most mobile phones, it is usual for the IrLAP baud rate to be 9600 but the IrCOMM baud rate to be 19200.
Service 2 of 2 - Data Transfer
The data channel passes payload serial data.
The simplest possible control channel scheme is used. The first IrCOMM frame is a control-only frame with:
On any subsequent IrCOMM frame, if there is any control info received, (a control-only or control-and-data frame), control info is transmitted with:
Thus, the remote stack is always enabled to transmit data without being restricted by the IrCOMM flow control.