基于TMS320C2812小信号采集.docx

上传人:b****6 文档编号:16263757 上传时间:2023-07-12 格式:DOCX 页数:13 大小:192.50KB
下载 相关 举报
基于TMS320C2812小信号采集.docx_第1页
第1页 / 共13页
基于TMS320C2812小信号采集.docx_第2页
第2页 / 共13页
基于TMS320C2812小信号采集.docx_第3页
第3页 / 共13页
基于TMS320C2812小信号采集.docx_第4页
第4页 / 共13页
基于TMS320C2812小信号采集.docx_第5页
第5页 / 共13页
基于TMS320C2812小信号采集.docx_第6页
第6页 / 共13页
基于TMS320C2812小信号采集.docx_第7页
第7页 / 共13页
基于TMS320C2812小信号采集.docx_第8页
第8页 / 共13页
基于TMS320C2812小信号采集.docx_第9页
第9页 / 共13页
基于TMS320C2812小信号采集.docx_第10页
第10页 / 共13页
基于TMS320C2812小信号采集.docx_第11页
第11页 / 共13页
基于TMS320C2812小信号采集.docx_第12页
第12页 / 共13页
基于TMS320C2812小信号采集.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于TMS320C2812小信号采集.docx

《基于TMS320C2812小信号采集.docx》由会员分享,可在线阅读,更多相关《基于TMS320C2812小信号采集.docx(13页珍藏版)》请在冰点文库上搜索。

基于TMS320C2812小信号采集.docx

基于TMS320C2812小信号采集

 

基于TMS320F2812的小信号采集

 

姓名:

尤修民

学号:

1302076

方向:

载运工具运用工程

在工业控制及各类科学实验中,常常需要采集测试现场的各种物理量如:

温度、压力、位移、速度、加速度等信号并及时进行分析处理,以便进一步实施控制,常用的工业信号标准电流是4-20ma信号,为此本文设计基于tms320f2812的4-20ma信号采集电路,准确度高,信号处理快。

TI公司的TMS320系列的C2000芯片是专为工业自动化和传感、测量、控制而设计的,可以实现信号的快速采样和处理。

一、系统的硬件组成和工作原理

本系统采用TMS320F2812DSP芯片内置12bitA/D转换器,其前端2个独立的8选1多路切换器和双采样/保持器,构成16个模拟输入通道。

通道在数量上能够满足系统传感器个数要求,且留有余地;传感器信号刷新频率较低,最大不超过10kHz,F2812内置ADC在25MHz的ADC时钟下采样频率可达12.5MSPS,显然能满足要求;12bitADC在3V满输入范围下,具有0.7326mV(3V/4095)极限分辨率,考虑到在上述调理电路中,3VADC前端采用5倍增益的仪表放大器,它将电路的系统分辨率从0.7326mV提高到0.1465mV,足以满足系统测量分辨率的要求。

与此同时,该电路将满刻度范围降低至600mV(3V/5)。

1.1电流电压转换电路

4mA~20mA电流传感器的信号是单端的,这一开始就提出了需要一只简单的分流电阻器以便把电流转换成电压加到ADC的高阻抗模拟输入端。

为减少由线路电阻引起的,与电流相关的失调误差,增强抗干扰能力,采用了差分输入方式检测电流信号,经仪表放大器隔离放大,加到ADC输入端。

图1示出4mA~20mA的电流型传感器的信号如何连接到F2812的12bitADC模块的。

图1

其中,AD627是美国ADI公司出品的仪表放大器,它采用单双电源供电,具有轨对轨输出,并可用一个外部寄存器设定增益。

本系统采用AD627作为ADC前端的前置放大器。

它是一种单电源、微功耗仪表放大器,仅使用一只外部电阻器可将增益配置在5~1000之间电路原理。

电路原理图如下:

图2

A1与V1、R5构成了第一个反馈回路,通过该回路可在Q1上得到稳定的集电极电流(假设增益设定电阻此时不存在)。

电阻R1和R2组成的反馈环可使A1的输出电压和反向端电压相等。

