出租车计费系统论文_第1页
出租车计费系统论文_第2页
出租车计费系统论文_第3页
出租车计费系统论文_第4页
出租车计费系统论文_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、湖南人文科技学院课程设计报告课程名称:ISP 课 程 设 计计出租车计费器教研室主任田汉平别:通信与控制工程系业:电子信息工程级:05级电信本一班学生姓名:袁楚仁学 号:0540911705409133起止日期:2007.12.242008. 01.04指导教师:田汉平钟明生指导教师评语:项目权重成绩1、设计过程中出勤、学习态度等方面0.22、课程设计质量与答辩0.53、设计报告书写及图纸规范程度0.3总成绩指导教师签名:日年 月教研室审核意见:教研室主任签字:教学院(系)审核意见:主任签字:、八前言随着我国市场经济的发展,交通也越来越便利,特别是出租车,以快捷、方便的特点早已盛行各个城市,成

2、为城市交通的重要工具。出租车市场从 90年代初的起步阶段到现在已经进入了高峰期。 随着城 市化水平的提高和人民生活水平的改善,出租车的服务也就显得越来 越重要。因此出租车计费器也就应运而生了。本设计就是针对目前出租车计费器的问题设计的一种基于可编程逻辑器件FPGA的ASIC,并 基于超高速硬件描述语言 VHDL在Altera公司的quartusH系列的EP1C6Q240C8芯片上编程实现了整个系统的控制部分, 整个自动控制系统 由四个模块构成:信号输入模块、计量模块、数制转换模块和译码显 示模块。并用超高速硬件描述语言 VHDL 编程实现的可同时显示金额、 乘车总路程的 “多功能 ”计费器。有

3、较好的实用价值和较高的可行性。、整体方案设计1、设计要求 2、设计方案比较 3、基本设计思想 4、系统总体结构二、详细设计1、信号输入模块的设计 2、计量模块设计 3、数制转换模块的设计 4、译码显示模块的设计 5、原理图的设计 6、系统综合、仿真、下载 7、硬件调试 8、设计中遇到的问题与解决办法 9、设计总结三、心得体会四、参考文献10.1.1.附录一:计数器 A 的源程序附录二:计数器 B 的源程序附录三:里程数据查找表的 VHDL 程序12附录四:车费数据查找表的 VHDL 程序14出租车计费器摘要:本设计是针对目前出租车计费器的问题设计的一种基于可编程逻辑器件FPGA的ASIC ,并

4、基于超高速硬件描述语言 VHDL在Altera公司的quartusU系列的EP1C6Q240C8芯片上编程实现了整个系统的控制部分,整个自动控制系统由四 个模块构成:信号输入模块、计量模块、数制转换模块和译码显示模块。并用超 高速硬件描述语言 VHDL 编程实现的可同时显示金额、乘车总路程的 “多功能 ”计 费器。有较好的实用价值和较高的可行性。关键字:可编程逻辑器件 超高速硬件描述语言 计费 计程、整体方案设计1、设计要求1)车起步开始计费。首先显示起步价(本次设计起步费为 3.00元) ,车在行驶 1.5km 以内,只收起步价 3.00 元。(2)车行驶超过1.5 km后,按每0.5公里1

5、元计费(在3.00元基础上每行驶 0.5 km 车费加 1 元) ,车费依次累加。3)车暂时停止(行驶中遇红灯或中途暂时停车)不计费,车费保持不变。若停止则车费清零,等待下一次计费的开始。设计的主要技术指标如下:a、计价范围:099元计价分辨率: 1 元b计程范围:099里计程分辨率: 1 里2、设计方案比较方案一:用单片机实现:通过软件编程,仿真,调试,符合要求后将程序用 编程器写入到单片机芯片上。利用单片机的中断响应乘客开车或者等待的请求, 进行相应的处理。利用寄存器存放计价器系统运行状态,从而可以根据整个行程 的状态进行计价。根据分析可画出如图 1 所示的方框图:16电源模块VAV通信模

6、块方案一方框图方案二:用FPGA (可编程门阵列)实现:利用硬件描述语言编程,仿真调试后下载到可编程逻辑器件(CP LD)上实现。可以对计程车整个过程进行判断、处理,整个过程完全实现了自动化和智能化。根据分析可画出如图2所示的方框图:比较而言,方案一的开发及制作成本较低,能较大程度地利用资源,但外围电路较多,调试复杂,抗干扰能力差,特别对这种计程车的计价器需要长时间不间断运作的系统,由于主要是软件运作,容易出错,造成系图2方案二顶层框图统不稳定。方案二将所有器件集成在一块芯片上,体积大大减小的同时还提高了 稳定性,并且可应用 EDA 软件仿真,调试,易于进行功能扩展,外围电路较少, 采用硬件逻

