摘要:介绍了基于TMS320C6711和AD7846的高精度控制系统。首先从器件特性着手,分别介绍TMS320C6711和AD7846各自的特点和工作原理;然后给出它们之间的接口方式和系统硬件电路、软件设计的实现。
关键词:AD7846,DSP,EMIF,D/A转换
1.引言
随着电子技术的发展和新型微处理器尤其是工业控制单片机和数字信号处理器的出现,利用数字信号实现的控制单元不仅可以获得高精度和高可靠性,而且能够提供简单、灵活、方便的操作控制。
数字信号处理器(DSP)是采用数字计算的方法对信号进行处理的专用芯片,具有精确高、可靠性好、处理速度快、易于大规模集成等优点。近年来,它的应用范围遍及了整个信息技术领域,在通用数字信号处理、语音识别与处理、医学工程、工业控制等方面占据了绝大多数市场份额[1]。
数模转换装置作为数字控制系统中不可或缺的一部分,它将数字信号转换为模拟量——电压信号、电流信号,去控制伺服电机等外围设备。设计中我们采用了AD7846作为数模转换器。AD7846将DSP计算的结果转化为模拟量发送给伺服电机,控制其对目标器件产生一个角位移,角位移结束后便产生一个反馈信号给DSP,通知其可以发下一个控制信号了。以TI公司的TMS320C6711为例,本文对基于DSP EMIF异步工作方式的外设控制的软硬件实现方法进行了研究。
2.DSP EMIF 的特点及工作原理
2.1 TMS320C6711及其EMIF接口
TMS320C6711是TI公司推出的新一代高性能32位浮点型数字信号处理器,主频可达150 MHz,核心电压1.8V,900MFLOPS,2级cache。TMS320C6711片内提供多种集成外设,包括外部存储器接口(EMIF)、多通道缓冲串口(McBSP)、主机口(HPI)等。
DSP访问片外存储器时必须通过外部存储器接口(EMIF),TMS320C6711的EMIF具有很强接口能力,不仅具有很高的数据数据吞吐率(最高可达1200MB/s),而且可以与目前几乎所有类型的存储器直接接口。包括SDRAM、SRAM、ROM、FIFO、SBSRAM等。
C6711的EMIF可以访问8/16/32bit宽度的存储器,而它片内数据的存取是按32bit进行的,访问片外8/16bit数据时,EMIF会自动完成数据打包和解包处理。
2.2 EMIF的控制寄存器
EMIF接口由一组存储器映射的寄存器进行控制和维护,包括配置各个空间的存储器类型和设置读写时序等。GBLCTL(Global Control Register)完成对整个片外存储空间的公共参数的设置,CExCTL(CE Space Control Registers)分别控制相应存储空间的存储器类型和接口时序。寄存器各位的定义如图1示。
图1(a) GBLCTL寄存器
图1(b) CExCTL寄存器
2.3 EMIF的异步接口工作原理
EMIF异步接口提供4个控制信号/AOE(输出允许)、/AWE(写允许)、/ARE(读允许)、ARDY(Ready信号,插入等待),这4个控制信号可以通过不同的组合(并非都需要)实现与不同速度、不同类型异步器件的无缝接口。EMIF的CExCTL寄存器负责设置异步读/写操作的接口时序,可以满足对不同速度的异步器件的存取。
C6711异步接口时序的可编程性高,每个读/写周期由三个阶段构成:建立时间(Setup)、触发时间(Strobe)、保持时间(Hold)。各自的定义为:
建立时间:从存储器访问周期开始(片选、地址有效)到读/写选通有效之前。
触发时间:读/写选通信号从有效到无效。
保持时间:从读/写选通信号无效到该访问周期结束。
读/写操作可以在CExCTL寄存器中独立设置上述3个阶段的时间(单位是EMIF输出时钟的周期)。建立时间和触发时间可设置的最小值是l,用户设置为0将当作1看待。保持时间可以设置为0。读取最后一个数据后,/CEn信号在保持时间后立即变高;写完最后一个数据后,/CEn信号在保持时间后立即变高。如果保持时间设置为0,/CEn信号将保持4个时钟周期。除此以外,C6711在异步接口上还提供了ARDY信号,利用它可以在触发阶段插入额外的等待时间,使异步接口功能更为完善[2]。
3.AD7846的特点及工作原理
3.1 AD7846的特点
AD7846是美国模拟器件公司生产的一款16bit高速、自带锁存器的D/A转换器。单极性输出0~5V,0~10V;双极性输出±5V,±10V。±2LSBs的积分线性误差。工作温度在-40~+85℃,相对精度为±8LSB,即:±8×(1/216)=1/8192,非常适合高精度系统的DA转换。除此之外,AD7846还提供全面的微处理器接口。包括16位数据线,4根控制信号线(/CS,R/ ,/LDAC,/CLR)。R/ 和/CS允许从I/O锁存器中读写数据;/LDAC使得多个DAC组成的系统中的转换数据同时更新;而/CLR对DAC中的寄存器进行复位,根据R/ 的状态不同,可以复位到00……000和10……000。这就意味着不论在单极性或双极性输出时,DAC都能复位到模拟输出为0V的状态。使DAC复位到0V,在单级性输出状态下,须将/LDAC和R/ 都置为低电平;在双极性输出状态下,须将/LDAC置低而R/ 置高。AD7846的结构如图2示。