通过A2可形成另一个几乎完全相同的反馈环,它可使Q1的电流和Q2相等,同时A2还可提供输出电压。

当两个环平衡时,同向端到VOUT的增益为5,A1输出到VOUT的增益为-4,A1的反向端增益是A2增益的1.25倍AD627差动模式时的增益为1+R4/R3,额定值为5。

通过RG设定增益:

G=5+200/RG

本电路中我们使RG为无穷大,那么电路的放大倍数为5倍。

一个24.9Ω的分流电阻器在AD627的输入端产生介于100mV(对应4mA输入)与500mV(对应20mA输入)之间的最大差分输入电压。

在不存在增益电阻器的情况下,AD627把该500mV输入电压放大5倍达到2.5V,即ADC的满刻度输入电压。

1.2AD及校准电路的设计

(1)分辩率(Resolution)指数字量变化一个最小量时模拟信号的变化量,定义为满刻度与2n的比值。

分辩率又称精度,通常以数字信号的位数来表示。

(2)转换速率(ConversionRate)是指完成一次从模拟转换到数字的AD转换所需的时间的倒数。

积分型AD的转换时间是毫秒级属低速AD,逐次比较型AD是微秒级属中速AD,全并行/串并行型AD可达到纳秒级。

采样时间则是另外一个概念,是指两次转换的间隔。

为了保证转换的正确完成,采样速率(SampleRate)必须小于或等于转换速率。

因此有人习惯上将转换速率在数值上等同于采样速率也是可以接受的。

常用单位是ksps和Msps,表示每秒采样千/百万次(kilo/MillionSamplesperSecond)。

(3)量化误差(QuantizingError)由于AD的有限分辩率而引起的误差,即有限分辩率AD的阶梯状转移特性曲线与无限分辩率AD(理想AD)的转移特性曲线(直线)之间的最大偏差。

通常是1个或半个最小数字量的模拟变化量,表示为1LSB、1/2LSB。

(4)偏移误差(OffsetError)输入信号为零时输出信号不为零的值,可外接电位器调至最小。

(5)满刻度误差(FullScaleError)满度输出时对应的输入信号与理想输入信号值之差。

(6)线性度(Linearity)实际转换器的转移函数与理想直线的最大偏移,不包括以上三种误差。

其他指标还有:

绝对精度(AbsoluteAccuracy),相对精度(RelativeAccuracy),微分非线性,单调性和无错码,总谐波失真(TotalHARMonicDistotortion缩写THD)和积分非线性。

理想情况下,模拟输入电压x和其对应的数字量y之间是如下线性关系:

式中

=3/4096,mi=1。

由于误差的存在实际的线性关系为:

为实际增益,

为零点偏移量。

芯片的特性为:

为了提高测量精度将

需要每次测量,为此将AD通道6,7作为校准通道。

通过高阻抗的精密电阻对3.3V电压分压,如图3所示。

得到两对参考电压及对应的转换数字量(XH,YH)、(XL,YL)。

容易推导出

从而可以得到

图3

二、系统的软件设计

2.1数据采集

采集程序主要包括A/D功能寄存器设置、采集数据的存储器分配等。

对ADCCHSELSEQ1~4和ADCTRL1~3寄存器进行设置,选择ADC转换方式和通道的选择、控制;同时通过EVA寄存器设置采样周期和选择定时器1定时进行A/D转换;设置外扩64K的SRAM存储采集数据。

采样程序框图为图4:

图4

2.2数字滤波处理

为消除信号在外界干扰情况下形成的尖峰信号及零漂等问题,提高测量精度和稳定性,需要对信号进行滤波处理。

与模拟滤波相比,数字滤波可以避免模拟滤波无法克服的电压漂移、温度漂移和噪声等问题。

用DSP芯片实现数字滤波具有较高的稳定性和灵活性,且精度高、不受外界影响。

利用TI公司针对C2000系列提供的用于数字滤波的库文件(filter.lib),同时借助MATLAB的专门用于滤波器设计和分析工具FDAtool(FilterDesign&AnalysisTool),可以帮助软件设计者快速、高效的实现16位定点FIR滤波和IIR滤波。

