检测电路。23USB部分设计TMS320VC33与USB控制器AN2136SC之间通过双向FIFO交换数据握手信号使用AN2136SC的PC口。USB为接收缓冲器时DSP读AN2136SC写当USB为发送当缓冲器时DSP写AN2136SC读。PC0~3用作二者的读写通道方向可编程确定PC4用于TMS320VC33向AN2136SC申请中断PC5用于AN2136SC复位USB接收缓冲器PC6用于USB接收器满标志若接收器已满则禁止AN2136进一步对USB接收缓冲器写
f入PC7用于USB发送缓冲器空标志若缓冲器已空则禁止AN2136SC进一步对USB发送缓冲器读出。3系统软件设计系统软件主要包括五大部分:DSP程序(用于AD采样控制、数据处理、DSP与USB总线之间的信息交换)、USB总线驱动程序、USB固件程序(用于PC机与DSP之间的数据交换与处理)、主机应用程序、FPGA中对地址的译码程序和各个寄存器的实现程序。31DSP程序DSP程序首先对DSP进行初始化(中断初始化、片外选通信号初始化、设定系统默认的采样点数采样频率等),然后等待中断(中断0的程序主要用于对AD数据的读取和处理,并向主机发送处理后的数据;中断1的程序主要用于分析主机的命令,针对主机的命令设定系统的采样点数采样频率,并发送主机需要的数据)。程序框图如图2所示。
32USB固件程序
f固件程序代码由USB芯片集成的加强型8051单片机处理。当EZUSB设备连接到USB口时,主机进行总线枚举,首先根据设备ID使用系统程序将固件下载到芯片内部,然后进行重枚举,固件作为用户的功能设备开始执行。CYPRESS公司提供的固件程序框架,用来完成控制传输工作和大部分的数据传输工作。本接口电路的固件程序就是基于此固件框架开发的,并使用KeilC进行编译。USB接收的DSP中断程序如下:
void
ISR_IDTvoidi
terruptINT0_VECT使能快速传模式将自动指针指向端点4缓冲器
FASTXFR0x40AUTOPTRLLSBWORDIN4BUF
AUTOPTRHMSBWORDIN4BUFfori0i64iAUTODATAACCFASTXFR0x0IN4BC64EZUSB_IRQ_CLEARIN07IRQbmEP4使能端点4发送数据大小接收数据
33主机应用程序为了实现与驱动程序的通信,应用程序首先创建一个事件和一个线程,然后将事件句柄传递给WDM,用线程等待WDM发送的事件消息,接收到事件消息后,就读取驱动程序的数据,显示数据。在Wi
dows中,Wi
32应用程序调用的API函数有五个:CreateFile、ReadFile、WriteFile、DeviceIoCo
trol和CloseHa
dle。应用程序为打开一个WDM设备驱动程序,使用CreateFile函数。它的第一个参数是一个符号链接名。如果用DriverWorks创建一个WDM驱动程序,通常会用类KU
itizedr