DIY编程器网

标题: TMS320F2812与AD73360在数据采集中的应用 [打印本页]

作者: liyf    时间: 2012-1-27 13:59
标题: TMS320F2812与AD73360在数据采集中的应用

                      摘要:提出采样系统的硬件采用AD73360型AD转换器采集测量多路电压和电流信号;使用TMS320F2812 DSP芯片实现高速同步采样及电力参数在时域的计算;给出了AD73360和TMS320F2812的硬件接口电路。采样系统软件使用IQmath Library以实现浮点运算与定点程序代码的无缝接口.简化了程序开发,采用C语言编程.给出了主程序、多通道缓冲串行接口(McBSP)初始化过程等的流程图。论述了采样接收中断、电力参数的时域计算、时域采样数据处理等技术。通过测试验证了设计方案的适用性和正确性。
0 引言
  电力系统中经常需要测量多路电压及电流信号。当电网频率变化时。必须采用同步技术才能保证采样计算的精度。本文采用AD公司的AD73360(简称73360)型AD转换器及TI公司推出的2000系列DSP TMS320F2812(简称F2812)很好地实现了高速同步采样。并且实现了电力参数在时域的计算。73360使用6线工业标准同步串行接口与CPU接口。F2812支持6线工业标准同步串行接13,所以73360与DSP经过极其简洁的连接后即可实现高速同步交流采样。另外。由于单片73360具有6个同时采样的模拟量输入通道。所以特别适合于三相制电力运行参数测控类应用系统。
?  多通道数据采集系统一般是在一块印刷电路板上集成了模拟多路开关、程控放大器、采样/保持器、A/D和D/A转换器等器件,其原理框图如图1所示[1]。这类系统虽然可以采集多路模拟信号,但其实只有一路A/D转换器,为了能够采集多路模拟信号,只能利用模拟多路开关在多路模拟信号之间进行切换。这样做的好处是可以减少硬件成本和缩小板卡的尺寸,但是当多个模拟信号巡回采样时,各路信号之间必然存在采样的时差。
?



1.1 A/D转换器AD73360

???   73360是6通道模拟输入的16位串行可编程A/D转换器。由于采用Σ-△A/D转换原理,具有良好的内置抗混叠性能。所以对模拟前端滤波器的要求不高。用一阶RC低通滤波器就能满足要求。73360能保证6路模拟信号同时采样。在变换过程巾延迟很小。并且无需CPU干预,从而有效地减少了由于采样时间不同而产生的相位误差。每个通道可以允许从直流到4 kHz的模拟信号通过。且能提供77 dB的信噪比。由于其采样率和输入信号增益都是可编程的。当输入时钟频率为16.384 MHz时。采样频率可分别设置为64 kHz、32 kHz、16 kHz和8 kHz;增益可在O~38dB之间选择。因而它既适合于大信号的应用。也适合于小信号的应用。73360还可以多片级联使用,从而扩充模拟输入的通道数。最多可级联8片即48个通道。


1.1.1 AD73360同步串行通信接口SPORT概述

  AD73360同步串行通信接口SPORT包含6条信号线,分别是串行数据输出端SDO、数据输出帧同步端SDOFS、串行数据输入端SDI、数据输入帧同步端SDIFS、同步时钟SCLK和串行接口使能端SE。该接口有三种工作方式:编程、数据以及混合方式。AD73360以“时分多址”的模式输入和输出数据。其特点是每一个通道的输出数据占用固定的时间片,即使该通道被关闭,该时间片也不会被其他通道占用,此时数据输出端SDO处于三态。图3显示了六个通道全部打开时数据输出端SDO和数据输出帧同步端SDOFS的时间波形,图4则显示了通道1、3、5打开时的输出时间波形。AD73360每次上电或复位以后,自动进入编程状态,每一个采样周期输出一个数据输出帧同步信号SDOFS,如图5所示。这样DSP可利用此帧同步脉冲给AD73360写入控制字。图6为各管脚的信号时序图[2]。




1.1.2 AD73360控制寄存器

  AD73360有8个控制寄存器,每个都是8位,如表1所示。其中前两个控制寄存器CRA和CRB用来配置同步串行接口SPORT,可以设置数据率、主时钟速率以及级联芯片数目等参数。如果多个AD73360级联,则其CRA和CRB的设置必须完全一致。其余6个寄存器用来控制各个通道的A/D转换器。
?


:该位为高时,表明这是一个有效控制字。
  (2)



  由于单片AD73360具有六个同时采样的模拟量输入通道,所以特别适合于三相制电力运行参数测控(三个相电压和三个相电流同时采样)以及电机控制等应用系统。

1.2 数字信号处理器TMS320F2812的多通道缓冲串口McBSP

  TMS320F2812的McBSP主要特点是:多通道缓冲串行12J(McBSP)是一种同步串行接口。支持多种通信方式和串行外围接口SPI(Serial Peripheral Interface)方式,可以比较灵活地进行配置。使用方便。尤其可贵的是用2个16级、32位的先人先出FIFO(First InFirst Out)代替直接存储器存储DMA(Direct MenloryAccess)方式;全双工通信方式:二级缓冲传送与三级缓冲接收。适用于连续的数据流。接收和发送采用独立的时钟和帧同步。多通道模块允许:可采用外部时钟信号和帧同步信号或都南内部的采样率产生器产生:数据位的大小可以选择8、12、16、20、24、32位。  TMS320F2812的McBSP有6条信号线。其中3条用于发送数据,分别是发送数据端MDXA、发送帧同步端MFSXA和发送时钟MCLKXA。另外3条用于接收数据,分别是接收数据端MDRA、接收帧同步端MFSRA和接收时钟MCLKRA。

  McBSP能与多种串行接口器件直接通信,工作方式灵活,但同时也造成端口配置复杂。McBSP具有38个寄存器,由此可见其复杂程度。这些寄存器可分成四大类:数据寄存器、控制寄存器、多通道寄存器和FIFO寄存器。要使McBSP正确工作,必须配置好这些寄存器,这就需要对McBSP的工作机制有深刻的理解。表3列出了部分寄存器,大部分属于数据寄存器和控制寄存器,是在非FIFO和非多通道方式下需要用到的寄存器[4]。值得注意的是,PCR和MFFINT虽然分别属于多通道和FIFO寄存器,但是在非FIFO和非多通道方式下依然要用到。



