出租车计费系统的设计与分析.doc
文本预览下载声明
FPGA
出租车计费系统
设计与分析
小组成员及分工:
卓 琪 070306251 等待计费模块 DDJF
输出数据选择模块 SCXZ
李 翔 070306213 分频器模块 FPQ
等待判别模块 DDPB
朱寿岱 070306250 里程计算模块 LCJS
周 丹 070306223 里程计费模块 LCJF
孙宙清 070306223 等待计时模块 DDJS
指导老师: 查根龙 李海霞
设计时间: 2010年4月
出租车计费系统的设计与分析
一、系统设计要求
以FPGA为主体,设计一出租车计费系统。
其中系统电源由汽车上的电平提供,电源电压为9~16V。速度传感器不需要进行设计,而是根据在一定的距离里共产生多少秒脉冲来确定速度的大小。显示器可以采用LED数码管/LCD液晶显示模块。具体功能如下:
1、计费及显示
(1)、里程,即行驶里程,用四位数字显示,显示方式为“XXX.X”,单位为Km。
(2)、单价,即里程单价,用三位数字显示,显示方式为“X.XX”,根据每天不同的时间段有两种情况:
①当时间段为06:01—23:00时单价为1.40元/Km;
②当时间段为23:01—06:00时单价为1.80元/Km。
(3)、等候时间,用四位数字显示分钟和秒,显示方式为“XX:XX”,等候的定义是当汽车行驶速度小于或等于12Km/h时为等候。
(4)、等候单价,有两种情况:
①在等候时间小于1小时下,等候单价为1元每五分钟,
②在等候时间大于1小时下,等候单价为20元每小时。
(5)、费用的计算,出租车的起价为5.00元,当里程小于2Km时,按起步价计算费用;当里程大于2Km时按以下计算费用:
费用=起步费+(里程—2)×里程单价+等待时间×等待单价
(6)、费用的显示,用五位数字显示,显示方式是“XXX.XX”,单价为元。
2、时钟及显示
当出租车在常态下,显示当前的时间。在汽车熄火的情况下,时钟必须正常运行,但可以不显示时钟。
3、计费开始提示
当出租车载上乘客并起步后,将空车指示牌搬到时,空车指示牌的指示灯熄灭,并有灯光提示信号。
二、系统设计方案
测控FPGA芯片通过采集传感器脉冲信号WCLK进行里程计算、里程计费,利用外部脉冲信号SCLK产生标准时钟信号,以计算等待时间、等待费用,并产生里程标志(LCBZ)、等待标志(DDBZ)、熄灯标志(XDBZ)等有关控制标志信号,同时根据单片机发出的开始信号(START)、时段标志(SDBZ)、传输数据选择(SEL)等控制信号将有关计算结果传给单片机。
单片机MCU除了完成键盘扫描、显示控制外,还通过P0口与FPGA进行数据交换,并向测控FPGA芯片发出有关控制信号。
本设计方案利用单片机和FPGA的结合,发挥他们各自的长处,分工清晰,世纪使用和操作符合大众逻辑,单片机丰富的I/O口和FPGA模块化的设计为系统功能的扩展提供了空间和便利。
三、测控FPGA的VHDL程序设计
根据系统设计的要求,我们组将整个测控FPGA系统分为七个模块,分别是:分频器模块FPQ、等待判别模块DDPB、里程计算模块LCJS、里程计费模块LCJF、等待计时模块DDJS、等待计费模块DDJF、输出数据选择模块SCXZ。其内部组成原理图如下所示:
(1)、分频器模块FPQ:将外部时钟信号SCLK(设计时假设为200Hz)经过适当分频后,产生1Hz的系统工作用基准时钟信号CLK1HZ,供系统中的有关模块计时用。
(2)、等待判别模块DDPB:根据速度传感器脉冲信号WCLK和分频器产生的基准时钟信号CLK1HZ,计算单位时间里WCLK的脉冲个数(每Km产生1000个脉冲信号,即每米产生一个脉冲信号),即出租车行驶速度,从而判别出租车是否处于等待状态,发出等待标志信号DDBZ。
①、当速度大于12Km/h,出租车处于运行状态,这时等待标志DDBZ=0;
②、当速度小于12Km/h,出租车处于等待状态,这时等待标志DDBZ=1。
该模块的VHDL程序设计可分为三个进程:
①、60s周期性跳变信号产生进程;
②、每分钟行驶距离计算进程;
③、等待标志判别进程。
等待标志判别进程就是比较每分钟WCLK脉冲个数与等待状态WCLK脉冲临界个数200的大小,从而确定DDBZ的赋值。
(3)、里程计算模块LCJS:根据速度传感器脉冲信号WCLK和等待标志DDBZ,对出租车行驶的里程数XSLC进行计算,同时发出里程标志信号LCBZ和里程计费标志信号JFBZ。
如果LCBZ=1,说明行驶距离超过2Km,里程计费启动;
如果LCBZ=0,说明行
显示全部