出租车计费系统的设计与分析.doc
《出租车计费系统的设计与分析.doc》由会员分享,可在线阅读,更多相关《出租车计费系统的设计与分析.doc(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、FPGA出租车计费系统设计与分析小组成员及分工:卓 琪 等待计费模块 DDJF输出数据选择模块 SCXZ李 翔 分频器模块 FPQ等待判别模块 DDPB朱寿岱 里程计算模块 LCJS周 丹 里程计费模块 LCJF孙宙清 等待计时模块 DDJS指导老师: 查根龙 李海霞设计时间: 2010年4月出租车计费系统的设计与分析一、系统设计要求以FPGA为主体,设计一出租车计费系统。其中系统电源由汽车上的电平提供,电源电压为916V。速度传感器不需要进行设计,而是根据在一定的距离里共产生多少秒脉冲来确定速度的大小。显示器可以采用LED数码管/LCD液晶显示模块。具体功能如下:1、计费及显示(1)、里程,
2、即行驶里程,用四位数字显示,显示方式为“XXX.X”,单位为Km。(2)、单价,即里程单价,用三位数字显示,显示方式为“X.XX”,根据每天不同的时间段有两种情况:当时间段为06:0123:00时单价为1.40元/Km; 当时间段为23:0106:00时单价为1.80元/Km。(3)、等候时间,用四位数字显示分钟和秒,显示方式为“XX:XX”,等候的定义是当汽车行驶速度小于或等于12Km/h时为等候。(4)、等候单价,有两种情况:在等候时间小于1小时下,等候单价为1元每五分钟, 在等候时间大于1小时下,等候单价为20元每小时。(5)、费用的计算,出租车的起价为5.00元,当里程小于2Km时,按
3、起步价计算费用;当里程大于2Km时按以下计算费用:费用=起步费+(里程2)里程单价+等待时间等待单价(6)、费用的显示,用五位数字显示,显示方式是“XXX.XX”,单价为元。2、时钟及显示当出租车在常态下,显示当前的时间。在汽车熄火的情况下,时钟必须正常运行,但可以不显示时钟。3、计费开始提示当出租车载上乘客并起步后,将空车指示牌搬到时,空车指示牌的指示灯熄灭,并有灯光提示信号。二、系统设计方案测控FPGA芯片通过采集传感器脉冲信号WCLK进行里程计算、里程计费,利用外部脉冲信号SCLK产生标准时钟信号,以计算等待时间、等待费用,并产生里程标志(LCBZ)、等待标志(DDBZ)、熄灯标志(XD
4、BZ)等有关控制标志信号,同时根据单片机发出的开始信号(START)、时段标志(SDBZ)、传输数据选择(SEL)等控制信号将有关计算结果传给单片机。单片机MCU除了完成键盘扫描、显示控制外,还通过P0口与FPGA进行数据交换,并向测控FPGA芯片发出有关控制信号。本设计方案利用单片机和FPGA的结合,发挥他们各自的长处,分工清晰,世纪使用和操作符合大众逻辑,单片机丰富的I/O口和FPGA模块化的设计为系统功能的扩展提供了空间和便利。三、测控FPGA的VHDL程序设计根据系统设计的要求,我们组将整个测控FPGA系统分为七个模块,分别是:分频器模块FPQ、等待判别模块DDPB、里程计算模块LCJ
5、S、里程计费模块LCJF、等待计时模块DDJS、等待计费模块DDJF、输出数据选择模块SCXZ。其内部组成原理图如下所示: (1)、分频器模块FPQ:将外部时钟信号SCLK(设计时假设为200Hz)经过适当分频后,产生1Hz的系统工作用基准时钟信号CLK1HZ,供系统中的有关模块计时用。(2)、等待判别模块DDPB:根据速度传感器脉冲信号WCLK和分频器产生的基准时钟信号CLK1HZ,计算单位时间里WCLK的脉冲个数(每Km产生1000个脉冲信号,即每米产生一个脉冲信号),即出租车行驶速度,从而判别出租车是否处于等待状态,发出等待标志信号DDBZ。、当速度大于12Km/h,出租车处于运行状态,
6、这时等待标志DDBZ=0;、当速度小于12Km/h,出租车处于等待状态,这时等待标志DDBZ=1。该模块的VHDL程序设计可分为三个进程:、60s周期性跳变信号产生进程;、每分钟行驶距离计算进程;、等待标志判别进程。等待标志判别进程就是比较每分钟WCLK脉冲个数与等待状态WCLK脉冲临界个数200的大小,从而确定DDBZ的赋值。(3)、里程计算模块LCJS:根据速度传感器脉冲信号WCLK和等待标志DDBZ,对出租车行驶的里程数XSLC进行计算,同时发出里程标志信号LCBZ和里程计费标志信号JFBZ。如果LCBZ=1,说明行驶距离超过2Km,里程计费启动;如果LCBZ=0,说明行驶距离没有超过2
7、Km,按起价计费。每行驶1Km应计费一次,并且计费的启动信号应该是某一时刻,因此每行驶1km,计费标志信号JFBZ应跳变一次。该模块的VHDL程序设计可分为两个进程:、里程计算及标志产生进程;、产生计费信号进程。产生计费信号进程就是每行驶一千米JFBZ由低电平0变为1,经过一个系统时钟周期后JFBZ又回复到低电平0,里程计费模块LCJF就是在JFBZ脉冲信号的上升沿进行计费的加法操作。(4)、里程计费模块LCJF:在计费标志信号JFBZ、等待标志信号DDBZ、里程标志信号LCBZ和时段标志信号XDBZ等信号的控制下,计算行驶里程超过2km以上里程的费用LCFY。该模块的VHDL程序是通过由多个
8、条件控制的加法进程来完成程序计费的,里程计费的条件在DDBZ=0,并且在JFBZ的上升沿根据SDBZ分别进行加法计费操作。当SDBZ=1时,表示在06:0023:00时段,其单价SD1为1.4元/km;当SDBZ=0,表示其他时段,其单价SD2为1.8元/km。如果LCBZ=1,说明行驶距离超过2km,里程计费启动;如果LCBZ=0,说明没超过2km,按起价计费。(5)、等待计时模块DDJS:在等待标志信号DDBZ和基准时钟信号CLK1HZ的控制下,进行等待时间DDSJ的计算,其中DDSJ的第8位表示等待时间的秒数,DDSJ的高8位表示等待时间的分钟数,同时根据等待时间的长短发出一个熄灯标志信
9、号XDBZ。当等待时间小于等于1h是,XDBZ=0,等待时间显示灯亮;当等待时间大于1h时,XDBZ=1,等待时间显示灯亮。该模块的VHDL程序是通过一个嵌套的加法进程来完成计时的。(6)、等待计费模块DDJF:在等待标志信号DDBZ和熄灯标志信号XDBZ控制下,进行等待费用DDFY的计费操作。该模块的VHDL程序包括两个进程:60s周期性跳变信号产生进程、等待费用计算过程。等待费用计算的条件是在DDBZ=1并且在60s周期性跳变信号T60s的上升沿,根据XDBZ分别进行加法计费操作。当DDBZ=1且XDBZ=0时,按1元/5分钟,当DDBZ=1且XDBZ=1时,按20元/小时计费。(7)、输
10、出数据选择模块SCXZ:根据单片机发出的数据传输选择控制信号SEL,选择有关计算机处理结果传输给单片机。SEL与被传送数据的具体关系如下表:SEL000001010011100101110111被选数据等待时间秒数DDSJ70等待时间分数DDSJ158超过两公里计费低8位LCFY70超过两公里计费低8位LCFY158等待计费低8位DDFY70等待计费低8位DDFY158里程数据低8位XSLC70里程数据高8位XSLC70四、 主要源程序代码分析基于FPGA的出租车计费系统我们分为以下八个模块:1、 分频器模块FPQ的VHDL源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_
11、1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY FPQ IS PORT(SCLK:IN STD_LOGIC;CLK1HZ:OUT STD_LOGIC);END ENTITY FPQ;ARCHITECTURE ART OF FPQ IS SIGNAL CNT100:INTEGER RANGE 0 TO 99; SIGNAL CLK1:STD_LOGIC;BEGINPROCESS(SCLK)BEGINIF SCLKEVENT AND SCLK=1THEN IF CNT100=99 THEN C
12、NT100=0; CLK1=NOT CLK1;ELSE CNT100=CNT100+1;END IF;ELSE CLK1=CLK1;END IF;CLK1HZ=CLK1;END PROCESS;END ARCHITECTURE ART;2、等待判别模块DDPB的VHDL源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY DDPB IS PORT(START, WCLK:IN STD_LOGIC; CLK1HZ:IN STD_
13、LOGIC; DDBZ:OUT STD_LOGIC);END ENTITY DDPB;ARCHITECTURE ART OF DDPB IS SIGNAL T60S:STD_LOGIC; SIGNAL WCLKCOU:STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN -产生60s周期性跳变信号进程, PROCESS(START, CLK1HZ) IS VARIABLE CNT60: STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN IF START=1 THEN CNT60:=; T60S=0; ELSIF CLK1HZEVENT AND CLK1H
14、Z=1 THEN IF CNT60= THEN -CNT60=60 T60S=1; CNT60:=; ELSE CNT60: =CNT60+1; T60S=0; END IF; END IF; END PROCESS; -每分钟行驶距离计算进程 PROCESS(START, WCLK, T60S) IS BEGIN IF START=1 THEN WCLKCOU=; ELSIF WCLKEVENT AND WCLK=1 THEN IF T60S=1 THEN WCLKCOU=; ELSE WCLKCOU=WCLKCOU+1; -距离计算,单位为 m END IF; END IF;END PRO
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 出租车 计费 系统 设计 分析
限制150内