基于DSP的蓝牙无线传输系统设计

时间:2022-05-24 07:37:24

基于DSP的蓝牙无线传输系统设计

【摘要】文章系统地阐述了基于DSP的蓝牙无线传输系统的硬件和软件设计原理,并着重阐述了蓝牙接口的实现,给出了DSP与蓝牙模块UART和USB两种接口设计方案。该系统采用BF533与蓝牙模块UART口通信,数据传输速率高,传输稳定。

【关键词】DSPUART蓝牙接口

蓝牙技术作为一种低成本、低功耗、近距离的无线通信技术,正广泛应用于固定与移动设备通信环境中的个人网络,数据速率可高达1Mb/s;它采用跳频/时分复用技术,能进行点对点和点对多点的通信[1]。ADSP-BF533是ADI公司Blackfin系列的高速数字信号处理器芯片,基于DSP的蓝牙无线传输系统设计,利用DSP简单算法实现对复杂信号的处理,大大提高了系统的数据处理能力;同时信号传输用无线代替有线电缆,解决了电缆传输存在的弊端,拓宽了系统在较为恶劣的环境或特殊场所的应用。

1 系统总体硬件设计

整个系统硬件主要由ADSP-BF533、ADC模块、CPLD逻辑控制电路、ROK101 007蓝牙模块以及存储器组成,其硬件连接如图1所示:

图1 系统硬件结构总框图

如图1所示,DSP是核心控制器件,它扩展了Flash程序存储器和SDRAM数据存储器,FLASH保存DSP所需要的程序,供DSP上电调用;JTAG是DSP的仿真接口;时钟复位电路提供DSP模块正常工作所需的时钟频率和复位信号;由CPLD组成的逻辑控制模块接收DSP传送过来的动作命令,控制A/D转换模块进行数据采集,并提供对FIFO的接口时序,实现转换数据的存储。这里采用Altera公司的复杂可编程逻辑器EPM3128ATC100-5,其内部电路采用Verilog HDL语言编写,即可生成相应的操作电路,实现对各种输入信号的锁存、判断和处理,以及对各种命令信号的执行和输出信号的控制。

ADSP-BF533和蓝牙模块ROK101 007的连接是本系统硬件连接的重点,两者之间可以采用UART和USB接口两种方式进行通信,下面将对这两种通信设计方案进行比较。

2 DSP与蓝牙模块接口电路

2.1 ROK101 007蓝牙模块

ROK101 007是爱立信公司出品的一款适用于短距离通信的无线/基带模块。该蓝牙模块集成度高、功耗小,完全兼容蓝牙协议v1.1,可嵌入任何需要蓝牙功能的设备中。该模块包含无线收发器(PBA 31301/2)、基带控制器、闪存、电源管理和时钟5个功能模块,可提供高至HCI层的功能。图2为其内部结构框图[2]:

图2ROK101 007内部结构框图

该模块还提供有USB、UART和PCM接口,同时支持蓝牙语音和数据传输,因而能方便地与主机或其他设备进行互连通信。ROK101 007的USB接口符合USB1.1规范,通过双向端口D+和D-的数据传输速率可达到12Mb/s。当使用USB接口与主机通信时,ROK101 007是一个USB从设备。与该接口有关的管脚有:

(1)D+(B1)、D-(B2):用于数据传输,其中括号内的字母和数字表示其管脚号(下同);

(2)Wake up(B4)、Detach(C1):专用于与笔记本电脑的互联,主要用来控制笔记本电脑的状态。

当主机处于掉电模式时,如果蓝牙系统收到建立连接的请求,Wake up信号就会“唤醒”主机。主机的“挂起(suspend)”可通过Detach信号来实现。UART接口ROK101 007的UART接口标准符合工业规范16C450,支持的波特率有(单位:b/s):300、600、900、1200、1800、2400、4800、9600、19200、38400、57600、115200、230400和460800。使用爱立信自定义的HCI命令“HCI Ericsson Set Uart Baud Rate”可改变UART接口的波特率。

