欢迎来到沃文网! | 帮助中心 分享知识,传播智慧!
沃文网
全部分类
  • 教学课件>
  • 医学资料>
  • 技术资料>
  • 学术论文>
  • 资格考试>
  • 建筑施工>
  • 实用文档>
  • 其他资料>
  • ImageVerifierCode 换一换
    首页 沃文网 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    用可编程逻辑器件PLD实现交通灯控制系统.doc

    • 资源ID:829130       资源大小:192.09KB        全文页数:15页
    • 资源格式: DOC        下载积分:20积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录 微博登录
    二维码
    微信扫一扫登录
    下载资源需要20积分
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,下载更划算!
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    用可编程逻辑器件PLD实现交通灯控制系统.doc

    1、 摘要:文章介绍了用VHDL 语言和图形块方综合法设计交通灯控制系统,实现了对路口交通灯系统的控制器的硬件电路描述。这种硬件电路描述在Altera 公司的EDA 软件平台和QuartusII环境下通过了编译,仿真,实现了交通灯系统的控制过程。关键词:VHDL硬件描述语言; EDA; 交通灯控制系统Designing of Traffic light controll system Based on PLDAbstract:This design chooses to use VHDL hardware descripton language and bolck logic which are

    2、in extensive use currently to realize the hardware electric circuit description of the control of the street corner traffic light system。Through edition and enulation under the environment of the Altera company EDA software terrace the Quartus II 。The program can be used in the truly traffic light c

    3、ontrol system。Key words:VHDL;EDA;Traffic light controll system前言随着我国正在进行现代化建设,交通事业得以蓬勃发展,交通安全管理特别是十字路口的安全管理一直是人们谈论的话题。传统的交通灯控制系统实现方法是中小规模集成电路、计算机控制法和PLC 控制法等,其主要缺点是体积大、功耗大、成本高、实现来较麻烦且功能不齐全。本文介绍一种基于可编程器件(PLD) 来实现的可编程的现代交通灯控制系统的设计方案,该方案的优点是体积小、功耗小、可靠性高、调节灵活、多功能、实现简单、使用灵活方便。该控制系统在东西、南北方向均设红、绿、黄、左拐四盏灯,按

    4、照绿黄左拐黄红顺序循环变化,并分别带减法计数显示,可以随时调整东西、南北方向车辆通行和停车时间;该控制系统还可以随时响应中断请求,这时东西、南北方向红灯亮,中断时间可外部预置,可手动结束中断以恢复正常通行,中断期间让特殊车辆通过。现代交通灯控制系统的设计成功对于实现我国交通管理的现代化、自动化、智能化具有重要意义。1 交通灯控制系统设计11 设计分析与要求: 交通灯按照路口交通运行的实际情况,在本系统中,设定系统的工作情况如下:南北方向设红(R1)、黄(Y1)、绿(G1)和左拐(L1),东西方向设红(R2) 、黄( Y2) 、绿( G2) 和左拐(L2)按合理的顺序亮灭,并能将灯亮的时间以倒计

    5、时的形式显示出来。两个方向各种灯亮的时间应该能够非常方便地进行设置和修改。其示意图如图1-1 所示。南西北东人行道人行道人行道人行道R1Y1G1L1R1Y1G1L1R2 Y2 G2 L2R2 Y2 G2 L2 图1-1:十字路口交通示意图交通灯状态转换图表示1为灯亮,0表示灯灭。南北方向和东西方向的红、黄、绿和左拐灯分别用R1、Y1、G1、L1 和R2、Y2、G2、L2 来表示。从状态转换表中可以看出,每个方向四种灯依次按如下顺序点亮,并不断循环:绿灯黄灯左拐灯黄灯红灯。并且每个方向红灯亮的时间应该与另一方向绿、黄、左拐、黄灯亮的时间相等。黄灯所起的作用是用来在绿灯和左拐灯后进行缓冲,以提醒行

    6、人该方向马上要禁行了。交通灯亮灭状态转换如表1-1所示: 表1-1 交通灯状态图南北方向东西方向绿灯(G1)黄灯(Y1)左拐灯(L1)红灯(R1)绿灯(G2)黄灯(Y2)左拐灯(L2)红灯(R2)1000000101000001001000010100000100011000000101000001001000010100此外,本设计中还设定南北和东西方向红、绿、黄、左拐灯亮的时间分别为55秒、40 秒、5 秒和15秒。如果遇到特殊车辆及紧急情况时有下列定义:Hold=1表示紧急情况,全部红灯亮;Hold=0表示正常情况。Reset=1时,计数器清零,Reset=0时,为正常状态。要求:显示十

    7、字路口南北和东西两个方向的红,绿,黄的指示状态。 实现正常的倒计时功能。用四组数码管作为路口南北和东西方向的倒计时显示。 按键Hold能实现特殊的功能,显示倒计时的四组数码管闪烁;计数器停止计数并保持在原来的状态;所有灯显示为红灯状态;特殊状态解除后能继续计数。12 基本原理运用VHDL语言进行系统设计,一般采用自上至下的设计方法。所谓自上至下的设计方法,就是从系统的总体要求出发,自上至下地逐步将设计内容细化,最后完成系统硬件的整体设计。采用自上至下设计方法的时候可以先建立设计的行为描述,建立设计的行为描述之后,可以在设计的早期阶段对设计的行为描述进行仿真,通过对仿真结果进行分析,进而调整、修

    8、改设计。原理框图如图1-2所示:第一次分频第二次分频控制器 G1G2Y1Y2Reset L1Hold L2R1R2NumANumB显示模块提取模块 图1-2:交通灯原理框图13 设计流程现场可编程门阵列/复杂可编程逻辑器件FPGA/CPLD (Field Programmable Gate Array/Complex Programmable Logic Device )具有用户可编程、时序可预测、速度高和容易使用等优点。上至高性能CPU,下至简单的74电路,都可以用FPGA/CPLD来实现。而且FPGA/CPLD的可编程性,使修改和产品升级变得十分方便。用户可以根据原理图或硬件描述语言自由地

    9、设计一个数字系统,然后通过软件仿真,事先验证设计的正确性。采用VHDL语言进行软件编程,利用QuartusII软件平台进行设计输入、项目处理、项目校验及器件编程等。设计输入可采用原理图输入、文本输入、波形输入或第三方EDA工具生成的设计网表文件等输入方法;设计校验包括功能仿真、时序仿真和定时分析;器件编程是用经过仿真确认的配置文件配置FPGA/CPLD器件;在线校验是对编程后的FPGA/CPLD器件加入实际的激励信号进行测试,检查是否可完成预定功能;最后完成整个系统设计。设计流程图如图1-3所示。设计思路设计输入设计处理设计仿真器件编程系统测试 图1-3:用QuartusII的FPGA/CPL

    10、D设计周期14 设计说明 本设计采用从上而下(Topdown)的设计风格,顶层文件采用结构图输入。下面是端口说明: Clk20M:输入,系统输入时钟; Hold:输入,功能键,紧急保持; Reset:输入,功能键,复位; Flash:输出,信号转换期间的闪烁信号; R1 :输出,南北方向显示红灯信号,高电平有效;G1 :输出,南北方向显示绿灯信号,高电平有效;Y1 :输出,南北方向显示黄灯信号,高电平有效;L1 : 输出,南北方向显示左拐灯信号,高电平有效;R2 :输出,东西方向显示红灯信号,高电平有效;G2 :输出,东西方向显示绿灯信号,高电平有效;Y2 : 输出,东西方向显示黄灯信号,高电

    11、平有效;L2 :输出,东西方向显示左拐灯信号,高电平有效;DisplayA: 南北方向倒计数时间显示十位;DisplayB: 南北方向倒计数时间显示个位;DisplayC: 东西方向倒计数时间显示十位;DisplayD: 东西方向倒数计时间显示个位; 15 设计模块说明 顶层原理图包含9个子模块:时钟控制模块TO10Hz和TO1Hz对系统时钟进行分频,得到10Hz和1Hz的时钟;Fenwei1和Fenwei2模块对Controller模块输出的计数值NumA和NumB进行分解,得到两路口的倒计时时间显示十位、个位信号;Controller模块是整个设计的核心,实现逻辑和时序控制;Display

    12、A、DisplayB、DisplayC、DisplayD显示模块对输入进行译码得到七段显示器驱动信号。各子模块用独立实体构成,独立完成各自功能,它们最为结构图输入的逻辑内核对其行为进行描述。151 顶层设计文件 顶层文件:采用的是结构图输入。结构图输入是自顶向下(Top-Down)的设计方法。设计者首先根据设计结构的需要,在顶层文件中画出图形块(或是器件符号),然后在图形块上输入端口和参数信息,用连线器(信号线或总线、管道)连接各个组件。152 TO10Hz模块 TO10Hz模块功能是实现把输入为20MHz的时钟脉冲变成为10Hz输出。流程图如图1-4所示:20MHz输入计数1万次输出10Hz

    13、脉冲noyes 图1-4:TO10Hz模块流程图程序实现过程如下: if (Clk20M event and Clk20M=1)then -当Clk20M时钟上升沿到来时执行 if tout=777777then -计数1000000次,输出翻转一次,由20M的频率分成10Hz tout=0; Clk=not Clk; else tout=tout+1;153 TO1Hz模块 TO1Hz模块功能是实现把输入为10Hz的时钟脉冲变成输出为1Hz的时钟脉冲。模块流程图如图1-5所示:10Hz输入计数5次输出1Hz脉冲noyes 图1-5:TO1Hz模块程序实现过程如下: if (Clk10Hz e

    14、vent and Clk10Hz=1)then 10Hz脉冲上升沿到来是执行 if tout=4 then -计数5次,输出翻转一次,对应10分频 tout=0; Clk=not Clk; else tout=tout+1;154 Controller 控制模块 Controller模块是交通灯控制系统的核心部分,主要是控制交通灯的亮灭时间,亮灯顺序为绿灯黄灯左拐灯黄灯红灯。本设计中设定南北和东西方向红、绿、黄、左拐灯亮的时间分别为55秒、40 秒、5 秒和15秒。如果遇到特殊车辆及紧急情况时有下列定义:Hold=1表示紧急情况,全部红灯亮;Hold=0表示正常情况。Reset=1时,计数器清

    15、零,Reset=0时,为正常状态。先是南北方向的绿灯亮40秒,然后黄灯亮5秒转左拐灯亮15秒,然后是黄灯亮5秒后紧接着转东西方向绿灯亮40秒南北方向的红灯亮,然后黄灯亮5秒后转左拐灯亮15秒后黄灯亮5秒,再转为南北方向绿灯亮和东西方向红灯亮循环进行。流程图(在正常情况下)如图1-6所示:G1 R2T=40?Y1 R2T=5?L1 R2T=15?Y1 R2T=5?G2 R1T=40?Y2 R1T=5?L2 R1T=15?yesyesyesyesyesyesyesnonononononono 图1-6:Controller模块过程实现程序如下:if (counter=39) then -0到40秒

    16、南北方向绿灯亮,南北方向其它灯不亮 NumbA=40-counter; R1=0; G1=1; Y1=0; L1=0; elsif(counter=44)then -41到45秒南北方向黄灯亮,南北方向其它灯不亮 NumbA=45-counter; R1=0; G1=0; Y1=1; L1=0; elsif(counter=59)then -46到60秒南北方向左拐灯亮,南北方向其它灯不亮 NumbA=60-counter; R1=0; G1=0; Y1=0; L1=1; elsif(counter=64)then 61到65秒南北方向黄灯亮,南北方向其它灯不亮 NumbA=65-counte

    17、r; R1=0; G1=0; Y1=1; L1=0; else NumbA=130-counter; -66到130秒南北方向红灯亮,南北方向其它灯不亮 R1=1; G1=0; Y1=0; L1=0; end if; if (counter=64) then -0到65秒东西方向红灯亮,东西方向其它灯不亮 NumbB=65-counter; R2=1; G2=0; Y2=0; L2=0; elsif (counter=104) then -66到105东西方向绿灯亮,东西方向其它灯不亮 NumbB=105-counter; R2=0; G2=1; Y2=0; L2=0; elsif (coun

    18、ter=109) then -106到110秒东西方向黄灯亮,东西方向其它灯不亮 NumbB=110-counter; R2=0; G2=0; Y2=1; L2=0; elsif (counter=124) then -111到125秒东西方向左拐灯亮,东西方向其它灯不亮 NumbB=125-counter; R2=0; G2=0; Y2=0; L2=1; else NumbB=130-counter; -126到130秒东西方向黄灯亮,东西方向其它灯不亮 R2=0; G2=0; Y2=1; L2=60) then -计数大于或等于50 NumA=6; -提取南北方向显示的十位 NumB=50

    19、) then NumA=5; NumB=40) then NumA=4; NumB=30) then NumA=3; NumB=20) then NumA=2; NumB=10) then NumA=1; NumB=NumbA-10; else NumA=0; NumB=60) then -计数大于或等于60 NumC=6; -提取东西方向显示的十位 NumD=50) then NumC=5; NumD=40 then NumC =4; NumD=30 then NumC =3; NumD =20 then NumC =2; NumD =10 then NumC =1; NumD =NumbB

    20、-10; else NumC =0; NumD =NumbB; end if;157 DisplayA显示模块 DisplayA模块是把南北方向的十位显示数值译码驱动七段数值显示器。功能实现主要程序:if (NumA=0) then - 当十位为0时 shu=0000; elsif (NumA=1) then - 十位为1时 shu=0001; elsif (NumA=2) then -十位为2时 shu=0010; elsif (NumA=3) then -十位为3时 shu=0011; elsif (NumA=4) then -十位为4时 shu=0100; elsif (NumA=5)

    21、then -十位为5时 shu=0101; elsif (NumA=6) then -十位为6时 shu=0110; else shu=0000; end if;if (timeoutdisplayadisplayadisplayadisplayadisplayadisplayadisplayaDisplaya=0000000; end case; else Displaya=0000000; end if;158 DisplayB显示模块 DisplayB模块是把南北方向的个位显示数值译码驱动七段数值显示器。程序如下:if (NumB=0) then -个位为0 shu=0000; elsi

    22、f (NumB=1) then -个位为1 shu=0001; elsif (NumB=2)then -个位为2 shu=0010; elsif (NumB=3) then -个位为3 shu=0011; elsif (NumB=4) then -个位为4 shu=0100; elsif (NumB=5) then -个位为5 shu=0101; elsif (NumB=6) then -个位为6 shu=0110; elsif (NumB=7) then -个位为7 shu=0111; elsif (NumB=8) then -个位为8 shu=1000; elsif (NumB=9) th

    23、en -个位为9 shu=1001; else shu=0000; end if;if (timeoutdisplaybdisplaybdisplaybdisplaybdisplaybdisplaybdisplaybdisplaybdisplaybdisplaybDisplayb=0000000; end case; else Displayb=0000000; end if; 159 DisplayC显示模块 DisplayC模块是把东西方向的十位显示数值译码驱动七段数值显示器。主要程序如下:if (NumC=0) then -十位为0 shu=0000; elsif (NumC=1) th

    24、en -十位为1 shu=0001; elsif (NumC=2) then -十位2 shu=0010; elsif (NumC=3) then -十位3 shu=0011; elsif (NumC=4) then -十位为4 shu=0100; elsif (NumC=5) then -十位为5 shu=0101; elsif (NumC=6) then -十位为6 shu=0110; else shu=0000; end if;if (timeoutdisplaycdisplaycdisplaycdisplaycdisplaycdisplaycdisplaycDisplayc=00000

    25、00; end case; else Displayc=0000000; end if;1510 DisplayD显示模块 DisplayD模块是把东西方向的个位显示数值译码驱动七段数值显示器。主要程序如下:if (NumD=0)then -个位为0 shu=0000; elsif (NumD=1) then -个位为1 shu=0001; elsif (NumD=2) then -个位为2 shu=0010; elsif (NumD=3) then -个位为3 shu=0011; elsif (NumD=4) then -个位为4 shu=0100; elsif (NumD=5) then

    26、-个位为5 shu=0101; elsif (NumD=6) then -个位为6 shu=0110; elsif (NumD=7) then -个位为7 shu=0111; elsif (NumD=8) then -个位为8 shu=1000; elsif (NumD=9) then -个位为9 shu=1001; else shu=0000; end if;if (timeoutdisplayddisplayddisplayddisplayddisplayddisplayddisplayddisplayddisplayddisplaydDisplayd=0000000; end case;

    27、 else Displayd=0000000; end if;2 交通灯控制系统电路仿真完成了设计项目的输入、综合以及布局布线等步骤以后,就开始使用分析综合工具模块分析设计和建立工程数据库。经过分析没有错误,还需要使用EDA仿真工具或QuarutsII仿真器对设计的功能和时序进行仿真,以验证设计的正确性。21 引脚分配综合分析没错后,紧接着就是对设计中的输入、输出引脚指定到具体的器件引脚号码上,将其一一对应,指定引脚号码称为引脚分配。 分配完后,检查引脚分配是否合法。运行“Processing”|“Start”|“Start I/O Assignment Analysis”菜单命令进行引脚分配

    28、检查。22 仿真验证(1)建立并指定向量激励文件。1、选择“File”|“New”命令,弹出新建文件对话框。2、在对话框中,打开“Others Files”,从中选择“Vector Waveform File”,点击“OK”。 (2)在矢量波形文件中加入输入、输出节点。通过选择“View”|”Utility Windows”| “Node Finder”命令,在弹出的“Node Finder”界面中,查找需要加入波形文件中的节点名。 (3)仿真时间设置。编辑输入点波形,1、时钟节点波形输入,2、Reset节点波形输入3、Hold节点波形输入。(4)设计仿真,1、仿真器的设置,2、功能仿真和时序

    29、仿真设置,3、启动仿真器(5)仿真结果分析(如图2-1所示) 图2-1:功能仿真结果结论:经过仿真验证可以实现交通灯系统的控制,只是数字显示部分出现了点问题,可能是计数器脉冲传输过程发生问题了,解决这个问题可以把扫描时间减少。用PLD来设计交通灯系统具有方便、效益高、成本低等特点,仿真过程中能随时改变亮灯的时间和顺序,系统调试非常灵活。用PLD来设计交通灯系统仅仅是数字系统设计的一种方法,当然可以用很多其它的方法设计交通灯控制系统,比如可以用单片机,PLC等等,这些设计方法还有待我们在以后的工作中进一步的学习和掌握。总结VHDL 有着类似C 语言的风格易于学习和掌握,与传统的原理图输入设计方法

    30、相比较VHDL 更适用于规模日益增大的数字系统,用VHDL等硬件描述语言进行数字系统的设计是当前EDA 发展的趋势也是一种具有广阔前景的集成电路开发工具。致谢 感谢老师们在百忙之中对我指导,还有我的父母对我的养育、培养。也感谢同学们对我的支持和关心。参考文献:1 王道宪:CPLD/FPGA可编程逻辑器件应用与开发 2004年01月第1版2 陈云洽:CPLD应用技术与数字系统设计 2003年05月第1版3 清源计算机工作室编著:数字系统设计与PLD应用(第2版) 2000年08月4 任晓东:CPLD/FPGA高级应用开发指南2003年06月第1版5 蒋璇 臧春华: 数字系统设计与PLD应用技术2001年01月第1版6 许瑞麟:PLD与CPLD数字电路设计使用MACHXL 2001年05月第1版7 廖裕评 陆瑞强:CPLD数字电路设计使用MAX+plus入门篇 2001年10月第1版8 吴继华 王诚:ALTERA FPGA/CPLD设计 高级篇 2005年07月第1版9 杨恒 李爱国:FPGA/CPLD最新实用技术指南 2005年1月10 廖日坤:CPLD/FPGA嵌入式应用开发技术白金手册 2005年9月15


    注意事项

    本文(用可编程逻辑器件PLD实现交通灯控制系统.doc)为本站会员(精***)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给沃文网发消息,QQ:2622162128 - 联系我们

    版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

    Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1

    陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922