Open Journal of Circuits and Systems
Vol.07 No.02(2018), Article ID:25640,8 pages
10.12677/OJCS.2018.72008

Multi-Member Taxi Meter Billing System Based on FPGA

Jin Wu, Wenjie Wang

Changsha Aeronautical Vocational and Technical College, Changsha Hunan

Email: 372271998@qq.com

Received: Jun. 5th, 2018; accepted: Jun. 21st, 2018; published: Jun. 28th, 2018

ABSTRACT

The number of taxis in cities has been increasing in recent years. Under the premise of reasonable reduction of taxi fare, increasing the number of passenger is easy to accept. Improving the operating efficiency of taxis can reduce air pollution while relieving traffic pressure. Multi-member taxi billing system designed by using programmable logic device FPGA and introducing supporting LPM EDA software tools QuartusII, has less device connection, high reliability, better cost control. This circuit has good practical value.

Keywords:FPGA, LPM Module Design, Meter Billing System

基于FPGA的多人出租车计程计费系统

吴进,王文杰

长沙航空职业技术学院,湖南 长沙

Email: 372271998@qq.com

收稿日期:2018年6月5日;录用日期:2018年6月21日;发布日期:2018年6月28日

摘 要

近些年来城市的出租车数量不断增加。在合理降低打车费的前提下,提高出租车单车乘车人数,乘客是容易接受的。提高出租车的运营效率可以在缓解交通压力的同时减少大气污染。利用可编程逻辑器件FPGA,通过引入支持LPM的EDA软件工具QuartusII设计的多人出租车计程计费系统,器件联接少,可靠性高,成本控制较好。该电路有很好的实用价值。

关键词 :FPGA,LPM模块设计,计程计费器

Copyright © 2018 by authors and Hans Publishers Inc.

This work is licensed under the Creative Commons Attribution International License (CC BY).

http://creativecommons.org/licenses/by/4.0/

1. 引言

随着城市出租车数量迅速增加,出租车空载率也不断提高,道路交通的负荷也增加了,但是在上下班高峰期以及假期又出现打车难的现象。现行出租车管理条例提到了允许出租车拼车出行。计价器是乘客与司机双方的交易准则,对出租车拼车而言,具有良好性能的计价器无论是对广大出租车司机还是对乘客来说都是十分必要的。出租车计价器是一种计量器具,用于测量出租车持续运营时间中按照里程传感器传送的信号测量出租车行驶里程,并以测得的行驶里程为依据,计算乘客租车应付的费用。

计价器主要包括里程传感器、微处理器、显示屏、设置4个部件。里程传感器可以用光耦合型传感器,也可用霍尔传感器实现,其将出租车变速器输出的转动信号转换成电脉冲信号输入微处理器。微处理器可以用单片机,也可以用可编程逻辑器件CPLD或FPGA实现,根据脉冲信号测量行驶时间、行驶车速和行驶里程进行计算,得出乘客应付的车费,通过计价器的显示屏显示金额及里程。

本设计实现了基于可编程逻辑芯片FPGA和软件工具QuartusII,最大可搭乘四位乘客的出租车计费系统。

2. 系统总体设计

本系统利用可编程逻辑器件FPGA、霍尔传感器设计的多人出租车计程计费器,可以通过按键模拟四人的上下车;通过DIP开关实现车型、单价、起步价等的选取设置;用数码管显示乘客编号(A,b,C,d)、所行公里数(4位)及费用(4位);用LED灯显示乘客上下车信息。总体设计框图如图1所示。

由于本系统采集通道数较多,实时性和同步性要求较高,要求提供的时钟频率高,内部延时小,因此选择EP2C35F672C8作为主控制FPGA芯片 [1] 。外围器件主要涉及系统时钟、霍尔传感器(车轮脉冲)、乘客上下车按键、数据清零按键、DIP设置开关、数码管显示及led灯。而核心部件FPGA设计主要由分频、车型设置、计程、计费、动态扫描显示五个模块组成。每个模块都用EDA软件工具QuartusII中的LPM函数 [2] 来完成。

3. 系统主要模块FPGA设计

3.1. 车型选择模块

常见四种出租车车型,对应车轮直径分别为520 mm、540 mm、560 mm和580 mm。根据上述车轮直径计算出的一百米分频系数分别为61、59、57和55,使不同车型的出租车每行驶一百米均送出一个脉冲。车型设置端type_sel[1..0]由DIP开关来控制。该模块采用加法分频电路实现。设计好的电路符号图如图2所示。

3.2. 计程模块设计

计程模块是一个十进制加法计数器。该模块可以预置参数(起步里程)。每100 m脉冲信号计数一次,

并将数值送译码动态扫描模块进行显示。起步里程由DIP开关来控制。输入端由按键模拟乘客上下车以及计程数据清零,模块输出里程计数及用led提示乘客字母代号。