该接口中还有128字节的先入先出(FIFO)缓冲器。

与该接口有关的有4个管脚,具体如下:

(1)TXD(B5)、RXD(A5):用于收发数据;

(2)RTS(A6)、CTS(B6):用于数据流控制。

2.2 DSP与蓝牙模块UART口通信设计

串行通信接口通常采用三线制接法,即地、接收数据(RXD)和发送数据(TXD)。DSP与蓝牙模块使用UART口进行通信时,蓝牙模块作为一个DCE,异步串口通信参数可以通过设置ADSP-BF533的内部寄存器来改变,如串口通信速率、有无奇偶校验、停止位等。由于ADSP-BF533具备异步串行通信端口,而且其工作电压为3.3V和1.3V,蓝牙模块工作电压为3.3V,因此,当DSP使用异步串口与蓝牙芯片通信时,两者之间可直接连接,无需电平转换。其接口电路设计如图3所示:

图3 DSP与蓝牙模块UART接口设计

使ADSP-BF533的TX引脚接蓝牙模块的RXD,RX引脚接蓝牙模块的TXD。此外,考虑到系统的通信波特率比较高,数据流量比较大,为了保证传输数据的稳定可靠性,系统设计时采用了硬件流控制方式。意即使蓝牙模块的RTS引脚与BF533的I/O端口相连,系统发送数据时首先判断BF533的I/O端口状态,从而监视RTS是否“忙”。当接收端数据缓冲区满,接收端将RTS置为高电平,通知发送端“忙”,请求暂停发送数据,发送端检测到RTS“忙”则立即暂停发送;相反,当发送端检测RTS空闲,表明接收端数据缓冲区不满,发送端继续发送数据。

2.3 DSP与蓝牙模块USB口通信设计

DSP与蓝牙模块使用USB接口方式进行通信时,要通过USB口转换电路,然后再与蓝牙模块的USB双向端口D+和D-相连;当采用蓝牙模块USB口低速连接方式,速率也可达到1.5Mb/s。

DSP模块USB口转换电路采用FTDI公司推出的USB芯片FT245BL[3]。该芯片内部固化了实现USB通讯协议的固件程序,对外向用户提供了相应设备的驱动程序,在与蓝牙模块ROK101 007的USB接口设计中,只需进行必要的硬件设计和简单的软件编程就可以实现,这样就大大降低了开发难度,缩短了开发周期。蓝牙模块与实现USB接口通信相关的引脚主要是D+(B1)和D-(B2),在上节中已有所描述。BF533通过USB芯片FT245BL实现与蓝牙模块的USB接口通信,其详细的电路设计如图4所示:

图4DSP与蓝牙模块USB接口设计原理图

由图4可见,FT245BL的8位数据线D7~D0通过终端匹配电阻连接在DSP的低8位数据总线上;RXF用于判断接收FIFO是否有数据,设计时RXF引脚接DSP的PF3引脚,只要数据大于或等于1个,RXF就为低,通知DSP可以读取数据;TXE用于判断发送FIFO是否满,0为不满,1为满,当TXE为0时,外部DSP向发送FIFO缓冲区写数据,直到发送数据全部写入;读RD、写WR、发送使能TXE信号原本也可以直接与BF533的读、写线直接对连,但由于FT245BL芯片没有片选线,所以RD、WR以及TXE都是经过CPLD内部的USB逻辑电路处理后才连接的。

FT245BL时钟由外部6MHz晶体振荡器提供,晶体振荡器两端分别通过1个27pF电容接地,组成振荡网络。EEPROM接口不连接配置芯片。设计时考虑到FT245BL芯片始终处于正常工作状态,所以TEST引脚直接接地;同时,SI/WU引脚接3.3V电源,唤醒功能不使用。另外,电源电路增加了旁路和去耦电容,以提高电源的稳定性和抗干扰性能。FT245BL与蓝牙模块连接时,FT245BL的USBDM经33欧姆电阻接ROK101 007的D+,USBPM经33欧姆电阻后接ROK101 007的D-,采用低速通信连接方式;若采用全速通信时,需将FT245BL的USBDP(D+)引脚配置一个1.5K的上拉电阻后连到RSTOUT引脚,使得芯片以全速状态进行通信。

