《EDA应用实训》课程设计出租车计价表的设计与仿真.doc

上传人:土8路 文档编号:9990271 上传时间:2021-04-09 格式:DOC 页数:21 大小:276KB
返回 下载 相关 举报
《EDA应用实训》课程设计出租车计价表的设计与仿真.doc_第1页
第1页 / 共21页
《EDA应用实训》课程设计出租车计价表的设计与仿真.doc_第2页
第2页 / 共21页
《EDA应用实训》课程设计出租车计价表的设计与仿真.doc_第3页
第3页 / 共21页
《EDA应用实训》课程设计出租车计价表的设计与仿真.doc_第4页
第4页 / 共21页
《EDA应用实训》课程设计出租车计价表的设计与仿真.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《《EDA应用实训》课程设计出租车计价表的设计与仿真.doc》由会员分享,可在线阅读,更多相关《《EDA应用实训》课程设计出租车计价表的设计与仿真.doc(21页珍藏版)》请在三一文库上搜索。

1、目 录1.绪论12. 总体设计12.1设计任务及要求12.2设计方案及选择22.2.1用VHDL语言实现计价22.2.2用ABEL语言实现计价22.2.3出租车计价器的实现方案33程序设计43.1里程模块设计43.2等待时间模块73.3计价模块113.4总体模块连线图124程序的调试与仿真分析134.1测试向量的编写134.2仿真波形及分析135总结与体会17参考文献18 1 绪论随着经济的迅猛发展以及人民生活水平的提高,城市的出租车营运事业发展迅速,出租车已经成为人们日常出行选择较为普通的交通工具。出租车计价器是出租车营运收费的专用智能化仪表,是使出租车市场规范化、标准化的重要设备。一种功能

2、完备,简单易用,计量准确的出租车计价器是加强出租车行业管理,提高服务质量的必需品。本设计采用ABEL硬件描述语言作为设计手段,采用自顶向下的设计思路,得到一种出租车计价系统的软件结构,通过软件下进行仿真,证明所设计的电路系统完成了出租车计价的功能,各项指标符合设计要求。该设计虽然功能简单,智能化水平比较低,但仍具有一定的实用性。 我们知道出租车的计价器显示的价格与行驶的里程,还有路途中等待的时间见有关,而且随着里程的增加价格会有不同的档位,要自动化控制它的变化需要熟悉它的基本运行环境,掌握它工作的几大模式,等待时间模块,路程模块,计费模块等。在这个设计中,我选用的是ABEL语言设计的出租车计价

