EDA实训报告Word格式.docx
- 文档编号:15042861
- 上传时间:2022-10-27
- 格式:DOCX
- 页数:17
- 大小:98.22KB
EDA实训报告Word格式.docx
《EDA实训报告Word格式.docx》由会员分享,可在线阅读,更多相关《EDA实训报告Word格式.docx(17页珍藏版)》请在冰豆网上搜索。
2016.1
实训地点
指
导
教
师
评
语
年月日
目录
一.实训目的1
二.实训任务和要求1
三.实训过程与内容1
1.EDA实验的程序实现1
1.1实验原理1
1.2实验过程1
1.3实验程序2
1.4实验程序分析3
1.5引脚绑定4
1.6运行程序查看实验结果4
2.采用单片机技术实现惯导数据的采集4
2.1STM32单片机的介绍4
2.2惯导定位系统简介4
2.3惯导传感器MPU6050介绍4
2.4MPU6050的特点5
2.5MPU6050的单片机的连接5
2.6STM32单片机控制流程图5
2.7主函数程序6
2.8KEIL5的使用方法7
3.PC应用程序处理单片机传来的数据并显示波形7
3.1C#语言简介及使用方法7
3.2面向对象的概念及类的特性8
3.3C#绘图机制9
3.4VisualStudio2008开发环境的使用9
3.5PC应用程序分析10
四.实训总结与心得体会12
五.参考文献14
一.实训目的
1.熟悉EDA实验基本操作
2.利用VHDL语言编写EDA程序,运行调试程序,观察现象
3.采用单片机技术实现惯导信号的数据采集
4.采用PC应用程序处理单片机传来的数据并显示波形
二.实训任务和要求
1.用VHDL语言独自编写“七人表决器程序”,并在实验箱进行测试
2.用STM32单片机采集MPU6050数据,实现惯导数据的采集
3.用C#编写PC端应用程序,实现惯导数据的波形显示
三.实训过程与内容
1.EDA实验的程序实现
1.1实验原理
用七个开关作为表决器的7个输入变量,输入变量为逻辑“1”时表示表决者“赞同”;
输入变量为逻辑“0”时表示表决者“不赞同”;
输出逻辑“1”时,表示表决“通过”;
输出逻辑“0”时,表示表决“不通过”;
当表决器的七个输入变量中有4个及以上为“1”时,则表决器输出为“1”,否则为“0”。
表决器输入采用试验箱K1~K16,输出采用试验箱L15、L16指示;
同意红灯亮,否则黄灯亮。
1.2实验过程
学习EDA编程第一步就是要学会用,VHDL语言的开发环境,本次实验我们使用的是Quartus编译器。
首先是建立一个quartus工程,启动Quartus软件后默认的界面主要由标题栏,菜单栏你,工具栏,资源管理窗口,编译状态显示窗口,信息显示窗口和工程工作区等部分组成。
执行菜单命令File->
NewProjectWizard创建工程向导。
第二步,设置工程文件夹及工程名,在弹出来的对话框中输入工程将存储的路径,然后填写工程名,最后一行填写顶层文件名。
点击next,然后选择器件。
在Devicefamily->
family下选择要使用的FPGA芯片系列,并在devices下选择具体芯片型号,点击next。
然后在编辑区编辑VHDL程序即可。
1.3实验程序
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_arith.all;
useieee.std_logic_unsigned.all;
--------------------------------------------------------------------
entitydecisionis
port(
k1,K2,K3,K4,K5,K6,K7:
instd_logic;
--输入:
7个人
ledag:
outstd_logic_vector(7downto0);
--数码管显示
m_Result:
outstd_logic--表决结果
);
enddecision;
architecturebehaveofdecisionis
signalK_Num:
std_logic_vector(2downto0);
signalK1_Num,K2_Num:
signalK3_Num,K4_Num:
signalK5_Num,K6_Num:
signalK7_Num:
begin
process(K1,K2,K3,K4,K5,K6,K7)--计算表决同意人数
K1_Num<
='
0'
&
'
K1;
K2_Num<
K2;
K3_Num<
K3;
K4_Num<
K4;
K5_Num<
K5;
K6_Num<
K6;
K7_Num<
K7;
endprocess;
process(K1_Num,K2_Num,K3_Num,K4_Num,K5_Num,K6_Num,K7_Num)
K_Num<
=K1_Num+K2_Num+K3_Num+K4_Num+K5_Num+K6_Num+K7_Num;
process(K_Num)--根据人数输出结果
if(K_Num>
3)then
m_Result<
1'
;
else
endif;
process(K_Num)--根据人数数码管显示表决通过人数
caseK_Numis
when"
000"
=>
ledag<
="
11000000"
001"
11111001"
010"
10100100"
011"
10110000"
100"
10011001"
101"
10010010"
110"
10000010"
111"
11111000"
whenothers=>
11111111"
endcase;
endbehave;
1.4实验程序分析
在程序开始需要添加库文件,本次程序总共使用到了三个库文件,一个是包含了基本逻辑门实体,一个是包含了数学运算,一个包含了整形数。
然后在实体中定义端口,标明输入输出端口。
整个程序主要部分是在Architecture中,在这个部分中定义了5个信号,在结构中有三个进程,一个进程负责当有人按下同意按键时,相应的指示灯亮。
第二个进程表示统计所有按下同意按键的人数。
第三个进程将同意的人数通过数码管显示出来。
1.5引脚绑定
在Quatus软件中使用Assignments->
RemoveAssignment标签,移出管脚分配内容,以确保此次操作。
然后使用记事本或类似软件新建一个tcl文件,按如下格式编写管脚分配内容。
1.6运行程序查看实验结果
编译程序成功后,接下来就是测试程序是否按照自己的意图运行。
点击运行按钮,然后按下K1开关,可以看到L1灯亮了表示K1已经按下,数码管显示数字1,然后表决灯灭。
接着按下K1,K3,K4,K6,K7按键,看到L1,L3,L4,L6,L7指示灯都是亮的,数码管显示数字5,表决灯亮,表示有4个以上的人表示通过。
实验成功!
2.采用单片机技术实现惯导数据的采集
2.1STM32单片机的介绍
STM32系列单片机基于专为高要求性能,低成本,低功耗的嵌入式应用专门设计的ARMCortex-M3内核。
最高工作频率为72MHZ,单周期乘法和硬件除法。
片上集成32-512KB的Flash存储器,有三种低功耗模式:
休眠,停止,待机模式。
拥有USART,SPI,I2C等常用外设接口。
操作简单方便等特点。
2.2惯导定位系统简介
随着社会现代化建设的不断发展,大型建筑日益增多,人们80%以上的时间处于室内环境,室内位置服务的需求正在不断增加。
在特殊人群监护,大型场馆管理,个人位置服务等领域都需要使用准确的室内位置信息,特别是在紧急情况时,如在消防救援,应急疏散等特殊应用场景下,室内定位信息显得尤为重要。
惯导定位的原理是:
在知道物体初始位置的情况下,通过惯导器件(加速度计和陀螺仪)确定物体相对空间的位置变化,然后通过磁力计得到物体相对初始位置的方向变化,然后结合位置和方向两个物理量,可以计算出物体的最终位置,实现室内定位。
2.3惯导传感器MPU6050介绍
MPU6050是InvenSense公司推出的全球首款整合性6轴运动处理组件,相较于多组件方案,免除了陀螺仪与加速度时轴间差的问题,减少了安装空间。
MPU6050内部整合了3轴陀螺仪和3轴加速度传感器,并且含有一个第二IIC接口,可用于连接外部磁力传感器,并利用自带的数字运动传感器(DMP:
DigitalMotionProcessor)硬件加速引擎,通过主IIC接口,向应用端输出完整的9轴融合演算数据。
有了DMP,我们可以使用InvenSense公司提供的运动处理资料库,非常方便的实现姿态解算,降低了运动处理运算对操作系统的负荷,同时大大降低了开发难度。
2.4MPU6050的特点
1.以数字形式输出6轴或9轴的旋转矩阵,四元数,欧拉角格式的融合演算数据。
2.移除加速度与陀螺仪轴间敏感度,降低设定给与的影响与感测器的漂移。
3.自带1024字节的FIFO,有助于降低系统功耗。
2.5MPU6050的单片机的连接
MPU6050通过IIC来和单片机通信,SCL和SDA是连接MCU的IIC接口,MCU通过这个IIC接口来控制MPU6050,另外还有一个IIC接口:
AUX_CL和AUX_DA,这个接口可用来连接外部从设备,比如磁传感器,这样就可以组成一个九轴传感器。
VLOGIC是IO口电压,该引脚最低可以到1.8V,我们一般直接接VDD即可。
AD0是从IIC接口的地址控制引脚,该引脚控制IIC地址的最低位。
如果接GND,则MPU6050的IIC地址是:
0X68,如果接VDD,则是0X69,注意:
这里的地址是不包含数据传输的最低位!
2.6STM32单片机控制流程图
STM32单片机主要是通过IIC通信,从MPU6050传感器中读出DMP中输出的四元数q0,q1,q2,q3。
然后通过公式:
Pitch=asin(-2*q1*q3+2*q0*q2)*57.3;
(俯仰角)
Roll=atan2(2*q2*q3+2*q0*q1,-2*q1*q1-2*q2*q2+1)*57.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)