图2 AD7846结构图
3.2 AD7846的工作原理
AD7846带有两个锁存器:I/O锁存器和DAC锁存器。它们分别由/CS,R/ ,/LDAC,/CLR四个信号来控制。I/O锁存器与数据总线相连,数据首先在/CS,R/ 的变低后进入I/O锁存器,I/O锁存器里的内容可以被读出(在系统诊断和刻度标定的时候会用到)。而后数据在/LDAC下降沿从I/O锁存器进入DAC锁存器,开始数模转换。通过数模转换,等值的模拟信号就会从DAC输出[3]。AD7846的时序逻辑如图3示。

图3 AD7846的时序逻辑
4.硬件电路的设计
设计中,要求AD7846按双极性±5V输出,故其分辨率为:1LSB=5V/215=5V/32768=305uV。并且要求可以连续输出,将/LDAC信号固接为低电平,使AD7846可以连续转换;将/CLR信号固接为高电平,不对DAC锁存器复位;将/CS信号连接到地址译码器的引脚,DSP给出某一特定的/CEn和EA的组合就可以选通AD7846;将R/ 信号连接到EMIF的/AWE引脚,作为读写控制信号。硬件接口电路如图4示。

图4 AD7846和DSP的硬件接口电路
当系统工作时,DSP设置R/ 信号为低,表示往AD7846中写数据。同时,通过地址译码器的/CSn引脚选通AD7846,此时EMIF通过数据总线将数据写入AD7846的I/O锁存器,由于/LDAC固接为低电平,AD7846立即将I/O锁存器中的数据送入DAC锁存器中进行数据转换并输出。由于被控伺服电机的需要,将AD7846输出的单端信号转换为差分信号并适当放大。选用AD8139来完成这一功能。
由于AD7846需要高精度的参考电压,所以我们选用了AD586芯片为其提供参考电压。根据器件输出的需要,将AD7846的VREF+接AD586输出的+5V,VREF-和RIN接地,使AD7846的输出范围达到±5V。
如果将AD7846的数据引脚直接与DSP相连,即使在器件没有选通的情况下,数据引脚上的高频电平变化也会影响到器件的封装电容,从而在AD7846的输出端引起噪声。为了最小化噪声影响,我们在AD7846和DSP的数据通道间加了一个16bit的锁存器SN74ACT16373,进行隔离。SN74ACT16373有4路控制信号:OE1,OE2,1C,2C。输出使能信号OE1和OE2用于控制锁存器的输出状态:当OE1、OE2=0时,输出端为正常工作态;当OE1、OE2=1时,输出端处于高阻态。锁存使能信号1C和2C用于控制锁存器的工作模式:当1C、2C=1时,输出端跟随输入端的变化;当1C、2C=0时,锁存器锁存输入端的信息,并保持输出端信号不变。设计中,1C、2C固接为高电平,OE1、OE2信号与AD7846的/CS信号相连,使两器件同时被选通。
5.软件设计
DSP在向DAC发数据之前先要检查被控对象前一步的动作是否完成。如果完成,DSP就将下一个数据放到总线上,选通AD7846,即可执行下一次模数转换;如果未完成,则等待并不断检测被控对象的反馈信号。软件流程如图5示。

图5 软件流程图
部分主要的程序段如下:
……
*(unsigned volatile int *)EMIF_GCR = 0x3300; /*设置EMIF GBLCTL寄存器*/
*(unsigned volatile int *)EMIF_CE3 = 0xffffff13;
/*设置EMIF CE3CTL寄存器:16位异步传输,读/写的建立、触发、保持时间都置为最大值*/
……
char temp;
temp = functionA(……);
while ( temp = = 0x00)
{ temp = functionA(……);
}
/*调用functionA函数,其功能是判断被控对象的动作是否完成。若动作完成,被控对象便会返回一个信号,使temp的值不再为0,跳出循环;否则一直等待*/
*(unsigned volatile short *)Addr_Setting = value;
/*上一动作完成后,便可向发送数据寄存器的地址空间ADDR_setting发下一组数据value*/
……
6.结束语
详细介绍了由TI公司DSP和Analog Devices公司AD7846为基础组成的高精度控制系统。采用本文所提出的方案设计的控制系统很好地控制了伺服电机输出所需的高精度转角,同时,本设计方法对于高精度控制系统的设计具有普遍的参考意义。
参考文献
1. 杨延西、任海鹏、刘丁.交流伺服系统中DSP与上位机的通讯实现.电器传动,2000,6
2. 李方慧、王飞、何佩琨.TMS320C6000系列DSPs原理与应用.北京:电子工业出版社,2003,1
3. Analog Devices.LC2MOS 16-Bit Voltage Output DAC AD7846.




