US8112616B2 - Reduced instruction set baseband controller - Google Patents
Reduced instruction set baseband controller Download PDFInfo
- Publication number
- US8112616B2 US8112616B2 US12/774,997 US77499710A US8112616B2 US 8112616 B2 US8112616 B2 US 8112616B2 US 77499710 A US77499710 A US 77499710A US 8112616 B2 US8112616 B2 US 8112616B2
- Authority
- US
- United States
- Prior art keywords
- instruction
- execution unit
- interrupt
- link
- receiving
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 239000000872 buffer Substances 0.000 claims description 21
- 230000001360 synchronised effect Effects 0.000 claims description 3
- 230000000694 effects Effects 0.000 claims description 2
- 238000004891 communication Methods 0.000 abstract description 23
- 238000013461 design Methods 0.000 description 11
- 238000000034 method Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000012360 testing method Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 229920005994 diacetyl cellulose Polymers 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 238000005562 fading Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000035755 proliferation Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000002087 whitening effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
Definitions
- the present invention relates to wireless communications, and more particularly to a method for implementing the Bluetooth Communication standard.
- Bluetooth protocol uses radio transmissions to transfer both voice and data in real-time. Bluetooth technology allows users to make effortless, wireless and instant communications between various wireless devices.
- the Bluetooth system provides both point-to-point connections (only two Bluetooth devices involved), or point-to-multipoint connections (more than two Bluetooth devices).
- point-to-multipoint connection a communication channel is shared among several Bluetooth devices. Two or more devices sharing the same channel form a “piconet.”
- piconet In a piconet, one Bluetooth unit acts as the master of the piconet, whereas the other units act as slaves. The master controls access to the channel.
- FIG. 1 is a simplified diagram illustrating a scatternet 100 with several Bluetooth devices networked in multiple piconets under the Bluetooth protocol.
- a first piconet 101 comprises devices 103 , 105 , 107 , and 109 .
- Device 103 is the master device while devices 105 , 107 and 109 are slave devices.
- a second piconet 111 comprises devices 109 , 113 , and 115 .
- device 109 is the master device (though it was the slave device in first piconet 101 ) and devices 113 and 115 are slave devices.
- a third piconet 117 is comprised of master device 119 and slave devices 115 and 121 .
- Each Bluetooth device includes a radio transceiver and a host processor.
- a link controller and a link manager provide the hardware and software interfaces respectively between the radio transceiver and the host processor.
- the Bluetooth protocol defines various functions that must be carried out to communicate between the master devices and the slave devices. Those functions are described in the Specification of the Bluetooth System ; Ver 1.0B dated Dec. 1, 1999 which is incorporated by reference herein for all purposes. However, the Bluetooth protocol does not define specifically how those functions are to be carried out in the actual devices.
- One issue that arises in a design of those devices is the question of which functions are to be done in hardware and which functions are to be done in software. Of course, the answer involves trade-offs in design time, flexibility and testing.
- Another issue that arises in design of complex hardware and software systems such as a Bluetooth protocol is the communication between the hardware and the software.
- One way in which software and hardware communicate is through the use of a scheduling table.
- the scheduling table has been implemented as a list of instructions to the hardware.
- Several instructions are typically written to the table well in advance of their actual execution. That is, the link manager sets it up in advance with a series of instructions that are executed sequentially.
- such a method involves the use of lots of hardware and is limited in its flexibility.
- a new method of communicating with a scheduling table is desirable.
- FIG. 1 is a simplified diagram illustrating devices networked in multiple piconets under the Bluetooth protocol
- FIG. 2 is a simplified diagram of an exemplary system in which the present invention may be embodied
- FIGS. 3 a - 3 c are timing diagrams showing how the channel is divided into time slots to be shared by various devices.
- FIG. 4 is a flow diagram showing of a method for issuing interrupts to instruct the Link Manager to prepare the next instruction.
- FIG. 2 is a simplified diagram of an exemplary communication system 200 in which the present invention may be embodied.
- This diagram is merely an illustration and is not intended to limit the scope of the claims herein.
- One skilled in the art would recognize many other variations, modifications, and alternatives that may also be used with the principles disclosed in this specification without departing from the spirit and scope of the claimed inventions.
- the principles described herein are extendable to other protocols and no limitations to the particular protocol beyond those found in the claims are intended.
- System 200 includes a radio transceiver 202 coupled with an antenna 204 and a Link Controller 206 .
- Radio transceiver 202 receives radio frequency (RF) signals via antenna 204 , and converts those RF signals to Baseband data signals and provides the Baseband data signals to Link Controller 206 . Additionally, radio transceiver 202 receives Baseband data signals for transmission from Link Controller 206 and converts the Baseband data to an RF signal, which it transmits via the antenna 202 .
- RF radio frequency
- Link Controller 206 is also coupled with Link Manager 208 .
- Link Controller 206 implements low-level communication link protocols in hardware and provides an interface to radio transceiver 202 . It includes one or more execution units that operate on software instructions from Link Manager 208 .
- Link Manager 208 implements higher-level network link protocols in software.
- Link Manager 208 also interfaces with a host controller 210 .
- Host controller 210 may implement still higher-level network link protocols and user-level applications.
- Link Controller 206 uses transmit (TX) buffers and receive (RX) buffers for the data that is to be transmitted and received by the device. In the specific embodiment, only one of each is provided to minimize the gate count. In other embodiments, multiple buffers may be used to remove timing constraints that arise from shuffling the data.
- Link Controller 206 places data just received in the RX buffer, and data to be transferred during the next TX slots is placed in the TX buffer.
- System 200 may be used to implement a communication protocol such as the Bluetooth communication protocol or the like.
- the Bluetooth communication protocol provides a flexible system for point-to-point and point-to-multipoint communications.
- the Bluetooth system is a packet-based communication system and full duplex communication is accomplished using a TDD scheme.
- Bluetooth utilizes a frequency hop system to combat interference and fading.
- the Bluetooth protocol divides the time on the channel into periods of time called “slots.” Each slot is a fixed period of time controlled by the master device's clock.
- FIG. 3 is a time diagram showing how time is shared on the channel between various devices. In the specific embodiment shown in FIG. 3 , each slot is 625 ⁇ s.
- the Master device communicates with a different slave device. Thus, during the first time slot shown, the Master device communicates with Slave device 1 . During the second time slot, the Master devices communicates with Slave device 3 and in the third slot it communicates with Slave device 2 .
- each time slot is further divided into two portions such that during the first portion of the time slot, the initiating device transmits its request (TX) and during the second portion of the slot, the other device responds (RX). Such sharing of the channel continues as needed with each device.
- each communication may extend over 3 or 5 time slots such that each slot is effectively 3 ⁇ 625 ⁇ s or 5 ⁇ 625 ⁇ s, respectively.
- FIGS. 3 b and 3 c show such communication extending across three and five slots, respectively.
- Link Controller 206 An important issue in system 200 is the partitioning of functionality between hardware in Link Controller 206 and software in Link Manager 208 .
- the present invention applies principles of RISC computer architecture design to the Bluetooth architecture to provide an efficient and practical partition between hardware and software.
- sufficient hardware is provided in Link Controller 206 to execute a minimal set of instruction for those functions that are time critical.
- the remaining non-time critical functions are performed by software in Link Manager 208 .
- Link Manager 208 uses a microprocessor or other device to execute software instructions to perform functions that are relatively not time critical, and issues instructions to Link Controller 206 to execute in hardware to perform those functions that are time critical.
- the additional space, design time, testing, power consumption and the like associated with hardware implementations of functions is only incurred for those operations for which timing is critical.
- time critical operations are defined as those that must be completed in less than 1 ms.
- Other embodiments may include some instructions that do not meet that strict specification without departing from the spirit and scope of the present invention.
- some functions, though not particularly time critical, may be easily implemented in hardware without significantly increasing the costs.
- Link Controller 206 communicates with Link Controller 208 through an instruction stack.
- Link Manager 208 writes instruction into the instruction stack one at a time and Link Controller 206 interprets and executes them in the order they were written.
- the instruction stack is five instructions long—though typically only the first two entries in the instruction stack are used and Link Manager toggles between the two entries.
- Link Controller 206 requests a new instruction when the executing instruction is almost complete and Link Manager responds by writing its next instruction to the empty instruction register.
- a reset and abort register is a special hardware register provided in link controller 206 .
- the reset and abort registers include Abort, Master Reset, Page, and Page Scan entries. Setting the Abort entry causes the current instruction being executed to be aborted at the end of the current iteration. Abort can only be used on those instructions that have a variable length.
- Link Controller 206 checks the abort entry of the reset and abort register executing each iteration of the instruction. If the entry is set, it does not execute the instruction again and resets the entry.
- Setting the Master Reset entry resets Link Controller 206 . It is checked and reset by Link Controller 206 between each instruction. Setting the Page and Page Scan entries resets a page state machine. The Page entry is checked between each instruction, while the Page Scan entry is checked between each repetition of each instruction.
- Link Controller 206 uses interrupts to inform Link Manager 208 that it is ready for another instruction.
- Link Manager 208 writes a new instruction to the instruction stack prior to Link Controller 206 completing execution of the previous instruction.
- This prior loading of the instruction stack allows Link Manager to form and write its instruction before the previous instruction has completed.
- the instructions can be consecutively executed without gaps between instructions.
- Link Controller 206 issues an interrupt some time prior to its completion of an instruction.
- it issues the interrupt long enough before it completes execution of the previous instruction to allow a new instruction to be loaded before the previous one completes.
- the interrupt is given the name “WHAT'S UP” and is issued approximately 300 ⁇ s before completion of each instruction.
- the 300 ⁇ s time period is dependent upon the set up time associated with a new instruction. Other embodiments may have a significantly different time period.
- Link Manager 208 may fail to write a new instruction before Link Controller 206 completes execution of the previous instruction. If that happens, Link Controller 206 issues a “No Instruction” interrupt alerting link manager of its status. Typically, Link Manager 208 will issue and Idle instruction if it has no work for Link Controller 206 to perform, so the occurrence of a “No Instruction” interrupt typically signifies that some problem has occurred.
- FIG. 4 shows a flow diagram that illustrates a method by which that interrupt protocol may be accomplished.
- Link Manager 208 writes an instruction to the next instruction register in the instruction stack.
- Link Controller 206 reads that instruction register and begins executing the instruction in step 420 . It continues to execute that instruction until it anticipates in step 425 that its execution will complete within a specified period of time (in the specific embodiment approximate 300 ⁇ s.) Of course, if the instruction is to execute for several repetitions as described above, it will continue to execute normally until the last iteration.
- Link Controller 206 determines that only the specified time period remains in the execution, it issues a “WHAT'S UP” interrupt in step 430 . That interrupt signals to Link Manager 208 that the previous instruction is almost complete and it should write another instruction to the instruction stack.
- Link Controller 206 After issuing the “WHAT'S UP” interrupt, Link Controller 206 completes execution of the previous instruction in step 440 . After execution is finished, it looks to see if a new instruction is available in the instruction stack in step 450 . If an instruction is available for execution, the method returns to step 420 and Link Controller 206 executes that new instruction. If no new instruction is available for execution, then in step 460 link controller 205 issues a “No Instruction” interrupt. The software in Link Manager 208 may use that information to detect its failure in giving new instructions to Link Controller 206 in time. If necessary, link manager may issue an IDLE instruction in the event an instruction cannot be written before the execution of the last instruction is completed to avoid a “no instruction” interrupt from occurring. After issuing the “no instruction” interrupt, Link Controller 206 remains in step 470 waiting for a new instruction to be issued. When it is issued, it returns to step 420 and executes the instruction.
- the specific embodiment provides a mask register for allowing the various interrupts to be masked if desired.
- the “CRC FAIL” interrupt may be masked if the statistical information provided therefrom is not of interest.
- one of either “WHAT'S UP” or “RX DATA” may be masked to reduce the interrupt frequency, though it will be recognized that the time requirements may be increased if one is masked.
- the set of instructions upon which Link Controller 206 operates is limited to provide an efficient partition between hardware and software.
- the instructions themselves are not necessarily equal in length.
- the shortest instructions last for 1.25 ms (i.e., the shortest frame defined by the Bluetooth specification) while the longest instructions have infinite length.
- Those instructions that are variable in length include a parameter that is passed with the instruction that indicates the number of times the instruction is to be repeated.
- a zero in the length field instructs Link Controller 206 to execute the instruction infinitely, ending only when an abort command is issued. Instructions are aborted by writing an “abort” bit in a special reset and abort register, described in more detail above.
- twelve instructions are provided including Idle, Master ACL, Slave ACL, Master SCO, Slave SCO, Page, Page Scan, Inquiry, Inquiry Scan, Inquiry Response, Poll Unpark, and Request Unpark.
- a Master ACL instruction sets up a master Asynchronous Connection-Less (ACL) frame in a master device.
- An ACL link is a point-to-multipoint link between the master and all the slaves participating in a particular piconet.
- any master device can establish an ACL link on per-slot basis.
- the Master ACL instruction is used to initiate that link.
- the Master ACL instruction includes three parameters: 1) piconet (2 bits) identifies the piconet number to be used. This parameter is always zero, except when doing a master-slave switch.
- AM address (3 bits) is the Active Member address (AM_ADDR) to use in the packet header in the TX slot, i.e., the address of the packet. Normally, 1 to 7 are used as addresses, but zero is used if the message is a broadcast message.
- TX Packet Type (4 bits)—identifies the packet type to be used in the packet header in the TX slot, i.e., the packet type of the transmitted packet.
- the master frame has two interrupt points, both of them during the RX portion of the time slot. No interrupts are given during the TX portion of the time slot.
- the first interrupt point occurs immediately after the header is received or when the device determines that a correlation did not occur.
- a “WHAT'S UP” interrupt is issued to alert Link Manager 208 to issue a new instruction.
- the “WHAT'S UP” interrupt is preferably issued before the end of the instruction. Status information such as no correlation, check sum error, incorrect address, incorrect sequence number, or header OK may be passed along with the interrupt.
- the second interrupt point occurs when the packet has been received and the radio has been turned off.
- Link Controller 206 issues an “RX DATA” interrupt to inform Link Manager 208 that new data is in the RX data buffer and it needs to be read out. Since the specific embodiment only has one RX data buffer, the data must be read out before additional data is received. Since, the data could come in the very next time slot, Link Manager 208 must be informed immediately of the data's existence. Of course, other embodiments may have additional RX data buffers so that requirement could be somewhat relaxed. If the data in a packet arrives, but the CRC is incorrect, a “CRC FAIL” interrupt may be issued at this point, instead of the “RX DATA” interrupt.
- a Slave ACL command is used in slave devices to set up a slave ACL frame to correspond to the master ACL frame in an ACL link. It is very similar to the Master ACL command except the RX happens before the TX. That is, it receives data from the master during the first portion of the time slot, and transmits during the second portion of the time slot.
- the length of the ACL frame varies depending on what is received and what is transmitted.
- Slave ACL has two parameters: 1) piconet (2 bits) identifies the piconet number to be used. 2) TX Packet Type (5 bits) identifies the type of packet in the transmitted packet. If the packet type “Null Optional” is used, then it is not necessary for Link Controller 206 to send the null packet. Otherwise, a null packet type will force a null packet to be sent even if there is no header or payload information to send.
- the slave ACL frame has two interrupt points, both of them during the RX slots.
- the first interrupt point is immediately after the header is received or if a correlation did not occur.
- a “WHAT'S UP” interrupt is issued to drive the software to issue a new instruction.
- the “WHAT'S UP” interrupt is preferably issued before the end of the instruction.
- Status information such as no correlation, check sum error, incorrect address, incorrect sequence number, or header OK may be passed along with the interrupt.
- the other interrupt point is when the packet has been received and the radio has been turned off. When that occurs, Link Controller 206 informs the software that data is in the RX buffer and it needs to be read out so an “RX DATA” interrupt is given. If the data in the packet arrives, but the CRC is incorrect, a “CRC FAIL” interrupt may be issued at that point instead.
- a Master SCO instruction sets up a master Synchronous Connection-Oriented (SCO) frame with one or more transmit and receives slots. The exact number of time slots is based on which packet type is being used.
- An SCO link is a symmetric, point-to-point link between the master and a specific slave.
- the SCO link reserves specific time slots. Accordingly, the SCO link can be considered as a circuit-switched connection between the master device and the slave device.
- an SCO link is used to support time-bounded information such as voice data.
- Dedicated master-to-slave and slave-to-master time slots are reserved for communicating in an SCO link.
- the master device sends SCO packets at regular intervals to the slave device in reserved master-to-slave time slots.
- the SCO slave device responds in the next slave-to-master slot.
- data can be transferred either through the RX and TX buffers, or through a PCM interface.
- the Master SCO instruction has three parameters: 1) AM Address (3 bits) indicates the active member address to use in the packet header in the TX slot. 2) TX Packet Type (4 bits) indicates the packet type that is to be used in the packet header in the TX slot. In the specific embodiment, the only valid packet type is audio type packet. Of course, in other applications other packet types may be supported by SCO links. 3) PCM (1 bit) indicates that the audio data will be transferred through the PCM interface rather than through the RX and TX buffers.
- the master SCO frame has two interrupt points, both of them during the RX portion of the time slot. No interrupts are given during the TX portion.
- the first interrupt point is right after the header is received or when a correlation does not occur.
- a “WHAT'S UP” interrupt is issued to drive the software to issue a new instruction.
- Status information such as no correlation, check sum error, incorrect address, incorrect sequence number, or header OK may be passed along with the interrupt.
- the other interrupt point is when the packet has been received and the radio has been turned off. When that occurs, Link Controller 206 informs the software that data is in the RX buffer and it needs to be read out so an “RX DATA” interrupt is given.
- the Slave SCO instruction is very similar to the Master SCO instruction except the RX portion of the time slot is before the TX portion of the time slot. It is executed on the slave device to set up an SCO link.
- the instruction includes three parameters: 1) Piconet (2 bits) indicates the piconet number of the slave frame. 2) TX Packet Type (4 bits) indicates the packet type to be used in the packet header in the TX slot. As with the Master SCO command, the specific embodiment only allows audio packet types. 3) PCM (1 bit) indicates that data will be transferred through the PCM interface instead of the RX and TX buffers.
- the slave frame has two interrupt points, both of them during the RX portion of the time slot. No interrupts are given during the TX portion.
- the first interrupt point is right after the header is received or when a correlation does not occur.
- a “WHAT'S UP” interrupt is issued to drive the software to issue a new instruction.
- Status information such as no correlation, check sum error, incorrect address, incorrect sequence number, or header OK may be passed along with the interrupt.
- the other interrupt point is when the packet has been received and the radio has been turned off. When that occurs, Link Controller 206 informs the software that data is in the RX buffer and it needs to be read out so an “RX DATA” interrupt is given.
- the Page instruction is used by a master device to activate and connect to a slave device.
- the Page instruction causes the master device to repeatedly transmit a “device access code” (DAC) associated with a particular slave device to get the slave device's attention.
- DAC device access code
- Slave devices periodically monitor the channel in Page Scan mode looking for master devices that may be paging them. Since the Bluetooth clocks of the master and slave devices are not necessarily synchronized, the master does not know exactly when the slave wakes up and on which hop frequency it is operating. Therefore, it transmits a train of identical DACs at different hop frequencies, and listens in between the transmit intervals until it receives a response from the slave device that it is paging.
- Link Controller 206 includes an internal state machine for executing the Page instruction.
- the instruction has five parameters: 1) AM address (3 bits) indicates the Active Member address to be put in the FHS packet sent to the slave after exchange of ID packets. This is the AM address that the slave will have in the connection established after the page is successfully completed. 2) Length (6 bits) indicates the maximum number of time slots that the Page instruction may last. If a connection to the slave device is established before the number of time slots have expired, the instruction may end sooner. If a length of zero is placed in the length field, the instruction will execute indefinitely until an abort command is issued as described above. 3) Clock Offset (26 bits) indicates the clock offset of the device being paged.
- Scan Repetition (2 bits) indicates the Scan Repetition of the device being paged.
- Link Controller 206 uses he information in Scan Repetition along with the Clock Offset to determine when the device being paged is listening and only pages the slave device at those times.
- the Scan Repetition is preferably encoded according to the Bluetooth Baseband specification.
- Page Scan Mode (3 bits) indicates which page scan mode Link Controller 206 is to use when paging the slave device. Again, this parameter is preferably encoded according to the Bluetooth Baseband specification.
- the only interrupt allowed during the Page instruction is the previously described “WHAT'S UP” interrupt.
- status information may accompany it regarding what occurred during the Page instruction.
- the interrupt may include information about whether a connection was successfully completed, whether it failed, or whether a timeout occurred.
- the “WHAT'S UP” interrupt is preferably issued before the instruction has finished.
- Link Manager 208 After a connection is made using the Page instruction, Link Manager 208 must poll the slave device before the connection is considered to be fully established.
- the Page Scan instruction is the slave counterpart to the master's Page instruction. Each slave device periodically monitors the channel to determine if its DAC is being paged.
- the Page Scan instruction has only two parameters: 1) Piconet (2 bits) indicates the piconet number to be used. 2) Length (6 bits) indicates the maximum number of time slots that the Page Scan instruction may last; however, if a connection is established before that time, the instruction may end sooner. If a zero is entered in the length field, the instruction continues indefinitely until an abort command is issued.
- the only interrupt allowed during the Page Scan instruction is the “WHAT'S UP” interrupt. In the specific embodiment, it is given approximately 300 us before the instruction ends, which may be because a connection is made, a page response timeout, or a length timeout.
- status information may accompany it regarding what occurred during the Page Scan instruction.
- the interrupt may include information about whether a connection was successfully completed, whether it failed, or whether a timeout occurred.
- Link Controller 206 maintains a state machine to execute the Page Scan instruction. It keeps the state machine running in the background between page scan instructions.
- Page Scan identifies that the device has been paged
- Link Manager 208 monitors the payload of the FHS packet to determine which device issued the page. It uses the information in the page to determine the clock offset between the master's clock and the native clock. In the specific embodiment, the clock offsets are maintained in a piconet table maintained by Link Controller 206 .
- an inquiry procedure is defined to be used when the destination's device address is unknown to the source. For example, such a procedure may be useful for public facilities such as printers, FAX machines, access points to a LAN, etc. Alternatively, the inquiry procedure may be used to determine other Bluetooth devices that may be within range.
- an Inquiry When an Inquiry is sent by a device, it collects the device addresses and clocks of all units that respond to its Inquiry. The device may then use that information to make a connection to one or more of them using the previously described page procedures.
- the Inquiry instruction causes an inquiry to be sent.
- the Inquiry instruction includes three parameters: 1) Length (10 bits) indicates the length of the Inquiry instruction in slots. If a length of zero is given, the instruction will execute indefinitely until Link Manager 208 issues an abort command. 2) GIAC (1 bit) indicates that the inquiry should be made using the general inquiry access code (GIAC). That value is stored in a configuration table and indicates that the DIAC information will be ignored. Even if the DIAC information is used, the GIAC is fetched from the configuration table to be used for frequency hopping calculations. 3) DIAC (64 bits) indicates a dedicated inquiry access code (DIAC) that is to be used by the inquiry instruction.
- DIAC dedicated inquiry access code
- Two interrupts may be given during the inquiry instruction.
- a “WHAT'S UP” interrupt may be given before the end of the instruction. That interrupt may include status of what happened during the page such as whether it completed and acknowledged all received FHS packets or whether the instruction is nearly completed an FHS packet is currently being received.
- “RX FHS” interrupt is issued when an FHS packet has been received and the FHS packet payload has been place in the RX buffer.
- the Inquiry Scan instruction is the counterpart to the Inquiry instruction. It instructs the receiver to scan for the inquiry access code long enough to completely scan for 16 inquiry frequencies. It may scan for the general inquiry access code or for one or more dedicated inquiry access codes.
- the Inquiry Scan instruction has only one parameter: 1) Length (11 bits) indicates the maximum number of slots that the instruction may last. If an ID packet is received before the end of that time, the instruction may end earlier. Also, if a zero is specified in the length field, the instruction will continue indefinitely until an ID packet is received or link controller 208 issues an abort command.
- the only interrupt allowed during the Inquiry Scan instruction is the “WHAT'S UP” interrupt. It is issued before the end of the instruction, which typically ends when an ID packet is received or the length timeout is reached. It may include status information such as whether the Inquiry Scan was executed without receiving an ID packet or whether an ID packet was received.
- Link Controller 206 In response to the Inquiry Scan instruction, Link Controller 206 will only detect the receipt of the ID packet. If an ID packet is received, Link Manager 208 will wait a random number of slots and then schedule an Inquiry Response instruction to try and receive a second inquiry ID packet and send an FHS packet.
- the FHS packet is used to establish the timing and frequency synchronization between the master device and the slave device.
- the Inquiry Response instruction is done in the slave device. It has no parameters.
- the only interrupt for the Inquiry Response instruction is the “WHAT'S UP” interrupt. It is given before the end of the instruction, which typically ends because an ID packet has been received or the length timeout has occurred. It may include status such as whether an ID packet was received and the FHS packet was sent.
- a slave device If a slave device is to be temporarily idle, it may be placed in a “park” mode. In the park mode, a device neither transmits nor receives information. Periodically, the master device polls those slave devices that are parked to determine whether they are requesting to be unparked.
- the Poll Unpark instruction is the vehicle by which Link Manager 208 accomplishes that function.
- the Poll Unpark instruction causes Link Controller 206 to send a broadcast message and listen for ID packets coming from the slaves. Since it is a broadcast message, the piconet parameter is implicitly zero, the AM address is implicitly zero and the instruction has a length of one frame (2 time slots).
- the Poll Unpark instruction has only one parameter: 1) TX Packet Type (5 bits) indicates the type of packet type to be used in the packet header in the TX slot.
- the “WHAT'S UP” interrupt is issued before the end of the instruction and may include status of what happened during the instruction such as whether an ID packet were received and if so, in which position or positions it was received.
- the slave device may reply with a Request Unpark.
- This is a primitive used to build an access window.
- the access window gives the parked slaves a chance to request an Unpark.
- Link Controller 208 issues a Request Unpark instruction to accomplish that only upon receipt of the Poll Unpark frame.
- the instruction includes one parameter: 1) Pos (1 bit) indicates whether the ID packet should be sent in the first position or the second position in the RX slot.
- the only interrupt is the “WHAT'S UP” interrupt which is given after the header has been received or after a no correlation has been detected.
- the interrupt may include status information such as whether correlation occurred, whether the check sum was correct, whether the AM address in the packet header was correct, whether the sequence number was correct, or whether the header was correct.
- An Idle instruction is given to designate a number of slots on which no activity will occur.
- the Idle instruction includes two parameters: 1) Piconet (2 bits) indicates the number of the piconet that will be used to clock and time the Idle instruction. 2) Length (9 bits) indicates the number of slots the instruction will last. Though the instruction will end automatically at the end of the specified length, the instruction may also be ended by an abort command.
- the only interrupt defined during the Idle instruction is the “WHAT'S UP” interrupt that is issued before the end of the instruction. As discussed above, the specific embodiment issues that interrupt approximately 300 us before the end of the instruction. If an abort command is issued, the “WHAT'S UP” interrupt is given to acknowledge its receipt.
- “Configuration Table” holds the information needed to configure the Bluetooth device such as LC version, LAP, UAP, NAP, Scan Repetition, Scan Period, Class of Device, Page Scan Mode, Sync Word, Reserved bits, Hop Sequence Page Response Timeout, Correlation Threshold, GIAC, Radio Parameters, Link Delay, Synth on Delay, RX Delay, TX Delay, Test Modes, Whitening On/Off, TX Frequency if zero hop sequence, and RX Frequency if zero hop sequence.
- Master Piconet Table contains information about the native piconet, i.e., the piconet in which the device is the master. It includes entries such as Clock, Frame Timing, Encryption On/Off for broadcasts, Encryption key for broadcasts, Encryption key length for broadcast, and Default TX Power Level.
- “Slave Piconet Table” contains information about the piconets in which a slave device resides.
- this table is an array with up to three values for parameters such as Sync Word, UAP, LAP, Clock, Frame Timing, AM Address, Decrypt key for broadcast, Decrypt key length for broadcast, Encryption On/Off for AM address, Decrypt key for AM address, Decrypt key length for AM address, Encryption On/Off for broadcast, Decrypt key for broadcast, Decrypt key length for broadcast, and TX Power Level.
- Link Table contains information that is specific for each link to the slave in the piconet where the unit is the master.
- this table is an array with up to seven entries for each device. It includes parameters such as Correlation Window Size, Encryption On/Off for AM address, Encryption key for AM address, Encryption key length for AM address, and TX Power Level.
- State Table contains information about the internal states of Link Controller 206 . In includes entries for Instruction State, Page State, and Page Scan State.
- Locks Table maintains clock information for each piconet.
- there are four clocks in Link Controller 206 one for each piconet.
- the table is an array of four entries with each entry including parameters such as Clock and Frame Timing.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mobile Radio Communication Systems (AREA)
- Small-Scale Networks (AREA)
Abstract
Description
Claims (19)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/774,997 US8112616B2 (en) | 2001-03-23 | 2010-05-06 | Reduced instruction set baseband controller |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US27849301P | 2001-03-23 | 2001-03-23 | |
US10/101,396 US7082285B2 (en) | 2001-03-23 | 2002-03-18 | Reduced instruction set baseband controller |
US11/402,808 US7715792B2 (en) | 2001-03-23 | 2006-04-13 | Reduced instruction set baseboard controller |
US12/774,997 US8112616B2 (en) | 2001-03-23 | 2010-05-06 | Reduced instruction set baseband controller |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/402,808 Continuation US7715792B2 (en) | 2001-03-23 | 2006-04-13 | Reduced instruction set baseboard controller |
Publications (2)
Publication Number | Publication Date |
---|---|
US20100223410A1 US20100223410A1 (en) | 2010-09-02 |
US8112616B2 true US8112616B2 (en) | 2012-02-07 |
Family
ID=33161735
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/101,396 Expired - Fee Related US7082285B2 (en) | 2001-03-23 | 2002-03-18 | Reduced instruction set baseband controller |
US11/402,808 Expired - Fee Related US7715792B2 (en) | 2001-03-23 | 2006-04-13 | Reduced instruction set baseboard controller |
US12/774,997 Expired - Fee Related US8112616B2 (en) | 2001-03-23 | 2010-05-06 | Reduced instruction set baseband controller |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/101,396 Expired - Fee Related US7082285B2 (en) | 2001-03-23 | 2002-03-18 | Reduced instruction set baseband controller |
US11/402,808 Expired - Fee Related US7715792B2 (en) | 2001-03-23 | 2006-04-13 | Reduced instruction set baseboard controller |
Country Status (1)
Country | Link |
---|---|
US (3) | US7082285B2 (en) |
Families Citing this family (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7082285B2 (en) * | 2001-03-23 | 2006-07-25 | Broadcom Corporation | Reduced instruction set baseband controller |
US7386274B2 (en) * | 2002-04-15 | 2008-06-10 | Aol Llc, A Delaware Limited Liability Company | Wireless viral mesh network and process for using the same |
JP3809839B2 (en) * | 2004-03-09 | 2006-08-16 | セイコーエプソン株式会社 | Data transfer control device, electronic device, and data transfer control method |
US20060018319A1 (en) * | 2004-07-20 | 2006-01-26 | Arto Palin | Multicast and broadcast data transmission in a short-range wireless communications network |
JP4900891B2 (en) * | 2005-04-27 | 2012-03-21 | キヤノン株式会社 | Communication apparatus and communication method |
JP4949816B2 (en) * | 2006-12-01 | 2012-06-13 | ルネサスエレクトロニクス株式会社 | Bidirectional communication circuit, bidirectional communication system, and bidirectional communication circuit communication method |
US8289944B2 (en) * | 2007-01-31 | 2012-10-16 | Broadcom Corporation | Apparatus for configuration of wireless operation |
US8254319B2 (en) * | 2007-01-31 | 2012-08-28 | Broadcom Corporation | Wireless programmable logic device |
US8200156B2 (en) * | 2007-01-31 | 2012-06-12 | Broadcom Corporation | Apparatus for allocation of wireless resources |
US8280303B2 (en) * | 2007-01-31 | 2012-10-02 | Broadcom Corporation | Distributed digital signal processor |
US20090197641A1 (en) * | 2008-02-06 | 2009-08-06 | Broadcom Corporation | Computing device with handheld and extended computing units |
US20090017910A1 (en) * | 2007-06-22 | 2009-01-15 | Broadcom Corporation | Position and motion tracking of an object |
US8238275B2 (en) * | 2007-01-31 | 2012-08-07 | Broadcom Corporation | IC with MMW transceiver communications |
US8121541B2 (en) * | 2007-01-31 | 2012-02-21 | Broadcom Corporation | Integrated circuit with intra-chip and extra-chip RF communication |
US20080320293A1 (en) * | 2007-01-31 | 2008-12-25 | Broadcom Corporation | Configurable processing core |
US9486703B2 (en) * | 2007-01-31 | 2016-11-08 | Broadcom Corporation | Mobile communication device with game application for use in conjunction with a remote mobile communication device and methods for use therewith |
US8239650B2 (en) * | 2007-01-31 | 2012-08-07 | Broadcom Corporation | Wirelessly configurable memory device addressing |
US8125950B2 (en) * | 2007-01-31 | 2012-02-28 | Broadcom Corporation | Apparatus for wirelessly managing resources |
US20090011832A1 (en) * | 2007-01-31 | 2009-01-08 | Broadcom Corporation | Mobile communication device with game application for display on a remote monitor and methods for use therewith |
US8010735B2 (en) * | 2007-07-31 | 2011-08-30 | Broadcom Corporation | Flash memory with millimeter wave host interface and method for use therewith |
US8438322B2 (en) * | 2007-01-31 | 2013-05-07 | Broadcom Corporation | Processing module with millimeter wave transceiver interconnection |
US8204075B2 (en) * | 2007-01-31 | 2012-06-19 | Broadcom Corporation | Inter-device wireless communication for intra-device communications |
US8116294B2 (en) * | 2007-01-31 | 2012-02-14 | Broadcom Corporation | RF bus controller |
US8223736B2 (en) * | 2007-01-31 | 2012-07-17 | Broadcom Corporation | Apparatus for managing frequency use |
US20090037670A1 (en) * | 2007-07-30 | 2009-02-05 | Broadcom Corporation | Disk controller with millimeter wave host interface and method for use therewith |
US8175646B2 (en) * | 2008-02-06 | 2012-05-08 | Broadcom Corporation | Networking of multiple mode handheld computing unit |
US8064952B2 (en) * | 2008-02-06 | 2011-11-22 | Broadcom Corporation | A/V control for a computing device with handheld and extended computing units |
US8717974B2 (en) * | 2008-02-06 | 2014-05-06 | Broadcom Corporation | Handheld computing unit coordination of femtocell AP functions |
US8117370B2 (en) * | 2008-02-06 | 2012-02-14 | Broadcom Corporation | IC for handheld computing unit of a computing device |
US20090198798A1 (en) * | 2008-02-06 | 2009-08-06 | Broadcom Corporation | Handheld computing unit back-up system |
US8195928B2 (en) * | 2008-02-06 | 2012-06-05 | Broadcom Corporation | Handheld computing unit with merged mode |
KR101484277B1 (en) * | 2008-02-20 | 2015-01-19 | 삼성전자주식회사 | Method and apparatus for processing signals at time division duplex transceiver |
US8430750B2 (en) * | 2008-05-22 | 2013-04-30 | Broadcom Corporation | Video gaming device with image identification |
US8744355B2 (en) * | 2011-08-14 | 2014-06-03 | Mediatek Inc. | Communication method, and bluetooth device utilizing the communication method |
WO2018057524A1 (en) * | 2016-09-21 | 2018-03-29 | Apple Inc. | Real-time relay of wireless communications |
EP3474515B1 (en) * | 2017-10-20 | 2020-07-29 | Tap Sound System | A method of improving synchronization of the playback of audio data between a plurality of audio sub-systems |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4373180A (en) | 1980-07-09 | 1983-02-08 | Sperry Corporation | Microprogrammed control system capable of pipelining even when executing a conditional branch instruction |
US20020071477A1 (en) | 2000-12-11 | 2002-06-13 | Pekko Orava | Communication system having wireless devices supporting ad hoc connections independent of the protocol version |
US6697638B1 (en) | 1999-10-29 | 2004-02-24 | Denso Corporation | Intelligent portable phone with dual mode operation for automobile use |
US7082285B2 (en) | 2001-03-23 | 2006-07-25 | Broadcom Corporation | Reduced instruction set baseband controller |
-
2002
- 2002-03-18 US US10/101,396 patent/US7082285B2/en not_active Expired - Fee Related
-
2006
- 2006-04-13 US US11/402,808 patent/US7715792B2/en not_active Expired - Fee Related
-
2010
- 2010-05-06 US US12/774,997 patent/US8112616B2/en not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4373180A (en) | 1980-07-09 | 1983-02-08 | Sperry Corporation | Microprogrammed control system capable of pipelining even when executing a conditional branch instruction |
US6697638B1 (en) | 1999-10-29 | 2004-02-24 | Denso Corporation | Intelligent portable phone with dual mode operation for automobile use |
US20020071477A1 (en) | 2000-12-11 | 2002-06-13 | Pekko Orava | Communication system having wireless devices supporting ad hoc connections independent of the protocol version |
US7082285B2 (en) | 2001-03-23 | 2006-07-25 | Broadcom Corporation | Reduced instruction set baseband controller |
US7715792B2 (en) | 2001-03-23 | 2010-05-11 | Broadcom Corporation | Reduced instruction set baseboard controller |
Non-Patent Citations (1)
Title |
---|
"Specification of the Bluetooth System", Bluetooth, vol. 2, Version 1.0B, Dec. 1, 1999, 440 pgs. |
Also Published As
Publication number | Publication date |
---|---|
US7082285B2 (en) | 2006-07-25 |
US20060183424A1 (en) | 2006-08-17 |
US20100223410A1 (en) | 2010-09-02 |
US20040210875A1 (en) | 2004-10-21 |
US7715792B2 (en) | 2010-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8112616B2 (en) | Reduced instruction set baseband controller | |
JP3817531B2 (en) | Control unit of radio communication device, radio communication device, and control method | |
US7260357B2 (en) | Bluetooth fast connection mode for wireless peripheral device | |
KR100389820B1 (en) | Method for establishing link between bluetooth apparatuses using bluetooth wireless communication | |
US8954007B2 (en) | Systems and methods for low power short range wireless device communication scanning | |
US8724615B1 (en) | Method and apparatus for generation of a system master timebase of a computing device using indirect signalling of timing information | |
KR100416263B1 (en) | Wireless communication apparatus and a method capable of adjusting beacon interval | |
US8848730B1 (en) | Method and apparatus for scanning and device detection in a communication system | |
US20060215601A1 (en) | Method and apparatus for coordinating a wireless PAN network and a wireless LAN network | |
JP2002335254A (en) | Wireless communication method and master terminal therefor | |
JP3777155B2 (en) | Wireless communication device capable of improving connection rate and method thereof | |
JP2002185476A (en) | Coexistence technique in wireless network | |
JPH09162798A (en) | Radio communication system, base station for radio communication system and intermittent power making type mobile station | |
US20080062939A1 (en) | Wireless communications between a peripheral and a mobile unit in a wireless network environment | |
JP2002217918A (en) | Radio base station and method for setting utilization frequency of the radio base station | |
US7522933B2 (en) | Bluetooth system capable of communicating on scatternet and communicating method thereof | |
JP2004180115A (en) | Radio lan system | |
EP0958665A1 (en) | A low-power wireless beaconing network supporting proximal formation, separation and reformation | |
KR100436756B1 (en) | wireless communication system capable of saving time for mutual data communication in sniff mode | |
EP1924035A2 (en) | Touch type bluetooth match system, bluetooth devices for same | |
JP2011082679A (en) | Wireless communication system, terminal, wireless lan access point, and wireless communication method | |
JP4778661B2 (en) | Communication system, primary station, secondary station and method | |
US20080008123A1 (en) | Touch type bluetooth match system, bluetooth devices for same | |
KR100325773B1 (en) | Bluetooth device name confirming method in bluetooth system | |
JP4048966B2 (en) | Wireless communication apparatus and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: ZEEVO, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:LINDE, JOAKIM;REEL/FRAME:024349/0074 Effective date: 20020313 Owner name: BROADCOM CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ZEEVO, INC.;REEL/FRAME:024348/0957 Effective date: 20050801 |
|
ZAAA | Notice of allowance and fees due |
Free format text: ORIGINAL CODE: NOA |
|
ZAAB | Notice of allowance mailed |
Free format text: ORIGINAL CODE: MN/=. |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
CC | Certificate of correction | ||
FPAY | Fee payment |
Year of fee payment: 4 |
|
AS | Assignment |
Owner name: BANK OF AMERICA, N.A., AS COLLATERAL AGENT, NORTH CAROLINA Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:BROADCOM CORPORATION;REEL/FRAME:037806/0001 Effective date: 20160201 Owner name: BANK OF AMERICA, N.A., AS COLLATERAL AGENT, NORTH Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:BROADCOM CORPORATION;REEL/FRAME:037806/0001 Effective date: 20160201 |
|
AS | Assignment |
Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD., SINGAPORE Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BROADCOM CORPORATION;REEL/FRAME:041706/0001 Effective date: 20170120 Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BROADCOM CORPORATION;REEL/FRAME:041706/0001 Effective date: 20170120 |
|
AS | Assignment |
Owner name: BROADCOM CORPORATION, CALIFORNIA Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS COLLATERAL AGENT;REEL/FRAME:041712/0001 Effective date: 20170119 |
|
AS | Assignment |
Owner name: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITE Free format text: MERGER;ASSIGNOR:AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.;REEL/FRAME:047230/0133 Effective date: 20180509 |
|
AS | Assignment |
Owner name: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITE Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE OF MERGER TO 09/05/2018 PREVIOUSLY RECORDED AT REEL: 047230 FRAME: 0133. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER;ASSIGNOR:AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.;REEL/FRAME:047630/0456 Effective date: 20180905 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |
|
FEPP | Fee payment procedure |
Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
LAPS | Lapse for failure to pay maintenance fees |
Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20240207 |