基于FPGA的模拟路灯控制系统的设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于FPGA的模拟路灯控制系统的设计
覃洪英
【摘要】以FPGA芯片为控制核心,设计了一个模拟路灯控制系统,该系统可以实现自动设定显示开关灯时间、根据环境明暗和交通状况自动开关灯等功能.外围硬件
电路主要包括光线信号和位置信号的采集、按键输入、路灯指示和故障检测以及声光报警和显示电路.FPGA核心控制电路部分主要包括模式调节模块、正常时间计
时及调试模块、路灯同步定时和分别定时开关灯模块、光线控制模块、交通状况控制模块和译码显示模块.每个模块都通过了编译调试且仿真测试结果正确,实现了模
拟路灯控制系统的控制功能,达到了设计要求.
【期刊名称】《长江大学学报(自然版)理工卷》
【年(卷),期】2011(008)010
【总页数】4页(P95-98)
【关键词】FPGA;路灯控制;定时;模块
【作者】覃洪英
【作者单位】长江大学电子信息学院,湖北荆州434023
【正文语种】中文
【中图分类】TP273
模拟路灯控制系统的设计方法很多,可以采用PLC为控制单元实现整个控制,也
可以利用单片机实现整个模拟路灯控制系统的控制,还可以采用FPGA进行控制。
FPGA具有资源丰富、可灵活编程、运算处理方便、功能扩展容易等特点,为此,
笔者基于纯硬件FPGA器件实现了一个模拟路灯系统的控制。
控制系统结构如图1所示,路灯布置如图2所示。
具体功能要求是:①支路控制器有时钟功能,能设定、显示开关灯时间,并控制整条支路按时开灯和关灯。
②支路控制器应能根据环境明暗变化,自动开灯和关灯。
③支路控制器应能根据交通情况自动调节亮灯状态:当可移动物体M(在物体前端标出定位点,由定位点确定物体位置)由左至右到达S点时(见图2),灯1亮;当物体M到达B点时,灯1灭,灯2亮;若物体M由右至左移动时,则亮灯次序与上相反。
④支路控制器能分别独立控制每只路灯的开灯和关灯时间。
⑤当路灯出现故障时(灯不亮),支路控制器应发出声光报警信号,并显示有故障路灯的地址编号[1]。
根据设计要求,采用FPGA作为控制单元的模拟路灯系统整体设计框图如图3所示。
系统的外围电路主要包括光线信号采集部分、位置信号采集部分、按键输入部分、路灯指示及故障检测电路、声光报警电路和显示电路部分。
FPGA控制电路根据不同的按键输入由光线的亮暗或者目标物体的位置状态或者不同的开关灯时间控制路灯的开关,并将当前的时间和模式显示出来。
同时由路灯指示电路中路灯的故障输出信号控制声光报警电路利用声音和灯光进行报警提示[2]。
1)模式调节模块模式调节模块如图4所示,该模块实现根据模式按键
MODE_BUTTON所按次数的不同,进行000至100循环计数,当模式为000时进行正常计时及调试,当模式为001时实现路灯同步定时开关灯,当模式为010时实现各支路分别定时开关灯,当模式为011时实现光线亮暗控制开关灯,当模式为100时实现交通状况控制开关灯。
调试启动键OPEN_BUTTON实现在不同模式下根据功能要求启动相应的设置。
模块中对启动键所按次数进行从00至11循环计数。
CLK0为秒脉冲信号,起消除按键抖动的作用[3]。
2)正常时间计时及调试模块正常时间计时及调试模块如图5所示,该模块在秒脉
冲CLK0的作用下实现24h制的正常计时(小时、分钟、秒),且在000模式下,利用分钟增加按键INC_MINUTE和小时增加按键INC_HOUR可以进行分钟和小时的调节。
CLK1和CLK2是由CLK0分频后产生的分钟和小时的时钟信号[4]。
3)路灯同步定时开关灯模块该模块在模式001时实现同步定时开关灯的功能,其输入输出信号较多,这里不给出模块图,其功能流程图如图6所示。
4)各支路路灯分别定时开关灯模块该模块实现模式为010时且调试状态为00和01两种情况下对一条支路的路灯实现开关灯控制,在模式为010且调试状态为10和11两种情况下对另一条支路的路灯实现开关灯控制。
具体调试方法与同步定时开关灯模块相同。
5)光线控制模块光线控制模块图如图7所示,该模块在模式011时判断光线采集信号的状态,实现光线暗时开灯,光线亮时关灯的功能。
6)交通状况控制模块交通状况控制模块图如图8所示,该模块在模式为100时由物体运动的方向和物体所处的位置控制灯的亮灭状态。
当物体从灯LED1向灯LED2方向移动时,LED1和LED2依次点亮,最后都熄灭;当物体从灯LED2向灯LED1方向移动时,LED2和LED1依次点亮,最后都熄灭。
7)译码显示模块该模块实现对正常时间计时及调试模块、同步定时开关灯模块、支路路灯分别定时开关模块中的时分秒时间信号、正在调试中的时钟和分钟信号、模式信号以及故障路灯编码信号进行动态扫描译码显示,当没有进行时间设置时,显示正常计时时间,在进行时间调试时,动态显示当前调试时间,并显示当前所处的模式[5]。
8)路灯控制模块路灯控制模块图如图9所示,该模块实现在不同的模式下将不同控制模块的路灯信号分别选择输出以驱动外部路灯电路,根据外部路灯输入的故障信号判断路灯是否故障,且在故障时产生声光报警的控制信号ring输出和故障路灯编码信号输出。
将前面各子模块连接起来,构成如图10所示的顶层设计模块图。
顶层设计协调了各子模块功能的实现,完整地实现了模拟路灯控制系统的所有功能。
顶层模块通过FPGA外接的输入输出端口信号说明如下:DIRECTION[1:0]为物体移动方向信号
端口,“01”表示右移,“10”表示左移;S1S2S3[2:0]为物体所处位置信号端口,有“001”“010”“100”3种情况;Clk0为秒时钟信号;CLKH为扫描时钟信号;ENTER_BUTTON为确认按键;INC_MINUTE为分钟调节增加键;
INC_HOUR为小时调节增加键;LIGHT为光线状态信号,“0”表示光线亮,“1”表示光线暗;MODE_BUTTON为模式选择按键;OPEN_BUTTON为启动按键;ERR0为路灯1故障控制信号;ERR1为路灯2故障控制信号;Ring为故障报警控制信号;LED1为路灯1控制信号;LED2为路灯2控制信号;LED[6:0]为七段数
码管驱动信号。
这里仅对部分子模块的仿真波形图和顶层模块整体仿真波形图进行分析。
图11为模式调节模块的仿真波形图,从该图中可看出,当模式按键MODE_BUTTON每
按下一次,模式MO加1计数,从而实现模式从1到4的循环变化。
当启动按键OPEN_BUTTON每按下一次,时间调节TIME_ADJUST加1计数。
图12为正常
时间计时及调试模块仿真波形图,从该图中可看出,在模式000时,小时和分钟
调节键没有按下时(即INC_HOUR和INC_MINUTE均为0时),时分秒正常计时,当进行时间调节时,小时和分钟调节键每按下一次(即INC_HOUR和
INC_MINUTE分别为1时),小时和分钟各增加1进行时间调节。
从图13所示的顶层模块整体仿真波形图可看出,整个路灯系统控制完全符合设计要求。
当模式为011时路灯的状态由光线的亮暗进行控制,因LIGHT为1,光线暗,所以路灯LED1和LED2全开(即为1);当扫描时钟被计数到110时,动态显示故障路灯的
编号,当前路灯无故障(即ERR0和ERR1均为0),故共阴极七段显示器LED的七段gfedcba为0111111,显示数字0;当扫描时钟被计数到111时,动态显示模
式的编号,共阴极七段显示器LED的七段gfedcba为1001111,显示数字3;当扫描时钟被计数到000时,动态显示秒信号的个位,前一个状态LED为1111111,显示数字8,后一个000时对应LED为1101111,显示数字9,秒信号进行了加
1计数。
以FPGA为控制核心,介绍了FPGA实现模拟路灯控制系统的过程。
经过多次调
试与仿真,该控制系统能够根据不同的按键设置准确地实现正常的时间调整和显示,能同时设定开关灯时间,各支路能分别设定开关灯时间,能根据环境明暗自动开关灯,能根据交通情况自动开关灯,且能显示控制系统的当前模式及故障路灯的编号,同时在路灯故障时发出报警信号。
采用FPGA纯硬件控制,路灯控制更准确及时
且系统调试修改也非常方便。
【相关文献】
[1]杨宇,曾谢华,谭可,等.模拟路灯控制系统软件设计[J].昆明冶金高等专科学校学报,
2011,20(1):35-40.
[2]钱海月,王海浩,王海洋.模拟路灯控制系统设计[J].宁夏工程技术,2011,10(1):20-24.
[3]黄智伟.FPGA系统设计与实践[M].北京:电子工业出版社,2007.
[4]康华光.电子技术基础(数字部分)[M].第5版.北京:高等教育出版社,2006.
[5]刘韬,楼兴华.FPGA数字电子系统设计与开发实例导航[M].北京:人民邮电出版社,2005.。