BASEBAND SPECIFICATION
3 PHYSICAL LINKS
4.3 PACKET HEADER
The header contains link control (LC) information and consists of 6 fields:
• AM_ADDR: 3- bit active member address
• TYPE: 4-bit type code
• FLOW: 1-bit flow control
• ARQN: 1-bit acknowledge indication
• SEQN: 1-bit sequence number
• HEC: 8-bit header error check
The total header, including the HEC, consists of 18 bits, see Figure 4.5 on page 51, and is encoded with a rate 1/3 FEC (not shown but described in Section 5.1 on page 67) resulting in a 54-bit header. Note that the AM_ADDR and TYPE fields are sent with their LSB first. The function of the different fields will be explained next.
Figure 4.5: Header format.
4.3.1 AM_ADDR
The AM_ADDR represents a member address and is used to distinguish between the active members participating on the piconet. In a piconet, one or more slaves are connected to a single master. To identify each slave sepa-rately, each slave is assigned a temporary 3-bit address to be used when it is active. Packets exchanged between the master and the slave all carry the AM_ADDR of this slave; that is, the AM_ADDR of the slave is used in both master-to-slave packets and in the slave-to-master packets. The all-zero address is reserved for broadcasting packets from the master to the slaves.
An exception is the FHS packet which may use the all-zero member address but is not a broadcast message (Section 4.4.1.4 on page 56). Slaves that are disconnected or parked give up their AM_ADDR. A new AM_ADDR has to be assigned when they re-enter the piconet.
4.3.2 TYPE
Sixteen different types of packets can be distinguished. The 4-bit TYPE code specifies which packet type is used. Important to note is that the interpretation of the TYPE code depends on the physical link type associated with the packet. First, it shall be determined whether the packet is sent on an SCO link or an ACL link. Then it can be determined which type of SCO packet or ACL packet has been received. The TYPE code also reveals how many slots the current packet will occupy. This allows the non-addressed receivers to refrain
4
from listening to the channel for the duration of the remaining slots. In Section 4.4 on page 54, each packet type will be described in more detail.
4.3.3 FLOW
This bit is used for flow control of packets over the ACL link. When the RX buffer for the ACL link in the recipient is full and is not emptied, a STOP indica-tion (FLOW=0) is returned to stop the transmission of data temporarily. Note, that the STOP signal only concerns ACL packets. Packets including only link control information (ID, POLL and NULL packets) or SCO packets can still be received. When the RX buffer is empty, a GO indication (FLOW=1) is returned.
When no packet is received, or the received header is in error, a GO is assumed implicitly.
4.3.4 ARQN
The 1-bit acknowledgment indication ARQN is used to inform the source of a successful transfer of payload data with CRC, and can be positive acknowl-edge ACK or negative acknowlacknowl-edge NAK. If the reception was successful, an ACK (ARQN=1) is returned, otherwise a NAK (ARQN=0) is returned. When no return message regarding acknowledge is received, a NAK is assumed implic-itly. NAK is also the default return information.
The ARQN is piggy-backed in the header of the return packet. The success of the reception is checked by means of a cyclic redundancy check (CRC) code.
An unnumbered ARQ scheme which means that the ARQN relates to the latest received packet from the same source, is used. See Section 5.3 on page 68 for initialization and usage of this bit.
4.3.5 SEQN
The SEQN bit provides a sequential numbering scheme to order the data packet stream. For each new transmitted packet that contains data with CRC, the SEQN bit is inverted. This is required to filter out retransmissions at the destination; if a retransmission occurs due to a failing ACK, the destination receives the same packet twice. By comparing the SEQN of consecutive pack-ets, correctly received retransmissions can be discarded. The SEQN has to be added due to a lack of packet numbering in the unnumbered ARQ scheme.
See section 5.3.2 on page 70 for initialization and usage of the SEQN bit. For broadcast packets, a modified sequencing method is used, see Section 5.3.5 on page 72.
4.3.6 HEC
Each header has a header-error-check to check the header integrity. The HEC consists of an 8-bit word generated by the polynomial 647 (octal representa-tion). Before generating the HEC, the HEC generator is initialized with an 8-bit value. For FHS packets sent in master page response state, the slave upper
address part (UAP) is used. For FHS packets sent in inquiry response, the default check initialization (DCI, see Section 5.4) is used. In all other cases, the UAP of the master device is used. For the definition of Bluetooth device addresses, see Section 13.1 on page 143.
After the initialization, a HEC is calculated for the 10 header bits. Before check-ing the HEC, the receiver must initialize the HEC check circuitry with the proper 8-bit UAP (or DCI). If the HEC does not check, the entire packet is disregarded.
More information can be found in Section 5.4 on page 73.