7、辑电路实现,其最大的优点是稳定性好,抗干扰能力强,非常适合作 为计程车的计价器系统的控制核心。 基于对以上各个因素的考虑, 我们觉得 FPGA 实现计程车的计价器的设计更设计的要求,提升设计的可行性。因此,决定选用 以 FPGA 为核心,用 VHDL 编程来实现计价器的设计。3、基本设计思想(1)根据出租车计费要求,将出租车计程部分由 2 个计数器来完成分别为计数器A,计数器B。计数器A完成模拟实现车行驶500 m的功能并在达到500米(0.5公里)时输出高脉冲。计数器 B完成路程的记录,并将记录的数据送入 查找表的地址输入端。2)车费的显示:由查找表来完成,定制两个查找表,将十六进制的路程与

8、车费数据转换成十进制数据送入译码器,完成数据的输入即动态数据的显示。4、系统总体结构基于 CPLD 的出租车计费器的各部分主要功能包括:信号输入模块对车轮传 感器传送的脉冲信号进行计数 (每转一圈送一个脉冲 ),并以高低脉冲模拟出租汽车启动、暂停、停止,具有输入信号作用;查找表模块使公里数和计费金额从十六进制转换成十进制;数码管显示模块将公里数和计费金额均用2位 LED 数码管显 示(2 位整数 )。、详细设计1、信号输入模块的设计该模块主要实现现场模拟功能:车轮每转一圈传送一个脉冲,并以高低脉冲模拟出租汽车启动、停止、暂停按钮,具有输入信号的作用。在这里我们以时钟300频率模拟出租车的转速。

9、由于考虑演示时间的因素,我们选用256hz的时钟频率,这样人眼能够清楚的看到变化,演示时间也不长。通过计算,我们以车轮转 圈为 0.5 公里。2、计量模块设计计量模块主要由两个计数器组成, 计数器 A 完成出租车行走 0.5 公里时输出脉 冲信号的功能,它是一个 300 进制的计数器,当计数达到 300 时输出脉冲信号;计数器B完成记录里程并输出的功能,它是=Oht1O个100进制的计数器,当计数达到100是重新从0开始计数。计数器A和计数器B的源程序,模块图en以及时序仿真图如下:(1)计数器A的源程序见附录一。图3计数器A的模块图(2)计数器A的模块图如图3所示:(3)计数器A的时序仿真图

10、如图4所示:11 7ntJJPoinlerB3.TESt罕 HI悶 T1535. .3 Tixelk4 b.LjmiujiRnminjuuiminjmfuimmmuTOWiwirmuuLTJumnjimjmRjmmLTOnmmmmmmRjma图4计数器A的时序仿真图计数器B的源程序见附录二。(5)计数器B的模块图如图5所示:iirsl coutlIIOG.DJiJ,IIZ IRJI =!;ent IDOinfte(6)计数器B的时序仿真图如图6所示:图5计数器B的模块图K-Ui4Val-u* l1A. Bd -as14. Yb US14.宰 HI!lb. Ltd ILLlb. lb usC-d

11、LLt.B 芮-卫找表,它是根据要求设计的与里程对应的,即里程每增加0.5公里车费增加一图6计数器B的时序仿真图3、数制转换模块的设计由于数码管显示的数据都是以十六进制显示的,但是我们人习惯的是用十进制来 显示,因此必须进行数制转换。由于这次设计要求的数据不是很大,因此我们用 查找表来进行十进制数据的显示,我们定制了两个查找表,一个是里程数据查找;一个是车费数据查表,它负责将里程数据转换成十进制的数据并输出给译码管,元,它同时也将十六进制的车费转换成十进制的数据输出给译码管。下面是设计的两个查找表及通过它们转换成的VHDL程序、模块图:(1)里程数据查找表图如图7所示:(2)里程数据查找表的

12、VHDL程序见附录三。(3)里程数据查找表的模块图如图8所AddrLl叫+3 I疝1*丁 100也0102040506070300091012131415101E17132021222318242525曲2S3031203233343637363923404142444546474643505253545530565759eo61S2634064356S686370714373737476777S79500031039465960758QG3990923394953693示:里程数据查找表图车费数据查找表图如图9所示:i datsiaddress 6.0J叩1irtdocki inst4图8里

13、程数据查找表的模块(5)车费数据查找表的VHDL程序见附录四。Addr I 十0 J 十1 I 十7 I00 fer*|o3 03101826344250536674829093080803101617182425203233204041304S49385657406465487273503031500S096096|97祷I+4列叫+7030405050711121314151920212223272S2930313536373339434445454751525354555960S1626367eeS97071757677737963S4358567919293949599图9车费数据查找

