基于CPLD的出租车计费器剖析.doc

上传人:牧羊曲112 文档编号:4957712 上传时间:2023-05-26 格式:DOC 页数:11 大小:693KB
返回 下载 相关 举报
基于CPLD的出租车计费器剖析.doc_第1页
第1页 / 共11页
基于CPLD的出租车计费器剖析.doc_第2页
第2页 / 共11页
基于CPLD的出租车计费器剖析.doc_第3页
第3页 / 共11页
基于CPLD的出租车计费器剖析.doc_第4页
第4页 / 共11页
基于CPLD的出租车计费器剖析.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《基于CPLD的出租车计费器剖析.doc》由会员分享,可在线阅读,更多相关《基于CPLD的出租车计费器剖析.doc(11页珍藏版)》请在三一办公上搜索。

1、等级: 课 程 设 计课程名称嵌入式系统课程设计课题名称基于CPLD的出租车计费器专 业电子信息工程班 级1201学 号19姓 名许振跃指导老师林愿2015年9月16日目 录1、 课程设计任务要求11.1 EDA发展前景11.2 任务要求12、设计步骤12.1 信号输入12.2 数据转换12.3 数据显示13、出租车计费系统的实现23.1 顶层电路设计23.2 子模块设计24、系统仿真54.1 开始信号的仿真结果54.2 加速信号仿真结果54.3 显示的仿真结果54.4 decoder的仿真结果65、 下载调试及实验结果66、设计心得7参考文献81、 课程设计任务要求1.1 EDA发展前景 E

2、DA技术(即Electronic Design Automation技术)就是依赖强大的计算机,在EDA工具软件平台上,对以硬件描述语言HDL(Hardware Ddscription Langurage)为系统逻辑描述手段完成的设计文件,自动地完成逻辑编译、化简、分割、综合、布局布线以及逻辑优化和仿真测试,直至实现既定的电子线路系统功能。 1.2 任务要求 CPLD为复杂可编程逻辑器件,通过EDA技术对其进行编程,可将一个较复杂的数字系统集成于一个芯片中,制成专用集成电路芯片,并可随时在系统修改其逻辑功能。并最终完成电路的编程调试。具体要求如下:(1) 实现计费功能,计费标准为:按行驶里程计

3、费,起步价为5.00元,并在车行3Km后按1.40元/Km计费,当计费器达到或超过20元时,每公里加收50的车费,车停止不计费。(2) 现场模拟功能:能模拟汽车起动、停止、暂停以及加速等状态。 (3) 按计动态扫描电路,将车费和路程显示出来,各有两位小数。 2、设计步骤 2.1 信号输入 该模块主要实现计费功能和现场模拟功能。计费标准为:按行驶里程计费,起步价为5.00元,并在车行3km后按1.4元km计费,当计费器达到或超过20元时,每公里加收50的车费,车停止不计费。并以高低脉冲模拟出租汽车启动、停止、暂停、加速按钮,具有输入信号的作用。2.2 数据转换 数据转换模块是一个模为10的加法计

4、数器,可将计费模块输出的车费和路程转换成4位的十进制数。2.3 数据显示 显示模块是由七段LED数码管译码和动态扫描显示两部分组成。采用的是共阴极七段数码管,根据十六进制数和七段显示段码表的对应关系,其中要求路程和车费都要用2位小数点来表示,所以须设置一个控制小数点的变量,即程序中的dp。这段程序所示的是在数码管的第二、第六个后面显示小数点,实现了路程和车费都用2位小数点表示的功能。数码管控制及译码显示模块将十进制的输入信号用七段数码管显示,由七段发光二极管组成数码显示器,利用字段的不同组合。可分别显示09十个数字。3、出租车计费系统的实现 3.1 顶层电路设计 图1 系统总体框图3.2 子模

5、块设计 3.2.1 taxi的实现模块taxi见下图。输入端口speedup,start,pause,stop分别为出租车计费器的加速、起动、暂停、停止按键。实现计费功能,计费标准为:按行驶里程计费,起步价为5.0元,并在车行3Km后按1.40元/Km计费,当计费器达到或超过20元时,每公里加收50的车费,车停止不计费。图2 taix模块library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity decoder isport(clk20mhz: in std_logic;money_in:in

6、integer range 0 to 8000;distance_in:in integer range 0 to 8000;scan:out std_logic_vector(7 downto 0);seq7:out std_logic_vector(6 downto 0);dp:out std_logic);end;architecture one of decoder issignal clk1khz:std_logic;signal data:std_logic_vector(3 downto 0);signal m_one,m_ten,m_hun,m_tho:std_logic_ve

7、ctor(3 downto 0);signal d_one,d_ten,d_hun,d_tho:std_logic_vector(3 downto 0);variable num:integer range 0 to 9;variable dis:integer range 0 to 100;variable d:std_logic;beginif stop = 1 thenmoney_reg:= 0;distance_reg:= 0;dis:= 0;num:= 0;3.2.2 decoder的实现 模块decoder见下图。该模块把车费和路程转化为数码管可以显示的信号。图3 模块xelsif

