当前位置:文档之家› ARM9教程DSP教程FPGA教程CPLD教程42A软硬件设计0229

ARM9教程DSP教程FPGA教程CPLD教程42A软硬件设计0229

ARM9教程DSP 教程FPGA 教程CPLD 教程 42A 多核软硬件系统设计

PS2 Keyboard Mouse Software

第一部分 原理图

1.1 PS2_keyboard_mouse.SchDoc

1.2 PS2_Keyboard_Mouse_System. OpenBus

IO MEM

XRAM

SOFT_TERMINAL

MOUSE

KEYBOARD

1.3main.c

/*****************************************************************************

|*

|* PS/2 Example

|*

|* Keyboard functions:

|* - low level driver: scancodes

|* - device I/O (i.e. c library) interface: keyboard as stdin

|*

|* Mouse functions:

|* - polling mode

|* - streaming mode, with event callback

|*

|* NOTE:

|* Only one keyboard interface can be used. To test lower interface,

|* unlink the context from the keyboard stack in the SwPlatform file and

|* adjust the defines below.

\*****************************************************************************/

// choose one of the keyboard interfaces below and adjust the SwPlatform file accordingly #define USE_KEYBOARD_DEVIO 1

#define USE_PS2KB_DRIVER 0

#if ( USE_KEYBOARD_DEVIO == 1 )

// stdio.h is our interface

#else

# include

#endif

#include

#include

#include

#include "devices.h"

// Save mouse packets

static ps2mouse_state_t mouse_state[100];

// Event synchronization

volatile uint8_t event_sync = 0;

// Event callback

static void mouse_event(ps2mouse_t *ps2mouse, ps2mouse_state_t *state, void *data)

{

// Normally one would update program state here

event_sync ^= 0x1;

}

extern int main(void)

{

#if ( USE_KEYBOARD_DEVIO == 1 )

// we use stdin

#else

ps2kb_t *kbd;

#endif

ps2mouse_t *mouse;

ps2mouse_state_t state;

#if ( USE_KEYBOARD_DEVIO == 1 )

// In the SwPlatform file set the Posix name in the keyboard devio configuration to KEYBOARD_1 #else

// low level keyboard driver

kbd = ps2kb_open(DRV_PS2KB_1);

if (!kbd)

{

return -1;

}

#endif

// mouse driver

mouse = ps2mouse_open(PS2MOUSE);

if (!mouse)

{

printf("Error opening mouse\n");

return -2;

}

#if ( USE_KEYBOARD_DEVIO == 1 )

// Keyboard as stdin

printf("POSIX device I/O Example\n");

printf("- typing will print characters\n"); printf("- type 'q' to quit\n");

printf("Echo> ");

while (1)

{

int ch = getchar();

if (ch != -1)

{

putchar(ch);

if (ch == 'q')

{

printf("\nFinished Keyboard Example\n\n");

break;

}

}

}

#else

// Low level keyboard example

printf("PS/2 Keyboard Driver Example\n");

printf("- typing will print scancodes\n");

printf("- type 'q' to quit\n");

printf("Scancodes:\n");

ps2kb_setleds(kbd, 0x0); // LED's off

while (1)

{

const uint8_t *scancode = ps2kb_get_scancode(kbd);

if (scancode[0] != 0)

{

printf("0x%x 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x\n",

scancode[0], scancode[1], scancode[2], scancode[3], scancode[4], scancode[5], scancode[6], scancode[7]);

if (scancode[0] == 0x15) // 'q'

{

printf("\nFinished Keyboard Example\n\n");

break;

}

}

}

ps2kb_setleds(kbd, 0x7); // LED's on

#endif

// PS/2 mouse in polling mode

printf("PS/2 Mouse Test 1: polling mode\n");

printf("- move the mouse or press a button\n");

ps2mouse_set_streaming(mouse, false); // set remote mode

// collect packets

for (int i = 0; i < 100; i++)

{

while (ps2mouse_get_state(mouse, &state) < 0) /**/;

mouse_state[i] = state;

delay_ms(50);

}

// print packets

for (int i = 0; i < 100; i++)

{

ps2mouse_state_t *state = &mouse_state[i];

printf("(x, y) buttons = (%d, %d) 0x%x\n",

state->xmov, state->ymov, state->buttons);

}

printf("\nFinished Mouse Test 1!\n\n");

// PS/2 mouse in streaming mode with event callback

printf("PS/2 Mouse Test 2: event callback\n");

printf("- move the mouse or press a button\n");

ps2mouse_install_callback(mouse, mouse_event, &state, NULL);

ps2mouse_set_streaming(mouse, true); // set streaming mode // collect packets

for (int i = 0; i < 100; i++)

{

uint8_t x = event_sync;

while (x == event_sync) /* wait for event */;

mouse_state[i] = state;

}

ps2mouse_set_streaming(mouse, false); // stop interrupts // print packets

for (int i = 0; i < 100; i++)

{

ps2mouse_state_t *state = &mouse_state[i];

printf("(x, y) buttons = (%d, %d) 0x%x\n",

state->xmov, state->ymov, state->buttons);

}

printf("\n\nFinished Mouse Test 2!\n\n");

printf("Finished all tests.\n");

return 0;

}

1.4PS2_keyboard_mouse. SwPlatform

fpga数字钟课程设计报告

f p g a数字钟课程设计报告 Prepared on 24 November 2020