14、表(6)车费数据查找表的模块图如图10所示:4、译码显示模块的设计译码显示模块是由七段LED数码管译码和显示两部分组成。采用的是共阳极七段数码管,这里的译码显示|incbekinstf模块包括四个译码器和四个七段显示数码管。用于显示需要的信息。它将查找表输出到该模块中的里程和图10车费数据查找车费数据分别用两个数码管显示出来。数码管控制及表的模块图译码显示模块将十进制的输入信号用七段数码管显示,由七段发光二极管组成数码显示器,利用字段的不同组合。可分别显示09十个数字。本设计中,要求输出的段信号为高电平有效。5、原理图的设计上面详细介绍了各个模块的设计及其功能,下面将各模块按其功能和逻辑连接起

15、来,得到如图11所示的总的系统原理图如下:Valinr-_11 n: Il 皿 MB Iplit*.If DV DE Ji;3JCKT3!iXX!l!ryTryirYiyyyiTrYyyr)cr3;X5r!)C3rx图11系统原理图6、系统综合、仿真、下载在Quartusll软件中以系统原理图为顶层文件建立工程,将各文件添加到工程中,选择目标芯片EP1C6Q240C8,然后进行系统综合编译,编译通过后就可以进 行系统仿真了。仿真是EDA技术的重要组成部分,也是对设计的电路进行功能和性能测试的有效手段。EDA工具提供了强大且与电路实时行为相吻合的精确硬件系统测试工 具。这里利用Quartusll

16、软件来进行仿真。在建立了波形文件、输入信号节点、波 形参数、加输入信号激励电平并存盘之后, 选择主菜单tool”中的仿真器项startSimulator”,完成之后就可以看到时序波形。图12为总电路的时序仿真图。ief TineBai: | II.JTSni*| |阳购264.26nslnla询2?Z31 ntStan:Endps m.腑 UH dD.Sfig E1 44 ns SI. 92 us LQ2 4 x 122. Be us J4S.3& a: 13.34 ui L3 32 ns 204 S g FIII1IIIi!图12总电路的时序仿真图仿真通过后就可以进行硬件测试了,在进行硬件测

17、试之前必须锁定个模块的引脚,将各输入输出端口与硬件连接端一一对应起来,锁定的引脚如图13所示。引脚锁定后再编译一次,若无错误则可以进行硬件下载了。Node NameDwectionLocationI/O BankVreF&DH1A dkInputPIN卫IBl N12 enInputPIN护23e lucheng7Outputp m i6a3B3 N04肆 lucheng6OutputP IN 1673B3 N05& lucheng5OutputPINJ663B3 N06 luchenglOutput3B3JIO7 luchsngEalOutpuEPIH_t64303JIO8lucheng2O

18、utputp3B3 N09& luchenglOutputP IN 1623B3 N010& lucheng0OutputP IN 1613B3 N011Q qian7OutputRNG1BIJJO12 qlan6Outputpm i9101JIO13 qian5OutputP IN 181Bl N014& qian4OutputP IN 171Bl N015& qian3OutputP IN 161Bl N016 qianOutpiftRN 151Bl JJO17 qlanlOutput1B1JIO16qian0OutputP m 131Bl N079色 rstInputPIN 2342B2

19、 N2图13引脚锁定图256hz的频本次设计的1为低电平7、硬件调试硬件下载成功后就可以进行硬件调试了,首先将时钟短路冒接在率上,根据锁定的引脚,键1控制启动、停止,键2起清零的作用。调试结果是当键1为高电平时数码管显示的值不断按规律变化,当键时数码管保持低电平以前的值不变,变为高电平是重新按规律变化;当键2为高电平时数码管显示的值全部变为零。通过调试,本次设计达到了预期的结果,实现了预期功能。8、设计中遇到的问题与解决办法本次设计总的来说是成功了,但操作过程中也遇到了不少问题,比如设计过程中我们不知道在一个进程中只允许一个信号上升沿作为触发条件,把两个时钟信号同时放在一个进程中,根本得不到想

20、要的结果,检查了很久也没找到原因,后面问过其他同学终于把它改正过来。还有关于显示的问题,由于要用十进制数显示,而如果直接显示的话数码管显示的是十六进制的数据,为了解决这个问题,我们首先想到的是用十进制的计数器来实现,但是由于车费是根据里程的变化而变化的,因此车费的记录也需要一个计数器来完成,而里程可以直接从第一个计数器输出,这样就会产生里程和车 费的变化不同步的结果,因此这种方法不可取,后面经过请教老师之后,我们采 用查找表来进行数据转换,从而得到了正确的结果。9、设计总结通过对系统的测试结果分析符合预期结果,满足题目要求。基于 FPGA 所设 计的出租车计费器趋于简单、开发时间短;整个控制系

