




已阅读5页,还剩48页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于fpga的出租车多功能计费系统设计1 绪论1.1 课题背景及目的 近些年来,随着我国经济的迅速发展,人们生活水平的显著提高,城市交通的日趋完善,出租车逐渐成为人们日常生活不可缺少的交通工具。而出租车计费器作为出租车的一个重要组成部分,计费器是出租车营运收费的专用的智能化的仪表,是出租车市场标准化、规范化以及减少司机与乘客之间发生纠纷的重要设备。因而出租车计价器的发展与更新日新月异,应用也越来越普及。自我国加入wto以来,我国出租车行业快速发展,出租车已经成为我国城市公共交通的重要组成部分和必备的基础设施,成为人们日常生活中不可或缺的交通工具。出租车费价器是一种可以根据乘客乘坐出租车车行驶距离和等候时间的多少进行计费,并直接显示车费值的计量工具。计费器是经营者和消费者之间用于公平交易结算的器具,因而计费器计费是否准确,直接关系到经营者和消费者双方的经济利益。因而一种功能齐全、简单易用、计量精确的出租车计费器是加强出租车行业管理体系、提高服务质量的必需品。当计费系统在各大、中城市出租车中的使用越来越普及,用户对计费器各方面的要求也越来越高。传统的出租车计费器由于发展使用了很长一段时间,其在成本、稳定性以及使用习惯上都具有一定的优势,但更多的是存在着很多的不足,例如产品功能升级很麻烦,需要软件更新和硬件重组同步进行,成本很高,并且每次升级后都可能出现新的一些不稳定因素。而本课题研究的基于现场可编程逻辑阵列(fpga)的出租车计费器,其利用逻辑综合为基础的自顶向下的电路设计思路和硬件描述语言vhdl,开发,可靠性高,成本低,功能升级很方便,彻底的解决了这些问题,满足了用户的要求。 基于我国各方面的国情及未来的发展趋势,计费器的市场具有很大的潜力,通过fpga设计出各种出租车的计费需求的系统是十分有必要的,而且这个课题还能很好的解决传统计费器系统上的一些缺点,以实现更好的计费功能。1.2 出租车计价器现状及发展趋势出租车行业在我国是在八十年代初兴起的,随着我国经济的高速发展,出租车已成为我国公共交通的重要组成部分,为人民的日常出行提供了极大的便利。出租车费价器是一种按照设定的要求进行自动计费的装置,其应用在出租车上使出租车行业的收费更加方便、规范等。市场上目前使用的出租车计费器主要采用的都是基于单片机实现的计费器。传统的出租车计费器由于发展使用很长一段时间,在成本、稳定性以及使用习惯上都具有一定的优势,但是在营运过程中其系统不是很稳定,有时甚至造成死机的现象。而且不同国家和地区的计费方式也存在差异,有些地区还有夜间收费和郊区收费等,而有些地区则无这类收费;即使是在同一地区,不同车型的出租车,其计费方式也有所差别;由于个别地区对计费器有特殊的要求,有时必须修改软件系统;另外,计费器还面临着软件升级的问题;因此,所设计的计费器应能很方便地重新进行编程。另一方面,由于油价的不断提升,造成出租车还面临调价或调整计费方式等问题。因此,所设计的计费器不仅要能满足不同地区的要求,而且计费方式的调整也应当很方便易操作等。这些难点对传统的出租车计费器提出了更高的要求。近几年来,各大城市都在对出租车价格进行调整,但是由于数量太多,调价需要很长一段时间才能完成,这就会在同一时间内出现几个价格,司机人工计费的情况。这些都暴露了传统计费器在灵活性和系统升级能力上的不足。现在计费器大多数基于单片机为平台的,但是单片机的程序不是通用的,不同的芯片有着不同的指令集,因而设计研发比较艰巨。而fpga等数字可编程器件的诞生彻底地解决了这个问题,而且设计更灵活、性能更稳定、能够实现较复杂的功能,且运用quartus软件可方便的在电脑上实现设计与仿真。fpga是电子设计领域中最具活力和发展前途的一项技术,未来必定会取代那些落伍的数字元器件。1.3 论文研究内容 由于基于单片机的出租车计费系统存在产品更新周期长、计费方式的不灵活性以及功能太单一等缺点,因此本设计针对这些不足采取了一些有效的措施来改进,使其更具实用性。1、 利用fpga取代mcu 随着fpga等数字可编程元器件的出现解决了传统的电子设计不能完成的任务。利用fpga来实现出租车计费器的设计,可行性高,而且电路比较简单,大大减少了外围元器件,可以利用相关的软件完成仿真,灵活度很高,可以设计一些比较复杂的系统,而且编好的系统可以在不同的fpga或cpld芯片上通用。使用fpga来进行数字电路的设计,可以大大节省设计时间,减少pcb的面积,还可以提高系统的可靠性。2、 增加计费标准设定功能 通过设计此性能可使得计费标准的设计更加灵活,体现了目前出租车业发展的需求,使运价、油价联动成为可能。 本文的主要内容是采用基于fpga的芯片进行出租车多功能计费器系统的设计,采用altera公司的flex系列芯片epf10k10qc208-3,用vhdl语言来编程,在quartus ii软件平台上实现了该设计。第一章从出租车研究的背景及目的着手,并对国内外出租车计费器的发展状况进行了综述,阐述了出租车计费器的发展趋势。第二章先介绍了现代数字电路的设计方法,然后再简略介绍并分析了基于单片机的的设计思路以及存在的不足,并综述了基于fpga的设计方案,通过两种方案的对比,最终确定了用fpga来实现出租车多功能计费器系统的设计。第三章介绍了基于fpga出租车计费器的硬件设计。该系统采用的是altera公司的flex系列epf10k10qc208-3芯片。第四章是基于fpga出租车计费器的软件设计。本文采用vhdl硬件描述语言进行编程,在设计程序时采用自顶向下的方法实现模块化设计,降低了设计的复杂度,更有利于及时的发现错误。第五章对全文进行了总结并对未来出租车计费器的发展进行了展望。2 方案的比较及确定2.1 现代数字系统的设计方法 一般说来,数字系统的设计有两种思路:自底向上及自顶向下。1、自底向上设计流程 自底向上的设计方法是一种比较传统的设计思想、首先将各种基本单元,如各种逻辑门以及加法器、选通器等做成基本单元库,再调用它们,逐级向上组合,直到设计出合适的系统为止。这种方法缺乏对整个系统的规划,目前在复杂数字系统设计中,仅应用在建库、ip模块调整等设计中,作为自顶向下方案的一种补充。2、自顶向下设计流程 伴随着集成电路技术的日益发展,电子系统设计的规模与复杂度逐渐提高,使用自底向上的设计思路已不能够适应现在的需要,而采用自顶向下的设计思路的优越性却逐渐显露出来。 采用自顶向下“topdown”的设计思路,是从系统的总体需求出发,在最顶层进行结构设计和功能方框图的划分,对高层次的系统行为进行描述,对系统进行仿真及验证,然后采用逻辑综合的优化工具生成相应的门级逻辑电路的网表,最后再完成系统硬件的整体设计。 用自顶向下的思路进行数字电路设计包括以下几个主要的抽象层次:(1)电路级,表示电路设计可转入制造。 (2)寄存器传输级(rtl),又称结构级。描述设计电路的体系结构。rtl网表主要是由各模块或、如乘法器等级联而成的结构网表组成的。该模块大致由寄存器和组合逻辑两大块组成,此外还包含小部分可逻辑综合的行为描述。(3)逻辑门级。硬件总体设计的实现已经基本确定,门级设计网表与芯片制造商的工艺库直接相关联,电路设计时,所有的工艺器件都要确定。 (4)行为级,又称算法级。描述的是设计在算法中的行为。 本设计采用“ topdown”(自顶向下)的设计方法,设计步骤如图2-1所示。 图2-1 设计流程图 在自顶向下的设计方法中,首先需要对整个系统进行方案的设计以及功能的划分,拟订采用专用的集成电路asic来实现系统的电路设计,在完成电路和芯片的版图后,再交给ic工厂投片加工,或者采用可编程asic(如 cpld和 fpga等)现场编程来实现。 在自顶向下的设计思路中,行为设计确定了该系统或vlsi芯片的性能、功能以及允许的芯片面积和成本等。结构设计根据系统或芯片的特点,将其分解为接口清晰、相互关系明确、尽可能简单的子系统,得到一个总体结构。这个结构可能包括算术运算单元、控制单元、数据通道、各种算法状态机等。逻辑设计把结构转换成逻辑图,设计中尽可能采用规则的逻辑结构或采用经过考验的逻辑单元或模块。电路设计将逻辑图转换成电路图,一般都需进行硬件仿真,以最终确定逻辑设计的正确性。版图设计将电路图转换成版图,如果采用可编程器件就可以在可编程器件的开发工具时进行编程制片。2.2 出租车计费系统的设计方案当今社会,信息技术的发展速度日新月异,其应用已经渗透到各个方面各个领域。现今越来越多的电子产品向着微型化、低功耗、智能化等方向发展。电子产品系统的复杂度在不断增加,它带动着电子设计技术相应的变革和飞跃。最初的使用纯ssi数字电路设计系统,不仅工作量大,灵活性低,而且系统可靠性差。后来,使用单片机设计系统,其克服了纯ssi数字电路系统许多不能解决的难题,是一个具有里程碑意义的发展及飞跃。 近些年来,fpga/cpld器件的不断成熟,尤其是fpga/cpld向深亚微米领域的发展,使得fpga/cpld器件得到了广泛应用,以fpga/cpld为物质基础的eda技术诞生了。它具有自动化和高智能化的特点,解决了软硬件设计最后的难题,使得硬件设计变得简单明了。它作为一种新型的技术正在潜移默化的改变着数字系统的设计观念、方法和过程。单片机,fpga/cpld以其各自的特点满足了社会发展的需要,正从各个层面改变着经济生活,它们已经成为电子信息时代的核心动力,不断推动着信息技术的成熟和进步。 关于出租车计费系统的设计,有着大量的采用基于单片机进行设计的方案。设计大多是:通过软件编程,仿真,调试,满足要求后再将程序用编程器烧录到单片机的芯片上。利用单片机的中断来响应乘客等待或者开车的请求,进行相应的处理。利用寄存器存放计费器系统运行的状态,根据整个行程的状态进行计费。这种设计不仅外围电路较多,而且时序实现能力较弱,调试复杂,抗干扰能力差,特别对这种需要长时间不间断运作的系统,由于主要是软件运作,容易出错,而造成系统不稳定。 eda(electronic design automation)是指以计算机为工具,在软件平台上,对用硬件描述语言完成的设计文件自动地进行逻辑化简、逻辑编译、逻辑分割、逻辑布线布局、逻辑综合及优化、逻辑仿真,直至对于特定目标芯片进行适配编译、逻辑影射和编程下载等。设计者只需用vhdl语言来进行系统功能的描述,借助eda工具就能得到设计的结果,将编译后的代码下载到目标芯片后就可在硬件上实现。目标芯片指的是pld器件(fpgacpld等),fpgacpld是eda技术的物质基础。eda技术作为现代电子系统的开发技术,具有以下两方面的特点:1、修改软件程序即可改变硬件 由于fpgacpld可通过对软件编程实现对该硬件的结构和工作方式进行重新组构,修改软件程序就改变了硬件,这使得设计者把思路概念变为目标芯片和电路。软件使用自顶向下的设计方案,而且还可多人分工并行工作,这些年来ip核产业的快速发展,使得将适当的软核结合起来就能完成一个完整的系统,这些极大地缩短了开发周期和上市时间,有利于在激烈的市场竞争中抢占先机。2、速度快,可靠性高 mcu(micro controller unit)和dsp(digital signal processor)都是通过串行执行指令来实现特定功能的,速度比较慢,而fpgacpld可以实现硬件上的并行工作,在高速应用和实时测控等领域运用很广;另一方面,fpgacpld器件在功能开发上是通过软件来实现的,但是其物理机制和纯硬件电路完全一样,可靠性高;与其他的设计方案相比,fpga芯片有丰富的i/o,从而有着丰富的存储单元,可将原本需外加的存储设备转移到fpga芯片内部来实现,使得外围电路减少。而mcu和dsp芯片在某些条件下,尤其是强电磁干扰的情况下,很可能会出现不正常的工作流程,例如出现pc跑飞的现象等。eda具有高可靠性正好克服了这一缺点。 2.3 基于单片机出租车计费器设计方案2.3.1 硬件各模块的功能1、 键盘控制功能是启动出租车计费器,改变出租车计费器的状态如运行、等待计时、不同计费模式的切换。2、 掉电存储用来存取计费器的状态信息和计费信息。3、 里程计算单元是通过安装传感器检测到的信号,送到单片机,经处理计算,送给显示单元。4、 利用单片机丰富的i/o端口,实现基本的里程计费功能和价格调节,时钟显示功能。出租车计费器的原理框图如下图所示:单片机 键盘控制里程计算单元串口显示驱动电路总金额显示单价显示掉电存储图2-1 基于单片机的原理框图 2.3.2 程序设计模块1、 主程序模块 在此模块中,需要完成对各个接口芯片的初始化,出租车起价和单价的设定,中断向量的设计以及开关中断,循环等待等系列工作。此外,在主程序模块中还需设置启动/清除标志寄存器、里程寄存器和价格寄存器,并对他们进行初始化。然后,主程序将根据各标志寄存器的内容,分别完成启动、清除、计程和计价等不同的操作。2、 定时中断服务程序 在定时中断服务程序中,每100ms产生一次中断,当产生10次中断的时候,也就到了一秒,送数据到相应的显示缓冲单元,并调用显示子程序实时显示。3、 里程计数中断服务程序 每当霍尔传感器输出一个低电平信号就使单片机中断一次,当里程计数器对里程脉冲计满1000次时,就有程序将当前总额,使微机进入里程计数中断服务程序中。在该程序中,需要完成当前行驶里程数和总额的累加操作,并将结果存入里程和总额寄存器中。4、 中途等待中断服务程序 当在计数状态下霍尔开关没有输出信号,片内的t1定时器便被启动,每当计时到达10分钟,就对当前金额加上中途等待的单价,以后每10分钟都自动加上中途等待的单价。当中途等待结束的时候,也就自动切换到正常的计价。5、 显示子程序服务程序 由于是分屏显示数据,所以就要用到4个显示子程序,分别是:时分秒显示子程序、金额单价显示子程序、路程单价显示子程序、单价调节子程序。6、 键盘服务程序 键盘采用查询的方式,放在主程序中,当没有按键按下的时候,单片机循环主程序,一旦右键按下,便转向相应的子程序处理,处理结束再返回。2.4 基于fpga的出租车计费器的设计方案基于fpga的出租车多功能计费系统由altera公司的flex系列芯片epflokloqc208-3及一些外部控制电路组成,采用vhdl语言来编程,并使用quartus ii进行仿真。fpga是英文field programmable gate array的缩写,译成中文为现场可编程门阵列,它是在gal、pal、epld等可编程元器件的基础上逐步发展的产物。它是伴随着专用集成电路(asic)领域中一种半定制电路快速发展而出现的,不仅解决了定制电路的不足,还克服了原有可编程元器件门电路数量有限的缺点。 fpga采用了逻辑单元阵列lca这样一个崭新的概念,其内部包括输出输入模块iob、可配置逻辑模块clb和内部连线三个部分。fpga的基本特点主要有: (1)采用fpga来设计asic电路,不需要投片生产,就可以得到合用的芯片。 (2)fpga可做半定制或全定制asic电路的中试样片。 (3)fpga内部有着丰富的io引脚和触发器。 (4)fpga是asic电路中开发费用最低、设计周期最短、风险最小的器件之一。 (5)fpga采用高速chmos工艺,功耗低,可以与cmos、ttl电平兼容。 可以说,fpga芯片是提高系统集成度、可靠性的最佳选择之一。 目前fpga的品种很多,ti公司的tpc系列、有xilinx的xc系列、altera公司的flex系列等。 fpga是由存放在片内ram中的程序来设置其工作状态的,因此,工作时需对片内ram进行编程。用户可以根据不同的配置模式而采用不同的编程方式,以此来达到预期的结果。 当加电时,fpga把eprom中的数据读入到片内的编程ram中,配置完成后,fpga进入工作状态;当掉电后,fpga变成白片,内部的逻辑关系消失,因此,fpga可以反复使用。此外fpga的编程不需专门的fpga编程器,只需通用的eprom、prom编程器就可。当需修改fpga的某个功能时,只需调换一片eprom即可。同一片fpga,不同的编程数据,就可产生不同的功能。因此,fpga的使用很灵活多变。 2.5 本章小结 方案一的开发及制作成本较低,能较充分的利用资源,但外围电路较多,调试比较复杂,抗干扰能力比较差,特别是对出租车的计费器这种需要长时间不断运作的系统,而且由于主要是软件运作,很容易出错,经常造成系统不稳定。方案二将所有的器件集成在一块芯片上,在减小体积的同时还提高了系统的稳定性,且可运用eda软件进行仿真、调试,易于进行功能扩展,且外围电路很简单,采用硬件逻辑电路来实现,其最大的优点是抗干扰能力强,稳定性好,非常适合作为出租车的计费器系统的控制核心。通过以上两种方案的比较,可以看出基于fpga的设计方案要优于基于单片机的设计方案,基于fpga的设计方案稳定性更强且相对于单片机的设计方案来说它更易于将来进行功能的扩展。因此,本设计确定采用基于fpga的出租车多功能计费器的设计方案。 3 硬件设计3.1 总体设计方案3.1.1 计费标准由于各地出租车计费情况的不同,本设计主要以以下出租车计费情况作为参考依据。先来了解一下出租车是如何计费的,如表3-1所示:表3-1 计费标准白天6:00到23:00深夜23:00到6:00计费标准起步5元(3km以内)起步7元(3km以内)1元/km(超过3km)1.5元/km(超过3km)2元/km(超过10km加收50%)3元/km(超过10km加收50%)每6分钟计为1km(当车速低于10km/h)空调费及过路费 以上计费标准可根据出租车行业受市场因素的影响,在价格方面进行灵活可靠,易于操作的调节。3.1.2 总体框架设计 出租车计费系统流程介绍:由车型调整模块、计时模块、计程模块、计费标准设定模块、统计模块、时钟模块、自动计费模块、led显示模块等模块组成,整个系统采用模块化设计,首先用vhdl编写各功能模块,然后用顶层原理图将各功能模块连接起来组成多功能计费系统。 首先将车轮传感器送来的车速信号速度值通过车速比较器进行判断,如低于10 km/h 则进入计时状态(依照计费标准每6分钟计为1km),否则进入计程状态。车型不同的车轮,其直径可能不一样,车轮的大小不同,则每公里计的次数也不同。这可通过车型调整模块在输入正确密码的条件下设置参数,对出租车的型号做出选择,以此来实现对不同车型的车进行调整,可通过led显示器显示来参数设置的情况。计时和计程通过选通模块自动的选择输出到自动计费模块,计时和计程在同一时刻只有一个是处于运行状态,同时led显示器上将显示其状态。时钟模块给自动计费模块一个信号来判断是深夜还是白天,自动计费模块会按照不同的标准自动调节计费。计费标准设定模块包括密码设定(只有在密码输入正确后才可以进行计费设定)、白天起步费、单位里程费、过10公里后的加收费、深夜加收后的起步费、单位里程费、过10公里后的加收费、低速行驶等待时间及车轮大小设定,共9个可以设定的部分。参数的设置均可以在密码输入正确的条件下,通过选通模块来进行各项参数的设置或修改。当按下计费启动键后,利用电容的瞬间充电过程来把上一次的计费数值清零,然后开始自动计费;当按下计费停止键之后,计费终止,总额计算模块记录车费并通过led显示。同时统计模块自动执行并保存此次记录。led显示模块包括译码部分、 驱动部分,最终界面上会显示车速、时钟、等待时间、过路费、行驶路程、总费用、参数设定菜单、开始计费和停止以及营运额统计等。基于fpga 的出租车多功能计费器的总体设计框图如图3-1。图3-1 总体设计框图3.2 出租车计费器各模块的设计3.2.1 车型调整模块 出租车的车型并不是单一的,每个车型都有所不同。据调查和统计,现在出租车轮胎直径大致以下有五种,直径分别为500 mm、520mm、540mm、560mm和580mm。车轮的直径与每公里所转圈数如表3-2所示。表3-2 轮胎直径与每公里所转圈数对应表轮胎直径500mm520mm540mm560mm580mm圈数/km637612590569549 通过车型调整模块把设定的车轮大小送到计程模块,计程模块根据轮径的大小,每公里所转圈数的不同,自动调节计算。此项数值的设定需要输入正确的密码,并在led上显示设定的情况。如图3-2所示:pw密码设定,当密码输入正确后即pw=1时进行轮胎直径的设置;an为设置轮胎直径的按键,每按一下就可设定一种直径;set把设定的轮胎直径大小数值送到计程模块;cs、cg分别送到显示部分。图 3-2 车型调整模块3.2.2 车速比较模块 当出租车速度低于10km/h 时输出为高电平,其进入计时状态;当车速大于10km/h时输出为低电平,进入计程状态。车速比较模块如图3-3所示。p为车速输入端;sc为输出端。图 3-3 车速比较模块3.2.3 计时模块 当速度低于10km/h时进入计时模块。计时模块如图3-4所示。输入端clk为1hz;clr 为清零端(计费停止后自动清零);time为时间设定输入端(默认为每6分钟计为1km);输出端bc送到显示部分累计,每1分钟一个上升沿输出;输出端ac送到计程计时选通模块,默认为每6分钟计为1km送出一个高电平。图 3-4 计时模块3.2.4 计程模块 计程模块用于计算出租车行驶的路程,计程模块如图3-5所示。出租车每行驶1km输出端cc就发出一个上升沿信号给计程计时选通模块;输入端d为车轮大小的设定值,根据车轮直径的大小,每转一圈行进的路程也不一样,因此每公里计的clk次数也会不同,车轮越大计的clk数越少clr是清零端,每次计费结束后都会自动清零,以此保证下次计费的准确性。图 3-5 计程模块3.2.5 计程计时选通模块 通过车速比较模块的输出信号给计程计时选通模块的选通端就可以识别当前时刻是应该要把计程的信号还是把计时的信号输出给自动计费模块。此模块的输出端的每1个上升沿都代表1km。如图3-6所示。s选通端;shi计时模块信号;chen计程模块信号;y输出端。图 3-6 计程计时选通模块模块3.2.6 计程计时显示输出模块 led显示屏上可以显示0到99分钟的时间和0到999公里的路程。计时端则有两位数字的bcd码输出,计程端有三数字的bcd码输出,通过译码器后成为led可识别的7位数字编码。为了使计费停止后还可保持显示,让乘客和司机都能清楚地看到所有得计费信息,需要设置一个清零端,使其通过下次按下计费启动键的瞬间实现清零。计程计时显示输出模块设计如图3-7所示。jc计程信号;js计时信号;clr清零端;c1、c2、c3计程输出端;s1、s2计时输出端。图 3-7 计程计时显示输出模块3.2.7 译码显示模块 采用共阴极七段数码管,依据十进制数和七段显示段码表的相应关系,用 vhdl 的 case 语句即可实现它们的译码。模块如图 3-8 所示。图 3-8 译码显示模块3.2.8 计费标准设定系统 为了满足计价标准的灵活性,计费标准设定系统包括了:车轮大小的设定,密码保护设定,低速时的时间设定,白天起步价设定、每千米的价格设定、超出10km后的加收设定,以及深夜时对应的设定,共9项参数的设定,可以说来是很全面和灵活的。如图3-9所示,首先通过设定选择按键,初始化时会停留在密码设定选项,当密码输入正确后,按下选择按键可以进行其它选项的设定。密码输入正确后,passout会变为1送到set模块和ch1模块,否则为0,禁止设定。smux是设定选通模块用于选通加减键给需要设定的模块(a为加,s为减)。图3-9 计费模块1、密码设定模块 为了防止随意改动计费标准的参数设定,设置了一个密码保护模块。模块如图3-10所示。up、down 加减设置键;clk 加减的快慢频率;word 显示输出端,经过二进制转化bcd码后就可以在屏幕上显示;passout 密码是否正确的输出端,输入正确时输出1到选择端,进行参数设置。图 3-10 密码设定模2、设置模块 当密码设置模块的输出端passout为1时才可以进行参数的设置。模块如图3-11所示。pw密码输入端,当其为1时才可以进行选择操作;an 按键输入端;set 输出端,从000到111给选通模块分别代表不同设置选项。图 3-11 设置模块3、设置按键选通模块 为减少出租车计费器上的按键,做了一个按键选通模块。如表3-3所示,a为加键,s为减键,当sel为000时把a给a0、s给s0,当sel为00时把a给a1、s给s1,以此类推,sel为111则把a给a7、s给s7。表3-3 sel 设定表按键选通模块如3-12所示:图 3-12 按键选通模块4、按键自动加速模块 按键自动加速模块通过自动加速模块可以让加减一开始变化得慢,过了长按5秒后自动变快,不仅可快速的调到某个数值,而且还能精确的定位到某个数值。如图3-13所示,当按下键后起初以1hz累加,按住5秒后变为5hz的速度进行加减。clk输出自动变化的频率给加减模块,k是累积端,累积5秒后不再发生变化,通过xor端,当加键或减键停止后则自动使k累积的值清零,这样下次按下加键时就又从1hz开始加。图 3-13 按键自动加速模块5、白天起步费设定模块 如图3-14所示,up、down加减键;clk 加减的快慢频率;ds起步费输出端,给自动计费模块,初始值设为5.0元。图 3-14 白天起步费设定模块6、白天每公里费用设定模块 如图3-15所示,up、down加减键;clk加减的快慢频率;ds 每千米价格的输出端,给自动计费模块,它的初始值设为1.0元/km。图 3-15 白天每公里费用设定模块7、白天过 10 公里后加收费设定模块 如图3-16所示,up、down 加减键;clk为加减的快慢频率;ds 加收50%后的每千米价格输出端给自动计费模块,它的初始值设为3.0元/km。图 3-16 白天 10 公里后费用设定模块8、深夜起步费设定模块 如图3-17所示,根据标准深夜23:00到凌晨6:00之间起步价为7元。up、down加减键;若down有效电平则进行减设定,每来一个减信号clk就减0.1元;ds起步费输出端给自动计费模块,它的初始值设为7元。图 3-17 深夜起步费用设定模块9、深夜每公里费用设定模块 如图3-18所示。up、down 加减键;clk加减的快慢频率;ds每千米价格输出端给自动计费模块,它的初始值设为1.5元/km,。图 3-18 深夜每公里费用设定模块10、深夜过 10 公里后加收费设定模块如图3-19所示。up、down加减键;clk加减的快慢频率;ds过10千米后加收50%费用的每千米价格输出端给自动计费模块,它的初始值设为3元/km。图3-19 深夜过10 公里后加收费设定模块11、计时时间设定模块 根据标准当出租车车速低于10km/h时,计时间,计费标准是每6分钟计为1km。所以预设值为6分钟,可在0到7分钟内每次加减1分钟来进行设定。如图3-20所示,up、down加减键;clk加减的快慢频率;min设置时间值。图 3-20 计时时间设定模块3.2.9 白天和深夜辨别模块 s和g分别为时钟的十位和个位输入端,当时间处于23:00到凌晨6:00之间的时输出为1,其他时间则为0,送到自动计费模块。如图3-21所示。图 3-21 白天和深夜辨别模块3.2.10 自动计费模块 由于起步费要求在开始计费时led屏幕上就显示,受到vhdl语言的限制,不能在一个结构模块里给某个变量赋两种初始值的选择,所以要给它一个初始化模块。如图3-22所示,d、n 是白天和深夜的判别信号,d1、d2、d3 、n1、n2、n3 分别代表白天起步费、单位千米费、10 千米后的单位公里费、深夜起步费、单位千米费、10 千米后的单位公里费。每走完一千米就给clk 端一个信号,自动计费模块根据不同状态自动计费一次,sp 是启动和停止的输入端,它一方面控制计费的开始和停止,另一方面起到清零作用,且只当启动的瞬间才清零,为了保持屏幕上的数值,jfout 把计算值输出给总额计算端。图 3-22 自动计费模块3.2.11 过路费或空调费模块 目前的计费标准中都有过路费或空调费这些费用,看实际情况支付,通过按键扫描模块,来给这些费用增加或是减少,每次步进1元,可达到最大值99元。输出值给总额计算模块和显示部分,清零端只当启动的瞬间才清零。如图3-23所示。clr清零端;clk时钟输入端;a、s加减键;ql输出端。图 3-23 过路费或电调费模块自动计费模块3.2.12 总额计算模块 如图3-24所示。cf 、lf输入端,代表车费及空调过路费;clr 清零端;st计算信号输入端,当按下停止计费键时就自动计算结帐;zhe 输出端,把计算数值输出到同级模块和显示模块。图 3-24 总额计算模块3.2.13 统计模块为让司机能清楚的了解一天的盈利情况,所以做了一个统计模块,用来统计所接的乘客总数及营运额总数。如图3-25所示。tr输出乘客数;tf输出营运额总数;zf 总费用的输入端;stop累计信号,当stop 端接到停止计费的信号后就自动累计一次乘客总数和营运额总数,输出给显示模块;clr清零端。图 3-25 统计模块3.2.14 分频模块 分频模块为该系统的各个模块提供精确的时钟频率。根据不同的需求输出有1hz、2hz、5hz。如图3-26所示。图 3-26 分频模块3.2.15 晶振时钟电路 本设计采用的是4mhz有源晶振,如图3-27所示,通过74ls393双四位二进制计数器给4mhz晶振进行分频和整形。经过此计数器的整形之后的方波很稳定,通过分频之后输出到fpga芯片的时钟频率为250khz。既可减少了外围电路,又使得输出频率更加精确,更重要的是无需放大电路,因其直接可以输出5v电压的频率。图 3-27 晶振时钟电路3.2.16 时钟模块 按键min和h是时钟调节端,分别调节分钟和小时。分钟在按下键后sel端选择in1进入调节;否则,in2进入,每60秒一个高电平给分钟模块。分钟时钟经过译码后给led显示。小时在按下键后sel端选择in1进入调节;否则,in2进入,每60分钟一个高电平给小时模块。时钟输出端有辨别白天还是深夜的作用。在图3-28中,second为秒模块,每60秒给一个高电平到分钟选择模块;前一个mux21为分钟调节端,若sel为高电平,则进行分钟的设置,若sel为低电平,则进行分钟自动进行计数;mintue为分钟模块,qh,ql为分钟输出端送led中显示,每60分钟给一个高电平到小时选择模块;后一个mux21为小时调节端,若sel为高电平,则进行小时的设置,若sel为低电平,则进行小时自动进行计数;hour为小时模块,qh,ql为小时输出端送led中显示。图 3-28 时钟模块1、秒模块 每6隔0秒给一个高电平发送到分钟选择模块,如图3-29所示,clk端接1hz的时钟信号,当它累计满60次后,由co端输出一个信号发送到分钟模块。图 3-29 秒模块2、分钟模块分钟模块考虑到时间的设置问题,它由两部份组成,一个是进行分钟设置的调节模块mux21,一个是自动计数的模块mintue。如图3-30所示,若mux21的sel为低电平,则通过in2输入秒模块60秒后发送一个高电平信号co进行分钟的自动计数;若sel端为高电平,则通过in1进行分钟的设置;。图 3-30 分钟模块3、小时模块 小时模块与分钟模块的设置相类似,也由两部份组成,一是小时设置调节模块mux21,一个是自动计数的模块hour。如图3-31所示,若sel为低电平,则进行小时的自动计数;若sel为高电平,则通过in1进行小时的设置。图 3-31 分钟模块3.3 本章小结本章简述了出租车计费器的硬件设计,在epflokloqc208-3芯片中采用分模块的设计方法将整个系统分为车型调整模块、计程模块、计时模块、计费标准设定模块、自动计费模块、统计模块、时钟模块、led显示模块等模块组成,整个系统采用模块化设计,降低了设计难度,实现了出租车计费器多功能的设计,其具有以下功能:可以灵活的设定参数,如可以进行车轮直径的设定,能区分白天还是晚上,白天和晚上有不同的计费方式,车子暂停的时候照常计费,可以计算过路费及空调费,能精确的显示总额等。4 外围电路设计4.1 电源电路 电源采用的是比较流行的开关电源,ac-dc开关电源,输入115vac到230vac,输出+5v(4a)。使用开关电源的好处就是比较节省能源,它的转换效率很高,可达85%以上,稳压范围宽,除此之外,还具有稳压精度高、不使用电源变压器等特点,是一种较理想的稳压电源。4.2 启动/停止按键电路 如图4-1所示,采用双刀双路开关,一路开关用于清零部分,由于显示部分的特殊要求,即计费停止后屏幕上仍然要保持计费的所有信息,只有当下次计费启动时才清零从新开始计费。vhdl 语言的特殊性,不能在一个结构中给一个变量同时用两个不同的动作使其赋值。所以必须要有一个瞬间清零的信号,当fpga 的清零i/o 端口为“1”时就自动清零。使用电容的充放电功能来实现,按键断开时清零输出端为接地,按键闭合时电容充电清零输出端为高电平,充完电后清零输出端又为低电平,当按键断开后,通过一个2k 欧姆的电阻放电,为下次充电做好准备。另外两路开关,其中一路用于空车指示,另外一路用于启动指示和启动/停止输出信号给fpga 芯片。当按下键后,清零部分和启动计费部分同时进行,但清零只是瞬间的,计费指示灯亮起。再次按下键后,开关换到另外的两路,空车指示灯亮起。图 4-1 启/停按键电路4.3 自动清零部分 由于显示部分的特殊要求,即计费停止后屏幕上仍然要保持计费的所有信息,只有当下次计费启动时才清零从新开始计费。vhdl 语言的特殊性,不能在一个结构中给一个变量同时用两个不同的动作使其赋值。所以必须要有一个瞬间清零的信号,当fpga 的清零i/o 端口为“1”时就自动清零。使用电容的充放电功能来实现,按键断开时清零输出端为接地,按键闭合时电容充电清零输出端为高电平,充完电后清零输出端又为低电平,当按键断开后,通过一个2k 欧姆的电阻放电,为下次充电做好准备。如图4-2所示。图 4-2 自动清零电路5 软件设计5.1 quartus ii简介quartus 是altera公司推出的cpld/fpga开发工具,quartus ii提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性。quartus ii设计流程:(1)设计输入:完成期间的硬件描述,包括文本编辑器、块与符号编辑器、megawizard插件管理器、约束编辑器和布局编辑器等工具; (2)综合:包括分析和综合器以、辅助工具和rtl查看器等工具; (3)布局连线:将设计综合后的网表文件映射到实体器件的过程,包括fitter工具、约束编辑器、布局图编辑器、芯片编辑器和增量布局连线工具;(4)仿真:quartus ii提供了功能仿真和时序仿真两种工具;(5)器件编程与配置:包括四种编程模式,即被动串行模式、jtag模式、主动串行模式和插座内编程模式。使用new project wizard新建一个工程的过程:(1)制定工程的文件存放目录、工程名以及最顶层的设计实体名,在默认情况下,工程名与最顶层的设计实体名是相同的。(2)添加文件,包括最顶层的设计实体文件以及一些额外的电路模块描述文件或定制的功能库。(3)选择目标芯片,具体芯片最好让编译器根据工程设计的实际情况选择。(4)第三方eda工具设定,包括设计输入与综合工具、仿真工具、时序分析工具等,默认为quartus ii自带的仿真器、综合器以及时序分析器。 (5)最后一步系统将整体工程的各项参数和设置总结并显示出来,这时即可完成工程的创建。5.2 程序设计在传统的硬件电路的设计中,主要的设计是电路原理图,而采用vhdl设计系统硬件电路时主要是采用vhdl编写源程序。所谓硬件描述语言vhdl,就是该语言可以描述硬件电路的功能,信号连接关系及定时关系。vhdl语言的主要优点有:(1)vhdl支持自顶至下以及基于库的设计方法,而且支持异步电路、同步电路、现场可编程门阵列器件fpga以及其他随机电路的设计。vhdl具有比其他硬件描述语言更强大的行为描述能力,抽象的行为描述风格避免了具体的器件结构,使设计者可以从逻辑行为上描述和设计电子系统。目前通用的vhdl综合器和eda工具大部分都可实现行为描述到rtl描述的转换。(2)vhdl语句的程序结构和行为描述能力决定了其可以支持已有设计再利用和大规模设计的分解的功能,并且支持系统的数学模型一直到门级电路的描述,此外高层次的行为描述与低层次的门级电路描述及结构描述可混合在一起使用。这些都符合ic设计的市场需要。vhdl支持系统级描述,这是它优于其他语言最重要的方面之一。(3)vhdl的硬件描述与具体的硬件结构和工艺技术没有关联,当门级或门级以上的描述通过仿真后,再通过相对应的工具将设计映射成不同的工艺,因此电路的设计与工艺的改变是相互独立的,彼此的变化不会导致不良的影响,并且vhdl实现目标器件的可供选择范围非常广泛,可使用fpga/cpld等各种门阵列器件。(4)vhdl具有子程序调用和描述语句等功能,对己经完成的源程序,可以通过修改函数和类属参数表的方法来改变设计的结构和规模。vhdl具有丰富的库函数和仿真语句,使门电路级的功能仿真、检查变得简单,使得设计者对系统设计的结构和功能的是否可行做出判断。(5)vhdl作为一种ieee的工业标准,使得其设计成果可以重复利用和交流。这进一步促进了vhdl的推广及完善。此外,由于其语法很严格,给阅读和使用带来很大的方便。vhdl的设计流程如图5-1所示。vhdl文本编辑vhdl文本编辑fpga/cpld适配器fpga/cpld编辑下载器vhdl仿真器fpga/cpld器件和电路系统时序与功能仿真器图5-1 vhdl设计流程图vhdl的系统级描述由于没有设计概念上的抽象性,可提高设计者在较高的设计层次上来描述模型的能力,能更好的帮助设计者实现更复杂得设计、更大规模的元器件的重用。vhdl面向对象的发展是其进步的方向之一,这在软件开发中已被大众所接受。它不仅仅是一种新的程序设计技术,而且是一种全新设计和构造软件的思维方法,它使得计算机解决问题的方式更智能化和更强的管理能力。面向对象的语言必须包含可封装性、抽象性、层次化、模块化及信息机制。可封装性是指数据和代码两者必须保存在同一单元中,封装性可以选择性的隐藏某些信息,使得这些信息对外界不可取的。抽象性意味着一个对象的特性可在类描述中文档化。层次化使得对象的行为更精确,没必要重复设立前驱中已有的内容。模块化定义了单元的重用。 本设计采用vhdl语言来编程,用quartus ii软件平台上进行系统的设计,实现了计费器的计价标准灵活设定、按不同计价标准自动计费、统计、密码保护等功能。6 结论6.1 总结本文论述了基于 fpga 的出租车计费器设计,分别介绍了整个系统和各模块的设计。使用 fpga 芯片、vhdl 语言、quartus 软件,实现了软件和硬件的设计。解决了利用微控器如 89c51、pd78f0034 单片机设计计费器存在营运过程中系统不很稳定,造成死机现象和计价标准修改需重新烧录芯片,每次调价耗费大量的人力物力的问题。本文设计的出租车计费器具备了计价标准设定灵活、按不同计价标准自动计费、统计功能、密码保护等功能。该计费器实现了按预制参数自动计费、自动计程等功能;能够实现按白天或者深夜不同时段起步价、每公里收费、过 10 公里后加收费、车型调整的参数预制(如:白天起步价 5元,3 公里内每公里 1 元,超过 3 公里后每公里 2 元;深夜起步价 7 元,3 公里内每公里 1.5 元,超过 3 公里后每公里 3 元;低速时按 6 分钟为 1 公里计算等),且预置参数可调范围大。通过芯片内部编程增加了时钟功能,既可为司机和乘客提供方便,又能为深夜行车自动调整收费标准提供参考。另外,由于器件资源尚有较大的扩展空间,根据实际需要,系统可方便地增加所需功能,如:用 fpga 的输出引线控制语音芯片,可向乘客发出问候语、提醒乘客告诉司机所要到达的地点、报出应收缴的费用等;还可通过 fpga 的输出引线控制打印机打印发票等。由于采
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高一物理电磁感应现象中的能量转换原理教学教案
- 科学实验室:科学实验活动教学计划
- 写人作文蜡烛老师750字(10篇)
- 时尚猫咪课件
- 时尚分销专业知识培训课件
- 读后感读闪着泪光的决定有感500字8篇
- 数据保护工具的合规性与隐私保障方案
- 我爱我温馨和谐的家550字13篇范文
- 纪检委员工作职责
- 文化娱乐行业市场趋势报告表
- 《肝硬化腹水中西医结合诊疗专家共识(2025年)》解读课件
- 旭化成分离膜装置(杭州)有限公司建设项目报告表
- 湖北摊贩备案管理办法
- (2025年)江西省九江市辅警协警笔试笔试预测试题含答案
- 员额法官考试试题及答案
- 2025年深圳市中考历史试卷真题(含答案详解)
- 注浆工安全知识题库
- GB/T 45359.5-2025海工平台定位系泊纤维绳索第5部分:芳纶
- 2025年全国新高考II卷真题2卷语文+数学+英语试卷(含答案)
- 2025至2030中国水飞蓟提取物行业项目调研及市场前景预测评估报告
- 2025年贵州毕节市金沙县国有资本投资运营集团有限公司招聘笔试参考题库含答案解析
评论
0/150
提交评论