基于TMS320F2812同步数据采集系统的设计Word格式文档下载.docx
《基于TMS320F2812同步数据采集系统的设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于TMS320F2812同步数据采集系统的设计Word格式文档下载.docx(21页珍藏版)》请在冰豆网上搜索。
(4)熟练使用软件CCS对程序的完整调试过程。
1.2课程设计的要求
(1)通过实际应用系统的分析、设计、编码、测试等工作,掌握DSP设计的一般方法和过程,初步掌握开发的有关技术。
(2)要求所实现的系统具有较完善的功能,能够完成DSP系统相关功能。
(3)对所设计的系统要求进行认真的测试与调试,所提交的软件系统要能正确运行。
(4)按要求认真撰写课程设计报告书。
2系统硬件简述
2.1TMS320F2812芯片介绍
TMS320F2812芯片足高性能32位定点DSP,采用1.8V的内核电压,3.3v的外围接口电压,最高频率150MHZ,指令周期为6.67ns,片内有18K的RAM和128K高速Flash,事件管理器EVA和EVB包括通用时钟、PWM信号发生器等。
该芯片可广泛应用于电力系统控制、电力转换以及通信设备、工业自动化、电机控制以及工业现场控制等。
2.2ADS8365芯片介绍
ADS8365是一种高速、低功耗、同步采样转换器件,它足16位高速并行接口的模数转换芯片。
每片ADS8365由3个转换速率为250ksps的ADC构成,每个ADC有2个模拟输入通道,每个通道都带有采样保持器,3个ADC可组成3对模拟输入,可对其中的输入信号同时采样保持。
另外,该芯片采用+5V工作电压,最大采样吞吐率可高达5MHz,并带有80dB共模抑制的全差分输入通道以及6个差分采样放大器。
引脚内部还带有2.5V电压接口,可用以提供基准电压。
由于6个通道可以同时采样,因此很适合用于需同时采集多种信号的应用场合。
ADS8365的6个模拟输入通道叮分为三组,分别为A、B和C组。
每组都有一个保持信号(分别为HOLDA、HOLDB和HOLDC),用于启动各组的A/D转换。
6个通道可以进行同步并行采样和转换。
当ADS8365的HOLDX保持20ns的低电平后开始转换。
当转换结果被存入输出寄存器后,引脚EOC的输出将保持半个时钟周期的低电平,以提示TMS320F2812处理器进行转换结果的接收,处理器通过置RD和CS为低电平使数据通过并行输出总线读出。
图2.1ADS8365时序图
2.3F2812芯片的结构及性能概述
表2.1F2812芯片说明
微处理器
最大时钟频率
时钟周期
指令周期
指令时间
F2812
150Mhz
6.67ns
1到2个时钟周期
芯片实物图:
图2.2芯片实物图
2.4F2812芯片CPU的组成
图2.3芯片CPU结构
2.5预备知识CCStudio调试一个项目的步骤
(1)连接目标板debug——connect;
(2)打开工程项目,调试代码project——open;
(3)创建目标文件project——(re)build(F7);
(4)加载目标代码File——loadprogram(Ctl+L);
(5)运行程序Debug——run(F5)。
2.6SEED-DEC5416DSP实验箱基本系统
1、高性能DSP:
TMS320F2812,主频160MHz
2、SRAM:
64K×
16-位(可扩展至512K×
16位)
3、Flash:
256K×
16-位(可扩展至1M×
4、提供看门狗电路、电源监视、上电复位、手动复位
5、2路编程可选的RS232/RS422/RS485
6、AC97标准的Audio音频接口
7、3路McBSP
8、1路480MHz工作主频USB2.0接口
2.7SEED-Mboard实验箱人机接口模块
1、处理器为TMS320F2812DSP
16-位(可扩展至256K×
16-位(用于存放二级标准汉字库及驻留实验程序)
4、提供手动复位
5、1路RS232接口
6、4路12位10μS建立时间±
10V输出D/A,为信号发生器功能
7、17键按键键盘
8、240*128大屏幕液晶显示
3硬件电路及仿真设计
3.1系统总体方案
在现代通信系统中,通信电源对于确保通信系统运行的稳定性和可靠性,显得尤为重要,对于电源的监测和控制是通信系统中一个重要的环节。
在通信电源的监测系统中不但要对线路中的电压量、电流量、供电频率以及开关量的状态进行监测,而且还要计算出线路的有功功率、无功功率、功率因数以及电网中的谐波分量。
在数据采集时要保证对电压信号、电流信号同步进行采样,以保留接收到的各路信号之间的相位信息,从而在随后的处理中解算出各路信号之间的时延关系。
图3.1系统总体构成
系统数据采集处理工作过程是:
外部输入信号通过信号调理模块进入A/D转换模块,转换后的数据经同步串口MCBSP进入DSP,通过DSP片内集成的DMA通道,将数据读入缓存,当缓存内数据数量达到处理要求,DSP产生中断,对数据进行处理保存。
通过DSP的DMA技术和中断技术实现数据边采集边运算。
3.2软件仿真设计
图3.2仿真流程图
TMS320F2812芯片提供了良好的C语言开发环境,使用C语言缩短了开发周期,降低了编程的复杂性。
由流程图可以看出程序的执行顺序:
首先,上电后由硬件复位ADS8365,初始化TMS320F2812,设置相应的系统主频及与采样有关的高速外设时钟频率;
然后配置TMS320F2812与AD转换芯片工作用到的事件管理器的Gpio口;
最后初始化中断向量表,将Adc_isr()采集中断服务程序的入口地址放在对应EOC输入引脚XINT的向量地址处,并且配置成由低电平触发进入中断,最后使能系统中断,等待EOC中断信号的到来。
3.3首先利用setupCCStudio进行配置
图3.3配置图
图3.4参数图
Buildoptions配置包括:
1.Compiler参数
2.Linker参数
3.4Projectmanager窗口建立新的工程
•CCStudio以项目管理代码文件;
•只需要加载后缀为pjt的项目文件,即可加载所有关联的代码文件、库文件、cmd文件。
图3.5Projectmanager窗口
3.5数据采集系统软件设计
图3.6TMS320F2812和ADS8365的接口设计图
TMS320F2812和ADS8365的接口设计ADS8365的数据读出可采用直接地址读方式、FIFO读方式、循环读方式,因此与TMS320F2812的接口至少有3种互连方案。
本采集系统选择直接地址读方式,由XA[2:
0]作为变换结果寄存器低位地址,当ADS8365的CS引脚为高电平时,其数据总线处于高阻状态,当CS引脚置低电平时并口数据总线上输出当I;
其数据总线具体的连接电路如上图所示。
ADS8365可使用单独的外部晶振,或使用TMS320F2812I/O口模拟晶振,本系统使用TMS320F2812EVA的TIPWM来产生ADS8365的CLK时钟输入信号。
为了实现六个通道的同步采样,把TMS320F2812的GPIOBl4引脚与ADS8365的HOLDA、HOLDB、HOLDC信号相连,控制3个ADC采样,保持模块的同步。
EOC连接到TMS320F2812的XINTl。
若要构成12/24等多通道数据采集,可以利用TMS320F2812的低位地址线进行ADS8365的CS扩展,其余信号如CLK和HOLDX町以与上述控制信号线接在一起。
在本系统中,由传感器输出的电压信号范围是±
5V,而ADS8365芯片的模拟输入端能接收的信号范同是±
2.5V,因此在ADS8365前端用功率运放电路实现信号的调理,本文采用OPA227芯片来实现,原理图如下图所示。
图3.7芯片原理图
OPA227是TI公司生产的高精度、低噪卢运算放大器,具有8MHz的带宽,开环增益可达160dB,偏置电压75pV,可应用于信号采集和通信设备中。
上图中下面的OPA227是跟随电路,用来提供2.5v的参考电压;
上面的OPA227用来实现电平信号的运算,在实际应用中还应存输入端加一个OPA227用来提高输入阻抗,增强系统的抗十扰能力,图中Rl,R2分别选择2k和10k温漂较小的精密电刚。
3.6ADS8365的初始化
触发ADS8365的复位引脚,可以确保读指针指向第一个数据位置。
作为TMS320F2812初始化的一部分,由TMS320F2812的GPIOFI引脚提供复位信号给ADS8365的引脚RESET,当系统时钟稳定后RESET被触发为低电平,从而确保了从ADC输出的数据对应丁,通道A0、AI、B0、B1、CO、C1的排列,下面为ADS8365的复位程序:
voidResetADS8365(void)
{
GpioDataRegs.GPFCLEAR.all=0x0001;
Asm(“RPT#200||NOP”);
GpioDataRegs.GPFSET.all=0x0001;
}
初始化流程:
图3.8中断嵌套流程图
3.7TMS320F2812的初始化
TMS320F2812的初始化包括系统的初始化、GPIO的初始化和外设中断的初始化,分别叙述如下:
(1)TMS320F2812系统的初始化包括看门狗的配置、系统及外设时钟的配置、片内RAM使用的配置等。
(2)GPIO的初始化,为了方便与ADS8365通信,TMS320F2812把GPIOA、GPIOB和GPIOF的部分引脚配置成通用输入输出口。
其中包括由EOC引脚触发的外部中断引脚和ADS8365需要的转换时钟引脚等。
程序如下:
voidInitGpio(void)
EALLOW;
GpioMuxRegs.GPAMUX.all=0x0003;
GpioMuxRegs.GPADIR.all=0xFFFF;
GpioMuxRegs.GPEMUX.all=0x0003;
GpioMuxRegs.GPEDIR.all=0x0003;
GpioMuxRegs.GPEQUAL.all=0x0000;
GpioMuxRegs.GPFMUX.all=0x0000;
GpioMuxRegs.GPFDIR.all=0x0005;
EDIS;
(3)外设和中断的初始化,配置可屏蔽及不可屏蔽中断,使系统的中断可以找到有效的地址。
关键程序如下:
XlntruptRegs.XINTICR.all=0x0001:
PieCtrlRegs.PIEIER1.bit.INTx4=1:
PieCtr!
Regs.PIEIER4.bit.INTx4=1:
IERI=0x0009;
EvbRegs.EVBIMRA.all=OxO080:
EvbRegs.EVBIFRA.all_OxO080;
EvbRegs.T3CON.all=0x1042;
3.8信号采样程序和中断服务程序
在上述配置结束后,启动T1PWM输出信号给ADS8365的CLK引脚,在确认ADS8365芯片准备好的情况下启动采样信号,程序如下:
voidToggleHOLDx(intchannel)
GpioDataRegs.GPACLEAR.all=channel;
Asm(“RPT#25||NOP”);
GpioDataRegs.GPASET.all=channel;
}
在执行完上述程序后,ADS8365的6路通道同时开始采样,在完成采样后将EOC引脚置低,触发TMS320F2812的外部中断程序,在中断程序中依次读取ADS8365的6个采样信号存储寄存器,并保存到预先指定的位置,等待主程序处理。
该段程序如下:
voidread_ADD()
CHA0_Data[idx]=*ptrCHA0;
CHAl_Data[idx]=*ptrCHA1;
CHB0_Data[idx]=*ptrCHB0;
CHBl_Data[idx]=*ptrCHBl;
CHC0_Data[idx]=*ptrCHC0;
CHC1_Data[idx]=*ptrCHC1;
图3.8中周期采样中断服务程序和XINT1中断服务程序分别如下:
interruptvoidT3PINT_ISR(void)
EINT;
IER|=0x0001;
XlntruptRegs.XINT1CR.all=0x0001:
Start_AD();
EvbRegs.EVBIFRA.all=0x0080:
PieCtrlRegs.PIEACK.aIl=0x0008;
return;
interruptvoidXINT1_ISR(void)
XIntruptRegs.XINT1CR.All=0x0000:
Read_ADD();
XIntruptRegs.XINT1CR.all=0x0001;
PieCtrlRegs.PIEACK.all=0x0001:
图3.9软件延时程序流程图
图3.9中周期中断触发后进人T3PINT中断服务程序,其参考程序如下:
EvbRegs.EVBIFRA.all=0x0080;
start_AD();
asm(“RPT#89||NOP“);
read_ADD();
PieCtrlRegs.PIEACK.all=0x0008:
图3.10查询标志位程序流程图
图3.10中周期中断触发后进入T3PINT中断服务程序,其参考程序如下:
interruptvoidT3P1NT_ISR(void)
intflag;
flag=PieCtrlRegs.PIEIFR1.bit.INTx4:
start_AD();
while(flag!
=1);
read_ADD();
Return;
4实验结果及波形
在ADS8365采样、转换结束后,该芯片的EOC引脚置低,同时使F2812的XINT引脚置低,这样进入中断处理程序,F2812发出指令依次从ADS8365的6个寄存器里读取数据。
从图中我们可以清楚看到,从触发ADS8365开始采样到F2812读取数据的完整过程。
ADS8365初始化完成之后就可以打开串口的接收中断,在中断服务程序中接收A/D转换的数据。
在该配置条件下,若输入时钟为8.192MHz,则ADS8365为六路模拟采样,采样率为8kHz。
实践表明,构成的信号采集和处理系统具有设计简便、结构紧凑、工作稳定和可以方便地在几种采样率之间选择等优点。
与并行接口相比,采用串行接口的硬件连接线大为减少,这样不仅可以减少印制电路板的面积,还可以减少电磁干扰,从而有利于系统更加稳定的工作。
在不影响系统工作速度的条件下,在系统设计中利用串行接口代替并行接口不失为一种很好的设计方法。
运行程序。
可以观察收到的数据和显示的图像,数据保存在dataleft数组中,图像显示的即为dataleft数组。
如下图显示了采样频率为44K,采样长度(点)为1024点时的采样结果:
显示图像时请注意所显示数组的数据类型及长度。
可以修改信号源,继续执行,观察输入不同信号源的执行结果。
图4.1仿真结果图
5结束语
本文以ADS8365模数转换芯片为基础,详细讨论了TMS320F2812和ADS8365的接口原理和程序设计。
解决了“无刷双馈电机控制系统”课题中有关物理量同步采样的关键问题。
同时该设计方案在电机控制、多轴定位系统、多通道数据采集等场合有着广泛的戍用,能满足高速交变电压信号采集的高精度和高实时性要求。
这次课程设计我了解到了ADS8365模数转换芯片及TMS320F2812的使用原理等等。
经过几周的课程设计,首先,我对DSP芯片有了更深的了解,学会了部分芯片的原理及使用方法,而且在这次的课和设计中,我知道了多种数据采集系统的设计,以及各种方法的不足与优势。
其次,我觉得通过这次课程设计,让我又学会了一门仿真软件,虽然现在还不是很精通,但是我认为这对于我们毕业以后会有非常大的帮助,毕竟我们是学习通信工程这个专业的,毕业后大多数会从事这方面的工作,我想这会对我们从事这个行业的工作打下良好的基础。
课程设计过程中我发现了自己很多问题,也了解到了自己的不足之处,所以我觉得我们学校应该多给我们这样的机会,我们才能更好将学习到的知识运用到实际中来。
本论文是在蔡老师的悉心指导下完成的,从理论研究、实际操作直到最后的实验,无不凝结着老师的心血与智慧。
在课题研究过程中,老师给予了无微不至的指导和照顾,感谢两位老师的关心、指导和教诲。
蔡老师充分利用自己工作之余给作者进行细心的导,不厌其烦的解答我提出的各种问题,定期检查作者的设计进展,提出了大量宝贵的意见,并介绍了许多期刊书目资料供作者参考,有高度的责任心。
在此,我向蔡老师致以最诚挚的谢意!
致谢:
向所有在课程设计中帮助过我的老师和同学们表示由衷的感谢。
参考文献
[1]王晓明,王玲.电动机的DSP控制,北京航空航天大学出版社,2004.7.
[2]张龙.基于TMS320F2812高速数据采集系统的设计与实现.光电与控制,2007,4
(1):
1671~1637.
[3]阎石.数字电子技术基础.北京:
高等教育出版社.1997.
[4]李永东.交流电机数字控制系统.北京:
机械工业出版社,2003.
[5]张卫定.Tms320C28x系列dsp的CPU与外设(上)[M],北京:
清华大学出版社,2004,9.
[6]刘和平.Tms320C28x系列dsp指令和编程手册[M],北京:
清华大学出版社,2005,3.
[7]李真芳等.DSP程序开发.西安:
西安电子科技大学出版社,2003.
[8]王潞刚等.DSPC2000程序员高手进阶.北京:
机械工业出版社,2005.
[9]苏涛等.DSP接口电路设计与编程.西安:
[10]张卫宁.DSP原理及应用.北京:
国防工业出版社,2002.
[11]TMS320C28xDSPCPUandInstructionSetReferenceGuide(SPRU430).
[12]TMS320C28xOptimizingC/C++CompilerUser‘sGuide(SPRU514).
[13]AndrewBateman(England).TheDSPHandbookAlgorilthms,APPlicationsandDesignTeehniques.2003.
[14]TexasInstrument.TMS320CxxSourceDebuggerUser’sGuide.1995.
[15]TexasInstrument.TMS320LF240xADataSheet.1995.
附录
1.ADS8365的复位程序:
voidResetADS8365(void)
GpioDataRegs.GPFCLEAR.all=0x0001;
GpioDataRegs.GPFSET.all=0x0001;
2.TMS320F2812的初始化程序
GpioMuxRegs.GPAMUX.all=0x0003;
GpioMuxRegs.GPADIR.all=0xFFFF;
GpioMuxRegs.GPEMUX.all=0x0003;
GpioMuxRegs.GPEDIR.all=0x0003;
GpioMuxRegs.GPEQUAL.all=0x0000;
GpioMuxRegs.GPFMUX.all=0x0000;
GpioMuxRegs.GPFDIR.all=0x0005;
3.信号采样程序
GpioDataRegs.GPACLEAR.all=channel;
Asm(“RPT#25||NOP”);
GpioDataRegs.GPASET.all=channel;
CHBl_D