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