APP下载

基于协议转化技术的无线化蓝牙模块设计

2021-07-16柴义龙陈伟利赵俊钦

科学技术创新 2021年19期
关键词:数据包蓝牙定义

柴义龙 陈伟利 赵俊钦

(吉林建筑大学电气与计算机学院,吉林 长春 130000)

1 概述

随着社会的发展,人们生活中电器设备的增多,室内复杂的布线设计带来的安全隐患,使实现设备的无线化成为迈向未来智能家居生活的重要一步,同时减少使用线路线材也是未来社会实现绿色经济环保的发展趋势。本设计针对有线电器设备通讯连接问题,将基于USB 协议转化技术实现成本低廉、操作简易、即插即用的无线化蓝牙模块设计,通过USB 协议实现接受数据信息并转化为蓝牙协议进行数据传输,实现电器设备通讯无线化,推进现代化生活建设,方便人们的生活。

2 模块总体设计方案

本设计致力于实现通过USB 协议转换蓝牙协议进行数据传输,实现有线电器的无线化。由于USB 接口协议具有4 种传输模式,每种传输方式都有各自特点,不同操作系统的驱动程序也不同,因此为简化模块设计程序,使用高可配置性的FPGA芯片作为主控芯片,其不仅易于维护、方便移植、升级、扩展,同时FPGA 具有可以随时改变逻辑功能,可将各种端接匹配元件整合到器件内部,有效降低BOM 成本,有效降低布局布线难度。这里无线化蓝牙模块采用性能较好的FT601 芯片,其不仅提供支持USB 协议的接口,而且无需考虑固件设计以及驱动程序的编写,开发简易,周期较短,而且其数据传输速率完全满足本设计在数据传输方面的需求。数据传输过程是首先由终端1通过USB 协议发送数据信息到达接口芯片1,再通过由接口芯片和FPGA 组成的基于FPGA 的协议转换系统转化为符合蓝牙协议的数据,再将数据通过蓝牙配对传输至终端2,实现电器设备通讯数据传输无线化。

3 USB 接口设计

USB 接口设计采用FT601 芯片,是FTDI 最新推出的USB3.0 to FIFO interface IC,可实现USB3.0 与16/32bit 并行IO 接口之间的数据传输。芯片支持1.8V、2.5V、3.3V 共3 种IO电压,同时支持USB3.0、USB2.0 传输,支持2 种FIFO 传输协议,通过16bit 或32bit 并行数据线和读写状态可实现与CPU/FPGA的数据交换,可以进行数据的大吞吐量操作,另外支持远程唤醒功能。整个USB 通信协议全部由芯片驱动自行完成,开发者无须考虑USB 底层固件的编程,能够明显降低制板加工工艺,简化系统设计[1]。FT601 芯片结构示意图如图1 所示[2]。

图1 FT601 芯片结构示意图

FT601 芯片主要是通过接口将数据传输至FPGA,通过在FPGA 和FT601 间接入32 根数据线,同时接入9 根信号线来保障信号的传输速率。另外如图2 所示,设计了唤醒电路和复位电路来解除当FT601 芯片没有进行通信时的低电模式[3]。

图2 FT601 唤醒电路和复位电路

4 协议转换设计

如图3 所示,通过无线化蓝牙模块插入到前端设备有线电器USB 接口,同时为了方便实现数据处理的算法,经由FT601接口芯片,将根据USB 协议接收的数据流转换成FPGA 系统可接受的信号,然后进入到分布式FIFO 缓存,数据转换模块进行数据处理,然后进入蓝牙FIFO 缓存,最后按照蓝牙协议通过蓝牙配对连接蓝牙设备进行输出。

图3 协议转换数据传输链路

协议转换处理流程主要可以分解析、匹配、映射、处理、重组五大部分。软件定义可编程协议转换系统框架如图4,该系统由软件定义控制器、软件定义协议解析端口、可编程指令处理模块、缓存模块、存储模块、软件定义数据重组模块六大模块组成[4]。

图4 协议转换系统结构框图

软件定义控制器是通过编程命令实现整个系统正常运行的的关键模块,将控制平面与其它模块平面分开,通过控制平面编程命令语言,实现对其它各个模块的实时集中控制,这样就无需改变设备硬件结构框架,只要通过对软件定义控制器进行编程,即可完成对整个系统的实时控制。

软件定义协议解析端口对源数据包处理流程如图5 所示,协议转换过程中不包含对数据包负载内容的处理,而首先通过抽取一定比特的包头数据并识别数据信息类型来实现灵活的数据包解析[5],进而实现把异构协议部分的数据帧头信息转换为通用描述符[6]结构,将复杂的协议简单化,从而只需处理模块主要处理数据转换后形成的简易型通用描述符即可。对于协议无关的数据包解析,只需将协议转换映射字段以及相关标志信息整合到通用描述符中,从而降低协议转换难度,提高协议转换效率。

图5 数据包处理流程

可编程指令处理模块采用可编程ALU 指令[7],通过命令语言编程实现提取关键字段,从而根据匹配表进行匹配操作,匹配成功后通过对通用描述符结构进行增加,替换以及删除等操作处理,完成对该模块传入数据的协议转换处理过程。

存储模块将根据该模块固定存储的已编辑的命令语言和USB 协议与蓝牙协议的映射关系表以及通用描述符关键字段的匹配表,进而存储软件定义控制器需要的各类控制信息和可编程指令处理模块需要的数据指令信息。

缓存模块主要用于存储数据包中解析分离出的负载内容,待到数据重组并发送后将清除这些已用缓存数据。

软件定义组据重组模块将从缓存模块中提取出的负载内容和协议转换后的数据组合为新的数据帧并进行发送。

5 蓝牙模块芯片缓冲设计

为保证不同时钟域数据传输的真实有效性和高度准确性,如图6,该模块设计采用FIFO(先进先出)队列存储[8]的设计方式,如果收到数据缓存信号则会利用存储单元进行数据缓存,再进行数据传输,同时当预存空间满时则会停止接收数据,反之没有收到数据缓存信号则会丢弃预先缓存的数据,从而避免出现数据杂乱无效的情况,有效提高数据传输效率。

图6 FIFO 控制逻辑图

6 总结与展望

本次设计是设计出价格低廉、低功耗、小体积、数据共传、便捷万用的无线化蓝牙控制模块,减少电器间的线路连接,使室内设计更加简约。本设计难免存在不妥之处,希望接下来能对之实施进一步有效开发,切实实现理论和实践相结合,对之进行科学调整,相信随着蓝牙通讯和无线化技术的快速发展,未来电器也将会更加智能、便捷、高效,促进人们生活方式的多样化,实现更好的无线化环境将是指日可待。

猜你喜欢

数据包蓝牙定义
蓝牙音箱的直线之美
二维隐蔽时间信道构建的研究*
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
C#串口高效可靠的接收方案设计
简单、易用,可玩性强Q AcousticsBT3蓝牙音箱
成功的定义
修辞学的重大定义
山的定义
蓝牙4.0落地加速
蓝牙4.0:更快速更节能