EDA出租车计费系统课程设计文档格式.docx
- 文档编号:17320706
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:14
- 大小:138.07KB
EDA出租车计费系统课程设计文档格式.docx
《EDA出租车计费系统课程设计文档格式.docx》由会员分享,可在线阅读,更多相关《EDA出租车计费系统课程设计文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
关键词:
EDA,VHDL,出租车,计费。
二.设计原理
2.1实验主要模块
本次课程设计的主要内容就是出租车计费系统的vhdl语言设计,其系统主要包括一下几个模块:
(1)车速控制模块
当起停键为启动状态时(高电平),模块根据车速选择和基本车速发出响应频率的脉冲驱动计费器和里程显示模块进行计数;
当处于停止状态时暂停发出脉冲,此时计费器和里程显示模块相应的停止计数。
(2)里程动态显示模块
其包括计数车速控制模块发出的脉冲以及将计数显示动态显示出来,每来一个脉冲里程值加0.1(控制器每发一个脉冲代表运行了0.1公里)。
(3)计费动态显示模块
当时间段为06:
00~23:
00时单价为1.40元/km,其他时间段单价为1.80元/km;
(4)扩展计费动态显示模块
其初值为10元,当里程超过3公里后才接受计数车速控制模块发出的脉冲的驱动,并且计数显示动态显示出来,每来一个脉冲(代表运行了0.5公里)其数值加1元,当收费超过20时数值加1.5元。
2.2顶层文件的系统框图
2.3vhdl设计流程图
三.程序设计
3.1车速控制模块
本块模块主要运用三个输入端,分别是JS,CLK1和CLK0。
JS输入代表加速按键,CLK1和CLK0分别代表汽车的匀速和加速。
CLK_OUT代表输出的信号状态。
从程序中实现如下情况:
当JS给一个高电平,与CLK1的波形一致,代表汽车在匀速状态;
当JS给一个低电平,与CLK0的波形一致,代表汽车在加速状态。
3.2车行状态输出模块
本块模块有四个输入端,分别是STO,ENABLE,CLR和CLK。
STO代表汽车的暂停,CLK代表时钟脉冲信号,ENABLE代表启动信号,CLR代表清零信号,而ST作为仅有的输出信号,代表汽车的状态信号。
通过程序实现如下情况:
enable高电平时,每一个时钟上升沿时,CQI计数加1,若CQI<
=30时,state赋01,30<
CQI<
=80时,state赋10态,…..;
enable低电平时,CQI计数暂停,保持不变。
2.3信号分频模块
本块模块的作用在于把时钟信号进行五分频,主要有两个输入端,CLK0和FOUT;
CLK0代表时钟脉冲信号,而FOUT代表复位的信号,当输出的数到4后又从0开始循环下去,输出端的CNT代表分频计数信号,分别是0,1,2,3,4.具体情况从仿真图中可以看出。
3.4出租车模拟计费模块(创新)
本模块主要实现出租车的模拟计费功能,通过SI状态按钮来判断计费的方式,通过CLR与SI两个输入端来实现控制,而输出端计费的功能用C1,C2和C3的数来表示。
具体实现是当SI状态“10”时开始计费,每公里一元,而当SI状态“11”是计费表示超过20公里,计费又从另一种形式每公里1.5元计费。
具体实现从仿真波形图中得到体现。
3.5出租车的译码模块
本模块是译码模块,其主要的功能就是显示车费的功能,通过与数码管的连接,来从中显示出出租车所用的费用。
其他的部分都不是太重要。
3.6出租车的顶层模块
本模块是把上述各个模块捆绑在一起的一个模块,它包含每个模块的输入输出点,这样当运行起来的时候,就可以实现上述的各个功能。
具体的情况通过程序的仿真波形来体现,从中观察它们之间的逻辑关系。
四.实验原理框图
此为整个实验的中框图,可以说是顶层文件把所有程序连接在一起之后的原理图。
五.仿真波形
系统仿真是在实际系统上进行实验研究比较困难时适用的必不可少的工具,它是指通过系统模型实验去研究一个已经存在或正在设计的系统的过程,通俗地讲,就是进行模型实验。
因而,系统仿真的结果决定整个课程设计任务完成的到位程度。
程序输入完成后进行编译,编译完成后,可以对所进行的设计进行仿真,本课程设计的仿真平台是MAX+plusⅡ,通过对VHDL源程序进行编译检错,然后创建波形文件(后缀名为.scf),加入输入输出变量,选择适用的芯片以及设定仿真结束时间,设置好输入初值进行仿真,得到仿真波形图:
5.1车速控制模块仿真图
JS高低电平决定是匀速还是加速,而CLK0和CLK1代表匀速和加速的脉冲,则输出端口CLK_OUT表示输出状态。
5.2车行状态输出模块
ENABLE为高电平时,每一个时钟上升沿过去之后,CQI都要在原有的基础之上再加上一,即“CQI:
=CQI+1”。
若CQI<
=30时,STATE赋值为“01”;
若30<
=80时,STATE赋值为“10”;
一直这样下去,ENABLE为低电平时,CQI计数暂停,保持原有状态不变。
具体如何体现从以下的波形图中看出来:
5.3信号分频模块
信号分频模块,把其变成五分频,CLK0表示脉冲信号,每经过五个脉冲后,FOUT输出一个高电平,表示从这里开始复位,而另一个输出CNT进行累加的计数,从0开始加,一直加到4,经历5个数以后,有从0开始循环出现。
5.4出租车模拟计费模块
出租车模拟计费模块,SI代表出租车状态信号,当SI的信号出现“00”时,代表计费停止,Q1-Q3保持不变,同样C1-C3也不变;
当SI的信号出现“01”时,代表计费清零,计费设置为起步价10元,Q3=1,Q2=0,Q1=0,代表十元,开始计费,每公里按一元计费;
当SI的信号出现“11”时,表示车费超过20元,计费标准重新划定,按每公里1.5元计费,Q1,Q2,Q2分别赋值给C1,C2,C3,代表车费。
5.5出租车的译码模块
出租车的译码模块简而言之就是显示出租车费用的一个模块,此模块的作用就是让其能在数码管中显示出租车的费用,所以要用到管脚的问题,在配置管脚的时候要多加注意。
5.6出租车顶层模块
本模块是一个总的汇总模块,它的作用是把上述的六个模块结合在一起,组成一个完整的文件。
所以在这个程序中包括了所有输入输出管脚。
相对来说其中逻辑关系较简单。
六.小结
出租车计费器系统的设计已全部完成,能按预期的效果进行模拟汽车启动、停止、暂停等功能,并设计动态扫描电路显示车费数目,由动态扫描电路来完成。
车暂时停止不计费,车费保持不变。
若停止则车费清零,等待下一次计费的开始。
出租车计费器系统的设计已全部完成,能按预期的效果进行模拟汽车启动、停止、暂停等功能,并设计动态扫描电路显示车费数目,由动态扫描电路来完成。
各模块完成后,在将它们组合成完整的出租车系统,在设计过程中还需要改进的是控制系统的纠错功能。
出租车计费系统的设计中体现了VHDL覆盖面广,描述能力强,是一个多层次的硬件描述语言及PLD器件速度快,使用方便,便于修改等特点,本设计在实用方面具有一定的价值。
通过这次实验使我收获很多,对书本理论知识有了进一步加深,初步掌握了MAXPLUSII软件的一些设计使用方法。
对一些器件的使用方法了解更深刻了,如一些器件的使能端的作用等。
主要有以下一些实验感想:
1、应该对实验原理有深刻理解;
2、做实验必须不急不躁,不能看见其他同学做的快就沉不住气了;
3、熟练掌握软件是必要的;
必须学会自己调试电路,一般第一次设计出的电路都会通不过编译的,所以要学会调试电路,而不是等老师解答或同学帮助;
七.参考文献
(1)潘松,黄继业编著。
《EDA实用教程》,2005,科学出版社
(2)徐志军,徐光辉编著。
《CPLD/FPGA的开发与应用》,电子工业出版社,2001.1
(3)
(4)曹昕燕,周凤臣,聂春燕.EDA技术实验与课程设计【M】.清华大学出版社
八.谢辞
经过一周的奋战我的课程设计终于完成了。
在没有做课程设计以前觉得课程设计只是对这半年来所学知识的单纯总结,但是通过这次做课程设计发现自己的看法有点太片面。
课程设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高。
在这次课程设计中也使我们的同学关系更进一步了,同学之间互相帮助,有什么不懂的大家在一起商量,听听不同的看法对我们更好的理解知识,所以在这里非常感谢帮助我的同学。
在此要感谢我们的老师对我们悉心的指导,感谢老师们给我们的帮助。
在设计过程中,我通过查阅大量有关资料,与同学交流经验和自学,并向老师请教等方式,使自己学到了不少知识,也经历了不少艰辛,收获颇丰。
九.附录
(1)车速控制模块主要程序:
程序功能:
实现匀速与加速的选择。
ARCHITECTUREONEOFMSIS
BEGIN
PROCESS(JS,CK0,CK1)
BEGIN
IFJS='
0'
THENCLK_OUT<
=CK0;
ELSECLK_OUT<
=CK1;
ENDIF;
ENDPROCESS;
(2)车行状态输出模块主要程序:
程序功能:
实现出租车的暂停与启动功能。
ARCHITECTUREONEOFSOUTIS
PROCESS(CLK,ENABLE,STO,CLR)
VARIABLECQI:
STD_LOGIC_VECTOR(7DOWNTO0);
VARIABLESTATE:
STD_LOGIC_VECTOR(1DOWNTO0);
IFCLR='
THENCQI:
=(OTHERS=>
'
);
ELSIFCLK'
EVENTANDCLK='
1'
THEN
IFSTO='
THENSTATE:
="
00"
;
CQI:
=CQI;
ELSIFENABLE='
CQI:
=CQI+1;
IFCQI<
=30THENSTATE:
01"
ELSIFCQI>
30ANDCQI<
=80THENSTATE:
10"
ELSE
STATE:
11"
ENDIF;
ST<
=STATE;
ENDPROCESS;
(3)信号分频模块主要程序:
程序的主要功能:
实现将时钟程序5分频。
ARCHITECTUREONEOFPULSEIS
PROCESS(CLK0)
VARIABLECNT:
STD_LOGIC_VECTOR(2DOWNTO0);
VARIABLEFULL:
STD_LOGIC;
IFCLK0'
EVENTANDCLK0='
THEN
IFCNT="
100"
CNT:
000"
;
FULL:
='
ELSE
CNT:
=CNT+1;
FOUT<
=FULL;
(4)出租车模拟计费模块主要程序:
实现出租车的模拟计费,通过C3C2C1体现出来。
ARCHITECTUREONEOFCOUNTERIS
PROCESS(CLK_DIV,CLR1,SI)
VARIABLEQ1:
STD_LOGIC_VECTOR(3DOWNTO0);
VARIABLEQ2:
VARIABLEQ3:
IFCLR1='
THENQ1:
0000"
Q2:
Q3:
ELSIFCLK_DIV'
EVENTANDCLK_DIV='
CASESIIS
WHEN"
=>
Q1:
=Q1;
=Q2;
=Q3;
=>
Q1:
0001"
IFQ2<
"
1001"
Q2:
=Q2+1;
ELSE
Q2:
IFQ3<
Q3:
=Q3+1;
ENDIF;
IFQ1<
0101"
=Q1+5;
ELSE
Q1:
IFQ1="
Q3:
ELSE
IFQ2<
=Q2+2;
IFQ3<
WHENOTHERS=>
NULL;
ENDCASE;
ENDIF;
C1<
C2<
C3<
(5)出租车译码模块的主要程序:
主要实现车费的显示功能,与数码管连接,通过其实现。
ARCHITECTUREONEOFSCAN_LEDIS
SIGNALCNT4:
SIGNALA:
STD_LOGIC_VECTOR(3DOWNTO0);
P1:
PROCESS(CLK2)
VARIABLESQ:
IFCLK2'
EVENTANDCLK2='
IFSQ="
THENSQ:
SQ:
=SQ+1;
CNT4<
=SQ;
ENDPROCESSP1;
P2:
PROCESS(CNT4)
CASECNT4IS
BT<
001"
A<
=DI1;
WHEN"
010"
=DI2;
=DI3;
1111"
WHENOTHERS=>
ENDPROCESSP2;
P3:
PROCESS(A)
BEGIN
CASEAIS
SG<
0111111"
0000110"
0010"
1011011"
0011"
1001111"
0100"
1100110"
1101101"
0110"
1111101"
0111"
0000111"
1000"
1111111"
1101111"
WHENOTHERS=>
ENDPROCESSP3;
(6)出租车顶层模块主要程序:
程序主要功能:
主要实现多个模块的结合。
BEGIN
U0:
MS
PORTMAP(CK0=>
T_CLK0,CK1=>
T_CLK1,JS=>
T_JS,CLK_OUT=>
L_CLK);
U1:
SOUT
PORTMAP(CLK=>
L_CLK,ENABLE=>
T_ENABLE,CLR=>
T_CLR,STO=>
T_STO,ST=>
L_ST);
U2:
PULSE
PORTMAP(CLK0=>
L_CLK,FOUT=>
L_FOUT);
U3:
COUNTER
PORTMAP(CLR1=>
T_CLR,SI=>
L_ST,CLK_DIV=>
L_FOUT,C3=>
L_C3,C2=>
L_C2,C1=>
L_C1);
U4:
SCAN_LED
PORTMAP(CLK2=>
T_CLK2,DI3=>
L_C3,DI2=>
L_C2,DI1=>
L_C1,BT=>
T_BT,SG=>
T_SG);
ENDSTRUC;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 出租车 计费 系统 课程设计