汽车尾灯控制器的设计与实现 联系客服

发布时间 : 星期日 文章汽车尾灯控制器的设计与实现更新完毕开始阅读d69eb53ff7335a8102d276a20029bd64793e625b

3. 汽车右转时,右侧的一盏灯亮 4. 汽车左转时,左侧的一盏灯亮 5. 汽车刹车时,左右两侧的指示灯同时亮

6. 汽车夜间行驶时,左右两侧的指示灯同时一直亮,供照明使用

3.2汽车尾灯控制器的工作原理

汽车尾灯控制器就是一个状态机的实例。当汽车在白天正常行驶时指示灯不亮;当汽车右转行驶时,汽车的右侧指示灯RD1亮;当汽车左转行驶时,汽车的左侧指示灯LD1亮;当汽车刹车时,汽车的右侧指示灯RD2和左侧LD2同时亮;当汽车在夜间行驶时,汽车右侧指示灯RD3和汽车左侧的指示灯LD3同时一直亮。通过设置系统的输入信号:系统时钟信号CLK,汽车左转弯控制信号LEFT,汽车右转弯控制信号RIGHT,刹车信号BRAKE,夜间行驶信号NIGHT;系统的输出信号包括汽车左侧3盏指示灯LD1、LD2、LD3和汽车右侧3盏指示灯RD1、RD2、RD3。通过汽车左侧3盏指示灯LD1、LD2、LD3和汽车右侧3盏指示灯RD1、RD2、RD3来实现汽车左转、右转、刹车等功能。系统的整体组装设计原理如图3.1所示。

7 / 19

图3.1 系统的整体组装设计原理

3.3各组成模块原理及程序

汽车灯控制器有4个模块组成,分别为:时钟分频模块、汽车尾灯主控模块,左边

8 / 19

灯控制模块和右边灯控制模块,以下介绍各模块的详细设计。 时钟分频模块

整个时钟分频模块的工作框图如图3.2所示。

CLK CP

图3.2时钟分频模块工作框图

时钟分频模块由VHDL程序来实现,下面是其中的一段VHDL代码: LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY SZ IS

PORT(CLK:IN STD_LOGIC; CP:OUT STD_LOGIC); END;

ARCHITECTURE ART OF SZ IS

SIGNAL COUNT:STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN

PROCESS(CLK) BEGIN

IF CLK'EVENT AND CLK = '1'THEN COUNT <= COUNT + 1; END IF; END PROCESS; CP<= COUNT(3); END ART;

汽车尾灯主控模块

汽车尾灯主控模块工作框图如图3.3所示。

CTRL LEFT LP RIGHT RP BRAKE LR NIGHT BRAKE_LED NIGHT_LED 图3.3 主控模块工作框图

汽车尾灯主控模块由VHDL程序来实现,下面是其中的一段VHDL代码:

9 / 19

.

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;

ARCHITECTURE ART OF CTRL IS BEGIN

NIGHT_LED<=NIGHT; BRAKE_LED<=BAKE; PROCESS(LEFT,RIGHT)

VARIABLE TEMP:STD_LOGIC_VECTOR(1 DOWNTO 0); BEGIN

TEMP:=LEFT & RIGHT; CASE TEMP IS

WHEN \ WHEN \ WHEN \ WHEN OTHERS=>LP<='0';RP<='0';LR<='1'; END CASE; END PROCESS; END ART; 左边灯控制模块

左边灯控制模块的工作框图如图3.4所示。

LC CLK LP LEDL LR LEDB BRRAKE LEDN NIGHT

图3.4左边灯控制模块的工作框图

左边灯控制模块由VHDL程序来实现,下面是其中的一段VHDL代码: LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; ENTITY LC IS

PORT(CLK,LP,LR,BRAKE,NIGHT:IN STD_LOGIC; LEDL,LEDB,LEDN: OUT STD_LOGIC); END;

ARCHITECTURE ART OF LC IS BEGIN

LEDB<=BRAKE;

10 / 19