CCS一般工作在两种模式下:软件仿真器和与硬件开发板相结合的在线编程。前者可以脱离DSP芯片,在PC机上模拟DSP的指令集与工作机制,主要用于前期算法实现和调试。后者实时运行在DSP芯片上,可以在线编制和调试应用程序。
DSK板是一块需要外部提供+5VDC电源的独立的开发板,在板线性电压调整器提供1.8VDC的DSP内核电压,3.3VDC数字和5VDC模拟电压。它提供低功耗的、标准的、独立的C54X系列开发平台,允许用户为C54X系列DSP评估和开发应用程序。DSK板上的核心当然就是100MHz的C5402 DSP,还有两片AD50,它们占用了DSP的两个McBSP,其中的一片是本文用到的即用于采集外部音频信号(使用McBSP1),另一片则与标准电话线相接口(使用McBSP0)。
值得一提的是DSK板的在板接口十分丰富,有25针并行接口,9针串行接口,JTAG仿真口,电话 DAA接口,麦克风/扬声器 接口,还有扩展接口用于扩展存储器和外围电路。这些接口极大地方便了DSP开发者的在板开发。本文所涉及的程序设计是通过25针的并行口将主机和DSK板连接起来的。
4.软件设计
本文所设计的程序要完成的功能是通过麦克风接口进行语音信号的采集并实时地通过扬声器接口回放出来。
4.1 通信格式的研究
AD50C有两种通信格式:首次通信和二次通信。
首次通信格式的16位都用来传输数据。ADC的数据长度由寄存器2的D4位决定。启动和复位后默认值为15+1位模式,最后一位用于请求二次通信(D0:0表示无操作,1表示请求二次通信)。当然,二次通信也可以由硬件的FC引脚产生,本文不作讨论。下图为首次通信的数据格式:
二次通信则用来初始化和设置AD50C的内部寄存器的值。二次通信时DSP可通过向DIN写入寄存器的值,也可以从DIN读出寄存器的值。二次通信的数据格式如下:
由图可以看出,DS13位控制读写,DS12~8为寄存器的地址,DS7~0为寄存器的值。系统复位后,必须通过DSP的DX口向AD50C的DIN写数据以初始化各控制寄存器,如AD转换只用到寄存器1,寄存器2和寄存器4。