MAX153 和MX7545 是美国MAXIM 公司近几年推出的8位A/D转换器和12位D/A 转换器。MAX153具有高达1MSPS的采样率,MX7545具有4MSPS的数/模转换速度。它们集跟踪/保持器于一体,因而由它们构成的数据采集和波形产生电路结构较为简单。与其它同类产品相比,具有性能/价格比高的优点,故在高速数据采集、数字信号处理及可变增益放大器等动态性能要求比较高的系统中,用它们作为数据采集和波形产生器件或控制信号的产生器件十分理想。MAX153和MX7545可以很容易地与一般的微处理器接口,而不需要过多地考虑时序问题。然而,当它们同时与高速数字信号处理器(DSP)接口时,就需要从软硬件的设计上仔细考虑时序问题和其它问题。下面先简单介绍一下MAX153和MX7545 的工作模式,随后以它们与TMS320C30数字信号处理器的接口为例,详细介绍其接口的软硬件设计方法。
1 MAX153的工作模式
根据MODE管脚上信号的不同,MAX153有两种不同的工作模式。当MODE接地(0V)时,转换器处于RD工作模式;当MODE接高电平(+5V)时,转换器处于WR-RD工作模式。限于篇幅,下面将只介绍WR-RD工作模式。
从图1可以看出,转换器在的下降沿开始启动,当变高时,高4位的数据已转换完毕且已送到输出缓冲器,同时低4位数据开始转换,380ns后变低,表明低四位数据转换也已完成。数据的读取有两种方式,这里仅介绍最快工作模式下的数据读取方式。
图1所示的是由外部信号控制的转换时序图。在这种读取数据的模式中,号提前有效,可以获得最快的转换时间。一般在的上升沿250ns后变为低,就可以完成转换获得数据。在的下降沿变为低,之后,随着或的上升沿而变为高。
2 MX7545的工作模式
与一般的D/A转换器一样,MX7545也有电流和电压两种工作模式。其中,电流工作模式又分为单极性和双极性两种,这里只介绍单极性电流工作模式。不论是电流工作模式还是电压工作模式,MX7545的工作时序是一样的,如图2所示。其中,MX7545在一个转换周期内,片选信号有效时间tcs需要180ns,写信号的有效时间tWR需要160ns。
3 硬件接口
根据汽车防撞雷达系统的要求,在发送三角波调频信号的同时需采集雷达的回波信号。由于系统资源的限制,我们把A/D和D/A同时配置在TMS320C30的扩展总线上。TMS320C30是TI公司的通用DSP芯片,有很强的浮点/定点数据运算能力和很高的处理速度,特别适合于实时数据采集及运算处理(如FFT,FIR,IIR滤波等)。图3是该接口的硬件连接图。图中,XA[8~10]为扩展总线的地址线中的3条,经过译码器(74LS138)译码后,其输出Y1、Y2分别接到MX7545和MAX153的片选信号()端,分别作为他们的片选信号。RD/WR为TMS320C30扩展总线的读写控制信号,为扩展总线的选通脉冲,XD[0~11]为扩展总线的数据总线。A/D和D/A的读写信号由DSP的扩展总线的读写信号和选通信号来决定,它们的关系可由下式表示:
当A/D工作时,Y2寻址选中MAX153。DSP的写信号有效时,A/D转换启动;DSP的读信号有效时, A/D输出数据。当D/A工作时,Y1寻址使MX7545有效。DSP的写信号有效时,D/A转换启动。MAX153工作于最快的转换方式,口地址是804200;MX7545工作于通用的单极性电流工作模式,口地址是804100。从图中可以看出,其硬件电路是较为简单的。
4 时序的配合和程序的编制
下面将介绍D/A在通用电流工作模式下和A/D在最快工作模式下与TMS320C30 DSP接口的时序配合问题。
4.1 时序配合问题
从系统硬件电路的接法和工作时序上,可以分析“启动转换”和“读取数据”的时序关系。一个假写操作便可使A/D的/WR有效,即可启动转换。就DSP的扩展总线的信号线选通的端口而言,读写都需两个时钟周期。当DSP采用33.3MHz的时钟时,每个时钟周期H1为60ns(即主时钟的二分频)。从图1可见,启动转换时间tWR的最小需要250ns,故需要插入总线等待周期。若插入4个等待周期,此时tWR为60×5=300ns,除去高速译码器的传输延迟17ns,实际WR的脉冲宽度远大于MAX153所规定的tWR的最小脉宽250ns,因而启动A/D转换是可靠的。
由图1可知,MAX153要求的转换时间tRD须大于250ns,故这里需要加入300ns的延迟时间,此时读取A/D转换的数据也是可靠的。接着读取并转移A/D数据,然后向D/A送数据。从图2可以看出,tCS至少需要180ns,tWR至少需要160ns,故设置4个总线等待周期也是完全可以满足要求的。
4.2 汇编程序编写
由于此电路用于汽车防撞雷达信号的采集和处理系统中,故此电路应完成的功能是:在发送雷达所需的三角波的同时采集雷达的回波信号,即二者须同时完成。具体程序如下:
SECT ″INIT″
.TEXT
BR INIT
INIT LDP 0,DP ;设置页指针
LDI 1800H,ST ;禁止全局中断
LDI @STCK,SP ;设置系统堆栈指针
LDI @CTRL,AR0 ;设置寄存器首址
LDI @PRIMARY,R0 ;主总线上存储器处于0等待状态
STI R0,*+AR0(100)
LDI @SECONDARY,R0 ;扩展总线等待4个总线周期
STI R0,*+AR0(96)
LDI @DADAT,AR0 ;设置存储D/A数据的地址
LDI 0H,R0
LDI @STEP,R1 ;设置增加步长
LDI @LEH1,RC ;设置三角波上升沿的点数
RPTB LODUP ;装载要发送的D/A上升沿数据
STI R0,*AR0++(1)
LODUP ADDI R1,R0
NOP
LDI @LEH1,RC ;设置三角波下降沿的点数
RPTB LODOW ;装载要发送的D/A下降沿数据
STI R0,*AR0++(1)
LODOW SUBI R1,R0
LDI @DAPORT,AR0 ;设置D/A端口地址
LDI @ADPORT,AR1 ;设置A/D端口地址
LDI @ADDAT,AR4 ;假读一次,复位A/D
LDI 0,R4
LDI @DADAT,AR3 ;赋D/A数据地址
LDI @LEH,RC ;设置循环次数
RPTB LOOP ;块循环
STI R4,*AR1 ;假写一次,启动A/D转换
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
LDI *AR1,R3 ;读取A/D数据
STI R3,*AR4++(1) ;存储A/D数据
LDI *AR3++(1),R0 ;转移D/A数据
LOOP STI R0,*AR0 ;向D/A 送数据
BR PROSESS ;转向后续信号处理程序
.DATA
CTRL .WORD 808000H ;控制寄存器首地址
PRIMARY .WORD 00000808H ;主总线控制字
SECONDARY .WORD 00000088H ;扩展总线控制字
STCK .WORD 0809F00H ;系统堆栈指针值
DAPORT .WORD 804100H ;D/A口地址
ADPORT .WORD 804200H ;A/D口地址
DADAT .WORD 10000H ;存放D/A数据的首地址
ADDAT .WORD 11000H ;存放A/D数据的首地址
LEH .WORD 0682H ;块循环长度控制字
STEP .WORD 02H ;步长控制字
.END
根据程序,可以得到系统的时序,如图4所示。
根据以上硬件和软件的设计,由时序图可以得到:
AD启动转换时间:60×5=300ns
等待A/D转换时间:60×5=300ns
读取A/D数据时间:60×5=300ns
存储A/D数据和转移D/A数据时间:60×7=420ns
发送D/A数据时间:60×5=300ns
发送D/A数据时间到启动A/D下一个转换所需时间:60ns
所以,总的转换时间是:
Ts=300+300+300+420+300+60=1680ns
故其转化频率为:
Fs=1/Ts=1/1.68μs=595.2kHz
程序设计中需注意的问题有:
(1)在启动A/D转换前,应先假读一次,使A/D复位,以避免不可靠的操作。
(2)TMS320C30的扩展总线应设置4个等待周期,以保证A/D和D/A与DSP 收发数据时序的配合。
(3)无论A/D还是D/A与DSP或MCU的接口电路的设计,最重要的是保证它们的时序正确。特别是当它们同时与DSP连接时,更应该从软件方面仔细考虑它们的时序配合问题。
MAX153和MX7545不仅功能较强,而且能方便地与一般的微处理器接口,但在与DSP接口时要考虑一些特殊的问题。鉴于详细介绍DSP同时与A/D和D/A转换器接口方面的文章较少,故我们选择其一接口方式加以介绍,对于其它模式的应用也可以参考本文介绍的方法。我们已将该设计成功地应用于基于DSP的汽车防撞雷达信号的处理系统中。