dsp实验报告 哈工大 实验二 异步串口通信实验
哈尔滨工业大学威海校区《DSP生产实习报告》_090240328_尤伟

1.2DSP5509 开发板的概述
鸿翔电子 HX-5509A 开发板是为学习、评估 TI 的 TMS320VC5509A 而开发的,主要包 含两部分:硬件模板和相应的测试软件。 鸿翔电子 HX-5509A 开发板上集成了 DSP、SDRAM、Codec、USB、MMC/SD、Ethernet 等接口外设以及开放给用户的 DSP 总线扩展 。 这样使其能够应用在语音处理及其它相关领 域。 相应的测试软件包括: CPU 看门狗实验 LED 跑马灯实验 CPU Timer 定时器实验 实时时钟实验 扩展 SDRAM 读写实验 扩展 FLASH 读写实验 键盘扫描实验 外部中断输入实验 AIC23 播音实验 LCD 显示实验 串口通信实验 USB2.0 通信实验 网络通信实验 MMC/SD 卡通信实验
2.4 增强 HPI 与 GPI0A .............................................................................................. 5 2.5 中断 .................................................................................................................... 6 2.6VC5509 Bootloader................................................................................................. 6 2.7 VC5509 的片上外设 .............................................................................................. 7 2.7.1 定时器 ....................................................................................................... 7 2.7.2 2.7.4 USB1.1 接口......................................................................................... 7 2 通路、10 位 AD ............................................................................... 7 2.7.3 实时时钟 RTC ............................................................................................. 7 2.7.5 GPIO........................................................................................................... 7 3. 外扩 SDRAM 存储器 ................................................................................................ 7 4.1 音频输入与输出................................................................................................... 8 4.2 TLV320AIC23B 与微处理器的接口 .......................................................................... 8 二、熟悉 DSP 仿真器的使用 ............................................................................................. 8 1.功能与特点 .......................................................................................................... 8 2.驱动安装 ............................................................................................................. 9 3.CCS Setup 设置 ................................................................................................... 12 三、熟悉 DSP 开发环境 .................................................................................................. 15 四、了解 ARM、FPGA、AVR 等开发板的功能 .................................................................. 17 ARM 处理器 ............................................................................................................ 17 ARM 处理器特点 ..................................................................................................... 17 ARM 处理器系列 ..................................................................................................... 18 ARM 处理器结构 ..................................................................................................... 18 ARM 寄存器结构 ..................................................................................................... 18 ARM 指令结构......................................................................................................... 18 FPGA 的基本特点..................................................................................................... 19 AVR 单片机的基本特点 ............................................................................................ 19
DSP实验报告

实验一数字IO应用实验—、实验目的1. 了解DSP开发系统的组成和结构2. 在实验设备上完成I/O硬件连接,编写I/O实验程序并运行验证。
3. 内存观察工具的使用二、实验设备计算机,CCS3.1版本软件,DSP仿真器,教学实验箱三、实验原理2.键值读取程序:该部分有两种方法进行键值的判断。
方法1:利用内存观察工具进行观察方法2:利用LED1-LED8的亮灭对应显示键值。
a)外部中断1的应用参照实验五;b)内存观察键值:程序中定义了三个变量“W”“row”和“col”。
“W”代表是CPLD中键盘的扫描数值,“row”和“col”分别代表键盘的行和列,由行和列可以判定按键的位置。
上述三个变量可以在观察窗口中观察的。
c)利用LED灯显示键值原理,参看实验一。
具体的LED灯显示值以查表的形式读出,请参看“”库文件。
本实验的CPLD地址译码说明:基地址:0x0000,当底板片选CS0为低时,分配有效。
CPU的IO空间:基地址+0x0200 LED灯output 8位外部中断用XINT1:由CPLD分配,中断信号由键盘按键产生。
中断下降沿触发。
KEY_DAT_REG(R):基地址+0x0004;四、实验步骤和内容1.2407CPU板JUMP1的1和2脚短接,拨码开关S1的第一位置ON,其余置OFF;2.E300板上的开关SW4的第一位置ON,其余OFF;SW3的第四位置ON其余的SW置OFF“DEBUG→Connect”)4.打开系统项目文件 \e300.test\ normal \05_key interface \;“\Debug\”文件“Debug\Go Main”跳到主程序的开始;7.指定位置设置断点;8.View--〉Watch Window打开变量观察窗口;9. 将变量“w”“row”和“col”添加到观察窗口中,改变变量观察窗口的显示方式为HEX显示。
“Debug--〉Animate”全速运行,然后点击E300板上键盘按键,观察窗口中变量变化,同时LED1-LED8灯也相应变化,指示键值。
(精编)哈工大通信原理实验报告

