03.04.2013 Views

External RFCOMM1.1v16.4.4 Software Release Note

External RFCOMM1.1v16.4.4 Software Release Note

External RFCOMM1.1v16.4.4 Software Release Note

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

c02-srn-005Pa<br />

BlueCore 2-<strong>External</strong><br />

© Copyright CSR 2003<br />

This material is subject to CSR’s non-disclosure agreement.<br />

<strong>RFCOMM1.1v16.4.4</strong><br />

<strong>Software</strong> <strong>Release</strong> <strong>Note</strong><br />

February 2003<br />

CSR<br />

Unit 400 Cambridge Science Park<br />

Milton Road<br />

Cambridge<br />

CB4 0WH<br />

United Kingdom<br />

Registered in England 3665875<br />

Tel: +44 (0)1223 692000<br />

Fax: +44 (0)1223 692001<br />

www.csr.com


Contents<br />

bc02-srn-005Pa<br />

© Copyright CSR 2003<br />

This material is subject to CSR’s non-disclosure agreement.<br />

Contents<br />

1 Introduction .............................................................................................................................................3<br />

2 Firmware Identification ............................................................................................................................4<br />

3 Target Hardware ......................................................................................................................................5<br />

4 Qualification Information.........................................................................................................................6<br />

5 Functional Restrictions ...........................................................................................................................7<br />

5.1 4Mbit Variant...................................................................................................................................7<br />

5.2 8Mbit Variant...................................................................................................................................7<br />

6 Known Issues ..........................................................................................................................................8<br />

7 Changes Relative to RFCOMM1.1v15.2.1 <strong>Release</strong>...................................................................................9<br />

8 Issues Resolved Since RFCOMM1.1v15.2.1 <strong>Release</strong> ............................................................................10<br />

9 Piconet Support.....................................................................................................................................11<br />

10 Testing ...................................................................................................................................................12<br />

11 BlueLab Compatibility ...........................................................................................................................13<br />

12 RFCOMM Throughput Measurements ...................................................................................................14<br />

13 Host-to-BlueCore RFCOMM Flow Control .............................................................................................21<br />

13.1 Background ..................................................................................................................................21<br />

13.2 Flow Control Layer ........................................................................................................................21<br />

13.3 Initialisation...................................................................................................................................22<br />

13.4 Practical Implications of the New Mechanism.................................................................................22<br />

13.5 H4 ..............................................................................................................................................22<br />

14 Document References ...........................................................................................................................23<br />

Acronyms and Definitions............................................................................................................................24<br />

Record of Changes.......................................................................................................................................26<br />

List of Figures<br />

Figure 12.1: RFCOMM Throughput (Master to Slave) vs. Frame Size...............................................................15<br />

Figure 12.2: RFCOMM Throughput (Slave to Master) vs. Frame Size...............................................................16<br />

Figure 12.3: RFCOMM Equivalent Baud Rate (Master to Slave) vs. Frame Size ..............................................17<br />

Figure 12.4: RFCOMM Equivalent Baud Rate (Slave to Master) vs. Frame Size ...............................................18<br />

Figure 12.5: RFCOMM Frame-Rate (Master to Slave) vs. Frame Size..............................................................19<br />

Figure 12.6: RFCOMM Frame-Rate (Slave to Master) vs. Frame Size..............................................................20<br />

Figure 13.1: Flow Control Layer ......................................................................................................................21<br />

List of Tables<br />

Table 2.1: Available Firmware Variants..............................................................................................................4<br />

Table 6.1: Known Issues...................................................................................................................................8<br />

Table 11.1: BlueLab Compatibility...................................................................................................................13<br />

Page 2 of 26<br />

BlueCore 2-<strong>External</strong> <strong>RFCOMM1.1v16.4.4</strong> <strong>Software</strong> <strong>Release</strong> <strong>Note</strong>


1 Introduction<br />

bc02-srn-005Pa<br />

© Copyright CSR 2003<br />

This material is subject to CSR’s non-disclosure agreement.<br />

Introduction<br />

This document describes the <strong>RFCOMM1.1v16.4.4</strong> release of software for CSR's BlueCore2 Bluetooth chip.<br />

This firmware is based upon the HCIStack1.1v16.4 release.<br />

RFCOMM firmware exposes application programming interfaces (API) to L2CAP, Service Discovery Protocol<br />

