1、本次设计就是运用EDA技术,根据状态机原理实现了汽车尾灯常用控制。1.2 设计方案1.2.1 系统设计要求根据现代交通规则,汽车尾灯控制器应满足以下基本要求:(1). 汽车正常使用是指示灯不亮(2). 汽车右转时,右侧的一盏灯亮(3). 汽车左转时,左侧的一盏灯亮(4). 汽车刹车时,左右两侧的指示灯同时亮(5). 汽车夜间行驶时,左右两侧的指示灯同时一直亮,供照明使用1.2.2 系统组成及原理图汽车尾灯控制器就是一个状态机的实例。当汽车正常行驶时所有指示灯都不亮;当汽车向右转弯时,汽车右侧的指示灯RD1亮;当汽车向左侧转弯时,汽车左侧的指示灯LD1亮;当汽车刹车时,汽车右侧的指示灯RD2和汽
2、车左侧的指示灯LD2同时亮;当汽车在夜间行驶时,汽车右侧的指示灯RD3和汽车左侧的指示灯LD3同时一直亮。通过设置系统的输入信号:系统时钟信号CLK,汽车左转弯控制信号LEFT,汽车右转弯控制信号RIGHT,刹车信号BRAKE,夜间行驶信号NIGHT和系统的输出信号:汽车左侧3盏指示灯LD1、LD2、LD3和汽车右侧3盏指RD1、RD2、RD3实现以上功能。系统的整体组装设计原理如图1所示。图1 系统的整体组装设计原理2.方案实施 汽车尾灯控制器有4个模块组成,分别为:时钟分频模块、汽车尾灯主控模块,左边灯控制模块和右边灯控制模块,以下介绍各模块的详细设计。2.1时钟分频模块整个时钟分频模块的
3、工作框图如图2所示。图2时钟分频模块工作框图时钟分频模块由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;2.2 汽车尾灯主控模块汽车尾灯主控模块工作框图如图3所示。图3 主控模块工作框图汽车尾灯主控模块由VHDL程序来实现,下面是其中的
4、一段VHDL代码:ARCHITECTURE ART OF CTRL ISBEGIN NIGHT_LED=NIGHT; BRAKE_LEDLP=0;RPLR END CASE;2.3左边灯控制模块 左边灯控制模块的工作框图如图4所示。图4左边灯控制模块的工作框图左边灯控制模块由VHDL程序来实现,下面是其中的一段VHDL代码:ARCHITECTURE ART OF LC IS LEDB=BRAKE; LEDNPROCESS(CLK,LP,LR) THEN IF(LR =)THEN IF(LP = LEDL ELSE LEDL END PROCESS;2.4右边灯控制模块右边灯控制模块的工作框图如
5、图5所示。图5 右边灯控制模块的工作框图右边灯控制模块由VHDL程序来实现,下面是其中的一段VHDL代码:ARCHITECTURE ART OF RC ISBEGIN PROCESS(CLK,RP,LR) IF(LR = IF(RP = LEDR = 3. 结果和结论3.1分频模块仿真及分析分频模块由VHDL程序实现后,其仿真图如图6所示。图6 分频模块仿真图对其仿真图进行仿真分析:如图所示,首先生成一个600ns的时钟脉冲,通过时钟分频把600ns的脉冲分成一个40ns的脉冲,实现了信号同步。3.2汽车尾灯主控模块仿真及分析汽车尾灯主控模块由VHDL程序实现后,其仿真图如图7所示。 图7主控
6、模块时序仿真图对时序仿真图进行分析: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的信号脉冲输出。3.3左边灯控制模块仿真及分析左边灯控制模块由VHDL程序实现后,其仿真图如图8所示。图8左边灯控制模
7、块时序仿真图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。即没有灯亮。3.4右边灯控制模块仿真及分析右边灯控制模块由VHDL程序实现后,其仿真图如图9所示。图9右边灯控制模块时序仿真图RP,LR,NIGHT,BRAKE 为输入信号,LR为1表示左转,RP为1表示右转,
8、NIGHT为1表示夜间行路,BRAKE为1表示刹车。LEDR,LEDB,LEDN为输出信号,表示汽车右侧的三盏灯。当RP为1时,LEDR输出为1表示右侧灯亮,当BRAKE为1时,LEDB输出为1表示右侧灯亮,当NIGHT为1时,LEDN输出为1表示右侧灯亮。当LR为1时,右侧三盏灯输出均为0。3.5整个系统仿真及分析按图1组装系统后的仿真图如图10所示。图10 整个系统仿真图RD1,RD2,RD3为输出信号,表示汽车右侧的三盏灯。LD1,LD2,LD3为输出信号,表示汽车左侧的三盏灯。当RIGHT为1时,RD1输出为1表示右侧灯亮,当LEFT为1时,LD1为输出为1表示左侧灯亮,当NIGHT为
9、1时,LD2,RD2输出均为1,表示左,右两侧各有一盏灯亮。当BRAKE为1时,LD3,RD3输出均为1,表示左,右两侧各有一盏灯亮。4.附件4.1各个模块程序4.11主控模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY CTRL IS PORT (LEFT,RIGHT,BRAKE,NIGHT: IN STD_LOGIC; LP,RP,LR,BRAKE_LED,NIGHT_LED:OUT STD_LOGIC);END;4.1.2时钟分频模块USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY SZ IS PORT(CLK:IN STD_LOGIC; CP:4.1.3右边灯控制模块ENTITY RC IS PORT(CLK,RP,LR,BRAKE,NIGHT: LEDR,LEDB,LEDN: OUT STD_LOGIC);4.1.4左边灯控制模块ENTITY LC IS PORT(CLK,LP,LR,BRAKE,NIGHT: LEDL,LEDB,LEDN:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1