(精编)哈工大通信原理实验报告H a r b i n I n s t i t u t e o f T e c h n o l o g y通信原理实验报告课程名称:通信原理院系:电子与信息工程学院班级:姓名:学号:指导教师:倪洁实验时间:2015年12月哈尔滨工业大学实验二帧同步信号提取实验一、实验目的1.了解帧同步的提取过程。
2.了解同步保护原理。
3.掌握假同步,漏同步,捕捉动态和维持态的概念。
二、实验原理时分复用通信系统,为了正确的传输信息,必须在信息码流中插入一定数量的帧同步码,帧同步码应具有良好的识别特性。
本实验系统帧长为24比特,划分三个时隙,每个时隙长度8比特,在每帧的第一时隙的第2至第8码元插入七位巴克码作为同步吗。
第9至24比特传输两路数据脉冲。
帧结构为:X11100101010101011001100,首位为无定义位。
本实验模块由信号源,巴克码识别器和帧同步保护电路三部分构成,信号源提供时钟脉冲和数字基带脉冲,巴克码识别器包裹移位寄存器、相加器和判决器。
其余部分完成同步保护功能。
三、实验内容1.观察帧同步码无错误时帧同步器的维持状态。
2.观察帧同步码有一位错误时帧同步器的维持态和捕捉态3.观察帧同步器假同步现象和同步保护器。
四、实验步骤1.开关K301接2.3脚。
K302接1.2脚。
2.接通电源,按下按键K1,K2,K300,使电路工作。
3.观察同步器的同步状态将信号源中的SW001,SW002,SW003设置为11110010,10101010,11001100(其中第2-8位为帧同步码),SW301设置为1110,示波器1通道接TP303,2通道接TP302,TP304,TP305,TP306,观察上述信号波形,使帧同步码(SW001的2-8位)措一位,重新做上述观察,此时除了TP303外,个点波形不变,说明同步状态仍在维持。
4.观察同步器的失步状态。
关闭电源,断开K302,在开电源(三个发光二极管全亮)。
dsp实验报告哈工大实验二异步串口通信实验

dsp实验报告哈工大实验二异步串口通信实验异步串口通信实验一. 实验目的1. 了解*****F2407A DSP 片内串行通信接口(SCI)的特点。
2. 学会设置SCI 接口进行通信。
3. 了解ICETEK-LF2407-A 板上对SCI 接口的驱动部分设计。
4. 学习设计异步通信程序。
二. 实验设备计算机,ICETEK-LF2407-EDU 实验箱(或ICETEK 仿真器+ICETEK-LF2407-A 系统板+相关连线及电源)。
三. 实验原理1. *****F2407A DSP 串行通信接口模块*****F240x 器件包括串行通信接口SCI 模块。
SCI 模块支持CPU 与其他使用标准格式的异步外设之间的数字通信。
SCI 接收器和发送器是双缓冲的,每一个都有它自己单独的使能和中断标志位。
两者都可以独立工作,或者在全双工的方式下同时工作。
2. ICETEK-LF2407-A 板异步串口设计由于DSP 内部包含了异步串行通信控制模块,所以在板上只需加上驱动电路部分即可。
驱动电路主要完成将SCI 输出的0-3.3V 电平转换成异步串口电平的工作。
转换电平的工作由MAX232 芯片完成,但由于它是5V 器件所以它同DSP 间的信号线必须有电平转换,此板采用的是74LS245。
3. 串行通信接口设置CPU 进行串行通信时可以采用两种方式,一种是轮询方式,即CPU 不断查询串口状态进行接收和发送,缺点是占用CPU 时间太多;另一种是中断方式,SCI 的接收和发送都可以产生中断信号,这样CPU 可以在完成其他一些工作的同时进行串行通信。
串行通信接口波特率计算,内部生成的串行时钟由系统时钟SYSCLK 频率和波特率选择寄存器决定。
串行通信接口使用16 位波特率选择寄存器,数据传输的速度可以被编程为***** 多种不同的方式。
不同通信模式下的串行通信接口异步波特率由下列方法决定:BRR=1―***** 时的串行通信接口异步波特率:SCI 异步波特率=SYSCLK/ [( BRR+1)*8]其中,BRR=SYSCLK/(SCI 异步波特率*8)-1;BRR=0 时的串行通信接口异步波特率:SCI 异步波特率=SYSCLK/16这里BRR 等于波特率选择寄存器的16 位值。
DSP实验报告_6