以消除1khz高频信号为例,系统采有限冲击响应(FIR)滤波算法,FIR滤波器优点是总是稳定的而且具有精确线性相位,允许实现多通道滤波器。

其关键是根据实际需要,采用合适的滤波函数并得到滤波系数。

针对振动加速度信号,采用Hamming窗函数设计低通滤波器,采样频率fs=5kHz,通带截止频率fp=1000Hz,滤波器阶数为50。

利用Matlab的FDAtool工具易得出滤波系数。

由于F2812是16位定点DSP,设计出低通滤波器后,要在DSP上实现还需要定标,即需要确定运算中小数点的位数,也即确定Q值。

本系统中,考虑工程实际精度需要,采用Q15定标,即纯小数运算。

将求得滤波系数转换为Q15格式如下:

#defineFIR16_COEFF{\13124,-55640,-2290735,-1640381,2094810,4259839,-64087,-7077158,-5505628,6946003,\

14024703,-64971,-21102301,-15794418,19136190,

37093375,-65323,-53280663,-39518293,47906708,\

95027199,-65472,-153485281,-129761306,198311901,

648609791}。

三、执行分析

1.熟悉以TI的DSP芯片TMS32OF2812为信号采集和处理核心的DSP开发流程。

2.采用TMS320F2812片上自带的ADC进行数据采集"TMS320F2812提供了16通道的12位模数转换器(ADC),内部含两路采样保持器,一个转换单元,可实现双通道同步采样,在25MHz的ADC工作频率下,单通道转换时间为80ns左右,采用TMS320F2812片上自带的ADC进行采集时,通常不必外接ADC,避免了复杂的硬件设计。

3.借助MATLAB的专门用于滤波器设计和分析工具FDAtool(FilterDesign&AnalysisTool),可以帮助软件设计者快速、高效的实现16位定点FIR滤波

 

附录一:

/**********************************************************/

#include"exp1_2812.h"

/**********************************************************/

unsignedinti=0;

unsignedintpoint[256];

/**********************************************************/

voidsys_ini()//系统初始化子程序

{

asm("setcINTM");//禁止所有中断

asm("setcSXM");//抑制符号位扩展

asm("clrcOVM");//累加器中结果正常溢出

*WDCR=0x00E8;//禁止看门狗

*SCSR1=0x0081;

/*配置时钟锁相为4倍频CLKOUT=4*7.3728=29.4912M,使能ADC时钟*/

WSGR=0x0600;//io、ram、program都设为0等待读写

//ioportunsignedportFFFF

//#defineWSGRportFFFF

*IFR=0xFFFF;//清除所有中断标志

*IMR=0x0001;//使能中断1

}

voidadc_ini()//ADC初始化子程序

{

*ADCTRL1=0x2CC0;

//仿真器挂起时,完成最后一次ad,连续运行模式,

//预定标最长,高优先级中断,双排序模式,禁用其他模式

*ADCTRL2=0x0602;//立即中断模式,清中断标志

*MAXCONV=0x0000;//启用排序器1,最大转换数为1

*CHSELSEQ1=0x0000;//选择模拟输入通道为0通道

asm("clrcINTM");//开总中断

}

interruptvoidnothing()

{

asm("clrcINTM");//开总中断

}

interruptvoidad_int()

{

point[i]=(*RESULT0>>6);//读出ad结果

i++;

if(i==256)

{

i=0;

}

*ADCTRL2|=0x0200;//清除ad中断标志

*IFR=0xFFFF;//清除所有中断标志

asm("clrcINTM");//开总中断

}

voidmain()

{

sys_ini();

adc_ini();

*ADCTRL2|=0x2000;//软件启动ad转换

for(;;);

}

 

附录二:

1、TMS320F2812简介

TMS320F2812是TI公司的一款用于控制的高性能、多功能、高性价比的32位定点DSP芯片。

