徐景皓
(苏州市职业大学 电子信息工程系,江苏 苏州 215104)
在DSP课程中开展实践教学的探讨
徐景皓
(苏州市职业大学 电子信息工程系,江苏 苏州 215104)
阐述在高职高专院校电子类专业的DSP课程中开展实践教学的基本目标、原则和方法,系统地介绍了一系列DSP实验的选择、设计和完善的过程,取得了良好的教学效果.
数字信号处理;集成开发环境;通用扩展语言
“DSP原理及应用”是电子信息工程系开设的一门重要的专业技术课程,旨在拓宽学生专业口径,使其初步掌握数字信号处理(digital signal processor,DSP)这一新兴技术的入门知识和技能.鉴于高职高专院校以培养应用型人才为目标,本课程在课堂教学中应避免数字信号处理的艰深知识,以介绍DSP芯片的结构原理及编程应用的方法为主;而在实践教学中,则应精心地选择和设计实验,达到知识与技能同步发展,知行合一的教学目标[1].本文笔者根据多年的教学经验,将DSP实验划分为初级、提高级和综合级三个层次,形成了一套由浅入深的实验体系,收到了良好的教学效果.
初级阶段的目标是让学生掌握DSP程序基本的编写及调试技术.选用的芯片是TMS320C54xDSP,开发工具是集成开发环境(code composer studio,CCS).这是目前业界最流行的DSP开发系统,在它内部集成了DSP代码生成工具,汇编、链接和调试DSP目标程序工具,以及实时分析插件DSP/BIOS和实时数据交换模块RTDX等单元[2].系统在Windows环境下运行,具有和Visual C++等高级语言相似的交互式界面,优点是使用方便、功能强大,缺点是项目繁多、操作复杂.这使只学过单片机基于DOS环境的调试工具的学生感到困难,往往做到第三、第四个实验时还不能掌握CCS环境的基本功能,因此,初级阶段应特别关注CCS环境的使用方法,先用两个简单易学的实验让学生建立起对DSP程序和开发工具的初步认知[2].
实验一选自文献[3]第3章“汇编语言开发工具”中的一个范例.这是一个用汇编语言写成的程序,功能是计算y=a1*x1+ a2*x2+ a3*x3+ a4*x4,即数字信号处理中最基础的迭代运算.程序虽然简单,却包含了一个典型汇编DSP程序所具有的特点.它以COFF公共目标文件格式写成,采取段(section)为基本组织单元.代码中包含了5种基本的段:代码段,数据段,未初始化变量段,自定义未初始化段,自定义已初始化段.代码第一部分是对变量及常量的初始化,第二部分完成迭代运算,先将存放在程序区的系数传递到数据区,再调用子程序SUM计算迭代结果(代码略).程序条理清晰,可读性强,运用了单周期传递数据指令MVPD和单周期完成乘法累加指令MAC这两种DSP特有的高效率的运算指令,很好地展示了DSP编程注重效率、优化算法的技术特点.学生通过这个简单的程序,能够学到DSP编程的一些基本思想以及COFF公共文件的格式和语法.
实验一的主程序放在汇编文件example.asm中,为了让它能在一个真实或模拟的DSP芯片上运行,还必须为它编写中断向量表文件vectors.asm和链接命令文件example.cmd,中断向量表文件为程序运行提供正确的入口地址,而链接命令文件定义DSP芯片物理内存的起始地址和长度,并将主程序中定义的各种段(如代码段,数据段等)分配到内存空间中.它们将与汇编文件example.asm一起构建一个“工程”.工程(Project)是CCS开发环境特有的概念,任何DSP程序都必须在工程下进行组织,一切和任务相关的文件都放在同一个工程目录中,进行统一管理和调度.建立工程是一个繁琐而容易出错的过程,学生不容易掌握,可以先在课堂上向学生讲授工程的概念,实验时也不要立刻让学生着手创建工程,而是先用多媒体演示一个DSP工程的示例,让学生依照范例建立自己的工程,并编译调试.
实验二选自文献[3]第5章“汇编语言程序设计”,程序实现定点数与浮点数的转换,以及浮点乘法运算等功能.算法比实验一复杂,要用到冗余符号位提取指数,归一化左移、右移等比较抽象的概念和指令.选取浮点乘法作为第二个实验,有助于学生加深对理论知识的掌握.实验二的调试难度也有所增加,由于源程序存在兼容性错误,学生必须使用断点和单步调试技术,观察每条指令执行时DSP芯片内部各寄存器、累加器的改变,以及内存变量、地址指针等参数的改变,跟踪浮点运算的每一个步骤,才能定位错误,获得正确的运算结果.
在这个阶段应选取一些实用的DSP算法,使用CCS工具的高级调试功能,提高学生的编程技术和调试水平[4].
实验三选用正弦调幅波信号,程序用C语言写成,使用CCS提供的通用扩展语言(general extention language,GEL)调试程序.GEL语言是一种类似于C语言的解释性语言,它可以用来创建GEL函数,建立GEL文件,让用户按照需要配置程序仿真运行的环境,动态地设定参数变量,这样当调试中需要经常修改某些参数、比较计算结果时,就不必每次都去修改源程序,再重新编译链接,大大提高了效率.本实验中调制度M是所需动态设置的参数,方法是向正弦调幅波工程目录添加GEL文件:vary_M.gel,在此文件中添加GEL函数,分别使用关键字menuitem和slider构建用于操作参数M的菜单项和滑动条,试调制度从0%变化到100%.调试时,在菜单项中选择GEL→My Functions→vary_M命令,就可用拉动滑动条或键入数值的方法改变调制度M,M每变化一次,计算500个采样点的正弦调幅波信号,并通过恰当的设置在CCS环境的图形窗口中即时显示不同调制度下的信号波形.
实验四选用FIR(有限长冲激响应)滤波器,功能是产生一个高频正弦波与低频正弦波的混和信号,并让它周期性地通过一个32阶的低通FIR滤波器,滤掉高频分量,保留低频分量[5].程序用C语言编写,FIR算法采取循环缓冲区法实现.实验中学生将使用一种CCS环境提供的动态模拟仿真技术,在菜单项中选择DEBUG→Animate,然后恰当地设置参数和断点,使程序每运行256个采样点输出一次滤波结果,经图像处理软件工具处理后,在图形界面中显示不断向前移动的模拟信号波形,好像在示波器上看见的真实信号一样.输入与输出信号可以在同一视窗中显示,直观地展现滤波效果,利用图像处理软件的FFT功能还可以实时显示输入和输出信号的频谱(图略).
前面四个实验都是在CCS环境中采用软件仿真工具实现的.CCS还支持各种类型的硬件仿真设备,我系引进的ICETEK-D80型DSP教学实验箱,以TMS320C55xDSP芯片(C54x的升级型)为核心,集成了信号源、仿真器模块、显示控制模块、测试模块以及DSP评估板模块等硬件外设单元,可以用来开展软硬件相接合的综合级的DSP实验,进一步提升学生设计和调试DSP程序的能力.
实验五是交通灯综合控制,学生可利用ICETEK实验箱提供的显示控制设备,设计模拟十字路口交通灯控制的程序.实验箱上有12只发光二极管,分为东西南北四组,红黄绿三色,通过这些二极管的亮灭实现交通信号的模拟.计时使用DSP芯片的内片定时器,定时产生时钟计数,控制二极管亮灭的时间.除正常情况外,可在实验箱控制模块上用键盘产生外部中断,模拟突发情况,中断交通灯显示顺序.程序采取状态机控制方法设计,首先列举所有可能发生的状态,再将这些状态编号,按顺序循环产生每个状态;对于突发状态,则采用在正常序列中插入特殊控制序列的方法处理.程序所有状态如表1所示.
实验六是语音采集和放送,学生将使用TCETEK实验箱上的语音code芯片TLV320AIC23,与DSP的多通道串行口McBSP进行接口设计,实现语音信号的采集和放送.程序首先进行初始化,DSP通过I2C总线将配置命令发送到AIC23,配置完成后ATC23开始工作.语音信号的输入是由AIC23通过AD转换采集输入的语音信号,每采集一个信号,将数据发送到DSP的McBSP接口,由DSP 读取;语音信号的输出是由DSP通过McBSP接口将语音数据发送给AIC23,由AIC23的DA器件转换成模拟信号输出.原始语音信号拟用人声,通过麦克风传入实验箱采集电路,经DSP处理后由耳机输出还原.还可在声音放送中加入数字回声,数字回声的强弱与原声的延迟均可在程序中设定和调整,拟作为实验的思考题,让学生修改实验程序,实现添加回声的功能.
表1 程序所有状态
DSP课程的实践教学,不仅包括课程实验,还有课程设计以及毕业设计等综合性、实践性更强的环节.如何将DSP课程的这些实践环节有机地结合起来,形成一整套彼此关联、互相渗透的实践教学模型,是一个值得思索的课题.限于篇幅,本文不在此进行探讨,留待将来继续研究.
[1]权建军. 高职“DSP应用技术”教学方法探讨[J]. 甘肃联合大学学报:自然科学版,2012(2):112-114.
[2]杨光,冯涛,秦永左. DSP应用技术实验教学的研究与探索[J]. 中国管理信息化,2010(21):78-79.
[3]戴明桢,周建江. TMS320C54xDSP结构、原理及应用[M]. 北京:北京航空航天大学出版社,2007:137-164.
[4]路敬!,刘霞,刘继承,等. DSP原理与应用课程教学改革的探索与实践[J]. 价值工程,2011(2):242-243.
[5]宁更新,李建中,方学阳,等. DSP实验多元化教学方法的探索[J]. 实验室研究与探索,2011(7):121-122.
[6]畅福善,畅年生. 基于TMS320VC5409的DSP教学系统的设计与实现[J]. 太原师范学院学报,2009,8(1):94-99.
The Research of the Practical Teaching in DSP Class
XU Jing-hao
(Department of Electronic Information Engineering,Suzhou Vocational University,Suzhou 215104,China)
This paper discusses the objectives,principles,and methods of DSP’s practical class of electronic profession in vocational institute,and gives out the results by a series of carefully choiced and designed tests which have been experimented in long periods of teaching this class by the author.
digital signal processor;code composer studio;general extention language
TP391.6
A
1008-5475(2012)04-0076-03
2012-03-14;
2012-04-29
徐景皓(1974-),男,贵州贵阳人,讲师,硕士,主要从事宽带网络通信研究.
(责任编辑:沈凤英)