(SDP), RFCOMM and Device Manager (DM) functionality. These are described in the referenced document<br />

[BSUG]; background information on Bluetooth and its upper layers can be found in [BT]. The firmware also<br />

contains a Virtual Machine (VM), which may be used to run applications. The BlueLab software development<br />

kit (SDK), which allows applications to be developed, is available separately. This release may be used for VM<br />

applications developed using BlueLab v2.1 through to at least BlueLab v2.6. See subsequent BlueLab or<br />

firmware release notes for details of future compatibility.<br />

<strong>Note</strong>:<br />

RFCOMM firmware does not expose the Host Controller Interface (HCI). Therefore it is not suitable for use<br />

with third party stacks.<br />

Page 3 of 26<br />

BlueCore 2-<strong>External</strong> <strong>RFCOMM1.1v16.4.4</strong> <strong>Software</strong> <strong>Release</strong> <strong>Note</strong>


2 Firmware Identification<br />

This firmware is named <strong>RFCOMM1.1v16.4.4</strong>.<br />

“RFCOMM” indicates that this is an RFCOMM variant of firmware.<br />

“1.1” indicates that this release supports v1.1 of the Bluetooth Specification [BT].<br />

bc02-srn-005Pa<br />

© Copyright CSR 2003<br />

This material is subject to CSR’s non-disclosure agreement.<br />

Firmware Identification<br />

“v16.4.4” indicates that this firmware is based upon the HCI Stack1.1v16.4 firmware build and that this is the<br />

fourth (.4) build based upon this firmware.<br />

Two variants for this firmware are provided. The first variant fits into a 4Mbit flash and supports BlueCore Serial<br />

Protocol (BCSP) and the Bluetooth Universal Asynchronous Receiver Transmitter (UART) protocol as described<br />

in section H:4 of the Bluetooth Specification [BT], but it has a reduced (24KWords) space for user applications.<br />

The other variant will only fit into an 8Mbit flash, but it supports all protocols including Universal Serial Bus (USB)<br />

as well as Device Firmware Upgrade (DFU). Each variant is available in versions that support both 56 and 128-bit<br />

encryption.<br />

Description: Build ID Identifier String<br />

8Mbit, 56-bit encryption, USB, BCSP, H4, DFU,<br />

32KWords application space<br />

8Mbit, 128-bit encryption, USB, BCSP, H4,<br />

DFU, 32KWords application space<br />

4Mbit, 56-bit encryption, BCSP, H4, 24KWords<br />

application space<br />

4Mbit, 128-bit encryption, BCSP, H4,<br />

24KWords application space<br />

659 2xRfc1v1Rfc16p4p4_56<br />

660 2xRfc1v1Rfc16p4p4_128 (1)<br />

657 2xRfc1v1Rfc16p4p4_56<br />

658 2xRfc1v1Rfc16p4p4_128 (1)<br />

Table 2.1: Available Firmware Variants<br />

<strong>Note</strong>:<br />

(1) For 128-bit encryption, contact sales@csr.com.<br />

Build IDs and identifier strings can be checked using the PSTool application available from CSR.<br />

Page 4 of 26<br />

BlueCore 2-<strong>External</strong> <strong>RFCOMM1.1v16.4.4</strong> <strong>Software</strong> <strong>Release</strong> <strong>Note</strong>


3 Target Hardware<br />

bc02-srn-005Pa<br />

© Copyright CSR 2003<br />

This material is subject to CSR’s non-disclosure agreement.<br />

Target Hardware<br />

This release only runs on CSR’s Bluetooth chip BlueCore2-<strong>External</strong>. The software makes use of a flash memory<br />

device to hold the program, constant data and non-volatile data. This version of the firmware has been tested on<br />

flash devices SST SST39VF400A (used on Casira), AMD AM29LV400BB and Sharp LH28F800BJHB-43.<br />

Previous builds have also been tested on Fujitsu MBM29LV400BC, SST SST39VF800 and Intel<br />

TE28F800B3B90.<br />

Page 5 of 26<br />

BlueCore 2-<strong>External</strong> <strong>RFCOMM1.1v16.4.4</strong> <strong>Software</strong> <strong>Release</strong> <strong>Note</strong>


4 Qualification Information<br />

bc02-srn-005Pa<br />

© Copyright CSR 2003<br />

