文档详情

蓝牙信号的发射与接收

油条
实名认证
店铺
DOC
332.50KB
约9页
文档ID:31711851
蓝牙信号的发射与接收_第1页
1/9

1.蓝牙协议规蓝牙协议是蓝牙设备间交换信息所应遵守的规则与开放系统互连模型一样,蓝牙技术的协议体系也采用了分层结构,从底层到高层形成了蓝牙的协议栈,各层协议规定了所完成的功能和使用的数据分组格式,并提供上下各层之间的接口所有的蓝牙设备制造厂商都必须严格遵守蓝牙协议中的要求和规定,以保证蓝牙产品间的互操作性1.1 蓝牙射频协议射频是指介于声音频率与红外线之间的电磁波频率蓝牙技术诞生的初衷是以低功耗、低成本的无线接口取代现在纷繁复杂的有线接口蓝牙射频部分不是重新开发的新技术,而是采用了在技术和市场上已经成熟的协议和算法蓝牙射频部分主要处理空中数据的收发蓝牙工作在无需许可证的 2.4GHzISM 频段上,采用了跳频扩谱技术主动地去避免工作频段受干扰蓝牙每个频道宽为 1MHz79 个跳频频点中至少有 75 个应该伪随机地进行跳变,在一个 30s 的时间段内,任何一个频点的使用时不得超过 0.4s蓝牙的跳频速率为 1600次/s,每个频率持续时间 625us 称为一个时隙主设备在偶数时隙发送数据,在奇数时隙接收数据;从设备则与主设备相反 1.2 蓝牙基带与链路控制器协议蓝牙基带与链路控制器主要负责射频部分的发送接收时间、79 个频点的选择和发射功率等级的选择。

蓝牙设备发送数据时,基带部分将来自高层协议的数据进行信道编码,向下传给射频进行发送;接收数据时,射频将经过解调恢复空中数据并上传给基带,基带再对数据进行信道解码,向高层传输1.2.1 蓝牙物理链路通信设备之间物理层的数据连接通道就是物理链路蓝牙系统中有两种物理链路:异步无连接链路 ACL 和同步面向连接链路 SCOACL 链路是微微网主设备和所有从设备之间的同步和异步数据分组交换链路,主要用于对时间要求不敏感的数据通信,如文件数据或控制信令等SCO 链路是一条微微网中由主设备维护的点对点、对称的同步数据交换链路,主要用于对时间要求很高的数据通信,如语音等1.2.1.1 ACL 链路1.ACL 链路的特点和性能 ACL 链路在主从设备之间以分组交换方式传输数据,即可以支持异步应用,也可以支持同步应用一对主从设备只能建立一条 ACL 链路ACL 通信的可靠性可以由分组重传来保证由于是分组交换,在没有数据通信时,对应的 ACL 链路就保持静默微微网中的主设备可以与每个相连的从设备都建立一条 ACL 链路双向对称连接 ACL 链路传输率为 433.9kbps;双向非对称传输数据时,正向 5 时隙分组链路可以达到最大传输率 723.2kbps,反向单时隙链路传输率为 57.6kbps。

2.ACL 链路的收发规则主设备在主从 ACL 时隙内发送的 ACL 分组含有接收从设备的设备地址;在随后的从主 ACL 时隙内,从设备发送 ACL 分组到主设备如果从设备为能接收到主从 ACL 分组头解析从设备地址,或者解析到的地址与自身不匹配,那么它就不能在紧跟的从主 ACL 时隙发送 ACL 分组ACL 链路允许广播发送数据,此时主从 ACL 分组头的从设备地址被设为(000)b,微微网中每一个接收到的从设备都可以接受并读取,但不作响应1.2.1.2 SCO 链路1.SCO 链路的特点和性能 SCO 链路在主设备预留的 SCO 时隙内传输,因而可以看作电路交换SCO 分组不进行重传操作,一般用象语言这样的实时性很强的数据传输只有建立了 ACL 链路后,才可以建立 SCO 链路一个微微网中的主设备最多可以同时支持 3 条 SCO链路;一个从设备与同一主设备最多可以同时建立 3 条 SCO 链路,或者与不同主设备建立2 条 SCO 链路2.SCO 链路的收发规则主设备在预留的主从 SCO 时隙内,向从设备发送 SCO 分组,分组头含有应该做出响应的从设备地址在紧跟的从主 SCO 时隙内,对应的从设备向主设备发送 SCO 分组。

