基于McBSP的高速串行数据采集系统设计
5. 软件设计
本设计中,AD974一般的工作步骤包括:采集通道选择,芯片工作触发,数据读取。他们分别涉及到DSP的多组控制寄存器。
(1)通道选择:需要配置McBSP1通道为GPIO模式(设置PCR,SPCR寄存器相应的控制位),控制FSX1引脚输出低有效使能信号,然后控制FSR1,CLKR1引脚输出相应的通道选择代码。
(2)芯片工作触发:向0xB0000000写入一个数据,目的在于选通R/C(读/转信号),触发AD974芯片开始数据转换。
(3)数据读取:配置McBSP0通道的各个寄存器,使其满足SPI数据传输的从模式,然后McBSP0通道会按照程序要求接收数据并放置在DRR寄存器中。
下面给出部分程序设计:
/*** 配置McBSP0端口为SPI工作模式 ***/
*(unsigned volatile int *)McBSP0_SPCR = 0x0000;
*(unsigned volatile int *)McBSP0_SRGR= 0x20000000;
*(unsigned volatile int *)McBSP0_RCR = 0x40040; /* 16bit数据接收 */
*(unsigned volatile int *)McBSP0_XCR = 0x40040; /* 16bit 数据发送 */
*(unsigned volatile int *)McBSP0_SPCR = 0x400000;
*(unsigned volatile int *)McBSP0_SPCR = 0x401800;
*(unsigned volatile int *)McBSP0_PCR = 0x50C;
*(unsigned volatile int *)McBSP0_SPCR = 0x411801;
/*** 配置EMIF端口 ***/
*(unsigned volatile int *)EMIF_GCR = 0x3308;/* EMIF global control */
*(unsigned volatile int *)EMIF_CE3 = 0x105fff23; /* EMIF CE3 control */
/*** 选通AD974采样 ***/
*(unsigned volatile int *)0xB0000000 = 0x1;
/*** 读取采样数据 ***/
temp = *(unsigned volatile int *)McBSP0_SPCR 0x2;
while ( temp == 0)
{
temp = *(unsigned volatile int *)McBSP0_SPCR 0x2;
}
temp = *(unsigned volatile int *)McBSP0_DRR;
6. 结束语
本文详细介绍了ADI公司的高速,高精度A/D芯片AD974和TI公司的高性能浮点数字处理器TMS320C6711之间的串行接口设计及程序设计。该设计方案,电路简洁,程序采用C语言编程,可读性和移植性强。本设计的创新点在于:该方案通过采用SPI通讯协议,结合TMS320C6711芯片的EDMA数据传输中断,可以实现自主采样和数据传输而无需占用DSP的CPU资源,能够大大提高系统效率,经过验证系统能够稳定的工作在最大采样率(200kSPS)条件下。线SOC开发平台499元 S3C44B0 ARM7开发板378元 S3C2410 ARM9开发板780元 AT91SAM7S64 ARM7 单片机开发板之王——ELITE-I单片机学习开发系统1200元 S3C2410 ARM9开发板(II) 950元 EPM1270T144C CPLD开发板 480元
参 考 文 献
[1] TMS320C6000 Peripherals Refence Guide (Literature Number: SPRU190D). Texas Instruments Inc. February 2001.
[2] 4-Channel, 16-Bit, 200 kSPS Data Acquisition System(Ad974 Datasheet). Analog Devices Inc. 1999
[3] 李方慧,王飞等. TMS320C6000系列DSPs原理与应用. 北京:电子工业出版社,2002.
[4]李琛,张春熹. 《McBSP多通道串行口在光纤陀螺中的实现》. 微计算机信息,2005年第9-2期,89-91页
评论