This material is subject to CSR’s non-disclosure agreement.<br />

Qualification Information<br />

This firmware has been qualified to v1.1 of the Bluetooth Specification [BT] for BB (baseband), LM (Link<br />

Manager), L2CAP, RFCOMM, SPP (Serial Port Profile), SDP and GAP (Generic Access Profile). See the<br />

standard PICS (Protocol Implementation Confirmation Statement) documents on CSR’s website for further<br />

information.<br />

Page 6 of 26<br />

BlueCore 2-<strong>External</strong> <strong>RFCOMM1.1v16.4.4</strong> <strong>Software</strong> <strong>Release</strong> <strong>Note</strong>


5 Functional Restrictions<br />

5.1 4Mbit Variant<br />

This is an RFCOMM release and does not support HCI.<br />

This release only supports BCSP and H4 transports; it does not support USB<br />

This release does not support DFU.<br />

bc02-srn-005Pa<br />

© Copyright CSR 2003<br />

This material is subject to CSR’s non-disclosure agreement.<br />

Functional Restrictions<br />

This release has been only lightly tested with multiple concurrent RFCOMM or L2CAP connections (piconets).<br />

RFCOMM bandwidth is limited to approximately 380kbit/s.<br />

The following built-in self-test (BIST) modes are not supported in the 4Mbit variant. (Names are as used in CSR’s<br />

BlueTest utility.)<br />

DEEP_SLEEP<br />

SETTLE<br />

IF_RESP<br />

VCOTRIM<br />

RF_IQ_MATCH<br />

IF_IQ_MATCH<br />

BUILD_LUT<br />

READ_LUT<br />

LOOP_BACK<br />

RX_LOOP_BACK<br />

BER_LOOP_BACK<br />

CFG_UAP_LAP<br />

CFG_ACC_ERRS<br />

CFG_IQ_TRIM<br />

CFG_TX_TRIM<br />

CFG_LO_LVL<br />

CFG_TX_COMP<br />

CFG_SETTLE<br />

SETTLE_RPT<br />

5.2 8Mbit Variant<br />

This is an RFCOMM release and does not support HCI.<br />

This release has been only lightly tested with multiple concurrent RFCOMM or L2CAP connections (piconets).<br />

RFCOMM bandwidth is limited to approximately 380kbit/s.<br />

Page 7 of 26<br />

BlueCore 2-<strong>External</strong> <strong>RFCOMM1.1v16.4.4</strong> <strong>Software</strong> <strong>Release</strong> <strong>Note</strong>


6 Known Issues<br />

bc02-srn-005Pa<br />

© Copyright CSR 2003<br />

This material is subject to CSR’s non-disclosure agreement.<br />

Known Issues<br />

Table 6.1 is a digest of issues relevant to RFCOMM firmware users. Refer to [HCIRELEASE] for a list of issues<br />

that affect the radio performance.<br />

ID Severity Description<br />

1-128 Low<br />

1-243<br />

1-253<br />

Low<br />

H16.157 Medium<br />

A total of 65531 outgoing RFCOMM connections can be made before the chip must<br />

be reset. This issue is classified as of low severity since it is unlikely that many<br />

implementations will require this many sequential connections without undergoing<br />

an intervening hardware reset.<br />

If a large amount of RFCOMM data is sent to the chip after an RFCOMM connection<br />

has been closed, unpredictable behaviour may be seen. This issue is classified as<br />

of low severity because it can only be provoked by illegal behaviour on the part of<br />

the host.<br />

When using Sniff, power consumption is higher than is necessary. This is due to<br />

processor activity being triggered at the end of a Sniff interval. The extra power<br />

consumption may make this build unsuitable for embedded products such as<br />

headsets or mice where battery life is important.<br />

Table 6.1: Known Issues<br />

Page 8 of 26<br />

BlueCore 2-<strong>External</strong> <strong>RFCOMM1.1v16.4.4</strong> <strong>Software</strong> <strong>Release</strong> <strong>Note</strong>


c02-srn-005Pa<br />

© Copyright CSR 2003<br />

This material is subject to CSR’s non-disclosure agreement.<br />

Changes Relative to RFCOMM1.1v15.2.1 <strong>Release</strong><br />

7 Changes Relative to RFCOMM1.1v15.2.1 <strong>Release</strong><br />

