1、 SOPC/EDA 综合课程设计报告 设计题目:出租车计费系统设计出租车计费系统设计 设计者: 学号: 班级: 指导老师 时间 : 1 目目 录录 摘要 . 2 Abstract . 1 第一章 引言 2 1.1 课题背景 2 1.2 本文的主要工作 2 第二章 FPGA、VHDL 介绍 4 2.1 FPGA 现状及发展 . 4 2.2 FPGA 的结构与特点 . 4 2.2.1 FPGA 基本结构 5 2.2.2 FPGA 的特点 6 2.3 VHDL 设计优点 . 6 第三章 出租车计费器的设计 7 3.1 出租车计费器的总体设计 7 3.1.1 出租车计费标准 . 7 3.1.2 总体框
2、架设计 7 3.2 出租车计费器主要模块设计 8 3.2.1 速度模块 9 3.2.2 计程模块 9 3.2.3 计时模块 . 10 3.2.4 计费模块 5 第四章 整体电路设计 6 4.1 整体电路图 6 4.2 电源电路 7 4.3 启动/停止按键电路 . 7 4.4 自动清零部分 8 第五章 系统仿真与下载实现 8 5.1 Quartus软件介绍 . 9 5.1.1 软件特点 . 9 5.1.2 Quartus设计流程: . 9 5.2 仿真结果 . 10 5.2.1整体仿真 10 5.2.2 速度模块仿真 10 5.2.3 计程模块仿真 11 5.2.4 计时模块仿真 11 5.2.
3、5 计费模块仿真 . 12 5.3 设计测试 . 12 第六章 总结及展望 . 13 致谢 19 主要参考文献 19 2 基于 FPGA 的出租车计费器设计 摘要:随着 EDA 技术的高速发展,电子系统的设计技术和工具发生了深刻的变化,大规模可编 程逻辑器件 CPLD/FPGA 的出现,给设计人员带来了很多方便。利用它进行产品开发,可以降低研发 成本,缩短研发周期。本文介绍了一种采用 FPGA 芯片进行出租车计费器的设计方法,描述了研究该 课题的意义和应用价值;说明了 Altera 公司的 FPGA 结构原理及其主要运用;介绍了超高速集成电 路硬件描述语言的主要功能和设计; 讲解了出租车计费器
4、的系统原理和功能。 本文主要采用了Altera 公司的可编程逻辑芯片 EPC2C35F672C8 为核心控制,并附加一定外围电路组成出租车计费器,使用 目前流行的 VHDL 语言进行设计, 具有移植性强的特点, 便于升级及可重复使用。 利用 Quartus6.0 对所设计的出租车计费器的 VHDL 代码进行仿真,并在 FPGA 数字实验系统上实现了该控制。 关键字: FPGA, VHDL, Quartus, 出租车计费器 出租车计费器的设计 1 出租车计费器的总体设计 1.1 出租车计费标准 车起步开始计费,首先显示起步价,起步费为 3.00 元,车在行驶 3km 以内,只收 起步价。车行驶超
5、过 3km 后,每公里 2 元,车费依次累加。当总费用达到或超过 40 元 时,每公里收费 4 元。当遇到红灯或客户需要停车等待时,则按时间计费,计费单价为 每 20 秒收费 1 元。 1.2 总体框架设计 3 系统流程介绍:分析系统设计要求不难得知,整个出租车计费系统按功能主要分为 速度模块、计程模块、计时模块和计费模块,其系统结构图如图 3-1 所示。 图 3-1 出租车计费器系统结构图 系统接收到 reset 信号后, 总费用变为 3 元, 同时其他计数器、 寄存器等全部清零。 系统接收到 start 信号后,首先把部分寄存器赋值,总费用不变,单价 price 寄存 器通过对总费用的判断
6、后赋为 2 元。其他寄存器和计数器等继续保持为 0。 速度模块:通过对速度信号 sp 的判断,决定变量 kinside 的值。Kinside 即是行进 100m 所需要的时钟周期数,然后每行进 100m,则产生一个脉冲 clkout。 计程模块:由于一个 clkout 信号代表行进 100m,故通过对 clkout 计数,可以获得 共行进的距离 kmcount。 计时模块: 在汽车启动后, 当遇到顾客等人或红灯时, 出租车采用计时收费的方式。 通过对速度信号 sp 的判断决定是否开始记录时间。当 sp=0 时,开始记录时间。当时间 达到足够长时产生 timecount 脉冲,并重新计时。一个 timecount 脉冲相当于等待的时 间达到了时间计费的长度。这里选择系统时钟频率为 500Hz,20s 即计数值为 1000。 计费模块由两个进程组成。其中,一个进程根据条件对 enable 和 price 赋值:当 记录的距离达到 3 公里后 enable 变为 1, 开始进行每公里收费, 当总费用大于 40 元后, 则单价 price 由原来的 2