1、深圳大学考试答题纸(以论文、报告等形式考核专用)二一四二一五年度第 1 学期课程编号课程名称单片机/ARM /DSP技术实践主讲教师评分学号姓名专业年级教师评语:题目:基于DSP2812课程设计一、实验规定由外接信号发生器产生一正弦信号(电压范畴:03V),通过DSPAD功能对此正弦信号进行采集,通过DSPSCI功能与PC机之间进行通信,把所采集AD信号发送至PC机端,在超级终端上进行实时显示。二、实验原理2.1 ADC概述ADC,即模/数转换器,将模仿量转换成数字量,提供应控制器使用。TMS320F2812片上有一种12位辨别率、具备流水线构造模/数转换器,其机构框图如图1所示。其前端为2个
2、8选1多路切换器和2路同步采样/保持器,构成16个模仿输入通道,模仿通道切换由硬件自动控制,并将各模仿通道转换成果顺序存入16个成果寄存器中。图1 ADC机构框图2.2 ADC模块特点(1)带2个8选1多路切换器和双采样/保持器12位ADC,共有16个模仿输入通道;(2)模仿量输入范畴:0.0V-3.0V;(3)转换率:在25MHZADC时钟下为80ns;(4)转换成果存储在16个成果存储器中;(5)转换成果=4095*(输入模仿信号-ADCLO)/3;(6)各种A/D触发方式:软件启动、EVA和EVB;(7)灵活中断方式:可以在每次转换结束或每隔一次转换结束触发中断;3ADC转换环节(1)初
3、始化DSP系统;(2)设立PIE中断矢量表;(3)初始化ADC模块;(4)将ADC中断入口地址装入PIE中断矢量表中,开中断;(5)软件启动ADC转换;(6)等待ADC中断;(7)在ADC中断中读取ADC转换成果,软件启动下一次ADC中断。三、实验实现3.1硬件方案设计本实验以TMS320F2812为核心控制部件,运用软件编程,通过ADC模块对实验箱上信号发生器发出正弦信号进行采集,由于实验箱上信号发生器只能调节到2V,因此本次实验只针对2V正弦信号,再通过串口线与PC机连接,将采集转换数字信号传送到PC机端串口助手,并还原成采集时电压值。硬件框架图如图2所示。本次ADC采用SEED-DEC2
4、812AD接口ADCINA6通道。图2 硬件框架图3.2软件设计程序主体沿用AD采样例程,用定期器产生中断,在中断程序中对电压信号进行AD转换并将转换值通过串口发送到电脑,在电脑上用串口助手对采样值进行实时显示。 重要工作:是在AD程序基本上初始化串口、修改中断程序及更改采样率、波特率参数 。程序要解决问题:1、 采样值转换2、 采样率及波特率设立 串口初始化程序可以直接使用SCI例程中初始化程序,下面只简介中断程序设计及采样率、波特率参数设立中断程序设计在中断程序中对电压信号进行采集,然后将采集到12位有效值转换成实际电压值,取电压值三位有效数字以字符形式用串口发送,这里要注意是AD采集12
5、位有效数字在寄存器中是靠左放置,需要右移四位后才干对其转换。图3 中断程序图SCI波特率设立SCI波特率大小决定串口能每秒传送数据多少,若太小则会限制采样率,本实验选取串口助手最大波特率115200b/s,则: 1、每秒理论上能传送字节数:115200/10=11520B2、波特值BRR由公式 可得BRR=40,在串口初始化程序中设立SciaRegs.SCILBAUD = 0x28,可以把波特率设立成115200 b/s。图4 串口初始化程序图采样率设立采样率受波特率和信号频率两方面控制 1、115200b/s波特率下最大采样率为 2、信号频率为100HZ,依照采样定理采样率要不不大于 综合考
6、虑设采样率为1000HZ在单位周期内采样十次,采样率可以通过在主程序中ConfigCpuTimer(&CpuTimer2,150,1000) 设立,通过设立周期值(1000us)可以拟定采样率1000。图4 某些主程序程序图3.3软件调试软件调试是通过对程序编译、连接、执行来发现程序中存在语法错误与逻辑错误并加以排除纠正过程。本设计软件调试使用CCS3.3测试软件进行调试,即可看到对的测试成果,从而最后实现运用ADC采集正弦信号。四、实验成果分析1.实验箱信号发生器上设立如图5所示。图5 信号发生器设立2.PC端上串口助手显示接受数据,如图6所示。图6 串口调试助手界面3.采用matlab对上
7、图数据进行绘图,如图7所示,横坐标为时间/s,y轴为幅值,图中可以较直观显示出经AD采集到正弦信号发送到PC机上也是正弦信号数据。图7 MATLAB绘制图五、实验结论通过本次实验咱们掌握DSP芯片功能及其在实际中应用办法,对于DSP基本知识理解。学习到了很过关于DSPAD模块和SCI知识,并且更加巩固和掌握了课堂上所学课本知识,是自己对DSP技术有了更进一步结识和理解。本实验是由实验箱信号发生器产生一正弦信号(电压范畴:02V),通过DSPAD功能对此正弦信号进行采集,通过DSPSCI功能与PC机之间进行通信,把所采集AD信号发送至PC机端,在超级终端上进行实时显示。本实验最后达到了实验规定,
8、实现了电压值实时显示。 附录实验代码如下所示:#include #include DSP28_Device.h#include comm.h/#define SAMPLERATE 1unsignedintuart_sendtype ;unsignedintSampleRate;unsignedintSampleLong=1024;/unsignedinti,j;unsignedintAd_data10=0;char send5=0;float results=0;float temp=0;/unsignedintconvcount = 0;volatile unsigned intadconv
9、over =0;/ Prototype statements for functions found within this file.interrupt void ISRTimer2(void);interrupt void ad(void);void main(void)/*初始化系统*/InitSysCtrl();#if SAMPLERATE=1SampleRate =ADSAMPL8K;#endif/*关中断*/DINT;IER = 0x0000;IFR = 0x0000;/*初始化PIE中断*/InitPieCtrl();/*初始化PIE中断矢量表*/InitPieVectTable
10、(); /初始化cputimerInitCpuTimers();InitSci();/*设立中断服务程序入口地址*/EALLOW;/ This is needed to write to EALLOW protected registersPieVectTable.TINT2 = &ISRTimer2;PieVectTable.ADCINT = &ad;EDIS; / This is needed to disable write to EALLOW protected registers/*开中断*/IER |= M_INT1;/ADC中断EINT; / Enable Global inte
11、rrupt INTMERTM;/ Enable Global realtime interrupt DBGM/*启动AD采样*/*AD采样率*/adconvover=0;switch(SampleRate)case ADSAMPL8K:/采样率为1kDINT;/*设立CPU*/ConfigCpuTimer(&CpuTimer2,150,1000);StartCpuTimer2();/*开中断*/IER |= M_INT14;EINT;InitAdc();SampleRate = 0;break;default:break;for(;) interrupt void ad(void)IFR=0x
12、0000;PieCtrl.PIEACK.all=0xffff;Ad_data0 = AdcRegs.RESULT0;temp=Ad_data04;results=(temp/4095.0)*3.0;results=results*100;send3=(int)results%10+0x30;results=results/10;send2=(int)results%10+0x30;send1=.;results=results/10;send0=(int)results+0x30;send4=n;for(i=0;i5;i+)SciaRegs.SCITXBUF =sendi;while(!Sci
13、aTx_Ready();interrupt void ISRTimer2(void)AdcRegs.ADC_ST_FLAG.bit.INT_SEQ1_CLR=1;AdcRegs.ADCTRL2.bit.SOC_SEQ1=1;串口初始化子程序voidInitSci(void)/InitializeSCI-A:*UART_MODE=0x44;EALLOW;GpioMuxRegs.GPFMUX.all=0x0030;EDIS;/*loopback8bitdata*/SciaRegs.SCICCR.all=0x07;SciaRegs.SCICTL1.all=0x03;SciaRegs.SCICTL2.all=0x03;SciaRegs.SCIHBAUD=0x00;SciaRegs.SCILBAUD=0x28;/波特率为115200b/sSciaRegs.SCICTL1.all=0x23;PieCtrl.PIEIER9.bit.INTx1=1;/ PieCtrl.PIEIER9.bit.INTx2=1;/tbd./InitializeSCI-B:/tbd.