A number of baseband-level changes and fixes have been made. Refer to [HCIRELEASE] for details.<br />

This firmware incorporates VM revision v5.8. This adds traps for the following:<br />

Monitoring and defragmenting the Persistent Store. (PsFreeCount, PsFlood)<br />

Improved CODEC control (CodecSetOutputGain, CodecSetInputGain, CodecInputGainRange,<br />

CodecOutputGainRange)<br />

Read-only file system (StreamFileSource, FileFind, FileType)<br />

Firmware I 2 C access (I2cTransfer)<br />

Power-control (VmTransmitPowerSetDefault, VmTransmitPowerSetMaximum,<br />

VmTransmitPowerGetDefault, VmTransmitPowerGetMaximum)<br />

Ability to use memory as a stream source (StreamSourceRegion)<br />

Access to auxiliary DAC (PioSetAuxDac)<br />

/dev/null equivalent for streams (StreamConnectDispose)<br />

Support for DFU (VmRebootForDfu)<br />

Direct control of RTS line (PioSetRts)<br />

Ability to switch stream modes (StreamSourceFromSink, StreamSinkFromSource)<br />

DFU and USB support has been added to the 8Mbit variant.<br />

Page 9 of 26<br />

BlueCore 2-<strong>External</strong> <strong>RFCOMM1.1v16.4.4</strong> <strong>Software</strong> <strong>Release</strong> <strong>Note</strong>


c02-srn-005Pa<br />

© Copyright CSR 2003<br />

This material is subject to CSR’s non-disclosure agreement.<br />

Issues Resolved Since RFCOMM1.1v15.2.1 <strong>Release</strong><br />

8 Issues Resolved Since RFCOMM1.1v15.2.1 <strong>Release</strong><br />

ID Description<br />

1-205<br />

L2CAP connectionless data did not work. Only profiles such as TCS-BIN are likely to use<br />

connectionless data.<br />

1-241 RFCOMM does not send parameter negotiation response with the same priority as request.<br />

1-256<br />

1-296<br />

1-273<br />

1-274<br />

B-43<br />

The clock offset field in returned HCI_ReadClockOffsetComplete was passed to the DM clock<br />

offset cache, even if the status of the read was not SUCCESS. This sometimes resulted in an<br />

invalid clock-offset being cached if the command was issued as the connection was being torn<br />

down.<br />

When periodically sending data (approximately every 50ms) test_cable occasionally stops<br />

transferring data over the air. After about 15 seconds it resumed, but data sent over the UART in<br />

those 15 seconds was lost.<br />

RFCOMM test TC/RFC/BV-19-C attempts to send an RPN with one value byte. This is to be<br />

interpretted as a query and the IUT should respond with its own values. It is not stated in<br />

RFCOMM or TS07.10 what the value of the parameter mask should be in this case, but<br />

Bluestack set all bits to 0. The behaviour has been changed so that 0x3f7f is returned instead.<br />

RFCOMM test TP/RFC/BV-12-C checks that the IUT stops sending data when an FCOFF<br />

request is sent to the IUT. The on-chip stream library ignored old-style flow-control and thus<br />

failed this test.<br />

It was not possible to simultaneously run L2CAP and RFCOMM clients; this would manifest itself<br />

as a failure to respond to RFCOMM requests after an L2CAP_REGISTER_REQ.<br />

Page 10 of 26<br />

BlueCore 2-<strong>External</strong> <strong>RFCOMM1.1v16.4.4</strong> <strong>Software</strong> <strong>Release</strong> <strong>Note</strong>


9 Piconet Support<br />

bc02-srn-005Pa<br />

© Copyright CSR 2003<br />

This material is subject to CSR’s non-disclosure agreement.<br />

Piconet Support<br />

The default Persistent Store settings are optimised for point-to-point applications, such as headset,<br />

audio-gateway, dial-up networking (DUN), cable-replacement, etc. These settings may need to be modified to<br />

support piconets containing two or more slaves using RFCOMM. CSR has successfully tested data transfer over<br />

RFCOMM between a master and three slaves. Contact CSR for technical assistance in modifying Persistent<br />

Store settings to support this scenario.<br />

Page 11 of 26<br />

BlueCore 2-<strong>External</strong> <strong>RFCOMM1.1v16.4.4</strong> <strong>Software</strong> <strong>Release</strong> <strong>Note</strong>


