基于FPGA的安全光幕的设计与实现
摘 要:提出一种基于FPGA的安全光幕的设计方案,不仅实现了传统安全光幕的探测给定区域有无物体的功能,还加入了计算物体存在时间的功能,加强了安全光幕对物体的判断能力。该设计方案主要由发射模块、接收模块、计时模块组成。因为FPGA编程灵活,发射模块和接收模块轻松地实现了同步工作。计时模块可以通过改变系统主时钟频率来改变计时精度。整个系统在Quartus Ⅱ 8.0设计环境下设计实现,采用Altera公司的EP1C3T144C8型FPGA芯片进行仿真,仿真结果很好地实现了该方案的设计功能,并满足高精度、高速度的设计要求。
关键词:安全光幕;FPGA;发射;接收;计时
中图分类号:TP316 文献标识码:A
文章编号:1004-373X(2010)03-137-03
Design and Implementation of Safety Light Curtain Based on FPGA
JIANG Bo1,2,LIANG Yanbing1
(1.Xi′an Institute of Optics and Precision Mechanics,Chinese Academy of Sciences,Xi′an,710119,China;
2.Graduate School,Chinese Academy of Sciences,Beijing,100039,China)
Abstract:A design scheme of safety light curtain based on FPGA is introduced.It not only achieves the function which traditional safety light curtain has of detecting existence of objects in the given region,but also adds the function of calculating existence time of objects.It can strengthen the capacity which safety light curtain has of judging the objects.The design scheme is composed of emission module,receiver module,timing module.Programming is flexible in FPGA,so it is easy to achieve the synchronization of emission module and receiver module.The timing module can change the timing accuracy by altering the master clock frequency.The whole system is designed in QuartusⅡ8.0 design environment,and the simulation is based on chip EP1C3T144C8 of Altera Company.Results of the simulation achieve the design functions of scheme commendably,and meet high-precision and high-speed design requirements.
Keywords:safety light curtain;FPGA;emission;receive;timing
0 引 言
安全光幕是一种光电类保护装置,也称安全保护器、红外线保护器、冲床保护器等。安全光幕主要由发射端电路、接收端电路、内部控制电路组成。在发射端和接收端之间形成一面看不见的红外光幕,如果某物体遮住了光幕或光幕的一部分,都会被检测到。当把安全光幕放置在给定区域,就可以用来检测该区域有无物体进入。由于采用红外线发射和接收装置,因此避开了可见光的干涉[1]。
FPGA是可编程逻辑器件(PLD)的第四代产品,内部具有独立的I/O接口和逻辑单元CLB。使用灵活,适用性强,特别适用于复杂逻辑的设计,FPGA芯片是系统提高系统集成度和可靠性的最佳选择之一。
1 安全光幕的工作原理
安全光幕主要由红外线发射端、红外线接收端、内部控制电路三部分组成。发射端和接收端安装于两侧,发射端等间距地安装有若干个红外线发射管,对应的接收端也安装有相同数量相同顺序排列的红外线线接收管,本系统为有4个发射管和4个接收管的安全光幕,每一个发射管都对应有一个接收管,且它们都安装在同一条直线上。4个发射管依次循环打开,当在同一条直线上的发射管、接收管之间没有障碍物时,发射管发出的红外线能顺利到达对应的接收管,接收管接收到红外线信号后,内部控制电路输出低电平。当有障碍物进入该直线时,发射管发出的红外线不能顺利到达相应的接收管,这时该接收管接收不到红外线信号,内部控制电路发出高电平。
安全光幕的工作主要由内部电路来进行控制,使发射管依次发射红外线,同时打开相应的接收管,检测是否接收到与之对应的红外线信号。安全光幕可实现对一定区域的扫描,当有人或物体进入该光幕屏障区时,内部控制电路迅速输出高电平信号,发出报警信号。
2 总体设计思路
系统总体框图如图1所示,它主要由发射模块、接收模块、计时模块三部分组成。主时钟8分频后驱动发射模块,依次循环产生触发脉冲,用该脉冲使发射管0到发射管3依次打开并循环这一过程。发射模块同时产生同步信号传送给接收模块,依次检测红外线接收管0到接收管3是否收到红外线信号,主时钟用来驱动接收模块,使检测频率高于发射模块的发射频率。
图1 系统总体框图
发射管0到发射管3依次打开,通过同步信号,告诉接收模块将接收管0到发射管3也对应依次打开。由于实际系统从发射管发射红外线信号到接收管收到该信号需要有一定的延时,为了使发射模块和接收模块同步工作,可以用主时钟驱动1个有若干位的移位寄存器,同时将同步信号送入该移位寄存器中,使同步信号产生若干个主时钟的延时。
3 系统实现方案[2,3]
3.1 发射和接收模块
发射和接收模块如图2所示, 其中的74393M为双4位加法计数器,用来对主时钟进行分频,emission为发射模块,receiver为接收模块[4]。
这里将74393M 的8分频输出QC送入emission模块中,使emission的输出端receive1[3..0]循环输出“0001-0010-0100-1000”,receive1[3..0]分别连接发射管0到发射管3,使4个发射管依次循环打开。
接收管0到接收管3经过放大滤波后分别接receiver模块的输入端receive2[3..0]。将emission的输出信号receive1[3..0]经过一定的延时,送入接收模块receiver,使receiver模块知道当前是哪个发射管打开,然后检测对应的接收管是否收到信号。
alarm[3..0]端口输出报警信号,当4个通道都依次收到红外线信号时,alarm[3..0]输出“0000”,当某通道信号没收到时,该通道对应的alarm[3..0]中的位变为“1”。failure是故障信号,当系统出现故障时,该信号从“0”变为“1”。int0到int3为触发信号,当有物体进入其中某通道和离开该通道时,相应的int0到int3发出一个正脉冲[5,6]。
图2 发射和接收模块
3.2 计时模块[7]
计时模块的作用是当安全光幕中某通道(这里以通道2为例)中有物体出现时,系统开始计时,当该通道物体消失时,系统停止计数,系统的计时模块如图3所示。
图3 计时模块
图3中lpm_counter0为12位计数器,它的clock端接系统主时钟。它的输出q[11..0]送入锁存器lpm_ff0的输入端data[11..0],lpm_ff0的clock端和接收模块的输出int2相连。这里以int2所接的计时模块为例,当通道2中有物体出现时,int2输出一个正脉冲,当该物体消失时,int2再发出一个正脉冲。这两个正脉冲分别去锁存计数器lpm_counter0,两次锁存的数值差就表示物体在通道2中存在的时间内计数器lpm_counter0所计的主时钟周期数,再根据主时钟的周期值就可以计算出通道2中物体存在的时间[8]。
4 系统仿真[9,10]
本系统仿真是基于Altera公司的EP1C3T144C8型FGPA,仿真结果如图4所示。
图4 系统仿真结果
仿真时钟clk的周期为10 ns,clr为清零端,receiver1为发射端发出的四位信号,receiver2为接收端接收到的四位信号。alarm[3..0]为四位报警信号,int0到int3为4个通道的触发信号,q0到q3为4个锁存器输出的锁存信号。
从仿真结果可以看出,在220.0 ns时(图中第一个Master Time Bar位置处)receiver1[3..0]为“0100”,这时发射管2打开,而这时的receiver2[3..0]为“0000”,说明接收管2没有收到信号,可以判断通道2有物体存在,int2发出一个正脉冲。在下一轮扫描时,即540.0 ns处(图中第二个Master Time Bar位置处) receiver1[3..0] 仍为“0100”,这时仍为发射管2打开,而receiver2[3..0] 变回为 “0100”,说明接收管2又收到了信号,int2再次发出一个正脉冲。这两个正脉冲去锁存锁存器2的输出分别为“000000010101”和“000000110101”,相差“100000”。说明走过了32(“100000”的十进制表示)个主时钟周期,而这时的主时钟周期为10 ns,所以物体存在时间为320 ns,符合两个Master Time Bar在图中所表示的时间之差。
5 结 语
本文提出并建立了一种基于FPGA的安全光幕的设计方案。该方案的特点是充分利用了FPGA丰富的硬件资源和其编程的灵活性,将复杂的时序关系运算电路用编程来实现,提高了系统的稳定性。又由于FPGA中的程序可以映射为硬件电路,因此提高了整个系统的速度。该方案可以容易地移植到更多数目发射接收管的安全光幕上,进一步提高检测的范围。
参考文献
[1]梅豪.配有安全光幕传感器的光电开关[J].现代通信,1996(1):26-27.
[2]候伯亨,顾新.VHDL硬件描述语言与数字逻辑电路设计[M].西安:西安电子科技大学出版社,1999.
[3]邢建平,曾繁泰.VHDL程序设计教程[M].北京:清华大学出版社,2005.
[4]黄良俊,王汝传.基于VHDL的数字系统设计与优化[J].南京邮电学院学报:自然科学版,2003,23(1):81-84.
[5]李若仲,杨晓蓉,李兆晨.CPLD应用中VHDL的优化设计[J].空军工程大学学报,2003,4(2):74-77.
[6]陈志刚.VHDL语言在电路设计中的优化[J].电子测试,2008(9):75-77.
[7]夏晓玲.基于VHDL的数字计时器的设计[J].鄂州大学学报,2008,15(2):34-36.
[8]陈裕国,冉全,许雪军.基于CPLD和单片机的旋转变压器鉴相电路的设计[J].仪表技术,2006(5):32-34.
[9]周润景,图雅,张丽敏.基于QuartusⅡ的FPGA/CPLD数字系统设计实例[M].北京:电子工业出版社,2007.
[10]夏琰,师卫.硬件描述语言与数字电路设计[J].电力学报,2009(2):156-158.