鄧海濤,吳捷,李建輝,潘國成,陳耀文
(1.汕頭大學 工學院,汕頭 515063;2.汕頭華汕電子器件有限公司)
?
DE1-SoC開發平臺上的圖像采集系統設計*
鄧海濤1,吳捷1,李建輝2,潘國成1,陳耀文1
(1.汕頭大學 工學院,汕頭 515063;2.汕頭華汕電子器件有限公司)
本文詳細介紹了基于Altera片上系統FPGA的嵌入式系統的設計方法,包括基于Qsys的系統硬件設計和基于片上系統EDS嵌入式軟件設計。該設計采用Altera公司提供的soc_training image鏡像內核文件,寫入外存SD卡中,進行啟動Linux操作系統,在QSYS中構建所需的硬件模塊,在EDS開發套件平臺上編寫應用軟件程序,最后通過板級驗證實現系統功能。該系統通過FPGA的Video-in接口,實現了圖像的捕捉功能,并存入到外設SD卡。
嵌入式設計;FPGA;硬核處理器;圖像采集
數字圖像技術廣泛地應用到很多領域,如遠程監控、航天航空、生物醫學工程、機器人視覺、視屏和多媒體系統等。伴隨著EDA技術[1]的飛快發展,各種新型的超大規模集成電路芯片也開始不斷涌向市場。為了適應國內外市場的發展,2013年Altera公司推出了的SoC FPGA芯片,該芯片系列在原有的基礎上內嵌了強大功能的ARM Cortex-A9處理器[2],不僅可以在單片的FPGA實現傳統的硬件描述語言邏輯設計,還可以實現基于ARM處理器的嵌入式系統軟件開發。
1.1 開發環境
本設計采用Altera公司的集成開發環境Quartus II和嵌入式設計套件Altera SoC EDS,完成了圖像采集系統的硬件和軟件的設計。在Quartus II軟件的開發平臺下,設計者可以完成設計輸入、分析映射、綜合優化、時序分析、布局布線、期間引腳分配、FPGA邏輯功能仿真驗證和目標程序下載等功能。Quautus II內嵌了Qsys嵌入式硬件系統開發工具,可實現基于Nios II軟核[3]或ARM 硬核處理器的嵌入式系統開發。Altera SoC EDS包含了開發(debug)工具、實現應用工具程序、運行軟件等,可以實現基于Altera SoC硬件平臺的應用軟件開發。
1.2 系統總體設計方案
基于Altera 片上系統FPGA的圖像采集系統[4]主要由208C監控攝像頭、Altera公司SoC FPGA Cyclone V系列芯片、SDRAM存儲器和硬核處理器(HPS)以及處理器工作所需的外部存儲器(包括DDR3 SDRAM和SD卡)構成,其總體設計方案如圖1所示。其中,SoC FPGA芯片是整個系統的控制核心,主要功能是:內部的硬核ARM處理器通過H2F_LW_AXI總線和F2H_AXI總線控制Qsys硬件系統內部的視屏解碼器、VIP套裝視屏處理核,核收到處理器相關寄存器指令后控制FPGA內部的HDL邏輯代碼工作,包括圖像捕獲和停止、圖像的串轉并(Color Plane Sequence)、圖像的去隔行(Deinterlacer)、圖像的重采樣(Chroma Resampler)、圖像的存儲和提取。整個采集系統的設計包括Qsys硬件系統設計和硬件處理器系統(HPS)的軟件設計。

圖1 系統總體設計框架
2.1 硬件平臺簡介

圖2 Qsys系統總體硬件配置
本設計采用的硬件平臺是Altera公司的基于SoC FPGA進行嵌入式軟硬件協同設計系統開發的DE1-SoC開發板。DE1-SoC開發板采用的是Altera公司開發的基于ARM的用戶可定制芯片系統Cyclone V SoC[5]FPGA芯片,該芯片集成了硬核處理器(HPS)、FPGA[6]和數字信號處理(DSP)[7-8]功能。HPS是基于ARM Cortex-A9的雙核處理器,具有豐富的外設和存儲器接口(DDR2/3)等。兩者能夠相互獨立工作,也可以通過高性能的AXI總線橋接實現高速寬帶的數據通信,HPS總線通過HPS至FPGA橋接訪問FPGA架構中的總線機器外設,同時,FPGA總線也能通過FPGA至HPS橋接訪問FPGA架構中的總線機器外設,可讓使用者在該平臺上實現具有更佳性能和靈活性的FPGA系統設計。
208C監控攝像頭具有30萬像素的圖像傳感器,該傳感器具有640×480有效像素,支持RGB格式的圖像數據輸出,支持圖像抓拍模式,并且可通過Qsys里的I2C[9]總線模塊完成其內部寄存器的參數設置,以實現視頻解碼,操作簡單,而且成本低。
2.2 硬件設計
基于Altera公司SoC FPGA的嵌入式系統硬件設計,首先要基于Qsys規劃系統所需要的外設,包括HPS和FPGA各自的接口。HPS外設只需要根據DE1-SoC硬件屬性進行設定即可,FPGA的外設首先通過IP模塊的方式添加,然后建立各個模塊間的連接(包括時鐘、復位、總線),最后產生硬件與軟件開發各自所需的檔案。硬件開發和傳統的FPGA設計流程相同,首先使用Quartus II加入Qsys以及用戶邏輯,然后設定引腳分配,最后編譯產生xx.sof文件。
基于SoC FPGA的圖像采集系統的硬件流程如下:
① 在Quartus II軟件下啟動Qsys設計工具,并添加相應的系統外設,包括HPS硬核處理器、時鐘鎖相環、I2C、On-chip memory、VIP套裝視屏處理核(Clocked Video Input、Color Plane Sequence、Deinterlacer、Chroma Resampler、CSC、Clipper、Frame Buffer)、視頻圖像捕獲(VIP_Capture、Clear_Packet_Data、Dummy_Stream_Sink)、定時器、CPU、系統ID IP核。
② 建立系統各個模塊之間的連接,包括時鐘、復位、HPS、CPU控制總線,以及各模塊之間的輸入輸出。Qsys下的總體硬件配置如圖2所示。
③ 產生Qsys硬件配置系統文件,并鍵入到Quartus工程中進行編譯。
2.3 軟件設計
嵌入式系統軟件設計主要是基于C語言的SoC EDS軟件設計。該設計通過操作相應寄存器控制監控攝像頭的捕捉與停止、圖像格式的轉換以及圖像數據的讀取和存儲。主要實現以下3個功能:一是控制打開監控攝像頭,并完成視頻解碼、圖像格式轉換、緩存;二是控制VIP_Capture的工作并獲取具體狀態;三是等待VIP_Capture完成數據傳輸后,從內存中讀取出來并存儲為bmp格式的圖片。具體軟件程序開發流程如圖3所示。