10 Testing<br />

The firmware has been tested with particular stress laid on the following features:<br />

Ability to run applications such as a headset from within the VM<br />

Ability to enter and leave Deep Sleep<br />

Bulk and multiple data transfers using RFCOMM<br />

Interoperability with other stacks and hardware manufacturers when used as the basis for applications<br />

(e.g., the headset profile)<br />

Regression testing of closed defects<br />

bc02-srn-005Pa<br />

© Copyright CSR 2003<br />

This material is subject to CSR’s non-disclosure agreement.<br />

Testing<br />

Additionally, the HCI build upon on which this firmware is based is heavily tested. See [HCIRELEASE] for details.<br />

Neither the USB nor DFU have been heavily tested.<br />

Page 12 of 26<br />

BlueCore 2-<strong>External</strong> <strong>RFCOMM1.1v16.4.4</strong> <strong>Software</strong> <strong>Release</strong> <strong>Note</strong>


11 BlueLab Compatibility<br />

bc02-srn-005Pa<br />

© Copyright CSR 2003<br />

This material is subject to CSR’s non-disclosure agreement.<br />

BlueLab Compatibility<br />

‘X’ indicates compatibility, numbers indicate partial compatibility. See the appropriate note(s) for details.<br />

Firmware Version<br />

Firmware version numbers apply to both HCI and RFCOMM firmware releases<br />

BlueLab ID: v10.3 v10.7 v12.x v13.x v14.x v15.x v16.2 v16.4<br />

BlueLab 1.4 X X<br />

BlueLab 1.5 X X<br />

BlueLab 1.6 X X<br />

BlueLab 1.7 X (1) X<br />

BlueLab 1.8 X<br />

BlueLab 1.9<br />

(a, b, c, d, e variants)<br />

BlueLab 2.0 X<br />

X<br />

BlueLab 2.1 X (2) X (3) X (3, 4) X X<br />

BlueLab 2.2 X (3) X (3, 4) X X<br />

BlueLab 2.3 X (3, 4) X X<br />

BlueLab 2.4 X (3, 4) X X<br />

BlueLab 2.5 X (3) X X<br />

BlueLab 2.6 X X<br />

BlueLab 2.7 X X<br />

Table 11.1: BlueLab Compatibility<br />

<strong>Note</strong>s:<br />

(1) Host comms are not available with this combination, nor with BlueLab before v1.7<br />

(2) BlueCore01 only<br />

(3) BlueCore2 only<br />

(4) The BlueFlashCmd tool supplied with BlueLab v2.4 and earlier versions may report a verify error on<br />

sector zero when attempting to program the flash with RFCOMM1.1v15.2.1 or later firmware. This error is<br />

caused by a bug in BlueFlashCmd and may be safely ignored. However, customers wishing to use<br />

RFCOMM1.1v15.2.1 firmware with applications produced using these versions of BlueLab may suppress this<br />

error by either:<br />

Using the BlueFlashCmd utility from BlueSuite v1.11 to manually program the merged file produced<br />

by the make bc02 step.<br />

Migrating user application and any modified libraries to BlueLab v2.5. In most cases this should<br />

simply mean copying the application files to the new BlueLab application directory and recompiling.<br />

Page 13 of 26<br />

BlueCore 2-<strong>External</strong> <strong>RFCOMM1.1v16.4.4</strong> <strong>Software</strong> <strong>Release</strong> <strong>Note</strong>


12 RFCOMM Throughput Measurements<br />

bc02-srn-005Pa<br />

© Copyright CSR 2003<br />

This material is subject to CSR’s non-disclosure agreement.<br />

RFCOMM Throughput Measurements<br />

The following graphs were generated using a PC to transfer data between two Casiras. Both Casiras were set to<br />

the same Baud-rate and used BCSP. The throughput, therefore, represents the minimum transmit and receive<br />

rates. The fc_threshold field in the RFC_INIT_REQ was set to 0 for these tests.<br />

The decrease in throughput at framesizes around 370 bytes is due to a feature of RFCOMM flow-control. In this<br />

release, the on-chip RFCOMM buffer size is approximately 750 bytes. For frame-sizes of less than 370 bytes, it is<br />

possible to fit two or more frames in the buffer simultaneously. The host can transfer a packet over BCSP while<br />

