鄧海濤,吳捷,李建輝,潘國成,陳耀文
(1.汕頭大學 工學院,汕頭 515063;2.汕頭華汕電子器件有限公司)
?
DE1-SoC開發(fā)平臺上的圖像采集系統(tǒng)設(shè)計*
鄧海濤1,吳捷1,李建輝2,潘國成1,陳耀文1
(1.汕頭大學 工學院,汕頭 515063;2.汕頭華汕電子器件有限公司)
本文詳細介紹了基于Altera片上系統(tǒng)FPGA的嵌入式系統(tǒng)的設(shè)計方法,包括基于Qsys的系統(tǒng)硬件設(shè)計和基于片上系統(tǒng)EDS嵌入式軟件設(shè)計。該設(shè)計采用Altera公司提供的soc_training image鏡像內(nèi)核文件,寫入外存SD卡中,進行啟動Linux操作系統(tǒng),在QSYS中構(gòu)建所需的硬件模塊,在EDS開發(fā)套件平臺上編寫應用軟件程序,最后通過板級驗證實現(xiàn)系統(tǒng)功能。該系統(tǒng)通過FPGA的Video-in接口,實現(xiàn)了圖像的捕捉功能,并存入到外設(shè)SD卡。
嵌入式設(shè)計;FPGA;硬核處理器;圖像采集
數(shù)字圖像技術(shù)廣泛地應用到很多領(lǐng)域,如遠程監(jiān)控、航天航空、生物醫(yī)學工程、機器人視覺、視屏和多媒體系統(tǒng)等。伴隨著EDA技術(shù)[1]的飛快發(fā)展,各種新型的超大規(guī)模集成電路芯片也開始不斷涌向市場。為了適應國內(nèi)外市場的發(fā)展,2013年Altera公司推出了的SoC FPGA芯片,該芯片系列在原有的基礎(chǔ)上內(nèi)嵌了強大功能的ARM Cortex-A9處理器[2],不僅可以在單片的FPGA實現(xiàn)傳統(tǒng)的硬件描述語言邏輯設(shè)計,還可以實現(xiàn)基于ARM處理器的嵌入式系統(tǒng)軟件開發(fā)。
1.1 開發(fā)環(huán)境
本設(shè)計采用Altera公司的集成開發(fā)環(huán)境Quartus II和嵌入式設(shè)計套件Altera SoC EDS,完成了圖像采集系統(tǒng)的硬件和軟件的設(shè)計。在Quartus II軟件的開發(fā)平臺下,設(shè)計者可以完成設(shè)計輸入、分析映射、綜合優(yōu)化、時序分析、布局布線、期間引腳分配、FPGA邏輯功能仿真驗證和目標程序下載等功能。Quautus II內(nèi)嵌了Qsys嵌入式硬件系統(tǒng)開發(fā)工具,可實現(xiàn)基于Nios II軟核[3]或ARM 硬核處理器的嵌入式系統(tǒng)開發(fā)。Altera SoC EDS包含了開發(fā)(debug)工具、實現(xiàn)應用工具程序、運行軟件等,可以實現(xiàn)基于Altera SoC硬件平臺的應用軟件開發(fā)。
1.2 系統(tǒng)總體設(shè)計方案
基于Altera 片上系統(tǒng)FPGA的圖像采集系統(tǒng)[4]主要由208C監(jiān)控攝像頭、Altera公司SoC FPGA Cyclone V系列芯片、SDRAM存儲器和硬核處理器(HPS)以及處理器工作所需的外部存儲器(包括DDR3 SDRAM和SD卡)構(gòu)成,其總體設(shè)計方案如圖1所示。其中,SoC FPGA芯片是整個系統(tǒng)的控制核心,主要功能是:內(nèi)部的硬核ARM處理器通過H2F_LW_AXI總線和F2H_AXI總線控制Qsys硬件系統(tǒng)內(nèi)部的視屏解碼器、VIP套裝視屏處理核,核收到處理器相關(guān)寄存器指令后控制FPGA內(nèi)部的HDL邏輯代碼工作,包括圖像捕獲和停止、圖像的串轉(zhuǎn)并(Color Plane Sequence)、圖像的去隔行(Deinterlacer)、圖像的重采樣(Chroma Resampler)、圖像的存儲和提取。整個采集系統(tǒng)的設(shè)計包括Qsys硬件系統(tǒng)設(shè)計和硬件處理器系統(tǒng)(HPS)的軟件設(shè)計。
圖1 系統(tǒng)總體設(shè)計框架
2.1 硬件平臺簡介
圖2 Qsys系統(tǒng)總體硬件配置
本設(shè)計采用的硬件平臺是Altera公司的基于SoC FPGA進行嵌入式軟硬件協(xié)同設(shè)計系統(tǒng)開發(fā)的DE1-SoC開發(fā)板。DE1-SoC開發(fā)板采用的是Altera公司開發(fā)的基于ARM的用戶可定制芯片系統(tǒng)Cyclone V SoC[5]FPGA芯片,該芯片集成了硬核處理器(HPS)、FPGA[6]和數(shù)字信號處理(DSP)[7-8]功能。HPS是基于ARM Cortex-A9的雙核處理器,具有豐富的外設(shè)和存儲器接口(DDR2/3)等。兩者能夠相互獨立工作,也可以通過高性能的AXI總線橋接實現(xiàn)高速寬帶的數(shù)據(jù)通信,HPS總線通過HPS至FPGA橋接訪問FPGA架構(gòu)中的總線機器外設(shè),同時,F(xiàn)PGA總線也能通過FPGA至HPS橋接訪問FPGA架構(gòu)中的總線機器外設(shè),可讓使用者在該平臺上實現(xiàn)具有更佳性能和靈活性的FPGA系統(tǒng)設(shè)計。
208C監(jiān)控攝像頭具有30萬像素的圖像傳感器,該傳感器具有640×480有效像素,支持RGB格式的圖像數(shù)據(jù)輸出,支持圖像抓拍模式,并且可通過Qsys里的I2C[9]總線模塊完成其內(nèi)部寄存器的參數(shù)設(shè)置,以實現(xiàn)視頻解碼,操作簡單,而且成本低。
2.2 硬件設(shè)計
基于Altera公司SoC FPGA的嵌入式系統(tǒng)硬件設(shè)計,首先要基于Qsys規(guī)劃系統(tǒng)所需要的外設(shè),包括HPS和FPGA各自的接口。HPS外設(shè)只需要根據(jù)DE1-SoC硬件屬性進行設(shè)定即可,F(xiàn)PGA的外設(shè)首先通過IP模塊的方式添加,然后建立各個模塊間的連接(包括時鐘、復位、總線),最后產(chǎn)生硬件與軟件開發(fā)各自所需的檔案。硬件開發(fā)和傳統(tǒng)的FPGA設(shè)計流程相同,首先使用Quartus II加入Qsys以及用戶邏輯,然后設(shè)定引腳分配,最后編譯產(chǎn)生xx.sof文件。
基于SoC FPGA的圖像采集系統(tǒng)的硬件流程如下:
① 在Quartus II軟件下啟動Qsys設(shè)計工具,并添加相應的系統(tǒng)外設(shè),包括HPS硬核處理器、時鐘鎖相環(huán)、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、系統(tǒng)ID IP核。
② 建立系統(tǒng)各個模塊之間的連接,包括時鐘、復位、HPS、CPU控制總線,以及各模塊之間的輸入輸出。Qsys下的總體硬件配置如圖2所示。
③ 產(chǎn)生Qsys硬件配置系統(tǒng)文件,并鍵入到Quartus工程中進行編譯。
2.3 軟件設(shè)計
嵌入式系統(tǒng)軟件設(shè)計主要是基于C語言的SoC EDS軟件設(shè)計。該設(shè)計通過操作相應寄存器控制監(jiān)控攝像頭的捕捉與停止、圖像格式的轉(zhuǎn)換以及圖像數(shù)據(jù)的讀取和存儲。主要實現(xiàn)以下3個功能:一是控制打開監(jiān)控攝像頭,并完成視頻解碼、圖像格式轉(zhuǎn)換、緩存;二是控制VIP_Capture的工作并獲取具體狀態(tài);三是等待VIP_Capture完成數(shù)據(jù)傳輸后,從內(nèi)存中讀取出來并存儲為bmp格式的圖片。具體軟件程序開發(fā)流程如圖3所示。
圖3 嵌入式系統(tǒng)軟件程序流程圖
具體操作實現(xiàn)代碼如下:
fd = open( "/dev/mem",(O_RDWR|O_SYNC ) ) )==-1) //打開內(nèi)存映射設(shè)備驅(qū)動
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 程序運行終端
最后,對已開發(fā)系統(tǒng)進行板級測試。首先給DE1-SoC開發(fā)板上電,將編譯好的整個硬件系統(tǒng)目標程序(XX.sof))文件燒錄到FPGA的配置芯片,將AV監(jiān)控攝像頭插入到開發(fā)板的Video-in接口,同時啟動將存放有可帶Linux操作系統(tǒng)的SD卡。系統(tǒng)啟動完成后,打開調(diào)試電腦中的終端,在終端輸入命令,運行腳本文件./test.h。如圖4所示,首先加載內(nèi)核模塊文件并創(chuàng)建文件節(jié)點,然后會顯示捕獲狀態(tài),并打印出所得圖片的大小。系統(tǒng)運行結(jié)束后,讀卡器打開SD卡,查看監(jiān)控攝像頭捕捉到的一幀圖像。經(jīng)驗證,SD卡保存的示例圖片如圖5所示,可見該系統(tǒng)實現(xiàn)了圖像的捕捉功能。
圖5 捕捉示例圖
[1] 譚會生.EDA技術(shù)及應用[M].西安:西安電子科技大學出版社,2011.
[2] 陳新澤,楊斌.ARM Cortox-A9的NEON技術(shù)研究及應用[J].單片機與嵌入式系統(tǒng)應用,2013,13(10):46-49.
[3] 龔向東,劉春平,黃虹斌,等.一種基于Nios軟核的嵌入式圖像采集處理系統(tǒng)設(shè)計[J].電子測量技術(shù),2010(2):75-49.
[4] 王德勝,康令州.基于FPGA的實時圖像采集與預處理[J].電視技術(shù), 2011, 35(3): 32-35.
[5] 楊定定,施慧彬.基于AXI總線的MicroBlaze雙核SoPC系統(tǒng)設(shè)計[J].電子產(chǎn)品世界,2012,19(1):92-94.
[6] 陳木.淺談FPGA技術(shù)的優(yōu)勢及其應用[J].電子世界, 2015(13):199-200.
[7] 楊波.DSP技術(shù)的發(fā)展及應用[J].城市建設(shè)理論研究, 2014(13).
[8] 沈戈,高德遠,樊曉椏.數(shù)字信號處理器(DSP)結(jié)構(gòu)設(shè)計及發(fā)展趨勢[J].計算機工程與應用,2003,39(7):4-6.
[9] 王水魚,王欣.基于FPGA實現(xiàn)OmniVision圖像傳感器的SCCB總線協(xié)議[J].微型機與應用,2015(20):31-32,35.
鄧海濤(碩士),研究方向為嵌入式軟硬件協(xié)同設(shè)計;吳捷(學士),研究方向為圖像處理與模式識別;李建輝(學士),研究方向為數(shù)字信號處理與識別;陳耀文(教授),研究方向為醫(yī)學信號處理。
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);汕頭大學學術(shù)創(chuàng)新團隊項目(ITC12002)。
TP391.4
A
?迪娜
2016-07-20)