基于fpga的出租车计费器的设计内容摘要:

大 小设 定+显 示输 出( 累 计 )清 零大 于 2 2 点 , 小 于 5 点预 设++—长 按 逐 渐 加 快密 码过 2 公 里起 步起 步过 2 公 里过 1 2 公 里过 1 2 公 里计 时主 计 费模 块总 额显 示1 0 0 O h m1 0 0 O h m2 k O h m1 0 0 O h m2 2 0 u f启 动 计 费空 车用 于 清 零统 计+显 示V C C按 下 显 示计 算清 零启 / 停显 示清 零启 / 停显 示p a s s设 5 分 钟白 / 夜夜白白夜白夜p a s s片 选显 示设 5 分 钟清 零计 程计 时/ 公 里启 / 停十进制显示公 里 / 次清 零显 示密 码 正 确译 码 显 示包 括 B C D 码转 换L C D 显 示L C D驱 动模 块 图 22 出租车计费器系统框图 基于 FPGA 的出租车计费器的设计 6 首先由电动机驱动模块控制步进电机运转来模拟出租车车轮,速度值通过车速比较器判断是否低于 12km/h,如低于 12km/h 则进入计时状态(依照预设值每 5 分钟计为 1km)如果高于 180km/h 则发出车速过高的声光报警,车速在 12 到 180km/h之间的则进入计程状态,根据车轮的大小不同每 km 计的次数也不同,计程和计时通过选通模块自动选择输出到自动计费模块,计程和计时同一时刻只会有一个处于运行状态。 时钟模块给自动计费模块一个信号判断是白天还是深夜,自动计费模块会按照不同的计费 标准自动调节计费。 计费标准设定模块包括密码设定(只有密码正确后才能进行计费设定)、白天的起步费、单位里程费、过 12km 后的空载加收费、深夜加收后的起步费、单位里程费、过 12km 后的空载加收费、低速行驶等待时间以及车轮大小设定,总共 9 个可设定部分设定好的数值分别送到自动计费模块、计时模块和计程模块。 按下计费启动键后利用电容的瞬间充电过程来清零上一次的计费数值,此后开始自动计费,按下计费停止键后计费终止,统计模块自动执行保存记录。 基于 FPGA 的出租车计费器的设计 7 第三章 基于 FPGA的 出租车计费系统设计 功能模块 划分 基 于 F P G A 出 租 车 计费 系 统计 时 计 程 模 块按 键 相 关 模 块白 天 计 费 模 块深 夜 计 费 模 块其 他 模 块 设 计计时时间设定模块计程计时选通模块计程模块计时模块计程计时显示输出模块白天起步费设定模块去除按键抖动模块设置选择模块设置按键选通按键自动加速模块白天过12公里后每公里费用白天每公里费用模块深夜起步费设定模块深夜每公里费用模块深夜过12公里后每公里费用时钟模块分频模块二进制转B C D码自动计费模块总额计算模块白天黑夜辨别模块车轮大小设定模块车速比较模块 图 31 功能模块划分 计时 计程 模块 设计 计时时间设定模块 C L KU PD O W Ns e t m i n [ 2 . . 0 ]S E T M I N 图 32 计时时间设定模块 基于 FPGA 的出租车计费器的设计 8 计时时间设定模块根据标准当车速低于 12km/h 时,不计路程,计时间。 现在郑州的计费标准是每 5 分钟计为 1km。 所以预设值为 5 分钟。 可以在 0 到 7 分钟内每次加减 1 分钟进行设定。 计时模块 J I S H Ic l kc l rT i m e [ 2 . . 0 ]j s 图 33 计时模块 当速度低于 12km/h 时计时 模块启动。 输入端 clk 为 1Hz, clr 为清零端(计费停止后自动清零), time 为时间设定输入端(默认为每 5 分钟计为 1km,可设为其它值)。 js 端送到计程计时选通模块,默认为每 5 分钟计为 1km 送出一个高电平。 计程模块 J I C H E N GP [ 1 4 . . 0 ]c l kc l rj c 图 34 计程模块 计程模块,计算出租车行驶路程,每行驶一公里输出端 jc 就发出一个上升沿给计程计时选通模块。 输入端 P 为车轮大小的设定值,根据车轮直径的不同,每转一圈行进路程也不同,因此每公里计的 CLK 次数也会不同,车轮 越大计的 CLK 数越少。 clr 是清零端,每次计费结束后自动清零,保证下次计费的准确性。 基于 FPGA 的出租车计费器的设计 9 计程计时选通模块 m u x 2s e ls h ic h e n gp 图 35 计程计时选通模块 通过速度比较器的输出信号给计程计时选通模块的选通端 sel 就可以识别现在是应该要把计程的信号输出给自动计费模块还是把计时的信号输出给自动计费模块。 输出端 p 的每个上升沿都代表计了 1km。 计程计时显示输出模块 J C J S O U TY I M Ac h e n gs h ic l rc ac bc cs as bc i n [ 3 : 0 ]c i n [ 3 : 0 ]c i n [ 3 : 0 ]c i n [ 3 : 0 ]c i n [ 3 : 0 ]c o u t [ 7 : 0 ]c o u t [ 7 : 0 ]c o u t [ 7 : 0 ]c o u t [ 7 : 0 ]c o u t [ 7 : 0 ] 图 36 计程计时显示输出 模块 LCD 显示屏上会显示 0 到 999km 的路程和 0 到 99min 的时间。 计程端有三位数字的 BCD 码输出,通过译码器成为 LCD 模块可以识别的 8 位数字编码。 计时端则有两位数字的 BCD 码输出,最大计时 99 分钟。 清零端 clr 则通过下次按下计费启动键的瞬间清零,因为计费停止后还要保持显示输出,让顾客和司机可以清楚地看到所有计费信息。 基于 FPGA 的出租车计费器的设计 10 计费标准设定系统 设计 S E L [ 2 . . 0 ]UDC L KJ I NJ O U TA J S MA J S MJ I NC L KJ O U Ts e t u ps e t d o w nV C CV C CA NP A S SS E T O U T [ 2 . . 0 ]A NP A S SS E T O U T [ 1 4 . . 0 ]S H I [ 7 . . 0 ]G E [ 7 . . 0 ]C [ 7 . . 0 ]M [ 7 . . 0 ]A J S MA J S MC L KC L KJ I NJ I NJ O U TJ O U TS E TC H E L U NS E T M A XU 0D 7U 7U 6U 5U 4U 3U 2U 1D 6D 5D 4D 3D 2D 1D 0C L KU PD O W NC L KC L KC L KC L KC L KC L KC L KU PU PU PU PU PU PU PD O W ND O W ND O W ND O W ND O W ND O W ND O W NW O R D [ 9 . . 0 ]P A S S O U TD S [ 9 . . 0 ]D S [ 9 . . 0 ]D S [ 9 . . 0 ]D S [ 9 . . 0 ]D S [ 9 . . 0 ]D S [ 9 . . 0 ]D S [ 9 . . 0 ]C L RC L K AC L K BKC L KZ D J SP A S S W O R DD E RN S T A R TN S H I E RS E T M I ND S T A R TD S H I E RN E Ri n p u ti n p u tXOR 图 37 计费标准设定系统 由于受到油价影响,很多城市都推出了油价运价联动机制。 所以说将来的计费器应当 具备灵活的计价标准设定功能。 我设计的计费标准设定系统包括了:白天的起步费设定、每公里价格设定、超出 12 公里后的加收设定,以及深夜的对应与上面三项的加收设定、低速时的时间设定,车轮大小设定、密码保护设定,总共 9 项参数可以设定,可以说相当全面和灵活。 首先通过设定选择按键,初始化时停留在密码设定选项,只有当密码输入正确后,按下选择按键才能进行下面选项的设定。 密码输入正确后 passout 会变为 1 送到 set 模块和 chelun 模块,否则为 0,禁止设定。 Setmux 是设定选通模块用于选通加减键给需要设定的模块( U 为加, D 为减)。 通过自动加速模块可以让加减一开始加的慢,过了 4 秒后自动变快,一方面使得快速调到某个数值,另一方面又可以精确定位到某个数值,比较人性化。 基于 FPGA 的出租车计费器的设计 11 按键 相关 模块 设计 去除按键抖动模块 c l kj i nv c cI N P U Tj o u tA J S Ms e t i n 图 38 去除按键抖动模块 去除按键抖动的办法很多,本设计采用的是数字去抖动方法,即对按键进行扫描,去除抖动不确定状态,提高按键的可靠性。 扫 描 c l k按 键 波 形去 抖 动 后 图 39 去除按键抖动原理图 设置选择 模块 S E Ta np a s sS e t o u t [ 2 . . 0 ] 图 310 设置选择模块 当 pass 端为 1 时才可以进行选择操作, an 为按键输入端, setout 为输出端 为setmux 提供 从 000 到 111 输入信号。 基于 FPGA 的出租车计费器的设计 12 设置按键选通模块 S E L [ 2 . . 0 ]UDS E T M A XU 0D 7U 7U 6U 5U 4U 3U 2U 1D 6D 5D 4D 3D 2D 1D 0 图 311 按键选通模块 为了减少出租车计费器上的按键,为它做了一个按键选通模块。 U 为加键, D为减键, sel 设定表如下: 表 31 SEL 设定表 sel 输出 功能 000 u0、 d0 密码输入的加减 001 u d1 白天起步费的加减 010 u d2 白天每公里路费的加减 011 u d3 白天过 12 公里后的空载费的加减 100 u d4 深夜起步费的加减 101 u d5 深夜每公里路费的加减 110 u d6 深夜过 12 公里后的空载费的加减 111 u d7 低于 12km/h 的计时时间设定的加减 基于 FPGA 的出租车计费器的设计 13 按键自动加速模块 C L RC L K AC L K BKC L KZ D J SXOR1 H z4 H z加 键 减 键 图 312 按键自动加速模块 按键自动加速模块通过自动加速模块可以让加减一开始变 化的慢,过了长按 4秒后自动变快,一方面使得快速调到某个数值,另一方面又可以精确定位到某个数值。 当按下键后起初以 1Hz 进行加,按住 4 秒后变为 4Hz 的速度进行加减。 clk 输出自动变化的频率给加减模块, k 是累积端,累积 4 秒后不再发生变化,通过 XOR端,当加键或减键停止后则自动使 k 累积的值清零,这样下次按下加键时就又从1Hz 开始加了。 密码设定模块 设计 C L KU PD O W NW O R D [ 9 . . 0 ]P A S S O U TP A S S W O R D 图 313 密码设定模块 为了防止司机或者别人随意改。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。