世娱网
您的当前位置:首页基于FPGA的交通灯数字电路设计

基于FPGA的交通灯数字电路设计

来源:世娱网
VA 一蠢 【技术研发】 基于F P GA的交通灯数字电路设计 张崇武 (山东电子职业技术学院山东济南250014) 摘要: 使用VHDL ̄言在Quartus II软件平台下实现了对交通灯控制器的设计仿真,并通过Cyclone系列EP1C12Q240C8(QuickSOPC开发板)器件下载模拟实 现。教学中在实验室采用EDA技术即可完成较复杂数字电路系统的设计仿真,体现EDA教学的优越性。 关键词: 交通灯控制器;FPGA:VHDL;模拟仿真 中图分类号:u4文献标识码:A文章编号:1671--7597(2010)0920104一O1 0前言 本设计的核心是一个计数外围为0—49(共50s)的计数器和一个根据 计数值做出规定反应的控制器。另外,核心板提供的时钟为48Mttz,因此还 需要一个分频电路。还需要驱动七段数码管,因此还必须一个译码电路。 系统框图如图l所示。 交通灯控制器的设计是数字电路教学中的经典问题,传统的设计方法 是基于中、小规模集成电路进行的,采用的电路元件多、接线复杂、故障 率高、可靠性低,修改电路的功能就要修改硬件电路,在教学上费时、费 力还不容易调试,成功率很低。随着电子设计自动化(EDA)技术的发展, 在线可编程逻辑器件的出现,使实验室中制作专用集成电路成为可能。我 们使用现场可编程门阵列(FPGA)作为设计载体,以硬件描述语言 (VHDL)作为系统设计的主要表达手段,以计算机、大规模可编程逻辑器 件的开发软件及开发实验系统为设计工具,使得我们在实验室就可以制作 专用集成电路,大大提高了教学质量。 1设计目标 3设计条件 根据设计方案采用的设计语言是VHDL语言,自上而下的设计方法,软 件环境是QuartusII5.0英文版,硬件环境是EDA实验室的SmartSOPC实验 箱,只采用了QuickSOPC核心板与交通灯模块。其中QuickSOPC核心板上搭 载cycl0neEPlc6Q24O的FPGA器件,该器件有57个IOH,还有一个可供用户 自己设计的PACK,交通灯模块就是接在此PACK上,核心板采用的系统时钟 是48MHz。 在十字路口,每条道路各有一组红、黄、绿灯(LED灯)和倒计时显 示器(数码管),要求: 1)在十字路口的两个方向上各设一组红、绿、黄灯,显示顺序为其 中一方向是绿、黄、红,另一方向是红、绿、黄。 2)设置一组数码管,以倒计时的方式显示允许通行或禁止通行的时 间,其中绿、黄、红的持续时间分别是20s、5s、25s。 3)当任意一条路上出现紧急情况时,如当消防车、救护车或其他需 要优先放行的车辆通过时,各方向上均是红灯亮,倒计时停止,且显示数 字在闪烁。当特殊状态结束后,控制器恢复原来状态,继续正常运行。 4)创新功能,如在红灯结束前5s使用声音提醒司机做好起步准备, 使交通灯更加人性化。 4设计过程 设计采用自上而下的设计方法,首先根据交通灯控制系统的功能要 求,将功能要求转化成系统状态图,然后再对系统进行模块的划分、定义 各个模块的I/O端口及具体功能,本系统共有7个模块,分别是分频模块 ferquencyl0和ferquencyl、计数模块counterl、控制模块control ler、分 位模块fenwei、显示模块display、声音模块beep,然后对各个模块用 VHDL语言编程、编译及功能仿真,检查所编程序是否正确。如果正确则生 成图形文件供顶层文件调用;如果出现错误,则要修改到正确为止,因为 顶层程序是对底层程序的概括,它是把底层程序各个模块连接起来,相当 于把每个模块的功能汇聚到一起。实现整个系统的控制功能。所以底层程 序的正确与否关系到顶层程序的运行结果。 1)计数模块 在本系统中计数模块根据时钟上升沿的个数来计数,当时钟频率为 2设计方案 本设计逻辑简单,用到的外围器件也不多,设计的重点在计时上面, 因此计数器是必不可少的。对于这个系统,既可以只用计数器实现,也可 以使用计数器配合状态机来实现,但两个状态机之间的同步有困难,因此 只用计数器实现。 1Hz时每来一个时钟上升沿就是1s,时钟频率是Phferquencyl模块将1Kttz分。 频得到的。这里需要的计数器的计数范围为0到49,计到49以后,下一个时 钟沿恢复到O,开始下一轮计数。此外,当检测到特殊情况(hold=0)时, 计数器暂停计数,而系统复位信号reset(reset=0)则使计数器异步清零。 2)控制模块 控制器的作用是根据计数模块的countnum[5..0]端送来的计数值控制 发光二极管的亮、灭,输出端口为reda、redb、greena、greenb、 yellowa、yellowb。另外控制器还负责输出倒计时数值给七段数码管的分 位译码电路, ̄numa[4..0]、numb[4..0]端口输出。以及输出一个使能信 号给声音模块(en=O)。此外,当检测到特殊情况(hold=0)发生时,无条 件点亮红色的发光二极管。 3)分位模块 因为从控制器numa[4..0]、numb[4..0]端口输出的倒计时数值可能是 l位或者2位十进制数,所以在七段数码管的译码电路前要加上分位电路 (即将其分为2个l位的十进制数,如25分为2和5,7分为0和7)。使用简单 的IF语句即可实现功能。 图1 (下转第85页) 【技术研发】 §l— V A LLEJL doc.Paragraphs(p—id).Alignment=wdA1ignParagraphLeft doc.Paragraphs(D id).Space15 doe.Paragraphs(pid).FirstLineIndent=26 4)摘要和关键字模块设计 摘要和关键字处理起来有些复杂,因为该类型的段落中包括了两种格 式,如摘要和关键字这几个字的格式是一种,段落内的格式又是另外一 种。为此要采用截取文字的方式进行处理。请看下面的代码。 d o c.Ra n g e(do c.Pa r a g r aPh s(p—i d).Ra n g e.St art, doc.Paragraphs(p—id).Range.Start+3).Font.Name= 黑体 5)图片和表格模块设计 该模块主要关注的问题有两个方面,一方面是如何把图片和表格插入 到WORD中。另一方面就是图片和表格的编号的问题。编号方案有两种方 式,一种是系统编号,即系统按1,2,3……这种形式进行固定编号,另外 一种是用户自定义编号,如获1-1或1.1的编号方式。第一种编号方式的要 点在于如何让系统记住前面已经有几张图或几张表,为此要定义一个公有 变量,让它存诸当前图或表的数量。图片插入 ̄tJORD中可使用In 1ine WShapes.Add Picture的方法,如下面的程序语句。 doc.Paragraphs(p id).Range.In l ine Shapes.Add Picture(pic—src) 表格操作上有些麻烦,因为用vB编程画一张表格的编程量较大,在这 里我们可采用另外一种简便方式,即用PASTE方法直接实现复制。用户把 WORD中的表格复制下,然后在软件中调用粘贴方式实现移入论文中,如下 面的程序代码。 Doc.Paragraphs(pid).Range.Paste“粘贴表格” 图3毕业论文格式排版系统用户界面 基金项目:浙江东方职业技术学院高等教育研究重点课题 参考文献: [i]北京博彦科技发展有限责任公司,编程高手office vBA[M].北京大学 出生版社,2000,(12)183—191. [2]徐国平,VBA中文版程序设计与应用[伽.清华大学出版社,1998 (10)240—255. 参考文献格式设计和正文的格式设计差不多,实现时只要在正文的基 础上外加一个编号控制即可,这里不再说明。 4系统实现 笔者于2007初已开发了一套《浙江东方职业技术学院毕业论文格式排 版系统》,界面如图3所示,现已投入到使用中,到目前为止,已有近 5000毕业生应用了这个系统,广大师生对该系统评价也较好。 5息结 [3]Microsoft office帮助系统. 作者简介: 骆正茂(1978一),男,安徽芜湖人,浙江东方职业技术学院工程技术系 高级工程师。 综上所述,当前在高职院校中开发一套论文格式排版系统是非常必要 的,在实际的开发过程中,我们首先要把握好论文的格式要求,然后结合 WORD对象模型就可很方便实现系统要求。 (上接第1 04页) 4)分频模块 分频,即从一个特定频率里分离出多种需要的频率,分频模块的好坏 直接影响计数模块计时的准确性,进而影响到整个系统的稳定性和准确性。 6)声音模块 设计声音模块的目的是为了在红灯结束前5s用声音提醒司机做好起步 准各,这样即避免了司机由于紧盯红灯带来的紧张和疲劳,又避免了由于 本系统中分频模块的功能是将核心板的48MHz分频为1IⅢz与1Hz,通过 clklk端口与clkl端口分别供给显示模块、控制模块与计数模块使用。 ferquencylO与ferqueneyl的设计原理是~样的,利用计数值可并行预置的 加法计数器来设计完成。不同的是ferquencylO是将481, ̄1z进行了48000分频 得到l圈z的信号,ferquencyl是将ferquencylO的1KHz进行1000分频得到 1Hz。 分心而错过起步时机,是一个比较人性化的设计。原理也比较简单,在控 制器的控制下,只要给喇叭输入~定频率的脉冲,喇叭就会发出音乐声。 5结论 本文利用硬件描述语言VHDL编程,借助Ahera公司的QuartusII软件进 行了编译及仿真测试,通过FPGA芯片实现了一个实用的交通灯控制系统。 设计由于采用TEDA技术,使用自上而下的设计方法,使设计过程清晰明 了,简单易学。 参考文献: [1]将立平 基于ISP芯片的可编程数字移相器设计[J].电子工程师。 2000,(12). 5)显示模块 显示模块相当一个7位译码电路,SmartSOPC的硬件是2个4位的动态共 阳数码管,其中每个数码管的8个段分别连接到segO-seg7,8个数码管分别 由8个选通信号digO—dig7来选择。被选通的数码管显示数据,其余关闭。如 果希望8个数码管显示数据就必须使得8个选通信号digO-dig7分别被单独选 通,并在此同时,在段信号输入口加上希望在该对应数据管上显示的数据, 随着选通信号的扫描就能实现扫描显示的目的。虽然每次只有一个led显 示,但只要扫描显示速率够快,由于人的视觉余晖效应,使我们仍会感觉所 有的数码管都在同时显示。在本系统中,我们只需要4个数码管显示,因此 我们在选通的时候只需要单独选中4个就可以了,其余都置为高电平。 [2]吴超英 基于CPLD/FPGA技术的数字系统设计.安徽工业大学学报。 2003.20. 作者简介: 张崇武,男,助教,山东电子职业技术学院电子系。 

因篇幅问题不能全部显示,请点此查看更多更全内容