1 / 47

DSP 实验讲稿

DSP 实验讲稿. 上海理工大学光电学院. 实验目的及意义 实验任务分析 程序结构说明 实验工具介绍 帮助获取方法 实验进程安排 考核办法. 实验目的及意义. 掌握 DSP 芯片汇编语言开发过程 熟悉 TMS320C240x 的指令集 熟悉 CCS 仿真环境 培养综合编程能力. 实验任务分析. 六个实验选项 其中前五个实验属于每位同学必须完成的基本实验; 实验内容 5 属于一般难度的实验,评分在 0~80 分; 实验内容 6~9 是有较高难度的实验,评分范围在 0~100 分。 同学可在内容 6 ~9 之中自行选择一个来完成。. 四选一.

palani
Download Presentation

DSP 实验讲稿

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. DSP 实验讲稿 上海理工大学光电学院

  2. 实验目的及意义 • 实验任务分析 • 程序结构说明 • 实验工具介绍 • 帮助获取方法 • 实验进程安排 • 考核办法

  3. 实验目的及意义 • 掌握DSP芯片汇编语言开发过程 • 熟悉TMS320C240x的指令集 • 熟悉CCS仿真环境 • 培养综合编程能力

  4. 实验任务分析 • 六个实验选项 • 其中前五个实验属于每位同学必须完成的基本实验; • 实验内容5 属于一般难度的实验,评分在0~80分; • 实验内容6~9是有较高难度的实验,评分范围在0~100分。 • 同学可在内容6~9之中自行选择一个来完成。

  5. 四选一 实验内容 • 集成开发环境CCS基础 • 软件延时程序编程及调试 • 定点数除法编程及调试 • 可屏蔽中断的编程及调试 • 浮点数的定点表示 • 交通灯控制 • 步进电机控制 • 信号发生器设计 • 滤波器设计

  6. 集成开发环境CCS基础 • 通过创建一个简单的应用工程,初步熟悉CCS的使用和基本的程序调试运行过程。 • 了解TMS320C240X系列汇编语言程序的基本格式,以及编译、连接的基本过程。 • 一个完整的DSP程序至少包含三个部分:程序代码、头文件、链接配置文件(*.cmd)。

  7. 软件延时程序编程及调试 • 编写一个软件延时程序。延时时间为4秒钟。在所给的实验代码中加入部分语句实现该功能。该实验箱所用的输入时钟为10MHz,由外部时钟芯片提供。可以对通过对系统控制和状态寄存器SCSR1的设置改变系统的时钟频率。

  8. 定点数除法编程及调试 • 除法运算的原理 1.除法运算的过程 TMS320系列的指令集中没有提供除法指令,为了实现除法运算,需要编写除法子程序。二进制除法是乘法的逆运算。乘法包括一系列的移位和加法,而除法可以分解为一系列的减法和移位。

  9. 开始 求被除数和除数的乘积并保存该乘积 保存被除数,求被除数和除数的绝对值 用SUBC指令和RPT指令求16位正数除法并保存商和余数 否 乘积为正? 求“0-商”并保存结果 是 否 被除数为正? 求“0-余数”并保存结果 是 返回 定点数除法编程及调试 2.除法运算的流程 有符号数除法运算的流程图如下:

  10. 可屏蔽中断的编程和调试 • 本实验要求用通用定时器1产生4s的延时。产生4s的延时功能用定时器1的周期中断来实现,该周期中断由2级中断INT2来控制。 • DSP的中断为两级中断管理方式,故而需要清除的中断标志位除了下级中断源(此实验中为T1PR)自身的中断标志位(在寄存器EVAIFRA中)外,还需要清它对应的上级中断(DSP共有六个上级中断INT1~INT6,T1PR挂在INT2下面)的标志位(上级中断的标志位在寄存器IFR中)。

  11. 定点小数算术运算程序设计 • 数的定标即指人为确定小数位置,以便实现定点运算。 • 方法 • Q表示法 • S表示法 • 定点数xq与浮点数x的换算方法 • 公式 • 例题

  12. 例1:将浮点数0.5表示为Q=15的定点数。 • 解: • 例2:求定标Q=8表示的定点二进制数0000,0010,1010,0000对应的浮点数。 • 解:先求Q8格式二进制数对应的定点数xq; • 再求对应的浮点数x。

  13. bit15 bit14~bit13 bit12~bit0 bit15 bit14~bit13 bit12~bit0 0 1 01 10 1,0000,0000,0000 1,0000,0000,0000 • 例1:将浮点数1.5表示为Q=13的定点数。 • 解: • 转化为16进制表示为:3000H • 例2:将浮点数-1.5表示为Q=13的定点数。 • 解:先求1.5对应的定点数xq =12288; • 1.5对应的十六进制表示为3000H; • 求其 补码:D000H

  14. bit15 bit14~biti bit(i-1)~bit0 S (int) (float) • TMS320C24X系列DSP芯片的小数表示 • 定点乘法 • 纯小数×纯小数(Q15×Q15) • 纯整数×纯整数(Q0×Q0) • 混合乘法 • 定点加法 • 定点除法

  15. 纯小数乘纯小数 • 分析 • Q15×Q15=Q30 • 乘积中有两个符号位,30位小数。故需左移去除多余的符号位,并且只需保留15位小数即可满足精度要求。 • 例题:假设当前数据页的DP1和DP2两单元中分别存放两个乘数,乘积结果存入ANS单元。 LT DP1 MPY DP2 PAC SACH ANS,1

  16. 纯整数×纯整数 • Q0×Q0= Q0 • 乘积有两位符号位,30个整数位和0个小数位。 • Si.j×Sm.n=S(i+m),(j+n) • 此类乘法中,既要满足数值的表示范围要求又要保证乘积结果的精度足够,故需编程者预先估计运算结果的大致范围。 混合乘法

  17. Q13×Q13 • S2.13×S2.13=S(2+2),(13+13)= S4,26 • 取S4,11即可,对乘积左移一位去除多余的符号位,然后保留高16位即可 LT DP1 MPY DP2 PAC SACH ANS,1

  18. 定点加法 • 相加的两数必须采用相同的Q点表示。 • 加法结果保存位数的确定需根据和的范围和精度的要求来定 • 保留32位结果 LACC DP1 ADD DP2 SACH ANSH SACL ANSL • 保留16位结果 LACC DP1,15 ADD DP2,15 SACH ANS

  19. 定点除法 • 设计一个子程序求解有符号定点数的除法(分子小于分母)。设:被除数放在MUNERA中,除数放在DENOM中,商放在QUOT中。 DIV: LT NUMERA SACL QUOT MPY DENOM LACC TEMSGN PAC BCND B1,GEQ SACH TEMSGN LACC QUOT LACC DENOM NEG ABS SACL QUOT SACL DENOM B1: RET LACC NUMERA ABS RPT #15 SUBC DENOM

  20. 设计一个子程序求解指定商精度为Q FRAC 的有符号定点数的除法。设:被除数放在MUNERA中,除数放在DENOM中,商放在QUOT中。 DIV: LT NUMERA RPT FRAC MPY DENOM SUBC DENOM PAC SACL QUOT SACH TEMSGNLACC TEMSGN LACC DENOM BCND B1,GEQ ABS LACC QUOT SACL DENOM NEG LACC #15 SACL QUOT ADD FRACB1: RET SACL FRAC LACC NUMERA ABS

  21. 交通灯控制 • 要求: 初始状态为南北向红灯,东西向绿灯; 4秒以后, 南北向黄灯,东西向绿灯闪动; 1秒以后,南北向绿灯,东西向红灯; 4秒以后,南北向绿灯闪动;东西向黄灯; 1秒以后,南北向红灯,东西向绿灯。 如前循环20秒之后,进入夜间模式,两向均为黄灯闪动。

  22. 分析 • 时间控制(4秒通行、1秒过渡、闪动频率控制) • 软件延时 该实验箱用10MHZ外部时钟芯片给LF2407提供时钟,且使能LF2407片上 PLL电路。 PLL倍频系数由系统控制和状态寄存器SCSR1的bit11~9控制。上电复位时,该三位为111,即2分频。 • 定时器延时 • 交通灯控制 • 交通灯控制口地址:0x8000(扩展总线存储空间映射的数据空间) • 该控制口所属数据页地址确定:4M×16-位的扩展总线存储空间分为128个32K×16-位的存储空间页, 7位页地址由扩展总线存储器空间页地址寄存器(映射在IO空间的0x0020,只写),页地址取1110,0000

  23. 步进电机控制 • 要求: 步进电机以每分钟30转的转速,先以四相四拍的方式正转两圈,然后停转1秒,再以四相八拍方式反转两圈后停止。

  24. 分析 • 电机转动控制 • 转速:写入控制口的数据间的时间间隔,每写入一个数据,电机转动一个步距角(全步)或1/2个步距角(半步) • 转动方向:写入控制口的数据顺序 • 转动圈数:写入控制口的数据的总个数(次数) • 电机转动控制口 • 步进电机的控制口地址: 0x8001(为扩展总线存储空间映射的数据空间) • 扩展总线存储器空间页地址寄存器:映射在IO空间的0x0020(只写),页地址取1110,0000

  25. 波形发生器设计 • 要求:编写程序段,通过实验箱上的DAC7724产生方波、三角波及正弦波。 • 方波:根据方波周期值软件延时 • 三角波:逐次加一再逐次减一 • 正弦波:查表法 • 利用串口连接PC上设置界面 • 利用DAC7724输出波形 • 使用示波器观察波形

  26. 设计原理

  27. 设计原理

  28. 寄存器及指令 • 中断设置 • EVA中的定时器T1设置 • 串行口SCI设置 • 动态显示指令DMOV • cmd文件理解 • 表格查找方法及TBLR使用

  29. 使用滤波器进行信号分析 • 使用CCS的GRAPH观察输入信号x (n) 波形时域图及频域图 • 使用MATLAB或其它高级语言产生滤波器系数h(n) • 使用DSP完成滤波操作,提取需要信号y(n)

  30. 使用CCS的GRAPH观察输入信号x(n) 波形时域图及频域图 • 打开CCS2000并按照指导书步骤装载数据; • View-graph Time/Frequency… • 设置相关参数

  31. 观察频域图,分析信号组成

  32. 使用MATLAB或其它高级语言产生滤波器系数h(n) • 根据观察结果,确定提取信号不同频率分量所需要的截至频率; • 按照指导书所给的方法产生滤波器系数h(n)并保存为.dat文档; • 注意:由于DSP不能直接接受小数,所以必须人为将小数转换为定点小数。转换的主要依据为定浮点转换公式:

  33. 使用DSP完成滤波操作,提取需要信号y(n) • 根据指导书,合理安排存储空间,确定h(n)和x(n)及y(n)的存储空间; • 按照下式求输出序列: • 注意乘累加指令对操作数的存储空间要求 MACD pma, ind[,ARn]

  34. 载入滤波器系数h(n)并观察其时域频域波形

  35. 编译调试程序,成功后运行程序。 • 观察结果信号波形。

  36. 注意: • 本设计要求能够随意提取输入信号的任意频率分量,因此,需准备多种滤波器系数。 • 设计难点在于: • 滤波器系数生成; • 存储空间的合理安排; • 通过GRAPH读图。

  37. 程序结构说明 • 三种格式的文件 • 头文件(F2407REGS.h)提供 用如下命令在汇编语言文件中直接调用 .include “F2407REGS.h” ;引用头部文件 • 命令文件(.cmd) 提供参考(附录Ⅰ) • 汇编语言文件(.asm)自编 • 头文件 • 定义DSP系统的寄存器映射地址或常用变量 • 本实验可能用到的相关寄存器

  38. 实验工具介绍 • SEED-DTK APD 实验箱

  39. SEED-XDSusb仿真器

  40. 菜单条 存储 器窗 口 工 程 文 件 断 点 当前 程序 执行 点 命令窗口 输出窗口 CCS调试界面

  41. 帮 助 获 取 方 法 • 关于LF2407的帮助 • 查找文件 TMS320LF/LC240xA DSP Controllers System and Peripherals Ref • 关于CCS 的帮助 • 查找文件:Code Composer Studio Getting Started Guide (Rev. D)

  42. 考核办法 • 平时成绩 30% • 程序设计 20% • 答辩 30% • 系列实验设计说明书 20%

More Related