<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于FPGA的視頻監(jiān)控系統(tǒng)中多畫面處理器的設(shè)計

          基于FPGA的視頻監(jiān)控系統(tǒng)中多畫面處理器的設(shè)計

          作者: 時間:2017-06-06 來源:網(wǎng)絡(luò) 收藏
          近年來,隨著系統(tǒng)在各個領(lǐng)域的廣泛應(yīng)用,作為視頻監(jiān)近系統(tǒng)組成之一的的應(yīng)用也愈來愈普遍。如使用一臺九畫面,則可在一臺監(jiān)視器上同時監(jiān)控9個目標(biāo),只需使用一臺錄像機(jī)便可對9路視頻信號同時實(shí)時錄像。目前有黑白/彩色四、九、十六畫面處理器等6種類型。一般說來,處理器除了有畫面分割功能外,還須有視頻信號切換及報警功能。視頻信號功換功能是指多畫面處理器有一路視頻輸出是輸入視頻信號或畫面分割信號的順序切換,且切換時間可調(diào);報警功能是指多畫面處理器能輸入、輸出報警信號,報警時相應(yīng)的畫面上疊加有報警信息,并將報警信息存儲起來以便日后查閱。多畫面處理器可使用專用DSP芯片,這樣雖然滿足了速度要求,但開發(fā)周期較長,產(chǎn)品的調(diào)試、修改及升級比較困難,成本較高。由于(即現(xiàn)場可編程門陣列)器件具有集成度高、體積小、功耗低、靈活且價格較低,有快速高效的開發(fā)平臺,可加快開發(fā)周期等優(yōu)勢,因此目前多畫面處理器的基本上采用作為其中的視頻信號處理器件。由于的功能由其內(nèi)部的編程數(shù)據(jù)確定,編程數(shù)據(jù)的裝載方法之一是上電后由實(shí)現(xiàn),因此多畫面處理器含有。一方面利用在上電后將FPGA所需的編程數(shù)據(jù)寫入FPGA中,另一方面視頻信號的切換、字符疊加及報警信息的處理也由單片機(jī)來完成。下面具體介紹基于FPGA器件和單片機(jī)的黑白四畫面處理器的設(shè)計方法。

          1 黑白四畫面處理器的組成及主要功能

          1.1 黑白四畫面處理器的組成

          黑白四畫面處理器的方框圖如圖1所示。由圖1可知,該多畫面處理器以FPGA器件和單片機(jī)為核心,外加A/D、D/A、幀存儲器、串行存儲器、串行時鐘和字符疊加等輔助芯片組成。

          1.2黑白四畫面處理器的主要功能

          該四畫面處理器主要功能如下:

          ·視頻格式為CCIR模式,即視頻信號的場頻為50Hz;

          ·雙工操作(在錄像的同時可進(jìn)行回放),菜單設(shè)定;

          ·全屏顯示時象素為1024×512,256個灰度等級;

          ·4路CVBS輸入及1路錄像輸入;

          ·1路全畫面與四分割切換輸出,1路錄像輸出(固定四分割);

          ·切換時間可調(diào),范圍為1~255s。

          ·畫面上可疊加時間日期,且位置可調(diào)整;

          ·有報警輸入輸出功能,報警復(fù)位時間的可調(diào)范圍為1~300s;

          ·有視頻信號丟失報警功能,報警時對應(yīng)的畫面上有文字顯示。

          2 各部分電路的結(jié)構(gòu)及工作原理

          本文引用地址:http://www.ex-cimer.com/article/201706/349476.htm 2.1 輸入緩沖及A/D轉(zhuǎn)換

          該部分電路的主要功能是將輸入的模擬視頻信號轉(zhuǎn)換成數(shù)字視頻信號供FPGA器件處理,其方框圖如圖2所示。4路視頻信號經(jīng)過受FPGA控制的模擬多路選擇器后,輸出2路視頻信號,經(jīng)過緩沖放大后送到受FPGA控制的模擬開關(guān);然后再輸出給A/D,2路視頻信號需要2片A/D芯片。A/D芯片選TLC5510,該芯片是一種分辨率為8位、20MSPS(20兆采樣點(diǎn)/秒)的CMOS模/數(shù)轉(zhuǎn)換器。在FPGA的控制下,TLC5510將輸入的模擬視頻信號轉(zhuǎn)換成數(shù)字視頻誤,然后送往幀存儲器。


          2.2 幀存儲器

          幀存儲器選AVERLOGIC公司的AL422,共需要2片。AL422是存儲量為384KB×8Bits的FIFO(First In First Out)DRAM,它支持VGA、CCIR、NTSC、PAL和HDTV分辨率,具有獨(dú)立的讀/寫操作及輸出使能控制;存儲時間為15ns的高速異步串行存取,可在5V或3.3V電源電壓下工作,標(biāo)準(zhǔn)的28腳SOP封裝。

          2.3 FPGA器件

          FPGA是本設(shè)計的核心,與傳統(tǒng)邏輯電路和門陣列相比具有不同的結(jié)構(gòu)。FPGA利用小型查找表(16×1RAM)來實(shí)現(xiàn)組合邏輯,每個查找表連接到一個D觸發(fā)器的輸入端,D觸發(fā)器再來驅(qū)動其它邏輯或驅(qū)I/O。這些模塊利用金屬連線互相連接或連接到I/O模塊。FPGA通過向內(nèi)部靜態(tài)存儲單元加載編程數(shù)據(jù)來實(shí)現(xiàn)其FPGA通過向內(nèi)部靜態(tài)存儲單元加載編程數(shù)據(jù)來實(shí)現(xiàn)其邏輯,存儲在存儲單元中值決定了FPGA實(shí)現(xiàn)的功能;FPGA的這種結(jié)構(gòu)允許無限次的重新編程。由此可見,用FPGA設(shè)計的產(chǎn)品調(diào)試修改及升級均很容易,且具有很大的靈活性。目前FPGA的種類很多,在本設(shè)計中選用Spartan系列的XCS05XL。該芯片是Xilinx公司推出的低價格、高性能的FPGA,其主要特點(diǎn)如下:

          ·系統(tǒng)門的數(shù)目達(dá)到了5000,Logic cell數(shù)目達(dá)到了238,系統(tǒng)資源豐富;

          ·具備片上可編程分布式RAM,最多可編程的RAM達(dá)3200bit;

          ·分布式算術(shù)邏輯單元,支持分布式DSP運(yùn)算;

          ·靈活的高速時鐘網(wǎng)絡(luò),內(nèi)部三態(tài)總線;工作電壓為3.3V。

          有關(guān)XCS05XL的詳細(xì)資料請參閱參考文獻(xiàn)[1]。

          FPGA的編程數(shù)據(jù)存儲在單片機(jī)的FLASH ROM里。每次上電后單片機(jī)將編程數(shù)據(jù)裝入XCS05XL,編程模式選從串模式,因而其22腳(M1)和24腳(M0)懸空。編程數(shù)據(jù)裝入后,XCS05XL的邏輯功能就確定了;XCS05XL控制視頻信號的輸入及A/D轉(zhuǎn)換,在其內(nèi)部將每路視頻信號壓縮為原來的1/2,同時在單片機(jī)的控制下給每路疊加時間、日期、通道數(shù)字字符信息,然后將壓縮的四路視頻信號合成為一路完整的數(shù)字視頻信號,并輸出給D/A,形成四分割輸出。

          2.4 D/A轉(zhuǎn)換及輸出緩沖放大

          D/A轉(zhuǎn)換電路將FPGA輸出的數(shù)字視頻信號轉(zhuǎn)移成模擬視頻信號,然后經(jīng)過緩沖放大輸出給監(jiān)視器,D/A芯片選HI1171。該芯片是一種分辨率為8位,頻率為40MHz的高速D/A轉(zhuǎn)換器,其最大積分和微分線性誤差分別為1.3LSB和0.25LSB;最小建立時間僅為5ns,在單5V下工作,功耗只有80mW。輸出緩沖放大由分立元件組成。

          2.5 單片機(jī)

          單片機(jī)選日本NEC公司的μPD78F0034,該芯片的主要特點(diǎn)是:

          ·時鐘為8.38MHz時的指令周期為0.24μs;

          ·ROM為32KB FLASH,RAM為1024bytes;

          ·可尋址空間為64KB,5個外部中斷,15個內(nèi)部中斷;

          ·39個CMOS I/O,8個COMS INPUT,4個N-CH漏極開路I/O;

          ·1個16位定時/計數(shù)器,2個8位定時/計數(shù)器;

          ·1個時鐘定時器,1個看門狗定時器,1個UART端口;

          ·支持I2C總線,有時鐘信號及蜂鳴信號輸出功能;

          ·外部數(shù)據(jù)總線8位,內(nèi)部寄存器為16位;

          ·有8位無符號乘法指令,16位除法指令;

          ·工作電壓范圍為1.8V~5.5V,有STOP/HALT工作模式。

          由此可見,該芯片的性能要優(yōu)于目前流行的MCS-51系列,其8位無符號乘法指令及16位除法指令給軟件編程帶來了很大的方便。另外,由于該芯片本身帶看門狗定時器,因而無需外加看門狗電路,就能保證系統(tǒng)穩(wěn)定、可靠地工作。


          2.6 存儲器

          存儲器芯片采用串行EEPROM芯片X24C16。該芯片是容量為2KB帶寫保護(hù)的I2C總線數(shù)據(jù)存儲器,當(dāng)WP=1時,只能讀,不能寫數(shù)據(jù)。它使用串行數(shù)據(jù)線(SDA)和串行時鐘線(SCL)進(jìn)行主從器件之間的數(shù)據(jù)傳輸。I2C總線上的數(shù)據(jù)傳輸率可達(dá)100Mbps,快速方式下可達(dá)400Mbps。在I2C總線傳輸中,開始和停止條件定義如下:當(dāng)SCL為高時,SDA由高變低為開始條件;當(dāng)SCL為高時,SDA由低變高時為停止條件(如圖3(a)所示)。SDA和SCL都是雙向傳輸線,SDA線上的數(shù)據(jù)在時鐘為高期間必須是穩(wěn)定的,只有當(dāng)SCL線上的時鐘信號為低時,數(shù)據(jù)線上的狀態(tài)才可以改變(如圖3(b)所示)。輸出到SDA線上的每一字節(jié)必須是8位,每次傳輸?shù)淖止?jié)不受限制,每字節(jié)必須有一個應(yīng)答位。本設(shè)計中X24C16的第5腳(SDA)和第6腳(SCL)分別接單片機(jī)的P3.6和P3.7。

          2.7 時鐘和字符疊加電路

          時鐘芯片選串行時鐘DS1302。該芯片是一種高性能、低功耗且?guī)AM的實(shí)時時鐘芯片,它有如下主要特性;

          ·實(shí)時時鐘,可對秒、分、時、日、周、月、年進(jìn)行計數(shù),且有閏年補(bǔ)償功能,直至2100年;

          ·用于數(shù)據(jù)暫存的31B NV RAM,簡單的三線接口,TTL兼容;

          ·用于時鐘或RAM數(shù)據(jù)讀/寫的連續(xù)多字節(jié)數(shù)據(jù)傳送方式;

          ·8引腳DIP或用于表面貼裝的8引腳SOIC封裝;

          ·工作電壓為2~5.5V,溫度為-40℃~85℃。

          字符疊加電路由NEC公司μPD6453組成。該芯片可在屏幕上顯示12行、每行24個字符、每個字符為12×18點(diǎn)陣。字符的大小、閃爍頻率可以根據(jù)需要進(jìn)行調(diào)整,屏幕的背景色、字符的邊緣色以及字符本身的顏色也可以修改。該芯片內(nèi)部除固化了191個日文、英文字母和數(shù)字等字符的字模以外,還固化了49個漢字(如年、月、日、時)的字模;另外該芯片提供16個字符的RAM空間,供用戶填入自定義字符。由于畫面處理器不需要疊加太多的不同字符,因而本設(shè)計不外加漢字字庫,這樣既節(jié)省了成本和線路板的空間,又簡化了電路結(jié)構(gòu)。μPD6453所需的行、場同步信號及時鐘信號均由FPGA提供。單片機(jī)通過串行數(shù)據(jù)傳輸將一系列命令(包括所要顯示的字符或漢字、字符大小、字符的間距、字符的屬性)送往μPD6453,μPD6453收到命令后再將所要顯示的字符或漢字等信息送至FPGA。

          2.8 視頻信號切換電路

          該電路由MAX440組成。MAX440是一種內(nèi)含寬帶視頻放大器的高速多路視頻選擇開關(guān),可輸入8路視頻信號,輸出為1路視頻信號。在單片機(jī)的控制下,輸出可與8路視頻輸入中的任一路相連。該芯片的主要特點(diǎn)如下:

          ·帶寬為110MHz;微分增益為0.04%,微分相位為0.03度;

          ·開關(guān)切換時間為15ns,轉(zhuǎn)換速率為370V/μs;

          ·開/關(guān)時的輸入電容為4pF,無需外接補(bǔ)償元件。

          2.9 報警信號的接收及處理

          由單片機(jī)直接完成,無需經(jīng)過FPGA。當(dāng)有報警發(fā)生時,單片機(jī)收到報警信息,發(fā)出命令使蜂鳴器件發(fā)出警報聲,同時通知FPGA和μPD6453使對應(yīng)的畫面閃爍并出現(xiàn)“報警”字樣。

          3 FPGA器件XCS05XL的編程實(shí)現(xiàn)原理

          所謂編程就是利用單片機(jī)μPD78F0034將事先設(shè)計好的數(shù)據(jù)通過某種方式裝入XCS05XL中,以確定XCS05XL內(nèi)部的CLB和IOB的功能以及布線通道的連接方式,數(shù)據(jù)的寫入只在編程過程中完成。在正常工作期間,存儲單元只用來提供固定的控制信號,編程存儲單元以陣列形式分布在XCS05XL中。每個CLB有幾百個編程數(shù)據(jù)位,每個編程數(shù)據(jù)位定義了一個靜態(tài)存儲單元的狀態(tài),該存儲單元可以控制一個邏輯函數(shù)查找表位、一個數(shù)據(jù)選擇器輸入或一個互連開關(guān)晶體管。Xilinx開發(fā)系統(tǒng)可以將邏輯設(shè)計轉(zhuǎn)換成網(wǎng)絡(luò)表文件,它自動將邏輯電路分區(qū)、設(shè)置和布線,以PROM格式產(chǎn)生編程數(shù)據(jù),并將數(shù)據(jù)存入PROM中。XCS05XL有三種編程模式:從串模式、主串模式和快速模式。編程開始前,芯片會自動檢測M1和M2腳以確定編程模式,編程結(jié)束后,這些腳就沒有用了。當(dāng)M1和M2腳為高電平時,選從串模式,這也是目前最常用的一種編程模式。實(shí)際上,此時M1和M2腳可懸空。如果要選擇主串模式,則M1和M2腳必須與相連或通過1k℃的下拉電阻接地。

          圖4所示為μPD78F0034單片機(jī)對FPGA器件XCSO5XL裝載編輯數(shù)據(jù)的示意圖。XCS05XL的編程模式選從串模式,因而其M1、M2腳懸空(即相當(dāng)于接高電平)。XCS05XL的編輯數(shù)據(jù)存儲在單片機(jī)的FLASH ROM里,上電復(fù)位后,單片機(jī)通過P30腳將數(shù)據(jù)串行傳送到XCSO5XL中。XCS05XL所需的編程時鐘(CCLK)信號由單片機(jī)產(chǎn)生,在每個CCLK的上升沿,XCS05XL通過DIN腳接收輸入數(shù)據(jù)。
          4 軟硬件設(shè)計時要注意的幾個問題

          (1)使用幀存儲器AL422應(yīng)注意的問題

          ·由于幀存儲器AL422是FIFO DRAM,因而須確保WCK和RCK信號始終有且信號的頻率不低于1MHz,因WCK和RCK中頻率較高者將作為DRAM的刷新時鐘信號。

          ·在AL422的/RRST信號的上升沿,/RE信號不能為低,這一點(diǎn)在確定FPGA的編程數(shù)據(jù)時要特點(diǎn)注意(因/RRST和/RE信號均由FPGA提供);

          ·AL422可在5V或3.3V電源電壓下工作,當(dāng)使用5V電源時,其DEC腳(Pin19)須接2.2μF的去耦電容;當(dāng)使用3.3V電源時,DEC腳(Pin19)可直接與3.3V相連,并通過0.1μF電容旁路到地;電容均使用鉭電容。由于使用3.3V時,器件功耗低,且受噪聲干擾小,因而在本設(shè)計中采用了3.3V電源對AL422供電。

          (2)為避免視頻信號之間的串?dāng)_,各種模擬視頻信號間均用較粗的地線隔開,且視頻走線足夠?qū)挕?

          以上介紹了黑白四畫面處理器的設(shè)計。為了節(jié)省線路板空間并使產(chǎn)品小巧玲瓏,所有的元器件及IC芯片均選用貼片式封裝。鑒于篇幅的限制,本文沒有討論多畫面處理器軟件方面的設(shè)計。至于9畫面和16畫面處理器的設(shè)計,其設(shè)計思想及組成方框圖與該4畫面處理器相類似,只不過要增加A/D、AL422及FPGA,軟件編程也復(fù)雜一些。


          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();