该模块的设计关键是单个乘客按键控制电路,其符号图如图3。以单个乘客按键控制电路为基础,完成计程模块的设计。图4图5为计程模块符号及波形仿真图。

计程模块数据须作二–十进制转换处理,形成的计程数据处理符号如图6所示。

Figure 1. Overall design frame

图1. 总体设计框图

Figure 2. Symbolic chart of the model selection module

图2. 车型选择模块电路符号图

Figure 3. Single passenger control circuit symbol

图3. 单个乘客计程控制电路符号

3.3. 计费模块设计

计费模块通过开关预置起步价和每公里单价。该模块的设计关键为单个乘客计费电路,其符号图如图7所示。

将设计好的单个乘客计费电路模块化后与输入输出端联接处理后,得到总的A、b、C、d四位乘客费用模块。图8图9为计费模块符号及波形仿真图。

计费数据的输出由计程模块输出端与计费模块输出共同控制,此处用vhdl程序实现 [3] 。再作二-十进制数据转换处理,形成的计费数据处理符号如图10所示。

Figure 4. Planning modules and connections

图4. 计程模块及连接

Figure 5. Waveform simulation of the meter module

图5. 计程模块波形仿真图

Figure 6. Metered data processing symbols

图6. 计程数据处理符号图

Figure 7. Single passenger pricing circuit symbol

图7. 单个乘客计价电路符号图

Figure 8. Value module symbols

图8. 计价模块符号

Figure 9. Waveform simulation of valuation module

图9. 计价模块波形仿真图

Figure 10. Billing data processing symbol diagram

图10. 计费数据处理符号图

3.4. 动态显示模块设计

计程、计费输出的数据经二-十进制转换处理后输入动态显示模块,电路原理图如图11所示。因课题要求的特殊性,输出里程数据到小数点后一位,故图中译码显示display和decoder部分用vhdl设计(程序略)。

动态扫描是利用人眼的视觉暂留原理,只要扫描频率大于一定数值,人眼就感觉不到显示器的闪烁。本系统基础输入1 kHZ的时钟完全能满足要求。

4. 实物展示

实物展示为模拟A、b、C、d四位乘客在不同时刻上下车的情形,如图12。如按键A按下,模拟乘客A上车,则对应led灯发光。系统后台对乘客A计程计费(图示左上角)。A下车,按下同一按键A,其led灯灭,数码管显示其对应字母A (图示右下角),显示其里程及费用,再按下对应清零按键A0,乘客A的所有信息清除。系统后台可同时对不同乘客计程计费,相互不受干扰,直至所有乘客下车。

5. 结论

应用可编程逻辑芯片FPGA设计的多人出租车计程计费器,以软件工具QuartusII为平台,结合LPM

Figure 11. Dynamic display circuit principle

图11. 动态显示电路原理图

(1) (2) (3) (4) (5) (6)

Figure 12. Physical presentation; (1) A, b, C, d get on the bus, led lights are on, and charge for the taxi; (2) A get out of the car, A lights out, show A's code, mileage and fees; (3) Clear A and keep b, C and d billing separately; (4) b get out of the car, b lights out, b codes, miles and fees; (5) C get out of the car, C lights out, C codes, miles and fees; (6) d get out of the car, d lights out, d codes, miles and fees

图12. 实物演示;(1) A,b,C,d分别上车,led灯全亮,分别计程计费;(2) A下车,A灯灭,显示A的代码、里程及费用;(3) 对A清零,后台保持对b,C,d分别计程计费;(4) b下车,b灯灭,显示b的代码、里程及费用;(5) C下车,C灯灭,显示C的代码、里程及费用;(6) d下车,d灯灭,显示d的代码、里程及费用

工具和VHDL语言,以模块化设计为基础完成系统软件设计。通过外加拨码开关、按键,可以实现对不同车型出租车百米脉冲输入设置,还可以设置不同起步价、不同单价等,实现多位乘客分别计程计费及显示,互不干扰。其软件修改灵活,电路器件联接少,可靠性高。在出租车多人拼车应用时具有较好的实用价值。

文章引用

吴 进,王文杰. 基于FPGA的多人出租车计程计费系统
Multi-Member Taxi Meter Billing System Based on FPGA[J]. 电路与系统, 2018, 07(02): 58-65. https://doi.org/10.12677/OJCS.2018.72008

参考文献

  1. 1. Simpson, P. FPGA设计——基于团队的最佳实践[M]. 北京: 机械工业出版社, 2014.

  2. 2. 张文爱. EDA技术与FPGA应用设计[M]. 第2版. 北京: 电子工业出版社, 2016.

  3. 3. 徐志军. EDA技术与VHDL设计[M]. 第2版. 北京: 电子工业出版社, 2015.

期刊菜单