采用軟件編程實現傳統圖像的采集和處理,這需要占用大量的CPU資源,一方面CPU要提高系統工作頻率,使得整個系統的可靠性接受很大的挑戰(zhàn),另一方面這類系統難以處理實時、高分辨率的圖像。
1 引言
采用NiosII加上FPGA可解決這些問題。Altera公司推出的NiosII是一種可配置的RISC嵌入式軟核處理器,它可與各種各樣的外設、定制指令和硬件加速單元相結合,根據用戶的需求進行裁剪,構成一個定制的SoPC。
本系統將視頻數據的采集和傳輸集成到單片FPGA上,采集部分使用硬件描述語言編寫成硬件模塊,作為外設掛到系統中,不占用CPU資源,提高了系統的運革新行速度。在此基礎上,用戶還可方便地添加IP核等方式來擴展系統的功能,比如將H.263視頻編碼的硬件模塊加載到NiosII系統中,大大縮短了開發(fā)周期。
2 NiosII處理器系統
一個NiosII處理器系統由NiosII CPU和一系列的外設組成。開發(fā)基于NiosII的嵌入式系統,關鍵在于如何根據功能需求定制NiosII及設計自定義接口。在本系統中,由于要實現視頻數據的采集和網絡傳輸功能,而NiosII(version 6.0)標準接口組件中沒有視頻解碼芯片ADV7181B和網絡芯片DM9000A的接口,所以用戶要用硬件描述語言編寫ADV7181B和DM9000A的硬件模塊接口,然后在SOPC Builder中以用戶自定義的方式添加進去,掛到avalon總線上。本系統主要包括以下部分:
EP2C35(CycloneII FPCA)包括NioslI軟核CPU、操作系統使用的定時器timer0、網絡協議棧使用的定時器timer1;Flash主要用來存放軟件代碼以及一些需要保存的參數;SDRAM用來在系統運行時的代碼和數據存儲;LED和按鍵用來指示工作狀態(tài)和系統復位的按鍵;為了方便調試,異步串口UART通過串口終端觀察系統的運行狀態(tài);自定義的視頻采集硬件模塊控制從視頻輸入口進來的視頻數據經視頻解碼芯片ADV7181解碼后正確的存放到存儲器中以供后續(xù)的處理;以太網利用TCP/IP協議傳輸視頻數據。整個系統的結構如圖1。

3 視頻采集硬件模塊
DE2開發(fā)板上視頻A/D芯片選用的是ADV7181B,其輸出的數字視頻數據通過8位總線TD DATA [7:0]傳輸給FPGA,FPGA經視頻解碼模塊在視頻數據中識別出有效數據。如圖2是視頻采集模塊的框圖。ADV7181B輸出標準的ITU656格式的數據,Y:U:V,=4:2:2,分辨率為720×576,輸出像素時鐘為27 MHz,一行視頻數據的格式如表1所示。


本設計的視頻解碼模塊是通過分析視頻數據流中的“FF 00 00 SAV/EAV”,解碼得到一行的有效數據YCbCr以及場標志和場消隱信號。數據流程如圖3所示。

4 μClinux操作系統移植
嵌入式μClinux操作系統主要由3個基本部分組成:引導程序、μClinux內核和文件系統。μClinux的內核定制高度靈活化,開發(fā)者可按設計需求對內核進行配置,在了解內核原理后可增加各類驅動。
1) 建立開發(fā)環(huán)境
μClinux系統的移植選用的主機平臺是。Fedora Core6,內核版本為2.6.19。在進行μClinux的移植之前,需要建立系統的交叉編譯環(huán)境。
2) 配置內核
在編譯μClinux內核之前,首先要對內核進行配置。針對本系統,由于DE2開發(fā)平臺上只有4 Mbyte的Flash,根據系統的功能將必要的選項選中,將沒有必要的選項去掉,以減少內核的大小。本系統中需要注意的兩點是:
(1) 選擇設備驅動中的網絡支持選項,在Ethernet(10 or 100 Mbit/s)下面選中DM9000A,因為DE2開發(fā)板的網絡芯片是DM9000A。
(2) 選擇字符型設備驅動Character devices這一步要選擇串行口驅動,進入SeriaI drivers選項,然后選定Nios serial port support,這樣在內核中加入了對Nios口的支持,就可以通過串口將內核打印的信息傳遞給主機。
(3) 配置μClinux的文件系統
在內核啟動之后,就會將romfs作為根文件系統。根文件系統中必須要有init和sh這兩個可執(zhí)行文件。這樣在內核運行的最后,將有一個簡單的shell界面,同時用戶也可以將自己的應用程序加入到根文件系統中。
4) 下載μClinux內核映象
將內核映象和根文件系統下載到的Flash中,然后上電。通過串口終端工具看到系統啟動后的信息如圖4。說明系統已經正常運行,以太網已經連接上。進行網絡測試,在開發(fā)板端,開啟網絡服務器程序boa,用Internet網絡中的另一臺主機訪問該服務器,得到如下測試圖如圖5。

5 小結
由于本系統是直接對經攝像頭采集的視頻數據打包發(fā)送,沒有對數據壓縮編碼,因而對帶寬的要求很大,尚且不能應用到實際中,但這為下一步的開發(fā)提供了一個整體構架,下一步的工作就是將視頻數據壓縮編/解碼添加到FPGA中,比如將H.263視頻編碼引入到本系統中,構建一個視頻終端。