《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于SOPC的運(yùn)動(dòng)視覺(jué)處理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
基于SOPC的運(yùn)動(dòng)視覺(jué)處理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
摘要: SoPC是SoC和FPGA結(jié)合的產(chǎn)物,由單個(gè)可編程重構(gòu)的芯片完成整個(gè)系統(tǒng)的主要功能。SoPC設(shè)計(jì)靈活多變,可以用原理圖,硬件描述語(yǔ)言甚至是 C/C++高級(jí)語(yǔ)言進(jìn)行設(shè)計(jì);同時(shí)還具有可重構(gòu)、可裁減、可擴(kuò)充等特點(diǎn),升級(jí)方便。
關(guān)鍵詞: SoPC FPGA 可編程重構(gòu) NIOS II
Abstract:
Key words :

 引言

  隨著深亞微米工藝的發(fā)展, FPGA的容量和密度不斷增加,以其強(qiáng)大的并行乘加運(yùn)算(MAC)能力和靈活的動(dòng)態(tài)可重構(gòu)性,被廣泛應(yīng)用于通信、圖像等許多領(lǐng)域。但是在復(fù)雜算法的實(shí)現(xiàn)上,F(xiàn)PGA不如嵌入式處理器方便,所以在設(shè)計(jì)具有復(fù)雜算法和控制邏輯的系統(tǒng)時(shí),往往需要和嵌入式處理器結(jié)合使用,這就是 SOPC(System on a Programmable chip,可編程片上系統(tǒng))技術(shù)。 SoPC是 SoC和 FPGA結(jié)合的產(chǎn)物,由單個(gè)可編程重構(gòu)的芯片完成整個(gè)系統(tǒng)的主要功能。SoPC設(shè)計(jì)靈活多變,可以用原理圖,硬件描述語(yǔ)言甚至是 C/C++高級(jí)語(yǔ)言進(jìn)行設(shè)計(jì);同時(shí)還具有可重構(gòu)、可裁減、可擴(kuò)充等特點(diǎn),升級(jí)方便。 SoPC兼?zhèn)?SoC和 FPGA二者的優(yōu)點(diǎn),具有如下特點(diǎn):

  ●豐富的 IP核資源,包括通用 IP核和專(zhuān)用的 IP核

  ●在系統(tǒng)可編程,設(shè)計(jì)、編譯、下載與調(diào)試簡(jiǎn)單方便

  ●內(nèi)置嵌入式軟核處理器,存儲(chǔ)器,外設(shè)接口控制器

  ●大量可編程重構(gòu)的邏輯資源

  ●功能強(qiáng)大的時(shí)鐘管理電路

  ●支持多種 I/O接口標(biāo)準(zhǔn)

  此外,由于減小了處理器和存儲(chǔ)器之間的傳輸線(xiàn)距離,SoPC無(wú)論在速度,還是信號(hào)完整性,電磁兼容等方面,比板級(jí)系統(tǒng)都有明顯的優(yōu)越性。

  1 功能框圖

  在數(shù)字視頻視覺(jué)采集與處理板級(jí)系統(tǒng)開(kāi)發(fā)的基礎(chǔ)上,本文采用 SoPC實(shí)現(xiàn)運(yùn)動(dòng)視覺(jué)處理與控制系統(tǒng)的設(shè)計(jì)方案。硬件采用 Altera公司 StratixII系列 FPGA,軟件開(kāi)發(fā)工具包括 QuartusII,NiosII5.1 IDE,DSP Builder,MegaCore IP Library5.1和 Matlab7.0等。整個(gè) SoPC系統(tǒng)工作原理為:攝像頭采集的視頻圖像數(shù)據(jù)由圖像傳感器接口進(jìn)來(lái);數(shù)字信號(hào)處理塊和數(shù)字圖像與數(shù)字視頻處理 IP核完成視頻圖像的處理,如運(yùn)動(dòng)檢測(cè)、分割、特征提取、壓縮等; Nios II嵌入式處理器主要完成整個(gè)系統(tǒng)的控制功能;I2C總線(xiàn)用于訪(fǎng)問(wèn) CMOS圖像傳感器的內(nèi)部寄存器;PC機(jī)可以通過(guò) USB接口訪(fǎng)問(wèn) SoPC,如果距離較遠(yuǎn)的話(huà),可以通過(guò)以太網(wǎng)口進(jìn)行數(shù)據(jù)的傳輸;視頻圖像及其處理后的結(jié)果既可以通過(guò)外部存儲(chǔ)器接口存放在 CF卡, FLASH等存儲(chǔ)介質(zhì)中,也可以通過(guò) LCD顯示器接口在液晶顯示屏上直接顯示。該運(yùn)動(dòng)視覺(jué) SoPC的功能框圖如圖 1所示:

 

  

        2 視頻采集模塊

        該模塊主要負(fù)責(zé)視頻圖像的采集,攝像頭參數(shù)的設(shè)置和云臺(tái)步進(jìn)電機(jī)的控制。其中,通過(guò) I2C總線(xiàn)可以設(shè)定攝像頭內(nèi)部控制寄存器。在 FPGA中,實(shí)現(xiàn) I2C總線(xiàn)控制器的途徑有兩種:一種是在 Nios II中用軟件模擬實(shí)現(xiàn);另一種是采用第三方,比如 Sciworx,CAST,Digital Core Design等公司提供的 IP核。這些 IP核具有工作參數(shù),可以根據(jù)需要進(jìn)行設(shè)定。以 CAST公司提供的 I2C總線(xiàn)控制器為例,傳輸速率最高為 100Kbps,可以工作在 4種模式下,分別是主發(fā)送器模式、主接收器模式、從發(fā)送器模式和從接收器模式。雙路 CMOS圖像傳感器接口控制視頻圖像采集的時(shí)序,幀同步和行同步;云臺(tái)控制信號(hào)是根據(jù)視頻圖像處理后的結(jié)果,控制云臺(tái)的兩個(gè)步進(jìn)電機(jī)的轉(zhuǎn)動(dòng)。這兩個(gè)模塊需要自己開(kāi)發(fā),形成具有自主知識(shí)產(chǎn)權(quán)的 IP核。

  3 視頻圖像處理模塊

  該模塊包括 NiosII 32位嵌入式處理器,數(shù)字信號(hào)處理塊,數(shù)字圖像與數(shù)字視頻處理 IP MegaCore,以及其他一些邏輯電路,這是運(yùn)動(dòng)視覺(jué)處理與控制 SoPC設(shè)計(jì)的重點(diǎn)和核心,分別分以下幾個(gè)部分介紹。

 ?。?) Nios II嵌入式處理器

  Nios II嵌入式處理器是一款通用的 RISC結(jié)構(gòu)的 CPU,它定位于廣泛的嵌入式應(yīng)用。在 Nios II IDE集成開(kāi)發(fā)環(huán)境中,按照操作提示添加、設(shè)置相關(guān)參數(shù),在幾分鐘之內(nèi)就能生成一個(gè) Nios II嵌入式處理器。其硬件開(kāi)發(fā)過(guò)程為:

 ?、?分析系統(tǒng)所要完成的功能、達(dá)到的性能

 ?、?啟動(dòng) SOPC Builder,選取具體的 FPGA型號(hào)

 ?、?定義 CPU,外圍器件,存儲(chǔ)系統(tǒng)等模塊

 ?、?為各個(gè)模塊分配基地址和中斷請(qǐng)求號(hào)(IRQ)

 ?、?生成 Nios系統(tǒng)模塊,引腳鎖定,編譯軟件開(kāi)發(fā)過(guò)程為:

  ① 在 SOPC Builder中啟動(dòng) Nios II IDE

 ?、?創(chuàng)建 C/C++軟件工程,并指定目標(biāo)硬件

  ③ 利用工程模本編寫(xiě)相應(yīng)的程序

 ?、?編譯后,即可下載到硬件中運(yùn)行

  Nios II IDE中可以采用 C/C++或者匯編語(yǔ)言進(jìn)行程序的編寫(xiě),其文件擴(kuò)展名分別為 .c和.s。一個(gè)單獨(dú)的 Nios II/f CPU大約需要占用 1800個(gè) LEs,如果再添加一些定時(shí)器,外圍器件等,那么占用的邏輯單元會(huì)進(jìn)一步增加。

 ?。?)數(shù)字信號(hào)處理塊

  Stratix II系列 FPGA內(nèi)部具有數(shù)字信號(hào)處理塊( DSP Blocks,DSP塊)。數(shù)字信號(hào)處理塊可以支持不同數(shù)據(jù)寬度的乘法器( 9×9、18×18、36×36)和操作模式(乘法運(yùn)算、復(fù)數(shù)乘法運(yùn)算、乘加運(yùn)算和乘法累加運(yùn)算),每個(gè) DSP塊提供了 2.8 GMACS的 DSP數(shù)據(jù)吞吐量。最大 Stratix II器件 EP2S180內(nèi)部含有 96個(gè)數(shù)字信號(hào)處理塊,能夠提供了 284 GMACS的吞吐量,可以支持 384個(gè) 18×18乘法器。此外,數(shù)字信號(hào)處理塊增加了新的舍入和飽和支持,便于將 DSP固件代碼導(dǎo)入FPGA。一些應(yīng)用如話(huà)音處理,由于存放數(shù)據(jù)的存儲(chǔ)緩沖是固定寬度,可以使用舍入和飽和。現(xiàn)在采用了支持舍入和飽和的數(shù)字信號(hào)處理塊,可以很方便地將基于 DSP處理器的設(shè)計(jì)導(dǎo)入到 FPGA中進(jìn)行實(shí)現(xiàn)。

  在 Altera的可編程器件上進(jìn)行 DSP系統(tǒng)設(shè)計(jì),需要有同時(shí)支持高級(jí)的算法和硬件描述語(yǔ)言的開(kāi)發(fā)工具。MathWorks的 MATLAB和 Simulink系統(tǒng)級(jí)的設(shè)計(jì)工具具備了算法開(kāi)發(fā)、仿真、驗(yàn)證能力。Altera的 DSP Builder將這些工具與 Altera的開(kāi)發(fā)工具組合在一起,提供了一個(gè)系統(tǒng)設(shè)計(jì)、算法設(shè)計(jì)和硬件設(shè)計(jì)共享的 DSP開(kāi)發(fā)平臺(tái)。

 ?。?)視頻圖像處理

