引 言
电子技术和芯片技术的发展使得数字系统运行的速度越来越快,设备内部和设备之间的数据交换对高速、实时、突发的要求越来越高。总线技术是数据交换的必要环节。早期的总线传输一般是串行方式,一些串行总线已经成为标准,非常适合语音和控制信号的低速数据传输,数据传输速率一般低于1 Mbps。这类总线包括RS232、I2C、SPI、I2S等,特点是引线少、速率低。并行总线由于线数多,可以从8位扩充到16位、32位和64位,甚至更高,使得数据传输速率成倍提高。但由于布线的差异以及干扰的存在,使得其数据传输的同步时钟速率很难超过150MHz。差分串行总线能够解决布线差异引起的问题,并具有较高的抗干扰性能,使得串行总线的传输速率得到迅速的提高。USB总线就是一种差分的串行总线,其速率可以达到480 Mbps,已经得到非常广泛的应用。
很多设备的应用场合中,设备之间的连接非常困难甚至不能实现,基于无线总线的数据传输从而得到发展和应用。无线总线包括蓝牙、无线网卡、无线传感器等。无线USB(Wireless Universal Serial Bus,WUSB)也是这样的一种无线总线技术。由于现有设备的存在,使得单一的WUSB设备不能直接和现有设备进行交互。为了解决WUSB向有线USB兼容的问题,需要研制同时具有WUSB和USB功能的设备,实现单一的WUSB设备和单一的USB设备之间的数据交换。
1 硬件设计
1.1 WUSB和CYWUSB6935
WUSB技术的数据收发采用超宽带技术(Ultra WideBand,UWB)的脉冲调制方式。由于其载波信号不是连续存在的,仅仅存在于数据传输瞬间,使得其数据收发间隙几乎没有功耗,因此非常适合电池供电并工作较长时间。在3 m距离内,目前的WUSB2.0标准可以实现480 Mbps的数据传输速率,正在规划的WUSB3.0可以实现1 Gbps的数据传输速率。
CYWUSB6935是Cypress公司推出的一款支持WUSB标准的芯片。其发射频率为2.4 GHz,采用直接序列扩频(Direct Sequence Spread Spectrum,DSSS)技术,以避免来自2.4 GHz频段中802.11b、Bluetooth、无绳电话以及微波炉等无线信号的干扰;具有-95 dBm的接收灵敏度,确保在50 m范围以内获得较强的全方向信号;待机功耗非常低,具有约0.25μA的待机电流,使用普通电池待机时间可达数年;具有可自适应的发射功率,可以识别收发信号的强弱,发射功率具有-30~0 dBm的动态范围。注意,CYWUSB6935具有高达62.5 kbps的数据传输速率,平均响应时间少于10 ms。图1是CYWUSB6935的内部结构框图。
无线信号的收发由集成在片内的GFSK调制器和解调器完成,调制/解调器需要外部提供标准的13 MHz的时钟信号。该信号经过频率合成器转换为发射载波信号,如果频率合成器锁定时钟,将输出同频率的13 MHz时钟,可以由此判断调制/解调器是否正常工作。
CYWUSB6935具有2路功能完全一样的基带信号处理通道,射频端2路基带通道都和调制解调器连接。发送数据经过并串转换传输到基带处理通道;接收时基带通道处理后的数据经过串并转换传输到数字接口。基带通道主要功能是将数据调制在扩频码上,可以根据设置将一个数据位扩频到64个或者32个码片上。
数字接口主要包括1个SPI接口,由于CYWUSB6935最大只有62.5 kbps的数据传输速率,所以SPI接口完全满足数据传输要求。数字接口还具有复位、中断、休眠选择和设置引脚,以提高芯片的适应性。
CYWUSB6935有4种工作模式:64 chip/b单通道、32 chip/b双通道、32 chip/b单通道双倍采样和32 chip/b单通道两倍数据速率。第3种工作模式的数据传输速率最低,但性能更加可靠,一般在较远距离或者信道状况较差情况下使用;第4种工作模式的数据传输速率最高,但性能最差,一般在较近距离或者信道状况较好情况下使用。模式选择通过配置数据速率寄存器来实现。
接收和发射均采用中断方式,有3种:发射中断、接收中断和唤醒中断。这些中断共用一个IRQ引脚。通过读取中断状态寄存器可以确定中断类型。如果为接收中断,则从相应的数据接收寄存器中获得相应通道的数据;如果是发射中断,则接收数据送到基带通道中进行扩频处理;如果是唤醒中断,则切换休眠状态到工作状态,准备接收或者发射数据。
1.2 CYWUSB6935和DSP的连接
CYWUSB6935的数据接口一般采用SPI接口,与各种控制器的连接非常方便。DSP芯片选用TI公司的TMS320C6727B。该芯片是浮点型DSP,最高工作频率达到350 MHz;单个指令周期可以执行6个浮点数据运算,最高达到2 100 MFLOPS;片内具有256 KB的RAM,片内外设具有各种接口(其中包括与CYWUSB6935连接的SPI接口)。CYWUSB6935和TMS320C6727B的连接如图2所示。
TMS320C6727B作为主控制器,提供SPI的时钟和使能信号(图2中的SPIO_CLK和SPIO_SCS)给CY_WUSB6935。工作状态下,CYWUSB6935一共发送3种中断信号到TMS320C6727B,均由IRQ引脚传输到TMS320C6727B。其中,工作定时中断表明CY-WUSB6935处于正常工作状态,如果TMS320C6727B超过时间未收到定时工作状态信号,则由SPI接口软件复位CYWUSB6935;如果软件复位后仍然不能正常工作,则由GPIO0引脚硬件复位CYWUSB6935,从而确保CY-WUSB6935不会进入死锁和非正常工作状态,大大提高了系统的可靠性。在休眠方式下,TMS320C6727B使用GPIO1引脚控制CYWUSB6935的PD引脚,控制其进入休眠方式;同样,使用该引脚可以唤醒CYWUSB6935。TMS320C6727B的Flash用于存储程序代码;AIC23为音频处理芯片,可以使用音频信号控制TMS320C6727B;CYWUSB6935的收发天线为PCB天线,直接在电路板上制作完成。
1.3 USB和CY7C68013
USB接口一般包括3个部分:具有USB接口的PC系统,能够支持USB的系统软件,以及使用USB接口的设备。USB接口的应用采用通用连接技术,实现外设的简单快速连接,从而达到方便用户、降低成本、扩展PC机连接外设范围的目的。
USB接口的特点如下:连接灵活、使用方便;为USB接口设计的驱动程序和应用软件可以自动启动,无需用户干预;单独使用自己的保留中断,不会同其他设备争用资源;可以为外设提供电源,USB接口能自动识别外设所需的电源,并通过USB电缆向该设备供电(最高可达500mA,可以使用2根USB电缆,提高供电电流到1 A)。
CY7C68013是Cypress公司推出的USB2.0芯片。它包括8051处理器、智能串行接口引擎、USB收发器、16 KB片上RAM存储器以及通用可编程接口。智能串行接口引擎执行所有基本的USB功能,将嵌入的8051处理器解放出来用于实现其他功能,以保证连续、高速、有效的数据传输。RAM存储器可以分配4 KB的大容量FIFO用于数据缓冲,作为从设备时,可采用同步或者异步FIFO接口与主设备连接;作为主设备时,可通过GPIO接口配置控制时序来实现与其他从设备连接。
CY7C68013的内部结构如图3所示,其中与外部设备的接口包括I2C总线、GPIO接口和FIFO接口等。数据通过这些接口传输到内部的数据和地址总线,由8051处理器处理,或者直接送到USB接口的智能引擎单元;然后传输到USB收发器,最终传输到PC机。CY7C68013片内还包括PLL时钟电路,将外部的24 MHz时钟信号连接到USB收发器和8051处理器,驱动内部模块工作。
1.4 CY7C6801 3和DSP的连接
CY7C68013和DSP的连接有两种方式:从设备的FIFO方式和主设备的GPIO方式。本设计采用从设备的FIFO方式,DSP作为主设备。DSP可以像读写普通FIFO一样对CY7C68013内部的多层缓冲FIFO进行读写。具体的接口电路如图4所示。
FlagA、FlagB和FlagC是CY7C68013内部FIFO的状态标志,分别对应FIFO的空、半满和全满状态。TMS320C6727B 通 过GPIO0、GPIO1和GPIO2引脚来获得这些状态信息。其中,CY7C68013的半满状态可由软件设置。半满仅仅表示FIFO中有数据,还存在未写的空间。例如,如果1 024个数据为全满,可以设置半满个数为1~1 023。
TMS320C6727B通过EMIF接口的CE2空间对CY7C68013进行读写操作。当通过CY7C68013向PC机发送数据时,首先查看空、半满和全满这3个状态信号,如果状态为空或者半满,则向CY7C68013写入适当大小的数据,以保证数据不会溢出;PC机通过CY7C68013向TMS320C6727B发送命令字时,CY7C68013通过中断方式通知DSP读取其命令字。
2 软件设计
整个系统的软件设计包括3个部分:DSP的软件设计,PC的应用程序设计,以及CY7C68013的软件设计(包括固件设计和驱动程序设计)。
DSP运行的软件主要是作为CYWUSB6935和CY7C68013的数据收发通道。其具体的工作流程如图5所示。DSP上电初始化后,将依次扫描所有可用的127无线频带的无线信号,查看周围是否存在可用的无线USB设备,并判断它们是否属于本系统的设备。如果存在本系统的设备,则进行信噪比检测,并控制发射功率,也可以优先采用空闲频带。当双方建立连接后,即可进行正常的数据通信。DSP完成了某个频带的设备通信后,将进行下一个频带设备的搜索,直到搜索完成所有频带设备,然后重复整个搜索过程。
对于有线USB设备,DSP软件处理较简单,等待USB通信建立包就可以了。由于设备的识别和连接均由CY7C68013完成,DSP只须等待CY7C68013发出的通信中断。
CY7C68013运行的软件为固件程序,主要功能是控制CY7C68013接收并处理USB驱动程序的请求,控制CY7C68013接收应用程序的控制指令,通过CY7C68013存放数据并实时上传至PC机等。固件程序存储在PC机驱动程序中,通过CY7C68013的枚举过程自动下载到CY7C68013中运行。
驱动程序一般由两部分组成:较高级的通用串行总线驱动程序模块和较低级的主控制器驱动程序模块。主要功能:实现管理USB设备驱动程序和USB控制器之间的通信;加载及卸载USB驱动程序;与USB设备建立通信,并执行设备配置、数据与USB协议框架和打包格式的双向转换任务。Cypress公司为了方便用户开发USB接口,在CY7C68013的软件开发包中提供了一个通用驱动程序。该程序可不加修改,编译后直接使用。
CY7C68013的工作流程如图6所示。上电初始化后,程序处于TD_Init状态,CY7C68013等待PC的设备建立命令。如果此时将CY7C68013连接到PC机,PC机将检测到新的USB设备,并调用相应的USB驱动程序进行CY7C68013的枚举工作。枚举完成后PC机将提示有一个可用的USB外设,CY7C68013就可以和PC机进行数据通信了。此时CY7c68013运行在TD_Poll状态,一直检测是否收到通信建立包。如果收到该协议包则进行数据通信,直到数据通信结束;若空闲,则自动进入TD_Poll状态。CY7C68013在DSP控制过程中,如果收到通信建立包,则将该命令存储到其内部寄存器中,直到空闲时才会响应该通信建立包。作为PC机驱动程序,如果长时问未收到CY7C68013的响应,则重发该命令,若连续重发3次以上,会取消该命令。
结 语
USB设备作为高速实时的数据通信接口已经得到广泛的应用,无线USB也逐渐得到发展和应用。本文设计的系统能够实现无线USB和普通有线USB之间的数据传输。该系统具有小型化、低功耗、高性能的特点,具有良好的应用前景。由于采用DSP为处理器,可以方便地实现各种处理算法(例如压缩多个WUSB的语音信号传输到PC机),也可以实现多个WUSB语音信号的混音功能,实现多路的无线通信。