External RFCOMM1.1v16.4.4 Software Release Note
External RFCOMM1.1v16.4.4 Software Release Note
External RFCOMM1.1v16.4.4 Software Release Note
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>