基于EDA技术的出租车计费系统设计

2018-01-17 19:29刘春梅高香梅汪金金王徐王翔
电子技术与软件工程 2017年24期

刘春梅+高香梅+汪金金+王徐+王翔

摘 要

本文提出一种基于EDA技术的出租车计费系统的设计方案。该方案包含车速模块、计程模块、计费模块和显示模块。所有程序采用VHDL语言编程并在Quartus II 9.0下实现编译、仿真。

【关键词】计费器 EDA VHDL

随着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技术的出租车计费系统顶层图。

3 系统仿真

车速模块的仿真波形如图2所示,有图可知:每25个传感器脉冲就输出一个100米脉冲clkout。

计程模块的仿真波形如图3所示,满足设计要求。

计费模块的仿真波形如图4所示,在白天,每增加0.5千米的路程,费用增加0.9元。

4 结论

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

参考文献

[1]徐飞.EDA技术与实践[M].北京:清华大学出版社,2011.

[2]姚利彬,许勇,潘明.基于FPGA的出租车计费系统的设计与实现[J].电子设计工程,2011,19(23):166-170.

[3]焦敏.FPGA在出租车计费器上的应用研究[J].中国科技信息,2009(09):145-146.

[4]王正勇,尹洪剑,霍福翠.EDA技术与应用教程[M].北京:高等教育出版社,2014.

作者单位

安徽农业大学经济技术学院信息与计算机系 安徽省合肥市 230011endprint