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

          關(guān) 閉

          新聞中心

          EEPW首頁 > 安全與國防 > 數(shù)字網(wǎng)絡(luò)視頻監(jiān)控器中的多路轉(zhuǎn)接邏輯的設(shè)計與實現(xiàn)

          數(shù)字網(wǎng)絡(luò)視頻監(jiān)控器中的多路轉(zhuǎn)接邏輯的設(shè)計與實現(xiàn)

          ——
          作者:黃喜 時間:2006-07-20 來源:天津大學電子信息工程學院 收藏

          摘要:本文主要介紹在視頻監(jiān)控板中多路視頻信號輸入情況下的數(shù)據(jù)緩存、信號格式轉(zhuǎn)換的設(shè)計,并用altera的cyclone器件實現(xiàn)的整個過程。包括簡單介紹視頻監(jiān)控器電路板的原理,此轉(zhuǎn)接邏輯在系統(tǒng)中的作用和地位,并詳細介紹了此邏輯用fpga設(shè)計實現(xiàn)的過程。

          隨著科技的日新月異,視頻監(jiān)控市場也得到了飛速發(fā)展。視頻監(jiān)控以其直觀、方便、信息內(nèi)容豐富而廣泛應(yīng)用于許多場合。近年來,隨著互聯(lián)網(wǎng)的大范圍普及,以及計算機、網(wǎng)絡(luò)以及圖象處理、傳輸技術(shù)的飛速發(fā)展,視頻監(jiān)控技術(shù)也有長足的發(fā)展。視頻監(jiān)控已經(jīng)滲透到教育、政府、娛樂場所、醫(yī)院、酒店、運動場館、城市治安等多種領(lǐng)域,視頻監(jiān)控服務(wù)器被稱為及手機以后另外一個極具市場開發(fā)前景的消費電子產(chǎn)品。


          數(shù)字網(wǎng)絡(luò)視頻監(jiān)控服務(wù)器主要完成從攝像頭獲取的模擬信號到數(shù)字化壓縮后送到網(wǎng)絡(luò)的功能,其原理框圖如圖1所示。

          由圖1所示,監(jiān)控器電路板主要由A/D芯片,F(xiàn)PGA多路轉(zhuǎn)接芯片,壓縮芯片,CPU等組成。其中本文要介紹的多路轉(zhuǎn)接邏輯的FPGA實現(xiàn)位于A/D芯片和壓縮芯片之間,由于FPGA內(nèi)部含有PLL模塊,所以跟FPGA連接的TW2804芯片的27m輸入時鐘可以由FPGA產(chǎn)生。


          這里選用altera的cyclone系列的EP1C6Q240C8,其內(nèi)部有90k的存儲容量,6kLEBS,2個PLL,在后面的設(shè)計介紹中,將會講到整個設(shè)計用到了64k的存儲容量,1個PLL,大約4—5k左右的LEBS,所以選用此低成本的FPGA,可以完成此設(shè)計,而且基本上充分用到了內(nèi)部的大多數(shù)資源,加上此芯片的引腳有240個,能滿足外面的引腳連接,所以altera的EP1C6Q240C8成為此邏輯設(shè)計中最佳的選擇器件。


          如圖1所示,A/D芯片接受來自四個攝像頭的四路模擬視頻信號,這里采用Techwell公司的TW2804芯片,此芯片支持四路視頻模擬信號的輸入,輸出是數(shù)字ITU-R BT.656格式的信號,時鐘是27m。。D1、D2、D3、D4信號的時序圖如圖2所示。

          圖2

          其中EAV和SAV分別為行尾和行頭標志信號,他們中間是行與行之間的空白信號,SAV后面的VALID有效時的信號為1440bytes的d1格式的有效視頻信號,總的這些信號加起來是視頻信號的一行信號,一幀視頻信號包括576行這樣的行信號,也就是有效的這種格式的一幀輸出視頻信號為1440*576bytes的信號,由于每一行信號中由兩個bytes來表示一個像素,所以這種d1格式一幀的像素為720*576分辨率。


          FPGA轉(zhuǎn)接邏輯要實現(xiàn)的功能是要在顯示終端上同時顯示四路的視頻信號,也就是要顯示如圖3所示的視頻信號。

          圖3

          由于要在一個顯示終端上同時顯示四路信號,所以原來每一路信號的720*576分辨率要轉(zhuǎn)換為原來1/4的分辨率,即cif的格式,cif格式是352*288的分辨率,這樣四路cif格式的信號組合成如圖3所示的一個幀輸出到終端顯示出來。


          因為在終端顯示上是要求四路視頻信號同步輸出的,也就是不允許出現(xiàn)其中一路信號已經(jīng)在顯示其上顯示出來了,但另外一路信號還沒有顯示出來也就是出現(xiàn)畫面上一部分是黑屏的情況,所以在這種情況下,需要把四路不同的視頻信號先用FPGA在sdram中緩存起來,當每一路信號都在sdram中都至少存滿一幀時就可以同步讀出,并通過FPGA內(nèi)部緩存組成如圖3所示的幀格式,然后輸出給壓縮芯片壓縮后由處理器控制輸出至網(wǎng)絡(luò),這里的壓縮芯片選的是VWEB公司的VW2010。


          至此,F(xiàn)PGA要實現(xiàn)的功能已經(jīng)非常清晰,首先把輸入的四路d1格式的信號分別轉(zhuǎn)換成四路cif格式的信號,然后把這四路信號分別緩存在sdram中,當sdram中每一路信號都至少存滿一幀時,同步讀出,讀出sdram到FPGA中后,經(jīng)過格式的重新組合,最后組成如圖3所示的信號格式輸出。其中數(shù)據(jù)在sdram中的緩存控制是最重要也是最復(fù)雜的環(huán)節(jié)。下面詳細介紹此FPGA的邏輯設(shè)計與實現(xiàn)。


          由上面的介紹可知,此FPGA主要有三方面的接口,與TW2804的輸入接口,與sdram的緩存接口,與VW2010的輸出接口。所以FPGA的內(nèi)部邏輯大致可以設(shè)計為如圖4所示。

          圖4

          下面對各個模塊分別進行介紹。
          輸入格式轉(zhuǎn)換模塊的主要是完成四路信號從d1到cif格式的轉(zhuǎn)換,即從原來的720*576像素的分辨率轉(zhuǎn)換為352*288像素的分辨率。其轉(zhuǎn)換過程是把一幀中偶數(shù)行的數(shù)據(jù)全部去掉,把奇數(shù)行中的數(shù)據(jù),按奇數(shù)列的順序一個隔一個的去掉,最后保留的數(shù)據(jù)就是原來1/4的數(shù)據(jù)。這個過程比較簡單,通過設(shè)計兩個行列計數(shù)器就能實現(xiàn)。其仿真圖如圖5所示。 

          圖5

          圖5所示為在奇數(shù)行時數(shù)據(jù)一個空一個的有效,在一行讀完后,下一行就都設(shè)為無效。


          接下來是內(nèi)部輸入緩沖模塊,此模塊式用來控制與sdram控制相連接和進行數(shù)據(jù)緩存控制的模塊。其內(nèi)部邏輯圖如圖6所示。

          如圖6所示,此模塊主要設(shè)置了四個FIFO。因為sdram只有一個數(shù)據(jù)通道,所以四路信號輸入時必須先進行內(nèi)部緩存才能無丟失的存儲于sdram中。所以此時要把FIFO的讀時鐘至少設(shè)為寫時鐘的四倍,這樣才能在FIFO沒有存滿時就能把每一路的信號從FIFO緩存中讀出到sdram中。


           由于sdram的數(shù)據(jù)是32位的,這里把四個FIFO也設(shè)為32位,所以在四路cif格式的信號進入FIFO之前要先用四個寄存器進行8/32的轉(zhuǎn)換。只要設(shè)置四個移位寄存器就可實現(xiàn)。


          如圖5所示,cif格式的信號的輸入時鐘是27/2m的,由于FIFO是32位的,所以FIFO的讀時鐘要至少設(shè)成(8/32)*(27/2)*4=13.5m。


          對于這里的FIFO的數(shù)據(jù)容量,把每個FIFO都設(shè)為256個深度,這樣就需要256*32=8k的容量,四個FIFO就需要8*4=32k的容量。所以在輸入緩沖中用到了FPGA中32k的存儲資源。


          由于四路cif格式的信號是每隔704(352*2)bytes就會出現(xiàn)704個無效的數(shù)據(jù),即數(shù)據(jù)是一行隔一行的有效的,而sdram需要讀寫兩個獨立的帶寬,所以可以把sdram的讀寫周期分別設(shè)為704個bytes的長度,這樣在704個有效數(shù)據(jù)到來的時候就給sdram控制器寫數(shù)據(jù),而在704個無效數(shù)據(jù)到來時,就對sdram控制器讀數(shù),這樣就解決了sdram只有一個數(shù)據(jù)通道的問題。


          但是,由于sdram還有自刷新周期,而且對其控制的命令是有一定延時的,所以這里把sdram對數(shù)據(jù)的讀寫時鐘頻率再提高一倍,即由上面算得的13.5m提高到27m,對于cyclone系列的FPGA來說,這樣的邏輯是很容易跑到27m的時鐘頻率的。


          數(shù)據(jù)從FIFO中讀出后,就要送入到sdram控制器中,sdram控制器可以由quartus的megacore產(chǎn)生,也可以根據(jù)需要自己設(shè)計,這里是自己設(shè)計的,sdram控制器的輸入輸出接口如圖7所示。 

          如圖7所示,sdram控制器的左面為用戶接口,右面為sdram接口,用戶給sdram發(fā)出請求命令(cmd),當收到回應(yīng)信號(cmdack)時,sdram給用戶端發(fā)送或讀取數(shù)據(jù)。


          這里用到的是64m的sdram,因為每一路cif格式的信號每幀數(shù)據(jù)是352*288個像素,即704*288=202752bytes,這里給每一路信號分配兩幀的地址空間。由于sdram有突發(fā)數(shù)據(jù)長度(burst length)和整頁(full page)兩種數(shù)據(jù)操作方式,而這里因為數(shù)據(jù)比較大,所以采用了full page的方式,這種方式是在讀寫命令有效后,即在時鐘控制下讀出整頁256個32bits的數(shù)據(jù),這樣讀寫數(shù)據(jù)的效率就可以提高很多。


          因為sdram中數(shù)據(jù)的寬度是32位的,而cif格式的信號是8位的,所以只需要給每路信號分配2*704*288/4=101376的地址空間。


          如圖8所示為sdram控制器的讀寫時候的控制信號圖。

          a

          b

          圖8

          圖8中a為對sdram寫數(shù)據(jù)的命令,b為對sdram讀數(shù)據(jù)的命令,由圖可以看出,通過sdram控制器的轉(zhuǎn)換,在接收到回應(yīng)信號(cmdack)后,把讀寫命令分別轉(zhuǎn)換成了rasn,casn,wen控制指令。其中讀寫指令分別對應(yīng)如下。


          寫數(shù)據(jù) :rasn=1 ;casn=0 ;wen=0 ;
          讀數(shù)據(jù) :rasn=1 ;casn=0 ;wen=1 ;


          數(shù)據(jù)從sdram讀出時,應(yīng)滿足每一路信號都至少在sdram中存滿一幀的條件。當可以同步讀出時,由于還是要四路讀出,所以在讀出端口還要設(shè)置四個FIFO,用來緩存數(shù)據(jù),以進行信號的組幀。


          這里把四個FIFO同樣設(shè)為32位寬度,256長度,所以這里總共也是用到了32k的存儲容量。加上上面sdram控制器輸入端用到的32k存儲容量,在整個FPGA中用到了64k的存儲容量,對于EP1C6Q240C8的90k存儲容量來說是足夠的而且利用率也是比較高的了。


          輸出FIFO緩存后,就要把四路信號按照每一幀如圖3的格式輸出,也就是第一行的前一半的704bytes輸出第一路信號,后一半704個bytes輸出第二路信號,然后直到第289行開始,前一半的704bytes輸出第三路信號,后一半704個bytes輸出第四路信號,這樣最后在網(wǎng)絡(luò)顯示終端就可以在一個屏幕上看到如圖3所示的四幅圖像。


          如圖9所示為在前兩行的數(shù)據(jù)輸出波形圖。 

          由圖可知,第一和第二路的輸出FIFO分別在兩個rden信號下控制數(shù)據(jù)的讀出,而這兩個rden信號就是由計數(shù)器計數(shù)至704產(chǎn)生的,再另外設(shè)置一個行計數(shù)器,當此計數(shù)器計數(shù)至289時,輸出dout就換為第三和第四路信號的輸出FIFO。


          到此為止,整個FPGA的設(shè)計大致完成。下面給出對此次設(shè)計以后可以擴展和改進的功能。


          首先,因為這是四路的多路轉(zhuǎn)換緩沖,所以直接把它們固定組合起來送至網(wǎng)絡(luò)顯示于終端。如果需要支持更多路的視頻信號輸入進行多路轉(zhuǎn)換,例如輸入信號時8路或16路,那么送入網(wǎng)絡(luò)的時候就有一個組合的問題,即在顯示器上四幅圖像最終顯示視頻輸入的哪四幅。這在實際情況下也是經(jīng)常出現(xiàn)的情況,例如在某個建筑物中安裝了8個攝像頭,在白天的情況下可能要監(jiān)視樓道內(nèi)的情況,而到晚上可能要監(jiān)視樓外門口的情況,這就需要在FPGA中進行一個選擇,所以,此時可以在FPGA中加入一個I2C從模塊,通過此模塊可以與處理器通信,在FPGA中設(shè)置一些寄存器,通過由I2C送來的不同的寄存器配置指令,就可以實現(xiàn)顯示器上圖像的實時切換。


          其次,由于cyclone系列的產(chǎn)品存儲容量比較有限,如果要增加到16路這樣的規(guī)模,輸入輸出緩沖的存儲容量必將不夠,所以此時可以考慮用cyclone2系列的產(chǎn)品。


          另外,如果以后要完成路數(shù)比較多的轉(zhuǎn)接,可以在監(jiān)控器板上多加幾塊TW2804和VW2010芯片,這樣就需要FPGA的輸入輸出引腳要足夠多,而EP1C6Q240C8這樣的FPGA芯片有240個引腳,足夠擴展需要。
          總之,在這樣的轉(zhuǎn)接邏輯中用到altera的cyclone系列低成本的FPGA產(chǎn)品,充分利用了其現(xiàn)有的內(nèi)部資源,而且價格也是非常的易于接受,是非常理想的選擇。 

           

           
           
           
           
           



          關(guān)鍵詞: 單片機 嵌入式系統(tǒng)

          評論


          相關(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); })();