该芯片兼容TMS320LF2407指令系统最高可在150MHz主频下工作,并带有18k×16位0等待周期片上SRAM和128k×16位片上FLASH(存取时间36ns)。

其片上外设主要包括2×8路12位ADC(最快80ns转换时间)、2路SCI、1路SPI、1路McBSP、1路eCAN等,并带有两个事件管理模块(EVA、EVB),分别包括6路PWM/CMP、2路QEP、3路CAP、2路16位定时器(或TxPWM/TxCMP)。

另外,该器件还有3个独立的32位CPU定时器,以及多达56个独立编程的GPIO引脚,可外扩大于1M×16位程序和数据存储器。

TMS320F2812采用哈佛总线结构,具有密码保护机制,可进行双16×16乘加和32×32乘加操作,因而可兼顾控制和快速运算的双重功能。

通过对TMS320F2812定点DSP芯片合理的系统配置和编程可实现快速运算,本文着重对此加以说明。

2、TMS320F2812基本系统配置

2.1TMS320F2812时钟

TMS320F2812的片上外设按输入时钟可分为如下4个组:

(1)SYSOUTCLK组:

包括CPU定时器和eCAN总线,可由PLLCR寄存器动态地修改;

(2)OSCCLK组:

主要是看门狗电路,由WDCR寄存器设置分频系数;

(3)低速组:

有SCI、SPI、McBSP,可由LOSPCP寄存器设置分频系数;

(4)高速组:

包括EVA/B、ADC,可由HISPCP寄存器设置分频系数。

为了使系统具有较快的工作速度,除了定时器和SCI等少数需要低速时钟的地方,其它外设均可以150MHz时钟工作。

2.2存储空间

图1所示是TMS320F2812的内部存储空间映射图。

TMS320F2812为哈佛(Harvard)结构的DSP,即在同一个时钟周期内可同时进行一次取指令、读数据和写数据的操作。

在逻辑上有4M×16位程序空间和4M×16位数据空间,但物理上已将程序空间和数据空间统一为一个4M×16位的存储空间,各总线按优先级由高到低的顺序为:

数据写、程序写、数据读、程序读。

其中由CY7C1041扩展的256k×16位SARAM位于Zone6(0x100000~0x13FFFF),存取时间不小于12ns;128k×16位FLASH空间(0x3D8000~0x3F7FFF)取指时间不小于36ns。

为了尽可能提高器件的工作速度,在对FLASH寄存器编程使其在较高速度下工作的同时,可将时间要求比较严格的程序(如时延计算子程序、FIR滤波子程序等)、变量(如FIR滤波器系数、自适应算法的权向量等)各堆栈空间搬移到H0、L0、L1、M0、M1空间来运行。

2.3中断

TMS320F28x系列DSP片上都有非常丰富的外设,每个片上外设均可产生1个或多个中断请求。

中断由两级组成,其中一级是PIE中断,另一级是CPU中断。

CPU中断有32个中断源,包括RESET、NMI、EMUINT、ILLEGAL、12个用户定义的软件中断USER1~USER12和16个可屏蔽中断(INT1~INT14、RTOSINT和DLOGINT)。

所有软件中断均属于非屏蔽中断。

由于CPU没有足够的中断源来管理所有的片上外设中断请求,所以在TMS320F28x系列DSP中设置了一个外设中断扩展控制器(PIE)来管理片上外设和外部引脚引起的中断请求。

PIE中断共有96个,被分为12个组,每组内有8个片上外设中断请求,96个片上外设中断请求信号可记为INTx.y(x=1,2,…,12;y=1,2,…,8)。

每个组输出一个中断请求信号给CPU,即PIE的输出INTx(x=1,2,…,…12)对应CPU中断输入的INT1~INT12。

TMS320F28x系列DSP的96个可能的PIE中断源中有45个被TMS320F2812使用,其余的被保留作以后的DSP器件使用。

ADC、定时器、SCI编程等均以中断方式进行,可提高CPU的利用率。

2.4复位引导

图2所示是TMS320F2812的片上引导ROM空间映射。