21、统的所需元器件少、集成 度较高、所占的空间小且可靠性也很高。不仅仅实现了计程车计费的功能,它可以显示出租车累计走的总路程。应用于实际当中,比较有实用价值,可行性也较 高,是个不错的创意。此外,如果实现软、硬件的相互结合还可以实现很多功能 比如可以集成计算机网络、 IC 卡、语音报价、自动打印等新技术实现运营数据存 储管理和税费计算控制。实现计价器的计费显示、自动打印发票、语音报价等功 能一体化,有待进一步扩展。VHDL 硬件描述语言打破了硬件和软件设计人员之间互不干涉的界限,可以使用语言的形式来进行数字系统的硬件结构、行为的描述,直接设计数字电路硬 件系统。从本文描述的出租车计费系统可以看出,

22、通过编程、下载后,该芯片已 经具备了原来需要使用复杂的数字电路实现的功能;这样,使用语言描述的形式, 大大缩短了开发周期,减少了开发难度,并使得系统更加灵活、稳健。三、心得体会两周的 EDA 课程设计终于接近尾声,但是回想起设计过程中的点点滴滴,给我们的感受很深,开始一抽到出租车记费器这个课题的时候,我们不知道从何 下手,便想不劳而获,去网上查找现成的资料,但网上也没有完整的资料,这个时候我们才像无头疮蝇一样开始着急,接着一连几天都没什么进展,从网上下载来的程序错误百出,好不容易把错误排除,但仿真是又得不到理想的结果,不 是结果错误就是没反应,这个时候我们商量,与其看懂别人的程序还不如自己来

23、编写和设计,然后我们进行了讨论,分析了出租车的原理,画出系统方框图,并把课本上基础知识重新看了一遍,然后按照方框图一个一个的编写程序,进行时 序仿真,等没有错误并达到预期的结果后再进行另一个模块的设计,这样一步 步进行下去,终于功夫不负有心人,我们成功了。经过这次课程设计,我们深刻的体会到了不自信的可怕,一开始我们就不自信,把问题想得太复杂了,自己首先把自己吓倒了。我们相信这次课程设计过后, 我们遇到问题会注意首先冷静思考,弄清原理,不会再犯同样的错误。四、参考文献1潘松、黄继业 编著 .EDA 技术与 VHDL (第 2版) .清华大学出版社, 2007.2 康华光 主编 .电子技术基础数字

24、部分(第五版) .高等教育出版社, 2006.附录一:计数器 A 的源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt10 isport (clk,rst,en :in std_logic;cout1: out std_logic);end cnt10;architecture count of cnt10 is beginprocess (en,clk,rst)variable dis: std_logic_vector (8 downto 0);beginif rst

25、=1 then dis :=(others =0);elsif clkevent and clk=1 thenif en =1 thenif dis 300 then dis:=dis + 1;else dis:=000000000;end if;end if;end if;if dis =300 then cout1=1 ;else cout10);elsif cout1event and cout1=1 thenif lin 100 then lin:=lin + 1;else lin:=0000000;end if;end if;li = lin;end process;end coun

26、t;附录三:里程数据查找表的 VHDL 程序LIBRARY ieee;USE ieee.std_logic_1164.all;LIBRARY altera_mf;USE altera_mf.altera_mf_components.all;NTITY data1 ISPORTddress : IN STD_LOGIC_VECTOR (6 DOWNTO 0);inclock : IN STD_LOGIC ;: OUT STD_LOGIC_VECTOR (7 DOWNTO 0);END data1;SIGNAL sub_wire0ARCHITECTURE SYN OF data1 IS: STD_

27、LOGIC_VECTOR (7 DOWNTO 0);COMPONENT altsyncramGENERIC (intended_device_family: STRING;width_a: NATURAL;widthad_a: NATURAL;numwordsa : NATURAL;operation_mode: STRING;outdata_reg_a: STRING;address_aclr_a: STRING;outdata_aclr_a: STRING;width_byteena_a: NATURAL;init_file: STRING;lpm_hint: STRING;lpm_typ

28、e: STRING);BEGINPORT (clock0address_aq_a);: IN STD_LOGIC ;: IN STD_LOGIC_VECTOR (6 DOWNTO 0);: OUT STD_LOGIC_VECTOR (7 DOWNTO 0)END COMPONENT;q Cyclone, width_a = 8, widthad_a = 7, numwords_a = 100, operation_mode = ROM, outdata_reg_a = UNREGISTERED, address_aclr_a = NONE, outdata_aclr_a = NONE, wid

29、th_byteena_a = 1,init_file=E:/chuzuche/lucheng.mif,lpm_hint=ENABLE_RUNTIME_MOD=YES, INSTANCE_NAME=rom1,lpm_type = altsyncramPORT MAP (clock0 = inclock, address_a = address, q_a = sub_wire0)END SYN;附录四:车费数据查找表的 VHDL 程序LIBRARY ieee;USE ieee.std_logic_1164.all;LIBRARY altera_mf;USE altera_mf.altera_mf_components.all;ENTITY da

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论