3、器,仿真软件选用的是ISPLEVE,设计输入可采用原理图,硬件描述语言,混合输入三种方式,能对所设计的数字电子系统进行功能仿真和时序仿真。使用ISPLEVE时,要先创建工程项目,再绘制顶层原理图,再用ABEL语言编程,接着编译仿真。2 总体设计2.1 设计任务及要求 设计一个TAXI的计价表,按实际行驶里程和等候时间综合计价。计价规则为: 1.起步价8元(含4KM),(4Km,7Km单价1.4元/Km,(7Km,)单价2.1元/Km; 每行驶500m价格跳一档(7Km以前每档0.7元,7Km之后,1.1元和1元交替); 2.行驶速度低于12Km/h时计算等候时间,等候时间每计满3分钟,价格跳一

4、档(跳档规则同上); 3.计价不分昼夜模式,价格不设上限; 4.车载传感器可提供1m的行驶距离脉冲和实际速度是否达到12Km/h的信号。(视为已知信号,可直接使用) 5.分别显示等待时间,行驶路程,价格。2.2 设计方案及选择2.2.1 用VHDL语言实现计价 在Quartus环境中对出租车自动计费器的各个部分利用VHDL这一硬件描述语言予以设计,生成模块。主要有:运算控制模块、分频器、显示模块这三大部分组成。由顶层模块协调控制完成设计任务。我们知道VHDL是一种全方位的硬件描述语言,包括系统行为级、寄存器传输级和逻辑门级多个设计层次,支持结构、数据流和行为3种描述形式的混合描述,因此VHDL

5、几乎覆盖了以往各种硬件描述语言的功能,整个自顶向下或自底向上的电路设计过程都可以用VHDL来完成。但是按设计要求多种时钟信号,并有多种计费标准共同控制计价过程,如果用VHDL语言,则需有限次高速脉冲发生器向一组级联的十进制计数器提供不同费率的计价脉冲,根据里程计价信号、等时计价信号、停车开关状态、当前计费结果等信号,综合考虑,挑选适合次数的计价脉冲,从而实现不同条件的不同计费。这无疑比较复杂,还会在调试中出现各种问题。2.2.2 用ABEL语言实现计价在ISPLEVE软件中编写ABEL语言,我们需要在创建好工程项目后,绘制顶层原理图,再用ABEL语言编写原理图能实现的功能,定义好各个元件后,编

6、写测试向量,编译后运行仿真。我们知道ABEL语言的基本结构很简单,就是标题段,定义段,逻辑描述段,结束段还有一个可选择的测试向量段组成。各部分功能很明了,我们可以根据自己的需要定义芯片,为我们所用。但是作图过程比较琐细,我们需要设定每一个管脚,并且连线安排妥当。它的优点是只有清晰的流程,设定好每一部分的功能,不需要繁琐的程序编写就可以实现它的功能,对于我来说,这种方法能更好地理解。2.2.3 出租车计价器的实现方案参进量的控 制100 进制计数器2 进 制计 数 器5进制计数器公里整数部分判断计价模块或门与门3进制计数器 图2.2.3 总体框架 当速度低于12km/h时时钟脉冲和里程脉冲同时控

7、制计价器,速度高于那么多时,由里程控制控制计价器。这样的话,我们可以将等待时间脉冲与里程脉冲相或之后的脉冲控制计价器最后一模块。我们根据里程100m的脉冲经一5进制计数器,其进位输出端为500m脉冲,输出的低位正好判断里程小数部分是0,还是0.5,再将500米脉冲经一2进制计数器,其进位输出正好是1km的脉冲,再由一十进制计数器记录整数部分的数值,里程的整数部分和小数部分可以控制计价器的参进量。假设时间脉冲间隔是一秒,那我们先将此脉冲经一60进制计数器,其进位端输出的就是一分钟的脉冲,再经一3进制计数器,其进位端输出脉冲正好是等待时间3分钟,倘若此时里程大于4km,则按原来里程中设定好的参进量

8、计价,每三分钟进一档。为了让里程和等待时间一起控制计价器,我们选用的是等待时间脉冲与每五百里程脉冲相或,在加上设定好的参进量控制计价器。3 程序设计3.1 里程模块设计每一百米给一个脉冲,经一五进制计数器其进位输出端输出五百米脉冲,再由一二进制计数器可以把里程千米的整数部分和小数部分分开计数,十进制计数器记录千米的整数部分。 图3-1-1五进制计数器MODULE COUNT5CP,R PIN;D2,D1,D0 PIN ISTYPE REG;Y1 PIN ISTYPE COM;Q=D2,D1,D0;EQUATIONSQ.AR=R;WHEN(R=1)THENQ:=0;Y1=0;Q.CLK=CP;W

9、HEN(R=0)&(Q=0)&(Q=0)&(B=0)&(D=4)&(D=7)&(D10=0)THENA:=11;WHEN(D=7)&(D10=1)THENA:=10;END 当里程千里数整数部分小于4时,起步价8.0元,由于数显不能显示小数部分我们写成八十;当里程千里数整数部分大于4小于7时,每五百米跳七;当里程千里数整数部分大于7时,前五百米跳11,后五百米跳10,然后交替下去。为了实现里程计数ABC.D,要将最开始的一百米脉冲接到十进制计数器的时钟信号上,便于小数部分的记录,而千米整数部分通过一百进制计数器记录。3.2等待时间模块 行驶速度低于12Km/h时计算等候时间,等候时间每计满3分

10、钟,价格跳一档(跳档规则同上)假设CP4输入的时钟脉冲一秒的,经六进制计数器进位输出端就会输出每六秒的脉冲,其进位端再接一十进制计数器,十进制进位端输出一分钟脉冲,再接一三进制计数器就可以得到三分钟,正好与每跳一档的等待时间间隔一致。一分钟输出脉冲输入六十进制计数器时钟输入端,就可以记录等待时间,那个十进制与这个六十进制正好记录等待时间AB:C。图3.2.1六进制计数器MODULE COUNT6CP,R,EN PIN;S2,S1,S0 PIN ISTYPE REG;C0 PIN ISTYPE COM;S=S2,S1,S0;EQUATIONSS.AR=R;WHEN(R=0)&(S=0)&(S=0

11、)&(K=0)&(A=0)&(Q=0)&(X=4)THENB:=0;END 3.3计价模块 在前面我们设定了根据里程变化的参进量,还时钟脉冲,我们可以根据这设定计价器芯片,让其输出K=K+E,E6,E5,E4,E3,E2,E1,E0分别于CLJ的A6,A5,A4,A3,A2,A1,A0相连,表示每跳一档应加的钱数。图3.3计价器 MODULE PRICEE0.E6,CP,R PIN;K9.K0 PIN ISTYPE REG;E=0,0,0,E6.E0;K=K9.K0;K=0;EQUATIONSK.AR=R;K.CLK=CP;K:=K+E;END 3.4总体模块连线图图3.4总体连线图由上可知价

12、格显示部分AB.C为K=K0.K9;里程数整数部分B=B9.B0,小数部分N=N3.N0;等待时间Q=Q6.Q0显示时间AB.C的AB部分,M=M3.M0显示C部分;每一百米里程脉冲CP0,等待时间脉冲每一秒脉冲CP;清零端R,使能端EN可根据车行驶速度决定其取值。4 程序的调试与仿真分析4.1 测试向量的编写MODULE TAXICP,CP0,R,EN,K9.K0,B9.B0,N3.N0,Q6.Q0,M3.M0 PIN;C,X=.C.,.X.;K=K9.K0;B=B9.B0;N=N3.N0;Q=Q6.Q0;M=M3.M0;TEST_VECTORS(CP,CP0,R,ENK,B,N,Q,M)R

13、EPEAT 100C,C,0,0X,X,X,X;REPEAT 100C,C,0,01X,X,X,X;END测试向量不区分输入输出信号,可以一起定义,时钟信号定义为C,无关项定义为X。4.2 仿真波形及分析编好测试向量后,双击JEDEC FILE编译后,若无问题,就可在测试向量中双击functional simulation,再运行即可出现时序波形,其整体如下:图4.2.1最原始的整体波形图4.2.2部分波形从这个图中我们可以看出里程千米数的小数部分变化是0,1,2,3,9,5,6,7,8,4,我们可以知道仿真图是不正确的.估计有一脉冲提前到来。图4.2.3部分波形在里程数大于四千米时,出租车计

14、价器没有立即跳档,而是延时了五百米,在7.5千米时才开始跳档。从上述两个现象我们可以知道时钟的变化和我们预期中不一样,我们设置的五进制计数器,是在计数达到四时,产生进位,并立即将数置一,但从仿真结果看来时钟提前到来了。为了解决这个问题我们我们在五进制的进位端加了一个缓冲器再将这个信号输入到二进制计数器的时钟信号。在二进制进位端也加了一个缓冲器再将其接入一百进制计数器的时钟脉冲处,再次编译仿真。图4.2.4调试修改后的仿真图从这个图中可以看出里程千里数小数部分恢复正常,但是在六千米到七千米的跳档和设计的不一致,本应跳十一的但只跳了七,与预期效果不符,猜测还是与时钟信号有关。可是经过各种调试依然没

15、有起到作用,于是得想办法修改程序。在参进量部分,我设置在理论上是可行的,但是根据实际情况得做些修改,在CLJ芯片的编程上做了如下修改:MODULE CLJD10,D9.D0,CP PIN;A6.A0 PIN ISTYPE REG;D=D9.D0;A=A6.A0;EQUATIONSA.CLK=CP;WHEN(D=0)&(D=4)&(D=7)&(D10=0)THENA:=11;WHEN(D=6)&(D10=10)THEN A:=11;WHEN(D=7)&(D10=1)THENA:=10;END 修改后调试仿真其仿真波形为 4.2.5整体波形4.2.6部分波形(四千米之前的) 4.2.7部分波形(三

16、到六千米间) 4.2.8部分波形(五到十千米间)最后修改的仿真波形基本能满足设计要求,实现计价器的基本功能,正常的计价,但是有一缺陷,当五百米脉冲与三分钟等待时间脉冲同时到来时,我们这种设计方案只能让价格挑一个档,实际上是应该跳两个档,设计中只是把等待时间脉冲与里程脉冲相或,因此没能实现那个要求。不过可以设计一个芯片,当两芯片同时到来时,控制计价器跳两档。5 总结与体会这次电子线路EDA课程设计虽然进展不是很顺利,但是我们还是有些收获的,以前只是听说有关EDA的各种语言编程设计,觉得比数电连图有用得多,这次是自己动手设计并实现,这个过程无论结果是什么都会是一次质的飞跃。虽然自己有很多的不懂,不

17、熟悉软件的使用,不清楚该怎样用ABEL语言实现出租车的计价功能,可是有了这次机会,我会积极的去探索自己的盲区,努力弥补各种问题。至少经过这么一次自己的设计过程,我对ABEL语言有了更深的理解,并学会了其实际应用,还有ISPLEVER软件的使用。这让我对以前所学的知识有了更深刻的了解,并学会了学以致用。在这个设计过程中,我们遇到了各种问题,在作原理图时,这个引脚的设置,输入输出端口的定义,各种细节各种需要注意的地方。在写原理图中各个部件的的编程中,及编译是否正确的过程中我们会遇到各种问题,需要耐心的测试解决,细致的分析。每一步都考验着我们的耐性,但是一步步的做过来感觉颇有收获,至少我知道了使用那

18、个软件需要注意的地方,还有编程过程中需要注意的问题。总体结构出来了还是远远不够的,我们还得调试波形,看看设计中是否有些不合理的地方。调试过程也颇为纠结,我们的测试向量在老师的指导下写好后,调试波形,出现的结果与我们预期中的差别有些大,我们对原理图做了各种修改,加了输出缓冲,结果慢慢接近我们预期中的效果,但是有一个问题一直都无法解决,计价器的脉冲似乎要慢五百米,检查程序感觉貌似没有问题。在慢慢的研究每个时钟脉冲信号后,我们做了相应的修改,在参进量与进价部分设置了3.5千米时就开始跳档,6.5千米时也开始跳七千米后应跳的档,虽然原理不是很清楚,但是调试波形是对的。从实际出发,我们选择了修改后的方案

19、,也许和那个软件有关,实际情况我想也该考虑各方面的因素。在这个设计中还是有各种漏洞的,还有些问题没有解决,需要仔细思考,在以后的学习中一定要锻炼自己的逻辑思维能力,动手设计能力,做到学以致用。参考文献1章彬宏.EDA应用技术.北京理工大学出版社. 2007.72汉泽西.EDA技术及其应用.北京航空航天大学出版社. 2004.53谭会生.EDA技术基础.湖南大学出版社. 2004.84齐怀印.有ABEL语言设计PLD的技巧. 北京电子技术学院学报. 2000.85陈明义.郭毅. PLD期间模块设计方法.中南工业大学信息科学报. 2001.66何永洪.ABEL语言对逻辑设计的描述.数字通信. 2002.4

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1