实验一: 闪灯实验熟悉DSP 软硬件测试系统实验目的1.了解SHARC 系列高性能数字信号处理器的程序开发过程和编程语言;2.熟悉集成开发工具VisualDSP++, 学会使用VisualDSP++进行SHARC 系列ADSP 的程序开发、编译与调试;3.掌握SHARC 系列ADSP 的程序加载设计和加载过程。
实验内容利用波形产生信号板, 结合FPGA 编程技术和程序编程器, 编写测试ADSP21065L 和FPGA 之间硬件连接的应用程序, 同时完成应用程序的加载和脱机操作, 在信号指示灯“HL2”上产生可调周期的脉冲信号, “点亮”与“熄灭”指示灯HL2。
实验要求通过DSP 编程, 在其FLAG11引脚上模拟如下波形的周期信号:要求:(1) 500H T ms >,500L T ms >. (2) 并用示波器查看波形, 测量信号周期。
实验步骤1. 熟悉电路图, 清楚波形产生电路板ADSP21065L 与可编程FPGA 器件之间的连接关系;2. 编写FPGA 程序。
在FPGA 内部将ADSP21065L 的标志引脚FLAG11(引脚号26)设置为输出, 作为FPGA 的输入信号, 在FPGA 内部编程将该信号直接输出在发FPGA 的37引脚号上, 设置37引脚为输出信号, 驱动板上的HL2 LED 指示灯;3. 启动VisualDsp++4.5,选择project 工程选项菜单, 创建一个名称为Test.dpj 的工程文件, 选择处理器的型号为ADSP-21065L ;4.弹出一个对话框, 选择是否需要加入VDSP kernel ,选择“NO ”;5. 在工程中加入以下参考源文件:\exp1\test(boot)\ boot1.asm 和boot1.ldf 6.编译, 链接调试, 生成可执行文件。
7.运行程序, 可以看到波形发生电路板上的指示灯“HL2”不断闪动。
8. 利用示波器观测系统时钟,并测量产生信号的波形和周期。
DSP第二次实验报告

DSP实验报告(第二次实验)实验四、正弦信号发生器学院:信息工程学院班级:11级通信工程3班姓名:李慧学号:2011551309指导老师:姚志强完成日期:2014.4.12验四、正弦信号发生器一、 实验目的1. 掌握利用DSP 产生正弦信号的原理2. 熟悉子程序调用的程序结构以及堆栈的使用3. 掌握CCS 的图形输出操作二、 实验设备1. 集成开发环境Code Composer Studio (简称CCS )2. 实验代码Sin.s54、Lab.cmd 和Lab.gel三、实验内容1. 阅读理解多项式逼近正弦的文档2. 阅读和理解Sin.s543. 调试正弦波发生器4. 加入断点,并选取图形观测,利用动画及时更新5. 试利用迭代的方法来实现正弦信号发生器四、实验结果和提示1.2345sin()= 3.140625 + 0.02026367 - 5.325196 + 0.5446778 + 1.800293x x x x x x ,x 为第一象限内的弧度值。
因为sin()sin(),sin()sin()x x x x π-=-=-,所以只需将第二,三,四象限内的弧度值转换到第一象限即可计算出相应的正弦函数值。
由于有限精度,规定弧度值从~ππ-,其中π=0x7FFF ,π/2=0x4000,π-=0x8000。
利用级数展开产生正弦波,必须在调用计算子程序之前备份好累加器A 中的当前弧度值,以便计算结束后实现x 增量。
正弦波的频率可以通过增幅的大小来进行控制,如果假定程序循环一次为一个时间单位,则正弦波的周期为65536/步长,频率为周期倒数。
x 自动增长时要注意当x 超过π后必须调整到~ππ-的范围内才能调用计算子程序,即若,2x x x ππ>=-则。
2. 需要使用临时数据时,必须用frame 语句留出所需空间,使用结束后要将堆栈指针还原以防堆栈内存泄漏。
要注意的是frame 的下一条指令不能使用直接寻址。
DSP实验报告(二)

