基于FPGA 的车辆计费系统的设计与仿真实现*
2014-12-31韩晓冰
韩晓冰,姚 丹
(西安科技大学 通信与信息工程学院,陕西 西安710054)
0 引 言
信息社会的现代电子产品,性能越来越高,复杂度越来越大,更新的步伐也在逐渐加快,这都归功于微电子技术和电子技术的发展,而电子技术的发展核心就是电子设计自动化技术。EDA 是以计算机为工作平台,它与应用电子技术、计算机技术、智能化技术相结合,根据硬件描述语言HDL 完成设计文本,自动完成编译、综合、优化、布局布线及仿真,直到对特定芯片进行适配编译、逻辑映射和编程下载等工作[1-4]。所以,想要完成超大规模的集成电路设计,在没有EDA 的支持下很难实现,也就是说,生产制造技术的不断更新这就对EDA技术提出了更高的要求[5]。
针对传统的出租车计费系统多是利用如MCU,89C51 单片机来实现,其资源扩展有限,硬件电路复杂,很不利于系统功能升级。近年来,随着电子行业的迅速发展,计费系统在各个领域中的使用率也越来越频繁,随着出租车价格的市场化,主导出租车行业成本的许多因素,如油价的波动,过路费的调整,都对出租车计费器提出了更高的要求,针对广大消费者来说,对日常出行所需的交通工具收费标准也有了全新的期望[6-7]。以出租车计费系统为例,用户不仅要求计费器性能稳定,计费准确,还要求有防作弊功能。而不同国家和地区间的收费方式存在差异,即使在同一地区,不同车型,不同时段的收费方式也不尽相同,这样就更加速了对新型计费系统的设计。
为此,文中以FPGA 微处理器为核心,以硬件描述语言verilog 为依托,设计了一种实用新型出租车计费系统方案。通过模块化设计,将系统细化,并通过依次调用modelsim 仿真软件对各个模块进行仿真验证。该系统可以针对不同环境的不同收费标准,通过修改程序代码,更新扩展更多新功能,使其大大缩短了开发周期,减少了开发难度,且使得系统更加灵活,易调整[8]。
1 系统功能描述
以西安地区出租车计价器为例,讲述了计费系统的自动计费、计程、计时、译码及动态显示的设计方案,重点论述了用verilog 硬件描述语言代码编写及testbench 的形成过程,verilog 语言在易读性和层次化、结构化设计方面表现了强大的生命力和应用潜力[9-10]。
计费和计程功能可以实现预置参数设计,预置参数可调范围大,调节方便,能够在车型选择、起步里程、起步价、收费标准、超费加价金额和等待时长等参数预置数,最终金额和路程通过七段数码管显示出来[11]。如表1 所示出租车计费标准。
表1 出租车的计费标准Tab.1 Taxi billing standard
本计费系统的显示范围为0 ~99.9 元,计费分辨率为0.1 元;计程显示范围为0 ~99 km,分辨率为1 km;计时器显示范围为0 ~59 min,分辨率为1 min.
例如:计费算法(以白天行驶6.5 km 为例),总额=6 +1.2* (6.5 -3)=10.2 元。
2 系统总体设计
整个系统采用模块化的设计思想,共分为6 个模块,分别为分频模块(div,div1)、计程模块(distancemokuai)、计时模块(timemokuai)、控制模块(control)、计费模块(feemokuai)、数码管显示模块(scan-led)。每个模块用硬件描述语言Verilog 编写,在QuartusII 环境下对每个底层模块进行编译、仿真,然后再将各个模块连接起来,图形法逐级形成顶层模块[12],如图1 所示。
图1 系统的顶层框图Fig.1 Top-level block diagram of system
3 系统各个模块的设计与实现
由于篇幅限制,下面只介绍部分模块的设计思想。
3.1 计程模块(distancemokuai)
此模块的功能是计算出租车行驶的路程公里数。在乘客上车启动并行驶的过程中(复位/启动信号reset 为0,行驶/停止信号start 为1),当clk上升沿来到,系统即对计程器distance 的里程公里数进行加计数,当行驶路程超过3 km 时,系统将输出标志正脉冲distance_enable。
3.2 控制模块(control)
此模块的功能用于为计费模块提供时钟,当start 为高电平时选择里程计费,若行驶路程大于3 km,输出的时钟信号为distance_enable;当start 为低电平的时候选择时间计费,若等待时间大于2 min,输出时钟信号time_enable。
3.3 计费模块(feemokuai)
此模块用于出租车启动后,根据行驶公里数和等待时长计算收费金额。当车辆停止时,时钟信号select_clk 用于将计费器复位为起步价6 元;当车处于行驶状态且满3 km 时,select_clk 信号选择distance_enable,此后每一公里,计费器加1. 2元;当出租车处于停止等待状态且时长满2 min时,select_clk 信号选择time_enable,此后每1 min,计费器加1 元[13]。
4 系统综合验证与仿真
系统调试是分模块进行的。把每一个模块的功能调试完毕后,再把整个系统连接起来进行调试,而验证是确认所设计电路功能正确性的过程。
4.1 系统顶层模块
各个模块设计仿真实现后,可分别创建成元件符号。顶层就是将各分模块用Verilog 语言或者图形法连接起来,形成系统电路。其中该计费系统的顶层模块Verilog 源代码如下:
4.2 系统验证
图2 所示为系统验证方案流程图。
图2 系统验证方案流程图Fig.2 Flowchart of verification system
4.3 测试代码Test-bench 的设计与编写
除了需要设计完成电路本身外,为了证明其功能的正确性,还需要编写对应的测试代码。测试代码调用被测电路并产生输入激励信号,设计者通过观察仿真结果对电路功能进行判断,这一过程准确地讲是一个验证过程。
测试代码testbench 如下:
4.4 系统仿真
设计初步完成后,即可调用modelsim 对其进行仿真,同时可根据具体的设计要求加入测试输入条件。仿真后,若与预先设计结果不相符,应进行修改,直到完成要求为止。仿真结果如图3 ~5所示(以白天为例)。
图3 行驶中未停止的电路仿真Fig.3 Circuit simulation for non-stop running
从图3 可以看出,当reset 为1 时,系统复位,计程器和计时器均为0,计费器为6 元起步价;当reset 为0 时,系统启动,start 为1 表示出租车行驶,distance_enable 每产生一个脉冲,计程器加1;行驶路程在3 km 内,费用保持6 元不变,若超过3 km,计费器进行累加计数,每1 km 费用增加1.2 元,此时计时器保持不变。从图4,图5 的仿真波形可以看出,当reset 为0 时,系统启动,start=0 表示出租车处于停止等待状态,time_enable 每产生一个脉冲,计时器加1,等待时长在2 min 以内,计费器不变;超过2 min 后,每增加1 min,计费器增加1 元,此时计程器保持不变。
图4 在行驶中停止时(等待2 min 以内)电路仿真Fig.4 Circuit simulation for road stops(wait for 2 less than minutes)
图5 在行驶中停止时(2 min 以外)电路仿真Fig.5 Circuit simulation for road stops(over 2 minutes)
4.5 QuartusII 软件综合报表
整个系统程序调试通过后,选定好器件,设置好管脚并搭建外围电路后,把程序下载到EP4C115F29C7 芯片中。观察到整个系统运行良好,能实现出租车计费器的预定功能,最后为了优化程序,对系统硬件资源占用情况作以分析,如图6 所示,在图中可以看到,占用的逻辑单元还不到1%,这就更体现了FPGA 的优势。
图6 综合报表Fig.6 QuartusII comprehensive report
5 结 论
文中介绍了一种基于FPGA 技术的出租车计费系统的设计方法,重点对系统的设计与综合仿真作了论述,并对测试代码test-bench 进行了详细描述。
1)采用FPGA 微处理器,以硬件描述语言为依托,通过模块化设计,不仅缩短了开发周期、减少了开发难度,且使得系统更加灵活、易于调整;
2)通过不断试验仿真,将优化程序下载到实验板中,结果表明整个系统运行良好,对硬件资源占用很少,占用的逻辑单元不到1%;
3)系统应用DE2 -115(Cyclone Ⅳ4CE115)实验板,外围电路简单,稳定性好,尤其针对大规模集成电路设计,功耗小、集成度高的特点尤为明显;通过更改相应设计代码,可以使该计费系统扩展语音播报、超速报警、票据打印等附加功能。
References
[1] 夏宇闻.Verilog 数字系统设计教程[M].北京:北京航天航空大学出版社,2008.XIA Yu-wen.Verilog digital system design tutorial[M].Beijing:Beijing Aerospace University Press,2008.
[2] 刘爱荣,王振成.EDA 技术与CPLD/FPGA 开发应用简明教程[M].北京:清华大学出版社,2007.LIU Ai-rong,WANG Zhen-cheng. EDA technique and CPLD/FPGA development application introductory tutorial[M].Beijing:Tsinghua University Press,2007.
[3] 刘艳萍,高振斌,李志军. EDA 技术及应用[M]. 北京:国防工业出版社,2006.LIU Yan-ping,GAO Zhen-bin,Mr Li. EDA technology and its application[M]. Beijing:National Defence Industry Press,2006.
[4] 侯继红,李向东.EDA 实用技术教程[M].北京:中国电力出版社,2004.HOU Ji-hong,LI Xiang-dong. EDA practical technology tutorial[M].Beijing:China Electric Power Press,2004.
[5] 黄智伟.FPGA 系统设计与实践[M].北京:电子工业出版社,2005.HUANG Zhi-wei. FPGA system design and practice[M].Beijing:Electronic Industry Press,2005.
[6] 吴 亮,马宏兴.交通信息的背景提取技术分析[J].西安科技大学学报,2010,30(1):117 -121.WU Liang,MA Hong-xing. Background traffic information extraction technology analysis[J].Xi’an University of Science and Technology,2010,30(1):117 -121.
[7] 林 愿.基于CPLD/FPGA 的出租车计费系统的设计实现[J].国外电子元器件,2007(7):25 -28.LIN yuan. Design Based on CPLD / FPGA taxi billing system[J]. Foreign Electronic Components,2007(7):25 -28.
[8] 王金明.数字系统设计与Verilog HDL[M].北京:电子工业出版社,2011.WANG Jin-ming. Digital system design and the Verilog HDL[M].Beijing:Electronic Industry Press,2011.
[9] 王奋乾,刘明骞,王晓晶,等.移动通信实现即时支付的时效方法[J]. 西安科技大学学报,2012,32(6):759 -764.WANG Fen-qian,LIU Ming-qian,WANG Xiao-jing,et al.Mobile communication with instant payment methods of aging[J].Journal of Xi’an University of Science and Technology,2012,32(6):759 -764.
[10]王小平,王彦芳. 基于EDA 技术的出租车计价单片系统[J].南开大学学报:自然科学,2002,34(2):121-123.WANG Xiao-ping,WANG Yan-fang.Monolithic taxi valuation system based on EDA technology[J]. Journal of Nankai University:Natural Science,2002,34(2):121 -123.
[11]陈伟宏. 基于Proteus 的多功能出租车计价器设计[J].重庆工学院学报:自然科学版,2009,23(6):83-86.CHEN Wei-hong. Multi-function taxi meter based on Proteus design[J]. Journal of Chongqing Institute of Technology:Natural Science Edition,2009,23(6):83 -86.
[12]张卫东,毛昕蓉,韩 政. 以太网交换芯片的I2C 接口设计与实现[J].西安科技大学学报,2009,29(2):236 -239.ZHANG Wei-dong,MAO Xin-rong,HAN Zheng. Ethernet switching chip design and implementation of I2C interface[J]. Journal of Xi’an University of Science and Technology,2009,29(2):236 -239.
[13]黄粉平,张 玲,郑恩让.快速自适应滤波的图像增强方法[J].西安科技大学学报,2008,28(4):762 -765.HUANG Fen-ping,ZHANG Ling,ZHENG En-rang.Fast adaptive image enhancement filtering method[J].Xi’an University of Science and Technology,2008,28(4):762-765.