课程设计报告 设计题目:基于FPGA的数字钟设计 班级:电子信息工程1301 姓名:王一丁 指导教师:李世平 设计时间:2016年1月 摘要 EDA(Electronic Design Automation)电子设计自动化,是以大规模可编程器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,通过相关的软件,自动完成软件方式设计得电子系统到硬件系统,最终形成集成电子系统或专用集成芯片。本次课程设计利用Quartus II 为设计软件,VHDL为硬件描述语言,结合所学知识设计一个多功能时钟,具有显示年、月、日、时、分、秒显示,计时,整点报时,设定时间等功能。利用硬件描述语言VHDL 对设计系统的各个子模块进行逻辑描述,采用模块化的思想完成顶层模块的设计,通过软件编译、逻辑化简、逻辑综合优化、逻辑仿真、最终完成本次课程设计的任务。 关键词:EDA VHDL语言数字钟 目录 摘要 1 课程设计目的 2 课程设计内容及要求

设计任务 设计要求 3 VHDL程序设计 方案论证 系统结构框图 设计思路与方法 状态控制模块 时分秒模块 年月日模块 显示模块 扬声器与闹钟模块 RTL整体电路 4 系统仿真与分析 5 课程设计总结,包括.收获、体会和建议 6 参考文献 1 课程设计目的 (1)通过设计数字钟熟练掌握EDA软件(QUARTUS II)的使用方法,熟练进行设计、编译,为以后实际工程问题打下设计基础。 (2)熟悉VHDL 硬件描述语言,提升分析、寻找和排除电子设计中常见故障的能力。 (3)通过课程设计,锻炼书写有理论根据的、实事求是的、文理通顺的课程设计报告。

dsp课程设计正弦信发生器的设计

d s p课程设计正弦信发 生器的设计 标准化管理处编码[BBX968T-XBB8968-NNJ668-MM9N]

太原理工大学 DSP课程设计: 正弦信号发生器的设计 学号: 班级: 姓名: 指导教师: 一、设计目的 1、通过实验掌握DSP的软件开发过程 2、学会运用汇编语言进行程序设计 3、学会用CCS仿真模拟DSP芯片,通过CCS软件平台上应用C54X汇编语言来实现正弦信号发生装置。 二、设计原理 三、本实验产生正弦波的方法是泰勒级数展开法。泰勒级数展开法需要的单元少,具有稳定性好,算法简单,易于编程等优点,而且展开的级数越多,失真度就越小。求一个角度的正弦值取泰勒级数的前5项,得近似计算式: 四、总体方案设计

本实验是基于CCS开发环境的。CCS是TI公司推出的为开发TMS320系列DSP软件的集成开发环境,是目前使用最为广泛的DSP开发软件之一。它提供了环境配置、源文件编译、编译连接、程序调试、跟踪分析等环节,并把软、硬件开发工具集成在一起,使程序的编写、汇编、程序的软硬件仿真和调试等开发工作在统一的环境中进行,从而加速软件开发进程。通过CCS软件平台上应用C54X汇编语言来实现正弦信号发生装置。 总体思想是:正弦波的波形可以看作由无数点组成,这些点与x轴的每一个角度值相对应,可以利用DSP处理器处理大量重复计算的优势来计算x轴每一点对应的y的值(在x轴取N个点进行逼近)。整个系统软件由主程序和基于泰勒展开法的SIN子程序组成,相应的软件流程图如图。 五、设计内容 1、设置 在Family下选择C55xx,将看到所有C55xx的仿真驱动,包括软件仿真和硬件仿真; 在Platform下选择Simulator,在Available Factory Boards中只显示软件仿真驱动,选中相应的驱动; 双击C55xx Rev4.0 CPU Functional Simulator,可以在My System下看到所加入的驱动; 点击Save & Quit,将保存设置退出Setup CCStudio v3.1并启动运行CCStudio。 2、编写汇编源程序sin。 3.、建立汇编源程序

dsp课程设计实验报告

