DSP实验指导书.doc
目录目录1第一章 实验平台说明2§1.1 基本参数3§1.2 使用方法4第二章 算法实验5§2.1 基础实验5§2.2 卷积计算7§2.3 相关运算9§2.4 快速傅里叶变换 (FFT) 实现11§2.6 有限冲击响应滤波器 (FIR) 实现15§2.7 无限冲击响应滤波器 (IIR) 实现21§2.8 自适应滤波器 (LMS) 实现23第三章 外设接口实验26§3.1 数码管控制实验26§3.2 交通灯控制实验28§3.3 液晶显示屏 (LCD)实验30§3.4 矩阵键盘扫描实验31§3.5 通用异步串行接口 (UART) 实验32§3.6 通用串行总线 (USB) 接口实验33§3.7 内置A/D转换实验36§3.8 高速A/D转换实验38§3.9 高速D/A转换实验40§3.10 直流电机控制实验42§3.11 步进电机控制实验43§3.12 以太网卡与 TCP/IP协议实验45§3.13 CAN总线实验49第一章 实验平台说明随着科学技术的飞速发展,人们对控制模型、控制算法要求越来越高,传统意义上的处理器很难满足发展的需求,而数字信号处理器DSP 经历了20 多年的发展与普及,应用领域几乎涵盖了所有的行业:通信、信息处理、自动控制、雷达、航空航天、医疗、日常消费品等。德州仪器(TI)占据了整个DSP 市场的50左右,很多高校、研究所、公司大量采用TI 的方案与芯片进行开发与研究。DSP 是一门理论与实践并重的技术,在成功掌握了理论知识的同时再配合做一些经典的DSP 实验,从而加深对DSP 软、硬件的理解与掌握,为今后从事独立的开发打下扎实的基础。目前很多高校都已经开设了数字信号处理的课程,对普及与推广DSP 做出了巨大的贡献。本DSP开发平台,采用核心开发板IO扩展底板高级外设扩展板的逻辑架构。以TI公司的TMS320VC5509A和TMS320F2812两种DSP芯片为中心,附加开发了多个功能模块,可以使实验者方便有效地完成各种常用的DSP开发实验。2812开发板基于TI公司的处理器TMS320F2812设计而成。TMS320F2812采用TI公司的最新281X系列的处理器核,内部带有ROM、FLASH、大容量的RAM和丰富的外部接口,具有体积小、速度快、使用简单、功能强大、功耗低、性能稳定、编程简单的特点,非常适合在工业控制场合使用。5509开发板基于TI公司的处理器TMS320VC5509A设计而成。TMS320VC5509A采用TI公司的最新的55X系列的处理器核,内部带有大容量的RAM和USB、SD接口等丰富的外设,具有功耗低,体积小、速度快、使用简单、功能强大、功耗低、性能稳定、编程简单的特点,并可用于进行图像处理。非常适合在算法、多媒体处理、消费电子设备使用。底板上外扩了很多通用接口如(串口、网路接口、RS485、和电机输出接口),为了方便用户用最快的时间掌握DSP的使用技巧,在硬件上使用了多种总线接口和多种外部通讯方式的并配备了,LED、工业用LCD显示屏,并通过扩展插槽可以扩展图像处理,数字信号源等多种进阶外设,这样就使用户以最快的速度,试验、学习、设计,并把这些处理技巧熟练的嵌入到产品中,使用户迅速的成为硬件的设计高手,我们在硬件设计中以工业现场的硬件要求来提供方案,除电源部分在工业现场需要加入保护措施外,对于板级信号,我们使用了信号完整性分析技术、电磁兼容技术,在关键位置使用了电感、电容等电磁兼容器件,这样就能更容易把我们的经验使用到每一个用户的产品中。在软件上,提供了通用的软件的模块,并在此基础上编写了各种接口的软件试验程序。注释详尽,有利于初学者入门,除了已设计好的实验之外,实验者还可以发挥创造性,充分利用实验箱的资源进行其它实验。对于DSP高手来说也具备很大的发挥余地。最后真诚的欢迎您使用迪阳正泰科技发展公司产品并提出宝贵意见。由于任务重、时间紧,作者水平有限,书中难免存在一些小的错误,恳请广大师生批评指正。§1.1 基本参数 TMS320F2812: 32位DSP2000 系列内核,工作频率150M。 片上存储器:FLASH 128K X 16位SRAM 18K X 16位BOOT ROM 4K X 16 位OPT ROM 1K X 16位 片上外设:PWM 12路QEP 6通道ADC 2 X 8通道,12位,80ns转换时间,0-3V输入量程SCI异步串口 2通道MCBPS同步串口 1通道CAN 1通道SPI同步串口 1通道 外扩SRAM,最大容量512K X 16 位,基本配置64K X 16 位 外扩FLASH,最大容量512 X 16 位,基本配置256 X 16 位 外扩CPLD,为Xilinx9500系列,可以选配95XL36或95XL72 外扩以太网10M 接口,兼容NE2000 外扩20M以上的视频高速AD和高速DA 外扩图形LCD 接口 外扩直流电机,步进电机各一个 外扩4×4矩阵键盘 外扩双路函数信号发生器 外扩八段数码管,交通灯,蜂鸣器 外扩USB接口,主从方式可以自由转换。 外扩1 路RS232 接口,1 路RS485 接口 提供上电复位、手动复位、电源检测、看门狗,系统可靠,稳定 标准的JTAG 接口,方便调试 标准化的扩展总线§1.2 使用方法1.电源本实验箱内部自带变压器,使用时不需另配低压电源,可直接用普通三相插头接入220V电源。接上电源后,由电源模块输出 ±12V,±5V,3.3V,分别送至实验箱的各个模块。另外为方便单独使用,两个主控板上都设有独立的电源输入端口,可以接入5V的直流电源。2.仿真器接口在做实验时,需要一个DSP仿真器,把在计算机上编译并生成的执行代码下载到5509或2812芯片上。仿真器有两端接口,其中一端与计算机的并行口或USB口相连,这取决于仿真器的类型;另一端与DSP芯片的JTAG接口相连,这是一个14针的接口,在两块主控板上都可以找到。仿真器连接好后才能对主控板上的DSP芯片进行读写控制。4.计算机的配置DSP实验中的代码编写,下载仿真和程序调试都必须在计算机上完成。计算机上需要安装DSP集成开发环境软件CCS(使用2.2或3.1版本)。计算机应具备最少32M内存,100M硬盘空间和奔腾处理器,显示器分辨率不能低于800*600。另外,部分模块的实验还要求计算机配有标准的USB接口,DB9串行接口以及RJ-45网卡接口。5.其它配件包括USB连接线,串行口连接线,网线,排线等。第二章 算法实验§2.1 基础实验一、实验目的1.掌握CCS实验环境的使用;2.掌握用C语言编写DSP程序的方法。二、实验设备1.一台装有CCS软件的计算机;2.TMS320F2812主控板;3.DSP硬件仿真器。三、实验原理浮点数的表达和计算是进行数字信号处理的基本知识;产生正弦信号是数字信号处理中经常用到的运算;C语言是现代数字信号处理表达的基础语言和通用语言。写实现程序时需要注意两点:(1)浮点数的范围及存储格式;(2)DSP的C语言与ANSI C语言的区别。四、实验步骤1.打开CCS 并熟悉其界面;2.在CCS环境中打开本实验的工程(Example_bASe.pjt),编译并重建 .out 输出文件,然后通过仿真器把执行代码下载到DSP芯片中;3 把X0 , Y0 和Z0添加到Watch窗口中作为观察对象(选中变量名,单击鼠标右键,在弹出菜单中选择“Add Watch Window”命令);4 选择view->graph->time/frequency。 设置对话框中的参数: 其中“Start Address”设为“sin_value”,“Acquisition buffer size”和“Display Data size”都设为“100”,并且把“DSP Data Type”设为“32-bit floating point”, 设置好后观察信号序列的波形(sin函数,如图);5 单击运行;6 观察三个变量从初始化到运算结束整个过程中的变化;观察正弦波形从初始化到运算结束整个过程中的变化;7 修改输入序列的长度或初始值,重复上述过程。五、思考题1.试用C语言编写实现其他数学运算的程序;2.考虑如何实现其他波形信号的产生。§2.2 卷积计算一、实验目的1.掌握卷积运算的基本原理;2.掌握用C语言编写DSP程序的方法。二、实验设备1.一台装有CCS软件的计算机;2.DSP实验箱的TMS320F2812主控板;3.DSP硬件仿真器。三、实验原理卷积是数字信号处理中经常用到的运算。其基本的表达式为:写实现程序时需要注意两点:(1)序列数组长度的分配,尤其是输出数组y (n) 要有足够的长度;(2)循环体中变量的位置,即n和m的关系。四、实验步骤1. 复习卷积的基本原理;2. 在CCS环境中打开本实验的工程(Example_convolve.pjt),编译并重建 .out 输出文件,然后通过仿真器把执行代码下载到DSP芯片中;3. 单击运行;4. 观察三个数组从初始化到卷积运算结束整个过程中的变化(可单击变量名前的“”号把数组展开);4. 修改输入序列的长度或初始值,重复上述过程,观察卷积结果。五、思考题1.试用汇编语言编写实现卷积运算的程序;2.考虑如何实现复数的卷积运算。§2.3 相关运算一、实验目的1.掌握相关系数的估计方法;2.掌握用C语言编写DSP程序的方法。二、实验设备1.一台装有CCS软件的计算机;2.TMS320F2812主控板;3.DSP硬件仿真器。三、实验原理相关系数是数字信号处理中的一个重要概念,包括自相关系数和互相关系数。它们的定义是: ,k为相关系数的阶数;和。根据相关系数的定义,需要求输入信号的期望值,这在实际上是不可能实现的。因此,通常只根据一定长度的已知输入信号求相关系数的一个估计,这时采用以下的公式:(设N为已知信号的长度)和既然是估计值,那么就存在一致性和有效性的问题,可以证明上面两式的估计是有偏估计,而以下的则是无偏估计:(无偏估计),(无偏估计)本实验在上面公式的基础上实现各阶相关系数的估计。四、实验步骤1.在CCS环境中打开本实验的工程(Example_about.pjt),编译并重建 .out 输出文件,然后通过仿真器把执行代码下载到DSP芯片中;2.在Watch窗口中添加相关系数数组r作为观察对象;3.运行程序,观察数据值的变化; 4.修改估计模式mode,重复上述过程,观察有偏估计与无偏估计的差别;5.修改输入数组x 和y 的初始赋值函数、参与估计的数组长度、输出数组的长度等参数,重复上述过程,观察运行结果;五、思考题1.试证明上面给出的第二组相关系数估计公式的无偏性;2.在本实验程序的基础上,修改代码,实现自相关系数的估计;3.分析阶数对相关系数的影响。§2.4 快速傅里叶变换 (FFT) 实现一、实验目的1.掌握FFT算法的基本原理;2.掌握用C语言编写DSP程序的方法。二、实验设备1.一台装有CCS软件的计算机;2.TMS320F2812主控板;3.DSP硬件仿真器。三、实验原理傅里叶变换是一种将信号从时域变换到频域的变换形式,是信号处理的重要分析工具。离散傅里叶变换(DFT)是傅里叶变换在离散系统中的表示形式。但是DFT的计算量非常大, FFT就是DFT的一种快速算法, FFT将DFT的N2 步运算减少至 ( N/2 )log2N步。离散信号x(n)的傅里叶变换可以表示为,式中的WN 称为蝶形因子,利用它的对称性和周期性可以减少运算量。一般而言,FFT算法分为时间抽取(DIT)和频率抽取(DIF)两大类。两者的区别是蝶形因子出现的位置不同,前者中蝶形因子出现在输入端,后者中出现在输出端。本实验以时间抽取方法为例。时间抽取FFT是将N点输入序列x(n) 按照偶数项和奇数项分解为偶序列和奇序列。偶序列为:x(0), x(2), x(4), x(N-2);奇序列为:x(1), x(3), x(5), x(N-1)。这样x(n) 的N点DFT可写成:考虑到WN的性质,即因此有:或者写成:由于Y(k) 与Z(k) 的周期为N/2,并且利用WN的对称性和周期性,即:可得:对Y(k) 与Z(k) 继续以同样的方式分解下去,就可以使一个N点的DFT最终用一组2点的DFT来计算。在基数为2的FFT中,总共有log2(N) 级运算,每级中有N/2 个2点FFT蝶形运算。单个蝶形运算示意图如下:以N8为例,时间抽取FFT的信号流图如下:从上图可以看出,输出序列是按自然顺序排列的,而输入序列的顺序则是“比特反转”方式排列的。也就是说,将序号用二进制表示,然后将二进制数以相反方向排列,再以这个数作为序号。如011变成110,那么第3个输入值和第六个输入值就要交换位置了。本实验中采用了一种比较常用有效的方法完成这一步工作雷德算法。四、实验步骤1.以64点FFT的信号流图为例,理解FFT算法的过程;2.在CCS环境中打开本实验的工程(Example_fft.pjt),编译并重建 .out 输出文件,然后通过仿真器把执行代码下载到DSP芯片中;3.运行程序; 4.选择view->graph->time/frequency。 设置对话框中的参数: 其中“Start Address”设为“x_re”,“Acquisition buffer size”和“Display Data size”都设为“64”,并且把“DSP Data Type”设为“32-bit floating point”(如图), 设置好后观察输入信号序列的波形(单边指数函数,如图); 同样方法观察经DFT变换后的输出序列“y_re”的波形,“Start Address”改为“y_re”,其余参数不变(如图); 5 在Watch窗口中添加i, j, k, m, n, a, b ,c 等变量,在Debug菜单中先“Restart”然后 “Go main”, 单步运行程序,跟踪FFT算法的过程;(可以跳过程序开始部分对各个数组的赋值代码,方法是在雷德算法的第一行代码前设置断点,然后先单击运行,待程序停在该断点后再单步执行后面的代码,见下图。)6.修改N的值(应为2的整数次幂,如8,16,32等,最大不超过64),或者修改输入信号x的函数,如直流、正弦、三角等,观察程序运行结果。注意观察图形时,数据块大小要相应更改为当前N值。五、思考题1.分析本实验程序中完成位倒序排列的“雷德算法”的原理;2.思考如何实现实数序列的FFT,它在复数序列的算法基础上还能作哪些优化,从而进一步降低运算量和所需的存储空间。§2.6 有限冲击响应滤波器 (FIR) 实现一、实验目的1.掌握FIR滤波器的原理和窗函数设计法;2.掌握用C语言编写DSP程序的方法。二、实验设备1.一台装有CCS软件的计算机;2.TMS320F2812主控板;3.DSP硬件仿真器。三、实验原理数字滤波是DSP的最基本的应用领域之一。对于许多应用来说,数字滤波一般具有如下的差分方程形式:式中,X(n) 为输入序列,Y(n)为输出序列,A k和B k为滤波器系数,N是滤波器的阶数。若式中所有的B k均为零,且通常把系数A k记为h k,则有:上式就是FIR滤波器的差分方程了。FIR滤波器的最主要的特点是没有反馈回路,因此它是无条件稳定系统。它的单位脉冲响应h(n)是一个有限长序列。由上面的方程可见,FIR滤波算法实际上是一种乘法累加运算,它不断地输入样本x(n),经延时 (z1),做乘法累加,再输出滤波结果 y(n)。要设计一个FIR滤波器就是要求出它的冲击响应系数h(n),设计方法主要有窗函数法和频率抽样法,本实验要求掌握窗函数法,这也是最基本的方法。理想的低通滤波器的频率响应Hd (w)是一个矩形,这意味着它在时域上是无限长的序列,这在实际上是不可能实现的。因此我们要采取某种方法截断 Hd(n),可以用一个有限长度的窗函数序列w(n)与之相乘。这个窗函数序列的形状和长度都会对最后系统的频率响应特性产生影响,因此对窗函数的分析和选择是设计FIR滤波器的关键问题所在。本实验举了五种常用的窗函数为例,通过设置参数可以得到加上不同窗后的冲击响应序列h(n),并且可以观察到其幅频响应图。关于根据给定频率要求进行FIR滤波器设计的详细原理,以及在求得符合要求的h(n)后如何对输入信号序列进行滤波,请读者参考数字信号处理的有关资料。四、实验步骤1.复习有关FIR滤波器的原理;2.在CCS环境中打开本实验的工程(Example_fir.pjt),编译并重建 .out 输出文件,然后通过仿真器把执行代码下载到DSP芯片中;3.阅读源代码,记下各种窗函数的公式;4.运行程序(执行需要一定时间);5.选择view->graph->time/frequency。 设置对话框中的参数: 其中“Start Address”设为“hd”,“Acquisition buffer size”和“Display Data size”都设为“21”(因为源程序中n=21),并且把“DSP Data Type”设为“32-bit floating point”,设置好后观察理想冲击响应序列的波形示意图,可与公式对照分析; 5. 观察其它序列的波形示意图,包括所用窗函数w,加窗后响应序列h和输出对数幅频响应db的图形,这时的“Start Address”应分别设为“w”和“h”和“db”,其中观察前两者时数据块大小设为“21”(同n值),观察“db”时数据块大小设为“300”(同l值),所观察到的图形应大致如下面五组图所示;Ø m=1时:矩形窗函数(w)加窗后序列(h) 加窗后的幅频响应db Ø m=2时:三角窗函数(w) 加窗后序列(h) 加窗后的幅频响应dbØ m=3时:汉宁窗函数w加窗后序列h加窗后的幅频响应dbØ m=4时:汉明窗函数w加窗后序列h加窗后的幅频响应dbØ m=5时:布莱克曼窗函数w加窗后序列h加窗后的幅频响应db7.从15依次修改m的值,按上面步骤观察各图形。五、思考题1.总结窗函数法的设计步骤和关键问题。§2.7 无限冲击响应滤波器 (IIR) 实现一、实验目的1.掌握IIR滤波器的原理与设计方法;2.掌握用C语言编写DSP程序的方法。二、实验设备1.一台装有CCS软件的计算机;2.TMS320F2812主控板;3.DSP硬件仿真器。三、实验原理数字滤波器的输入xk和输出yk之间的关系可以用如下常系数线性差分方程及其z变换描述:系统的转移函数为:设计一个IIR滤波器就是要根据所给定的指标确定上式中的分子和分母系数。设计IIR数字滤波器可以先设计一个合适的模拟滤波器,然后变换成满足给定指标的数字滤波器。这种方法很简便,因为模拟滤波器有多种设计方法,如巴特沃思型滤波器、切比雪夫型滤波器、椭圆函数型滤波器等,并且已经具有很多简单而又现成的设计公式。采用这种方法需要把s平面映射到z平面,使模拟系统函数H(s)变换成所需的数字滤波器的系统函数H(z)。映射方法主要有冲激响应不变法、阶跃响应不变法和双线性变换法。前两种方法会因为多值映射关系产生混叠失真,双线性变换法克服了这一缺点。双线性变换法的映射关系式是:本实验采用的是巴特沃思型滤波器,并用双线性变换法转换成数字滤波器。四、实验步骤1. 在CCS环境中打开本实验的工程(Example_iir.pjt),编译并重建 .out 输出文件,然后通过仿真器把执行代码下载到DSP芯片中;2. 运行程序;3.在Watch窗口观察系统函数H(z)的分子和分母系数ptr_b,ptr_a。写出该滤波器的系统函数。4. 选择view->graph->time/frequency。 设置对话框中的参数: 其中“Start Address”设为“hwdb”,“Acquisition buffer size”和“Display Data size”都设为“50”,并且把“DSP Data Type”设为“32-bit floating point”,观察幅频响应的波形(如图);5.修改滤波器的设计参量fp,fr,fs,ap,ar等,重复上述过程,观察设计结果。(其参数值均在编写的程序中请注意按程序修改)五、思考题1.总结巴特沃思型滤波器的设计方法。§2.8 自适应滤波器 (LMS) 实现一、实验目的1. 掌握自适应滤波器的原理;2. 掌握LMS算法的原理;3. 掌握用C语言编写DSP程序的方法。二、实验设备1.一台装有CCS软件的计算机;2.TMS320F2812主控板;3.DSP硬件仿真器。三、实验原理 图1(图1)为自适应滤波器结构的一般形式,图中x(k) 为输入信号,通过参数可调的数字滤波器后产生输出信号y(k) ,将输出信号y(k) 与标准信号(或者为期望信号)d(k) 进行比较,得到误差信号e(k) 。e(k) 和x(k) 通过自适应算法对滤波器的参数进行调整,调整的目的是使误差信号最小。反复进行上面过程,使滤波器逐渐掌握了输入信号和噪声的统计规律,并以此为根据自动调整自己的参数,从而达到最佳的滤波效果。一旦输入信号的统计规律发生了变化,滤波器能够自动跟上输入信号的变化,自动调整滤波器的参数,这就是自适应滤波的原理。自适应滤波器的结构可以采用FIR型或IIR型,由于IIR滤波器存在稳定性问题,因此一般采用FIR滤波器作为自适应滤波器的结构。自适应FIR滤波器结构又可分为三种结构类型:横向型结构(Transversal Structure)、对称横向型结构(Symmetric Transversal Structure)、格型结构(Lattice Structure)。本实验所采用的是自适应滤波器设计中最常用的FIR横向型结构。设w(i)为横向滤波器的一组系数,滤波器的输出与输入信号间的关系可以表示为:自适应滤波器除了包括一个按照某种结构设计的滤波器,还有一套自适应的算法。滤波器的参数就是依照这种自适应算法来自动调整的,最常用的自适应算法是最小均方误差算法,即LMS算法(LeASt Mean Square)。LMS算法的目标是通过调整系数,使输出误差序列e(n)=d(n)-y(n) 的均方值最小化,并且根据这个判据来修改权系数。当均方误差达到最小时,得到最佳系数w *。为了较快地求得近似的最佳系数,可以采用最快下降法,也叫梯度算法,这是一种迭代运算。在采用种种近似和代替后,最后可以导出如下公式:式中的u是由系统稳定性和迭代运算收敛速度决定的自适应步长,u越小,则收敛越慢,但是u太大则会导致系统的不稳定性。本实验就是以这个公式为基础实现自适应滤波器的。关于算法的详细推导过程及参数的选择原则,请读者参考数字信号处理的有关资料。四、实验步骤1.在CCS环境中打开本实验的工程(Example_lms.pjt),编译从而生成 .out 输出文件,然后通过仿真器把执行代码下载到DSP芯片中;2.运行程序;3.选择view->graph->time/frequency。 设置对话框中的参数: 其中“Start Address”设为“x”,“Acquisition buffer size”和“Display Data size”都设为“500”,并且把“DSP Data Type”设为“32-bit floating point”,观察输入信号的波形(如图2);同样方法观察输出波形“y”(如图3)和输出误差“e”(如图4)的波形;体会“自适应”的过程。 (图2) (图3) (图4)4.修改信号长度L、滤波器级数N、自适应步长u、输入信号函数x等内容,重复上述过程,观察程序运行结果。五、思考题1.试推导梯度算法的公式;2.自适应步长u对自适应滤波过程有何影响,应如何决定u的值?第三章 外设接口实验§3.1 数码管控制实验一、实验目的1. 熟悉2812的指令系统;2.熟悉74HC573的使用方法。3.熟悉DSP的IO操作使用方法。二、实验设备1.一台装有CCS2000软件的计算机;2.DSP实验台;3.DSP硬件仿真器。三、实验原理此模块由数码管和四个锁存器组成 。数码管为共阴极型的。数据由2812模块的低八位输入,锁存器的控制信号由2812模块输出,但经由CPLD模块译码后再控制对应的八个锁存器。四、实验步骤1在CCS2000环境中打开本实验的工程编译Example_7segled.prj,生成输出文件,通过仿真器把执行代码下载到DSP芯片;2运行程序;数码管会显示18的数字。 3参考源代码自行修改程序改变显示样式。 §3.2 交通灯控制实验一、实验目的1.熟悉2812的指令系统;2.熟悉74HC573的使用方法。3.熟悉DSP的IO操作使用方法。二、实验设备1.一台装有CCS2000软件的计算机;2.DSP实验台;3.DSP硬件仿真器。三、实验原理此模块由发光二极管和一个锁存器组成。数据由2812模块的低八位输入,锁存器的控制信号由2812模块输出,但经由CPLD模块译码后再控制锁存器。四、实验步骤1. 把2812模块小板插到大板上;2. 在CCS2000环境中打开本实验的工程编译Example_crossled.prj,生成输出文件,通过仿真器把执行代码下载到DSP芯片;3. 运行程序,发光二极管按交通灯方式点亮熄灭。 4. 参考源代码,自行修改程序,实现不同的交通灯控制方式。 §3.3 液晶显示屏 (LCD)实验一、实验目的1. 掌握液晶的使用方法;2. 掌握液晶信号之间时序的正确识别和引入。二、实验设备1.一台装有CCS2000软件的计算机;2.DSP实验台;3.DSP硬件仿真器。三、实验原理本实验箱采用的液晶接口在DSP的数据总线上,由于DSP是十六位总线,液晶是八位总线,所以DSP的高八位总线悬空。液晶的结构框图如下,四、实验步骤1把2812模块小板插到大板上;打开液晶模块的电源开关;2 在CCS2000环境中打开本实验的工程编译Example_lcd.prj,生成输出文件,通过仿真器把执行代码下载到DSP芯片; 3运行程序;液晶上会循环显示预定内容。 §3.4 矩阵键盘扫描实验一、实验目的1. 掌握键盘信号的输入,DSP I/O口的使用;3 掌握键盘信号之间时序的正确识别和引入。二、实验设备1.一台装有CCS2000软件的计算机;2.DSP实验台;3.DSP硬件仿真器。三、实验原理实验箱上提供一个4x4的行列式键盘。2812的8个I/O口与之相连,这里按键的识别方法是扫描法。键被按下时,与此键相连的行线电平将由与此键相连的列线电平决定,而行线的电平在无按键按下时处于高电平状态。如果让所有的列线也处于高电平,那么键按下与否不会引起行线电平的状态变化,始终为高电平。所以,让所有的列线处于高电平是无法识别出按键的。现在反过来,让所有的列线处于低电平,很明显,按键所在的行电平将被拉成低电平。根据此行电平的变化,便能判断此行一定有按键被按下,但还不能确定是哪个键被按下。假如是5键按下,为了进一步判定是哪一列的键被按下,可在某一时刻只让一条列线处于低电平,而其余列线处于高电平。那么,按下键的那列电平就会拉成低电平,判断出哪列为低电平就可以判断出按键号码。四、实验步骤1把2812模块小板插到大板上;打开液晶模块的电源开关;2在CCS2000环境中打开本实验的工程编译Example_key.prj,生成输出文件,通过仿真器把执行代码下载到DSP芯片; 3运行;按下键盘按键,液晶会显示所按键的号码。 §3.5 通用异步串行接口 (UART) 实验一、实验目的1.掌握异步串行通信协议;2.掌握2812异步收发器模块的应用。二、实验设备1.一台装有CCS软件的计算机;2.DSP实验台;3.DSP硬件仿真器。三、实验原理1.异步串行通信协议在传输数据前,数据线处于高电平状态,这称为标识态。传输开始后,数据线由高电平转为低电平状态,这称为起始位;起始位后面接着58个信息位;信息位后面是校验位;校验位后是停止位“1”。传输完毕后,可以立即开始下一个字符的传输;否则,数据线再次进入标识态。上面提到的信息位的位数(58位)、停止位的位数(1位、1.5位或2位)、校验的方式(奇校验、偶校验或不校验)等参数都可以根据不同需要进行设置,但对于同一个传输系统中的收发两端来说,这些参数必须保持一致。异步串行通信方式中另一个重要的参数是波特率。在一般的“0”/“1”系统中,波特率就是每秒钟传输的位数。国际上规定了一个标准波特率系列,它们是最常用的波特率。标准波特率系列为110、300、600、1200、1800、2400、4800、9600和19200。发送端和接收端必须设置统一的波特率,否则无法正确接收数据。2.电平转换RS-232-C标准中规定 5V 15V为逻辑“1”,+5V+15V为逻辑“0”,因此要用专门的芯片完成TTL电平与RS-232电平的转换,如MAX3232。3.串口调试助手该计算机端程序可以监测计算机串口接收和发送数据的情况。本实验中需要用该程序帮助观察实验结果。四、实验步骤1. 用串口线连接实验箱的UART模块与计算机串行口;2. 在CCS环境中打开本实验的工程Example_sci.pjt,编译,生成输出文件(.out文件),通过仿真器把执行代码下载到DSP芯片;3. 在计算机上运行串口调试助手程序,设置串口为Com1,波特率为9600,校验为None,停止位为1位,十六进制显示,以待观察从DSP往PC串口发送的数据;4. 运行程序;5. 在串口调试助手程序中,在接收窗口中观察是否能正确接收到0X000XFF的数据。§3.6 通用串行总线 (USB) 接口实验一、实验目的1. 熟悉USB基本概念和相关协议;2. 掌握将USB模块设置为Host或Device的软硬件配置;3. 掌握外插USB全速或低速设备的识别程序;4. 了解设备枚举的基本流程;5. 了解Bulk-Only传输协议与MASs Storage类SCSI传输指令;二、实验设备1.一台装有CCS软件的计算机;2.DSP实验箱;3.DSP硬件仿真器。4.USB延长线5.U盘6.示波器三、实验原理很多数码产品以及单片机系统都需要存储器,当前,U 盘(含闪盘、USB 闪存盘、USB 移动硬盘等,下同)已经成为很常用的移动存储设备,其价格仅比相同容量的闪存略高,而远比闪存易于采购和易于携带,并且U 盘的规格通用,具有多种容量可供选用。所以,数码产品以及单片机系统可以直接采用U 盘作为大容量的移动存储器。CH375 是USB总线的HOST 主机及DEVICE设备双用接口芯片,单片机可以通过CH375读写U 盘中的数据,由于很多产品最终会与使用WINDOWS 操作系统的个人计算机交换数据,所以为了方便数据交换,U 盘中的数据应该符合WINDOWS 的文件系统格式。CH375 提供了U 盘文件级子程序库,单片机可以直接调用子程序读写U 盘中的文件数据,硬件上只需要在原单片机系统中增加一个CH375芯片,综合成本较低。CH375的U 盘文件级子程序库支持常用的FAT12、FAT16 和FAT32 文件系统,支持U 盘最大容量100GB。USB设备枚举过程外设接入已上电的USB端口时,开始进行设备枚举。过程如下:1)设备所连接的HUB将设备接入事件通知Host;此时,USB设备处于上电状态(Powered),其连接的HUB端口也处于Disabled状态;2)Host询问HUB,以获知精确的端口(port)状态改变情况;3)Host获知设备所接入的端口(port)后,就等待100ms 以便设备完成插入过程并使得设备电源变得稳定;接着,Host针对此端口发布一个端口(port)使能和复位命令;4)HUB保持此端口上的复位信号并持续10ms 。复位信号释放以后,该端口就被Enabled,USB设备现在就进入Default状态,并只能从VBUS吸取100mA的电流;设备上所有的寄存器和状态已被复位,应答默认地址;5)Host为设备指派一个唯