新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 蓝牙HCI-UART主控制接口的FPGA设计与实现

蓝牙HCI-UART主控制接口的FPGA设计与实现

作者: 时间:2010-12-08 来源:网络 收藏

  2.2 HCI 基本原理

  2.2.1 HCI 传输层的比较

  HCI 层位于高层协议和低层协议之间,其目的是实现主机设备与模块之间的互操作,即HCI 是主机与主机控制器间软硬件接口。HCI 为蓝牙硬件中基带控制器和链接管理器提供了命令接口,从 而实现对硬件状态注册器和控制寄存器的访问,提供了对蓝牙基带的统一访问模式。目前,HCI 的传输层主要有三种:USB,RS-232,UART。此外,还有一种PC 卡传输层,其没有定义在蓝牙标准中,而是在蓝牙SIG 于1999 年8 月发表的蓝牙PC 卡传输层1.0 版白皮书中描述的。蓝牙没有规 定PC 卡传输层实现的具体细节,而是要求制造商提供传输驱动程序,以配合主机上的HCI 驱动程序[5]。不 同传输层对HCI 事件处理没有影响。

  (1)USB 传输层在蓝牙硬件上使用USB 硬件接口(该硬件接口有两种嵌入方式:一种是作为USB 加/ 解密芯片,另一种是集成到PC 机主板上)[6]。这一种类编码要求不管使用哪一厂商生产的设备,都能加载 合适的驱动程序栈;同时它还保证了通过控制终端的HCI 指令和USB 指令有所区别。其缺点是软件协议复 杂,软件开销巨大。

  (2)RS-232 传输层:通过位于主机和主控制器之间的物理RS-232 接口实现。事件包和数据包通过该层,但该层并不对它们进行解码。该传输层支持的是主机控制器和不同实体中的主机的情况,距离较远,传输层特别规定了电气特性,并采用了更为精细的链路协议以应对较高的线路误码率,但在硬件 上需要增加电平转换电路。

  (3)UART 传输层跟RS-232 传输层类似,也是采用一个UART 的串行方式在主控制器与主机之间进行数据传输。应用环境主要是针对主控制器和主机位于同一个电路板上,传输层假定UART 通信无线性 错误。与其它的相比,UART 传输层方式比较灵活,其应用环境决定其连接错误相对较少,可以采用简单的复位恢复机制实现失步时的复步。由于主机和主控制器都处于同一块电路板上,因而传输层不需要规定电气信号,可以直接采用TTL、LV-CMOS 等IC 端电压,应用较多。同时,UART 传输层避开了RS-232 传输层所要求的较繁琐的协商和同步机制。UART 性能和数据吞吐率水平与USB 接口相当,而传输协议却较为简单,减少了软件开销,是一种更为经济高效的全硬件解决方案。

  2.2.2 HCI 分组

  两个蓝牙设备间进行数据通信是通过HCI 分组实现的,HCI 是通过分组的方式来进行信息交换的。HCI 分组有三种类型:指令分组(Command Packet)、事件分组(Event Packet)和数据分组(Data Packet)[7]。

  (1)指令分组

  只从主机发向主机控制器,分为链路控制指令、链路策略指令、主机控制指令与基带指令、信息参数指令、状态参数指令和测试指令。HCI 指令分组由操作码(OpCode)、参数总长(Parameter Total Length) 和参数列表(Parameters)三部分组成[8]。

  (2)事件分组

  只从主机控制器发向主机,用以说明指令分组的执行情况,是主机控制器向主机报告各种事件的分组。包括通用事件(包括指令完成事件和指令状态事件)、测试事件、出错事件三种。

  (3)数据分组

  它是在主机和主机控制器间双向传输,一般分为ACL(Asynchronization Connectionless)数据分组和 SCO (Synchronization Connection Oriented)数据分组两种[9]。二者之间的区别在于:ACL 链路支持对称和非对称传输,分组交换和多点连接,适用于传送数据;SCO 链路支持对称传输,电路交换和点到点连接, 适用于传输语音。



评论


相关推荐

技术专区

关闭