首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
FPGA/CPLD可编程逻辑
» 蓝牙HCI-UART主控制接口的FPGA设计与实(2)
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
蓝牙HCI-UART主控制接口的FPGA设计与实(2)
发短消息
加为好友
yuyang911220
当前离线
UID
1029342
帖子
9914
精华
0
积分
4959
阅读权限
90
在线时间
286 小时
注册时间
2014-5-22
最后登录
2017-7-24
论坛元老
UID
1029342
性别
男
1
#
打印
字体大小:
t
T
yuyang911220
发表于 2015-12-25 15:08
|
只看该作者
蓝牙HCI-UART主控制接口的FPGA设计与实(2)
蓝牙
,
接口
3 HCI-UART 的FPGA 设计
主机与蓝牙模块之间使用指令——应答的方式进行通信,主机向主机控制器发送指令分组,主机控制 器执行某一指令后,大多数情况下会返回给主机一个指令完成事件分组,该分组携带有指令完成的信息。 如果指令分组参数有误,返回的指令状态事件分组就会给出相应的错误代码。主机与主机控制器间的数据 交换则通过数据分组实现。主控制器系统原理框图如图2 所示。
图2
3.1 UART 的设计
UART 的设计主要包括三个部分:发送器、接收器和波特率发生器,设计采用分模块完成[10]。
(1)波特率发生器:
UART 的数据接收和发送是通过对波特率的设置进行实现的。波特率发生器采 用分频器实现,分频得到一个频率为波特率16 倍的波特率时钟clk_baud,分频数N 计算公式如(1)所示, 其中clk_sys 表示系统时钟,baudrate 为UART 的波特率。
(2)发送器模块:
检测到发送信号时,装载数据,根据数据产生奇偶校验位,按通信协议帧的格式 的要求依次发送起始位、数据位、奇偶校验位和停止位,并产生各种控制信号。整个发送过程采用有限状 态机实现,分成五个状态(空闲idle,发送起始位send_start,发送数据send_data,发送奇偶校验位 send_parity,发送停止位send_stop),具体过程如图3 所示。
图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 全硬件实现方式,缩 短了开发周期,降低开发成本,具有一定的工程参考价值。
收藏
分享
评分
继承事业,薪火相传
回复
引用
订阅
TOP
返回列表
测试测量
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议