关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > 基于 TMS320F2812 的数据采集及处理系统

基于 TMS320F2812 的数据采集及处理系统

——
作者:烟台大学 光电信息学院 李同彩 陈计信 时间:2007-01-26来源:《世界电子元器件》收藏

前言

数据采集及处理系统在众多领域均有广泛的应用,其主要功能是把外界模拟信号的电压参量经过a/d转换器,转换成数字量,并把转换结果存储以便分析处理。

本文引用地址:http://www.eepw.com.cn/article/21050.htm

本系统采用ti 的dsp 芯片tms320f2812 作为信号采集和处理的核心,通过片上自带的12位adc进行采集。采集后的数据暂时存储在片内存储器中,通过串行异步通信接口sci 传输到微机,微机将以文件形式存储采样数据。数字处理部分主要是进行简单的窄带滤波。考虑到采样器件可能和微机有较远距离(但< 1200m),在sci和微机间采用了rs-422传输协议。


tms320f2812介绍

目前应用最多的是德州仪器公司的tms320系列和摩托罗拉公司的dsp56000和dsp96000系列。tms320f28系列芯片是ti最新推出的dsp芯片,特别适用于有大批量数据处理的测控场合,如数据采集,工业自动化控制,电力电子技术应用,智能化仪器仪表及电机,马达伺服控制系统等。其主要特点有:

采用高性能的静态cmos技术,能在一个周期内完成32*32位的乘法累加运算,或者两个16*16位的乘法累加运算;时钟频率最高可达150mhz即6.67ns的指令周期,外部采用低频时钟、通过片内锁相环倍频,低功耗设计,flash 编程电压为3.3伏特。

16通道的12位模数转换器(adc)含两路采样保持器,一个转换单元,可实现双通道同步采样,最小转换时间为80ns.片上含两个事件管理单元(eva,evb),设计用于pwm输出,转速测量、脉宽测量等。通讯接口,含2 个通用异步串口(sci);2个通用同步串口(spi),1个can总线接口(ecan),2个mcbsp串口(mcbsp),56个独立配置的通用多功能i/o(gpio)。

tms320f2812应用的大量外设接口简化了电路设计。同时,它提供了足够的处理能力,使一些复杂实时控制算法的应用成为可能。


片内外设adc

tms320f2812 的adc模块是一个12位分辨率的,具有流水线结构的模数转换器,(流水线adc也称作分级型adc)是这三种结构(现代模数转换器(adc)设计最常用的结构分为逐次逼近(sar)型adc、 - adc和流水线adc三种)中能超过100 msps最高采样速率(但精度最低)的adc,这种流水线结构的adc分辨率通常最高仅能达到14 bit。tms320f2812内置双采样保持电路,保持数据采集时窗口有独立的预定标控制。并且允许系统对同一通道转换多次,允许用户执行过采样算法,这较传统的单一转换结果增加了更多的解决方案,有利于提高采样的精度。有多个触发源可以启动adc 转换。快速的转换时间, adc 时钟可以配置为25mhz,最高采样带宽为12.5msps。用tms320f2812 搭建数据采集系统时,不必外接adc,避免了复杂的硬件设计。由于此adc可以直接对0-3v电压范围采样,也可以经过信号调理后对峰峰值不超过3v的双极性模拟信号进行采样。先把被测信号用示波器或其他方法判断其极性和幅值范围。若为单极性信号则断开偏置电路,双极性时连接到电路上调节电压范围到0-3v。为测试片上adc的线性,实验中主要是对几个电平信号进行采样,把adc 采集的结果在程序中计算其对应的模拟量,并且同时用数字万用表测量,计算adc 的线性和精度。实验数据如表1所示。

由上表所得adc的线性曲线如图1所示:

采集0-3v的信号时(d 为采集的数字量 adclo)计算公式为:
v=3(d-adclo)/(2power12-1)

采集峰峰值3v的双极性信号时,需要连接偏置电路。首先不加入信号直接测出偏置电压的数字量为dv,则实际的信号与采集的数字量的关系为:
v=3(d-dv)/(2power12-1)


数字信号处理

数字信号处理之所以发展得这样快,应用得这么广,是与它的突出优点分不开的。归纳起来,有以下四个方面的优点:

