1 前言
随着数字信号处理器(DSP)在通信、电子等领域的深入应用, DSP芯片的开发应用已经成为行业科技人员必须掌握的一门重要的实用技术。《DSP原理及应用》课程的开设旨在使学生掌握DSP 技术及其开发应用, 把握IT领域先进的发展方向, 更好的适应当今IT 领域的迅猛发展。
培养创新型人才,提高学生的实践能力和自学能力对教学提出了更高的要求,摒弃以往实验、实习、课程设计方式不够灵活,不能体现学生实际动手能力,学生所掌握的理论与实践相脱离的方式,设计简易DSP实验系统,采用HPI BootLoader进行程序加载脱离高额仿真器的限制,将实验室带在身边,能够极大激发学生的学习热情,提高课程的教学质量。
2 实践教学现状
目前许多高校开设的DSP实验课程主要依托一些教学仪器公司生产的实验箱,对学生入门DSP技术,更好的锻炼动手能力,培养创新型人才发面有所不足。
1. 接口不透明
实验平台采用FPGA或CPLD可编程器件进行逻辑译码、控制缺乏透明性。学生只能按照预留的接口进行编程,其连接方式过于复杂许多学生畏难而却步。
2. 灵活性差
实验平台价格高,且必须配置价格高昂的仿真器才能进行实验。这些设备只能存放于实验室,在实验室课时安排紧张情况下,不便于学生自主进行实验。
DSP实践性很强,课本知识只有通过实验、课程设计或科研活动等实践环节才能加深理解和掌握,而所学的知识最终也是要应用到DSP系统设计、调试中。在实验室资源紧张、学时有限的情况下,为学生提供大量的实践机会难以落实。
设计一种满足本科学生学习、入门DSP技术的小型实践用平台,让学生直观的认识和掌握DSP系统构成,进而编写程序实现某一功能,具有良好的现实意义。 3 实验平台特点、创新
灵活性(创新点)
该实验系统在电路设计中利用STC单片机在线编程的功能,首先将用户程序下载到单片机ROM中,再利用TI DSP芯片HPI接口进行程序加载(Boot Loader),最终启动DSP芯片执行用户程序,区别于利用JTAG接口进行调试的方法。这样,该实验系统可以脱离高额仿真器的限制,学生将实验室带在身边。
开放性
该实验系统中所有接口和器件引脚对学生开放,逻辑控制较为简单、透明,学生能够非常清楚的了解所采用的接口,完成程序设计和编写,从而激发学生学习兴趣和彻底理解和掌握DSP芯片的软硬件开放方法。
低成本
面向本科学生进行DSP技术入门实验,系统采用基本配置,且不需要仿真器,成本极低。
实验的层次性
在该系统上可完成DSP课程中的基础性验证型实验;学生根据开放的接口和引脚可以完成DSP的设计性实验。同时配有单片机、音频接口等电路,可在该系统上完成大量复杂的综合设计型实验,达到了一机多用的功能。
4 实验平台设计
本系统以TMS320VC5402的最小系统为核心,扩展了单片机最小系统、语音处理电路、HPI接口设计、4×4键盘、LED、I/O扩展电路以及辅助电路等。系统总体设计结构如图1所示。
利用该实验系统,学生可以将《DSP原理及应用》课程的主要内容联系起来,如DSP最小系统设计、存储空间扩展、接口设计、自启动设计等,同时可以将一些数字信号处理课程中的基本算法进行验证,更好的掌握DSP系统的软硬件设计。
DSP最小系统
DSP最小系统设计以TMS320VC5402为核心,配置电源管理芯片、JTAG仿真口、时钟电路及用于系统测试的电路,使用TI CCS(Code Compose Studio)开发环境进行简单程序的编写、编译、下载和运行调试,让学生对DSP系统开发有一个初步的认识。
单片机最小系统RS232HPI BOOT逻辑译码PC音频编解码TMS320VC5402DSP最小系统键盘LED等图1:系统总体设计结构图
HPI BootLoader设计
进行HPI接口程序设计,包含了单片机和DSP相关技术,提高学生综合、灵活应用知识的能力。学生首先在TI CCS集成开发环境中编写用户程序编译后形成COFF文件(.out文件),利用TI提供的命令HEX500将.out文件转换为.hex文件。利用STC单片机在线烧写的功能,将这一文件和单片机控制DSP HPI接口程序一起编译,采用RS232串口一同烧写到STC单片机片内ROM中。
DSP复位后检测MP/MC=0为自启动模式, DSP片内程序BootLoaer(自举程序)查询HPI接口是否可以进行自启动如图2所示:在启动以后,DSP片内0x7F地址的值被置为0,BootLoader不断检验0x7F地址处是否出现了可用的程序指针的跳转地址。当其发现该地址内的值不为0时,即判定为DSP已由外部单片机进行了HPI自举程序加载,并按照该值跳转PC指针,开始运行,从而完成HPI方式自举。通过观察实验结果来验证程序的正确性。
图2:HPI启动流程图
音频设计
多通道缓冲串口(MCBSP)是《DSP原理及应用》课程中重要内容之一,通过音频接口设计进一步了解相关硬件引脚功能,而功能的实现是通过软件控制寄存器来实现的。
在掌握语音芯片(TLV320AIC23)的功能后,设计出采用MCBSP对TLV320AIC23的控制接口和数据接口电路,通过软件实现的语音信号的采集、处理和播放,并将一些简单的如数字滤波器、FFT算法进行实现,能够极大的推动学生的学习兴趣。
I/O设计
DSP芯片存在三种空间分别是程序、数据和I/O空间。DSP芯片通过/IS以及/IOSTRB外部I/O空间片选和锁存,结合地址线、数据线对I/O空间进行读写操作。应用数字电路基础课程的74LVC系列译码器件进行逻辑设计,加以编程实现如4×4键盘、LED的读写控制,可以化抽象为具体,并触类旁通掌握程序、数据空间扩展方法。
电源设计
TMS320VC5402芯片采用低电压供电方式,这可以大大降低DSP的功耗, TMS320VC5402的电源分两种,即内核电源和I/O电源。其中, I/O 电源采用3.3V,而内核电源为1.8V。为了满足TMS320VC5402对电源的要求,并降低实验板成本,采用AMS1117芯片分别提供1.8V和3.3V电源,满足系统中所有芯片的供电需求。
5 实验平台电路图(见后页)
图3:DSP基本电路
图4:HPI 接口电路 音频电路 图5:I/O 接口电路 电源电路
+3.3V+1.8VGND+3.3V+1.8VGND+1.8V+3.3VGND+1.8VUE1144143142141140139138137136135134133132131130129128127126125124123122121120119118117116115114113112111110109+3.3VGND+3.3V+3.3V+3.3V+3.3V+3.3V+3.3V+3.3V+3.3V+3.3V+3.3V+3.3VRE5RE6RE7RE8RE9RE10RE11RE12RE13RE14RE154.7K4.7K10K10K10K10K10K10K10K10K10KEMU1EMU0DSP_RSTREADY/NMI/INT0/INT1/INT2/INT3/HOLD/BIODSP_/HDS2DSP_/HDS1KEY5GND12DSP_HD5DSP_HD6DSP_HD4DSP_D7DSP_D6NCNCCVddA9A8A7A6A5A4HD6A3A2A1A0DVddHDS2VssHDS1NCCVddHD5D15D14D13HD4D12D11D10D9D8D7D6DVddVssNCA19+3.3V108107106105104103102101100999897969594939291908988878685848382818079787776757473LE1GND+3.3VDSP_HD7DSP_A12DSP_A13DSP_A14DSP_A15+3.3VGND+1.8VDSP_/HCSDSP_HR/WREADY/DSP_IS/IOSTRBDSP_XF/HOLD/BIOMP/MC+3.3VGNDNCNCHCNTL0VssBCLKR0BCLKR1BFSR0BFSR1BDR0HCNTL1BDR1BCLKX0BCLKX1VssHINT/TOUT1CVddBFSX0BFSX1HRDYDVddVssHD0BDX0BDX1IACKHBILNMIINT0INT1INT2INT3CVddHD1VssNCNC123456789101112131415161718192021222324252627282930313233343536NCNCVssDVddA10HD7A11A12A13A14A15NCHASVssNCCVddHCSHR/WREADYPSDSISR/WMSTRBIOSTRBMSCXFHOLDAIAQHOLDBIOMP/MCDVddVssNCNCTMS320VC5402A18A17VssA16D5D4D3D2D1D0RSX2/CLKINX1HD3CLKOUTVssHPIENACVddNCTMSTCKTRSTTDITDOEMU1/OFFEMU0TOUTHD2NCCLKMD3CLKMD2CLKMD1VssDVddNCNCBEADGNDDSP_D5DSP_D4DSP_D3DSP_D2DSP_D1DSP_D0RE1DSP_HD3GND+3.3V+1.8VTMSTCK/TRSTTDITDOEMU1EMU01DSP_HD2135JE5JE1246GNDGNDGND133JE4TMSTDI+3.3VTDOTCKTCKEMU0135791113+3.3VCE10.1YE120MHZGNDJE3JTAG2468101214/TRSTGNDGNDGNDGNDEMU1DSP_RSTGND+3.3VGND/INT2+1.8V/NMI/INT0/INT1/INT2/INT3+1.8V+3.3VGNDGNDBOOT_SELDSP_CNTL0DSP_BDR0DSP_CNTL1DSP_BCLKX0DSP_BCLKX1DSP_BFSX0DSP_BFSX1DSP_HD0DSP_BDX0DSP_BDX1DSP_HBILDSP_XFDXF1LN012012GNDDSP_BCLKR0DSP_BFSR0图3: DSP芯片基本电路
DSP_HD1GND321+3.3VMP/MCGND373839404142434445464748495051525354555657585960616263646566676869707172JE2RE410KRE310KRE210KKEY6DSP_RST+3.3VGNDSPEAK12345AC1AC2GND10uf/16v10uf/16v++LHPOUTRHPOUT+3.3VGND+3.3VL1L2100uH100uHAVDDAGND23CG110423CG2104AICAVDDMIC12345AR1GNDAR2AC310uf/16v+JE6DSP_BCLKX0DSP_BCLKR0DSP_BFSX0DSP_BFSR0DSP_BDX0DSP_BDR0DSP_BFSX1DSP_BCLKX1DSP_BDX1BCLK_AIC23BCLK_AIC23LRCIN_AIC23LRCOUT_AIC23DIN_AIC23DOUT_AIC23/CS_AICSCLK_AICSDI_AICGND12345678910CON104.7KMICIN4.7KMICBIASBCLK_AIC23DIN_AIC23LRCIN_AIC23DOUT_AIC23LRCOUT_AIC23AVDDLHPOUTRHPOUTAGNDAVDD1234567891011121314BVDDDGNDCLKOUTDVDDBCLKXTODINXTI/MCLKLRCINSCLKDOUTSDINLRCOUTMODEHPVDD/CSLHPOUTLLINEINRHPOUTRLINEINHPGNDMICINLOUTMICBIASROUTVMIDAVDDAGNDTLV320AIC232827262524232221201918171615GND+3.3VSCLK_AICSDI_AIC+3.3V/CS_AICMICINMICBIASVMIDAGND+AC410uf/16vGNDGNDCG2422PGNDY116.9MHZGNDCG2522P23CG3104DATA INTERFACEMCUDSP_HBILDSP_CNTL0DSP_CNTL1DSP_HR/WDSP_/HCS212223242526272810111213141516173029MCU_TXDMCUPOWERCG16103CG200.1ufCG210.1ufMCUPOWERMCUPOWERCG10103GNDSTC89LE51MCUR1560KEY74020P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RDALE/PROGPSENVCCGNDP0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7XTAL1XTAL2EA/VPPRST3938373635343332123456781918319MCUPOWERGNDCG27104DSP_HD0DSP_HD1DSP_HD2DSP_HD3DSP_HD4DSP_HD5DSP_HD6DSP_HD7CONTROL INTERFACEMCUPOWERMCUPOWERMCU_RXDMCU_TXDRE1710KRE1610KCOM1162738495MCU_RXD129PC_RXDPC_TXDGNDGNDPC_RXD147R232R1OUTR2OUTT1OUTT2OUTR1INR2INT2INT1INC1+C1-C2+C2-V+V-1381011134526PC_TXDDSP_/HDS2DSP_/HDS1CG26104GNDY212MHZ15GNDVCCCONNECTOR DB9MCUPOWER16AC5+MAX3232CG230.1ufCG220.1ufGNDGND10uf/16vGNDMCUR210K图4 :HPI 接口电路 音频电路
+3.3V16IOSEL UA23AB1G74LV1394Y05Y16Y27Y3IODATA UA24A06A18A2A31OE20+3.3VKEY074lvc24418Y016Y114Y212Y3DSP_D0DSP_D1DSP_D2DSP_D3KEY1KEY2KEY3GNDLED0+3.3VIODATA UB1113A015A117A2A319OE20LED174lvc2449Y07Y15Y23Y3LED0LED1LED2LED3LED2LED3DD01DD11DD21DD31LN012012GNDLN012012GNDLN012012GNDLN012012GNDKEYR010KKEYR110KKEYR210KKEYR310K+3.3V+3.3V+3.3VKEY2+3.3VKEY0KEY0KEY1GNDKEY1GNDGNDVCC/IOOEVCCDSP_A14DSP_A15/KEYOEKEY0KEY1KEY2KEY3/KEYOEKEY2KEY3GNDKEY3GND/IOSTRB/DSP_IS/IOOE123+3.3VIOSEL UB1413AB15G1674LV13912Y011Y110Y29Y3KEY VALUE--> DSP_D0-3DSP READ KEY VALUE WHEN A15 A14=0 AND A13 A12!=0GNDVCC/IOOE8/LEDOEGNDDSP_D4-8-->LED VALUEDSP WRITE LED VALUE WHEN A13 A12=0 AND A15 14!=010GNDVCCDSP_A12DSP_A13/LEDOEDSP_D4DSP_D5DSP_D6DSP_D710IS_SELGNDGND8GNDP3.3V2J3.311+3.3VDG23.3VRG2300GND+3.3VVINGND123POWER+5VGNDGND+5VCJT1117_3.33VOUT2+PUC210ufGNDCJT1117_1.8VINGND3VOUT2JMCUP1+5V INPUTP3.3V212MCUPOWERDG3MCURG3300GND+5VRG13001DG1LN012012GNDGND+5V+3.3VJ1.8+PUC410uf21P1.8V221+PUC10.1uf1+1.8VDG41.8RG4+1.8VCG1104CG2104CG3104CG4104CG5104CG6103+PUC30.1ufCG7103CG8103CG9103GND300GNDGND+1.8VCG11104CG12104CG13104CG14104CG15104GND图5 :I/O 接口电路 电源电路
1 LAB1~LAB11 为11个实验文档可以使用JTAG仿真器进行实验,若要脱离JTAG仿真器要使
用HPI BOOT,具体方法参考”HPI启动注意事项”
其中有一个滤波器FIR滤波器系数产生的simulink文件 filtercoeff.mdl,可以根据实际情况进行
设定
单片机在线编程工具安装文件:Stcisp31.exe HPI启动注意事项:
1。change 中点change.bat文件将*.out文件转换位dspcode.h文件,拷贝到load文件夹中进行编译完成load.hex进行烧写!
2。download.c 程序中,0x007f的值为ccs编译时候 _c_int00的地址值,就ok啦!!!
声明:这里 DSP 运用的是 TMS320VC5402,MP/MC 管脚接地,程序运行于内部RAM。 1) 在HPI Boot 时最好将 HINT 与 INT2 直接相连,同时加上拉电阻。这样可以保证 DSP 在启动后查询 Boot 方式时直接进行 HPI %% Boot。
最好清零 HINT,即向 DSP 的 HPIC 寄存器的 HINT 位 2) 在主机向 DSP 下载应用程序前,
写 1。
3) 在主机向 DSP 下载程序之前,向 DSP 的 0x7F 地址写零。
4) 在主机向 DSP 下载完程序之后,先将 DSP 的 OVLY 位设为 1,确保 DSP 的程序寻址位于 DSP 的内部 RAM。
5)上述工作完成后,将 DSP 的入口地址写入到 0x7F 寄存器,DSP开始运行。(注意:这里的入口地址应该是程序的复位向量所在地址%%,通常的链接采用了 -c 参数,这时自动的将 _c_int00 函数作为系统的入口函数,该函数的地址即是 DSP 的入口地址。同时因为系统的中%% 断向量表中的复位向量指向的是 _c_int00,所以将入口地址设为中断向量表的复位向量地址也可以)(在单片机程序中发送给DSP的数据第一个数作为高位,第二个数作为低位的。) LAB11_HPI BOOT文件夹下
CHANGE:out文件转换dspcode.h文档。 LOAD: 为STC单片机keril C文档程序。
因篇幅问题不能全部显示,请点此查看更多更全内容