next up previous contents
Next: The code Up: SLI practical writeup Previous: Introduction   Contents

Subsections

Implementation issues

First step to implementing a protocol must of course start with a thorough investigation of the protocol specification. During the first few weeks I tried to figure out exactly what was the purpose of the Link Manager as well as the Host Controller.

As both the Host Controller and Link Manager uses the Baseband directly and the Host Controller furthermore is in charge of initiating Link Manager functionality I have chosen to tie these two together in one symbol in the implementation. As far as I can see that is actually what is intended in the specification as there is no indication of how the Host Controller should communicate with the Link Manager and since the Host Controller Interface in the protocol stack is just shown as a line and not an individual protocol layer.

The Symbol

The HCI/LMP symbol has changed many times since the initial design - the only thing that has not undergone any changes is the interface to the upper layer which Benjamin Hanney and I decided upon very early in the course of implementation.

\includegraphics[width=5cm]{LMP.ps}

In the final version of the symbol I am using all the ports supplied by the original Baseband symbol and have furthermore added three ports AMBDIn, StateOut and Inquiry_In which all were necessary for vital communication between the Baseband and the Link Manager. These three ports are all used for sending data that is private to the Link Manager and the Control part of the Baseband and not something which is specified for either the protocols. This together with the fact that the Link Manager's main task is to control the state of the Baseband leads me to consider that these two might actually be supposed to be tied closer together (IE. let the Link Manager Symbol be part of the Baseband). This makes good sense to me as the Baseband actually does not work without some form of management (in the old implementation of the Baseband some of the Link Manager's tasks were performed to set up the connections when initialising). Either this or an interface between Link Manager and Baseband should be specified (in the Bluetooth Specification the Link Manager is just assumed to have full control of the workings of the Baseband).

The Interface

Upper

The upper interface for the symbol corresponds to that of the Host Controller Interface and contains the following ports:

HCIPacket_in
Direction: Input
Arguments: HCIPacket
Operation: Used to receive a packet for processing.

HCIPacket_out
Direction: Output
Arguments: HCIPacket
Operation: Used to send events or data from Host Controller to Host.

Lower

The lower interface for the symbol is modelled to match the upper interface of the already existing Baseband symbol. Extra ports have been added to exchange crucial information between the Link Manager and the Baseband.

OneSlotPacketIn
Direction: Input
Arguments: TOneSlotBasebandPacket
Operation: Used to receive a raw single slot packet to be processed.

FiveSlotPacketIn
Direction: Input
Arguments: TFiveSlotBasebandPacket
Operation: As above but receives five slot packets.

BasebandReady_in
Direction: Input
Arguments: Dummy
Operation: Used to signify that the lower layer is ready for operation.

OneSlotPacketOut
Direction: Output
Arguments: TOneSlotBasebandPacket
Operation: Used to send a raw single slot packet to the other side.

FiveSlotPacketOut
Direction: Output
Arguments: TFiveSlotBasebandPacket
Operation: As above but sends five slot packets.

LMPReady_out
Direction: Output
Arguments: Dummy
Operation: Used to tell the Baseband that the Link Manager is ready for operation.

ClockIn
Direction: Input
Arguments: CLKN
Operation: Used to receive the clock signal emitted by the baseband protocol.

AMBDIn
Direction: Input
Arguments: TAMBD_ADDR
Operation: Used by the Baseband to inform the Link Manager of the Active Member address decided upon by the Baseband.

StateOut
Direction: Output
Arguments: TStateIn
Operation: This output port is used to set the state of the Baseband.

Inquiry_In
Direction: Input
Arguments: HCIPacket
Operation: This input port is used to receive results of inquiries done by the Baseband.


next up previous contents
Next: The code Up: SLI practical writeup Previous: Introduction   Contents
Morten Bek 2001-04-16