基于fpga的出租车计价系统设计毕业论文(编辑修改稿)内容摘要:
别计费。 ( 1)从设计目的来看,经过研究和实际情况考虑,觉得还是第一种方案的 设计目的比较符合实际情况,且对乘客和司机都相对公平。 因此决定采用方案一的设计目的,时钟脉冲 分频器 控制器 等待脉冲 公里脉冲 计费 /复位 显 示 计 费 计 时 8 来作为设计目标。 ( 2)从设计正确性和实现可能性出发,我发现要想用 VHDL 语言来设计一定的函数关系,来达到目的,比较困难,并且在编程时我也陷入了困难之中。 此外,在以前实验课的基础上,我对分频器的设计和应用已经比较熟悉,所以决定利用自己所学来解决问题,故决定放弃方案二,选择方案一的设计思路。 9 4 相关原理图及设计文件 分频模块 分频 模块是对系统时钟频率进行分频,如图 41,得到 co 端输出 420HZ 频率的脉冲 ;然后再通过图 42 的模块对 420HZ 频率的脉冲进行分频,分别得到 15HZ、 28HZ、1HZ 三种频率,本设计中通过 15HZ、 28HZ、 1HZ 三种不同频率的脉冲信号实现在计程车在行驶、等待两种情况下的不同计费;具体原理图如图 43。 clk 为输入信号,分频后得到输出信号 clk28, clk15, clk1。 图 41 420HZ的分频模块 图 42 15HZ、 28HZ、 1HZ三种不同频率的分频模块 图 43 分频模块总电路 图 图 44 功能级仿真结果 由 图 44 可见,分频出的 2 1 1HZ 的时钟脉冲是正确的。 clk_28 表示实现 28 次计数,系统时钟周期为 1/420s 及 28 次计数所需要的时间为28*( 1/420) s 则对应频率为 420/28=15HZ。 10 clk_15 表示实现 15 次计数,系统时钟周期为 1/420s 及 15 次计数所需要的时间为15*( 1/420) s 则对应频率为 420/15=28HZ。 计量模块 本模块实现对于出租车在行驶和等待过程中的计时和计程功能。 如图 45。 计时部分:计算乘客 的等待累积时间,当等待时间大于 2min 时,本模块中 en1 使能信号变为 1;当 clk1 每来一个上升沿,计时器就自增 1,计时器的量程为 59min,满量程后自动归零。 计程部分:计算乘客所行驶的公里数,当行驶里程大于 3km 时,本模块中 en0 使能信号变为 1;当 clk1 每来一个上升沿,计程器就自增 1,计程器的量程为 99km,满量程后自动归零。 如图 46。 图 45 计量模块电路图 图 46 计量模块的仿真电路图 图 47 功能级仿真结果 由图 47 可见,等待时间小于 2min 时,本模块中输出信 号 en1 保持为 0; clk50M和 start 都是输入,取 start 为 1,表示中间没有停,一直在走,所以输出信号 en0 为 1,即表示计路程,这里取的是一种极端做法,不考虑等待时间。 11 控制模块 本模块主要是通过两个不同的输入使能信号 ent0, ent1,对两个输入脉冲 clk_in1,clk_in2 进行选择输出, 即实现选择器功能 ;使能信号是计量模块中的输出,两个输入脉冲是分频模块输出的 28HZ、 15HZ 的脉冲;本模块实现了双脉冲的二选一。 如图 48及图 49。 图 48控制模块的原理电路图 图 49 控制模块仿真原理图 图 410 功能级仿真结果 结合图 49 和图 410 可以看出,当 ent0 为高电平时,输出为 out 即这一时段的 clk_in1( clk_28);当 ent1 为高电平时,输出为 out 即这一时段的 clk_in2( clk_15)。 【时间超过输出 out( clk_in1),由 clk_28 控制, 420/28=15 相当于计费模块加了 15 个一角;路程超过输出 out( clk_in2),由 clk_15 控制, 420/15=28 相当于计费模块加了 28 个一角,计 元。 】 计费模块 本模块根 据输入的 clk2 信号变化,调节费用的计数, c0、 c c c3 表示费用输出部分的角、元、十元、百元的输出。 如图 411 及图 412。 12 图 411 计费模块的元件原理图 图 412 计费模块的仿真电路图 图 413 功能级仿真结果 由图 413 中可以看出, c3c2c1c0 的初始值为 0080,即 起步价为 8 元。 随着 clk 的高电平的到来, c c c c0 逐级进行加法计数,当 c0 计数到九时,产生进位, c1加一;当 c1 计数到九时,产生进位, c2 加一;当 c2 计数到九时,产生进位, c3 加一。 数码模块 数码模块由模八计数器模块如图 41片选模块如图 415 和数码显示模块如图 416组成。 本次设计采用的是共阴数码管来作为实验的显示模块,低电平有效,而且是利用动态显示的过程。 数码管显示模块的功能是用来显示输入的行驶里程和总计费用。 为了使七段数码管能够显示出所要表示的数值,需要采用译码器将所要表示的数值译码成数码管所需要的驱动信号。 原理图如图 418所示。 图 414 模八计数器模块元件原理图 13 图 415 片选模块理图 图 416数码显示模块元件原理图 图 417 测试 写入固定值模块 图 418 数码模块测试仿真电路图 14 图 419 功能级仿真结果 由图 419 可见,随着 clk 上升沿的到来, qt 就会 加 1, scan, seg 也会随着 qt输入的值相应变化,即在车行驶过程中,根据所行驶的路程 ,所得的费用,经过译码分别在相应的数码管上显示相应的数值。 以第一个周期为例: 当 qt 为 0 时, scan 输出为 7F, 即点亮左起第一个数码管, seg 输出为 70, 即该数码管 上显示 7;随着 clk 第一个上升沿的到来, qt 变为 1, scan 输出为 BF, 即点亮左起第二个数码管, seg 输 出为5F, 即该数码管 上显示 6;随着 clk 第二个上升沿的到来, qt 变为 2, scan 输出为 DF,即点亮左起第三个数码管, seg 输出为 5B,即该数码管上显示 5;随着 clk 第四个上升沿的到来, qt 变为 3, scan 输出为 EF,即点亮左起第三个数码管, seg 输出为 33,即该数码管上显示 4;随着 clk 第五个上升沿的到来, qt 变为 4, scan 输出为 F7,即点亮左起第二个数码管, seg 输出为 30,即该数码管上显示 1;随着 clk 第六个上升沿的到来, qt 变为 5, scan 输出为 FB,即点亮左起第六个数码管, seg 输 出为 7E,即该数码管上显示 0;随着 clk 第七个上升沿的到来, qt 变为 6, scan 输出为 FD,即点亮左起第七个数码管, seg 输出为 79,即该数码管上显示 3;随着 clk 第八个上升沿的到来, qt 变为 7, scan 输出为 FE,即点亮左起第八个数码管, seg 输出为 6D,即该数码管上显示 2。 15 5 总体仿真 在 QuartusII 中基本完成所有底层设计文件的编辑后,就开始编辑设计顶层设计文件。 上面的源程序产生了对应的模块框图,将上述各个模块框图组合成顶层原理图 51: 图 51 顶层原理图 图 52 3KM以内的仿真结果 图 53 3KM以外的仿真结果 对顶层原理图仿真得到图 52,图 53, 分析图 52 可知 : 位选 scan: 7F——对应数码管段码 seg: 7E,说明数码管上显示 0;即 fei0 是 0; 位选 scan: BF——对应数码管段码 seg: 7F,说明数码管上显示 8;即 fei1 是 8; 位选 scan: DF、 EF、 F FB、 FD、 FE——对应数码管段码 seg: 7E,说明数码管上显示 0;即 fei2 是 0; fei3 是 0; t0、 t mile0、 mile1 都是 0,这 便可得到起步价 8元。 图中 scan 从 7F 到下一个 7F 之间是一段, 7F、 BF、 DF、 EF、 F FB、 FD、 FE分别是选中从左到右依次 8 片数码管来分别显示 fei0, fei1, fei2, fei3, t0, t1, mile0,mile1, scan 垂直对应下面一行 seg,再根据 seg 段码来判断显示的是 0—9 里的哪个数。 (具体对照表见附录一) 由此可见,出租车计费器可以实现预计目标: ( 1)起价为 元,当里程小于 3km 时,按起步价费用 8 元计算;(如图 52) ( 2)当里程大于 3km 时每公里按 元计算;等待累计时间超过 2 分钟,按每分钟 元计费。 只是上面仿真等待( stop)时间设置较短,所以计费中没有对等待时间 16 的计费。 图 53 所示,当行驶了 11 公里时,费用 =8+( 113) *=,与图示的 元基本一致(存在一定的误差)。 17 6 设计总结 设计结果 本设计采用硬件描述语言按自顶向下的方法,将一个大的系统分成几个相对独立的模块分别设计,仿真,最后再整体仿真。 实现了出租车计费器的一般功能,如计里程,计费,以及费用,时间和里程的显示功能 ,基本上达到了这次毕业设计的基本要求。 根据论文的要求进行设计工作,具体实现了如下功能: ( 1)里程的计算,通过传感器测出轮子是否有运动,如果在一定的时间内运动了,则记录轮子的转圈数,从而自动计算出轮子转动的圈数的长度,由此计算出出租车行驶的距离。 ( 2)费用的计算,出租车起价为 元,当里程小于 3km 时,按起价费用计算;当里程大于 3km 时每公里按 元计算;等待累计时间超过 2 分钟,按每分钟 元计费; ( 3)里程,即汽车行驶里程,用两位数字显示,显示方式为 “XX”,单位为 km。 等候时间,用两位数字显 示,显示方式为 “XX”。 费用 =8+(里程 3) *+(等候时间 2)*,单位:元;费用显示用四位数字显示,显示方式为 “”,单价为元。 不足之处 没有实现对等候时间(定义是当汽车行驶速度小于或等于 12km/h 时为 “等候 ”)控制。 18 致谢 时光转眼即逝,为期一个学期的毕业论文也已接近尾声,我四年的大学生活也即将画上一个句号。 回想这段求学路,时而喜悦,时而惆怅。 在美丽的校园里,原本天真幼稚的我如今已蜕变成一个睿智、沉稳的青年,感谢命运的安排,让我 有幸结识了许多良师益友。 “饮其流时思其源,成吾学时念吾师 ”。 至此论文完成之际,谨向我尊敬的指导老师倪小琦致以诚挚的谢意和崇高的敬意。 从选题、定题、撰写开题报告,到论文至今的初步定稿,倪老师始终认真负责,督促指导,使我能够按时完成任务。 倪老师给予我充分的时间支配权利,让我有充足的时间处理好工作和毕业设计的双重任务。 再加上通过网络查询资料,我对出租车计费系统的研究有了深入的了解,不仅丰富了自己的专业知识,更重要的是大大提高了利用已有的知识分析、解决问题的能力,培养了对待科学研究的正确态度,这些都是走向社会的宝 贵财富。 其次要感谢我的班主任韩婷婷老师和大学四年给我们授课的所有老师,是他们的悉心教导和精心栽培,让我掌握了。基于fpga的出租车计价系统设计毕业论文(编辑修改稿)
相关推荐
时钟综合,还具有降 低抖动和实现过滤功能。 嵌入式块 RAM( BRAM)。 大多数 FPGA 都具有内嵌的块 RAM,这大大拓展了 FPGA的应用范围和灵活性。 BRAM 可被配置为单端口 RAM、双端口 RAM、内容地址存储器 ( CAM)以及 FIFO 等常用存储结构。 CAM 存储器在其内部的每个存储单元中都有一个比较逻辑,写入 CAM 中的数据会和内部的每一个数据进行比较
juchibo。 ARCHITECTURE SYN OF juchibo IS SIGNAL sub_wire0 : STD_LOGIC_VECTOR (9 DOWNTO 0)。 COMPONENT altsyncram GENERIC ( clock_enable_input_a : STRING。 clock_enable_output_a : STRING。 init_file :
1Y1181Y2161Y3141Y4122Y192Y272Y352Y431G12G19VCC20GND10U374HC244DRnCEnCSEPM_JTAG_TDOEPM_JTAG_TDIEPM_JTAG_TCKEPM_JTAG_TMSEPM_DATAOUTEPM_nCEEPM_nCSEPM_JTAG_TCKEPM_JTAG_TDOEPM_JTAG_TMSEPM_DATAOUTEPM_JTAG_T
是稳定性好,抗干扰能力强,非常适合作为计程车的计价器系统的控制核心。 方案的确定 从以上两种方案的比较 可以看出基于 FPGA 的设计方案要优于基于单片机的设计方案基于 FPGA 的设计 方案稳定性更强且相对于单 片机的设计方案来说它更易于将来进行功能扩展。 因此 我确定采用基于 FPGA 的出租车计费器 的设计方案。 基于 FPGA 的出租车计费系统设计 14 5 出租车计费系统的设计
电源电平转换芯片 ,使用 +5v 单电源供电。 40M时钟信号 EP1C12引脚 40MHZ J3 总结 第 11 页 (共 37 页) 图 7 MAX232 芯片 引脚介绍 第一部分是电荷泵电路。 由 6 脚和 4 只电容构成。 功能是产生 +12v 和 12v 两个电源,提供给 RS232 串口电平的需要。 第二部分是数据转换通道。 由 1 1 1 14 脚构成两个数据通道。 其中 13
,UB,UC分别加在三相绕组上。 可以定义三个定子电压空间矢量 Ua, Ub,Uc使它们的方向始终 位 于各相绕组的轴线上,而 其幅值则随时间按正弦规律脉动,时间相位 相互 错开的角度也是 2π /3。 与电机原理中三相脉动磁动势相加后产生旋转磁动势相仿, 就 可以证明,三相定子电压空间矢量相加的合成 得 空间矢 量 uref是一个旋转的空间矢量,它的幅值不变, 其幅值 是每相电压值的 3/2倍