基于fpga的出租车计费器设计论文(编辑修改稿)内容摘要:

是稳定性好,抗干扰能力强,非常适合作为计程车的计价器系统的控制核心。 方案的确定 从以上两种方案的比较 可以看出基于 FPGA 的设计方案要优于基于单片机的设计方案基于 FPGA 的设计 方案稳定性更强且相对于单 片机的设计方案来说它更易于将来进行功能扩展。 因此 我确定采用基于 FPGA 的出租车计费器 的设计方案。 基于 FPGA 的出租车计费系统设计 14 5 出租车计费系统的设计 整体方案设计 设计的主要技术指标 实现计程车的计价器功能。 一方面实现基本功能时,包括在行程中满足 3公里以内计起步价 10 元,以后以 元 /公里计费。 处于等待的状态下满足 2 分钟以内计 2 元,以后以 元 /分计费。 另一方面多功能的实现,计价器可以根据要求显示需要的内容,可以根据选择键选择显示总费用,总行程数和总乘车时间等等。 1) 计 价范围: 0~ ; 计价分辨率: ; 2) 计程范围: 0~ 99 公里; 计价分辨率: ; 3) 计时范围: 59 分; 计时分辨率: 1 分钟; 整体设计方案的实现 出租车计费器的控制系统以 FPGA 为核心控制器。 如图 51所示,主要分为四个模块。 分别为:秒分频模块、控制模块、计量模块和译码显示模块。 秒分频模块使整个系统的同步工作,把系统提供的 32M 的晶振频率进行分频,得到所需要的秒信号(便于在以后的 计时中用到)。 控制模块是整个系统的核心部分,对各个部分起到了调控的作用。 对计程车的工作状态进行具体的定义。 计量模块也是系统中一个十分重要的模块,它分为三个部分,分别为计价部分、计时部分和计程部分,是出租车计费系统多功能实现的保证。 最后一个译码显示模块作用在于把计费器的工作情况(价钱、行程数、行程时间)反馈给乘客。 四个模块有机地结合在一起,实现了基于 FPGA 出租车计费系统的设计。 华东交通大学毕设计 15 图 51出租车计费器组成方框图 模块的设计 秒分频模块 1) 秒分频 的 对频率为 100Hz 的输入脉冲进行分频, 得到频率为 1Hz 的频率。 分频模块的电路符号图如下图 5- 2 所示。 从图中可以看出分频模块有两个输入信号,一个是 clk 时钟信号。 另一个是 计费器的使能信号 start。 图 5- 2分频模块电路符号图 分频模块的主要源代码如下: if start=39。 039。 then 此 IF语句中得到分频器的使能信号 基于 FPGA 的出租车计费系统设计 16 f_1=39。 039。 Q_1=0。 else if Q_1=99 then 此 IF 语句是得到频率为 1Hz 的频率信号和 1公里脉冲 Q_1=0。 F_1=39。 139。 else Q_1=Q_1+1。 F_1=39。 039。 end if。 end if。 2)秒分频模块的波形仿真图如下图 5- 3 所示: 从图中可以看到当 Q_1 计数达到 99 的时候那么 f_1 就产生一个 1公里脉冲信号。 图 53 分频器仿真图 控制模块 1) 控制模块对整个系统进行控制作用,支配系统的工作状态。 描述了出租车计 费器整个工作过程的状态。 它是计费器工作的核心。 控制模块的电路符号图如下图 5- 4 所示: 从图中可以看到控制模块 有 3 个输入端口 即 clk 时钟信号, start 计价使能信号和 stop 等待信号。 图 5- 4 控制模块的电路符号图 控制模块 的主要源代码如下: if start=39。 039。 then 华东交通大学毕设计 17 en0=39。 039。 en1=39。 039。 elsif stop=39。 039。 then en1=39。 039。 if k1amp。 k000000011 then 此 IF 语句得到 en0 使能信号 en0=39。 139。 else en0=39。 039。 end if。 elsif stop=39。 139。 then en0=39。 039。 if m1amp。 m000000010 then 此 IF语句得到 en1 使能信号 en1=39。 139。 else en1=39。 039。 end if。 end if。 2)控制模块的波形仿真图如下图 5- 5 所示: 从仿真图中可以看出 输出信号 e0 和 e1 的为输出信号 (当 en0=1 时说明出租车行驶超过了 3公里,此时出租车按照每公里 元计费,当 en1=1 时说明出租车等待超过了 2 分钟此时出租车按每分钟 元计费)。 图 55控制模块 波形 仿真图 计量模块 计量模块是本系统中一个十分重要的部分 ,是计程车计价器系统多功能实现的保证。 计量模块其实在整个系统中就充当一个计算器的功能。 它是计 价、计时、计程功能的具体实现。 基于 FPGA 的出租车计费系统设计 18 1) 计价部分:由计程车的起步费 6元加上等待过程中的计费 元 /分,再加上行进过程中的计费 元 /公里,然后再把计算出来的数分别以百元,十元,元,角的单位表示出来,送去显示译码模块。 ( 1) 计价部分电路符号图如图 5- 7所示 :图中的输出信号 cha3,cha2,cha1,cha0分别表示的时计费输出部分的百元,十元,元,角 的输出。 图 57计价部分的电路符号图 计价部分 的主要源代码如下所示: if en0=39。 139。 then 说明超过了三公里; if(c191)then 加到 19 角就说明车子行驶了 1 公里; c19:=c19+1。 if(c19=1)then temp0=k0。 end if。 上面这几句完成超过三公里的时的计费功能。 elsif(en1=39。 139。 )then if(c1515)then――此 IF 语句完成等待计费功能。 c15:=c15+1。 if(c15=1) then temp1=m0。 end if。 此部分代码完成等待超过 2 分钟时的计费功能。 ( 2)计价部分的波形仿真如图 5- 8所示: 从仿真图可以看出 cha3,cha2,cha1,cha0在各个时间段的输出数据。 华东交通大学毕设计 19 图 5- 8 计价部分的波形仿真图 2) 计时部分: 是对乘客的乘车时间进行计时(包括等待的时间和行进的时间),分别以秒和分的形式送去显示译码模块,到 59 分时自动归零。 ( 1) 计时部分电路符号图如下图 59 所示 : 图 59计时部分电路符号图 完成计时 部分的主要源代码如下: if w=59 then w=0。 ―― 此 IF语句完成等待计时 if m0=1001 then m0=0000。 ――此 IF 语句完成分计数 if m1=101 then m1=000。 else m1=m1+1。 end if。 else m0=m0+1。 end if。 基于 FPGA 的出租车计费系统设计 20 else w=w+1。 end if。 ( 2)计时部分的波形仿真图如图 5- 10所示: m0的计时输出为 4 分钟。 图 5- 10 计时部分的波形仿真图 3) 计程部分:对当前行进过程中所走的公里数进行计算,最大范围为 99 公里。 同样也送入译码显示模块。 由于计程部分和计时部分的原理基本相同,不同的只是计时是是当计数器计到 59 时发生跳变 ,而计程时则是当计数器达到 99 时 才产生一个 跳变。 ( 1) 计程部分的电路符号图 如下图示 5- 11所示 : 完成计程部分的主 要源代码如下如所: if start=39。 039。 then k1=0000。 k0=0000。 elsif stop=39。 039。 then if k0=1001 then k0=0000。 if k1=1001 then k1=0000。 else 华东交通大学毕设计 21 k1=k1+1。 end if。 else k0=k0+1。 end if。 end if。 ( 2) 计程部分的波形仿真图如图 可以用图 5- 12 所示:当 k0 计数达到 9 时 k1(即里程的十位数变为 1) 图 5- 12计程部分波形仿真图 译码显示 输出 模块 译码显示 输出 模块是建立在内部系统和观测人之间的桥梁。 通过译码显示模块,人们才能得到想要的信息。 可见,它也是系统中一个必不可少的部分。 1) 这里的译码显示模块包括四个译码器和四个七段显示数码管。 它可以根据需要在价格、时间、路程三者之间互相转换。 通过对输入模块的选择信号判断,而显示计程车运行的状态,比如说计价多少、走了多长时间、走了多少路程等。 由数码管进行显示。 七段显示数码管 ( 1) 七段数码显示管的电路图符号图如下图 5- 13 所示 . 图 5- 13七段数码显示管电路符号图 ( 2) 七段数码显示管的波形仿真图如下图 5- 14所示: 基于 FPGA 的出租车计费系统设计 22 图 514 七段数 译码显示 仿真图 2) 译码显示输出部分 ( 1) 的电路符号图如下图 5- 15所示: 图 515 译码显示输出部分 电路符号图 译码显示输出部分的主要代码如下: if f_139。 event and f_1=39。 139。 then if start=39。 039。 then min1=0000。 min0=0000。 km1=0000。 km0=0000。 cha3=0000。 cha2=0000。 cha1=0000。 cha0=0000。 else min1=39。 039。 amp。 m1。 min0=m0。 km1=k1。 km0=k0。 cha3=c3。 cha2=c2。 cha1=c1。 cha0=c0。 end if。 end if。 ( 2)译码显示部分 的仿真图如下图 5- 16 所示 : 华东交通大学毕设计 23 图 516译码输出部分仿真图 整体 原理与仿真 1) 出租车计费器 首先 通过传感器测出 轮子是否有运动,如果没有 开 动,则自动开始记录时间,达到一定时间要加收时间等待费用,如果在一定的时间内运动了,则记录轮子的转圈数 ,从而自动计算出轮子 转动的圈数 的长度 由此计算出出租车行驶的距离。 出租车计费器的电路图符号如下图所示 515 所示: 图 515出租车计费器的电路图符号 基于 FPGA 的出租车计费系统设计 24 2)整体 仿真 图如下 图 415所示 : 图 415 出租车计费系统 的 仿真图 结果分析 从仿真图中我们可以看出此出租车计费器总共行使了 6 公里,在中途停车等待累计时间为 4分钟,因此可以得出:总费用 =10+*6+*4= 公里。 结论 本课题实现现在已经存在一出租车计费器的一般功能 ,如计费, 等待 计时, 里程计算,以及费用,时间和里程的显示功能。 该设计的前期工作是 围绕 现有的出租车计费器 , 从它的。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。