基于FPGA的出租车计费系统的设计
2017-03-08娄岚王亚辉孙祥凯
娄岚+王亚辉+孙祥凯
【摘要】 本设计采用Verilog硬件描述语言编程,基于Quartus II平台进行编译和仿真。采用Altera公司的FPGA芯片PE1C6Q240C8来设计该出租车计费器系统,阐述了该计费器的主要组成单元—车轮大小選择模块、计程模块、计时模块及计费模块、数据分配模块、分频模块、译码模块的设计方法,同时给出了详细的仿真波形,实现了出租车按行驶里程自主收费,还能模拟汽车启动,停止,暂停等状态,同时提高了计费系统的可靠性、通用性。
【关键词】 FPGA Verilog Quartus II 出租车计费器
大城市里出租车已经相当普及,但是在中小城市出租车依然处于快速发展的阶段。出租车的计费方式也在发生变化,由只能显示里程的方式变为现在的自主计费和打印发票及语音提示的智能化方式。根据出租车行业的发展需求,国内许多生产厂商也制造出不同类型的计价器。
一、国内外的研究现状
针对出租车计费器这方面,传统计费器利用MCU如89C51单片机实现汽车计费器的设计,大部分的功能可以用单片机来实现。但是单片机程序是不通用的,不同的芯片有不同的指令集,因此设计研发比较困难,周期长,如果系统设计的不好,则系统不是很稳定,而且灵活度不够,不易实现功能复杂的设计,很多人已经做出了许多不同的设计,使用的方式也各式各样,有FPGA,单片机,ARM以及可编程的逻辑器件等。
对于这类的设计,我们不仅可以做在线仿真和测试,还可以将所有的设计都集中在统一的自顶向下的设计方案下,根据系统需求,设计不同的模块,最后经过对不同的模块进行系统性综合,从而我们就可以完成整个系统设计。很多人都将基于EDA技术的CPLD/FPGA的设计方案作为首选方案去完成相关课题的设计,很大程度是基于EDA的这些技术优势。
二、FPGA的基本结构
在本设计中选用了Altera公司的EP1C6Q240型号的FPGA芯片。其资源比较丰富,且性价比极高。其内部有5980个逻辑单元,92160b的RAM容量, 2个PLL(锁相环模块),185个用户I/O。内核电压1.5V,每个用户I/O都支持1.5V、1.8V、2.5V、3.3V接口。
三、Verilog设计优点
利用Verilog语言设计数字逻辑硬件系统具有多方面的优点。
(1) 具有很广阔的覆盖面,行为描述能力也相当强大,是一个多层次的硬件描述语言。
(2) 可读性强,一方面计算机容易接受,读者也容易理解。
(3)可以长期使用,行为级描述不会随着工艺改变而过时。生产工艺与Verilog的硬件描述无关。当工艺发生变化时,只需对属性参数做相应的修改即可。
(4) 可移植性强,可以将大规模设计进行分解,同时可以使用已有的设计模块。一个人不可能独立完成大规模的设计,必须由多人共同协同完成设计,设计的分解和设计的再利用在Verilog的支持下变得容易。
四、Quartus II设计流程
对于电子设计的各个阶段、各个层次的操作都在Altera公司提供QuartusII平台上进行编译、仿真测试,在设计实验过程中需要注意以下几点:
首先,在进行编程操作时,时要注意区分信号与变量,同时对信号和变量的正确定义和应用也很重要;
其次,在创建工程时,要保证文件名和实体名完全一致,否则,编译无法完成,工程名可以与之不一致;
再次,注意结束时间的设置,最好将其设置为时间周期的15倍,否则可能会出现时序混乱的现象;
最后,仿真中,灵活的进行进制的转换,观察者可以更明显地看出来时序图的功能。
五、出租车计费器的设计要求
本设计要求设计日常生活所需要功能的基于CPLD/ FPGA的出租车计费器,其设计要求:费用的计算是按行驶的里程收费,设出租车的起价为7.00元,当里程小于2km时,按起价计算费用;当里程大于2km时每公里按2.5元计费。等待累计时间超过4min,按每分钟2.0元计费。所以总费用按下式计算: 总费用=起费用+(里程-2km)×里程单价+(等候时间-4min)×等候单价,能够实现显示的功能:
(1)显示汽车行驶里程:用两位数字显示,显示方式为“××”,单位为km。计程范围为0~99km,计程分辨率为1km。
(2)显示等候时间:用两位数字显示分钟,显示方式为“××”。计时范围为0~59min,计时分辨率为1min。
(3)显示总费用:用四位数字显示,显示方式为“×××.×”,单价为元。计价范围为0~999.9元,计价分辨率为0.1元。
三、结语
设计采用Verilog硬件描述语言,按自顶向下的方法,将设计的系统分成七个相对独立的模块分别设计,包括速度信号产生,计时模块,计程模块,计费模块,译码显示模块,用Quartus II软件进行各模块仿真得其波形,直到各个模块功能仿真都通过后,再将其合成整体,最后进行综合仿真。
参 考 文 献
[1]周淑阁 编著 FPGA/CPLD系统设计与应用开发[M].电子工业出版社 2011.