DSP实验报告(二)实验二应用FFT对信号进行频谱分析一、实验目的1、在理论学习的基础上,通过本次实验,加深对快速傅里叶变换的理解,熟悉FFT算法及其程序的编写。
2、熟悉应用FFT对典型信号进行频谱分析的方法。
3、了解应用FFT进行信号频谱分析过程中可能出现的问题,以便在实际中正确应用FFT。
二、实验原理与方法①一个连续信号的频谱可以用它的傅立叶变换表示为+ Xa(jW)=-jWtx(t)edtòa-如果对该信号进行理想采样,可以得到采样序列x(n)=xa(nT)同样可以对该序列进行z变换,其中T为采样周期X(z)=+ x(n)z-n+ -令z为ejw,则序列的傅立叶变换X(ejw)=x(n)ejwn-其中ω为数字频率,它和模拟域频率的关系为w=WT=W/fs式中的是采样频率。
上式说明数字频率是模拟频率对采样率的归一化。
同模拟域的情况相似。
数字频率代表了序列值变化的速率,而序列的傅立叶变换称为序列的频谱。
序列的傅立叶变换和对应的采样信号频谱具有下式的对应关系。
1X(e)=Tjw+ - w-2pXa(j)T即序列的频谱是采样信号频谱的周期延拓。
从式可以看出,只要分析采样序列的谱,就可以得到相应的连续信号的频谱。
注意:这里的信号必须是带限信号,采样也必须满足Nyquist定理。
在各种信号序列中,有限长序列在数字信号处理中占有很重要的地位。
无限长的序列也往往可以用有限长序列来逼近。
有限长的序列可以使用离散傅立叶变换。
当序列的长度是N时,定义离散傅立叶变换为:X(k)=DFT[x(n)]=其中W=e2pj-NN-1n=0WNkn它的反变换定义为:1x(n)=IDFT[X(k)]=N根据式和,则有N-1n=0X(k)WNknX(z)|z=Wnk=NN-1n=0x(n)WNnk=DFT[x(n)]j2pN可以得到X(k)2pk的点,就NN是将单位圆进行N等分以后第k个点。
所以,X(k)是z变换在单位圆上的等距采样,或者说是序列傅立叶变换的等距采样。
DSP原理与应用实验4-异步串口通讯

