基于EDA技的汽车尾灯控制电路设计.docx

上传人:b****3 文档编号:5054639 上传时间:2022-12-12 格式:DOCX 页数:9 大小:214.81KB
下载 相关 举报
基于EDA技的汽车尾灯控制电路设计.docx_第1页
第1页 / 共9页
基于EDA技的汽车尾灯控制电路设计.docx_第2页
第2页 / 共9页
基于EDA技的汽车尾灯控制电路设计.docx_第3页
第3页 / 共9页
基于EDA技的汽车尾灯控制电路设计.docx_第4页
第4页 / 共9页
基于EDA技的汽车尾灯控制电路设计.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

基于EDA技的汽车尾灯控制电路设计.docx

《基于EDA技的汽车尾灯控制电路设计.docx》由会员分享,可在线阅读,更多相关《基于EDA技的汽车尾灯控制电路设计.docx(9页珍藏版)》请在冰豆网上搜索。

基于EDA技的汽车尾灯控制电路设计.docx

基于EDA技的汽车尾灯控制电路设计

汽车尾灯控制电路

一、设计任务

(一)系统功能

汽车尾灯控制电路是很常用的工作电路,在日常的生活中有着很广泛的应用。

汽车行驶时,会出现正常行驶、左转弯、右转弯、刹车、倒车五种情况,针对这五种情况可以设计出汽车尾灯的控制电路来表示这五种状态。

根据以上所述,应用数字电子技术的知识,设计一款汽车尾灯控制系统,该系统中:

1、假设汽车尾部左右两侧各有3个指示灯(用发光二极管模拟);

2、汽车正常运行时指示灯全灭;

3、汽车左转弯时,左侧3个指示灯按左循环顺序点亮,汽车右转弯时,右侧3个指示灯按右循环顺序点亮,临时刹车和倒车时所有指示灯同时亮。

4、倒车时播放语音警告

5、设置两个可控制的开关,可产生00、01、10、11四种状态

开关置为00状态时,表示汽车处于正常运行状态。

开关置为01状态时,表示汽车处于右转弯状态。

开关置为10状态时,表示汽车处于左转弯状态。

开关置为11状态时,表示汽车处于刹车状态。

另设一开关表示汽车运行状态,0表示向前运行,1表示向后倒车。

(二)汽车尾灯控制电路设计任务

1、系统框图与原理图设计

2、系统电路原理EDA设计与仿真

3、系统电路的PCB印制板设计

4、硬件调试

(三)EDA仿真实验条件要求

实验板仿真芯片用AlteraCyclone系列的1C6240-pinTQFP可编程逻辑芯片。

大部分仿真用计算机软件来完成,当认为运行比较理想时,要按照后文的管脚定义,分配好管脚,编译成可下载的文件,下载到实验板上。

要求能够实现主体功能,实验结果存在的问题,要在报告中分析其原因。

二、实际设计

(一)、系统框图与原理图设计

该系统的内部控制主要由个模块构成,分别为:

状态开关、控制器、倒车警告电路及二极管电路。

系统原理框图如下:

 

1、状态开关共由3个开关组成,一个开关控制汽车运行方向,其余两个开关表示汽车运行状态。

2、控制器为写入程序的AlteraCyclone系列的1C6240-pinTQFPFPGA芯片,由它根据输入的开关状态控制相应的输出信号。

3、尾灯发光二极管是由6个二极管分成两组构成的电路,模拟汽车尾部的左右尾灯。

4、倒车报警电路是由语音芯片WTV020构成,当汽车倒车时控制器输出相应信号使该报警电路工作。

(二)系统原理EDA设计与仿真

1、EDA软件和硬件环境

EDA软件为Modelsim和QuartusII,硬件环境为友晶公司Trex_C1开发板。

2、verilog编程设计

本设计才用verilog语言编写了含有4个状态的状态机,四个状态分别对应正常行驶、左转、右转和紧急刹车,在左转和右转状态中利用verilog模拟移位寄存器对输出信号移位处理得到信号灯循环闪亮的效果,具体设计原理图如下:

 

