DSP(digital signal processor)是一种独特的微处理器,是以数字信号来处理大量信息的器件。其内部采用程序和数据分开的哈佛结构,具有专门的硬件乘法器,广泛采用流水线操作,提供特殊的DSP 指令,可以用来快速的实现各种数字信号处理算法。在进行物理实验涉及主控板芯片选择时我们主要是考虑处理速度、功耗、程序存储器和数据存储器的容量、片内的资源,如定时器的数量、I/O口数量、中断数量、DMA通道数等。
DSP的主要供应商有TI,ADI,Motorola,Lucent和Zilog等,其中TI占有最大的市场份额。
1)C5000系列(定点、低功耗):C54x,C54XX,C55X相比其它系列的主要特点是低功耗,所以最适合==个人与便携式上网以及无线通信应用,如手机、PDA、GPS等应用。==它的处理速度在80MIPS–400MIPS之间。C54XX和C55XX一般只具有McBSP同步串口、HPI并行接口、定时器、DMA等外设。值得注意的是C55XX提供了EMIF外部存储器扩展接口,可以直接使用SDRAM,而C54XX则不能直接使用。两个系列的数字IO都只有两条。
2)C2000系列(定点、控制器):C20X,F20X,F24X,F24Xx,C28x该系芯片具有大量外设资源,如:A/D、定时器、各种串口(同步和异步),WATCHDOG、CAN总线/PWM发生器、数字IO脚等。是针对控制应用最佳化的DSP,在TI所有的DSP中,只有C2000有FLASH,也只有该系列有异步串口可以和PC的UART相连。
3)C6000系列:C62XX,C67XX,C64X该系列以高性能著称,最适合宽带网络和数字影像应用。32bit,其中:C62XX和C64X是定点系列,C67XX是浮点系列。该系列提供EMIF扩展存储器接口。该系列只提供BGA封装,只能制作多层PCB。且功耗较大。同为浮点系列的C3X中的VC33现在虽非主流产品,但也仍在广泛使用,但其速度较低,最高在150MIPS。
4)OMAP系列:OMAP处理器集成ARM的命令及控制功能,另外还提供DSP的低功耗实时信号处理能力,最适合移动上网设备和多媒体家电。
其他系列的DSP曾经有过风光,但现在都非TI主推产品了,除了C3X系列外,其他基本处于淘汰阶段,如:C3X的浮点系列:C30,C31,C32C2X和C5X系列:C20,C25,C50每个系列的DSP都有其主要应用领域。
因为我是学的是永磁同步电机的驱动及控制,所选用和常用的是C2000系列的TMS320F28335。
1)在TI网站的搜索中用keyword 搜索资料,主要要注意的就是Application Notes,user guides比如不知道怎样进行VC5402的McBSP编程,搜McBSP和VC5402如果不知道如何设计VC5402和TLV320AIC23的接口以及编程,搜TLV320AIC23和VC5402;这样可以搜到一堆的资料,这些资料一般均有PDF文档说明和相应的源程序包提供,download后做少许改动即可。
2)版上发问,CSDN网,中国DSP网论坛等,找技术资料上TI官网,找数据手册推荐是datasheet5或者alldatasheet网站。
3)google搜,发帖。
4)再不济,找技术支持,碰运气了。实在不行,我也欢迎你们在底下提问,尽我所能。谢谢!
新手进行DSP开发学习之时,常常感受技术文档太多,哪本都有用,哪本都想看,无从下手。此时原则是只看入门必须的、只看和芯片相关的。根据学习的经验,如下的资料必看不可:
1)讲述DSP的CPU,memory,program memory addressing,data memory addressing的资料都需要看、外设资源的资料可以只看自己用到的部分;
2)C和汇编的编程指南需要看
3)汇编指令和C语言的运行时间支持库、DSPLIB等资料需要看其他的如:Applications Guide,Optimizing CC++Compiler User’s Guide,Assembly Language Tools User’s Guide 等资料留待入门之后再去看体会会更好一些。
1)根据应用领域选择TI推荐的DSP类型,比如我选用28335.
2)参考选定的DSP之EVM板,DSK等原理图,完成DSP最小系统搭建(包括外扩内存空间、电源复位系统、各控制信号管脚的连接、JTAG口的连接等);DSP最小系统主要包括TMS320F28335、JTAG电路(工程序下载debug)、复位电路、电源电路、晶振电路、存储电路。
3)根据具体应用需要,选择外围电路的扩展,一般如语音、视频、控制等领域均有成熟的电路可以从TI网站得到。外围电路与DSP的接口可参看EVM或DSK,以及所选外围电路芯片的典型接口设计原理图;最好外围电路芯片也选择TI的,这样的话不管硬件接口有现成原理图、很多连DSP与其接口的基本控制源码都有。
4)地址译码、IO扩展等用CPLD或者FPGA来做,将DSP的地址线、数据线、控制信号线如IS/PS/DS等都引进去有利于调试。
如果你不是纯做算法,而是在一个目标板上进行开发,需要使用DSP的片上外设,需要控制片外接口电路,那么建议在写程序前先好好将这个目标板的电路设计搞清楚。最重要的是程序、数据、I/O空间的译码。不管是否纯做算法还是软硬结合,DSP的CPU,memory,program memory addressing,data memory addressing的资料都需要看。
1)看CCS的使用指南
2)明白CMD文件的编写
3)明白中断向量表文件的编写,并定位在正确的地方
4)运行一个纯simulator的程序,了解CCS的各个操作
5)到TI网站下相关的源码,参考源码的结构进行编程
6)不论是C编程还是ASM编程,模块化是必须的
记住一条原则,TI的工程师在不断改进CCS的C程序优化编译器,现在C优化的效率可达到手工汇编的90%甚至更高。当然有的时候如果计算能力和内存资源是瓶颈,ASM还是有优势,比如G.729编解码。但是针对一般的应用开发,C是最好的选择。
新手编程则选择C和汇编混合编程更有利一些。
TI-DSP的发展同集成电路的发展一样,新的DSP都是3.3V的,但目前还有许多外围电路是5V的,因此在DSP系统中,经常有5V和3.3V的DSP混接问题。主要是由于DSP-TMS320F28335内核电压1.8V,而通用I/O口GPIO端电压是3.3V,所以在这些系统中,应注意:
1)DSP输出给5V的电路(如D/A),无需加任何缓冲电路,可以直接连接。
2)DSP输入5V的信号(如A/D),由于输入信号的电压>4V,超过了DSP的电源电压,DSP的外部信号没有保护电路,需要加缓冲,如74LVC245等,将5V信号变换成3.3V的信号。
3)仿真器的JTAG口的信号也必须为3.3V,否则有可能损坏DSP。
1)电源:TPS73HD3xx,TPS7333,TPS56100,PT64xx…
2)Flash:AM29F400,AM29LV400,SST39VF400…
3)SRAM:CY7C1021,CY7C1009,CY7C1049…
4)FIFO:CY7C425,CY7C42x5…
5)Dual port:CY7C136,CY7C133,CY7C1342…
6)SBSRAM:CY7C1329,CY7C1339…
7)SDRAM:HY57V651620BTC…
8)CPLD:CY37000系列,CY38000系列,CY39000系列…
9)PCI:PCI2040,CY7C09449…10)USB:AN21xx,CY7C68xxx…
11)Codec:TLV320AIC23,TLV320AIC10…
12)A/D,D/A:ADS7805,TLV2543…
具体资料见www.ti.com,http://www.cypress.com/
永磁同步电机(PMSM)调速系统由PMSM、功率主电路、控制电路、信号检测与调理电路、散热装置等共同组成。系统主电路由三相交流供电,经过二极管不可控整流以及滤波作用得到稳定的母线直流电压,然后根据需求量通过三相逆变器把母线直流逆变为频率可变的三相交流电,用于带动永磁同步电机。电机轴上装有配套的增量式光电编码器,用于检测电机转速和实现定位。主电路中的直流母线电压和电流传感器的输出信号都经过运算放大器组成的信号调理电路的处理反馈到主控制器的采样口,实现了信号电平的匹配,DSP输出的PWM脉冲信号,经功率放大和专用驱动芯片控制IGBT的开关动作。通过JTAG接口,将在上位机中编写的程序下载到DSP芯片中,在电机运行过程中,通过串口通信,实现DSP与上位机实时通讯和数据交换。
硬件系统设计主要包括主电路、控制电路、系统电源、检测电路及通信电路的设计。
博客我会讲解到研一所做的永磁同步电机的矢量控制、无感控制、自抗扰控制、滑模控制以及参数辨识与寻优的算法设计等内容。我会及时更新,还敬请关注,谢谢大家!!!
如果用一句话来勉励自己也送大家。那么仰望星空,脚踏实地;前路有光,初心莫忘。 链接: 知识改变命运。