原创 采用EDA技术设计一个出租车计费器的完整解决方案

2019-7-18 14:55 906 14 14 分类: EDA/ IP/ 设计与制造 文集: 综合文档
随着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技术的出租车计费系统顶层图。
 
图1:基于EDA技术的出租车计费系统顶层图
 
3、系统仿真
 
车速模块的仿真波形如图2所示,有图可知:每25个传感器脉冲就输出一个100米脉冲clkout。计程模块的仿真波形如图3所示,满足设计要求。计费模块的仿真波形如图4所示,在白天,每增加0.5千米的路程,费用增加0.9元。
 
 
4、结论
 
本文采用EDA技术的层次化设计方法设计出租车计费器,用VHDL编写各个功能模块,实现底层设计;用原理图输入方式描述各模块间的关系,实现顶层设计。仿真结果表明,该设计方法简单快捷,所设计的系统性能可靠。
 

文章评论0条评论)

登录后参与讨论
我要评论
0
14
1
2
3
4
5
6
7
8
9
0
关闭 站长推荐上一条 /4 下一条