其此导程序配置在图2中的0x3FFC00~0x3FFFBF,根据图1,设置VMAP=1,MP/MC=0,ENPIE=0,复位向量指向片上0x3FFFC0,而片上0x3FFFC0中内容为0x3FFC00,即指向图2中的引导程序。

配置表2中的GPIOF4(SCITXDA)=1,则转向FLASH中的0x3F7FF6开始执行程序,最后在0x3F7FF6片设置跳转指令指向用户程序的开始处,以开始运行用户程序。

由于在实际应用中使用了PIE中断,因此,在用户应用程序中,应首先初始化PIE中断向量表,然后使能PIE。

3、编程设计

编程是实现系统正常工作和快速运算必不可少的重要环节。

在系统配置合理的条件下,用定点芯片实现快速运算的关键用整数取代浮点数进行计算处理。

用C编译器时,为产生最优代码,应遵循以下原则:

(1)将除法转换为乘法,尽量使编译器产生MAC指令,以充分利用DSP的硬件乘法器资源进行快速运算,且应使MAC的操作数为局部变量以分配到寄存器中(或到一个累加器中)。

(2)尽可能使用静态直接插入函数,以节省函数调用的额外开销。

(3)对FOR循环的上限,使用常数或具有常数属性的变量可产生重复指令RPT。

3.1ADC编程

TMS20F2812带有两个8选1多路切换器和双采样/保持器的12位ADC,模拟量输入范围为0~3V,最快转换速率为80ns,选用10kSPS采样率,并采用EVA的定时器(0.1ms)自动触发方式,可同时采样4个通道,并采用每次转换结束的中断方式来纪录采样结果(右移4位)。

转换结果=(212-1)×(输入的模拟信号-ADCLO)/3,ADC转换时,首先初始化DSP系统,然后设置PIE中断矢量表,再初始化ADC模块,接着将ADC中断的入口地址装入中断矢量表并开中断,然后再启动0.1ms定时器,同时等待ADC中断,最后在ADC中断中读取ADC转换结果,并用软件启动下一次中断。

3.2FIR滤波器编程

目标信号对某些低频干扰非常敏感,它将直接响应到定位结果和数据的有效性。

为了在滤波后不影响时延数据的计算,可采用线性相位的FIR滤波器。

滤波器系数h(i)用MATLAB的产生,并在变成整形然后固化到程序中,这样做(而不是单独计算滤波器系数)的目的是为了实现快速滤波而不会过多增加整个测量系统定位计算的时间。

3.3定位算法的移植

由于定位算法采用自适应时延估计法,因此计算量非常庞大,对DSP芯片性能要求较高。

TMS320F2812具有32位硬件乘法器和累加器,其RPT指令非常适合循环计算,处理能力可达150MIPS,因而具有较高的性能。

但它是一款定点处理芯片,需要使用定点算法来解决处理量大的问题。

因此,对初始数据、权矢量应采用16位整形变量(Q=12:

由ADC转换精度决定),而循环计算中产生的中间结果则使用32位整形变量(Q=20:

在结果不溢出的情况下尽量满足计算精度);至于对三角函数等的运算,可用查表法并利用图2中的表格来进行快速计算。

C编译器带有浮点运算库,因此可将浮点算法和定点算法的结果进行比较,对于4路各1024点数据处理,用浮点算法实现约需3.6秒,而用定点算法只需1.3秒。

另外,还可对算法进行优化。

第一是将经常使用的中间变量配置到等待周期为0的内存中;第二是采用FLASH加速技术(使能FOPT寄存器的ENPIPE位实现预指机制的FLASH流水线模式),这样可以达到100~120MIPS的处理能力,大大高于其本身36ns的读取能力。

需要注意的是,由于TMS320F2812的保护机制,对FLASH寄存器进行存取的这段程序必须搬移到L0、L1中执行。

尽管这样,将这段对时间要求比较荷记得的算法移植到内存H0中,可以达到最高150MIPS的处理速度,并能使用函数memcpy()完成程序的搬移。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2