(1)精度高。模拟系统的精度主要取决于元器件的精度,一般模拟器件的精度达到10-3,己很不容易。而数字系统的精度主要取决于字长,16位的字长可达10-4以上。

(2)灵活性大。模拟信号装置一旦参数选定就不易改变,但是数字系统则不然,它的系数可调,甚至还可以具有可编程和自适应的能力。

(3)可靠性高。由于数字系统只有“0” 、“1”两个电平,其受温度、环境以及噪声等的影响比模拟系统小。

(4)时分复用。利用一套装置同时处理几个通道的信号。


与pc的通信

串行通信接口sci是采用双向通信的的异步串行通信接口,即通常所说的uart口。为减少串口通信时的cpu开销,tms320f2812的串口支持16级接收和发送fifo。sci模块采用标准非归0 数据格式,可以与cpu或其他通信数据格式兼容的异步外设进行数字通信。当不使用fifo时,sci接收器和发送器采用双级缓冲传送数据,sci接收器和发送器有自己独立的使能和中断位,可以在半双工通信中进行独立的操作,或者在全双工模式下同时操作。为了确保数据的完整性,sci模块对接收到的数据进行中断检测、极性、超限和祯错误检测。通过对16位的波特率控制寄存器进行编程,可配置不同的sci通信速率。tms320f2812支持自动波特率检测逻辑。发送和接收可采用中断和查询两种方式。

由于tms320f2812片内存储空间相对较小,难以做到长时间连续采集。本系统将采集的结果暂时存储在dsp 的片内数据区,再用微机的串口rs-232 实现与dsp 的电平匹配,同时实现全双工通信。为增大传输距离,在这中间又加两片max3490(两片max3490 之间电压很高,可以传输相当长的距离)。实验所需的电路原理如图2所示:

软件部分

dsp 的编程工具有c 语言和汇编语言两种。一般实时性要求不是特别高的场合,采用c语言编程完全可以满足要求。对于高速实时应用,采用c语言和汇编语言混合编程的方法,能把c语言的优点和汇编语言的高效率有机结合起来。本文涉及的关键程序和相应的流程图如下:

eallow;
sysctrlregs.hispcp.all=03;
edis;
adcregs.adctrl3.bit.adcbgrfdn = 0x3;
adcregs.adctrl3.bit.adcpwdn = 1;
// initadc();
//采样窗口大小设置寄存器
adcregs.adctrl1.bit.acq_ps=0xf;
//内核时钟分频器
adcregs.adctrl3.bit.adcclkps=0x1;
//级联排序器工作方式
adcregs.adctrl1.bit.seq_casc=1;
adcregs.adcmaxconv.all=0x0001;
adcregs.adcchselseq1.all=0x0011;
adcregs.adctrl1.bit.cont_run=1;
//初始化串行通信模块sci寄存器
eallow;
gpiomuxregs.gpfmux.all=0xffff;
gpiomuxregs.gpgmux.all=0xffff;
edis;
sra.sciccr.all=0x0007;
srb.sciccr.all=0x0007;
sra.scictl1.all=0x0003;
srb.scictl1.all=0x0003;
sra.scictl2.bit .rxbkintena=1;
srb.scictl2.bit .txintena=1;
窄带滤波:
for(k=0;k<=l-1;k++)
{
wf=(2*pi*k)/l;
re=0.0;
im=0.0;
for(i=0;i {
re=re+h[i]*cos((float)i*wf);
im=im+h[i]*sin((float)i*wf);
}
d[k]=sqrt(pow(re,2)+pow(im,2)); /*求模(幅度)*/
//db[k]=20.0*log10(d); /*转换为对数表示形式*/
实际采集到的一个波形为:

结束语

本文论述了以32 位定点芯片tms320f2812 为核心的数据采集系统,充分利用它的片内外设adc,sci。利用其快速的转换时间,实时地把采集的数据传输到微机上。12 位的高速adc 保证了采样的快速准确和同步,初步实现了数据的采集和存储。数据采样率可以通过程序实时根据输入信号的频率进行改变。


分频器相关文章:分频器原理
锁相环相关文章:锁相环原理


关键词:

评论


相关推荐

技术专区

关闭