IP核第三方提供有許多應(yīng)用于通信、圖像編解碼、視頻處理的可定制 IP核。合理地利用這些 IP核,在保證性能與可靠性的同時(shí),可以大大縮短開(kāi)發(fā)時(shí)間。下面介紹的是色彩空間轉(zhuǎn)換 IP。

  CSC(Color Space Convertorr)是 Altera公司提供的 MegaCore IP庫(kù)文件中的一個(gè)專(zhuān)門(mén)用于圖像色彩空間轉(zhuǎn)換的 IP核,與軟件轉(zhuǎn)換相比,其具有明顯的速度優(yōu)勢(shì)和靈活性:

  ● 每個(gè)時(shí)鐘周期完成一個(gè)像素點(diǎn)的轉(zhuǎn)換

  ● 在 Stratix系列 FPGA中,時(shí)鐘頻率大于 200MHz

  ● 支持 RGB和 YCbCr、YUV之間的互換

  ● 用戶(hù)可以自定義轉(zhuǎn)換矩陣的相關(guān)系數(shù)

  ● 支持有符號(hào)數(shù)和無(wú)符號(hào)數(shù)

       4 RAM數(shù)據(jù)緩沖區(qū)

  輸入輸出的數(shù)據(jù)寬度為 2~32b 4 RAM數(shù)據(jù)緩沖區(qū) Stratix II系列 FPGA最多包含有 9Mb的片上 RAM。這些 RAM采用 TriMatrix存儲(chǔ)結(jié)構(gòu),包括三種大小的嵌入式存儲(chǔ)器塊,分別為: 512b的M512塊,4Kb的M4K塊和512Kb的M-RAM塊,每個(gè)都可以配置支持各種特性,如單端口 RAM,雙端口 RAM,F(xiàn)IFO等,為大存儲(chǔ)量應(yīng)用提供解決方案。

        5 外部存儲(chǔ)器和外設(shè)接口

  Stratix II系列 FPGA為外部存儲(chǔ)器的可靠數(shù)據(jù)傳送而進(jìn)行了優(yōu)化設(shè)計(jì),支持最新的存儲(chǔ)接口訪(fǎng)問(wèn)片外存儲(chǔ)器。開(kāi)發(fā)人員使用 Stratix II先進(jìn)的器件特性和可定制的 IP核,能夠快速和方便地將各種大容量存儲(chǔ)器件集成到復(fù)雜的系統(tǒng)設(shè)計(jì)中。Stratix II支持各種最新的存儲(chǔ)接口。Stratix II系列 FPGA片內(nèi)處理器與外設(shè)之間是通過(guò) Avalon交換式總線(xiàn)連接的。 Avalon交換式總線(xiàn)是 Altera開(kāi)發(fā)的一種專(zhuān)用內(nèi)部連線(xiàn)技術(shù),使用最少的邏輯資源來(lái)支持?jǐn)?shù)據(jù)總線(xiàn)的復(fù)用、地址譯碼、等待周期的產(chǎn)生、外設(shè)的地址對(duì)齊、中斷優(yōu)先級(jí)的指定等。外設(shè)接口可定制的 IP核有 USB、I2C、Ethernet、PCI等控制器,這些 IP核大多是由第三方提供的,可以免費(fèi)試用,也可支付部分費(fèi)用購(gòu)買(mǎi)。本系統(tǒng)采用的 USB2.0控制器和以太網(wǎng)接口控制器均由 Mentor公司提供。

        6 時(shí)鐘管理電路

  Stratix II系列 FPGA具有多達(dá) 48個(gè)高性能的低偏移全局時(shí)鐘,它可以用于高性能功能或全局控制信號(hào);多達(dá) 12個(gè)可編程鎖相環(huán)( PLL),具有完備的時(shí)鐘管理和頻率合成能力,包括時(shí)鐘切換、PLL重配置、擴(kuò)頻時(shí)鐘、頻率綜合、可編程相位偏移、可編程延遲偏移、外部反饋和可編程帶寬。Stratix II有兩類(lèi)通用的 PLL:增強(qiáng)型 PLL和快速型 PLL。增強(qiáng)型 PLL功能豐富,支持外部反饋、擴(kuò)頻時(shí)鐘、可編程帶寬等;快速型 PLL針對(duì)高速差分 I/O接口進(jìn)行了優(yōu)化,具有動(dòng)態(tài)相位調(diào)整( DPA)功能。這些高速時(shí)鐘網(wǎng)絡(luò)和豐富的 PLL結(jié)合起來(lái),為系統(tǒng)在最小的時(shí)鐘偏移下工作提供有力的保證。

  7 SOPC的其他組成部分

        FPGA配置接口用于 SOPC的配置、編譯和在線(xiàn)調(diào)試; LCD顯示接口可以外接液晶顯示屏;報(bào)警信號(hào)是在檢測(cè)和識(shí)別出運(yùn)動(dòng)目標(biāo)時(shí),發(fā)出的聲音或光電信號(hào),可用于安防;標(biāo)準(zhǔn)I/O口則是預(yù)留的,用于日后的升級(jí)擴(kuò)展。

  創(chuàng)新點(diǎn):SoPC概念提出以前,電子系統(tǒng)的集成設(shè)計(jì)主要以板級(jí)為主,這種設(shè)計(jì)方法隨著系統(tǒng)時(shí)鐘頻率的不斷提高和電路功能的日趨復(fù)雜,實(shí)現(xiàn)的難度越來(lái)越大,電磁干擾和信號(hào)完整性問(wèn)題日益突出。僅靠?jī)?yōu)化 PCB的布局和布線(xiàn),已經(jīng)不能滿(mǎn)足高速信號(hào)的傳輸和處理要求。隨著半導(dǎo)體工業(yè)的不斷發(fā)展,可編程片上系統(tǒng)以其較高的性能、可靠性,較低的功耗、成本和良好的便攜性將成為未來(lái)電子產(chǎn)品開(kāi)發(fā)設(shè)計(jì)的主流。而運(yùn)動(dòng)視覺(jué) SoPC更好地解決了板級(jí)電路的一系列問(wèn)題,并可廣泛應(yīng)用于安防監(jiān)控、視覺(jué)導(dǎo)航、智能交通等眾多領(lǐng)域,必定會(huì)有良好的市場(chǎng)前景。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。