实验九 汽车尾灯控制器设计与实现.docx
《实验九 汽车尾灯控制器设计与实现.docx》由会员分享,可在线阅读,更多相关《实验九 汽车尾灯控制器设计与实现.docx(9页珍藏版)》请在冰豆网上搜索。
![实验九 汽车尾灯控制器设计与实现.docx](https://file1.bdocx.com/fileroot1/2023-1/27/3ad70f5e-e0a2-4133-881a-e631bb34bb86/3ad70f5e-e0a2-4133-881a-e631bb34bb861.gif)
实验九汽车尾灯控制器设计与实现
实验九汽车尾灯控制器设计与实现报告
一、实验目的
1、进一步掌握VHDL语言的基本结构及设计的输入方法。
2、掌握自顶向下设计方法。
3、掌握层次化设计混合编程方法。
二、实验内容
1、假设汽车尾部左右两侧各有3盏指示灯,其控制功能应包括:
(1)汽车正常行驶时指示灯都不亮。
(2)汽车右转弯时,右侧的一盏指示灯亮。
(3)汽车左转弯时,左侧的一盏指示灯亮。
(4)汽车刹车时,左右两侧的一盏指示灯同时亮。
(5)汽车在夜间行驶时,左右两侧的一盏指示灯同时一直亮,供照明使用。
2、根据系统设计要求,系统设计采用自顶向下的设计方法,顶层设计采用原理图设计方式,它由时钟分频模块、汽车尾灯主控模块、左边灯控制模块和右边灯控制模块四部分组成。
系统设计原理图如下图2.1所示。
图2.1
系统的输入信号包括:
系统时钟信号CLK,汽车左转弯控制信号LEFT,汽车右转弯控制信号RIGHT,刹车信号BRAKE,夜间行驶信号NIGHT。
系统的输出信号包括:
汽车左侧3盏指示灯LD1、LD2、LD3和汽车右侧3盏指示灯RD1、RD2、RD3。
系统工作原理为:
当汽车正常行驶时所有指示灯都不亮;当汽车向右转弯时,汽车右侧的指示灯RD1亮;当汽车向左转弯时,汽车左侧的指示灯LD1亮;当汽车刹车时,汽车右侧的指示灯RD2和汽车左侧的指示灯LD2同时亮;当汽车在夜间行驶时,汽车右侧的指示灯RD3和汽车左侧的指示灯LD3同时一直亮。
请分析汽车尾灯控制器实现过程,编写程序代码,结合已设计底层文件实现顶层元器件(采用混合编程)设计,使之组成完整系统。
三、实验原理
1、汽车尾灯控制器就是一个状态机的实例。
当汽车正常行驶时所有指示灯都不亮;当汽车向右转弯时,汽车右侧的指示灯RD1亮;当汽车向左侧转弯时,汽车左侧的指示灯LD1亮;当汽车刹车时,汽车右侧的指示灯RD2和汽车左侧的指示灯LD2同时亮;当汽车在夜间行驶时,汽车右侧的指示灯RD3和汽车左侧的指示灯LD3同时一直亮。
通过设置系统的输入信号:
系统时钟信号CLK,汽车左转弯控制信号LEFT,汽车右转弯控制信号RIGHT,刹车信号BRAKE,夜间行驶信号NIGHT和系统的输出信号:
汽车左侧3盏指示灯LD1、LD2、LD3和汽车右侧3盏指示灯RD1、RD2、
汽车尾灯和汽车运行状态表如表3.1所示。
汽车尾灯和汽车运行状态表3.1
开关控制
汽车运行状态
右转尾灯
左转尾灯
S0S1S2
R1R2R3
L1L2L3
000
正常运行
灯灭
灯灭
001
左转弯
灯灭
L1灯亮
010
右转弯
R1灯亮
灯灭
011
临时刹车/检测
R2、L2灯同时亮
101
夜间行驶
R3、L3灯同时亮
四、设计步骤
1、各组成模块
实现的主要功能是通过开关控制从而实现汽车尾灯的点亮方式。
汽车尾灯控制器有4个模块组成,分别为:
汽车尾灯主控模块,左边灯控制模块和右边灯控制模块,以下介绍各模块的详细设计。
2、时钟分频模块
整个时钟分频模块的工作框图如图4.2所示。
图4.1时钟分频模块工作框图
时钟分频模块由VHDL程序来实现,下面是其中的一段VHDL代码:
ARCHITECTUREARTOFSZIS
SIGNALCOUNT:
STD_LOGIC_VECTOR(7DOWNTO0);
BEGIN
PROCESS(CLK)
BEGIN
IFCLK'EVENTANDCLK='1'THEN
COUNT<=COUNT+1;
ENDIF;
ENDPROCESS;
CP<=COUNT(3);
ENDART;
3、汽车尾灯主控模块
汽车尾灯主控模块工作框图如图4.2所示
图4.2主控模块工作框图
汽车尾灯主控模块由VHDL程序来实现,下面是其中的一段VHDL代码:
ARCHITECTUREARTOFCTRLIS
BEGIN
NIGHT_LED<=NIGHT;
BRAKE_LED<=BAKE;
PROCESS(LEFT,RIGHT)
VARIABLETEMP:
STD_LOGIC_VECTOR(1DOWNTO0);
BEGIN
TEMP:
=LEFT&RIGHT;
CASETEMPIS
WHEN"00"=>LP<='0';RP<='0';LR<='0';
WHEN"01"=>LP<='0';RP<='1';LR<='0';
WHEN"10"=>LP<='1';RP<='0';LR<='0';
WHENOTHERS=>LP<='0';RP<='0';LR<='1';
ENDCASE;
ENDPROCESS;
ENDART;
4、左边灯控制模块
左边灯控制模块的工作框图如图4.3所示
图4.2左边灯控制模块的工作框图
左边灯控制模块由VHDL程序来实现,下面是其中的一段VHDL代码:
ARCHITECTUREARTOFLCIS
BEGIN
LEDB<=BRAKE;
LEDN<=NIGHT;
PROCESS(CLK,LP,LR)
BEGIN
IFCLK'EVENTANDCLK='1'THEN
IF(LR='0')THEN
IF(LP='0')THEN
LEDL<='0';
ELSE
LEDL<='1';
ENDIF;
ELSE
LEDL<='0';
ENDIF;
ENDIF;
ENDPROCESS;
ENDART;
5、右边灯控制模块
右边灯控制模块的工作框图如图4.4所示
图4.4右边灯控制模块的工作框图
右边灯控制模块由VHDL程序来实现,下面是其中的一段VHDL代码:
ARCHITECTUREARTOFRCIS
BEGIN
LEDB<=BRAKE;
LEDN<=NIGHT;
PROCESS(CLK,RP,LR)
BEGIN
IFCLK'EVENTANDCLK='1'THEN
IF(LR='0')THEN
IF(RP='0')THEN
LEDR<='0';
ELSE
LEDR<='1';
ENDIF;
ELSE
LEDR<='0';
ENDIF;
ENDIF;
ENDPROCESS;
ENDART;
五、系统仿真与调试
5.1分频模块仿真及分析
分频模块由VHDL程序实现后,其仿真图如图5.1所示
图5.1分频模块仿真图
对其仿真图进行仿真分析:
如图所示,首先生成一个600ns的时钟脉冲,通过时钟分频把600ns的脉冲分成一个40ns的脉冲,实现了信号同步。
5.2汽车尾灯主控模块仿真及分析
汽车尾灯主控模块由VHDL程序实现后,其仿真图如图5.2所示。
图5.2主控模块时序仿真图
对时序仿真图进行分析:
RIGHT,LEFT,NIGHT,BRAKE为输入信号,RIGHT为1表示右转,LEFT为1表示左转,NIGHT为1表示夜间行路,BRAKE为1表示刹车。
RP,LP,NIGHT_LED,BRAKE_LED为输出信号。
如图所示:
当RIGHT为1时,产生一个RP为1的信号脉冲输出,当LEFT为1时,产生一个LP为1的信号脉冲输出,当NIGHT为1时,产生一个NIGHT_LED为1的信号脉冲输出。
当BRAKE为1时,产生一个BRAKE_LED为1的信号脉冲输出。
5.3左边灯控制模块仿真及分析
左边灯控制模块由VHDL程序实现后,其仿真图如下图5.3所示。
对时序仿真图进行分析:
LP,LR,NIGHT,BRAKE为输入信号,LP为1表示左转,LR为1表示右转,NIGHT为1表示夜间行路,BRAKE为1表示刹车。
LEDL,LEDB,LEDN为输出信号,表示汽车左侧的三盏灯。
如图所示:
当LP为1时,LEDL输出为1表示左侧灯亮,当BRAKE为1时,LEDB输出为1表示左侧灯亮,当NIGHT为1时,LEDN输出为1表示左侧灯亮。
当LR为1时,左侧三盏灯输出均为0。
即没有灯亮。
图5.3左边灯控制模块时序仿真图
5.4右边灯控制模块仿真及分析
右边灯控制模块由VHDL程序实现后,其仿真图如图5.4所示。
图5.4右边灯控制模块时序仿真图
对时序仿真图进行分析:
RP,LR,NIGHT,BRAKE为输入信号,LR为1表示左转,RP为1表示右转,NIGHT为1表示夜间行路,BRAKE为1表示刹车。
LEDR,LEDB,LEDN为输出信号,表示汽车右侧的三盏灯。
如图所示:
当RP为1时,LEDR输出为1表示右侧灯亮,当BRAKE为1时,LEDB输出为1表示右侧灯亮,当NIGHT为1时,LEDN输出为1表示右侧灯亮。
当LR为1时,右侧三盏灯输出均为0。
即没有灯亮。
5.5整个系统仿真及分析
按图2.1组装系统后的仿真图如下图5.5所示。
对时序仿真图进行分析:
RIGHT,LEFT,NIGHT,BRAKE为输入信号,RIGHT为1表示右转,LEFT为1表示左转,NIGHT为1表示夜间行路,BRAKE为1表示刹车。
RD1,RD2,RD3为输出信号,表示汽车右侧的三盏灯。
LD1,LD2,LD3为输出信号,表示汽车左侧的三盏灯。
如图所示:
当RIGHT为1时,RD1输出为1表示右侧灯亮,当LEFT为1时,LD1为输出为1表示左侧灯亮,当NIGHT为1时,LD2,RD2输出均为1,表示左,右两侧各有一盏灯亮。
当BRAKE为1时,LD3,RD3输出均为1,表示左,右两侧各有一盏灯亮。
图5.5整个系统仿真图
系统的输入信号包括:
系统时钟信号CLK,汽车左转弯控制信号LEFT,汽车右转弯控制信号RIGHT,刹车信号BRAKE,夜间行驶信号NIGHT。
系统的输出信号包括:
汽车左侧3盏指示灯LD1、LD2、LD3和汽车右侧3盏指示灯RD1、RD2、RD3。
系统工作原理为:
当汽车正常行驶时所有指示灯都不亮;当汽车向右转弯时,汽车右侧的指示灯RD1亮;当汽车向左转弯时,汽车左侧的指示灯LD1亮;当汽车刹车时,汽车右侧的指示灯RD2和汽车左侧的指示灯LD2同时亮;当汽车在夜间行驶时,汽车右侧的指示灯RD3和汽车左侧的指示灯LD3同时一直亮。
请分析汽车尾灯控制器实现过程,编写程序代码,结合已设计底层文件实现顶层元器件(采用混合编程)设计,使之组成完整系统。
六、实验心得
本实验利用VHDL语言结合层次化设计混合编程思想设计实现汽车尾灯控制器,实验比较难做,其实验原理简单,实际操作的时候遇到很多困难。
在程序的编写时,有点困难。
最后发的仿真结果没有得出,所以此次实验没有完成。