摘 要:提出一種基于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.