關鍵詞: SoPC , 處理系統 , 視覺 , 運動
隨著深亞微米工藝的發展, FPGA的容量和密度不斷增加,以其強大的并行乘加運算(MAC)能力和靈活的動態可重構性,被廣泛應用于通信、圖像等許多領域。但是在復雜算法的實現上,FPGA不如嵌入式處理器方便,所以在設計具有復雜算法和控制邏輯的系統時,往往需要和嵌入式處理器結合使用,這就是 SOPC(System on a Programmable chip,可編程片上系統)技術。 SoPC是 SoC和 FPGA結合的產物,由單個可編程重構的芯片完成整個系統的主要功能。SoPC設計靈活多變,可以用原理圖,硬件描述語言甚至是 C/C++高級語言進行設計;同時還具有可重構、可裁減、可擴充等特點,升級方便。 SoPC兼備 SoC和 FPGA二者的優點,具有如下特點:
●豐富的 IP核資源,包括通用 IP核和專用的 IP核
●在系統可編程,設計、編譯、下載與調試簡單方便
●內置嵌入式軟核處理器,存儲器,外設接口控制器
●大量可編程重構的邏輯資源
●功能強大的時鐘管理電路
●支持多種 I/O接口標準
此外,由于減小了處理器和存儲器之間的傳輸線距離,SoPC無論在速度,還是信號完整性,電磁兼容等方面,比板級系統都有明顯的優越性。
1 功能框圖
在數字視頻視覺采集與處理板級系統開發的基礎上,本文采用 SoPC實現運動視覺處理與控制系統的設計方案。硬件采用 Altera公司 StratixII系列 FPGA,軟件開發工具包括 QuartusII,NiosII5.1 IDE,DSP Builder,MegaCore IP Library5.1和 Matlab7.0等。整個 SoPC系統工作原理為:攝像頭采集的視頻圖像數據由圖像傳感器接口進來;數字信號處理塊和數字圖像與數字視頻處理 IP核完成視頻圖像的處理,如運動檢測、分割、特征提取、壓縮等; Nios II嵌入式處理器主要完成整個系統的控制功能;I2C總線用于訪問 CMOS圖像傳感器的內部寄存器;PC機可以通過 USB接口訪問 SoPC,如果距離較遠的話,可以通過以太網口進行數據的傳輸;視頻圖像及其處理后的結果既可以通過外部存儲器接口存放在 CF卡, FLASH等存儲介質中,也可以通過 LCD顯示器接口在液晶顯示屏上直接顯示。該運動視覺 SoPC的功能框圖如圖 1所示:
該模塊主要負責視頻圖像的采集,攝像頭參數的設置和云臺步進電機的控制。其中,通過 I2C總線可以設定攝像頭內部控制寄存器。在 FPGA中,實現 I2C總線控制器的途徑有兩種:一種是在 Nios II中用軟件模擬實現;另一種是采用第三方,比如 Sciworx,CAST,Digital Core Design等公司提供的 IP核。這些 IP核具有工作參數,可以根據需要進行設定。以 CAST公司提供的 I2C總線控制器為例,傳輸速率最高為 100Kbps,可以工作在 4種模式下,分別是主發送器模式、主接收器模式、從發送器模式和從接收器模式。雙路 CMOS圖像傳感器接口控制視頻圖像采集的時序,幀同步和行同步;云臺控制信號是根據視頻圖像處理后的結果,控制云臺的兩個步進電機的轉動。這兩個模塊需要自己開發,形成具有自主知識產權的 IP核。
3 視頻圖像處理模塊
該模塊包括 NiosII 32位嵌入式處理器,數字信號處理塊,數字圖像與數字視頻處理 IP MegaCore,以及其他一些邏輯電路,這是運動視覺處理與控制 SoPC設計的重點和核心,分別分以下幾個部分介紹。
(1) Nios II嵌入式處理器
Nios II嵌入式處理器是一款通用的 RISC結構的 CPU,它定位于廣泛的嵌入式應用。在 Nios II IDE集成開發環境中,按照操作提示添加、設置相關參數,在幾分鐘之內就能生成一個 Nios II嵌入式處理器。其硬件開發過程為:
① 分析系統所要完成的功能、達到的性能
② 啟動 SOPC Builder,選取具體的 FPGA型號
③ 定義 CPU,外圍器件,存儲系統等模塊
④ 為各個模塊分配基地址和中斷請求號(IRQ)
⑤ 生成 Nios系統模塊,引腳鎖定,編譯軟件開發過程為:
① 在 SOPC Builder中啟動 Nios II IDE
② 創建 C/C++軟件工程,并指定目標硬件
③ 利用工程模本編寫相應的程序
④ 編譯后,即可下載到硬件中運行
Nios II IDE中可以采用 C/C++或者匯編語言進行程序的編寫,其文件擴展名分別為 .c和.s。一個單獨的 Nios II/f CPU大約需要占用 1800個 LEs,如果再添加一些定時器,外圍器件等,那么占用的邏輯單元會進一步增加。
(2)數字信號處理塊
Stratix II系列 FPGA內部具有數字信號處理塊( DSP Blocks,DSP塊)。數字信號處理塊可以支持不同數據寬度的乘法器( 9×9、18×18、36×36)和操作模式(乘法運算、復數乘法運算、乘加運算和乘法累加運算),每個 DSP塊提供了 2.8 GMACS的 DSP數據吞吐量。最大 Stratix II器件 EP2S180內部含有 96個數字信號處理塊,能夠提供了 284 GMACS的吞吐量,可以支持 384個 18×18乘法器。此外,數字信號處理塊增加了新的舍入和飽和支持,便于將 DSP固件代碼導入FPGA。一些應用如話音處理,由于存放數據的存儲緩沖是固定寬度,可以使用舍入和飽和。現在采用了支持舍入和飽和的數字信號處理塊,可以很方便地將基于 DSP處理器的設計導入到 FPGA中進行實現。
在 Altera的可編程器件上進行 DSP系統設計,需要有同時支持高級的算法和硬件描述語言的開發工具。MathWorks的 MATLAB和 Simulink系統級的設計工具具備了算法開發、仿真、驗證能力。Altera的 DSP Builder將這些工具與 Altera的開發工具組合在一起,提供了一個系統設計、算法設計和硬件設計共享的 DSP開發平臺。
(3)視頻圖像處理
IP核第三方提供有許多應用于通信、圖像編解碼、視頻處理的可定制 IP核。合理地利用這些 IP核,在保證性能與可靠性的同時,可以大大縮短開發時間。下面介紹的是色彩空間轉換 IP。
CSC(Color Space Convertorr)是 Altera公司提供的 MegaCore IP庫文件中的一個專門用于圖像色彩空間轉換的 IP核,與軟件轉換相比,其具有明顯的速度優勢和靈活性:
● 每個時鐘周期完成一個像素點的轉換
● 在 Stratix系列 FPGA中,時鐘頻率大于 200MHz
● 支持 RGB和 YCbCr、YUV之間的互換
● 用戶可以自定義轉換矩陣的相關系數
● 支持有符號數和無符號數
輸入輸出的數據寬度為 2~32b 4 RAM數據緩沖區 Stratix II系列 FPGA最多包含有 9Mb的片上 RAM。這些 RAM采用 TriMatrix存儲結構,包括三種大小的嵌入式存儲器塊,分別為: 512b的M512塊,4Kb的M4K塊和512Kb的M-RAM塊,每個都可以配置支持各種特性,如單端口 RAM,雙端口 RAM,FIFO等,為大存儲量應用提供解決方案。
5 外部存儲器和外設接口
Stratix II系列 FPGA為外部存儲器的可靠數據傳送而進行了優化設計,支持最新的存儲接口訪問片外存儲器。開發人員使用 Stratix II先進的器件特性和可定制的 IP核,能夠快速和方便地將各種大容量存儲器件集成到復雜的系統設計中。Stratix II支持各種最新的存儲接口。Stratix II系列 FPGA片內處理器與外設之間是通過 Avalon交換式總線連接的。 Avalon交換式總線是 Altera開發的一種專用內部連線技術,使用最少的邏輯資源來支持數據總線的復用、地址譯碼、等待周期的產生、外設的地址對齊、中斷優先級的指定等。外設接口可定制的 IP核有 USB、I2C、Ethernet、PCI等控制器,這些 IP核大多是由第三方提供的,可以免費試用,也可支付部分費用購買。本系統采用的 USB2.0控制器和以太網接口控制器均由 Mentor公司提供。
6 時鐘管理電路
Stratix II系列 FPGA具有多達 48個高性能的低偏移全局時鐘,它可以用于高性能功能或全局控制信號;多達 12個可編程鎖相環( PLL),具有完備的時鐘管理和頻率合成能力,包括時鐘切換、PLL重配置、擴頻時鐘、頻率綜合、可編程相位偏移、可編程延遲偏移、外部反饋和可編程帶寬。Stratix II有兩類通用的 PLL:增強型 PLL和快速型 PLL。增強型 PLL功能豐富,支持外部反饋、擴頻時鐘、可編程帶寬等;快速型 PLL針對高速差分 I/O接口進行了優化,具有動態相位調整( DPA)功能。這些高速時鐘網絡和豐富的 PLL結合起來,為系統在最小的時鐘偏移下工作提供有力的保證。
7 SOPC的其他組成部分
FPGA配置接口用于 SOPC的配置、編譯和在線調試; LCD顯示接口可以外接液晶顯示屏;報警信號是在檢測和識別出運動目標時,發出的聲音或光電信號,可用于安防;標準I/O口則是預留的,用于日后的升級擴展。
創新點:SoPC概念提出以前,電子系統的集成設計主要以板級為主,這種設計方法隨著系統時鐘頻率的不斷提高和電路功能的日趨復雜,實現的難度越來越大,電磁干擾和信號完整性問題日益突出。僅靠優化 PCB的布局和布線,已經不能滿足高速信號的傳輸和處理要求。隨著半導體工業的不斷發展,可編程片上系統以其較高的性能、可靠性,較低的功耗、成本和良好的便攜性將成為未來電子產品開發設計的主流。而運動視覺 SoPC更好地解決了板級電路的一系列問題,并可廣泛應用于安防監控、視覺導航、智能交通等眾多領域,必定會有良好的市場前景。
評論
查看更多