串行通信接口通常采用三线制接法,即地、接收数据(RXD)和发送数据(TXD)。DSP与蓝牙模块使用UART口进行通信时,蓝牙模块作为一个DCE,异步串口通信参数可以通过设置ADSP-BF533的内部寄存器来改变,如串口通信速率、有无奇偶校验、停止位等。由于ADSP-BF533具备异步串行通信端口,而且其工作电压为 3.3V和1.3V,蓝牙模块工作电压为3.3V,因此,当DSP使用异步串口与蓝牙芯片通信时,两者之间可直接连接,无需电平转换。
使ADSP-BF533的TX引脚接蓝牙模块的RXD,RX引脚接蓝牙模块的TXD。此外,考虑到系统的通信波特率比较高,数据流量比较大,为了保证传输数据的稳定可靠性,系统设计时采用了硬件流控制方式。意即使蓝牙模块的RTS引脚与BF533的I/O端口相连,系统发送数据时首先判断BF533的I /O端口状态,从而监视RTS是否“忙”。当接收端数据缓冲区满,接收端将RTS置为高电平,通知发送端“忙”,请求暂停发送数据,发送端检测到RTS “忙”则立即暂停发送;相反,当发送端检测RTS空闲,表明接收端数据缓冲区不满,发送端继续发送数据。
电路原理:DSP与蓝牙模块使用USB接口方式进行通信时,要通过USB口转换电路,然后再与蓝牙模块的 USB双向端口D+和D-相连;当采用蓝牙模块USB口低速连接方式,速率也可达到1.5Mb/s。 DSP模块USB口转换电路采用FTDI公司推出的USB芯片FT245BL。该芯片内部固化了实现USB通讯协议的固件程序,对外向用户提供了相应设备的驱动程序,在与蓝牙模块ROK101 007的USB接口设计中,只需进行必要的硬件设计和简单的软件编程就可以实现,这样就大大降低了开发难度,缩短了开发周期。蓝牙模块与实现USB接口通信相关的引脚主要是D+(B1)和D-(B2),在上节中已有所描述BF533通过USB芯片FT245BL实现与蓝牙模块的USB接口通信,其详细的电路设计如图4所示:
由图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逻辑电路处理后才连接的。与UART口进行通信相比,DSP与蓝牙模块采用USB口通信具有数据传输速率高、串口通信软件编程简单等优点。不过DSP与蓝牙模块USB接口驱动程序的开发比较困难,另外针对不同的DSP和蓝牙模块都需要开发相应的高层驱动程序,工作量很大,通用性也比较差,除特殊需要外,一般不采用这种方式进行数据传输。