基于CPLD/FPGA的出租车计费器系统的设计实现
1 引言
随着EDA技术的发展及大规模可编程逻辑器件CPLD/FPGA的出现,电子系统的设计技术和工具发生了巨大的变化,通过EDA技术对CPLD/FP-GA编程开发产品,不仅成本低、周期短、可靠性高,而且可随时在系统中修改其逻辑功能。本文介绍了一种以Altera公司可编程逻辑器件EP1K30TC144-3为控制核心,附加一定外围电路组成的出租车计费器系统。
2 系统总体结构
基于CPLD的出租车计费器的组成如图1所示。各部分主要功能包括:信号输入模块对车轮传感器传送的脉冲信号进行计数(每转一圈送一个脉冲),并以高低脉冲模拟出租汽车启动、停止、暂停、加速按钮,具有输入信号作用;数据转换模块将计费模块输出的车费和路程转换成4位的十进制数据;译码/动态扫描模块将路程与费用的数值译码后用动态扫描的方式驱动数码管;数码管显示模块将公里数和计费金额均用4位LED数码管显示(2位整数,2位小数)。

3 单元模块设计
3.1 信号输入模块
该模块主要实现计费功能和现场模拟功能。计费标准为:对车轮传感器传送的脉冲信号进行计数(每转一圈传送一个脉冲),按行驶里程计费,起步价为7.00元,并在车行3 km后按2.40元/km计费,当计费器达到或超过20元时,每公里加收50%的车费,车停止不计费。并以高低脉冲模拟出租汽车启动、停止、暂停、加速按钮,具有输入信号的作用。
该模块的时序仿真图如图2所示。图中的stop下降沿到来时系统不计费,车费为“0”,路程为“0”,起步价为7.00元,在车行3 km(图中300为3 km。因为后面有2位小数)后按2.40元/km计费,当计费器达到或超过20元时,每公里加收50%(即按3.60元/km)的车费。

3.2 数据转换模块
数据转换模块是一个模为10、步长可变的加法计数器,可将计费模块输出的车费和路程转换成4位的十进制数。该模块通过开关量预置步长,当超过一定预置参数时改变步长。计费模块也采用非压缩BCD码,但因步长不为1,所以在做非压缩BCD加法时必须调整,否则可能导致在超过或未超过预置参数时出现超程错误。这里采用模仿微机的AF标志位,在其设立一个半进位标志,当累加和大于9或半进位标志为“1”时,对其累加和调整。转换模块的时序仿真图如图3所示,可见能将路程和车费转换为4位的十进制数,便于8位数码管显示。
本文为授权转载文章,任何人未经原授权方同意,不得复制、转载、摘编等任何方式进行使用,e-works不承担由此而产生的任何法律责任! 如有异议请及时告之,以便进行及时处理。联系方式:editor@e-works.net.cn tel:027-87592219/20/21。
- 上一篇文章:基于FPGA的发电机组频率测量计的实现
- 下一篇文章:EDA工具最好理念:端到端流程优化
- 文章评论:谈ASIC、FPGA/CPLD的区别与发展
- [推荐]ARM及嵌入式linux培训视频+dsp CPLD FPGA开发视频+嵌入式系统开发实用技术视频
- [推荐]ARM及嵌入式linux培训视频+dsp CPLD FPGA开发视频+嵌入式系统开发实用技术视频
- [推荐]ARM及嵌入式linux培训视频+dsp CPLD FPGA开发视频+嵌入式系统开发实用技术视频
- [推荐]ARM及嵌入式linux培训视频+dsp CPLD FPGA开发视频+嵌入式系统开发实用技术视频
- [推荐]ARM及嵌入式linux培训视频+dsp CPLD FPGA开发视频+嵌入式系统开发实用技术视频
- [注意]ARM及嵌入式linux培训视频+dsp CPLD FPGA开发视频+嵌入式系统开发实用技术视频
- 恩菲特科技基于FPGA实现MIL-STD-1553B协议并批量国产化