与 ACL 分组不同的是,即使从设备未能从接收到的分组头解析出从设备地址,也允许在其预留的 SCO 时隙返回 SCO 分组1.2.2 蓝牙基带收发规则1.2.2.1 发送(TX)规则 TX 要分别进行 ACL 和 SCO 链路的处理单个从设备时 TX 的 ACL和 SCO 缓存器如图 2-2 所示ACL 和 SCO 所有公共链路的分组(ID、Null、Poll、FHS 和 DM1)中,只有 DM1 分组携带在链路控制器和链路管理器之间交换的有效载荷中的公共分组使用 ACL 缓冲器所有的ACL(SCO)分组都使用 ACL(SCO)缓存器在 DV 分组中,语音部分使用 SCO 缓存器,数据部分使用 ACL 缓存器1.ACL 通信对于异步 ACL 数据通信,只需考虑 ACL 链路的 TX 缓存器,这时只使用 DM或 DH 分组数据速率选择视链路的质量而定链路质量好时,选择 DH 分组(无 FEC 纠错);链路质量差时选择 DM 分组(有 FEC 纠错)ACL 链路的缺省类型是 Null,这意味着如果没有数据要发送或没有轮询到从设备就发送 Null 分组,这样就能够发送链路控制信息到其他蓝牙设备,如果没有链路控制信息要发送,就无需要发送任何分组。

ACL 链路发送分组时,链路管理器首先通过 S1a 把数据装载到寄存器,然后向链路控制器发送一个刷新指令,强迫开关 S1 转换(S1a 和 S1b 同时转换)需要发送有效载荷时,分组打包器读取现态寄存器数据,根据分组类型构造有效载荷并附加到 CAC 和分组头的后面接收放通过响应分组返回接收的发送结果,当结果是 ACK 时,S1 就转换位置;结果是 NAK 时,S1 不转换位置只要链路管理器对寄存器装载新的信息,链路控制器就自动发送有效载荷,出现错误时,重传也自动的执行当没有新的有效载荷要发送时,链路控制器将发送 Null 分组或什么也不发送如果没有新的有效载荷装入到次态寄存器,在最后的分组被确认后,分组打包指示寄存器将为空,次态寄存器就转换为现态寄存器如果新的数据装入次态寄存器,就需要执行刷新指令,切换开关到合适的寄存器只要在每个 TX 时隙之前链路管理器不断装载数据,开关 S1 受响应分组信息控制,链路控制器就自动处理数据一旦链路管理器的业务被中并发送缺省的分组时,就需要一个刷新指令来继续已中断数据流在链路不好的情况下,可能需要多次重传但是对于时间受限数据,由于链路错误一直重传就会发生超时,系统要决定继续发送更多的当前数据还是跳过这些不能发送的数据,这也需要使用刷新指令来实现。

利用刷新指令可以强迫开关 S1 切换,链路控制器不管接收方的结果也会强迫处理后面的有效载荷数据2.SCO 通信 SCO 链路只使用 HV 分组类型进行通信缺省的 SCO 分组类型在 SCO 链路建立时由主设备在链路管理层协商确定SCO 链路发送分组时,同步端口连续地装载 SCO 缓冲器的次态寄存器S2 开关根据 SCO 时隙间隔进行切换对每个新的 SCO 时隙,S2 开关切换后,分组打包器从现态寄存器读取数据如果 SCO 已经用于主从设备之间发送较高优先级的控制信息,分组打包器就将丢弃 SCO 信息代之以这些控制信息,该控制信息必须以DM1 分组发送在主设备和 SCO 从设备间,数据和控制信息也可以使用 DV 或 DM1 分组传输,主设备可以使用任何类型的 ACL 分组发送数据和链路控制信息到其他 ACL 从设备3.混合数据/语音通信使用 DV 分组时,链路控制器从数据寄存器读取数据填充数据段,从语音寄存器读取语音填充语音段,然后切换开关 S2开关 S1 的位置取决于链路传输的结果如果没有数据发送,SCO 链路自动地从 DV 分组类型切换到 HV 分组类型(数据流中断时或新数据已经到达时要使用刷新指令)。

