蓝牙HCI-UART主控制接口的FPGA设计与实现
[09-12 18:33:15] 来源:http://www.88dzw.com EDA/PLD 阅读:8227次
文章摘要:图3 发送器状态图(3)接收器模块:当检测到接收信号线rxd 上有电平变化时[10],即通过检测协议帧的格式接收数据, 如果格式正确则将数据存储起来,否则放弃本次数据,同时产生错误标志信号。设计实现采用有限状态机, 为了保证数据接收的正确性,数据采集都在时钟中间时刻完成。接收过程分为五个状态(空闲idle,起始 位检测start_check,接收数据rec_data,奇偶校验位检测parity_check,停止位检测stop_check),接 收过程如图4 所示。图4 UART 接收器状态图3.2 HCI 的设计蓝牙HCI 分组在串行连接传输层的成帧是简单地加一个标识头(用16 进制表示):0
蓝牙HCI-UART主控制接口的FPGA设计与实现,标签:eda技术,eda技术实用教程,http://www.88dzw.com图3 发送器状态图
(3)接收器模块:当检测到接收信号线rxd 上有电平变化时[10],即通过检测协议帧的格式接收数据, 如果格式正确则将数据存储起来,否则放弃本次数据,同时产生错误标志信号。设计实现采用有限状态机, 为了保证数据接收的正确性,数据采集都在时钟中间时刻完成。接收过程分为五个状态(空闲idle,起始 位检测start_check,接收数据rec_data,奇偶校验位检测parity_check,停止位检测stop_check),接 收过程如图4 所示。
图4 UART 接收器状态图
3.2 HCI 的设计
蓝牙HCI 分组在串行连接传输层的成帧是简单地加一个标识头(用16 进制表示):01H 表示指令分组, 02H 表示ACL 数据分组,03H 表示SCO 数据分组,04HH 表示事件分组。根据HCI 的基本工作原理与HCI 分组的特点,HCI 的实现主要有四个功能模块组成,包括HCI 命令处理模块(command_handle),HCI 事 件处理模块(event_handle),HCI 数据处理模块(data_handle),收发控制模块(rec_tra_controller)。其组成框图 如图5 所示:
图5 HCI 控制器的组成
HCI 接口通信过程包括如下几个部分:
1)蓝牙系统初始化(initial);
2)系统准备好后,进入查询状况(inquiry);
3)建立数据连接(creat_connection);
4)数据传输(transmit);
5)断开连接(disconnect);
首先,蓝牙主从设备进行初始化;接着蓝牙的主设备在范围内用Inquiry 命令分组查找其他的蓝牙设 备。然后,主设备会收到对应的蓝牙从设备的应答信息,其包括有事件分组包和从机地址包。之后,蓝牙 主设备向从设备发送Create_Connection 的命令分组,然后,主设备会收到一个连接完成的事件分组 Connection_Complete,表示两机之间已经建立了连接。这样,两个蓝牙设备之间就可以进行数据的通信, 即建立连接。当数据传输完成后,断开主从设备之间的连接,系统重新复位,一个数据传输过程就结束了。
4 仿真与验证
本设计采用分模块设计,在 Quartus II 9.0 下完成设计和综合,且经过Modelsim*a 的仿真验证。 同时在搭建的硬件通信测试平台下测试过,证明该设计确实可行。 5 5 结束语
HCI 是实现蓝牙协议栈时必须实现的一个部分。它是蓝牙上层协议控制底层硬件的接口,首先要根据 具体应用的需要选择合适的传输层,并尽可能的为上层协议提供友好的API,在硬件实现中,UART 传输层具有其他传输层无法比拟的优点。
本文创新在于从工程实际开发角度出发,提出了一种基于FPGA 的蓝牙HCI-UART 全硬件实现方式,缩 短了开发周期,降低开发成本,具有一定的工程参考价值。
《蓝牙HCI-UART主控制接口的FPGA设计与实现》相关文章
- › 蓝牙HCI-UART主控制接口的FPGA设计与实现
- 在百度中搜索相关文章:蓝牙HCI-UART主控制接口的FPGA设计与实现
- 在谷歌中搜索相关文章:蓝牙HCI-UART主控制接口的FPGA设计与实现
- 在soso中搜索相关文章:蓝牙HCI-UART主控制接口的FPGA设计与实现
- 在搜狗中搜索相关文章:蓝牙HCI-UART主控制接口的FPGA设计与实现