圖3 嵌入式系統軟件程序流程圖
具體操作實現代碼如下:
fd = open( "/dev/mem",(O_RDWR|O_SYNC ) ) )==-1) //打開內存映射設備驅動
lw_axi_virtual_base = mmap(NULL, HW_REGS_SPAN, (PROT_READ|PROT_WRITE), MAP_SHARED, fd, HW_REGS_BASE); //物理地址映射到Linux上的虛擬地址
m_vip_cti_base=lw_axi_virtual_base + ((unsigned long)(ALT_LWFPGASLVS_OFST+FPGA_VIP_CTI_BASE)&(unsigned long)( HW_REGS_MASK));//攝像頭寄存器控制地址
h2p_vip_capture_addr= lw_axi_virtual_base+((unsigned long )(ALT_LWFPGASLVS_OFST + ALT_VIP_CAPTURE_BASE)&(unsigned long)( HW_REGS_MASK));//捕獲幀地址

圖4 程序運行終端
最后,對已開發系統進行板級測試。首先給DE1-SoC開發板上電,將編譯好的整個硬件系統目標程序(XX.sof))文件燒錄到FPGA的配置芯片,將AV監控攝像頭插入到開發板的Video-in接口,同時啟動將存放有可帶Linux操作系統的SD卡。系統啟動完成后,打開調試電腦中的終端,在終端輸入命令,運行腳本文件./test.h。如圖4所示,首先加載內核模塊文件并創建文件節點,然后會顯示捕獲狀態,并打印出所得圖片的大小。系統運行結束后,讀卡器打開SD卡,查看監控攝像頭捕捉到的一幀圖像。經驗證,SD卡保存的示例圖片如圖5所示,可見該系統實現了圖像的捕捉功能。

圖5 捕捉示例圖

[1] 譚會生.EDA技術及應用[M].西安:西安電子科技大學出版社,2011.
[2] 陳新澤,楊斌.ARM Cortox-A9的NEON技術研究及應用[J].單片機與嵌入式系統應用,2013,13(10):46-49.
[3] 龔向東,劉春平,黃虹斌,等.一種基于Nios軟核的嵌入式圖像采集處理系統設計[J].電子測量技術,2010(2):75-49.
[4] 王德勝,康令州.基于FPGA的實時圖像采集與預處理[J].電視技術, 2011, 35(3): 32-35.
[5] 楊定定,施慧彬.基于AXI總線的MicroBlaze雙核SoPC系統設計[J].電子產品世界,2012,19(1):92-94.
[6] 陳木.淺談FPGA技術的優勢及其應用[J].電子世界, 2015(13):199-200.
[7] 楊波.DSP技術的發展及應用[J].城市建設理論研究, 2014(13).
[8] 沈戈,高德遠,樊曉椏.數字信號處理器(DSP)結構設計及發展趨勢[J].計算機工程與應用,2003,39(7):4-6.
[9] 王水魚,王欣.基于FPGA實現OmniVision圖像傳感器的SCCB總線協議[J].微型機與應用,2015(20):31-32,35.
鄧海濤(碩士),研究方向為嵌入式軟硬件協同設計;吳捷(學士),研究方向為圖像處理與模式識別;李建輝(學士),研究方向為數字信號處理與識別;陳耀文(教授),研究方向為醫學信號處理。
Image Acquisition System Based on DE1-SoC Platform
Deng Haitao1,Wu Jie1,Li Jianhui2,Pan Guocheng1,Chen Yaowen1
(1.Engineering College,Shantou Universtity,Shantou 515063,China;2.Shantou Huashan Electronic Devices Co.,Ltd.)
In the paper,the embedded system design method based on Altera’s SoC FPGA is introduced,including the system hardware design based on Qsys and embedded software design based on SoC EDS development suite.The soc_training image kernel image file is used to write to the external SD card,then the Linux operating system is started.The required hardware module is added in Qsys and the application software is added in EDS development kit platform. Finally,the system function is realized through the board level verification.The system realizes the function of image capture by FPGA Video-in interface,and deposited it in the SD card.
embedded design;FPGA;hard-core processor;image acquisition
汕頭市科技計劃項目(A201400150);汕頭大學學術創新團隊項目(ITC12002)。
TP391.4
A
?迪娜
2016-07-20)