若信道容量允许,就可以分别使用 ACL 和SCO 链路实现组合语音数据的传输1.2.2.2 接收(RX)规则 ACL 和 SCO 链路分别处理 RX 进程与 ACL 链路 TX 缓存器相反,主设备对所有从设备公用一个 ACL 链路 RX 缓存器SCO 缓存器数量取决于实际 SCO 链路的数量RX 进程如图 2-3 所示ACL 链路 RX 缓存器包含两个 FIFO 寄存器,一个用于链路控制器访问和装载最新的 RX 分组,另一个用于链路管理器读取先前的载荷SCO 链路 RX 缓存器也包含两个 FIFO 寄存器,一个用来填充新到达的语音信息,另一个可以被语音处理单元读取分组头 Type 字段指示当前分组是数据分组还是语音分组,分组拆解器可以自动的把数据送到合适的缓存器链路管理器读取旧的寄存器后,开关 S1 就切换如果下一个有效载荷在 RX 寄存器清空之前到达,在下一个返回的 TX 分组的分组头中必须包括一个 Stop 指示一旦 RX 寄存器清空,Stop 指示就清除新的 ACL 有效载荷存储到 ACL 寄存器之前,必须检测 SEQN 字段L_CH 中的刷新指示和广播信息将影响对 SEQN 的解释。

S2 开关每隔 TSCO 时间进行一次切换,如果分组头错误没有新语音载荷到达,切换仍旧继续进行2.2.2.3 流量控制新的分组到达时,ACL 链路的 RX 缓存器可能已经处于满的状态,此时就需要流量控制来解决这个问题但是 SCO 数据不受流量控制的限制1.收方控制只要链路管理器没有清空 ACL 链路的 RX 缓存器,链路控制器就在返回分组头插入 Stop 指示当能够再次接收新的数据时,就返回 GO 指示即使再为返回 GO 指示时,不含有数据的任何类型的分组仍然可以接收流量控制在收和发两个方向上分别进行,设备及时不能接收新的信息,仍可以发送信息2.发方控制链路控制器收到 Stop 信号时将自动切换到缺省的分组类型上,当前的 ACL 链路TX 缓存器状态冻结只要收到 Stop 指示就发送缺省分组没有收到分组时,则默认是 G指示缺省分组包含接收方向的链路控制信息,而且可能包含语音信息链路控制器收到GO 指示时将恢复发送存储在 ACL 链路 TX 缓存器中的数据当主设备与多个从设备通信时,如果某个从设备向主设备发送了 Stop 指示,那么主设备将停止向这个从设备发送数据1.3 蓝牙主机控制器接口协议1.3.1 蓝牙主机控制器接口概述蓝牙主机控制器接口(HCI)是蓝牙主机-主机控制器应用模式中蓝牙模块和主机的软硬件口,它提供了控制基带与链路控制器、链路管理器、状态控制器等硬件功能的指令分组格式(包括响应事件分组格式)以及进行数据通信的数据分组格式]。

蓝牙技术集成到各种数字设备的方式有两种:一种是单微控制器方式,即所有的蓝牙低层传输协议(包括蓝牙射频、基带与链路控制器、链路管理器)与高层传输协议(包括逻辑链路控制与适配协议、服务发现协议、串口仿真、网络封装协议等)以及用户应用程序都集成到一个模块当中,整个处理过程由一个微处理器来完成;另一个是双微控制器方式,即蓝牙协议与用户应用程序分别由主机和主控制器来实现(低层传输协议一般通过蓝牙硬件模式实现,模块内部嵌入式的微处理器称为主机控制器,高层传输协议和用户应用程序在写入的个人计算机或嵌入的单片机、DSP 等上运行,称为主机),主机和主机控制器之间通过标准的物理总线接口(如通过串行总线 USB、串行端口 RS232)来连接在蓝牙的主机-主机控制器连接模型当中,HCI 作为蓝牙软件协议堆栈中软硬件之间的接口,它提供了一个控制基带与链路管理器、链路管理器、状态寄存器等硬件的统一接口当主机和主机控制器通信时,HCI 层以上的协议在主机上运行,而 HCI 层以下的协议由蓝牙主机控制器硬件来完成,它们通过 HCI 传输层进行通信主机和主机控制器之间都有 HCI,它们具有相同的接口标准主机控制器中的 HCI 解释来自主机的信息并将信息发向相应的硬件模块单元,同时还将模块中的信息根据需要向上转发给主机。

主机和主机控制器之间是通过 HCI 收发分组的方式进行。

下载提示
相似文档
正为您匹配相似的精品文档