一種基于FPGA的多路視頻通道控制系統設計-設計應用_第1頁
一種基于FPGA的多路視頻通道控制系統設計-設計應用_第2頁
一種基于FPGA的多路視頻通道控制系統設計-設計應用_第3頁
一種基于FPGA的多路視頻通道控制系統設計-設計應用_第4頁
一種基于FPGA的多路視頻通道控制系統設計-設計應用_第5頁
已閱讀5頁,還剩3頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

精品文檔-下載后可編輯一種基于FPGA的多路視頻通道控制系統設計-設計應用視頻監控以其直觀、方便、信息內容豐富而廣泛應用于許多場合。視頻監控成為人們生活中不可缺少的技術。在一些危險場所,用視頻監控代替人工監視,可以保證人們的生命安全。鑒于一路視頻的視野范圍有限,要充分收集目標的信息,就需要有多路視頻來對同一個物體在不同方位進行監控。因此需要有一個良好的控制手段,確保多路視頻控制穩定,可靠。針對織布機告警系統的需求,提出一種基于FPGA的多路視頻通道控制系統,本系統設計利用FPGA間接控制2塊MAX4312選通所需要的視頻通道,實現各個視頻通道間相互切換。根據開關控制信號的設計思想在FPGA中對撥動開關輸入信號做去抖動處理,然后對不同的開關操作進行編碼,將信號送給DSP進行處理。

1系統總體結構

系統總體結構如圖1所示。在1臺工業織布機上安裝了16個CCD圖像傳感器對布匹進行圖像監控,通過2片MAX4312選擇16路圖像視頻信號中的一路,經可編程視頻輸入器件SAA7111處理后從VP0輸出數字圖像信號。同時SAA7111輸出相應的行、場同步信號HS,VS以及與HS鎖定的時鐘信號LLC、LLC2,利用這些信號在EP3C25F324C8中對圖像進行預處理。然后將處理后的圖像通過PPI口送給BF561中進行算法處理,將處理結果送給報警和狀態指示裝置,實現織布機告警功能。為了使圖像監控更方便,該系統設計增添了電平撥動開關和脈沖撥動開關。電平開關使輸入圖像停止切換,固定于其中一路視頻輸人圖像。脈沖開關可以左右撥動,每次向左或向右撥動都會產生一個很短的上升沿脈沖,同時圖像向前或向后進行切換,實現手動選擇視頻輸入通道的功能。

2軟件模塊設計

2.1開關控制信號

實際工程中,BF56l連接在FPGA上的PF引腳比較少。為了節約資源,只通過BF561中的BF9來識別2個撥動開關的動作。因此首先需要將2個撥動開關輸入信號在FPGA中進行處理整合,得到合適的信號。

本系統開關控制信號的設計思想:由于設計這個信號的目的是識別開關控制動作。因此,只要任何一個開關發生了動作就需要產生一個脈沖。如果只有脈沖信號就只能知道開關發生了動作,而不知道是哪個開關發生了什么動作。所以,要識別具體是哪個開關發生了什么動作就必須配合雙口RAM中的數據進行解碼。該系統設計的脈沖持續時間對BF561來說并不重要,只要BF561能識別這個脈沖即可。由于系統中的2個撥動開關,一個是電平撥動開關,另一個是脈沖撥動開關,因此,只要根據電平撥動開關的動作制作相應的脈沖信號,再用這個信號與脈沖撥動開關產生的原始信號邏輯相與,就能得到所需要的目的信號。

由于撥動開關是機械觸點,當其斷開、閉合時會有相應的前沿、后沿抖動,為了使每次動作都只做響應,就必須對原始開關信號做去抖動處理。抖動信號可以分為2種:一種是時間很短的干擾信號,如高頻毛刺;另一種是時間較長的干擾信號,如開關抖動。這里的撥動開關都是人為操作,因此每次觸發的時間都不會很短,一般小于10Hz。根據上述分析開關抖動信號屬于后一種。因此在每次開關操作后,對其產生的信號進行連續采樣,如果每次采樣都是低電平或者都是高電平,就認為此信號不是抖動,確實開關狀態發生了變化。整個設計過程使用Verilog硬件描述語言編寫,然后在QuartusⅡ平臺上編譯,并采用SignalTapⅡLogicArlalvzer對信號采樣分析,調試通過后連同其他程序一起燒寫進FPGA的配置器件EPCSl6中。圖2~圖4分別是各個開關動作去抖動前和去抖動后的實時信號采樣圖。去抖動模塊中的部分代碼如下:

其中,clk為13.5MHz頻率的時鐘信號,clk_cnt為采樣時間間隔計數器,當clk_cnt為135000時采樣1次,即每隔10ms采樣1次。寄存器shuru_temp存儲前開關信號狀態,shum存儲當前開關信號狀態。如果shuru_temp的值等于shtlm的值,則計數器test_cnt自動加l。如果連續4次采樣值相等,即test_cnt=4時去抖動輸出才隨輸入變化。

用電平撥動開關信號作為輸入,制作了一個脈沖信號用于識別開關動作,其代碼如下:

代碼中寄存器level_contrl_TEMP存儲level_contrl延時256個時鐘周期后的信號,然后用level_eontrl_TEMP中存儲的信號與level_co-ntrl的值相異或產生所需要的脈沖信號。

調試中發現,去抖動后的信號經常混有持續時間很短的高頻脈沖干擾信號,因此設計中使用兩級D觸發器延時來徹底消除高頻脈沖干擾,其程序代碼如下:

2.2雙口RAM及開關信號編碼設計

雙口RAM分為真、假2種雙口。真雙口2個端口都可以讀寫,互不干擾。本次設計根據實際需要,添加的RAM模塊一端只讀,另一端只寫,讀寫互不干擾。根據上述分析可知,開關控制信號只能知道有開關控制動作發生,但是不能識別具體哪個開關發生了動作。因此,設計中首先利用MegaWizardPlug_InManager中的宏功能塊RAM:2_PORT產生1個雙口RAM存儲塊,然后對這個宏功能模塊的參數進行適當調整,產生一個滿足自己特定要求的模塊,如圖5所示。

設計過程中,首先將開關動作進行編碼。然后將編碼后的數據存進空間大小為8的雙口RAM中。當BF561檢測到PF9上的脈沖后,在PF中斷中讀取RAM中指定地址的數據,然后根據這個數據進行開關狀態解碼并按解碼后的控制信息對2塊MAX4312器件進行操作以控制視頻通道。對開關動作進行的編碼程序代碼如下:

整個設計有4種開關動作,程序中分別將其編碼成數據0l、02、03、04,然后將編碼后的這4個數據存入雙口模塊中,等待BF561來讀取并進行解碼。圖6是SignalTapⅡLogicAnalyzer中對脈沖開關向右撥動后存入RAM中的數據進行采樣。

程序中RAM的讀信號rden_signal是由DSP發送的地址信號DSP_A、BANK選擇信號DSP_AMSl以及DSP讀信號DSP_ARE進行控制的。當DSP不從雙口讀取數據時,必須給DSP的數據線賦值高阻,以免影響SDRAM對DSP數據線的操作。賦值指令如下:assignDSP_D=(rden_signal=l'b1)?DSP_D_TEMP;8'hzz;其中DSP_D_TEMP是從雙口中讀取的數據。

3結論

首先介紹了整個系統的工業背景和硬件架構,然后著重闡述了怎樣在FPGA中處理開關控制信號,以達到可靠響應每個開關動作的目的。整個設計程序是在QuartusⅡ平臺上用Verilog硬件描述語言編寫,利用Qua

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論