本文將C2H技術應用于視頻監(jiān)控系統(tǒng)的數(shù)據(jù)存儲功能部分,有效的加快了數(shù)據(jù)的讀寫速度,使系統(tǒng)的性能得到大幅度的提升。
1、C2H技術介紹
1.1C2H的特點
C2H是一種可以直接對ANSIC函數(shù)定制硬件加速的技術,在推出短短的一年時間內(nèi)就得到了嵌入式及FPGA設計者的廣泛使用。C2H編譯器能分析程序要加速實現(xiàn)的存儲器接口類型,生成硬件加速器邏輯以及合適的Avalon(總線互聯(lián)架構)的主機和從機接口,達到與存儲器延時的匹配。這樣,分擔了處理器的數(shù)據(jù)計算和存儲器訪問任務,使處理器能夠更好的處理其他任務。數(shù)據(jù)表明,與未采用C2H加速的系統(tǒng)相比,采用NiosIIC2H編譯器加速的系統(tǒng)性能提高了10到45倍,而耗費的邏輯資源僅比處理器本身多出0.7至2.0倍。NiosIIC2H編譯器是基于Eclipse的NiosII集成開發(fā)環(huán)境(IDE)中的一個插件。同時,C2H編譯器具有識別并行運行事件的功能,能在硬件中同時運行相互獨立的事件。與前面結果無關的事件將被盡早的執(zhí)行。軟件調(diào)用以線程的方式進行加速——每個加速器完全并行運行,真正的多任務系統(tǒng)(CPU,硬件加速器)。
1.2C2H的使用流程
C2H的使用需要進行反復的調(diào)試,直到性能符合設計要求。具體流程如下:
(1)在NiosII中開發(fā)和調(diào)試C程序;
(2)分析C程序,找到最適合加速的部分;
(3)將需要加速的代碼段寫成一個獨立的子函數(shù);
(4)指定這個函數(shù)為硬件加速的函數(shù);
(5)在NiosIIIDE中重新編譯整個工程;
(6)分析硬件加速的結果,觀察C2H*估報告;[nextpage]
2、視頻監(jiān)控系統(tǒng)的設計
設計中選用的是Altera公司生產(chǎn)的CycloneII系列中的EP2c35FPGA。CycloneII系列是低成本嵌入式處理解決方案,具有可以擴展外設集、存儲器、I/O的特點。同時Altera公司免費提供NiosII嵌入式處理器。NiosII軟核是一個32位RISC嵌入式處理器,性能超過200MIPS,滿足當前系統(tǒng)的設計要求。Altera公司提供了一整套針對NiosII軟核的SOPC開發(fā)工具,輕松實現(xiàn)從底層的硬件設計到上層的軟件開發(fā)。
2.1視頻監(jiān)控系統(tǒng)的總體設計
本文中設計的視頻監(jiān)控系統(tǒng)的基本構成是現(xiàn)場實時采集圖像的攝像機、視頻解碼芯片AD7181B、視頻D/A芯片ADC7123、VGA控制器、Flash、SDRAM控制器及控制核心NiosIICPU。整個系統(tǒng)除A/D和D/A采用專用芯片外,其余部分均在FPGA上實現(xiàn)。視頻監(jiān)控系統(tǒng)的硬件設計框圖如下圖1所示:
▲
圖1系統(tǒng)硬件設計框圖
各模塊功能描述如下:NiosII軟核CPU是32位的RISC嵌入式處理器,為整個系統(tǒng)的中樞;SDRAM,是系統(tǒng)大容量的數(shù)據(jù)緩沖存儲區(qū)域;Flash,存儲系統(tǒng)的硬件和軟件的系統(tǒng)上電配置數(shù)據(jù);視頻處理模塊,實現(xiàn)對視頻流的ITU656解碼、去隔行、格式轉換等功能。
2.2C2H在視頻監(jiān)控系統(tǒng)的應用
下圖1.2詳細表示出了系統(tǒng)中視頻數(shù)據(jù)流的處理過程。
▲
圖2視頻數(shù)據(jù)流處理過程圖