DSP应用系统设计.ppt
2023/7/5,山东大学控制学院 张东亮,1,第8章 DSP应用系统设计,8.1 2812 DSP系统硬件设计8.2 基于DSP的数字运动控制系统8.3 快速傅里叶变换与FIR数字滤波器,2023/7/5,山东大学控制学院 张东亮,2,8.1 2812 DSP系统硬件设计,2812 DSP系统,一个典型的2812 DSP应用系统,2023/7/5,山东大学控制学院 张东亮,3,单片系统Single Chip Solution,F2812/2810 DSP最小系统,2023/7/5,山东大学控制学院 张东亮,4,281x DSP最小系统的电源、时钟、JTAG电路,2023/7/5,山东大学控制学院 张东亮,5,电源电路复位电路时钟电路JTAG电路存储器扩展电平转换 CAN接口电路RS232/485接口电路指示灯电路,A/D,D/A电路运算放大器电路、功率驱动电路键盘与显示电路,DSP应用系统基本电路,2023/7/5,山东大学控制学院 张东亮,6,1.电源电路,2812 DSP系统至少需要两组电源供电,内核电源VDD为1.8V(或1.9V),片内外设电源VDDIO为3.3V。2812 DSP的Flash编程电压VDD3VFL、ADC模拟电路电源VDDA1、VDDA2也为3.3V,有时需要独立的模拟电源。,采用TPS767D318芯片的DSP电源电路,2023/7/5,山东大学控制学院 张东亮,7,2.时钟电路,2812 DSP的时钟电路有内部振荡器方式和外部振荡器方式,即无源晶振和有源晶振方式。有源晶振驱动能力较强,频率范围很宽,在1Hz400MHz之间。无源晶体价格便宜,但是它的驱动能力较差,一般不能提供给多个器件共享,且频率范围较窄,一般在10kHz60MHz之间。,2812 DSP时钟电路,2023/7/5,山东大学控制学院 张东亮,8,3.复位电路,2812 DSP为低电平复位。通常的复位电路设计有RC电路法和专用芯片法。,RC复位电路,2023/7/5,山东大学控制学院 张东亮,9,MAX811复位电路,2023/7/5,山东大学控制学院 张东亮,10,4.JTAG接口,对DSP的仿真调试需要通过仿真器进行,仿真器通过DSP芯片提供的扫描仿真(JTAG)引脚实现仿真功能。DSP仿真头采用14根信号线,符合JTAG IEEE1149.1标准。,JTAG接口,2023/7/5,山东大学控制学院 张东亮,11,5.存储器扩展,2812 DSP片内有4M字(Word,W)存储器地址空间,有128K字的Flash存储器、1K字的OTP型ROM、18K字RAM、4K字的引导(Boot)ROM。用户程序可以烧写入128K字的Flash存储器,但在开发调试过程中,程序需要不断修改,反复写入Flash存储器显得不方便。可以将被调试的程序放入片内18K字RAM。18K字片内RAM包括1KW的M0、1KW的M1、4KW的L0、4KW的L1和8KW的H0。由于DSP越来越多地采用C语言编程,程序占用存储器较大,所以往往扩展片外RAM存储器用于程序调试。在开发阶段,将程序放入RAM存储器(称为仿真RAM),可以方便地进行单步执行、设置断点及连续执行等调试操作。,2023/7/5,山东大学控制学院 张东亮,12,外部存储器及I/O扩展 XINTF Zone0/1,Zone2,Zone6/7,1M+32K。数据线 XD0-XD15。地址线 XA0-XA18 地址译码:138,PAL,GAL,CPLD。控制信号线 XRS:复位引脚。XMP/MC:微处理器/微计算机选择信号。XR/W:读/写选择信号。XRD:读使能信号。XWE:写使能信号。XREADY:准备好信号。X1/XCLKIN:振荡器输入信号。X2:振荡器输出信号。,2023/7/5,山东大学控制学院 张东亮,13,DSP存储器扩展,2023/7/5,山东大学控制学院 张东亮,14,8.2 基于DSP的数字运动控制系统,基于DSP的数字运动控制系统是一种典型DSP应用系统,是C2000系列DSP的主要应用领域之一。运动控制系统通常由电机、功率逆变器和数字控制系统等组成。数字控制系统为功率逆变器提供开关驱动信号,将电源转换为电机所需的电压和电流,由电动机直接或通过减速齿轮等驱动机械负载。其中的电机可以是永磁同步电机、无刷直流电机、交流异步电机等。,以永磁同步电机为控制对象的数字交流伺服系统在数控机床、机器人等运动控制领域获得了广泛应用。交流伺服系统是电流、速度和位置三环控制系统。,2023/7/5,山东大学控制学院 张东亮,15,2023/7/5,山东大学控制学院 张东亮,16,1.永磁同步电机矢量控制原理,三相A,B,C到两相,坐标系统变换,两相静止坐标变换到转子旋转坐标变换即d,q变换,id=i cos+i siniq=-i sin+i cos,2023/7/5,山东大学控制学院 张东亮,17,d、q坐标电压方程即Park方程为,ud=Raid+pd q uq=Raiq+pq+d,电磁转矩方程为,Te=3/2 pn(diq-qid)=3/2pnf iq+(Ld-Lq)id iq,2023/7/5,山东大学控制学院 张东亮,18,2.永磁同步电机数字伺服系统控制原理,2023/7/5,山东大学控制学院 张东亮,19,3.永磁同步电机空间矢量PWM控制,三相逆变器主回路,2023/7/5,山东大学控制学院 张东亮,20,2023/7/5,山东大学控制学院 张东亮,21,SVPWM开关顺序,2023/7/5,山东大学控制学院 张东亮,22,4.伺服控制系统结构与硬件设计,2023/7/5,山东大学控制学院 张东亮,23,5.软件设计,数字伺服系统DSP控制软件结构,2023/7/5,山东大学控制学院 张东亮,24,2023/7/5,山东大学控制学院 张东亮,25,2023/7/5,山东大学控制学院 张东亮,26,数字伺服系统电流与速度响应曲线,2023/7/5,山东大学控制学院 张东亮,27,键盘和显示电路,D/A转换电路,2023/7/5,山东大学控制学院 张东亮,28,8.3 快速傅里叶变换与FIR数字滤波器,8.3.1 快速傅里叶变换,傅里叶变换是一种将时域信号变换为频域信号的变换形式。在频域分析中,信号的频率及对应的幅值、相位(统称为频谱)反映了系统的性能。快速傅里叶变换(Fast Fourier Transform,FFT)是离散傅里叶变换(Discrete Fourier Transform,DFT)的快速实现方法。,快速傅里叶变换的基本原理,非周期连续时间信号x(t)的傅里叶变换为,2023/7/5,山东大学控制学院 张东亮,29,序列x(n)的离散傅里叶变换,快速傅里叶变换,一个N点的DFT可以分解为两个N/2点的DFT,每个N/2点的DFT又可以分解为两个N/4点的DFT。当N为2的整数次幂时,由于每分解一次降低一次幂阶,通过M次分解,最后全部成为一系列2点DFT运算。,2023/7/5,山东大学控制学院 张东亮,30,例,时间抽取的FFT算法DSP C语言实现实例。,FFT运算函数与主函数为#includemath.h/数学函数头文件#define PI 3.1415926#define N 128/采样次数Nvoid InitForFFT();/FFT初始化函数void MakeWave();/波形发生函数void finv(int N1,float*xr,float*xi);/倒序运算函数f(N1,Xr,Xi),对输入序列倒序int INPUTN,DATAN;float fWaveRN,fWaveIN,wN;float sin_tabN,cos_tabN;/正余弦函数表int Mum;/Mum为蝶形运算的级数,2023/7/5,山东大学控制学院 张东亮,31,void FFT(float XrN,float XiN)/时间抽取法FFT程序,要求采样点数N为2的整数幂次方/Xr,Xi 分别为输入序列的实部和虚部int S,B;/S为旋转因子的幂数,B为蝶形运算输入数据的距离,/也即各级旋转因子的个数int m,j,k;float X,Y;finv(N,Xr,Xi);/倒序运算函数,对输入序列倒序for(m=1;m=Mum;m+)B=(int)(pow(2,m-1)+0.5);/B=2(m-1)for(j=0;jB;j+)/每级需要进行B种蝶形运算S=j*(int)(pow(2,Mum-m)+0.5);/S=2(Mum-1)for(k=j;k=N-1;k+=(int)(pow(2,m)+0.5),2023/7/5,山东大学控制学院 张东亮,32,/每种蝶形运算在某一级中需要进行N/pow(2,m)次/蝶形运算展开,结果的实部和虚部/分别存储在原实部和虚部位置X=Xrk+B*cos_tabS+Xik+B*sin_tabS;Y=Xik+B*cos_tabS-Xrk+B*sin_tabS;Xrk+B=Xrk-X;Xik+B=Xik-Y;Xrk=Xrk+X;Xik=Xik+Y;for(m=0;mN/2;m+)wm=sqrt(Xrm*Xrm+Xim*Xim);/计算功率普,2023/7/5,山东大学控制学院 张东亮,33,main()int i;InitForFFT();/FFT初始化函数MakeWave();/波形发生函数for(i=0;iN;i+)fWaveRi=INPUTi;fWaveIi=0.0;wi=0.0;Mum=(int)(0.5+log(N)/log(2);/Mum为蝶形运算的级数,N=2MumFFT(fWaveR,fWaveI);for(i=0;iN;i+)DATAi=wi;while(1);,2023/7/5,山东大学控制学院 张东亮,34,void InitForFFT()/FFT初始化函数,建立正余弦函数表int i;for(i=0;iN;i+)sin_tabi=sin(PI*2*i/N);cos_tabi=cos(PI*2*i/N);void MakeWave()/波形发生函数int i;for(i=0;iN;i+)INPUTi=sin(PI*2*i/N*3)*1024;/f=3Hz,正弦函数,2023/7/5,山东大学控制学院 张东亮,35,FFT函数包含的函数finv(N,Xr,Xi)为倒序运算,函数代码如下。/倒序运算函数finv(N1,Xr,Xi),对输入序列倒序/N1为序列长度;Xr,Xi 分别为输入序列的实部和虚部/倒序原理:倒序数的加1是在最高位加1,/满2向次高位进1,最高位变0,依次往下/从当前倒序值可求下一倒序值void finv(int N1,float*xr,float*xi)/倒序运算函数f(N1,Xr,Xi),对输入序列倒序int m,n,N2,k;/m为正序数;n为到序数;k为各个权值;N2为最高位的权值float T;/临时变量TN2=N1/2;/最高位加1相当于十进制加上最高位的权N1/2n=N2;/第一个倒序值for(m=1;m=N1-2;m+)/第0个和最后一个不倒序,2023/7/5,山东大学控制学院 张东亮,36,if(m=k)n=n-k;/次高位位1,继续上下进位,满2置0k=(int)(k/2+0.5);/向下权值依次比上级减半n=n+k;/得到下一倒序值,2023/7/5,山东大学控制学院 张东亮,37,8.3.2 FIR数字滤波器,在数字信号处理中,数字滤波占有极其重要的地位。无限冲击响应(Finite Impulse Response,FIR)数字滤波器(Digital Filter)是一种常用数字信号处理算法。利用窗函数法设计FIR滤波器,可以实现线性相位的数字滤波器。,1.FIR数字滤波器的设计方法,设FIR数字滤波器的单位冲击响应为h(n),则传递函数H(z)为,2023/7/5,山东大学控制学院 张东亮,38,FIR数字滤波器的系数h(n),w(n)为窗函数。理想单位冲击响应h1(n)可以根据给定的理想频率响应求得,FIR数字滤波器的差分方程为,式中,x(i)为输入序列,y(i)为输出序列,N为滤波器阶数。,2023/7/5,山东大学控制学院 张东亮,39,滤波器差分方程为y(i)=0.001x(i-2)-0.002x(i-3)-0.002x(i-4)+0.01x(i-5)-0.009x(i-6)-0.018x(i-7)+0.049x(i-8)-0.02x(i-10)+0.11x(i-11)+0.28x(i-12)+0.64x(i-13)+0.28x(i-14)-0.11x(i-15)-0.02x(i-16)-0.049x(i-17)-0.018x(i-18)-0.009x(i-19)+0.01x(i-20)-0.002x(i-21)-0.002x(i-22)+0.001x(i-23,例,实现一个低通FIR数字滤波器。要求带通边缘频率为10kHz,阻带边缘频率为22kHz,阻带衰减为75dB,采样频率为fs=50kHz。,数字滤波器程序参见教材。,2023/7/5,山东大学控制学院 张东亮,40,思考题与习题,对于F2812 DSP,采用RAM CY7C1021V33扩展64KW程序与数据共用存储器(地址08 000008 FFFFH),请设计硬件电路。如何设计DSP的复位电路?如何设计DSP的时钟电路?如何设计DSP的JTAG电路?数字运动控制应用领域一般要用到F2812 DSP的哪些片内外设?如何用DSP C语言编程实现常用的FFT与FIR信号处理算法?,