基于cpldfpga的出租车计费器

基于cpldfpga的出租车计费器

ID:24793707

大小:90.51 KB

页数:7页

时间:2018-11-11

基于cpldfpga的出租车计费器_第1页
基于cpldfpga的出租车计费器_第2页
基于cpldfpga的出租车计费器_第3页
基于cpldfpga的出租车计费器_第4页
基于cpldfpga的出租车计费器_第5页
资源描述:

《基于cpldfpga的出租车计费器》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、基于CPLD/FPGA的出租车计费器[日期:2005-3-29]来源:电子技术应用 作者:西安科技大学通信与信息工程学院吴冬梅吴延海邓玉玖[字体:大中小]   摘要:介绍了出租车计费器系统的组成及工作原理,简述了在EDA平台上用单片CPLD器件构成该数字系统的设计思想和实现过程。论述了车型调整模块、计程模块、计费模块、译码动态扫描模块等的设计方法与技巧。   关键词:CPLD/PPGA硬件描述语言出租车计费器MAX+PLUS软件数字系统随着EDA技术的高速发展,电子系统的设计技术和工具发生了深刻的变化,大规

2、模可编程逻辑器件CPLD/FPGA的出现,给设计人员带来了诸多方便。利用它进行产品开发,不仅成本低、周期短、可靠性高,而且具有完全的知识产权。本文介绍了一个以Altera公司可编程逻辑芯片EPM7128SLC84-15为控制核心、附加一定外围电路组成的出租车计费器系统。1系统组成基于CPLD/FPGA的出租车计费器的组成如图1所示。各部分主要功能如下:(1)A计数器对车轮传感器送来的脉冲信号进行计数(每转一圈送一个脉冲)。不同车型的车轮直径可能不一样,通过“设置1”对车型做出选择,以实现对不同车轮直径的车进

3、行调整。(2)B计数器对百米脉冲进行累加,并输出实际公里数的BCD码给译码动态扫描模块。每计满500送出一个脉冲给C计数器。“设置2”实现起步公里数预制。(3)C计数器实现步长可变(即单价可调)的累加计数,每500米计费一次。“设置3”用来完成超价加费、起步价预制等。(4)译码/动态扫描将路程与费用的数值译码后用动态扫描的方式驱动数码管。(5)数码管显示将公里数和计费金额均用四位LED数码管显示(三位整数,1位小数)。2功能模块设计出租车计费器由车型调整模块、计程模块、计费模块、译码动态及扫描等模块组成,整

4、个系统采用模块化设计,首先用VHDL编写功能模块,然后用顶层原理图将各功能模块连接起来。2.1车型调整模块出租车车型并非单一,各个车型的轮胎直径亦有所不同。据调查统计,现行出租车轮胎直径大致有四种,直径分别为520mm、540mm、560mm和580mm。若要使不同车型的出租车每行驶一百米均送出一个脉冲,可通过设置“可预制分频器”的系数来完成。根据上述车轮直径计算出的分频系数分别为61、59、57和55。预制数据受两个车型设置开关控制,DIP开关状态与车轮直径对应关系如表1所示(表中“1”为高电平,“0”为

5、低电平)。表1车型设置车轮直径(mm)520540560580DIP开关(两位)00011011在参数预制中,使用With_Select语句(查表法)做分频选择:withcartypeselecttypecounter<=“111101”when“00”,--520mm“111011”when“01”,--540mm“111001”when“10”,——560mm“111000”when“11”,--580mm“000000”whenothers;分频器采用的是加法分频电路,其占空比可通过datal(x)进

6、行调整,并且分频器带有“开始”/“清零”端(高电平清零)。时序仿真波形如图2所示。从图中可以看出,对于设置开关为“10”的车型,当第57个脉冲到来时,该模块oclk端从高变低,输出一低电平信号。车型调整模块(以下简称FP)封装见图4。2.2计程模块计程模块是一个模为10、步长为1的加法计数器。该模块可以预制参数,使其实际计数值大于预制数值后,每500米送出一个脉冲,并将计数值送译码动态扫描模块进行显示。预制参数采用非压缩BCD码,所以在计数器设计时必须将二进制1010至1111六个状态跳过去。在VHDL程序

7、中,用IF语句来实现。ifkm(3downto0)=“1001”thenkm:=km+“0111”:elsekm:=kin+1;endif;计程模块也带有“开始”/“清零”端。参数预制同样使用With_Select语句。“起步里程”和“开关设置”对应关系如表2所示。计程模块(以下简称MILE)封装见图4。表2起步里程设置起步里程(km)1.02.03.04.05.06.07.08.0DIP开关(3位)0000010100111001011101112.3计费模块计费模块是一个模为10、步长可变的加法计数器。

8、该模块通过开关量预制步长,当超过一定预制参数时改变步长。计费模块也采用非压缩BCD码,但因步长不为1,所以在做非压缩BCD加法时必须调整,否则可能导致在超过或未超过预置参数时出现超程错误。这里采用模仿微机的AF标志位,在其设立一个半进位标志,当累加和大于9或半进位标志为“1”时,对累加和进行调整。ifdatal(3downto0)>9ordatal(4)=‘1’thendatal(3downto0):=datal

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。