基于VHDL的出租车计费器的设计
目前以硬件描述语言(Verilog或VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至FPGA上进行测试,是现代IC设计验证的技术主流。这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flip-flop)或者其他更加完整的记忆块。系统设计师可以根据需要通过可编辑的连接把FPGA内部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里。一个出厂后的成品FPGA的逻辑块和连接可以按照设计者而改变,所以FPGA可以完成所需要的逻辑功能。本设计是一种采用FPGA芯片进行出租车计费器,主要分为分频模块、计量模块、计费模块、控制模块等模块,利用FPGA的可编程性,简洁又多变的设计方法,缩短了研发周期。主要采用了FPGA芯片,使用VHDL语言进行编程,使其具有了更强的移植性,更加利于产品的升级。
一、设计任务与要求
(1)、能够实现计费功能费用的计算是按行驶里程收费,设出租车的起步价是500元,当里程小于3km里时,按起步价收费;当里程大于3km时每公里按13元计费。等待累计时间超过2mi
,按每分钟15元计费。所以总费用按下式计算:总费用起步价(里程3km)里程单价等候时间等候单价(2)、能够实现显示功能显示汽车行驶里程:用四位数字显示,显示方式为“XXXX”,单价为km。计程范围为099km,计程分辨率为1km。显示等候时间:用两位数字显示分钟,显示方式为“XX”计时范围为059mi
,。计时分辨率为1mi
。显示总费用:用四位数字显示,显示方式为“XXXX”,单位为元。计价范围为9999元,计价分辨率为01元。
二、设计原理
根据设计要求,系统的输入信号clk,计价开始信号Start,等待信号Stop,里程脉冲信号fi
。系统得输出信号有:总费用数cha0cha3,行驶距离km0km1,等待时间mi
0mi
1等。系统有两个脉冲输入信号clk_750k、fi
,其中clk_750k将根据设计要求分频成13hz、15hz和1hz分别作为公里计费和超时计费的脉冲。两个控制输入开关start、stop;控制过程为:start作为计费开始开关,当start为高电平时,系统开始根据输入的情况计费。当有乘客上车并开始行驶时,fi
脉冲到来,进行行驶计费,此时的stop需要置为0;如需停车等待,就把stop变为高电平,并去除fi
输入脉冲,进行等待计费;当乘客下车且不等待时,直接将start置为0,系统停止工作r