汽车尾灯控制器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
汽车尾灯控制器
12. 13
2 汽车尾灯控制器
1.1系统需求分析
根据现代交通规则,汽车尾灯控制器应满足以下基本要求:
1.汽车正常使用是指示灯不亮
2.汽车右转时,右侧的一盏灯亮
3.汽车左转时,左侧的一盏灯亮
4.汽车刹车时,左右两侧的指示灯同时亮
5.汽车夜间行驶时,左右两侧的指示灯同时一直亮,供照明使用
1.2汽车尾灯控制器的工作原理
汽车尾灯控制器就是一个状态机的实例。
当汽车正常行驶时所有指示灯都不亮;当汽车向右转弯时,汽车右侧的指示灯rd1亮;当汽车向左侧转弯时,汽车左侧的指示灯ld1亮;当汽车刹车时,汽车右侧的指示灯rd2和汽车左侧的指示灯ld2同时亮;当汽车在夜间行驶时,汽车右侧的指示灯rd3和汽车左侧的指示灯ld3同时一直亮。
通过设置系统的输入信号:系统时钟信号clk,汽车左转弯控制信号left,汽车右转弯控制信号right,刹车信号brake,夜间行驶信号night和系统的输出信号:汽车左侧3盏指示灯ld1、ld2、ld3和汽车右侧3盏指示灯rd1、rd2、rd3实现以上功能。
系统的整体组装设计原理如图1.1所示。
图1.1 系统的整体组装设计原理
汽车尾灯控制器有4个模块组成,分别为:时钟分频模块、汽车尾灯主控模块,左边灯控制模块和右边灯控制模块,以下介绍各模块的详细设计。
1.3.1时钟分频模块
整个时钟分频模块的工作框图如图1.2所示。
图1.2时钟分频模块工作框图
时钟分频模块由VHDL程序来实现,下面是其VHDL代码:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity fenpin is
port(
clk : in std_logic;
q : out std_logic
);
end entity fenpin;
architecture behave of fenpin is
signal count:std_logic_vector(7 downto 0);
begin
process(clk)
begin
if rising_edge(clk) then
count<=count+1;
end if;
end process;
1.3.2 汽车尾灯主控模块
汽车尾灯主控模块工作框图如图3.3所示。
.
图1.3 主控模块工作框图
汽车尾灯主控模块由VHDL 程序来实现,下面是其段VHDL 代码: library ieee;
use ieee.std_logic_1164.all;
entity contrl is port( left,right,brake,night : in std_logic;
lp,rp,lr,brake_led,night_led :out std_logic
); end entity contrl;
architecture behave of contrl is begin
night_led<=night; brake_led<=brake; process(left,right)
variable temp:std_logic_vector(1 downto 0); begin
temp:=left & right;
when "01"=> lp<='0';rp<='1';lr<='0';
when "10"=> lp<='1';rp<='0';lr<='0';
when others=> lp<='0';rp<='0';lr<='0';
end case;
end process;
end architecture behave;
1.3.3左边灯控制模块
左边灯控制模块的工作框图如图3.4所示。
图1.4左边灯控制模块的工作框图
左边灯控制模块由VHDL程序来实现,下面是其VHDL代码:library ieee;
use ieee.std_logic_1164.all;
entity left_ctl is
port(
clk,lp,lr,brake,night:in std_logic;
ledl,ledb,ledn :out std_logic
);
end entity left_ctl;
architecture behave of left_ctl is
begin
process(clk,lp,lr)
begin
if rising_edge(clk) 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 architecture behave;
1.3.4右边灯控制模块
右边灯控制模块的工作框图如图3.5所示。
图1.5 右边灯控制模块的工作框图
右边灯控制模块由VHDL程序来实现,下面是其中的一段VHDL代码:library ieee;
use ieee.std_logic_1164.all;
entity right_ctl is
port(
end entity right_ctl;
architecture behave of right_ctl is
begin
ledb<=brake;
ledn<=night;
process(clk,rp,lr)
begin
if rising_edge(clk) 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 architecture behave;
2系统仿真
2.1分频模块仿真及分析
分频模块由VHDL程序实现后,其仿真图如图2.1所示。
图2.1 分频模块仿真图
2.2汽车尾灯主控模块仿真及分析
汽车尾灯主控模块由VHDL程序实现后,其仿真图如图2.2所示。
图2.2主控模块时序仿真图
对时序仿真图进行分析:right,left,night,brake 为输入信号,right为1表示右转,leftT为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
左边灯控制模块由VHDL程序实现后,其仿真图如图2.3所示。
图2.3左边灯控制模块时序仿真图
对时序仿真图进行分析:lp,lr,night,brake 为输入信号,lp为1表示左转,lr 为1表示右转,night为1表示夜间行路,brakeE为1表示刹车。
ledl,ledb,ledn为输出信号,表示汽车左侧的三盏灯。
如图所示:当lp为1时,ledl输出为1表示左侧灯亮,当brake为1时,ledb输出为1表示左侧灯亮,当night为1时,ledn输出为1表示左侧灯亮。
当lr为1时,左侧三盏灯输出均为0。
即没有灯亮。
2.4右边灯控制模块仿真及分析
右边灯控制模块由VHDL程序实现后,其仿真图如图4.4所示。
汽车尾灯控制器
12. 13
10
图2.4右边灯控制模块时序仿真图
对时序仿真图进行分析:rp,lr,night,brake 为输入信号,lr为1表示左转,rp
为1表示右转,night为1表示夜间行路,brakeE为1表示刹车。
ledr,ledbB,ledn为输出信号,表示汽车右侧的三盏灯。
如图所示:当rp为1时,ledr输出为1表示右侧灯亮,当brake为1时,ledb输出为1表示右侧灯亮,当night为1时,ledn输出为1表示右侧灯亮。
当lr为1时,右侧三盏灯输出均为0。
即没有灯亮。
2.5整个系统仿真及分析
按图3.1组装系统后的仿真图如图4.5所示。
图2.5 整个系统仿真图
对时序仿真图进行分析:right,left,night,brake 为输入信号,right为1表示
汽车尾灯控制器
2012
11
右转,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,表示左,右两侧各有一盏灯亮。
3 硬件电路部分 3.1芯片的选择
CPLD 采用Altera 新一代的MaxII 器件EPM570T100C5,配合QuartusII 可以很容易实现CPLD 的开发,模块具有4位键盘输入,4位开关量输入,8个动态LED 显示,1个静态LED 显示,8个发光管,1个蜂鸣器,用于完成试验,同时引出了3.3V 的IO 口,方便模块的扩展。
程序下载方法采用ByteBlaster ,本模块下载时,插上跳线帽JP214~JP217;其他模块下载时拔下跳线帽JP214~JP217。
3.1.1芯片的选择(图2.6)
图2.6
汽车尾灯控制器
12. 13
12 3.1.2 详细连线图(如图2.7)
图 2.7
3.2输入输出接口的选择
3.2.1开关量输入接口(S205~S208)
表F.3-3 拨盘开关输入接口
名称EPM507引脚号输入电平备注接口S205 33 左为0,右为1 电平输入left S206 34 左为0,右为1 电平输入right S207 35 左为0,右为1 电平输入brake S208 36 左为0,右为1 电平输入night
3.2.2发光管输出(D201~D208)
表F.3-4 发光管输出
4 试验总结
通过两星期的紧张工作,最后完成了我们的设计任务——汽车尾灯控制器的设计。
通过本次课程设计的学习,我深深的体会到设计课的重要性和目的性。
在设计中要求我们要有耐心和毅力,还要细心,稍有不慎,一个小小的错误就会导致结果的不正确,而对错误的检查要求我要有足够的耐心,通过这次设计和设计中遇到的问题,我也积累了一定的经验,相信对以后从事集成电路设计工作会有一定的帮助。
在应用VHDL的过程中让我真正领会到了其并行运行与其他软件顺序执行的差别及其在电路设计上的优越性。
用VHDL硬件描述语言的形式来进行数字系统的设计方便灵活,利用EDA软件进行编译优化仿真极大地减少了电路设计时间和可能发生的错误,降低了开发成本,这种设计方法必将在未来的数字系统设计中发挥越来越重要的作用!
本课程设计是在===老师和兄弟===同学精心指导下完成的。
在此,我要特别感谢两位!。