与UART口进行通信相比,DSP与蓝牙模块采用USB口通信具有数据传输速率高、串口通信软件编程简单等优点。不过DSP与蓝牙模块USB接口驱动程序的开发比较困难,另外针对不同的DSP和蓝牙模块都需要开发相应的高层驱动程序,工作量很大,通用性也比较差,除特殊需要外,一般不采用这种方式进行数据传输。所以本系统中BF533拟与蓝牙模块使用UART口进行通信,下面就其UART口通信软件设计进行阐述。

3 软件设计

DSP和蓝牙接口的软件结构分为三个层次[4]:

(1)系统的应用程序;

(2)为蓝牙设备开发的设备驱动程序,包括蓝牙的高层协议(RFCOMM和L2CAP等);

(3)蓝牙基带部分协议:这部分协议已经固化在蓝牙模块中。

本系统中,由于采用蓝牙接口模块,其中基带和链路管路协议部分由蓝牙模块实现。用户只需在DSP中编写数据收发程序即可。

DSP编程的主要任务是初始化并管理板上的资源和实现前端数字信号处理的算法。Visual DSP++是ADI公司提供的用于DSP程序开发的可视化集成开发环境,支持Blackfin系列DSP芯片的编程、调试和开发。DSP中实现下位机蓝牙无线传输软件设计流程图如图5所示。

系统上电复位后,首先完成系统初始化操作,包括ADSP-BF533的初始化和蓝牙模块的初始化。ADSP-BF533自身的初始化包括配置RAM块,设置I/O模式、定时器模式、中断等;然后等待接受上位机蓝牙模块发送的控制命令,完成与上位机的建立连接、数据传输、断开连接等操作。ADSP-BF533的程序存储器中存有常用的数字信号处理算法,它在收到上位机通过蓝牙发送的控制信息后,在中断函数中选择某种处理算法,同时向CPLD发出动作命令,控制A/D转换模块完成信号的采集并将采集到的数据存入FIFO中。当FIFO中数据达到半满时,向ADSP-BF533提出中断申请,ADSP-BF533响应此中断,在中断函数中实现对部分采样数据的读取,在主循环程序中根据上位机选定的处理算法完成数据的前端处理,然后将数据打包,通过蓝牙传输给上位机。

4 结语

与传统的数据采集传输系统相比,基于DSP的蓝牙无线传输系统,核心处理器的选型上采用数字处理能力强大的DSP芯片,无线传输技术上采用目前技术比较成熟、应用领域比较广泛的蓝牙技术来实现。通过比较,该系统中BF533拟与蓝牙模块使用UART口进行通信。不过,系统要在工业现场,特别是在装备检测领域得到推广应用,还需要根据实际测试需求做大量的工作。

参考文献

[1]金纯,等. 蓝牙技术[M]. 北京: 电子工业出版社, 2001.

[2]钱志鸿,等. 蓝牙技术原理、开发与应用[M]. 北京: 北京航空航天大学出版社,2006.

[3]FT245BL USB FIFO (USB - Parallel) I.C[P]. Future Technology Devices Intl.Ltd, 2005.

[4]汪安民,等. DSP嵌入式系统开发典型案例[M]. 北京: 人民邮电出版社,2007.

【作者简介】

刘 品:军械工程学院火控教研室硕士研究生,研究方向:控制理论与控制工程。

杨润生:教授,军械工程学院火控教研室硕士研究生导师,研究方向:武器系统仿真与应用。

王永磊:军械工程学院雷达教研室硕士研究生,研究方向:信号与信息处理。

上一篇:精挑细选 网吧主板四大采购指南 下一篇:从里到外的提升 NVIDIA260.63Beta版本驱动程序...