随着工业技术进步,对数字控制伺服系统中执行效率和集成化程度的要求越来越高。比如用单处理器控制多个伺服系统时,对多通道A/D转换的效率要求较高。以往较多地使用多路模拟开关与单通道A/D转换器来实现,效率较低,使用模拟开关带来的噪声也比较严重。在此,选用串行多通道A/D转换器AD7890与TMS320F2812处理器的SPI接口组成A/D转换模块,非常适合应用于多轴伺服系统。AD7890是一款8通道12位串行A/D转换器,具有高转换效率(转换时间仅为5.9μs)、高速灵活的串行接口、多通道等优点。其中,AD7890-10输入电压范围为-10~+10 V。TMS320F2812处理器上集成了多种先进的外设,为实现电机及其他运动控制领域的应用提供了良好的平台,它所提供的SPI接口通常用于DSP处理器和外部设备及其他处理器之间的通信。SPI分主、从两种工作方式,数据长度可编程(1~16 b),并能同时进行接收和发送操作,通常用于DSP处理器和外部外设以及其他处理器之间的通信,这使它能很方便地与AD7890采用主/从模式进行通信。

1 AD7890工作模式和原理

AD7890的SMODE引脚是工作模式控制输入端,它决定了器件是工作于外部时钟模式(作为从设备),还是内部时钟模式(作为主设备)。当SMODE置于高电平时,器件工作在外部时钟模式,由主设备提供时钟信号SCLK和接收帧同步信号RFS,AD7890可接收的最大串行时钟频率达10 MHz;当SMODE置于低电平时,器件工作在内部时钟模式,自身提供时钟信号SCLK和接收帧同步信号RFS,其时钟频率由CLK引脚输入时钟频率决定。本文以DSP作为主控制器,AD7890作为从设备,由DSP的SPI口提供串行时钟。

AD7890通过片内高速双向串行数据接口接收控制字和输出转换结果。通过向控制寄存器写数据可以确定转换通道、转换开始信号等信息。其控制寄存器包含5位数据,因此至少需要6个SCLK脉冲才能完成对寄存器的写操作。其中,A2,A1,A0分别为通道地址选择最高位、次高位、最低位。通道选择算法为:通道号=4A2+2A1+A2+1。发送数据的第5个SCLK脉冲下降沿过后的数据均为无效数据。控制字写入寄存器后,器件即启动内部延时脉冲,保证在转换开始前跟踪/保持器有足够的时间来完成转换通道的建立和切换。该延时脉冲宽度取决于引脚电容的CEXT值。一般引脚电容值取CEXT、120 pF或200 pF。据测试,此时延时脉冲宽度分别约为7.Oμs和9.6μs。向控制寄存器写数据时CEXT,引脚电平由低变高,电容在第6个时钟脉冲的下降沿开始放电,电压降低至2.5 V以下时内部延时脉冲结束,同时A/D转换开始,5.9μs后转换结束。若此时串行读操作已完成,且RFS已变高为高电平,则用新的转换结果更新输出寄存器。至此,一次A/D转换结束。图1为AD7890工作原理图,从示波器获取的图片显示了CEXT引脚电平、SCLK脉冲与A/D转换过程时间的关系。

多通道模/数转换器AD7890与DSP的接口设计
2 AD7890工作时序与读写操作方法

控制AD7890的转换开始有两种方法。一是,硬件控制,即将CONVST引脚置低,器件产生一个窄低电平脉冲,在脉冲的上升沿A/D转换开始,前提是须向CONV位写0;二是,软件控制,即向控制寄存器的cONV位写1,此时CONVST引脚不起作用。二者区别在于,采用硬件控制转换开始时,在CONVS丽上升沿启动转换,此时必须保证内部延时脉冲已经结束;对于软件控制,内部延时脉冲结束时转换立即开始。需要说明的是,在向控制寄存器写数据时,6个写操作时钟脉冲结束前,发送帧同步信号TFS必须保持低电平,否则写操作不能成功。而读取A/D转换结果期间,接收帧同步信号RFS必须保持低电平。RFS和TFS连在一起,使SPI口的读、写操作同时进行。以DSP作为主设备,AD7890作为从设备,即工作在外部时钟模式下,此时读、写操作时序分别如图2所示。DSP的SPISTE丽引脚具有从设备片选功能,该引脚为低时可向从设备发送数据,文中将该引脚作为通用收、发帧同步信号来控制RFS和TFS。

多通道模/数转换器AD7890与DSP的接口设计
3 AD7890与TMS320F2812的SPI接口硬件实现

TMS320F2812是TI公司推出的数字信号处理器,它在电机控制方面性能优越,使其在工业控制中得到了非常广泛的应用。它所提供的串行外设接口(SPI)是一个高速同步的串行输入/输出口,包含4个外部引脚:从输出/主输入引脚(SPISOMI)、从输入/主输出引脚(SPISIMO)、从发送使能引脚(SPISTE)、串行时钟引脚(SPICLK)。SPI主要特点是可以同时发送和接收串行数据;可以当作主机或从机工作;提供频率可编程时钟;发送结束中断标志。

确定DSP的低速外设时钟LSPCLK后,通过波特率控制寄存器SPIBRR,确定波特率SCLK。波特率具体计算方法是:当SPIBRR=3~127时,SCLK=LSPCLK/(SPIBRR+1);当SPIBRR=0,1,2时,SCLK=LSPCLK/4,因此共具有125种可编程波特率。文中,DSP的工作频率为120 MHz,低速时钟LSPCLK为30 MHz,故可编程波特率范围为234.375 kb/s~7.5 Mb/s。通过提高系统低速时钟,可以提高可编程波特率范围;通过选较高的波特率,能提高数据传输速率,即提高A/D的转换效率。AD7890-10与TMS320一F2812的SPI接口硬件连接框图如图3所示。

多通道模/数转换器AD7890与DSP的接口设计