控制系统的软件主要包括两个方面:USB程序和DSP2812控制系统程序。
USB程序的设计主要包含:固件程序、驱动程序和主机端应用程序。固件程序是运行在CY7C68013上的程序,其主要功能包括初始化,包括设置一些特殊功能寄存器的初值、辅助硬件完成设备的重新列举过程、处理中断请求、数据的接受与发送以及外围电路的控制。首先初始化内部状态变量,然后调用用户初始化函数。从该函数返回后,初始化USB接口到未配置状态并使能中断。然后每隔1s进行一次设备重枚举,直到端点0接受到一个SETUP包。一旦检测到SETUP包,固件程序将开始交互的任务调度。在本方案中选择68013工作于异步从属FIFO模式,将其FIFO对应到EndPoint2和End—Point6,其中EndPoint2为OUT型,从主机接受数据;EndPoint6为IN型,向主机发送数据。传输采用块(Bulk)传输方式,在初始化函数中设置芯片工作方式。
Windows平台的USB驱动程序由3部分组成:USB主控制器驱动程序、USB总线驱动程序以及USB设备驱动程序。其中USB主控制器驱动程序和USB总线驱动程序封装在操作系统中,由微软公司提供。而USB设备驱动程序则采用Cypress公司提供的通用驱动程序,经过DDK编译后直接使用。
主机端应用程序主要在PC机上采用VC 6.0编写,要完成数据的传输,只需要调用几个函数即可。
DSP主机控制模块由几个子模块构成:
1、初始化模块,在系统上电后执行一次,通过该模块来初始化系统硬件寄存器、数据结构及全局变量;
2、通信模块,通过判断标志位来观察是否有数据下发到USB芯片的缓冲区,继而读取数据。
3、缓冲模块,当数据比较多时,DSP芯片一次处理不过来,将数据先存入缓冲区,当一批数据处理完后,再继续处理下一批数据。
4、D/A转换模块,DSP芯片读取通过USB传输过来的数据后,控制D/A转化芯片进行转换。