基于CPLDFPGA的出租车计费器_第1页
基于CPLDFPGA的出租车计费器_第2页
基于CPLDFPGA的出租车计费器_第3页
基于CPLDFPGA的出租车计费器_第4页
基于CPLDFPGA的出租车计费器_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

1、基于CPLDFPGA的出租车计费器摘要: 介绍了出租车计费器系统的组成及工作原理,简述了在EDA平台上用单片CPLD器件构成该数字系统的设计思想和实现过程。论述了车型调整模块、计程模块、计费模块、译码动态扫描模块等的设计方法与技巧。 关键词: CPLDPPGA 硬件描述语言 出租车计费器 MAX+PLUS软件 数字系统 随着EDA技术的高速发展,电子系统的设计技术和工具发生了深刻的变化,大规模可编程逻辑器件CPLDFPGA的出现,给设计人员带来了诸多方便。利用它进行产品开发,不仅成本低、周期短、可靠性高,而且具有完全的知识产权。本文介绍了一个以Altera公司可编程逻辑芯片EPM7128SLC

2、84-15为控制核心、附加一定外围电路组成的出租车计费器系统。 1 系统组成 基于CPLDFPGA的出租车计费器的组成如图1所示。各部分主要功能如下:(1)A计数器对车轮传感器送来的脉冲信号进行计数(每转一圈送一个脉冲)。不同车型的车轮直径可能不一样,通过“设置1”对车型做出选择,以实现对不同车轮直径的车进行调整。(2)B计数器对百米脉冲进行累加,并输出实际公里数的BCD码给译码动态扫描模块。每计满500送出一个脉冲给C计数器。“设置2”实现起步公里数预制。(3)C计数器实现步长可变(即单价可调)的累加计数,每500米计费一次。“设置3”用来完成超价加费、起步价预制等。(4)译码动态扫描将路程

3、与费用的数值译码后用动态扫描的方式驱动数码管。(5)数码管显示将公里数和计费金额均用四位LED数码管显示(三位整数,1位小数)。 2 功能模块设计 出租车计费器由车型调整模块、计程模块、计费模块、译码动态及扫描等模块组成,整个系统采用模块化设计,首先用VHDL编写功能模块,然后用顶层原理图将各功能模块连接起来。 21 车型调整模块 出租车车型并非单一,各个车型的轮胎直径亦有所不同。据调查统计,现行出租车轮胎直径大致有四种,直径分别为520mm、540mm、560mm和580mm。若要使不同车型的出租车每行驶一百米均送出一个脉冲,可通过设置“可预制分频器”的系数来完成。根据上述车轮直径计算出的分

4、频系数分别为61、59、57和55。预制数据受两个车型设置开关控制,DIP开关状态与车轮直径对应关系如表1所示(表中“1”为高电平,“0”为低电平)。 表1 车型设置 车轮直径(mm) 520 540 560 580 DIP开关(两位) 00 01 10 11 在参数预制中,使用With_Select语句(查表法)做分频选择: with cartype select typecounter9 or datal(4)1then datal(3 downto 0):datal(3 downto 0)“0110”; datal(8 downto 5):datal(8 downto 5)1; end

5、if; 其中,data(4)为半进位标志。“起步价格”和“超价加费”设置参数分别如表3和表4所示。计费模块(以下简称MONEY)封装见图4。 表3 起步价格设置 起步价格(元) 1.2 1.6 2.0 2.4 2.8 3.2 3.6 DIP开关(3位) 001 010 011 100 101 110 111 表4 超价加费设置 超价加费(元) 10.0 15.0 20.0 25.0 DIP开关(2位) 00 01 10 11 24 显示模块 显示模块由七段LED数码管译码和动态扫描显示两部分组成。 241 七段LED数码管译码 本次设计采用的是共阴极七段数码管,根据16进制数和七段显示段码表的

6、对应关系,用VHDL的With_Select或When_Else语句可方便实现它们的译码。 242 动态扫描显示 动态扫描是利用人眼的视觉暂留原理,只要扫描频率不小于24Hz,人眼就感觉不到显示器的闪烁。本系统24Hz的扫描脉冲由相应的外围电路提供。动态扫描电路设计的关键在于位选信号要与显示的数据在时序上一一对应,因此电路中必须提供同步脉冲信号。这里采用八进制计数器提供同步脉冲,VHDL程序段如下: cIkl_label:PROCESS(scp) BEGIN IF scpvent and scp=1THEN count=count+1; END IF; END PROCESS clkl_lab

7、el; 显示数据的选择由计数器控制,VHDL程序段如下: temp=counterl when count=“000”else counter4 when count=“011”else milel when count=“100”else mile4 when count=“111”; 位选信号时序仿真如图3所示。从时序仿真图和上述程序可以看出,位选信号和要显示的数据实现了同步。 动态扫描电路中小数点的显示无法在译码电路中完成。由于小数点的位置是固定的,因此可由计数器提供的同步信号产生另一信号控制DP。VHDL程序实现如下: if (count:“101”or count=“001”)the

8、n data(0)1; else data(0)0; end if; 显示模块(以下简称SHOW)封装见图4。此模块中应用了两个过程,在过程内程序顺序执行,其中第一个过程触发第二个过程。 3 系统综合 31 模块联调 各个功能子模块设计完成后,利用MAXPLUS的图形编辑器(Graphic Editor)将各功能子模块(sym)进行连接。由于MILE模块中存在毛刺,故不能直接与后级相连,通过对输出脉冲信号加门电路延时,再与原始信号相“与”的方法即可消除毛刺。系统顶层原理图如图4所示。 芯片管脚定义可以直接用编辑pin文件或在FloorPlan Editor下进行。完成管脚定义后选择器件(EPM

9、7128SIC8415),编译后生成sof、pof及报告文件rpt。查看报告文件可得到器件管脚的利用情况及器件内部资源的使用情况。通过更换适当的器件使其资源配置达到最优。选择器件的一般原则是系统所使用的资源不要超过器件资源的80,若超过90,系统功耗将增大,工作不稳定。从本次设计器件部分报告中得知:输入、输出管脚各用16只,芯片资源利用率仅为51,具有较大的扩展空间。 32 硬件设计说明 本次设计的出租车计费器计数脉冲CP来自车轮转速传感器(干簧管),脉冲经器件内部整形后送计数器;动态扫描脉冲由外围电路给出;系统使用整流、滤波、降压后的出租车电源供电;由于CPLDFPGA的驱动能力有限,为了增强数码管的亮度,提高系统的可靠性,设计中在LED驱动和位驱动上分别增加了电流驱动器件ULN2803和2SCl015。 现场实验表明:该计费器实现了按预制参数自动计费(最大计费金额为9999元)、自动计程(最大计程公里数为9999公里)等功能;能够实现起步价、每公里收费、车型及加费里程的参数预制(如:起步价500元;3公里后,120元公里;计费超过1500元,每公里加收50的车费等),且预置参数可调范围大。由于采用了CPLDFPGA大规模可编程逻辑器件,整机功耗小、抗干扰能力强

温馨提示

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

评论

0/150

提交评论