程序代码:

`timescale1ns/100ps

modulecarled(clk,sw_in,led_left,led_right,state);

inputclk;

input[1:

0]sw_in;

output[1:

0]state;

output[2:

0]led_left;

output[2:

0]led_right;

reg[2:

0]led_left;

reg[2:

0]led_right;

reg[31:

0]count;

reg[31:

0]temp1;

reg[31:

0]temp2;

parameter[1:

0]

s0=2'b00,s1=2'b01,s2=2'b10,s3=2'b11;

reg[1:

0]state;

always@(sw_in)

case(sw_in)

2'b00:

state=s0;

2'b01:

state=s1;

2'b10:

state=s2;

2'b11:

state=s3;

endcase

always@(stateorclk)

case(state)

s0:

begin

led_left[2:

0]=3'b0;

led_right[2:

0]=3'b0;

temp1=0;

temp2=0;

end

s1:

begin

led_left[2:

0]=3'b000;

//initial

if(temp1==0)

led_right[2:

0]=3'b100;

else

led_right[2:

0]={led_right[0],led_right[2:

1]};

temp1=temp1+1;

end

///////////////////////////////////////////////

s2:

begin

led_right[2:

0]=3'b000;

if(temp2==0)

led_left[2:

0]=3'b001;

else

led_left[2:

0]={led_left[1:

0],led_left[2]};

temp2=temp2+1;

end

s3:

begin

led_left[2:

0]=3'b111;

led_right[2:

0]=3'b111;

temp1=0;

temp2=0;

end

endcase

endmodule

testbanch代码:

`timescale1ns/100ps

modulecarled_tb;

reg[1:

0]sw_in;

wire[2:

0]led_left;

wire[2:

0]led_right;

wire[1:

0]state;

regclk;

carledcarled_inst(clk,sw_in,led_left,led_right,state);

initialbegin

clk=1'b0;

end

initial

begin

forever#1

clk=~clk;

end

initialbegin

sw_in=2'b00;

#5sw_in=2'b01;

#5sw_in=2'b10;

#5sw_in=2'b11;

#5$stop;

end

Endmodule

3、ModelSim系统仿真:

ModelSim编译结果:

ModelSim波形仿真结果:

仿真结果分析:

sw_in[1:

0]代表汽车状态控制开关,led_left[2:

0]表示汽车左尾灯,led_right[2:

0]表示汽车右尾灯,state表示汽车状态,clk为时钟信号。

当汽车控制开关为00时,汽车处于正常运行状态,左右尾灯都是000。

当控制开关sw_in[1:

0]变为01时,汽车状态state变为01,汽车处于右转状态,右尾灯随时钟信号循环右移闪亮。

当控制开关sw_in[1:

0]变为10时,汽车状态state变为10汽车左转,左尾灯随时钟信号循环左移闪亮。

当sw_in[1:

0]变为11时,左右尾灯全部亮。

波形仿真时选择时钟周期为1ns,汽车尾灯移位周期为1个时钟周期,实际应用时可根据时钟频率调节尾灯移位周期为多个时钟周期。

4、由Verilog源代码生成RTL级电路:

4、QuartusII设计验证:

QuartusII编译结果:

将生成的文件通过JTAG方式下载到TrexC1开发板中:

开发板引脚分配:

名称

引脚号

接口

名称

引脚号

接口

sw_in[0]

Pin14

KEY[0]

led_left[0]

Pin50

LED[0]

sw_in[1]

Pin13

KEY[1]

led_left[1]

Pin11

LED[1]

led_right[0]

Pin193

LED[3]

led_left[2]

Pin228

LED[2]

led_right[1]

Pin170

LED[4]

clk

Pin28

OSC_50

led_right[2]

Pin131

LED[5]

测试结果:

当KEY[0],KEY[1]均未按下时,6个LED均不发亮,当按下KEY[0]时,LED[3:

5]依次向右循环闪亮,当按下KEY[1]时,LED[0:

2]依次向左循环闪亮。

当同时按下KEY[0:

1]时,6个LED灯同时亮。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1