聶永軍,徐光輝,鄭國建
(1.解放軍理工大學(xué) 通信工程學(xué)院,南京 210007;2.深圳電器公司)
?
基于Altera SoC FPGA的圖像采集系統(tǒng)設(shè)計(jì)
聶永軍1,2,徐光輝1,鄭國建1
(1.解放軍理工大學(xué) 通信工程學(xué)院,南京 210007;2.深圳電器公司)
該設(shè)計(jì)利用Altera公司的DE1-SoC開發(fā)板和友晶科技的D5M模塊實(shí)現(xiàn)了基于SoC FPGA的圖像采集系統(tǒng)。詳細(xì)介紹了基于Altera SoC FPGA的嵌入式系統(tǒng)設(shè)計(jì)方法,包括基于Qsys的系統(tǒng)硬件設(shè)計(jì)和基于 SoC EDS開發(fā)套件的ARM硬核處理器軟件設(shè)計(jì)。該設(shè)計(jì)在Altera公司提供的可以正常運(yùn)行Linux操作系統(tǒng)的參考設(shè)計(jì)的基礎(chǔ)上,添加了所需要的硬件模塊和應(yīng)用軟件,最后通過板級驗(yàn)證實(shí)現(xiàn)了系統(tǒng)功能。
嵌入式設(shè)計(jì);圖像采集;SoC FPGA;硬核處理器;操作系統(tǒng)
伴隨著EDA技術(shù)[2]的發(fā)展,各種新型的超大規(guī)模集成電路芯片不斷地涌向市場。新的集成電路芯片不僅功能強(qiáng)大,而且體積越來越小。為了適應(yīng)市場發(fā)展,2013年Altera公司推出了其新一代的SoC FPGA芯片,該系列芯片在原有技術(shù)的基礎(chǔ)上內(nèi)嵌了功能強(qiáng)大的ARM Cortex-A9處理器[3],不僅可以在單片F(xiàn)PGA芯片上實(shí)現(xiàn)傳統(tǒng)的HDL邏輯設(shè)計(jì),還可以實(shí)現(xiàn)基于ARM處理器的嵌入式系統(tǒng)軟件開發(fā),具有良好的應(yīng)用前景。
1.1開發(fā)環(huán)境
本設(shè)計(jì)采用Altera公司的集成開發(fā)環(huán)境Quartus II和嵌入式設(shè)計(jì)套件Altera SoC EDS完成了圖像采集系統(tǒng)的硬件和軟件設(shè)計(jì)。在Quartus II軟件開發(fā)平臺(tái)下,設(shè)計(jì)者可以完成設(shè)計(jì)輸入、分析映射、綜合優(yōu)化、時(shí)序分析、布局布線、器件引腳分配、FPGA芯片功耗分析、邏輯功能仿真驗(yàn)證和目標(biāo)程序下載所有功能。Quartus II內(nèi)嵌了Qsys嵌入式硬件系統(tǒng)開發(fā)工具,可實(shí)現(xiàn)基于Nios II軟核處理器[4]或ARM硬核處理器的嵌入式系統(tǒng)開發(fā)。Altera SoC嵌入式設(shè)計(jì)套件(EDS)包含了開發(fā)(debug)工具、實(shí)用工具程序、運(yùn)行軟件和應(yīng)用實(shí)例等,用戶可以使用Altera SoC EDS進(jìn)行基于Altera SoC硬件平臺(tái)的應(yīng)用軟件開發(fā)。
1.2系統(tǒng)總體設(shè)計(jì)方案
基于Altera公司的SoC PFGA的圖像采集系統(tǒng)的總體設(shè)計(jì)方案如圖1所示。整個(gè)系統(tǒng)由圖像傳感器(CMOS Sensor)、Altera公司的SoC FPGA芯片、SDRAM存儲(chǔ)器、按鍵和硬件處理器系統(tǒng)(HPS)以及處理器工作所需的外部存儲(chǔ)器(包括DDR3 SDRAM和SD卡)組成。
SoC FPGA芯片是整個(gè)系統(tǒng)的控制核心,完成的主要功能是:內(nèi)部的硬核ARM處理器根據(jù)外部按鍵輸入通過LW_AXI總線和F2H_AXI控制Qsys硬件系統(tǒng)工作,Qsys硬件系統(tǒng)內(nèi)部的CMOS IP核收到處理器相關(guān)指令后控制FPGA內(nèi)部的HDL邏輯代碼工作,包括圖像捕捉與停止、圖像格式的轉(zhuǎn)換(RAW2RGB)、圖像的存儲(chǔ)與讀取。整個(gè)采集系統(tǒng)的設(shè)計(jì)包括FPGA邏輯代碼設(shè)計(jì)、Qsys硬件系統(tǒng)設(shè)計(jì)和硬件處理器系統(tǒng)(HPS)的軟件設(shè)計(jì)。
圖1 系統(tǒng)總體設(shè)計(jì)方案
2.1硬件平臺(tái)簡介
建立適合產(chǎn)業(yè)發(fā)展的市場運(yùn)行機(jī)制。和一些傳統(tǒng)行業(yè)比較,生物質(zhì)能要想變成一個(gè)穩(wěn)定的行業(yè),就必須依靠市場,市場才是外在驅(qū)動(dòng)力。因?yàn)楝F(xiàn)在生物質(zhì)能產(chǎn)品一些原材料的研發(fā)資金投入不夠,產(chǎn)品不成熟,技術(shù)水平不高,這些問題導(dǎo)致生物質(zhì)能產(chǎn)品在市場上沒有較強(qiáng)的競爭優(yōu)勢。
圖2 Qsys系統(tǒng)總體硬件配置
本設(shè)計(jì)采用的硬件平臺(tái)是Altera公司的基于SoC FPGA進(jìn)行嵌入式系統(tǒng)開發(fā)的DE1-SoC開發(fā)板。DE1-SoC開發(fā)板上的目標(biāo)FPGA芯片使用了Altera公司開發(fā)的Cyclone V SoC FPGA芯片。 該FPGA芯片在一個(gè)基于ARM用戶可定制的片上系統(tǒng)(SoC)[5]中集成了硬核處理器、FPGA和數(shù)字信號(hào)處理(DSP)[6]功能。HPS是基于ARM Cortex-A9的雙核處理器,具有豐富的外設(shè)和存儲(chǔ)器接口(DDR2/3)等。雖然HPS和FPGA能夠獨(dú)立工作,但是它們通過高性能的AXI總線[7]橋接(bridge)實(shí)現(xiàn)高速寬帶的數(shù)據(jù)通信,該總線是雙向的,HPS總線能夠通過HPS至FPGA橋接訪問FPGA架構(gòu)中的總線及其外設(shè),并且所有橋接兼容AXI-3/4,支持同時(shí)讀寫操作。同樣,F(xiàn)PGA架構(gòu)中的總線也能夠通過FPGA至HPS橋接訪問HPS總線及其外設(shè)。所以設(shè)計(jì)者可在該平臺(tái)上實(shí)現(xiàn)具有更佳性能和靈活性的FPGA系統(tǒng)設(shè)計(jì)。
友晶科技的D5M模塊具有500萬像素的圖像傳感器,該圖像傳感器具有2 592行×1944列的有效像素,支持RGB格式[8]的圖像數(shù)據(jù)輸出,其有效圖像幀速率高達(dá)70 fps,支持圖像抓拍模式,并且可通過I2C接口完成其內(nèi)部寄存器的參數(shù)配置,操作簡單易用。
2.2硬件設(shè)計(jì)
基于Altera公司SoC FPGA的嵌入式系統(tǒng)硬件設(shè)計(jì),首先要基于Qsys規(guī)劃系統(tǒng)需要的外設(shè),包括HPS與FPGA各自的接口。HPS外設(shè)只需要根據(jù) DE1-SoC開發(fā)板硬件進(jìn)行設(shè)定即可,F(xiàn)PGA外設(shè)首先是通過IP模塊的方式添加,然后建立各個(gè)模塊間的連接(包括時(shí)鐘、復(fù)位和總線),最后產(chǎn)生硬件與軟件開發(fā)各自所需的定制文件。硬件開發(fā)和以往傳統(tǒng)的基于Nios II軟核處理器的FPGA設(shè)計(jì)流程相同,首先需要使用Quartus II加入Qsys以及用戶邏輯,然后設(shè)定 FPGA引腳分配,最后綜合編譯產(chǎn)生xx.sof/xx.pof 編程文件。
基于SoC FPGA的圖像采集系統(tǒng)的硬件設(shè)計(jì)流程如下:
① 在Quartus II軟件下啟動(dòng)Qsys設(shè)計(jì)工具并添加系統(tǒng)需要的硬件外設(shè),包括ARM硬核處理器、鎖相環(huán)、On-chip memory、JTAG調(diào)試串口、定時(shí)器、為D5M模塊圖像傳感器定制的控制接口IP核、通用I/O和系統(tǒng)ID IP核。
② 建立系統(tǒng)各模塊之間的連接,包括時(shí)鐘、復(fù)位、CPU數(shù)據(jù)總線和指令總線與其他外設(shè)模塊之間的連接。Qsys下的總體硬件配置如圖2所示。
③ 點(diǎn)擊Qsys工具下方的Finish按鈕,產(chǎn)生Qsys硬件配置系統(tǒng)。
④ 將產(chǎn)生的系統(tǒng)配置文件與其他HDL邏輯模塊一起加入系統(tǒng)設(shè)計(jì)工程中,最后在Quartus II軟件中通過分析綜合、布局布線、引腳分配產(chǎn)生FPGA編程文件,至此基于SoC FPGA開發(fā)的圖像采集系統(tǒng)硬件設(shè)計(jì)結(jié)束。
2.3軟件設(shè)計(jì)
嵌入式系統(tǒng)軟件設(shè)計(jì)包括兩個(gè)部分:一是基于傳統(tǒng)HDL語言的FPGA邏輯軟件設(shè)計(jì),二是基于C語言的SoC EDS軟件設(shè)計(jì)?;趥鹘y(tǒng)的HDL語言的邏輯軟件設(shè)計(jì)方法參考資料較多,讀者可參考相關(guān)資料?;贓DS軟件的開發(fā)則需通過Altera的SoC EDS開發(fā)工具,將Qsys所生成的HPS硬件設(shè)定轉(zhuǎn)換成產(chǎn)生Preloader、uboot和Device Tree所需的輸入文件。這些文件可以協(xié)助HPS在DE1-SoC上運(yùn)行嵌入式Linux操作系統(tǒng)。Linux內(nèi)核解析需要掛載硬件外設(shè)并完成boot,然后開發(fā)的基于Linux操作系統(tǒng)的應(yīng)用程序在DE1-SoC開發(fā)板上運(yùn)行。應(yīng)用程序可以實(shí)現(xiàn)HPS和FPGA協(xié)同工作,完成定制化設(shè)計(jì)。
2.3.1邏輯軟件設(shè)計(jì)
基于SoC FPGA的圖像采集系統(tǒng)邏輯軟件設(shè)計(jì)包括:圖像捕捉(CMOS_Capture)模塊設(shè)計(jì)、 RAW2RGB模塊設(shè)計(jì)、4端口SDRAM模塊設(shè)計(jì)、圖像傳感器配置模塊設(shè)計(jì)和圖像傳感器控制接口IP核的設(shè)計(jì)。
圖像捕捉模塊的功能是接收CPU軟件啟動(dòng)和停止控制指令,然后產(chǎn)生RAW格式的圖像幀。RAW2RGB模塊的主要功能是實(shí)現(xiàn)圖像格式轉(zhuǎn)換,實(shí)現(xiàn)RAW格式[10]到RGB格式之間的轉(zhuǎn)換。4端口SDRAM模塊實(shí)現(xiàn)圖像RGB數(shù)據(jù)的存儲(chǔ),包括2個(gè)讀端口和2個(gè)寫端口。圖像傳感器配置模塊實(shí)現(xiàn)的功能是通過圖像傳感器的I2C接口完成對內(nèi)部寄存器的參數(shù)配置。圖像傳感器控制接口IP核完成的功能是提供ARM硬核處理器程序與系統(tǒng)硬件圖像傳感器之間通信的接口,通過該接口完成CPU軟件對硬件圖像傳感器的控制。圖像傳感器控制接口的HDL代碼完成后,需要在Qsys下通過新建Component的方式生成Qsys可以調(diào)用的IP核,IP核在配置過程中需要遵循Avalon-MM接口協(xié)議[9]。
邏輯軟件整體實(shí)現(xiàn)的功能是系統(tǒng)完成上電復(fù)位后,圖像傳感器配置模塊完成對D5M模塊的圖像傳感器參數(shù)配置,圖像捕捉模塊接收CPU控制指令,開始或停止圖像的捕捉,捕捉的RAW格式的圖像經(jīng)過 RAW2RGB模塊轉(zhuǎn)換成RGB格式的圖像,然后將圖像數(shù)據(jù)存放在SDRAM中,供CPU讀取。
2.3.2EDS軟件設(shè)計(jì)
Altera SoC EDS的軟件開發(fā)流程如圖3所示。首先需要編寫設(shè)計(jì)源文件(.c/.h文件),然后編寫Makefile文件,用于制定Altera Embedded Command Shell編譯工具所需的一系列編譯規(guī)則,通過編譯生成可執(zhí)行文件。軟件設(shè)計(jì)完成后,將存放有可啟動(dòng)Linux的SD卡插入開發(fā)板,再將開發(fā)板的調(diào)試串口、網(wǎng)口通過連接線連接到安裝有串口調(diào)試軟件的個(gè)人電腦,然后給開發(fā)板上電,啟動(dòng)Linux操作系統(tǒng),系統(tǒng)啟動(dòng)完成后通過串口調(diào)試軟件輸入相關(guān)的命令,將編譯好的可執(zhí)行文件通過網(wǎng)口(須配置 IP地址)下載到開發(fā)板,在Linux系統(tǒng)下,通過串口調(diào)試軟件執(zhí)行目標(biāo)程序,最后觀察程序運(yùn)行結(jié)果。
圖3 Altera SoC EDS的軟件開發(fā)流程
圖像采集系統(tǒng)的EDS軟件用于控制圖像傳感器的圖像捕捉與停止、圖像數(shù)據(jù)的讀取和存儲(chǔ)。該設(shè)計(jì)中,通過開發(fā)板上連接外部I/O引腳的兩個(gè)按鍵來控制圖像傳感器的動(dòng)作,一個(gè)按鍵的功能是啟動(dòng)圖像傳感器捕捉圖像,另一個(gè)按鍵的功能是停止圖像傳感器捕捉動(dòng)作。當(dāng)CPU軟件檢測到啟動(dòng)捕捉的按鍵按下后,軟件開始從與FPGA連接的外部SDRAM中讀取圖像數(shù)據(jù),并將數(shù)據(jù)保存在與ARM硬核處理器連接的SD卡中。當(dāng)CPU軟件檢測到停止捕捉的按鍵按下后,通過控制FPGA中的圖像捕捉模塊,使圖像傳感器停止圖像的捕捉。程序流程圖如圖4所示。
圖4 程序流程圖
完成系統(tǒng)的硬件和軟件設(shè)計(jì)后,對系統(tǒng)進(jìn)行板級測試。首先給DE1-SoC開發(fā)板上電,利用Quartus II編程工具將編譯好的整個(gè)硬件系統(tǒng)的目標(biāo)程序(xx.pof)文件燒入FPGA的配置芯片EEPROM(EPCQ256)中,然后斷開開發(fā)板電源,將友晶科技的D5M模塊插入DE1-SoC開發(fā)板的40引腳的 GPIO插槽,將存放有可啟動(dòng) Linux操作系統(tǒng)的SD卡插入開發(fā)板,開發(fā)板的調(diào)試串口和網(wǎng)口通過串口連接線和交叉網(wǎng)線連接到調(diào)試電腦,然后給開發(fā)板加電啟動(dòng)Linux操作系統(tǒng)。系統(tǒng)啟動(dòng)完成后,打開調(diào)試電腦中的串口調(diào)試軟件,在串口調(diào)試軟件中輸入命令,將預(yù)先編譯好的ARM硬核處理器可執(zhí)行程序通過網(wǎng)口下載到開發(fā)板執(zhí)行,軟件執(zhí)行后,通過控制開發(fā)板按鍵,完成圖像的捕捉和停止功能。系統(tǒng)程序運(yùn)行結(jié)束后,用個(gè)人電腦通過讀卡器打開SD卡,查看圖像傳感器捕捉到的圖像。經(jīng)驗(yàn)證,SD卡中保存的示例圖片如圖5所示,可見該系統(tǒng)實(shí)現(xiàn)了圖像的捕捉功能。
圖5 捕捉的示例圖片
利用Altera公司的SoC FPGA芯片,通過HDL邏輯設(shè)計(jì)、Qsys硬件系統(tǒng)設(shè)計(jì)和ARM硬核處理器軟件設(shè)計(jì),使用友晶的D5M模塊在Altera公司的 DE1-SoC開發(fā)板上實(shí)現(xiàn)了基于Linux操作的嵌入式系統(tǒng)設(shè)計(jì)。該設(shè)計(jì)采用單片SoC FPGA芯片實(shí)現(xiàn)了系統(tǒng)整體功能,與傳統(tǒng)的采用1片專用CPU和1片F(xiàn)PGA芯片進(jìn)行嵌入式系統(tǒng)設(shè)計(jì)的方式相比,該設(shè)計(jì)方法減小了PCB面積、降低了硬件設(shè)計(jì)難度、節(jié)約了開發(fā)成本,具有非常重要的參考價(jià)值。
[1] 熊平.CCD與CMOS圖像傳感器特點(diǎn)比較[J].半導(dǎo)體光電,2004(1):1-4.
[2] 譚會(huì)生.EDA技術(shù)及應(yīng)用[M].西安:西安電子科技大學(xué)出版社,2011.
[3] 陳新澤,楊斌.ARM Cortex-A9的NEON技術(shù)研究及應(yīng)用[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2013,13(10):46-49.
[4] 龔向東,劉春平,黃虹賓,等.一種基于Nios II軟核的嵌入式圖像采集處理系統(tǒng)設(shè)計(jì)[J].電子測量技術(shù),2010(2):75-78.
[5] 肖昊,張華娟.ZedBoard開發(fā)板在片上系統(tǒng)(SoC)設(shè)計(jì)課程中的應(yīng)用[J].中國新通信,2015(6):72-73.
[6] 沈戈,高德遠(yuǎn),樊曉椏.數(shù)字信號(hào)處理器(DSP)結(jié)構(gòu)設(shè)計(jì)及發(fā)展趨勢[J].計(jì)算機(jī)工程與應(yīng)用,2003,39(7):4-6.
[7] 楊定定,施慧彬.基于AXI總線的MicroBlaze雙核SoPC系統(tǒng)設(shè)計(jì)[J].電子產(chǎn)品世界,2012,19(1):76-77.
[8] 李恭,楊學(xué)友,王卓.基于RGB三基色原理的手持式色度儀的設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2006,32(6):92-94.
[9] 李曉晗,張航,倪光華.基于Avalon-MM突發(fā)傳輸?shù)腜CI從接口設(shè)計(jì)[J].無線電工程,2015(6):38-40.
[10] 李峰,印蔚蔚.基于Raw格式圖像的自動(dòng)白平衡方法[J].計(jì)算機(jī)工程,2011,37(17):211-213.
聶永軍(工程師),主要研究方向?yàn)榛贔PGA的嵌入式系統(tǒng)設(shè)計(jì);徐光輝(副教授),主要研究方向?yàn)镾oC與嵌入式系統(tǒng)設(shè)計(jì);鄭國建(碩士研究生),主要研究方向?yàn)槎嗝襟w信息處理。
編譯后的Web服務(wù)器軟件占用Flash為9.09 KB,RAM為8.99 KB,比起軟件協(xié)議棧,它的代碼效率更高,適合在一些資源匱乏的單片機(jī)上運(yùn)行。實(shí)際運(yùn)行過程中,W5500能夠在3 s內(nèi)自動(dòng)從路由器獲得IP地址,網(wǎng)頁打開速度很快、無卡頓。圖4為火狐瀏覽器中打開的W5500網(wǎng)絡(luò)配置網(wǎng)頁,瀏覽器發(fā)送GET請求獲得界面布局信息,通過AJAX對象請求服務(wù)器回傳當(dāng)前的IP地址信息。此外,該網(wǎng)頁還能修改IP地址并提交服務(wù)器。
圖6 Web服務(wù)器運(yùn)行界面
本文搭建的Web服務(wù)器簡單精煉,網(wǎng)頁的三要素得到了很好的解析與響應(yīng)。與PC相比雖然不夠靈活,但是對于物聯(lián)網(wǎng)的節(jié)點(diǎn)來說,服務(wù)器性能完善,能完成多樣化的通信。與常用的兩種服務(wù)器框架相比,成本低、功耗小,更符合嵌入式Web服務(wù)器的發(fā)展趨勢。
編者注:本文為期刊縮略版,全文見本刊網(wǎng)站www.mesnet.com.cn。
參考文獻(xiàn)
[1] WIZnet.W5500 Datasheet [EB/OL].(2015-01)[2015-11].http://wizwiki.net.
[2] IETF.RFC2131 [EB/OL].(2015-01)[2015-11].http://www.ietf.org/rfc/rfc2131.txt.
[3] IETF.RFC2616 [EB/OL].(2015-01)[2015-11].http://www.ietf.org/rfc/rfc2616.txt.
[4] 弗里曼, 羅布森.深入淺出JavaScript編程[M].南京:東南大學(xué)出版社, 2014.
茅勝榮、肖家文(研究生),主要研究方向?yàn)榍度胧较到y(tǒng)設(shè)計(jì)、信號(hào)處理;喬?hào)|海(教授),主要研究方向?yàn)樾盘?hào)處理、MEMS器件設(shè)計(jì)。
(責(zé)任編輯:楊迪娜收稿日期:2015-11-15)
Image Acquisition System Based on Altera SoC FPGA
Nie Yongjun1,2,Xu Guanghui1,Zheng Guojian1
(1.School of Information and Communication Engineering,PLA University of Science and Technology,Nanjing 210007,China;2.Shenzhen Electrical Appliance Company)
In the paper,an image acquisition system based on SoC FPGA is achieved,which using Altera’s DE1-SoC development board and Terasic’s D5M module.The embedded system design method based on Altera’s SoC FPGA is introduced,including the system hardware design of Qsys and ARM hard-core processor software design based on SoC EDS development suite.The required hardware modules and application software are added on the basis of the Linux reference design.The system’s function is realized finally through the board level validation.
embedded design;image acquisition;SoC FPGA;hard-core processor;operating system
TP391.4
A
(責(zé)任編輯:薛士然2015-11-17)