网站大量收购闲置独家精品文档,联系QQ:2885784924

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

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

PAGE

1-

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

一、1.系统需求分析

(1)出租车计费器作为出租车行业的重要组成部分,其功能需求直接关系到司机的收入和乘客的出行体验。系统需要满足基本的计费功能,包括起步价、里程费、时段费等计算。此外,计费器还应具备实时显示、数据存储、故障报警等功能,以确保计费过程的透明和准确。

(2)在设计出租车计费器时,需要考虑到系统的实时性、稳定性和可靠性。实时性要求计费器能够及时准确地计算费用,避免出现计费误差;稳定性则要求系统在长时间运行中不会出现故障,保证计费器的持续工作;可靠性方面,系统应具备良好的抗干扰能力,能够在各种环境下稳定运行。

(3)出租车计费器还应当具备用户友好的界面设计,包括清晰的显示屏、简单的操作方式等,以便司机和乘客都能轻松使用。同时,系统还需满足法规要求,如支持多币种支付、符合国家关于计费标准的规定等。此外,考虑到出租车计费器的广泛应用,系统还应具备一定的扩展性,以便在未来升级和改进时能够灵活适应新的需求。

二、2.系统总体设计

(1)系统总体设计方面,首先确定了出租车计费器的硬件架构。考虑到成本和功耗因素,选择了基于FPGA(现场可编程门阵列)的解决方案。该方案采用了一个FPGA芯片作为核心处理单元,结合LCD显示屏、按键输入、GPS模块、GPRS通信模块等外围设备。硬件设计遵循模块化原则,确保了系统的可扩展性和维护性。

(2)在软件设计方面,采用了层次化的设计方法。系统软件分为三个层次:应用层、中间层和硬件接口层。应用层负责实现计费算法、显示控制和用户交互等功能;中间层负责数据处理、通信管理等功能;硬件接口层负责与FPGA硬件模块进行交互。以某出租车公司为例,系统软件设计考虑了不同车型和计费规则的兼容性,确保了系统可以适配各种车型和地区政策。

(3)系统通信设计方面,采用了GPRS模块实现出租车与服务中心之间的数据传输。在数据传输过程中,采用TCP/IP协议进行封装,确保数据的完整性和可靠性。根据实际测试,系统在高速移动状态下,数据传输速率可达50KB/s,满足了出租车行业实时通信的需求。同时,为了保障系统安全性,在数据传输过程中,对数据进行加密处理,防止非法访问和窃取。

三、3.VHDL代码实现

(1)在VHDL代码实现方面,首先构建了一个基础的计费逻辑模块。该模块包含起步价、里程费、时段费等计费算法,能够根据输入的里程数、时间和车型自动计算费用。代码中使用了算术运算单元(ArithmeticUnit)来处理加法、乘法等运算,确保了计费精度。以一个具体案例,假设起步价为12元,每公里1.5元,夜间(22:00至次日5:00)每公里加收0.5元,则VHDL代码中对应的计费逻辑如下:

```vhdl

entityfare_calculatoris

Port(start_price:instd_logic_vector(8downto0);

per_km_price:instd_logic_vector(8downto0);

night_price:instd_logic_vector(8downto0);

distance:instd_logic_vector(16downto0);

time:instd_logic_vector(5downto0);

fare:outstd_logic_vector(32downto0);

is_night:instd_logic);

endfare_calculator;

architectureBehavioraloffare_calculatoris

signalkm_fare:std_logic_vector(32downto0);

signaltotal_fare:std_logic_vector(32downto0);

begin

process(start_price,per_km_price,night_price,distance,time,is_night)

begin

km_fare=std_logic_vector(to_unsigned(distance,32))*per_km_price;

ifis_night=1then

km_fare=km_fare+night_price;

endif;

total_fare=start_price+km_fare;

endprocess;

fare=total_fare;

endBehavioral;

```

(2)在VHDL代码中,还实现了一个LCD显示控制模块,用于将计算出的费用实时显示在出租车内的LCD屏幕上。该模块通过串行通信接口接收来自计费逻辑模块的数据,并转换为LCD可识别的格式。以一个实际应用为例,假设LCD屏幕分辨率

文档评论(0)

***** + 关注
文档贡献者

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

1亿VIP精品文档

相关文档