2.3 DSP端OSB接口程序设计
首先,通过调用用户的初始化函数,使能外部中断并初始化USB寄存器。之后,程序通过数据传输函数,完成DSP与PC机的数据传输。
USB初始化程序配置如下:
(1)使能外部中断6(EXT_INT6)。
(2)加载USB描述表,并进行自举检测,如自举不成功,则重新自举,直到端点0收到设置包为止。
(3)配置USB为异步从FIFO(Asynchronous SlaveFIFO)模式,采用内部48 MHz时钟源。
(4)读取FNADDR寄存器,判断USB工作状态。
(5)依据USB工作状态,配置EP2、EP4、EP6、EP8,并设置一次传送的Byte长度。设置EP2、EP4为BULK OUT,EP6、EP8为BULK IN,其缓冲大小分别为2×512 Byte。
在数据传输过程中,PC端通过EP2向DSP发送读数据命令,DSP通过外部中断收到读命令后,使用EP6发送已采集好的数据。在声音数据采集系统中,每路麦克风以96 kHz进行24位采样,按照ping-pong方式进行存储。在传输过程中还需进行判断,当采集数据存储在ping缓存时,发送pong缓存中的数据,当采集数据存储在pong缓存时,发送ping缓存的数据。由于TMS320C6713通过EMIF的CE3存储空间可以外扩USB2.0接口,需对EMIF接口的CE3寄存器进行配置,将USB接口设为16位异步存储接口,设定读/写的建立时间(Setup)、促发时间(Strobe)、保持时间,使其满足CY7C68001的读/写时序要求。
2.4 PC机平台应用程序设计
PC端接口程序采用VC++6.0编写,首先调用OpenDriver()打开USB接口设备,获得设备的句柄hDevICe,之后调用Sx2SendVendorReq()函数向外设发出命令,读取USB配置,最后调用Sx2BulkdataTrans()进行数据传输,通过调用CFile类将接收到的数据存放在文本文件中。程序使用多线程技术,使得应用程序将USB数据传输在后台进行处理,应用程序前台还可进行其他操作。
本文关键字:麦克风 嵌入式系统-技术,单片机-工控设备 - 嵌入式系统-技术