1、实验九 汽车尾灯控制器设计与实现实验九 汽车尾灯控制器设计与实现报告一、实验目的1、进一步掌握VHDL语言的基本结构及设计的输入方法。2、掌握自顶向下设计方法。3、掌握层次化设计混合编程方法。二、实验内容1、假设汽车尾部左右两侧各有3盏指示灯,其控制功能应包括:(1)汽车正常行驶时指示灯都不亮。(2)汽车右转弯时,右侧的一盏指示灯亮。(3)汽车左转弯时,左侧的一盏指示灯亮。(4)汽车刹车时,左右两侧的一盏指示灯同时亮。(5)汽车在夜间行驶时,左右两侧的一盏指示灯同时一直亮,供照明使用。2、根据系统设计要求,系统设计采用自顶向下的设计方法,顶层设计采用原理图设计方式,它由时钟分频模块、汽车尾灯主
2、控模块、左边灯控制模块和右边灯控制模块四部分组成。系统设计原理图如下图2.1所示。图2.1系统的输入信号包括:系统时钟信号CLK,汽车左转弯控制信号LEFT,汽车右转弯控制信号RIGHT,刹车信号BRAKE,夜间行驶信号NIGHT。系统的输出信号包括:汽车左侧3盏指示灯LD1、LD2、LD3和汽车右侧3盏指示灯RD1、RD2、RD3。系统工作原理为:当汽车正常行驶时所有指示灯都不亮;当汽车向右转弯时,汽车右侧的指示灯RD1亮;当汽车向左转弯时,汽车左侧的指示灯LD1亮;当汽车刹车时,汽车右侧的指示灯RD2和汽车左侧的指示灯LD2同时亮;当汽车在夜间行驶时,汽车右侧的指示灯RD3和汽车左侧的指示
3、灯LD3同时一直亮。请分析汽车尾灯控制器实现过程,编写程序代码,结合已设计底层文件实现顶层元器件(采用混合编程)设计,使之组成完整系统。三、实验原理1、汽车尾灯控制器就是一个状态机的实例。当汽车正常行驶时所有指示灯都不亮;当汽车向右转弯时,汽车右侧的指示灯RD1亮;当汽车向左侧转弯时,汽车左侧的指示灯LD1亮;当汽车刹车时,汽车右侧的指示灯RD2和汽车左侧的指示灯LD2同时亮;当汽车在夜间行驶时,汽车右侧的指示灯RD3和汽车左侧的指示灯LD3同时一直亮。通过设置系统的输入信号:系统时钟信号CLK,汽车左转弯控制信号LEFT,汽车右转弯控制信号RIGHT,刹车信号BRAKE,夜间行驶信号NIGH
4、T和系统的输出信号:汽车左侧3盏指示灯LD1、LD2、LD3和汽车右侧3盏指示灯RD1、RD2、汽车尾灯和汽车运行状态表如表3.1所示。汽车尾灯和汽车运行状态表3.1开关控制汽车运行状态右转尾灯左转尾灯S0 S1 S2R1 R2R3L1L2L30 0 0正常运行灯灭灯灭0 0 1左转弯灯灭L1灯亮0 1 0右转弯R1灯亮灯灭0 1 1临时刹车/检测R2、L2灯同时亮1 0 1夜间行驶R3、L3灯同时亮四、设计步骤1、各组成模块 实现的主要功能是通过开关控制从而实现汽车尾灯的点亮方式。汽车尾灯控制器有4个模块组成,分别为:汽车尾灯主控模块,左边灯控制模块和右边灯控制模块,以下介绍各模块的详细设计
5、。2、时钟分频模块整个时钟分频模块的工作框图如图4.2所示。图4.1时钟分频模块工作框图时钟分频模块由VHDL程序来实现,下面是其中的一段VHDL代码:ARCHITECTURE ART OF SZ ISSIGNAL COUNT:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGINPROCESS(CLK) BEGIN IF CLKEVENT AND CLK = 1THEN COUNT = COUNT + 1; END IF; END PROCESS; CP= COUNT(3);END ART;3、汽车尾灯主控模块汽车尾灯主控模块工作框图如图4.2所示 图4.2主控模块工作框图汽车
6、尾灯主控模块由VHDL程序来实现,下面是其中的一段VHDL代码:ARCHITECTURE ART OF CTRL ISBEGIN NIGHT_LED=NIGHT; BRAKE_LEDLP=0;RP=0;LRLP=0;RP=1;LRLP=1;RP=0;LRLP=0;RP=0;LR=1; END CASE; END PROCESS;END ART;4、左边灯控制模块 左边灯控制模块的工作框图如图4.3所示图4.2左边灯控制模块的工作框图左边灯控制模块由VHDL程序来实现,下面是其中的一段VHDL代码:ARCHITECTURE ART OF LC ISBEGIN LEDB=BRAKE; LEDN=N
7、IGHT;PROCESS(CLK,LP,LR)BEGIN IF CLKEVENT AND CLK = 1 THEN IF(LR =0)THEN IF(LP = 0)THEN LEDL=0; ELSE LEDL=1; END IF; ELSE LEDL =0; END IF; END IF;END PROCESS;END ART;5、右边灯控制模块右边灯控制模块的工作框图如图4.4所示图4.4右边灯控制模块的工作框图右边灯控制模块由VHDL程序来实现,下面是其中的一段VHDL代码:ARCHITECTURE ART OF RC ISBEGIN LEDB=BRAKE; LEDN=NIGHT; PRO
8、CESS(CLK,RP,LR) BEGIN IF CLKEVENT AND CLK = 1 THEN IF(LR = 0)THEN IF(RP = 0)THEN LEDR =0; ELSE LEDR = 1; END IF; ELSE LEDR =0; END IF; END IF; END PROCESS;END ART;五、系统仿真与调试5.1分频模块仿真及分析分频模块由VHDL程序实现后,其仿真图如图5.1所示图5.1 分频模块仿真图对其仿真图进行仿真分析:如图所示,首先生成一个600ns的时钟脉冲,通过时钟分频把600ns的脉冲分成一个40ns的脉冲,实现了信号同步。5.2汽车尾灯主控
9、模块仿真及分析汽车尾灯主控模块由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左边灯控
10、制模块仿真及分析左边灯控制模块由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程序实现后,其
11、仿真图如图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,NIG
12、HT,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,汽车右转弯控制
13、信号RIGHT,刹车信号BRAKE,夜间行驶信号NIGHT。系统的输出信号包括:汽车左侧3盏指示灯LD1、LD2、LD3和汽车右侧3盏指示灯RD1、RD2、RD3。系统工作原理为:当汽车正常行驶时所有指示灯都不亮;当汽车向右转弯时,汽车右侧的指示灯RD1亮;当汽车向左转弯时,汽车左侧的指示灯LD1亮;当汽车刹车时,汽车右侧的指示灯RD2和汽车左侧的指示灯LD2同时亮;当汽车在夜间行驶时,汽车右侧的指示灯RD3和汽车左侧的指示灯LD3同时一直亮。请分析汽车尾灯控制器实现过程,编写程序代码,结合已设计底层文件实现顶层元器件(采用混合编程)设计,使之组成完整系统。六、实验心得 本实验利用VHDL语言结合层次化设计混合编程思想设计实现汽车尾灯控制器,实验比较难做,其实验原理简单,实际操作的时候遇到很多困难。在程序的编写时,有点困难。最后发的仿真结果没有得出,所以此次实验没有完成。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1