1、DSP 技术及应用课程实验指导手册通信与电子工程学院2011-2012(1)实验一 卷积运算(含 VisualDSP+基础练习)1、实验目的(1) 熟悉 VisualDSP+集成开发调试环境的使用(2) 理解并调试卷积运算的编程实现2、实验设备安装了 VisualDSP+ (4.5 以上)的 PC 机。3、实验内容及原理(1) 熟悉 VisualDSP+的使用,主要内容包括:创建、打开工程;编译链接并执行程序;设置断点、观察变量和寄存器值的变化。(2) 阅读并调试卷积运算程序:对于离散线性时不变系统,设输入为 xmn,单位脉冲响应为 hmn,则系统的输出 ymn可表示为 x 与 h 的卷积,可
2、用公式表示如下: 21 2121k knmhxnmy要求在 VisualDSP+环境下对例程进行编译运行、调试和分析。4、实验步骤第一部分:(1)创建一个工程(以自己姓名的全拼命名) ,选择 BF533 作为处理器:FileNewProject,选择 Standard Application 类型,文件名自己定义,Next ,处理器选Blackfin,处理器类型选 BF533,Next,不选中 Add template code to the application,其余采用缺省设置即可。(2)生成一个打印 Hello DSP!的带 main 函数的 c 文件,并加入工程中:FileNewFi
3、le,然后在编辑区编辑文件,然后保存到工程所在目录。在工程名下的 Source Files 上点击右键,选择 Add Files to folder,选中新创建文件即可加入。(3)关闭当前工程,然后再次打开该工程。(4) (如无所需类型的 Session)生成一个模拟器(simulator )型的 Session:Session New Session ,选 BF533 作为处理器,Next ,选 Simulator,Next,选 ADSP-BF533 ADSP-BF5xx Single Processor Simulator,Finish 。然后选中其为当前 Session。(5)完成编译、
4、链接并执行,观察执行结果(在输出窗口打印出 Hello DSP!):ProjectBuild Project,等待断点显示在编辑区域,然后执行DebugRun。第二部分:(1)在 VisualDSP+下打开工程 conv_2d_533.dpj(安装路径BlackfinExamplesNo Hardware Required2D Convolution (ASM)) ,将其设置为活动工程(在该工程名上点击右键,选中 Set As Active Project) 。(2)利用菜单项Session-Select Session,选择 ADSP-BF533 模拟器(Simulator)session。
5、(3)执行菜单项ProjectBuild Project(或用 F7)编译该项目,这将自动加载可执行文件,程序会停在主程序的入口处。(4)执行菜单项DebugRun(或用 F5) ,程序执行到程序末尾的断点_lib_prog_term处,此时程序处于暂停状态。(5)执行菜单项ViewDebug WindowsImage Viewer ,打开 Image Configuration 窗口,按下图分别对 input 和 output 分别进行配置,然后点击 OK。则在 Image Viewer 窗口可以观察到输入图像与输出图像。(6)执行菜单项DebugReset,停止程序执行。然后在重复第(3)
6、步,接下来执行RegisterCoreData Register File、RegisterCoreDAG Register、Register CoreP Register,打开寄存器窗口;再执行ViewDebug WindowsExpressions打开表达式计算窗口,添加 input、output 、buffer 等变量以便观察其值的变化。还可执行MemoryBlackfin Memory来观察内存,在其输入框中输入input、buffer 等即可看到其地址和内容。(7)做好第六步的准备后,反复执行Debug Step into(或 F11 键)进行单步执行,注意观察寄存器和变量的变化情况
7、,理解每条语句的作用。5、实验报告内容要求(1)记下 output 的最终结果(2)解释第 31 行到 37 行零开销循环的执行流程和作用(3)请描述 input 图和 output 图的区别,并结合 33 低通滤波算子解释其原因。实验二 44 键盘实验1、实验目的(1)学习键盘扫描原理,学习基于 ADSP-BF53x 处理器的 I/O 扩展键盘程序设计方法。(2)理解并掌握 ADSP 的中断处理机制2、实验设备安装了 VisualDSP+软件的 PC 机,VisualDSP+版本为 4.5 以上。ADSP_BF533_EZ_KIT_Lite 实验台DM-KIT-EXBSSK-BF533(DM
8、-KIT-EXBSSK 模块、DM-KIT-EXBTFT 模块)44 键盘3、实验内容及原理内容:利用 ADSP-BF53x 处理器 EBIU 读取 CPLD 内部的键盘控制器键值寄存器,并将相应的键值信息打印出来。原理:BF53x 通过 EBIU 接口和 CPLD 连接,利用 CPLD 在内部设计出键盘控制器,进行键值的行列扫描,将键值返回给键值寄存器,BF53x 通过读取键值寄存器获得键盘的键值,根据键值做相应的处理。下图是矩阵键盘的硬件连接图,PA3PA0 为行线输入端,PA7PA4 为列线输出端,PA0-PA7 全部接上拉电阻。PA7PA4 向所有的列线分别且循环输出低电平即0111,
9、1011,1101,1110;读取各行线 PA3PA0 的状态,若行线状态全为高电平,则表明无键按下,若行线状态中有低电平,则表明有键按下。即:PA7PA4 四条列扫描线在每次输出低电平期间,同时读取各行线 PA3PA0 的状态,确定键值。例如:PA7PA4 输出“1011“ ,此时若读取 PA3PA0 的状态为“1110“,则表明按键 S2 被按下。将键盘 8 条扫描线与 BF53x 地址空间的 0x203E0000 相连接,对应如下表(逻辑 1 表示高电平,逻辑 0 表示低电平) 。在程序中不断向该地址循环写入 0xfe,0xfd,0xfb,0xf7,经短暂延时后,再读取该地址的值。最后根
10、据得到的值,判断被按下的键4、实验步骤(1)在 DM-KIT-EXBSSK-BF5xx 上插入 44 按键。(2)DM-KIT-EXBSSK-BF5xx 采用内部供电模式,直接为 DM-KIT-CBBF53x 上电。(3)运行 VisualDSP+,根据实际情况,将 DM-EDU-SSKBF53x 板与 VisualDSP+连接。(4)加载 DM_BF53x_KEYBOARD.dpj 工程文件,编译并运行(5)将 44 键盘接入 DM-KIT-EXBSSK-BF53x 上的键盘接口,编译并运行。观察输出窗口的内容。5、实验报告内容要求(1)记录自己的按键过程和输出窗口对应的输出。(2)解释函数
11、 Init_timer0_Interrupts 中语句的功能(3)列出按键09 、 AF 对应的键值实验三 图像采集与处理1、实验目的(1)学习基于 ADSP-BF533 处理器 PPI 接口的 CMOS 图像采集原理(2)理解并掌握 ADSP 中 DMA 配置及使用方法(3)设计图像处理算法实现在 YUV 颜色空间的图像二值化。2、实验设备安装了 VisualDSP+软件的 PC 机,VisualDSP+版本为 4.5 以上ADSP_BF533_EZ_KIT_Lite 实验台DM-KIT-EXBSSK-BF533(DM-KIT-EXBSSK 模块、DM-KIT-EXBCMOS-130mp 模
12、块、DM-KIT-EXBTFT 模块)3、实验内容及原理利用 ADSP-BF533 处理器 PPI 总线接口单元与 DM-KIT-EXBCMOS-130mp 连接,通过对 CMOS 配置实现图像采集和处理功能。系统整体框图如下:系统硬件包括 DM-KIT-EXBCMOS-130mp 模块,它能驱动三款 CMOS 摄相头模组,分别为 CN00303R0FD0 30 万像素,CN01305Z3HH4 130 万像素,TGA 130V10 130 万像素,它们选用的图像传感器分别为 PO3030K,PO3130D ,OV9653。本实验采用 OmniVision 公司的 OV9653 图像传感器为核
13、心的型号为 TGA 130V10 的CMOS 摄相头模块。OV9653 CMOS Sensor,输出 130 万像素,支持SXGA、 VGA、QVGA、QQVGA 、CIF 、QCIF 、QQCIF 输出模式;数据输出格式:YCbCr4:2:2、YUV4:2:2、8Bit Bayer data、5:6:5RGB、5:5:5RGB 、CCIR656;寄存器读写采用标准 I2C 总线结构。4、实验步骤(1)将 DM-KIT-EXBCMOS-130mp 与 DM-KIT-EXBSSK 连接,CMOS 模组朝向外侧。(2)为 DM-KIT-EXBSSK-BF533 选择合适的供电方式,为 EZKIT
14、上电。(3)运行 VisualDSP+,根据实际情况,将 EZKIT 板与 VisualDSP+连接。(4)加载 DM_BF53x_CMOS_OV9653.dpj 工程文件,编译并运行,等待中断。(5)产生中断后会打印如图,说明捕捉图象成功。待打印出如图信息后,选择菜单栏中的Debug 菜单下的 Halt,将程序停下。(7)运行菜单项 View-Debug Windows-Image viewer,弹出如下会话框,如下图设置,设置结束后点击 OK,在 Image Viewer 窗口观察拍摄到的图像。(8) (可选步骤)要采集 1280*1024 大小的图片,把 dm_bf5xx.h 头文件中的
15、下面这段注释掉的代码还原,定义 CAPTURE_MODE_SXGA。即将/#define CAPTURE_MODE_SXGA /定义摄像头采集图片的大小为 1280*1024更改为:#define CAPTURE_MODE_SXGA /定义摄像头采集图片的大小为 1280*1024(9) (可选步骤)重新 Build 程序(F7)并执行(F5 ) ,产生中断后会打印如下信息,说明捕捉图象成功。选择菜单栏中的 Debug 菜单下的 Halt,将程序停下。(10) (可选步骤)运行菜单项 View-Debug Windows-Image viewer ,弹出会话框,如下图设置参数。设置完成后点击 OK,会在 Image Viewer 中观察到拍摄的图象。(11)在 EX_INTERRUPT_HANDLER(DMA0_PPI_ISR)函数中实现对 YUV 图像的二值化。提示:YUV 存储格式是 YUYVYUYVYUYV,Y 代表亮度,UV 代表色度,因此需要将 UV 置零,而 Y 则根据选定的阈值(比如 100) ,大于阈值的就变成 255(0xff) ,小于阈值的置零。5、实验报告内容要求(1)分析 Init_Interrupts()与实验三的异同(2)在函数 Video_Frame_Capture 中,解释 DMA0 的参数配置的目的。(3)YUV 颜色空间的图像二值化算法代码。