2.1.2 DSP的McBSP配置

  McBSP的配置应以AD73360的时序图为依据。分析图3~图6,可以得出McBSP的一些重要参数如下:
  (1) 发送帧同步MFSXA为高电平有效,FSXP=0。
  (2) 接收帧同步MFSRA为高电平有效,FSRP=0。
  (3) 帧同步均为输入,FSRM= 0,FSXM=0。
  (4) 发送时钟MCLKXA和接收时钟MCLKRA均为输入,CLKXM=0,CLKRM=0。
  (5) 数据输出在发送时钟的上升沿,CLKXP=0。
  (6) 数据接收采样在接收时钟的下降沿,CLKRP=0。
  (7) 单相帧,RPHASE=0,XPHASE=0。
  (8) 每帧一个字,RFRLEN1=00b,XFRLEN1=00b。
  (9) 每个字16位,RWDLEN1=010b,XWDLEN1=010b。
  (10)数据延迟为1位,RDATDLY=01b,XDATDLY=01b。
  确定了以上各个参数的值,才可以在程序中正确配置McBSP的各个寄存器。

2.1.3 DSP程序设计

  DSP程序采用C语言编写,在TI公司的集成开发环境CCS2.0下调试通过。程序流程如图8所示,主要包括DSP端口(GPIO和McBSP)初始化、AD73360初始化(复位和输出控制命令)、等待接收A/D转换数据等步骤。




  AD7336初始化完成后,就自动采样并输出采样数据。为了提高DSP程序的效率,应采用中断方式接收测量数据。TMS320F2812的中断系统通过外设中断扩展PIE(Peripheral Interrupt ExpansiON)模块来控制。PIE可以支持96个独立中断,并分成12组,每组8个中断。通过切换开关,可以使每组中断对应一个CPU内核中断线,12组共需12根CPU内核中断线(INT1~INT12)。McBSP的接收中断MRINT位于第6组的第5位,中断初始化程序不再赘述。

2.2 两片AD73360级联与TMS320F2812的接口设计

  如果想要增加模拟通道的数目,可以将多片AD73360级联起来。如图10所示,两片AD73360级联起来可以获得12个模拟通道。AD73360片1的SDI接DSP的MDXA,SDO、SDOFS分别接片2的SDI、SDIFS。AD73360片2的SDO接DSP的MDRA、SDOFS则接片1的SDIFS和DSP的MFSXA、MFSRA。数据的流程可以归纳为:(1)流出DSP方向:DSP→AD73360片1→AD73360片2;(2)流入DSP方向:AD73360片1→AD73360片2→DSP。




  DSP程序的设计中,初始化GPIO和McBSP部分均与上文单片AD的情况比较类似,但是初始化AD73360部分不尽相同,如图12所示。



  两片AD级联时程序设计的关键在于控制字的输出必须交替进行,即先输出AD73360片2的一个控制字,再输出片1的一个控制字,顺序不可颠倒,直到所有的控制字发送完。根据DSP输出数据的流程,其发出的控制字先到片1。片1接到片2的控制字时,验证该控制字的芯片地址位不为0,将该地址位减1,在下一个帧同步信号到来时发给片2,而此时片1也接收到了自己的控制字。CRB和CRA控制AD芯片的工作模式和启动,必须配置成一样,并且同时到达各自的AD芯片。若不同时到达,则片1和片2不能同时启动工作,接口设计失败。

  为了保证设计成功,充分利用DSP的McBSP具有双缓冲的特点,提前将两个控制字写入DXR中,保证在任意时刻McBSP都至少有一个等待发送的数据,避免帧同步信号到来时McBSP没有有效数据发送。这样两片AD可在相同时刻接到相应的控制字,并同时启动。这在多片AD73360级联工作时至关重要。

  由于提前写入了两个控制字,所以最后要单独读一次数据,使最后一个控制字发送出去。至于程序其余部分与单片AD73360接口设计类似,不再叙述。两片AD73360级联与DSP的接口设计可以扩展成多片AD73360级联的设计。

  系统设计中需要注意的问题是模拟信号与数字信号的隔离。本文采用两项措施实现隔离:(1)DSP和AD73360分别用不同的隔离电源供电;(2)DSP与AD73360之间的接口线路用光耦隔离。这样可以取得比较好的隔离效果。

  利用AD73360和TMS320F2812设计了多通道数据采集系统,实现了模拟通道的同步采样,解决了多通道采样的时差问题,满足了系统的要求。本文设计的数据采集系统应用于三相制电力运行参数测控系统,实验证明系统是完全可行的。


?
            




欢迎光临 DIY编程器网 (http://diybcq.com/) Powered by Discuz! X3.2