课程名称DSP原理与应用实验序号实验4实验项目异步串口通讯实验地点实验学时实验类型指导教师实验员专业班级学号姓名年月日二、实验原理与内容1、UART 简介TMS320DM6437 集成了UART 控制器,支持2 个UART 外设连接。
UART 支持基于工业标准的TL16C550 异步通信模块,支持FIFO 模式数据传输,最大支持16 字节数据的缓存,从而减轻接收和发送数据时CPU 程序的时钟消耗。
TMS320DM6437 集成的UART 控制器可以扩展2 个UART,其对应的信号线分为两组:其中只有UART0 支持modem 模式控制。
SEED-DEC6437 配置UART0 为RS485 模式,UART1 为RS232 模式。
2、UART 的寄存器说明TMS320DM6437 的UART 的寄存器如表示:3、波特率的设置UART 的位时钟是从固定的27MHz 的时钟获取的,支持最高128 kbps 的数据率。
UART的时钟产生原理如下图:UART 波特率产生原理图UART 包含一个可编程的波特率发生器,将输入时钟经过分频产生需要的位时钟,分频值可以在1-65535。
位时钟的频率是波特率的十六倍频,每一个接收发送的数据位占用16个位时钟,接收时,位采样也在第八个位时钟时采样。
分频器值的计算公式如下:分频数= 当前时钟输入(27MHz)/(16 ×期望的波特率)当输入时钟为27MHz 时,支持的波特率如下图所示三、实验软硬件环境SEED—DTK67实验箱,CCS软件,接口线UART 实验,包含文件1. main.c:实验主程序,包含了系统初始化,外扩接口初始化及配置。
2. linker.cmd:声明了系统的存储器配置与程序各段的连接关系。
3. DEC6437.gel:系统初始化程序。
四、实验过程(实验步骤、记录、数据、分析)1. 将DSP 仿真器与计算机连接好;2. 将DSP 仿真器的JTAG 插头与SEED-DEC6437 单元的J9 相连接;3. 打开SEED-DTK6437 的电源。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CPU进行串行通信时可以采用两种方式,一种是轮询方式,即CPU不断查询串口状态进行接收和发送,缺点是占用CPU时间太多;另一种是中断方式,SCI的接收和发送都可以产生中断信号,这样CPU可以在完成其他一些工作的同时进行串行通信。
串行通信接口波特率计算,内部生成的串行时钟由系统时钟SYSCLK频率和波特率选择寄存器决定。串行通信接口使用16位波特率选择寄存器,数据传输的速度可以被编程为65000多种不同的方式。
for ( i=0;i<16;i++ )
{
do
{
uWork=(*SCICTL2);
} while ( uWork&0x0c0 != 0x0c0 );
(*SCITXBUF)=cString[i];
wait(1024);
}
}
else
{
for ( i=0;i<10;i++ )
{
do
{
uWork=(*SCICTL2);
wait(1024);
for ( i=9;i<16;i++ )
{
do
{
uWork=(*SCICTL2);
} while ( uWork&0x0c0 != 0x0c0 )
(*SCITXBUF)=cString[i];
wait(1024);
}
}
k=0; bReceive=0;
while ( 1 )
{
do
(*SCIHBAUD)=0x02; /*波特率=208H,40MHz */
(*SCILBAUD)=0x08; /* 208h=40*10^6/(9600*8)-1 */
(*SCICTL1)=0x23; /*使能发送和接收,复位SCI */
while ( 1 )
{
if ( bReceive==0 )
{
void wait(int nWait);
char cString[17]={"Hello PC!, Over|" }, cReceive, cBuffer[17], cAnswer[16] = {"Oh, you say"};
int bReceive,nLen;
main()
{
unsigned int uWork;
{
do
{
uWork=(*SCICTL2);
} while ( uWork&0x0c0 != 0x0c0 );
(*SCITXBUF)=cBuffer[i];
wait(1024);
}
do
{
uWork=(*SCICTL2);
} while ( uWork&0x0c0 != 0x0c0 );
(*SCITXBUF)='\"';
*SCSR1=0x81fe;/*打开所有外设,设置时钟频率为40MHz */
uWork=(*MCRA);
uWork|=0x03;/* use SCITXD,SCIRXD */
(*MCRA)=uWork;
(*SCICCR)=0x07;/* 8位字符,1停止位,无校验*/
(*SCICTL1)=0x03;/*使能发送和接收*/
2. ICETEK-LF2407-A板异步串口设计
由于DSP内部包含了异步串行通信控制模块,所以在板上只需加上驱动电路部分即可。驱动电路主要完成将SCI输出的0-3.3V电平转换成异步串口电平的工作。转换电平的工作由MAX232芯片完成,但由于它是5V器件所以它同DSP间的信号线必须有电平转换,此板采用的是74LS245。
(*SCITXBUF)=cString[i];
wait(1024);
}
NotRec=0;
k=0;
}
}
}
}
void interrupt gpSCI(void)/*中断服务程序*/
{
unsigned int uWork,Rec;
uWork=(*PIVR);/*读外设中断向量寄存器*/
switch(uWork)
int i,k;
bReceive=0;
asm(" setc INTM");
asm(" clrc SXM");
asm(" clrc OVM");
*WDCR=0x6f;
*WDKEY=0x5555;
*WDKEY=0xaaaa; /*关闭看门狗中断*/
*SCSR1=0x81fe; /*打开所有外设,设置时钟频率为40MHz */
四.实验程序
/* 2407A板:将JP11和JP14短接到2-3;
使用直连的串口通信电缆;
启动串口调试助手.exe;
PC机发送一个"."为结束标志*/
程序见附页。
五.实验步骤
1.实验准备
⑴.连接设备
关闭计算机和实验箱电源;
检查ICETEK-LF2407-A板上JP6的位置,应连接在1-2位置(靠近DSP芯片端),即设置DSP工作在MP方式;
关闭实验箱上三个开关;如使用PP型仿真器则用附带的并口连线连接计算机并口和仿真器相应接口;
用附带的串行通信电缆连接计算机COM端口和ICETEK-LF2407-A板上P6九针接头。
⑵.开启设备
打开计算机电源;
打开实验箱电源开关,打开ICETEK-LF2407-A板上电源开关,注意板上指示灯DS1灭、DS2和DS3亮;
运行程序后,切换窗口到“串口调试助手”;在“串口调试助手”的接收窗口中可看到DSP通过SCI发送来的“Hello PC!,Over|”字样;在“发送的字符/数据”栏中输入一些要发送到DSP的字符串,以“.”字符结尾;然后单击“手动发送”按钮;DSP在接收到PC机的信息后会自动进行回答。
6.结束程序运行退出。
4.运行“串口调试助手”
利用桌面上“我的电脑”,找到D:\2407EDULab\Lab20-SCI目录中的程序“串口调试助手V2.0B.exe”,双击它启动;设置“串口调试助手”的串行端口为实际连接的计算机COM端口,设置波特率为9600,设置传输方式为8位、无校验、1个停止位。
5.运行程序观察结果
uWork=(*MCRA);
uWork|=0x03; /* use SCITXD,SCIRXD */
(*MCRA)=uWork;
(*SCICCR)=0x07; /* 8位字符,1停止位,无校验*/
(*SCICTL1)=0x03; /*使能发送和接收*/
(*SCICTL2)=0x00; /*禁止接收和发送中断*/
六.实验结果
通过DSP传送到PC机上的信息,可以看出:SCI正确工作。当第一打开时候,串口收到“hello pc!over”,通过串口手动发送一段字母之后,会被返送回来。
七.问题与思考
请考虑用中断方式设计程序完成异步串行通信。
修改的程序见附页。
未修改的程序(查询方式):
#include "2407c.h"
for ( i=0;i<16;i++ )
{
do
{
uWork=(*SCICTL2);
} while ( uWork&0x0c0 != 0x0c0 );
(*SCITXBUF)=cString[i];
wait(1024);
}
while ( 1 )
{
unsigned int uWork;
uWork=(*PIVR);/*读外设中断向量寄存器*/
void wait(int nWait);
char cString[17]={ "Hello PC!,Over|" };
char cReceive,cBuffer[17],cAnswer[16]={"Oh,you say"};
int nLen;
int k=0;
int NotRec=0;
unsigned int flag=0;
main()
{
unsigned int uWork;
int i;
asm(" setc INTM"); /*关中断,进行关键设置时不允许发生中断,以免干扰*/
asm(" clrc SXM");
asm(" clrc OVM");
*WDCR=0x6f;
*WDKEY=0x5555;
*WDKEY=0xaaaa; /*关闭看门狗中断*/
{
case 0x06:/* SCI收*/
if(!NotRec)
{
cReceive=(*SCIRXBUF);
cBuffer[k]=cReceive;
if ( cReceive=='.' )
{
flag = 1 ;
NotRec = 1 ;
cBuffer[k]='\0';
} while ( uWork&0x0c0 != 0x0c0 );
(*SCITXBUF)=cAnswer[i];
wait(1024);
}
do
{
uWork=(*SCICTL2);
} while ( uWork&0x0c0 != 0x0c0 );
(*SCITXBUF)='\"';
for ( i=0;i<nLen;i++ )
{
uWork=(*SCIRXST);
} while ( (uWork&0x40)==0 );
cReceive=(*SCIRXBUF);
cBuffer[k]=cReceive;