大神课堂:采用EDA技术设计一个出租车计费器的完整解决方案

描述

随着EDA技术的飞速发展,大规模可编程逻辑器件CPLD/FPGA应用越来越广泛,不仅简化了数字系统设计过程,降低了系统的体积和成本,也提高了系统的可靠性和保密性,使各种逻辑功能的实现变得灵活、方便

1、设计要求

白天起步价为3千米范围内5元,晚上起步价为3千米范围内6元。白天车行3千米后按1.8元/千米计费,晚上车行3千米后按2.2元/千米计费。当按下复位键时,出租车计费器回复为初始状态,若为白天则显示费用5元,晚上则显示费用6元。当按下开始行驶键时,出租车则按上述收费标准进行计费。

2、各模块设计

2.1、车速模块

出租车行走的里程数是根据装在车轮上传感器确定,由于汽车轮子转一圈的周长确定,汽车每转一圈就输出一个脉冲。用clk表示传感器输出脉冲,reset表示复位信号,stop表示出租车停止按键,start表示出租车开始行驶按键,sp表示出租车暂停按键,出租车每走100m,就输出一个脉冲clkout以便于里程的计算和显示。

2.2、计程模块

计程模块主要是用于记录出租车行驶的里程数,通过对车速模块输出的clkout信号计数,可以算出出租车行驶的距离。在一般情况下,每行驶0.5km开始计价一次,由而输出一个计程脉冲co。kcnt3、kcnt2、kcnt1、kcnt0分别代表里程输出十分位、个位、十位、百分位。

2.3、计费模块

计费模块主要用于记录出租车启动后所产生的总费用。choose高电平时表示白天,低电平时表示晚上,m0、m1、m2、m3分别表示总费用输出的十分位、个位、十位、百分位。

2.4、显示模块

显示模块用来显示出租车行驶的里程数与总费用。利用FPGA/CPLD来控制LCD1602模块,需要定义lcdrs、lcden、lcdrw几根线,用来控制其基本操作。data用于对LCD1602的数据输出。

2.5、顶层模块

设计将以上4个例化元件,按图1连接,组成基于EDA技术的出租车计费系统顶层图。

EDA技术

图1:基于EDA技术的出租车计费系统顶层图

3、系统仿真

车速模块的仿真波形如图2所示,有图可知:每25个传感器脉冲就输出一个100米脉冲clkout。计程模块的仿真波形如图3所示,满足设计要求。计费模块的仿真波形如图4所示,在白天,每增加0.5千米的路程,费用增加0.9元。

EDA技术

4、结论

本文采用EDA技术的层次化设计方法设计出租车计费器,用VHDL编写各个功能模块,实现底层设计;用原理图输入方式描述各模块间的关系,实现顶层设计。仿真结果表明,该设计方法简单快捷,所设计的系统性能可靠。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分