一种出租车计价器FPGA的设计和实现_第1页
一种出租车计价器FPGA的设计和实现_第2页
一种出租车计价器FPGA的设计和实现_第3页
一种出租车计价器FPGA的设计和实现_第4页
一种出租车计价器FPGA的设计和实现_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档-下载后可编辑一种出租车计价器FPGA的设计和实现

FPGA(Field-ProgrammableGateArray),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA具有灵活性和及时面市的优势,越来越多地被设计者用来作为消费类、工业和汽车、有线和无线通信以及医疗市场等系统中ASIC的替代方案。Altera新款CycloneII器件系列是建立在Altera代Cyclone系列所创建的低成本FPGA领导地位之上的,提供了低风险和低成本的解决方案,是中低规模ASIC吸引力的替代方案。

本文针对FPGA器件,用EDA工具软件Max+P1usⅡ,设计了一种出租车的计价器,它可以以十进制数的形式,直观地显示出租车行驶的里程和乘客应付的费用,具有一定的实际应用价值。

1系统设计要求

所要设计的出租车计价器,要求能够显示里程数和乘客应付的费用,其中里程数到0.1km,乘客应付的费用到O.1元,显示必须以十进制的形式来进行。出租车的计费标准为:起步价6元,里程在3km以内均为起步价;里程在3~7km之间时,每行驶1km增加1.6元;超过7km时,每行驶1km增加2.4元。

2系统设计方案

该系统的设计可以采用分立元件来搭建,也可以通过单片机来设计,而使用可编程FPGA来设计,具有设计周期短、易于修改等明显特点,而且随着可编程逻辑器件和EDA软件的飞速发展,越来越多的电子系统采用FPGA来设计,一旦该系统达到一定的量产规模,也比较容易转化为ASIC芯片设计。因此,基于FPGA来设计一个出租车的计价器。本系统在EDA工具软件MAX+plusⅡ中,采用硬件描述语言VerilogHDL和原理图设计相结合的方法,进行各个模块的设计,终将各个模块组成整个系统。

里程计数器可以用一个三位BCD码计数器来实现,能显示到999.以前两位为整数,第三位为小数,也就是能显示里程99.9km,因为出租车都在市区和近郊活动,三位BCD码计数器是可以实现里程计数的。里程计数器每计数1km还会周期性地输出一个脉冲信号,称为1km脉冲信号,可以通过一定的组合电路来实现。

系统的部分就是计费如何实现。这里就需要设计一个BCD码的加法器,在起步价的基础上,根据行驶里程的不同,依据计费标准,每增加1km加上一个单价,单价的产生可以用VerilogHDL编写程序来实现。系统的总体设计框图如图1所示。

2.1单价产生模块

单价产生模块的VerilogHDL源程序如下:

其中输入信号bai和shi就是里程计数器输出的两位整数里程,输出信号jia就是根据计费标准而产生的单价,以三位BCD码的形式输出,以前两位为整数,第三位为小数。即里程在3km以内时,jia=0;里程在3~7km之间时,jia=016(1.6元);超过7km时,jia=024(2.4元)。

用VerilogHDL编写程序来实现模块功能的优点在于,当出租车的计费标准发生变化时,可以很容易地通过改写程序来完成新的设计,比起硬件电路的修改要方便得多,这也是用VerilogHDL来实现模块功能的重要优势。

2.2三位BCD码加法器

系统中用到了三位BCD码加法器,可以实现三位十进制数的加法运算。加法器输出的结果就是乘客应付的费用,这里同样以前两位为整数,第三位为小数,也就是能显示99.9元。三位BCD码加法器由三个一位BCD码加法器级联而成。

一位BCD码由四位二进制数组成,四位二进制数的加法运算会产生大于9的数字,必须进行适当的调整才会产生正确的结果。一位BCD码加法器的VerilogHDL源程序如下:

一位BCD码加法器模块的仿真波形和生成的模块符号如图2和图3所示。

本模块中A和B为输入的一位BCD码,CIN为低位来的进位信号,CO是本片向高位产生的进位输出信号,SUM是两个数相加的和。三位BCD码加法器由三个本模块级联而成,其电路原理图和仿真波形如图4和图5所示。

2.3缓冲器模块

缓冲寄存器又称缓冲器,它分输入缓冲器和输出缓冲器两种。前者的作用是将外设送来的数据暂时存放,以便处理器将它取走;后者的作用是用来暂时存放处理器送往外设的数据。有了数控缓冲器,就可以使高速工作的CPU与慢速工作的外设起协调和缓冲作用,实现数据传送的同步。由于缓冲器接在数据总线上,故必须具有三态输出功能。另有电梯缓冲器,汽车弹簧缓冲器。

三位BCD码加法器输出的结果通过缓冲器以后,反馈到输入端重新作为一个加数,在1km脉冲信号的作用下,每来一个脉冲就和单价相加,形成连续累加的功能。缓冲器还有一个控制输入端LD,LD=O时,在1km脉冲的作用下,输出起步价6元;LD=1时,在1km脉冲的作用下,输出和输入相等。缓冲器的VerilogHDL源程序如下:

2.4整体电路

将各个模块按照输入输出关系连接成整体电路如图6所示。

在整体电路中,clk为原始的时钟输入端,cr为异步清零端,q[11O]输出里程,jiaqian[11O]输出乘客应付的费用。

3系统仿真验证

整体电路的仿真波形如图7所示。

从系统仿真波形图7(a)中可以看出,当清零端cr=O时,里程数立刻清零,乘客应付的费用显示三位十进制数060(起步价6元),表示乘客刚上车。当清零端cr=1时,出租车开始行进,里程和费用都开始计数,里程显示三位十进制数,前两位为整数,第三位为小数,也就是每行驶100m计数。

从系统仿真波形图7(b)中可以看出,行驶到3km时,费用由6元增加为7.6元,行驶到4km时,费用由7.6元增加为9.2元,在3~7km之间时,每行驶1km增加1.6元。

系统仿真波形图7(c)中显示了每行驶1km后,费用逐渐累加的情况。系统仿真波形完全验证了预期的设计要求。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论