8、 start = 0 and speedup = 10 and pause = 0 and stop = 0 thenif num = 9 thennum:= 0;distance_reg:= distance_reg + 5;dis:= dis + 5;else num:= num + 1;end if;elsif start = 0 and speedup = 11 and pause = 0 and stop = 0 thendistance_reg:= distance_reg + 1;dis:= dis + 1;end if;if dis = 100 thend:= 1;dis:=

9、0;else d:= 0;end if;if distance_reg = 300 thenif money_reg = 2000 and d = 1 thenmoney_reg:= money_reg + 210;end if;end if;end if;money = money_reg;distance data = m_one; dp = 0; scan data = m_ten; dp = 0; scan data = m_hun; dp = 1; scan data = m_tho; dp = 0; scan data = d_one; dp = 0; scan data = d_

10、ten; dp = 0; scan data = d_hun; dp = 1; scan data = d_tho; dp = 0; scan seq7 seq7 seq7 seq7 seq7 seq7 seq7 seq7 seq7 seq7 seq7 = 0000000;end case;end process;end;4、系统仿真4.1 开始信号的仿真结果 输入端口speedup,start,pause,stop分别为出租车计费器的加速、起动、暂停、停止按键。 输入:clk, start, stop, pause, speedup; 输出:money, distance;图5 开始仿真结果

11、4.2 加速信号仿真结果对控制模块taxi进行仿真,观察波形可知,当启动键(start)为一个脉冲时,表示汽车已启动,车费money显示起步价为5.00元,同时路程distance随着计费脉冲开始计数,当停止键(stop)为1时,表示汽车熄火,车费money和路程distance均为0;当暂停键(pause)为1时,车费和路程停止计数;当档位键分别取0、1、2时路程的计数逐步加快,表示车速逐步加快。 输入:clk, start, stop, pause, speedup; 输出:money, distance;图6 系统仿真结果5、 下载调试及实验结果 程序下载完后,按下启动键,车费显示起步价

12、为5元。图9 加速仿真结果 当路程超过3公里后每公里多加1.4元,显示为6.4元。图10 加速仿真结果6、设计心得我们这次课程设计的题目是出租车计费器,拿到题目我就有点小激动,因为终于可以利用自己的所学做点与实际生活相关的东西了。首先,我复习的一下VHDL程序设计的基本语法,然后开始熟悉Quartus 的相关操作。包括模块化的编译器。编译器包括的功能模块有分析/综合器,适配器、装配器、时序分析器、设计辅助模块、EDA网表文件生成器、编辑数据接口等。可以通过选择Start Compilation来运行所有的编译器模块,也可以通过选择Start单独运行各个模块。还可以通过选择Compiler To

13、ol,在Compiler Tool窗口中运行该模块来启动编译器模块。然后,我开始去图书馆找相关的图书,因为当我看了课程设计任务书之后,对于整个程序还是没有把握。所以我希望能够找到相关的程序进行验证,然后修改以符合自己的课程设计的要求。功夫不负有心人,我在图书馆借的几本书中就有和我们课题类似的程序模块。所以,我就将书中的程序在Quartus II中运行了一遍。可是,过程并没有我们想象的那么顺利。我们发现加速功能无法实现,一旦开启加速,数码管就会出现乱码。经过对源代码的一番修改,我们的乱码现象有了一些好转。但是,也并没有完全达到要求。经过在实验箱中的调试,我们终于找到了解决方案,即改变输入的时钟频

14、率。寻找到最合适的频率,就可以让系统达到显示要求。通过这次课程设计,我分析问题,解决问题的能力有了一定的提高。同时,对之前所学的知识也进行了巩固。更重要的是,我发现之前学的很多基础知识是有用的。一旦开始进行工程实践,这些知识将会发挥巨大的作用。所以,我决定在今后的学习过程中重视基础知识的学习,在增强理论基础的同时,再动手进行工程实践。同时感谢对我帮助过的同学们,谢谢你们对我的帮助和支持,让我感受到同学的友谊。老师循循善诱的教导和不拘一格的思路给予我无尽的启迪;这次设计的每个细节和每个数据,都离不开老师您的细心指导。谢谢您! 参考文献1. 陈大钦主编,电子技术基础实验,高等教育出版社。2. 彭介

15、华主编,电子技术课程设计指导,高等教育出版社。3. 张 原编著,可编程逻辑器件设计及应用,机械工业出版社。4.荀殿栋,徐志军编著,数字电路设计实用手册,电子工业出版社。5. QUARTUSII入门6.刘洪喜,陆颖编著. VHDL电路设计实用教程 清华大学出版社 。电气信息学院课程设计评分标准环节项目评价优良中及格不及格实践环节(70%)1、设计方案合理性与创造性2、编程完成情况3、电路模块仿真调试结果*4、硬件测试过程及结果*5、解决问题能力及答辩情况6、纪律和出勤情况设计报告(30%)1、 设计报告内容完整、规范2、 设计步骤规范、正确3、 仿真调试结果正确、波形清晰4、 硬件测试过程规范、结果正确综合评价课程设计成绩评定为:优 良 中 及格 不及格 指导老师签名:_ 日 期:_8

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号