资源描述:
《实验二用定时器实现数字振荡器》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、电子科技大学通信学院标准实验报告(实验)课程名称DSP设计与实践电子科技大学教务处制表电孑斜鈸大f实验报告学生姓名:学号:指导教师:向超实验地点:实验时间:一、实验室名称:电子科技大学一美国德州仪器DSP技术/培训中心、实验项目名称:用定时器实现数字振荡器三、实验学时:4学时、实验原理:数字振荡器原理设一个传递函数为正弦序列sinkoT,其2变换为H(z)=EMBEDEquation.3EMBEDEquation.3v觀7Ta=2cos6口,B=-l,C=sinED其屮,A=2coswT,B=-l,C=sinoTo设初始条件为0,求出上式的反
2、Z变换得:y[k]=Ay[k-l]+By[k-2]+Cx[k-l1这是一个二阶差分方程,其单位冲击响应即为sinkoT。利用单位冲击函数x[k-l]的性质,即仅当k=l吋,x[k-l]=l,代入上式得:k=0y[o]:=Ay[-l]+By[-2]+0=0k=ly[i]==Ay[0]+By[-2]+c=:ck=2y[2]:=Ay[l]+By[0]+0=Ay[l]k=3y[3]:=Ay[2]+By[l]k=ny[n]=Ay[n-1]+By[n-2]在k〉2以y[k]能用y[k-l]和y[k-2]算出,这是一个递归的差分方程。根据上而的说明,我们可
3、以开始数字振荡器的设计。设该振荡器的频率为2kHz,采样率为40kHz(通过定时器设置,每隔25us屮断一次,即产生一个y[n]),则递归的差分方程系数为:A=2coscoT=2cos(2xPIx2000/40000)=2x0.95105652x41e6f0B=-lC=sinwT=sin(2xPIx2000/40000)=0.30901699x4=9e4b为了便于定点DSP处理,我们将所有的系数除以2,然后用16位定点格式表示为:af378c4f25这便是本实验中产生2KHz正弦信号的三个系数。在本实验中,主程序在初始化吋先计算出y[l]和y
4、[2],然后开放定吋器屮断。以后每次进入定吋器屮断服务程序时,利用前而的y[l]和y[2],计算出新的冇y[0],通过CCS提供的阁形显示工具,我们将在图形窗U中看到一个正弦信号波形。卜而是初始化和中断服务程序代码片段:初始化y[l]和y[2]:ssbxFRCT;置FRCT=1,准备进行小数乘法运算St#INIT_A,AA;将常数A装入变量AASt#INIT_B,BB;将常数B装入变量BBSt#INIT_C,CC;将常数C装入变量CCpshdCC;将变量CC压入堆栈popdy2;初始化y2=CCIdAA,T;装AA到T寄存器mpyy2,a;y
5、2乘系数A,结果放入A寄存器stha,yl;将A寄存器的高16位存入变量Y1中断服务程序片段:IdBB,T;将系数B装入T寄存器y2,ampy;y2乘系数B,结果放入A寄存器ltdyl;将yl装入T寄存器,同时复制到y2macAA,a;完成新正弦数据的计算,a寄存器中为;yl氺AA+y2*BBstha,l,yl;将新数据存入yl,因所有系数都除过2,所以在保;存结來时转移一位,恢复数据正常大小。stha,1,yO;将新正弦数据存入yO(2)C54X的定时器操作C54X的片内定时器利用CLKOUT时钟计数,用户使用三个寄存器(TIM,PRD,T
6、CR)来控制定吋器,参见表4-1。在表4-2屮列出了定吋器控制寄存器的各个比特位的具体定义。‘VC5402的另一个定时器(定时器1)的控制寄存器分别为:0x30(TIM1),0x31(PRD1),0x32(TCR1)。从上而的介绍可以看到定吋器实际上可以有20个比特的周期寄存器。它对CLKOUT信号计数,先将PSC减1,直到PSC为0,然后用TDDR重新装入PSC,同时将TIM减1,直到TIM减为0。这时CPU发出TINT中断,同时在TOUT引脚输出一个脉冲信号,脉冲宽度为CLKOUT-致。然后用PRD重新装入TIM,重复下去直到系统或定时器
7、复位。因而定时器屮断的频率由T而的公式决定:TINT的频率=EMBEDEquation.3EMBEDEquation.3v櫬gch蠶杩LKOUT其屮tc表示CLKOUT的周期。定吋器当前的值可以通过读取TIM寄存器和TCR寄存器的PSC比特位得到。卜*面是木实验中初始化定时器的程序片段:stm#10h,TCR;停止定时器stm#2499,PRD;设置PRD寄存器值为2499,TINT中断频率为;Foutclk/(2499+1)=100MHz/2500=40KHzstm#20h,TCR;重新装入TIM和PSC,然后启动定时器(3)C54X中断的
8、使用在C54X中用户对以通过中断屏蔽寄存器IMR來决定开放或关闭一个中断请求。其中,HPINT表示HP破口中断,INT3-INT0为外部引脚产生的中断,TXINT和