出租车自动计费系统2Word文档格式.doc
《出租车自动计费系统2Word文档格式.doc》由会员分享,可在线阅读,更多相关《出租车自动计费系统2Word文档格式.doc(18页珍藏版)》请在冰点文库上搜索。
![出租车自动计费系统2Word文档格式.doc](https://file1.bingdoc.com/fileroot1/2023-4/29/c8cef66a-e307-4bf8-bf66-e2c3bd02a22d/c8cef66a-e307-4bf8-bf66-e2c3bd02a22d1.gif)
而整个设计的核心部分就在分频/计量模块,该模块完成的功能主要包括计费脉冲的产生,等待计时、计价、计程功能。
随后运用QuartusⅡ中的仿真功能对其予以仿真,从仿真的结果中分析程序的正确性。
待所有模块的功能正确之后,运用原理图搭建顶层电路并进行整体仿真直至达到最初的设计要求,最后再在实验箱上检验设计的正确与否。
基于CPLD的出租车计费器的组成如下图所示。
各部分主要功能包括:
信号输入模块对车轮传感器传送的脉冲信号进行计数(每转一圈送一个脉冲),并以高低脉冲模拟出租汽车启动、停止、暂停、加速按钮,具有输入信号作用;
数据转换模块将计费模块输出的车费和路程转换成4位的十进制数据;
译码/动态扫描模块将路程与费用的数值译码后用动态扫描的方式驱动数码管;
数码管显示模块将公里数和计费金额均用4位LED数码管显示(2位整数,2位小数)。
2.设计框图
行车里程
等车时间
起步价
BCD码比例乘法器
比例(每转一圈送一个脉冲)。
不同车型的车轮直径可能不一样,通过“设置1”对车型做出选择,以实现对不同车轮直径的车进行调整。
(2)B计数器对百米脉冲进行累加,并输出实际公里数的BCD码给译码动态扫描模块。
每计满500送出一个脉冲给C计数器。
“设置2”实现起步公里数预制。
(3)C计数器实现步长可变(即单价可调)的累加计数,每500米计费一次。
“设置3”用来完成超价加费、起步价预制等。
(4)译码/动态扫描将路程与费用的数值译码后用动态扫描的方式驱动数码管。
(5)数码管显示将公里数和计费金额均用四位LED数码管显示(三位整数,1位小数)。
等车单价
里程单价
脉冲数求和
计数器
译码器
显示器
脉冲电路
出租车计费器框图
上电写入程序,后由RST(清零)信号置低电平开始。
分别控制计时和计程EN开始或停止计费。
计程和计费中每km或分钟发一次脉冲给计费模块。
这三个模块的数据处理信息通过总线输送到显示模块。
进行译码。
译码输出位选和七段数码管显示信息。
由外围电路:
74ls138和八位七段数码管显示。
前3位金额后四位为里程和计时。
中间一位为F,实际可以使用特殊的数码管显示元。
二、设计步骤和调试过程
1、总体设计电路
计程模块是2个100进制计数器,输入的每10米一次脉冲经一次100进制计数获得每km一次的脉冲,由100进制计数输出为2个4位2进制BCD码。
接显示模块,得到计程(0-99km)。
计时部分:
计算乘客的等待累计时间。
等候时间计费需将等候时间转换成脉冲个数,用每个脉冲表示的金额与脉冲数相乘即得计费数,例如100个脉冲表示10分钟,而10分钟收费0。
5元,则脉冲当量为0。
05元/脉冲,如果将脉冲当量设置成与行车里程计费相同(0。
01元/脉冲),则10分钟内的脉冲数应为500个。
计程部分:
计算乘客所行驶的公里数。
计程器的量程为99km,满量程后自动归零。
显示模块输入计费、计时,计程数据总线通过扫描脉冲选择一个BCD码进行译码,每扫描一次进行一位显示。
所以扫描脉冲适当取高一点。
考虑视觉暂留25帧乘8得200Hz以上为好。
实际实验中使用了5859Hz。
其他RST信号,每10米,1Hz,74ls38三位八线选择器,八位七段数码管由外围设备和电路提供。
2、模块设计和相应模块程序
2.1计数器原理:
通过分别设计计程计费计时模块完成各自功能。
2.2计程模块原理
使用4位十进制计数器封装成为8位一百进制计数器。
对于外部每10米的里程脉冲,经计数可以每km输出进位脉冲一次。
再用一百进制计数器对其进行计数。
通过对计数输出信号的译码可以得到里程显示。
2.3计时模块原理
使用1Hz的外部脉冲信号,使用5位60进制计数器。
可以得到每分钟一次的脉冲输出。
再使用一百进制计数器对其进行计数。
通过对计数输出信号的译码可以得到时间显示。
2.4计费模块原理
计费模块是设计中的关键模块,也是最难的模块。
逻辑复杂,要求多。
使用前两模块中的分钟信号作为时间输入,千米信号作为路程输入。
使用2个特殊编写的10进制计数器对时间和里程计数。
并且在里程计数设置ENT输出,在计费小于3元是钳制角金额输出为零。
但是角计费照常只是不显示。
在金额超过3元时显示。
再使用一十进制计数器进行十元计数。
2.5显示模块原理
通过使用74ls138和七段数码管进行显示和显示位选择。
这要求输出使用3位输出为位选,对其译码得到数码管地址,7位数据在相应数码管上显示相应的数据。
2.6综合
通过VHDL和原理图的混合设计完成对各模块的编写,连接。
时间.
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_ARITH.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYTAXIIS
PORT(CLK:
INSTD_LOGIC;
START:
STOP:
FIN:
CHA3,CHA2,CHA1,CHA0:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
KM1,KM0:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
MIN1,MIN0:
OUTSTD_LOGIC_VECTOR(3DOWNTO0));
ENDTAXI;
ARCHITECTUREBEHAVEOFTAXIIS
SIGNALQ_1:
INTEGERRANGE0TO99;
SIGNALW:
INTEGERRANGE0TO59;
SIGNALC3,C2,C1,C0:
STD_LOGIC_VECTOR(3DOWNTO0);
SIGNALK1,K0:
SIGNALM1:
SIGNALM0:
SIGNALTEMP0,TEMP1:
SIGNALF_1:
STD_LOGIC;
SIGNALEN0,EN1:
BEGIN
FEIPIN:
PROCESS(CLK,START)
BEGIN
IFCLK'
EVENTANDCLK='
1'
THEN
IFSTART='
0'
THEN
F_1<
='
;
Q_1<
=0;
ELSE
IFQ_1=99THEN
Q_1<
F_1<
ELSE
=Q_1+1;
ENDIF;
ENDIF;
ENDIF;
ENDPROCESS;
PROCESS(FIN)
BEGIN
IFFIN'
EVENTANDFIN='
IFSTART='
K1<
="
0000"
K0<
ELSIFSTOP='
IFK0="
1001"
K0<
IFK1="
K1<
ELSE
=K1+1;
ENDIF;
ELSE
K0<
=K0+1;
ENDIF;
ENDIF;
PROCESS(F_1)
BEGIN
IFF_1'
EVENTANDF_1='
IFSTART='
W<
M1<
M0<
IFW=59THEN
W<
IFM0="
M0<
IFM1="
0101"
M1<
M1<
=M1+1;
ENDIF;
M0<
=M0+1;
ELSE
W<
=W+1;
ENDIF;
PROCESS(CLK)
IFCLK'
IFSTART='
EN0<
EN1<
ELSIFSTOP='
EN0<
IFK1&
K0>
"
00000011"
EN0<
ELSE
ENDIF;
EN0<
IFM1&
M0>
00000010"
EN1<
ENDIF;
VARIABLEC13,C15:
INTEGER;
IFSTART='
C3<
C2<
C1<
C0<
C13:
C15:
TEMP0<
TEMP1<
ELSIFCLK'
IF(EN0='
)THEN
IF(C13<
13)THEN
C13:
=C13+1;
IF(C13=1)THEN
TEMP0<
=K0;
ENDIF;
IFC0="
C0<
IFC1<
C1<
IFC2<
C2<
IFC3="
C3<
ELSE
C3<
=C3+1;
ENDIF;
C2<
=C2+1;
C1<
=C1+1;
C0<
=C0+1;
ELSIF(K0/=TEMP0)THENC13:
ENDIF;
ELSIF(EN1='
IF(C15<
15)THEN
C15:
=C15+1;
IF(C15=1)THEN
TEMP1<
=M0;
IFC0<
C0<
IFC1="
C1<
IFC2="
C2<
IFC3="
C3<
ELSE
ELSE
C2<
C1<
ELSIF(M0/=TEMP1)THENC15:
IFF_1'
THEN
MIN1<
MIN0<
KM1<
KM0<
CHA3<
CHA2<
CHA1<
CHA0<
MIN1<
=M1;
MIN0<
KM1<
=K1;
KM0<
CHA3<
=C3;
=C2;
=C1;
=C0;
ENDIF;
ENDPROCESS;
ENDBEHAVE;
3、仿真及仿真结果分析
仿真图
4、实验调试结果
由仿真图可知,该程序可以实现任务书中所要求的计费系统的功能,包括行车里程计费、等候时间计费及起价三部分,并通过加法器计算出总费用。
三、结论及心得体会
这次的课程设计令我收获颇丰。
设计的核心内容就是QuartusⅡ环境中,利用VHDL语言设计出基于CPLD的出租车自动计费器。
整个设计过程中首先对数字电路这门课程有了更深的了解,因为课程设计本身要求将以前所学的理论知识运用到实际的电路设计当中去,在电路的设计过程中,无形中便加深了对数字电路的了解及运用能力,对课本以及以前学过的知识有了一个更好的总结与理解;
以前的数字实验只是针对某一个小的功能设计,而此次得EDA课程设计对我们的总体电路的设计的要求更严格,需要通过翻阅复习以前学过的知识确立了实验总体设计方案,然后逐步细化进行各模块的设计;
其次,在电路仿真的过程中总会出现一些问题,需要我们细心解决,所以这两周下来,我对电路故障的排查能力有了很大的提高;
再次,通过此次课程设计,我对设计所用到的软件有了更加深刻地了解,这对我们以后的工作和学习的帮助都很有用处。
感谢学校给我们这次机会,锻炼了我们的动手能力。
通过这次课设让我明白了理论和实际操作之间差距,而且也让我很明确得意识到自己在数电上有很多的知识漏洞,以后应该多钻研一下。
同时也感谢指导老师在设计过程中的辅导以及同学的帮助。
参考资料
14
大庆石油学院课程设计成绩评价表
课程名称
EDA技术课程设计
题目名称
出租车自动计费系统设计
学生姓名
学号
指导教师姓名
职称
序号
评价项目
指标
满分
评分
1
工作量、工作态度和出勤率
按期圆满的完成了规定的任务,难易程度和工作量符合教学要求,工作努力,遵守纪律,出勤率高,工作作风严谨,善于与他人合作。
20
2
课程设计质量
课程设计选题合理,计算过程简练准确,分析问题思路清晰,结构严谨,文理通顺,撰写规范,图表完备正确。
45
3
创新
工作中有创新意识,对前人工作有一些改进或有一定应用价值。
5
4
答辩
能正确回答指导教师所提出的问题。
30
总分
评语:
指导教师:
2011年3月11日