BlueCore2-<strong>External</strong> transmits a packet over the radio. At frame-sizes greater than 370 bytes, it is only possible to<br />

fit a single frame into the buffer and the host must wait for the frame to be transmitted over the radio before<br />

transferring another frame over BCSP.<br />

Figure 12.3 and Figure 12.4 show equivalent Baud-rate, and illustrate the rate at which an RS232 link (using one<br />

start, one stop, and one parity bit) would have to run in order to match the transfer rate across the air. For<br />

example, an RFCOMM radio link transferring 40kbits/s is transmitting as much data as a wired V.90 modem<br />

communicating with a PC at 56k Baud.<br />

<strong>Note</strong>:<br />

The default RFCOMM framesize of 127 does not give the maximum throughput at higher Baud rates; CSR<br />

recommends that a higher framesize be negotiated if high throughput is required.<br />

Page 14 of 26<br />

BlueCore 2-<strong>External</strong> <strong>RFCOMM1.1v16.4.4</strong> <strong>Software</strong> <strong>Release</strong> <strong>Note</strong>


Throughput (kbits/s)<br />

bc02-srn-005Pa<br />

Figure 12.1: RFCOMM Throughput (Master to Slave) vs. Frame Size<br />

© Copyright CSR 2003<br />

This material is subject to CSR’s non-disclosure agreement.<br />

RFCOMM Throughput Measurements<br />

Page 15 of 26<br />

BlueCore 2-<strong>External</strong> <strong>RFCOMM1.1v16.4.4</strong> <strong>Software</strong> <strong>Release</strong> <strong>Note</strong>


Throughput (kbits/s)<br />

bc02-srn-005Pa<br />

Frame Size (bytes)<br />

Figure 12.2: RFCOMM Throughput (Slave to Master) vs. Frame Size<br />

© Copyright CSR 2003<br />

This material is subject to CSR’s non-disclosure agreement.<br />

RFCOMM Throughput Measurements<br />

Page 16 of 26<br />

BlueCore 2-<strong>External</strong> <strong>RFCOMM1.1v16.4.4</strong> <strong>Software</strong> <strong>Release</strong> <strong>Note</strong>


Equivalent Baud Rate (kBaud)<br />

bc02-srn-005Pa<br />

Frame Size (bytes)<br />

© Copyright CSR 2003<br />

This material is subject to CSR’s non-disclosure agreement.<br />

RFCOMM Throughput Measurements<br />

Figure 12.3: RFCOMM Equivalent Baud Rate (Master to Slave) vs. Frame Size<br />

Page 17 of 26<br />

BlueCore 2-<strong>External</strong> <strong>RFCOMM1.1v16.4.4</strong> <strong>Software</strong> <strong>Release</strong> <strong>Note</strong>


Equivalent Baud Rate (kBaud)<br />

bc02-srn-005Pa<br />

Frame Size (bytes)<br />

© Copyright CSR 2003<br />

This material is subject to CSR’s non-disclosure agreement.<br />

RFCOMM Throughput Measurements<br />

Figure 12.4: RFCOMM Equivalent Baud Rate (Slave to Master) vs. Frame Size<br />

Page 18 of 26<br />

BlueCore 2-<strong>External</strong> <strong>RFCOMM1.1v16.4.4</strong> <strong>Software</strong> <strong>Release</strong> <strong>Note</strong>


Frame-Rate (Frames/s)<br />

bc02-srn-005Pa<br />

Frame Size (bytes)<br />

Figure 12.5: RFCOMM Frame-Rate (Master to Slave) vs. Frame Size<br />

© Copyright CSR 2003<br />

This material is subject to CSR’s non-disclosure agreement.<br />

RFCOMM Throughput Measurements<br />

Page 19 of 26<br />

BlueCore 2-<strong>External</strong> <strong>RFCOMM1.1v16.4.4</strong> <strong>Software</strong> <strong>Release</strong> <strong>Note</strong>


Frame-Rate (Frames/s)<br />

bc02-srn-005Pa<br />

Frame Size (bytes)<br />

Figure 12.6: RFCOMM Frame-Rate (Slave to Master) vs. Frame Size<br />

© Copyright CSR 2003<br />

This material is subject to CSR’s non-disclosure agreement.<br />

RFCOMM Throughput Measurements<br />

