嵌入式系统嵌入式系统/ARM技术中的一种出租车计价器技术中的一种出租车计价器FPGA的设计和实的设计和实
现现
FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的
基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制
电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA具有灵活性和及时面市的优势,越来越多地
被设计者用来作为消费类、工业和汽车、有线和无线通信以及医疗市场等系统中ASIC的替代方案。Altera新款
Cyclone II器件系列是建立在Altera第一代Cyclone系列所创建的低成本FPGA领导地位之上的,提供了低风险和
低成本的解决方案,是中低规模ASI
FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进
一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了
原有可编程器件门电路数有限的缺点。FPGA具有灵活性和及时面市的优势,越来越多地被设计者用来作为消费类、工业和汽
车、有线和无线通信以及医疗市场等系统中ASIC的替代方案。Altera新款Cyclone II器件系列是建立在Altera第一代Cyclone系
列所创建的低成本FPGA领导地位之上的,提供了低风险和低成本的解决方案,是中低规模ASIC最具吸引力的替代方案。
本文针对FPGA器件,用EDA工具软件Max+P1usⅡ,设计了一种出租车的计价器,它可以以十进制数的形式,直观地显
示出租车行驶的里程和乘客应付的费用,具有一定的实际应用价值。
1 系统设计要求系统设计要求
所要设计的出租车计价器,要求能够显示里程数和乘客应付的费用,其中里程数精确到0.1km,乘客应付的费用精确到O.1
元,显示必须以十进制的形式来进行。出租车的计费标准为:起步价6元,里程在3 km以内均为起步价;里程在3~7 km之间
时,每行驶1 km增加1.6元;超过7 km时,每行驶1 km增加2.4元。
2 系统设计方案系统设计方案
该系统的设计可以采用分立元件来搭建,也可以通过单片机来设计,而使用可编程FPGA来设计,具有设计周期短、易于
修改等明显特点,而且随着可编程逻辑器件和EDA软件的飞速发展,越来越多的电子系统采用FPGA来设计,一旦该系统达到
一定的量产规模,也比较容易转化为ASIC芯片设计。因此,基于FPGA来设计一个出租车的计价器。本系统在EDA工具软件
MAX+plusⅡ中,采用硬件描述语言Verilog HDL和原理图设计相结合的方法,进行各个模块的设计,最终将各个模块组成整个
系统。
里程计数器可以用一个三位BCD码计数器来实现,最大能显示到999.以前两位为整数,第三位为小数,也就是最大能显
示里程99.9 km,因为出租车都在市区和近郊活动,三位BCD码计数器是可以实现里程计数的。里程计数器每计数1 km还会周
期性地输出一个脉冲信号,称为1 km脉冲信号,可以通过一定的组合电路来实现。
系统最核心的部分就是计费如何实现。这里就需要设计一个BCD码的加法器,在起步价的基础上,根据行驶里程的不
同,依据计费标准,每增加1 km加上一个单价,单价的产生可以用Verilog HDL编写程序来实现。系统的总体设计框图如图1
所示。
2.1 单价产生模块单价产生模块
单价产生模块的Verilog HDL源程序如下: