出租车计费器的FPGA实现(含VHDL代码).docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
出租车计费器的FPGA实现(含VHDL代码)

可编程逻辑器件电路设计 课程设计报告 出租车计费器的FPGA实现 华南农业大学工程学院 摘 要 出租车计费系统利用VHDL语言,以MAX+PLUSⅡ软件作为开发平台而设计。系统包括五大模块——主控模块、分频模块、里程模块、计费模块和显示模块;预置和模拟汽车启动、停止、计费、暂停等功能,并动态扫描显示车费与里程。 关键词: 出租车计费系统 VHDL语言 MAX+PLUSⅡ FPGA 数字系统 目 录 1 方案比较与选择(须详细阐述创新点或新见解) 1 2 底层文件仿真与分析 4 2.1 底层文件仿真 4 2.2 底层文件分析 4 3 顶层文件仿真与分析 7 3.1 顶层文件仿真 7 3.2 顶层文件分析 7 4硬件验证分析 8 5课程设计心得 9 Abstract 10 参考文献 11 附录(源代码) 方案比较与选择 1.1方案一 图1图2出租车计费器方案一原理框图 1.1.1出租车计费器方案一原理 基于CPLD/FPGA的出租车的组成如图1所示。各部分主要的功能如下: (1)A计数器对车轮的传感器送来的脉冲信号进行计数(每转一圈送一个脉冲)。不同车型的车轮可能不一样,通过“设置1”对车型做出选择,以实现对不同车型直径的车进行调整。 (2)B计数器对百米脉冲进行累加,并输出实际的公里数的BCD码给出译码动态扫描模块。每计,满500送出一个脉冲给出C计数器。 “设置2”实现起步公里数预制。 (3)C计数器实现步长可变(即单价可调)的累加计数,每500米计费一次。“设置3”用来完成超价加费,起步价预制等。 (4)译码/动态扫描见路程与费用的数字译码后动态扫描的方式驱动数码管。(5)数码管显示将公里数和计费金额平均用四位数码管显示(三位整数,1为小数) 1.1.2出租车计费器方案一优点 根据车型的车轮直径来进行脉冲调整,因为实际车轮大小并非完全一致,需要根据实际大小而重新设置;起步价调整。起步价调整解决了由于地域的同步而导致起步价的不同,从而是出租车计费系统有更广和广阔的市场,同时也解决了由于起步价调整而更换计费系统的问题。 1.1.2出租车计费器方案一缺点 计费系统的精度不高,里程计费精度太低,在设计过程中设置车轮的直径过于复杂,不利于系统的完成。 1.2方案二 图2出租车计费器方案二原理框图 1.2.1出租车计费器方案二原理 基于FPGA设计的出租车计费器系统如图2所示,各模块功能如下: (1)分频模块:分频模块主要采用的是加法分频电路,该分频器为十分频电路,并且分频器带有“开始“/”“清零”端(ENABLE3为高电平是开始),将分频得CLK2用于里程计费模块的脉冲。 (2)车态模块:车态模块主要利用状态机原理。将出租车计费系统设置成四个状态,STATE=“00”实现的是清零操作;STATE=“01”是显示在行驶3km以内,只收起步价7.00元状态;STATE=“10”是车行驶超过3km后,按每公里2.2元计费;STATE=“11”行驶路程达到或超过9km后(车费达到20元),每公里加收50%的车费,车费变成按每公里3.3元开始计费。并把每一状态传输给计费模块。 (3)控制模块:控制模块属于整个出租车系统的顶层文件,负责这个系统,T_CLR是清零键,即归零显示;T_STO是暂停信号;T_ENABLE是使能信号,是启动键,T_ENABLE=’0’时启动计费器。 (4)里程模块:里程模块的一个基准时钟,实现加0.1公里,并将十进制数转化成四位BCD码,传输给显示电路显示。 (5)计费模块:计费模块接收来自车态模块的状态信号和分频电路的十分频脉冲作基准时钟。计费模块设置了四个状态,第一个状态保持属于清零状态,第二状态保持显示“007.0”,第三个状态实现一个脉冲加2.2,第四个状态是一个脉冲加3.3。将十进制的计费转化成BCD传输给显示模块。 (6)显示模块:显示模块是由七段LED数码译码和动态扫描两部分组成。采用的是共阴极数码管,根据十六进制数和七段显示段码表的对应关系,其中要求路程和车费毒药用一位小数点来表示,所以须要设置一个控制小数点的变量,即程序中的DP。这段程序所示的是在数码管的第二、六个数码管后面的显示小数点,实现了路程和车费都用1位小数点表示的功能,要主要的是选择的扫描频率不合适,可能会出现小数点闪动的情况。但只要扫描频率不少于24HZ,人眼就感觉不到数码管的闪烁。数码管控制及译码显示模块将BCD信号的输入用七段数码管显示,由七段发光二极管组成数码显示,利用字段的不同组合,可表示0-9十个数字。 1.2.2出租车计费器方案二优点 方案二继承了方案一优点,并有效的解决了方案一的精度低的缺点,并且在原件设计上容易实现。 1.2.2出租车计费器方案二缺点 系统的模块过多,不利于顶层文件的实现。 1

文档评论(0)

almm118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档