Page 20 of 26<br />

BlueCore 2-<strong>External</strong> <strong>RFCOMM1.1v16.4.4</strong> <strong>Software</strong> <strong>Release</strong> <strong>Note</strong>


13 Host-to-BlueCore RFCOMM Flow Control<br />

13.1 Background<br />

bc02-srn-005Pa<br />

© Copyright CSR 2003<br />

This material is subject to CSR’s non-disclosure agreement.<br />

Host-to-BlueCore RFCOMM Flow Control<br />

The Bluecore2-<strong>External</strong> chip has a limited amount of RAM (random access memory) available to buffer data prior<br />

to transmitting it over the radio. It is important that a host does not overflow this memory when streaming data to<br />

a peer. Earlier releases of the firmware attempted to moderate the flow of credits in order to control the amount of<br />

data on-chip. This had a detrimental effect on data rates and stability, and this has led to the introduction of the<br />

mechanism described in this document.<br />

<strong>Note</strong>:<br />

This flow control mechanism need only be implemented by hosts. VM applications that use RFCOMM do not<br />

need to use flow-control.<br />

13.2 Flow Control Layer<br />

Flow control may be treated as a layer between the application lower layers and the transport.<br />

Application<br />

RFC Primitives<br />

Flow Control Layer<br />

RFC Primitives + Flow Control Primitives<br />

Transport<br />

Figure 13.1: Flow Control Layer<br />

The flow control layer (FCL) is responsible for preventing the chip from being flooded with RFCOMM data<br />

requests or other primitives. In order to accomplish this, it must monitor the number of primitives issued to the<br />

chip and the number consumed. The number of primitives consumed is published by the chip in the form of a<br />

special RFC_DATA_IND primitive.<br />

Any RFC_DATA_IND primitive with mux_id set to 0xff and payload_length set to 0 is actually a flow<br />

control token (FCT) and should be interpreted and consumed by the FCL. A primitive with this form has an<br />

overloaded form of credits field, which should be interpreted as the number of primitives consumed by the<br />

chip.<br />

The FCL must ensure that at any time the accumulated size (in bytes) of all primitives on-chip is less than<br />

RFCOMM_BUFFER_SIZE. This can be managed in a number of ways: the simplest is to assume that each<br />

packet sent to the chip is of a size equal to that of the largest RFC_DATA_REQ that can be sent, e.g., 12 (for<br />

header) plus the frame size negotiated during RFCOMM parameter negotiation.<br />

Page 21 of 26<br />

BlueCore 2-<strong>External</strong> <strong>RFCOMM1.1v16.4.4</strong> <strong>Software</strong> <strong>Release</strong> <strong>Note</strong>


Call this maximum primitive size “p”, then define a window:<br />

window = (RFCOMM_BUFFER_SIZE)/p<br />

where RFCOMM_BUFFER_SIZE = 1024 – 256<br />

The FCL must ensure that:<br />

num_prims_issued – num_prims_consumed


14 Document References<br />

Document ID Document Reference<br />

[BT] Specification of the Bluetooth System, Volume 1, Core, v1.1, 22 February 2001<br />

[BSUG] Bluestack User Manual; Mezoe document C6066-UM-001 v1.6<br />

[HCIRELEASE]<br />

Further Reference<br />

bc02-srn-005Pa<br />

bcore-srn-013Pa, BlueCore2-<strong>External</strong> HCIStack1.1v16.4 <strong>Software</strong> <strong>Release</strong> <strong>Note</strong>,<br />

November 2002<br />

[BTSECURITY] Bluetooth Security Architecture 1.C.116/1.0<br />

© Copyright CSR 2003<br />

This material is subject to CSR’s non-disclosure agreement.<br />

Document References<br />

Page 23 of 26<br />

BlueCore 2-<strong>External</strong> <strong>RFCOMM1.1v16.4.4</strong> <strong>Software</strong> <strong>Release</strong> <strong>Note</strong>


Acronyms and Definitions<br />

bc02-srn-005Pa<br />

© Copyright CSR 2003<br />

This material is subject to CSR’s non-disclosure agreement.<br />

Acronyms and Definitions<br />

BlueCore Group term for CSR’s range of Bluetooth chips, currenctly bc01b, BC2 and variants<br />

BlueLab CSR’s software development kit for applications running in BlueCore’s VM<br />