DSP 课程设计实验 一、语音信号的频谱分析: 要求首先画出语音信号的时域波形,然后对语音信号进行频谱分析。在MATLAB 中,可以利用函数fft 对信号进行快速傅立叶变换,得到信号的频谱特性,从而加深对频谱特性的理解。 其程序为: >> [y,fs,bits]=wavread('I:\',[1024 5120]); >> sound(y,fs,bits); >> Y=fft(y,4096); >> subplot(221);plot(y);title('原始信号波形'); | >> subplot(212);plot(abs(Y));title('原始信号频谱'); 程序运行结果为: 二、设计数字滤波器和画出频率响应: 根据语音信号的特点给出有关滤波器的性能指标: 低通滤波器性能指标,p f =1000Hz ,c f =1200Hz ,s A =100dB ,p A =1dB ; 高通滤波器性能指标,c f =4800Hz ,p f =5000Hz ,s A =100dB ,p A =1dB ; 带通滤波器性能指标,1p f =1200Hz ,2p f =3000Hz ,1c f =1000Hz ,2c f =3200Hz ,s A =100dB , p A =1dB ;

】 要求学生首先用窗函数法设计上面要求的三种滤波器,在MATLAB中,可以利用函数firl 设计FIR滤波器;然后再用双线性变换法设计上面要求的三种滤波器,在MATLAB中,可以利用函数butte、cheby1和ellip设计IIR滤波器;最后,利用MATLAB中的函数freqz画出各种滤波器的频率响应,这里以低通滤波器为例来说明设计过程。 低通: 用窗函数法设计的低通滤波器的程序如下: >> fp=1000;fc=1200;As=100;Ap=1;fs=22050; >> wc=2*fc/fs;wp=2*fp/fs; >> N=ceil(/*(wc-wp)/2))+1; >> beta=*; >> Win=Kaiser(N+1,beta); 、 >>b=firl(N,wc,Win); >>freqz(b,1,512,fs); 程序运行结果: 这里选用凯泽窗设计,滤波器的幅度和相位响应满足设计指标,但滤波器长度(N=708)太长,实现起来很困难,主要原因是滤波器指标太苛刻,因此,一般不用窗函数法设计这种类型的滤波器。 用双线性变换法设计的低通滤波器的程序如下: >> fp=1000;fc=1200;As=100;Ap=1;fs=22050; >> wc=2*fc/fs;wp=2*fp/fs; 》 >> [n,wn]=ellipord(wp,wc,Ap,As); >> [b,a]=ellip(n,Ap,As,wn); >> freqz(b,a,512,fs); ^

FPGA设计的报告课程设计

FPGA课程设计 实 验 报 告

实验一:设计一个可控的100进制可逆计数器 一、实验要求 用DE2-115开发板下载。 (1)计数器的时钟输入信号周期为200ns。 (2)以十进制形式显示。 (3)有一个复位端clr和两个控制端plus和minus,在这些控制信号的作用 clr plus minus 功能 0 ××复位为0 1 1 0 递增计数 1 0 1 递减计数 1 1 1 暂停计数 二、关键词 可控制、可逆、100进制、复位、暂停、递增、递减 三、内容摘要 module updown_count(qout,reset,clk,plus,minus); output[7:0] qout;/*定义一个8位的输出,其目的是 低四位和高四位分别表示计数器的个位和十位。*/ input clk,plus,minus,reset;//定义四个输入,时钟,加计数,减计数和清零 reg[7:0] qout;//qout的数据类型为寄存器型 always @(posedge clk)//当clk上升沿到来时执行一遍下列程序 begin if(!reset) qout<=0;//当reset为低电平时,计数器执行清零功能,否则跳过else begin case({minus,plus})//case语句模块,包含加,减和暂停四个模块 2'b10: if (qout[3:0]==0)//判断个位是否为零,若不为零,跳到个位减一begin qout[3:0]<=9;//给个位赋值 if(qout[7:4]==0) qout[7:4]<=9;//判断十位是否为零,并且给十位赋值 else qout[7:4]<=qout[7:4]-1;//由于个位赋9,相当于向十位借一,因而十位减一end else qout[3:0]<=qout[3:0]-1;//个位减一 /*这一部分是减计数模块,其思路是:首先判断个位是否为零,若为零,则执行后面的程序,个位直接赋9,并且十位减一;否则个位减一*/ 2'b01: if (qout[3:0]==9)//判断个位是否为9,否则跳到个位加一begin

dsp课程设计报告(2)分析

华北水利水电大学North China University of Water Resources and Electric Power DSP课程设计 题目: FIR数字低通滤波器 学院信息工程学院 专业电子信息工程 姓名 学号 指导教师

摘要 (1) 一. 绪论 (1) 1.1设计背景 (1) 1.2设计方法分析 (1) 二.FIR滤波器设计过程 (2) 2.1 FIR滤波器原理 (2) 2.2 FIR滤波器的实现方法 (3) 2.3 FIR滤波器的MATLAB实现 (4) 2.4 设计流程图 (6) 三.MATLAB和 CCS操作步骤及仿真结果 (7) 3.1 matlab中的.M文件的编写 (7) 3.2 工程文件的建立 (12) 3.3 仿真结果及分析 (12) 四.心得与总结 (12)

摘要 当前,数字信号处理技术受到了人们的广泛关注,其理论及算法随着计算机技术和微电子技术的发展得到了飞速地发展,并被广泛应用于语音和图象处理、数字通信、谱分析、模式识别和自动控制等领域。数字滤波器是数字信号处理中最重要的组成部分之一,几乎出现在所有的数字信号处理系统中。设计中通过MATLAB环境中图形化的方式建立数字信号处理的模型进行DSP的设计和仿真验证,将设计的图形文件.mdl直接转换成C语言程序在CCS中运行。利用MATLAB 软件开发产品加速了开发周期,比直接在CCs中编程方便快捷了很多,对于任何复杂功能的DSP系统,只需要进行少量的添加和修改就能完成功能正确的C语言程序设计。 一. 绪论 1.1设计背景 一个实际的应用系统中,由于设备或者是外界环境的原因,总存在各种干扰,使信号中混入噪声,譬如音频信号中高频成分的噪声使得音乐听起来刺耳,失去了原有悦耳的音质。为了提高信号质量,可以对信号进行滤波,从噪声中提取信号,即对一个具有噪声和信号的混合源进行采样,然后经过一个数字滤波器,滤除噪声,提取有用信号。DSP(数字信号处理器)与一般的微处理器相比有很大的区别,它所特有的系统结构、指令集合、数据流程方式为解决复杂的数字信号处理问题提供了便利,本文选用TMS320C54X作为DSP处理芯片,通过对其编程来实现FIR滤波器。对数字滤波器而言,从实现方法上,有FIR滤波器和无限冲激响应(IIR)滤波器之分。由于FIR滤波器只有零点,因此这一类系统不像IIR系统那样易取得比较好的通带与阻带衰减特性。但是FIR系统有自己突出的优点:①系统总是稳定的;②易实现线性相位;③允许设计多通带(阻带)滤波器。其中后两项是IIR系统不易实现的。 1.2设计方法分析 FIR滤波器的设计方法分析 数字滤波器依据冲激响应的宽度划分为有限冲激响应(FIR)滤波器和无限冲激响应滤波(IIR)。FIR 滤波器是有限长单位冲激响应滤波器,在结构上是非递归型的,有限冲激响应滤波器(FIR),具有以下的优点:(1)可以在幅度特性随意设计的同时,保证精确、严格的线性相位;(2)由于FIR滤波器的单位脉冲响应h(n)是有限长序列,因此F I R 滤波器没有不稳定的问题;(3)由于FIR 滤

dsp课程设计实验报告总结

DSP课程设计总结(2013-2014学年第2学期) 题目: 专业班级:电子1103 学生姓名:万蒙 学号:11052304 指导教师: 设计成绩: 2014 年6 月

目录 一设计目的----------------------------------------------------------------------3 二系统分析----------------------------------------------------------------------3 三硬件设计 3.1 硬件总体结构-----------------------------------------------------------3 3.2 DSP模块设计-----------------------------------------------------------4 3.3 电源模块设计----------------------------------------------------------4 3.4 时钟模块设计----------------------------------------------------------5 3.5 存储器模块设计--------------------------------------------------------6 3.6 复位模块设计----------------------------------------------------------6 3.7 JTAG模块设计--------------------------------------------------------7 四软件设计 4.1 软件总体流程-----------------------------------------------------7 4.2 核心模块及实现代码---------------------------------------8 五课程设计总结-----------------------------------------------------14

DSP课程设计-FIR高通滤波器设计

DSP课程设计-FIR高通滤波器设计 FIR 高通滤波器设计 南京师范大学物科院 从实现方法方面考虑,将滤波器分为两种,一种是IIR 滤波器,另一种是FIR 滤波器。 FIRDF 的最大优点是可以实现线性相位滤波。而IIRDF 主要对幅频特性进行逼近,相频特性会存在不同程度的非线性。我们知道,无失真传输与滤波处理的条件是,在信号的 有效频谱范围内系统幅频响应应为常数,相频响应为频率的线性函数。另外,FIR 是全零 点滤波器,硬件和软件实现结构简单,不用考虑稳定性问题。所以,FIRDF 是一种很重要 的滤波器,在数字信号处理领域得到广泛应用。 FIRDF 设计方法主要分为两类:第一类是基于逼近理想滤波器特性的方法,包括窗函 数法、频率采样法和等波纹最佳逼近法;第二类是最优设计法。其中窗函数计法的基本思 想是用FIRDF 逼近希望的滤波特性。本次设计主要采用窗函数设计法,对理想滤波器进行逼近,从而实现高通滤波器的设计。 在MATLAB 软件中,有一系列函数用于设计滤波器,应用时十分方便。因此,在本次 设计中,滤波器的设计主要采用MATLAB 软件,编写适当的程序,得到滤波器的单位脉冲 响应。 本设计对滤波器的硬件仿真主要使用CCS 软件,通过对滤波器的硬件仿真,可以较为真实的看出滤波器的滤波效果。 关键字:高通、FIRDF 、线性相位、Hanning 窗、MATLAB 、CCS 1. 设计目标 产生一个多频信号,设计一个高通滤波器消除其中的低频成分,通过CCS 的graph view波形和频谱显示,并和MATLAB 计算结果比较 2. 设计原理 2.1 数字滤波器 数字滤波器(digital filter)是由数字乘法器、加法器和延时单元组成的一种装置。 其功能是对输入离散信号的数字代码进行运算处理,以达到改变信号频谱的目的。由于电 子计算机技术和大规模集成电路的发展,数字滤波器已可用计算机软件实现,也可用大规 模集成数字硬件实时实现。数字滤波器广泛用于数字信号处理中,如电视、VCD 、音响等。

DSP实验报告

电气信息工程学院 D S P技术与综合训练 实验报告 班级 08通信1W 姓名丁安华 学号 08313115 指导老师倪福银刘舒淇 2011年09 月

目录 实验一 LED演示 1.1.实验目的 -------------------------------------------------P2 1. 2.实验设备-------------------------------------------------P2 1. 3.实验原理-------------------------------------------------P2 1. 4.实验程序设计流程------------------------------------------P3 1. 5.实验程序编写----------------------------------------------P4 1. 6.实验步骤-------------------------------------------------P7 1. 7.实验结果与分析--------------------------------------------P7实验二键盘输入 2.1.实验目的 -------------------------------------------------P8 2.2.实验设备-------------------------------------------------P8 2. 3.实验原理-------------------------------------------------P8 2. 4.实验程序设计流程------------------------------------------P9 2. 5.实验程序编写----------------------------------------------P10 2. 6.实验步骤-------------------------------------------------P14 2. 7.实验结果与分析--------------------------------------------P14实验三液晶显示器控制显示 3.1.实验目的 -------------------------------------------------P15 3.2.实验设备-------------------------------------------------P15 3.3.实验原理-------------------------------------------------P15 3. 4.实验程序设计流程------------------------------------------P17 3. 5.实验程序编写----------------------------------------------P18 3. 6.实验步骤-------------------------------------------------P22 3. 7.实验结果与分析--------------------------------------------P23实验四有限冲激响应滤波器(FIR)算法 4.1.实验目的 -------------------------------------------------P23 4.2.实验设备-------------------------------------------------P23 4.3.实验原理-------------------------------------------------P24 4.4.实验程序设计流程------------------------------------------P25 4. 5.实验程序编写----------------------------------------------P25 4. 6.实验步骤-------------------------------------------------P27 4. 7.实验结果与分析--------------------------------------------P28

FPGA课程设计题目

1、彩灯控制器设计 内容及要求: 设计一个彩灯控制器,具体设计要求如下: (1)要有多种花型变化(至少设计5种),led至少16路 (2)多种花型可以自动变化 (3)彩灯变换的快慢节拍可以选择 (4)具有清零开关 (5)完成全部流程:设计规范文档、模块设计、代码输入、仿真、下载验证等,最后就课程设计本身提交一篇课程设计报告。 2、数字秒表设计 内容及要求: 设计一用于体育比赛的数字秒表,具体设计要求如下: (1)6位数码管显示,其中两位显示min,四位显示see,显示分辨率为0.01 s。 (2)秒表的最大计时值为59min59.99see。 (3)设置秒表的复位/启动键,按一下该键启动计时,再按即清0。依此循环。 (4)设置秒表的暂行/继续键。启动后按一下暂行,再按继续。依此循环。 (5)完成全部流程:设计规范文档、模块设计、代码输入、仿真、下载验证等,最后就课程设计本身提交一篇课程设计报告。 3、交通信号控制系统设计 内容及要求: 设计一个十字路口交通控制系统,具体设计要求如下: (1)东西(用A表示)、南北(用B表示)方向均有绿灯、黄灯、红灯指示,其持续时间分别是40秒、5秒和45秒, 交通灯运行的切换示意图和时序图分别如图1、图2所示。 (2)系统设有时钟,以倒计时方式显示每一路允许通行的时间。 (3)当东西或南北两路中任一路出现特殊情况时,系统可由交警手动控制立即进入特殊运行状态,即红灯全亮,时钟停止计时,东西、南北两路所有车辆停止通行;当特殊运行状态结束后,系统恢复工作,继续正常运行。 图1 交通灯运行切换示意图

B红 CP A绿 A黄 A红 B黄 B绿 5S 5S 图2 交通灯时序图 (4)完成全部流程:设计规范文档、模块设计、代码输入、仿真、下载验证等,最后就课程设计本身提交一篇课程设计报告。 4、简易密码锁设计 内容及要求 设计一个4位串行数字锁。 (1)开锁代码为4位二进制,当输入代码的位数与锁内给定的密码一致,且按规定程序开锁时,方可开锁,并点亮一个指示灯。否则进入“错误”状态,并发出报警信号。 (2)锁内的密码可调,且预置方便,保密性好。 (3)串行数字锁的报警由点亮一个灯,直到按下复位开关,报警才停下。此时,数字锁又自动等待下一个开锁状态。 (4)完成全部流程:设计规范文档、模块设计、代码输入、仿真、下载验证等,最后就课程设计本身提交一篇课程设计报告。 5、出租车计价器设计 内容及要求 (1)设一个出租车自动计费器,计费包括起步价、行驶计费和等待计费三个部分,用4个数码管显示出金额数目,最大值为999.9元,最小计价单位为0.1元。行驶里程在3公里范围内且等待时间未超过三分钟时按起步价8元计费;行驶里程超过三公里后按每公里2元收费;等待时间超过三分钟后按每分钟1元收费。等待时间用两个数码管显示,最大值为59分钟。 总费用=起步价+(里程-3km )*里程单价+(等待时间-3)*等候单价 (2)能够实现的功能: 显示汽车行驶里程:用四位数字显示,单位为km 。 计程范围为0~99km ,计程分辨率为1km 。 显示等候时间:用两位数字显示分钟,单位为min 。计时范围为0~59min ,计时分辨率为1min 。

FPGA课程设计报告

F P G A 课 程 设 计 报 告 学部:信息科学与技术学部 专业:通信工程 班级:10级1班 学号:100103011125 姓名:万洁 指导老师:祝宏 合作伙伴:张紫君 2012.12.13

一.《任务书》: 实验一100进制的可逆计数器(11——12周)实验二交通灯控制系统(15周) 实验三多功能数字钟系统(14-15周)二.实验书写格式: 一:题目要求 二:程序代码 三:操作步骤及运行结果截图 四:心得体会 三.实验附录: 一:老师提供的资源 二:关于实验所用EP4CE115F29板的简介

实验一100进制的可逆计数器 一、设计一个可控的100进制可逆计数器,要求用实验箱下载。 (1)计数器的时钟输入信号周期为200ns。 (2)以十进制形式显示。 (3)有一个复位端clr和两个控制端plus和minus,在这些控制信号的作用下,计数器具有复位、增或减计数、暂停功能。 clr plus minus 功能 0 ××复位为0 1 1 0 递增计数 1 0 1 递减计数 1 1 1 暂停计数 二、程序如下: module keni100(CLR,CLK,PLUS,MINUS,OUT); //100进制的可逆计数器 input CLR,PLUS,MINUS,CLK; output [7:0]OUT; reg [7:0]OUT; always@(posedge CLK) begin if(!CLR) //如果CLR为零,输出为零;反之,运行else程序 OUT[7:0]<=0; else

begin if(PLUS==0 && MINUS==1) //100进制的递减计数 begin if (OUT[3:0]==0) begin OUT[3:0]<=9; if (OUT[7:4]==0) OUT[7:4]<=9; else OUT[7:4]<=OUT[7:4]-1; end else OUT[3:0]<=OUT[3:0]-1; end if(PLUS==1 && MINUS==0) //100进制的递增计数 begin if (OUT[3:0]==9) begin OUT[3:0]<=0; if (OUT[7:4]==9) OUT[7:4]<=0; else OUT[7:4]<=OUT[7:4]+1; end else OUT[3:0]<=OUT[3:0]+1; end if(PLUS==1 && MINUS==1) OUT<=OUT; //若PLUS和MINUS都为1,暂停计数 if(PLUS==0 && MINUS==0) OUT<=0; //若都为零,输出为零end end endmodule 三、运行程序 1、在quarters II9.1输入程序 打开quarters II界面,点击file→New,在出现的对话框,如图1.1所示,选择Text File,点击OK.

DSP实验报告

实验一 程序的控制与转移 一、实验目的 1、掌握条件算符的使用。 2、掌握循环操作指令(BNAZ )和比较操作指令(CMPR ) 二、实验设备 计算机、ZY13DSP12BD 实验箱、5402EVM 板。 三、实验原理 程序控制指令主要包括分支转移、子程序调用、子程序返回、条件操作及循环操作等。通过传送控制到程序存储器的其他位置,转移会中断连续的指令流。转移会影响在PC 中产生和保护的程序地址。其中转移可以分为两种形式的,一种是有条件的,另一种是无条件的。 四、实验内容 编写程序,实现计算y= ∑=5 1 i i x 的值。 五、实验步骤 1、用仿真机将计算机与ZY13DSP12BD 实验箱连接好,并依次打开实验箱电源、仿真机电源,然后运行CCS 软件。 2、新建一个项目:点击Project -New ,将项目命名为example2,并将项目保存在自己定义的文件夹下。 3、新建一个源文件example2.asm 。将该文件添加到工程example2.pjt 中。 4、在工程管理器中双击example2.asm ,编写源程序: .tiltle ”example2.asm ” .mmregs STACK .usect ”STACK ”,10H ;堆栈的设置 .bss x,5 ;为变量分配6个字的存储空间 .bss y,1 .def start .data table: .word 10,20,3,4,5 ;x1,x2,x3,x4,x5 .text Start: STM #0,SWWWSR ;插入0个等待状态 STM #STACK+10H,sp ;设置堆栈指针 STM #x,AR1 ;AR1指向x RPT #4 ;下一条被重复执行5遍 MVPD table,*AR1+ ;把程序存储器中的数据传送到数据存储器 LD #0,A ;A 清零 CALL SUM ;调用求和函数 end: B end SUM: STM #x,AR3 ;AR3指向x STM #4,AR2 ;AR2=4 loop: ADD *AR3+,A ;*AR3+A-->A,然后AR3+ BANZ loop,*AR2- ;如果AR2的值不为0,则跳到loop 处;否则执行下一条指令 STL A,*(y) ;把A 的低16位赋给变量y

DSP课程设计

DSP课程设计 DSP原理及应用课程设计一、设计题目——正弦波信号发生器 二、设计目的 1、掌握用汇编语言编写输出正弦波信号的程序 2、掌握正弦波信号的 DSP 实现原理和 C54X 编程技巧 3、进一步加深对CCS 的认识 4、能通过 CCS 的图形显示工具观察正弦信号波形三、实验设备 PC 兼容机一台,操作系统为 WindowsXP,安装Code Composer Studio 3.1软件。 四、设计原理 在通信、仪器和工业控制等领域的信号处理系统中常常会用到信号发生器来产生正弦波! 产生正弦波的方法一是查表法,二是泰勒级数展开法!查表法主要用于对精度要求不很高的场合,而泰勒级数展开法是一种比查表法更为有效的方法,它能精确地计算出一个角度的正弦和余弦值,且只需要较少的存储空间。本实验将利用泰勒级数展开法利用计算一个角度的正弦值和余弦值程序可实现正弦波。 (1)产生正弦波的算法:在高等数学中,正弦函数和余弦函数可以展开成泰勒级数,其表达式为: 3579xxxxsin(x),x,,,,,... 3!5!7!9! 2468xxxx cos(x),1,,,,,...2!4!6!8! 若要计算一个角度的正弦和余弦值,可取泰勒级数的前五项进行近似计算。 3579xxxxx,x,,,,,sin()...3!5!7!9! 2222xxxx(1(1(1(1)))),x,,,,,,,,23456789 2468xxxx cos(x),1,,,,,... 2!4!6!8!

2222xxxx,,,,, 1(1(1(1))) ,,,2345678 由这两个式子可推导出递推公式,即 sin(nx),2cos(x)sin[(n,1)x],sin[(n,2)x] cos(nx),2cos(x)sin[(n,1)x],cos[(n,2)x] 由递推公式可以看出,在计算正弦和余弦值时,不仅需要已知 ,而且还需要、和。 cos(x)sin(n,1)xsin(n,2)xcos(n,2)x (2)正弦波的实现 1、计算一个角度的正弦值 利用泰勒级数的展开式,可计算一个角度x的正弦值,并采用子程序的调用方式。在调用前先在数据存储器d_xs单元中存放x的弧度值,计算结果存放在 d_sinx单元中。 实现计算一个角度的正弦值的程序片段如下: sinx: .def d_xs,d_sinx .data table_s .word 01C7H ;C1=1/(8*9) .word 030BH ;C2=1/(6*7) .word 0666H ;C3=1/(4*5) .word 1556H ;C4=1/(2*3) d_coef_s .usect "coef_s",4 d_xs .usect "sin_vars",1 d_squr_xs .usect "sin_vars",1 d_temp_s .usect "sin_vars",1 d_sinx .usect "sin_vars",1 d_l_s .usect "sin_vars",1

DSP课程设计题目

《DSP原理及应用课程设计题目》 1、基于TMS320VC5402的DSP最小系统设计 要求: (1)绘制系统框图(VISIO); (2)包括电源设计、复位电路设计、时钟电路设计、存储器设计、JTAG接口设计等,用Protel软件绘制原理图和PCB图; (3)编写测试程序; (4)从理论上分析,设计的系统要满足基本的信号处理要求; (5)参考文献、论文格式规范。 2、基于TMS320VC5402的频谱分析系统设计(可作为毕业设计) 要求: (1)系统设计中,C5402完成数据处理,AT89S52单片机完成控制和显示,绘制出系统框图(VISIO); (2)包括电源设计、复位电路设计、时钟电路设计、A/D转换设计、电平转换设计、JTAG接口设计等,用Protel软件绘制原理图和PCB图; (3)给出程序流程图,设计频谱分析系统软件(C5402的数据处理软件、单片机的控制及显示软件); (4)通过对系统的全面分析得出设计结论(被处理信号的频率范围、采用的信号处理算法等); (5)参考文献,论文格式规范。

3、基于TMS320VC5402的FIR数字滤波器的设计 要求: (1)绘制系统框图(VISIO); (2)包括电源设计、复位电路设计、时钟电路设计、存储器设计、A/D转换设计、JTAG接口设计等,用Protel软件绘制原理图和PCB图; (3)给出所设计的FIR低通滤波器的技术指标,用MATLAB求解滤波器的参数并仿真; (4)给出程序流程图,编写程序,在CCS中完成仿真; (5)参考文献、论文格式规范。 4、基于TMS320VC5402的IIR数字滤波器的设计 要求: (1)绘制系统框图(VISIO); (2)包括电源设计、复位电路设计、时钟电路设计、存储器设计、A/D转换设计、JTAG接口设计等,用Protel软件绘制原理图和PCB图; (3)给出所设计的IIR滤波器的技术指标,用MATLAB求解滤波器的参数并仿真; (4)给出程序流程图,编写程序,在CCS中完成仿真; (5)参考文献、论文格式规范。

DSP技术与课程设计实验报告二(精)

东南大学自动化学院 实验报告 课程名称: D SP 原理及C 程序开发 第二次实验 实验名称:基于DSP 系统的实验——指示灯、拨码开关和定时器院(系):自动化专业:自动化 姓名:学号: 实验室:实验组别: 同组人员:实验时间:2012 年 4 月 18日 评定成绩:审阅教师: 第一部分实验:基于DSP 系统的实验——指示灯和拨码开关 一.实验目的 1. 了解ICETEK –F28335-A 评估板在TMS320F28335DSP 外部扩展存储空间上的扩展。 2. 了解ICETEK –F28335-A 评估板上指示灯和拨码开关扩展原理。 3. 学习在C 语言中使用扩展的控制寄存器的方法。 二.实验设备 计算机,ICETEK –F28335-A 实验箱(或ICETEK 仿真器+ICETEK–F28335-A 评估板+相关连线及电源)。 三.实验原理

1.TMS320F28335DSP 的存储器扩展接口 存储器扩展接口是DSP 扩展片外资源的主要接口,它提供了一组控制信号和地址、数据线,可以扩展各类存储器和存储器、寄存器映射的外设。 -ICETEK –F28335-A 评估板在扩展接口上除了扩展了片外SRAM 外,还扩展了指示灯、DIP 开关和D/A 设备。具体扩展地址如下: 0x180004- 0x180005:D/A 转换控制寄存器 0x180001:板上DIP 开关控制寄存器 0x180000:板上指示灯控制寄存器 -与ICETEK –F28335-A 评估板连接的ICETEK-CTR 显示控制模块也使用扩展空间控制主要设备: 208000-208004h :读-键盘扫描值,写-液晶控制寄存器 208002-208002h :液晶辅助控制寄存器 208003-208004h :液晶显示数据寄存器 2.指示灯与拨码开关扩展原理

DSP录音机设计课程设计

目录 1设计原理及内容 (1) 1.1语音编码原理 (1) 1.2设计内容 (1) 1.2.1 基本部分 (1) 1.2.2 扩展部分 (1) 2设计资源介绍 (2) 2.1多通道缓冲串行口MCBSP...................................................... .2 2.1.1 工作原理 (2) 2.1.2 相关头文件 (2) 2.2 TLC320AD50 CODEC编码译码器 (2) 2.3 存储器 (3) 2.4压扩硬件 (4) 2.5 麦克风和耳机接口 (5) 3 设计思想 (5) 3.1实验方案 (5) 4 .程序设计 (6) 4.1 程序流程图 (6) 4.2各个分块程序设计 (7) 5.程序清单 (9) 6 操作步骤和结果 (19) 7 参考文献 (20)

1.设计原理与实验内容 1.1语音编码原理: (1)概念:语音编码一般分为两类:一类是波形编码,一类是被称为“声码器技术”的编码。PCM编码即脉冲编码调制。波形编码的最简单形式就是脉冲编码调制(Pulse code modulation),这种方式将语音变换成与其幅度成正比的二进制序列,而二进制数值往往采用脉冲表示,并用脉冲对采样幅度进行编码,所以叫做脉冲编码调制。脉冲编码调制没有考虑语音的性质,所以信号没有得到压缩。 (2)量化:脉冲编码调制用同等的量化级数进行量化,即采用均匀量化,而均匀量化是基本的量化方式。但是均匀量化有缺点,在信号动态范围较大而方差较国际上有两种非均匀量化的方法:A律和μ律,μ律是最常用的一种。在美国,7位μ律是长途电话质量的标准。而我国采用的是A律压缩,而且有标准的(3)DPCM&ADPCM: 降低传输比特率的方法之一是减少编码的信息量,这要消除语音信号中的冗余度。相邻的语音样本之间存在明显的相关性,因此对相邻样本间的差信号进行编码,便可使信息量得到压缩。因为差分信号比原语音信号的动态范围和平均能量都小。这种编码叫Differential PCM,简称DPCM,即差分脉冲编码调制。 1.2 设计内容: 1.2.1基本部分: (1)使用DSP实现语音压缩和解压缩的基本算法,算法类型自定,例如可以采用G.711、G.729等语音压缩算法。 (2)采用A/D转换器从MIC输入口实时采集语音信号,进行压缩后存储到DSP的片内和片外RAM 存储器中,存储时间不小于10秒。 (3)存储器存满之后,使用DSP进行实时解压缩,并从SPEAKER输出口进行回放输出。(4)使用指示灯对语音存储和回放过程进行指示。 1.2.2发挥部分: 使用多种算法进行语音的压缩、存储和解压缩,比较它们之间的优缺点。 2. 设计资源介绍 2.1多通道缓冲串行口MCBSP 2.1.1工作原理 C5402 具有2 个高速的全双工同步串行口,可用来与系统中的其它C54x 器

dsp实验报告 哈工大实验三 液晶显示器控制显示实验

实验三液晶显示器控制显示实验 一. 实验目的 通过实验学习使用2407ADSP 的扩展I/O 端口控制外围设备的方法,了解液晶显示器的显示控制原理及编程方法。 二. 实验设备 计算机,ICETEK-LF2407-EDU 实验箱。 三.实验原理 ICETEK-LF2407-A 是一块以TMS320LF2407ADSP 为核心的DSP 扩展评估板,它通过扩展接口与实验箱的显示/控制模块连接,可以控制其各种外围设备。 液晶显示模块的访问、控制是由2407ADSP 对扩展I/O 接口的操作完成。 控制I/O 口的寻址:命令控制I/O 接口的地址为0x8001,数据控制I/O 接口的地址为0x8003 和0x8004,辅助控制I/O 接口的地址为0x8002。 显示控制方法: ◆液晶显示模块中有两片显示缓冲存储器,分别对应屏幕显示的象素,向其中写入数 值将改变显示,写入“1”则显示一点,写入“0”则不显示。其地址与象素的对应 方式如下: ◆发送控制命令:向液晶显示模块发送控制命令的方法是通过向命令控制I/O 接口 写入命令控制字,然后再向辅助控制接口写入0。下面给出的是基本命令字、解释 和 C 语言控制语句举例。 ?显示开关:0x3f 打开显示;0x3e 关闭显示; ?设置显示起始行:0x0c0+起始行取值,其中起始行取值为0 至63; ?设置操作页:0x0b8+页号,其中页号取值为0-7; ?设置操作列:0x40+列号,其中列号为取值为0-63; ◆写显示数据:在使用命令控制字选择操作位置(页数、列数)之后,可以将待显示的 数据写入液晶显示模块的缓存。将数据发送到相应数据控制I/O 接口即可。

(完整版)基于FPGA的温度传感器课程设计

FPGA课程设计论文 学生姓名周悦 学号20091321018 院系电子与信息工程学院 专业电子科学与技术 指导教师李敏 二O一二年5月28 日

基于FPGA的温度传感器系统设计 1引言 温度是一种最基本的环境参数,人们的生活与环境的温度息息相关,在工业生产过程中需要实时测量温度,在农业生产中也离不开温度的测量,因此研究温度的测量方法和装置具有重要的意义。测量温度的关键是温度传感器,温度传感器的发展经历了三个发展阶段:传统的分立式温度传感器;模拟集成温度传感器;智能集成温度传感器。目前,国际上新型温度传感器正从模拟式向数字式,从集成化向智能化、网络化的方向飞速发展。本文将介绍采用智能集成温度传感器DS18B20,并以FPGA为控制器的温度测量装置的硬件组成和软件设计,用液晶来实现温度显示。 2电路分析 系统框图如下: 第一部分:DS18B20温度传感器 美国 Dallas 半导体公司的数字化温度传感器 DS1820 是世界上第一片支持 "一线总线"接口的温度传感器,在其内部使用了在板(ON-B0ARD)专利技术。全部传感元件及转换电路集成在形如一只三极管的集成电路内。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。现在,新一代的 DS18B20 体积更小、更经济、更灵活。使你可以充分发挥“一线总线”的优点。 DS18B20 的主要特性:(1)适应电压范围更宽,电压范围:3.0~5.5V,在寄生电源方式下可由数据线供电(2)独特的单线接口方式,DS18B20 在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20 的双向通讯(3)DS18B20 支持多点组网功能,多个DS18B20 可以并联在唯一的三线上,实现组网多点测(4)DS18B20 在使用中不需要任何外

DSP课程设计

1课程设计目的 通过我们对DSP 控制器及其应用课程的学习和理解, 综合运用课本中所学到的理论知识完成一 个温度采集与显示的课程设计。通过这次实践锻炼我们查阅资料、方案比较、团结合作的能力。在 计。学会采用简单电路的实验调试和整机指标测试方法,增强我们的动手能力,为以后学习和工作 打下坚实基础 2课程设计正文 2.1系统分析 2.1.1设计的任务及步骤 根据实验测得热敏电阻和温度的一些数据,设计温度一一电阻公式; 设计外部硬件电路; 编写上位机程序 2.1.2技术要求 函数关系。其次进行软件设计,主要包括 AD 转换模块、液晶显示模块、算法转换模块、主函数模 块以及上位机模块。最后进行软硬件联系调试,并能在液晶上正常显示温度值。 2.2总体设计 2.2.1硬件设计 TMS320F2812作为本次课设使用的 DSP 芯片。它包含33个电源引脚(为使器件正常运行,所 电源复位、复位引脚~RS 软件复位、非法地址复位、看门狗定时器溢出、欠压复位六种复位信号。 所以在设计的初期,把它分成了五个模块。其中复位采用电源复位的方式,由引脚 这个过程我们必须掌握温度采集技术的硬件设计、 熟悉A/D 转换技术和DSP 夜晶显示功能的软件设 (1) 熟悉MC1403芯片的应用; (2) 软件完成程序流程图设计和编程,其中包括 A/D 转换和液晶显示部分; (6) 软硬件联合调试; (7) 书写设计说明书。 此系统利用热敏电阻测得电阻一温度之间的关系, 找到电阻和温度之间的代数关系, 从而检测 温度,设计硬件外扩电路,同时设计软件程序,包括 A/D 程序设计,进行软硬件联系调试,能在液 晶显示屏上显示温度。 2.1.3设计思路 首先设计温度采集电路,由于考虑到使用的是非线性负温度系数的热敏电阻, 因此采用了桥式 电路尽量减小因外接不必要因素导致的误差, 通过多次试验测得几个点,并拟合出一条合适的线性 有电源引脚必须正确连接且不能悬空)时钟源模块, DSP 有六种信号可以使 DSP 控制器复位,即 PCRESETI 起。

相关主题
相关文档 最新文档