Bluetooth A set of technologies providing audio and data transfer over short-range radio connections<br />

Casira CSR’s main Bluetooth evaluation hardware<br />

BlueCore01 CSR Bluetooth chip<br />

BlueCore2 CSR Bluetooth chip<br />

ACK ACKnowledge<br />

API Application Programming Interface<br />

BB BaseBand<br />

BCCMD BlueCore Command<br />

BCSP BlueCore Serial Protocol; proprietary CSR UART protocol<br />

BIST Built-In Self-Test; also referred to as “radio test”<br />

CFC<br />

Credit-based Flow Control; RFCOMM mechanism for implementing application-layer<br />

flow-control<br />

CSR Cambridge Silicon Radio<br />

CODEC COder DECoder<br />

DAC Digital-to-Analogue Converter<br />

DFU Device Firmware Upgrade<br />

DM Device Manager<br />

DSP Digital Signal Processor<br />

DUN Dial-Up Networking<br />

ETSI European Telecommunications Standards Institute<br />

FCOFF Flow Control OFF<br />

FCL Flow Control Layer; host-side entity responsible for implementing RFCOMM flow-control<br />

FCT Flow Control Token; primitive used as part of RFCOMM flow-control<br />

GAP Generic Access Profile<br />

H4 HCI UART Transport Layer; described in section H4 of BT<br />

HCI Host Controller Interface; interface between host and Bluetooth module<br />

I 2 C Inter-Integrated Circuit<br />

IUT Implementation Under Test<br />

L2CAP Logical Link Control and Adaptation Protocol; element of Bluetooth<br />

LC Link Controller<br />

LM Link Manager<br />

MCU MicroController Unit; microprocessor, DSP or other processor<br />

NOP No Operation<br />

PC Personal Computer<br />

PCM Pulse Coded Modulation; digitised audio sample stream<br />

PICS Protocol Implementation Confirmation Statement<br />

RAM Random Access Memory<br />

RFCOMM Serial cable emulation protocol; element of Bluetooth<br />

RPN Remote Port Negotiation<br />

RTS Request To Send<br />

SCO Synchronous Connection-Oriented<br />

Page 24 of 26<br />

BlueCore 2-<strong>External</strong> <strong>RFCOMM1.1v16.4.4</strong> <strong>Software</strong> <strong>Release</strong> <strong>Note</strong>


SDK <strong>Software</strong> Development Kit<br />

SDP Service Discovery Protocol; element of Bluetooth<br />

SPP Serial Port Profile<br />

TCS-BIN GSM standard reference: TS07.1-, v6.3.0, ETSI<br />

UART Universal Asynchronous Receiver Transmitter<br />

USB Universal Serial Bus<br />

bc02-srn-005Pa<br />

© Copyright CSR 2003<br />

This material is subject to CSR’s non-disclosure agreement.<br />

Acronyms and Definitions<br />

VM Virtual Machine; environment in the BlueCore firmware for running customer applications<br />

Page 25 of 26<br />

BlueCore 2-<strong>External</strong> <strong>RFCOMM1.1v16.4.4</strong> <strong>Software</strong> <strong>Release</strong> <strong>Note</strong>


Record of Changes<br />

Date: Revision Reason for Change:<br />

12 FEB 03 a Original publication of this document (CSR reference: bc02-srn-005Pa)<br />

bc02-srn-005Pa<br />

BlueCore 2-<strong>External</strong><br />

<strong>RFCOMM1.1v16.4.4</strong><br />

<strong>Software</strong> <strong>Release</strong> <strong>Note</strong><br />

bc02-srn-005Pa<br />

February 2003<br />

© Copyright CSR 2003<br />

This material is subject to CSR’s non-disclosure agreement.<br />

Record of Changes<br />

Bluetooth and the Bluetooth logos are trademarks owned by Bluetooth SIG Inc, USA and licensed to CSR.<br />

BlueCore is a trademark of CSR.<br />

All other product, service and company names are trademarks, registered trademarks or service marks of their<br />

respective owners.<br />

CSR’s products are not authorised for use in life-support or safety-critical applications.<br />

Page 26 of 26<br />

BlueCore 2-<strong>External</strong> <strong>RFCOMM1.1v16.4.4</strong> <strong>Software</strong> <strong>Release</strong> <strong>Note</strong>

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!